diff --git a/app/Helpers/general.php b/app/Helpers/general.php
index 12f6241896..60e104634b 100644
--- a/app/Helpers/general.php
+++ b/app/Helpers/general.php
@@ -3,6 +3,8 @@
declare(strict_types=1);
use App\IATI\Models\User\Role;
+use Illuminate\Contracts\Foundation\Application;
+use Illuminate\Contracts\Translation\Translator;
use Illuminate\Encryption\Encrypter;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Config;
@@ -367,7 +369,10 @@ function getCodeList($listName, $listType, bool $code = true): array
$data = [];
foreach ($codeList as $list) {
- $data[$list['code']] = ($code) ? $list['code'] . (array_key_exists('name', $list) ? ' - ' . $list['name'] : '') : $list['name'];
+ $data[$list['code']] = ($code) ? $list['code'] . (array_key_exists(
+ 'name',
+ $list
+ ) ? ' - ' . $list['name'] : '') : $list['name'];
}
return $data;
@@ -400,12 +405,12 @@ function getCodeListArray($listName, $listType, bool $code = true): array
if (!function_exists('customDecryptString')) {
/**
- * @param string $encryptedString
+ * @param string $encryptedString
* @param string|null $key
*
* @return bool|string|null
*/
- function customDecryptString(string $encryptedString, string $key = null): bool|string|null
+ function customDecryptString(string $encryptedString, string $key = null): bool | string | null
{
$frontendEncryptor = new Encrypter($key ?? env('MIX_ENCRYPTION_KEY'), Config::get('app.cipher'));
@@ -415,12 +420,12 @@ function customDecryptString(string $encryptedString, string $key = null): bool|
if (!function_exists('customEncryptString')) {
/**
- * @param string $string
+ * @param string $string
* @param string|null $key
*
* @return bool|string|null
*/
- function customEncryptString(string $string, string $key = null): bool|string|null
+ function customEncryptString(string $string, string $key = null): bool | string | null
{
$frontendEncryptor = new Encrypter($key ?? env('MIX_ENCRYPTION_KEY'), Config::get('app.cipher'));
@@ -437,15 +442,26 @@ function customEncryptString(string $string, string $key = null): bool|string|nu
* @return bool|string|null
* @throws Exception
*/
- function encryptString(string $string): bool|string|null
+ function encryptString(string $string): bool | string | null
{
$iv = random_bytes(16);
$salt = random_bytes(256);
$iterations = 999;
$encryptMethodLength = 256 / 4;
- $hashKey = hash_pbkdf2('sha512', env('MIX_ENCRYPTION_KEY'), $salt, $iterations, $encryptMethodLength);
+ $hashKey = hash_pbkdf2(
+ 'sha512',
+ env('MIX_ENCRYPTION_KEY'),
+ $salt,
+ $iterations,
+ $encryptMethodLength
+ );
$encryptedData = openssl_encrypt($string, 'AES-256-CBC', hex2bin($hashKey), OPENSSL_RAW_DATA, $iv);
- $output = ['ciphertext' => base64_encode($encryptedData), 'iv' => bin2hex($iv), 'salt' => bin2hex($salt), 'iterations' => $iterations];
+ $output = [
+ 'ciphertext' => base64_encode($encryptedData),
+ 'iv' => bin2hex($iv),
+ 'salt' => bin2hex($salt),
+ 'iterations' => $iterations,
+ ];
return base64_encode(json_encode($output, JSON_THROW_ON_ERROR));
}
@@ -461,7 +477,7 @@ function encryptString(string $string): bool|string|null
* @return bool|string|null
* @throws JsonException
*/
- function decryptString(string $encryptedString, string $key): bool|string|null
+ function decryptString(string $encryptedString, string $key): bool | string | null
{
$json = json_decode(base64_decode($encryptedString), true, 512, JSON_THROW_ON_ERROR);
@@ -495,7 +511,7 @@ function decryptString(string $encryptedString, string $key): bool|string|null
* Return codeList array from json codeList.
*
* @param string $filePath
- * @param bool $code
+ * @param bool $code
*
* @return array
* @throws JsonException
@@ -617,7 +633,9 @@ function getPeriodTypes(): array
*/
function generateToastData(): array
{
- $toast['message'] = Session::exists('error') ? Session::get('error') : (Session::exists('success') ? Session::get('success') : '');
+ $toast['message'] = Session::exists('error') ? Session::get('error') : (Session::exists(
+ 'success'
+ ) ? Session::get('success') : '');
$toast['type'] = Session::exists('error') ? false : 'success';
Session::forget('success');
Session::forget('error');
@@ -670,7 +688,10 @@ function getTableConfig($module): array
{
$tableConfig = [
'activity' => ['orderBy' => ['updated_at'], 'direction' => ['asc', 'desc']],
- 'organisation' => ['orderBy' => ['updated_at', 'all_activities_count', 'name'], 'direction' => ['asc', 'desc']],
+ 'organisation' => [
+ 'orderBy' => ['updated_at', 'all_activities_count', 'name'],
+ 'direction' => ['asc', 'desc'],
+ ],
];
return $tableConfig[$module];
@@ -687,7 +708,12 @@ function getTableConfig($module): array
*/
function getDefaultLanguage($defaultValues): string
{
- if (!empty($defaultValues) && array_key_exists('default_language', $defaultValues) && !empty($defaultValues['default_language'])) {
+ if (
+ !empty($defaultValues) && array_key_exists(
+ 'default_language',
+ $defaultValues
+ ) && !empty($defaultValues['default_language'])
+ ) {
return $defaultValues['default_language'];
}
@@ -726,7 +752,23 @@ function ($value) {
*/
function getNonArrayElements(): array
{
- return ['activity_status', 'activity_scope', 'default_flow_type', 'default_finance_type', 'default_tied_status', 'capital_spend', 'collaboration_type', 'identifier', 'org_id', 'default_field_values', 'updated_at', 'created_at', 'id', 'iati_identifier', 'element_status'];
+ return [
+ 'activity_status',
+ 'activity_scope',
+ 'default_flow_type',
+ 'default_finance_type',
+ 'default_tied_status',
+ 'capital_spend',
+ 'collaboration_type',
+ 'identifier',
+ 'org_id',
+ 'default_field_values',
+ 'updated_at',
+ 'created_at',
+ 'id',
+ 'iati_identifier',
+ 'element_status',
+ ];
}
}
@@ -781,7 +823,7 @@ function getEncodingType($file): string
}
return 'UTF-8';
- } catch (\Exception $exception) {
+ } catch (Exception $exception) {
return 'UTF-8';
}
}
@@ -816,7 +858,7 @@ function trimInput($input): string
*
* @return false|string
*/
-function dateFormat($format, $date): bool|string
+function dateFormat($format, $date): bool | string
{
if (is_array($date) || is_bool($date)) {
return false;
@@ -829,7 +871,11 @@ function dateFormat($format, $date): bool|string
$dateArray = date_parse_from_format('Y-m-d', $date);
- if (checkdate((int) $dateArray['month'], (int) $dateArray['day'], (int) $dateArray['year']) && (bool) strtotime($date)) {
+ if (
+ checkdate((int) $dateArray['month'], (int) $dateArray['day'], (int) $dateArray['year']) && (bool) strtotime(
+ $date
+ )
+ ) {
return date($format, strtotime($date));
}
@@ -846,7 +892,7 @@ function dateFormat($format, $date): bool|string
*
* @return false|int
*/
-function dateStrToTime($date): int|bool
+function dateStrToTime($date): int | bool
{
if (is_array($date)) {
return false;
@@ -859,7 +905,11 @@ function dateStrToTime($date): int|bool
$dateArray = date_parse_from_format('Y-m-d', $date);
- if (checkdate((int) $dateArray['month'], (int) $dateArray['day'], (int) $dateArray['year']) && (bool) strtotime($date)) {
+ if (
+ checkdate((int) $dateArray['month'], (int) $dateArray['day'], (int) $dateArray['year']) && (bool) strtotime(
+ $date
+ )
+ ) {
return strtotime($date);
}
@@ -1066,3 +1116,47 @@ function is_variable_null($var): bool
return is_array($var) ? is_array_values_null($var) : is_null($var);
}
}
+
+if (!function_exists('translate_this')) {
+ /**
+ * @param string $prefix_key
+ * @param string $suffix_key
+ *
+ * @return array|string|Translator|Application|null
+ */
+ function translate_this(string $prefix_key, string $suffix_key = ''): array | string | Translator | Application | null
+ {
+ if (empty($suffix_key)) {
+ return trans('requests.' . $prefix_key);
+ }
+
+ return trans('requests.' . $prefix_key, ['suffix' => trans('requests.suffix.' . $suffix_key)]);
+ }
+}
+
+if (!function_exists('hot_swap')) {
+ /**
+ * @param $elements
+ *
+ * @return array|mixed
+ */
+ function hot_swap($elements)
+ {
+ $swapable_keys = ['label', 'placeholder', 'hover_text', 'help_text'];
+ $result = [];
+ if (is_array($elements)) {
+ foreach ($elements as $key => $value) {
+ if (is_string($value) && in_array($key, $swapable_keys)) {
+ $translated = trans($value);
+ $result[$key] = $translated;
+ } else {
+ $result[$key] = hot_swap($value);
+ }
+ }
+ } else {
+ $result = $elements;
+ }
+
+ return $result;
+ }
+}
diff --git a/app/Http/Controllers/Admin/Activity/ActivityController.php b/app/Http/Controllers/Admin/Activity/ActivityController.php
index 440282b437..4dfd2bbcd6 100644
--- a/app/Http/Controllers/Admin/Activity/ActivityController.php
+++ b/app/Http/Controllers/Admin/Activity/ActivityController.php
@@ -21,6 +21,8 @@
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
+use JsonException;
+use Throwable;
/**
* Class ActivityController.
@@ -60,12 +62,12 @@ class ActivityController extends Controller
/**
* ActivityController Constructor.
*
- * @param ActivityService $activityService
- * @param DatabaseManager $db
- * @param ResultService $resultService
- * @param TransactionService $transactionService
+ * @param ActivityService $activityService
+ * @param DatabaseManager $db
+ * @param ResultService $resultService
+ * @param TransactionService $transactionService
* @param ActivityValidatorResponseService $activityValidatorResponseService
- * @param OrganizationService $organizationService
+ * @param OrganizationService $organizationService
*/
public function __construct(
ActivityService $activityService,
@@ -88,7 +90,7 @@ public function __construct(
*
* @return View|JsonResponse
*/
- public function index(): View|JsonResponse
+ public function index(): View | JsonResponse
{
try {
$languages = getCodeListArray('Languages', 'ActivityArray');
@@ -98,7 +100,12 @@ public function index(): View|JsonResponse
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'error' => 'Error has occurred while fetching activities.']);
+ return response()->json(
+ [
+ 'success' => false,
+ 'error' => trans('controller.error_has_occurred', ['action' => trans('controller.fetching'), 'suffix' => trans('el_common.activities')]),
+ ]
+ );
}
}
@@ -118,7 +125,7 @@ public function create(): void
* @param ActivityCreateRequest $request
*
* @return JsonResponse
- * @throws \Throwable
+ * @throws Throwable
*/
public function store(ActivityCreateRequest $request): JsonResponse
{
@@ -128,17 +135,30 @@ public function store(ActivityCreateRequest $request): JsonResponse
$this->db->beginTransaction();
$activity = $this->activityService->store($input);
$this->db->commit();
- Session::put('success', 'Activity has been created successfully.');
+ Session::put(
+ 'success',
+ ucfirst(
+ trans('controller.has_been_actioned_successfully', ['prefix' => trans('el_common.activity'), 'action' => trans('controller.created')])
+ )
+ );
return response()->json([
'success' => true,
- 'message' => 'Activity created successfully.',
+ 'message' => ucfirst(
+ trans('controller.actioned_successfully', ['prefix' => trans('el_common.activity'), 'action' => trans('controller.created')])
+ ),
'data' => $activity,
]);
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occurred while saving activity.', 'data' => []]);
+ return response()->json(
+ [
+ 'success' => false,
+ 'message' => trans('controller.error_has_occurred', ['action' => trans('controller.saving'), 'suffix' => trans('el_common.activity')]),
+ 'data' => [],
+ ]
+ );
}
}
@@ -149,38 +169,66 @@ public function store(ActivityCreateRequest $request): JsonResponse
*
* @return View|JsonResponse|RedirectResponse
*/
- public function show($id): View|JsonResponse|RedirectResponse
+ public function show($id): View | JsonResponse | RedirectResponse
{
try {
$toast = generateToastData();
$activity = $this->activityService->getActivity($id);
- $elements = readElementJsonSchema();
+ $elements = hot_swap(readElementJsonSchema());
$elementGroups = readElementGroup();
$types = $this->getActivityDetailDataType();
- $results = $this->resultService->getActivityResultsWithIndicatorsAndPeriods($activity->id);
+ $results = $this->resultService->getActivityResultsWithIndicatorsAndPeriods(
+ $activity->id
+ );
$hasIndicatorPeriod = $this->resultService->checkResultIndicatorPeriod($results);
$transactions = $this->transactionService->getActivityTransactions($activity->id);
$status = $activity->element_status;
- $status['transactions'] = $transactions->count() === 0 ? false : Arr::get($status, 'transactions', false);
+ $status['transactions'] = $transactions->count() === 0 ? false : Arr::get(
+ $status,
+ 'transactions',
+ false
+ );
$status['result'] = $results->count() === 0 ? false : Arr::get($status, 'result', false);
$progress = $this->activityService->activityPublishingProgress($activity);
- $coreCompleted = isCoreElementCompleted(array_merge(['reporting_org' => $activity->organization->reporting_org_element_completed], $activity->element_status));
+ $coreCompleted = isCoreElementCompleted(
+ array_merge(
+ ['reporting_org' => $activity->organization->reporting_org_element_completed],
+ $activity->element_status
+ )
+ );
$validatorResponse = $this->activityValidatorResponseService->getValidatorResponse($id);
$organization_identifier = $activity->organization->identifier;
$activity->iati_identifier = [
- 'activity_identifier' => $activity->iati_identifier['activity_identifier'],
+ 'activity_identifier' => $activity->iati_identifier['activity_identifier'],
'iati_identifier_text' => $activity->organization->identifier . '-' . $activity->iati_identifier['activity_identifier'],
];
$iatiValidatorResponse = $validatorResponse->response ?? null;
return view(
'admin.activity.show',
- compact('elements', 'elementGroups', 'progress', 'activity', 'toast', 'types', 'status', 'results', 'hasIndicatorPeriod', 'transactions', 'coreCompleted', 'iatiValidatorResponse', 'organization_identifier')
+ compact(
+ 'elements',
+ 'elementGroups',
+ 'progress',
+ 'activity',
+ 'toast',
+ 'types',
+ 'status',
+ 'results',
+ 'hasIndicatorPeriod',
+ 'transactions',
+ 'coreCompleted',
+ 'iatiValidatorResponse',
+ 'organization_identifier'
+ )
);
} catch (Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activities.index')->with('error', 'Error has occurred while opening activity detail page.');
+ return redirect()->route('admin.activities.index')->with(
+ 'error',
+ trans('controller.error_has_occurred_page', ['action' => trans('controller.opening'), 'suffix' => trans('el_common.activity_detail')])
+ );
}
}
@@ -200,7 +248,7 @@ public function edit(Activity $activity): void
/**
* Update the specified resource in storage.
*
- * @param Request $request
+ * @param Request $request
* @param Activity $activity
*
* @return void
@@ -223,19 +271,43 @@ public function destroy($activityId): JsonResponse
$activity = $this->activityService->getActivity($activityId);
if ($activity->linked_to_iati) {
- Session::put('error', 'Activity must be un-published before deleting.');
+ Session::put('error', trans('controller.activity_must_be_unpublished_before_deleting'));
- return response()->json(['success' => false, 'message' => 'Activity must be un-published before deleting.']);
+ return response()->json(
+ ['success' => false, 'message' => trans('controller.activity_must_be_unpublished_before_deleting')]
+ );
}
if ($this->activityService->deleteActivity($activity)) {
- Session::put('success', 'Activity has been deleted successfully.');
-
- return response()->json(['success' => true, 'message' => 'Activity has been deleted successfully.']);
+ Session::put(
+ 'success',
+ trans(
+ 'controller.has_been_actioned_successfully',
+ ['prefix' => trans('el_common.activities'), 'actioned' => trans('controller.deleted')]
+ )
+ );
+
+ return response()->json(
+ [
+ 'success' => true,
+ 'message' => trans(
+ 'controller.has_been_actioned_successfully',
+ ['prefix' => trans('el_common.activities'), 'actioned' => trans('controller.deleted')]
+ ),
+ ]
+ );
}
- return response()->json(['success' => false, 'message' => 'Activity delete failed.']);
- } catch (\Exception $e) {
+ return response()->json(
+ [
+ 'success' => false,
+ 'message' => trans(
+ 'controller.action_failed',
+ ['prefix' => trans('el_common.activity'), 'action' => trans('controller.deleted')]
+ ),
+ ]
+ );
+ } catch (Exception $e) {
logger()->error($e->getMessage());
return response()->json(['success' => false, 'message' => $e->getMessage()]);
@@ -271,7 +343,7 @@ public function sanitizeRequest($request): array
/**
* @param Request $request
- * @param int $page
+ * @param int $page
*
* @return JsonResponse
*/
@@ -282,13 +354,13 @@ public function getPaginatedActivities(Request $request, int $page = 1): JsonRes
return response()->json([
'success' => true,
- 'message' => 'Activities fetched successfully',
+ 'message' => trans('controller.actioned_successfully', ['prefix' => trans('el_common.activities'), 'actioned' => trans('controller.fetched')]),
'data' => $activities,
]);
- } catch (\Exception $e) {
+ } catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -305,7 +377,7 @@ public function getLanguagesOrganization(): JsonResponse
return response()->json([
'success' => true,
- 'message' => 'Languages fetched successfully',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.languages'), 'actioned'=>trans('controller.fetched')])),
'data' => [
'languages' => $languages,
'organization' => $organization,
@@ -314,7 +386,7 @@ public function getLanguagesOrganization(): JsonResponse
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -322,7 +394,7 @@ public function getLanguagesOrganization(): JsonResponse
* Get activity detail data type.
*
* @return array
- * @throws \JsonException
+ * @throws JsonException
*/
public function getActivityDetailDataType(): array
{
diff --git a/app/Http/Controllers/Admin/Activity/ActivityDefaultController.php b/app/Http/Controllers/Admin/Activity/ActivityDefaultController.php
index f38727d4b0..8db87d5641 100644
--- a/app/Http/Controllers/Admin/Activity/ActivityDefaultController.php
+++ b/app/Http/Controllers/Admin/Activity/ActivityDefaultController.php
@@ -56,7 +56,7 @@ public function edit($activityId): View|RedirectResponse
return redirect()->route('admin.activity.show', $activityId)->with(
'error',
- 'Error has occurred while rendering default values form.'
+ trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.default_values')])
);
}
}
@@ -73,11 +73,11 @@ public function getActivityDefaultValues($activityId): JsonResponse
try {
$setting = $this->activityDefaultService->getActivityDefaultValues($activityId);
- return response()->json(['success' => true, 'message' => 'Default values fetched successfully', 'data' => $setting]);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.default_values'), 'actioned'=>trans('controller.fetched')])), 'data' => $setting]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -98,12 +98,12 @@ public function update(DefaultFormRequest $request, $activityId): JsonResponse
DB::commit();
- return response()->json(['success' => true, 'message' => 'Activity default values updated successfully']);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.activity_default_values'), 'actioned'=>trans('controller.updated')]))]);
} catch (\Exception $e) {
DB::rollBack();
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while updating data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.the_data')])]);
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/BudgetController.php b/app/Http/Controllers/Admin/Activity/BudgetController.php
index 313cb202ae..6bb1b772f4 100644
--- a/app/Http/Controllers/Admin/Activity/BudgetController.php
+++ b/app/Http/Controllers/Admin/Activity/BudgetController.php
@@ -61,7 +61,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening budget form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.budget')]));
}
}
@@ -79,14 +79,14 @@ public function update(BudgetRequest $request, $id): JsonResponse|RedirectRespon
$activityBudget = $request->all();
if (!$this->budgetService->update($id, $activityBudget)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating budget.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.budget')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Budget updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.budget'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating budget.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.budget')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/CapitalSpendController.php b/app/Http/Controllers/Admin/Activity/CapitalSpendController.php
index 9ead0a90ef..cf9d994533 100644
--- a/app/Http/Controllers/Admin/Activity/CapitalSpendController.php
+++ b/app/Http/Controllers/Admin/Activity/CapitalSpendController.php
@@ -53,7 +53,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering activity capital-spend form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_capital_form')]));
}
}
@@ -71,14 +71,14 @@ public function update($id, CapitalSpendRequest $request): JsonResponse|Redirect
$activityCapitalSpend = $request->get('capital_spend') !== null ? (float) $request->get('capital_spend') : null;
if (!$this->capitalSpendService->update($id, $activityCapitalSpend)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity capital-spend.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_capital_spend')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity capital-spend updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.activity_capital_spend'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity capital-spend.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_capital_spend')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/CollaborationTypeController.php b/app/Http/Controllers/Admin/Activity/CollaborationTypeController.php
index 7834eed80e..652bbdd701 100644
--- a/app/Http/Controllers/Admin/Activity/CollaborationTypeController.php
+++ b/app/Http/Controllers/Admin/Activity/CollaborationTypeController.php
@@ -53,7 +53,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering activity collaboration-type form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_collab_type')]));
}
}
@@ -71,14 +71,14 @@ public function update(CollaborationTypeRequest $request, $id): JsonResponse|Red
$activityCollaborationType = $request->get('collaboration_type') !== null ? (int) $request->get('collaboration_type') : null;
if (!$this->collaborationTypeService->update($id, $activityCollaborationType)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity collaboration-type.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_collab_type')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity collaboration-type updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.activity_collab_type'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity collaboration type.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_collab_type')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/ConditionController.php b/app/Http/Controllers/Admin/Activity/ConditionController.php
index 4598fe44a1..6b442e14c5 100644
--- a/app/Http/Controllers/Admin/Activity/ConditionController.php
+++ b/app/Http/Controllers/Admin/Activity/ConditionController.php
@@ -53,7 +53,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering activity condition form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_condition')]));
}
}
@@ -71,14 +71,14 @@ public function update(ConditionRequest $request, $id): JsonResponse|RedirectRes
$activityCondition = $request->except(['_token', '_method']);
if (!$this->conditionService->update($id, $activityCondition)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity condition.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_condition')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity condition updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.activity_condition'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity condition.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_condition')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/ContactInfoController.php b/app/Http/Controllers/Admin/Activity/ContactInfoController.php
index 14dc6318aa..fb3d23a29f 100644
--- a/app/Http/Controllers/Admin/Activity/ContactInfoController.php
+++ b/app/Http/Controllers/Admin/Activity/ContactInfoController.php
@@ -54,7 +54,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering contact-info controller item form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.contact_info_controller')]));
}
}
@@ -72,14 +72,14 @@ public function update(ContactInfoRequest $request, $id): JsonResponse|RedirectR
$activityCountryBudgetItem = $request->except(['_token', '_method']);
if (!$this->contactInfoService->update($id, $activityCountryBudgetItem)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating contact-info.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.contact_info')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Contact-info updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.contact_info'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating contact-info.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.contact-info')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/CountryBudgetItemController.php b/app/Http/Controllers/Admin/Activity/CountryBudgetItemController.php
index ef2cdbf235..1183fc0a24 100644
--- a/app/Http/Controllers/Admin/Activity/CountryBudgetItemController.php
+++ b/app/Http/Controllers/Admin/Activity/CountryBudgetItemController.php
@@ -53,7 +53,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering country-budget-item form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.country_budget_form')]));
}
}
@@ -71,14 +71,14 @@ public function update(CountryBudgetItemRequest $request, $id): JsonResponse|Red
$activityCountryBudgetItem = $request->except(['_token', '_method']);
if (!$this->countryBudgetItemService->update($id, $activityCountryBudgetItem)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating country-budget-item.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.country_budget_items')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Country-budget-item updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.country_budget_items'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating country-budget-item.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.country_budget_items')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/DateController.php b/app/Http/Controllers/Admin/Activity/DateController.php
index b88c7f0a94..a97140059c 100644
--- a/app/Http/Controllers/Admin/Activity/DateController.php
+++ b/app/Http/Controllers/Admin/Activity/DateController.php
@@ -53,7 +53,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering activity-date form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.activity_date')]));
}
}
@@ -71,14 +71,14 @@ public function update(DateRequest $request, $id): JsonResponse|RedirectResponse
$activityDate = $request->all();
if (!$this->dateService->update($id, $activityDate)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity-date.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.activity_date')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity-date updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.activity_date'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity-date.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.activity_date')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/DefaultAidTypeController.php b/app/Http/Controllers/Admin/Activity/DefaultAidTypeController.php
index 3fa77c8b6b..a80d110223 100644
--- a/app/Http/Controllers/Admin/Activity/DefaultAidTypeController.php
+++ b/app/Http/Controllers/Admin/Activity/DefaultAidTypeController.php
@@ -53,7 +53,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering default-aid-type form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.default_aid_type')]));
}
}
@@ -70,14 +70,14 @@ public function update(DefaultAidTypeRequest $request, $id): JsonResponse|Redire
$activityDefaultAidType = $request->all();
if (!$this->defaultAidTypeService->update($id, $activityDefaultAidType)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating default-aid-type.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.default_aid_type')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Default-aid-type updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.default_aid_type'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating default aid type.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.default_aid_type')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/DefaultFinanceTypeController.php b/app/Http/Controllers/Admin/Activity/DefaultFinanceTypeController.php
index 7709a6ffb4..06457bb567 100644
--- a/app/Http/Controllers/Admin/Activity/DefaultFinanceTypeController.php
+++ b/app/Http/Controllers/Admin/Activity/DefaultFinanceTypeController.php
@@ -53,7 +53,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering default-finance-type form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.default_finance_type')]));
}
}
@@ -71,14 +71,14 @@ public function update(DefaultFinanceTypeRequest $request, $id): JsonResponse|Re
$activityDefaultFinanceType = $request->get('default_finance_type') !== null ? (int) $request->get('default_finance_type') : null;
if (!$this->defaultFinanceTypeService->update($id, $activityDefaultFinanceType)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating default-finance-type.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.default_finance_type')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Default-finance-type updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.default_finance_type'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating default-finance-type.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.default_finance_type')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/DefaultFlowTypeController.php b/app/Http/Controllers/Admin/Activity/DefaultFlowTypeController.php
index 323fa24cb9..231ffb8d0b 100644
--- a/app/Http/Controllers/Admin/Activity/DefaultFlowTypeController.php
+++ b/app/Http/Controllers/Admin/Activity/DefaultFlowTypeController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering default-flow-type form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.default_flow_type')]));
}
}
@@ -68,14 +68,14 @@ public function update(DefaultFlowTypeRequest $request, $id): JsonResponse|Redir
$activityDefaultFlowType = $request->get('default_flow_type') !== null ? (int) $request->get('default_flow_type') : null;
if (!$this->defaultFlowTypeService->update($id, $activityDefaultFlowType)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating default-flow-type.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.default_flow_type')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Default-flow-type updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.default_flow_type'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating default-flow-type.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.default_flow_type')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/DefaultTiedStatusController.php b/app/Http/Controllers/Admin/Activity/DefaultTiedStatusController.php
index 67ac1b3f6f..e7bcef6864 100644
--- a/app/Http/Controllers/Admin/Activity/DefaultTiedStatusController.php
+++ b/app/Http/Controllers/Admin/Activity/DefaultTiedStatusController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering default-tied-status form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.default_tied_status')]));
}
}
@@ -68,14 +68,14 @@ public function update(DefaultTiedStatusRequest $request, $id): JsonResponse|Red
$activityDefaultTiedStatus = $request->get('default_tied_status') !== null ? (int) $request->get('default_tied_status') : null;
if (!$this->defaultTiedStatusService->update($id, $activityDefaultTiedStatus)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating default-tied-status.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.default_tied_status')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Default-tied-status updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.default_tied_status'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating default-tied-status.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.default_tied_status')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/DescriptionController.php b/app/Http/Controllers/Admin/Activity/DescriptionController.php
index 517944252b..04d18933c6 100644
--- a/app/Http/Controllers/Admin/Activity/DescriptionController.php
+++ b/app/Http/Controllers/Admin/Activity/DescriptionController.php
@@ -44,13 +44,14 @@ public function edit(int $id): View|RedirectResponse
$element = getElementSchema('description');
$activity = $this->descriptionService->getActivityData($id);
$form = $this->descriptionService->formGenerator($id);
- $data = ['title' => $element['label'], 'name' => 'description'];
+
+ $data = ['title' =>$element['label'], 'name' => 'description'];
return view('admin.activity.description.edit', compact('form', 'activity', 'data'));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering activity description form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.activity_description')]));
}
}
@@ -69,14 +70,14 @@ public function update(DescriptionRequest $request, $id): JsonResponse|RedirectR
$activityDescription = $request->all();
if (!$this->descriptionService->update($activityDescription, $activityData)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating description.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.description')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Description updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.default'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating description.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.description')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/DocumentLinkController.php b/app/Http/Controllers/Admin/Activity/DocumentLinkController.php
index a8fdba6f19..d202531c4f 100644
--- a/app/Http/Controllers/Admin/Activity/DocumentLinkController.php
+++ b/app/Http/Controllers/Admin/Activity/DocumentLinkController.php
@@ -70,7 +70,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering document-link form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.document_link')]));
}
}
@@ -93,12 +93,12 @@ public function update(DocumentLinkRequest $request, $id): JsonResponse|Redirect
$this->db->commit();
- return redirect()->route('admin.activity.show', $id)->with('success', 'Document-link updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.document_link'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
$this->db->rollBack();
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating document-link.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.document_link')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/HumanitarianScopeController.php b/app/Http/Controllers/Admin/Activity/HumanitarianScopeController.php
index 1cd3be8063..a13b767c26 100644
--- a/app/Http/Controllers/Admin/Activity/HumanitarianScopeController.php
+++ b/app/Http/Controllers/Admin/Activity/HumanitarianScopeController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering humanitarian-scope form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.humanitarian_scope')]));
}
}
@@ -66,14 +66,14 @@ public function update(HumanitarianScopeRequest $request, $id): JsonResponse|Red
{
try {
if ($this->humanitarianScopeService->update($id, $request->except(['_token', '_method']))) {
- return redirect()->route('admin.activity.show', $id)->with('success', 'Humanitarian-scope updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.humanitarian_scope'), 'actioned'=>trans('controller.updated')])));
}
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating humanitarian-scope.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.humanitarian_scope')]));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating humanitarian-scope.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.humanitarian_scope')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/IdentifierController.php b/app/Http/Controllers/Admin/Activity/IdentifierController.php
index c5c62f91da..f742825c06 100644
--- a/app/Http/Controllers/Admin/Activity/IdentifierController.php
+++ b/app/Http/Controllers/Admin/Activity/IdentifierController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening activity title form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.activity_title')]));
}
}
@@ -66,15 +66,15 @@ public function update(IdentifierRequest $request, $id): JsonResponse|RedirectRe
{
try {
if (!$this->identifierService->update($id, $request->except(['_method', '_token']))) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating iati-identifier.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.iati_identifier')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Iati-identifier updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.iati_identifier'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
return response()->json(
- ['success' => false, 'error' => 'Error has occurred while updating iati-identifier.']
+ ['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.iati_identifier')])]
);
}
}
diff --git a/app/Http/Controllers/Admin/Activity/IndicatorController.php b/app/Http/Controllers/Admin/Activity/IndicatorController.php
index b4d13846a9..c5033a7918 100644
--- a/app/Http/Controllers/Admin/Activity/IndicatorController.php
+++ b/app/Http/Controllers/Admin/Activity/IndicatorController.php
@@ -91,7 +91,7 @@ public function index($resultId): View|RedirectResponse
return redirect()->route('admin.activity.result.index', $resultId)->with(
'error',
- 'Error has occurred while rendering activity transactions listing.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_transactions_listing')])
);
}
}
@@ -111,13 +111,13 @@ public function getPaginatedIndicators(int $resultId, int $page = 1): JsonRespon
return response()->json([
'success' => true,
- 'message' => 'Indicators fetched successfully',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.indicators'), 'actioned'=>trans('controller.fetched')])),
'data' => $indicator,
]);
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -143,7 +143,7 @@ public function create($resultId): Factory|View|RedirectResponse|Application
return redirect()->route('admin.result.indicator.index', [$resultId])->with(
'error',
- 'Error has occurred while rendering indicator form.'
+ trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.indicator')])
);
}
}
@@ -174,7 +174,7 @@ public function store(IndicatorRequest $request, $resultId): RedirectResponse
return redirect()->route('admin.result.indicator.index', $resultId)->with(
'error',
- 'Error has occurred while creating result indicator.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.creating'), 'suffix'=>trans('controller.result_indicator')])
);
}
}
@@ -195,7 +195,7 @@ public function show($resultId, $indicatorId): Factory|View|RedirectResponse|App
$resultTitle = $result['result']['title'];
$activity = $result->activity;
$period = $this->periodService->getPeriods($indicatorId)->toArray();
- $element = getElementSchema('indicator');
+ $element = hot_swap(getElementSchema('indicator'));
$types = getIndicatorTypes();
$toast = generateToastData();
@@ -205,7 +205,7 @@ public function show($resultId, $indicatorId): Factory|View|RedirectResponse|App
return redirect()->route('admin.result.indicator.index', $resultId)->with(
'error',
- 'Error has occurred while rending result detail page.'
+ trans('controller.error_has_occurred_page', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.result_detail')])
);
}
}
@@ -233,7 +233,7 @@ public function edit($resultId, $indicatorId): Factory|View|RedirectResponse|App
return redirect()->route('admin.result.indicator.index', $resultId)->with(
'error',
- 'Error has occurred while rendering indicator form.'
+ trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.indicator')])
);
}
}
@@ -257,7 +257,7 @@ public function update(IndicatorRequest $request, $resultId, $indicatorId): Redi
if (!$this->indicatorService->update($indicatorId, ['result_id' => $result->id, 'indicator' => $indicatorData])) {
return redirect()->route('admin.result.indicator.index', $resultId)->with(
'error',
- 'Error has occurred while updating result indicator.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.result_indicator')])
);
}
@@ -270,7 +270,7 @@ public function update(IndicatorRequest $request, $resultId, $indicatorId): Redi
return redirect()->route('admin.result.indicator.index', $resultId)->with(
'error',
- 'Error has occurred while updating indicator.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.indicator')])
);
}
}
@@ -287,20 +287,20 @@ public function destroy($id, $indicatorId): JsonResponse
{
try {
$this->indicatorService->deleteIndicator($indicatorId);
- Session::flash('success', 'Indicator Deleted Successfully');
+ Session::flash('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.indicator'), 'actioned'=>trans('controller.deleted')])));
return response()->json([
'status' => true,
- 'msg' => 'Indicator Deleted Successfully',
+ 'msg' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.indicator'), 'actioned'=>trans('controller.deleted')])),
'result_id' => $id,
]);
} catch (Exception $e) {
logger()->error($e->getMessage());
- Session::flash('error', 'Indicator Delete Error');
+ Session::flash('error', ucwords(trans('controller.delete_error', ['prefix'=>trans('el_common.indicator')])));
return response()->json([
'status' => true,
- 'msg' => 'Indicator Delete Error',
+ 'msg' => ucwords(trans('controller.delete_error', ['prefix'=>trans('el_common.indicator')])),
'result_id' => $id,
], 400);
}
diff --git a/app/Http/Controllers/Admin/Activity/LegacyDataController.php b/app/Http/Controllers/Admin/Activity/LegacyDataController.php
index 95747ea60c..c09940e551 100644
--- a/app/Http/Controllers/Admin/Activity/LegacyDataController.php
+++ b/app/Http/Controllers/Admin/Activity/LegacyDataController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering legacy-data form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.legacy_data')]));
}
}
@@ -69,11 +69,11 @@ public function update(LegacyDataRequest $request, $id): JsonResponse|RedirectRe
return redirect()->route('admin.activity.show', $id)->with('success', 'Legacy-data updated successfully.');
}
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating legacy-data.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.legacy_data')]));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating legacy-data.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.legacy_data')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/LocationController.php b/app/Http/Controllers/Admin/Activity/LocationController.php
index 9fb67d08d2..aee9958bc4 100644
--- a/app/Http/Controllers/Admin/Activity/LocationController.php
+++ b/app/Http/Controllers/Admin/Activity/LocationController.php
@@ -51,7 +51,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering location form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.location')]));
}
}
@@ -67,14 +67,14 @@ public function update(LocationRequest $request, $id): JsonResponse|RedirectResp
{
try {
if (!$this->locationService->update($id, $request->except(['_token', '_method']))) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating location.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.location')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Location updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.location'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating location.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.location')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/OtherIdentifierController.php b/app/Http/Controllers/Admin/Activity/OtherIdentifierController.php
index fa5063fa3e..94b37dbf0b 100644
--- a/app/Http/Controllers/Admin/Activity/OtherIdentifierController.php
+++ b/app/Http/Controllers/Admin/Activity/OtherIdentifierController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening other-identifier edit form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.other_identifier')]));
}
}
@@ -66,14 +66,14 @@ public function update(OtherIdentifierRequest $request, $id): JsonResponse|Redir
{
try {
if (!$this->otherIdentifierService->update($id, $request->get('other_identifier'))) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating other-identifier.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.other_identifier')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Other-identifier updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.other_identifier'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating other-identifier.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.other_identifier')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/ParticipatingOrganizationController.php b/app/Http/Controllers/Admin/Activity/ParticipatingOrganizationController.php
index f5a1c62e6f..2af6b19177 100644
--- a/app/Http/Controllers/Admin/Activity/ParticipatingOrganizationController.php
+++ b/app/Http/Controllers/Admin/Activity/ParticipatingOrganizationController.php
@@ -51,7 +51,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering participating-organization form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.participating_organisation')]));
}
}
@@ -67,14 +67,14 @@ public function update(ParticipatingOrganizationRequest $request, $id): JsonResp
{
try {
if (!$this->participatingOrganizationService->update($id, $request->except(['_token', '_method']))) {
- return redirect()->route('admin.activities.show', $id)->with('error', 'Error has occurred while updating participating-organization.');
+ return redirect()->route('admin.activities.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.participating_organisation')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Participating-organization updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.participating_organisation'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating participating-organization.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.participating_organisation')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/PeriodController.php b/app/Http/Controllers/Admin/Activity/PeriodController.php
index 0a4ec80c78..4a1d7c1284 100644
--- a/app/Http/Controllers/Admin/Activity/PeriodController.php
+++ b/app/Http/Controllers/Admin/Activity/PeriodController.php
@@ -77,13 +77,13 @@ public function getPaginatedPeriods(int $indicatorId, int $page = 1): JsonRespon
return response()->json([
'success' => true,
- 'message' => 'Period fetched successfully',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.period'), 'actioned'=>trans('controller.fetched')])),
'data' => $period,
]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -119,7 +119,7 @@ public function index($indicatorId): Factory|View|RedirectResponse|Application
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.indicator.period.index', $indicatorId)->with('error', 'Error has occurred while rendering activity transactions listing.');
+ return redirect()->route('admin.indicator.period.index', $indicatorId)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_transactions_listing')]));
}
}
@@ -143,7 +143,7 @@ public function create($indicatorId): Factory|View|RedirectResponse|Application
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.indicator.period.index', $indicatorId)->with('error', 'Error has occurred while rendering indicator period form.');
+ return redirect()->route('admin.indicator.period.index', $indicatorId)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.indicator_period')]));
}
}
@@ -167,14 +167,14 @@ public function store(PeriodRequest $request, $indicatorId): RedirectResponse
return redirect()->route('admin.indicator.period.show', [$indicatorId, $period['id']])->with(
'success',
- 'Indicator period created successfully.'
+ ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.indicator_period'), 'actioned'=>trans('el_common.created')]))
);
} catch (\Exception $e) {
logger()->error($e->getMessage());
return redirect()->route('admin.indicator.period.index', $indicatorId)->with(
'error',
- 'Error has occurred while creating indicator period.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.creating'), 'suffix'=>trans('controller.indicator_period')])
);
}
}
@@ -205,7 +205,7 @@ public function show($indicatorId, $periodId): Factory|View|RedirectResponse|App
],
];
$period = $this->periodService->getPeriod($periodId);
- $element = getElementSchema('period');
+ $element = hot_swap(getElementSchema('period'));
$types = getPeriodTypes();
$toast = generateToastData();
@@ -215,7 +215,7 @@ public function show($indicatorId, $periodId): Factory|View|RedirectResponse|App
return redirect()->route('admin.indicator.period.index', [$indicatorId])->with(
'error',
- 'Error has occurred while rending result detail page.'
+ trans('controller.error_has_occurred_page', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.result_detail')])
);
}
}
@@ -241,7 +241,7 @@ public function edit($indicatorId, $periodId): Factory|View|RedirectResponse|App
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.indicator.period.index', $indicatorId)->with('error', 'Error has occurred while rendering period form.');
+ return redirect()->route('admin.indicator.period.index', $indicatorId)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.period')]));
}
}
@@ -263,20 +263,20 @@ public function update(PeriodRequest $request, int $indicatorId, int $periodId):
if (!$this->periodService->update($periodId, ['indicator_id' => $indicatorId, 'period' => $periodData])) {
return redirect()->route('admin.indicator.period.index', [$indicatorId])->with(
'error',
- 'Error has occurred while updating indicator period.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.indicator_period')])
);
}
return redirect()->route('admin.indicator.period.show', [$indicatorId, $period['id']])->with(
'success',
- 'Indicator period updated successfully.'
+ ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.indicator_period'), 'actioned'=>trans('el_common.updated')]))
);
} catch (\Exception $e) {
logger()->error($e->getMessage());
return redirect()->route('admin.indicator.period.show', [$indicatorId, $periodId])->with(
'error',
- 'Error has occurred while updating indicator period.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.indicator_period')])
);
}
}
@@ -293,20 +293,20 @@ public function destroy($id, $periodId): JsonResponse
{
try {
$this->periodService->deletePeriod($periodId);
- Session::flash('success', 'Period Deleted Successfully');
+ Session::flash('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.period'), 'actioned'=>trans('controller.deleted')])));
return response()->json([
'status' => true,
- 'msg' => 'Period Deleted Successfully',
+ 'msg' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.period'), 'actioned'=>trans('controller.deleted')])),
'indicator_id' => $id,
]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- Session::flash('error', 'Period Delete Error');
+ Session::flash('error', ucwords(trans('controller.delete_error', ['prefix'=>trans('el_common.period')])));
return response()->json([
'status' => true,
- 'msg' => 'Period Delete Error',
+ 'msg' => ucwords(trans('controller.delete_error', ['prefix'=>trans('el_common.period')])),
'indicator_id' => $id,
], 400);
}
diff --git a/app/Http/Controllers/Admin/Activity/PlannedDisbursementController.php b/app/Http/Controllers/Admin/Activity/PlannedDisbursementController.php
index 5168f8240c..68db2febe0 100644
--- a/app/Http/Controllers/Admin/Activity/PlannedDisbursementController.php
+++ b/app/Http/Controllers/Admin/Activity/PlannedDisbursementController.php
@@ -51,7 +51,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while rendering planned-disbursement form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.planned_disbursement')]));
}
}
@@ -67,14 +67,14 @@ public function update(PlannedDisbursementRequest $request, $id): JsonResponse|R
{
try {
if (!$this->plannedDisbursementService->update($id, $request->except(['_token', '_method']))) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating planned-disbursement.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.planned_disbursement')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Planned-disbursement updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.planned_disbursement'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating planned-disbursement.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.planned_disbursement')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/PolicyMarkerController.php b/app/Http/Controllers/Admin/Activity/PolicyMarkerController.php
index 6a0e521338..1d184c80b2 100644
--- a/app/Http/Controllers/Admin/Activity/PolicyMarkerController.php
+++ b/app/Http/Controllers/Admin/Activity/PolicyMarkerController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening policy-marker form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.policy_maker')]));
}
}
@@ -66,14 +66,14 @@ public function update(PolicyMarkerRequest $request, $id): JsonResponse|Redirect
{
try {
if (!$this->policyMarkerService->update($id, $request->all())) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating policy-marker.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.policy_maker')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Policy-marker updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.policy_maker'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating policy-marker.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.policy_maker')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/RecipientCountryController.php b/app/Http/Controllers/Admin/Activity/RecipientCountryController.php
index ce6f3b9f14..239c8c1614 100644
--- a/app/Http/Controllers/Admin/Activity/RecipientCountryController.php
+++ b/app/Http/Controllers/Admin/Activity/RecipientCountryController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening recipient-country form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.recipient_country')]));
}
}
@@ -66,14 +66,14 @@ public function update(RecipientCountryRequest $request, $id): JsonResponse|Redi
{
try {
if (!$this->recipientCountryService->update($id, $request->all())) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating recipient-country.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.recipient_country')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Recipient-country updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.recipient_country'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating recipient-country.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.recipient_country')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/RecipientRegionController.php b/app/Http/Controllers/Admin/Activity/RecipientRegionController.php
index 25c61cd8d4..d64a380206 100644
--- a/app/Http/Controllers/Admin/Activity/RecipientRegionController.php
+++ b/app/Http/Controllers/Admin/Activity/RecipientRegionController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening recipient-region form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.recipient_region')]));
}
}
@@ -66,14 +66,14 @@ public function update(RecipientRegionRequest $request, $id): JsonResponse|Redir
{
try {
if (!$this->recipientRegionService->update($id, $request->all())) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating recipient-region.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.recipient_region')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Recipient-Region updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.recipient_region'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating recipient-region.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.recipient_region')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/RelatedActivityController.php b/app/Http/Controllers/Admin/Activity/RelatedActivityController.php
index 3d1338a0c9..bdc5a5f17c 100644
--- a/app/Http/Controllers/Admin/Activity/RelatedActivityController.php
+++ b/app/Http/Controllers/Admin/Activity/RelatedActivityController.php
@@ -48,7 +48,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening related-activity form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.related_activity')]));
}
}
@@ -64,14 +64,14 @@ public function update(RelatedActivityRequest $request, $id): JsonResponse|Redir
{
try {
if (!$this->relatedActivityService->update($id, $request->all())) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating related-activity.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.related_activity')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Related-activity updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.related_activity'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating related-activity.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.related_activity')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/ReportingOrgController.php b/app/Http/Controllers/Admin/Activity/ReportingOrgController.php
index f95fe88660..9e0bbdf6a4 100644
--- a/app/Http/Controllers/Admin/Activity/ReportingOrgController.php
+++ b/app/Http/Controllers/Admin/Activity/ReportingOrgController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening activity reporting_org form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.activity_reporting_org')]));
}
}
@@ -66,14 +66,14 @@ public function update(ReportingOrgRequest $request, int $id): RedirectResponse
{
try {
if (!$this->reportingOrgService->update($id, $request->all())) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating reporting-org.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.reporting_organisation')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity reporting-org updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.reporting_organisation'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity reporting-org.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.reporting_organisation')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/ResultController.php b/app/Http/Controllers/Admin/Activity/ResultController.php
index 514e8e73b2..95bd9013f7 100644
--- a/app/Http/Controllers/Admin/Activity/ResultController.php
+++ b/app/Http/Controllers/Admin/Activity/ResultController.php
@@ -65,7 +65,7 @@ public function index($activityId): View|RedirectResponse
return redirect()->route('admin.activity.result.index', $activityId)->with(
'error',
- 'Error has occurred while rendering activity transactions listing.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_transactions_listing')])
);
}
}
@@ -85,13 +85,13 @@ public function getPaginatedResults(int $activityId, int $page = 1): JsonRespons
return response()->json([
'success' => true,
- 'message' => 'Results fetched successfully',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.results'), 'actioned'=>trans('controller.fetched')])),
'data' => $result,
]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -116,7 +116,7 @@ public function create($id): Factory|View|RedirectResponse|Application
return redirect()->route('admin.activity.result.index', $id)->with(
'error',
- 'Error has occurred while rendering activity result form.'
+ trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('el_common.result')])
);
}
}
@@ -140,14 +140,14 @@ public function store(ResultRequest $request, $activityId): RedirectResponse
return redirect()->route('admin.activity.result.show', [$activityId, $result['id']])->with(
'success',
- 'Activity result created successfully.'
+ ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.activity_result'), 'actioned'=>trans('controller.created')]))
);
} catch (\Exception $e) {
logger()->error($e->getMessage());
return redirect()->route('admin.activity.result.index', $activityId)->with(
'error',
- 'Error has occurred while creating activity result.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.creating'), 'suffix'=>trans('controller.activity_result')])
);
}
}
@@ -166,7 +166,7 @@ public function show($activityId, $resultId): View|RedirectResponse
$toast = generateToastData();
$activity = $this->activityService->getActivity($activityId);
$result = $this->resultService->getResultWithIndicatorAndPeriod($resultId, $activityId);
- $element = getElementSchema('result');
+ $element = hot_swap(getElementSchema('result'));
$types = getResultTypes();
return view('admin.activity.result.detail', compact('activity', 'result', 'types', 'toast', 'element'));
@@ -175,7 +175,7 @@ public function show($activityId, $resultId): View|RedirectResponse
return redirect()->route('admin.activity.result.index', $activityId)->with(
'error',
- 'Error has occurred while rending result detail page.'
+ trans('controller.error_has_occurred_page', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.result_detail')])
);
}
}
@@ -202,7 +202,7 @@ public function edit($activityId, $resultId): View|RedirectResponse
return redirect()->route('admin.activity.result.index', $activityId)->with(
'error',
- 'Error has occurred while rendering activity result form.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_result')])
);
}
}
@@ -224,20 +224,20 @@ public function update(ResultRequest $request, $activityId, $resultId): Redirect
if (!$this->resultService->update($resultId, ['activity_id' => $activityId, 'result' => $resultData])) {
return redirect()->route('admin.activity.result.index', $activityId)->with(
'error',
- 'Error has occurred while updating activity result.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_result')])
);
}
return redirect()->route('admin.activity.result.show', [$activityId, $resultId])->with(
'success',
- 'Activity result updated successfully.'
+ ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.activity_result'), 'actioned'=>trans('controller.updated')]))
);
} catch (\Exception $e) {
logger()->error($e->getMessage());
return redirect()->route('admin.activity.result.index', $activityId)->with(
'error',
- 'Error has occurred while updating activity result.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_result')])
);
}
}
@@ -254,20 +254,20 @@ public function destroy($id, $resultId): JsonResponse
{
try {
$this->resultService->deleteResult($resultId);
- Session::flash('success', 'Result Deleted Successfully');
+ Session::flash('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.result'), 'actioned'=>trans('controller.deleted')])));
return response()->json([
'status' => true,
- 'msg' => 'Result Deleted Successfully',
+ 'msg' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.result'), 'actioned'=>trans('controller.deleted')])),
'activity_id' => $id,
]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- Session::flash('error', 'Result Delete Error');
+ Session::flash('error', ucwords(trans('delete_error', ['prefix'=>trans('el_common.result')])));
return response()->json([
'status' => true,
- 'msg' => 'Result Delete Error',
+ 'msg' => ucwords(trans('delete_error', ['prefix'=>trans('el_common.result')])),
'activity_id' => $id,
], 400);
}
diff --git a/app/Http/Controllers/Admin/Activity/ScopeController.php b/app/Http/Controllers/Admin/Activity/ScopeController.php
index 6ad4efe02d..034948c3ef 100644
--- a/app/Http/Controllers/Admin/Activity/ScopeController.php
+++ b/app/Http/Controllers/Admin/Activity/ScopeController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening activity-scope form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.activity_form')]));
}
}
@@ -68,14 +68,14 @@ public function update(ScopeRequest $request, $id): JsonResponse|RedirectRespons
$activityScope = $request->get('activity_scope') !== null ? (int) $request->get('activity_scope') : null;
if (!$this->scopeService->update($id, $activityScope)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity-scope.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.activity_scope')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity-scope updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.activity_scope'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity-scope.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.activity_scope')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/SectorController.php b/app/Http/Controllers/Admin/Activity/SectorController.php
index b424bda623..8dd14fd324 100644
--- a/app/Http/Controllers/Admin/Activity/SectorController.php
+++ b/app/Http/Controllers/Admin/Activity/SectorController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening activity sector form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.activity_sector')]));
}
}
@@ -66,14 +66,14 @@ public function update(SectorRequest $request, $id): JsonResponse|RedirectRespon
{
try {
if (!$this->sectorService->update($id, $request->all())) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity sector.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.activity_sector')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity sector updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.activity_sector'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity sector.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.activity_sector')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/StatusController.php b/app/Http/Controllers/Admin/Activity/StatusController.php
index b657865c44..0f2ab82bd8 100644
--- a/app/Http/Controllers/Admin/Activity/StatusController.php
+++ b/app/Http/Controllers/Admin/Activity/StatusController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse|JsonResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening activity title form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.activity_title')]));
}
}
@@ -68,15 +68,15 @@ public function update(StatusRequest $request, $id): JsonResponse|RedirectRespon
$activityStatus = $request->get('activity_status') !== null ? (int) $request->get('activity_status') : null;
if (!$this->statusService->update($id, $activityStatus)) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity status.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.activity_status')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity status updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.activity_status'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
return response()->json(
- ['success' => false, 'error' => 'Error has occurred while updating activity status.']
+ ['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.activity_status')])]
);
}
}
diff --git a/app/Http/Controllers/Admin/Activity/TagController.php b/app/Http/Controllers/Admin/Activity/TagController.php
index 15bcc2198f..17f66a347c 100644
--- a/app/Http/Controllers/Admin/Activity/TagController.php
+++ b/app/Http/Controllers/Admin/Activity/TagController.php
@@ -50,7 +50,7 @@ public function edit(int $id): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening tag form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.tag')]));
}
}
@@ -66,14 +66,14 @@ public function update(TagRequest $request, $id): JsonResponse|RedirectResponse
{
try {
if (!$this->tagService->update($id, $request->all())) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating tag.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.tag')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Tag updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.tag'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating tag.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.tag')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/TitleController.php b/app/Http/Controllers/Admin/Activity/TitleController.php
index 67c5490ed8..5dec2c1d18 100644
--- a/app/Http/Controllers/Admin/Activity/TitleController.php
+++ b/app/Http/Controllers/Admin/Activity/TitleController.php
@@ -52,7 +52,7 @@ public function edit(int $id): Factory|View|RedirectResponse|Application
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while opening activity title form.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.activity_title')]));
}
}
@@ -68,14 +68,14 @@ public function update(TitleRequest $request, $id): JsonResponse|RedirectRespons
{
try {
if (!$this->titleService->update($id, $request->all())) {
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity title.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_title')]));
}
- return redirect()->route('admin.activity.show', $id)->with('success', 'Activity title updated successfully.');
+ return redirect()->route('admin.activity.show', $id)->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.activity_title'), 'actioned'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activity.show', $id)->with('error', 'Error has occurred while updating activity title.');
+ return redirect()->route('admin.activity.show', $id)->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_title')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Activity/TransactionController.php b/app/Http/Controllers/Admin/Activity/TransactionController.php
index 8667e23eeb..7699107d42 100644
--- a/app/Http/Controllers/Admin/Activity/TransactionController.php
+++ b/app/Http/Controllers/Admin/Activity/TransactionController.php
@@ -74,7 +74,7 @@ public function index($activityId): Factory|View|RedirectResponse|Application
return redirect()->route('admin.activity.show', $activityId)->with(
'error',
- 'Error has occurred while rendering activity transactions listing.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_transactions_listing')])
);
}
}
@@ -94,13 +94,13 @@ public function getPaginatedTransactions(int $activityId, int $page = 1): JsonRe
return response()->json([
'success' => true,
- 'message' => 'Transactions fetched successfully',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.transactions'), 'actioned'=>trans('controller.fetched')])),
'data' => $transaction,
]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -125,7 +125,7 @@ public function create($activityId): Factory|View|RedirectResponse|Application
return redirect()->route('admin.activity.show', $activityId)->with(
'error',
- 'Error has occurred while rendering activity transaction form.'
+ trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_transaction')])
);
}
}
@@ -149,14 +149,14 @@ public function store(TransactionRequest $request, $activityId): RedirectRespons
return redirect()->route('admin.activity.transaction.show', [$activityId, $transaction['id']])->with(
'success',
- 'Activity transaction created successfully.'
+ ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.activity_transaction'), 'actioned'=>trans('controller.created')]))
);
} catch (\Exception $e) {
logger()->error($e->getMessage());
return redirect()->route('admin.activity.transaction.index', $activityId)->with(
'error',
- 'Error has occurred while creating activity transaction.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.creating'), 'suffix'=>trans('controller.activity_transaction')])
);
}
}
@@ -174,7 +174,7 @@ public function show($activityId, $transactionId): Factory|View|RedirectResponse
try {
$activity = $this->activityService->getActivity($activityId);
$transaction = $this->transactionService->getTransaction($transactionId);
- $element = getElementSchema('transactions');
+ $element = hot_swap(getElementSchema('transactions'));
$types = getTransactionTypes();
$toast = generateToastData();
@@ -184,7 +184,7 @@ public function show($activityId, $transactionId): Factory|View|RedirectResponse
return redirect()->route('admin.activity.transaction.index', $activityId)->with(
'error',
- 'Error has occurred while rending transaction detail page.'
+ trans('controller.error_has_occurred_page', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.transaction_detail')])
);
}
}
@@ -211,7 +211,7 @@ public function edit($activityId, $transactionId): Factory|View|RedirectResponse
return redirect()->route('admin.activity.transaction.index', $activityId)->with(
'error',
- 'Error has occurred while rendering activity transaction form.'
+ trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_transaction')])
);
}
}
@@ -231,7 +231,7 @@ public function update(TransactionRequest $request, $activityId, $transactionId)
if (!$this->transactionService->update($transactionId, $request->except(['_method', '_token']))) {
return redirect()->route('admin.activity.transaction.index', $activityId)->with(
'error',
- 'Error has occurred while updating activity transaction.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_transaction')])
);
}
@@ -244,7 +244,7 @@ public function update(TransactionRequest $request, $activityId, $transactionId)
return redirect()->route('admin.activity.transaction.index', $activityId)->with(
'error',
- 'Error has occurred while updating activity transaction.'
+ trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.activity_transaction')])
);
}
}
@@ -262,20 +262,20 @@ public function destroy($id, $transactionId): JsonResponse
try {
$this->transactionService->deleteTransaction($transactionId);
- Session::flash('success', 'Transaction Deleted Successfully');
+ Session::flash('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.transaction'), 'actioned'=>trans('controller.deleted')])));
return response()->json([
'status' => true,
- 'msg' => 'Transaction Deleted Successfully',
+ 'msg' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.transaction'), 'actioned'=>trans('controller.deleted')])),
'activity_id' => $id,
]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- Session::flash('error', 'Transaction Delete Error');
+ Session::flash('error', ucwords(trans('delete_error', ['prefix'=>trans('el_common.transaction')])));
return response()->json([
'status' => false,
- 'msg' => 'Transaction Delete Error',
+ 'msg' => ucwords(trans('delete_error', ['prefix'=>trans('el_common.transaction')])),
'activity_id' => $id,
], 400);
}
diff --git a/app/Http/Controllers/Admin/Download/DownloadActivityController.php b/app/Http/Controllers/Admin/Download/DownloadActivityController.php
index 5f32c94fdb..3339413808 100644
--- a/app/Http/Controllers/Admin/Download/DownloadActivityController.php
+++ b/app/Http/Controllers/Admin/Download/DownloadActivityController.php
@@ -72,7 +72,7 @@ public function downloadActivityCsv(Request $request): BinaryFileResponse|JsonRe
}
if (!isset($activities) || !count($activities)) {
- return response()->json(['success' => false, 'message' => 'No activities selected.']);
+ return response()->json(['success' => false, 'message' => trans('controller.no_activities_selected')]);
}
$csvData = $this->downloadActivityService->getCsvData($activities);
@@ -81,7 +81,7 @@ public function downloadActivityCsv(Request $request): BinaryFileResponse|JsonRe
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occurred while downloading activity csv.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.downloading'), 'suffix'=>trans('controller.activity_csv')])]);
}
}
@@ -107,7 +107,7 @@ public function downloadActivityXml(Request $request, bool $download = false): R
}
if (!isset($activities) || !count($activities)) {
- return response()->json(['success' => false, 'message' => 'No activities selected.']);
+ return response()->json(['success' => false, 'message' => trans('controller.no_activities_selected')]);
}
$mergedContent = $this->downloadActivityService->getCombinedXmlFile($activities);
@@ -127,7 +127,7 @@ public function downloadActivityXml(Request $request, bool $download = false): R
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occurred while downloading activity csv.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.downloading'), 'suffix'=>trans('controller.activity_csv')])]);
}
}
diff --git a/app/Http/Controllers/Admin/ImportActivity/ImportActivityController.php b/app/Http/Controllers/Admin/ImportActivity/ImportActivityController.php
index f4d6c28204..c25c62c3be 100644
--- a/app/Http/Controllers/Admin/ImportActivity/ImportActivityController.php
+++ b/app/Http/Controllers/Admin/ImportActivity/ImportActivityController.php
@@ -82,7 +82,7 @@ public function index(): View|JsonResponse|RedirectResponse
{
try {
if (!Auth::user()->organization_id) {
- Session::put('error', 'User is not associated with any organization.');
+ Session::put('error', trans('controller.user_not_associated'));
return redirect()->route('admin.activities.index');
}
@@ -91,7 +91,7 @@ public function index(): View|JsonResponse|RedirectResponse
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'error' => 'Error has occurred while rendering activity import page.']);
+ return response()->json(['success' => false, 'error' => trans('controller.error_has_occurred_form', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_import')])]);
}
}
@@ -117,7 +117,7 @@ public function store(ImportActivityRequest $request): JsonResponse
}
} else {
if ($this->importCsvService->isCsvFileEmpty($file)) {
- $response = ['success' => false, 'type' => 'danger', 'code' => ['message', ['message' => trans('Data not available')]], 'error' => trans('Data not available')];
+ $response = ['success' => false, 'type' => 'danger', 'code' => ['message', ['message' => trans(trans('controller.data_not_available'))]], 'error' => trans(trans('controller.data_not_available'))];
return response()->json($response);
}
@@ -131,11 +131,11 @@ public function store(ImportActivityRequest $request): JsonResponse
}
}
- return response()->json(['success' => true, 'message' => 'Uploaded successfully', 'type' => $filetype]);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.action_failed', ['prefix'=>'', 'action'=>trans('controller.uploaded')])), 'type' => $filetype]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'error' => 'Error has occurred while rendering activity import page.']);
+ return response()->json(['success' => false, 'error' => trans('controller.error_has_occurred_page', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.activity_import')])]);
}
}
@@ -171,10 +171,10 @@ public function importValidatedActivities(Request $request): mixed
return response()->json(['success' => true, 'message' => 'Imported successfully', 'type' => $filetype]);
} catch (\Exception $e) {
- Session::put('error', 'Error occurred while importing activity');
+ Session::put('error', trans('controller.error_has_occurred', ['action'=>trans('controller.importing'), 'suffix'=>trans('el_common.activity')]));
logger()->error($e->getMessage());
- return redirect()->back()->withResponse(['success' => false, 'message' => 'Error has occurred while importing activity.']);
+ return redirect()->back()->withResponse(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.importing'), 'suffix'=>trans('el_common.activity')])]);
}
}
@@ -190,7 +190,7 @@ public function status(): View|RedirectResponse
$orgId = Auth::user()->organization_id;
if (!$orgId) {
- Session::put('error', 'User is not associated with any organization.');
+ Session::put('error', trans('controller.user_not_associated'));
return redirect()->route('admin.activities.index');
}
@@ -227,7 +227,7 @@ public function status(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activities.index')->withResponse(['success' => false, 'error' => 'Error has occurred while checking the status.']);
+ return redirect()->route('admin.activities.index')->withResponse(['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.checking'), 'suffix'=>trans('controller.the_status')])]);
}
}
@@ -242,9 +242,9 @@ public function checkStatus(): JsonResponse
$filetype = Session::get('import_filetype');
if (!$filetype) {
- Session::put('error', 'Please upload csv or xml file to import activity.');
+ Session::put('error', trans('controller.please_upload_csc_or_xml'));
- return response()->json(['status' => 'error', 'message' => 'Please upload csv or xml file to import activity.']);
+ return response()->json(['status' => 'error', 'message' => trans('controller.please_upload_csc_or_xml')]);
}
if ($filetype === 'xml') {
@@ -258,7 +258,7 @@ public function checkStatus(): JsonResponse
$status = strcasecmp($result->message, 'Complete') === 0;
if (!$data) {
- Session::put('error', 'Error has occurred while importing activities.');
+ Session::put('error', trans('controller.error_has_occurred', ['action'=>trans('controller.importing'), 'suffix'=>trans('el_common.activities')]));
}
return response()->json(['status' => $status, 'data' => $data]);
diff --git a/app/Http/Controllers/Admin/Organization/DocumentLinkController.php b/app/Http/Controllers/Admin/Organization/DocumentLinkController.php
index d79e8cd5c2..bf20c88a2e 100644
--- a/app/Http/Controllers/Admin/Organization/DocumentLinkController.php
+++ b/app/Http/Controllers/Admin/Organization/DocumentLinkController.php
@@ -50,7 +50,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while opening organization document-link form.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.org_document_link')]));
}
}
@@ -65,14 +65,14 @@ public function update(DocumentLinkRequest $request): RedirectResponse
{
try {
if (!$this->documentLinkService->update(Auth::user()->organization_id, $request->all())) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization document-link.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_document_link')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization document-link updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.org_document_link', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization document-link.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_document_link')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Organization/NameController.php b/app/Http/Controllers/Admin/Organization/NameController.php
index d7498c672c..e5b6e5241e 100644
--- a/app/Http/Controllers/Admin/Organization/NameController.php
+++ b/app/Http/Controllers/Admin/Organization/NameController.php
@@ -49,7 +49,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while opening organization name form.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.org_name')]));
}
}
@@ -64,14 +64,14 @@ public function update(NameRequest $request): RedirectResponse
{
try {
if (!$this->nameService->update(Auth::user()->organization_id, $request->all())) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization name.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.org_name')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization name updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'el_common.organisation_name', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization name.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.org_name')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Organization/OrganizationController.php b/app/Http/Controllers/Admin/Organization/OrganizationController.php
index 738fe3704b..2e0e16fd50 100644
--- a/app/Http/Controllers/Admin/Organization/OrganizationController.php
+++ b/app/Http/Controllers/Admin/Organization/OrganizationController.php
@@ -73,7 +73,7 @@ public function show(): View|RedirectResponse
try {
$toast['message'] = Session::has('error') ? Session::get('error') : (Session::get('success') ? Session::get('success') : '');
$toast['type'] = Session::has('error') ? 'error' : 'success';
- $elements = json_decode(file_get_contents(app_path('IATI/Data/organizationElementJsonSchema.json')), true, 512, JSON_THROW_ON_ERROR);
+ $elements = hot_swap(json_decode(file_get_contents(app_path('IATI/Data/organizationElementJsonSchema.json')), true, 512, JSON_THROW_ON_ERROR));
$elementGroups = json_decode(file_get_contents(app_path('Data/Organization/OrganisationElementsGroup.json')), true, 512, JSON_THROW_ON_ERROR);
$types = $this->organizationService->getOrganizationTypes();
$organization = $this->organizationService->getOrganizationData(Auth::user()->organization_id);
@@ -86,7 +86,7 @@ public function show(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activities.index')->with('error', 'Error has occurred while opening organization detail page.');
+ return redirect()->route('admin.activities.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.org_detail')]));
}
}
@@ -144,7 +144,7 @@ public function getRegistrationAgency($country_code): array
}
}
- return ['message' => 'Filtered Agency successfully fetched', 'data' => $filtered_agency];
+ return ['message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.filtered_agency', 'suffix'=>trans('controller.fetched')])), 'data' => $filtered_agency];
}
/**
@@ -162,7 +162,7 @@ public function getPublisherStatus(): JsonResponse
return response()->json([
'success' => true,
- 'message' => 'Publisher status successfully retrieved.',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.publisher_status', 'suffix'=>trans('controller.retrieved')])),
'data' => ['publisher_active' => $status],
]);
} catch (\Exception $e) {
diff --git a/app/Http/Controllers/Admin/Organization/OrganizationIdentifierController.php b/app/Http/Controllers/Admin/Organization/OrganizationIdentifierController.php
index e18fc76ca9..5a25387387 100644
--- a/app/Http/Controllers/Admin/Organization/OrganizationIdentifierController.php
+++ b/app/Http/Controllers/Admin/Organization/OrganizationIdentifierController.php
@@ -51,7 +51,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activities.show', $id)->with('error', 'Error has occurred while opening organization identifier form.');
+ return redirect()->route('admin.activities.show', $id)->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.organisation_identifier')]));
}
}
@@ -70,18 +70,18 @@ public function update(OrganizationIdentifierRequest $request): RedirectResponse
$organizationIdentifier = $request->all();
if (!$this->verifyPublisher($organizationIdentifier)) {
- return redirect()->route('admin.organisation.identifier.edit')->with('error', 'Please enter correct identifier as present in IATI Registry.')->withInput();
+ return redirect()->route('admin.organisation.identifier.edit')->with('error', trans('controller.enter_correct_identifier'))->withInput();
}
if (!$this->organizationIdentifierService->update($id, $organizationIdentifier)) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization identifier.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.organisation_identifier')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization identifier updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'el_common.organisation_identifier', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization identifier.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.organisation_identifier')]));
}
}
diff --git a/app/Http/Controllers/Admin/Organization/RecipientCountryBudgetController.php b/app/Http/Controllers/Admin/Organization/RecipientCountryBudgetController.php
index 57dd1c4804..584bfbc78a 100644
--- a/app/Http/Controllers/Admin/Organization/RecipientCountryBudgetController.php
+++ b/app/Http/Controllers/Admin/Organization/RecipientCountryBudgetController.php
@@ -49,7 +49,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while opening organization recipient-country-budget form.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('el_common.org_recipient_country_budget')]));
}
}
@@ -64,14 +64,14 @@ public function update(RecipientCountryBudgetRequest $request): RedirectResponse
{
try {
if (!$this->recipientCountryBudgetService->update(Auth::user()->organization_id, $request->all())) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization recipient-country-budget.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.org_recipient_country_budget')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization recipient-country-budget updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.org_recipient_country_budget', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization recipient-country-budget.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('el_common.org_recipient_country_budget')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Organization/RecipientOrgBudgetController.php b/app/Http/Controllers/Admin/Organization/RecipientOrgBudgetController.php
index f81b269ceb..8ded1b3dd4 100644
--- a/app/Http/Controllers/Admin/Organization/RecipientOrgBudgetController.php
+++ b/app/Http/Controllers/Admin/Organization/RecipientOrgBudgetController.php
@@ -49,7 +49,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while opening organization recipient-org-budget form.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.org_recipient_org_budget')]));
}
}
@@ -64,14 +64,14 @@ public function update(RecipientOrgBudgetRequest $request): RedirectResponse
{
try {
if (!$this->recipientOrgBudgetService->update(Auth::user()->organization_id, $request->all())) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization recipient-org-budget.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_recipient_org_budget')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization recipient-org-budget updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.org_recipient_org_budget', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization recipient-org-budget.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_recipient_org_budget')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Organization/RecipientRegionBudgetController.php b/app/Http/Controllers/Admin/Organization/RecipientRegionBudgetController.php
index b9a58bc1ae..0b56de2fcf 100644
--- a/app/Http/Controllers/Admin/Organization/RecipientRegionBudgetController.php
+++ b/app/Http/Controllers/Admin/Organization/RecipientRegionBudgetController.php
@@ -49,7 +49,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while opening organization recipient-region-budget form.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.org_recipient_region_budget')]));
}
}
@@ -64,14 +64,14 @@ public function update(RecipientRegionBudgetRequest $request): RedirectResponse
{
try {
if (!$this->recipientRegionBudgetService->update(Auth::user()->organization_id, $request->all())) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization recipient-region-budget.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_recipient_region_budget')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization recipient-region-budget updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.org_recipient_region_budget', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization recipient-region-budget.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_recipient_region_budget')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Organization/ReportingOrgController.php b/app/Http/Controllers/Admin/Organization/ReportingOrgController.php
index a817ccf6ef..a9b8972bd3 100644
--- a/app/Http/Controllers/Admin/Organization/ReportingOrgController.php
+++ b/app/Http/Controllers/Admin/Organization/ReportingOrgController.php
@@ -49,7 +49,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while opening organization reporting_org form.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.org_reporting_org')]));
}
}
@@ -64,14 +64,14 @@ public function update(ReportingOrgRequest $request): RedirectResponse
{
try {
if (!$this->reportingOrgService->update(Auth::user()->organization_id, $request->all())) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization reporting_org.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_reporting_org')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization reporting_org updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.org_reporting_org', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization reporting_org.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_reporting_org')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Organization/TotalBudgetController.php b/app/Http/Controllers/Admin/Organization/TotalBudgetController.php
index cadd75d1a8..53745052ac 100644
--- a/app/Http/Controllers/Admin/Organization/TotalBudgetController.php
+++ b/app/Http/Controllers/Admin/Organization/TotalBudgetController.php
@@ -46,7 +46,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while opening organization reporting_org form.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.org_reporting_org')]));
}
}
@@ -61,14 +61,14 @@ public function update(TotalBudgetRequest $request): RedirectResponse
{
try {
if (!$this->totalBudgetService->update(Auth::user()->organization_id, $request->all())) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization total-budget.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_total_budget')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization total-budget updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.org_total_budget', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization total-budget.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_total_budget')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Organization/TotalExpenditureController.php b/app/Http/Controllers/Admin/Organization/TotalExpenditureController.php
index a09203c2b0..5d24a594c4 100644
--- a/app/Http/Controllers/Admin/Organization/TotalExpenditureController.php
+++ b/app/Http/Controllers/Admin/Organization/TotalExpenditureController.php
@@ -49,7 +49,7 @@ public function edit(): View|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while opening organization total-expenditure form.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred_form', ['action'=>trans('controller.opening'), 'suffix'=>trans('controller.org_total_expenditure')]));
}
}
@@ -64,14 +64,14 @@ public function update(TotalExpenditureRequest $request): RedirectResponse
{
try {
if (!$this->totalExpenditureService->update(Auth::user()->organization_id, $request->all())) {
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization total-expenditure.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_total_expenditure')]));
}
- return redirect()->route('admin.organisation.index')->with('success', 'Organization total-expenditure updated successfully.');
+ return redirect()->route('admin.organisation.index')->with('success', ucfirst(trans('controller.actioned_successfully', ['prefix'=>'controller.org_total_expenditure', 'suffix'=>trans('controller.updated')])));
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.organisation.index')->with('error', 'Error has occurred while updating organization total-expenditure.');
+ return redirect()->route('admin.organisation.index')->with('error', trans('controller.error_has_occurred', ['action'=>trans('controller.updating'), 'suffix'=>trans('controller.org_total_expenditure')]));
}
}
}
diff --git a/app/Http/Controllers/Admin/Setting/SettingController.php b/app/Http/Controllers/Admin/Setting/SettingController.php
index f008deee7c..b0346d6caa 100644
--- a/app/Http/Controllers/Admin/Setting/SettingController.php
+++ b/app/Http/Controllers/Admin/Setting/SettingController.php
@@ -59,7 +59,7 @@ public function index(): Factory|View|Application|RedirectResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return redirect()->route('admin.activities.index')->with('error', 'Error while rendering setting page');
+ return redirect()->route('admin.activities.index')->with('error', trans('controller.error_has_occurred_page', ['action'=>trans('controller.rendering'), 'suffix'=>trans('controller.setting')]));
}
}
@@ -71,11 +71,11 @@ public function getSetting(): JsonResponse
try {
$setting = $this->settingService->getSetting();
- return response()->json(['success' => true, 'message' => 'Settings fetched successfully', 'data' => $setting]);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('settings.settings_label'), 'actioned'=>trans('controller.fetched')])), 'data' => $setting]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -96,15 +96,15 @@ public function verify(PublisherFormRequest $request): JsonResponse
$publisherData['publisher_verification'] = ($this->verifyPublisher($publisherData))['validation'];
$publisherData['token_verification'] = ($this->verifyApi($publisherData))['validation'];
$message = $publisherData['publisher_verification'] ?
- ($publisherData['token_verification'] ? 'API token verified successfully' : 'API token incorrect. Please enter valid API token.')
- : 'API token incorrect. Please make sure that your publisher is approved in IATI Registry.';
+ ($publisherData['token_verification'] ? trans('controller.actioned_successfully', ['prefix'=>trans('controller.api_token'), 'actioned'=>trans('controller.verified')]) : trans('controller.api_token_incorrect') . ' ' . trans('controller.enter_valid_api_token'))
+ : trans('controller.api_token_incorrect') . ' ' . trans('controller.make_sure_publisher_is_approved');
$success = $publisherData['publisher_verification'] && $publisherData['token_verification'];
return response()->json(['success' => $success, 'message' => $message, 'data' => $publisherData]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while verify publisher']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.verifying'), 'suffix'=>trans('el_common.publisher')])]);
}
}
@@ -134,13 +134,13 @@ public function storePublishingInfo(PublisherFormRequest $request): JsonResponse
$this->db->commit();
- return response()->json(['success' => true, 'message' => 'Publisher setting stored successfully', 'data' => $publisherData]);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.publisher_setting'), 'actioned'=>trans('controller.stored')])), 'data' => $publisherData]);
}
return response()->json(
[
'success' => false,
- 'message' => 'Error occurred while verifying data',
+ 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.verifying'), 'suffix'=>trans('controller.the_data')]),
'data' => $publisherData,
'error' => ['token' => $token_verification, 'publisher_verification' => $publisher_verification],
]
@@ -148,7 +148,7 @@ public function storePublishingInfo(PublisherFormRequest $request): JsonResponse
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while storing setting']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.storing'), 'suffix'=>trans('controller.setting')])]);
}
}
@@ -169,12 +169,12 @@ public function storeDefaultForm(DefaultFormRequest $request): JsonResponse
$this->db->commit();
- return response()->json(['success' => true, 'message' => 'Default setting stored successfully', 'data' => $setting]);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.default_settings'), 'actioned'=>trans('controller.stored')])), 'data' => $setting]);
} catch (\Exception $e) {
$this->db->rollBack();
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while storing setting']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.storing'), 'suffix'=>trans('controller.setting')])]);
}
}
@@ -265,7 +265,7 @@ public function getSettingStatus(): JsonResponse
return response()->json([
'success' => true,
- 'message' => 'Setting status successfully retrieved.',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.setting_status'), 'actioned'=>trans('controller.retrieved')])),
'data' => $status,
]);
} catch (\Exception $e) {
diff --git a/app/Http/Controllers/Admin/User/UserController.php b/app/Http/Controllers/Admin/User/UserController.php
index 85cae388a1..f0414c16d8 100644
--- a/app/Http/Controllers/Admin/User/UserController.php
+++ b/app/Http/Controllers/Admin/User/UserController.php
@@ -54,7 +54,7 @@ public function getUserVerificationStatus(): JsonResponse
return response()->json([
'success' => true,
- 'message' => 'User status successfully retrieved.',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.user_status'), 'actioned'=>trans('controller.retrieved')])),
'data' => ['account_verified' => $status],
]);
} catch (\Exception $e) {
@@ -81,7 +81,7 @@ public function resendVerificationEmail(): JsonResponse
return response()->json([
'success' => true,
- 'message' => 'Verification email successfully sent.',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.verification_email'), 'actioned'=>trans('controller.sent')])),
]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
diff --git a/app/Http/Controllers/Admin/Workflow/ActivityWorkflowController.php b/app/Http/Controllers/Admin/Workflow/ActivityWorkflowController.php
index c69bbb3e59..897c16bf49 100644
--- a/app/Http/Controllers/Admin/Workflow/ActivityWorkflowController.php
+++ b/app/Http/Controllers/Admin/Workflow/ActivityWorkflowController.php
@@ -64,7 +64,7 @@ public function publish($id): JsonResponse
DB::commit();
Session::put('success', 'Activity has been published successfully.');
- return response()->json(['success' => true, 'message' => 'Activity has been published successfully.']);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.has_been_actioned_successfully', ['prefix'=>trans('el_common.activity'), 'actioned'=>trans('controller.published')]))]);
} catch (PublisherNotFound $message) {
DB::rollBack();
logger()->error($message->getMessage());
@@ -74,9 +74,9 @@ public function publish($id): JsonResponse
} catch (\Exception $e) {
DB::rollBack();
logger()->error($e->getMessage());
- Session::put('error', 'Error has occurred while publishing activity.');
+ Session::put('error', trans('controller.error_has_occurred', ['action'=>trans('controller.publishing'), 'suffix'=>trans('el_common.activity')]));
- return response()->json(['success' => false, 'message' => 'Error has occurred while publishing activity.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.publishing'), 'suffix'=>trans('el_common.activity')])]);
}
}
@@ -94,22 +94,22 @@ public function unpublish($id): JsonResponse
$activity = $this->activityWorkflowService->findActivity($id);
if (!$activity->linked_to_iati) {
- Session::put('error', 'This activity has not been published to un-publish.');
+ Session::put('error', trans('activity_not_been_published_to_unpublish'));
- return response()->json(['success' => false, 'message' => 'This activity has not been published to un-publish.']);
+ return response()->json(['success' => false, 'message' => trans('activity_not_been_published_to_unpublish')]);
}
$this->activityWorkflowService->unpublishActivity($activity);
DB::commit();
- Session::put('success', 'Activity has been un-published successfully.');
+ Session::put('success', ucfirst(trans('controller.has_been_actioned_successfully', ['prefix'=>trans('el_common.activity'), 'actioned'=>trans('controller.unpublished')])));
- return response()->json(['success' => true, 'message' => 'Activity has been un-published successfully.']);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.has_been_actioned_successfully', ['prefix'=>trans('el_common.activity'), 'actioned'=>trans('controller.unpublished')]))]);
} catch (\Exception $e) {
DB::rollBack();
logger()->error($e->getMessage());
- Session::put('error', 'Error has occurred while un-publishing activity.');
+ Session::put('error', trans('controller.error_has_occurred', ['action'=>trans('controller.unpublishing'), 'suffix'=>trans('el_common.activity')]));
- return response()->json(['success' => false, 'message' => 'Error has occurred while un-publishing activity.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.unpublishing'), 'suffix'=>trans('el_common.activity')])]);
}
}
@@ -139,7 +139,7 @@ public function validateActivity($id): JsonResponse
return response()->json(json_decode($response, true, 512, JSON_THROW_ON_ERROR));
}
- return response()->json(['success' => false, 'error' => 'Error has occurred while validating activity.']);
+ return response()->json(['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.validating'), 'suffix'=>trans('el_common.activity')])]);
} catch (BadResponseException $ex) {
if ($ex->getCode() === 422) {
$response = $ex->getResponse()->getBody()->getContents();
@@ -149,11 +149,11 @@ public function validateActivity($id): JsonResponse
}
}
- return response()->json(['success' => false, 'error' => 'Error has occurred while validating activity.']);
+ return response()->json(['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.validating'), 'suffix'=>trans('el_common.activity')])]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'error' => 'Error has occurred while validating activity.']);
+ return response()->json(['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.validating'), 'suffix'=>trans('el_common.activity')])]);
}
}
@@ -171,11 +171,11 @@ public function checksForActivityPublish(): JsonResponse
return response()->json(['success' => false, 'message' => $message]);
}
- return response()->json(['success' => true, 'message' => 'Activity is ready to be published.']);
+ return response()->json(['success' => true, 'message' => trans('activity_ready_to_publish')]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occurred while checking activity.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.checking'), 'suffix'=>trans('el_common.activity')])]);
}
}
}
diff --git a/app/Http/Controllers/Admin/Workflow/BulkPublishingController.php b/app/Http/Controllers/Admin/Workflow/BulkPublishingController.php
index 37f5245bf0..a0b36c064a 100644
--- a/app/Http/Controllers/Admin/Workflow/BulkPublishingController.php
+++ b/app/Http/Controllers/Admin/Workflow/BulkPublishingController.php
@@ -84,20 +84,20 @@ public function checkCoreElementsCompleted(Request $request): JsonResponse
}
if ($this->publishingStatusService->ongoingBulkPublishing(auth()->user()->organization->id)) {
- return response()->json(['success' => false, 'message' => 'Another bulk publishing is already in progress.']);
+ return response()->json(['success' => false, 'message' => trans('another_bulk_publ_in_process')]);
}
$activityIds = json_decode($request->get('activities'), true, 512, JSON_THROW_ON_ERROR);
if (!empty($activityIds)) {
- return response()->json(['success' => true, 'message' => 'Retrieved data successfully.', 'data' => $this->bulkPublishingService->getCoreElementsCompletedArray($activityIds)]);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.has_been_actioned_successfully', ['prefix'=>trans('controller.the_data'), 'actioned'=>trans('controller.retrieved')])), 'data' => $this->bulkPublishingService->getCoreElementsCompletedArray($activityIds)]);
}
- return response()->json(['success' => false, 'message' => 'No activities selected.']);
+ return response()->json(['success' => false, 'message' => trans('controller.no_activities_selected')]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occurred while checking core elements completed.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.checking'), 'suffix'=>trans('common.core_completed_title')])]);
}
}
@@ -130,18 +130,18 @@ public function validateActivities(Request $request): JsonResponse
DB::commit();
if (!Arr::get($validationResponse, 'success', true)) {
- return response()->json(['success' => false, 'message' => 'Activities validation failed.']);
+ return response()->json(['success' => false, 'message' => trans('controller.action_failed', ['prefix' => trans('el_common.activities'), 'actioned' => trans('controller.validation')])]);
}
- return response()->json(['success' => true, 'message' => 'Activities validated successfully.', 'data' => $validationResponse]);
+ return response()->json(['success' => true, 'message' => trans('controller.actioned_successfully', ['prefix' => trans('el_common.activities'), 'actioned' => trans('controller.validated')]), 'data' => $validationResponse]);
}
- return response()->json(['success' => false, 'message' => 'No activities selected.']);
+ return response()->json(['success' => false, 'message' => trans('controller.no_activities_selected')]);
} catch (\Exception $e) {
DB::rollBack();
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occurred while validating activities.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.validating'), 'suffix'=>trans('el_common.activities')])]);
}
}
@@ -168,7 +168,7 @@ public function startBulkPublish(Request $request): JsonResponse
}
if ($this->publishingStatusService->ongoingBulkPublishing(auth()->user()->organization->id)) {
- return response()->json(['success' => false, 'message' => 'Another bulk publishing is already in progress.']);
+ return response()->json(['success' => false, 'message' => trans('another_bulk_publ_in_process')]);
}
$activityIds = json_decode($request->get('activities'), false, 512, JSON_THROW_ON_ERROR);
@@ -177,7 +177,7 @@ public function startBulkPublish(Request $request): JsonResponse
$activities = $this->activityService->getActivitiesHavingIds($activityIds);
if (!count($activities)) {
- return response()->json(['success' => false, 'message' => 'No activities selected.']);
+ return response()->json(['success' => false, 'message' => trans('controller.no_activities_selected')]);
}
$response = $this->bulkPublishingService->generateInitialBulkPublishingResponse($activities);
@@ -185,15 +185,15 @@ public function startBulkPublish(Request $request): JsonResponse
dispatch(new BulkPublishActivities($activities, $response['organization_id'], $response['job_batch_uuid']));
DB::commit();
- return response()->json(['success' => true, 'message' => 'Bulk publishing started', 'data' => $response]);
+ return response()->json(['success' => true, 'message' => trans('controller.bulk_publishing', ['suffix'=>trans('controller.started')]), 'data' => $response]);
}
- return response()->json(['success' => false, 'message' => 'No activities selected.']);
+ return response()->json(['success' => false, 'message' => trans('controller.no_activities_selected')]);
} catch (\Exception $e) {
DB::rollBack();
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Bulk publishing failed.']);
+ return response()->json(['success' => false, 'message' => trans('controller.bulk_publishing', ['suffix'=>trans('controller.failed')])]);
}
}
@@ -219,18 +219,18 @@ public function getBulkPublishStatus(): JsonResponse
return response()->json(['success' => true, 'message' => $response['message'], 'data' => $response]);
}
- return response()->json(['success' => true, 'message' => 'No bulk publishing in process.']);
+ return response()->json(['success' => true, 'message' => trans('controller.no_publishing_in_process')]);
}
- return response()->json(['success' => false, 'message' => 'Insufficient data.']);
+ return response()->json(['success' => false, 'message' => trans('controller.insufficient_data')]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Status generation failed.']);
+ return response()->json(['success' => false, 'message' => trans('controller.status_generation_failed')]);
} catch (NotFoundExceptionInterface | ContainerExceptionInterface $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Request error']);
+ return response()->json(['success' => false, 'message' => trans('controller.request_error')]);
}
}
}
diff --git a/app/Http/Controllers/Admin/Workflow/OrganizationWorkflowController.php b/app/Http/Controllers/Admin/Workflow/OrganizationWorkflowController.php
index 1e55e67e00..53451247d3 100644
--- a/app/Http/Controllers/Admin/Workflow/OrganizationWorkflowController.php
+++ b/app/Http/Controllers/Admin/Workflow/OrganizationWorkflowController.php
@@ -61,7 +61,7 @@ public function publish(): JsonResponse
$this->organizationWorkflowService->publishOrganization($organization);
DB::commit();
- return response()->json(['success' => true, 'message' => 'Organization has been published successfully.']);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.organisation'), 'actioned'=>trans('controller.published')]))]);
} catch (PublisherNotFound $message) {
DB::rollBack();
logger()->error($message->getMessage());
@@ -71,7 +71,7 @@ public function publish(): JsonResponse
DB::rollBack();
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occurred while publishing organization.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.publishing'), 'suffix'=>trans('el_common.organisation')])]);
}
}
@@ -87,18 +87,18 @@ public function unPublish(): JsonResponse|RedirectResponse
$organization = Auth::user()->organization;
if (!$organization->is_published && $organization->status === 'draft') {
- return redirect()->route('admin.activities.index')->with('error', 'This organization has not been published to un-publish.');
+ return redirect()->route('admin.activities.index')->with('error', trans('org_not_been_published_to_unpublish'));
}
$this->organizationWorkflowService->unpublishOrganization($organization);
DB::commit();
- return response()->json(['success' => true, 'message' => 'Organization has been un-published successfully.']);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.organisation'), 'actioned'=>trans('controller.unpublished')]))]);
} catch (\Exception $e) {
DB::rollBack();
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occurred while un-publishing organization.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.unpublishing'), 'suffix'=>trans('el_common.organisation')])]);
}
}
@@ -111,6 +111,6 @@ public function checksForOrganizationPublish(): JsonResponse
{
$message = $this->activityWorkflowService->getPublishErrorMessage(auth()->user()->organization, 'organization');
- return !empty($message) ? response()->json(['success' => false, 'message' => $message]) : response()->json(['success' => true, 'message' => 'Organization is ready to be published.']);
+ return !empty($message) ? response()->json(['success' => false, 'message' => $message]) : response()->json(['success' => true, 'message' => trans('controller.organisation_ready_to_publish')]);
}
}
diff --git a/app/Http/Controllers/Api/ActivityController.php b/app/Http/Controllers/Api/ActivityController.php
index ce6c9996cf..ed84e46c88 100644
--- a/app/Http/Controllers/Api/ActivityController.php
+++ b/app/Http/Controllers/Api/ActivityController.php
@@ -41,10 +41,10 @@ public function deleteElement($id, $element): Response|Application|ResponseFacto
{
try {
if (!$this->activityService->deleteElement($id, $element)) {
- return response(['status' => false, 'message' => 'Error has occurred while deleting activity element.']);
+ return response(['status' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.deleting'), 'suffix'=>trans('controller.activity_element')])]);
}
- $message = "$element element deleted successfully.";
+ $message = $element . ' ' . trans('controller.actioned_successfully', [':prefix'=>trans('common.element'), 'actioned'=>trans('controller.deleted')]);
Session::put('success', $message);
@@ -52,7 +52,7 @@ public function deleteElement($id, $element): Response|Application|ResponseFacto
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response(['status' => false, 'message' => 'Error has occurred while deleting activity element.']);
+ return response(['status' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.deleting'), 'suffix'=>trans('controller.activity_element')])]);
}
}
}
diff --git a/app/Http/Controllers/Auth/IatiRegisterController.php b/app/Http/Controllers/Auth/IatiRegisterController.php
index a6f048bbeb..033bfc8e63 100644
--- a/app/Http/Controllers/Auth/IatiRegisterController.php
+++ b/app/Http/Controllers/Auth/IatiRegisterController.php
@@ -110,7 +110,7 @@ public function verifyPublisher(IatiRegisterFormRequest $request): JsonResponse|
]);
}
- return response()->json(['success' => true, 'message' => 'Publisher verified successfully', 'data' => $publisherCheck]);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.publisher'), 'actioned'=>trans('controller.deleted')])), 'data' => $publisherCheck]);
} catch (ClientException $e) {
logger()->error($e->getMessage());
@@ -122,7 +122,7 @@ public function verifyPublisher(IatiRegisterFormRequest $request): JsonResponse|
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'errors' => 'Error has occurred while verifying the publisher.']);
+ return response()->json(['success' => false, 'errors' => trans('controller.error_has_occurred', ['action'=>trans('controller.verifying'), 'suffix'=>trans('el_common.publisher')])]);
}
}
@@ -138,11 +138,11 @@ public function verifyPublisher(IatiRegisterFormRequest $request): JsonResponse|
public function verifyContactInfo(IatiRegisterFormRequest $request): JsonResponse|RedirectResponse
{
try {
- return response()->json(['success' => true, 'message' => 'Contact info successfully verified']);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.contact_info'), 'actioned'=>trans('controller.verified')]))]);
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => true, 'message' => 'Error occurred while verifying contact info']);
+ return response()->json(['success' => true, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.verifying'), 'suffix'=>trans('el_common.contact_info')])]);
}
}
@@ -158,11 +158,11 @@ public function verifyContactInfo(IatiRegisterFormRequest $request): JsonRespons
public function verifyAdditionalInfo(IatiRegisterFormRequest $request): JsonResponse|RedirectResponse
{
try {
- return response()->json(['success' => true, 'message' => 'Additional Information successfully verified.']);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.additional_info'), 'actioned'=>trans('controller.verified')]))]);
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => true, 'message' => 'Error occurred while verifying additional info.']);
+ return response()->json(['success' => true, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.verifying'), 'suffix'=>trans('controller.additional_info')])]);
}
}
@@ -227,11 +227,11 @@ public function register(IatiRegisterFormRequest $request): JsonResponse|Redirec
event(new Registered($createUser['user']));
Session::put('role_id', app(Role::class)->getOrganizationAdminId());
- return response()->json(['success' => true, 'message' => 'User registered successfully']);
+ return response()->json(['success' => true, 'message' => trans('controller.actioned_successfully', ['prefix'=>trans('controller.user'), 'actioned'=>trans('controller.registered')])]);
} catch (Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error has occured while trying to register user. Please try again later.']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['actioned'=>trans('controller.trying_to'), 'suffix'=>trans('controller.register_user')]) . ' ' . trans('controller.try_again')]);
}
}
diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php
index d25bcd4ffd..9e3ea5e86b 100644
--- a/app/Http/Controllers/Auth/RegisterController.php
+++ b/app/Http/Controllers/Auth/RegisterController.php
@@ -159,7 +159,7 @@ public function verifyPublisher(Request $request): JsonResponse|\GuzzleHttp\Exce
]);
}
- return response()->json(['success' => true, 'message' => 'Publisher verified successfully', 'data' => $response]);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.publisher'), 'actioned'=>trans('controller.deleted')])), 'data' => $response]);
} catch (ClientException $e) {
logger()->error($e->getMessage());
@@ -167,15 +167,15 @@ public function verifyPublisher(Request $request): JsonResponse|\GuzzleHttp\Exce
[
'success' => false,
'errors' => [
- 'publisher_name' => ['Publisher Name doesn\'t match your IATI Registry information'],
- 'publisher_id' => ['Publisher ID doesn\'t match with your IATI Registry information'],
+ 'publisher_name' => [trans('publisher_name_doesnt_match')],
+ 'publisher_id' => [trans('publisher_id_doesnt_match')],
],
]
);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'error' => 'Error has occurred while verifying the publisher.']);
+ return response()->json(['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.verifying'), 'suffix'=>trans('el_common.publisher')])]);
}
}
@@ -231,7 +231,7 @@ public function register(Request $request): JsonResponse|RedirectResponse
event(new Registered($user));
Session::put('role_id', app(Role::class)->getOrganizationAdminId());
- return response()->json(['success' => true, 'message' => 'User registered successfully']);
+ return response()->json(['success' => true, 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('controller.user'), 'actioned'=>trans('controller.deleted')]))]);
}
/**
diff --git a/app/Http/Controllers/SuperAdmin/SuperAdminController.php b/app/Http/Controllers/SuperAdmin/SuperAdminController.php
index 9794fc6452..9cd7132575 100644
--- a/app/Http/Controllers/SuperAdmin/SuperAdminController.php
+++ b/app/Http/Controllers/SuperAdmin/SuperAdminController.php
@@ -41,7 +41,7 @@ public function listOrganizations(): View|Factory|JsonResponse|Application
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'error' => 'Error has occurred while fetching organisations.']);
+ return response()->json(['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('el_common.organisations')])]);
}
}
@@ -63,13 +63,13 @@ public function getPaginatedOrganizations(Request $request, int $page = 1): Json
return response()->json([
'success' => true,
- 'message' => 'Organizations fetched successfully',
+ 'message' => ucfirst(trans('controller.actioned_successfully', ['prefix'=>trans('el_common.organisations'), 'actioned'=>trans('controller.fetched')])),
'data' => $organizations,
]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while fetching the data']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.fetching'), 'suffix'=>trans('controller.the_data')])]);
}
}
@@ -116,15 +116,15 @@ public function proxyOrganization($userId): JsonResponse
if ($user) {
auth()->loginUsingId($userId);
- return response()->json(['success' => true, 'message' => 'Proxy successful.']);
+ return response()->json(['success' => true, 'message' => trans('proxy_successful')]);
}
}
- return response()->json(['success' => false, 'message' => 'Error occurred while trying to proxy']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.trying_to'), 'suffix'=>trans('buttons.proxy')])]);
} catch (\Exception $e) {
logger()->error($e->getMessage());
- return response()->json(['success' => false, 'message' => 'Error occurred while trying to proxy']);
+ return response()->json(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.trying_to'), 'suffix'=>trans('buttons.proxy')])]);
}
}
}
diff --git a/app/Http/Controllers/Web/WebController.php b/app/Http/Controllers/Web/WebController.php
index ca75ad9fa7..6934c3ced8 100644
--- a/app/Http/Controllers/Web/WebController.php
+++ b/app/Http/Controllers/Web/WebController.php
@@ -20,7 +20,7 @@ class WebController extends Controller
*/
public function index($page = 'signin'): \Illuminate\Contracts\Support\Renderable
{
- $message = Str::contains(Redirect::intended()->getTargetUrl(), '/email/verify/') ? 'User must be logged in to verify email.' : '';
+ $message = Str::contains(Redirect::intended()->getTargetUrl(), '/email/verify/') ? trans('controller.web.user_must_be_logged_in') : '';
return view('web.welcome', compact('page', 'message'));
}
diff --git a/app/Http/Middleware/AccessibleRoute.php b/app/Http/Middleware/AccessibleRoute.php
index f2dc5e00f0..2466caeb36 100644
--- a/app/Http/Middleware/AccessibleRoute.php
+++ b/app/Http/Middleware/AccessibleRoute.php
@@ -50,6 +50,6 @@ public function handle(Request $request, Closure $next): mixed
return $next($request);
}
- return response(['status'=>false, 'message' => 'Activity element delete denied']);
+ return response(['status'=>false, 'message' => trans('middleware.activity_element_delete_denied')]);
}
}
diff --git a/app/Http/Middleware/RedirectActivity.php b/app/Http/Middleware/RedirectActivity.php
index a7ac33e045..47cfb3e756 100644
--- a/app/Http/Middleware/RedirectActivity.php
+++ b/app/Http/Middleware/RedirectActivity.php
@@ -96,7 +96,7 @@ public function handle(Request $request, Closure $next): mixed
$activity = $this->activityService->getActivity($id);
if ($activity === null || !$activity->isActivityOfOrg()) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Activity does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.activity')]));
}
$byPassResultRoutes = ['admin.activity.result.index', 'admin.activity.results.paginate', 'admin.activity.result.create', 'admin.activity.result.store'];
@@ -105,7 +105,7 @@ public function handle(Request $request, Closure $next): mixed
$resultId = (int) $request->route('resultId');
if (!$this->resultService->activityResultExists($id, $resultId)) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Result does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.result')]));
}
}
@@ -115,18 +115,18 @@ public function handle(Request $request, Closure $next): mixed
$transactionId = (int) $request->route('transactionId');
if (!$this->transactionService->activityTransactionExists($id, $transactionId)) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Transaction does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.transaction')]));
}
}
} elseif ($module === 'result') {
$result = $this->resultService->getResult($id);
if ($result === null) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Result does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.result')]));
}
if ($result->activity === null || !$result->activity->isActivityOfOrg()) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Activity does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.activity')]));
}
$byPassIndicatorRoutes = ['admin.result.indicator.index', 'admin.result.indicators.paginate', 'admin.result.indicator.create', 'admin.result.indicator.store'];
@@ -135,7 +135,7 @@ public function handle(Request $request, Closure $next): mixed
$indicatorId = (int) $request->route('indicatorId');
if (!$this->indicatorService->resultIndicatorExists($id, $indicatorId)) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Indicator does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.indicator')]));
}
}
@@ -144,15 +144,15 @@ public function handle(Request $request, Closure $next): mixed
$indicator = $this->indicatorService->getIndicator($id);
if ($indicator === null) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Indicator does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.indicator')]));
}
if ($indicator->result === null) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Result does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.result')]));
}
if ($indicator->result->activity === null || !$indicator->result->activity->isActivityOfOrg()) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Activity does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.activity')]));
}
$byPassPeriodRoutes = ['admin.indicator.period.index', 'admin.indicator.periods.paginate', 'admin.indicator.period.create', 'admin.indicator.period.store'];
@@ -161,7 +161,7 @@ public function handle(Request $request, Closure $next): mixed
$periodId = (int) $request->route('periodId');
if (!$this->periodService->indicatorPeriodExist($id, $periodId)) {
- return redirect(RouteServiceProvider::HOME)->with('error', 'Period does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.period')]));
}
}
$activity = $indicator->result->activity;
@@ -171,7 +171,7 @@ public function handle(Request $request, Closure $next): mixed
return $next($request);
}
- return redirect(RouteServiceProvider::HOME)->with('error', 'Activity does not exist');
+ return redirect(RouteServiceProvider::HOME)->with('error', trans('middleware.does_not_exist', ['prefix'=>trans('common.activity')]));
}
return abort(404);
diff --git a/app/Http/Middleware/SuperAdminMiddleware.php b/app/Http/Middleware/SuperAdminMiddleware.php
index 55feb589f4..3461485eb7 100644
--- a/app/Http/Middleware/SuperAdminMiddleware.php
+++ b/app/Http/Middleware/SuperAdminMiddleware.php
@@ -38,7 +38,7 @@ public function handle(Request $request, Closure $next): mixed
return redirect()->route('admin.activities.index')->with(
'error',
- 'You need to be superadmin to use this route.'
+ trans('middleware.you_need_to_be_superadmin')
);
}
}
diff --git a/app/Http/Requests/Activity/ActivityBaseRequest.php b/app/Http/Requests/Activity/ActivityBaseRequest.php
index bd2e6ad040..de1555d910 100644
--- a/app/Http/Requests/Activity/ActivityBaseRequest.php
+++ b/app/Http/Requests/Activity/ActivityBaseRequest.php
@@ -293,7 +293,7 @@ public function getRulesForRequiredNarrative($formFields, $formBase): array
public function getMessagesForRequiredNarrative($formFields, $formBase): array
{
$messages = [];
- $messages[sprintf('%s.narrative.unique_lang', $formBase)] = 'The @xml:lang field must be unique.';
+ $messages[sprintf('%s.narrative.unique_lang', $formBase)] = trans('requests.xml_lang_field_symbol', ['suffix'=>trans('requests.suffix.must_be_unique')]);
return $messages;
}
@@ -336,20 +336,20 @@ public function getRulesForNarrative($formFields, $formBase): array
public function getMessagesForNarrative($formFields, $formBase): array
{
$messages = [];
- $messages[sprintf('%s.narrative.unique_lang', $formBase)] = 'The narrative language field must be unique.';
- $messages[sprintf('%s.narrative.unique_default_lang', $formBase)] = 'The narrative language field must be unique.';
+ $messages[sprintf('%s.narrative.unique_lang', $formBase)] = trans('requests.narrative_lang', ['suffix'=>trans('requests.suffix.must_be_unique')]);
+ $messages[sprintf('%s.narrative.unique_default_lang', $formBase)] = trans('requests.narrative_lang', ['suffix'=>trans('requests.suffix.must_be_unique')]);
foreach ($formFields as $narrativeIndex => $narrative) {
$messages[sprintf(
'%s.narrative.%s.narrative.required_with_language',
$formBase,
$narrativeIndex
- )] = 'The narrative field is required with @xml:lang field.';
+ )] = trans('requests.narrative_field', ['suffix'=>trans('requests.suffix.is_required_with_xml')]);
$messages[sprintf(
'%s.narrative.%s.language.in',
$formBase,
$narrativeIndex
- )] = 'The @xml:lang field is invalid.';
+ )] = trans('requests.xml_lang_field_symbol', ['suffix'=>trans('requests.suffix.is_invalid')]);
}
return $messages;
@@ -387,8 +387,8 @@ public function getMessagesForPeriodStart($formFields, $formBase): array
$messages = [];
foreach ($formFields as $periodStartKey => $periodStartVal) {
- $messages[$formBase . '.period_end.' . $periodStartKey . '.date.date'] = 'Period end must be a date.';
- $messages[$formBase . '.period_end.' . $periodStartKey . '.date.date_greater_than'] = 'Period end date must be date greater than year 1900.';
+ $messages[$formBase . '.period_end.' . $periodStartKey . '.date.date'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.must_be_a_date')]);
+ $messages[$formBase . '.period_end.' . $periodStartKey . '.date.date_greater_than'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.date_must_be_greater')]);
}
return $messages;
@@ -430,10 +430,10 @@ public function getMessagesForPeriodEnd($formFields, $formBase): array
$messages = [];
foreach ($formFields as $periodEndKey => $periodEndVal) {
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.required'] = 'Period end is a required field';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date'] = 'Period end must be a date field';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.after'] = 'Period end must be a date after period';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date_greater_than'] = 'Period end date must be date greater than year 1900.';
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.required'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.is_a_required_field')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.must_be_a_date_field')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.after'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.date_must_be_greater')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date_greater_than'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.date_must_be_greater')]);
}
return $messages;
@@ -526,10 +526,10 @@ public function getMessagesForDocumentLink($formFields, $formBase = null): array
$documentLinkForm = sprintf('document_link.%s', $documentLinkIndex);
}
- $messages[sprintf('%s.format', $documentLinkForm)] = 'The document link format is invalid';
+ $messages[sprintf('%s.format', $documentLinkForm)] = trans('requests.document_link', ['suffix'=>trans('requests.suffix.format_is_invalid')]);
if (Arr::get($documentLink, 'url', null) !== '') {
- $messages[sprintf('%s.url.url', $documentLinkForm)] = 'The @url field must be a valid url.';
+ $messages[sprintf('%s.url.url', $documentLinkForm)] = trans('requests.url_field_symbol', ['suffix'=>trans('requests.suffix.must_be_valid_url')]);
}
if (Arr::get($documentLink, 'document_date', null) !== '') {
@@ -540,10 +540,10 @@ public function getMessagesForDocumentLink($formFields, $formBase = null): array
}
}
- $messages[sprintf('%s.category.unique_category', $documentLinkForm)] = 'The document link category code field must be a unique.';
- $messages[sprintf('%s.category.0.code.in', $documentLinkForm)] = 'The document link category code is invalid.';
- $messages[sprintf('%s.language.unique_language', $documentLinkForm)] = 'The document link language code field must be a unique.';
- $messages[sprintf('%s.language.0.code.in', $documentLinkForm)] = 'The document link language code is invalid.';
+ $messages[sprintf('%s.category.unique_category', $documentLinkForm)] = trans('requests.document_category_link_field', ['suffix'=>trans('requests.must_be_unique')]);
+ $messages[sprintf('%s.category.0.code.in', $documentLinkForm)] = trans('requests.document_category_link', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.language.unique_language', $documentLinkForm)] = trans('requests.document_category_link_field', ['suffix'=>trans('requests.must_be_unique')]);
+ $messages[sprintf('%s.language.0.code.in', $documentLinkForm)] = trans('requests.document_category_link', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
$narrativeTitleMessages = $this->getMessagesForNarrative($documentLink['title'][0]['narrative'], sprintf('%s.title.0', $documentLinkForm));
foreach ($narrativeTitleMessages as $key => $item) {
@@ -574,9 +574,9 @@ protected function getMessagesForDocumentDate($formFields, $formIndex): array
foreach ($formFields as $documentCategoryIndex => $documentCategory) {
$messages[sprintf('%s.document_date.%s.date.date', $formIndex, $documentCategoryIndex)]
- = 'The @iso-date field must be a proper date.';
+ = trans('requests.iso_field_symbol', ['suffix'=>trans('requests.suffix.must_be_a_proper_date')]);
$messages[sprintf('%s.document_date.%s.date.date_greater_than', $formIndex, $documentCategoryIndex)]
- = 'The @iso-date field must be a greater than 1900.';
+ = trans('requests.iso_field_symbol', ['suffix'=>trans('requests.suffix.date_must_be_greater')]);
}
return $messages;
diff --git a/app/Http/Requests/Activity/ActivityCreateRequest.php b/app/Http/Requests/Activity/ActivityCreateRequest.php
index 07204cb9e4..0be42e0c81 100644
--- a/app/Http/Requests/Activity/ActivityCreateRequest.php
+++ b/app/Http/Requests/Activity/ActivityCreateRequest.php
@@ -70,7 +70,7 @@ public function rules(): array
public function messages(): array
{
return [
- 'activity_identifier.not_in' => 'The activity identifier already exists.',
+ 'activity_identifier.not_in' => trans('requests.activity', ['suffix'=>trans('requests.suffix.identifier_already_exists')]),
];
}
}
diff --git a/app/Http/Requests/Activity/Budget/BudgetRequest.php b/app/Http/Requests/Activity/Budget/BudgetRequest.php
index b7f1917039..1eda0edb6d 100644
--- a/app/Http/Requests/Activity/Budget/BudgetRequest.php
+++ b/app/Http/Requests/Activity/Budget/BudgetRequest.php
@@ -213,7 +213,7 @@ public function getMessagesForBudget(array $formFields, bool $fileUpload = false
if (count($this->identicalIds)) {
foreach ($this->identicalIds as $ids) {
foreach ($ids as $id) {
- $messages['budget.' . $id . '.budget_status.budgets_identical'] = $fileUpload ? 'Budget elements are duplicated.' : 'Budget elements at position ' . $this->getIdenticalIds($ids) . ' have same status, type, period start and period end.';
+ $messages['budget.' . $id . '.budget_status.budgets_identical'] = $fileUpload ? trans('requests.budget_elements_duplicated') : trans('requests.budget_elements_position') . $this->getIdenticalIds($ids) . trans('requests.have_same_status');
}
}
}
@@ -221,7 +221,7 @@ public function getMessagesForBudget(array $formFields, bool $fileUpload = false
if (count($this->revisedIds)) {
foreach ($this->revisedIds as $ids) {
foreach ($ids as $id) {
- $messages['budget.' . $id . '.budget_status.budget_revised_invalid'] = 'Budget with type revised must have period start and end same to that of one of the budgets having same status and type original for budgets elements at position ' . $this->getIdenticalIds($ids);
+ $messages['budget.' . $id . '.budget_status.budget_revised_invalid'] = trans('requests.budget_with_type_revised') . $this->getIdenticalIds($ids);
}
}
}
@@ -246,10 +246,10 @@ public function getMessagesForBudget(array $formFields, bool $fileUpload = false
$messages[$key] = $valueMessage;
}
- $messages[$budgetForm . '.budget_type.in'] = 'The budget type is invalid.';
- $messages[$budgetForm . '.budget_status.in'] = 'The budget status is invalid.';
- $messages[$budgetForm . '.period_end.0.date.before'] = 'The Period End iso-date must be within a year after Period Start iso-date.';
- $messages[$budgetForm . '.period_end.0.date.period_start_end'] = 'The Budget Period must not be longer than one year';
+ $messages[$budgetForm . '.budget_type.in'] = trans('requests.budget', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
+ $messages[$budgetForm . '.budget_status.in'] = trans('requests.budget', ['suffix'=>trans('requests.suffix.status_is_invalid')]);
+ $messages[$budgetForm . '.period_end.0.date.before'] = trans('requests.period_end_iso', ['suffix'=>trans('requests.suffix.must_be_within_a_year')]);
+ $messages[$budgetForm . '.period_end.0.date.period_start_end'] = trans('requests.budget', ['suffix'=>trans('requests.suffix.must_not_be_longer_than_1_year')]);
}
return $messages;
@@ -268,9 +268,9 @@ public function getMessagesForPeriodStart($formFields, $formBase): array
$messages = [];
foreach ($formFields as $periodStartKey => $periodStartVal) {
- $messages[$formBase . '.period_start.' . $periodStartKey . '.date.date'] = 'The iso-date field must be a valid date.';
- $messages[$formBase . '.period_start.' . $periodStartKey . '.date.date_greater_than'] = 'The iso-date field must date after year 1900.';
- $messages[$formBase . '.period_start.' . $periodStartKey . '.date.period_start_end'] = 'The Budget Period must not be longer than one year';
+ $messages[$formBase . '.period_start.' . $periodStartKey . '.date.date'] = trans('requests.iso_field', ['suffix'=>trans('requests.suffix.must_be_a_valid_date')]);
+ $messages[$formBase . '.period_start.' . $periodStartKey . '.date.date_greater_than'] = trans('requests.iso_field', ['suffix'=>trans('requests.suffix.date_must_be_greater')]);
+ $messages[$formBase . '.period_start.' . $periodStartKey . '.date.period_start_end'] = trans('requests.budget_period', ['suffix'=>trans('requests.suffix.must_not_be_linger_than_1_year')]);
}
return $messages;
@@ -289,9 +289,9 @@ public function getMessagesForPeriodEnd($formFields, $formBase): array
$messages = [];
foreach ($formFields as $periodEndKey => $periodEndVal) {
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date'] = 'The iso-date field must be a valid date.';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date_greater_than'] = 'The iso-date field must be date after year 1900.';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.after'] = 'The Period End iso-date must be a date after Period Start iso-date';
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date'] = trans('requests.iso_field', ['suffix'=>trans('requests.suffix.must_be_a_valid_date')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date_greater_than'] = trans('requests.iso_field', ['suffix'=>trans('requests.suffix.date_must_be_greater')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.after'] = trans('requests.period_end_iso', ['suffix'=>trans('requests.suffix.must_be_within_a_year')]);
}
return $messages;
@@ -311,11 +311,11 @@ protected function getMessagesForValue($formFields, $formBase): array
foreach ($formFields as $valueIndex => $value) {
$valueForm = sprintf('%s.budget_value.%s', $formBase, $valueIndex);
- $messages[sprintf('%s.amount.numeric', $valueForm)] = 'The amount field must be a number.';
- $messages[sprintf('%s.amount.min', $valueForm)] = 'The amount field must not be in negative.';
- $messages[sprintf('%s.value_date.date', $valueForm)] = 'The value-date field must be a valid date.';
- $messages[sprintf('%s.value_date.after', $valueForm)] = 'The value-date field must be a between period start and period end';
- $messages[sprintf('%s.value_date.before', $valueForm)] = 'The value-date field must be a between period start and period end';
+ $messages[sprintf('%s.amount.numeric', $valueForm)] = trans('requests.amount_field', ['suffix'=>trans('requests.suffix.must_be_a_number')]);
+ $messages[sprintf('%s.amount.min', $valueForm)] = trans('requests.amount_field', ['suffix'=>trans('requests.suffix.must_not_be_negative')]);
+ $messages[sprintf('%s.value_date.date', $valueForm)] = trans('requests.value_date_field', ['suffix'=>trans('requests.suffix.must_be_a_valid_date')]);
+ $messages[sprintf('%s.value_date.after', $valueForm)] = trans('requests.value_date_field', ['suffix'=>trans('requests.suffix.must_be_between')]);
+ $messages[sprintf('%s.value_date.before', $valueForm)] = trans('requests.value_date_field', ['suffix'=>trans('requests.suffix.must_be_between')]);
}
return $messages;
diff --git a/app/Http/Requests/Activity/CapitalSpend/CapitalSpendRequest.php b/app/Http/Requests/Activity/CapitalSpend/CapitalSpendRequest.php
index 985cc56418..3a2043e73f 100644
--- a/app/Http/Requests/Activity/CapitalSpend/CapitalSpendRequest.php
+++ b/app/Http/Requests/Activity/CapitalSpend/CapitalSpendRequest.php
@@ -37,9 +37,9 @@ public function rules($capital_spend = null): array
public function messages(): array
{
return [
- 'numeric' => 'The capital spend must be a number',
- 'between' => 'The capital spend must be a number between 0 and 100',
- 'size' => 'The capital spend cannot have more than one value.',
+ 'numeric' => trans('requests.capital_spend', ['suffix'=>trans('requests.suffix.must_be_a_number')]),
+ 'between' => trans('requests.capital_spend', ['suffix'=>trans('requests.suffix.must_be_between_0_100')]),
+ 'size' => trans('requests.capital_spend', ['suffix'=>trans('requests.suffix.cannot_have_more_than_one')]),
];
}
}
diff --git a/app/Http/Requests/Activity/CollaborationType/CollaborationTypeRequest.php b/app/Http/Requests/Activity/CollaborationType/CollaborationTypeRequest.php
index 6337a24102..671acf8731 100644
--- a/app/Http/Requests/Activity/CollaborationType/CollaborationTypeRequest.php
+++ b/app/Http/Requests/Activity/CollaborationType/CollaborationTypeRequest.php
@@ -39,8 +39,8 @@ public function rules($collaboration = null): array
public function messages(): array
{
return [
- 'in' => 'The collaboration type does not exist.',
- 'size' => 'The collaboration type cannot have more than one value.',
+ 'in' => trans('requests.collaboration_type', ['suffix'=>trans('requests.suffix.doesnt_exist')]),
+ 'size' => trans('requests.collaboration_type', ['suffix'=>trans('requests.suffix.cannot_have_more_than_one')]),
];
}
}
diff --git a/app/Http/Requests/Activity/Condition/ConditionRequest.php b/app/Http/Requests/Activity/Condition/ConditionRequest.php
index 9802e24076..285c0072cd 100644
--- a/app/Http/Requests/Activity/Condition/ConditionRequest.php
+++ b/app/Http/Requests/Activity/Condition/ConditionRequest.php
@@ -67,7 +67,7 @@ public function getMessagesForCondition(array $formFields): array
foreach ($formFields as $conditionIndex => $condition) {
$conditionForm = sprintf('condition.%s', $conditionIndex);
- $messages[sprintf('%s.condition_type.in', $conditionForm)] = 'The condition type is invalid.';
+ $messages[sprintf('%s.condition_type.in', $conditionForm)] = trans('requests.condition', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
foreach ($this->getMessagesForNarrative($condition['narrative'], $conditionForm) as $conditionNarrativeIndex => $conditionNarrativeMessages) {
$messages[$conditionNarrativeIndex] = $conditionNarrativeMessages;
diff --git a/app/Http/Requests/Activity/ContactInfo/ContactInfoRequest.php b/app/Http/Requests/Activity/ContactInfo/ContactInfoRequest.php
index e140f3fb14..bbf2921fc5 100644
--- a/app/Http/Requests/Activity/ContactInfo/ContactInfoRequest.php
+++ b/app/Http/Requests/Activity/ContactInfo/ContactInfoRequest.php
@@ -80,7 +80,7 @@ public function getMessagesForContactInfo(array $formFields): array
foreach ($formFields as $contactInfoIndex => $contactInfo) {
$contactInfoForm = sprintf('contact_info.%s', $contactInfoIndex);
- $messages[sprintf('%s.type.in', $contactInfoForm)] = 'The contact info type is invalid.';
+ $messages[sprintf('%s.type.in', $contactInfoForm)] = trans('requests.contact_info', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
$tempMessages = [
$this->getMessagesForDepartment(Arr::get($contactInfo, 'department', []), $contactInfoForm),
$this->getMessagesForOrganisation(Arr::get($contactInfo, 'organisation', []), $contactInfoForm),
@@ -364,10 +364,10 @@ protected function getMessagesForTelephone($formFields, $formBase): array
$messages = [];
foreach ($formFields as $telephoneIndex => $telephone) {
- $messages[sprintf('%s.telephone.%s.telephone.numeric', $formBase, $telephoneIndex)] = 'The contact info telephone number must be valid numeric value';
- $messages[sprintf('%s.telephone.%s.telephone.regex', $formBase, $telephoneIndex)] = 'The contact info telephone number is invalid';
- $messages[sprintf('%s.telephone.%s.telephone.min', $formBase, $telephoneIndex)] = 'The contact info telephone number must have atleast 7 digits.';
- $messages[sprintf('%s.telephone.%s.telephone.max', $formBase, $telephoneIndex)] = 'The contact info telephone number must not have more than 20 digits.';
+ $messages[sprintf('%s.telephone.%s.telephone.numeric', $formBase, $telephoneIndex)] = trans('requests.contact_info_telephone', ['suffix'=>trans('requests.suffix.must_be_numeric')]);
+ $messages[sprintf('%s.telephone.%s.telephone.regex', $formBase, $telephoneIndex)] = trans('requests.contact_info_telephone', ['suffix'=>trans('requests.suffix.is_invalid')]);
+ $messages[sprintf('%s.telephone.%s.telephone.min', $formBase, $telephoneIndex)] = trans('requests.contact_info_telephone', ['suffix'=>trans('requests.suffix.must_be_atleast_7_digits')]);
+ $messages[sprintf('%s.telephone.%s.telephone.max', $formBase, $telephoneIndex)] = trans('requests.contact_info_telephone', ['suffix'=>trans('requests.suffix.must_not_be_more_than_20_digits')]);
}
return $messages;
@@ -405,8 +405,8 @@ protected function getMessagesForEmail($formFields, $formBase): array
$messages = [];
foreach ($formFields as $emailIndex => $email) {
- $messages[sprintf('%s.email.%s.email.email', $formBase, $emailIndex)] = 'The contact info email must be valid';
- $messages[sprintf('%s.email.%s.email.regex', $formBase, $emailIndex)] = 'The contact info email format is invalid';
+ $messages[sprintf('%s.email.%s.email.email', $formBase, $emailIndex)] = trans('requests.contact_info_email', ['suffix'=>trans('requests.suffix.must_be_valid')]);
+ $messages[sprintf('%s.email.%s.email.regex', $formBase, $emailIndex)] = trans('requests.contact_info_email', ['suffix'=>trans('requests.suffix.format_is_invalid')]);
}
return $messages;
@@ -444,7 +444,7 @@ protected function getMessagesForWebsite($formFields, $formBase): array
$messages = [];
foreach ($formFields as $websiteIndex => $website) {
- $messages[sprintf('%s.website.%s.website.url', $formBase, $websiteIndex)] = 'The contact info website url must be valid url.';
+ $messages[sprintf('%s.website.%s.website.url', $formBase, $websiteIndex)] = trans('requests.contact_info_website', ['suffix'=>trans('requests.suffix.must_be_valid_url')]);
}
return $messages;
diff --git a/app/Http/Requests/Activity/CountryBudgetItem/CountryBudgetItemRequest.php b/app/Http/Requests/Activity/CountryBudgetItem/CountryBudgetItemRequest.php
index 003221ada4..b03219afc4 100644
--- a/app/Http/Requests/Activity/CountryBudgetItem/CountryBudgetItemRequest.php
+++ b/app/Http/Requests/Activity/CountryBudgetItem/CountryBudgetItemRequest.php
@@ -57,7 +57,7 @@ public function getRulesForCountryBudgetItem(array $formFields): array
public function getMessagesForCountryBudgetItem(array $formFields): array
{
$messages = $this->getBudgetItemMessages(Arr::get($formFields, 'budget_item', []));
- $messages['country_budget_vocabulary.in'] = 'The country budget item vocabulary is invalid.';
+ $messages['country_budget_vocabulary.in'] = trans('requests.country_budget_item', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
return $messages;
}
@@ -105,11 +105,11 @@ public function getBudgetItemMessages(array $formFields): array
foreach ($formFields as $budgetItemIndex => $budgetItem) {
$budgetItemForm = sprintf('budget_item.%s', $budgetItemIndex);
- $messages[sprintf('%s.code.in', $budgetItemForm)] = 'The budget item code in invalid.';
- $messages[sprintf('%s.percentage.%s', $budgetItemForm, 'numeric')] = 'The budget item percentage field must be a number.';
- $messages[sprintf('%s.percentage.%s', $budgetItemForm, 'max')] = 'The budget item percentage field cannot be greater than 100.';
- $messages[sprintf('%s.percentage.sum', $budgetItemForm)] = 'The sum of percentage with budget items must add up to 100.';
- $messages[sprintf('%s.percentage.total', $budgetItemForm)] = 'The budget item percentage field should be 100 when there is only one budget item.';
+ $messages[sprintf('%s.code.in', $budgetItemForm)] = trans('requests.budget_item', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.percentage.%s', $budgetItemForm, 'numeric')] = trans('requests.budget_percent', ['suffix'=>trans('requests.suffix.must_be_a_number')]);
+ $messages[sprintf('%s.percentage.%s', $budgetItemForm, 'max')] = trans('requests.budget_percentage', ['suffix'=>trans('requests.suffix.cannot_be_greater_than_100')]);
+ $messages[sprintf('%s.percentage.sum', $budgetItemForm)] = trans('requests.the_sum_of_budget');
+ $messages[sprintf('%s.percentage.total', $budgetItemForm)] = trans('requests.budget_percentage', ['suffix'=>trans('requests.suffix.should_be_100')]);
foreach ($this->getBudgetItemDescriptionMessages($budgetItem['description'], $budgetItemForm) as $budgetItemDescriptionIndex => $budgetItemDescriptionNarrativeMessages) {
$messages[$budgetItemDescriptionIndex] = $budgetItemDescriptionNarrativeMessages;
diff --git a/app/Http/Requests/Activity/Date/DateRequest.php b/app/Http/Requests/Activity/Date/DateRequest.php
index b86a53c59b..d98f11afdc 100644
--- a/app/Http/Requests/Activity/Date/DateRequest.php
+++ b/app/Http/Requests/Activity/Date/DateRequest.php
@@ -66,9 +66,9 @@ public function getMessagesForDate(array $formFields): array
foreach ($formFields as $activityDateIndex => $activityDate) {
$activityDateForm = sprintf('activity_date.%s', $activityDateIndex);
- $messages[sprintf('%s.date.date', $activityDateForm)] = 'Date is invalid.';
- $messages[sprintf('%s.date.before', $activityDateForm)] = 'Actual start and end dates may not be in the future.';
- $messages[sprintf('%s.date.end_later_than_start', $activityDateForm)] = 'End date must be later than the start date.';
+ $messages[sprintf('%s.date.date', $activityDateForm)] = trans('requests.date', ['suffix'=>trans('requests.suffix.is_invalid')]);
+ $messages[sprintf('%s.date.before', $activityDateForm)] = trans('requests.actual_start_and_end_dates', ['suffix'=>trans('requests.suffix.may_not_be_in_future')]);
+ $messages[sprintf('%s.date.end_later_than_start', $activityDateForm)] = trans('requests.end_date', ['suffix'=>trans('requests.suffix.must_be_later_than_start_date')]);
$messages += $this->getMessagesForNarrative($activityDate['narrative'], $activityDateForm);
}
diff --git a/app/Http/Requests/Activity/DefaultAidType/DefaultAidTypeRequest.php b/app/Http/Requests/Activity/DefaultAidType/DefaultAidTypeRequest.php
index 4823038b2a..3c1bfe84a2 100644
--- a/app/Http/Requests/Activity/DefaultAidType/DefaultAidTypeRequest.php
+++ b/app/Http/Requests/Activity/DefaultAidType/DefaultAidTypeRequest.php
@@ -67,11 +67,11 @@ public function getMessagesForDefaultAidType(array $formFields): array
foreach ($formFields as $index => $formField) {
$baseForm = sprintf('default_aid_type.%s', $index);
- $messages[sprintf('%s.default_aid_type_vocabulary.in', $baseForm)] = 'The default aid type vocabulary is invalid.';
- $messages[sprintf('%s.default_aid_type.in', $baseForm)] = 'The default aid type is invalid.';
- $messages[sprintf('%s.earmarking_category.in', $baseForm)] = 'The default aid type earmarking category is invalid.';
- $messages[sprintf('%s.earmarking_modality.in', $baseForm)] = 'The default aid type earmarking modality is invalid.';
- $messages[sprintf('%s.cash_and_voucher_modalities.in', $baseForm)] = 'The default aid type cash and voucher modalities is invalid.';
+ $messages[sprintf('%s.default_aid_type_vocabulary.in', $baseForm)] = trans('requests.default_aid', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
+ $messages[sprintf('%s.default_aid_type.in', $baseForm)] = trans('requests.default_aid', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
+ $messages[sprintf('%s.earmarking_category.in', $baseForm)] = trans('requests.default_aid', ['suffix'=>trans('requests.suffix.earmarking_category_is_invalid')]);
+ $messages[sprintf('%s.earmarking_modality.in', $baseForm)] = trans('requests.default_aid', ['suffix'=>trans('requests.suffix.earmarking_modality_is_invalid')]);
+ $messages[sprintf('%s.cash_and_voucher_modalities.in', $baseForm)] = trans('requests.default_aid', ['suffix'=>trans('requests.suffix.cash_and_voucher_is_invalid')]);
}
return $messages;
diff --git a/app/Http/Requests/Activity/DefaultFinanceType/DefaultFinanceTypeRequest.php b/app/Http/Requests/Activity/DefaultFinanceType/DefaultFinanceTypeRequest.php
index 1e06beb69f..564af91648 100644
--- a/app/Http/Requests/Activity/DefaultFinanceType/DefaultFinanceTypeRequest.php
+++ b/app/Http/Requests/Activity/DefaultFinanceType/DefaultFinanceTypeRequest.php
@@ -39,8 +39,8 @@ public function rules($finance_type = null): array
public function messages(): array
{
return [
- 'in' => 'The default finance type does not exist.',
- 'size' => 'The default finance type cannot have more than one value.',
+ 'in' => trans('requests.default_finance', ['suffix'=>trans('requests.suffix.doesnt_exist')]),
+ 'size' => trans('requests.default_finance', ['suffix'=>trans('requests.suffix.cannot_have_more_than_one')]),
];
}
}
diff --git a/app/Http/Requests/Activity/DefaultFlowType/DefaultFlowTypeRequest.php b/app/Http/Requests/Activity/DefaultFlowType/DefaultFlowTypeRequest.php
index c681a325cf..748fb974ae 100644
--- a/app/Http/Requests/Activity/DefaultFlowType/DefaultFlowTypeRequest.php
+++ b/app/Http/Requests/Activity/DefaultFlowType/DefaultFlowTypeRequest.php
@@ -39,8 +39,8 @@ public function rules($default_flow_type = null): array
public function messages(): array
{
return [
- 'in' => 'The default flow type does not exist.',
- 'size' => 'The default flow type cannot have more than one value.',
+ 'in' => trans('requests.default_flow', ['suffix'=>trans('requests.suffix.doesnt_exist')]),
+ 'size' => trans('requests.default_flow', ['suffix'=>trans('requests.suffix.cannot_have_more_than_one')]),
];
}
}
diff --git a/app/Http/Requests/Activity/DefaultTiedStatus/DefaultTiedStatusRequest.php b/app/Http/Requests/Activity/DefaultTiedStatus/DefaultTiedStatusRequest.php
index 719f84f4a3..8b70f22637 100644
--- a/app/Http/Requests/Activity/DefaultTiedStatus/DefaultTiedStatusRequest.php
+++ b/app/Http/Requests/Activity/DefaultTiedStatus/DefaultTiedStatusRequest.php
@@ -39,8 +39,8 @@ public function rules($tied_status = null): array
public function messages(): array
{
return [
- 'in' => 'The default tied status does not exist.',
- 'size' => 'The default tied status cannot have more than one value.',
+ 'in' => trans('requests.default_flow', ['suffix'=>trans('requests.suffix.doesnt_exist')]),
+ 'size' => trans('requests.default_flow', ['suffix'=>trans('requests.suffix.cannot_have_more_than_one')]),
];
}
}
diff --git a/app/Http/Requests/Activity/HumanitarianScope/HumanitarianScopeRequest.php b/app/Http/Requests/Activity/HumanitarianScope/HumanitarianScopeRequest.php
index 70fa918158..4d67a1d5e1 100644
--- a/app/Http/Requests/Activity/HumanitarianScope/HumanitarianScopeRequest.php
+++ b/app/Http/Requests/Activity/HumanitarianScope/HumanitarianScopeRequest.php
@@ -70,10 +70,10 @@ public function getMessagesForHumanitarianScope(array $formFields): array
foreach ($formFields as $humanitarianScopeIndex => $humanitarianScope) {
$humanitarianScopeForm = 'humanitarian_scope.' . $humanitarianScopeIndex;
- $messages[sprintf('%s.type.in', $humanitarianScopeForm)] = 'The humanitarian scope type is invalid.';
- $messages[sprintf('%s.vocabulary.in', $humanitarianScopeForm)] = 'The humanitarian scope vocabulary is invalid.';
- $messages[sprintf('%s.code.string', $humanitarianScopeForm)] = 'The humanitarian scope code must be a string.';
- $messages[sprintf('%s.vocabulary_uri.url', $humanitarianScopeForm)] = 'The humanitarian scope vocabulary-uri must be a proper url.';
+ $messages[sprintf('%s.type.in', $humanitarianScopeForm)] = trans('requests.humanitarian', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
+ $messages[sprintf('%s.vocabulary.in', $humanitarianScopeForm)] = trans('requests.humanitarian', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
+ $messages[sprintf('%s.code.string', $humanitarianScopeForm)] = trans('requests.humanitarian_code', ['suffix'=>trans('requests.suffix.must_be_a_string')]);
+ $messages[sprintf('%s.vocabulary_uri.url', $humanitarianScopeForm)] = trans('requests.humanitarian', ['suffix'=>trans('requests.suffix.must_be_valid_vocal_url')]);
foreach ($this->getMessagesForNarrative($humanitarianScope['narrative'], $humanitarianScopeForm) as $humanitarianIndex => $narrativeMessages) {
$messages[$humanitarianIndex] = $narrativeMessages;
diff --git a/app/Http/Requests/Activity/Identifier/IdentifierRequest.php b/app/Http/Requests/Activity/Identifier/IdentifierRequest.php
index 55518246db..6a74bc1377 100644
--- a/app/Http/Requests/Activity/Identifier/IdentifierRequest.php
+++ b/app/Http/Requests/Activity/Identifier/IdentifierRequest.php
@@ -56,7 +56,7 @@ public function rules(bool $fileUpload = false): array
public function messages(): array
{
return [
- 'activity_identifier.not_in' => 'The activity identifier already exists.',
+ 'activity_identifier.not_in' => trans('requests.activity', ['suffix'=>trans('requests.suffix.identifier_already_exists')]),
];
}
}
diff --git a/app/Http/Requests/Activity/Indicator/IndicatorRequest.php b/app/Http/Requests/Activity/Indicator/IndicatorRequest.php
index 1bf5047531..92bcd7b089 100644
--- a/app/Http/Requests/Activity/Indicator/IndicatorRequest.php
+++ b/app/Http/Requests/Activity/Indicator/IndicatorRequest.php
@@ -82,9 +82,9 @@ public function getRulesForIndicator(array $formFields, bool $fileUpload = false
public function getMessagesForIndicator(array $formFields): array
{
$messages = [];
- $messages['measure.in'] = 'The indicator measure is invalid.';
- $messages['aggregation_status.in'] = 'The indicator aggregation status is invalid.';
- $messages['ascending.in'] = 'The indicator ascending is invalid.';
+ $messages['measure.in'] = trans('requests.indicator_measure', ['suffix'=>trans('requests.suffix.is_invalid')]);
+ $messages['aggregation_status.in'] = trans('requests.indicator_aggregation', ['suffix'=>trans('requests.suffix.is_invalid')]);
+ $messages['ascending.in'] = trans('requests.indicator_ascending', ['suffix'=>trans('requests.suffix.is_invalid')]);
$tempMessages = [
$this->getMessagesForNarrative(Arr::get($formFields, 'title', []), 'title.0'),
@@ -162,10 +162,10 @@ protected function getMessagesForReference($formFields): array
foreach ($formFields as $referenceIndex => $reference) {
$referenceForm = sprintf('reference.%s', $referenceIndex);
- $messages[sprintf('%s.indicator_uri.url', $referenceForm)] = 'The @indicator-uri field must be a valid url.';
+ $messages[sprintf('%s.indicator_uri.url', $referenceForm)] = trans('requests.indicator_uri_symbol', ['suffix'=>trans('requests.suffix.must_be_valid_url')]);
if (!empty($reference['code'])) {
- $messages[sprintf('%s.code.result_ref_code_present', $referenceForm)] = 'The code is already defined in its result';
+ $messages[sprintf('%s.code.result_ref_code_present', $referenceForm)] = trans('requests.code', ['suffix'=>trans('requests.suffix.defined_in_result')]);
}
}
@@ -230,12 +230,12 @@ protected function getMessagesForBaseline($formFields): array
foreach ($formFields as $baselineIndex => $baseline) {
$baselineForm = sprintf('baseline.%s', $baselineIndex);
- $messages[sprintf('%s.year.date_format', $baselineForm)] = 'The @year field is not valid.';
- $messages[sprintf('%s.year.in', $baselineForm)] = 'The @year field should be the year of baseline date';
- $messages[sprintf('%s.year.digits', $baselineForm)] = 'The @year field must have 4 digits.';
+ $messages[sprintf('%s.year.date_format', $baselineForm)] = trans('requests.year_field_symbol', ['suffix'=>trans('requests.suffix.is_not_valid')]);
+ $messages[sprintf('%s.year.in', $baselineForm)] = trans('requests.year_field_symbol', ['suffix'=>trans('requests.suffix.should_be_baseline')]);
+ $messages[sprintf('%s.year.digits', $baselineForm)] = trans('requests.year_field_symbol', ['suffix'=>trans('requests.suffix.must_be_4_digits')]);
- $messages[sprintf('%s.value.numeric', $baselineForm)] = 'The @value field must be a number.';
- $messages[sprintf('%s.value.gte', $baselineForm)] = 'The @value field must be greater or equal to 0.';
+ $messages[sprintf('%s.value.numeric', $baselineForm)] = trans('requests.value_field_symbol', ['suffix'=>trans('requests.suffix.must_be_a_number')]);
+ $messages[sprintf('%s.value.gte', $baselineForm)] = trans('requests.value_field_symbol', ['suffix'=>trans('requests.suffix.must_be_greater_equal_0')]);
$narrativeMessages = $this->getMessagesForNarrative($baseline['comment'][0]['narrative'], sprintf('%s.comment.0', $baselineForm));
diff --git a/app/Http/Requests/Activity/Location/LocationRequest.php b/app/Http/Requests/Activity/Location/LocationRequest.php
index c56d55442d..1d688e07f2 100644
--- a/app/Http/Requests/Activity/Location/LocationRequest.php
+++ b/app/Http/Requests/Activity/Location/LocationRequest.php
@@ -80,11 +80,11 @@ public function getMessagesForLocation($formFields): array
foreach ($formFields as $locationIndex => $location) {
$locationForm = 'location.' . $locationIndex;
- $messages[sprintf('%s.ref.not_regex', $locationForm)] = 'The location reference field shouldn\'t contain the symbols /, &, | or ?.';
- $messages[sprintf('%s.location_reach.0.code.in', $locationForm)] = 'The location reach code is invalid.';
- $messages[sprintf('%s.exactness.0.code.in', $locationForm)] = 'The location exactness is invalid.';
- $messages[sprintf('%s.location_class.0.code.in', $locationForm)] = 'The location class is invalid.';
- $messages[sprintf('%s.feature_designation.0.code.in', $locationForm)] = 'The location feature designation is invalid.';
+ $messages[sprintf('%s.ref.not_regex', $locationForm)] = trans('requests.location_ref_field', ['suffix'=>trans('requests.suffix.shouldnt_contain_symbol')]);
+ $messages[sprintf('%s.location_reach.0.code.in', $locationForm)] = trans('requests.location', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.exactness.0.code.in', $locationForm)] = trans('requests.location', ['suffix'=>trans('requests.suffix.exactness_is_invalid')]);
+ $messages[sprintf('%s.location_class.0.code.in', $locationForm)] = trans('requests.location', ['suffix'=>trans('requests.suffix.class_is_invalid')]);
+ $messages[sprintf('%s.feature_designation.0.code.in', $locationForm)] = trans('requests.location_feature', ['suffix'=>trans('requests.suffix.designation_is_invalid')]);
$tempMessages = [
$this->getMessagesForLocationId($location['location_id'], $locationForm),
$this->getMessagesForName($location['name'], $locationForm),
@@ -138,7 +138,7 @@ public function getMessagesForLocationId($formFields, $formBase): array
foreach ($formFields as $locationIdIndex => $locationId) {
$locationIdForm = sprintf('%s.location_id.%s', $formBase, $locationIdIndex);
- $messages[sprintf('%s.vocabulary.in', $locationIdForm)] = 'The location id vocabulary is invalid.';
+ $messages[sprintf('%s.vocabulary.in', $locationIdForm)] = trans('requests.location_id', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
}
return $messages;
@@ -317,10 +317,10 @@ public function getMessagesForAdministrative($formFields, $formBase): array
foreach ($formFields as $administrativeIndex => $administrative) {
$administrativeForm = sprintf('%s.administrative.%s', $formBase, $administrativeIndex);
- $messages[sprintf('%s.vocabulary.in', $administrativeForm)] = 'The location administrative vocabulary is invalid.';
- $messages[sprintf('%s.code.in', $administrativeForm)] = 'The location administrative code is invalid.';
- $messages[sprintf('%s.level.min', $administrativeForm)] = 'The location administrative level must not have negative value.';
- $messages[sprintf('%s.level.integer', $administrativeForm)] = 'The location administrative level must be an integer.';
+ $messages[sprintf('%s.vocabulary.in', $administrativeForm)] = trans('requests.location_admin', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
+ $messages[sprintf('%s.code.in', $administrativeForm)] = trans('requests.location_admin', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.level.min', $administrativeForm)] = trans('requests.location_admin_level', ['suffix'=>trans('requests.suffix.must_not_be_negative')]);
+ $messages[sprintf('%s.level.integer', $administrativeForm)] = trans('requests.location_admin_level', ['suffix'=>trans('requests.suffix.must_be_an_integer')]);
}
return $messages;
@@ -361,8 +361,8 @@ public function getMessagesForPoint($formFields, $formBase): array
$pointForm = sprintf('%s.point.0', $formBase);
$positionForm = sprintf('%s.position.0', $pointForm);
- $messages[sprintf('%s.latitude.numeric', $positionForm)] = 'The pos latitude must be numeric';
- $messages[sprintf('%s.longitude.numeric', $positionForm)] = 'The pos longitude must be numeric';
+ $messages[sprintf('%s.latitude.numeric', $positionForm)] = trans('requests.pos_latitude', ['suffix'=>trans('requests.suffix.must_be_numeric')]);
+ $messages[sprintf('%s.longitude.numeric', $positionForm)] = trans('requests.pos_longitude', ['suffix'=>trans('requests.suffix.must_be_numeric')]);
return $messages;
}
diff --git a/app/Http/Requests/Activity/OtherIdentifier/OtherIdentifierRequest.php b/app/Http/Requests/Activity/OtherIdentifier/OtherIdentifierRequest.php
index 1ecb39e961..38c876f5f2 100644
--- a/app/Http/Requests/Activity/OtherIdentifier/OtherIdentifierRequest.php
+++ b/app/Http/Requests/Activity/OtherIdentifier/OtherIdentifierRequest.php
@@ -68,8 +68,8 @@ public function getMessagesForOtherIdentifier(array $formFields): array
foreach ($formFields as $otherIdentifierIndex => $otherIdentifier) {
$otherIdentifierForm = sprintf('other_identifier.%s', $otherIdentifierIndex);
- $messages[sprintf('%s.reference.not_regex', $otherIdentifierForm)] = 'The other identifier reference field shouldn\'t contain the symbols /, &, | or ?.';
- $messages[sprintf('%s.reference_type.in', $otherIdentifierForm)] = 'The other identifier type is not valid.';
+ $messages[sprintf('%s.reference.not_regex', $otherIdentifierForm)] = trans('requests.other_identifier_ref', ['suffix'=>trans('requests.suffix.shouldnt_contain_symbol')]);
+ $messages[sprintf('%s.reference_type.in', $otherIdentifierForm)] = trans('requests.other_identifier', ['suffix'=>trans('requests.suffix.type_is_not_valid')]);
foreach ($this->getMessagesForOwnerOrg($otherIdentifier['owner_org'], $otherIdentifierForm) as $ownerOrgIndex => $ownerOrgMessages) {
$messages[$ownerOrgIndex] = $ownerOrgMessages;
@@ -117,7 +117,7 @@ public function getMessagesForOwnerOrg($formFields, $formBase)
foreach ($formFields as $ownerOrgIndex => $ownerOrg) {
$ownerOrgForm = sprintf('%s.owner_org.%s', $formBase, $ownerOrgIndex);
- $messages[sprintf('%s.owner_org.%s.ref.not_regex', $formBase, $ownerOrgIndex)] = 'The owner org reference field shouldn\'t contain the symbols /, &, | or ?.';
+ $messages[sprintf('%s.owner_org.%s.ref.not_regex', $formBase, $ownerOrgIndex)] = trans('requests.org_reference', ['suffix'=>trans('requests.suffix.shouldnt_contain_symbol')]);
foreach ($this->getMessagesForNarrative($ownerOrg['narrative'], $ownerOrgForm) as $ownerOrgNarrativeIndex => $ownerOrgNarrativeMessages) {
$messages[$ownerOrgNarrativeIndex] = $ownerOrgNarrativeMessages;
diff --git a/app/Http/Requests/Activity/ParticipatingOrganization/ParticipatingOrganizationRequest.php b/app/Http/Requests/Activity/ParticipatingOrganization/ParticipatingOrganizationRequest.php
index ea9d89a1ca..7c3d384245 100644
--- a/app/Http/Requests/Activity/ParticipatingOrganization/ParticipatingOrganizationRequest.php
+++ b/app/Http/Requests/Activity/ParticipatingOrganization/ParticipatingOrganizationRequest.php
@@ -78,8 +78,8 @@ public function getMessagesForParticipatingOrg($formFields): array
['attribute' => trans('elementForm.identifier'), 'values' => trans('elementForm.identifier')]
);
- $messages[sprintf('%s.organization_role.in', $participatingOrgForm)] = 'The participating organisation role is invalid.';
- $messages[sprintf('%s.type.in', $participatingOrgForm)] = 'The participating organisation type is invalid.';
+ $messages[sprintf('%s.organization_role.in', $participatingOrgForm)] = trans('requests.participating_org', ['suffix'=>trans('requests.suffix.role_is_invalid')]);
+ $messages[sprintf('%s.type.in', $participatingOrgForm)] = trans('requests.participating_org', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
foreach ($this->getMessagesForNarrative($participatingOrg['narrative'], $participatingOrgForm) as $participatingNarrativeIndex => $narrativeMessages) {
$messages[$participatingNarrativeIndex] = $narrativeMessages;
diff --git a/app/Http/Requests/Activity/Period/PeriodRequest.php b/app/Http/Requests/Activity/Period/PeriodRequest.php
index a1cbacb61c..09746beb35 100644
--- a/app/Http/Requests/Activity/Period/PeriodRequest.php
+++ b/app/Http/Requests/Activity/Period/PeriodRequest.php
@@ -151,21 +151,21 @@ protected function getMessagesForResultPeriod($formFields, $periodType): array
$periodType,
$periodStartKey
)]
- = 'The @date field must be a proper date.';
+ = trans('requests.date_field_symbol', ['suffix'=>trans('requests.suffix.must_be_a_proper_date')]);
$messages[sprintf(
'%s.%s.date.after',
$periodType,
$periodStartKey
)]
- = 'The @iso-date field of period end must be a date after @iso-field of period start';
+ = trans('requests.the_iso_date_field_after');
$messages[sprintf(
'%s.%s.date.period_start_end',
$periodType,
$periodStartKey
)]
- = 'The @iso-date field of period end and @iso-date of period start must not have difference of more than a year';
+ = trans('requests.the_iso_date_field_difference');
}
return $messages;
@@ -251,7 +251,7 @@ protected function getMessagesForTarget($formFields, $valueType, $fileUpload, $i
foreach ($formFields as $targetIndex => $target) {
$targetForm = sprintf('%s.%s', $valueType, $targetIndex);
- $messages[sprintf('%s.%s.value.numeric', $valueType, $targetIndex)] = 'The @value field must be numeric.';
+ $messages[sprintf('%s.%s.value.numeric', $valueType, $targetIndex)] = trans('requests.value_field_symbol', ['suffix'=>trans('requests.suffix.must_be_numeric')]);
$narrativeMessages = $this->getMessagesForNarrative($target['comment'][0]['narrative'], sprintf('%s.comment.0', $targetForm));
@@ -266,9 +266,9 @@ protected function getMessagesForTarget($formFields, $valueType, $fileUpload, $i
}
if ($indicatorMeasureType['non_qualitative']) {
- $messages[sprintf('%s.%s.value', $valueType, $targetIndex)] = 'Value must be filled when the indicator measure is non-qualitative.';
+ $messages[sprintf('%s.%s.value', $valueType, $targetIndex)] = trans('requests.value_must_be_filled');
} elseif ($indicatorMeasureType['qualitative'] && !empty($target['value'])) {
- $messages[sprintf('%s.%s.value.qualitative_empty', $valueType, $targetIndex)] = 'Value must be omitted when the indicator measure is qualitative.';
+ $messages[sprintf('%s.%s.value.qualitative_empty', $valueType, $targetIndex)] = trans('requests.value_must_be_omitted');
}
}
diff --git a/app/Http/Requests/Activity/PlannedDisbursement/PlannedDisbursementRequest.php b/app/Http/Requests/Activity/PlannedDisbursement/PlannedDisbursementRequest.php
index 0f96446c5b..795488a651 100644
--- a/app/Http/Requests/Activity/PlannedDisbursement/PlannedDisbursementRequest.php
+++ b/app/Http/Requests/Activity/PlannedDisbursement/PlannedDisbursementRequest.php
@@ -100,7 +100,7 @@ public function getMessagesForPlannedDisbursement(array $formFields): array
foreach ($formFields as $plannedDisbursementIndex => $plannedDisbursement) {
$plannedDisbursementForm = sprintf('planned_disbursement.%s', $plannedDisbursementIndex);
- $messages[sprintf('%s.planned_disbursement_type.in', $plannedDisbursementForm)] = 'The planned disbursement type is invalid.';
+ $messages[sprintf('%s.planned_disbursement_type.in', $plannedDisbursementForm)] = trans('requests.planned_disb', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
$periodStartMessages = $this->getMessagesForPeriodStart($plannedDisbursement['period_start'], $plannedDisbursementForm);
@@ -175,8 +175,8 @@ public function getMessagesForProviderOrg(array $formFields, $formBase): array
foreach ($formFields as $providerOrgIndex => $providerOrg) {
$providerOrgForm = sprintf('%s.provider_org.%s', $formBase, $providerOrgIndex);
- $message[sprintf('%s.type.in', $providerOrgForm)] = 'The planned disbursement provider org type is invalid.';
- $message[sprintf('%s.ref.not_regex', $providerOrgForm)] = 'The planned disbursement provider org ref shouldn\'t contain the symbols /, &, | or ?.';
+ $message[sprintf('%s.type.in', $providerOrgForm)] = trans('requests.planned_disb_pro', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
+ $message[sprintf('%s.ref.not_regex', $providerOrgForm)] = trans('requests.planned_disb_pro_ref', ['suffix'=>trans('requests.suffix.shouldnt_contain_symbol')]);
foreach ($this->getMessagesForNarrative($providerOrg['narrative'], $providerOrgForm) as $providerOrgNarrativeIndex => $providerOrgNarrativeMessages) {
$message[$providerOrgNarrativeIndex] = $providerOrgNarrativeMessages;
@@ -225,8 +225,8 @@ public function getMessagesForReceiverOrg(array $formFields, $formBase): array
foreach ($formFields as $receiverOrgIndex => $receiverOrg) {
$receiverOrgForm = sprintf('%s.receiver_org.%s', $formBase, $receiverOrgIndex);
- $message[sprintf('%s.type.in', $receiverOrgForm)] = 'The planned disbursement receiver org type is invalid.';
- $message[sprintf('%s.ref.not_regex', $receiverOrgForm)] = 'The planned disbursement receiver org ref shouldn\'t contain the symbols /, &, | or ?.';
+ $message[sprintf('%s.type.in', $receiverOrgForm)] = trans('requests.planned_disb_rec', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
+ $message[sprintf('%s.ref.not_regex', $receiverOrgForm)] = trans('requests.planned_disb_rec_ref', ['suffix'=>trans('requests.suffix.shouldnt_contain_symbol')]);
foreach ($this->getMessagesForNarrative($receiverOrg['narrative'], $receiverOrgForm) as $receiverOrgNarrativeIndex => $receiverOrgNarrativeMessages) {
$message[$receiverOrgNarrativeIndex] = $receiverOrgNarrativeMessages;
@@ -250,13 +250,13 @@ public function getMessagesForValue($formFields, $formBase): array
foreach ($formFields as $valueIndex => $value) {
$valueForm = sprintf('%s.value.%s', $formBase, $valueIndex);
- $messages[sprintf('%s.amount.required', $valueForm)] = 'Amount field is required';
- $messages[sprintf('%s.amount.numeric', $valueForm)] = 'Amount field must be a number';
- $messages[sprintf('%s.amount.min', $valueForm)] = 'Amount field must not be in negative.';
- $messages[sprintf('%s.currency.in', $valueForm)] = 'The value currency is invalid.';
- $messages[sprintf('%s.value_date.required', $valueForm)] = 'Value date is a required field';
- $messages[sprintf('%s.value_date.after', $valueForm)] = 'The value date field must be a between period start and period end';
- $messages[sprintf('%s.value_date.before', $valueForm)] = 'The value date field must be a between period start and period end';
+ $messages[sprintf('%s.amount.required', $valueForm)] = trans('requests.alt_amount_field', ['suffix'=>trans('requests.suffix.is_required')]);
+ $messages[sprintf('%s.amount.numeric', $valueForm)] = trans('requests.alt_amount_field', ['suffix'=>trans('requests.suffix.must_be_a_number')]);
+ $messages[sprintf('%s.amount.min', $valueForm)] = trans('requests.alt_amount_field', ['suffix'=>trans('requests.suffix.must_not_be_negative')]);
+ $messages[sprintf('%s.currency.in', $valueForm)] = trans('requests.value', ['suffix'=>trans('requests.suffix.currency_is_invalid')]);
+ $messages[sprintf('%s.value_date.required', $valueForm)] = trans('requests.alt_value_date', ['suffix'=>trans('requests.suffix.is_a_required_field')]);
+ $messages[sprintf('%s.value_date.after', $valueForm)] = trans('requests.value_date_field', ['suffix'=>trans('requests.suffix.must_be_between')]);
+ $messages[sprintf('%s.value_date.before', $valueForm)] = trans('requests.value_date_field', ['suffix'=>trans('requests.suffix.must_be_between')]);
}
return $messages;
@@ -295,9 +295,9 @@ public function getMessagesForPeriodStart($formFields, $formBase): array
foreach ($formFields as $periodStartKey => $periodStartVal) {
$messages[$formBase . '.period_start.' . $periodStartKey . '.date.required'] = trans('validation.required', ['attribute' => trans('elementForm.period_start')]);
- $messages[$formBase . '.period_end.' . $periodStartKey . '.date.date'] = 'Period end must be a date.';
- $messages[$formBase . '.period_end.' . $periodStartKey . '.date.date_greater_than'] = 'Period end date must be date greater than year 1900.';
- $messages[$formBase . '.period_start.' . $periodStartKey . '.date.period_start_end'] = 'The Planned Disbursement Period must not be longer than three months';
+ $messages[$formBase . '.period_end.' . $periodStartKey . '.date.date'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.must_be_a_date')]);
+ $messages[$formBase . '.period_end.' . $periodStartKey . '.date.date_greater_than'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.date_must_be_greater')]);
+ $messages[$formBase . '.period_start.' . $periodStartKey . '.date.period_start_end'] = trans('requests.planned_disb_period', ['suffix'=>trans('requests.suffix.must_not_be_longer_than_3_months')]);
}
return $messages;
@@ -342,11 +342,11 @@ public function getMessagesForPeriodEnd($formFields, $formBase): array
$messages = [];
foreach ($formFields as $periodEndKey => $periodEndVal) {
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.required'] = 'Period end is a required field';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date'] = 'Period end must be a date field';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.after'] = 'Period end must be a date after period';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date_greater_than'] = 'Period end date must be date greater than year 1900.';
- $messages[$formBase . '.period_end.' . $periodEndKey . '.date.period_start_end'] = 'The Planned Disbursement Period must not be longer than three months';
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.required'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.is_a_required_field')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.must_be_a_date_field')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.after'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.must_be_a_date_after_period')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.date_greater_than'] = trans('requests.alt_period_end', ['suffix'=>trans('requests.suffix.date_must_be_greater')]);
+ $messages[$formBase . '.period_end.' . $periodEndKey . '.date.period_start_end'] = trans('requests.planned_disb_period', ['suffix'=>trans('requests.suffix.must_not_be_longer_than_3_months')]);
}
return $messages;
diff --git a/app/Http/Requests/Activity/PolicyMarker/PolicyMarkerRequest.php b/app/Http/Requests/Activity/PolicyMarker/PolicyMarkerRequest.php
index 2ac7624dc8..ac551e3bf6 100644
--- a/app/Http/Requests/Activity/PolicyMarker/PolicyMarkerRequest.php
+++ b/app/Http/Requests/Activity/PolicyMarker/PolicyMarkerRequest.php
@@ -77,15 +77,15 @@ public function getMessagesForPolicyMarker(array $formFields): array
foreach ($formFields as $policyMarkerIndex => $policyMarker) {
$policyMarkerForm = sprintf('policy_marker.%s', $policyMarkerIndex);
- $messages[sprintf('%s.policy_marker_vocabulary.in', $policyMarkerForm)] = 'The policy marker vocabulary is invalid.';
- $messages[sprintf('%s.significance.in', $policyMarkerForm)] = 'The policy marker significance is invalid.';
- $messages[sprintf('%s.policy_marker.in', $policyMarkerForm)] = 'The policy marker code is invalid.';
+ $messages[sprintf('%s.policy_marker_vocabulary.in', $policyMarkerForm)] = trans('requests.policy_maker', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
+ $messages[sprintf('%s.significance.in', $policyMarkerForm)] = trans('requests.policy_maker', ['suffix'=>trans('requests.suffix.significance_is_invalid')]);
+ $messages[sprintf('%s.policy_marker.in', $policyMarkerForm)] = trans('requests.policy_maker', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
$messages[sprintf('%s.vocabulary_uri.url', $policyMarkerForm)]
- = 'The @vocabulary-uri field must be a valid url.';
+ = trans('requests.vocab_url_field_symbol', ['suffix'=>trans('requests.suffix.must_be_valid_url')]);
if (Arr::get($policyMarker, 'policy_marker_vocabulary') === '99') {
foreach (array_keys($policyMarker['narrative']) as $narrativeIndex) {
- $messages[sprintf('%s.narrative.%s.narrative.required', $policyMarkerForm, $narrativeIndex)] = 'The narrative field is required when vocabulary is reporting organisation.';
+ $messages[sprintf('%s.narrative.%s.narrative.required', $policyMarkerForm, $narrativeIndex)] = trans('requests.narrative_field', ['suffix'=>trans('requests.suffix.required_when_vocabulary')]);
}
}
diff --git a/app/Http/Requests/Activity/RecipientCountry/RecipientCountryRequest.php b/app/Http/Requests/Activity/RecipientCountry/RecipientCountryRequest.php
index 12775274aa..144e2e95cf 100644
--- a/app/Http/Requests/Activity/RecipientCountry/RecipientCountryRequest.php
+++ b/app/Http/Requests/Activity/RecipientCountry/RecipientCountryRequest.php
@@ -134,22 +134,22 @@ public function getRulesForRecipientCountry(array $formFields, bool $fileUpload
*/
public function getMessagesForRecipientCountry(array $formFields): array
{
- $messages = ['recipient_country.already_in_transactions' => 'Recipient Country Already defined in Transactions'];
+ $messages = ['recipient_country.already_in_transactions' => trans('requests.alt_recipient_country', ['suffix'=>trans('requests.suffix.already_defined_in_transaction')])];
foreach ($formFields as $recipientCountryIndex => $recipientCountry) {
$recipientCountryForm = 'recipient_country.' . $recipientCountryIndex;
- $messages[sprintf('%s.country_code.in', $recipientCountryForm)] = 'The recipient country code is invalid.';
- $messages[$recipientCountryForm . '.percentage.numeric'] = 'The recipient country percentage must be a number.';
- $messages[$recipientCountryForm . '.percentage.max'] = 'The recipient country percentage cannot be greater than 100';
- $messages[$recipientCountryForm . '.percentage.sum_exceeded'] = 'The sum of recipient country percentage cannot be greater than 100';
+ $messages[sprintf('%s.country_code.in', $recipientCountryForm)] = trans('requests.recipient_country', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[$recipientCountryForm . '.percentage.numeric'] = trans('requests.recipient_country_percentage', ['suffix'=>trans('requests.suffix.percent_must_be_a_number')]);
+ $messages[$recipientCountryForm . '.percentage.max'] = trans('requests.recipient_country_percentage', ['suffix'=>trans('requests.suffix.cannot_be_greater_than_100')]);
+ $messages[$recipientCountryForm . '.percentage.sum_exceeded'] = trans('the_sum_of_recipient');
$narrativeMessages = $this->getMessagesForNarrative($recipientCountry['narrative'], $recipientCountryForm);
foreach ($narrativeMessages as $key => $item) {
$messages[$key] = $item;
}
- $messages[$recipientCountryForm . '.percentage.in'] = 'Recipient country percent must be equal to allocated percent';
- $messages[$recipientCountryForm . '.percentage.allocated_country_percent_exceeded'] = 'Recipient country percent must match with allocated percent';
+ $messages[$recipientCountryForm . '.percentage.in'] = trans('requests.alt_recipient_country', ['suffix'=>trans('requests.suffix.percent_equal_allocated')]);
+ $messages[$recipientCountryForm . '.percentage.allocated_country_percent_exceeded'] = trans('requests.alt_recipient_country', ['suffix'=>trans('requests.suffix.percent_match_allocated')]);
}
return $messages;
diff --git a/app/Http/Requests/Activity/RecipientRegion/RecipientRegionRequest.php b/app/Http/Requests/Activity/RecipientRegion/RecipientRegionRequest.php
index 3a43add75d..430d9306e4 100644
--- a/app/Http/Requests/Activity/RecipientRegion/RecipientRegionRequest.php
+++ b/app/Http/Requests/Activity/RecipientRegion/RecipientRegionRequest.php
@@ -149,10 +149,10 @@ public function getMessagesForRecipientRegion(array $formFields): array
foreach ($formFields as $recipientRegionIndex => $recipientRegion) {
$recipientRegionForm = 'recipient_region.' . $recipientRegionIndex;
- $messages[sprintf('%s.region_vocabulary.in', $recipientRegionForm)] = 'The recipient region vocabulary is invalid.';
- $messages[sprintf('%s.region_code.in', $recipientRegionForm)] = 'The recipient region code is invalid.';
- $messages[$recipientRegionForm . '.percentage.numeric'] = 'The recipient region percentage field must be a number.';
- $messages[sprintf('%s.vocabulary_uri.url', $recipientRegionForm)] = 'The recipient region vocabulary uri must be a valid url.';
+ $messages[sprintf('%s.region_vocabulary.in', $recipientRegionForm)] = trans('requests.recipient_region', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
+ $messages[sprintf('%s.region_code.in', $recipientRegionForm)] = trans('requests.recipient_region', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[$recipientRegionForm . '.percentage.numeric'] = trans('requests.recipient_region_perc_field', ['suffix'=>trans('requests.suffix.must_be_a_number')]);
+ $messages[sprintf('%s.vocabulary_uri.url', $recipientRegionForm)] = trans('requests.recipient', ['suffix'=>trans('requests.suffix.must_be_valid_vocal_url')]);
$narrativeMessages = $this->getMessagesForNarrative($recipientRegion['narrative'], $recipientRegionForm);
@@ -160,10 +160,10 @@ public function getMessagesForRecipientRegion(array $formFields): array
$messages[$key] = $item;
}
- $messages[$recipientRegionForm . '.percentage.in'] = 'Region percent must be equal to allocated percent';
- $messages[$recipientRegionForm . '.percentage.allocated_region_total_mismatch'] = 'Region percent must match with allocated percent';
- $messages[$recipientRegionForm . '.percentage.sum_greater_than'] = 'Sum of percentage within vocabulary cannot be greater than 100';
- $messages[$recipientRegionForm . '.percentage.percentage_within_vocabulary'] = 'The total percentage within different vocabulary must be equal.';
+ $messages[$recipientRegionForm . '.percentage.in'] = trans('requests.alt_region', ['suffix'=>trans('requests.suffix.percent_equal_allocated')]);
+ $messages[$recipientRegionForm . '.percentage.allocated_region_total_mismatch'] = trans('requests.alt_region', ['suffix'=>trans('requests.suffix.percent_match_allocated')]);
+ $messages[$recipientRegionForm . '.percentage.sum_greater_than'] = trans('requests.sum_of_percent');
+ $messages[$recipientRegionForm . '.percentage.percentage_within_vocabulary'] = trans('requests.the_total_percent_equal');
}
return $messages;
diff --git a/app/Http/Requests/Activity/RelatedActivity/RelatedActivityRequest.php b/app/Http/Requests/Activity/RelatedActivity/RelatedActivityRequest.php
index 440ee9cad4..131b9f61d3 100644
--- a/app/Http/Requests/Activity/RelatedActivity/RelatedActivityRequest.php
+++ b/app/Http/Requests/Activity/RelatedActivity/RelatedActivityRequest.php
@@ -64,7 +64,7 @@ public function getMessagesForRelatedActivity(array $formFields): array
foreach ($formFields as $index => $formField) {
$baseForm = sprintf('related_activity.%s', $index);
- $messages[sprintf('%s.relationship_type.in', $baseForm)] = 'The relationship type in related activity is invalid.';
+ $messages[sprintf('%s.relationship_type.in', $baseForm)] = trans('requests.relationship_type', ['suffix'=>trans('requests.suffix.is_invalid')]);
}
return $messages;
diff --git a/app/Http/Requests/Activity/ReportingOrg/ReportingOrgRequest.php b/app/Http/Requests/Activity/ReportingOrg/ReportingOrgRequest.php
index 52a7b842aa..9b30368c3a 100644
--- a/app/Http/Requests/Activity/ReportingOrg/ReportingOrgRequest.php
+++ b/app/Http/Requests/Activity/ReportingOrg/ReportingOrgRequest.php
@@ -71,13 +71,13 @@ public function getMessagesForReportingOrganization(array $formFields): array
{
$messages = [];
- $messages['reporting_org.size'] = 'The reporting organisation should not have multiple values or narratives.';
+ $messages['reporting_org.size'] = trans('requests.reporting_org', ['suffix'=>trans('requests.suffix.should_not_have_multiple_values')]);
foreach ($formFields as $reportingOrganizationIndex => $reportingOrganization) {
$reportingOrganizationForm = sprintf('reporting_org.%s', $reportingOrganizationIndex);
- $messages[$reportingOrganizationForm . '.ref.not_regex'] = 'The reference format for reporting organisation is invalid.';
- $messages[$reportingOrganizationForm . '.type.in'] = 'The type for reporting organisation is invalid.';
+ $messages[$reportingOrganizationForm . '.ref.not_regex'] = trans('requests.reference_format', ['suffix'=>trans('requests.suffix.should_not_have_multiple_values')]);
+ $messages[$reportingOrganizationForm . '.type.in'] = trans('requests.type_for', ['suffix'=>trans('requests.suffix.organisation_is_invalid')]);
$narrativeMessages = $this->getMessagesForNarrative($reportingOrganization['narrative'], $reportingOrganizationForm);
diff --git a/app/Http/Requests/Activity/Result/ResultRequest.php b/app/Http/Requests/Activity/Result/ResultRequest.php
index db02a9a3cd..5bd894a963 100644
--- a/app/Http/Requests/Activity/Result/ResultRequest.php
+++ b/app/Http/Requests/Activity/Result/ResultRequest.php
@@ -163,10 +163,10 @@ protected function getMessagesForReferences($formFields, $fileUpload = false): a
foreach ($formFields as $referenceIndex => $reference) {
$referenceForm = sprintf('reference.%s', $referenceIndex);
- $messages[sprintf('%s.vocabulary_uri.url', $referenceForm)] = 'The @vocabulary-uri field must be a valid url.';
+ $messages[sprintf('%s.vocabulary_uri.url', $referenceForm)] = trans('requests.vocab_url_field_symbol', ['suffix'=>trans('requests.suffix.must_be_valid_url')]);
if (!empty($reference['code']) && $hasResultId) {
- $messages[sprintf('%s.code.indicator_ref_code_present', $referenceForm)] = 'The code is already defined in its indicators';
+ $messages[sprintf('%s.code.indicator_ref_code_present', $referenceForm)] = trans('requests.code', ['suffix'=>trans('requests.suffix.defined_in_indicators')]);
}
}
diff --git a/app/Http/Requests/Activity/Scope/ScopeRequest.php b/app/Http/Requests/Activity/Scope/ScopeRequest.php
index e724fb47e0..208a19c4e2 100644
--- a/app/Http/Requests/Activity/Scope/ScopeRequest.php
+++ b/app/Http/Requests/Activity/Scope/ScopeRequest.php
@@ -39,8 +39,8 @@ public function rules($scope = null): array
public function messages(): array
{
return [
- 'in' => 'The activity scope does not exist.',
- 'size' => 'The activity scope cannot have more than one value.',
+ 'in' => trans('requests.activity_scope', ['suffix'=>trans('requests.suffix.doesnt_exist')]),
+ 'size' => trans('requests.activity_scope', ['suffix'=>trans('requests.suffix.cannot_have_more_than_one')]),
];
}
}
diff --git a/app/Http/Requests/Activity/Sector/SectorRequest.php b/app/Http/Requests/Activity/Sector/SectorRequest.php
index e2ad9ec68e..c925506d18 100644
--- a/app/Http/Requests/Activity/Sector/SectorRequest.php
+++ b/app/Http/Requests/Activity/Sector/SectorRequest.php
@@ -152,16 +152,16 @@ public function getSectorsMessages($formFields): array
foreach ($formFields as $sectorIndex => $sector) {
$sectorForm = sprintf('sector.%s', $sectorIndex);
- $messages[sprintf('%s.sector_vocabulary.in', $sectorForm)] = 'The sector vocabulary is invalid.';
- $messages[sprintf('%s.code.in', $sectorForm)] = 'The sector code is invalid.';
- $messages[sprintf('%s.category_code.in', $sectorForm)] = 'The sector code is invalid.';
- $messages[sprintf('%s.sdg_goal.in', $sectorForm)] = 'The sector code is invalid.';
- $messages[sprintf('%s.sdg_target.in', $sectorForm)] = 'The sector code is invalid.';
- $messages[sprintf('%s.vocabulary_uri.url', $sectorForm)] = 'The sector vocabulary-uri field must be a valid url.';
- $messages[sprintf('%s.percentage.numeric', $sectorForm)] = 'The sector percentage field must be a number.';
- $messages[sprintf('%s.percentage.in', $sectorForm)] = 'The sector percentage for single sector must be either omitted or be 100.';
- $messages[sprintf('%s.percentage.sector_total_percent', $sectorForm)] = 'The total percentage within a vocabulary must be 100.';
- $messages[sprintf('%s.sector_vocabulary.sector_has_five_digit_oced_vocab', $sectorForm)] = 'The sector vocabulary must have 5 digit OECD';
+ $messages[sprintf('%s.sector_vocabulary.in', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.is_invalid')]);
+ $messages[sprintf('%s.code.in', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.category_code.in', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.sdg_goal.in', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.sdg_target.in', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.vocabulary_uri.url', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.must_be_valid_vocal_url')]);
+ $messages[sprintf('%s.percentage.numeric', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.percent_field_must_be_a_number')]);
+ $messages[sprintf('%s.percentage.in', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.percentage_omitted')]);
+ $messages[sprintf('%s.percentage.sector_total_percent', $sectorForm)] = trans('requests.the_total_percent_100');
+ $messages[sprintf('%s.sector_vocabulary.sector_has_five_digit_oced_vocab', $sectorForm)] = trans('requests.sector', ['suffix'=>trans('requests.suffix.must_have_oecd')]);
$messageNarratives = $this->getMessagesForNarrative($sector['narrative'], $sectorForm);
diff --git a/app/Http/Requests/Activity/Status/StatusRequest.php b/app/Http/Requests/Activity/Status/StatusRequest.php
index a4c4deb84c..2d847a16f4 100644
--- a/app/Http/Requests/Activity/Status/StatusRequest.php
+++ b/app/Http/Requests/Activity/Status/StatusRequest.php
@@ -39,8 +39,8 @@ public function rules($status = null): array
public function messages(): array
{
return [
- 'in' => 'The activity status does not exist.',
- 'size' => 'The activity status cannot have more than one value.',
+ 'in' => trans('requests.activity_status', ['suffix'=>trans('requests.suffix.doesnt_exist')]),
+ 'size' => trans('requests.activity_status', ['suffix'=>trans('requests.suffix.cannot_have_more_than_one')]),
];
}
}
diff --git a/app/Http/Requests/Activity/Tag/TagRequest.php b/app/Http/Requests/Activity/Tag/TagRequest.php
index 18404c19bd..d1df56b25d 100644
--- a/app/Http/Requests/Activity/Tag/TagRequest.php
+++ b/app/Http/Requests/Activity/Tag/TagRequest.php
@@ -70,10 +70,10 @@ public function getMessagesForTag(array $formFields): array
foreach ($formFields as $tagIndex => $tag) {
$tagForm = sprintf('tag.%s', $tagIndex);
- $messages[sprintf('%s.tag_vocabulary.in', $tagForm)] = 'The tag vocabulary is invalid.';
- $messages[sprintf('%s.goals_tag_code.in', $tagForm)] = 'The tag SDG code is invalid';
- $messages[sprintf('%s.targets_tag_code.in', $tagForm)] = 'The tag SDG targets code is invalid.';
- $messages[sprintf('%s.vocabulary_uri.url', $tagForm)] = 'The @vocabulary-uri field must be a valid url.';
+ $messages[sprintf('%s.tag_vocabulary.in', $tagForm)] = trans('requests.tag', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.goals_tag_code.in', $tagForm)] = trans('requests.sdg', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.targets_tag_code.in', $tagForm)] = trans('requests.sdg_targets', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.vocabulary_uri.url', $tagForm)] = trans('requests.vocab_url_field_symbol', ['suffix'=>trans('requests.suffix.must_be_valid_url')]);
foreach ($this->getMessagesForNarrative($tag['narrative'], $tagForm) as $tagNarrativeIndex => $narrativeMessages) {
$messages[$tagNarrativeIndex] = $narrativeMessages;
diff --git a/app/Http/Requests/Activity/Title/TitleRequest.php b/app/Http/Requests/Activity/Title/TitleRequest.php
index 06728082d8..d3e92eda64 100644
--- a/app/Http/Requests/Activity/Title/TitleRequest.php
+++ b/app/Http/Requests/Activity/Title/TitleRequest.php
@@ -52,14 +52,14 @@ public function messages($name = 'narrative', $data = []): array
$titles = request()->get('narrative');
}
- $messages[sprintf('%s.unique_lang', $name)] = 'The title language field must be unique.';
- $messages[sprintf('%s.unique_default_lang', $name)] = 'The title language field must be unique.';
- $messages[sprintf('%s.0.narrative.required', $name)] = 'The first title is required.';
+ $messages[sprintf('%s.unique_lang', $name)] = trans('requests.title_language_field', ['suffix'=>trans('requests.suffix.must_be_unique')]);
+ $messages[sprintf('%s.unique_default_lang', $name)] = trans('requests.title_language_field', ['suffix'=>trans('requests.suffix.must_be_unique')]);
+ $messages[sprintf('%s.0.narrative.required', $name)] = trans('requests.first_title', ['suffix'=>trans('requests.suffix.is_required')]);
if (is_array($titles) && count($titles)) {
foreach ($titles as $key => $title) {
if ($key !== 0) {
- $messages[sprintf('%s.%s.narrative.required_with_language', $name, $key)] = 'The narrative is required when language is specified.';
+ $messages[sprintf('%s.%s.narrative.required_with_language', $name, $key)] = trans('requests.narrative', ['suffix'=>trans('requests.suffix.required_when_language')]);
}
}
}
diff --git a/app/Http/Requests/Activity/Transaction/TransactionRequest.php b/app/Http/Requests/Activity/Transaction/TransactionRequest.php
index 3a7dc888a5..5418a736d8 100644
--- a/app/Http/Requests/Activity/Transaction/TransactionRequest.php
+++ b/app/Http/Requests/Activity/Transaction/TransactionRequest.php
@@ -107,17 +107,17 @@ public function getMessagesForTransaction(array $formFields): array
$messages = [];
$messages['reference.not_in']
- = 'The transaction reference field must be unique for an activity.';
-
- $messages['transaction_type.0.transaction_type_code.in'] = 'The transaction type is invalid.';
- $messages['flow_type.0.flow_type.in'] = 'The transaction flow type code is invalid.';
- $messages['finance_type.0.finance_type.in'] = 'The transaction finance type code is invalid.';
- $messages['aid_type.0.aid_type_vocabulary.in'] = 'The transaction aid type vocabulary is invalid.';
- $messages['aid_type.0.aid_type_code.in'] = 'The transaction aid type code is invalid.';
- $messages['aid_type.0.earmarking_category.in'] = 'The transaction aid type code is invalid.';
- $messages['aid_type.0.earmarking_modality.in'] = 'The transaction aid type code is invalid.';
- $messages['aid_type.0.cash_and_voucher_modalities.in'] = 'The transaction aid type code is invalid.';
- $messages['tied_status.0.tied_status_code.in'] = 'The transaction tied status code is invalid.';
+ = trans('requests.transaction_ref_field', ['suffix'=>trans('requests.suffix.must_be_unique_for_activity')]);
+
+ $messages['transaction_type.0.transaction_type_code.in'] = trans('requests.transaction', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
+ $messages['flow_type.0.flow_type.in'] = trans('requests.transaction_flow', ['suffix'=>trans('requests.suffix.code_in_invalid')]);
+ $messages['finance_type.0.finance_type.in'] = trans('requests.transaction_finance', ['suffix'=>trans('requests.suffix.code_in_invalid')]);
+ $messages['aid_type.0.aid_type_vocabulary.in'] = trans('requests.transaction_aid', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
+ $messages['aid_type.0.aid_type_code.in'] = trans('requests.transaction_aid', ['suffix'=>trans('requests.suffix.code_in_invalid')]);
+ $messages['aid_type.0.earmarking_category.in'] = trans('requests.transaction_aid', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages['aid_type.0.earmarking_modality.in'] = trans('requests.transaction_aid', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages['aid_type.0.cash_and_voucher_modalities.in'] = trans('requests.transaction_aid', ['suffix'=>trans('requests.suffix.code_in_invalid')]);
+ $messages['tied_status.0.tied_status_code.in'] = trans('requests.transaction_tied', ['suffix'=>trans('requests.suffix.code_in_invalid')]);
$tempMessages = [
$this->getTransactionDateMessages($formFields['transaction_date']),
$this->getValueMessages($formFields['value']),
@@ -170,8 +170,8 @@ public function getTransactionDateMessages(array $formFields): array
foreach ($formFields as $dateIndex => $date) {
$dateForm = sprintf('transaction_date.%s', $dateIndex);
- $messages[sprintf('%s.date.before', $dateForm)] = 'The @iso-date must not be in future.';
- $messages[sprintf('%s.date.date', $dateForm)] = 'The @iso-date field mus be a valid date.';
+ $messages[sprintf('%s.date.before', $dateForm)] = trans('requests.iso_date_symbol', ['suffix'=>trans('requests.suffix.must_not_be_future')]);
+ $messages[sprintf('%s.date.date', $dateForm)] = trans('requests.iso_field_symbol', ['suffix'=>trans('requests.suffix.must_be_valid_date')]);
}
return $messages;
@@ -210,10 +210,10 @@ public function getValueMessages(array $formFields): array
foreach ($formFields as $valueIndex => $value) {
$valueForm = sprintf('value.%s', $valueIndex);
- $messages[sprintf('%s.amount.numeric', $valueForm)] = 'The @amount field must be a number.';
- $messages[sprintf('%s.amount.min', $valueForm)] = 'The @amount field must not be in negative.';
- $messages[sprintf('%s.date.before', $valueForm)] = 'The @value-date must not be in future.';
- $messages[sprintf('%s.date.date', $valueForm)] = 'The @value-date field must be a valid date.';
+ $messages[sprintf('%s.amount.numeric', $valueForm)] = trans('requests.amount_field_symbol', ['suffix'=>trans('requests.suffix.must_be_a_number')]);
+ $messages[sprintf('%s.amount.min', $valueForm)] = trans('requests.amount_field_symbol', ['suffix'=>trans('requests.suffix.must_not_be_negative')]);
+ $messages[sprintf('%s.date.before', $valueForm)] = trans('requests.value_date_symbol', ['suffix'=>trans('requests.suffix.must_not_be_future')]);
+ $messages[sprintf('%s.date.date', $valueForm)] = trans('requests.value_date_field_symbol', ['suffix'=>trans('requests.suffix.must_be_a_valid_date')]);
}
return $messages;
@@ -329,7 +329,7 @@ public function getSectorsRules(array $formFields, bool $fileUpload, array $acti
*/
public function getSectorsMessages(array $formFields): array
{
- $messages = ['sector.already_in_activity' => 'Sector already defined in Activity so cannot be mentioned in transaction.'];
+ $messages = ['sector.already_in_activity' => trans('requests.alt_sector', ['suffix'=>'requests.suffix.already_defined_in_activity'])];
if (empty($formFields)) {
return $messages;
@@ -337,15 +337,15 @@ public function getSectorsMessages(array $formFields): array
foreach ($formFields as $sectorIndex => $sector) {
$sectorForm = sprintf('sector.%s', $sectorIndex);
- $messages[sprintf('%s.sector_vocabulary.in', $sectorForm)] = 'The transaction sector vocabulary is invalid.';
- $messages[sprintf('%s.code.in', $sectorForm)] = 'The transaction sector code is invalid.';
- $messages[sprintf('%s.category_code.in', $sectorForm)] = 'The transaction sector code is invalid.';
- $messages[sprintf('%s.sdg_goal.in', $sectorForm)] = 'The transaction sector code is invalid.';
- $messages[sprintf('%s.sdg_target.in', $sectorForm)] = 'The transaction sector code is invalid.';
+ $messages[sprintf('%s.sector_vocabulary.in', $sectorForm)] = trans('requests.transaction_sector', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
+ $messages[sprintf('%s.code.in', $sectorForm)] = trans('requests.transaction_sector', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.category_code.in', $sectorForm)] = trans('requests.transaction_sector', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.sdg_goal.in', $sectorForm)] = trans('requests.transaction_sector', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.sdg_target.in', $sectorForm)] = trans('requests.transaction_sector', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
if (isset($sector['sector_vocabulary']) && $sector['sector_vocabulary'] === '99') {
$messages[sprintf('%s.vocabulary_uri.url', $sectorForm)]
- = 'The transaction sector vocabulary-uri field must be a valid url.';
+ = trans('requests.transaction', ['suffix'=>trans('requests.suffix.must_be_valid_vocal_url')]);
}
$narrativeMessages = $this->getMessagesForNarrative($sector['narrative'], $sectorForm);
@@ -396,8 +396,8 @@ public function getMessagesForProviderOrg(array $formFields): array
foreach ($formFields as $providerOrgIndex => $providerOrg) {
$providerOrgForm = sprintf('provider_organization.%s', $providerOrgIndex);
- $message[sprintf('%s.%s.exclude_operators', $providerOrgForm, 'provider_activity_id')] = 'The transaction provider-activity-id field is not valid.';
- $messages[sprintf('%s.%s.in', $providerOrgForm, 'type')] = 'The transaction provider org type is invalid.';
+ $message[sprintf('%s.%s.exclude_operators', $providerOrgForm, 'provider_activity_id')] = trans('requests.transaction_pro_org', ['suffix'=>trans('requests.suffix.is_not_valid')]);
+ $messages[sprintf('%s.%s.in', $providerOrgForm, 'type')] = trans('requests.transaction_pro_activity', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
$narrativeMessages = $this->getMessagesForNarrative($providerOrg['narrative'], $providerOrgForm);
foreach ($narrativeMessages as $key => $item) {
@@ -446,8 +446,8 @@ public function getMessagesForReceiverOrg(array $formFields): array
foreach ($formFields as $receiverOrgIndex => $receiverOrg) {
$receiverOrgForm = sprintf('receiver_organization.%s', $receiverOrgIndex);
- $message[sprintf('%s.%s.exclude_operators', $receiverOrgForm, 'receiver_activity_id')] = 'The transaction receiver-activity-id field is not valid.';
- $messages[sprintf('%s.%s.in', $receiverOrgForm, 'type')] = 'The transaction receiver org type is invalid.';
+ $message[sprintf('%s.%s.exclude_operators', $receiverOrgForm, 'receiver_activity_id')] = trans('requests.transaction_rec_org', ['suffix'=>trans('requests.suffix.is_not_valid')]);
+ $messages[sprintf('%s.%s.in', $receiverOrgForm, 'type')] = trans('requests.transaction_rec_activity', ['suffix'=>trans('requests.suffix.type_is_invalid')]);
$narrativeMessages = $this->getMessagesForNarrative($receiverOrg['narrative'], $receiverOrgForm);
foreach ($narrativeMessages as $key => $item) {
@@ -519,7 +519,7 @@ public function getRulesForRecipientRegion(array $formFields, bool $fileUpload,
*/
public function getMessagesForRecipientRegion(array $formFields): array
{
- $messages = ['recipient_region.already_in_activity' => 'Recipient Region already defined in Activity so cannot be mentioned in transaction.'];
+ $messages = ['recipient_region.already_in_activity' => trans('requests.alt_recipient_region', ['suffix'=>trans('requests.suffix.already_defined_in_activity')])];
if (!$formFields) {
return $messages;
@@ -527,13 +527,13 @@ public function getMessagesForRecipientRegion(array $formFields): array
foreach ($formFields as $recipientRegionIndex => $recipientRegion) {
$recipientRegionForm = sprintf('recipient_region.%s', $recipientRegionIndex);
- $messages[sprintf('%s.region_vocabulary.in', $recipientRegionForm)] = 'The transaction recipient region vocabulary is invalid.';
- $messages[sprintf('%s.region_code.in', $recipientRegionForm)] = 'The transaction recipient region code is invalid.';
- $messages[sprintf('%s.vocabulary_uri.url', $recipientRegionForm)] = 'The transaction recipient region vocabulary uri must be a valid url.';
+ $messages[sprintf('%s.region_vocabulary.in', $recipientRegionForm)] = trans('requests.transaction_rec_region', ['suffix'=>trans('requests.suffix.vocabulary_is_invalid')]);
+ $messages[sprintf('%s.region_code.in', $recipientRegionForm)] = trans('requests.transaction_rec_region', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
+ $messages[sprintf('%s.vocabulary_uri.url', $recipientRegionForm)] = trans('requests.transaction_rec_region', ['suffix'=>trans('requests.suffix.must_be_valid_vocal_url')]);
if (Arr::get($recipientRegion, 'region_vocabulary', 1) === '99') {
$messages[sprintf('%s.vocabulary_uri.url', $recipientRegionForm)]
- = 'The @vocabulary-uri field must be a valid url.';
+ = trans('requests.vocab_url_field_symbol', ['suffix'=>trans('requests.suffix.must_be_valid_url')]);
}
$narrativeMessages = $this->getMessagesForNarrative($recipientRegion['narrative'], $recipientRegionForm);
@@ -601,7 +601,7 @@ public function getRulesForRecipientCountry(array $formFields, bool $fileUpload,
*/
public function getMessagesForRecipientCountry(array $formFields): array
{
- $messages = ['recipient_country.already_in_activity' => 'Recipient Country already defined in Activity so cannot be mentioned in transaction.'];
+ $messages = ['recipient_country.already_in_activity' => trans('requests.alt_recipient_country', ['suffix'=>trans('requests.suffix.already_defined_in_activity')])];
if (!$formFields) {
return $messages;
@@ -609,7 +609,7 @@ public function getMessagesForRecipientCountry(array $formFields): array
foreach ($formFields as $recipientCountryIndex => $recipientCountry) {
$recipientCountryForm = sprintf('recipient_country.%s', $recipientCountryIndex);
- $messages[sprintf('%s.country_code.in', $recipientCountryForm)] = 'The transaction recipient country code is invalid.';
+ $messages[sprintf('%s.country_code.in', $recipientCountryForm)] = trans('requests.transaction_ref_country', ['suffix'=>trans('requests.suffix.code_is_invalid')]);
$narrativeMessages = $this->getMessagesForNarrative($recipientCountry['narrative'], $recipientCountryForm);
foreach ($narrativeMessages as $key => $item) {
diff --git a/app/Http/Requests/Activity/UploadActivity/ImportActivityRequest.php b/app/Http/Requests/Activity/UploadActivity/ImportActivityRequest.php
index 6b672d4ed5..3c0132f8ec 100644
--- a/app/Http/Requests/Activity/UploadActivity/ImportActivityRequest.php
+++ b/app/Http/Requests/Activity/UploadActivity/ImportActivityRequest.php
@@ -50,9 +50,9 @@ public function rules(): array
*/
public function messages(): array
{
- $messages['activity.required'] = 'The activity file must be uploaded';
- $messages['activity.activity_file'] = 'The file must be of either xml or csv format.';
- $messages['activity.max'] = 'The file shouldn\'t be greater than 10MB.';
+ $messages['activity.required'] = trans('requests.activity_files', ['suffix'=>trans('requests.suffix.must_be_uploaded')]);
+ $messages['activity.activity_file'] = trans('requests.either_xml_csv');
+ $messages['activity.max'] = trans('requests.greater_than_100mb');
return $messages;
}
diff --git a/app/Http/Requests/Organization/DocumentLink/DocumentLinkRequest.php b/app/Http/Requests/Organization/DocumentLink/DocumentLinkRequest.php
index 0169a9ef72..59bc57922d 100644
--- a/app/Http/Requests/Organization/DocumentLink/DocumentLinkRequest.php
+++ b/app/Http/Requests/Organization/DocumentLink/DocumentLinkRequest.php
@@ -143,14 +143,14 @@ public function getMessagesForDocumentCategory($formFields, $formIndex): array
$messages[sprintf(
'%s.category.unique_category',
$formIndex
- )] = 'The category @code field must be unique.';
+ )] = translate_this('category_code_field_symbol', 'must_be_unique');
foreach ($formFields as $documentCategoryIndex => $documentCategory) {
$messages[sprintf(
'%s.category.%s.code.required',
$formIndex,
$documentCategoryIndex
- )] = 'The @code field is required.';
+ )] = translate_this('code_field_symbol', 'is_required');
}
return $messages;
@@ -190,14 +190,14 @@ public function getMessagesForDocumentLanguage($formFields, $formIndex): array
$messages[sprintf(
'%s.language.unique_language',
$formIndex
- )] = 'The language @code field must be unique.';
+ )] = translate_this('language_code_symbol', 'must_be_unique');
foreach ($formFields as $documentCategoryIndex => $documentCategory) {
$messages[sprintf(
'%s.language.%s.code.required',
$formIndex,
$documentCategoryIndex
- )] = 'The @code field is required.';
+ )] = translate_this('code_field_symbol', 'is_required');
}
return $messages;
diff --git a/app/Http/Requests/Organization/Name/NameRequest.php b/app/Http/Requests/Organization/Name/NameRequest.php
index 1771356a24..5f53c462e5 100644
--- a/app/Http/Requests/Organization/Name/NameRequest.php
+++ b/app/Http/Requests/Organization/Name/NameRequest.php
@@ -31,9 +31,9 @@ public function rules(): array
*/
public function messages(): array
{
- $messages['narrative.unique_lang'] = 'The @xml:lang field must be unique.';
- $messages['narrative.0.narrative.required'] = 'The narrative is required.';
- $messages['narrative.unique_default_lang'] = 'The @xml:lang field must be unique.';
+ $messages['narrative.unique_lang'] = translate_this('xml_lang_field_symbol', 'must_be_unique');
+ $messages['narrative.0.narrative.required'] = translate_this('narrative', 'is_required');
+ $messages['narrative.unique_default_lang'] = translate_this('xml_lang_field_symbol', 'must_be_unique');
return $messages;
}
diff --git a/app/Http/Requests/Organization/OrganizationBaseRequest.php b/app/Http/Requests/Organization/OrganizationBaseRequest.php
index f492d1a5e4..9129ef79d0 100644
--- a/app/Http/Requests/Organization/OrganizationBaseRequest.php
+++ b/app/Http/Requests/Organization/OrganizationBaseRequest.php
@@ -159,7 +159,7 @@ public function uniqueDefaultLangValidator($attribute, $value, $parameters, $val
$validator->addReplacer(
'unique_default_lang',
function ($message) use ($validator, $defaultLanguage) {
- return 'The @xml:lang must be unique';
+ return translate_this('xml_lang_symbol', 'must_be_unique');
}
);
@@ -212,15 +212,15 @@ public function getRulesForNarrative($formFields, $formBase): array
public function getMessagesForNarrative($formFields, $formBase): array
{
$messages = [];
- $messages[sprintf('%s.narrative.unique_lang', $formBase)] = 'The @xml:lang field must be unique.';
+ $messages[sprintf('%s.narrative.unique_lang', $formBase)] = translate_this('xml_lang_field_symbol', 'must_be_unique');
foreach ($formFields as $narrativeIndex => $narrative) {
- $messages[sprintf('%s.narrative.%s.narrative.required', $formBase, $narrativeIndex)] = 'The narrative field is required.';
+ $messages[sprintf('%s.narrative.%s.narrative.required', $formBase, $narrativeIndex)] = translate_this('narrative', 'is_required');
$messages[sprintf(
'%s.narrative.%s.narrative.required_with_language',
$formBase,
$narrativeIndex
- )] = 'The language field is required when narrative field is present.';
+ )] = translate_this('language_field', 'required_when_narrative_present');
}
return $messages;
@@ -264,13 +264,13 @@ public function getMessagesForValue($formFields, $formBase): array
foreach ($formFields as $valueKey => $valueVal) {
$valueForm = $formBase . '.value.' . $valueKey;
- $messages[$valueForm . '.amount.required'] = 'The amount field is required.';
- $messages[$valueForm . '.amount.numeric'] = 'The amount must be numeric.';
- $messages[$valueForm . '.amount.min'] = 'The amount must not be in negative.';
- $messages[$valueForm . '.value_date.required'] = 'The @value-date field is required.';
- $messages[$valueForm . '.value_date.date'] = 'The @value-date must be date.';
- $messages[sprintf('%s.value_date.after', $valueForm)] = 'The @value-date field must be a between period start and period end';
- $messages[sprintf('%s.value_date.before', $valueForm)] = 'The @value-date field must be a between period start and period end';
+ $messages[$valueForm . '.amount.required'] = translate_this('amount_field', 'is_required');
+ $messages[$valueForm . '.amount.numeric'] = translate_this('amount', 'must_be_numeric');
+ $messages[$valueForm . '.amount.min'] = translate_this('amount', 'must_not_be_negative');
+ $messages[$valueForm . '.value_date.required'] = translate_this('value_date_field_symbol', 'is_required');
+ $messages[$valueForm . '.value_date.date'] = translate_this('value_date_symbol', 'must_be_a_date');
+ $messages[sprintf('%s.value_date.after', $valueForm)] = translate_this('value_date_field_symbol', 'must_be_between');
+ $messages[sprintf('%s.value_date.before', $valueForm)] = translate_this('value_date_field_symbol', 'must_be_between');
}
return $messages;
diff --git a/app/Http/Requests/Organization/OrganizationIdentifier/OrganizationIdentifierRequest.php b/app/Http/Requests/Organization/OrganizationIdentifier/OrganizationIdentifierRequest.php
index f0c9032c5a..4a8f7b6cfd 100644
--- a/app/Http/Requests/Organization/OrganizationIdentifier/OrganizationIdentifierRequest.php
+++ b/app/Http/Requests/Organization/OrganizationIdentifier/OrganizationIdentifierRequest.php
@@ -32,7 +32,7 @@ public function rules(): array
public function messages(): array
{
return [
- 'registration_number.not_regex' => 'The registration_number format is invalid.',
+ 'registration_number.not_regex' => trans('registration_number', 'is_invalid'),
];
}
}
diff --git a/app/Http/Requests/Web/IatiRegister/IatiRegisterFormRequest.php b/app/Http/Requests/Web/IatiRegister/IatiRegisterFormRequest.php
index 0895c5a149..182f65f50f 100644
--- a/app/Http/Requests/Web/IatiRegister/IatiRegisterFormRequest.php
+++ b/app/Http/Requests/Web/IatiRegister/IatiRegisterFormRequest.php
@@ -81,11 +81,11 @@ public function messages(): array
switch ($step) {
case '1':
- $messages['publisher_id.regex'] = 'The publisher id is invalid. The publisher id must be at least two characters long and lower case. It can include letters, numbers and also - (dash) and _ (underscore).';
- $messages['registration_number.regex'] = 'The registration number is invalid. Valid registration number includes letter, number, . and _, - (dash).';
+ $messages['publisher_id.regex'] = translate_this('the_publisher_is_invalid');
+ $messages['registration_number.regex'] = translate_this('the_registration_num_id_invalid');
break;
case '4':
- $messages['username.regex'] = 'The username is invalid. Username must be purely lowercase alphabets followed by alphanumeric(ascii) characters and these symbols:-_';
+ $messages['username.regex'] = translate_this('the_user_name_is_invalid');
break;
}
diff --git a/app/IATI/Data/elementJsonSchema.json b/app/IATI/Data/elementJsonSchema.json
index a68d291e2f..c0704deb80 100644
--- a/app/IATI/Data/elementJsonSchema.json
+++ b/app/IATI/Data/elementJsonSchema.json
@@ -1,38 +1,38 @@
{
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"multiple": false,
"add_more": false,
- "hover_text": "A short, human-readable title that contains a meaningful summary of the activity. May be repeated for different languages. For more information ",
+ "hover_text": "elements.activities.title.hover_text",
"help_text": "",
"show_info_in_title": true,
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "text",
"placeholder": "",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide the title for this activity. For example: \"Water for Women Malawi\".",
+ "hover_text": "elements.activities.title.narrative.hover_text",
+ "help_text": "elements.activities.title.narrative.help_text",
"attr": {
"row": 4
},
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.title.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -41,36 +41,36 @@
},
"reporting_org": {
"name": "reporting_org",
- "label": "reporting org",
+ "label": "el_common.reporting_organisation",
"add_more": false,
- "help_text": "This is your IATI Organisation Identifier (it is the unique ID that was generated for your organisation when you registered).For more information. ",
- "hover_text": "The organisation issuing the report. May be a primary source (reporting on its own activity as donor, implementing agency, etc) or a secondary source (reporting on the activities of another organisation).Specifying the @ref attribute is mandatory. May contain the organisation name as content. For more information ",
+ "help_text": "elements.activities.reporting_org.hover_text",
+ "hover_text": "elements.activities.reporting_org.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
"placeholder": "",
"required": true,
"criteria": "mandatory",
- "hover_text": "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber}. For more information ",
+ "hover_text": "elements.organisation.reporting_org.reference.hover_text",
"help_text": ""
},
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
"placeholder": "",
"multiSelect": false,
"choices": "Organization/OrganizationType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "The type of organisation issuing the report. For more information ",
+ "hover_text": "elements.organisation.reporting_org.type.hover_text",
"help_text": ""
},
"secondary_reporter": {
"name": "secondary_reporter",
- "label": "secondary reporter",
+ "label": "el_common.secondary_reporter",
"type": "select",
"placeholder": "",
"choices": {
@@ -79,14 +79,14 @@
},
"required": false,
"criteria": "",
- "hover_text": "A flag indicating that the reporting organisation of this activity is acting as a secondary reporter. A secondary reporter is one that reproduces data on the activities of an organisation for which it is not directly responsible. For more information ",
+ "hover_text": "elements.organisation.reporting_org.secondary_reporter.hover_text",
"help_text": ""
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
"placeholder": "",
"required": true,
@@ -95,20 +95,20 @@
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "This is the name you provided for your organisation when you registered.",
+ "hover_text": "el_common.the_free_text_name_link_4",
+ "help_text": "el_common.this_is_the_name_provided_for_org",
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"multiSelect": false,
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, then your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_5",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -116,82 +116,82 @@
}
},
"iati_identifier": {
- "label": "iati identifier",
+ "label": "el_common.iati_identifier",
"attributes": {
"activity_identifier": {
"name": "activity_identifier",
- "label": "activity-identifier",
+ "label": "el_common.activity_identifier",
"type": "text",
- "placeholder": "Type activity identifier here",
+ "placeholder": "el_common.type_identifier_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
- "help_text": "Enter a unique series of letters and / or numbers to identify your activity. For example PROJECT-00120467 or AFG-COVAX.You must make sure:Each IATI identifier you publish is unique.Each IATI identifier should not start or end with whitespace.Only use numbers, letters and dashes to form your IATI identifiers.Once you have published an activity its IATI identifier must not change.Further guidance. "
+ "help_text": "elements.activities.activity_identifier.help_text"
},
"iati_identifier_text": {
"name": "iati_identifier_text",
- "label": "iati identifier",
+ "label": "el_common.iati_identifier",
"type": "text",
"placeholder": "",
"required": false,
"criteria": "",
"read_only": true,
- "hover_text": "A globally unique identifier for the activity.This MUST be prefixed with EITHER the current IATI organisation identifier for the reporting organisation (reporting-org/@ref) OR a previous identifier reported in other-identifier, and suffixed with the organisation’s own activity identifier. The prefix and the suffix should be separated by a hyphen “-“.Once an activity has been reported to IATI its identifier MUST NOT be changed in subsequent updates.For more information ",
- "help_text": "This is autogenerated by adding your activity-identifier to the end of your Organisation Identifier (this is the unique ID that was generated for your organisation when you registered). Futher guidance .Once an activity has been reported to IATI its identifier MUST NOT be changed in subsequent updates. For more information. "
+ "hover_text": "elements.activities.iati_identifier.hover_text",
+ "help_text": "elements.activities.iati_identifier.help_text"
}
},
"sub_elements": {}
},
"other_identifier": {
"name": "other_identifier",
- "label": "other identifier",
+ "label": "el_common.other_identifier",
"add_more": true,
- "hover_text": "Another identifier for the activity. This may be a publishers own identifier that it wishes to record with the activity. This element is also used to trace changes to activity identifiers, for example when an organisation has changed it’s organisation identifier.For more information ",
+ "hover_text": "elements.activities.other_identifier.hover_text",
"attributes": {
"reference": {
"name": "reference",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": true,
"criteria": "mandatory",
- "hover_text": "The identifier you wish to report. This can be used to report a number of different types of identifiers. See the OtherIdentifier Type codelist for details and options. This attribute is required.For more information ",
- "help_text": "Please provide the identifier related to this activity."
+ "hover_text": "elements.activities.other_identifier.reference.hover_text",
+ "help_text": "elements.activities.other_identifier.reference.help_text"
},
"reference_type": {
"name": "reference_type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/OtherIdentifierType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "The type of identifier being reported, taken from the OtherIdentifierType codelist. This attribute is required.For more information ",
- "help_text": "If you want to record another identifier related to this activity, you must select which type of identifier you are providing. See descriptions of all possible types in the Other Identifier Type codelist. "
+ "hover_text": "elements.activities.other_identifier.ref_type.hover_text",
+ "help_text": "elements.activities.other_identifier.ref_type.help_text"
}
},
"sub_elements": {
"owner_org": {
"name": "owner_org",
- "label": "owner org",
+ "label": "el_common.owner",
"add_more": false,
- "hover_text": "Where applicable, the organisation that owns the other identifier being reported. When used, then either other-identifier/owner-org/@ref or other-identifier/owner-org/narrative/text() MUST be present.For more information ",
+ "hover_text": "elements.activities.other_identifier.owner_org.hover_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "Where applicable, the organisation that owns the other identifier being reported. When used, then either other-identifier/owner-org/@ref or other-identifier/owner-org/narrative/text() MUST be present.For more information ",
- "help_text": "Please provide the Organisation Identifier of the owner of the other identifier for the activity. If your organisation is not the owner, you can search other organisations in the IATI Publisher List. If you cannot find the organisation, see further guidance. "
+ "hover_text": "elements.activities.other_identifier.owner_org.hover_text",
+ "help_text": "elements.activities.other_identifier.owner_org.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
"placeholder": "",
"required": false,
@@ -200,19 +200,19 @@
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide a description of the other identifier for the activity.",
+ "hover_text": "elements.activities.other_identifier.narrative.hover_text",
+ "help_text": "elements.activities.other_identifier.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, then your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_8",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -223,47 +223,47 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"add_more": true,
- "hover_text": "A longer, human-readable description containing a meaningful description of the activity. May be repeated for different languages. For more information ",
+ "hover_text": "elements.activities.description.hover_text",
"attributes": {
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/DescriptionType.json",
"required": false,
"criteria": "",
- "hover_text": "Activity description types. (General, objectives, etc).For more information ",
- "help_text": "Select the type of description that best describes your activity.1. General - Unstructured, long description of the activity. 2. Objectives - Specific objectives for the activity, e.g. taken from logical framework. 3. Target Groups - Details of groups that are intended to benefit from the activity. 4. Other - For miscellaneous use. A further classification or breakdown may be included in the narrative"
+ "hover_text": "elements.activities.description.type.hover_text",
+ "help_text": "elements.activities.description.type.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information .",
- "help_text": "Provide a description for your activity. For example: “This project will improve maternal and child health seeking behaviours among 800 pregnant women and 6,500 caregivers of children under five in [location], thereby contributing to a reduction in the high maternal and under-five mortality and morbidity rates in these communities”.",
+ "hover_text": "elements.activities.description.narrative.hover_text",
+ "help_text": "elements.activities.description.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.description.narrative.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -272,77 +272,77 @@
},
"activity_status": {
"label": "activity status",
- "help_text": "An activity status should be provided. This describes the lifecycle status of the activity from pipeline to completion. You can publish activities that are already completed, currently happening or not yet started. As the activity progresses over time, the activity status should be updated.",
- "hover_text": "The current status of the activity.For more information ",
+ "help_text": "elements.activities.activity_status.help_text",
+ "hover_text": "elements.activities.activity_status.hover_text",
"show_info_in_title": true,
"attributes": {
"activity_status": {
"name": "activity_status",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/ActivityStatus.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the current status of the activity. This attribute is required.For more information ",
- "help_text": "Select an option that defines the current status of your activity. 1. Pipeline/identification : The activity is being scoped or planned 2. Implementation : The activity is currently being implemented 3. Finalisation : Physical activity is complete or the final disbursement has been made, but the activity remains open pending financial sign off or M&E 4. Closed : Physical activity is complete or the final disbursement has been made 5. Canceled : The activity has been canceled 6. Suspended : The activity has been temporarily suspended"
+ "hover_text": "elements.activities.activity_status.code.hover_text",
+ "help_text": "elements.activities.activity_status.code.help_text"
}
},
"sub_elements": {}
},
"activity_date": {
"name": "activity_date",
- "label": "activity date",
+ "label": "el_common.activity_date",
"add_more": true,
- "hover_text": "The planned and actual start and completion dates of the activity. Start dates may reflect either the commencement of funding, planning or physical activity. End dates should, wherever possible, reflect the ending of physical activity.For more information ",
+ "hover_text": "elements.activities.activity_status.activity_date.hover_text",
"attributes": {
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/ActivityDateType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the type of activity date being reported. This attribute is required.For more information ",
- "help_text": "Please select the type of activity date that you will report. 1. Planned start : The date on which the activity is planned to start, for example the date of the first planned disbursement or when physical activity starts. 2. Actual start : The actual date the activity starts, for example the date of the first disbursement or when physical activity starts. 3. Planned End : The date on which the activity is planned to end, for example the date of the last planned disbursement or when physical activity is complete. 4. Actual end : The actual date the activity ends, for example the date of the last disbursement or when physical activity is complete."
+ "hover_text": "elements.activities.activity_status.activity_date.type.hover_text",
+ "help_text": "elements.activities.activity_status.activity_date.type.help_text"
},
"date": {
"name": "date",
- "label": "iso date",
+ "label": "el_common.iso_date",
"type": "date",
- "placeholder": "Select date",
+ "placeholder": "el_common.select_date",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required.This value must be of type xsd:date.1: The planned start date of the activity must be before the planned end date.2: The actual start date of the activity must be before the actual end date.3: The actual start date of the activity must not be in the future.4: The actual end date of the activity must not be in the future.For more information ",
- "help_text": "Provide the date of your activity."
+ "hover_text": "elements.activities.activity_status.date.hover_text",
+ "help_text": "elements.activities.activity_status.date.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide any accompanying information or explanation for your chosen activity status.",
+ "hover_text": "elements.activities.activity_status.narrative.hover_text",
+ "help_text": "elements.activities.activity_status.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, the default language is assumed."
+ "hover_text": "elements.activities.activity_status.language.hover_text",
+ "help_text": "el_common.default_value_assumed_the"
}
},
"sub_elements": {}
@@ -351,77 +351,77 @@
},
"activity_scope": {
"label": "activity scope",
- "hover_text": "The geographical scope of the activity: regional, national, sub-national, etc.For more information ",
+ "hover_text": "elements.activities.activity_scope.hover_text",
"show_info_in_title": true,
"attributes": {
"activity_scope": {
"name": "activity_scope",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/ActivityScope.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "The geographical scope.. This attribute is required.For more information ",
- "help_text": "Select an option that best describes the scope of this activity. 1. Global - The activity scope is global. For example, some activities, such as research, are not based in or benefitting particular countries or regions 2. Regional - The activity scope is a supranational region 3. Multi-national - The activity scope covers multiple countries, that don’t constitute a region 4. National - The activity scope covers one country 5. Sub-national: Multi-first-level administrative areas - The activity scope covers more than one first-level subnational administrative areas (e.g. counties, provinces, states) 6. Sub-national: Single first-level administrative area - The activity scope covers one first-level subnational administrative area (e.g. country, province, state) 7. Sub-national: Single second-level administrative area - The activity scope covers one second-level subnational administrative area (e.g. municipality or district) 8. Single location - The activity scope covers one single location (e.g. town, village, farm) Further guidance. "
+ "hover_text": "elements.activities.activity_scope.activity_code.hover_text",
+ "help_text": "elements.activities.activity_scope.activity_code.help_text"
}
},
"sub_elements": {}
},
"recipient_country": {
"name": "recipient_country",
- "label": "recipient country",
+ "label": "el_common.recipient_country",
"add_more": true,
- "help_text": "Each activity in IATI should specify the country (e.g. China) in which the activity is taking place, or the places that will benefit from the activity. If the country is not known, then a supra-national region or regions (e.g. East Asia) must be added. There are several ways you can publish information on which country and/or region will benefit from this activity. If just one country or region is benefitting from this activity, you should simply select the country or region below. This means that only one country or region will be benefiting from 100% of the funding that you publish for this activity. However if multiple countries and/or regions are benefitting from your activity you can:1. Publish the recipient country or region for every individual transaction you publish for this activity. You will be required to publish data on at least one transaction for every activity that you publish (publish data on transactions). Each transaction represents money flowing in or out of the activity. You can select a different country or region for each transaction that you publish. If you want to provide the recipient county or region for your individual transactions, then you should not select a country or region for the entire activity below.2. You can select multiple countries or regions for the entire activity below. If you choose to do this, you must allocate a percentage of funding for the activity to each country and/or region.3. You can choose to create a separate activity for every country that is benefitting from this activity’s funding.Further guidance. ",
- "hover_text": "A country that will benefit from this activity. If a specific country is not known the recipient-region element should be used instead. For geographical location, use the location element. Multiple countries and regions can be reported, in which case the percentage attribute MUST be used to specify the share of total commitments across all reported countries and regions. The country can also be specified at transaction rather than activity level. If recipient-country OR recipient-region are reported at the transaction level, ALL transactions MUST contain a recipient-country or recipient-region element and iati-activity/recipient-country and iati-activity/recipient-region MUST NOT be used.For more information ",
+ "help_text": "elements.activities.recipient_country.help_text",
+ "hover_text": "elements.activities.recipient_country.hover_text",
"attributes": {
"country_code": {
"name": "country_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Country.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "ISO 3166-1 alpha-2 code for the country. This attribute is required.For more information ",
- "help_text": "Select a country benefiting from this activity. However, do not select a country here if you want to specify the recipient country benefiting from the individual transactions within this activity."
+ "hover_text": "elements.activities.recipient_country.country_code.hover_text",
+ "help_text": "elements.activities.recipient_country.country_code.help_text"
},
"percentage": {
"name": "percentage",
- "label": "percentage",
+ "label": "el_common.percentage_organisation",
"type": "text",
- "placeholder": "Select percentage",
+ "placeholder": "el_common.select_percentage",
"required": false,
"criteria": "recommended",
- "hover_text": "The percentage of total commitments or total activity budget to this item. Content must be a decimal number between 0 and 100 inclusive, with no percentage sign. Percentages for all reported countries and regions within a vocabulary MUST add up to 100.For more information ",
- "help_text": "Select the percentage of funding benefitting this country. Percentages for all reported countries and regions MUST add up to 100. Further guidance. "
+ "hover_text": "elements.activities.recipient_country.percentage.hover_text",
+ "help_text": "elements.activities.recipient_country.percentage.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Add the free text name and/or description regarding the country benefitting from the activity.",
+ "hover_text": "el_common.the_free_text_name_link_7",
+ "help_text": "elements.activities.recipient_country.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, then your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_9",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -430,10 +430,10 @@
},
"recipient_region": {
"name": "recipient_region",
- "label": "recipient region",
+ "label": "el_common.recipient_region",
"add_more": true,
- "help_text": "If you cannot identify the specific country/countries benefiting from this activity, then you should provide the region instead. If a region is included, it must be in addition to any countries specified. If the recipient country(ies) is known, then the corresponding recipient region should not also be added. For example, if 100% of the funding is going to Uganda, then you should record Uganda as the recipient country and you should not add that the funding is going to the region of Africa. However, if you know that at least 80% of the expected funding is going to Uganda, you can specify that the unknown 20% is going to the region of Africa.More information ",
- "hover_text": "A supranational geopolitical region that will benefit from this activity. For sub-national geographical location, use the location element. Multiple countries and regions can be reported, in which case the percentage attribute MUST be used to specify the share of total commitments across all reported countries and regions. Recipient-region must not be used merely to describe the region of a country reported in recipient-country, but ONLY if the region is a recipient IN ADDITION to the country.For more information ",
+ "help_text": "elements.activities.recipient_region.help_text",
+ "hover_text": "elements.activities.recipient_region.hover_text",
"dependent_attributes": {
"region_code": {},
"custom_code": {},
@@ -442,95 +442,102 @@
"attributes": {
"region_vocabulary": {
"name": "region_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select a list of regions",
+ "placeholder": "el_common.select_a_list_of_regions",
"choices": "Activity/RegionVocabulary.json",
"required": false,
"criteria": "recommended",
- "hover_text": "An IATI code for the vocabulary from which the region code is drawn. If it is not present 1 - ‘OECD DAC’ is assumed.For more information ",
- "help_text": "There are two lists of regions; the OECD DAC and UN region code lists. Please select one.IATI recommends that you use the OECD DAC codelist. Otherwise you can use another list of regions by selecting the option: ‘Reporting Organisation’ and providing the URI where this internal list is defined. If you do not choose an option, then the code list 'OECD DAC' is assumed."
+ "hover_text": "elements.activities.recipient_region.region_vocabulary.hover_text",
+ "help_text": "elements.activities.recipient_region.region_vocabulary.help_text"
},
"region_code": {
"name": "region_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select region",
+ "placeholder": "el_common.select_region",
"choices": "Activity/Region.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "Either an OECD DAC or UN region code. Codelist is determined by vocabulary attribute.This attribute is required.For more information ",
- "help_text": "Select the region benefitting from this activity.",
+ "hover_text": "elements.activities.recipient_region.region_code.hover_text",
+ "help_text": "el_common.select_the_activity_region",
"parent": {
"name": "region_vocabulary",
- "value": ["1"]
+ "value": [
+ "1"
+ ]
}
},
"custom_code": {
"name": "custom_code",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Type code",
+ "placeholder": "el_common.type_",
"required": true,
"criteria": "mandatory",
"hidden": true,
- "hover_text": "Either an OECD DAC or UN region code. Codelist is determined by vocabulary attribute.This attribute is required.For more information ",
- "help_text": "Select the region benefitting from this activity.",
+ "hover_text": "elements.activities.recipient_region.custom_code.hover_text",
+ "help_text": "el_common.select_the_activity_region",
"parent": {
"name": "region_vocabulary",
- "value": ["2", "99"]
+ "value": [
+ "2",
+ "99"
+ ]
}
},
"vocabulary_uri": {
"name": "vocabulary_uri",
- "label": "vocabulary uri",
+ "label": "el_common.vocabulary_uri",
"type": "text",
- "placeholder": "Type uri",
+ "placeholder": "el_common.type_uri",
"required": false,
"criteria": "recommended",
- "hover_text": "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users.For more information ",
- "help_text": "If you have selected the option: ‘Reporting Organisation’ please provide the URI where this internal list is defined.",
+ "hover_text": "elements.activities.recipient_region.vocabulary_uri.hover_text",
+ "help_text": "el_common.if_you_have_selected",
"parent": {
"name": "region_vocabulary",
- "value": ["99"]
+ "value": [
+ "99"
+ ]
}
},
"percentage": {
"name": "percentage",
- "label": "percentage",
+ "label": "el_common.percentage_organisation",
"type": "text",
- "placeholder": "Type percentage",
+ "placeholder": "el_common.type_percentage",
"required": false,
"criteria": "recommended",
- "hover_text": "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users. For more information ",
- "help_text": "The percentage of total commitments or total activity budget to this item. Content must be a decimal number between 0 and 100 inclusive, with no percentage sign. Percentages for all reported countries and regions within a vocabulary MUST add up to 100.For more information "
+ "hover_text": "elements.activities.recipient_region.percentage.hover_text",
+ "help_text": "elements.activities.recipient_region.percentage.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Add the free text name of this region benefitting from the activity.",
+ "hover_text": "el_common.the_free_text_name_link_7",
+ "help_text": "elements.activities.recipient_region.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, then your default value is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_9",
+ "help_text": "elements.activities.recipient_region.language.help_text"
}
},
"sub_elements": {}
@@ -538,11 +545,11 @@
}
},
"sector": {
- "label": "sector",
+ "label": "el_common.sector",
"name": "sector",
"add_more": true,
- "hover_text": "A recognised code, from a recognised vocabulary, classifying the purpose of the activity. Sector MUST EITHER be reported here OR at transaction level for ALL transactions. For more information ",
- "help_text": "Provide information on the sector which the activity targets or supports. For example, primary education or agriculture. You can select more than one sector but you must provide at least one .",
+ "hover_text": "elements.activities.sector.hover_text",
+ "help_text": "elements.activities.sector.help_text",
"dependent_attributes": {
"vocabulary_uri": {},
"code": {},
@@ -554,139 +561,159 @@
"attributes": {
"sector_vocabulary": {
"name": "sector_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/SectorVocabulary.json",
"required": false,
"criteria": "recommended",
- "hover_text": "An IATI code for the vocabulary (see codelist) used for sector classifications. If omitted, OECD DAC 5-digit Purpose Codes are assumed. It is recommended that OECD DAC 5-digit Purpose Codes are used wherever possible. It is also recommended that if a publisher has its own classification system or systems then the vocabularies 99 or 98 (Reporting Organisation’s own vocabularies) should be used in addition to DAC codes.For more information ",
- "help_text": "Please choose the sector list from which you will select the sectors that your activity targets. IATI recommends choosing the OECD DAC 5-digit sector codelist, in which you can make a selection from over 300 sectors. In addition to the OECD DAC 5-digit codelist, you can also choose to use another list (see information on all possible options ). If you want to use your organisation’s own list of internal sector classifications, select the option: ‘Reporting Organisation’. You can choose to use multiple lists. If you use more than one internal sector classification, select ‘Reporting Organisation 2’ (which has the code 98) for the additional list.Further guidance. "
+ "hover_text": "elements.activities.sector.sector_vocabulary.hover_text",
+ "help_text": "elements.activities.sector.sector_vocabulary.help_text"
},
"vocabulary_uri": {
"name": "vocabulary_uri",
- "label": "vocabulary-uri",
+ "label": "el_common.vocabulary_uri",
"type": "text",
- "placeholder": "Type vocabulary-uri",
+ "placeholder": "el_common.type_vocabulary_uri",
"required": false,
"criteria": "recommended",
- "hover_text": "The URI where this vocabulary is defined. If the vocabulary is 99 or 98 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users.For more information ",
- "help_text": "If you have chosen to use an internal sector classification codelist, please provide a link to it.",
+ "hover_text": "elements.activities.sector.vocabulary_uri.hover_text",
+ "help_text": "elements.activities.sector.vocabulary_uri.help_text",
"parent": {
"name": "sector_vocabulary",
- "value": ["99", "98"]
+ "value": [
+ "99",
+ "98"
+ ]
}
},
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/SectorCode.json",
"criteria": "mandatory",
"required": true,
- "hover_text": "The code for the sector. This attribute is required.For more information ",
- "help_text": "Select the sector which the activity is targeting or supporting. You can choose more than one sector.",
+ "hover_text": "el_common.the_code_for_sector_link_1",
+ "help_text": "el_common.select_the_selector",
"parent": {
"name": "sector_vocabulary",
- "value": ["1"]
+ "value": [
+ "1"
+ ]
}
},
"text": {
"name": "text",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Type code",
+ "placeholder": "el_common.type_",
"required": true,
"criteria": "mandatory",
- "hover_text": "The code for the sector. This attribute is required.For more information ",
- "help_text": "Select the sector which the activity is targeting or supporting. You can choose more than one sector.",
+ "hover_text": "el_common.the_code_for_sector_link_1",
+ "help_text": "el_common.select_the_selector",
"parent": {
"name": "sector_vocabulary",
- "value": ["3", "4", "5", "6", "9", "10", "99", "98"]
+ "value": [
+ "3",
+ "4",
+ "5",
+ "6",
+ "9",
+ "10",
+ "99",
+ "98"
+ ]
}
},
"category_code": {
"name": "category_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/SectorCategory.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "The code for the sector. This attribute is required.For more information ",
- "help_text": "Select the sector which the activity is targeting or supporting. You can choose more than one sector.",
+ "hover_text": "el_common.the_code_for_sector_link_1",
+ "help_text": "el_common.select_the_selector",
"parent": {
"name": "sector_vocabulary",
- "value": ["2"]
+ "value": [
+ "2"
+ ]
}
},
"sdg_goal": {
"name": "sdg_goal",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/UNSDG-Goals.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "The code for the sector. This attribute is required. For more information ",
- "help_text": "Select the sector which the activity is targeting or supporting. You can choose more than one sector.",
+ "hover_text": "el_common.the_code_for_sector_link_2",
+ "help_text": "el_common.select_the_selector",
"parent": {
"name": "sector_vocabulary",
- "value": ["7"]
+ "value": [
+ "7"
+ ]
}
},
"sdg_target": {
"name": "sdg_target",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/UNSDG-Targets.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "The code for the sector. This attribute is required. For more information ",
- "help_text": "Select the sector which the activity is targeting or supporting. You can choose more than one sector.",
+ "hover_text": "el_common.the_code_for_sector_link_2",
+ "help_text": "el_common.select_the_selector",
"parent": {
"name": "sector_vocabulary",
- "value": ["8"]
+ "value": [
+ "8"
+ ]
}
},
"percentage": {
"name": "percentage",
- "label": "percentage",
+ "label": "el_common.percentage_organisation",
"type": "text",
- "placeholder": "Type percentage",
+ "placeholder": "el_common.type_percentage",
"required": false,
"criteria": "recommended",
- "hover_text": "The percentage of total commitments or total activity budget to this item. Content must be a decimal number between 0 and 100 inclusive, with no percentage sign. All reported sectors from the same vocabulary MUST add up to 100. For more information ",
- "help_text": "If you have selected more than one sector (from the same list), each sector must be given a percentage. These percentages can then be applied to the funding amounts to estimate the resources allocated to each sector. For example, using the OECD DAC 5-digit sector codelist you could allocate 50% of the funding for the activity to the sector code ‘teacher training’ (11130) and 50% to ‘primary education’ (11220)."
+ "hover_text": "elements.activities.sector.percentage.hover_text",
+ "help_text": "elements.activities.sector.percentage.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The description of a sector defined by the reporting organisation. (Only to be used when the reporting organisation’s own vocabulary is being used).For more information ",
- "help_text": "If you have chosen a sector from an internal sector classification codelist, please provide a description of this sector.",
+ "hover_text": "elements.activities.sector.narrative.hover_text",
+ "help_text": "elements.activities.sector.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the description. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.sector.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_desc"
}
},
"sub_elements": {}
@@ -695,10 +722,10 @@
},
"tag": {
"name": "tag",
- "label": "tag",
+ "label": "el_common.tag",
"add_more": true,
- "hover_text": "Categorisations from established taxonomies that enrich the classification of the activity but that, unlike those reported in the sector element, cannot be associated with percentage splits on finances. For more information ",
- "help_text": "You can provide other useful information about your activity through ‘tagging’ it to categorisations from established taxonomies. For example, IATI recommends that, if possible, you should tag your activity according to which UN Sustainable Development Goal(s) it is contributing to. Please read guidance on reporting data on the UN Sustainable Development Goals. ",
+ "hover_text": "elements.activities.tag.hover_text",
+ "help_text": "elements.activities.tag.help_text",
"dependent_attributes": {
"goals_tag_code": {},
"targets_tag_code": {},
@@ -708,103 +735,112 @@
"attributes": {
"tag_vocabulary": {
"name": "tag_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/TagVocabulary.json",
"required": false,
"criteria": "",
- "hover_text": "An IATI code for the vocabulary or taxonomy (see non-embedded codelist) used for tag classifications.For more information ",
- "help_text": "Choose a list. See information on all options . You may choose to tag your activity according to an internal category list, by choosing ‘Reporting Organisation’."
+ "hover_text": "elements.activities.tag.tag_vocabulary.hover_text",
+ "help_text": "elements.activities.tag.tag_vocabulary.help_text"
},
"goals_tag_code": {
"name": "goals_tag_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/UNSDG-Goals.json",
"required": true,
"criteria": "mandatory",
"hidden": true,
- "hover_text": "The code for the tag as defined in the specified vocabulary. This attribute is required.For more information ",
- "help_text": "Choose an option from this list.",
+ "hover_text": "el_common.the_code_for_the_tag",
+ "help_text": "el_common.chose_an_option_from_this_list",
"parent": {
"name": "tag_vocabulary",
- "value": ["2"]
+ "value": [
+ "2"
+ ]
}
},
"targets_tag_code": {
"name": "targets_tag_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/UNSDG-Targets.json",
"required": true,
"criteria": "mandatory",
"hidden": true,
- "hover_text": "The code for the tag as defined in the specified vocabulary. This attribute is required. For more information ",
- "help_text": "Choose an option from this list.",
+ "hover_text": "elements.activities.tag.targets_tag_code.hover_text",
+ "help_text": "el_common.chose_an_option_from_this_list",
"parent": {
"name": "tag_vocabulary",
- "value": ["3"]
+ "value": [
+ "3"
+ ]
}
},
"tag_text": {
"name": "tag_text",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Type code",
+ "placeholder": "el_common.type_",
"required": true,
"criteria": "mandatory",
"hidden": true,
- "hover_text": "The code for the tag as defined in the specified vocabulary. This attribute is required.For more information ",
- "help_text": "Choose an option from this list.",
+ "hover_text": "el_common.the_code_for_the_tag",
+ "help_text": "el_common.chose_an_option_from_this_list",
"parent": {
"name": "tag_vocabulary",
- "value": ["1", "99"]
+ "value": [
+ "1",
+ "99"
+ ]
}
},
"vocabulary_uri": {
"name": "vocabulary_uri",
- "label": "vocabulary uri",
+ "label": "el_common.vocabulary_uri",
"type": "text",
- "placeholder": "Type vocabulary-uri",
+ "placeholder": "el_common.type_vocabulary_uri",
"required": false,
"criteria": "",
"hidden": true,
- "hover_text": "The URI where this vocabulary is defined. For more information ",
- "help_text": "Provide a link to your chosen list.",
+ "hover_text": "elements.activities.tag.vocabulary_uri.hover_text",
+ "help_text": "elements.activities.tag.vocabulary_uri.help_text",
"parent": {
"name": "tag_vocabulary",
- "value": ["99"]
+ "value": [
+ "99"
+ ]
}
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "You can provide additional information on the option that you have chosen.",
+ "hover_text": "elements.activities.tag.narrative.hover_text",
+ "help_text": "elements.activities.tag.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.tag.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -813,10 +849,10 @@
},
"policy_marker": {
"name": "policy_marker",
- "label": "policy marker",
+ "label": "el_common.policy_maker",
"add_more": true,
- "hover_text": "A policy or theme addressed by the activity. This element was designed for the reporting of OECD DAC CRS policy markers (columns 20-23 and 28-31 of the CRS++ reporting format) but the vocabulary attribute allows it use by other (including local) systems. This element can be repeated for each policy marker.For more information ",
- "help_text": "Provide information about the policy or theme addressed by your activity, for example: climate change mitigation or disability. An activity can have multiple policy-markers and percentages do not need to be added to each policy-marker.",
+ "hover_text": "elements.activities.policy_marker.hover_text",
+ "help_text": "elements.activities.policy_marker.help_text",
"dependent_attributes": {
"vocabulary_uri": {},
"policy_marker": {},
@@ -825,97 +861,103 @@
"attributes": {
"policy_marker_vocabulary": {
"name": "policy_marker_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/PolicyMarkerVocabulary.json",
"required": false,
"criteria": "",
- "hover_text": "An IATI code for the vocabulary to be used to define policy markers. If omitted then the OECD DAC vocabulary is assumed. For more information ",
- "help_text": "Select a list that includes the policy marker(s) related to your activity.1 OECD DAC CRS - IATI recommends that you select this list which has 12 options to choose from.99 Reporting Organisation - choose this option if you want to provide a code for a policy marker that is defined and tracked by your organisation."
+ "hover_text": "elements.activities.policy_marker.policy_marker_vocabulary.hover_text",
+ "help_text": "elements.activities.policy_marker.policy_marker_vocabulary.help_text"
},
"vocabulary_uri": {
"name": "vocabulary_uri",
- "label": "vocabulary uri",
+ "label": "el_common.vocabulary",
"type": "text",
- "placeholder": "Select vocabulary-uri",
+ "placeholder": "el_common.select_vocabulary_uri",
"required": false,
"criteria": "",
"hidden": true,
- "hover_text": "If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. For more information ",
- "help_text": "If you have selected 99 Reporting Organisation (above), please provide a link to where your chosen policy marker is listed.",
+ "hover_text": "elements.activities.policy_marker.vocabulary_uri.hover_text",
+ "help_text": "elements.activities.policy_marker.vocabulary_uri.help_text",
"parent": {
"name": "policy_marker_vocabulary",
- "value": ["99"]
+ "value": [
+ "99"
+ ]
}
},
"significance": {
"name": "significance",
- "label": "significance",
+ "label": "el_common.significance",
"type": "select",
- "placeholder": "Select significance",
+ "placeholder": "el_common.select_significance",
"choices": "Activity/PolicySignificance.json",
"required": false,
"criteria": "",
- "hover_text": "An OECD DAC CRS code indicating the significance of the policy marker for this activity. This attribute MUST be used for all OECD DAC CRS vocabularies.For more information ",
- "help_text": "If you have chosen a policy or theme from the policy-marker OECD DAC CRS list, then you must indicate how significant it is for your activity. For example, it could be the principal objective or a significant objective for your activity. Please read information on all options before making a selection ."
+ "hover_text": "elements.activities.policy_marker.significance.hover_text",
+ "help_text": "elements.activities.policy_marker.significance.help_text"
},
"policy_marker": {
"name": "policy_marker",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/PolicyMarker.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A policy marker code from the codelist specified in the vocabulary. This attribute is required. For more information ",
- "help_text": "Provide the code for the policy or theme addressed by your activity. If you are using the OECD DAC CRS policy-marker list, please make a selection from these options .",
+ "hover_text": "elements.activities.policy_marker.policy_marker.hover_text",
+ "help_text": "el_common.provide_the_code_for_policy",
"parent": {
"name": "policy_marker_vocabulary",
- "value": ["1"]
+ "value": [
+ "1"
+ ]
}
},
"policy_marker_text": {
"name": "policy_marker_text",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Type code",
+ "placeholder": "el_common.type_",
"required": true,
"criteria": "mandatory",
"hidden": true,
- "hover_text": "A policy marker code from the codelist specified in the vocabulary. This attribute is required. For more information ",
- "help_text": "Provide the code for the policy or theme addressed by your activity. If you are using the OECD DAC CRS policy-marker list, please make a selection from these options .",
+ "hover_text": "elements.activities.policy_marker.policy_marker_text.hover_text",
+ "help_text": "el_common.provide_the_code_for_policy",
"parent": {
"name": "policy_marker_vocabulary",
- "value": ["99"]
+ "value": [
+ "99"
+ ]
}
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "A description of the policy marker. This MUST ONLY be used if vocabulary is 99 (the reporting organisation’s own marker vocabulary). May be repeated for multiple languages.For more information ",
- "help_text": "If you have selected 99 Reporting Organisation (above), please provide a description for the policy marker(s) that you have chosen.",
+ "hover_text": "elements.activities.policy_marker.narrative.hover_text",
+ "help_text": "elements.activities.policy_marker.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. This value should be on the Language codelist.For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.policy_marker.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -924,71 +966,71 @@
},
"collaboration_type": {
"label": "collaboration type",
- "hover_text": "The type of collaboration involved in the activity’s disbursements, e.g. “bilateral” or “multilateral”.For more information ",
- "help_text": "You can describe how funds are flowing between organisations within this activity. For example, funds could be flowing bilaterally, meaning between two governments. This is largely applicable to bilateral and multilateral organisations.",
+ "hover_text": "elements.activities.collaboration_type.hover_text",
+ "help_text": "elements.activities.collaboration_type.help_text",
"show_info_in_title": true,
"attributes": {
"collaboration_type": {
"name": "collaboration_type",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/CollaborationType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the OECD DAC CRS “Bi_Multi” codelist.For more information ",
- "help_text": "Please select a collaboration type, if there is an option that is applicable to your activity. See information on all options . Otherwise, leave this blank."
+ "hover_text": "elements.activities.collaboration_type.collaboration_type.hover_text",
+ "help_text": "elements.activities.collaboration_type.collaboration_type.help_text"
}
},
"sub_elements": {}
},
"default_flow_type": {
- "label": "default flow type",
- "hover_text": "Whether the activity is funded by Official Development Assistance (ODA), Other Official Flows (OOF), etc. For more information ",
- "help_text": "Flow type is another way to categorise financial flows. It distinguishes the flow as official development assistance (ODA), other official flows (OOF), or several types of private flows, including private grants often provided by NGOs and other civil society organisations.",
+ "label": "el_common.default_flow_type",
+ "hover_text": "elements.activities.default_flow_type.hover_text",
+ "help_text": "elements.activities.default_flow_type.help_text",
"show_info_in_title": true,
"attributes": {
"default_flow_type": {
"name": "default_flow_type",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/FlowType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the OECD DAC CRS “Type of flow” codelist. This attribute is required.For more information ",
- "help_text": "If this activity’s funds can be classified by the following options , please make a selection here. Otherwise, leave blank."
+ "hover_text": "elements.activities.default_flow_type.default_flow_type.hover_text",
+ "help_text": "elements.activities.default_flow_type.default_flow_type.hover_text"
}
},
"sub_elements": {}
},
"default_finance_type": {
- "label": "default finance type",
- "hover_text": "The type of finance (e.g. grant, loan, debt relief, etc). This the default value for all transactions in the activity report; it can be overridden by individual transactions. For more information ",
- "help_text": "Finance type specifies the financial instrument that is being used for this activity. For example, financing is most commonly delivered as a grant or a loan.",
+ "label": "el_common.default_finance_type",
+ "hover_text": "elements.activities.default_finance_type.hover_text",
+ "help_text": "elements.activities.default_finance_type.help_text",
"show_info_in_title": true,
"attributes": {
"default_finance_type": {
"name": "default_finance_type",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": true,
"criteria": "mandatory",
"choices": "Activity/FinanceType.json",
- "hover_text": "A code from the OECD DAC CRS “Type of finance” codelist. This attribute is required. For more information ",
- "help_text": "Please select a finance type for this activity from the following options ."
+ "hover_text": "elements.activities.default_finance_type.default_finance_type.hover_text",
+ "help_text": "elements.activities.default_finance_type.default_finance_type.hover_text"
}
},
"sub_elements": {}
},
"default_aid_type": {
"name": "default_aid_type",
- "label": "default aid type",
+ "label": "el_common.default_aid_type",
"add_more": true,
"add_more_attributes": true,
- "hover_text": "The type of aid being supplied (project-type intervention, budget support, debt relief, etc.). This element specifies a default for all the activity’s financial transactions; it can be overridden at the individual transaction level. For more information ",
- "help_text": "You can provide information about the type of aid that is being delivered. This is most commonly referred to as the aid modality and IATI recommends that an aid type from the OECD DAC codelist be selected for all activities. Examples from this codelist include: project-type interventions which provide support to a particular project, budget support which is a financial contribution to a recipient government’s budget. Project-type interventions is the most common aid type for NGOs and CSOs but many other options are found here . If your activity is addressing a humanitarian event, you can provide specific information on the type of funds for it. This includes providing information on the level of earmarking of the activity’s funds and if the activity is providing funds through cash or vouchers. More information on publishing aid-types related to humanitarian activities .",
+ "hover_text": "el_common.the_type_of_aid_being_supplied",
+ "help_text": "el_common.you_can_provide_information",
"dependent_attributes": {
"default_aid_type": {},
"earmarking_category": {},
@@ -998,76 +1040,84 @@
"attributes": {
"default_aid_type_vocabulary": {
"name": "default_aid_type_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/AidTypeVocabulary.json",
"required": false,
"criteria": "",
- "hover_text": "A code for the vocabulary aid-type classifications. If omitted the AidType (OECD DAC) codelist is assumed. The code must be a valid value in the AidTypeVocabulary codelist. For more information ",
- "help_text": "Select a list that includes the aid-type related to your activity (if any are applicable). Otherwise leave this blank. You can choose to select an aid-type from more than one list. ]1 OECD DAC - IATI recommends that you select this list which has over 20 options to choose from. Then, in addition you can select an option from another list2 Earmarking Category - select this list to categorise how flexible humanitarian funding is. There are 4 earmarking categories. Understand more about the categories in Annex 1 3 Earmarking Modality - use this list to choose the specific earmarking modality to describe your activity’s humanitarian funding. All earmarking modality options are listed in Annex 1 4 Cash and Voucher Modalities - select this list to specify if your activity is responding to a humanitarian event by providing cash and voucher assistance. More information ."
+ "hover_text": "elements.activities.default_aid_type.default_aid_type_vocabulary.hover_text",
+ "help_text": "elements.activities.default_aid_type.default_aid_type_vocabulary.help_text"
},
"default_aid_type": {
"name": "default_aid_type",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/AidType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the specified vocabulary. This attribute is required. For more information ",
- "help_text": "Select the aid-type related to your activity.",
+ "hover_text": "elements.activities.default_aid_type.default_aid_type.hover_text",
+ "help_text": "el_common.select_the_aid_type",
"parent": {
"name": "default_aid_type_vocabulary",
- "value": ["1"]
+ "value": [
+ "1"
+ ]
}
},
"earmarking_category": {
"name": "earmarking_category",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/EarmarkingCategory.json",
"required": true,
"criteria": "mandatory",
"hidden": true,
- "hover_text": "A code from the specified vocabulary. This attribute is required. For more information ",
- "help_text": "Select the aid-type related to your activity.",
+ "hover_text": "el_common.a_code_from_the_specified_vocabulary",
+ "help_text": "el_common.select_the_aid_type",
"parent": {
"name": "default_aid_type_vocabulary",
- "value": ["2"]
+ "value": [
+ "2"
+ ]
}
},
"earmarking_modality": {
"name": "earmarking_modality",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/EarmarkingModality.json",
"required": true,
"criteria": "mandatory",
"hidden": true,
- "hover_text": "A code from the specified vocabulary. This attribute is required. For more information ",
- "help_text": "Select the aid-type related to your activity.",
+ "hover_text": "el_common.a_code_from_the_specified_vocabulary",
+ "help_text": "el_common.select_the_aid_type",
"parent": {
"name": "default_aid_type_vocabulary",
- "value": ["3"]
+ "value": [
+ "3"
+ ]
}
},
"cash_and_voucher_modalities": {
"name": "cash_and_voucher_modalities",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/CashandVoucherModalities.json",
"required": true,
"criteria": "mandatory",
"hidden": true,
- "hover_text": "A code from the specified vocabulary. This attribute is required. For more information ",
- "help_text": "Select the aid-type related to your activity.",
+ "hover_text": "el_common.a_code_from_the_specified_vocabulary",
+ "help_text": "el_common.select_the_aid_type",
"parent": {
"name": "default_aid_type_vocabulary",
- "value": ["4"]
+ "value": [
+ "4"
+ ]
}
}
},
@@ -1075,105 +1125,105 @@
},
"default_tied_status": {
"label": "default tied status",
- "hover_text": "Whether the aid is untied, tied, or partially tied. This element specifies a default for all the activity’s financial transactions; it can be overridden at the individual transaction level.For more information ",
- "help_text": "You can state the tied status of this transaction. Here you can specify if funds are tied - where they must be spent on goods or services procured from a particular country (e.g. donor country) or group of countries. Or if funds are untied, this is where the recipient organisation is allowed to procure from any country.",
+ "hover_text": "elements.activities.default_tied_status.hover_text",
+ "help_text": "elements.activities.default_tied_status.help_text",
"show_info_in_title": true,
"attributes": {
"default_tied_status": {
"name": "default_tied_status",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/TiedStatus.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code interpreting the usage of Columns 36-38 of the CRS++ reporting format. (Amount tied, Amount partially untied, Amount tied). For more information ",
- "help_text": "Select a default-tied-status, if applicable to your activity. See descriptions of all options . Otherwise leave blank."
+ "hover_text": "elements.activities.default_tied_status.default_tied_status.hover_text",
+ "help_text": "elements.activities.default_tied_status.default_tied_status.help_text"
}
},
"sub_elements": {}
},
"country_budget_items": {
"name": "country_budget_items",
- "label": "country-budget-items",
+ "label": "el_common.country_budget_items",
"add_more": true,
- "hover_text": "This item encodes the alignment of activities with both the functional and administrative classifications used in the recipient country’s Chart of Accounts. This applies to both on- and off-budget activities.For more information ",
+ "hover_text": "elements.activities.country_budget_items.hover_text",
"show_info_in_title": true,
"attributes": {
"country_budget_vocabulary": {
"name": "country_budget_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/BudgetIdentifierVocabulary.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code for the common functional classification or country system (This allows for common codes, country-specific, or any other classification agreed between countries and donors). For more information ",
+ "hover_text": "elements.activities.country_budget_items.country_budget_vocabulary.hover_text",
"help_text": ""
}
},
"sub_elements": {
"budget_item": {
"name": "budget_item",
- "label": "budget item",
+ "label": "el_common.budget_item",
"element_criteria": "mandatory",
"add_more": true,
- "hover_text": "Identifier for a single item in the recipient-country budget. If more than one identifier is reported the percentage share must be reported and all percentages should add up to 100 percent.For more information ",
+ "hover_text": "elements.activities.country_budget_items.budget_item.hover_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/BudgetIdentifier.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code for the budget-item from the vocabulary specified. This attribute is required.For more information ",
+ "hover_text": "elements.activities.country_budget_items.budget_item.code.hover_text",
"help_text": ""
},
"percentage": {
"name": "percentage",
- "label": "percentage",
+ "label": "el_common.percentage_organisation",
"type": "text",
- "placeholder": "Type percentage",
+ "placeholder": "el_common.type_percentage",
"required": false,
"criteria": "",
- "hover_text": "When multiple budget-item elements are declared within a single country-budget-items element, then, for each vocabulary used, the percentage values should sum 100%.For more information ",
- "help_text": "If no value is selected, default value is assumed."
+ "hover_text": "elements.activities.country_budget_items.budget_item.percentage.hover_text",
+ "help_text": "elements.activities.country_budget_items.budget_item.percentage.help_text"
}
},
"sub_elements": {
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"add_more": false,
- "hover_text": "A longer, human-readable description of the budget-item. May be repeated for different languages. For more information ",
+ "hover_text": "elements.activities.country_budget_items.budget_item.description.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "hover_text": "elements.activities.country_budget_items.budget_item.narrative.hover_text",
"help_text": "",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": false,
"choices": "Activity/Language.json",
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.country_budget_items.budget_item.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -1186,10 +1236,10 @@
},
"humanitarian_scope": {
"name": "humanitarian_scope",
- "label": "Humanitarian scope",
+ "label": "el_common.humanitarian_scope",
"add_more": true,
- "hover_text": "Classification of emergencies, appeals and other humanitarian events and actions. For more information ",
- "help_text": "The ‘humanitarian-scope’ element can be used to specify the emergency and/or appeal that your activity is responding to",
+ "hover_text": "elements.activities.humanitarian_scope.hover_text",
+ "help_text": "elements.activities.humanitarian_scope.help_text",
"dependent_attributes": {
"vocabulary_uri": {},
"code": {}
@@ -1197,81 +1247,87 @@
"attributes": {
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/HumanitarianScopeType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code for the type of event or action being classified. For more information ",
- "help_text": "Select which type of information you can provide:
Emergencies (type 1) Select this option if you can provide the GLIDE number for the specific humanitarian emergency that your activity is responding to. Alternatively, select this option if you can declare a code for the emergency from another public list.Appeals (type 2) Select this option if your activity is contributing to a UN Office for the Coordination of Humanitarian Affairs (OCHA) Humanitarian Response Plan or Flash Appeal . These codes are created by UN OCHA for use in their Financial Tracking Service (FTS). Alternatively, select this option if you can declare a code for the appeal from another public list. "
+ "hover_text": "elements.activities.humanitarian_scope.type.hover_text",
+ "help_text": "elements.activities.humanitarian_scope.type.help_text"
},
"vocabulary": {
"name": "vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/HumanitarianScopeVocabulary.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code for a recognised vocabulary of terms classifying the event or action. This attribute is required. For more information ",
- "help_text": "Select the list that you will use to identify the emergency or appeal that your activity is responding to:1-2 Glide 2-1 Humanitarian Plan 99 Reporting Organisation - select this option if you can declare a code for the emergency or appeal from an alternative public list."
+ "hover_text": "elements.activities.humanitarian_scope.vocabulary.hover_text",
+ "help_text": "elements.activities.humanitarian_scope.vocabulary.help_text"
},
"vocabulary_uri": {
"name": "vocabulary_uri",
- "label": "vocabulary uri",
+ "label": "el_common.vocabulary_uri",
"type": "text",
- "placeholder": "Type vocabulary-uri",
+ "placeholder": "el_common.type_vocabulary_uri",
"required": false,
"criteria": "",
"hidden": true,
- "hover_text": "A u.r.i. for the vocabulary specified which provides access to the list of codes and descriptions. For more information ",
- "help_text": "Provide a link to the list of emergencies or appeals that you will use, which includes its codes and descriptions.",
+ "hover_text": "elements.activities.humanitarian_scope.vocabulary_uri.hover_text",
+ "help_text": "elements.activities.humanitarian_scope.vocabulary_uri.help_text",
"parent": {
"name": "vocabulary",
- "value": ["99"]
+ "value": [
+ "99"
+ ]
}
},
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code for the event or action from the vocabulary specified.For more information ",
- "help_text": "Provide the code for the specific emergency or appeal that your activity is responding to. For example, if you are providing a code for an emergency that has a Glide Number , the format for this code would be: [Emergency Type] + [Year] + [Number] + [Country].",
+ "hover_text": "elements.activities.humanitarian_scope.code.hover_text",
+ "help_text": "elements.activities.humanitarian_scope.code.help_text",
"parent": {
"name": "vocabulary",
- "value": ["1-2", "2-1", "99"]
+ "value": [
+ "1-2",
+ "2-1",
+ "99"
+ ]
}
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The description of the code specified. For more information ",
- "help_text": "If you have used a code for the emergency or appeal from an alternative public list (i.e. you have selected 99 Reporting Organisation above), please provide a description of the code that you have specified.",
+ "hover_text": "elements.activities.humanitarian_scope.narrative.hover_text",
+ "help_text": "elements.activities.humanitarian_scope.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.humanitarian_scope.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -1280,122 +1336,122 @@
},
"capital_spend": {
"label": "capital spend",
- "hover_text": "The percentage of the total commitment that is for capital spending. For more information ",
- "help_text": "Please indicate how much of the total activity’s funding will be spent on capital. Capital describes physical assets with a useful life of more than one year. For example, a road.",
+ "hover_text": "elements.activities.capital_spend.hover_text",
+ "help_text": "elements.activities.capital_spend.help_text",
"show_info_in_title": true,
"attributes": {
"capital_spend": {
"name": "capital_spend",
- "label": "percentage",
+ "label": "el_common.percentage_organisation",
"type": "text",
- "placeholder": "Type percentage",
+ "placeholder": "el_common.type_percentage",
"required": true,
"criteria": "mandatory",
- "hover_text": "The percentage of the total commitment allocated to or planned for capital expenditure. Content must be a decimal number between 0 and 100 inclusive, with no percentage sign.For more information ",
- "help_text": "Percentage must not exceed 100."
+ "hover_text": "elements.activities.capital_spend.capital_spend.hover_text",
+ "help_text": "elements.activities.capital_spend.capital_spend.help_text"
}
},
"sub_elements": {}
},
"related_activity": {
"name": "related_activity",
- "label": "related-activity",
+ "label": "el_common.related_activity",
"add_more": true,
"add_more_attributes": true,
- "hover_text": "Another separately reported IATI activity that is related to this one. The ‘type’ attribute describes the type of relationship: (eg. parent, child, multifunded). It is strongly recommended that linkage between activities in a hierarchical group should always be managed by use of this element with @type of 1 (parent) or 2 (child). For more information ",
- "help_text": "If this activity is part of a programme with multiple activities within one organisation, you should include details of all related activities. Please read more about the types of related activities that you can report.Please only refer to your own activities here.",
+ "hover_text": "elements.activities.related_activity.hover_text",
+ "help_text": "elements.activities.related_activity.help_text",
"attributes": {
"activity_identifier": {
"name": "activity_identifier",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": true,
"criteria": "mandatory",
- "hover_text": "A valid activity identifier (as defined in iati-activity/iati-identifier).",
- "help_text": "If you have a related activity to report, please provide its full activity-id (including the organisation-id part). See more information on activity-ids . You can ask the person(s) who reported the related activity for this, or search for the activity on d-portal.org. See further guidance ."
+ "hover_text": "elements.activities.related_activity.activity_identifier.hover_text",
+ "help_text": "elements.activities.related_activity.activity_identifier.help_text"
},
"relationship_type": {
"name": "relationship_type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/RelatedActivityType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code for the type of relationship",
- "help_text": "Please select the type of relationship between the activity being reported and the related activity from this list ."
+ "hover_text": "elements.activities.related_activity.relationship_type.hover_text",
+ "help_text": "elements.activities.related_activity.relationship_type.help_text"
}
},
"sub_elements": {}
},
"conditions": {
"name": "conditions",
- "label": "conditions",
+ "label": "el_common.conditions",
"add_more": true,
- "hover_text": "Specific terms and conditions attached to the activity that, if not met, may influence the delivery of commitments made by participating organisations. For more information ",
- "help_text": "Please declare any conditions or specific terms that are attached to this activity. For example, requirements issued by your funder or a six month review to assess whether or not the activity is worth continuing. If a condition relates to the whole organisation, such as organisation-wide terms and conditions, it should not be reported within this activity. Instead, you should report this in the document-link element in your organisation file.Further guidance .",
+ "hover_text": "elements.activities.conditions.hover_text",
+ "help_text": "elements.activities.conditions.help_text",
"show_info_in_title": true,
"attributes": {
"condition_attached": {
"name": "condition_attached",
- "label": "attached",
+ "label": "el_common.attached",
"type": "select",
- "placeholder": "Select attached",
+ "placeholder": "el_common.select_attached",
"choices": {
"0": "False",
"1": "True"
},
"required": true,
"criteria": "mandatory",
- "hover_text": "A yes/no (1/0) value stating whether there are conditions attached to the activity. It is strongly recommended that this attribute is reported, even if there are no conditions attached (i.e. attached=”0”)",
- "help_text": "Please select ‘Yes’ if your activity has a condition attached to it or ‘No’ if it does not."
+ "hover_text": "elements.activities.conditions.condition_attached.hover_text",
+ "help_text": "elements.activities.conditions.condition_attached.help_text"
}
},
"sub_elements": {
"condition": {
"name": "condition",
- "label": "Condition",
+ "label": "el_common.condition",
"add_more": true,
- "hover_text": "The text of a specific condition attached to the activity. Organisation-wide terms and conditions that apply to all activities should not be reported here, but in either iati-organisation/document-link or iati-activity-document-link. For more information ",
+ "hover_text": "elements.activities.conditions.condition.hover_text",
"attributes": {
"condition_type": {
"name": "condition_type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/ConditionType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the type of condition. ",
- "help_text": "Select the type of condition that you want to report. Three types of condition can be reported:Policy : e.g. a particular policy needs to be implemented by the organisation receiving funds.Performance : e.g. certain outputs or outcomes need to be achieved.Fiduciary : e.g. the recipient is required to use certain public financial management or public accountability measures.Full description of types ."
+ "hover_text": "elements.activities.conditions.condition_type.hover_text",
+ "help_text": "elements.activities.conditions.condition_type.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a short description of the condition here. You can provide more information by adding a link to a relevant document or webpage in the activity document-link element.",
+ "hover_text": "el_common.the_free_text_name_link_1",
+ "help_text": "elements.activities.conditions.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_1",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -1406,40 +1462,40 @@
},
"legacy_data": {
"name": "legacy_data",
- "label": "legacy-data",
+ "label": "el_common.legacy_data",
"add_more": true,
"add_more_attributes": true,
- "hover_text": "The legacy data element allows for the reporting of values held in a field in the reporting organisation’s system which is similar, but not identical to an IATI element. For more information ",
- "help_text": "You can link this activity to your organisation’s internal data and record which IATI Standard element it most relates to.",
+ "hover_text": "elements.activities.legacy_data.hover_text",
+ "help_text": "elements.activities.legacy_data.help_text",
"attributes": {
"legacy_name": {
"name": "legacy_name",
- "label": "name",
+ "label": "el_common.name",
"type": "text",
- "placeholder": "Type name",
+ "placeholder": "el_common.type_name",
"required": true,
"criteria": "mandatory",
- "hover_text": "The original field name in the reporting organisation’s system",
+ "hover_text": "elements.activities.legacy_data.legacy_name.hover_text",
"help_text": ""
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": true,
"criteria": "mandatory",
- "hover_text": "The original field value in the reporting organisation’s system",
+ "hover_text": "elements.activities.legacy_data.value.hover_text",
"help_text": ""
},
"iati_equivalent": {
"name": "iati_equivalent",
- "label": "iati-equivalent",
+ "label": "el_common.iati_equivalent",
"type": "text",
- "placeholder": "Type iati_equivalent",
+ "placeholder": "el_common.type_iati_equivalent",
"required": false,
"criteria": "",
- "hover_text": "The name of the equivalent IATI element.",
+ "hover_text": "elements.activities.legacy_data.iati_equivalent.hover_text",
"help_text": ""
}
},
@@ -1447,31 +1503,31 @@
},
"document_link": {
"name": "document_link",
- "label": "document link",
+ "label": "el_common.document_link",
"add_more": true,
- "hover_text": "A link to an online, publicly accessible web page or document. For more information ",
- "help_text": "You can report further information about this activity by providing a publicly accessible link to a document or webpage. If documents are available in other languages and stored separately, please provide them by creating additional document elements.Further guidance ",
+ "hover_text": "elements.activities.document_link.hover_text",
+ "help_text": "elements.activities.document_link.help_text",
"attributes": {
"url": {
"name": "url",
- "label": "url",
+ "label": "el_common.url",
"type": "text",
- "placeholder": "Type url",
+ "placeholder": "el_common.type_url",
"required": true,
"criteria": "mandatory",
- "hover_text": "The target URL of the external document, e.g. 'http://www.example.org/doc.odt'.For more information ",
- "help_text": "The URL must begin with either ‘http://’ or ‘https://’."
+ "hover_text": "elements.activities.document_link.url.hover_text",
+ "help_text": "el_common.the_url_must_begin_with_either"
},
"format": {
"name": "format",
- "label": "format",
+ "label": "el_common.format",
"type": "select",
- "placeholder": "Type format",
+ "placeholder": "el_common.type_format",
"choices": "Activity/FileFormat.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
- "help_text": "If you know the format of the document file, please type it using an option from this list ."
+ "hover_text": "elements.activities.document_link.format.hover_text",
+ "help_text": "elements.activities.document_link.format.help_text"
},
"document": {
"name": "document",
@@ -1490,33 +1546,33 @@
"label": "Title",
"element_criteria": "",
"add_more": false,
- "hover_text": "A short, human-readable title.For information ",
+ "hover_text": "elements.activities.document_link.title.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a short title for the document or webpage.",
+ "hover_text": "el_common.the_free_text_name_link_1",
+ "help_text": "el_common.provide_a_short_title_for_desc",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_1",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -1525,35 +1581,35 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"add_more": false,
- "hover_text": "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ "hover_text": "elements.activities.document_link.description.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a short description of the document or webpage, including any instructions on where to find relevant information.",
+ "hover_text": "el_common.the_free_text_name_link_1",
+ "help_text": "el_common.provide_a_short_description_of_document",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the description. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_1",
+ "help_text": "el_common.select_the_language_of_text_in_desc"
}
},
"sub_elements": {}
@@ -1562,62 +1618,62 @@
},
"category": {
"name": "category",
- "label": "category",
+ "label": "el_common.category",
"element_criteria": "mandatory",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "IATI Document Category Code. For more information ",
- "help_text": "You must select a category of the document or webpage that you have provided.",
+ "hover_text": "elements.activities.document_link.category.hover_text",
+ "help_text": "el_common.you_must_select_category",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/DocumentCategory.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the category of the document. For more information ",
- "help_text": "Select a category of the document or webpage that you have provided from this list ."
+ "hover_text": "elements.activities.document_link.category.code.hover_text",
+ "help_text": "elements.activities.document_link.category.code.help_text"
}
},
"sub_elements": {}
},
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"add_more": true,
"wrapper_collection": false,
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the document or webpage."
+ "hover_text": "el_common.a_code_specifying_text_link_1",
+ "help_text": "elements.activities.document_link.language.code.help_text"
}
},
"sub_elements": {}
},
"document_date": {
"name": "document_date",
- "label": "document date",
+ "label": "el_common.document_date",
"add_more": false,
- "hover_text": "The date of publication of the document that is being linked to. (@iso-date).For more information ",
+ "hover_text": "elements.activities.document_link.document_date.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
- "help_text": "Provide the date of publication for the document or webpage, or provide the date that it was last updated."
+ "hover_text": "el_common.the_date_of_document_link_2",
+ "help_text": "el_common.provide_the_date_of_publication"
}
},
"sub_elements": {}
@@ -1626,54 +1682,54 @@
},
"contact_info": {
"name": "contact_info",
- "label": "contact info",
+ "label": "el_common.contact_info",
"add_more": true,
- "hover_text": "Contact information for the activity. Specify whatever is available. You may repeat this element for each contact person.For more information ",
+ "hover_text": "elements.activities.contact_info.hover_text",
"attributes": {
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/ContactType.json",
"required": false,
"criteria": "",
- "hover_text": "The type of contact. See IATI codelist for values.For more information ",
+ "hover_text": "elements.activities.contact_info.type.hover_text",
"help_text": ""
}
},
"sub_elements": {
"organisation": {
"name": "organisation",
- "label": "organisation",
+ "label": "el_common.organisation",
"add_more": false,
- "hover_text": "The name of the organisation to contact for more information about the activity. For more information ",
+ "hover_text": "elements.activities.contact_info.type.organisation.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide the name of the organisation to contact for more information about the activity.",
+ "hover_text": "elements.activities.contact_info.type.organisation.narrative.hover_text",
+ "help_text": "elements.activities.contact_info.type.organisation.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, then your default language is assumed."
+ "hover_text": "elements.activities.contact_info.type.organisation.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -1682,35 +1738,35 @@
},
"department": {
"name": "department",
- "label": "department",
+ "label": "el_common.department",
"add_more": false,
- "hover_text": "The department within the organisation to contact for more information about the activity. For more information ",
+ "hover_text": "elements.activities.contact_info.type.department.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide the name of the department within the organisation to contact for more information about the activity. ",
+ "hover_text": "el_common.the_free_text_name_link_6",
+ "help_text": "elements.activities.contact_info.type.department.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_7",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -1719,35 +1775,35 @@
},
"person_name": {
"name": "person_name",
- "label": "person name",
+ "label": "el_common.person_name",
"add_more": false,
- "hover_text": "The name of the contact person for the activity.For more information ",
+ "hover_text": "elements.activities.contact_info.type.person_name.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide the name of the contact for more information about the activity. ",
+ "hover_text": "el_common.the_free_text_name_link_6",
+ "help_text": "elements.activities.contact_info.type.person_name.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, the default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_7",
+ "help_text": "el_common.default_value_assumed_the"
}
},
"sub_elements": {}
@@ -1756,35 +1812,35 @@
},
"job_title": {
"name": "job_title",
- "label": "job title",
+ "label": "el_common.job_title",
"add_more": false,
- "hover_text": "The job title of the contact person at the organisation.For more information ",
+ "hover_text": "elements.activities.contact_info.type.job_title.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide the job title of the contact at the organisation. ",
+ "hover_text": "el_common.the_free_text_name_link_6",
+ "help_text": "elements.activities.contact_info.type.job_title.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, then your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_7",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -1793,18 +1849,18 @@
},
"telephone": {
"name": "telephone",
- "label": "telephone",
+ "label": "el_common.telephone",
"add_more": true,
"wrapper_collection": false,
"attributes": {
"telephone": {
"name": "telephone",
- "label": "telephone",
+ "label": "el_common.telephone",
"type": "text",
- "placeholder": "Type telephone",
+ "placeholder": "el_common.type_telephone",
"required": false,
"criteria": "",
- "hover_text": "The contact telephone number. May be repeated for multiple numbers.For more information ",
+ "hover_text": "elements.activities.contact_info.type.telephone.hover_text",
"help_text": ""
}
},
@@ -1812,18 +1868,18 @@
},
"email": {
"name": "email",
- "label": "email",
+ "label": "el_common.email",
"add_more": true,
"wrapper_collection": false,
"attributes": {
"email": {
"name": "email",
- "label": "email",
+ "label": "el_common.email",
"type": "text",
- "placeholder": "Type email",
+ "placeholder": "el_common.type_email",
"required": false,
"criteria": "",
- "hover_text": "The contact email address. May be repeated for multiple addresses.For more information ",
+ "hover_text": "elements.activities.contact_info.type.email.hover_text",
"help_text": ""
}
},
@@ -1831,18 +1887,18 @@
},
"website": {
"name": "website",
- "label": "website",
+ "label": "el_common.website",
"add_more": true,
"wrapper_collection": false,
"attributes": {
"website": {
"name": "website",
- "label": "website",
+ "label": "el_common.website",
"type": "text",
- "placeholder": "Type URL",
+ "placeholder": "el_common.type_URL",
"required": false,
"criteria": "",
- "hover_text": "The contact web address. May be repeated for multiple sites.For more information ",
+ "hover_text": "elements.activities.contact_info.type.website.hover_text",
"help_text": ""
}
},
@@ -1850,35 +1906,35 @@
},
"mailing_address": {
"name": "mailing_address",
- "label": "mailing address",
+ "label": "el_common.mailing_address",
"add_more": true,
- "hover_text": "The contact mailing address.For more information ",
+ "hover_text": "elements.activities.contact_info.type.mailing_address.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide any further information about this contact.",
+ "hover_text": "elements.activities.contact_info.type.mailing_address.narrative.hover_text",
+ "help_text": "elements.activities.contact_info.type.mailing_address.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.contact_info.type.mailing_address.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -1889,107 +1945,107 @@
},
"location": {
"name": "location",
- "label": "location",
+ "label": "el_common.location",
"add_more": true,
- "hover_text": "The sub-national geographical identification of the target locations of an activity. These can be described by gazetteer reference, coordinates, administrative areas or a textual description. Any number of locations may be reported.For more information ",
- "help_text": "Provide the sub-national location/s of an activity, if it is known. However location data should only be added when it is safe to do so. It is the publishing organisation’s responsibility to ensure that the data it publishes is safe. You can provide geographic coordinates of a location, the name and description of a location, the administrative area or other features of the location e.g. health centre, village etc.Further guidance. ",
+ "hover_text": "elements.activities.location.hover_text",
+ "help_text": "elements.activities.location.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "An internal reference that describes the location in the reporting organisation’s own system.For more information ",
- "help_text": "You can provide an internal reference used by your organisation to describe the location for example: AF-KAN."
+ "hover_text": "elements.activities.location.reference.hover_text",
+ "help_text": "elements.activities.location.reference.help_text"
}
},
"sub_elements": {
"location_reach": {
"name": "location_reach",
- "label": "location reach",
+ "label": "el_common.location_reach",
"add_more": false,
- "hover_text": "Does this location describe where the activity takes place or where the intended beneficiaries reside? For more information ",
- "help_text": "Please specify if the location describes where the activity takes place or where the intended beneficiaries reside.",
+ "hover_text": "elements.activities.location.location_reach.hover_text",
+ "help_text": "elements.activities.location.location_reach.help_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/GeographicLocationReach.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code for the geographic scope of the activity. This attribute is required.For more information ",
- "help_text": "Please choose an option to describe the reach of the location. 1. Activity - The location specifies where the activity is carried out 2. Intended Beneficiaries - The location specifies where the intended beneficiaries of the activity live"
+ "hover_text": "elements.activities.location.location_reach.code.hover_text",
+ "help_text": "elements.activities.location.location_reach.code.help_text"
}
},
"sub_elements": {}
},
"location_id": {
"name": "location_id",
- "label": "location-id",
+ "label": "el_common.location_id",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "A unique code describing the location according to a recognised gazetteer or administrative boundary repository. Administrative areas should only be reported here if the location being defined is the administrative area itself. For describing the administrative area/s within which a more specific location falls the location/administrative element should be used.For more information ",
- "help_text": "You can provide a unique code describing the location according to a recognised gazetteer or administrative boundary repository. You can select an option of a gazetteer or administrative boundary repository from the list below.",
+ "hover_text": "elements.activities.location.location_id.hover_text",
+ "help_text": "elements.activities.location.location_id.help_text",
"attributes": {
"vocabulary": {
"name": "vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/GeographicVocabulary.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code for a recognised gazetteer or administrative boundary repository.This attribute is required.For more information ",
- "help_text": "Please select the gazetteer or administrative boundary repository that you will provide a code from.View more information about each option. "
+ "hover_text": "elements.activities.location.location_id.vocabulary.hover_text",
+ "help_text": "elements.activities.location.location_id.vocabulary.help_text"
},
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Enter a code",
+ "placeholder": "el_common.enter_a_code",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the gazetteer or administrative boundary repository specified by the vocabularyFor more information ",
- "help_text": "Provide a unique code describing the location with a recognised gazetteer or administrative boundary repository (see list). "
+ "hover_text": "elements.activities.location.location_id.code.hover_text",
+ "help_text": "elements.activities.location.location_id.code.help_text"
}
},
"sub_elements": {}
},
"name": {
"name": "name",
- "label": "name",
+ "label": "el_common.name",
"add_more": false,
- "hover_text": "The human readable name for the location.For more information ",
+ "hover_text": "elements.activities.location.name",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative here",
+ "placeholder": "el_common.type_narrative_here",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide the free text name of the location of the activity.",
+ "hover_text": "elements.activities.location.name.narrative.hover_text",
+ "help_text": "elements.activities.location.name.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, then your default language is assumed."
+ "hover_text": "elements.activities.location.name.language.hover_text",
+ "help_text": "elements.activities.location.name.language.help_text"
}
},
"sub_elements": {}
@@ -1998,34 +2054,34 @@
},
"description": {
"name": "description",
- "label": "description",
- "hover_text": "A description that qualifies the location, not the activity.For more information ",
+ "label": "el_common.description",
+ "hover_text": "elements.activities.location.description.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative here",
+ "placeholder": "el_common.type_narrative_here",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide a description of the location of the activity.",
+ "hover_text": "elements.activities.location.description.narrative.hover_text",
+ "help_text": "elements.activities.location.description.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.location.description.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -2034,35 +2090,35 @@
},
"activity_description": {
"name": "activity_description",
- "label": "activity description",
+ "label": "el_common.activity_description",
"add_more": false,
- "hover_text": "A description that qualifies the activity taking place at the location. This should not duplicate information provided in the main activity description, and should typically be used to distinguish between activities at multiple locations within a single iati-activity record.For more information ",
+ "hover_text": "elements.activities.location.activity_description.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative here",
+ "placeholder": "el_common.type_narrative_here",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "hover_text": "elements.activities.location.activity_description.narrative.hover_text",
"help_text": "",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.location.activity_description.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -2071,76 +2127,76 @@
},
"administrative": {
"name": "administrative",
- "label": "administrative",
+ "label": "el_common.administrative",
"add_more": false,
- "hover_text": "Coded identification of national and sub-national divisions according to recognised administrative boundary repositories. Multiple levels may be reported.For more information ",
- "help_text": "You can provide a unique code to describe the activity location according to an administrative boundary repository.",
+ "hover_text": "elements.activities.location.administrative.hover_text",
+ "help_text": "elements.activities.location.administrative.help_text",
"attributes": {
"vocabulary": {
"name": "vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/GeographicVocabulary.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code for a recognised administrative boundary repository.For more information ",
- "help_text": "Select an administrative boundary list that includes a code to represent your activity location."
+ "hover_text": "elements.activities.location.administrative.vocabulary.hover_text",
+ "help_text": "elements.activities.location.administrative.vocabulary.help_text"
},
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Country.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "The code for the administrative area being reported from the vocabulary specified.For more information ",
- "help_text": "Provide a code to represent your activity location (from your chosen administrative boundary list )."
+ "hover_text": "elements.activities.location.administrative.code.hover_text",
+ "help_text": "elements.activities.location.administrative.code.help_text"
},
"level": {
"name": "level",
- "label": "level",
+ "label": "el_common.level",
"type": "text",
- "placeholder": "Type level",
+ "placeholder": "el_common.type_level",
"required": false,
"criteria": "Type level",
- "hover_text": "A number defining a subdivision within a hierarchical system of administrative areas. The precise system for defining the particular meaning of each @level value is determined by the @vocabulary being used.For more information ",
- "help_text": "Within your chosen administrative boundary list , you can provide a number to define a subdivision within a hierarchical system of administrative areas."
+ "hover_text": "elements.activities.location.administrative.level.hover_text",
+ "help_text": "elements.activities.location.administrative.level.help_text"
}
},
"sub_elements": {}
},
"point": {
"name": "point",
- "label": "point",
+ "label": "el_common.point",
"add_more": false,
- "hover_text": "The point element is based on a subset of the GML 3.3 Point element.For more information ",
- "help_text": "You can provide geo-coordinates for the location, in the format of latitude and longitude coordinates Coordinates are published using the point and pos elements. The point element is always: The pos element then contains the latitude coordinate (the first number), followed by the longitude coordinate (the second number) e.g. -46.7733 167.6321. Please note that coordinates can refer to an ‘exact’ or an ‘approximate’ location. This should be specified using the location exactness element.More information. ",
+ "hover_text": "elements.activities.location.point.hover_text",
+ "help_text": "elements.activities.location.point.help_text",
"attributes": {
"srs_name": {
"name": "srs_name",
- "label": "srsName",
+ "label": "el_common.srsName",
"type": "text",
- "placeholder": "Type srs name",
+ "placeholder": "el_common.type_srs_name",
"required": true,
"criteria": "mandatory",
- "hover_text": "The name of the spatial reference system used by the coordinates.For more information ",
- "help_text": "This value never changes."
+ "hover_text": "elements.activities.location.point.srs_name.hover_text",
+ "help_text": "elements.activities.location.point.srs_name.help_text"
}
},
"sub_elements": {
"pos": {
"name": "pos",
"element_criteria": "mandatory",
- "hover_text": "The latitude and longitude coordinates in the format “lat lng”.For more information ",
- "help_text": "Add latitude and longitude separated by a space e.g. 31.616944 65.716944 If you don’t already have a way to find the coordinates for an activity, there are some online platforms to help, e.g. Google Maps and Latlong.net . To find the coordinates for an activity on Google Maps, right-click over the location of the activity and select ‘what’s here?’. The coordinates will then be presented. Alternatively, type in the coordinates and the location of the activity that will be pinpointed on the map.More information. ",
+ "hover_text": "elements.activities.location.point.pos.hover_text",
+ "help_text": "elements.activities.location.point.pos.help_text",
"attributes": {
"latitude": {
"name": "latitude",
- "label": "latitude",
+ "label": "el_common.latitude",
"type": "text",
- "placeholder": "Type latitude value",
+ "placeholder": "el_common.type_latitude_value",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -2148,9 +2204,9 @@
},
"longitude": {
"name": "longitude",
- "label": "longitude",
+ "label": "el_common.longitude",
"type": "text",
- "placeholder": "Type longitude value",
+ "placeholder": "el_common.type_longitude_value",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -2163,60 +2219,60 @@
},
"exactness": {
"name": "exactness",
- "label": "exactness",
+ "label": "el_common.exactness",
"add_more": false,
- "hover_text": "Defines whether the location represents the most distinct point reasonably possible for this type of activity or is an approximation due to lack of more detailed information.For more information ",
+ "hover_text": "elements.activities.location.exactness.hover_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/GeographicExactness.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the Geographic Exactness Codelist. This attribute is required.For more information ",
- "help_text": "If you have provided the geo-coordinates for the activity location, then select an option from the Geographic Exactness list to specify whether the location is exact or approximate."
+ "hover_text": "elements.activities.location.code.hover_text",
+ "help_text": "elements.activities.location.code.help_text"
}
},
"sub_elements": {}
},
"location_class": {
"name": "location_class",
- "label": "location class",
+ "label": "el_common.location_class",
"add_more": false,
- "hover_text": "Whether the location refers to a structure, a populated place (e.g. city or village), an administrative division, or another topological feature (e.g. river, nature reserve).For more information ",
+ "hover_text": "elements.activities.location.location_class.hover_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/GeographicLocationClass.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the Location Class codelist. This attribute is required.For more information ",
- "help_text": "Please specify the form of the activity location from the Geographic Location Class list . For example a populated place (town, farm), or topographical feature (mountain, river)."
+ "hover_text": "elements.activities.location.code.hover_text",
+ "help_text": "elements.activities.location.code.help_text"
}
},
"sub_elements": {}
},
"feature_designation": {
"name": "feature_designation",
- "label": "feature designation",
+ "label": "el_common.feature_designation",
"add_more": false,
- "hover_text": "A more refined coded classification of the type of feature referred to by this location.For more information ",
+ "hover_text": "elements.activities.location.feature_designation.hover_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/LocationType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A feature designation code form the authorised list (maintained by the US National Geospatial-Intelligence Agency).For more information ",
- "help_text": "You can provide more detail on the type of your activity’s location (e.g. beach, well or college).Please make a selection from the Location Type list. "
+ "hover_text": "elements.activities.location.code.hover_text",
+ "help_text": "elements.activities.location.code.help_text"
}
},
"sub_elements": {}
@@ -2225,21 +2281,21 @@
},
"planned_disbursement": {
"name": "planned_disbursement",
- "label": "planned disbursement",
+ "label": "el_common.planned_disbursement",
"add_more": true,
- "hover_text": "The planned disbursement element should only be used to report specific planned cash transfers. These should be reported for a specific date or a meaningfully predictable period.For more information ",
- "help_text": "You can publish data on your planned cash transfers to organisations (or between two other organisations) as part of this activity. The purpose of planned disbursements is to publish predefined payment schedules. Planned disbursements should be reported for a specific date or a meaningfully predictable period. Planned disbursements should be reported in addition and should not replace the activity’s budget.",
+ "hover_text": "elements.activities.planned_disbursement.hover_text",
+ "help_text": "elements.activities.planned_disbursement.help_text",
"attributes": {
"planned_disbursement_type": {
"name": "planned_disbursement_type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
"placeholder": "",
"choices": "Activity/BudgetType.json",
"required": false,
"criteria": "",
- "hover_text": "The purpose of planned-disbursement is to describe any predefined payment schedule.For more information ",
- "help_text": "Specify if this is an ‘original’ planned disbursement (prepared when the original commitment was made) or has subsequently been ‘revised’."
+ "hover_text": "elements.activities.planned_disbursement.planned_disbursement_type.hover_text",
+ "help_text": "elements.activities.planned_disbursement.planned_disbursement_type.help_text"
}
},
"sub_elements": {
@@ -2247,16 +2303,16 @@
"name": "period_start",
"label": "period start",
"add_more": false,
- "hover_text": "The exact date of the planned disbursement OR the starting date of the period in which this specific disbursement will be made.For more information ",
+ "hover_text": "elements.activities.planned_disbursement.period_start.hover_text",
"attributes": {
"date": {
"name": "date",
"label": "iso_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The exact date of the planned disbursement OR the starting date of the period in which this specific disbursement will be made.For more information ",
+ "hover_text": "elements.activities.planned_disbursement.period_start.hover_text",
"help_text": ""
}
},
@@ -2266,16 +2322,16 @@
"name": "period_end",
"label": "period end",
"add_more": false,
- "hover_text": "The ending date for the period in which this specific disbursement will be made.For more information ",
+ "hover_text": "elements.activities.planned_disbursement.period_end.hover_text",
"attributes": {
"date": {
"name": "date",
"label": "iso_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The ending date for the period in which this specific disbursement will be made.For more information ",
+ "hover_text": "elements.activities.planned_disbursement.period_end.hover_text",
"help_text": ""
}
},
@@ -2283,16 +2339,16 @@
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"element_criteria": "mandatory",
"add_more": false,
- "hover_text": "The amount that is planned to be disbursed in the specified currency. For more information ",
+ "hover_text": "elements.activities.planned_disbursement.value.hover_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -2300,24 +2356,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"choices": "Activity/Currency.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified. For more information ",
- "help_text": "Select the currency that you have provided the value in. If no value is selected, default value is assumed."
+ "hover_text": "elements.activities.planned_disbursement.value.currency.hover_text",
+ "help_text": "elements.activities.planned_disbursement.value.currency.help_text"
},
"value_date": {
"name": "value_date",
- "label": "value date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions.This attribute is required. For more information ",
- "help_text": "Provide the date on which the planned disbursement was agreed."
+ "hover_text": "elements.activities.planned_disbursement.value_date.hover_text",
+ "help_text": "elements.activities.planned_disbursement.value_date.help_text"
}
},
"sub_elements": {}
@@ -2326,66 +2382,66 @@
"name": "provider_org",
"label": "provider organisation",
"add_more": false,
- "hover_text": "The organisation from which the planned disbursement will originate. If omitted the reporting-org is assumed.For more information ",
- "help_text": "Will your organisation be disbursing these funds? If so then you are the provider organisation. If not, please provide information on the organisation who will be disbursing these funds.",
+ "hover_text": "elements.activities.planned_disbursement.provider_org.hover_text",
+ "help_text": "elements.activities.planned_disbursement.provider_org.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber} where {RegistrationAgency} is a valid code in the Organisation Registration Agency code list and {RegistrationNumber} is a valid identifier issued by the {RegistrationAgency}. If this is not present then the narrative MUST contain the name of the organisation.For more information ",
- "help_text": "Please type the provider organisation’s IATI Organisation Identifier . The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance ."
+ "hover_text": "elements.activities.planned_disbursement.provider_org.reference.hover_text",
+ "help_text": "elements.activities.planned_disbursement.provider_org.reference.help_text"
},
"provider_activity_id": {
"name": "provider_activity_id",
- "label": "provider-activity-id",
+ "label": "el_common.provider_activity",
"type": "text",
- "placeholder": "Type provider-activity-id",
+ "placeholder": "el_common.type_provider_activity_id",
"required": false,
"criteria": "",
- "hover_text": "The identifier for the activity in which the planned disbursement will be reported. If omitted the current activity is assumed. For more information ",
- "help_text": "The provider organisation may have published IATI data on these funds in their own activity. If so, please provide the activity-id for their activity that includes information on this funding. You can ask the provider organisation for this activity-id, or search for their activity on d-portal.org. See further guidance . If you are the provider organisation then leave this blank."
+ "hover_text": "elements.activities.planned_disbursement.provider_org.provider_activity_id.hover_text",
+ "help_text": "elements.activities.planned_disbursement.provider_org.provider_activity_id.help_text"
},
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Organization/OrganizationType.json",
"required": false,
"criteria": "",
- "hover_text": "The type of organisation providing the funds.For more information ",
- "help_text": "Select the type that best describes the provider organisation (if this is not your organisation). Information on all organisation types ."
+ "hover_text": "elements.activities.planned_disbursement.provider_org.type.hover_text",
+ "help_text": "elements.activities.planned_disbursement.provider_org.type.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
- "hover_text": "The name of the organisation. This can be repeated in multiple languages.For more information ",
- "help_text": "If the provider organisation does not have an IATI Organisation Identifier, the name of the organisation must be given.",
+ "hover_text": "elements.activities.planned_disbursement.provider_org.narrative.hover_text",
+ "help_text": "elements.activities.planned_disbursement.provider_org.narrative.help_text",
"attr": {
"row": 4
},
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the name provided. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.planned_disbursement.provider_org.language.hover_text",
+ "help_text": "elements.activities.planned_disbursement.provider_org.language.help_text"
}
},
"sub_elements": {}
@@ -2394,68 +2450,68 @@
},
"receiver_org": {
"name": "receiver_org",
- "label": "receiver organisation",
+ "label": "el_common.receiver_organisation",
"add_more": false,
- "hover_text": "The organisation receiving the money from the planned disbursement.For more information ",
- "help_text": "Provide information on which organisation will be receiving the funds.",
+ "hover_text": "elements.activities.planned_disbursement.receiving_org.hover_text",
+ "help_text": "elements.activities.planned_disbursement.receiving_org.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber} where {RegistrationAgency} is a valid code in the Organisation Registration Agency code list and {RegistrationNumber} is a valid identifier issued by the {RegistrationAgency}. If this is not present then the narrative MUST contain the name of the organisation.For more information ",
- "help_text": "Please provide the receiver organisation’s IATI Organisation Identifier (org-ID). The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance ."
+ "hover_text": "elements.activities.planned_disbursement.receiving_org.reference.hover_text",
+ "help_text": "elements.activities.planned_disbursement.receiving_org.reference.help_text"
},
"receiver_activity_id": {
"name": "receiver_activity_id",
- "label": "receiver-activity-id",
+ "label": "el_common.receiver_activity",
"type": "text",
- "placeholder": "Type receiver-activity",
+ "placeholder": "el_common.type_receiver_activity",
"required": false,
"criteria": "",
- "hover_text": "If outgoing funds are being provided to another activity that is reported to IATI, this may, if possible, record the unique IATI activity identifier for that activity.For more information ",
- "help_text": "If possible, please provide the activity-id for the receiver’s activity which will receive this disbursement. You can ask the receiver organisation for this activity-id, or search for their activity on d-portal.org. See further guidance ."
+ "hover_text": "elements.activities.planned_disbursement.receiving_org.receiver_activity_id.hover_text",
+ "help_text": "elements.activities.planned_disbursement.receiving_org.receiver_activity_id.help_text"
},
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Organization/OrganizationType.json",
"required": false,
"criteria": "",
- "hover_text": "The type of organisation receiving the funds.For more information ",
- "help_text": "Select the type that best describes the receiver organisation. Information on all organisation types ."
+ "hover_text": "elements.activities.planned_disbursement.receiving_org.type.hover_text",
+ "help_text": "elements.activities.planned_disbursement.receiving_org.type.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
- "hover_text": "The name of the organisation. This can be repeated in multiple languages. For more information ",
- "help_text": "Add the name of the receiver organisation.",
+ "hover_text": "elements.activities.planned_disbursement.receiving_org.narrative.hover_text",
+ "help_text": "elements.activities.planned_disbursement.receiving_org.narrative.help_text",
"attr": {
"row": 4
},
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, then your default language is assumed."
+ "hover_text": "elements.activities.planned_disbursement.receiving_org.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -2468,69 +2524,69 @@
"name": "participating_org",
"label": "participating organization",
"add_more": true,
- "help_text": "Specify which organisations are involved with this activity, and what their individual roles are. For example they could be a donor, funder, implementing agency, etc.",
- "hover_text": "An organisation involved with the activity. May be a donor, funder, implementing agency, etc. Specifying the @ref identifier is strongly recommended. May contain the organisation name as narrative. If the reporting organisation plays a role in the activity it should be repeated here. One organisation may play more than one role (eg, funding and implementing): in such a case each role should be reported and the name of the organisation repeated.For more information ",
+ "help_text": "elements.activities.participating_org.hover_text",
+ "hover_text": "elements.activities.participating_org.help_text",
"attributes": {
"organization_role": {
"name": "organization_role",
- "label": "role",
+ "label": "el_common.role",
"type": "select",
- "placeholder": "Select role",
+ "placeholder": "el_common.select_role",
"choices": "Organization/OrganisationRole.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code describing the organisation’s role in the activity (donor, agency, etc.). This attribute is required.For more information ",
- "help_text": "Select an option that describes the organisation’s role in the activity (funder, implementing agency, etc.): 1. Funding - The government or organisation which provides funds to the activity 2. Accountable - An organisation responsible for oversight of the activity and its outcomes 3. Extending - An organisation that manages the budget and direction of an activity on behalf of the funding organisation 4. Implementing - The organisation that physically carries out the activity or intervention."
+ "hover_text": "elements.activities.participating_org.organisation_role.hover_text",
+ "help_text": "elements.activities.participating_org.organisation_role.help_text"
},
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "recommended",
- "hover_text": "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber} where {RegistrationAgency} is a valid code in the Organisation Registration Agency code list and {RegistrationNumber} is a valid identifier issued by the {RegistrationAgency}. If this is not present then the narrative MUST contain the name of the organisation.For more information ",
- "help_text": "Please provide the participating organisation’s IATI Organisation Identifier. The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance. "
+ "hover_text": "elements.activities.participating_org.reference.hover_text",
+ "help_text": "elements.activities.participating_org.reference.help_text"
},
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Organization/OrganizationType.json",
"required": false,
"criteria": "recommended",
- "hover_text": "The type of organisation issuing the report.For more information ",
- "help_text": "Select the type that best describes the participating organisation. Information on all organisation types. "
+ "hover_text": "elements.activities.participating_org.type.hover_text",
+ "help_text": "elements.activities.participating_org.type.help_text"
},
"identifier": {
"name": "identifier",
- "label": "activity-id",
+ "label": "el_common.activity_id",
"type": "text",
- "placeholder": "Type activity-id",
+ "placeholder": "el_common.type_id",
"required": false,
"criteria": "recommended",
- "hover_text": "A valid activity identifier published by the participating organisation which points to the activity that it has published to IATI that describes its role in this activity.For more information ",
- "help_text": "If the participating organisation has published an activity to IATI for this activity, please provide the activity-id for their activity. You can ask the participating organisation for this, or search for their activity on d-portal.org. Further guidance. "
+ "hover_text": "elements.activities.participating_org.activity_id.hover_text",
+ "help_text": "elements.activities.participating_org.activity_id.help_text"
},
"crs_channel_code": {
"name": "crs_channel_code",
- "label": "crs-channel-code",
+ "label": "el_common.crs_channel_code",
"type": "select",
- "placeholder": "Type crs-channel-code",
+ "placeholder": "el_common.type_crs_channel_code",
"choices": "Activity/CRSChannelCode.json",
"required": false,
"criteria": "",
- "hover_text": "Under CRS++ Reporting Directives this code identifies the implementing agency. Codes ending in ‘00’ are generic and are similar to the OrganisationType code.For more information ",
+ "hover_text": "elements.activities.participating_org.crs_channel_code.hover_text",
"help_text": ""
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"element_criteria": "recommended",
"required": false,
"criteria": "recommended",
@@ -2538,19 +2594,19 @@
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "Provide the name of the participating organisation.",
+ "hover_text": "elements.activities.participating_org.narrative.hover_text",
+ "help_text": "elements.activities.participating_org.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_8",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -2559,88 +2615,88 @@
},
"budget": {
"name": "budget",
- "label": "budget",
+ "label": "el_common.budget",
"add_more": true,
- "hover_text": "The value of the activity’s budget for each financial quarter or year over the lifetime of the activity. The purpose of this element is to provide predictability for recipient planning on an annual basis. The status explains whether the budget being reported is indicative or has been formally committed. For more information ",
- "help_text": "Provide the amount of finance expected to be spent as part of this activity. You need to provide budget(s) broken down by time periods of a year or less covering the whole life of the activity. Publishing budgets for each quarter is helpful for data users. A budget must not span more than 12 months. \nYou should provide your budget(s) for your activity as soon as possible. You can then update this over time as more or less funding comes in, or the scope of the activity changes. More information .",
+ "hover_text": "elements.activities.budget.hover_text",
+ "help_text": "elements.activities.budget.help_text",
"attributes": {
"budget_status": {
"name": "budget_status",
- "label": "status",
+ "label": "el_common.status",
"type": "select",
- "placeholder": "Select status",
+ "placeholder": "el_common.select_status",
"choices": "Activity/BudgetStatus.json",
"required": false,
"criteria": "recommended",
- "hover_text": "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
- "help_text": "Please select a status for this budget:1 Indicative : a non-binding estimate for the described budget2 committed a binding agreement for the described budget If this budget changes status, you should change the status of this budget here. You should not create a new budget for the same time period with a different status. More information ."
+ "hover_text": "elements.activities.budget.budget_status.hover_text",
+ "help_text": "elements.activities.budget.budget_status.help_text"
},
"budget_type": {
"name": "budget_type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/BudgetType.json",
"required": false,
"criteria": "recommended",
- "hover_text": "Whether this is the original budget (prepared when the original commitment was made) or has subsequently been revised.For more information ",
- "help_text": "Select the type of budget that you a providing:1 Original The original budget allocated to the activity. Select this option if you are publishing information about this budget for the first time.2 Revised The updated budget for an activity. Select this option if you are revising your original budget. For example: an activity lasts a year. The original budget was $10,000 and was later decreased by $2,000. The final total budget for the activity is $8,000.You would need to create two budgets for this time period. Firstly you would add a budget with the type ‘original’ with the start and end date for the year, with the value of $10,000. Once you know that the budget has been revised, you would then add another budget for the same dates, with the type ‘revised’ with a value of $8,000. If there are further changes to the revised budget, you should change the value in the ‘revised’ budget. Do not create additional ‘revised’ budgets for the same time period. Therefore only one original and one revised budget should be published for each time period. More information ."
+ "hover_text": "elements.activities.budget.budget_type.hover_text",
+ "help_text": "elements.activities.budget.budget_type.help_text"
}
},
"sub_elements": {
"period_start": {
"name": "period_start",
- "label": "period-start",
+ "label": "el_common.period_start",
"element_criteria": "mandatory",
"add_more": false,
- "hover_text": "The start of the budget period.For more information ",
+ "hover_text": "elements.activities.budget.period_start.hover_text",
"attributes": {
"date": {
"name": "date",
"label": "iso date",
"type": "date",
- "placeholder": "Type date",
+ "placeholder": "el_common.type_date",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date.For more information ",
- "help_text": "Provide the start date of the budget."
+ "hover_text": "elements.activities.budget.period_start.date.hover_text",
+ "help_text": "elements.activities.budget.period_start.date.help_text"
}
},
"sub_elements": {}
},
"period_end": {
"name": "period_end",
- "label": "period-end",
+ "label": "el_common.period_end",
"element_criteria": "mandatory",
"add_more": false,
- "hover_text": "The end of the period (which must not be greater than one year). For more information ",
+ "hover_text": "elements.activities.budget.period_end.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "iso date",
+ "label": "el_common.iso_date",
"type": "date",
- "placeholder": "Select date",
+ "placeholder": "el_common.select_date",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date.For more information ",
- "help_text": "Provide the end date of the budget."
+ "hover_text": "elements.activities.budget.period_end.date.hover_text",
+ "help_text": "elements.activities.budget.period_end.date.help_text"
}
},
"sub_elements": {}
},
"budget_value": {
"name": "budget_value",
- "label": "value",
+ "label": "el_common.value",
"element_criteria": "mandatory",
"add_more": false,
- "hover_text": "The budget for this period.For more information ",
- "help_text": "Provide the total finance for this budget",
+ "hover_text": "elements.activities.budget.budget_value.hover_text",
+ "help_text": "elements.activities.budget.budget_value.help_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -2648,23 +2704,23 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"choices": "Activity/Currency.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified.For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "elements.activities.budget.budget_value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "Select value-date",
+ "placeholder": "el_common.select_value",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions.This attribute is required.For more information ",
+ "hover_text": "elements.activities.budget.budget_value.value_date.hover_text",
"help_text": ""
}
},
@@ -2674,71 +2730,71 @@
},
"result": {
"name": "result",
- "label": "result",
+ "label": "el_common.result",
"add_more": false,
- "hover_text": "A container for reporting outputs, outcomes, impacts and other results that stem directly from the activity. This may be repeated for each type of result reported. For more information. ",
- "help_text": "Results describe the benefit or intended benefits of an activity; these can be broken down into types: outputs , outcomes and impacts . You can provide multiple results for your activity. Updating results regularly means that data users can track an activity’s progress, including whether the activity was a success and what challenges were faced. Both positive and negative results should be included. See guidance for more information: Results Information and Understanding results data . Please note: security implications may prevent results data from being published, or require results to be aggregated. Any security considerations should be outlined in an organisation’s exclusion policy .",
+ "hover_text": "elements.activities.result.hover_text",
+ "help_text": "elements.activities.result.help_text",
"show_info_in_title": true,
"attributes": {
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Activity/ResultType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code for the type of result being reported. For more information. ",
- "help_text": "Select the type of result that your activity is aiming to achieve or has already achieved.Output - Results of the activity that came about as a direct effect of your work and specifically, what is done, and what communities are reached. For example, X number of individuals trained.Outcome - Results of the activity that produce an effect on the overall communities or issues you serve. For example lower rate of infection after a vaccination programme.Impact - The long term effects of the outcomes, that lead to larger, overarching results, such as improved life-expectancy.Other - Another type of result, not specified above"
+ "hover_text": "elements.activities.result.type.hover_text",
+ "help_text": "elements.activities.result.type.help_text"
},
"aggregation_status": {
"name": "aggregation_status",
- "label": "aggregation-status",
+ "label": "el_common.aggregation_status",
"type": "select",
- "placeholder": "Select aggregation status",
+ "placeholder": "el_common.select_aggregation_status",
"choices": {
"0": "False",
"1": "True"
},
"required": false,
"criteria": "",
- "hover_text": "Flag indicating whether the data in the result set are suitable for aggregation.For more information. ",
- "help_text": "Select yes if the results data that you provide is suitable for aggregation (the data user should be able to add them up to get the total)."
+ "hover_text": "elements.activities.result.aggregation_status.hover_text",
+ "help_text": "elements.activities.result.aggregation_status.help_text"
}
},
"sub_elements": {
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"element_criteria": "",
"add_more": false,
"attributes": {},
- "hover_text": "A short, human-readable title.For more information. ",
+ "hover_text": "elements.activities.result.title.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
"placeholder": "",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a title for the result. For example ‘People have access to independent media covering a diverse range of outcomes’. ",
+ "hover_text": "elements.activities.result.title.narrative.hover_text",
+ "help_text": "elements.activities.result.title.narrative.help_text",
"attr": {
"row": 4
},
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text that you provided in the narrative. If no language is selected, then your default value is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_4",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -2747,35 +2803,35 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"add_more": false,
"attributes": {},
- "hover_text": "A longer, human-readable description. For more information. ",
+ "hover_text": "elements.activities.result.description.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a longer description for the result.",
+ "hover_text": "elements.activities.result.description.narrative.hover_text",
+ "help_text": "elements.activities.result.description.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.result.description.language.hover_text",
+ "help_text": "elements.activities.indicator.document_link.description.language.help_text"
}
},
"sub_elements": {}
@@ -2784,65 +2840,65 @@
},
"document_link": {
"name": "document_link",
- "label": "document-link",
+ "label": "el_common.document_link",
"add_more": true,
- "hover_text": "A link to an online, publicly accessible web page or document expanding on the result. For more information. ",
- "help_text": "You may provide more information about the result by providing a link to an online, publicly accessible web page or document.",
+ "hover_text": "elements.activities.result.document_link.hover_text",
+ "help_text": "elements.activities.result.document_link.help_text",
"attributes": {
"url": {
"name": "url",
- "label": "url",
+ "label": "el_common.url",
"type": "text",
- "placeholder": "Type url",
+ "placeholder": "el_common.type_url",
"required": true,
"criteria": "mandatory",
- "hover_text": "The target URL of the external document, e.g. http://www.example.org/doc.odt. For more information. ",
- "help_text": "Type the URL for the document that provides more information about the result. Make sure it includes “https://…"
+ "hover_text": "elements.activities.result.document_link.url.hover_text",
+ "help_text": "elements.activities.result.document_link.url.help_text"
},
"format": {
"name": "format",
- "label": "format",
+ "label": "el_common.format",
"type": "select",
- "placeholder": "Select format",
+ "placeholder": "el_common.select_format",
"choices": "Activity/FileFormat.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "hover_text": "elements.activities.result.document_link.format.hover_text",
"help_text": ""
}
},
"sub_elements": {
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"element_criteria": "",
"attributes": {},
- "hover_text": "A short, human-readable title.For more information. ",
+ "hover_text": "el_common.a_short_human_readable",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If you have provided a document link then you must provide a title for the document.",
+ "hover_text": "el_common.the_free_text_name_link_3",
+ "help_text": "el_common.if_you_provided_a_document_link_title",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_3",
+ "help_text": "elements.activities.indicator.document_link.description.language.help_text"
}
},
"sub_elements": {}
@@ -2851,34 +2907,34 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"attributes": {},
- "hover_text": "A description of the document contents, or guidance on where to access the relevant information in the document.For more information. ",
+ "hover_text": "el_common.a_description_of_the_document",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If you have provided a document link, then you can provide a description of the document.",
+ "hover_text": "el_common.the_free_text_name_link_2",
+ "help_text": "el_common.if_you_provided_a_document_link_desc",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_2",
+ "help_text": "elements.activities.indicator.document_link.description.language.help_text"
}
},
"sub_elements": {}
@@ -2887,62 +2943,62 @@
},
"category": {
"name": "category",
- "label": "category",
+ "label": "el_common.category",
"element_criteria": "",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "IATI Document Category Code. For more information. ",
- "help_text": "If you have provided a document link, then you must select a category that best describes the document.",
+ "hover_text": "elements.activities.result.document_link.category.hover_text",
+ "help_text": "elements.activities.result.document_link.category.help_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/DocumentCategory.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the category of the document. For more information ",
- "help_text": "Select a document category from this list ."
+ "hover_text": "elements.activities.result.document_link.category.code.hover_text",
+ "help_text": "elements.activities.result.document_link.category.code.help_text"
}
},
"sub_elements": {}
},
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"add_more": true,
"wrapper_collection": false,
"attributes": {
"language": {
"name": "language",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "ISO 639-1 language code. For more information ",
- "help_text": "Select the language that the document is written in."
+ "hover_text": "elements.activities.result.document_link.language.code.hover_text",
+ "help_text": "el_common.default_value_assumed"
}
},
"sub_elements": {}
},
"document_date": {
"name": "document_date",
- "label": "document-date",
+ "label": "el_common.document_date",
"add_more": false,
- "hover_text": "The date of publication of the document that is being linked to. (@iso-date). For more information ",
+ "hover_text": "el_common.the_date_of_document_link_1",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
- "help_text": "Provide the date for when the document was published."
+ "hover_text": "el_common.the_date_of_document_link_2",
+ "help_text": "el_common.provide_the_date_for_when"
}
},
"sub_elements": {}
@@ -2951,41 +3007,41 @@
},
"reference": {
"name": "reference",
- "label": "reference",
+ "label": "el_common.reference",
"add_more": true,
"make_collection": false,
- "hover_text": "A reference element to allow for the coded identification of results framework. For more information ",
- "help_text": "If this result is contained in a results framework, then you may provide information about it. You can choose to provide a reference to a results framework in two ways:1. You can provide a reference to a results framework for the result here OR2. You can provide a reference to a results framework for each individual indicator that measures this result. For every result that you publish, you will be required to provide an indicator (which measures the result).Option 2 is recommended . To implement this option, leave the next three fields blank: code, vocabulary, vocabulary uri. Do note: You cannot provide a reference to a results framework for both the result and indicator. See guidance for more information: Results Information ",
+ "hover_text": "elements.activities.result.reference.hover_text",
+ "help_text": "elements.activities.result.reference.help_text",
"attributes": {
"vocabulary": {
"name": "vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/ResultVocabulary.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code for the results framework vocabulary. The code must be a valid value in the ResultVocabulary codelist. For more information ",
+ "hover_text": "elements.activities.result.reference.vocabulary.hover_text",
"help_text": ""
},
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Type code",
+ "placeholder": "el_common.type_",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the codelist identified in vocabulary that identifies a results framework. For more information ",
+ "hover_text": "el_common.a_code_from_the_codelist_identifies",
"help_text": ""
},
"vocabulary_uri": {
"name": "vocabulary_uri",
- "label": "vocabulary uri",
+ "label": "el_common.vocabulary_uri",
"type": "text",
- "placeholder": "Type vocabulary-uri",
+ "placeholder": "el_common.type_vocabulary_uri",
"required": false,
"criteria": "",
- "hover_text": "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users.For more information ",
+ "hover_text": "elements.activities.result.reference.vocabulary_uri.hover_text",
"help_text": ""
}
},
@@ -2995,85 +3051,85 @@
},
"indicator": {
"name": "indicator",
- "label": "indicator",
+ "label": "el_common.indicator",
"add_more": false,
- "hover_text": "The indicator(s) that are measured to meet the results. There can be multiple indicators for each result.For more information ",
- "help_text": " Example usage : An activity is working towards the outcome: ‘people to have access to independent media covering a diverse range of outcomes’. One of the ways this is being measured is through ‘the percentage of journalists who feel free to express their opinion’ (which is an indicator). This is measured through a bi-annual survey where they are asked to score how free they feel on a scale of 1 - 4. See Results Information for more details on this example and Understanding results data for further examples.",
+ "hover_text": "elements.activities.indicator.hover_text",
+ "help_text": "elements.activities.indicator.help_text",
"show_info_in_title": true,
"attributes": {
"measure": {
"name": "measure",
- "label": "measure",
+ "label": "el_common.measure",
"type": "select",
- "placeholder": "Select measure",
+ "placeholder": "el_common.select_measure",
"choices": "Activity/IndicatorMeasure.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the unit of measure in which the value is reported. For more information ",
- "help_text": "Select the unit of measurement for the indicator:Unit - The indicator is measured in units e.g. number of workshops delivered.Percentage - The indicator is measured in percentages e.g. percentage of the population who have received a vaccine.Nominal - The indicator is measured as a quantitative nominal scale. For example gender, race etc.Ordinal - The indicator is measured as a quantitative ordinal scale. For example: “very satisfied,” “satisfied,” “dissatisfied,” and “very dissatisfied.” In an ordinal scale, the order of answer options is what’s significant—you can’t quantify the exact difference between each answer option. The difference between responses like “very satisfied” and “satisfied,” for example, is relative, not exact.Qualitative - The indicator is qualitative and this is often a description, such as detailing more favourable attitudes towards gender equality amongst trained staff."
+ "hover_text": "elements.activities.indicator.measure.hover_text",
+ "help_text": "elements.activities.indicator.measure.help_text"
},
"ascending": {
"name": "ascending",
- "label": "ascending",
+ "label": "el_common.ascending",
"type": "select",
- "placeholder": "Select ascending",
+ "placeholder": "el_common.select_ascending",
"choices": {
"0": "False",
"1": "True"
},
"required": false,
"criteria": "",
- "hover_text": "A flag describing the behaviour of the indicator. It is “true” if the indicator improves from small to large (e.g. clinics built); false if it improves from large to small (e.g. cases of a disease). For more information ",
- "help_text": "Select an option here if your indicator is a numerical (quantitative) measure. If a high number shows improvement, select 1 (true). If a low number shows improvement, select 0 (false)."
+ "hover_text": "elements.activities.indicator.ascending.hover_text",
+ "help_text": "elements.activities.indicator.ascending.help_text"
},
"aggregation_status": {
"name": "aggregation_status",
- "label": "aggregation status",
+ "label": "el_common.aggregation_status",
"type": "select",
- "placeholder": "Select aggregation status",
+ "placeholder": "el_common.select_aggregation_status",
"choices": {
"0": "False",
"1": "True"
},
"required": false,
"criteria": "",
- "hover_text": "Flag indicating whether the data in the result set are suitable for aggregation. For more information ",
- "help_text": "Select yes if the results data that you provide is suitable for aggregation (the data user should add them up to get the total)."
+ "hover_text": "elements.activities.indicator.aggregation_status.hover_text",
+ "help_text": "elements.activities.indicator.aggregation_status.help_text"
}
},
"sub_elements": {
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"element_criteria": "",
"add_more": false,
"attributes": {},
- "hover_text": "A short, human-readable title.For more information ",
+ "hover_text": "elements.activities.indicator.title.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a title or brief description of the indicator. Using the same example above, a narrative could be: “The percentage of journalists who feel free to express their opinion (scoring 3 or 4 with a scale of 1 - 4)\". See Results Information for more details on this example.",
+ "hover_text": "elements.activities.indicator.title.narrative.hover_text",
+ "help_text": "elements.activities.indicator.title.narrative.help_text",
"attr": {
"row": 4
},
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.indicator.title.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3082,35 +3138,35 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"add_more": false,
"attributes": {},
- "hover_text": "A longer, human-readable description. For more information ",
+ "hover_text": "elements.activities.indicator.description.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "You can provide a longer description or additional information to help explain what’s being measured and how. Using the example above this additional information could be: “1 = Not at all free2 = No, not entirely free3 = Yes, up to some level4 = Yes, entirely freeThis is measured through a bi-annual survey amongst journalists.” See Results Information for more details on this example.",
+ "hover_text": "elements.activities.indicator.description.narrative.hover_text",
+ "help_text": "elements.activities.indicator.description.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.indicator.description.language.hover_text",
+ "help_text": "elements.activities.indicator.document_link.description.language.help_text"
}
},
"sub_elements": {}
@@ -3119,65 +3175,65 @@
},
"document_link": {
"name": "document_link",
- "label": "document link",
+ "label": "el_common.document_link",
"add_more": true,
- "hover_text": "A link to an online, publicly accessible web page or document expanding on the result. For more information ",
- "help_text": "You may provide more information about the result indicator by providing a link to an online, publicly accessible web page or document.",
+ "hover_text": "elements.activities.indicator.document_link.hover_text",
+ "help_text": "elements.activities.indicator.document_link.help_text",
"attributes": {
"url": {
"name": "url",
- "label": "url",
+ "label": "el_common.url",
"type": "text",
- "placeholder": "Type url",
+ "placeholder": "el_common.type_url",
"required": true,
"criteria": "mandatory",
- "hover_text": "The target URL of the external document, e.g. http://www.example.org/doc.odt. For more information. ",
- "help_text": "Provide the link to a specific results indicator being reported. Make sure it includes “https://…"
+ "hover_text": "elements.activities.indicator.document_link.url.hover_text",
+ "help_text": "elements.activities.indicator.document_link.url.help_text"
},
"format": {
"name": "format",
- "label": "format",
+ "label": "el_common.format",
"type": "select",
- "placeholder": "Select format",
+ "placeholder": "el_common.select_format",
"choices": "Activity/FileFormat.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "hover_text": "elements.activities.indicator.document_link.format.hover_text",
"help_text": ""
}
},
"sub_elements": {
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"element_criteria": "",
- "hover_text": "A short, human-readable title. For more information ",
+ "hover_text": "elements.activities.indicator.title.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If you have provided a document link then you must provide a title for the document.",
+ "hover_text": "el_common.the_free_text_name_link_3",
+ "help_text": "el_common.if_you_provided_a_document_link_title",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_3",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3186,34 +3242,34 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"attributes": {},
- "hover_text": "A description of the document contents, or guidance on where to access the relevant information in the document.For more information ",
+ "hover_text": "elements.activities.indicator.description.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
- "help_text": "If you have provided a document link, then you can provide a description of the document.",
+ "hover_text": "elements.activities.indicator.description.narrative.hover_text",
+ "help_text": "el_common.if_you_provided_a_document_link_desc",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.indicator.description.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3222,62 +3278,62 @@
},
"category": {
"name": "category",
- "label": "category",
+ "label": "el_common.category",
"element_criteria": "",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "IATI Document Category Code. For more information ",
- "help_text": "If you have provided a document link, then select a category that best describes the document.",
+ "hover_text": "elements.activities.indicator.document_link.category.hover_text",
+ "help_text": "elements.activities.indicator.document_link.category.help_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/DocumentCategory.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the category of the document. For more information ",
- "help_text": "Select a document category."
+ "hover_text": "elements.activities.indicator.document_link.category.code.hover_text",
+ "help_text": "el_common.select_a_document_category"
}
},
"sub_elements": {}
},
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"add_more": true,
"wrapper_collection": false,
"attributes": {
"language": {
"name": "language",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "ISO 639-1 language code. For more information ",
- "help_text": "Select the language that the document is written in."
+ "hover_text": "elements.activities.indicator.document_link.language.code.hover_text",
+ "help_text": "el_common.default_value_assumed"
}
},
"sub_elements": {}
},
"document_date": {
"name": "document_date",
- "label": "document date",
+ "label": "el_common.document_date",
"add_more": false,
- "hover_text": "The date of publication of the document that is being linked to. (@iso-date). For more information ",
+ "hover_text": "elements.activities.indicator.document_link.document_date.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date of publication of the document that is being linked to.For more information ",
- "help_text": "Provide the date of publication for the document."
+ "hover_text": "elements.activities.indicator.document_link.document_date.date.hover_text",
+ "help_text": "elements.activities.indicator.document_link.document_date.date.help_text"
}
},
"sub_elements": {}
@@ -3286,115 +3342,115 @@
},
"reference": {
"name": "reference",
- "label": "reference",
+ "label": "el_common.reference",
"add_more": true,
"make_collection": false,
- "hover_text": "A reference element to allow for the coded identification of results framework. For more information ",
- "help_text": "If the indicator that you report is included in an existing results framework, please provide information on it here.",
+ "hover_text": "elements.activities.indicator.reference.hover_text",
+ "help_text": "elements.activities.indicator.reference.help_text",
"attributes": {
"vocabulary": {
"name": "vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/IndicatorVocabulary.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code for the results framework vocabulary. The code must be a valid value in the ResultVocabulary codelist. For more information ",
- "help_text": "Select the results framework that your indicator is included in. If the results framework is not listed, select ‘99 Reporting Organisation’."
+ "hover_text": "elements.activities.indicator.reference.vocabulary.help_text",
+ "help_text": "elements.activities.indicator.reference.vocabulary.help_text"
},
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the codelist identified in vocabulary that identifies a results framework. For more information ",
- "help_text": "If you selected a results framework, then provide the code for the indicator as specified in this results framework."
+ "hover_text": "elements.activities.indicator.reference.vocabulary.hover_text",
+ "help_text": "elements.activities.indicator.reference.vocabulary.help_text"
},
"indicator_uri": {
"name": "indicator_uri",
"label": "indicator uri",
"type": "text",
- "placeholder": "Type indicator-uri",
+ "placeholder": "el_common.type_indicator_uri",
"required": false,
"criteria": "",
- "hover_text": "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users. For more information ",
- "help_text": "If you selected a results framework, provide a link to it. If you selected 99 (Reporting Organisation), it is strongly recommended that a link to the codelist is included here. This helps ensure that users can understand the meaning of the code."
+ "hover_text": "elements.activities.indicator.reference.indicator_uri.hover_text",
+ "help_text": "elements.activities.indicator.reference.indicator_uri.help_text"
}
},
"sub_elements": {}
},
"baseline": {
"name": "baseline",
- "label": "baseline",
+ "label": "el_common.baseline",
"add_more": true,
- "hover_text": "The baseline value for the indicator. For more information ",
- "help_text": "For each indicator please provide a baseline value, a target and the actual result achieved. The baseline is the starting point. The target is a result an organisation wants an activity to achieve in a certain period of time. The actual result is what was achieved at the end of that period. For example: The starting value (baseline) was 15% of journalists felt free to express their opinions. At the end of the chosen time period, the target was set at 50%. The activity achieved its target, as by the end of the period (actual) 53% of journalists felt free to express their opinions. See Results Information for more details on this example and Understanding results data for further examples.",
+ "hover_text": "elements.activities.indicator.baseline.hover_text",
+ "help_text": "elements.activities.indicator.baseline.help_text",
"attributes": {
"year": {
"name": "year",
- "label": "year",
+ "label": "el_common.year",
"type": "text",
- "placeholder": "Type year",
+ "placeholder": "el_common.type_year",
"required": true,
"criteria": "mandatory",
- "hover_text": "The year the baseline value was taken (yyyy). For more information ",
- "help_text": "Provide the year when the indicator’s baseline was measured."
+ "hover_text": "elements.activities.indicator.baseline.year.hover_text",
+ "help_text": "elements.activities.indicator.baseline.year.help_text"
},
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": false,
"criteria": "",
- "hover_text": "The date of baseline value was taken. For more information ",
- "help_text": "Provide the date for when the indicator’s baseline was measured."
+ "hover_text": "elements.activities.indicator.baseline.date.hover_text",
+ "help_text": "elements.activities.indicator.baseline.date.help_text"
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": false,
"criteria": "",
- "hover_text": "The baseline value. For more information ",
- "help_text": "Provide the baseline value. For example if the value is 15 percent, just type 15 (as you have provided the unit of measure above). Please leave this blank if this indicator uses a qualitative measure (and add your baseline in the comment field below)."
+ "hover_text": "elements.activities.indicator.baseline.value.hover_text",
+ "help_text": "elements.activities.indicator.baseline.value.help_text"
}
},
"sub_elements": {
"comment": {
"name": "comment",
- "label": "comment",
+ "label": "el_common.comment",
"attributes": {},
- "hover_text": "A human-readable comment associated with a piece of aid information. For more information ",
+ "hover_text": "elements.activities.indicator.baseline.comment.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If the indicator is a qualitative measure, provide a descriptive baseline here. You may also add other descriptive information about your baseline here. For example: “Baseline measured in a survey amongst 1083 journalists in country X”.",
+ "hover_text": "elements.activities.indicator.baseline.comment.narrative.hover_text",
+ "help_text": "elements.activities.indicator.baseline.comment.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.indicator.baseline.comment.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3403,30 +3459,30 @@
},
"dimension": {
"name": "dimension",
- "label": "dimension",
+ "label": "el_common.dimension",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "A category used for disaggregating the result by gender, age, etc. For more information ",
- "help_text": "Please note: A baseline can have multiple dimensions.",
+ "hover_text": "elements.activities.indicator.baseline.dimension.hover_text",
+ "help_text": "elements.activities.indicator.baseline.dimension.help_text",
"attributes": {
"name": {
"name": "name",
- "label": "name",
+ "label": "el_common.name",
"type": "text",
- "placeholder": "Type name",
+ "placeholder": "el_common.type_name",
"required": false,
"criteria": "",
- "hover_text": "Freetext description of a category being disaggregated. For more information ",
- "help_text": "For example an activity could declare the dimension’s name as ‘sex’, with a value of ‘female’."
+ "hover_text": "elements.activities.indicator.baseline.dimension.name.hover_text",
+ "help_text": "elements.activities.indicator.baseline.dimension.name.help_text"
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": false,
"criteria": "",
- "hover_text": "Description of the value being disaggregated. For more information ",
+ "hover_text": "elements.activities.indicator.baseline.dimension.value.hover_text",
"help_text": ""
}
},
@@ -3434,67 +3490,67 @@
},
"document_link": {
"name": "document_link",
- "label": "document link",
+ "label": "el_common.document_link",
"add_more": true,
"element_criteria": "",
- "hover_text": "A link to an online, publicly accessible web page or document expanding on the result. For more information ",
- "help_text": "You may provide more information about the indicator baseline by providing a link to an online, publicly accessible web page or document.",
+ "hover_text": "elements.activities.indicator.baseline.document_link.hover_text",
+ "help_text": "elements.activities.indicator.baseline.document_link.help_text",
"attributes": {
"url": {
"name": "url",
- "label": "url",
+ "label": "el_common.url",
"type": "text",
- "placeholder": "Type url",
+ "placeholder": "el_common.type_url",
"required": true,
"criteria": "mandatory",
- "hover_text": "The target URL of the external document, e.g. “http://www.example.org/doc.odt”. For more information ",
- "help_text": "Type the URL for the document that provides more information about the indicator baseline. Make sure it includes “https://…"
+ "hover_text": "elements.activities.indicator.baseline.document_link.url.hover_text",
+ "help_text": "elements.activities.indicator.baseline.document_link.url.help_text"
},
"format": {
"name": "format",
- "label": "format",
+ "label": "el_common.format",
"type": "select",
- "placeholder": "Type format",
+ "placeholder": "el_common.type_format",
"choices": "Activity/FileFormat.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "hover_text": "elements.activities.indicator.baseline.document_link.format.hover_text",
"help_text": ""
}
},
"sub_elements": {
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"element_criteria": "",
"add_more": false,
"attributes": {},
- "hover_text": "A short, human-readable title. For more information ",
+ "hover_text": "elements.activities.indicator.baseline.document_link.title.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "hover_text": "elements.activities.indicator.baseline.document_link.title.narrative.hover_text",
"help_text": "",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.indicator.baseline.document_link.title.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3503,35 +3559,35 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"add_more": false,
"attributes": {},
- "hover_text": "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ "hover_text": "elements.activities.indicator.baseline.document_link.description.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If you have provided a document link, then you can provide a description of the document.",
+ "hover_text": "elements.activities.indicator.baseline.document_link.description.narrative.hover_text",
+ "help_text": "el_common.if_you_provided_a_document_link_desc",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.indicator.baseline.document_link.description.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3540,42 +3596,42 @@
},
"category": {
"name": "category",
- "label": "category",
+ "label": "el_common.category",
"element_criteria": "",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "IATI Document Category Code. For more information ",
- "help_text": "If you have provided a document link, select a category that best describes the document.",
+ "hover_text": "elements.activities.indicator.baseline.document_link.category.hover_text",
+ "help_text": "el_common.if_you_provided_a_document_link_best",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/DocumentCategory.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the category of the document. For more information ",
- "help_text": "Select a document category."
+ "hover_text": "elements.activities.indicator.baseline.document_link.category.code.hover_text",
+ "help_text": "el_common.select_a_document_category"
}
},
"sub_elements": {}
},
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"add_more": true,
"wrapper_collection": false,
"attributes": {
"language": {
"name": "language",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "ISO 639-1 language code. For more information ",
+ "hover_text": "elements.activities.indicator.baseline.document_link.language.code.hover_text",
"help_text": ""
}
},
@@ -3583,19 +3639,19 @@
},
"document_date": {
"name": "document_date",
- "label": "document date",
+ "label": "el_common.document_date",
"add_more": false,
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
+ "hover_text": "el_common.the_date_of_document_link_3",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
- "help_text": "Provide the date for when the document was published."
+ "hover_text": "el_common.the_date_of_document_link_3",
+ "help_text": "el_common.provide_the_date_for_when"
}
},
"sub_elements": {}
@@ -3604,18 +3660,18 @@
},
"location": {
"name": "location",
- "label": "location",
+ "label": "el_common.location",
"add_more": "true",
- "hover_text": "A location already defined and described in the iati-activity/location element.For more information ",
+ "hover_text": "elements.activities.indicator.baseline.location.hover_text",
"attributes": {
"reference": {
"name": "reference",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "A cross-reference to the internal reference assigned to a defined location: iati-activity/location/@ref. For more information ",
+ "hover_text": "elements.activities.indicator.baseline.location.reference.hover_text",
"help_text": ""
}
},
@@ -3627,10 +3683,10 @@
},
"period": {
"name": "period",
- "label": "period",
+ "label": "el_common.period",
"add_more": false,
- "hover_text": "The period covered for the results reported. Multiple periods can be reported for a single indicator. For more information ",
- "help_text": "Each indicator can have a given time period with a start and an end date. This is the time period in which the indicator is being measured, e.g. agricultural season or school term.",
+ "hover_text": "elements.activities.period.hover_text",
+ "help_text": "elements.activities.period.help_text",
"show_info_in_title": true,
"attributes": {},
"sub_elements": {
@@ -3639,16 +3695,16 @@
"label": "period start",
"element_criteria": "",
"add_more": false,
- "hover_text": "The start of the reporting period. For more information ",
+ "hover_text": "el_common.the_start_of_reporting_period",
"attributes": {
"date": {
"name": "date",
- "label": "iso date",
+ "label": "el_common.iso_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The start of the reporting period. For more information ",
+ "hover_text": "el_common.the_start_of_reporting_period",
"help_text": ""
}
},
@@ -3656,19 +3712,19 @@
},
"period_end": {
"name": "period_end",
- "label": "period end",
+ "label": "el_common.period_end",
"element_criteria": "",
"add_more": false,
- "hover_text": "The end of the reporting period. For more information ",
+ "hover_text": "el_common.the_end_of_reporting_period",
"attributes": {
"date": {
"name": "date",
"label": "iso date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The end of the reporting period. For more information ",
+ "hover_text": "el_common.the_end_of_reporting_period",
"help_text": ""
}
},
@@ -3676,39 +3732,39 @@
},
"target": {
"name": "target",
- "label": "target",
+ "label": "el_common.target",
"add_more": true,
- "hover_text": "The target milestone for this period. For more information ",
- "help_text": "The target is a result an organisation wants an activity to achieve in a certain period of time.",
+ "hover_text": "elements.activities.period.target.hover_text",
+ "help_text": "elements.activities.period.target.help_text",
"attributes": {
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": false,
"criteria": "",
- "hover_text": "The target value. For more information ",
- "help_text": "Add a target value if your indicator is a numerical (quantitative) measure e.g.measured by units or percentages. Please leave this blank if this indicator uses a qualitative measure (and add your target in the comment field below)."
+ "hover_text": "elements.activities.period.target.value.hover_text",
+ "help_text": "elements.activities.period.target.value.help_text"
}
},
"sub_elements": {
"comment": {
"name": "comment",
- "label": "comment",
- "hover_text": "A human-readable comment associated with a piece of aid information. For more information ",
- "help_text": "If the indicator is a qualitative measure, provide a descriptive target here. You may also add other descriptive information about the target here.",
+ "label": "el_common.comment",
+ "hover_text": "elements.activities.period.target.comment.hover_text",
+ "help_text": "elements.activities.period.target.comment.help_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "hover_text": "elements.activities.period.target.comment.narrative.hover_text",
"help_text": "",
"attr": {
"row": 4
@@ -3716,14 +3772,14 @@
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.period.target.comment.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3732,28 +3788,28 @@
},
"dimension": {
"name": "dimension",
- "label": "dimension",
+ "label": "el_common.dimension",
"add_more": true,
"wrapper_collection": false,
"attributes": {
"name": {
"name": "name",
- "label": "name",
+ "label": "el_common.name",
"type": "text",
"placeholder": "Type name",
"required": false,
"criteria": "",
- "hover_text": "Freetext description of a category being disaggregated. For more information ",
- "help_text": "For example an activity could declare the dimension’s name as ‘sex’, with a value of ‘female’."
+ "hover_text": "elements.activities.period.dimension.name",
+ "help_text": "el_common.for_example_an_activity"
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": false,
"criteria": "",
- "hover_text": "Description of the value being disaggregated. For more information ",
+ "hover_text": "elements.activities.period.target.dimension.value.hover_text",
"help_text": ""
}
},
@@ -3761,65 +3817,65 @@
},
"document_link": {
"name": "document_link",
- "label": "document link",
+ "label": "el_common.document_link",
"add_more": true,
- "hover_text": "A link to an online, publicly accessible web page or document expanding on the result. For more information ",
- "help_text": "You may provide more information about the indicator target by providing a link to an online, publicly accessible web page or document.",
+ "hover_text": "elements.activities.period.target.document_link.hover_text",
+ "help_text": "elements.activities.period.target.document_link.help_text",
"attributes": {
"url": {
"name": "url",
- "label": "url",
+ "label": "el_common.url",
"type": "text",
- "placeholder": "Type url",
+ "placeholder": "el_common.type_url",
"required": true,
"criteria": "mandatory",
- "hover_text": "The target URL of the external document, e.g. “http://www.example.org/doc.odt”. For more information ",
- "help_text": "Type the URL for the document that provides more information about the indicator target. Make sure it includes “https://…"
+ "hover_text": "elements.activities.period.target.document_link.url.hover_text",
+ "help_text": "elements.activities.period.target.document_link.url.help_text"
},
"format": {
"name": "format",
- "label": "format",
+ "label": "el_common.format",
"type": "select",
- "placeholder": "Select format",
+ "placeholder": "el_common.select_format",
"choices": "Activity/FileFormat.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "hover_text": "elements.activities.period.target.document_link.format.hover_text",
"help_text": ""
}
},
"sub_elements": {
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"element_criteria": "",
"attributes": {},
- "hover_text": "A short, human-readable title. For more information ",
+ "hover_text": "elements.activities.period.target.document_link.title.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If you have provided a document link then you must provide a title for the document.",
+ "hover_text": "elements.activities.period.target.document_link.title.narrative.hover_text",
+ "help_text": "el_common.if_you_provided_a_document_link_title",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.period.target.document_link.title.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3828,34 +3884,34 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"attributes": {},
- "hover_text": "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ "hover_text": "elements.activities.period.target.document_link.description.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If you have provided a document link, then you can provide a description of the document.",
+ "hover_text": "elements.activities.period.target.document_link.description.narrative.hover_text",
+ "help_text": "el_common.if_you_provided_a_document_link_desc",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.period.target.document_link.description.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -3864,62 +3920,62 @@
},
"category": {
"name": "category",
- "label": "category",
+ "label": "el_common.category",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "IATI Document Category Code. For more information ",
- "help_text": "If you have provided a document link, select a category that best describes the document.",
+ "hover_text": "elements.activities.period.target.document_link.category.hover_text",
+ "help_text": "el_common.if_you_provided_a_document_link_best",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/DocumentCategory.json",
"required": false,
"criteria": "",
- "hover_text": "An IATI code defining the category of the document. For more information ",
- "help_text": "Select a document category."
+ "hover_text": "elements.activities.period.target.document_link.category.code.hover_text",
+ "help_text": "el_common.select_a_document_category"
}
},
"sub_elements": {}
},
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "The ISO 639-1 language code in which target document is written, e.g. “en”. Can be repeated to describe multi-lingual documents. For more information ",
+ "hover_text": "elements.activities.period.target.document_link.language.hover_text",
"attributes": {
"language": {
"name": "language",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "ISO 639-1 language code.For more information ",
- "help_text": "Select the language that the document is written in."
+ "hover_text": "elements.activities.period.target.document_link.language.language.hover_text",
+ "help_text": "el_common.default_value_assumed"
}
},
"sub_elements": {}
},
"document_date": {
"name": "document_date",
- "label": "document date",
+ "label": "el_common.document_date",
"add_more": false,
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
+ "hover_text": "el_common.the_date_of_document_link_4",
"attributes": {
"date": {
"name": "date",
"label": "iso date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
- "help_text": "Provide the date for when the document was published."
+ "hover_text": "el_common.the_date_of_document_link_4",
+ "help_text": "el_common.provide_the_date_for_when"
}
},
"sub_elements": {}
@@ -3928,18 +3984,18 @@
},
"location": {
"name": "location",
- "label": "location",
+ "label": "el_common.location",
"add_more": "true",
"wrapper_collection": false,
"attributes": {
"reference": {
"name": "reference",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "A cross-reference to the internal reference assigned to a defined location: iati-activity/location/@ref. For more information ",
+ "hover_text": "elements.activities.period.target.document_link.location.reference.hover_text",
"help_text": ""
}
},
@@ -3949,39 +4005,39 @@
},
"actual": {
"name": "actual",
- "label": "actual",
+ "label": "el_common.actual",
"add_more": true,
- "hover_text": "A record of the achieved result for this period. For more information ",
- "help_text": "The actual is what was achieved at the end of that period.",
+ "hover_text": "elements.activities.period.actual.hover_text",
+ "help_text": "elements.activities.period.actual.help_text",
"attributes": {
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": false,
"criteria": "",
- "hover_text": "The actual measure. For more information ",
- "help_text": "Add the actual value achieved, if your indicator is a numerical (quantitative) measure e.g.measured by units or percentages. Please leave this blank if this indicator uses a qualitative measure (and add your actual in the comment field below)."
+ "hover_text": "elements.activities.period.actual.value.hover_text",
+ "help_text": "elements.activities.period.actual.value.help_text"
}
},
"sub_elements": {
"comment": {
"name": "comment",
- "label": "comment",
- "hover_text": "A human-readable comment associated with a piece of aid information. For more information ",
- "help_text": "If the indicator is a qualitative measure, provide a descriptive of the actual result reported here. You may also add other descriptive information about the actual result here.",
+ "label": "el_common.comment",
+ "hover_text": "elements.activities.period.actual.comment.hover_text",
+ "help_text": "elements.activities.period.actual.comment.help_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "hover_text": "elements.activities.period.actual.comment.narrative.hover_text",
"help_text": "",
"attr": {
"row": 4
@@ -3989,14 +4045,14 @@
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.period.actual.comment.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -4005,29 +4061,29 @@
},
"dimension": {
"name": "dimension",
- "label": "dimension",
+ "label": "el_common.dimension",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "A category used for disaggregating the result by gender, age, etc. For more information ",
+ "hover_text": "elements.activities.period.actual.dimension.hover_text",
"attributes": {
"name": {
"name": "name",
- "label": "name",
+ "label": "el_common.name",
"type": "text",
- "placeholder": "Type name",
+ "placeholder": "el_common.type_name",
"required": false,
"criteria": "",
- "hover_text": "Freetext description of a category being disaggregated. For more information ",
- "help_text": "For example an activity could declare the dimension’s name as ‘sex’, with a value of ‘female’."
+ "hover_text": "elements.activities.period.actual.dimension.name.hover_text",
+ "help_text": "el_common.for_example_an_activity"
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value",
+ "placeholder": "el_common.type_value",
"required": false,
"criteria": "",
- "hover_text": "Description of the value being disaggregated. For more information ",
+ "hover_text": "elements.activities.period.actual.dimension.value.hover_text",
"help_text": ""
}
},
@@ -4035,65 +4091,65 @@
},
"document_link": {
"name": "document_link",
- "label": "document link",
+ "label": "el_common.document_link",
"add_more": true,
- "hover_text": "A link to an online, publicly accessible web page or document expanding on the result. For more information ",
- "help_text": "You may provide more information about the actual value or result by providing a link to an online, publicly accessible web page or document.",
+ "hover_text": "elements.activities.period.actual.document_link.hover_text",
+ "help_text": "elements.activities.period.actual.document_link.help_text",
"attributes": {
"url": {
"name": "url",
- "label": "url",
+ "label": "el_common.url",
"type": "text",
- "placeholder": "Type url",
+ "placeholder": "el_common.type_url",
"required": true,
"criteria": "mandatory",
- "hover_text": "The target URL of the external document, e.g. “http://www.example.org/doc.odt”. For more information ",
- "help_text": "Type the URL for the document that provides more information about the actual value or result. Make sure it includes “https://…"
+ "hover_text": "elements.activities.period.actual.document_link.url.hover_text",
+ "help_text": "elements.activities.period.actual.document_link.url.help_text"
},
"format": {
"name": "format",
- "label": "format",
+ "label": "el_common.format",
"type": "select",
- "placeholder": "Select format",
+ "placeholder": "el_common.select_format",
"choices": "Activity/FileFormat.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "hover_text": "elements.activities.period.actual.document_link.format.hover_text",
"help_text": ""
}
},
"sub_elements": {
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"element_criteria": "",
"attributes": {},
- "hover_text": "A short, human-readable title. For more information ",
+ "hover_text": "elements.activities.period.actual.document_link.title.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If you have provided a document link then provide a title for the document",
+ "hover_text": "elements.activities.period.actual.document_link.title.narrative.hover_text",
+ "help_text": "elements.activities.period.actual.document_link.title.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.period.actual.document_link.title.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -4102,34 +4158,34 @@
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"attributes": {},
- "hover_text": "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ "hover_text": "elements.activities.period.actual.document_link.description.narrative.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "If you have provided a document link, then you can provide a description of the document.",
+ "hover_text": "elements.activities.period.actual.document_link.description.narrative.hover_text",
+ "help_text": "el_common.if_you_provided_a_document_link_desc",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.reporting_org.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -4138,63 +4194,63 @@
},
"category": {
"name": "category",
- "label": "category",
+ "label": "el_common.category",
"add_more": true,
"element_criteria": "",
"wrapper_collection": false,
- "hover_text": "IATI Document Category Code. For more information ",
- "help_text": "If you have provided a document link, select a category that best describes the document.",
+ "hover_text": "elements.activities.period.actual.category.hover_text",
+ "help_text": "el_common.if_you_provided_a_document_link_best",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/DocumentCategory.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the category of the document. For more information ",
- "help_text": "Select a document category."
+ "hover_text": "elements.activities.period.actual.category.code.hover_text",
+ "help_text": "el_common.select_a_document_category"
}
},
"sub_elements": {}
},
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "The ISO 639-1 language code in which target document is written, e.g. “en”. Can be repeated to describe multi-lingual documents. For more information ",
+ "hover_text": "elements.activities.period.actual.language.hover_text.",
"attributes": {
"language": {
"name": "language",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "ISO 639-1 language code. For more information ",
- "help_text": "Select the language that the document is written in."
+ "hover_text": "elements.activities.period.actual.language.language.hover_text.",
+ "help_text": "el_common.default_value_assumed"
}
},
"sub_elements": {}
},
"document_date": {
"name": "document_date",
- "label": "document-date",
+ "label": "el_common.document_date",
"add_more": false,
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
+ "hover_text": "elements.activities.period.actual.document_date.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
- "help_text": "Provide the date for when the document was published."
+ "hover_text": "elements.activities.period.actual.document_date.date.hover_text",
+ "help_text": "el_common.provide_the_date_for_when"
}
},
"sub_elements": {}
@@ -4203,18 +4259,18 @@
},
"location": {
"name": "location",
- "label": "location",
+ "label": "el_common.location",
"add_more": "true",
"wrapper_collection": false,
"attributes": {
"reference": {
"name": "reference",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "A cross-reference to the internal reference assigned to a defined location: iati-activity/location/@ref. For more information ",
+ "hover_text": "elements.activities.period.location.reference.hover_text",
"help_text": ""
}
},
@@ -4226,35 +4282,35 @@
},
"transactions": {
"name": "transaction",
- "label": "transaction",
+ "label": "el_common.transaction",
"add_more": false,
- "hover_text": "Transactions recording committed or actual funds flowing in or out of an aid activity.For more information ",
- "help_text": "Please provide a record of how your activity is being financed and how the finance is being used. Each incoming and outgoing flow should be published as a transaction. If an organisation makes many small transactions, these can be grouped together. For example, all travel expenses for one month could be published as one expenditure transaction. When deciding whether (or how) to aggregate transactions, it is recommended that publishers consider the needs of data users, as too much aggregation can inhibit the usability of the data Please note, you should not group together flows of funds to or from multiple external organisations (e.g. a disbursement to CARE should not be combined with a disbursement to IRC).Guidance on publishing financial transactions ",
+ "hover_text": "elements.activities.transactions.hover_text",
+ "help_text": "elements.activities.transactions.help_text",
"show_info_in_title": true,
"attributes": {
"reference": {
"name": "reference",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "An internal reference linking this transaction back to the publisher’s financial management system. For more information ",
- "help_text": "You can provide a reference that you use to identify this transaction in your organisation’s internal financial management system"
+ "hover_text": "elements.activities.transactions.reference.hover_text",
+ "help_text": "elements.activities.transactions.reference.help_text"
},
"humanitarian": {
"name": "humanitarian",
- "label": "humanitarian",
+ "label": "el_common.humanitarian",
"type": "select",
- "placeholder": "Select humanitarian",
+ "placeholder": "el_common.select_humanitarian",
"choices": {
"0": "False",
"1": "True"
},
"required": false,
"criteria": "",
- "hover_text": "A process flag to indicate that this transaction relates entirely or partially to humanitarian aid. For more information ",
- "help_text": "You can flag if this transaction relates to humanitarian aid by selecting ‘yes’.
If this entire activity relates to humanitarian aid you should select yes using IATI Activity humanitarian flag, rather than for each transaction.
See guidance on all the ways to publish humanitarian data
."
+ "hover_text": "elements.activities.transactions.humanitarian.hover_text",
+ "help_text": "elements.activities.transactions.humanitarian.help_text"
}
},
"dependent_attributes": {
@@ -4283,58 +4339,58 @@
"sub_elements": {
"transaction_type": {
"name": "transaction_type",
- "label": "transaction type",
+ "label": "el_common.transaction_type",
"element_criteria": "mandatory",
"add_more": false,
- "hover_text": "The type of the transaction (e.g. commitment, disbursement, expenditure, etc.). For more information ",
- "help_text": "Please choose the type of transaction that best reflects the flow of money in or out of this activity. Types include incoming funds, outgoing commitments, disbursement, expenditure.",
+ "hover_text": "elements.activities.transactions.transaction_type.hover_text",
+ "help_text": "elements.activities.transactions.transaction_type.help_text",
"attributes": {
"transaction_type_code": {
"name": "transaction_type_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/TransactionType.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code from the specified vocabulary. For more information ",
- "help_text": "Please provide a type for this transaction. Read all options with descriptions. "
+ "hover_text": "elements.activities.transactions.transaction_type.transaction_type_code.hover_text",
+ "help_text": "elements.activities.transactions.transaction_type.transaction_type_code.help_text"
}
},
"sub_elements": {}
},
"transaction_date": {
"name": "transaction_date",
- "label": "transaction date",
+ "label": "el_common.transaction_date",
"element_criteria": "mandatory",
"add_more": false,
- "hover_text": "The date on which the transaction was made or (in the case of commitments) agreed. For more information ",
+ "hover_text": "elements.activities.transactions.transaction_date.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This value must be of type xsd:date. For more information ",
- "help_text": "Provide the date on which the transaction was made or (in the case of commitments) agreed."
+ "hover_text": "elements.activities.transactions.transaction_date.date.hover_text",
+ "help_text": "elements.activities.transactions.transaction_date.date.help_text"
}
},
"sub_elements": {}
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"element_criteria": "mandatory",
"add_more": false,
- "hover_text": "The amount of the contribution. For more information ",
+ "hover_text": "elements.activities.transactions.value.hover_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -4342,59 +4398,59 @@
},
"date": {
"name": "date",
- "label": "value date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions.",
- "help_text": "This date must not be in the future."
+ "hover_text": "elements.activities.transactions.value.date.hover_text",
+ "help_text": "elements.activities.transactions.value.date.help_text"
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
- "placeholder": "Type currency",
+ "placeholder": "el_common.type_currency",
"choices": "Activity/Currency.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. For more information ",
- "help_text": "Select the currency of this transaction.This value must be on the Currency codelist ."
+ "hover_text": "elements.activities.transactions.value.currency.hover_text",
+ "help_text": "elements.activities.transactions.value.currency.help_text"
}
},
"sub_elements": {}
},
"description": {
"name": "description",
- "label": "description",
+ "label": "el_common.description",
"add_more": false,
"attributes": {},
- "hover_text": "A human-readable description of the transaction. For more information ",
+ "hover_text": "elements.activities.transactions.description.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"add_more": true,
"criteria": "",
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a short description of the transaction e.g. what it was for.",
+ "hover_text": "elements.activities.transactions.description.narrative.hover_text",
+ "help_text": "elements.activities.transactions.description.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.transactions.description.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -4403,69 +4459,69 @@
},
"provider_organization": {
"name": "provider_organization",
- "label": "provider organisation",
+ "label": "el_common.provider_organisation",
"element_criteria": "",
"add_more": false,
- "hover_text": "For incoming funds this is the organisation from which the transaction originated. If omitted on outgoing funds the reporting-org is assumed. For more information ",
- "help_text": "For each transaction it is strongly recommended that you publish information on both the provider and receiver organisations of the funds. This includes instances where your organisation is either the provider or the receiver. If you do not provide information on the provider organisation for incoming transactions, then it is presumed that your organisation is the provider of the funds.",
+ "hover_text": "elements.activities.transactions.provider_organization.hover_text",
+ "help_text": "elements.activities.transactions.provider_organization.help_text",
"attributes": {
"organization_identifer_code": {
"name": "organization_identifier_code",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "recommended",
- "hover_text": "Machine-readable identification string for the organisation issuing the report. For more information ",
- "help_text": "Please type the provider organisation’s IATI Organisation Identifier. The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance . If your organisation is the provider, please type your IATI Organisation Identifier. Your organisation created its org-ID when it first registered as an IATI publisher. You can find it here."
+ "hover_text": "elements.activities.transactions.provider_organization.organization_identifer_code.hover_text",
+ "help_text": "elements.activities.transactions.provider_organization.organization_identifer_code.help_text"
},
"provider_activity_id": {
"name": "provider_activity_id",
- "label": "provider-activity-id",
+ "label": "el_common.provider_activity",
"type": "text",
- "placeholder": "Type provider-activity-id",
+ "placeholder": "el_common.type_provider_activity_id",
"required": false,
"criteria": "recommended",
- "hover_text": "If incoming funds are being provided from the budget of another activity that is reported to IATI, it if STRONGLY RECOMMENDED that this should record the provider’s unique IATI activity identifier for that activity. For more information ",
- "help_text": "The provider organisation may have published IATI data on these funds in their own activity. If so, please provide the activity-id for their activity that includes information on this funding. You can ask the provider organisation for this activity-id, or search for their activity on d-portal.org. See further guidance . If you are the provider organisation then leave this blank."
+ "hover_text": "elements.activities.transactions.provider_organization.provider_activity_id.hover_text",
+ "help_text": "elements.activities.transactions.provider_organization.provider_activity_id.help_text"
},
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Organization/OrganizationType.json",
"required": false,
"criteria": "recommended",
- "hover_text": "The type of organisation providing the funds. For more information ",
- "help_text": "Select the type that best describes the provider organisation. Information on all organisation types . If your organisation is the provider, please select the organisation type that your organisation provided when it first registered. You can find it here."
+ "hover_text": "elements.activities.transactions.provider_organization.type.hover_text",
+ "help_text": "elements.activities.transactions.provider_organization.type.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "recommended",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The name of the organisation. This can be repeated in multiple languages. For more information ",
- "help_text": "If the provider organisation does not have an IATI Organisation Identifier, you must provide the text name of the organisation.Please do not type a code here for the provider organisation. ",
+ "hover_text": "elements.activities.reporting_org.narrative.hover_text",
+ "help_text": "elements.activities.transactions.provider_organization.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.transactions.provider_organization.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -4474,69 +4530,69 @@
},
"receiver_organization": {
"name": "receiver_organization",
- "label": "receiver-organisation",
+ "label": "el_common.receiver_organisation",
"element_criteria": "",
"add_more": false,
- "hover_text": "The organisation receiving the money from the transaction. For more information ",
- "help_text": "Please provide the organisation that will/has received the funds as part of this transaction. If your organisation is the receiver, please provide your organisation’s details.",
+ "hover_text": "elements.activities.transactions.receiver_organization.hover_text",
+ "help_text": "elements.activities.transactions.receiver_organization.help_text",
"attributes": {
"organization_identifier_code": {
"name": "organization_identifier_code",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type @ref here",
+ "placeholder": "el_common.type_ref_symbol_here",
"required": false,
"criteria": "recommended",
- "hover_text": "Machine-readable identification string for the organisation issuing the report. For more information. ",
- "help_text": "Please provide the receiver organisation’s IATI Organisation Identifier (org-ID). The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance . If your organisation is the receiver, please type your IATI Organisation Identifier (org-ID). Your organisation created its org-ID when it first registered as an IATI publisher. You can find it here."
+ "hover_text": "elements.activities.transactions.receiver_organization.organization_identifier_code.hover_text",
+ "help_text": "elements.activities.transactions.receiver_organization.organization_identifier_code.help_text"
},
"receiver_activity_id": {
"name": "receiver_activity_id",
- "label": "receiver-activity-id",
+ "label": "el_common.receiver_activity",
"type": "text",
- "placeholder": "Type receiver-activity-id",
+ "placeholder": "el_common.type_receiver_activity_id",
"required": false,
"criteria": "recommended",
- "hover_text": "If outgoing funds are being provided to another activity that is reported to IATI, this may, if possible, record the unique IATI activity identifier for that activity. For more information ",
- "help_text": "The receiver organisation may have published IATI data on receiving these funds in their own activity. If so, please provide the activity-id for their activity that includes information on this funding. You can ask the receiver organisation for this activity-id, or search for their activity on d-portal.org See further guidance . If you are the provider organisation then leave this blank."
+ "hover_text": "elements.activities.transactions.receiver_organization.receiver_activity_id.hover_text",
+ "help_text": "elements.activities.transactions.receiver_organization.receiver_activity_id.help_text"
},
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"choices": "Organization/OrganizationType.json",
"required": false,
"criteria": "recommended",
- "hover_text": "The type of organisation receiving the funds. For more information ",
- "help_text": "Select the type that best describes the receiver organisation. Information on all organisation types .If your organisation is the receiver, please select the organisation type that your organisation provided when it first registered. You can find it here."
+ "hover_text": "elements.activities.transactions.receiver_organization.type.hover_text",
+ "help_text": "elements.activities.transactions.receiver_organization.type.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"add_more": true,
"criteria": "recommended",
- "label": "narrative",
+ "label": "el_common.narrative",
"attr": {
"row": 4
},
- "hover_text": "The name of the organisation. This can be repeated in multiple languages. For more information ",
- "help_text": "If the receiver organisation does not have an IATI Organisation Identifier, the text name of the organisation must be given.Please do not type a code here for the receiver organisation. ",
+ "hover_text": "elements.activities.transactions.receiver_organization.narrative.hover_text",
+ "help_text": "elements.activities.transactions.receiver_organization.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.transactions.receiver_organization.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -4545,31 +4601,31 @@
},
"disbursement_channel": {
"name": "disbursement_channel",
- "label": "disbursement-channel",
+ "label": "el_common.disbursement_channel",
"add_more": false,
- "hover_text": "The channel through which the funds will flow for this transaction, from an IATI codelist. For more information ",
- "help_text": "Select the best option for how your disbursements are channeled (e.g. through the recipient government or outside of the recipient government).",
+ "hover_text": "elements.activities.transactions.disbursement_channel.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.help_text",
"attributes": {
"disbursement_channel_code": {
"name": "disbursement_channel_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/DisbursementChannel.json",
"required": false,
"criteria": "",
- "hover_text": "An IATI code defining channels of disbursement. For more information ",
- "help_text": "Please read the list of disbursement channels and choose the option that applies to this transaction (if any are applicable)."
+ "hover_text": "elements.activities.transactions.disbursement_channel.disbursement_channel_code.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.disbursement_channel_code.help_text"
}
},
"sub_elements": {}
},
"sector": {
- "label": "sector",
+ "label": "el_common.sector",
"name": "sector",
"add_more": true,
- "hover_text": "A recognised code, from a recognised vocabulary, classifying the purpose of this transaction.For more information ",
- "help_text": "You can specify one sector that this individual transaction is supporting. For example, primary education or agriculture. If you do this, then you must specify a sector for every transaction that you publish.You should not specify a sector for any of your transactions if you want to provide data on the sector(s) of this entire activity (which you can publish here). Sectors must only be provided at either the activity or transaction level and not both .Once your organisation decides where to publish information about which sectors it is working in, you should be consistent across all activities that you publish. This means you should publish all sector information at either activity level or for all transactions. More information .",
+ "hover_text": "elements.activities.transactions.disbursement_channel.sector.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.sector.help_text",
"dependent_attributes": {
"vocabulary_uri": {},
"code": {},
@@ -4581,110 +4637,130 @@
"attributes": {
"sector_vocabulary": {
"name": "sector_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/SectorVocabulary.json",
"required": false,
"criteria": "",
- "hover_text": "An IATI code for the vocabulary (codelist) used for sector classifications. If omitted, OECD DAC 5-digit Purpose Codes are assumed. For more information ",
- "help_text": "If you decide to publish what sector this transaction is supporting, then you need to choose a list of sectors. IATI recommends choosing the OECD DAC 5-digit sector codelist, in which you can make a selection from over 300 sectors . You can choose to use another list (see information on all possible options ). If you want to use your organisation’s own list of internal sector classifications, select the option: ‘Reporting Organisation’. You can choose to use multiple lists. If you use more than one internal sector classification, please select ‘Reporting Organisation 2’ (which has the code 98) for the additional list. Additional guidance .Do not select a list if you have / will choose a sector list for the entire activity. "
+ "hover_text": "elements.activities.transactions.disbursement_channel.sector.sector_vocabulary.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.sector.sector_vocabulary.help_text"
},
"vocabulary_uri": {
"name": "vocabulary_uri",
- "label": "vocabulary uri",
+ "label": "el_common.vocabulary_uri",
"type": "text",
- "placeholder": "Type vocabulary-uri",
+ "placeholder": "el_common.type_vocabulary_uri",
"required": false,
"criteria": "",
- "hover_text": "The URI where this vocabulary is defined. If the vocabulary is 99 or 98 (reporting organisation), the URI where this internal vocabulary is defined. For more information ",
- "help_text": "If you have chosen to use an internal sector classification codelist, please provide a link to it.",
+ "hover_text": "elements.activities.transactions.disbursement_channel.sector.vocabulary_uri.hover_text",
+ "help_text": "elements.activities.sector.vocabulary_uri.help_text",
"parent": {
"name": "sector_vocabulary",
- "value": ["99", "98"]
+ "value": [
+ "99",
+ "98"
+ ]
}
},
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": false,
"criteria": "",
"choices": "Activity/SectorCode.json",
- "hover_text": "The code for the sector.For more information ",
- "help_text": "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use.",
+ "hover_text": "elements.activities.transactions.disbursement_channel.sector.code.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.sector.sdg_target.help_text",
"parent": {
"name": "sector_vocabulary",
- "value": ["1"]
+ "value": [
+ "1"
+ ]
}
},
"text": {
"name": "text",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Type code",
+ "placeholder": "el_common.type_",
"required": false,
"criteria": "",
- "hover_text": "The code for the sector. For more information ",
- "help_text": "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use.",
+ "hover_text": "elements.activities.transactions.disbursement_channel.sector.text.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.sector.sdg_target.help_text",
"parent": {
"name": "sector_vocabulary",
- "value": ["3", "4", "5", "6", "9", "10", "99", "98"]
+ "value": [
+ "3",
+ "4",
+ "5",
+ "6",
+ "9",
+ "10",
+ "99",
+ "98"
+ ]
}
},
"category_code": {
"name": "category_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/SectorCategory.json",
"required": false,
"criteria": "",
- "hover_text": "The code for the sector. For more information ",
- "help_text": "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use.",
+ "hover_text": "elements.activities.transactions.disbursement_channel.sector.sdg_target.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.sector.sdg_target.help_text",
"parent": {
"name": "sector_vocabulary",
- "value": ["2"]
+ "value": [
+ "2"
+ ]
}
},
"sdg_goal": {
"name": "sdg_goal",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/UNSDG-Goals.json",
"required": false,
"criteria": "",
- "hover_text": "The code for the sector. For more information ",
- "help_text": "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use.",
+ "hover_text": "elements.activities.transactions.disbursement_channel.sector.sdg_target.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.sector.sdg_target.help_text",
"parent": {
"name": "sector_vocabulary",
- "value": ["7"]
+ "value": [
+ "7"
+ ]
}
},
"sdg_target": {
"name": "sdg_target",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": false,
"criteria": "",
"choices": "Activity/UNSDG-Targets.json",
- "hover_text": "The code for the sector. For more information ",
- "help_text": "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use.",
+ "hover_text": "elements.activities.transactions.disbursement_channel.sector.sdg_target.hover_text",
+ "help_text": "elements.activities.transactions.disbursement_channel.sector.sdg_target.help_text",
"parent": {
"name": "sector_vocabulary",
- "value": ["8"]
+ "value": [
+ "8"
+ ]
}
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"element_criteria": "recommended",
@@ -4692,19 +4768,19 @@
"attr": {
"row": 4
},
- "hover_text": "The description of a sector defined by the reporting organisation. (Only to be used when the reporting organisation’s own vocabulary is being used).For more information ",
- "help_text": "If you have chosen a sector from an internal sector classification codelist, please provide a description of this sector.",
+ "hover_text": "elements.activities.transactions.disbursement_channel.narrative.hover_text",
+ "help_text": "elements.activities.sector.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.transactions.disbursement_channel.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -4713,48 +4789,48 @@
},
"recipient_country": {
"name": "recipient_country",
- "label": "recipient-country",
+ "label": "el_common.recipient_country",
"add_more": false,
- "hover_text": "A country that will benefit from this transaction. For more information ",
- "help_text": "You can specify one country or region that an individual transaction is taking place in, or the place that will benefit from it. You should not specify a country or region for any of your transactions if you want to provide the recipient country or region of this entire activity (which you can publish here). Recipient countries or regions) must only be provided at either the activity or transaction level and not both. Once your organisation decides where to publish information about its recipient countries (or regions), it should be consistent across all activities that it publishes. This means you should publish all recipient country or region information at either activity level or for all transactions. More information .",
+ "hover_text": "elements.activities.transactions.recipient_country.hover_text",
+ "help_text": "elements.activities.transactions.recipient_country.help_text",
"attributes": {
"country_code": {
"name": "country_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Country.json",
"required": false,
"criteria": "",
- "hover_text": "ISO 3166-1 alpha-2 code for the country. For more information ",
- "help_text": "Select one country that this transaction is taking place in, or will benefit from its funds.Do not select a country if you have / will choose a recipient country for the entire activity. "
+ "hover_text": "elements.activities.transactions.recipient_country.country_code.hover_text",
+ "help_text": "elements.activities.transactions.recipient_country.country_code.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Add the free text name and/or description for the country benefitting from the transaction.",
+ "hover_text": "elements.activities.transactions.recipient_country.narrative.hover_text",
+ "help_text": "elements.activities.transactions.recipient_country.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.transactions.recipient_country.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -4763,92 +4839,99 @@
},
"recipient_region": {
"name": "recipient_region",
- "label": "recipient region",
+ "label": "el_common.recipient_region",
"add_more": false,
- "hover_text": "A supranational geopolitical region that will benefit from this transaction. If a specific country is not known, then this element MUST be used. For more information ",
- "help_text": "If you cannot identify the specific country benefiting from this transaction, then you can provide the recipient region instead. Do not provide both a recipient country and a region. For example, if the funding is going to Uganda, then you should record Uganda as the recipient country and you should not add that the funding is also going to the region of Africa.",
+ "hover_text": "elements.activities.transactions.recipient_region.hover_text",
+ "help_text": "elements.activities.transactions.recipient_region.help_text",
"attributes": {
"region_vocabulary": {
"name": "region_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Type vocabulary",
+ "placeholder": "el_common.type_vocabulary",
"choices": "Activity/RegionVocabulary.json",
"required": false,
"criteria": "",
- "hover_text": "An IATI code for the vocabulary from which the region code is drawn. If it is not present 1 - ‘OECD DAC’ is assumed.For more information ",
- "help_text": "There are two lists of regions; the OECD DAC and UN region code lists. Please select one. IATI recommends that you use the OECD DAC codelist . Otherwise you can use another list of regions by selecting the option: ‘Reporting Organisation’ and providing the URI where this internal list is defined. If you do not choose an option, then the code list 'OECD DAC' is assumed."
+ "hover_text": "elements.activities.transactions.recipient_region.region_vocabulary.hover_text",
+ "help_text": "elements.activities.transactions.recipient_region.region_vocabulary.help_text"
},
"region_code": {
"name": "region_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/Region.json",
"required": false,
"criteria": "",
- "hover_text": "Either an OECD DAC or UN region code. Codelist is determined by vocabulary attribute. For more information ",
- "help_text": "Select the region benefitting from this transaction.",
+ "hover_text": "elements.activities.transactions.recipient_region.custom_code.hover_text",
+ "help_text": "elements.activities.transactions.recipient_region.custom_code.help_text",
"parent": {
"name": "region_vocabulary",
- "value": ["1"]
+ "value": [
+ "1"
+ ]
}
},
"custom_code": {
"name": "custom_code",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": false,
"criteria": "",
- "hover_text": "Either an OECD DAC or UN region code. Codelist is determined by vocabulary attribute. For more information ",
- "help_text": "Select the region benefitting from this transaction.",
+ "hover_text": "elements.activities.transactions.recipient_region.custom_code.hover_text",
+ "help_text": "elements.activities.transactions.recipient_region.custom_code.help_text",
"hidden": true,
"parent": {
"name": "region_vocabulary",
- "value": ["2", "99"]
+ "value": [
+ "2",
+ "99"
+ ]
}
},
"vocabulary_uri": {
"name": "vocabulary_uri",
- "label": "vocabulary-uri",
+ "label": "el_common.vocabulary_uri",
"type": "text",
- "placeholder": "Type vocabulary-uri",
+ "placeholder": "el_common.type_vocabulary_uri",
"required": false,
"criteria": "",
- "hover_text": "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. For more information ",
- "help_text": "If you have selected the option: ‘Reporting Organisation’ please provide the URI where this internal list is defined.",
+ "hover_text": "elements.activities.transactions.recipient_region.vocabulary_uri.hover_text",
+ "help_text": "el_common.if_you_have_selected",
"parent": {
"name": "region_vocabulary",
- "value": ["99"]
+ "value": [
+ "99"
+ ]
}
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The description of a sector defined by the reporting organisation. (Only to be used when the reporting organisation’s own vocabulary is being used). For more information ",
- "help_text": "If you have selected the option: ‘Reporting Organisation’ please add the free text name and/or description regarding this region benefitting from the activity.",
+ "hover_text": "elements.activities.transactions.aid_type.narrative.hover_text",
+ "help_text": "elements.activities.transactions.aid_type.narrative.help_text",
"attributes": {
"language": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"choices": "Activity/Language.json",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.activities.transactions.aid_type.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -4857,127 +4940,135 @@
},
"flow_type": {
"name": "flow_type",
- "label": "flow type",
+ "label": "el_common.flow_type",
"add_more": false,
- "hover_text": "Optional element to override the top-level default-flow-type element. For more information ",
- "help_text": "Flow type is another way to categorise financial flows. It distinguishes the flow as official development assistance (ODA), other official flows (OOF), or several types of private flows, including private grants often provided by NGOs and other civil society organisations.",
+ "hover_text": "elements.activities.transactions.flow_type.hover_text",
+ "help_text": "elements.activities.transactions.flow_type.help_text",
"attributes": {
"flow_type": {
"name": "flow_type",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/FlowType.json",
"required": false,
"criteria": "",
- "hover_text": "A code from the OECD DAC CRS “Type of flow” codelist. For more information ",
- "help_text": "Please select a flow type for this transaction from the following options . Do note: if you select a flow-type for this transaction, this will override the default flow type for the entire activity (which is selected here), enabling you to choose a flow-type on a transaction-by-transaction basis, if needed."
+ "hover_text": "elements.activities.transactions.flow_type.flow_type.hover_text",
+ "help_text": "elements.activities.transactions.flow_type.flow_type.help_text"
}
},
"sub_elements": {}
},
"finance_type": {
"name": "finance_type",
- "label": "finance type",
+ "label": "el_common.finance_type",
"add_more": false,
- "hover_text": "Optional element to override the top-level default-finance-type element on a transaction-by-transaction basis, if needed. For more information ",
- "help_text": "Finance type specifies the financial instrument that is being used. For example, financing is most commonly delivered as a grant or a loan. ",
+ "hover_text": "elements.activities.transactions.finance_type.hover_text",
+ "help_text": "elements.activities.transactions.finance_type.help_text",
"attributes": {
"finance_type": {
"name": "finance_type",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/FinanceType.json",
"required": false,
"criteria": "",
- "hover_text": "A code from the OECD DAC CRS “Type of finance” codelist. For more information ",
- "help_text": "Please select a finance type for this transaction from the following options . Do note: if you select a finance-type for this transaction, this will override the default finance type for the entire activity (which is selected here), enabling you to choose a finance-type on a transaction-by-transaction basis, if needed."
+ "hover_text": "elements.activities.transactions.finance_type.finance_type.hover_text",
+ "help_text": "elements.activities.transactions.finance_type.finance_type.help_text"
}
},
"sub_elements": {}
},
"aid_type": {
"name": "aid_type",
- "label": "aid type",
+ "label": "el_common.aid_type",
"add_more": false,
"add_more_attributes": true,
"wrapper_collection": false,
- "hover_text": "Optional element to override the top-level default-aid-type element (debt relief, etc.) on a transaction-by-transaction basis if needed. For more information ",
- "help_text": "You can provide information about the type of aid that is being delivered. This is most commonly referred to as the aid modality and IATI recommends that an aid type from the OECD DAC codelist be selected for all activities. Examples from this codelist include: project-type interventions which provide support to a particular project and budget support which is a financial contribution to a recipient government’s budget. Project-type interventions is the most common aid type for NGOs and CSOs but many other options are found here . If your transaction is addressing a humanitarian event, you can provide specific information on the type of funds for it. This includes providing information on the level of earmarking of the transaction’s funds and if the transaction is providing funds through cash or vouchers. More information on publishing aid-types related to humanitarian transactions . Do note: if you select an aid-type for this transaction, this will override the default aid type for the entire activity (which is selected here), enabling you to choose an aid-type on a transaction-by-transaction basis, if needed.",
+ "hover_text": "elements.activities.transactions.aid_type.hover_text",
+ "help_text": "elements.activities.transactions.aid_type.help_text",
"attributes": {
"aid_type_vocabulary": {
"name": "aid_type_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"choices": "Activity/AidTypeVocabulary.json",
"required": false,
"criteria": "",
- "hover_text": "A code for the vocabulary aid-type classifications. If omitted the AidType (OECD DAC) codelist is assumed. The code must be a valid value in the AidTypeVocabulary codelist. For more information ",
- "help_text": "Select a list that includes the aid-type list related to your transaction. You can choose to select one aid-type from more than one list.1 OECD DAC - IATI recommends that you select this list which has over 20 options to choose from. Then, in addition you can select an option from another list2 Earmarking Category - select this list to categorise how flexible humanitarian funding is. There are 4 earmarking categories. Understand more about the categories in Annex 1 3 Earmarking Modality - use this list to choose the specific earmarking modality to describe your activity’s humanitarian funding. All earmarking modality options are listed in Annex 1 4 Cash and Voucher Modalities - select this list to specify if your transaction is responding to a humanitarian event by providing cash and voucher assistance. More information ."
+ "hover_text": "elements.activities.transactions.aid_type.aid_type_vocabulary.hover_text",
+ "help_text": "elements.activities.transactions.aid_type.aid_type_vocabulary.help_text"
},
"aid_type_code": {
"name": "aid_type_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/AidType.json",
"required": false,
"criteria": "",
- "hover_text": "A code from the specified vocabulary. For more information ",
- "help_text": "Select the aid-type related to your transaction.",
+ "hover_text": "elements.activities.transactions.aid_type.earmarking_category.hover_text",
+ "help_text": "elements.activities.transactions.aid_type.aid_type_code.help_text",
"parent": {
"name": "aid_type_vocabulary",
- "value": ["1"]
+ "value": [
+ "1"
+ ]
}
},
"earmarking_category": {
"name": "earmarking_category",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/EarmarkingCategory.json",
"required": false,
"criteria": "",
"hidden": true,
- "hover_text": "A code from the specified vocabulary. For more information ",
+ "hover_text": "elements.activities.transactions.aid_type.earmarking_category.hover_text",
"help_text": "",
"parent": {
"name": "aid_type_vocabulary",
- "value": ["2"]
+ "value": [
+ "2"
+ ]
}
},
"earmarking_modality": {
"name": "earmarking_modality",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/EarmarkingModality.json",
"required": false,
"criteria": "",
"hidden": true,
- "hover_text": "A code from the specified vocabulary. For more information ",
+ "hover_text": "elements.activities.transactions.cash_and_voucher_modalities.hover_text",
"help_text": "",
"parent": {
"name": "aid_type_vocabulary",
- "value": ["3"]
+ "value": [
+ "3"
+ ]
}
},
"cash_and_voucher_modalities": {
- "label": "code",
+ "label": "el_common.code",
"name": "cash_and_voucher_modalities",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/CashandVoucherModalities.json",
"required": false,
"criteria": "",
"hidden": true,
- "hover_text": "A code from the specified vocabulary. For more information ",
+ "hover_text": "elements.activities.transactions.cash_and_voucher_modalities.hover_text",
"help_text": "",
"parent": {
"name": "aid_type_vocabulary",
- "value": ["4"]
+ "value": [
+ "4"
+ ]
}
}
},
@@ -4985,21 +5076,21 @@
},
"tied_status": {
"name": "tied_status",
- "label": "tied status",
+ "label": "el_common.tied_status",
"add_more": false,
- "hover_text": "Optional element to override the top-level default-tied-status element on a transaction-by-transaction basis if needed. For more information ",
- "help_text": "You can state the tied status of this transaction. Here you can specify if funds are tied - where they must be spent on goods or services procured from a particular country (e.g. donor country) or group of countries. Or if funds are untied, this is where the recipient organisation is allowed to procure from any country. Do note: if you select a tied status for this transaction, this will override the default tied status for the entire activity (which is selected here), enabling you to choose a tied status on a transaction-by-transaction basis, if needed.",
+ "hover_text": "elements.activities.transactions.tied_status.hover_text",
+ "help_text": "elements.activities.transactions.tied_status.help_text",
"attributes": {
"tied_status_code": {
"name": "tied_status_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"choices": "Activity/TiedStatus.json",
"required": false,
"criteria": "",
- "hover_text": "An IATI code interpreting the usage of Columns 36-38 of the CRS++ reporting format. (Amount tied, Amount partially untied, Amount tied). For more information ",
- "help_text": "Select a default-tied-status, if applicable to your transaction. Descriptions of all options . Otherwise leave blank."
+ "hover_text": "elements.activities.transactions.tied_status_code.hover_text",
+ "help_text": "elements.activities.transactions.tied_status_code.help_text"
}
},
"sub_elements": {}
diff --git a/app/IATI/Data/organizationElementJsonSchema.json b/app/IATI/Data/organizationElementJsonSchema.json
index 008aeed024..a5222bd0c4 100644
--- a/app/IATI/Data/organizationElementJsonSchema.json
+++ b/app/IATI/Data/organizationElementJsonSchema.json
@@ -1,58 +1,58 @@
{
"organisation_identifier": {
"name": "organisation_identifier",
- "label": "organisation-identifier",
+ "label": "el_common.organisation_identifier",
"criteria": "mandatory",
- "hover_text": "The Organisation Identifier is a unique code for your organisation. This is generated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. For more information ",
+ "hover_text": "elements.organisation.organisation_identifier.hover_text",
"help_text": "",
"attributes": {
"organization_country": {
"name": "organization_country",
- "label": "Country",
+ "label": "el_common.country",
"type": "select",
"choices": "Activity/Country.json",
"required": false,
"criteria": "",
- "hover_text": "Select the location of your organisation.",
- "help_text": "Provide the country where your organisation is located."
+ "hover_text": "elements.organisation.organisation_identifier.organization_country.hover_text",
+ "help_text": "elements.organisation.organisation_identifier.organization_country.help_text"
},
"organization_registration_agency": {
"name": "organization_registration_agency",
- "label": "Organisation Registration Agency",
+ "label": "el_common.organisation_registration_agency",
"type": "select",
"choices": "Organization/OrganizationRegistrationAgency.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "Select the agency in your country where your organisation is registered. If you do not know this information please email support@iatistandard.org",
- "help_text": "Provide the name of the agency in your country where your organisation is registered. If you do not know this information please email support@iatistandard.org."
+ "hover_text": "elements.organisation.organisation_identifier.organization_registration_agency.hover_text",
+ "help_text": "elements.organisation.organisation_identifier.organization_registration_agency.help_text"
},
"registration_number": {
"name": "registration_number",
- "label": "Registration Number",
+ "label": "el_common.registration_number",
"type": "text",
"required": true,
"placeholder": "for e.g. 123456",
"criteria": "mandatory",
- "hover_text": "Provide the registration number for your organisation that has been provided by the organisation registration agency. If you do not know this please email support@iatistandard.org",
- "help_text": "Provide the registration number for your organisation that has been provided by the registration agency named above. If you do not know this information please email support@iatistandard.org."
+ "hover_text": "elements.organisation.organisation_identifier.registration_number.hover_text",
+ "help_text": "elements.organisation.organisation_identifier.registration_number.help_text"
},
"iati-activity-identifier": {
"name": "organisation_identifier",
- "label": "organisation-identifier",
+ "label": "el_common.organisation_identifier",
"type": "text",
"required": true,
"criteria": "mandatory",
- "hover_text": "The Organisation Identifier is a unique code for your organisation. This is generated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. For more information ",
- "help_text": "The Organisation Identifier (Org-ID) is a unique code for your organisation. This is generated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. "
+ "hover_text": "elements.organisation.organisation_identifier.iati-activity-identifier.hover_text",
+ "help_text": "elements.organisation.organisation_identifier.iati-activity-identifier.help_text"
}
},
"sub_elements": {}
},
"name": {
"name": "name",
- "label": "name",
+ "label": "el_common.name",
"multiple": false,
- "hover_text": "The human-readable name of the organisation.",
+ "hover_text": "elements.organisation.name.hover_text",
"show_info_in_title": true,
"attributes": {},
"sub_elements": {
@@ -64,23 +64,23 @@
"criteria": "mandatory",
"element_criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Type the name of your organisation.",
+ "hover_text": "elements.organisation.name.narrative.hover_text",
+ "help_text": "elements.organisation.name.narrative.help_text",
"attr": {
"row": 4
},
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language that you have provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.organisation.name.language.hover_text",
+ "help_text": "elements.organisation.name.language.help_text"
}
},
"sub_elements": {}
@@ -90,53 +90,53 @@
"reporting_org": {
"name": "reporting_org",
"label": "reporting organisation",
- "hover_text": "The organisation issuing the report. May be a primary source (reporting on its own activity as donor, implementing agency, etc) or a secondary source (reporting on the activities of another organisation).For more information ",
- "help_text": "You need to specify which organisation is publishing the file, and which organisation the data is about. In most cases, the publishing organisation is publishing data about itself.Further guidance ",
+ "hover_text": "elements.organisation.reporting_org.hover_text",
+ "help_text": "elements.organisation.reporting_org.help_text",
"add_more": false,
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": true,
"criteria": "mandatory",
- "hover_text": "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber}. For more information ",
- "help_text": "Provide the IATI Organisation Identifier of the organisation publishing the data. The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance . "
+ "hover_text": "elements.organisation.reporting_org.reference.hover_text",
+ "help_text": "elements.organisation.reporting_org.reference.help_text"
},
"type": {
"name": "type",
- "label": "type",
+ "label": "el_common.type",
"type": "select",
"multiSelect": false,
"choices": "Organization/OrganizationType.json",
- "placeholder": "Select type",
+ "placeholder": "el_common.select_type",
"required": true,
"criteria": "mandatory",
- "hover_text": "The type of organisation issuing the report.For more information ",
- "help_text": "Select the type that best describes the organisation publishing the data.Information on all organisation types. "
+ "hover_text": "elements.organisation.reporting_org.type.hover_text",
+ "help_text": "elements.organisation.reporting_org.type.help_text"
},
"secondary_reporter": {
"name": "secondary_reporter",
- "label": "secondary-reporter",
+ "label": "el_common.secondary_reporter",
"type": "select",
"choices": {
"1": "Yes",
"0": "No"
},
- "placeholder": "Select secondary-reporter",
+ "placeholder": "el_common.select_secondary_reporter",
"required": false,
"criteria": "",
- "hover_text": "A flag indicating that the reporting organisation of this activity is acting as a secondary reporter. A secondary reporter is one that reproduces data on the activities of an organisation for which it is not directly responsible.For more information ",
- "help_text": "Are you reproducing the data reported by another organisation? If so, your organisation is a ‘secondary reporter’ and you should select 'Yes ’. If you are reporting your own organisation’s data, select ‘No ’. Please note: you are not a secondary reporter if your organisation is officially assigned as a proxy to report IATI data on behalf of another organisation."
+ "hover_text": "elements.organisation.reporting_org.secondary_reporter.hover_text",
+ "help_text": "elements.organisation.reporting_org.secondary_reporter.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"element_criteria": "mandatory",
@@ -144,20 +144,20 @@
"attr": {
"row": 4
},
- "hover_text": "The text in this element must be of type xsd:string. This element must occur at least once (within each parent element). For more information ",
- "help_text": "If you are reporting another organisation’s data, provide their name.",
+ "hover_text": "elements.organisation.reporting_org.narrative.hover_text",
+ "help_text": "elements.organisation.reporting_org.narrative.help_text",
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
"language": "Select language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
- "help_text": "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.organisation.reporting_org.language.hover_text",
+ "help_text": "el_common.your_default_language_assumed_no_that"
}
},
"sub_elements": {}
@@ -166,77 +166,77 @@
},
"total_budget": {
"name": "total_budget",
- "label": "total budget",
+ "label": "el_common.total_budget",
"add_more": true,
- "hover_text": "The total-budget element allows for the reporting of the organisation’s own budget. The recommendation is that, where and when possible, the organisation’s total annual planned budget for each of the next three years is reported.For more information ",
- "help_text": "Provide your organisation’s total expected development and humanitarian spend for the current and (where possible) following three years. Each total budget that you provide must span a period of no more than 12 months, and preferably aligned with your organisation’s fiscal year. Budgets can also be published for periods of less than one year, for example, into quarters. The time periods of the budgets should not overlap.Further guidance. ",
+ "hover_text": "elements.organisation.total_budget.hover_text",
+ "help_text": "elements.organisation.total_budget.help_text",
"attributes": {
"status": {
"name": "total_budget_status",
- "label": "status",
+ "label": "el_common.status",
"type": "select",
"multiselect": false,
"choices": "Activity/BudgetStatus.json",
"required": false,
"criteria": "",
- "hover_text": "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
- "help_text": "Please select a status that best describes this budget: (1) indicative - a non-binding estimate for the described budget. (2) committed - a binding agreement for the described budget. If no status is selected, the budget is assumed to be indicative."
+ "hover_text": "elements.organisation.total_budget.status.hover_text",
+ "help_text": "elements.organisation.total_budget.status.help_text"
}
},
"sub_elements": {
"period_start": {
"name": "period_start",
- "label": "period-start",
+ "label": "el_common.period_start",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The start of the budget period.For more information ",
+ "hover_text": "elements.organisation.total_budget.period_start.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required.For more information ",
- "help_text": "Provide the start date of the budget period."
+ "hover_text": "elements.organisation.total_budget.period_start.date.hover_text",
+ "help_text": "el_common.provide_the_start_of_budget_period "
}
},
"sub_elements": {}
},
"period_end": {
"name": "period_end",
- "label": "period-end",
+ "label": "el_common.period_end",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The end of the period (which must not be greater than one year).For more information ",
+ "hover_text": "elements.organisation.total_budget.period_end.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required.For more information ",
- "help_text": "Provide the end date of the budget period."
+ "hover_text": "elements.organisation.total_budget.period_end.date.hover_text",
+ "help_text": "el_common.provide_the_end_of_budget_period"
}
},
"sub_elements": {}
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The total value of the organisation’s aid budget for this period. For more information ",
- "help_text": "Provide the total finance for this budget.",
+ "hover_text": "elements.organisation.total_budget.value.hover_text",
+ "help_text": "elements.organisation.total_budget.value.help_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -244,24 +244,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified.For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "elements.organisation.total_budget.value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions. This attribute is required. For more information ",
+ "hover_text": "elements.organisation.total_budget.value.value_date.hover_text",
"help_text": ""
}
},
@@ -269,35 +269,35 @@
},
"budget_line": {
"name": "budget_line",
- "label": "budget line",
+ "label": "el_common.budget_line",
"add_more": true,
- "hover_text": "A breakdown of the total budget into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative. For more information ",
- "help_text": "You can provide further budget information in budget lines. Budget lines allow the total budget to be broken down, for example into different programmes happening in the same year. Do note: The sum of each budget line does not have to equal the value of the total budget. Further guidance .",
+ "hover_text": "elements.organisation.total_budget.budget_line.hover_text",
+ "help_text": "elements.organisation.total_budget.budget_line.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "An internal reference for this budget line taken from the reporting organisation’s own system. For more information ",
- "help_text": "You can provide a reference that you use to identify this budget line in your organisation’s financial reporting system."
+ "hover_text": "el_common.an_internal_reference",
+ "help_text": "elements.organisation.total_budget.budget_line.reference.help_text"
}
},
"sub_elements": {
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
- "hover_text": "The budget sub-total. The definition of the sub-division is determined by iati-organisation/total-budget/budget-line/narrative For more information ",
- "help_text": "Provide the total finance for this budget line.",
+ "hover_text": "elements.organisation.total_budget.budget_line.value.hover_text",
+ "help_text": "elements.organisation.total_budget.budget_line.value.help_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -305,24 +305,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
"required": true,
"criteria": "mandatory",
- "placeholder": "Select currency",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount.For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "placeholder": "el_common.select_currency",
+ "hover_text": "elements.organisation.total_budget.budget_line.value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions.For more information ",
+ "hover_text": "elements.organisation.total_budget.budget_line.value.value_date.hover_text",
"help_text": ""
}
},
@@ -330,29 +330,29 @@
},
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a description for this budget line.",
+ "hover_text": "el_common.the_free_text_name_link_5",
+ "help_text": "el_common.provide_a_description_for_budget_line",
"attr": {
"row": 4
},
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed"
+ "hover_text": "el_common.a_code_specifying_text_link_6",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -363,70 +363,70 @@
},
"recipient_org_budget": {
"name": "recipient_org_budget",
- "label": "recipient organisation budget",
+ "label": "el_common.recipient_organisation_budget",
"add_more": true,
- "hover_text": "The recipient-org-budget element allows for the reporting of forward looking budgets for each institution which receives core funding from the reporting organisation. For more information ",
- "help_text": "If your organisation will provide core funding to a recipient organisation(s), please publish information on this budget here. Further guidance . Where possible, you should provide annual planned budgets for each recipient organisation for each of the next three financial years.",
+ "hover_text": "elements.organisation.recipient_org_budget.hover_text",
+ "help_text": "elements.organisation.recipient_org_budget.help_text",
"attributes": {
"status": {
"name": "status",
- "label": "status",
+ "label": "el_common.status",
"type": "select",
"multiselect": false,
"choices": "Activity/BudgetStatus.json",
- "placeholder": "Select status",
+ "placeholder": "el_common.select_status",
"required": false,
"criteria": "",
- "hover_text": "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
- "help_text": "Please select a status that best describes this recipient organisation budget: (1) indicative - a non-binding estimate for the described budget line. (2) committed - a binding agreement for the described budget line. If no status is selected, the budget is assumed to be indicative."
+ "hover_text": "elements.organisation.recipient_org_budget.status.hover_text",
+ "help_text": "elements.organisation.recipient_org_budget.status.help_text"
}
},
"sub_elements": {
"recipient_org": {
"name": "recipient_org",
- "label": "recipient organisation",
+ "label": "el_common.recipient_organisation",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The organisation that will receive the funds. For more information ",
- "help_text": "Provide information about the organisation who will receive the funds.",
+ "hover_text": "elements.organisation.recipient_org_budget.recipient_org.hover_text",
+ "help_text": "elements.organisation.recipient_org_budget.recipient_org.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "The organisation that will receive the funds.For more information ",
- "help_text": "Please type the recipient organisation’s IATI Organisation Identifier . The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance . If you cannot provide the Organisation Identifier then you MUST provide the name of the organisation below."
+ "hover_text": "elements.organisation.recipient_org_budget.recipient_org.reference.hover_text",
+ "help_text": "elements.organisation.recipient_org_budget.recipient_org.reference.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The name of the organisation. This can be repeated in multiple languages.For more information ",
- "help_text": "Type the name of the recipient organisation.",
+ "hover_text": "elements.organisation.recipient_org_budget.recipient_org.narrative.hover_text",
+ "help_text": "elements.organisation.recipient_org_budget.recipient_org.narrative.help_text",
"attr": {
"row": 4
},
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.organisation.recipient_org_budget.recipient_org.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
@@ -435,56 +435,56 @@
},
"period_start": {
"name": "period_start",
- "label": "period-start",
+ "label": "el_common.period_start",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "This element must occur once and only once (within each parent element). For more information ",
+ "hover_text": "elements.organisation.recipient_org_budget.period_start.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date.For more information ",
- "help_text": "Provide the start date of the budget period."
+ "hover_text": "elements.organisation.recipient_org_budget.period_start.date.hover_text",
+ "help_text": "el_common.provide_the_start_of_budget_period "
}
},
"sub_elements": {}
},
"period_end": {
"name": "period_end",
- "label": "period-end",
+ "label": "el_common.period_end",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The end of the period (which must not be greater than one year).For more information ",
+ "hover_text": "elements.organisation.recipient_org_budget.period_end.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date.For more information ",
- "help_text": "Provide the end date of the budget period."
+ "hover_text": "elements.organisation.recipient_org_budget.period_end.date.hover_text",
+ "help_text": "el_common.provide_the_end_of_budget_period"
}
},
"sub_elements": {}
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The total value of the money budgeted to be disbursed to the specified recipient organisation during this time period. For more information ",
+ "hover_text": "elements.organisation.recipient_org_budget.value.hover_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -492,24 +492,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified. For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "elements.organisation.recipient_org_budget.value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions. This attribute is required. For more information ",
+ "hover_text": "elements.organisation.recipient_org_budget.value.value_date.hover_text",
"help_text": ""
}
},
@@ -517,34 +517,34 @@
},
"budget_line": {
"name": "budget_line",
- "label": "budget line",
+ "label": "el_common.budget_line",
"add_more": true,
- "hover_text": "A breakdown of the total budget into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative.For more information ",
- "help_text": "You can provide a breakdown of the recipient organisation’s budget into budget lines. Do note: The sum of each budget line does not have to equal the total value of the recipient organisation budget.Further guidance .",
+ "hover_text": "elements.organisation.recipient_org_budget.budget_line.hover_text",
+ "help_text": "elements.organisation.recipient_org_budget.budget_line.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "An internal reference for this budget line taken from the reporting organisation’s own system. For more information ",
- "help_text": "You can provide a reference that you use to identify this budget line in your organisation’s internal financial management system."
+ "hover_text": "el_common.an_internal_reference",
+ "help_text": "el_common.you_can_provide_a_reference"
}
},
"sub_elements": {
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
- "hover_text": "The budget sub-total. The definition of the sub-division is determined by iati-organisation/total-budget/budget-line/narrative For more information ",
+ "hover_text": "elements.organisation.recipient_org_budget.budget_line.value.hover_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -552,24 +552,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "elements.organisation.recipient_org_budget.budget_line.value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions.For more information ",
+ "hover_text": "elements.organisation.recipient_org_budget.budget_line.value.value_date.hover_text",
"help_text": ""
}
},
@@ -577,29 +577,29 @@
},
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a description for this budget line.",
+ "hover_text": "el_common.the_free_text_name_link_5",
+ "help_text": "el_common.provide_a_description_for_budget_line",
"attr": {
"row": 4
},
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_6",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
@@ -610,105 +610,105 @@
},
"recipient_region_budget": {
"name": "recipient_region_budget",
- "label": "recipient region budget",
+ "label": "el_common.recipient_region_budget",
"add_more": true,
- "hover_text": "The recipient-region-budget element allows for the reporting of forward looking budgets where the organisation maintains region-wide, rather than or in addition to country-specific budgets.For more information ",
- "help_text": "IATI strongly encourages organisations to break down your total budget into smaller budgets for the recipient countries or recipient regions in which you operate. If you provide a recipient region or country budget(s), you do not need to use the same periods, and these budgets do not have to add up to your organisation’s total budget. If you want to provide a recipient region budget, it must NOT be an aggregation of recipient country budgets. For example, if you publish a recipient country budget for Uganda for USD 100,000 and a budget for Kenya of USD 100,000 for the next year, then you should NOT publish a recipient region budget for Africa of USD 200,000 for the next year.",
+ "hover_text": "elements.organisation.recipient_region_budget.hover_text",
+ "help_text": "elements.organisation.recipient_region_budget.help_text",
"attributes": {
"status": {
"name": "status",
- "label": "status",
+ "label": "el_common.status",
"type": "select",
"multiselect": false,
"choices": "Activity/BudgetStatus.json",
- "placeholder": "Select status",
+ "placeholder": "el_common.select_status",
"required": true,
"criteria": "mandatory",
- "hover_text": "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
- "help_text": "Please select a status that best describes this recipient region budget: (1) indicative - a non-binding estimate for the described budget. (2) committed - a binding agreement for the described budget. If no status is present, the budget is assumed to be indicative."
+ "hover_text": "elements.organisation.recipient_region_budget.status.hover_text",
+ "help_text": "elements.organisation.recipient_region_budget.status.help_text"
}
},
"sub_elements": {
"recipient_region": {
"name": "recipient_region",
- "label": "recipient region",
+ "label": "el_common.recipient_region",
"criteria": "mandatory",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The supranational geographic region where funds have been allocated.For more information ",
+ "hover_text": "elements.organisation.recipient_region_budget.recipient_region.hover_text",
"attributes": {
"vocabulary": {
"name": "region_vocabulary",
- "label": "vocabulary",
+ "label": "el_common.vocabulary",
"type": "select",
"multiselect": false,
"choices": "Activity/RegionVocabulary.json",
- "placeholder": "Select vocabulary",
+ "placeholder": "el_common.select_vocabulary",
"required": false,
"criteria": "",
- "hover_text": "An IATI code for the vocabulary from which the region code is drawn. If it is not present, code 1 (‘OECD DAC’) is assumed. For more information ",
- "help_text": "There are two lists of regions; the OECD DAC and UN region code lists. Please select one. IATI recommends that you use the OECD DAC codelist. Otherwise you can use another list of regions by selecting the option: ‘Reporting Organisation’ and providing the URI where this internal list is defined. If you do not choose an option, then the code list 'OECD DAC' is assumed."
+ "hover_text": "elements.organisation.recipient_region_budget.recipient_region.vocabulary.hover_text",
+ "help_text": "elements.organisation.recipient_region_budget.recipient_region.vocabulary.help_text"
},
"oecd_region_code": {
"name": "region_code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
"multiselect": false,
"choices": "Activity/Region.json",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": false,
"criteria": "",
- "hover_text": "Either an OECD DAC, UN region code or (if code ‘99’ Reporting organisation is selected for recipient-region/@vocabulary) a code from your internal vocabulary. For more information ",
- "help_text": "Select the region benefitting from this budget."
+ "hover_text": "el_common.either_an_orcs",
+ "help_text": "el_common.select_the_budget_region"
},
"region_code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "text",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": false,
"criteria": "",
"hidden": true,
- "hover_text": "Either an OECD DAC, UN region code or (if code ‘99’ Reporting organisation is selected for recipient-region/@vocabulary) a code from your internal vocabulary. For more information ",
- "help_text": "Select the region benefitting from this budget."
+ "hover_text": "el_common.either_an_orcs",
+ "help_text": "el_common.select_the_budget_region"
},
"vocabulary-uri": {
"name": "vocabulary_uri",
- "label": "vocabulary-uri",
+ "label": "el_common.vocabulary_uri",
"type": "text",
- "placeholder": "Type vocabulary-uri",
+ "placeholder": "el_common.type_vocabulary_uri",
"required": false,
"criteria": "",
- "hover_text": "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. For more information ",
- "help_text": "If you have selected the option: ‘Reporting Organisation’ please provide the URI where this internal list is defined."
+ "hover_text": "elements.organisation.recipient_region_budget.recipient_region.vocabulary-uri.hover_text",
+ "help_text": "el_common.if_you_have_selected"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Type the name of the region benefitting from the budget.",
+ "hover_text": "elements.organisation.recipient_region_budget.recipient_region.narrative.hover_text",
+ "help_text": "elements.organisation.recipient_region_budget.recipient_region.narrative.help_text",
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": false,
"criteria": "recommended",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.organisation.recipient_region_budget.recipient_region.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
@@ -717,57 +717,57 @@
},
"period_start": {
"name": "period_start",
- "label": "period-start",
+ "label": "el_common.period_start",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The start of the budget period.This element must occur once and only once (within each parent element).For more information ",
+ "hover_text": "elements.organisation.recipient_region_budget.period_start.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date. For more information ",
- "help_text": "Provide the start date of the recipient region budget period"
+ "hover_text": "elements.organisation.recipient_region_budget.period_start.date.hover_text",
+ "help_text": "elements.organisation.recipient_region_budget.period_start.date.help_text"
}
},
"sub_elements": {}
},
"period_end": {
"name": "period_end",
- "label": "period-end",
+ "label": "el_common.period_end",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The end of the period (which must not be greater than one year).For more information ",
+ "hover_text": "elements.organisation.recipient_region_budget.period_end.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date. For more information ",
- "help_text": "Provide the end date of the recipient region budget period."
+ "hover_text": "elements.organisation.recipient_region_budget.period_end.date.hover_text",
+ "help_text": "elements.organisation.recipient_region_budget.period_end.date.help_text"
}
},
"sub_elements": {}
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The total value of the money budgeted to be disbursed to the specified country during this time period. For more information ",
- "help_text": "Provide the amount of finance for this recipient region budget.",
+ "hover_text": "elements.organisation.recipient_region_budget.value.hover_text",
+ "help_text": "elements.organisation.recipient_region_budget.value.help_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -775,24 +775,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified. For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "el_common.a_three_letter_iso",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions. This attribute is required. For more information ",
+ "hover_text": "elements.organisation.recipient_region_budget.value.value_date.hover_text",
"help_text": ""
}
},
@@ -800,35 +800,35 @@
},
"budget_line": {
"name": "budget_line",
- "label": "budget line",
+ "label": "el_common.budget_line",
"add_more": true,
- "hover_text": "A breakdown of the recipient country’s budget into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative. For more information ",
- "help_text": "You can provide further information about this recipient region budget in budget lines. Budget lines allow the recipient region budget to be broken down, for example into different projects happening in a given year. Do note: The sum of each budget line does not have to equal the total value of the recipient region budget.",
+ "hover_text": "elements.organisation.recipient_region_budget.budget_line.hover_text",
+ "help_text": "elements.organisation.recipient_region_budget.budget_line.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "An internal reference for this budget line taken from the reporting organisation’s own system. For more information ",
- "help_text": "You can provide a reference that you use to identify this budget line in your organisation’s internal financial management system."
+ "hover_text": "elements.organisation.recipient_region_budget.budget_line.reference.hover_text",
+ "help_text": "el_common.you_can_provide_a_reference"
}
},
"sub_elements": {
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
- "hover_text": "The budget sub-total. The definition of the sub-division is determined by iati-organisation/total-budget/budget-line/narrative For more information ",
- "help_text": "Provide the amount of finance for this budget line.",
+ "hover_text": "elements.organisation.recipient_region_budget.budget_line.value.hover_text",
+ "help_text": "el_common.provide_the_amount_of_finance",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -836,24 +836,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "elements.organisation.recipient_region_budget.budget_line.value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions. For more information ",
+ "hover_text": "elements.organisation.recipient_region_budget.budget_line.value.value_date.hover_text",
"help_text": ""
}
},
@@ -861,29 +861,29 @@
},
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a description for this budget line.",
+ "hover_text": "el_common.the_free_text_name_link_5",
+ "help_text": "el_common.provide_a_description_for_budget_line",
"attr": {
"row": 4
},
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_6",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
@@ -894,71 +894,71 @@
},
"recipient_country_budget": {
"name": "recipient_country_budget",
- "label": "recipient country budget",
+ "label": "el_common.recipient_country_budget",
"add_more": true,
- "hover_text": "The recipient-country-budget element allows for the reporting of forward looking budgets for each country in which the organisation operates. For more information ",
- "help_text": "You can provide your organisation’s budget(s) according to its recipient country. You do not need to use the same periods, and these budgets do not have to add up to your organisation’s total budget. If your organisation maintains country-wide budgets please provide them here.",
+ "hover_text": "elements.organisation.recipient_country_budget.hover_text",
+ "help_text": "elements.organisation.recipient_country_budget.help_text",
"attributes": {
"status": {
"name": "status",
- "label": "status",
+ "label": "el_common.status",
"type": "select",
"multiselect": false,
"choices": "Activity/BudgetStatus.json",
- "placeholder": "Select status",
+ "placeholder": "el_common.select_status",
"required": false,
"criteria": "",
- "hover_text": "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
- "help_text": "Please select a status that best describes this recipient country budget: (1) indicative - a non-binding estimate for the described budget. (2) committed - a binding agreement for the described budget. If no status is selected, the budget is assumed to be indicative."
+ "hover_text": "elements.organisation.recipient_country_budget.status.hover_text",
+ "help_text": "elements.organisation.recipient_country_budget.status.help_text"
}
},
"sub_elements": {
"recipient_country": {
"name": "recipient_country",
- "label": "recipient country",
+ "label": "el_common.recipient_country",
"add_more": true,
"element_criteria": "mandatory",
- "hover_text": "The recipient country. For more information ",
+ "hover_text": "elements.organisation.recipient_country_budget.recipient_country.hover_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
"multiselect": false,
"choices": "Activity/Country.json",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": true,
"criteria": "mandatory",
- "hover_text": "ISO 3166-1 alpha-2 code for the country.This attribute is required. For more information ",
- "help_text": "Select the recipient country for this budget."
+ "hover_text": "elements.organisation.recipient_country_budget.recipient_country.code.hover_text",
+ "help_text": "elements.organisation.recipient_country_budget.recipient_country.code.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": false,
"criteria": "",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Type the name for the recipient country.",
+ "hover_text": "elements.organisation.recipient_country_budget.recipient_country.narrative.hover_text",
+ "help_text": "elements.organisation.recipient_country_budget.recipient_country.narrative.help_text",
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": false,
"criteria": "",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.organisation.recipient_country_budget.recipient_country.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
@@ -967,57 +967,57 @@
},
"period_start": {
"name": "period_start",
- "label": "period-start",
+ "label": "el_common.period_start",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The start of the budget period.This element must occur once and only once (within each parent element). For more information ",
+ "hover_text": "elements.organisation.recipient_country_budget.period_start.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date. For more information ",
- "help_text": "Provide the start date of the recipient country budget period."
+ "hover_text": "elements.organisation.recipient_country_budget.period_start.date.hover_text",
+ "help_text": "elements.organisation.recipient_country_budget.period_start.date.help_text"
}
},
"sub_elements": {}
},
"period_end": {
"name": "period_end",
- "label": "period-end",
+ "label": "el_common.period_end",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The end of the period (which must not be greater than one year). For more information ",
+ "hover_text": "elements.organisation.recipient_country_budget.period_end.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date. For more information ",
- "help_text": "Provide the end date of the recipient country budget period."
+ "hover_text": "elements.organisation.recipient_country_budget.period_end.date.hover_text",
+ "help_text": "elements.organisation.recipient_country_budget.period_end.date.help_text"
}
},
"sub_elements": {}
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The total value of the money budgeted to be disbursed to the specified recipient organisation during this time period. For more information ",
- "help_text": "Provide the amount of finance for this budget.",
+ "hover_text": "elements.organisation.recipient_country_budget.value.hover_text",
+ "help_text": "elements.organisation.recipient_country_budget.value.help_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -1025,24 +1025,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified. For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "el_common.a_three_letter_iso",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions. This attribute is required. For more information ",
+ "hover_text": "elements.organisation.recipient_country_budget.value.value_date.hover_text",
"help_text": ""
}
},
@@ -1050,35 +1050,35 @@
},
"budget_line": {
"name": "budget_line",
- "label": "budget line",
+ "label": "el_common.budget_line",
"add_more": true,
- "hover_text": "A breakdown of the total budget into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative. For more information ",
- "help_text": "You can provide further information about this recipient country budget in budget lines. Budget lines allow the recipient country budget to be broken down, for example into different projects happening in a given year. Do note: The sum of each budget line does not have to equal the total value of the recipient country budget.",
+ "hover_text": "elements.organisation.recipient_country_budget.budget_line.hover_text",
+ "help_text": "elements.organisation.recipient_country_budget.budget_line.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "An internal reference for this budget line taken from the reporting organisation’s own system. For more information ",
- "help_text": "You can provide a reference that you use to identify this budget line in your organisation’s internal financial management system."
+ "hover_text": "elements.organisation.recipient_country_budget.budget_line.reference.hover_text",
+ "help_text": "el_common.you_can_provide_a_reference"
}
},
"sub_elements": {
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
- "hover_text": "The budget sub-total. The definition of the sub-division is determined by iati-organisation/total-budget/budget-line/narrative For more information ",
- "help_text": "Provide the amount of finance for this budget line.",
+ "hover_text": "elements.organisation.recipient_country_budget.budget_line.value.hover_text",
+ "help_text": "el_common.provide_the_amount_of_finance",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -1086,24 +1086,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount.For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "elements.organisation.recipient_country_budget.budget_line.value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions. For more information ",
+ "hover_text": "elements.organisation.recipient_country_budget.budget_line.value.value_date.hover_text",
"help_text": ""
}
},
@@ -1111,29 +1111,29 @@
},
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a description for this budget line.",
+ "hover_text": "elements.organisation.recipient_country_budget.budget_line.narrative.hover_text",
+ "help_text": "el_common.provide_a_description_for_budget_line",
"attr": {
"row": 4
},
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "elements.organisation.recipient_country_budget.budget_line.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
@@ -1144,65 +1144,65 @@
},
"total_expenditure": {
"name": "total_expenditure",
- "label": "total expenditure",
+ "label": "el_common.total_expenditure",
"add_more": true,
- "hover_text": "The total-expenditure element allows for the reporting of the organisation’s international development expenditure. For more information ",
- "help_text": "IATI recommends that your organisation reports its past spending on its humanitarian and development work. This is known as ‘total expenditure’ and IATI recommends, where possible, the organisation reports its total expenditure for each of the past 3 years. An expenditure period must not be longer than one year.",
+ "hover_text": "elements.organisation.total_expenditure.hover_text",
+ "help_text": "elements.organisation.total_expenditure.help_text",
"attributes": {},
"sub_elements": {
"period_start": {
"name": "period_start",
- "label": "period-start",
+ "label": "el_common.period_start",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The start of the budget period.For more information ",
+ "hover_text": "elements.organisation.total_expenditure.period_start.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required.This value must be of type xsd:date. For more information ",
- "help_text": "Provide the start date of the expenditure period."
+ "hover_text": "elements.organisation.total_expenditure.period_start.date.hover_text",
+ "help_text": "elements.organisation.total_expenditure.period_start.date.help_text"
}
},
"sub_elements": {}
},
"period_end": {
"name": "period_end",
- "label": "period-end",
+ "label": "el_common.period_end",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The end of the period (which must not be greater than one year). For more information ",
+ "hover_text": "elements.organisation.total_expenditure.period_end.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required.This value must be of type xsd:date. For more information ",
- "help_text": "Provide the end date of the expenditure period."
+ "hover_text": "elements.organisation.total_expenditure.period_end.date.hover_text",
+ "help_text": "elements.organisation.total_expenditure.period_end.date.help_text"
}
},
"sub_elements": {}
},
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "The total value of the organisation’s aid expenditure for this period. For more information ",
- "help_text": "Provide the amount of finance for this expenditure.",
+ "hover_text": "elements.organisation.total_expenditure.value.hover_text",
+ "help_text": "elements.organisation.total_expenditure.value.help_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -1210,24 +1210,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount. For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "elements.organisation.total_expenditure.value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions. For more information ",
+ "hover_text": "elements.organisation.total_expenditure.value.value_date.hover_text",
"help_text": ""
}
},
@@ -1235,35 +1235,35 @@
},
"expense_line": {
"name": "expense_line",
- "label": "expense line",
+ "label": "el_common.expense_line",
"add_more": true,
- "hover_text": "A breakdown of the total expenditure into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative. For more information ",
- "help_text": "You can provide further information about your organisation’s expenditure in expense line(s). Expense lines allow the expenditure to be broken down into smaller expenses. Do note: The sum of each expense line does not have to equal the total value of the expenditure.",
+ "hover_text": "elements.organisation.total_expenditure.expense_line.hover_text",
+ "help_text": "elements.organisation.total_expenditure.expense_line.help_text",
"attributes": {
"ref": {
"name": "ref",
- "label": "reference",
+ "label": "el_common.reference",
"type": "text",
- "placeholder": "Type reference",
+ "placeholder": "el_common.type_reference",
"required": false,
"criteria": "",
- "hover_text": "An internal reference for this expenditure line taken from the reporting organisation’s own system. For more information ",
- "help_text": "You can provide a reference that you use to identify this expense line in your organisation’s internal financial management system."
+ "hover_text": "elements.organisation.total_expenditure.expense_line.reference.hover_text",
+ "help_text": "elements.organisation.total_expenditure.expense_line.reference.help_text"
}
},
"sub_elements": {
"value": {
"name": "value",
- "label": "value",
+ "label": "el_common.value",
"add_more": false,
- "hover_text": "The expenditure sub-total. The definition of the sub-division is determined by iati-organisation/total-expenditure/expenditure-line/narrative. For more information ",
- "help_text": "Provide the amount of finance for this expense line.",
+ "hover_text": "elements.organisation.total_expenditure.expense_line.value.hover_text",
+ "help_text": "elements.organisation.total_expenditure.expense_line.value.help_text",
"attributes": {
"amount": {
"name": "amount",
- "label": "value",
+ "label": "el_common.value",
"type": "text",
- "placeholder": "Type value here",
+ "placeholder": "el_common.type_value_here",
"required": true,
"criteria": "mandatory",
"hover_text": "",
@@ -1271,24 +1271,24 @@
},
"currency": {
"name": "currency",
- "label": "currency",
+ "label": "el_common.currency",
"type": "select",
"multiselect": false,
"choices": "Activity/Currency.json",
- "placeholder": "Select currency",
+ "placeholder": "el_common.select_currency",
"required": true,
"criteria": "mandatory",
- "hover_text": "A three letter ISO 4217 code for the original currency of the amount.For more information ",
- "help_text": "Select the currency that you have provided the value in."
+ "hover_text": "elements.organisation.total_expenditure.expense_line.value.currency.hover_text",
+ "help_text": "el_common.select_the_currency_that_you_provided"
},
"value_date": {
"name": "value_date",
- "label": "value-date",
+ "label": "el_common.value_date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "The date to be used for determining the exchange rate for currency conversions.For more information ",
+ "hover_text": "elements.organisation.total_expenditure.expense_line.value.value_date.hover_text",
"help_text": ""
}
},
@@ -1296,29 +1296,29 @@
},
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a description for this expense line.",
+ "hover_text": "elements.organisation.total_expenditure.expense_line.narrative.hover_text",
+ "help_text": "elements.organisation.total_expenditure.expense_line.narrative.help_text",
"attr": {
"row": 4
},
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed"
+ "hover_text": "elements.organisation.total_expenditure.expense_line.language.hover_text",
+ "help_text": "el_common.select_the_language_of_text_in_narrative"
}
},
"sub_elements": {}
@@ -1329,68 +1329,68 @@
},
"document_link": {
"name": "document_link",
- "label": "document-link",
+ "label": "el_common.document_link",
"add_more": true,
- "hover_text": "A link to an online, publicly accessible web page or document. For more information ",
- "help_text": "You can report further information about your organisation’s development of humanitarian programming by providing a publicly accessible link to a document or webpage. For example you could provide a link to your organisation’s annual report or a work plan for a particular country. If documents are available in other languages and stored separately, please provide them by creating additional document elements.Further guidance .",
+ "hover_text": "elements.organisation.document_link.hover_text",
+ "help_text": "elements.organisation.document_link.help_text",
"attributes": {
"url": {
"name": "url",
- "label": "url",
+ "label": "el_common.url",
"type": "text",
- "placeholder": "Select url",
+ "placeholder": "el_common.select_url",
"required": true,
"criteria": "mandatory",
- "hover_text": "The target URL of the external document, e.g. 'http://www.example.org/doc.odt'.For more information ",
- "help_text": "The URL must begin with either ‘http://’ or ‘https://’."
+ "hover_text": "elements.organisation.document_link.url.hover_text",
+ "help_text": "el_common.the_url_must_begin_with_either"
},
"format": {
"name": "format",
- "label": "format",
+ "label": "el_common.format",
"type": "select",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"multiselect": false,
"choices": "Activity/FileFormat.json",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
- "help_text": "If you know the format of the document file, please type it using an option from this list ."
+ "hover_text": "elements.organisation.document_link.format.hover_text",
+ "help_text": "elements.organisation.document_link.format.help_text"
}
},
"sub_elements": {
"title": {
"name": "title",
- "label": "title",
+ "label": "el_common.title",
"add_more": false,
"element_criteria": "mandatory",
- "hover_text": "A short, human-readable title. For more information ",
+ "hover_text": "elements.organisation.document_link.title.hover_text",
"attributes": {},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a short title for the document or webpage.",
+ "hover_text": "el_common.the_free_text_name_link_4",
+ "help_text": "el_common.provide_a_short_title_for_desc",
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_5",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
@@ -1399,36 +1399,36 @@
},
"description": {
"name": "description",
- "label": "Description",
+ "label": "el_common.description",
"add_more": false,
"attributes": {},
- "hover_text": "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ "hover_text": "elements.organisation.document_link.description.hover_text",
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Provide a short description of the document or webpage, including any instructions on where to find relevant information.",
+ "hover_text": "el_common.the_free_text_name_link_4",
+ "help_text": "el_common.provide_a_short_description_of_document",
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_5",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
@@ -1437,116 +1437,116 @@
},
"category": {
"name": "category",
- "label": "Category",
+ "label": "el_common.category",
"add_more": true,
"element_criteria": "mandatory",
"wrapper_collection": false,
- "hover_text": "IATI Document Category Code. For more information ",
+ "hover_text": "elements.organisation.document_link.category.hover_text",
"help_text": "",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
"multiSelect": false,
"choices": "Activity/DocumentCategory.json",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": true,
"criteria": "mandatory",
- "hover_text": "An IATI code defining the category of the document. For more information ",
- "help_text": "You must select a category of the document or webpage that you have provided."
+ "hover_text": "elements.organisation.document_link.category.code.hover_text",
+ "help_text": "el_common.you_must_select_category"
}
},
"sub_elements": {}
},
"language": {
"name": "language",
- "label": "Language",
+ "label": "el_common.language",
"add_more": true,
"wrapper_collection": false,
- "hover_text": "The ISO 639-1 language code in which target document is written, e.g. “en”. Can be repeated to describe multi-lingual documents. For more information ",
+ "hover_text": "elements.organisation.document_link.language.hover_text",
"attributes": {
"code": {
"name": "language",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": true,
"criteria": "mandatory",
- "hover_text": "ISO 639-1 language code. For more information ",
- "help_text": "Select the language of the document or webpage"
+ "hover_text": "elements.organisation.document_link.language.code.hover_text",
+ "help_text": "elements.organisation.document_link.language.code.help_text"
}
},
"sub_elements": {}
},
"document_date": {
"name": "document_date",
- "label": "document date",
+ "label": "el_common.document_date",
"add_more": false,
- "hover_text": "The date of publication of the document that is being linked to. For more information ",
+ "hover_text": "elements.organisation.document_link.document_date.hover_text",
"attributes": {
"date": {
"name": "date",
- "label": "date",
+ "label": "el_common.date",
"type": "date",
- "placeholder": "YYYY-MM-DD",
+ "placeholder": "el_common.yyyy_mm_dd",
"required": true,
"criteria": "mandatory",
- "hover_text": "This attribute is required. This value must be of type xsd:date. For more information ",
- "help_text": "Provide the date of publication for the document or webpage, or provide the date that it was last updated."
+ "hover_text": "elements.organisation.document_link.document_date.date.hover_text",
+ "help_text": "el_common.provide_the_date_of_publication"
}
},
"sub_elements": {}
},
"recipient_country": {
"name": "recipient_country",
- "label": "recipient country",
+ "label": "el_common.recipient_country",
"criteria": "",
"add_more": true,
- "hover_text": "The recipient country that is the focus of the document. May be repeated for multiple countries. For more information ",
- "help_text": "If a recipient country is the focus of this document or webpage, please specify it here. You can state more than one country.",
+ "hover_text": "elements.organisation.document_link.recipient_country.hover_text",
+ "help_text": "elements.organisation.document_link.recipient_country.help_text",
"attributes": {
"code": {
"name": "code",
- "label": "code",
+ "label": "el_common.code",
"type": "select",
"multiselect": false,
"choices": "Activity/Country.json",
- "placeholder": "Select code",
+ "placeholder": "el_common.select_code",
"required": true,
"criteria": "mandatory",
- "hover_text": "ISO 3166-1 alpha-2 code for the country. This attribute is required. For more information ",
- "help_text": "Select the recipient country that is the focus for this document or webpage."
+ "hover_text": "elements.organisation.document_link.recipient_country.code.hover_text",
+ "help_text": "elements.organisation.document_link.recipient_country.code.help_text"
}
},
"sub_elements": {
"narrative": {
"name": "narrative",
- "label": "narrative",
+ "label": "el_common.narrative",
"type": "textarea",
- "placeholder": "Type narrative",
+ "placeholder": "el_common.type_narrative",
"required": true,
"criteria": "mandatory",
"add_more": true,
"attr": {
"row": 4
},
- "hover_text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
- "help_text": "Type the name of the country that is the focus for this document or webpage.",
+ "hover_text": "el_common.the_free_text_name_link_4",
+ "help_text": "elements.organisation.document_link.recipient_country.narrative.help_text",
"attributes": {
"lang": {
"name": "language",
- "label": "language",
+ "label": "el_common.language",
"type": "select",
"multiSelect": false,
"choices": "Activity/Language.json",
- "placeholder": "Select language",
+ "placeholder": "el_common.select_language",
"required": true,
"criteria": "mandatory",
- "hover_text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
- "help_text": "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ "hover_text": "el_common.a_code_specifying_text_link_5",
+ "help_text": "el_common.select_the_language_of_text_in_narrative_2"
}
},
"sub_elements": {}
diff --git a/app/IATI/Elements/Builder/BaseFormCreator.php b/app/IATI/Elements/Builder/BaseFormCreator.php
index adc4afd904..630dbf3f7c 100644
--- a/app/IATI/Elements/Builder/BaseFormCreator.php
+++ b/app/IATI/Elements/Builder/BaseFormCreator.php
@@ -60,7 +60,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
'buttons' => [
'clear' => [
- 'label' => 'Cancel',
+ 'label' => trans('buttons.cancel'),
'attr' => [
'type' => 'anchor',
'class' => 'ghost-btn mr-8',
@@ -69,7 +69,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
'submit' => [
- 'label' => 'Save and Exit',
+ 'label' => trans('buttons.save_and_exit'),
'attr' => [
'type' => 'submit',
'class' => 'primary-btn save-btn',
diff --git a/app/IATI/Elements/Builder/MultilevelSubElementFormCreator.php b/app/IATI/Elements/Builder/MultilevelSubElementFormCreator.php
index b72a33d244..13e46766e2 100644
--- a/app/IATI/Elements/Builder/MultilevelSubElementFormCreator.php
+++ b/app/IATI/Elements/Builder/MultilevelSubElementFormCreator.php
@@ -58,7 +58,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
'buttons' => [
'clear' => [
- 'label' => 'Cancel',
+ 'label' => trans('buttons.cancel'),
'attr' => [
'type' => 'anchor',
'class' => 'ghost-btn mr-8',
@@ -66,7 +66,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
],
'submit' => [
- 'label' => 'Save and Exit',
+ 'label' => trans('buttons.save_and_exit'),
'attr' => [
'type' => 'submit',
'class' => 'primary-btn save-btn',
diff --git a/app/IATI/Elements/Builder/ParentCollectionFormCreator.php b/app/IATI/Elements/Builder/ParentCollectionFormCreator.php
index 8b732743e6..47f45552b5 100644
--- a/app/IATI/Elements/Builder/ParentCollectionFormCreator.php
+++ b/app/IATI/Elements/Builder/ParentCollectionFormCreator.php
@@ -58,7 +58,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
'buttons' => [
'clear' => [
- 'label' => 'Cancel',
+ 'label' => trans('buttons.cancel'),
'attr' => [
'type' => 'anchor',
'class' => 'ghost-btn mr-8',
@@ -66,7 +66,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
],
'submit' => [
- 'label' => 'Save and Exit',
+ 'label' => trans('buttons.save_and_exit'),
'attr' => [
'type' => 'submit',
'class' => 'primary-btn save-btn',
diff --git a/app/IATI/Elements/Builder/ResultElementFormCreator.php b/app/IATI/Elements/Builder/ResultElementFormCreator.php
index 996988a9ca..e5d974d9d6 100644
--- a/app/IATI/Elements/Builder/ResultElementFormCreator.php
+++ b/app/IATI/Elements/Builder/ResultElementFormCreator.php
@@ -58,7 +58,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
'buttons' => [
'clear' => [
- 'label' => 'Cancel',
+ 'label' => trans('buttons.cancel'),
'attr' => [
'type' => 'anchor',
'class' => 'ghost-btn mr-8',
@@ -66,7 +66,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
],
'submit' => [
- 'label' => 'Save and Exit',
+ 'label' => trans('buttons.save_and_exit'),
'attr' => [
'type' => 'submit',
'class' => 'primary-btn save-btn',
diff --git a/app/IATI/Elements/Builder/TransactionElementFormCreator.php b/app/IATI/Elements/Builder/TransactionElementFormCreator.php
index fe9ec0ff9e..16346b12b4 100644
--- a/app/IATI/Elements/Builder/TransactionElementFormCreator.php
+++ b/app/IATI/Elements/Builder/TransactionElementFormCreator.php
@@ -58,7 +58,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
'buttons' => [
'clear' => [
- 'label' => 'Cancel',
+ 'label' => trans('buttons.cancel'),
'attr' => [
'type' => 'anchor',
'class' => 'ghost-btn mr-8',
@@ -66,7 +66,7 @@ public function editForm(array $model, $formData, $method, string $parent_url):
],
],
'submit' => [
- 'label' => 'Save and Exit',
+ 'label' => trans('buttons.save_and_exit'),
'attr' => [
'type' => 'submit',
'class' => 'primary-btn save-btn',
diff --git a/app/IATI/Elements/Forms/BaseForm.php b/app/IATI/Elements/Forms/BaseForm.php
index 57f8d21b37..67395ac115 100644
--- a/app/IATI/Elements/Forms/BaseForm.php
+++ b/app/IATI/Elements/Forms/BaseForm.php
@@ -41,8 +41,8 @@ public function buildCollection($field): void
'data' => $field,
'label' => false,
'element_criteria' => Arr::get($field, 'element_criteria', ''),
- 'hover_text' => Arr::get($field, 'hover_text', ''),
- 'help_text' => Arr::get($field, 'help_text', ''),
+ 'hover_text' => trans(Arr::get($field, 'hover_text', '')),
+ 'help_text' => trans(Arr::get($field, 'help_text', '')),
'wrapper' => [
'class' => 'wrapped-child-body',
],
@@ -63,7 +63,7 @@ public function buildCollection($field): void
if ((isset($field['add_more']) && $field['add_more']) || (isset($element['add_more_attributes']) && $element['add_more_attributes'])) {
$this->add('add_to_collection_' . $field['name'], 'button', [
- 'label' => sprintf('Add additional %s', str_replace('_', ' ', $field['name'])),
+ 'label' => sprintf(trans('buttons.add_additional') . ' %s', str_replace('_', ' ', $field['name'])),
'attr' => [
'class' => 'add_to_collection add_more button relative -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-spring-50 text-bluecoral ',
'form_type' => $field['parent'] . '_' . $field['name'],
@@ -86,8 +86,8 @@ public function buildCollection($field): void
'data' => $field,
'label' => false,
'element_criteria' => $field['element_criteria'] ?? '',
- 'hover_text' => isset($field['name']) ? Arr::get($field, 'hover_text', '') : Arr::get($element, 'hover_text', ''),
- 'help_text' => isset($field['name']) ? Arr::get($field, 'hover_text', '') : Arr::get($element, 'help_text', ''),
+ 'hover_text' => isset($field['name']) ? trans(Arr::get($field, 'hover_text', '')) : trans(Arr::get($element, 'hover_text', '')),
+ 'help_text' => isset($field['name']) ? trans(Arr::get($field, 'hover_text', '')) : trans(Arr::get($element, 'help_text', '')),
'wrapper' => [
'class' => ((Arr::get($element, 'attributes', null) && isset($field['name']) && strtolower(
$field['name']
@@ -112,7 +112,7 @@ public function buildCollection($field): void
if ((isset($field['add_more']) && $field['add_more']) || Arr::get($element, 'add_more_attributes', false)) {
$this->add('add_to_collection_' . $name, 'button', [
- 'label' => sprintf('add additional %s', str_replace('_', ' ', Arr::get($element, 'attributes', null) ? ($field['name'] ?? $name) : $element['name'])),
+ 'label' => sprintf(trans('buttons.add_additional') . ' %s', str_replace('_', ' ', Arr::get($element, 'attributes', null) ? ($field['name'] ?? $name) : $element['name'])),
'attr' => [
'class' => 'add_to_collection add_more button relative -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-spring-50 text-bluecoral ',
'form_type' => !empty(Arr::get($this->getData(), 'name', null)) ? sprintf(
@@ -230,7 +230,7 @@ public function buildField($field): void
'read_only',
$field
) && $field['read_only'] == true) ? 'readonly' : false,
- 'placeholder' => Arr::get($field, 'placeholder', ''),
+ 'placeholder' => trans(Arr::get($field, 'placeholder', '')),
],
'wrapper' => [
@@ -240,7 +240,7 @@ public function buildField($field): void
if ($field['type'] === 'select') {
$options['attr']['class'] = 'select2';
- $options['attr']['data-placeholder'] = Arr::get($field, 'placeholder', '');
+ $options['attr']['data-placeholder'] = trans(Arr::get($field, 'placeholder', ''));
$options['empty_value'] = $field['empty_value'] ?? 'Select a value';
$options['choices'] = $field['choices'] ? (is_string($field['choices']) ? ($this->getCodeList($field['choices'])) : $field['choices']) : false;
$options['default_value'] = $field['default'] ?? '';
diff --git a/app/IATI/Elements/Forms/ParentCollectionForm.php b/app/IATI/Elements/Forms/ParentCollectionForm.php
index 34debd79c1..f3aa0370fd 100644
--- a/app/IATI/Elements/Forms/ParentCollectionForm.php
+++ b/app/IATI/Elements/Forms/ParentCollectionForm.php
@@ -33,8 +33,8 @@ public function buildForm(): void
'data' => $this->data,
'label' => false,
'element_criteria' => $field['element_criteria'] ?? '',
- 'hover_text' => Arr::get($field, 'hover_text', ''),
- 'help_text' => Arr::get($field, 'help_text', ''),
+ 'hover_text' => trans(Arr::get($field, 'hover_text', '')),
+ 'help_text' => trans(Arr::get($field, 'help_text', '')),
'wrapper' => [
'class' => 'multi-form relative',
],
@@ -49,7 +49,7 @@ public function buildForm(): void
if (Arr::get($field, 'add_more', false) || Arr::get($field, 'add_more_attributes', false)) {
$this->add('add_to_collection', 'button', [
- 'label' => sprintf('add additional %s', str_replace('_', ' ', $field['name'])),
+ 'label' => sprintf(trans('buttons.add_additional') . ' %s', str_replace('_', ' ', $field['name'])),
'attr' => [
'icon' => true,
'class' => 'add_to_parent add_more button relative text-xs font-bold text-spring-50 text-bluecoral uppercase leading-normal -translate-y-1/2 pl-3.5',
diff --git a/app/IATI/Elements/Forms/ResultElementForm.php b/app/IATI/Elements/Forms/ResultElementForm.php
index b1d5db0cbf..25793e00ea 100644
--- a/app/IATI/Elements/Forms/ResultElementForm.php
+++ b/app/IATI/Elements/Forms/ResultElementForm.php
@@ -79,7 +79,7 @@ public function buildForm(): void
if (Arr::get($sub_element, 'add_more', false) || Arr::get($sub_element, 'add_more_attributes', false)) {
$this->add('add_to_collection_' . $sub_element['name'], 'button', [
'label' => sprintf(
- 'add additional %s',
+ trans('buttons.add_additional') . ' %s',
str_replace('_', ' ', $this->getData(sprintf('sub_elements.%s.name', $name)))
),
'attr' => [
diff --git a/app/IATI/Elements/Forms/SubElementForm.php b/app/IATI/Elements/Forms/SubElementForm.php
index 0544c6cb2d..534248d48d 100644
--- a/app/IATI/Elements/Forms/SubElementForm.php
+++ b/app/IATI/Elements/Forms/SubElementForm.php
@@ -68,7 +68,7 @@ public function buildFields($field, $isAttribute = false): void
'multiple' => $field['multiple'] ?? false,
'attr' => [
'class' => 'form__input border-0',
- 'placeholder' => Arr::get($field, 'placeholder', ''),
+ 'placeholder' => trans(Arr::get($field, 'placeholder', '')),
],
'wrapper' => [
'class' => 'form-field xl:basis-6/12',
@@ -77,7 +77,7 @@ public function buildFields($field, $isAttribute = false): void
if (array_key_exists('type', $field) && $field['type'] == 'select') {
$options['attr']['class'] = 'select2';
- $options['attr']['data-placeholder'] = Arr::get($field, 'placeholder', '');
+ $options['attr']['data-placeholder'] = trans(Arr::get($field, 'placeholder', ''));
$options['empty_value'] = $field['empty_value'] ?? 'Select a value';
$options['choices'] = $field['choices'] ? (is_string($field['choices']) ? ($this->getCodeList($field['choices'])) : $field['choices']) : false;
$options['default_value'] = $field['default'] ?? '';
diff --git a/app/IATI/Elements/Forms/TransactionElementForm.php b/app/IATI/Elements/Forms/TransactionElementForm.php
index 32be52349a..256fb0e5a7 100644
--- a/app/IATI/Elements/Forms/TransactionElementForm.php
+++ b/app/IATI/Elements/Forms/TransactionElementForm.php
@@ -65,7 +65,7 @@ public function buildForm(): void
if (Arr::get($sub_element, 'add_more', false) || Arr::get($sub_element, 'add_more_attributes', false)) {
$this->add('add_to_collection_' . $sub_element['name'], 'button', [
- 'label' => sprintf('add additional %s', str_replace('_', ' ', $sub_element['name'])),
+ 'label' => sprintf(trans('buttons.add_additional') . ' %s', str_replace('_', ' ', $sub_element['name'])),
'attr' => [
'class' => 'add_to_parent add_more button relative -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-spring-50 text-bluecoral',
'form_type' => $sub_element['name'],
diff --git a/app/IATI/Elements/Forms/WrapperCollection.php b/app/IATI/Elements/Forms/WrapperCollection.php
index c10e7b27ce..22c448e15f 100644
--- a/app/IATI/Elements/Forms/WrapperCollection.php
+++ b/app/IATI/Elements/Forms/WrapperCollection.php
@@ -72,7 +72,7 @@ public function buildForm(): void
if (isset($field['add_more']) && $field['add_more']) {
$this->add('add_to_collection_' . $name, 'button', [
- 'label' => sprintf('Add additional %s', str_replace('_', ' ', $name)),
+ 'label' => sprintf(trans('buttons.add_additional') . ' %s', str_replace('_', ' ', $name)),
'attr' => [
'class' => 'add_to_collection add_more button relative -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-spring-50 text-bluecoral',
'form_type' => $data['parent'] . '_' . $data['name'] . '_' . $field['name'],
@@ -107,7 +107,7 @@ public function buildFields($field): void
'multiple' => $field['multiple'] ?? false,
'attr' => [
'class' => 'form__input border-0',
- 'placeholder' => Arr::get($field, 'placeholder', ''),
+ 'placeholder' => trans(Arr::get($field, 'placeholder', '')),
],
'wrapper' => [
'class' => 'form-field basis-auto w-full xl:min-w-[300px] xl:basis-6/12 sub-attribute',
@@ -116,7 +116,7 @@ public function buildFields($field): void
if (array_key_exists('type', $field) && $field['type'] == 'select') {
$options['attr']['class'] = 'select2';
- $options['attr']['data-placeholder'] = Arr::get($field, 'placeholder', '');
+ $options['attr']['data-placeholder'] = trans(Arr::get($field, 'placeholder', ''));
$options['empty_value'] = $field['empty_value'] ?? 'Select a value';
$options['choices'] = $field['choices'] ? (is_string($field['choices']) ? ($this->getCodeList($field['choices'])) : $field['choices']) : false;
$options['default_value'] = $field['default'] ?? '';
@@ -200,7 +200,7 @@ public function buildCollection($field): void
if (isset($field['add_more']) && $field['add_more']) {
$this->add('add_to_collection_' . $field['name'], 'button', [
- 'label' => sprintf('Add additional %s', str_replace('_', ' ', $field['name'])),
+ 'label' => sprintf(trans('buttons.add_additional') . ' %s', str_replace('_', ' ', $field['name'])),
'attr' => [
'class' => 'add_to_collection add_more button relative -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-spring-50 text-bluecoral ',
'form_type' => $field['name'],
diff --git a/app/IATI/Elements/Forms/WrapperCollectionForm.php b/app/IATI/Elements/Forms/WrapperCollectionForm.php
index f71f500406..86678e127f 100644
--- a/app/IATI/Elements/Forms/WrapperCollectionForm.php
+++ b/app/IATI/Elements/Forms/WrapperCollectionForm.php
@@ -75,7 +75,7 @@ public function buildForm(): void
if (isset($field['add_more']) && $field['add_more']) {
$this->add('add_to_collection_' . $name, 'button', [
- 'label' => sprintf('Add additional %s', str_replace('_', ' ', Arr::get($data, 'attributes', null) ? $field['name'] : $data['name'])),
+ 'label' => sprintf(trans('buttons.add_additional') . ' %s', str_replace('_', ' ', Arr::get($data, 'attributes', null) ? $field['name'] : $data['name'])),
'attr' => [
'class' => 'add_to_collection add_more button relative -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-spring-50 text-bluecoral',
'form_type' => $data['parent'] . '_' . $data['name'] . '_' . $field['name'],
@@ -118,7 +118,7 @@ public function buildFields($field): void
'multiple' => $field['multiple'] ?? false,
'attr' => [
'class' => 'form__input border-0',
- 'placeholder' => Arr::get($field, 'placeholder', ''),
+ 'placeholder' => trans(Arr::get($field, 'placeholder', '')),
],
'wrapper' => [
'class' => 'form-field basis-auto w-full xl:min-w-[300px] xl:basis-6/12 sub-attribute',
@@ -127,7 +127,7 @@ public function buildFields($field): void
if (array_key_exists('type', $field) && $field['type'] == 'select') {
$options['attr']['class'] = 'select2';
- $options['attr']['data-placeholder'] = Arr::get($field, 'placeholder', '');
+ $options['attr']['data-placeholder'] = trans(Arr::get($field, 'placeholder', ''));
$options['empty_value'] = $field['empty_value'] ?? 'Select a value';
$options['choices'] = $field['choices'] ? (is_string($field['choices']) ? ($this->getCodeList($field['choices'])) : $field['choices']) : false;
$options['default_value'] = $field['default'] ?? '';
@@ -211,7 +211,7 @@ public function buildCollection($field): void
if (isset($field['add_more']) && $field['add_more']) {
$this->add('add_to_collection_' . $field['name'], 'button', [
- 'label' => sprintf('Add additional %s', str_replace('_', ' ', $field['name'])),
+ 'label' => sprintf(trans('buttons.add_additional') . ' %s', str_replace('_', ' ', $field['name'])),
'attr' => [
'class' => 'add_to_collection add_more button relative -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-spring-50 text-bluecoral ',
'form_type' => $field['name'],
diff --git a/app/IATI/Models/User/User.php b/app/IATI/Models/User/User.php
index 19c3075049..55801a8aa2 100644
--- a/app/IATI/Models/User/User.php
+++ b/app/IATI/Models/User/User.php
@@ -96,11 +96,10 @@ public static function sendEmail(): void
{
VerifyEmail::toMailUsing(function ($notifiable, $url) {
return (new MailMessage)
- ->subject('Verify Email Address')
- ->greeting('Hello ' . $notifiable->full_name)
- ->line('Welcome to IATI Publisher. Your email has been used to create a new account here.
- Please click the button below to verify that you have created the account in it.')
- ->action('Verify Email Address', $url);
+ ->subject(trans('common.sendEmail.verify_email_address'))
+ ->greeting(trans('common.sendEmail.hello') . $notifiable->full_name)
+ ->line(trans('common.sendEmail.line'))
+ ->action(trans('common.sendEmail.verify_email_address'), $url);
});
}
diff --git a/app/IATI/Services/User/UserService.php b/app/IATI/Services/User/UserService.php
index 4bbca917d6..ad6b2ef3ab 100644
--- a/app/IATI/Services/User/UserService.php
+++ b/app/IATI/Services/User/UserService.php
@@ -209,7 +209,7 @@ public function checkIATIIdentifier(string $identifier): array
$errors = [];
if ($res->getStatusCode() === 404) {
- $errors['error'] = ['Error occurred while trying to check user email.'];
+ $errors['error'] = [trans('controller.error_has_occurred', ['action'=>trans('controller.trying_to'), 'suffix'=>trans('controller.check_user_email')])];
return $errors;
}
@@ -314,7 +314,7 @@ public function checkUserEmail(string $email): array
$errors = [];
if ($res->getStatusCode() === 404) {
- $errors['error'] = ['Error occurred while trying to check user email.'];
+ $errors['error'] = [trans('controller.error_has_occurred', ['action'=>trans('controller.trying_to'), 'suffix'=>trans('controller.check_user_email')])];
return $errors;
}
diff --git a/app/IATI/Services/Workflow/ActivityWorkflowService.php b/app/IATI/Services/Workflow/ActivityWorkflowService.php
index dd324dbd22..f830d5d481 100644
--- a/app/IATI/Services/Workflow/ActivityWorkflowService.php
+++ b/app/IATI/Services/Workflow/ActivityWorkflowService.php
@@ -266,16 +266,16 @@ public function getPublishErrorMessage($organization, string $type = 'activity')
$messages = [];
if (!$this->isUserVerified()) {
- $messages[] = 'You have not verified your email address.';
+ $messages[] = trans('common.error.publish_error_1');
}
if ($this->hasNoPublisherInfo($organization->settings)) {
- $messages[] = 'Your API Key is not valid or it is empty.';
+ $messages[] = trans('common.error.publish_error_2');
}
if ($type === 'activity' && !$this->isOrganizationPublished($organization)) {
- $messages[] = 'Your Organisation data is not published.';
+ $messages[] = trans('common.error.publish_error_3');
}
if (!$this->organizationService->isPublisherStateActive($organization['publisher_id'])) {
- $messages[] = 'The Publisher ID is not verified in IATI Registry.';
+ $messages[] = trans('common.error.publish_error_4');
}
return $messages;
diff --git a/app/IATI/Services/Workflow/BulkPublishingService.php b/app/IATI/Services/Workflow/BulkPublishingService.php
index 00d88a3f3e..1c90c78529 100644
--- a/app/IATI/Services/Workflow/BulkPublishingService.php
+++ b/app/IATI/Services/Workflow/BulkPublishingService.php
@@ -77,7 +77,7 @@ public function getCoreElementsCompletedArray($activityIds): array
if ($activity && $activity->status === 'draft') {
$coreElementsCompleted[$this->getCompleteStatus($activity)][] = [
'activity_id' => $activity->id,
- 'title' => Arr::get($activity->title, '0.narrative', 'Not Available') ?: 'Not Available',
+ 'title' => Arr::get($activity->title, '0.narrative', trans('common.missing.not_available')) ?: trans('common.missing.not_available'),
];
}
}
@@ -122,11 +122,11 @@ public function validateActivitiesOnIATI($activityIds): array
$response = $this->validateWithException($activity);
if (!Arr::get($response, 'success', true)) {
- logger()->error('Error has occurred while validating activity with id' . $activityId);
+ logger()->error(trans('controller.error_has_occurred', ['action'=>trans('controller.validating'), 'suffix'=>trans('controller.activity_with_id')]) . $activityId);
} else {
$totalResponse[$activity->id] = [
'activity_id' => $activity->id,
- 'title' => Arr::get($activity->title, '0.narrative', 'Not Available') ?: 'Not Available',
+ 'title' => Arr::get($activity->title, '0.narrative', trans('common.missing.not_available')) ?: trans('common.missing.not_available'),
'response' => $response,
];
}
@@ -154,7 +154,7 @@ public function validateWithException($activity): array
return $response;
}
- return ['success' => false, 'error' => 'Error has occurred while validating activity.'];
+ return ['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.validating'), 'suffix'=>trans('el_common.activity')])];
} catch (BadResponseException $ex) {
if ($ex->getCode() === 422) {
$response = json_decode($ex->getResponse()->getBody()->getContents(), true, 512, JSON_THROW_ON_ERROR);
@@ -164,7 +164,7 @@ public function validateWithException($activity): array
}
}
- return ['success' => false, 'error' => 'Error has occurred while validating activity.'];
+ return ['success' => false, 'error' => trans('controller.error_has_occurred', ['action'=>trans('controller.validating'), 'suffix'=>trans('el_common.activity')])];
} catch (\Exception $e) {
logger()->error($e->getMessage());
@@ -208,16 +208,16 @@ public function checkActivityErrors($response, $modifiedResponse): array
if (array_sum($summary) === 0) {
$modifiedResponse['no_errors'][] = [
- 'activity_id' => Arr::get($response, 'activity_id', 'Not Available'),
- 'title' => Arr::get($response, 'title', 'Not Available'),
+ 'activity_id' => Arr::get($response, 'activity_id', trans('common.missing.not_available')),
+ 'title' => Arr::get($response, 'title', trans('common.missing.not_available')),
'errors' => [],
];
}
if (Arr::get($summary, 'critical', 0) > 0) {
$modifiedResponse['critical'][] = [
- 'activity_id' => Arr::get($response, 'activity_id', 'Not Available'),
- 'title' => Arr::get($response, 'title', 'Not Available'),
+ 'activity_id' => Arr::get($response, 'activity_id', trans('common.missing.not_available')),
+ 'title' => Arr::get($response, 'title', trans('common.missing.not_available')),
'errors' => [
'critical' => Arr::get($summary, 'critical', 0),
],
@@ -226,8 +226,8 @@ public function checkActivityErrors($response, $modifiedResponse): array
if ((Arr::get($summary, 'error', 0) > 0) || (Arr::get($summary, 'warning', 0) > 0)) {
$modifiedResponse['errors'][] = [
- 'activity_id' => Arr::get($response, 'activity_id', 'Not Available'),
- 'title' => Arr::get($response, 'title', 'Not Available'),
+ 'activity_id' => Arr::get($response, 'activity_id', trans('common.missing.not_available')),
+ 'title' => Arr::get($response, 'title', trans('common.missing.not_available')),
'errors' => [
'error' => Arr::get($summary, 'error', 0),
'warning' => Arr::get($summary, 'warning', 0),
@@ -251,13 +251,13 @@ public function generateInitialBulkPublishingResponse($activities): array
$response['status'] = 'processing';
$response['organization_id'] = auth()->user()->organization->id;
$response['job_batch_uuid'] = (string) Str::uuid();
- $response['message'] = 'Bulk publishing started';
+ $response['message'] = trans('controller.bulk_publishing', ['suffix'=>trans('controller.started')]);
$response['activities'] = [];
if (count($activities)) {
foreach ($activities as $activity) {
$response['activities'][$activity->id]['activity_id'] = $activity->id;
- $response['activities'][$activity->id]['activity_title'] = Arr::get($activity->title, '0.narrative', 'Not Available') ?: 'Not Available';
+ $response['activities'][$activity->id]['activity_title'] = Arr::get($activity->title, '0.narrative', trans('common.missing.not_available')) ?: trans('common.missing.not_available');
$response['activities'][$activity->id]['status'] = 'created';
}
}
@@ -281,7 +281,7 @@ public function getPublishingResponse($publishStatus): array
$response['status'] = 'completed';
$response['organization_id'] = $publishStatus->first()->organization_id;
$response['job_batch_uuid'] = $publishStatus->first()->job_batch_uuid;
- $response['message'] = 'Bulk publishing completed';
+ $response['message'] = trans('controller.bulk_publishing', ['suffix'=>trans('controller.completed')]);
$response['activities'] = [];
if (count($publishStatus)) {
@@ -298,7 +298,7 @@ public function getPublishingResponse($publishStatus): array
if ($processing) {
$response['status'] = 'processing';
- $response['message'] = 'Bulk publishing processing.';
+ $response['message'] = trans('controller.bulk_publishing', ['suffix'=>trans('controller.processing')]);
}
if (!$processing) {
diff --git a/app/XmlImporter/Foundation/XmlQueueProcessor.php b/app/XmlImporter/Foundation/XmlQueueProcessor.php
index 0b9c6a2a0e..d44c398c0d 100644
--- a/app/XmlImporter/Foundation/XmlQueueProcessor.php
+++ b/app/XmlImporter/Foundation/XmlQueueProcessor.php
@@ -104,7 +104,7 @@ public function import($filename, $orgId, $orgRef, $userId, $dbIatiIdentifiers):
$this->userId = $userId;
$this->filename = $filename;
$contents = awsGetFile(sprintf('%s/%s/%s', $this->xml_file_storage_path, $this->orgId, $filename));
- awsUploadFile(sprintf('%s/%s/%s', $this->xml_data_storage_path, $this->orgId, 'status.json'), json_encode(['success' => true, 'message' => 'Processing'], JSON_THROW_ON_ERROR));
+ awsUploadFile(sprintf('%s/%s/%s', $this->xml_data_storage_path, $this->orgId, 'status.json'), json_encode(['success' => true, 'message' => ucfirst(trans('controller.processing'))], JSON_THROW_ON_ERROR));
awsDeleteFile(sprintf('%s/%s/%s', $this->xml_data_storage_path, $this->orgId, 'schema_error.log'));
if ($this->xmlServiceProvider->isValidAgainstSchema($contents)) {
@@ -125,7 +125,7 @@ public function import($filename, $orgId, $orgRef, $userId, $dbIatiIdentifiers):
));
awsUploadFile(sprintf('%s/%s/%s', $this->xml_data_storage_path, $orgId, 'status.json'), json_encode(
- ['success' => false, 'message' => 'Invalid XMl or Header mismatched'],
+ ['success' => false, 'message' => trans('invalid_xml_or_header')],
JSON_THROW_ON_ERROR
));
@@ -133,7 +133,7 @@ public function import($filename, $orgId, $orgRef, $userId, $dbIatiIdentifiers):
return false;
} catch (\Exception $e) {
- awsUploadFile(sprintf('%s/%s/%s', $this->xml_data_storage_path, $orgId, 'status.json'), json_encode(['success' => false, 'message' => 'Error has occurred while importing the file.'], JSON_THROW_ON_ERROR));
+ awsUploadFile(sprintf('%s/%s/%s', $this->xml_data_storage_path, $orgId, 'status.json'), json_encode(['success' => false, 'message' => trans('controller.error_has_occurred', ['action'=>trans('controller.importing'), 'suffix'=>trans('controller.the_file')])], JSON_THROW_ON_ERROR));
throw $e;
}
diff --git a/lang/en/about.php b/lang/en/about.php
new file mode 100644
index 0000000000..46e7f12e30
--- /dev/null
+++ b/lang/en/about.php
@@ -0,0 +1,27 @@
+ "ABOUT IATI Publisher",
+ 'what_is_iati_publisher_header' => "What is IATI Publisher?",
+ 'what_is_iati_publisher_description' => [
+ 'one' => 'IATI Publisher enables organisations to publish data on activities and resource flows according to the IATI Standard. The IATI Standard is a set of rules and guidance on how to publish useful development and humanitarian data.',
+ ],
+ 'use_iati_publisher_to_header' => 'Use IATI Publisher to:',
+ 'use_iati_publisher_to_description' => [
+ 'one' => [
+ 'list_items' => [
+ 'one' => 'Register your organisation with an IATI Publisher account',
+ 'two' => 'Understand the data fields in the IATI Standard (with IATI Standard Reference definitions, helpful explanations and links to guidance)',
+ 'three' => 'Provide your organisation’s data easily by completing online forms. Or upload data on multiple activities on a CSV or .xml file with the Bulk Upload feature',
+ 'four' => 'Run automatic checks (via the IATI Validator) for errors before publishing your data',
+ 'five' => 'Publish your data. IATI Publisher will add your data to the IATI Registry (where links to all IATI data is found)',
+ ]
+ ],
+ 'two' => 'IATI Publisher has been built to support organisations that publish a limited number of development and humanitarian activities. An ‘activity’ is an individual project or another unit of development and humanitarian work, which is determined by the organisation that is publishing the data. Organisations who publish a limited number of activities tend to represent small and medium sized organisations. ',
+ 'three' => 'Large organisations, such as donor governments or UN agencies delivering 100+ activities are advised not to use IATI Publisher. Instead these organisations likely need to use an alternative technical solution that enables the publication of large volumes of data. Please email the IATI Helpdesk for more information:support@iatistandard.org ',
+ ],
+ 'development_of_iati_header' => 'Development of IATI Publisher',
+ 'development_of_iati_description' => [
+ 'one' => 'IATI Publisher was first launched in December 2022 by the IATI Secretariat and has been developed by Young Innovations , a software development firm based in Nepal. IATI Publisher is fully aligned with the IATI Standard XML schema and rulesets .',
+ ],
+];
diff --git a/lang/en/activities.php b/lang/en/activities.php
new file mode 100644
index 0000000000..d260000385
--- /dev/null
+++ b/lang/en/activities.php
@@ -0,0 +1,22 @@
+ 'Your Activities',
+ 'what_is_activity' => [
+ 'label' => 'What is an activity?',
+ 'description' => [
+ 'one' => 'You need to provide data about your organisation\'s development and humanitarian \'activities\'. The unit of work described by an \'activity\' is determined by the organisation that is publishing the data. For example, an activity could be a donor government providing US$ 50 million to a recipient country\'s government to implement basic education over 5 years. Or an activity could be an NGO spending US$ 500,000 to deliver clean drinking water to 1000 households over 6 months. Therefore, your organisation will need to determine how it will divide its work internally into activities. Read the Publishing Checklist for more information.',
+ ],
+ ],
+
+ //Lines for the table
+ 'publish_label' => 'Publish',
+ 'status_labels' => [
+ 'draft' => 'draft',
+ 'publish' => 'publish',
+ ],
+
+ //lines for add activity modal
+ 'add_a_tittle_and_identifier_label' => 'Add a title and identifier for the activity ',
+];
+
diff --git a/lang/en/activity_default.php b/lang/en/activity_default.php
new file mode 100644
index 0000000000..ac768e1cb9
--- /dev/null
+++ b/lang/en/activity_default.php
@@ -0,0 +1,43 @@
+ [
+ 'label' => "Override default values",
+ 'text' => "Use the following form to change the default values such as currency, language etc for this specific activity. Changing the values here will not change the default values in the setting page.",
+ ],
+ 'currency' => [
+ 'label' => "Currency",
+ 'placeholder' => "Select from dropdown",
+ 'hover_header' => "Default Currency",
+ 'hover_text' => "The currency in which you report your financial transactions. You can later manually change the currency on individual transactions and budgets if required.",
+ 'help_text' => "The currency in which you are reporting your financial transactions for this activity. Select from dropdown ",
+ ],
+ 'language' => [
+ 'label' => "Language",
+ 'placeholder' => "Select from dropdown",
+ 'hover_header' => "Default Language",
+ 'hover_text' => "The language in which you provide data on your activities. You can later manually change the language on individual text if required.",
+ 'help_text' => "The language in which you are reporting this activity. Select from dropdown.",
+ ],
+ 'hierarchy' => [
+ 'label' => "Hierarchy",
+ 'placeholder' => "Type default hierarchy here",
+ 'hover_header' => "Default Hierarchy",
+ 'hover_text' => "If you are reporting both programmes (parent activities) and projects (child activities), choose the hierarchical level that most of your activities are at. e.g. parent activity = 1; child activity = 2. If all your activities are at the same level i.e. you have no child activities, then choose 1.",
+ 'help_text' => "IATI allows for activities to be reported hierarchically (eg. parent - child ; programme - project - sub-project, etc). For activities at lower levels, their hierarchy can be edited as you are entering them. ",
+ ],
+ 'budget_not_provided' => [
+ 'label' => "Budget not provided",
+ 'placeholder' => "select budget not provided type here",
+ 'hover_header' => "Budget not provided",
+ 'hover_text' => "A code indicating the reason why this activity does not contain any iati-activity/budget elements. The attribute MUST only be used when no budget elements are present.",
+ ],
+ 'humanitarian' => [
+ 'label' => "Humanitarian",
+ 'placeholder' => "Select Humanitarian here",
+ 'hover_header' => "Humanitarian",
+ 'hover_text' => "Add a 'Humanitarian Flag' to every activity that your organisation publishes data on. This means that your organisation identifies all their activities as wholly or partially addressing a humanitarian crisis or multiple crises. You can later manually add or remove a Humanitarian Flag on individual activities if required.",
+ ],
+ 'cancel_label' => "Cancel",
+ 'save_default_values_label' => "Save default values",
+];
diff --git a/lang/en/activity_detail.php b/lang/en/activity_detail.php
new file mode 100644
index 0000000000..61cc829805
--- /dev/null
+++ b/lang/en/activity_detail.php
@@ -0,0 +1,31 @@
+ 'Your Activities',
+
+ //Lines for the four hover-able buttons and section legend.
+ 'identification' => [
+ 'label' => 'Identification',
+ 'uppercase' => 'IDENTIFICATION',
+ ],
+ 'basic_activity_information' => [
+ 'label' => 'Basic Activity Information',
+ 'uppercase' => 'BASIC ACTIVITY INFORMATION',
+ ],
+ 'classifications' => [
+ 'label' => 'Classifications',
+ 'uppercase' => 'CLASSIFICATIONS',
+ ],
+ 'financial' => [
+ 'label' => 'Financial',
+ 'uppercase' => 'FINANCIAL',
+ ],
+
+ 'complete_all_core_label' => 'Complete all core elements to get 100% score',
+ 'search_elements_placeholder' => 'Search elements to add/edit',
+ 'all_elements_label' => 'All Elements',
+ 'uc_publish_label' => 'PUBLISH',
+ 'uc_override_this_activity_label' => 'OVERRIDE THIS ACTIVITY\'S DEFAULT VALUES',
+ 'no_activity_has_been_added_label' => 'No activity has been added yet.',
+ 'click_on_button_to_add_new_label' => 'Click on the button below to add a new activity',
+];
diff --git a/lang/en/admin.php b/lang/en/admin.php
new file mode 100644
index 0000000000..38de809f02
--- /dev/null
+++ b/lang/en/admin.php
@@ -0,0 +1,18 @@
+ [
+ 'activity_data' => 'ACTIVITY DATA',
+ 'organisation_data' => 'ORGANISATION DATA',
+ 'settings' => 'SETTINGS',
+ 'search_activity' => 'Search activity...',
+ 'search_organisation' => 'Search organisation...',
+ 'your_profile' => 'Your Profile',
+ 'logout' => 'Logout',
+ 'go_to_dashboard' => 'Go to Dashboard',
+ ],
+
+ 'footer' => [
+ 'dashboard' => 'Dashboard',
+ ],
+];
diff --git a/lang/en/auth.php b/lang/en/auth.php
index 1c9bccb282..b0080ec9de 100644
--- a/lang/en/auth.php
+++ b/lang/en/auth.php
@@ -16,4 +16,12 @@
'failed' => 'These credentials do not match our records.',
'password' => 'The provided password is incorrect.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
-];
+
+// 'Confirm Password',
+// 'Please confirm your password before continuing.',
+// 'Password',
+// 'Confirm Password',
+// 'Forgot Your Password?',
+// 'Reset Password',
+// 'Email Address',
+ ];
diff --git a/lang/en/buttons.php b/lang/en/buttons.php
new file mode 100644
index 0000000000..a016eae5fb
--- /dev/null
+++ b/lang/en/buttons.php
@@ -0,0 +1,67 @@
+ "Download all",
+ 'add_activity' => "Add activity ",
+ 'cancel' => "Cancel",
+ 'save_and_exit' => "Save and Exit",
+ 'close' => "Close",
+ 'save' => "Save",
+ 'publish' => "Publish",
+ 'publish_selected' => "Publish selected",
+ 'next' => "Next",
+ 'prev' => "Prev",
+ 'save_publishing_settings' => "Save publishing settings",
+ 'verify' => "Verify",
+ 'save_default_values' => "Save default values",
+ 'edit' => "Edit",
+ 'show_full_period' => "Show full period list",
+ 'delete' => "Delete",
+ 'go_back' => "Go Back",
+ 'download' => "Download",
+ 'continue' => "Continue",
+ 'continue_anyway' => "Continue Anyway",
+ 'publish_anyway' => "Publish Anyway",
+ 'fix_issues' => "Fix issues",
+ 'period_nocase' => "period",
+ 'download_xml_confirmation' => "The XML file is in wrong format. Would you like to download it anyway?",
+ 'read_more' => "Read more",
+ 'learn_more' => "Learn More",
+ 'see_all_data_fields' => "See all data fields",
+ 'sign_in' => "Sign in",
+ 'reset' => "Reset",
+ 'hide' => "Hide",
+ 'send_password_reset' => "Send password reset link",
+ 'republish' => "Republish",
+ 'unpublish' => "Unpublish",
+ 'upload_file' => "Upload file",
+ 'import' => "Import",
+ 'get_started' => "Get Started",
+ 'proxy' => "Proxy",
+ 'switch_back' => "Switch Back",
+ 'next_step' => "Next Step",
+ 'step' => "Step",
+ 'out_of' => "out of",
+ 'save_data' => "Saved data",
+ 'add_additional' => 'add additional ',
+
+ /**
+ * ":something" is replaced by translated line in vue files
+ * {{language.button_lang.#key#.replace(':something', language.common_lang.#key for value#)}}
+ **/
+ 'delete_confirmation' => "Are you sure you want to delete this :something ?",
+ 'unpublish_confirmation' => "Are you sure you want to delete this :something ?",
+ 'add_something' => "add :something",
+ 'edit_something' => "edit :something",
+ 'view_something' => "view :something",
+ 'delete_something' => "delete :something",
+ 'show_something' => "show :something",
+ 'download_something' => "download :something",
+
+
+ /**Not yet translation lines**/
+ 'not_yet_added_period' => "You haven't added any period yet.",
+ 'not_yet_added_period_btn' => "Add new indicator",
+ 'not_yet_added_indicator' => "You haven't added any indicator yet.",
+];
diff --git a/lang/en/common.php b/lang/en/common.php
new file mode 100644
index 0000000000..72703cfc34
--- /dev/null
+++ b/lang/en/common.php
@@ -0,0 +1,309 @@
+ 'Alerts',
+ 'show_more' => 'Show more',
+ 'show_less' => 'Show less',
+ 'completed' => 'completed',
+ 'not_completed' => 'not completed',
+ 'publishing_progress' => 'Publishing Progress',
+ 'core' => 'Core',
+ 'element' => 'Element',
+ 'elements' => 'Elements',
+ 'all_elements' => 'All Elements',
+ 'mandatory_fields' => 'Mandatory fields',
+ 'untitled' => 'Untitled',
+ 'this_is_autogenerated' => "This is autogenerated",
+ 'iati_standard_reference' => 'IATI Standard Reference',
+ 'language' => 'Language',
+ 'attached' => 'Attached',
+ 'narrative' => 'Narrative',
+ 'yes' => 'Yes',
+ 'no' => 'No',
+ 'true' => 'True',
+ 'false' => 'False',
+ 'conditions_not_attached' => 'Conditions Not Attached',
+ 'date' => 'Date',
+ 'period' => 'Period',
+ 'download_file' => "Download file.",
+ 'click_the_download' => 'Click the download button to save the file',
+ 'periods' => 'Periods',
+ 'error_message' => 'Error message',
+ 'organisation' => 'Organisation',
+ 'organisations' => 'Organisations',
+ 'person_name' => 'Person Name',
+ 'department' => 'Department',
+ 'job_title' => 'Job Title',
+ 'email' => 'Email',
+ 'telephone' => 'Telephone',
+ 'website' => 'Website',
+ 'mailing_address' => 'Mailing Address',
+ 'vocabulary' => 'Vocabulary',
+ 'vocabulary_uri' => 'Vocabulary URI',
+ 'code' => 'Code',
+ 'value' => 'Value',
+ 'iati_equivalent' => 'IATI-Equivalent',
+ 'reference' => 'Reference',
+ 'location_id' => 'Location ID',
+ 'description' => 'Description',
+ 'activity_description' => 'Activity Description',
+ 'level' => 'Level',
+ 'point' => 'Point',
+ 'latitude' => 'Latitude',
+ 'longitude' => 'Longitude',
+ 'exactness' => 'Exactness',
+ 'location_class' => 'Location Class',
+ 'feature_designation' => 'Feature Designation',
+ 'owner_organisation_reference' => 'Owner Organisation Reference',
+ 'owner_organisation_narrative' => 'Owner Organisation Narrative',
+ "organisation_id" => 'Organisation ID',
+ "organisation_name" => 'Organisation Name',
+ "organisation_type" => 'Organisation Type',
+ "organisation_role" => 'Organisation Role',
+ "ref" => 'Ref',
+ "activity_id" => 'Activity ID',
+ "crs_channel_code" => 'CRS Channel Code',
+ 'value_amount' => 'Value Amount',
+ 'type' => 'Type',
+ 'receiver' => 'Receiver',
+ 'provider' => 'Provider',
+ 'org' => 'Org',
+ 'significance' => 'Significance',
+ 'region_code' => 'region Code',
+ 'custom_code' => 'Custom Code',
+ 'percentage' => 'Percentage',
+ 'secondary_reporter' => 'Secondary Reporter',
+ 'result_type' => 'Result Type',
+ 'baseline' => 'Baseline',
+ 'indicator' => 'Indicator',
+ 'document_link' => 'Document Link',
+ 'indicator_detail' => 'Indicator Detail',
+ 'title' => 'Title',
+ 'measure' => 'Measure',
+ 'aggregation_status' => 'Aggregation Status',
+ 'action' => 'Action',
+ 'year' => 'Year',
+ 'location' => 'Location',
+ 'dimension' => 'Dimension',
+ 'format' => 'Format',
+ 'category' => 'Category',
+ 'document_date' => 'Document Date',
+ 'ascending' => 'Ascending',
+ 'indicator_uri' => 'Indicator URI',
+ 'core_elements' => 'Core Elements',
+ 'mandatory_sub_elements' => 'Mandatory sub-elements',
+ 'recommended_sub_elements' => 'Recommended sub-elements',
+ 'note' => 'Note',
+ 'location_reference' => 'Location Reference',
+ 'target_value' => 'Target Value',
+ 'target' => 'Target',
+ 'actual' => 'Actual',
+ 'period_detail' => 'Period Detail',
+ 'periods_list' => 'Periods List',
+ 'view_indicator' => 'View Indicator',
+ 'indicator_title' => 'Indicator title',
+ 'actual_value' => 'Actual Value',
+ 'result_detail' => 'Result Detail',
+ 'documents' => 'Documents',
+ 'document' => 'Document',
+ 'indicator_nocase' => 'indicator',
+ 'add_indicator_nocase' => 'add indicator',
+ 'result_list' => 'Result List',
+ 'organiser_identifier_code' => 'Organiser Identifier Code',
+ 'provider_activity_id' => 'Provider Activity ID',
+ 'transaction_detail' => 'Transaction detail',
+ 'transaction' => 'Transaction',
+ 'transaction_list' => 'Transaction List',
+ 'publishing' => 'Publishing',
+ 'activities' => 'Activities',
+ 'activities_nocase' => 'activities',
+ 'view_errors_or_warning' => 'View the errors or warnings in detail',
+ 'publishing_alert' => 'Publishing alert',
+ 'activities_already_published_will_not' => 'Activities that are already published will not be published.',
+ 'changes_made_to_published_will_be_republished' => 'Changes made to published activities (Draft) will be republished.',
+ 'please_wait' => 'Please wait',
+ 'verifying_core_elements' => 'Verifying Core Elements',
+ 'validating_activities' => 'Validating Activities',
+ 'starting_to_publish' => 'Starting to publish',
+ 'refresh' => 'Refresh',
+ 'critical_error_found' => 'Critical error found in',
+ 'errors_and_warnings_found' => 'Errors and Warning found in',
+ 'add_import_activity' => 'ADD / IMPORT ACTIVITY',
+ 'add_activity_manually' => 'ADD ACTIVITY MANUALLY',
+ 'import_activities' => 'IMPORT ACTIVITIES FROM .CSV/.XML',
+ 'activities_not_found' => 'Activities not found.',
+ 'validating' => 'Validating',
+ 'unpublishing' => 'unpublishing',
+ 'activity' => 'Activity',
+ 'delete_confirmation_default' => 'Are you sure you want to delete this ',
+ 'result' => 'Result',
+ 'module' => 'module',
+ 'related_indicator_period_deleted' => 'Related Indicators and Periods will also be deleted',
+ 'related_period_deleted' => 'Related Periods will also be deleted',
+ 'issues_found' => 'Issues found',
+ 'issues_found_in_iati_validator' => 'Issues found in IATI Validator',
+ 'previously_published_on_iati' => 'Previously Published on IATI',
+ 'general' => 'General',
+ 'objectives' => 'Objectives',
+ 'target_groups' => 'Target_groups',
+ 'other' => 'Other',
+ 'api_key_pub_id' => 'API key & Publisher ID',
+ 'enter_correct_api_token' => 'Please enter correct API token',
+ 'update_default_values' => 'Update default values',
+ 'publisher_is_inactive' => 'Publisher is Inactive',
+ 'publisher_is_not_active' => 'Publisher is not active at IATI Registry.',
+ 'mandatory_fields_not_filled' => 'Mandatory fields not filled',
+ 'some_mandatory_fields_not_completed' => 'Some mandatory fields have not been completed.',
+ 'import_activity' => 'Import Activity',
+ 'activities_with_error' => 'Activities with errors cannot be imported. Please solve the errors to import your activities.',
+ 'status' => 'Status',
+ 'show' => 'Show',
+ 'errors_nocase' => 'errors',
+ 'new' => 'New',
+ 'existing' => 'Existing',
+ 'select' => 'Select',
+ 'reset_password' => 'Reset Password',
+ 'new_password' => 'New Password',
+ 'repeat_password' => 'Repeat Password',
+ 'enter_new_password' => 'Please enter your new password',
+ 'enter_new_password_placeholder' => 'Enter a new password',
+ 'reenter_password' => 'Re-enter your password',
+ 'activity_title' => 'Activity Title',
+ 'updated_on' => 'Updated On',
+ 'data' => 'Data',
+ 'fetching_data' => 'Fetching Data...',
+ 'recipient_country' => 'Recipient Country',
+ 'value_date' => 'Value Date',
+ 'budget_line' => 'Budget line',
+ 'recipient_org' => 'Recipient Org',
+ 'expense_line' => 'Expense line',
+ 'expenditure_amount' => 'Expenditure Amount',
+ 'fill_mandatory_fields' => 'Fill mandatory fields of all elements to get 100% score',
+ 'cannot_publish_activity_until_mandatory' => 'You cannot publish an activity until all the mandatory fields have been filled.',
+ 'core_elements_include' => 'Core elements include the IATI Standard\'s “mandatory and recommended” elements and it is important to provide this data to ensure your data is usable and useful',
+ 'each_element_represents' => 'Each “Element” represents a basic unit of information in the IATI Standard. Click on each element listed below and complete all data fields contained in the element. For each element, you will find its technical hover_text, which is labelled as “IATI Standard Reference” and helpful guidance on the data you are required to provide.',
+ 'the_iati_standard_contains_wide' => 'The IATI Standard contains a wide range of data elements and your organisation is encouraged to (at least) publish data in elements marked as “Core”.',
+ 'already_have_account' => 'Already have an account?',
+ 'iati_registry' => 'IATI Registry',
+ 'contact' => 'Contact',
+ 'for_more_details' => 'for more details',
+ 'name' => 'Name',
+ 'location_reached' => 'Location reached',
+ 'srs_name' => 'SRS Name',
+ 'reference_role' => 'Reference role',
+ 'transaction_type' => 'Transaction type',
+ 'disbursement' => 'Disbursement Channel Code',
+ 'finance_type' => 'Finance type',
+ 'flow_type' => 'Flow type',
+ 'tied_status' => 'Tied Status Code',
+ 'amount' => 'Amount',
+ 'url' => 'URL',
+ 'budget_amount' => 'Budget Amount',
+ 'period_start' => 'Period Start',
+ 'period_end' => 'Period End',
+ 'budget' => 'Budget',
+ 'budget_value' => 'Budget Value',
+ 'new_result' => "New Result",
+ 'full_result' => "full result list",
+ 'new_indicator' => "New Indicator",
+ 'full_indicator' => "full indicator list",
+ 'delete_element' => "Delete element",
+ 'full_transaction' => "full transaction list",
+ 'csv' => "CSV",
+ 'xml' => "XML",
+ 'anyway' => "Anyway",
+ 'partnership_against_children' => "Partnership against child exploitation",
+ 'this_is_help_text' => "This is a help text",
+ 'indicator_list' => "Indicator List",
+ 'alert' => "Alert",
+ 'item' => "Item",
+ 'help' => "Help",
+ 'country' => "Country",
+ 'activity_detail_page' => "Activity Detail Page",
+ 'you_are_logged_in' => "You are logged in!",
+
+
+ /**
+ * ":something missing", something is replaced by other keyword
+ * Such that narrative missing, language missing, reference missing, etc can be obtained
+ * Example: {{ language.common_lang.missing.something.replace(':something', language.common_lang.narrative) }}
+ **/
+ 'missing' => [
+ 'default' => 'Missing',
+ 'something' => ':something missing',
+ 'data' => 'Missing Data',
+ 'no_content' => 'No content',
+ 'not_available' => 'Not available',
+ ],
+
+ /**related title and description in some component**/
+ 'core_completed_title' => 'Core Elements Complete',
+ 'core_completed_description' => 'Congratulations! All the core elements are complete. Continue to Validate this activity.',
+ 'core_not_completed_title' => 'Core Elements not complete',
+ 'core_not_completed_description' => 'There is missing data in some of the core elements. We highly recommend that you complete these data fields to help ensure your data is useful.
Do you want to continue anyway and run checks on (validate) this data.
',
+ 'add_narrative_in_other_lang' => 'ADD NARRATIVE IN OTHER LANGUAGE',
+ 'education_and_psychosocial' => 'Education and psychosocial support to children in Aleppo Governorate',
+ 'add_additional_description' => 'add additional description',
+ 'account_not_verified' => 'Account not Verified',
+ 'account_not_verified_description' => "Please check for verification email sent to you and verify your account resend verification email if you haven’t received your verification email. Contact PubToolTest@iatistandard.org for further assistance.",
+ 'complete_your_setup' => 'Complete your setup',
+ 'complete_your_setup_description' => 'Please complete your setup in order to enable complete features of IATI publisher tool.',
+ 'update_registry_information' => 'Update registry information',
+ 'download_csv_template' => 'Download .CSV activity Template',
+ 'download_csv_template_description' => 'This template contains all the elements that you have to fill as per the IATI Standard before uploading in IATI Publisher. Please make sure that you follow the structure and format of the template.',
+
+
+ //common placeholders
+ 'placeholder' => [
+ 'select_a_value' => 'Select a value',
+ 'select_a_lang' => 'Select a language',
+ 'enter_activity_title' => "Enter an activity title text",
+ ],
+
+ 'error' => [
+ 'default' => 'Error',
+ 'activity_could_not_be_published' => 'Activity couldn\'t be published because',
+ 'org_could_not_be_published' => 'Organisation couldn\'t be published because',
+
+ 'publish_error_1' => 'You have not verified your email address.',
+ 'publish_error_2' => 'Your API Key is not valid or it is empty.',
+ 'publish_error_3' => 'Your Organisation data is not published.',
+ 'publish_error_4' => 'The Publisher ID is not verified in IATI Registry.',
+ ],
+ //for ValidationErrors.vue error message
+ 'message' => [
+ 'critical' => 'Data will not be available on the IATI Datastore and may not be available on other data portals/tools/software that use IATI data. We highly recommend you fix these issue(s) before publishing.',
+ 'warning' => 'We highly recommend you fix these issue(s) before publishing your activity to improve the quality and usefulness of your data.',
+ 'no_error' => 'Congratulations! No errors were found. Publish your data now. This data will be available on the IATI Datastore and other data portals/tools/ software that use IATI data.',
+ ],
+
+ //for sticky messages generated in PublishButton.vue
+ 'sticky' => [
+ 'title_1' => 'Activity will be validated before publishing',
+ 'description_1' => 'This activity will be first validated before publishing the activity to the IATI Registry.',
+ 'title_2' => 'IATI Validation',
+ 'description_2' => 'Congratulations! No errors were found. Publish your data now.
This data will be available on the IATI Datastore and other data portals/tools/software that use IATI data.
',
+ 'title_3' => 'IATI Validation Issue',
+ 'common' => [
+ 'errors' => 'errors',
+ 'critical' => 'critical',
+ 'and' => 'and',
+ 'warnings' => 'warnings',
+ 'were_found' => 'were found',
+ 'we_highly_recommend' => 'We highly recommend you fix these issue(s) before publishing your activity to improve the quality and usefulness of your data.',
+ 'has_atleast_one_critical_error' => 'As your data has at least one critical error, it will not be available on the IATI Datastore and may not be available on other data portals/tools/software that use IATI data.',
+ 'view_information' => 'View information about these errors/warnings at the top of the activity page.',
+ ],
+ ],
+
+ // for sendEmail() in User/User.php
+ 'sendEmail' => [
+ 'verify_email_address' => 'Verify Email Address',
+ 'greeting' => 'Hello',
+ 'line' => 'Welcome to IATI Publisher. Your email has been used to create a new account here. Please click the button below to verify that you have created the account in it.'
+ ]
+];
diff --git a/lang/en/controller.php b/lang/en/controller.php
new file mode 100644
index 0000000000..28e6bc8b7a
--- /dev/null
+++ b/lang/en/controller.php
@@ -0,0 +1,139 @@
+ [
+ 'user_must_be_logged_in' => 'User must be logged in to verify email.'
+ ],
+
+ /*
+ * list for possible :actioned
+ */
+ 'completed' => 'completed',
+ 'created' => 'created',
+ 'deleted' => 'deleted',
+ 'failed' => 'failed',
+ 'fetched' => 'fetched',
+ 'published' => 'published',
+ 'registered' => 'registered',
+ 'retrieved' => 'retrieved',
+ 'sent' => 'sent',
+ 'started' => 'started',
+ 'unpublished' => 'unpublished',
+ 'updated' => 'updated',
+ 'uploaded' => 'uploaded',
+ 'validated' => 'validated',
+ 'verified' => 'verified',
+
+ /*
+ * list for possible :action
+ */
+ 'checking' => 'checking',
+ 'creating' => 'creating',
+ 'deleting' => 'deleting',
+ 'downloading' => 'downloading',
+ 'fetching' => 'fetching',
+ 'importing' => 'importing',
+ 'opening' => 'opening',
+ 'processing' => 'processing',
+ 'rendering' => 'rendering',
+ 'saving' => 'saving',
+ 'storing' => 'storing',
+ 'trying_to' => 'trying to',
+ 'updating' => 'updating',
+ 'validation' => 'validation',
+ 'verifying' => 'verifying',
+
+
+ /*
+ * list for possible :suffix
+ * not covered in common.php or el_common.php
+ * some might seem repeated in el_common, but it's not.
+ */
+ 'activity_capital_spend' => 'activity capital-spend',
+ 'activity_collab_type' => 'activity collaboration-type',
+ 'activity_condition' => 'activity condition',
+ 'activity_csv' => 'activity csv',
+ 'activity_detail' => 'activity detail',
+ 'activity_element' => 'activity element',
+ 'activity_import' => 'activity import',
+ 'activity_reporting_org' => 'activity reporting-org',
+ 'activity_result' => 'activity result',
+ 'activity_title' => 'activity title',
+ 'activity_transaction' => 'activity transaction',
+ 'activity_transactions_listing' => 'activity transactions listing',
+ 'activity_transactions' => 'activity transactions',
+ 'activity_with_id' => 'activity with id',
+ 'additional_info' => 'additional info',
+ 'api_token' => 'API token.',
+ 'check_user_email' => 'check user email',
+ 'contact_info_controller' => 'contact-info controller item',
+ 'default setting' => 'default setting',
+ 'default_settings' => 'Default settings',
+ 'filtered_agency' => 'Filtered Agency',
+ 'indicator_period' => 'indicator period',
+ 'org_detail' => 'organisation detail',
+ 'org_document_link' => 'organisation document-link',
+ 'org_recipient_country_budget' => 'organisation recipient-country-budget',
+ 'org_recipient_org_budget' => 'organization recipient-org-budget',
+ 'org_recipient_region_budget' => 'organization recipient-region-budget',
+ 'org_reporting_org' => 'organization reporting-org',
+ 'org_total_budget' => 'organization total-budget.',
+ 'org_total_expenditure' => 'organization total-expenditure',
+ 'proxy_successful' => 'Proxy successful',
+ 'publisher_settings' => 'Publisher setting',
+ 'publisher_status' => 'publisher status',
+ 'result_detail' => 'result detail',
+ 'result_indicator' => 'result indicator',
+ 'setting_status' => 'Setting status',
+ 'setting' => 'setting',
+ 'the_data' => 'the data.',
+ 'the_file' => 'the file.',
+ 'the_status' => 'the status.',
+ 'transaction_detail' => 'transaction detail',
+ 'user_status' => 'User status',
+ 'user' => 'User',
+ 'verification_email' => 'Verification email',
+
+
+ /*
+ * Mostly standalone lines, some are used as suffix or prefix for paragraph translations
+ */
+ 'activity_must_be_unpublished_before_deleting' => 'Activity must be un-published before deleting.',
+ 'activity_not_been_published_to_unpublish' => 'This activity has not been published to un-publish.',
+ 'activity_ready_to_publish' => 'Activity is ready to be published.',
+ 'another_bulk_publ_in_process' => 'Another bulk publishing is already in progress.',
+ 'api_token_incorrect' => 'API token incorrect.',
+ 'data_not_available' => 'Data not available',
+ 'enter_correct_identifier' => 'Please enter correct identifier as present in IATI Registry.',
+ 'enter_valid_api_token' => 'Please enter valid API token.',
+ 'insufficient_data' => 'Insufficient data.',
+ 'invalid_xml_or_header' => 'Invalid XMl or Header mismatched',
+ 'make_sure_publisher_is_approved' => 'Please make sure that your publisher is approved in IATI Registry.',
+ 'no_activities_selected' => 'No activities selected.',
+ 'no_publishing_in_process' => 'No bulk publishing in process.',
+ 'org_not_been_published_to_unpublish' => 'This organization has not been published to un-publish.',
+ 'organisation_ready_to_publish' => 'Organisation is ready to be published.',
+ 'please_upload_csc_or_xml' => 'Please upload csv or xml file to import activity.',
+ 'publisher_id_doesnt_match' => 'Publisher ID doesn\'t match with your IATI Registry information',
+ 'publisher_name_doesnt_match' => 'Publisher Name doesn\'t match your IATI Registry information',
+ 'register_user' => 'register_user',
+ 'request_error' => 'Request error',
+ 'status_generation_failed' => 'Status generation failed.',
+ 'try_again' => 'Please try again later.',
+ 'user_not_associated' => 'User is not associated with any organization.',
+
+
+ /*
+ * Translation lines with placeholders
+ */
+ 'action_failed' => ':prefix :action failed.',
+ 'actioned_successfully' => ':prefix :actioned successfully.',
+ 'bulk_publishing' => 'Bulk publishing :suffix.',
+ 'delete_error' => ':prefix delete error.',
+ 'error_has_occurred_form' => 'Error has occurred whiled :action :suffix form.',
+ 'error_has_occurred_page' => 'Error has occurred whiled :action :suffix page.',
+ 'error_has_occurred' => 'Error has occurred whiled :action :suffix.',
+ 'has_been_actioned_successfully' => ':prefix has been :actioned successfully.',
+
+];
+
diff --git a/lang/en/el_common.php b/lang/en/el_common.php
new file mode 100644
index 0000000000..d85b89d855
--- /dev/null
+++ b/lang/en/el_common.php
@@ -0,0 +1,272 @@
+ 'activities',
+ 'activity' => 'activity',
+ 'activity_date' => 'activity-date',
+ 'activity_description' => 'activity-description',
+ 'activity_scope' => 'activity-scope',
+ 'activity_status' => 'activity-status',
+ 'activity_sector' => 'activity-sector',
+ 'activity_id' => 'activity-id',
+ 'activity_identifier' => 'activity-identifier',
+ 'actual' => 'actual',
+ 'administrative' => 'administrative',
+ 'aggregation_status' => 'aggregation-status',
+ 'aid_type' => 'aid type',
+ 'ascending' => 'ascending',
+ 'attached' => 'attached',
+ 'baseline' => 'baseline',
+ 'budget' => 'budget',
+ 'budget_item' => 'budget-item',
+ 'budget_line' => 'budget-line',
+ 'capital' => 'capital-spend',
+ 'category' => 'category',
+ 'code' => 'code',
+ 'collaboration' => 'collaboration-type',
+ 'comment' => 'comment',
+ 'condition' => 'condition',
+ 'conditions' => 'conditions',
+ 'contact_info' => 'contact-info',
+ 'country' => 'country',
+ 'country_budget_items' => 'country-budget-items',
+ 'crs_channel_code' => 'crs-channel-code',
+ 'currency' => 'currency',
+ 'date' => 'date',
+ 'default_aid_type' => 'default-aid-type',
+ 'default_finance_type' => 'default-finance-type',
+ 'default_flow_type' => 'default-flow-type',
+ 'default_tied_status' => 'default-tied-status',
+ 'default_values' => 'default-values',
+ 'department' => 'department',
+ 'description' => 'description',
+ 'dimension' => 'dimension',
+ 'disbursement_channel' => 'disbursement-channel',
+ 'document_date' => 'document-date',
+ 'document_link' => 'document-link',
+ 'email' => 'email',
+ 'exactness' => 'exactness',
+ 'expense_line' => 'expense-line',
+ 'feature_designation' => 'feature-designation',
+ 'finance_type' => 'finance-type',
+ 'flow_type' => 'flow type',
+ 'format' => 'format',
+ 'humanitarian' => 'humanitarian',
+ 'humanitarian_scope' => 'humanitarian-scope',
+ 'iati_identifier' => 'iati identifier',
+ 'iati_equivalent' => 'iati-equivalent',
+ 'indicator' => 'indicator',
+ 'indicators' => 'indicators',
+ 'indicator_uri' => 'indicator-uri',
+ 'iso_date' => 'iso-date',
+ 'job_title' => 'job-title',
+ 'language' => 'language',
+ 'languages' => 'languages',
+ 'latitude' => 'latitude',
+ 'legacy_data' => 'legacy-data',
+ 'level' => 'level',
+ 'location' => 'location',
+ 'location_class' => 'location-class',
+ 'location_reach' => 'location-reach',
+ 'location_id' => 'location-id',
+ 'longitude' => 'longitude',
+ 'mailing_address' => 'mailing-address',
+ 'measure' => 'measure',
+ 'name' => 'name',
+ 'narrative' => 'narrative',
+ 'organisation' => 'organisation',
+ 'organisations' => 'organisations',
+ 'organisation_name' => 'organisation-name',
+ 'organisation_registration_agency' => 'organisation-registration-agency',
+ 'organisation_identifier' => 'organisation-identifier',
+ 'other_identifier' => 'other-identifier',
+ 'owner' => 'owner-org',
+ 'participating_organisation' => 'participating-organisation',
+ 'percentage_organisation' => 'percentage',
+ 'period' => 'period',
+ 'period_end' => 'period-end',
+ 'period_start' => 'period-start',
+ 'person_name' => 'person-name',
+ 'planned_disbursement' => 'planned-disbursement',
+ 'point' => 'point',
+ 'policy_maker' => 'policy-marker',
+ 'provider_organisation' => 'provider-organisation',
+ 'provider_activity' => 'provider-activity-id',
+ 'publisher' => 'publisher',
+ 'receiver_organisation' => 'receiver organisation',
+ 'receiver_activity' => 'receiver-activity-id',
+ 'recipient_country_budget' => 'recipient-country-budget',
+ 'recipient_organisation' => 'recipient-organisation',
+ 'recipient_organisation_budget' => 'recipient-organisation-budget',
+ 'recipient_region' => 'recipient-region',
+ 'recipient_region_budget' => 'recipient-region budget',
+ 'recipient_country' => 'recipient-country',
+ 'reference' => 'reference',
+ 'registration_number' => 'Registration Number',
+ 'related_activity' => 'related-activity',
+ 'reporting_organisation' => 'reporting-organisation',
+ 'result' => 'result',
+ 'results' => 'results',
+ 'role' => 'role',
+ 'secondary_reporter' => 'secondary-reporter',
+ 'sector' => 'sector',
+ 'significance' => 'significance',
+ 'srsName' => 'srsName',
+ 'status' => 'status',
+ 'tag' => 'tag',
+ 'target' => 'target',
+ 'telephone' => 'telephone',
+ 'tied_status' => 'tied-status',
+ 'title' => 'title',
+ 'total_budget' => 'total-budget',
+ 'total_expenditure' => 'total-expenditure',
+ 'transaction' => 'transaction',
+ 'transactions' => 'transactions',
+ 'transaction_date' => 'transaction-date',
+ 'transaction_type' => 'transaction-type',
+ 'type' => 'type',
+ 'url' => 'url',
+ 'value' => 'value',
+ 'value_date' => 'value-date',
+ 'vocabulary' => 'vocabulary',
+ 'vocabulary_uri' => 'vocabulary-uri',
+ 'website' => 'website',
+ 'year' => 'year',
+
+
+ /*
+ * Common placeholders
+ */
+ 'enter_a_code' => 'Enter a code',
+ 'select_a_list_of_regions' => 'Select a list of regions',
+ 'select_aggregation_status' => 'Select aggregation status',
+ 'select_ascending' => 'Select ascending',
+ 'select_attached' => 'Select attached',
+ 'select_code' => 'Select code',
+ 'select_currency' => 'Select currency',
+ 'select_date' => 'Select date',
+ 'select_format' => 'Select format',
+ 'select_humanitarian' => 'Select humanitarian',
+ 'select_language' => 'Select language',
+ 'select_measure' => 'Select measure',
+ 'select_percentage' => 'Select percentage',
+ 'select_region' => 'Select region',
+ 'select_role' => 'Select role',
+ 'select_secondary_reporter' => 'Select secondary-reporter',
+ 'select_significance' => 'Select significance',
+ 'select_status' => 'Select status',
+ 'select_type' => 'Select type',
+ 'select_url' => 'Select url',
+ 'select_value' => 'Select value-date',
+ 'select_vocabulary' => 'Select vocabulary',
+ 'select_vocabulary_uri' => 'Select vocabulary-uri',
+ 'type_ref_symbol_here' => 'Type @ref here',
+ 'type_identifier_here' => 'Type activity identifier here',
+ 'type_id' => 'Type activity-id',
+ 'type_' => 'Type code',
+ 'type_crs_channel_code' => 'Type crs-channel-code',
+ 'type_currency' => 'Type currency',
+ 'type_date' => 'Type date',
+ 'type_email' => 'Type email',
+ 'type_format' => 'Type format',
+ 'type_iati_equivalent' => 'Type iati_equivalent',
+ 'type_indicator_uri' => 'Type indicator-uri',
+ 'type_latitude_value' => 'Type latitude value',
+ 'type_level' => 'Type level',
+ 'type_longitude_value' => 'Type longitude value',
+ 'type_name' => 'Type name',
+ 'type_narrative' => 'Type narrative',
+ 'type_narrative_here' => 'Type narrative here',
+ 'type_percentage' => 'Type percentage',
+ 'type_provider_activity_id' => 'Type provider-activity-id',
+ 'type_receiver_activity' => 'Type receiver-activity',
+ 'type_receiver_activity_id' => 'Type receiver-activity-id',
+ 'type_reference' => 'Type reference',
+ 'type_srs_name' => 'Type srs name',
+ 'type_telephone' => 'Type telephone',
+ 'type_uri' => 'Type uri',
+ 'type_url' => 'Type url',
+ 'type_URL' => 'Type URL',
+ 'type_value' => 'Type value',
+ 'type_value_here' => 'Type value here',
+ 'type_vocabulary' => 'Type vocabulary',
+ 'type_vocabulary_uri' => 'Type vocabulary-uri',
+ 'type_year' => 'Type year',
+ 'this_is_the_name_provided_for_org' => 'This is the name you provided for your organisation when you registered.',
+ 'yyyy_mm_dd' => 'YYYY-MM-DD',
+
+ /*Common hover text*/
+ "a_code_from_the_codelist_identifies" => "A code from the codelist identified in vocabulary that identifies a results framework. For more information ",
+ "a_code_from_the_specified_vocabulary" => "A code from the specified vocabulary. This attribute is required. For more information ",
+ "a_code_specifying_text_link_1" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "a_code_specifying_text_link_2" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "a_code_specifying_text_link_3" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "a_code_specifying_text_link_4" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "a_code_specifying_text_link_5" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "a_code_specifying_text_link_6" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "a_code_specifying_text_link_7" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ "a_code_specifying_text_link_8" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ "a_code_specifying_text_link_9" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ "a_description_of_the_document" => "A description of the document contents, or guidance on where to access the relevant information in the document.For more information. ",
+ "a_short_human_readable" => "A short, human-readable title.For more information. ",
+ "a_three_letter_iso" => "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified. For more information ",
+ "an_internal_reference" => "An internal reference for this budget line taken from the reporting organisation’s own system. For more information ",
+ "either_an_orcs" => "Either an OECD DAC, UN region code or (if code ‘99’ Reporting organisation is selected for recipient-region/@vocabulary) a code from your internal vocabulary. For more information ",
+ "the_code_for_sector_link_1" => "The code for the sector. This attribute is required.For more information ",
+ "the_code_for_sector_link_2" => "The code for the sector. This attribute is required. For more information ",
+ "the_code_for_the_tag" => "The code for the tag as defined in the specified vocabulary. This attribute is required.For more information ",
+ "the_date_of_document_link_1" => "The date of publication of the document that is being linked to. (@iso-date). For more information ",
+ "the_date_of_document_link_2" => "The date of publication of the document that is being linked to. For more information ",
+ "the_date_of_document_link_3" => "The date of publication of the document that is being linked to. For more information ",
+ "the_date_of_document_link_4" => "The date of publication of the document that is being linked to. For more information ",
+ "the_end_of_reporting_period" => "The end of the reporting period. For more information ",
+ "the_free_text_name_link_1" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "the_free_text_name_link_2" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "the_free_text_name_link_3" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "the_free_text_name_link_4" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "the_free_text_name_link_5" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "the_free_text_name_link_6" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "the_free_text_name_link_7" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "the_start_of_reporting_period" => "The start of the reporting period. For more information ",
+ "the_type_of_aid_being_supplied" => "The type of aid being supplied (project-type intervention, budget support, debt relief, etc.). This element specifies a default for all the activity’s financial transactions; it can be overridden at the individual transaction level. For more information ",
+
+
+ /*Common help text*/
+ "chose_an_option_from_this_list" => "Choose an option from this list.",
+ "for_example_an_activity" => "For example an activity could declare the dimension’s name as ‘sex’, with a value of ‘female’.",
+ "if_you_provided_a_document_link_title" => "If you have provided a document link then you must provide a title for the document.",
+ "if_you_provided_a_document_link_best" => "If you have provided a document link, select a category that best describes the document.",
+ "if_you_provided_a_document_link_desc" => "If you have provided a document link, then you can provide a description of the document.",
+ "if_you_have_selected" => "If you have selected the option: ‘Reporting Organisation’ please provide the URI where this internal list is defined.",
+ "provide_a_description_for_budget_line" => "Provide a description for this budget line.",
+ "provide_a_short_description_of_document" => "Provide a short description of the document or webpage, including any instructions on where to find relevant information.",
+ "provide_a_short_title_for_desc" => "Provide a short title for the document or webpage.",
+ "provide_the_amount_of_finance" => "Provide the amount of finance for this budget line.",
+ "provide_the_code_for_policy" => "Provide the code for the policy or theme addressed by your activity. If you are using the OECD DAC CRS policy-marker list, please make a selection from these options .",
+ "provide_the_date_for_when" => "Provide the date for when the document was published.",
+ "provide_the_date_of_publication" => "Provide the date of publication for the document or webpage, or provide the date that it was last updated.",
+ "provide_the_end_of_budget_period" => "Provide the end date of the budget period.",
+ "provide_the_start_of_budget_period " => "Provide the start date of the budget period.",
+ "select_a_document_category" => "Select a document category.",
+ "select_the_aid_type" => "Select the aid-type related to your activity.",
+ "select_the_currency_that_you_provided" => "Select the currency that you have provided the value in.",
+ "select_the_language_of_text_in_desc" => "Select the language of the text in the description. If no language is selected, your default language is assumed.",
+ "select_the_language_of_text_in_narrative" => "Select the language of the text in the narrative. If no language is selected, your default language is assumed.",
+ "default_value_assumed_the" => "Select the language of the text you provided in the narrative. If no language is selected, the default language is assumed.",
+ "your_default_language_assumed_no_that" => "Select the language of the text you provided in the narrative. If no language is selected, your default language is assumed.",
+ "default_value_assumed" => "Select the language that the document is written in.",
+ "select_the_activity_region" => "Select the region benefitting from this activity.",
+ "select_the_budget_region" => "Select the region benefitting from this budget.",
+ "select_the_selector" => "Select the sector which the activity is targeting or supporting. You can choose more than one sector.",
+ "the_url_must_begin_with_either" => "The URL must begin with either ‘http://’ or ‘https://’.",
+ "you_can_provide_a_reference" => "You can provide a reference that you use to identify this budget line in your organisation’s internal financial management system.",
+ "you_can_provide_information" => "You can provide information about the type of aid that is being delivered. This is most commonly referred to as the aid modality and IATI recommends that an aid type from the OECD DAC codelist be selected for all activities. Examples from this codelist include: project-type interventions which provide support to a particular project, budget support which is a financial contribution to a recipient government’s budget. Project-type interventions is the most common aid type for NGOs and CSOs but many other options are found here . If your activity is addressing a humanitarian event, you can provide specific information on the type of funds for it. This includes providing information on the level of earmarking of the activity’s funds and if the activity is providing funds through cash or vouchers. More information on publishing aid-types related to humanitarian activities .",
+ "you_must_select_category" => "You must select a category of the document or webpage that you have provided.",
+];
+
+
+
diff --git a/lang/en/elements.php b/lang/en/elements.php
new file mode 100644
index 0000000000..e7c552f930
--- /dev/null
+++ b/lang/en/elements.php
@@ -0,0 +1,1724 @@
+ [
+ 'activity_identifier' => [
+ 'help_text' => "Enter a unique series of letters and / or numbers to identify your activity. For example PROJECT-00120467 or AFG-COVAX.You must make sure:Each IATI identifier you publish is unique.Each IATI identifier should not start or end with whitespace.Only use numbers, letters and dashes to form your IATI identifiers.Once you have published an activity its IATI identifier must not change.Further guidance. ",
+ 'shorter_help_text' => "Enter your own unique activity identifier such as abbreviation or simply a number. Make sure it is unique across all the activities. IATI Publisher will concatenate Organization Identifier and Activity Identifier to autogenerate 'iati-identifier'.",
+ ],
+ 'iati_identifier' => [
+ 'hover_text' => "A globally unique identifier for the activity.This MUST be prefixed with EITHER the current IATI organisation identifier for the reporting organisation (reporting-org/@ref) OR a previous identifier reported in other-identifier, and suffixed with the organisation’s own activity identifier. The prefix and the suffix should be separated by a hyphen “-“.Once an activity has been reported to IATI its identifier MUST NOT be changed in subsequent updates.For more information ",
+ 'help_text' => "This is autogenerated by adding your activity-identifier to the end of your Organisation Identifier (this is the unique ID that was generated for your organisation when you registered). Futher guidance .Once an activity has been reported to IATI its identifier MUST NOT be changed in subsequent updates. For more information. ",
+ ],
+ 'reporting_org' => [
+ 'hover_text' => "This is your IATI Organisation Identifier (it is the unique ID that was generated for your organisation when you registered).For more information. ",
+ 'help_text' => "The organisation issuing the report. May be a primary source (reporting on its own activity as donor, implementing agency, etc) or a secondary source (reporting on the activities of another organisation).Specifying the @ref attribute is mandatory. May contain the organisation name as content. For more information ",
+ 'narrative' => [
+ 'help_text' => "This is the name you provided for your organisation when you registered.",
+ 'hover_text' => "The name of the organisation. This can be repeated in multiple languages. For more information ",
+ ],
+ 'language' => [
+ 'hover_text' => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ 'type' => [
+ 'hover_text' => "The type of organisation issuing the report. [
+ 'hover_text' => "A short, human-readable title that contains a meaningful summary of the activity. May be repeated for different languages. For more information ",
+ 'narrative' => [
+ 'hover_text' => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ 'help_text' => "Provide the title for this activity. For example: \"Water for Women Malawi\".",
+ ],
+ 'language' => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ 'description' => [
+ 'hover_text' => "A longer, human-readable description containing a meaningful description of the activity. May be repeated for different languages. For more information ",
+ 'narrative' => [
+ 'hover_text' => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information .",
+ 'help_text' => "Provide a description for your activity. For example: “This project will improve maternal and child health seeking behaviours among 800 pregnant women and 6,500 caregivers of children under five in [location], thereby contributing to a reduction in the high maternal and under-five mortality and morbidity rates in these communities”."
+ ],
+ 'language' => [
+ 'hover_text' => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ 'type' => [
+ 'hover_text' => "Activity description types. (General, objectives, etc).For more information ",
+ 'help_text' => "Select the type of description that best describes your activity.1. General - Unstructured, long description of the activity. 2. Objectives - Specific objectives for the activity, e.g. taken from logical framework. 3. Target Groups - Details of groups that are intended to benefit from the activity. 4. Other - For miscellaneous use. A further classification or breakdown may be included in the narrative"
+ ],
+ ],
+ 'participating_org' => [
+ 'hover_text' => "Specify which organisations are involved with this activity, and what their individual roles are. For example they could be a donor, funder, implementing agency, etc.",
+ 'help_text' => "An organisation involved with the activity. May be a donor, funder, implementing agency, etc. Specifying the @ref identifier is strongly recommended. May contain the organisation name as narrative. If the reporting organisation plays a role in the activity it should be repeated here. One organisation may play more than one role (eg, funding and implementing): in such a case each role should be reported and the name of the organisation repeated.For more information ",
+ 'narrative' => [
+ 'hover_text' => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ 'help_text' => "Provide the name of the participating organisation.",
+ ],
+ 'organisation_role' => [
+ 'hover_text' => "An IATI code describing the organisation’s role in the activity (donor, agency, etc.). This attribute is required.For more information ",
+ 'help_text' => "Select an option that describes the organisation’s role in the activity (funder, implementing agency, etc.): 1. Funding - The government or organisation which provides funds to the activity 2. Accountable - An organisation responsible for oversight of the activity and its outcomes 3. Extending - An organisation that manages the budget and direction of an activity on behalf of the funding organisation 4. Implementing - The organisation that physically carries out the activity or intervention."
+ ],
+ "reference" => [
+ 'hover_text' => "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber}. For more information ",
+ 'help_text' => "Please provide the participating organisation’s IATI Organisation Identifier. The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance. "
+ ],
+ 'type' => [
+ "hover_text" => "The type of organisation issuing the report.For more information ",
+ "help_text" => "Select the type that best describes the participating organisation. Information on all organisation types. "
+ ],
+ "activity_id" => [
+ "hover_text" => "A valid activity identifier published by the participating organisation which points to the activity that it has published to IATI that describes its role in this activity.For more information ",
+ "help_text" => "If the participating organisation has published an activity to IATI for this activity, please provide the activity-id for their activity. You can ask the participating organisation for this, or search for their activity on d-portal.org. Further guidance. "
+ ],
+ 'crs_channel_code' => [
+ "hover_text" => "Under CRS++ Reporting Directives this code identifies the implementing agency. Codes ending in ‘00’ are generic and are similar to the OrganisationType code.For more information ",
+ ],
+ ],
+ 'other_identifier' => [
+ "hover_text" => "Another identifier for the activity. This may be a publishers own identifier that it wishes to record with the activity. This element is also used to trace changes to activity identifiers, for example when an organisation has changed it’s organisation identifier.For more information ",
+ "reference" => [
+ "hover_text" => "The identifier you wish to report. This can be used to report a number of different types of identifiers. See the OtherIdentifier Type codelist for details and options. This attribute is required.For more information ",
+ "help_text" => "Please provide the identifier related to this activity."
+ ],
+ 'ref_type' => [
+ "hover_text" => "The type of identifier being reported, taken from the OtherIdentifierType codelist. This attribute is required.For more information ",
+ "help_text" => "If you want to record another identifier related to this activity, you must select which type of identifier you are providing. See descriptions of all possible types in the Other Identifier Type codelist. "
+ ],
+ 'owner_org' => [
+ "hover_text" => "Where applicable, the organisation that owns the other identifier being reported. When used, then either other-identifier/owner-org/@ref or other-identifier/owner-org/narrative/text() MUST be present.For more information ",
+ "help_text" => "Please provide the Organisation Identifier of the owner of the other identifier for the activity. If your organisation is not the owner, you can search other organisations in the IATI Publisher List. If you cannot find the organisation, see further guidance. "
+ ],
+ 'narrative' => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "help_text" => "Provide a description of the other identifier for the activity.",
+ ],
+ ],
+ 'activity_status' => [
+ "help_text" => "An activity status should be provided. This describes the lifecycle status of the activity from pipeline to completion. You can publish activities that are already completed, currently happening or not yet started. As the activity progresses over time, the activity status should be updated.",
+ "hover_text" => "The current status of the activity.For more information ",
+ 'code' => [
+ "hover_text" => "An IATI code defining the current status of the activity. This attribute is required.For more information ",
+ "help_text" => "Select an option that defines the current status of your activity. 1. Pipeline/identification : The activity is being scoped or planned 2. Implementation : The activity is currently being implemented 3. Finalisation : Physical activity is complete or the final disbursement has been made, but the activity remains open pending financial sign off or M&E 4. Closed : Physical activity is complete or the final disbursement has been made 5. Canceled : The activity has been canceled 6. Suspended : The activity has been temporarily suspended"
+ ],
+ 'activity_date' => [
+ "hover_text" => "The planned and actual start and completion dates of the activity. Start dates may reflect either the commencement of funding, planning or physical activity. End dates should, wherever possible, reflect the ending of physical activity.For more information ",
+ "type" => [
+ "hover_text" => "An IATI code defining the type of activity date being reported. This attribute is required.For more information ",
+ "help_text" => "Please select the type of activity date that you will report. 1. Planned start : The date on which the activity is planned to start, for example the date of the first planned disbursement or when physical activity starts. 2. Actual start : The actual date the activity starts, for example the date of the first disbursement or when physical activity starts. 3. Planned End : The date on which the activity is planned to end, for example the date of the last planned disbursement or when physical activity is complete. 4. Actual end : The actual date the activity ends, for example the date of the last disbursement or when physical activity is complete."
+ ],
+ ],
+ "date" => [
+ "hover_text" => "This attribute is required.This value must be of type xsd:date.1: The planned start date of the activity must be before the planned end date.2: The actual start date of the activity must be before the actual end date.3: The actual start date of the activity must not be in the future.4: The actual end date of the activity must not be in the future.For more information ",
+ "help_text" => "Provide the date of your activity."
+ ],
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "help_text" => "Provide any accompanying information or explanation for your chosen activity status.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ 'contact_info' => [
+ "hover_text" => "Contact information for the activity. Specify whatever is available. You may repeat this element for each contact person.For more information ",
+ "type" => [
+ "hover_text" => "The type of contact. See IATI codelist for values.For more information ",
+ "organisation" => [
+ "hover_text" => "The name of the organisation to contact for more information about the activity. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "help_text" => "Provide the name of the organisation to contact for more information about the activity.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ "department" => [
+ "hover_text" => "The department within the organisation to contact for more information about the activity. For more information ",
+ "narrative" => [
+ "help_text" => "Provide the name of the department within the organisation to contact for more information about the activity. ",
+ ],
+ ],
+ "person_name" => [
+ "hover_text" => "The name of the contact person for the activity.For more information ",
+ "narrative" => [
+ "help_text" => "Provide the name of the contact for more information about the activity. ",
+ ],
+ ],
+ "job_title" => [
+ "hover_text" => "The job title of the contact person at the organisation.For more information ",
+ "narrative" => [
+ "help_text" => "Provide the job title of the contact at the organisation. ",
+ ],
+ ],
+ "telephone" => [
+ "hover_text" => "The contact telephone number. May be repeated for multiple numbers.For more information ",
+ ],
+ "email" => [
+ "hover_text" => "The contact email address. May be repeated for multiple addresses.For more information ",
+ ],
+ "website" => [
+ "hover_text" => "The contact web address. May be repeated for multiple sites.For more information ",
+ ],
+ "mailing_address" => [
+ "hover_text" => "The contact mailing address.For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "help_text" => "Provide any further information about this contact.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ ],
+ ],
+ 'activity_scope' => [
+ "hover_text" => "The geographical scope of the activity: regional, national, sub-national, etc.For more information ",
+ "activity_code" => [
+ "hover_text" => "The geographical scope.. This attribute is required.For more information ",
+ "help_text" => "Select an option that best describes the scope of this activity. 1. Global - The activity scope is global. For example, some activities, such as research, are not based in or benefitting particular countries or regions 2. Regional - The activity scope is a supranational region 3. Multi-national - The activity scope covers multiple countries, that don’t constitute a region 4. National - The activity scope covers one country 5. Sub-national: Multi-first-level administrative areas - The activity scope covers more than one first-level subnational administrative areas (e.g. counties, provinces, states) 6. Sub-national: Single first-level administrative area - The activity scope covers one first-level subnational administrative area (e.g. country, province, state) 7. Sub-national: Single second-level administrative area - The activity scope covers one second-level subnational administrative area (e.g. municipality or district) 8. Single location - The activity scope covers one single location (e.g. town, village, farm) Further guidance. "
+ ],
+ ],
+ 'recipient_country' => [
+ "help_text" => "Each activity in IATI should specify the country (e.g. China) in which the activity is taking place, or the places that will benefit from the activity. If the country is not known, then a supra-national region or regions (e.g. East Asia) must be added. There are several ways you can publish information on which country and/or region will benefit from this activity. If just one country or region is benefitting from this activity, you should simply select the country or region below. This means that only one country or region will be benefiting from 100% of the funding that you publish for this activity. However if multiple countries and/or regions are benefitting from your activity you can:1. Publish the recipient country or region for every individual transaction you publish for this activity. You will be required to publish data on at least one transaction for every activity that you publish (publish data on transactions). Each transaction represents money flowing in or out of the activity. You can select a different country or region for each transaction that you publish. If you want to provide the recipient county or region for your individual transactions, then you should not select a country or region for the entire activity below.2. You can select multiple countries or regions for the entire activity below. If you choose to do this, you must allocate a percentage of funding for the activity to each country and/or region.3. You can choose to create a separate activity for every country that is benefitting from this activity’s funding.Further guidance. ",
+ "hover_text" => "A country that will benefit from this activity. If a specific country is not known the recipient-region element should be used instead. For geographical location, use the location element. Multiple countries and regions can be reported, in which case the percentage attribute MUST be used to specify the share of total commitments across all reported countries and regions. The country can also be specified at transaction rather than activity level. If recipient-country OR recipient-region are reported at the transaction level, ALL transactions MUST contain a recipient-country or recipient-region element and iati-activity/recipient-country and iati-activity/recipient-region MUST NOT be used.For more information ",
+ "country_code" => [
+ "hover_text" => "ISO 3166-1 alpha-2 code for the country. This attribute is required.For more information ",
+ "help_text" => "Select a country benefiting from this activity. However, do not select a country here if you want to specify the recipient country benefiting from the individual transactions within this activity."
+ ],
+ "percentage" => [
+ "hover_text" => "The percentage of total commitments or total activity budget to this item. Content must be a decimal number between 0 and 100 inclusive, with no percentage sign. Percentages for all reported countries and regions within a vocabulary MUST add up to 100.For more information ",
+ "help_text" => "Select the percentage of funding benefitting this country. Percentages for all reported countries and regions MUST add up to 100. Further guidance. "
+ ],
+ "narrative" => [
+ "help_text" => "Add the free text name and/or description regarding the country benefitting from the activity.",
+ ],
+ ],
+ 'recipient_region' => [
+ "help_text" => "If you cannot identify the specific country/countries benefiting from this activity, then you should provide the region instead. If a region is included, it must be in addition to any countries specified. If the recipient country(ies) is known, then the corresponding recipient region should not also be added. For example, if 100% of the funding is going to Uganda, then you should record Uganda as the recipient country and you should not add that the funding is going to the region of Africa. However, if you know that at least 80% of the expected funding is going to Uganda, you can specify that the unknown 20% is going to the region of Africa.More information ",
+ "hover_text" => "A supranational geopolitical region that will benefit from this activity. For sub-national geographical location, use the location element. Multiple countries and regions can be reported, in which case the percentage attribute MUST be used to specify the share of total commitments across all reported countries and regions. Recipient-region must not be used merely to describe the region of a country reported in recipient-country, but ONLY if the region is a recipient IN ADDITION to the country.For more information ",
+ "region_vocabulary" => [
+ "hover_text" => "An IATI code for the vocabulary from which the region code is drawn. If it is not present 1 - ‘OECD DAC’ is assumed.For more information ",
+ "help_text" => "There are two lists of regions; the OECD DAC and UN region code lists. Please select one.IATI recommends that you use the OECD DAC codelist. Otherwise you can use another list of regions by selecting the option: ‘Reporting Organisation’ and providing the URI where this internal list is defined. If you do not choose an option, then the code list 'OECD DAC' is assumed."
+ ],
+ "region_code" => [
+ "hover_text" => "Either an OECD DAC or UN region code. Codelist is determined by vocabulary attribute.This attribute is required.For more information ",
+ ],
+ "custom_code" => [
+ "hover_text" => "Either an OECD DAC or UN region code. Codelist is determined by vocabulary attribute.This attribute is required.For more information ",
+ ],
+ "vocabulary_uri" => [
+ "hover_text" => "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users.For more information ",
+ ],
+ "percentage" => [
+ "hover_text" => "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users. For more information ",
+ "help_text" => "The percentage of total commitments or total activity budget to this item. Content must be a decimal number between 0 and 100 inclusive, with no percentage sign. Percentages for all reported countries and regions within a vocabulary MUST add up to 100.For more information "
+ ],
+ "narrative" => [
+ "help_text" => "Add the free text name of this region benefitting from the activity.",
+ ],
+ "language" => [
+ "help_text" => "Select the language of the text you provided in the narrative. If no language is selected, then your default value is assumed."
+ ],
+ ],
+ 'sector' => [
+ "hover_text" => "A recognised code, from a recognised vocabulary, classifying the purpose of the activity. Sector MUST EITHER be reported here OR at transaction level for ALL transactions. For more information ",
+ "help_text" => "Provide information on the sector which the activity targets or supports. For example, primary education or agriculture. You can select more than one sector but you must provide at least one .",
+ "sector_vocabulary" => [
+ "hover_text" => "An IATI code for the vocabulary (see codelist) used for sector classifications. If omitted, OECD DAC 5-digit Purpose Codes are assumed. It is recommended that OECD DAC 5-digit Purpose Codes are used wherever possible. It is also recommended that if a publisher has its own classification system or systems then the vocabularies 99 or 98 (Reporting Organisation’s own vocabularies) should be used in addition to DAC codes.For more information ",
+ "help_text" => "Please choose the sector list from which you will select the sectors that your activity targets. IATI recommends choosing the OECD DAC 5-digit sector codelist, in which you can make a selection from over 300 sectors. In addition to the OECD DAC 5-digit codelist, you can also choose to use another list (see information on all possible options ). If you want to use your organisation’s own list of internal sector classifications, select the option: ‘Reporting Organisation’. You can choose to use multiple lists. If you use more than one internal sector classification, select ‘Reporting Organisation 2’ (which has the code 98) for the additional list.Further guidance. "
+ ],
+ "vocabulary_uri" => [
+ "hover_text" => "The URI where this vocabulary is defined. If the vocabulary is 99 or 98 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users.For more information ",
+ "help_text" => "If you have chosen to use an internal sector classification codelist, please provide a link to it.",
+ ],
+ "percentage" => [
+ "hover_text" => "The percentage of total commitments or total activity budget to this item. Content must be a decimal number between 0 and 100 inclusive, with no percentage sign. All reported sectors from the same vocabulary MUST add up to 100. For more information ",
+ "help_text" => "If you have selected more than one sector (from the same list), each sector must be given a percentage. These percentages can then be applied to the funding amounts to estimate the resources allocated to each sector. For example, using the OECD DAC 5-digit sector codelist you could allocate 50% of the funding for the activity to the sector code ‘teacher training’ (11130) and 50% to ‘primary education’ (11220)."
+ ],
+ "narrative" => [
+ "hover_text" => "The description of a sector defined by the reporting organisation. (Only to be used when the reporting organisation’s own vocabulary is being used).For more information ",
+ "help_text" => "If you have chosen a sector from an internal sector classification codelist, please provide a description of this sector.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ 'tag' => [
+ "hover_text" => "Categorisations from established taxonomies that enrich the classification of the activity but that, unlike those reported in the sector element, cannot be associated with percentage splits on finances. For more information ",
+ "help_text" => "You can provide other useful information about your activity through ‘tagging’ it to categorisations from established taxonomies. For example, IATI recommends that, if possible, you should tag your activity according to which UN Sustainable Development Goal(s) it is contributing to. Please read guidance on reporting data on the UN Sustainable Development Goals. ",
+ "tag_vocabulary" => [
+ "hover_text" => "An IATI code for the vocabulary or taxonomy (see non-embedded codelist) used for tag classifications.For more information ",
+ "help_text" => "Choose a list. See information on all options . You may choose to tag your activity according to an internal category list, by choosing ‘Reporting Organisation’."
+ ],
+ "targets_tag_code" => [
+ "hover_text" => "The code for the tag as defined in the specified vocabulary. This attribute is required. For more information ",
+ ],
+ "vocabulary_uri" => [
+ "hover_text" => "The URI where this vocabulary is defined. For more information ",
+ "help_text" => "Provide a link to your chosen list.",
+ ],
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "You can provide additional information on the option that you have chosen.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ 'policy_marker' => [
+ "hover_text" => "A policy or theme addressed by the activity. This element was designed for the reporting of OECD DAC CRS policy markers (columns 20-23 and 28-31 of the CRS++ reporting format) but the vocabulary attribute allows it use by other (including local) systems. This element can be repeated for each policy marker.For more information ",
+ "help_text" => "Provide information about the policy or theme addressed by your activity, for example: climate change mitigation or disability. An activity can have multiple policy-markers and percentages do not need to be added to each policy-marker.",
+ "policy_marker_vocabulary" => [
+ "hover_text" => "An IATI code for the vocabulary to be used to define policy markers. If omitted then the OECD DAC vocabulary is assumed. For more information ",
+ "help_text" => "Select a list that includes the policy marker(s) related to your activity.1 OECD DAC CRS - IATI recommends that you select this list which has 12 options to choose from.99 Reporting Organisation - choose this option if you want to provide a code for a policy marker that is defined and tracked by your organisation."
+ ],
+ "vocabulary_uri" => [
+ "hover_text" => "If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. For more information ",
+ "help_text" => "If you have selected 99 Reporting Organisation (above), please provide a link to where your chosen policy marker is listed.",
+ ],
+ "significance" => [
+ "hover_text" => "An OECD DAC CRS code indicating the significance of the policy marker for this activity. This attribute MUST be used for all OECD DAC CRS vocabularies.For more information ",
+ "help_text" => "If you have chosen a policy or theme from the policy-marker OECD DAC CRS list, then you must indicate how significant it is for your activity. For example, it could be the principal objective or a significant objective for your activity. Please read information on all options before making a selection ."
+ ],
+ "policy_marker" => [
+ "hover_text" => "A policy marker code from the codelist specified in the vocabulary. This attribute is required. For more information ",
+ ],
+ "policy_marker_text" => [
+ "hover_text" => "A policy marker code from the codelist specified in the vocabulary. This attribute is required. For more information ",
+ ],
+ "narrative" => [
+ "hover_text" => "A description of the policy marker. This MUST ONLY be used if vocabulary is 99 (the reporting organisation’s own marker vocabulary). May be repeated for multiple languages.For more information ",
+ "help_text" => "If you have selected 99 Reporting Organisation (above), please provide a description for the policy marker(s) that you have chosen.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. This value should be on the Language codelist.For more information ",
+ ],
+ ],
+ 'collaboration_type' => [
+ "hover_text" => "The type of collaboration involved in the activity’s disbursements, e.g. “bilateral” or “multilateral”.For more information ",
+ "help_text" => "You can describe how funds are flowing between organisations within this activity. For example, funds could be flowing bilaterally, meaning between two governments. This is largely applicable to bilateral and multilateral organisations.",
+ "collaboration_type" => [
+ "hover_text" => "A code from the OECD DAC CRS “Bi_Multi” codelist.For more information ",
+ "help_text" => "Please select a collaboration type, if there is an option that is applicable to your activity. See information on all options . Otherwise, leave this blank."
+ ],
+ ],
+ 'default_flow_type' => [
+ "hover_text" => "Whether the activity is funded by Official Development Assistance (ODA), Other Official Flows (OOF), etc. For more information ",
+ "help_text" => "Flow type is another way to categorise financial flows. It distinguishes the flow as official development assistance (ODA), other official flows (OOF), or several types of private flows, including private grants often provided by NGOs and other civil society organisations.",
+ "default_flow_type" => [
+ "hover_text" => "A code from the OECD DAC CRS 'Type of flow' codelist. This attribute is required.For more information ",
+ "help_text" => "If this activity's funds can be classified by the following options , please make a selection here. Otherwise, leave blank."
+ ],
+ ],
+ "default_finance_type" => [
+ "hover_text" => "The type of finance (e.g. grant, loan, debt relief, etc). This the default value for all transactions in the activity report; it can be overridden by individual transactions. For more information ",
+ "help_text" => "Finance type specifies the financial instrument that is being used for this activity. For example, financing is most commonly delivered as a grant or a loan.",
+ "default_finance_type" => [
+ "hover_text" => "A code from the OECD DAC CRS “Type of finance” codelist. This attribute is required. For more information ",
+ "help_text" => "Please select a finance type for this activity from the following options ."
+ ],
+ ],
+ 'default_aid_type' => [
+ "default_aid_type_vocabulary" => [
+ "hover_text" => "A code for the vocabulary aid-type classifications. If omitted the AidType (OECD DAC) codelist is assumed. The code must be a valid value in the AidTypeVocabulary codelist. For more information ",
+ "help_text" => "Select a list that includes the aid-type related to your activity (if any are applicable). Otherwise leave this blank. You can choose to select an aid-type from more than one list. ]1 OECD DAC - IATI recommends that you select this list which has over 20 options to choose from. Then, in addition you can select an option from another list2 Earmarking Category - select this list to categorise how flexible humanitarian funding is. There are 4 earmarking categories. Understand more about the categories in Annex 1 3 Earmarking Modality - use this list to choose the specific earmarking modality to describe your activity’s humanitarian funding. All earmarking modality options are listed in Annex 1 4 Cash and Voucher Modalities - select this list to specify if your activity is responding to a humanitarian event by providing cash and voucher assistance. More information .",
+ ],
+ "default_aid_type" => [
+ "hover_text" => "A code from the specified vocabulary. This attribute is required. For more information ",
+ ],
+ ],
+ 'default_tied_status' => [
+ "hover_text" => "Whether the aid is untied, tied, or partially tied. This element specifies a default for all the activity’s financial transactions; it can be overridden at the individual transaction level.For more information ",
+ "help_text" => "You can state the tied status of this transaction. Here you can specify if funds are tied - where they must be spent on goods or services procured from a particular country (e.g. donor country) or group of countries. Or if funds are untied, this is where the recipient organisation is allowed to procure from any country.",
+ "default_tied_status" => [
+ "hover_text" => "An IATI code interpreting the usage of Columns 36-38 of the CRS++ reporting format. (Amount tied, Amount partially untied, Amount tied). For more information ",
+ "help_text" => "Select a default-tied-status, if applicable to your activity. See descriptions of all options . Otherwise leave blank."
+ ],
+ ],
+ 'country_budget_items' => [
+ "hover_text" => "This item encodes the alignment of activities with both the functional and administrative classifications used in the recipient country’s Chart of Accounts. This applies to both on- and off-budget activities.For more information ",
+ "country_budget_vocabulary" => [
+ "hover_text" => "An IATI code for the common functional classification or country system (This allows for common codes, country-specific, or any other classification agreed between countries and donors). For more information ",
+ ],
+ "budget_item" => [
+ "hover_text" => "Identifier for a single item in the recipient-country budget. If more than one identifier is reported the percentage share must be reported and all percentages should add up to 100 percent.For more information ",
+ "code" => [
+ "hover_text" => "A code for the budget-item from the vocabulary specified. This attribute is required.For more information ",
+ ],
+ "percentage" => [
+ "hover_text" => "When multiple budget-item elements are declared within a single country-budget-items element, then, for each vocabulary used, the percentage values should sum 100%.For more information ",
+ "help_text" => "If no value is selected, default value is assumed.",
+ ],
+ "description" => [
+ "hover_text" => "A longer, human-readable description of the budget-item. May be repeated for different languages. For more information ",
+ ],
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ ],
+ 'humanitarian_scope' => [
+ "hover_text" => "Classification of emergencies, appeals and other humanitarian events and actions. For more information ",
+ "help_text" => "The ‘humanitarian-scope’ element can be used to specify the emergency and/or appeal that your activity is responding to",
+ "type" => [
+ "hover_text" => "A code for the type of event or action being classified. For more information ",
+ "help_text" => "Select which type of information you can provide:Emergencies (type 1) Select this option if you can provide the GLIDE number for the specific humanitarian emergency that your activity is responding to. Alternatively, select this option if you can declare a code for the emergency from another public list.Appeals (type 2) Select this option if your activity is contributing to a UN Office for the Coordination of Humanitarian Affairs (OCHA) Humanitarian Response Plan or Flash Appeal . These codes are created by UN OCHA for use in their Financial Tracking Service (FTS). Alternatively, select this option if you can declare a code for the appeal from another public list. ",
+ ],
+ "vocabulary" => [
+ "hover_text" => "A code for a recognised vocabulary of terms classifying the event or action. This attribute is required. For more information ",
+ "help_text" => "Select the list that you will use to identify the emergency or appeal that your activity is responding to:1-2 Glide 2-1 Humanitarian Plan 99 Reporting Organisation - select this option if you can declare a code for the emergency or appeal from an alternative public list.",
+ ],
+ "vocabulary_uri" => [
+ "hover_text" => "A u.r.i. for the vocabulary specified which provides access to the list of codes and descriptions. For more information ",
+ "help_text" => "Provide a link to the list of emergencies or appeals that you will use, which includes its codes and descriptions.",
+ ],
+ "code" => [
+ "hover_text" => "A code for the event or action from the vocabulary specified.For more information ",
+ "help_text" => "Provide the code for the specific emergency or appeal that your activity is responding to. For example, if you are providing a code for an emergency that has a Glide Number , the format for this code would be: [Emergency Type] + [Year] + [Number] + [Country].",
+ ],
+ "narrative" => [
+ "hover_text" => "The description of the code specified. For more information ",
+ "help_text" => "If you have used a code for the emergency or appeal from an alternative public list (i.e. you have selected 99 Reporting Organisation above), please provide a description of the code that you have specified.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ 'capital_spend' => [
+ "hover_text" => "The percentage of the total commitment that is for capital spending. For more information ",
+ "help_text" => "Please indicate how much of the total activity’s funding will be spent on capital. Capital describes physical assets with a useful life of more than one year. For example, a road.",
+ "capital_spend" => [
+ "hover_text" => "The percentage of the total commitment allocated to or planned for capital expenditure. Content must be a decimal number between 0 and 100 inclusive, with no percentage sign.For more information ",
+ "help_text" => "Percentage must not exceed 100.",
+ ],
+ ],
+ 'related_activity' => [
+ "hover_text" => "Another separately reported IATI activity that is related to this one. The ‘type’ attribute describes the type of relationship: (eg. parent, child, multifunded). It is strongly recommended that linkage between activities in a hierarchical group should always be managed by use of this element with @type of 1 (parent) or 2 (child). For more information ",
+ "help_text" => "If this activity is part of a programme with multiple activities within one organisation, you should include details of all related activities. Please read more about the types of related activities that you can report.Please only refer to your own activities here.",
+ "activity_identifier" => [
+ "hover_text" => "A valid activity identifier (as defined in iati-activity/iati-identifier).",
+ "help_text" => "If you have a related activity to report, please provide its full activity-id (including the organisation-id part). See more information on activity-ids . You can ask the person(s) who reported the related activity for this, or search for the activity on d-portal.org. See further guidance .",
+ ],
+ "relationship_type" => [
+ "hover_text" => "An IATI code for the type of relationship",
+ "help_text" => "Please select the type of relationship between the activity being reported and the related activity from this list .",
+ ],
+ ],
+ 'conditions' => [
+ "hover_text" => "Specific terms and conditions attached to the activity that, if not met, may influence the delivery of commitments made by participating organisations. For more information ",
+ "help_text" => "Please declare any conditions or specific terms that are attached to this activity. For example, requirements issued by your funder or a six month review to assess whether or not the activity is worth continuing. If a condition relates to the whole organisation, such as organisation-wide terms and conditions, it should not be reported within this activity. Instead, you should report this in the document-link element in your organisation file.Further guidance .",
+ "condition_attached" => [
+ "hover_text" => "A yes/no (1/0) value stating whether there are conditions attached to the activity. It is strongly recommended that this attribute is reported, even if there are no conditions attached (i.e. attached=”0”)",
+ "help_text" => "Please select ‘Yes’ if your activity has a condition attached to it or ‘No’ if it does not.",
+ ],
+ "condition" => [
+ "hover_text" => "The text of a specific condition attached to the activity. Organisation-wide terms and conditions that apply to all activities should not be reported here, but in either iati-organisation/document-link or iati-activity-document-link. For more information ",
+ ],
+ "condition_type" => [
+ "hover_text" => "An IATI code defining the type of condition. ",
+ "help_text" => "Select the type of condition that you want to report. Three types of condition can be reported:Policy : e.g. a particular policy needs to be implemented by the organisation receiving funds.Performance : e.g. certain outputs or outcomes need to be achieved.Fiduciary : e.g. the recipient is required to use certain public financial management or public accountability measures.Full description of types .",
+ ],
+ "narrative" => [
+ "help_text" => "Provide a short description of the condition here. You can provide more information by adding a link to a relevant document or webpage in the activity document-link element.",
+ ],
+ ],
+ 'legacy_data' => [
+ "hover_text" => "The legacy data element allows for the reporting of values held in a field in the reporting organisation’s system which is similar, but not identical to an IATI element. For more information ",
+ "help_text" => "You can link this activity to your organisation’s internal data and record which IATI Standard element it most relates to.",
+ "legacy_name" => [
+ "hover_text" => "The original field name in the reporting organisation’s system",
+ ],
+ "value" => [
+ "hover_text" => "The original field value in the reporting organisation’s system",
+ ],
+ "iati_equivalent" => [
+ "hover_text" => "The name of the equivalent IATI element.",
+ ],
+ ],
+ 'document_link' => [
+ "hover_text" => "A link to an online, publicly accessible web page or document. For more information ",
+ "help_text" => "You can report further information about this activity by providing a publicly accessible link to a document or webpage. If documents are available in other languages and stored separately, please provide them by creating additional document elements.Further guidance ",
+ "url" => [
+ "hover_text" => "The target URL of the external document, e.g. 'http://www.example.org/doc.odt'.For more information ",
+ ],
+ "format" => [
+ "hover_text" => "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "help_text" => "If you know the format of the document file, please type it using an option from this list .",
+ ],
+ "title" => [
+ "hover_text" => "A short, human-readable title.For information ",
+ ],
+ "description" => [
+ "hover_text" => "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ ],
+ "category" => [
+ "hover_text" => "IATI Document Category Code. For more information ",
+ "code" => [
+ "hover_text" => "An IATI code defining the category of the document. For more information ",
+ "help_text" => "Select a category of the document or webpage that you have provided from this list .",
+ ],
+ ],
+ "language" => [
+ "code" => [
+ "help_text" => "Select the language of the document or webpage.",
+ ],
+ ],
+ "document_date" => [
+ "hover_text" => "The date of publication of the document that is being linked to. (@iso-date).For more information ",
+ ],
+ ],
+ 'location' => [
+ "hover_text" => "The sub-national geographical identification of the target locations of an activity. These can be described by gazetteer reference, coordinates, administrative areas or a textual description. Any number of locations may be reported.For more information ",
+ "help_text" => "Provide the sub-national location/s of an activity, if it is known. However location data should only be added when it is safe to do so. It is the publishing organisation’s responsibility to ensure that the data it publishes is safe. You can provide geographic coordinates of a location, the name and description of a location, the administrative area or other features of the location e.g. health centre, village etc.Further guidance. ",
+ "reference" => [
+ "hover_text" => "An internal reference that describes the location in the reporting organisation’s own system.For more information ",
+ "help_text" => "You can provide an internal reference used by your organisation to describe the location for example: AF-KAN.",
+ ],
+ "location_id" => [
+ "hover_text" => "A unique code describing the location according to a recognised gazetteer or administrative boundary repository. Administrative areas should only be reported here if the location being defined is the administrative area itself. For describing the administrative area/s within which a more specific location falls the location/administrative element should be used.For more information ",
+ "help_text" => "You can provide a unique code describing the location according to a recognised gazetteer or administrative boundary repository. You can select an option of a gazetteer or administrative boundary repository from the list below.",
+ "vocabulary" => [
+ "hover_text" => "An IATI code for a recognised gazetteer or administrative boundary repository.This attribute is required.For more information ",
+ "help_text" => "Please select the gazetteer or administrative boundary repository that you will provide a code from.View more information about each option. ",
+ ],
+ "code" => [
+ "hover_text" => "A code from the gazetteer or administrative boundary repository specified by the vocabularyFor more information ",
+ "help_text" => "Provide a unique code describing the location with a recognised gazetteer or administrative boundary repository (see list). ",
+ ],
+ ],
+ "location_reach" => [
+ "hover_text" => "Does this location describe where the activity takes place or where the intended beneficiaries reside? For more information ",
+ "help_text" => "Please specify if the location describes where the activity takes place or where the intended beneficiaries reside.",
+ "code" => [
+ "hover_text" => "An IATI code for the geographic scope of the activity. This attribute is required.For more information ",
+ "help_text" => "Please choose an option to describe the reach of the location. 1. Activity - The location specifies where the activity is carried out 2. Intended Beneficiaries - The location specifies where the intended beneficiaries of the activity live",
+ ],
+ ],
+ "name" => [
+ "hover_text" => "The human readable name for the location.For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "help_text" => "Provide the free text name of the location of the activity.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ "help_text" => "Select the language of the text you provided in the narrative. If no language is selected, then your default language is assumed."
+ ],
+ ],
+ "description" => [
+ "hover_text" => "A description that qualifies the location, not the activity.For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ "help_text" => "Provide a description of the location of the activity.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ "activity_description" => [
+ "hover_text" => "A description that qualifies the activity taking place at the location. This should not duplicate information provided in the main activity description, and should typically be used to distinguish between activities at multiple locations within a single iati-activity record.For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ "administrative" => [
+ "hover_text" => "Coded identification of national and sub-national divisions according to recognised administrative boundary repositories. Multiple levels may be reported.For more information ",
+
+ "help_text" => "You can provide a unique code to describe the activity location according to an administrative boundary repository.",
+ "vocabulary" => [
+ "hover_text" => "An IATI code for a recognised administrative boundary repository.For more information ",
+
+ "help_text" => "Select an administrative boundary list that includes a code to represent your activity location."
+ ],
+ "code" => [
+ "hover_text" => "The code for the administrative area being reported from the vocabulary specified.For more information ",
+ "help_text" => "Provide a code to represent your activity location (from your chosen administrative boundary list ).",
+ ],
+ "level" => [
+ "hover_text" => "A number defining a subdivision within a hierarchical system of administrative areas. The precise system for defining the particular meaning of each @level value is determined by the @vocabulary being used.For more information ",
+ "help_text" => "Within your chosen administrative boundary list , you can provide a number to define a subdivision within a hierarchical system of administrative areas.",
+ ],
+ ],
+ "point" => [
+ "hover_text" => "The point element is based on a subset of the GML 3.3 Point element.For more information ",
+ "help_text" => "You can provide geo-coordinates for the location, in the format of latitude and longitude coordinates Coordinates are published using the point and pos elements. The point element is always: The pos element then contains the latitude coordinate (the first number), followed by the longitude coordinate (the second number) e.g. -46.7733 167.6321. Please note that coordinates can refer to an 'exact' or an 'approximate' location. This should be specified using the location exactness element.More information. ",
+ "srs_name" => [
+ "hover_text" => "The name of the spatial reference system used by the coordinates.For more information ",
+ "help_text" => "This value never changes.",
+ ],
+ "pos" => [
+ "hover_text" => "The latitude and longitude coordinates in the format 'lat lng'.For more information ",
+ "help_text" => "Add latitude and longitude separated by a space e.g. 31.616944 65.716944 If you don't already have a way to find the coordinates for an activity, there are some online platforms to help, e.g. Google Maps and Latlong.net . To find the coordinates for an activity on Google Maps, right-click over the location of the activity and select 'what's here?'. The coordinates will then be presented. Alternatively, type in the coordinates and the location of the activity that will be pinpointed on the map.More information. "
+ ],
+ 'exactness' => [
+ 'hover_text' => "Defines whether the location represents the most distinct point reasonably possible for this type of activity or is an approximation due to lack of more detailed information.For more information ",
+ 'code' => [
+ 'hover_text' => "A code from the Geographic Exactness Codelist. This attribute is required.For more information ",
+ 'help_text' => "If you have provided the geo-coordinates for the activity location, then select an option from the Geographic Exactness list to specify whether the location is exact or approximate.",
+ ],
+ ],
+ 'location_class' => [
+ 'hover_text' => "Whether the location refers to a structure, a populated place (e.g. city or village), an administrative division, or another topological feature (e.g. river, nature reserve).For more information ",
+ 'code' => [
+ 'hover_text' => "A code from the Location Class codelist. This attribute is required.For more information ",
+ 'help_text' => "Please specify the form of the activity location from the Geographic Location Class list . For example a populated place (town, farm), or topographical feature (mountain, river).",
+ ],
+ ],
+ 'feature_designation' => [
+ 'hover_text' => "A more refined coded classification of the type of feature referred to by this location.For more information ",
+ 'code' => [
+ 'hover_text' => "A feature designation code form the authorised list (maintained by the US National Geospatial-Intelligence Agency).For more information ",
+ 'help_text' => "You can provide more detail on the type of your activity's location (e.g. beach, well or college).Please make a selection from the Location Type list. ",
+ ],
+ ],
+ ],
+ ],
+ 'planned_disbursement' => [
+ "hover_text" => "The planned disbursement element should only be used to report specific planned cash transfers. These should be reported for a specific date or a meaningfully predictable period.For more information ",
+ "help_text" => "You can publish data on your planned cash transfers to organisations (or between two other organisations) as part of this activity. The purpose of planned disbursements is to publish predefined payment schedules. Planned disbursements should be reported for a specific date or a meaningfully predictable period. Planned disbursements should be reported in addition and should not replace the activity’s budget.",
+ "period_start" => [
+ "hover_text" => "The exact date of the planned disbursement OR the starting date of the period in which this specific disbursement will be made.For more information "
+ ],
+ "period_end" => [
+ "hover_text" => "The ending date for the period in which this specific disbursement will be made.For more information "
+ ],
+ "planned_disbursement_type" => [
+ "hover_text" => "The purpose of planned-disbursement is to describe any predefined payment schedule.For more information ",
+ "help_text" => "Specify if this is an ‘original’ planned disbursement (prepared when the original commitment was made) or has subsequently been ‘revised’.",
+ ],
+ "value" => [
+ "hover_text" => "The amount that is planned to be disbursed in the specified currency. For more information ",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified. For more information ",
+ "help_text" => "Select the currency that you have provided the value in. If no value is selected, default value is assumed.",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions.This attribute is required. For more information ",
+ "help_text" => "Provide the date on which the planned disbursement was agreed.",
+ ],
+ ],
+ "provider_org" => [
+ "hover_text" => "The organisation from which the planned disbursement will originate. If omitted the reporting-org is assumed.For more information ",
+ "help_text" => "Will your organisation be disbursing these funds? If so then you are the provider organisation. If not, please provide information on the organisation who will be disbursing these funds.",
+ "reference" => [
+ "hover_text" => "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber} where {RegistrationAgency} is a valid code in the Organisation Registration Agency code list and {RegistrationNumber} is a valid identifier issued by the {RegistrationAgency}. If this is not present then the narrative MUST contain the name of the organisation.For more information ",
+ "help_text" => "Please type the provider organisation’s IATI Organisation Identifier . The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance .",
+ ],
+ "provider_activity_id" => [
+ "hover_text" => "The identifier for the activity in which the planned disbursement will be reported. If omitted the current activity is assumed. For more information ",
+ "help_text" => "The provider organisation may have published IATI data on these funds in their own activity. If so, please provide the activity-id for their activity that includes information on this funding. You can ask the provider organisation for this activity-id, or search for their activity on d-portal.org. See further guidance . If you are the provider organisation then leave this blank.",
+ ],
+ "type" => [
+ "hover_text" => "The type of organisation providing the funds.For more information ",
+ "help_text" => "Select the type that best describes the provider organisation (if this is not your organisation). Information on all organisation types .",
+ ],
+ "narrative" => [
+ "hover_text" => "The name of the organisation. This can be repeated in multiple languages.For more information ",
+ "help_text" => "If the provider organisation does not have an IATI Organisation Identifier, the name of the organisation must be given.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ "help_text" => "Select the language of the name provided. If no language is selected, your default language is assumed.",
+ ],
+ ],
+ "receiving_org" => [
+ "reference" => [
+ "hover_text" => "The organisation receiving the money from the planned disbursement.For more information ",
+ "help_text" => "Provide information on which organisation will be receiving the funds.",
+ ],
+ "receiver_activity_id" => [
+ "hover_text" => "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber} where {RegistrationAgency} is a valid code in the Organisation Registration Agency code list and {RegistrationNumber} is a valid identifier issued by the {RegistrationAgency}. If this is not present then the narrative MUST contain the name of the organisation.For more information ",
+ "help_text" => "Please provide the receiver organisation's IATI Organisation Identifier (org-ID). The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance .",
+ ],
+ "type" => [
+ "hover_text" => "If outgoing funds are being provided to another activity that is reported to IATI, this may, if possible, record the unique IATI activity identifier for that activity.For more information ",
+ "help_text" => "If possible, please provide the activity-id for the receiver's activity which will receive this disbursement. You can ask the receiver organisation for this activity-id, or search for their activity on d-portal.org. See further guidance .",
+ ],
+ "narrative" => [
+ "hover_text" => "The type of organisation receiving the funds.For more information ",
+ "help_text" => "Select the type that best describes the receiver organisation. Information on all organisation types .",
+ ],
+ "language" => [
+ "hover_text" => "The name of the organisation. This can be repeated in multiple languages. For more information ",
+ ],
+ ],
+ ],
+ 'budget' => [
+ "hover_text" => "The value of the activity’s budget for each financial quarter or year over the lifetime of the activity. The purpose of this element is to provide predictability for recipient planning on an annual basis. The status explains whether the budget being reported is indicative or has been formally committed. For more information ",
+ "help_text" => "Provide the amount of finance expected to be spent as part of this activity. You need to provide budget(s) broken down by time periods of a year or less covering the whole life of the activity. Publishing budgets for each quarter is helpful for data users. A budget must not span more than 12 months. You should provide your budget(s) for your activity as soon as possible. You can then update this over time as more or less funding comes in, or the scope of the activity changes. More information .",
+ "budget_status" => [
+ "hover_text" => "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
+ "help_text" => "Please select a status for this budget:1 Indicative : a non-binding estimate for the described budget2 committed a binding agreement for the described budget If this budget changes status, you should change the status of this budget here. You should not create a new budget for the same time period with a different status. More information .",
+ ],
+ "budget_type" => [
+ "hover_text" => "Whether this is the original budget (prepared when the original commitment was made) or has subsequently been revised.For more information ",
+ "help_text" => "Select the type of budget that you a providing:1 Original The original budget allocated to the activity. Select this option if you are publishing information about this budget for the first time.2 Revised The updated budget for an activity. Select this option if you are revising your original budget. For example: an activity lasts a year. The original budget was $10,000 and was later decreased by $2,000. The final total budget for the activity is $8,000.You would need to create two budgets for this time period. Firstly you would add a budget with the type ‘original’ with the start and end date for the year, with the value of $10,000. Once you know that the budget has been revised, you would then add another budget for the same dates, with the type ‘revised’ with a value of $8,000. If there are further changes to the revised budget, you should change the value in the ‘revised’ budget. Do not create additional ‘revised’ budgets for the same time period. Therefore only one original and one revised budget should be published for each time period. More information .",
+ ],
+ "period_start" => [
+ "hover_text" => "The start of the budget period.For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date.For more information ",
+ "help_text" => "Provide the start date of the budget.",
+ ],
+ ],
+ "period_end" => [
+ "hover_text" => "The end of the period (which must not be greater than one year). For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date.For more information ",
+ "help_text" => "Provide the end date of the budget.",
+ ],
+ ],
+ "budget_value" => [
+ "hover_text" => "The budget for this period.For more information ",
+ "help_text" => "Provide the total finance for this budget",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified.For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions.This attribute is required.For more information ",
+ ],
+ ],
+ ],
+ 'result' => [
+ "hover_text" => "A container for reporting outputs, outcomes, impacts and other results that stem directly from the activity. This may be repeated for each type of result reported. For more information. ",
+ "help_text" => "Results describe the benefit or intended benefits of an activity; these can be broken down into types: outputs , outcomes and impacts . You can provide multiple results for your activity. Updating results regularly means that data users can track an activity’s progress, including whether the activity was a success and what challenges were faced. Both positive and negative results should be included. See guidance for more information: Results Information and Understanding results data . Please note: security implications may prevent results data from being published, or require results to be aggregated. Any security considerations should be outlined in an organisation’s exclusion policy .",
+ "type" => [
+ "hover_text" => "An IATI code for the type of result being reported. For more information. ",
+ "help_text" => "Select the type of result that your activity is aiming to achieve or has already achieved.Output - Results of the activity that came about as a direct effect of your work and specifically, what is done, and what communities are reached. For example, X number of individuals trained.Outcome - Results of the activity that produce an effect on the overall communities or issues you serve. For example lower rate of infection after a vaccination programme.Impact - The long term effects of the outcomes, that lead to larger, overarching results, such as improved life-expectancy.Other - Another type of result, not specified above",
+ ],
+ "aggregation_status" => [
+ "hover_text" => "Flag indicating whether the data in the result set are suitable for aggregation.For more information. ",
+ "help_text" => "Select yes if the results data that you provide is suitable for aggregation (the data user should be able to add them up to get the total)."
+ ],
+ "title" => [
+ "hover_text" => "A short, human-readable title.For more information. ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Provide a title for the result. For example ‘People have access to independent media covering a diverse range of outcomes’. ",
+ ],
+ ],
+ "description" => [
+ "hover_text" => "A longer, human-readable description. For more information. ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Provide a longer description for the result.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ "help_text" => "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed.",
+ ],
+
+ ],
+ "document_link" => [
+ "hover_text" => "A link to an online, publicly accessible web page or document expanding on the result. For more information. ",
+ "help_text" => "You may provide more information about the result by providing a link to an online, publicly accessible web page or document.",
+ "url" => [
+ "hover_text" => "The target URL of the external document, e.g. http://www.example.org/doc.odt. For more information. ",
+ "help_text" => "Type the URL for the document that provides more information about the result. Make sure it includes “https://…",
+ ],
+ "format" => [
+ "hover_text" => "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "language" => [
+ "help_text" => "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed.",
+ ],
+ ],
+ "description" => [
+ "language" => [
+ "help_text" => "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed.",
+ ],
+ ],
+ "category" => [
+ "hover_text" => "IATI Document Category Code. For more information. ",
+ "help_text" => "If you have provided a document link, then you must select a category that best describes the document.",
+ "code" => [
+ "hover_text" => "An IATI code defining the category of the document. For more information ",
+ "help_text" => "Select a document category from this list .",
+ ],
+ ],
+ "language" => [
+ "code" => [
+ "hover_text" => "ISO 639-1 language code. For more information ",
+ ],
+ ],
+ ],
+ "reference" => [
+ "hover_text" => "A reference element to allow for the coded identification of results framework. For more information ",
+ "help_text" => "If this result is contained in a results framework, then you may provide information about it. You can choose to provide a reference to a results framework in two ways:1. You can provide a reference to a results framework for the result here OR2. You can provide a reference to a results framework for each individual indicator that measures this result. For every result that you publish, you will be required to provide an indicator (which measures the result).Option 2 is recommended . To implement this option, leave the next three fields blank: code, vocabulary, vocabulary uri. Do note: You cannot provide a reference to a results framework for both the result and indicator. See guidance for more information: Results Information ",
+
+ "vocabulary" => [
+ "hover_text" => "A code for the results framework vocabulary. The code must be a valid value in the ResultVocabulary codelist. For more information ",
+ ],
+
+ "vocabulary_uri" => [
+ "hover_text" => "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users.For more information ",
+ ],
+ ],
+ ],
+ 'indicator' => [
+ "hover_text" => "The indicator(s) that are measured to meet the results. There can be multiple indicators for each result.For more information ",
+ "help_text" => " Example usage : An activity is working towards the outcome: ‘people to have access to independent media covering a diverse range of outcomes’. One of the ways this is being measured is through ‘the percentage of journalists who feel free to express their opinion’ (which is an indicator). This is measured through a bi-annual survey where they are asked to score how free they feel on a scale of 1 - 4. See Results Information for more details on this example and Understanding results data for further examples.",
+ "measure" => [
+ "hover_text" => "An IATI code defining the unit of measure in which the value is reported. For more information ",
+ "help_text" => "Select the unit of measurement for the indicator:Unit - The indicator is measured in units e.g. number of workshops delivered.Percentage - The indicator is measured in percentages e.g. percentage of the population who have received a vaccine.Nominal - The indicator is measured as a quantitative nominal scale. For example gender, race etc.Ordinal - The indicator is measured as a quantitative ordinal scale. For example: “very satisfied,” “satisfied,” “dissatisfied,” and “very dissatisfied.” In an ordinal scale, the order of answer options is what’s significant—you can’t quantify the exact difference between each answer option. The difference between responses like “very satisfied” and “satisfied,” for example, is relative, not exact.Qualitative - The indicator is qualitative and this is often a description, such as detailing more favourable attitudes towards gender equality amongst trained staff.",
+ ],
+ "ascending" => [
+ "hover_text" => "A flag describing the behaviour of the indicator. It is “true” if the indicator improves from small to large (e.g. clinics built); false if it improves from large to small (e.g. cases of a disease). For more information ",
+ "help_text" => "Select an option here if your indicator is a numerical (quantitative) measure. If a high number shows improvement, select 1 (true). If a low number shows improvement, select 0 (false).",
+ ],
+ "aggregation_status" => [
+ "hover_text" => "Flag indicating whether the data in the result set are suitable for aggregation. For more information ",
+ "help_text" => "Select yes if the results data that you provide is suitable for aggregation (the data user should add them up to get the total)."
+ ],
+ "title" => [
+ "hover_text" => "A short, human-readable title.For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Provide a title or brief description of the indicator. Using the same example above, a narrative could be: “The percentage of journalists who feel free to express their opinion (scoring 3 or 4 with a scale of 1 - 4)\". See Results Information for more details on this example.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ "description" => [
+ "hover_text" => "A description of the document contents, or guidance on where to access the relevant information in the document.For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages.For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+
+ ],
+ "document_date" => [
+ "hover_text" => "The date of publication of the document that is being linked to. (@iso-date). For more information ",
+ "date" => [
+ "hover_text" => "The date of publication of the document that is being linked to.For more information ",
+ "help_text" => "Provide the date of publication for the document.",
+ ]
+ ],
+ "document_link" => [
+ "hover_text" => "A link to an online, publicly accessible web page or document expanding on the result. For more information ",
+ "help_text" => "You may provide more information about the result indicator by providing a link to an online, publicly accessible web page or document.",
+ "url" => [
+ "hover_text" => "The target URL of the external document, e.g. http://www.example.org/doc.odt. For more information. ",
+ "help_text" => "Provide the link to a specific results indicator being reported. Make sure it includes “https://…",
+ ],
+ "format" => [
+ "hover_text" => "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "language" => [
+ "help_text" => "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed.",
+ ],
+ ],
+ 'title' => [
+ "hover_text" => "A short, human-readable title. For more information ",
+
+ ],
+ "description" => [
+ "language" => [
+ "help_text" => "Select the language of the text that you provided in the narrative. If no language is selected, your default language is assumed.",
+ ],
+ ],
+ "category" => [
+ "hover_text" => "IATI Document Category Code. For more information ",
+ "help_text" => "If you have provided a document link, then select a category that best describes the document.",
+ "code" => [
+ "hover_text" => "An IATI code defining the category of the document. For more information ",
+ ]
+ ],
+ "language" => [
+ "code" => [
+ "hover_text" => "ISO 639-1 language code. For more information ",
+ ]
+ ],
+ ],
+ "reference" => [
+ "hover_text" => "A reference element to allow for the coded identification of results framework. For more information ",
+ "help_text" => "If the indicator that you report is included in an existing results framework, please provide information on it here.",
+ "vocabulary" => [
+ "hover_text" => "A code for the results framework vocabulary. The code must be a valid value in the ResultVocabulary codelist. For more information ",
+ "help_text" => "Select the results framework that your indicator is included in. If the results framework is not listed, select '99 Reporting Organisation'.",
+ ],
+ "indicator_uri" => [
+ "hover_text" => "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. While this is an optional field it is STRONGLY RECOMMENDED that all publishers use it to ensure that the meaning of their codes are fully understood by data users. For more information ",
+ "help_text" => "If you selected a results framework, provide a link to it. If you selected 99 (Reporting Organisation), it is strongly recommended that a link to the codelist is included here. This helps ensure that users can understand the meaning of the code.",
+ ],
+ ],
+ "baseline" => [
+ "hover_text" => "The baseline value for the indicator. For more information ",
+ "help_text" => "For each indicator please provide a baseline value, a target and the actual result achieved. The baseline is the starting point. The target is a result an organisation wants an activity to achieve in a certain period of time. The actual result is what was achieved at the end of that period. For example: The starting value (baseline) was 15% of journalists felt free to express their opinions. At the end of the chosen time period, the target was set at 50%. The activity achieved its target, as by the end of the period (actual) 53% of journalists felt free to express their opinions. See Results Information for more details on this example and Understanding results data for further examples.",
+ "year" => [
+ "hover_text" => "The year the baseline value was taken (yyyy). For more information ",
+ "help_text" => "Provide the year when the indicator’s baseline was measured.",
+ ],
+ "date" => [
+ "hover_text" => "The date of baseline value was taken. For more information ",
+ "help_text" => "Provide the date for when the indicator’s baseline was measured.",
+ ],
+ "value" => [
+ "hover_text" => "The baseline value. For more information ",
+ "help_text" => "Provide the baseline value. For example if the value is 15 percent, just type 15 (as you have provided the unit of measure above). Please leave this blank if this indicator uses a qualitative measure (and add your baseline in the comment field below).",
+ ],
+ "comment" => [
+ "hover_text" => "A human-readable comment associated with a piece of aid information. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "If the indicator is a qualitative measure, provide a descriptive baseline here. You may also add other descriptive information about your baseline here. For example: “Baseline measured in a survey amongst 1083 journalists in country X”.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ "dimension" => [
+ "hover_text" => "A category used for disaggregating the result by gender, age, etc. For more information ",
+ "help_text" => "Please note: A baseline can have multiple dimensions.",
+ "name" => [
+ "hover_text" => "Freetext description of a category being disaggregated. For more information ",
+ "help_text" => "For example an activity could declare the dimension's name as 'sex', with a value of 'female'.",
+ ],
+ "value" => [
+ "hover_text" => "Description of the value being disaggregated. For more information ",
+ ],
+ ],
+ "document_link" => [
+ "hover_text" => "A link to an online, publicly accessible web page or document expanding on the result. For more information ",
+ "help_text" => "You may provide more information about the indicator baseline by providing a link to an online, publicly accessible web page or document.",
+ "url" => [
+ "hover_text" => "The target URL of the external document, e.g. “http://www.example.org/doc.odt”. For more information ",
+ "help_text" => "Type the URL for the document that provides more information about the indicator baseline. Make sure it includes “https://…",
+ ],
+ "format" => [
+ "hover_text" => "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ ],
+ "title" => [
+ "hover_text" => "A short, human-readable title. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ "description" => [
+ "hover_text" => "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ "category" => [
+ "hover_text" => "IATI Document Category Code. For more information ",
+ "code" => [
+ "hover_text" => "An IATI code defining the category of the document. For more information ",
+ ],
+ ],
+ "language" => [
+ "code" => [
+ "hover_text" => "ISO 639-1 language code. For more information ",
+ ],
+ ],
+ ],
+ "location" => [
+ "hover_text" => "A location already defined and described in the iati-activity/location element.For more information ",
+ "reference" => [
+ "hover_text" => "A cross-reference to the internal reference assigned to a defined location: iati-activity/location/@ref. For more information ",
+ ],
+ ],
+ ],
+ ],
+ 'period' => [
+ "hover_text" => "The period covered for the results reported. Multiple periods can be reported for a single indicator. For more information ",
+ "help_text" => "Each indicator can have a given time period with a start and an end date. This is the time period in which the indicator is being measured, e.g. agricultural season or school term.",
+ "target" => [
+ "hover_text" => "The target milestone for this period. For more information ",
+ "help_text" => "The target is a result an organisation wants an activity to achieve in a certain period of time.",
+ "value" => [
+ "hover_text" => "The target value. For more information ",
+ "help_text" => "Add a target value if your indicator is a numerical (quantitative) measure e.g.measured by units or percentages. Please leave this blank if this indicator uses a qualitative measure (and add your target in the comment field below).",
+ ],
+ "comment" => [
+ "hover_text" => "A human-readable comment associated with a piece of aid information. For more information ",
+ "help_text" => "If the indicator is a qualitative measure, provide a descriptive target here. You may also add other descriptive information about the target here.",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ "dimension" => [
+ "name" => [
+ "hover_text" => "Freetext description of a category being disaggregated. For more information ",
+ ],
+ "value" => [
+ "hover_text" => "Description of the value being disaggregated. For more information ",
+ ],
+ ],
+ "document_link" => [
+ "hover_text" => "A link to an online, publicly accessible web page or document expanding on the result. For more information ",
+ "help_text" => "You may provide more information about the indicator target by providing a link to an online, publicly accessible web page or document.",
+ "url" => [
+ "hover_text" => "The target URL of the external document, e.g. “http://www.example.org/doc.odt”. For more information ",
+ "help_text" => "Type the URL for the document that provides more information about the indicator target. Make sure it includes “https://…",
+ ],
+ "format" => [
+ "hover_text" => "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ ],
+ "title" => [
+ "hover_text" => "A short, human-readable title. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ]
+ ],
+ "description" => [
+ "hover_text" => "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ "category" => [
+ "hover_text" => "IATI Document Category Code. For more information ",
+ "code" => [
+ "hover_text" => "An IATI code defining the category of the document. For more information ",
+ ],
+ ],
+ "language" => [
+ "hover_text" => "The ISO 639-1 language code in which target document is written, e.g. “en”. Can be repeated to describe multi-lingual documents. For more information ",
+ "language" => [
+ "hover_text" => "ISO 639-1 language code.For more information ",
+ ],
+ ],
+ "location" => [
+ "reference" => [
+ "hover_text" => "A cross-reference to the internal reference assigned to a defined location: iati-activity/location/@ref. For more information ",
+ ]
+ ],
+ ],
+ ],
+ "actual" => [
+ "hover_text" => "A record of the achieved result for this period. For more information ",
+ "help_text" => "The actual is what was achieved at the end of that period.",
+ "value" => [
+ "hover_text" => "The actual measure. For more information ",
+ "help_text" => "Add the actual value achieved, if your indicator is a numerical (quantitative) measure e.g.measured by units or percentages. Please leave this blank if this indicator uses a qualitative measure (and add your actual in the comment field below).",
+ ],
+ "comment" => [
+ "hover_text" => "A human-readable comment associated with a piece of aid information. For more information ",
+ "help_text" => "If the indicator is a qualitative measure, provide a descriptive of the actual result reported here. You may also add other descriptive information about the actual result here.",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ "dimension" => [
+ "hover_text" => "A category used for disaggregating the result by gender, age, etc. For more information ",
+ "name" => [
+ "hover_text" => "Freetext description of a category being disaggregated. For more information ",
+ ],
+ "value" => [
+ "hover_text" => "Description of the value being disaggregated. For more information ",
+ ],
+ ],
+ "document_link" => [
+ "hover_text" => "A link to an online, publicly accessible web page or document expanding on the result. For more information ",
+ "help_text" => "You may provide more information about the actual value or result by providing a link to an online, publicly accessible web page or document.",
+ "url" => [
+ "hover_text" => "The target URL of the external document, e.g. “http://www.example.org/doc.odt”. For more information ",
+ "help_text" => "Type the URL for the document that provides more information about the actual value or result. Make sure it includes “https://…",
+ ],
+ "format" => [
+ "hover_text" => "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ ],
+ "title" => [
+ "hover_text" => "A short, human-readable title. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "If you have provided a document link then provide a title for the document",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ],
+ "description" => [
+ "hover_text" => "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ ],
+ ],
+ ],
+ "category" => [
+ "hover_text" => "IATI Document Category Code. For more information ",
+ "code" => [
+ "hover_text" => "An IATI code defining the category of the document. For more information ",
+
+ ]
+ ],
+ "language" => [
+ "hover_text" => "The ISO 639-1 language code in which target document is written, e.g. 'en'. Can be repeated to describe multi-lingual documents. For more information ",
+ "language" => [
+ "hover_text" => "ISO 639-1 language code. For more information ",
+ ],
+ ],
+ "document_date" => [
+ "hover_text" => "The date of publication of the document that is being linked to. For more information ",
+ "date" => [
+ "hover_text" => "The date of publication of the document that is being linked to. For more information "
+ ],
+ ],
+ ],
+ "location" => [
+ "reference" => [
+ "hover_text" => "A cross-reference to the internal reference assigned to a defined location: iati-activity/location/@ref. For more information "
+ ]
+ ],
+ ],
+ 'transactions' => [
+ "hover_text" => "Transactions recording committed or actual funds flowing in or out of an aid activity.For more information ",
+ "help_text" => "Please provide a record of how your activity is being financed and how the finance is being used. Each incoming and outgoing flow should be published as a transaction. If an organisation makes many small transactions, these can be grouped together. For example, all travel expenses for one month could be published as one expenditure transaction. When deciding whether (or how) to aggregate transactions, it is recommended that publishers consider the needs of data users, as too much aggregation can inhibit the usability of the data Please note, you should not group together flows of funds to or from multiple external organisations (e.g. a disbursement to CARE should not be combined with a disbursement to IRC).Guidance on publishing financial transactions ",
+ "reference" => [
+ "hover_text" => "An internal reference linking this transaction back to the publisher’s financial management system. For more information ",
+ "help_text" => "You can provide a reference that you use to identify this transaction in your organisation’s internal financial management system"
+ ],
+ "humanitarian" => [
+ "hover_text" => "A process flag to indicate that this transaction relates entirely or partially to humanitarian aid. For more information ",
+ "help_text" => "You can flag if this transaction relates to humanitarian aid by selecting ‘yes’.
If this entire activity relates to humanitarian aid you should select yes using IATI Activity humanitarian flag, rather than for each transaction.
See guidance on all the ways to publish humanitarian data
."
+ ],
+ "transaction_type" => [
+ "hover_text" => "The type of the transaction (e.g. commitment, disbursement, expenditure, etc.). For more information ",
+ "help_text" => "Please choose the type of transaction that best reflects the flow of money in or out of this activity. Types include incoming funds, outgoing commitments, disbursement, expenditure.",
+ "transaction_type_code" => [
+ "hover_text" => "A code from the specified vocabulary. For more information ",
+ "help_text" => "Please provide a type for this transaction. Read all options with descriptions. "
+ ],
+ ],
+ "transaction_date" => [
+ "hover_text" => "The date on which the transaction was made or (in the case of commitments) agreed. For more information ",
+ "date" => [
+ "hover_text" => "This value must be of type xsd:date. For more information ",
+ "help_text" => "Provide the date on which the transaction was made or (in the case of commitments) agreed."
+ ]
+ ],
+ "value" => [
+ "hover_text" => "The amount of the contribution. For more information ",
+ "date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions.",
+ "help_text" => "This date must not be in the future."
+ ],
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount. For more information ",
+ "help_text" => "Select the currency of this transaction.This value must be on the Currency codelist ."
+ ]
+ ],
+ "description" => [
+ "hover_text" => "A human-readable description of the transaction. For more information ",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Provide a short description of the transaction e.g. what it was for.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "help_text" => "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ ]
+ ],
+ "provider_organization" => [
+ "hover_text" => "For incoming funds this is the organisation from which the transaction originated. If omitted on outgoing funds the reporting-org is assumed. For more information ",
+ "help_text" => "For each transaction it is strongly recommended that you publish information on both the provider and receiver organisations of the funds. This includes instances where your organisation is either the provider or the receiver. If you do not provide information on the provider organisation for incoming transactions, then it is presumed that your organisation is the provider of the funds.",
+ "organization_identifer_code" => [
+ "hover_text" => "Machine-readable identification string for the organisation issuing the report. For more information ",
+ "help_text" => "Please type the provider organisation’s IATI Organisation Identifier. The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance . If your organisation is the provider, please type your IATI Organisation Identifier. Your organisation created its org-ID when it first registered as an IATI publisher. You can find it here."
+ ],
+ "provider_activity_id" => [
+ "hover_text" => "If incoming funds are being provided from the budget of another activity that is reported to IATI, it if STRONGLY RECOMMENDED that this should record the provider’s unique IATI activity identifier for that activity. For more information ",
+ "help_text" => "The provider organisation may have published IATI data on these funds in their own activity. If so, please provide the activity-id for their activity that includes information on this funding. You can ask the provider organisation for this activity-id, or search for their activity on d-portal.org. See further guidance . If you are the provider organisation then leave this blank."
+ ],
+ "type" => [
+ "hover_text" => "The type of organisation providing the funds. For more information ",
+ "help_text" => "Select the type that best describes the provider organisation. Information on all organisation types . If your organisation is the provider, please select the organisation type that your organisation provided when it first registered. You can find it here."
+ ],
+ "narrative" => [
+ "hover_text" => "The name of the organisation. This can be repeated in multiple languages. For more information ",
+ "help_text" => "If the provider organisation does not have an IATI Organisation Identifier, you must provide the text name of the organisation.Please do not type a code here for the provider organisation. ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "help_text" => "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ ],
+ ],
+ "receiver_organization" => [
+ "hover_text" => "The organisation receiving the money from the transaction. For more information ",
+ "help_text" => "Please provide the organisation that will/has received the funds as part of this transaction. If your organisation is the receiver, please provide your organisation’s details.",
+ "organization_identifier_code" => [
+ "hover_text" => "Machine-readable identification string for the organisation issuing the report. For more information. ",
+ "help_text" => "Please provide the receiver organisation’s IATI Organisation Identifier (org-ID). The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance . If your organisation is the receiver, please type your IATI Organisation Identifier (org-ID). Your organisation created its org-ID when it first registered as an IATI publisher. You can find it here."
+ ],
+ "receiver_activity_id" => [
+ "hover_text" => "If outgoing funds are being provided to another activity that is reported to IATI, this may, if possible, record the unique IATI activity identifier for that activity. For more information ",
+ "help_text" => "The receiver organisation may have published IATI data on receiving these funds in their own activity. If so, please provide the activity-id for their activity that includes information on this funding. You can ask the receiver organisation for this activity-id, or search for their activity on d-portal.org See further guidance . If you are the provider organisation then leave this blank."
+ ],
+ "type" => [
+ "hover_text" => "The type of organisation receiving the funds. For more information ",
+ "help_text" => "Select the type that best describes the receiver organisation. Information on all organisation types .If your organisation is the receiver, please select the organisation type that your organisation provided when it first registered. You can find it here."
+ ],
+ "narrative" => [
+ "hover_text" => "The name of the organisation. This can be repeated in multiple languages. For more information ",
+ "help_text" => "If the receiver organisation does not have an IATI Organisation Identifier, the text name of the organisation must be given.Please do not type a code here for the receiver organisation. ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "help_text" => "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ ],
+ ],
+ "disbursement_channel" => [
+ "hover_text" => "The channel through which the funds will flow for this transaction, from an IATI codelist. For more information ",
+ "help_text" => "Select the best option for how your disbursements are channeled (e.g. through the recipient government or outside of the recipient government).",
+ "disbursement_channel_code" => [
+ "hover_text" => "An IATI code defining channels of disbursement. For more information ",
+ "help_text" => "Please read the list of disbursement channels and choose the option that applies to this transaction (if any are applicable)."
+ ],
+ "sector" => [
+ "hover_text" => "A recognised code, from a recognised vocabulary, classifying the purpose of this transaction.For more information ",
+ "help_text" => "You can specify one sector that this individual transaction is supporting. For example, primary education or agriculture. If you do this, then you must specify a sector for every transaction that you publish.You should not specify a sector for any of your transactions if you want to provide data on the sector(s) of this entire activity (which you can publish here). Sectors must only be provided at either the activity or transaction level and not both .Once your organisation decides where to publish information about which sectors it is working in, you should be consistent across all activities that you publish. This means you should publish all sector information at either activity level or for all transactions. More information .",
+
+ "sector_vocabulary" => [
+ "hover_text" => "An IATI code for the vocabulary (codelist) used for sector classifications. If omitted, OECD DAC 5-digit Purpose Codes are assumed. For more information ",
+ "help_text" => "If you decide to publish what sector this transaction is supporting, then you need to choose a list of sectors. IATI recommends choosing the OECD DAC 5-digit sector codelist, in which you can make a selection from over 300 sectors . You can choose to use another list (see information on all possible options ). If you want to use your organisation’s own list of internal sector classifications, select the option: ‘Reporting Organisation’. You can choose to use multiple lists. If you use more than one internal sector classification, please select ‘Reporting Organisation 2’ (which has the code 98) for the additional list. Additional guidance .Do not select a list if you have / will choose a sector list for the entire activity. "
+ ],
+ "vocabulary_uri" => [
+ "hover_text" => "The URI where this vocabulary is defined. If the vocabulary is 99 or 98 (reporting organisation), the URI where this internal vocabulary is defined. For more information ",
+ "help_text" => "If you have chosen to use an internal sector classification codelist, please provide a link to it."
+ ],
+ "code" => [
+ "hover_text" => "The code for the sector.For more information ",
+ "help_text" => "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use."
+ ],
+ "text" => [
+ "hover_text" => "The code for the sector. For more information ",
+ "help_text" => "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use."
+ ],
+ "category_code" => [
+ "hover_text" => "The code for the sector. For more information ",
+ "help_text" => "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use."
+ ],
+ "sdg_goal" => [
+ "hover_text" => "The code for the sector. For more information ",
+ "help_text" => "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use."
+ ],
+ "sdg_target" => [
+ "hover_text" => "The code for the sector. For more information ",
+ "help_text" => "Select the sector that the transaction’s funds are supporting. You must only choose one sector from each list that you use."
+ ]
+ ],
+ "narrative" => [
+ "hover_text" => "The description of a sector defined by the reporting organisation. (Only to be used when the reporting organisation’s own vocabulary is being used).For more information ",
+ "help_text" => "If you have chosen a sector from an internal sector classification codelist, please provide a description of this sector.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "help_text" => "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ ],
+ ],
+ "recipient_country" => [
+ "hover_text" => "A country that will benefit from this transaction. For more information ",
+ "help_text" => "You can specify one country or region that an individual transaction is taking place in, or the place that will benefit from it. You should not specify a country or region for any of your transactions if you want to provide the recipient country or region of this entire activity (which you can publish here). Recipient countries or regions) must only be provided at either the activity or transaction level and not both. Once your organisation decides where to publish information about its recipient countries (or regions), it should be consistent across all activities that it publishes. This means you should publish all recipient country or region information at either activity level or for all transactions. More information .",
+ "country_code" => [
+ "hover_text" => "ISO 3166-1 alpha-2 code for the country. For more information ",
+ "help_text" => "Select one country that this transaction is taking place in, or will benefit from its funds.Do not select a country if you have / will choose a recipient country for the entire activity. "
+ ],
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Add the free text name and/or description for the country benefitting from the transaction.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "help_text" => "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ ]
+ ],
+ "recipient_region" => [
+ "hover_text" => "A supranational geopolitical region that will benefit from this transaction. If a specific country is not known, then this element MUST be used. For more information ",
+ "help_text" => "If you cannot identify the specific country benefiting from this transaction, then you can provide the recipient region instead. Do not provide both a recipient country and a region. For example, if the funding is going to Uganda, then you should record Uganda as the recipient country and you should not add that the funding is also going to the region of Africa.",
+
+ "region_vocabulary" => [
+ "hover_text" => "An IATI code for the vocabulary from which the region code is drawn. If it is not present 1 - ‘OECD DAC’ is assumed.For more information ",
+ "help_text" => "There are two lists of regions; the OECD DAC and UN region code lists. Please select one. IATI recommends that you use the OECD DAC codelist . Otherwise you can use another list of regions by selecting the option: ‘Reporting Organisation’ and providing the URI where this internal list is defined. If you do not choose an option, then the code list 'OECD DAC' is assumed."
+ ],
+ "region_code" => [
+ "hover_text" => "Either an OECD DAC or UN region code. Codelist is determined by vocabulary attribute. For more information ",
+ "help_text" => "Select the region benefitting from this transaction."
+ ],
+ "custom_code" => [
+ "hover_text" => "Either an OECD DAC or UN region code. Codelist is determined by vocabulary attribute. For more information ",
+ "help_text" => "Select the region benefitting from this transaction."
+ ],
+ "vocabulary_uri" => [
+ "hover_text" => "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. For more information ",
+ "help_text" => "If you have selected the option: ‘Reporting Organisation’ please provide the URI where this internal list is defined."
+ ],
+ "narrative" => [
+ "hover_text" => "The description of a sector defined by the reporting organisation. (Only to be used when the reporting organisation’s own vocabulary is being used). For more information ",
+ "help_text" => "If you have selected the option: ‘Reporting Organisation’ please add the free text name and/or description regarding this region benefitting from the activity.",
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "help_text" => "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ ]
+ ],
+ ],
+ "flow_type" => [
+ "hover_text" => "Optional element to override the top-level default-flow-type element. For more information ",
+ "help_text" => "Flow type is another way to categorise financial flows. It distinguishes the flow as official development assistance (ODA), other official flows (OOF), or several types of private flows, including private grants often provided by NGOs and other civil society organisations.",
+ "flow_type" => [
+ "hover_text" => "A code from the OECD DAC CRS “Type of flow” codelist. For more information ",
+ "help_text" => "Please select a flow type for this transaction from the following options . Do note: if you select a flow-type for this transaction, this will override the default flow type for the entire activity (which is selected here), enabling you to choose a flow-type on a transaction-by-transaction basis, if needed.",
+ ],
+ ],
+ "finance_type" => [
+ "hover_text" => "Optional element to override the top-level default-finance-type element on a transaction-by-transaction basis, if needed. For more information ",
+ "help_text" => "Finance type specifies the financial instrument that is being used. For example, financing is most commonly delivered as a grant or a loan. ",
+ "finance_type" => [
+ "hover_text" => "A code from the OECD DAC CRS “Type of finance” codelist. For more information ",
+ "help_text" => "Please select a finance type for this transaction from the following options . Do note: if you select a finance-type for this transaction, this will override the default finance type for the entire activity (which is selected here), enabling you to choose a finance-type on a transaction-by-transaction basis, if needed."
+ ]
+ ],
+ "aid_type" => [
+ "hover_text" => "Optional element to override the top-level default-aid-type element (debt relief, etc.) on a transaction-by-transaction basis if needed. For more information ",
+ "help_text" => "You can provide information about the type of aid that is being delivered. This is most commonly referred to as the aid modality and IATI recommends that an aid type from the OECD DAC codelist be selected for all activities. Examples from this codelist include: project-type interventions which provide support to a particular project and budget support which is a financial contribution to a recipient government’s budget. Project-type interventions is the most common aid type for NGOs and CSOs but many other options are found here . If your transaction is addressing a humanitarian event, you can provide specific information on the type of funds for it. This includes providing information on the level of earmarking of the transaction’s funds and if the transaction is providing funds through cash or vouchers. More information on publishing aid-types related to humanitarian transactions . Do note: if you select an aid-type for this transaction, this will override the default aid type for the entire activity (which is selected here), enabling you to choose an aid-type on a transaction-by-transaction basis, if needed.",
+ "aid_type_vocabulary" => [
+ "hover_text" => "A code for the vocabulary aid-type classifications. If omitted the AidType (OECD DAC) codelist is assumed. The code must be a valid value in the AidTypeVocabulary codelist. For more information ",
+ "help_text" => "Select a list that includes the aid-type list related to your transaction. You can choose to select one aid-type from more than one list.1 OECD DAC - IATI recommends that you select this list which has over 20 options to choose from. Then, in addition you can select an option from another list2 Earmarking Category - select this list to categorise how flexible humanitarian funding is. There are 4 earmarking categories. Understand more about the categories in Annex 1 3 Earmarking Modality - use this list to choose the specific earmarking modality to describe your activity’s humanitarian funding. All earmarking modality options are listed in Annex 1 4 Cash and Voucher Modalities - select this list to specify if your transaction is responding to a humanitarian event by providing cash and voucher assistance. More information ."
+ ],
+ "aid_type_code" => [
+ "hover_text" => "A code from the specified vocabulary. For more information ",
+ "help_text" => "Select the aid-type related to your transaction."
+ ],
+ "earmarking_category" => [
+ "hover_text" => "A code from the specified vocabulary. For more information ",
+ ],
+ "narrative" => [
+ "hover_text" => "The description of a sector defined by the reporting organisation. (Only to be used when the reporting organisation’s own vocabulary is being used). For more information ",
+ "help_text" => "If you have selected the option: ‘Reporting Organisation’ please add the free text name and/or description regarding this region benefitting from the activity.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "help_text" => "Select the language of the text in the narrative. If no language is selected, your default language is assumed."
+ ],
+ ],
+ "earmarking_modality" => [
+ "hover_text" => "A code from the specified vocabulary. For more information ",
+ ],
+ "cash_and_voucher_modalities" => [
+ "hover_text" => "A code from the specified vocabulary. For more information ",
+ ],
+ "tied_status" => [
+ "hover_text" => "Optional element to override the top-level default-tied-status element on a transaction-by-transaction basis if needed. For more information ",
+ "help_text" => "You can state the tied status of this transaction. Here you can specify if funds are tied - where they must be spent on goods or services procured from a particular country (e.g. donor country) or group of countries. Or if funds are untied, this is where the recipient organisation is allowed to procure from any country. Do note: if you select a tied status for this transaction, this will override the default tied status for the entire activity (which is selected here), enabling you to choose a tied status on a transaction-by-transaction basis, if needed.",
+ ],
+ "tied_status_code" => [
+ "hover_text" => "An IATI code interpreting the usage of Columns 36-38 of the CRS++ reporting format. (Amount tied, Amount partially untied, Amount tied). For more information ",
+ "help_text" => "Select a default-tied-status, if applicable to your transaction. Descriptions of all options . Otherwise leave blank."
+ ],
+ ],
+ ],
+ 'organisation' => [
+ "organisation_identifier" => [
+ "hover_text" => "The Organisation Identifier is a unique code for your organisation. This is generated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. For more information ",
+ "organization_country" => [
+ "hover_text" => "Select the location of your organisation.",
+ "help_text" => "Provide the country where your organisation is located."
+ ],
+ "organization_registration_agency" => [
+ "hover_text" => "Select the agency in your country where your organisation is registered. If you do not know this information please email support@iatistandard.org",
+ "help_text" => "Provide the name of the agency in your country where your organisation is registered. If you do not know this information please email support@iatistandard.org."
+ ],
+ "registration_number" => [
+ "hover_text" => "Provide the registration number for your organisation that has been provided by the organisation registration agency. If you do not know this please email support@iatistandard.org",
+ "help_text" => "Provide the registration number for your organisation that has been provided by the registration agency named above. If you do not know this information please email support@iatistandard.org."
+ ],
+ "iati-activity-identifier" => [
+ "hover_text" => "The Organisation Identifier is a unique code for your organisation. This is generated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. For more information ",
+ "help_text" => "The Organisation Identifier (Org-ID) is a unique code for your organisation. This is generated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. "
+ ]
+ ],
+ "name" => [
+ "hover_text" => "The human-readable name of the organisation.",
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Type the name of your organisation.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ "help_text" => "Select the language that you have provided in the narrative. If no language is selected, your default language is assumed.",
+ ],
+ ],
+ "reporting_org" => [
+ "hover_text" => "The organisation issuing the report. May be a primary source (reporting on its own activity as donor, implementing agency, etc) or a secondary source (reporting on the activities of another organisation).For more information ",
+ "help_text" => "You need to specify which organisation is publishing the file, and which organisation the data is about. In most cases, the publishing organisation is publishing data about itself.Further guidance ",
+ "reference" => [
+ "hover_text" => "Machine-readable identification string for the organisation issuing the report. Must be in the format {RegistrationAgency}-{RegistrationNumber}. For more information ",
+ "help_text" => "Provide the IATI Organisation Identifier of the organisation publishing the data. The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance . "
+ ],
+ "type" => [
+ "hover_text" => "The type of organisation issuing the report.For more information ",
+ "help_text" => "Select the type that best describes the organisation publishing the data.Information on all organisation types. "
+ ],
+ "secondary_reporter" => [
+ "hover_text" => "A flag indicating that the reporting organisation of this activity is acting as a secondary reporter. A secondary reporter is one that reproduces data on the activities of an organisation for which it is not directly responsible.For more information ",
+ "help_text" => "Are you reproducing the data reported by another organisation? If so, your organisation is a ‘secondary reporter’ and you should select 'Yes ’. If you are reporting your own organisation’s data, select ‘No ’. Please note: you are not a secondary reporter if your organisation is officially assigned as a proxy to report IATI data on behalf of another organisation."
+ ],
+ "narrative" => [
+ "hover_text" => "The text in this element must be of type xsd:string. This element must occur at least once (within each parent element). For more information ",
+ "help_text" => "If you are reporting another organisation’s data, provide their name.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed.For more information ",
+ ],
+ ],
+ "total_budget" => [
+ "hover_text" => "The total-budget element allows for the reporting of the organisation’s own budget. The recommendation is that, where and when possible, the organisation’s total annual planned budget for each of the next three years is reported.For more information ",
+ "help_text" => "Provide your organisation’s total expected development and humanitarian spend for the current and (where possible) following three years. Each total budget that you provide must span a period of no more than 12 months, and preferably aligned with your organisation’s fiscal year. Budgets can also be published for periods of less than one year, for example, into quarters. The time periods of the budgets should not overlap.Further guidance. ",
+ "status" => [
+ "hover_text" => "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
+ "help_text" => "Please select a status that best describes this budget: (1) indicative - a non-binding estimate for the described budget. (2) committed - a binding agreement for the described budget. If no status is selected, the budget is assumed to be indicative."
+ ],
+ "period_start" => [
+ "hover_text" => "The start of the budget period.For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required.For more information ",
+ ]
+ ],
+ "period_end" => [
+ "hover_text" => "The end of the period (which must not be greater than one year).For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required.For more information ",
+ ],
+ ],
+ "value" => [
+ "hover_text" => "The total value of the organisation’s aid budget for this period. For more information ",
+ "help_text" => "Provide the total finance for this budget.",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified.For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions. This attribute is required. For more information ",
+ ]
+ ],
+ "budget_line" => [
+ "hover_text" => "A breakdown of the total budget into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative. For more information ",
+ "help_text" => "You can provide further budget information in budget lines. Budget lines allow the total budget to be broken down, for example into different programmes happening in the same year. Do note: The sum of each budget line does not have to equal the value of the total budget. Further guidance .",
+ "reference" => [
+ "help_text" => "You can provide a reference that you use to identify this budget line in your organisation’s financial reporting system."
+ ],
+ "value" => [
+ "hover_text" => "The budget sub-total. The definition of the sub-division is determined by iati-organisation/total-budget/budget-line/narrative For more information ",
+ "help_text" => "Provide the total finance for this budget line.",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount.For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions.For more information ",
+ ],
+ ],
+ ],
+ ],
+ "recipient_org_budget" => [
+ "hover_text" => "The recipient-org-budget element allows for the reporting of forward looking budgets for each institution which receives core funding from the reporting organisation. For more information ",
+ "help_text" => "If your organisation will provide core funding to a recipient organisation(s), please publish information on this budget here. Further guidance . Where possible, you should provide annual planned budgets for each recipient organisation for each of the next three financial years.",
+ "status" => [
+ "hover_text" => "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
+ "help_text" => "Please select a status that best describes this recipient organisation budget: (1) indicative - a non-binding estimate for the described budget line. (2) committed - a binding agreement for the described budget line. If no status is selected, the budget is assumed to be indicative."
+ ],
+ "recipient_org" => [
+ "hover_text" => "The organisation that will receive the funds. For more information ",
+ "help_text" => "Provide information about the organisation who will receive the funds.",
+ "reference" => [
+ "hover_text" => "The organisation that will receive the funds.For more information ",
+ "help_text" => "Please type the recipient organisation’s IATI Organisation Identifier . The quickest way to find this is to search for the organisation in the IATI Publisher List . If you cannot find the organisation, see further guidance . If you cannot provide the Organisation Identifier then you MUST provide the name of the organisation below."
+ ],
+ "narrative" => [
+ "hover_text" => "The name of the organisation. This can be repeated in multiple languages.For more information ",
+ "help_text" => "Type the name of the recipient organisation.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. For more information ",
+ ]
+ ],
+ "period_start" => [
+ "hover_text" => "This element must occur once and only once (within each parent element). For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date.For more information ",
+ ]
+ ],
+ "period_end" => [
+ "hover_text" => "The end of the period (which must not be greater than one year).For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date.For more information ",
+ ],
+ ],
+ "value" => [
+ "hover_text" => "The total value of the money budgeted to be disbursed to the specified recipient organisation during this time period. For more information ",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount. This is required for all currency amounts unless the iati-organisation/@default-currency attribute is specified. For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions. This attribute is required. For more information ",
+ ]
+ ],
+ "budget_line" => [
+ "hover_text" => "A breakdown of the total budget into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative.For more information ",
+ "help_text" => "You can provide a breakdown of the recipient organisation’s budget into budget lines. Do note: The sum of each budget line does not have to equal the total value of the recipient organisation budget.Further guidance .",
+ "value" => [
+ "hover_text" => "The budget sub-total. The definition of the sub-division is determined by iati-organisation/total-budget/budget-line/narrative For more information ",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount. For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions.For more information ",
+ ]
+ ],
+ ],
+ ],
+ "recipient_region_budget" => [
+ "hover_text" => "The recipient-region-budget element allows for the reporting of forward looking budgets where the organisation maintains region-wide, rather than or in addition to country-specific budgets.For more information ",
+ "help_text" => "IATI strongly encourages organisations to break down your total budget into smaller budgets for the recipient countries or recipient regions in which you operate. If you provide a recipient region or country budget(s), you do not need to use the same periods, and these budgets do not have to add up to your organisation’s total budget. If you want to provide a recipient region budget, it must NOT be an aggregation of recipient country budgets. For example, if you publish a recipient country budget for Uganda for USD 100,000 and a budget for Kenya of USD 100,000 for the next year, then you should NOT publish a recipient region budget for Africa of USD 200,000 for the next year.",
+ "status" => [
+ "hover_text" => "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
+ "help_text" => "Please select a status that best describes this recipient region budget: (1) indicative - a non-binding estimate for the described budget. (2) committed - a binding agreement for the described budget. If no status is present, the budget is assumed to be indicative."
+ ],
+ "recipient_region" => [
+ "hover_text" => "The supranational geographic region where funds have been allocated.For more information ",
+ "vocabulary" => [
+ "hover_text" => "An IATI code for the vocabulary from which the region code is drawn. If it is not present, code 1 (‘OECD DAC’) is assumed. For more information ",
+ "help_text" => "There are two lists of regions; the OECD DAC and UN region code lists. Please select one. IATI recommends that you use the OECD DAC codelist. Otherwise you can use another list of regions by selecting the option: ‘Reporting Organisation’ and providing the URI where this internal list is defined. If you do not choose an option, then the code list 'OECD DAC' is assumed."
+ ],
+ "vocabulary-uri" => [
+ "hover_text" => "The URI where this vocabulary is defined. If the vocabulary is 99 (reporting organisation), the URI where this internal vocabulary is defined. For more information ",
+ ],
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Type the name of the region benefitting from the budget.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ]
+ ],
+ "period_start" => [
+ "hover_text" => "The start of the budget period.This element must occur once and only once (within each parent element).For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date. For more information ",
+ "help_text" => "Provide the start date of the recipient region budget period"
+ ]
+ ],
+ "period_end" => [
+ "hover_text" => "The end of the period (which must not be greater than one year).For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date. For more information ",
+ "help_text" => "Provide the end date of the recipient region budget period."
+ ]
+ ],
+ "value" => [
+ "hover_text" => "The total value of the money budgeted to be disbursed to the specified country during this time period. For more information ",
+ "help_text" => "Provide the amount of finance for this recipient region budget.",
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions. This attribute is required. For more information ",
+ ]
+ ],
+ "budget_line" => [
+ "hover_text" => "A breakdown of the recipient country’s budget into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative. For more information ",
+ "help_text" => "You can provide further information about this recipient region budget in budget lines. Budget lines allow the recipient region budget to be broken down, for example into different projects happening in a given year. Do note: The sum of each budget line does not have to equal the total value of the recipient region budget.",
+ "reference" => [
+ "hover_text" => "An internal reference for this budget line taken from the reporting organisation’s own system. For more information ",
+ ],
+ "value" => [
+ "hover_text" => "The budget sub-total. The definition of the sub-division is determined by iati-organisation/total-budget/budget-line/narrative For more information ",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount. For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions. For more information ",
+ ],
+ ],
+ ],
+ ],
+ "recipient_country_budget" => [
+ "hover_text" => "The recipient-country-budget element allows for the reporting of forward looking budgets for each country in which the organisation operates. For more information ",
+ "help_text" => "You can provide your organisation’s budget(s) according to its recipient country. You do not need to use the same periods, and these budgets do not have to add up to your organisation’s total budget. If your organisation maintains country-wide budgets please provide them here.",
+ "status" => [
+ "hover_text" => "The status explains whether the budget being reported is indicative or has been formally committed. The value should appear within the BudgetStatus codelist.For more information ",
+ "help_text" => "Please select a status that best describes this recipient country budget: (1) indicative - a non-binding estimate for the described budget. (2) committed - a binding agreement for the described budget. If no status is selected, the budget is assumed to be indicative."
+ ],
+ "recipient_country" => [
+ "hover_text" => "The recipient country. For more information ",
+ "code" => [
+ "hover_text" => "ISO 3166-1 alpha-2 code for the country.This attribute is required. For more information ",
+ "help_text" => "Select the recipient country for this budget."
+ ],
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Type the name for the recipient country.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. For more information ",
+ ]
+ ],
+ "period_start" => [
+ "hover_text" => "The start of the budget period.This element must occur once and only once (within each parent element). For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date. For more information ",
+ "help_text" => "Provide the start date of the recipient country budget period."
+ ]
+ ],
+ "period_end" => [
+ "hover_text" => "The end of the period (which must not be greater than one year). For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date. For more information ",
+ "help_text" => "Provide the end date of the recipient country budget period."
+ ]
+ ],
+ "value" => [
+ "hover_text" => "The total value of the money budgeted to be disbursed to the specified recipient organisation during this time period. For more information ",
+ "help_text" => "Provide the amount of finance for this budget.",
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions. This attribute is required. For more information ",
+ ]
+ ],
+ "budget_line" => [
+ "hover_text" => "A breakdown of the total budget into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative. For more information ",
+ "help_text" => "You can provide further information about this recipient country budget in budget lines. Budget lines allow the recipient country budget to be broken down, for example into different projects happening in a given year. Do note: The sum of each budget line does not have to equal the total value of the recipient country budget.",
+ "reference" => [
+ "hover_text" => "An internal reference for this budget line taken from the reporting organisation’s own system. For more information ",
+ ],
+ "value" => [
+ "hover_text" => "The budget sub-total. The definition of the sub-division is determined by iati-organisation/total-budget/budget-line/narrative For more information ",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount.For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions. For more information ",
+ ]
+ ],
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ],
+ ]
+ ],
+ "total_expenditure" => [
+ "hover_text" => "The total-expenditure element allows for the reporting of the organisation’s international development expenditure. For more information ",
+ "help_text" => "IATI recommends that your organisation reports its past spending on its humanitarian and development work. This is known as ‘total expenditure’ and IATI recommends, where possible, the organisation reports its total expenditure for each of the past 3 years. An expenditure period must not be longer than one year.",
+ "period_start" => [
+ "hover_text" => "The start of the budget period.For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required.This value must be of type xsd:date. For more information ",
+ "help_text" => "Provide the start date of the expenditure period."
+ ]
+ ],
+ "period_end" => [
+ "hover_text" => "The end of the period (which must not be greater than one year). For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required.This value must be of type xsd:date. For more information ",
+ "help_text" => "Provide the end date of the expenditure period."
+ ]
+ ],
+ "value" => [
+ "hover_text" => "The total value of the organisation’s aid expenditure for this period. For more information ",
+ "help_text" => "Provide the amount of finance for this expenditure.",
+
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount. For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions. For more information ",
+ ]
+ ],
+ "expense_line" => [
+ "hover_text" => "A breakdown of the total expenditure into sub-totals. The breakdown is determined by the reporting organisation and described in the narrative. For more information ",
+ "help_text" => "You can provide further information about your organisation’s expenditure in expense line(s). Expense lines allow the expenditure to be broken down into smaller expenses. Do note: The sum of each expense line does not have to equal the total value of the expenditure.",
+ "reference" => [
+ "hover_text" => "An internal reference for this expenditure line taken from the reporting organisation’s own system. For more information ",
+ "help_text" => "You can provide a reference that you use to identify this expense line in your organisation’s internal financial management system."
+ ],
+ "value" => [
+ "hover_text" => "The expenditure sub-total. The definition of the sub-division is determined by iati-organisation/total-expenditure/expenditure-line/narrative. For more information ",
+ "help_text" => "Provide the amount of finance for this expense line.",
+ "currency" => [
+ "hover_text" => "A three letter ISO 4217 code for the original currency of the amount.For more information ",
+ ],
+ "value_date" => [
+ "hover_text" => "The date to be used for determining the exchange rate for currency conversions.For more information ",
+ ]
+ ],
+ "narrative" => [
+ "hover_text" => "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ "help_text" => "Provide a description for this expense line.",
+ ],
+ "language" => [
+ "hover_text" => "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ ]
+ ]
+ ],
+ "document_link" => [
+ "hover_text" => "A link to an online, publicly accessible web page or document. For more information ",
+ "help_text" => "You can report further information about your organisation’s development of humanitarian programming by providing a publicly accessible link to a document or webpage. For example you could provide a link to your organisation’s annual report or a work plan for a particular country. If documents are available in other languages and stored separately, please provide them by creating additional document elements.Further guidance .",
+ "url" => [
+ "hover_text" => "The target URL of the external document, e.g. 'http://www.example.org/doc.odt'.For more information ",
+ ],
+ "format" => [
+ "hover_text" => "An IANA code for the MIME type of the document being referenced, e.g. “application/pdf”. For more information ",
+ "help_text" => "If you know the format of the document file, please type it using an option from this list ."
+ ],
+ "title" => [
+ "hover_text" => "A short, human-readable title. For more information ",
+ ],
+ "description" => [
+ "hover_text" => "A description of the document contents, or guidance on where to access the relevant information in the document. For more information ",
+ ],
+ "category" => [
+ "hover_text" => "IATI Document Category Code. For more information ",
+ "code" => [
+ "hover_text" => "An IATI code defining the category of the document. For more information ",
+ ],
+ ],
+ "language" => [
+ "hover_text" => "The ISO 639-1 language code in which target document is written, e.g. “en”. Can be repeated to describe multi-lingual documents. For more information ",
+ "code" => [
+ "hover_text" => "ISO 639-1 language code. For more information ",
+ "help_text" => "Select the language of the document or webpage"
+ ]
+ ],
+ "document_date" => [
+ "hover_text" => "The date of publication of the document that is being linked to. For more information ",
+ "date" => [
+ "hover_text" => "This attribute is required. This value must be of type xsd:date. For more information ",
+ ]
+ ],
+ "recipient_country" => [
+ "hover_text" => "The recipient country that is the focus of the document. May be repeated for multiple countries. For more information ",
+ "help_text" => "If a recipient country is the focus of this document or webpage, please specify it here. You can state more than one country.",
+ "code" => [
+ "hover_text" => "ISO 3166-1 alpha-2 code for the country. This attribute is required. For more information ",
+ "help_text" => "Select the recipient country that is the focus for this document or webpage."
+ ],
+ "narrative" => [
+ "help_text" => "Type the name of the country that is the focus for this document or webpage.",
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/lang/en/email_verification.php b/lang/en/email_verification.php
new file mode 100644
index 0000000000..e51a1196aa
--- /dev/null
+++ b/lang/en/email_verification.php
@@ -0,0 +1,6 @@
+ "Please verify your account",
+ 'click_and_activate' => "Please click on the link in the email to verify and activate your new IATI publisher account.",
+];
diff --git a/lang/en/home.php b/lang/en/home.php
new file mode 100644
index 0000000000..9f40707bd6
--- /dev/null
+++ b/lang/en/home.php
@@ -0,0 +1,32 @@
+ 'IATI PUBLISHER',
+ 'iati_publishing_tool_header' => 'IATI Publishing Tool',
+ 'iati_publishing_tool_section' => [
+ 'welcome_text' => 'Welcome to IATI Publisher. Publish IATI data on your organisation’s development and humanitarian financing and activities. Enter your login information if you’re already a user or create a new account if you’re new here.',
+ 'havent_registered_label' => 'Haven\'t registered yet?',
+ 'already_have_account_label' => 'Already have an account?',
+ ],
+
+ //Join Now Section Lines
+ 'join_now_section' => [
+ 'to_begin_text' => 'To begin, your organisation needs to be registered as an IATI publisher. Select an option and we’ll guide you through this process.',
+ 'new_to_iati_label' => 'I am new to IATI',
+ 'new_to_iati_text' => 'Use this option if your organization has not registered an account with IATI on the IATI Registry',
+ 'my_organisation_has_registered_label' => 'My organization has registered with IATI.',
+ 'my_organisation_has_registered_text' => 'Use this option if your organisation is already registered as an IATI Publisher on the IATI Registry ',
+ 'not_sure_which_one_label' => 'Not sure which one to select?',
+ 'contact_support_label' => 'Contact Support.',
+ ],
+
+ //Sign In Section lines,
+ 'sign_in_section' => [
+ 'welcome_back_label' => 'Welcome back! Please enter your details.',
+ 'username_label' => 'Username',
+ 'username_placeholder' => 'Enter a registered username',
+ 'password_label' => 'Password',
+ 'password_placeholder' => 'Enter a correct password',
+ 'forgot_password_label' => 'Forgot your password?',
+ ],
+];
diff --git a/lang/en/iati_register.php b/lang/en/iati_register.php
new file mode 100644
index 0000000000..fbfc1499b0
--- /dev/null
+++ b/lang/en/iati_register.php
@@ -0,0 +1,8 @@
+ "Create IATI Publisher Account and IATI Registry Account",
+ "t2" => "Register your organisation to start your IATI publishing journey by creating accounts in IATI publisher and IATI Registry at once.",
+ "t3" => "This information will be used to create a Publisher in IATI Publisher",
+ "t4" => "We refer to organisations who publish IATI data as 'Publishers'. Before publishing data, all organisations need their own 'Publisher Account' on the IATI Registry (iatiregistry.org). Enter your organisation's data here and we'll create your organisation's Publisher Account for you. These details will also be saved here in IATI Publisher.",
+];
diff --git a/lang/en/iati_standard.php b/lang/en/iati_standard.php
new file mode 100644
index 0000000000..2e28d5f799
--- /dev/null
+++ b/lang/en/iati_standard.php
@@ -0,0 +1,56 @@
+ 'IATI Standard',
+ 'iati_standard_description' => [
+ 'one' => 'IATI Standard The IATI Standard is a set of rules and guidance on how to publish useful development and humanitarian data. IATI Publisher will take you through all data fields (which are referred to as ‘elements’) of the IATI Standard, offering helpful explanations and links to further information and guidance. The IATI Standard requires organisations to publish two sets of data: '
+ ],
+ 'organisation_data_header' => 'Organisation Data',
+ 'organisation_data_description' => [
+ 'one' => [
+ 'list_items' => [
+ 'header' => 'IATI Standard You will be asked to publish data about your entire organisation. This includes basic information about your organisation, such as your name and the type of organisation you are. You can also provide data on: ',
+ 'one' => 'Total spend by your organisation over the last year ',
+ 'two' => 'Total annual planned budget for your organisation in each of the next three years, where available',
+ 'three' => 'Planned budgets broken down by individual recipient countries or regions',
+ 'four' => 'Run automatic checks (via the IATI Validator) for errors before publishing your data',
+ 'five' => 'Useful background documents, such as country action plans and annual reports ',
+ ],
+ ],
+ 'two' => 'Publish your Organisation Data',
+ ],
+ 'activity_data_header' => 'Activity Data',
+ 'activity_data_description' => [
+ 'one' => [
+ 'list_items' => [
+ 'header' => 'The IATI Standard also requires organisations to provide data about their development and humanitarian ‘activities’. For each activity, you can publish a wide range of information, including:',
+ 'one' => 'Basic information and identification of the activity e.g. providing a title and a description for your activity ',
+ 'two' => 'Participating organisations – information on which other organisations are involved in the activity ',
+ 'three' => 'Participating organisations – information on which other organisations are involved in ',
+ 'four' => 'Financial data – covers the budgets and the transactions for the activity ',
+ 'five' => 'Classifications – helps categorise the activity using various development and humanitarian taxonomies. For example, what sector does the activity target or support (e.g. primary education or agriculture), or what type of aid is used to fund the activity (e.g. a grant or loan) ',
+ 'six' => 'Links to other data that have already been published on the activity elsewhere ',
+ 'seven' => 'The results that the activity is aiming to achieve ',
+ ],
+ ],
+ ],
+ 'publishing_data_either_header' => 'Publishing data at either Activity level or Transaction level ',
+ 'publishing_data_either_description' => [
+ 'one' => 'As listed above, you will need to provide data on your activity’s transactions, which shows how the activity is being financed and how the finance is being used. ',
+ 'two' => 'There are specific types of information that you can either publish about your entire activity, or about individual transactions (each transaction represents money flowing in or out of the activity). For example, you can publish data on which country/region your entire activity is benefitting, or you can publish data on which country/region each transaction is benefitting. However you must not publish this information at both activity and transaction levels. ',
+ 'three' => 'IATI Publisher provides explanations for each element of the IATI Standard and tells you where you have a choice of which level to publish data for. ',
+ 'four' => 'Publish your Organisation Data',
+ ],
+ 'download_pdf_header' => 'Download PDF of IATI Standard data fields',
+ 'download_pdf_description' => [
+ 'one' => 'IATI Standard Whilst gathering and preparing your organisation’s IATI data, you may find it helpful to view the following spreadsheets that provide information on all of the data elements in the IATI Standard. You will also be able to view this information as you work your way through completing the forms for each element on IATI Publisher.',
+ 'two' => 'Activity Standard',
+ 'three' => 'Organisation Standard',
+ ],
+ 'iati_standard_reference_header' => 'IATI Standard reference',
+ 'iati_standard_reference_description' => [
+ 'one' => "You can look up detailed and technical information about each element of the IATI Standard on the IATI Reference section of IATI’s main website: ",
+ 'two' => "Activity Standard",
+ 'three' => "organisation Standard",
+ ],
+];
diff --git a/lang/en/middleware.php b/lang/en/middleware.php
new file mode 100644
index 0000000000..548dc683cc
--- /dev/null
+++ b/lang/en/middleware.php
@@ -0,0 +1,7 @@
+ 'Activity element delete denied.',
+ 'you_need_to_be_admin' => 'You need to be superadmin to use this route.',
+ 'does_not_exist' => ':prefix does not exist.',
+];
diff --git a/lang/en/missing.php b/lang/en/missing.php
new file mode 100644
index 0000000000..2c6908cef7
--- /dev/null
+++ b/lang/en/missing.php
@@ -0,0 +1,40 @@
+ 'Missing',
+ 'something' => ':something missing',
+ 'type' => 'Type missing',
+ 'date' => 'Date missing',
+ 'narrative' => 'Narrative :missing',
+ 'vocabulary' => 'Vocabulary missing',
+ 'name' => 'Name missing',
+ 'location_reached' => 'Location reached missing',
+ 'level' => 'Level missing',
+ 'latitude' => 'Latitude missing',
+ 'longitude' => 'Longitude missing',
+ 'srs_name' => 'SRS Name missing',
+ 'organisation_role' => 'Organisation role missing',
+ 'reference_role' => 'Reference role missing',
+ 'transaction_type' => 'Transaction type missing',
+ 'language' => 'Language missing',
+ 'disbursement' => 'Disbursement Channel Code Missing',
+ 'finance_type' => 'Finance type missing',
+ 'flow_type' => 'Flow type missing',
+ 'tied_status' => 'Tied Status Code Missing',
+ 'amount' => 'Amount missing',
+ 'url' => 'URL missing',
+ 'category' => 'Category missing',
+ 'budget_amount' => 'Budget Amount Missing',
+ 'code' => 'Code missing',
+ 'value_date' => 'Value Date missing',
+ 'period_start' => 'Period Start missing',
+ 'period_end' => 'Period End missing',
+ 'budget' => 'Budget missing',
+ 'budget_line' => 'Budget Line missing',
+ 'vocabulary_uri' => 'Vocabulary URI missing',
+ 'expense_line' => 'Expense line missing',
+ 'expenditure_amount' => 'Expenditure Amount missing',
+ 'not_available' => 'Not Available',
+ 'content' => 'No content',
+
+];
diff --git a/lang/en/organisation.php b/lang/en/organisation.php
new file mode 100644
index 0000000000..4fe3a96f1f
--- /dev/null
+++ b/lang/en/organisation.php
@@ -0,0 +1,21 @@
+ 'Your Organisation',
+ 'publishing_progress' => [
+ 'label' => 'Publishing Progress',
+ 'hover_text' => 'You cannot publish an activity until all the mandatory fields have been filled.'
+ ],
+ 'elements' => [
+ 'label' => 'Elements',
+ 'hover_text' => 'Each “Element” represents a basic unit of information in the IATI Standard. Click on each element listed below and complete all data fields contained in the element. For each element, you will find its technical hover_text, which is labelled as “IATI Standard Reference” and helpful guidance on the data you are required to provide.',
+ ],
+ 'core' => [
+ 'label' => 'Core',
+ 'hover_text' => 'Core elements include the IATI Standard\'s “mandatory and recommended” elements and it is important to provide this data to ensure your data is usable and useful',
+ ],
+ 'completed' => [
+ 'label' => 'Completed',
+ 'hover_text' => 'You cannot publish an activity until all the mandatory fields have been filled.',
+ ],
+];
diff --git a/lang/en/password_recovery.php b/lang/en/password_recovery.php
new file mode 100644
index 0000000000..7d3b54a4f5
--- /dev/null
+++ b/lang/en/password_recovery.php
@@ -0,0 +1,9 @@
+ "Password Recovery",
+ 'password_recovery_description' => "Please enter your email, we will send you a link to reset your password",
+ 'email_label' => "Email",
+ 'email_placeholder' => "Enter your email address",
+ 'your_email_has_been_sent_with_label' => "An email has been sent with further instructions, please check it out when you get it.",
+];
diff --git a/lang/en/publishing_checklist.php b/lang/en/publishing_checklist.php
new file mode 100644
index 0000000000..f01b3a2cf7
--- /dev/null
+++ b/lang/en/publishing_checklist.php
@@ -0,0 +1,68 @@
+ 'Publishing Checklist',
+ 'organisations_using_iati_label' => 'Organisations using IATI Publisher need to take the following steps to publish your data: ',
+ 'register_a_publisher_header' => 'Register a Publisher Account',
+ 'register_a_publisher_description' => [
+ 'one' => 'Organisations who publish data to IATI are referred to as \'Publishers\'. Before publishing data, organisations need their own \'Publisher Account\' on the IATI Registry (iatiregistry.org). If your organisation does not yet have a Publisher Account on the IATI Registry, IATI Publisher will ask you for additional details and create one for you (so you don’t have to visit IATI Registry to do this).',
+ 'two' => 'Create your IATI Registry Publisher Account',
+ 'three' => 'If your organisation has already registered a Publisher Account on the IATI Registry, IATI Publisher will ask you to provide your organisation’s account details.',
+ 'four' => 'Provide your organisations existing IATI Registry Publisher Account details',
+ ],
+ 'publish_your_organisation_header' => 'Publish your Organisation Data',
+ 'publish_your_organisation_description' => [
+ 'one' => 'The IATI Standard requires you to provide data about your entire organisation. For example, basic information about your organisation, such as its name and financial data about your entire organisation’s budgets and expenditure.',
+ 'two' => 'The IATI Standard contains a wide range of data fields. Data fields are referred to as ‘elements’ and they represent a basic unit of information in the IATI Standard. For each element you will find its technical definition, which is labelled as “IATI Standard Reference” and helpful guidance on the data you are required to provide. Your organisation is encouraged to (at least) publish data in fields marked as “Core” in IATI Publisher. Core elements include IATI’s "mandatory and recommended" elements and it is important to provide this data to ensure your data is usable and useful.',
+ 'three' => 'Discover what Activity Data is required by the IATI Standard',
+ 'four' => 'Publish your Activity Data',
+
+ ],
+ 'publish_your_activity_header' => 'Publish your Activity Data',
+ 'publish_your_activity_description' => [
+ 'one' => 'You also need to provide data about your organisation’s development and humanitarian ‘activities’. The unit of work described by an ‘activity’ is determined by the organisation that is publishing the data. For example, an activity could be a donor government providing US$ 50 million to a recipient country’s government to implement basic education over 5 years. Or an activity could be an NGO spending US$ 500,000 to deliver clean drinking water to 1000 households over 6 months.',
+ 'two' => [
+ 'list_items' => [
+ 'header' => 'Therefore your organisation will need to determine how it will divide its work internally into activities. You could consider one activity to be: ',
+ 'one' => 'a large programme at country or region level',
+ 'two' => 'a smaller project in a local area',
+ 'three' => 'the work relating to a particular grant or contract',
+ ],
+ ],
+ 'three' => [
+ 'list_items' => [
+ 'header' => 'You can provide your Activity Data in two ways on IATI Publisher: ',
+ 'one' => 'fill out the data fields in the Activity Data form for each Activity that you create',
+ 'two' => 'If you have multiple activities, you can use the Bulk Upload feature to upload a spreadsheet of the core fields of your data then you can edit them further using the online Activity Data form.',
+ ],
+ ],
+ 'four' => 'When publishing your Activity Data you are encouraged to (at least) publish data in fields marked as “Core” in IATI Publisher. They include IATI’s "mandatory and recommended" elements and it is important to provide this data to ensure your data is usable and useful. ',
+ 'five' => 'Discover what Activity Data is required by the IATI Standard',
+ 'six' => 'Publish your Activity Data',
+ ],
+ 'understand_further_data_header' => 'Understand further data requirements',
+ 'understand_further_data_description' => [
+ 'one' => 'If your organisation receives funding from the UK, Dutch or Belgian governments, you may also need to report IATI data according to their specific requirements. You are advised to understand the specific IATI data requirements of each government if you are receiving a grant from them.See more information .',
+ 'two' => 'You will also need to consider if your organisation needs to exclude data that it publishes. For example an organisation may not be able to publish data because of political sensitivity issues or if information is commercially restricted. See information on creating an Exclusion Policy .',
+ ],
+ 'run_automatic_checks_header' => 'Run automatic checks on your data for errors',
+ 'run_automatic_checks_description' => [
+ 'one' => 'After you have added your data to IATI Publisher, it will run automatic checks for errors. You will receive information about any errors that you need to fix. Make sure you fix these errors before publishing your data. '
+ ],
+ 'publish_your_data_header' => 'Publish your data to the IATI Registry',
+ 'publish_your_data_description' => [
+ 'one' => 'Once you are happy with the data that you have provided, you can instruct IATI Publisher to publish it. ',
+ 'two' => 'IATI Publisher converts your data files into XML, the format that is required by the IATI Standard. IATI Publisher will store your XML data files online, and provide a link to these files on the IATI Registry. The IATI Registry stores links to every IATI data file published and you can search for your organisation’s IATI XML files here: ',
+ ],
+ 'access_your_data_header' => 'Access your data',
+ 'access_your_data_description' => [
+ 'one' => 'IATI data is open data and can be accessed by anyone. It is pulled from the IATI Registry and used for many purposes. For example, IATI data can be used by governments to monitor development resources going into their countries, by donors and civil society to enable coordination, by analysts and academics to inform research and policy, or by organisations who include IATI data in their own online data portals. ',
+ 'two' => 'There are many online data tools and platforms that share and visualise IATI data. You can start by looking at your organisation’s data on IATI’s simple platform called d-portal . Within 24 hours of publishing your data, it will be displayed there. Simply search for your organisation in the “Publisher’ drop-down menu. And to see your data in a format that is used by governments and other data users, visit the Country Development Finance Data tool',
+ 'three' => 'See more information on IATI tools and resources .'
+ ],
+ 'update_and_improve_header' => 'Update and improve your data',
+ 'update_and_improve_description' => [
+ 'one' => 'Once your organisation has published its first dataset, you are encouraged to update and improve your data over time. You should update your data at least every quarter. You should also aim to expand the number of data fields that you provide information for. Read more about improving the quality of IATI data . ',
+ 'two' => 'For more information about publishing IATI data please visit IATI’s main website: iatistandard.org/guidance .',
+ ],
+];
diff --git a/lang/en/register.php b/lang/en/register.php
new file mode 100644
index 0000000000..59cb51d1ba
--- /dev/null
+++ b/lang/en/register.php
@@ -0,0 +1,137 @@
+ "Create IATI Publisher Account and IATI Registry Account",
+ 'create_iati_publisher_subheader' => "Register your organisation to start your IATI publishing journey by creating accounts in IATI publisher and IATI Registry at once.",
+ 'information_doesnt_match_registry' => "Sorry, the information you provided doesn’t match your IATI Registry information.",
+ 'if_you_are_account_holder' => "Please note that if you’re an account holder in",
+ 'make_sure_your' => "make sure your ",
+ 'match_your_iati_registry_info' => "match your IATI Registry Information",
+
+ /** For registration modals **/
+ 'publisher_information' => [
+ 'label' => "Publisher Information",
+ 'description' => "This information will be used to create a Publisher in IATI Publisher",
+ 'hover_text' => "We refer to organisations who publish IATI data as 'Publishers'. Before publishing data, all organisations need their own 'Publisher Account' on the IATI Registry (iatiregistry.org). Enter your organisation's data here and we'll create your organisation's Publisher Account for you. These details will also be saved here in IATI Publisher.",
+ ],
+ 'publisher_name' => [
+ "label" => "Publisher Name",
+ 'placeholder' => "Type your organisation name here",
+ 'hover_text' => "The name of your organisation publishing the data.",
+ ],
+ 'publisher_id' => [
+ "label" => "Publisher ID",
+ 'placeholder' => "Type your organisation ID here",
+ 'hover_text' => "Provide a unique ID for your organisation. It must be at least two characters long and use lower case letters. You can include letters, numbers and also - (dash) and _ (underscore). Where possible use a short abbreviation of your organisation's name, for example: 'nef_mali' for Near East Foundation Mali.",
+ ],
+ 'country' => [
+ 'label' => "Country",
+ 'placeholder' => "Select a Country",
+ 'hover_text' => "Add the location of your organisation.",
+ ],
+ 'org_registration_agency' => [
+ "label" => "Organisation Registration Agency",
+ "placeholder" => "Select an Organisation Registration Agency",
+ "hover_text" => "Select the agency in your country where your organisation is registered. If you do not know this information please email support@iatistandard.org ",
+ ],
+ 'org_registration_no' => [
+ 'label' => "Organisation Registration Number",
+ 'placeholder' => "Type your Registration Number here",
+ 'hover_text' => "Add the registration number for your organisation that has been provided by the registration agency named above.",
+ ],
+ 'registration_number' => [
+ 'label' => "Registration Number",
+ 'placeholder' => "Type your Registration Number here",
+ 'hover_text' => "Provide the registration number for your organisation that has been provided by organisation registration agency. If you do not know this please email support@iatistandard.org .",
+ ],
+ 'iati_org_identifier' => [
+ 'label' => "IATI Organisational Identifier",
+ 'hover_text' => "The Organisation Identifier is a unique code for your organisation. This is genereated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. ",
+ 'help_text' => "This is autogenerated, please make sure to fill the above fields correctly."
+ ],
+ 'publisher_type' => [
+ 'label' => "Publisher Type",
+ 'placeholder' => "Select a publisher type ",
+ 'hover_text' => "Select the type that best describes your organisation. Read more on Organisation types. ",
+ ],
+ 'publisher_logo_url' => [
+ 'label' => "Publisher Logo Url",
+ 'hover_text' => " Provide a link to an image to your organisation's logo (Optimum size: 200 x 120 px)",
+ ],
+ 'organisation_desc' => [
+ 'label' => "Organization Description",
+ 'placeholder' => "Type Description here",
+ 'hover_text' => " Provide a short description about your organisation.",
+ ],
+ 'contact_info' => [
+ 'title' => "Contact Information",
+ ],
+ 'contact' => [
+ 'label' => "Contact Email",
+ 'hover_text' => "Please add a contact email address for your organisation. Please note that IATI is an open data standard and the email provided here will be visible to others on the IATI Registry.",
+ ],
+ 'website' => [
+ 'label' => "Website",
+ 'hover_text' => "Add the URL to your organisation's website.",
+ ],
+ 'address' => [
+ 'label' => "Address",
+ 'placeholder' => "Type address here",
+ 'hover_text' => "Provide a contact address for your organisation.",
+ ],
+ 'publishing_additional_info' => [
+ 'title' => "Publishing Additional Information",
+ 'description' => "This information will be used to create an admin account in IATI Publisher",
+ ],
+ 'source' => [
+ 'label' => "Source",
+ 'placeholder' => "Select a Source",
+ 'hover_text' => "Select an option: Primary - your organisation is publishing its own or (associated organisations') data Secondary - your organisation is reproducing data on the activities of another organisation",
+ ],
+ 'record_exclusions' => [
+ 'label' => "Record Exclusions",
+ 'placeholder' => "Type Record Exclusions here",
+ 'hover_text' => "Does your organisation have an exclusion policy that provide details on what data that it cannot publish? For example an organisation may not be able to publish data because of political sensitivity issues or if information is commercially restricted. Please provide details here about what data your organisation needs to exclude (if any), and a URL to your organisation's exclusion policy (if it has one). For more information read: Information and data you can't publish (exclusions) ",
+ ],
+ 'administrator_information' => [
+ 'title' => "Administrator Information",
+ 'iati_register_description' => "Provide your information to create an admin account here on IATI Publisher and IATI Registry at once.",
+ 'register_description' => "This information will be used to create an admin account in IATI Publisher",
+ 'hover_text' => "Provide your information to create an admin account here on IATI Publisher.",
+ ],
+ 'username' => [
+ 'label' => "Username",
+ 'placeholder' => "Type username here",
+ 'hover_text' => "You will need this later to login into IATI Publisher.",
+ ],
+ 'fullname' => [
+ 'label' => "Full Name",
+ 'placeholder' => "Type your full name here",
+ ],
+ 'email_address' => [
+ 'label' => "Email Address",
+ 'placeholder' => "Type valid email here",
+ ],
+ 'password' => [
+ 'label' => "Password",
+ 'placeholder' => "Type password here",
+ 'help_text' => "Minimum length: 6 characters",
+ 'confirm' => "Confirm Password",
+ 'confirm_help' => "should match the password above",
+ ],
+ 'email_verification' => [
+ 'title' => "Email Verification",
+ 'description' => "Please verify and activate your IATI Publisher account through your provided email",
+ ],
+ 'data_license' => [
+ 'label' => "Data License",
+ 'placeholder' => "Select a Data License",
+ 'hover_text' => " Select the License under which your data is being published. IATI is an open data standard and requires you to make your data available under an open licence so it can be freely used. One of the most frequently used licenses is Creative Commons Attribution. For more information read: How to license your data. ",
+ ],
+
+ /**
+ * For "for e.g" , always used with tempelate literal in vue files
+ * `....${language.register_lang.for_eg}....`
+ * */
+ 'for_eg' => "For e.g.",
+];
diff --git a/lang/en/requests.php b/lang/en/requests.php
new file mode 100644
index 0000000000..387fbb8993
--- /dev/null
+++ b/lang/en/requests.php
@@ -0,0 +1,244 @@
+ 'Budget elements are duplicated.',
+ 'budget_elements_position' => 'Budget elements at position ',
+ 'have_same_status' => ' have same status, type, period start and period end.',
+ 'budget_with_type_revised' => 'Budget with type revised must have period start and end same to that of one of the budgets having same status and type original for budgets elements at position ',
+
+ /*
+ * Not worth extracting or no use extracting common from these.
+ */
+ 'sum_of_percent' => 'Sum of percentage within vocabulary cannot be greater than 100',
+ 'the_sum_of_budget' => 'The sum of percentage with budget items must add up to 100.',
+ 'the_sum_of_recipient' => 'The sum of recipient country percentage cannot be greater than 100',
+ 'the_total_percent_100' => 'The total percentage within a vocabulary must be 100.',
+ 'the_total_percent_equal' => 'The total percentage within different vocabulary must be equal.',
+ 'either_xml_csv' => 'The file must be of either xml or csv format.',
+ 'greater_than_100mb' => 'The file shouldn\'t be greater than 10MB.',
+ 'the_user_name_is_invalid' => 'The username is invalid. Username must be purely lowercase alphabets followed by alphanumeric(ascii) characters and these symbols:-_',
+ 'the_publisher_is_invalid' => 'The publisher id is invalid. The publisher id must be at least two characters long and lower case. It can include letters, numbers and also - (dash) and _ (underscore).',
+ 'the_registration_num_id_invalid' => 'The registration number is invalid. Valid registration number includes letter, number, . and _, - (dash).',
+ 'the_iso_date_field_after' => 'The @iso-date field of period end must be a date after @iso-field of period start',
+ 'the_iso_date_field_difference' => 'The @iso-date field of period end and @iso-date of period start must not have difference of more than a year',
+ 'value_must_be_filled' => 'Value must be filled when the indicator measure is non-qualitative.',
+ 'value_must_be_omitted' => 'Value must be omitted when the indicator measure is qualitative.',
+
+ /*
+ * Use this from lines that are too complex
+ * (used 0 times)
+ */
+ 'the_midfix_suffix' => 'The :midfix :suffix',
+
+ /*
+ * Extracted common from these.
+ * ':suffix' is swappable
+ */
+ 'alt_amount_field' => 'Amount field :suffix',
+ 'alt_recipient_country' => 'Recipient country :suffix',
+ 'alt_recipient_region' => 'Recipient region :suffix',
+ 'alt_value_date' => 'Value date :suffix',
+ 'alt_period_end' => 'Period end :suffix',
+ 'alt_region' => 'Region :suffix',
+ 'activity_file' => 'The activity file :suffix',
+ 'activity_scope' => 'The activity scope :suffix',
+ 'activity_status' => 'The activity status :suffix',
+ 'activity' => 'The activity :suffix',
+ 'actual_start_and_end_dates' => 'Actual start and end dates :suffix',
+ 'amount_field_symbol' => 'The @amount field :suffix',
+ 'amount_field' => 'The amount field :suffix',
+ 'amount' => 'The amount :suffix',
+ 'budget_item' => 'The budget item :suffix',
+ 'budget_percentage' => 'The budget item percentage field :suffix',
+ 'budget_period' => 'The budget period :suffix',
+ 'budget' => 'The budget :suffix',
+ 'capital_spend' => 'The capital spend :suffix',
+ 'code_field_symbol' => 'The @code field :suffix',
+ 'category_code_field_symbol' => 'The category @code field :suffix',
+ 'code' => 'The code :suffix',
+ 'code_spend' => 'The code spend :suffix',
+ 'collaboration_type' => 'The collaboration type :suffix',
+ 'condition' => 'The condition :suffix',
+ 'contact_info' => 'The contact info :suffix',
+ 'contact_info_email' => 'The contact info email :suffix',
+ 'contact_info_telephone' => 'The contact info telephone number :suffix',
+ 'contact_info_website' => 'The contact info website url :suffix',
+ 'country_budget_item' => 'The country budget item :suffix',
+ 'date' => 'Date :suffix',
+ 'date_field_symbol' => 'The date field :suffix',
+ 'default_aid' => 'The default aid :suffix',
+ 'default_finance' => 'The default finance type :suffix',
+ 'default_flow' => 'The default flow type :suffix',
+ 'default_tied_status' => 'The default tied status :suffix',
+ 'document_link_category_field' => 'The document link category code field :suffix',
+ 'document_link_category' => 'The document link category :suffix',
+ 'document_link_language_field' => 'The document link language code field :suffix',
+ 'document_link_language' => 'The document link language :suffix',
+ 'end_date' => 'End date :suffix',
+ 'first_title' => 'The first title :suffix',
+ 'humanitarian_code' => 'The humanitarian scope code :suffix',
+ 'humanitarian' => 'The humanitarian scope :suffix',
+ 'indicator_ascending' => 'The indicator ascending :suffix',
+ 'indicator_measure' => 'The indicator measure :suffix',
+ 'indicator_aggregation' => 'The indicator aggregation status :suffix',
+ 'indicator_uri_symbol' => 'The @indicator-uri field :suffix',
+ 'iso_date_symbol' => 'The @iso-date :suffix',
+ 'iso_field_symbol' => 'The @iso-date field :suffix',
+ 'iso_field' => 'The iso-date field :suffix',
+ 'language_code_symbol' => 'The language @code field :suffix',
+ 'language_field' => 'The language field :suffix',
+ 'location_admin_level' => 'The location administrative level',
+ 'location_admin' => 'The location administrative',
+ 'location_feature' => 'The location feature :suffix',
+ 'location_id' => 'The location id :suffix',
+ 'location_reach' => 'The location reach :suffix',
+ 'location_ref_field' => 'The location reference field :suffix',
+ 'location' => 'The location :suffix',
+ 'narrative_field' => 'The narrative field :suffix',
+ 'narrative_language' => 'The narrative language :suffix',
+ 'narrative' => 'The narrative :suffix',
+ 'org_reference' => 'The owner org reference field :suffix',
+ 'other_identifier_ref' => 'The other identifier reference field :suffix',
+ 'other_identifier' => 'The other identifier :suffix',
+ 'participating_org' => 'The participating organisation :suffix',
+ 'period_end_iso' => 'The Period End iso-date :suffix',
+ 'planned_disb_period' => 'The planned disbursement period :suffix',
+ 'planned_disb_pro_ref' => 'The Planned Disbursement provider ref :suffix',
+ 'planned_disb_pro' => 'The Planned Disbursement provider org :suffix',
+ 'planned_disb_rec_ref' => 'The planned disbursement receiver org ref :suffix',
+ 'planned_disb_rec' => 'The planned disbursement receiver org :suffix',
+ 'planned_disb' => 'The planned disbursement :suffix',
+ 'policy_maker' => 'The policy maker :suffix',
+ 'pos_latitude' => 'The pos latitude :suffix',
+ 'pos_longitude' => 'The pos longitude :suffix',
+ 'recipient_country' => 'The recipient country :suffix',
+ 'recipient_country_percentage' => 'The recipient country :suffix',
+ 'recipient_region' => 'The recipient region :suffix',
+ 'recipient_region_perc_field' => 'The recipient region percentage field :suffix',
+ 'ref_format_symbol' => 'The @ref format :suffix',
+ 'reference_format' => 'The reference format for :suffix',
+ 'registration_number' => 'The registration number :suffix',
+ 'relationship_type' => 'The relationship type in related activity :suffix',
+ 'reporting_org' => 'The reporting organisation :suffix',
+ 'sdg_targets' => 'The tag SDG targets :suffix',
+ 'sdg' => 'The tag SDG :suffix',
+ 'sector' => 'The sector :suffix',
+ 'tag' => 'The tag :suffix',
+ 'the_value_date' => 'The value-date :suffix',
+ 'title_language_field' => 'The title language field :suffix',
+ 'transaction_aid' => 'The transaction aid type :suffix',
+ 'transaction_finance' => 'The transaction finance type :suffix',
+ 'transaction_flow' => 'The transaction flow type :suffix',
+ 'transaction_tied' => 'The transaction tied status :suffix',
+ 'transaction_sector' => 'The transaction sector :suffix',
+ 'transaction_pro_org' => 'The transaction provider-activity-id field :suffix',
+ 'transaction_pro_activity' => 'The transaction provider org :suffix',
+ 'transaction_rec_org' => 'The transaction receiver-activity-id field :suffix',
+ 'transaction_rec_activity' => 'The transaction receiver org :suffix',
+ 'transaction_ref_field' => 'The transaction reference field :suffix',
+ 'transaction_ref_country' => 'The transaction reference field :suffix',
+ 'transaction' => 'The transaction :suffix',
+ 'type_for' => 'The type for :suffix',
+ 'url_field_symbol' => 'The @url field suffix',
+ 'value_date_symbol' => 'The @value-date :suffix',
+ 'value_date_field_symbol' => 'The @value-date field :suffix',
+ 'value_date_field' => 'The value-date field :suffix',
+ 'value_field_symbol' => 'The @value field :suffix',
+ 'value_field' => 'The value field :suffix',
+ 'value' => 'The value :suffix',
+ 'vocab_url_date_symbol' => 'The @vocabulary-uri date :suffix',
+ 'vocab_url_field_symbol' => 'The @vocabulary-uri field :suffix',
+ 'xml_lang_field_symbol' => 'The @xml:lang field :suffix',
+ 'xml_lang_symbol' => 'The @xml:lang :suffix',
+ 'year_field_symbol' => 'The @year field :suffix',
+ 'transaction_rec_region' => 'The transaction recipient region :suffix',
+
+ 'suffix' => [
+ 'already_defined_in_transaction' => ' already defined in Transactions',
+ 'identifier_already_exists' => ' identifier already exists',
+ 'are_duplicated' => ' are duplicated.',
+ 'at_position' => ' at position',
+ 'cash_and_voucher_is_invalid' => ' cash and voucher modalities is invalid.',
+ 'cannot_be_greater_than_100' => ' cannot be greater than 100',
+ 'cannot_have_more_than_one' => ' cannot have more than one value.',
+ 'class_is_invalid' => ' class is invalid',
+ 'code_is_invalid' => ' code is invalid.',
+ 'currency_is_invalid' => ' currency is invalid.',
+ 'date_must_be_greater' => ' date must be date greater than year 1900.',
+ 'defined_in_indicators' => ' is already defined in its indicator.',
+ 'defined_in_result' => ' is already defined in its result.',
+ 'designation_is_invalid' => ' designation is invalid',
+ 'doesnt_exist' => ' does not exist.',
+ 'earmarking_category_is_invalid' => ' type earmarking category is invalid.',
+ 'earmarking_modality_is_invalid' => ' type earmarking modality is invalid.',
+ 'exactness_is_invalid' => ' exactness is invalid',
+ 'format_is_invalid' => ' format is invalid.',
+ 'identifier_exists' => ' identifier already exists.',
+ 'is_not_valid' => ' is not valid,',
+ 'is_a_required_field' => ' is a required field,',
+ 'is_invalid' => ' is invalid.',
+ 'is_required_with_val' => ' is required with value,.',
+ 'is_required_with_xml' => ' is required with @xml:lang field.',
+ 'is_required' => ' is required.',
+ 'may_not_be_in_future' => ' may not be in the future.',
+ 'must_be_4_digits' => ' must be 4 digits.',
+ 'must_be_a_date_after_period_start' => ' must be a date after period-start date',
+ 'must_be_a_date_after_period' => ' must be a date after period.',
+ 'must_be_a_date_field' => ' must be a date field.',
+ 'must_be_a_date' => ' must be a date.',
+ 'must_be_a_proper_date' => ' must be a proper date.',
+ 'must_be_a_string' => ' must be a string',
+ 'must_be_a_valid_date' => ' must be a valid date.',
+ 'must_be_an_integer' => ' must be an integer',
+ 'must_be_atleast_7_digits . ' => ' must be atleast 7 digits.',
+ 'must_be_between' => ' must be a between period start and period end',
+ 'must_be_between_0_100' => ' must be between 0 and 100.',
+ 'must_be_greater_equal_0' => ' must be greater or equal to 0.',
+ 'must_be_later_than_start_date' => ' must be later than the start date.',
+ 'must_be_a_number' => ' must be a number.',
+ 'must_be_numeric' => ' must be numeric.',
+ 'must_be_unique' => ' must be a unique.',
+ 'must_be_uploaded' => ' must be uploaded.',
+ 'must_be_valid_url' => ' must be a valid url.',
+ 'must_be_valid_vocal_url' => ' vocabulary uri must be a valid url.',
+ 'must_be_within_a_year' => ' must be within a year after Period Start iso-date.',
+ 'must_have_oecd' => ' vocabulary must have 5 digit OECD',
+ 'must_not_be_more_than_20_digits' => ' must not have more than 20 digits.',
+ 'must_not_be_longer_than_1_year' => ' must not be longer than one year.',
+ 'must_not_be_longer_than_3_months' => ' must not be longer than three months',
+ 'must_not_be_future' => ' must not be in future.',
+ 'must_not_be_negative' => ' must not be in negative.',
+ 'must_not_have_difference' => ' of period end and @iso - date of period start must not have difference of more than a year',
+ 'organisation_is_invalid' => ' reporting organisation is invalid.',
+ 'percent_cannot_be_greater' => ' percent cannot be greater than 100.',
+ 'percent_equal_allocated' => ' percent must be equal to allocated percent',
+ 'percent_match_allocated' => ' percent must match with allocated percent',
+ 'percent_must_be_a_number' => ' percent number must be a number.',
+ 'percent_field_must_be_a_number' => ' percent number must be a number.',
+ 'percentage_omitted' => ' percentage for single sector must be either omitted or be 100.',
+ 'period_end_must_be_after' => ' of period end must be a date after @iso-field of period start',
+ 'reach_code_is_invalid' => ' reach_code is invalid',
+ 'required_when_language' => ' is required when language is specified.',
+ 'required_when_narrative_present' => ' is required when narrative field is present.',
+ 'required_when_vocabulary' => ' is required when vocabulary is reporting organisation.',
+ 'role_is_invalid' => ' role is invalid.',
+ 'should_be_100' => ' should be 100 when there is only one budget item.',
+ 'should_be_baseline' => ' should be the year of baseline date.',
+ 'should_not_have_multiple_values' => ' should not have multiple values or narratives.',
+ 'shouldnt_contain_symbol' => ' shouldn\'t contain the symbols /, &, | or ?.',
+ 'significance_is_invalid' => ' significance is invalid',
+ 'type_is_invalid' => ' type is invalid.',
+ 'type_is_not_valid' => ' type is not valid.',
+ 'vocabulary_is_invalid' => ' vocabulary is invalid.',
+ 'already_defined_in_activity' => ' already defined in Activity so cannot be mentioned in transaction.',
+ 'must_be_unique_for_activity' => ' must be unique for an activity.',
+ ],
+];
+
+
diff --git a/lang/en/setting.php b/lang/en/setting.php
index 5a5669d303..3f510c4d0d 100644
--- a/lang/en/setting.php
+++ b/lang/en/setting.php
@@ -2,7 +2,7 @@
return [
'humanitarian_types' => [
- '1' => 'Yes',
- '0' => 'No',
+ '1' => 'Yes',
+ '0' => 'No',
],
];
diff --git a/lang/en/settings.php b/lang/en/settings.php
new file mode 100644
index 0000000000..23f3c71409
--- /dev/null
+++ b/lang/en/settings.php
@@ -0,0 +1,66 @@
+ "Settings",
+ 'publishing_settings_label' => "Publishing Settings",
+ 'default_values_label' => "Default Values",
+ 'registry_information' => [
+ 'label' => "Registry Information",
+ 'hover_text' => "IATI Publisher needs to add your organisation's data to the IATI Registry (iatiregistry.org). To do this, we need to access your organisation's IATI Registry Publisher Account. Please provide your organisation's credentials from the IATI Registry.",
+ ],
+ 'publisher_id' => [
+ 'label' => "Publisher ID",
+ 'hover_text' => "This is the unique ID for your organisation that you created when you set up your IATI Registry Publisher Account. It is a shortened version of your organisation's name, which will include lowercase letters and may include numbers and also - (dash) and _ (underscore). For example nef_mali' for Near East Foundation Mali.",
+ 'placeholder' => "Type Publisher ID here",
+ ],
+ 'api_token' => [
+ 'label' => "API Token",
+ 'hover_text' => "The API token is a unique key that is generated from your organisation's IATI Registry Publisher Account. It is required to give IATI Publisher permission to add data to the IATI Registry on your behalf. Generate a Token in the 'My Account' tab by logging into to the IATI Registry.",
+ 'placeholder' => "Type API Token here",
+ ],
+
+ 'correct_label' => "Correct",
+ 'incorrect_label' => "Incorrect",
+ 'uc_verify' => "VERIFY",
+ 'uc_cancel' => "CANCEL",
+ 'uc_save_publishing' => "SAVE PUBLISHING SETTING",
+
+ 'default_values' => [
+ 'label' => "Default Values",
+ 'hover_text' => "These values will be automatically added to your data files.",
+ ],
+ 'default_currency' => [
+ 'label' => "Default Currency",
+ 'hover_text' => "The currency in which you report your financial transactions. You can later manually change the currency on individual transactions and budgets if required.",
+ 'placeholder' => "Select from dropdown",
+ 'help_text' => "If you do not set your default currency, you have to choose and select currency manually for all the financial transactions.",
+ ],
+ 'default_language' => [
+ 'label' => "Default Values",
+ 'hover_text' => "The language in which you provide data on your activities. You can later manually change the language on individual text if required.",
+ 'placeholder' => "Select language from dropdown",
+ 'help_text' => 'If you do not set your default language, you have to choose and select language for all the narrative text in activity and organisation.',
+ ],
+ 'default_hierarchy' => [
+ 'label' => "Default Hierarchy",
+ 'hover_text' => "If you are reporting both programmes (parent activities) and projects (child activities), choose the hierarchical level that most of your activities are at. e.g. parent activity = 1; child activity = 2. If all your activities are at the same level i.e. you have no child activities, then choose 1.",
+ 'placeholder' => "Type default hierarchy here",
+ 'help_text' => "If hierarchy is not reported then 1 is assumed. If multiple levels are reported then, to avoid double counting, financial transactions should only be reported at the lowest hierarchical level. ",
+ ],
+ 'budget_not_provided' => [
+ 'label' => "Budget Not Provided",
+ 'hover_text' => "Add a 'Humanitarian Flag' to every activity that your organisation publishes data on. This means that your organisation identifies all their activities as wholly or partially addressing a humanitarian crisis or multiple crises. You can later manually add or remove a Humanitarian Flag on individual activities if required.",
+ 'placeholder' => "Select budget not provided type here",
+ 'help_text' => "If not selected, it will be set to 'Yes' in all the activities.",
+ ],
+ 'humanitarian' => [
+ 'label' => "Humanitarian",
+ 'hover_text' => "Add a 'Humanitarian Flag' to every activity that your organisation publishes data on. This means that your organisation identifies all their activities as wholly or partially addressing a humanitarian crisis or multiple crises. You can later manually add or remove a Humanitarian Flag on individual activities if required.",
+ 'placeholder' => "Select Humanitarian here",
+ 'help_text' => "If not selected, it will be set to 'Yes' in all the activities.",
+ ],
+
+ 'default_for_all_data_label' => "Default for all data",
+ 'default_for_activity_label' => "Default for activity data",
+ 'uc_save_default_values_label' => "SAVE DEFAULT VAlUES",
+];
diff --git a/lang/en/support.php b/lang/en/support.php
new file mode 100644
index 0000000000..13914b96ea
--- /dev/null
+++ b/lang/en/support.php
@@ -0,0 +1,9 @@
+ 'Support',
+ 'support_description' => [
+ 'one' => 'If your organisation needs support to use IATI Publisher or has questions about what data to publish please contact IATI’s Helpdesk: support@iatistandard.org. ',
+ 'two' => 'You may also join IATI’s online community at IATI Connect , where you can post messages about IATI publishing in the Data Publishing Community of Practice. ',
+ ],
+];
diff --git a/lang/en/user.php b/lang/en/user.php
index 42ae7887c7..e4d89db0c5 100644
--- a/lang/en/user.php
+++ b/lang/en/user.php
@@ -530,5 +530,4 @@
'ZW-ROD' => 'Registrar of Deeds',
'ZZ-EBID' => 'European Business Identifier (EBID)',
],
-
];
diff --git a/lang/en/validation.php b/lang/en/validation.php
index 38814cd05a..dff7019273 100644
--- a/lang/en/validation.php
+++ b/lang/en/validation.php
@@ -158,8 +158,6 @@
|
*/
- 'attributes' => [],
-
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
@@ -170,60 +168,60 @@
| specify a specific custom language line for a given attribute rule.
|
*/
- 'sum' => 'The sum of percentage within a vocabulary must add up to 100.',
- 'overall_sum' => 'The sum of percentage must not be more than 100.',
- 'required_custom' => ':attribute is required when there are multiple codes.',
- 'total' => ':attribute should be 100 when there is only one :values.',
- 'csv_required' => 'At row :number :attribute is required',
- 'csv_unique' => 'At row :number :attribute should be unique',
- 'csv_invalid' => 'At row :number :attribute is invalid',
- 'csv_numeric' => 'At row :number :attribute should be numeric',
- 'csv_unique_validation' => 'At row :number :attribute is invalid and must be unique.',
- 'csv_among' => 'At row :number at least one :type among :attribute is required.',
- 'csv_only_one' => 'At row :number only one among :attribute is required.',
- 'year_value_narrative_validation' => ':year and :value is required if :narrative is not empty.',
- 'year_narrative_validation' => ':year is required if :narrative is not empty.',
- 'org_required' => 'At least one organisation name is required',
- 'custom_unique' => ':attribute has already been taken.',
- 'user_identifier_taken' => 'Sorry! this User Identifier is already taken',
- 'enter_valid' => 'Please enter valid :attribute',
- 'sector_validation' => 'Sector must be present either at Activity or in all Transactions level.',
- 'sector_narrative' => 'Sector Narrative is required when vocabulay is 98 or 99.',
- 'transaction_sector_narrative' => 'Transaction Sector Narrative is required when vocabulay is 98 or 99.',
- 'transaction_sector_validation' => 'All Transactions must contain Sector element.',
- 'sector_in_activity_and_transaction_remove' => 'You can only mention Sector either at Activity or in Transaction level(should be included in all transactions) but not both. Please click the link to remove Sector From: Transaction Level OR Activity Level ',
- 'sector_in_activity_and_transaction' => 'You need to mention either Recipient Country or Region either in Activity Level or in Transaction level. You can\'t have Country/Region in both Activity level and Transaction level. Also, they cannot be empty for both activity and transactions',
- 'recipient_country_or_region_required' => 'Either Recipient Country or Recipient Region is required in Activity Level or Transaction Level.',
+ 'sum' => 'The sum of percentage within a vocabulary must add up to 100.',
+ 'overall_sum' => 'The sum of percentage must not be more than 100.',
+ 'required_custom' => ':attribute is required when there are multiple codes.',
+ 'total' => ':attribute should be 100 when there is only one :values.',
+ 'csv_required' => 'At row :number :attribute is required',
+ 'csv_unique' => 'At row :number :attribute should be unique',
+ 'csv_invalid' => 'At row :number :attribute is invalid',
+ 'csv_numeric' => 'At row :number :attribute should be numeric',
+ 'csv_unique_validation' => 'At row :number :attribute is invalid and must be unique.',
+ 'csv_among' => 'At row :number at least one :type among :attribute is required.',
+ 'csv_only_one' => 'At row :number only one among :attribute is required.',
+ 'year_value_narrative_validation' => ':year and :value is required if :narrative is not empty.',
+ 'year_narrative_validation' => ':year is required if :narrative is not empty.',
+ 'org_required' => 'At least one organisation name is required',
+ 'custom_unique' => ':attribute has already been taken.',
+ 'user_identifier_taken' => 'Sorry! this User Identifier is already taken',
+ 'enter_valid' => 'Please enter valid :attribute',
+ 'sector_validation' => 'Sector must be present either at Activity or in all Transactions level.',
+ 'sector_narrative' => 'Sector Narrative is required when vocabulay is 98 or 99.',
+ 'transaction_sector_narrative' => 'Transaction Sector Narrative is required when vocabulay is 98 or 99.',
+ 'transaction_sector_validation' => 'All Transactions must contain Sector element.',
+ 'sector_in_activity_and_transaction_remove' => 'You can only mention Sector either at Activity or in Transaction level(should be included in all transactions) but not both. Please click the link to remove Sector From: Transaction Level OR Activity Level ',
+ 'sector_in_activity_and_transaction' => 'You need to mention either Recipient Country or Region either in Activity Level or in Transaction level. You can\'t have Country/Region in both Activity level and Transaction level. Also, they cannot be empty for both activity and transactions',
+ 'recipient_country_or_region_required' => 'Either Recipient Country or Recipient Region is required in Activity Level or Transaction Level.',
'transaction_recipient_country_or_region_required' => 'All Transactions must contain Recipient Region or Recipient Country',
- 'sum_of_percentage' => 'The sum of percentage in :attribute must be 100.',
- 'validation_before_completed' => 'Please make sure you enter the following fields before changing to completed state.',
- 'reporting_org_identifier_unique' => 'This reporting organization identifier is being used by :orgName. This identifier has to be unique. Please contact us at support@aidstream.org',
- 'code_list' => ':attribute is not valid.',
- 'string' => ':attribute should be string',
- 'negative' => ':attribute cannot be negative',
- 'actual_date' => 'Actual Start Date And Actual End Date must not exceed present date',
- 'multiple_activity_date' => 'Multiple Activity dates are not allowed.',
- 'start_end_date' => 'Actual Start Date or Planned Start Date should be before Actual End Date or Planned End Date.',
- 'csv_date' => ':attribute must be of format Y-m-d.',
- 'multiple_values' => 'Multiple :attribute are not allowed.',
- 'csv_size' => 'At least one :attribute is required',
- 'multiple_narratives' => 'Multiple narratives for :attribute with the same type is not allowed.',
- 'required_only_one_among' => 'Either :attribute or :values is required.',
- 'recipient_country_region_percentage_sum' => 'Sum of percentage of Recipient Country and Recipient Region must be equal to 100.',
- 'invalid_in_transaction' => 'Entered :attribute is incorrect in Transaction.',
- 'invalid_in_sector' => 'Entered :attribute is incorrect in Sector.',
- 'required_if_in_transaction' => ':attribute is required if :values is not present in Transaction.',
- 'sector_vocabulary_required' => 'Sector Vocabulary is required in Transaction if not present in Activity Level.',
- 'required_in_transaction' => ':attribute is required in Transaction.',
- 'invalid_language' => 'Invalid :attribute language',
- 'unique_lang' => 'Repeated :attribute in the same language is not allowed.',
- 'indicator_ascending' => 'Indicator Ascending should be true/false, 0/1 or Yes/No.',
- 'indicator_size' => 'Indicator Baseline Year or Value should occur once and no more than once within an Indicator.',
- 'narrative_required' => ':attribute Narrative is required.',
- 'no_more_than_once' => ':attribute should occur once and no more than once within :values.',
- 'budget_period_end_date' => 'Budget Period End Date',
- 'spaces_not_allowed' => 'You cannot enter spaces in organization name abbreviation.',
- 'custom' => [
+ 'sum_of_percentage' => 'The sum of percentage in :attribute must be 100.',
+ 'validation_before_completed' => 'Please make sure you enter the following fields before changing to completed state.',
+ 'reporting_org_identifier_unique' => 'This reporting organization identifier is being used by :orgName. This identifier has to be unique. Please contact us at support@aidstream.org',
+ 'code_list' => ':attribute is not valid.',
+ 'string' => ':attribute should be string',
+ 'negative' => ':attribute cannot be negative',
+ 'actual_date' => 'Actual Start Date And Actual End Date must not exceed present date',
+ 'multiple_activity_date' => 'Multiple Activity dates are not allowed.',
+ 'start_end_date' => 'Actual Start Date or Planned Start Date should be before Actual End Date or Planned End Date.',
+ 'csv_date' => ':attribute must be of format Y-m-d.',
+ 'multiple_values' => 'Multiple :attribute are not allowed.',
+ 'csv_size' => 'At least one :attribute is required',
+ 'multiple_narratives' => 'Multiple narratives for :attribute with the same type is not allowed.',
+ 'required_only_one_among' => 'Either :attribute or :values is required.',
+ 'recipient_country_region_percentage_sum' => 'Sum of percentage of Recipient Country and Recipient Region must be equal to 100.',
+ 'invalid_in_transaction' => 'Entered :attribute is incorrect in Transaction.',
+ 'invalid_in_sector' => 'Entered :attribute is incorrect in Sector.',
+ 'required_if_in_transaction' => ':attribute is required if :values is not present in Transaction.',
+ 'sector_vocabulary_required' => 'Sector Vocabulary is required in Transaction if not present in Activity Level.',
+ 'required_in_transaction' => ':attribute is required in Transaction.',
+ 'invalid_language' => 'Invalid :attribute language',
+ 'unique_lang' => 'Repeated :attribute in the same language is not allowed.',
+ 'indicator_ascending' => 'Indicator Ascending should be true/false, 0/1 or Yes/No.',
+ 'indicator_size' => 'Indicator Baseline Year or Value should occur once and no more than once within an Indicator.',
+ 'narrative_required' => ':attribute Narrative is required.',
+ 'no_more_than_once' => ':attribute should occur once and no more than once within :values.',
+ 'budget_period_end_date' => 'Budget Period End Date',
+ 'spaces_not_allowed' => 'You cannot enter spaces in organization name abbreviation.',
+ 'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
@@ -239,10 +237,9 @@
|
*/
- 'attributes' => [],
- 'within_a_year' => "The :attribute must be within a year after :date.",
- 'required_if_any' => "The :field is required if any of the fields of :element are filled.",
- 'amount' => 'Please enter amount in the format xx.xx',
- 'greater' => 'The :attribute must be greater than or equal to :value',
+ 'within_a_year' => "The :attribute must be within a year after :date.",
+ 'required_if_any' => "The :field is required if any of the fields of :element are filled.",
+ 'amount' => 'Please enter amount in the format xx.xx',
+ 'greater' => 'The :attribute must be greater than or equal to :value',
'date_greater_than' => 'The date must be greater than :value',
];
diff --git a/lang/en/web.php b/lang/en/web.php
new file mode 100644
index 0000000000..b2ceb5e88d
--- /dev/null
+++ b/lang/en/web.php
@@ -0,0 +1,42 @@
+ 'IATI Publisher',
+ 'home' => 'Home',
+ 'about' => 'About',
+ 'sign_in' => 'Sign In',
+ 'join_now' => 'Join Now',
+ 'iati_standard' => 'IATI Standard',
+ 'publishing_checklist' => 'Publishing Checklist',
+ 'support' => 'Support',
+ 'language' => 'Language',
+ 'go_to_dashboard' => "Go to Dashboard",
+
+ //Lines for nav-item hover card
+ 'header' => [
+ 'about_hover_text' => 'IATI Publisher helps small and medium-sized organisations publish IATI data on development and humanitarian financing and activities',
+ 'publishing_checklist_hover_text' => 'New to IATI? Use our checklist to track each step required for your organisation to successfully publish IATI data',
+ 'iati_standard_hover_text' => 'The IATI Standard provides information and guidance on all the data fields that your organisation can publish IATI data on',
+ 'support_hover_text' => 'Any questions? Get help to publish your organisation’s data',
+ ],
+
+ //Lines for footer
+ 'footer' => [
+ 'part_of_iati_unified_label' => 'Part of the IATI Unified Platform',
+ 'code_licensed_under_label' => 'Code licensed under the GNU AGPL.',
+ 'documentation_licensed_under_label' => 'Documentation licensed under CC BY 3.0',
+ 'any_questions_contact_label' => 'ANY QUESTIONS? CONTACT SUPPORT',
+ 'copyright_label' => 'Copyright IATI 2022. All rights reserved.',
+ ],
+];
+
+
diff --git a/public/css/app.css b/public/css/app.css
index 03d65048ff..077ab119d5 100755
--- a/public/css/app.css
+++ b/public/css/app.css
@@ -586,6 +586,9 @@ video {
.-bottom-24 {
bottom: -6rem;
}
+.left-4 {
+ left: 1rem;
+}
.top-full {
top: 100%;
}
@@ -628,12 +631,6 @@ video {
.bottom-0 {
bottom: 0px;
}
-.top-7 {
- top: 1.75rem;
-}
-.bottom-4 {
- bottom: 1rem;
-}
.bottom-\[calc\(100\%-52px\)\] {
bottom: calc(100% - 52px);
}
@@ -676,6 +673,9 @@ video {
.left-5 {
left: 1.25rem;
}
+.bottom-4 {
+ bottom: 1rem;
+}
.top-16 {
top: 4rem;
}
@@ -1001,15 +1001,6 @@ video {
.h-px {
height: 1px;
}
-.h-56 {
- height: 14rem;
-}
-.h-11 {
- height: 2.75rem;
-}
-.h-1 {
- height: 0.25rem;
-}
.h-0 {
height: 0px;
}
@@ -1028,6 +1019,9 @@ video {
.h-10 {
height: 2.5rem;
}
+.h-1 {
+ height: 0.25rem;
+}
.h-3 {
height: 0.75rem;
}
@@ -1091,15 +1085,6 @@ video {
.w-72 {
width: 18rem;
}
-.w-52 {
- width: 13rem;
-}
-.w-11 {
- width: 2.75rem;
-}
-.w-10 {
- width: 2.5rem;
-}
.w-\[250px\] {
width: 250px;
}
@@ -1112,9 +1097,6 @@ video {
.w-64 {
width: 16rem;
}
-.w-\[200px\] {
- width: 200px;
-}
.w-\[280px\] {
width: 280px;
}
@@ -1142,6 +1124,9 @@ video {
.w-0 {
width: 0px;
}
+.w-52 {
+ width: 13rem;
+}
.w-\[150px\] {
width: 150px;
}
@@ -1181,6 +1166,9 @@ video {
.max-w-\[50\%\] {
max-width: 50%;
}
+.max-w-lg {
+ max-width: 32rem;
+}
.max-w-\[70\%\] {
max-width: 70%;
}
@@ -1381,12 +1369,12 @@ video {
.gap-4 {
gap: 1rem;
}
-.gap-2 {
- gap: 0.5rem;
-}
.gap-3 {
gap: 0.75rem;
}
+.gap-2 {
+ gap: 0.5rem;
+}
.gap-6 {
gap: 1.5rem;
}
@@ -1469,9 +1457,6 @@ video {
text-overflow: ellipsis;
white-space: nowrap;
}
-.text-ellipsis {
- text-overflow: ellipsis;
-}
.whitespace-nowrap {
white-space: nowrap;
}
@@ -1619,14 +1604,6 @@ video {
--tw-border-opacity: 1;
border-left-color: rgba(var(--salmon-50), var(--tw-border-opacity));
}
-.border-b-bluecoral {
- --tw-border-opacity: 1;
- border-bottom-color: rgba(var(--bluecoral), var(--tw-border-opacity));
-}
-.border-l-turquoise {
- --tw-border-opacity: 1;
- border-left-color: rgba(var(--turquoise), var(--tw-border-opacity));
-}
.border-b-n-10 {
--tw-border-opacity: 1;
border-bottom-color: rgba(var(--n-10), var(--tw-border-opacity));
@@ -1634,6 +1611,10 @@ video {
.border-b-transparent {
border-bottom-color: transparent;
}
+.border-l-turquoise {
+ --tw-border-opacity: 1;
+ border-left-color: rgba(var(--turquoise), var(--tw-border-opacity));
+}
.border-opacity-20 {
--tw-border-opacity: 0.2;
}
@@ -1792,14 +1773,6 @@ video {
padding-left: 6.06%;
padding-right: 6.06%;
}
-.py-7 {
- padding-top: 1.75rem;
- padding-bottom: 1.75rem;
-}
-.px-8 {
- padding-left: 2rem;
- padding-right: 2rem;
-}
.px-10 {
padding-left: 2.5rem;
padding-right: 2.5rem;
@@ -1824,6 +1797,10 @@ video {
padding-left: 3px;
padding-right: 3px;
}
+.py-7 {
+ padding-top: 1.75rem;
+ padding-bottom: 1.75rem;
+}
.px-\[6\%\] {
padding-left: 6%;
padding-right: 6%;
@@ -1873,21 +1850,6 @@ video {
.pb-\[71px\] {
padding-bottom: 71px;
}
-.pt-5 {
- padding-top: 1.25rem;
-}
-.pb-5 {
- padding-bottom: 1.25rem;
-}
-.pt-10 {
- padding-top: 2.5rem;
-}
-.pt-2 {
- padding-top: 0.5rem;
-}
-.pt-11 {
- padding-top: 2.75rem;
-}
.pb-4 {
padding-bottom: 1rem;
}
@@ -1903,9 +1865,15 @@ video {
.pb-8 {
padding-bottom: 2rem;
}
+.pt-5 {
+ padding-top: 1.25rem;
+}
.pb-72 {
padding-bottom: 18rem;
}
+.pt-2 {
+ padding-top: 0.5rem;
+}
.pt-3 {
padding-top: 0.75rem;
}
@@ -1918,8 +1886,14 @@ video {
.pr-20 {
padding-right: 5rem;
}
-.pt-0 {
- padding-top: 0px;
+.pb-5 {
+ padding-bottom: 1.25rem;
+}
+.pt-10 {
+ padding-top: 2.5rem;
+}
+.pt-11 {
+ padding-top: 2.75rem;
}
.text-left {
text-align: left;
@@ -2021,9 +1995,6 @@ video {
.uppercase {
text-transform: uppercase;
}
-.lowercase {
- text-transform: lowercase;
-}
.capitalize {
text-transform: capitalize;
}
@@ -5135,10 +5106,6 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
.hover\:border-b-2:hover {
border-bottom-width: 2px;
}
-.hover\:border-b-spring-50:hover {
- --tw-border-opacity: 1;
- border-bottom-color: rgba(var(--spring-50), var(--tw-border-opacity));
-}
.hover\:border-b-turquoise:hover {
--tw-border-opacity: 1;
border-bottom-color: rgba(var(--turquoise), var(--tw-border-opacity));
@@ -5151,10 +5118,6 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
--tw-bg-opacity: 1;
background-color: rgba(var(--n-20), var(--tw-bg-opacity));
}
-.hover\:bg-n-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgba(var(--n-50), var(--tw-bg-opacity));
-}
.hover\:bg-white:hover {
--tw-bg-opacity: 1;
background-color: rgba(var(--white), var(--tw-bg-opacity));
@@ -5179,6 +5142,16 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
--tw-text-opacity: 1;
color: rgba(var(--n-50), var(--tw-text-opacity));
}
+.group:hover .group-hover\:visible {
+ visibility: visible;
+}
+.group:hover .group-hover\:translate-y-0 {
+ --tw-translate-y: 0px;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+.group:hover .group-hover\:opacity-100 {
+ opacity: 1;
+}
@media (min-width: 640px) {
.sm\:left-6 {
@@ -5190,10 +5163,6 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
margin-right: 2.5rem;
}
- .sm\:mt-12 {
- margin-top: 3rem;
- }
-
.sm\:mt-14 {
margin-top: 3.5rem;
}
@@ -5222,20 +5191,20 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
margin-top: 2.5rem;
}
- .sm\:block {
- display: block;
+ .sm\:mt-12 {
+ margin-top: 3rem;
}
- .sm\:h-72 {
- height: 18rem;
+ .sm\:block {
+ display: block;
}
.sm\:h-16 {
height: 4rem;
}
- .sm\:w-auto {
- width: auto;
+ .sm\:h-72 {
+ height: 18rem;
}
.sm\:w-64 {
@@ -5291,16 +5260,6 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
padding-right: 2.5rem;
}
- .sm\:py-5 {
- padding-top: 1.25rem;
- padding-bottom: 1.25rem;
- }
-
- .sm\:px-6 {
- padding-left: 1.5rem;
- padding-right: 1.5rem;
- }
-
.sm\:py-14 {
padding-top: 3.5rem;
padding-bottom: 3.5rem;
@@ -5336,6 +5295,16 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
padding-right: 1.75rem;
}
+ .sm\:py-5 {
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+ }
+
+ .sm\:px-6 {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ }
+
.sm\:pr-40 {
padding-right: 10rem;
}
@@ -5356,10 +5325,6 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
padding-bottom: 2rem;
}
- .sm\:text-heading-2 {
- font-size: 56px;
- }
-
.sm\:text-2xl {
font-size: 1.5rem;
line-height: 2rem;
@@ -5379,6 +5344,10 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
line-height: 2.5rem;
}
+ .sm\:text-heading-2 {
+ font-size: 56px;
+ }
+
.sm\:leading-10 {
line-height: 2.5rem;
}
@@ -5628,16 +5597,16 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
padding-right: 12%;
}
- .xl\:px-1 {
- padding-left: 0.25rem;
- padding-right: 0.25rem;
- }
-
.xl\:px-2 {
padding-left: 0.5rem;
padding-right: 0.5rem;
}
+ .xl\:px-1 {
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+ }
+
.xl\:px-24 {
padding-left: 6rem;
padding-right: 6rem;
@@ -5648,10 +5617,6 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
padding-right: 3.5rem;
}
- .xl\:pt-0 {
- padding-top: 0px;
- }
-
.xl\:pr-2 {
padding-right: 0.5rem;
}
@@ -5660,6 +5625,10 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
padding-right: 1.5rem;
}
+ .xl\:pt-0 {
+ padding-top: 0px;
+ }
+
.xl\:pr-40 {
padding-right: 10rem;
}
@@ -5669,4 +5638,4 @@ form .subelement.pagination > a:not(.prev-btn) > label, form .subelement
}
}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2FwcC5jc3MiLCJtYXBwaW5ncyI6IkFBQUE7O0NBQUE7OztDQUFBOztBQUFBOzs7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQUFBOztFQUFBO0FBQUE7O0FBQUE7Ozs7O0NBQUE7O0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtLQUFBO0VBQUE7QUFBQTs7QUFBQTs7O0NBQUE7O0FBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7Ozs7Q0FBQTs7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBO0VBQUE7VUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBOzs7Ozs7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7O0VBQUE7QUFBQTs7QUFBQTs7O0NBQUE7O0FBQUE7Ozs7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBOztFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBO0VBQUE7QUFBQTs7QUFBQTs7OztDQUFBOztBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7Ozs7Q0FBQTs7QUFBQTs7Ozs7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBOztFQUFBO0FBQUE7O0FBQUE7OztDQUFBOztBQUFBOzs7O0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBO0VBQUE7QUFBQTs7QUFBQTs7Q0FBQTs7QUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7O0VBQUE7QUFBQTs7QUFBQTs7O0NBQUE7O0FBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBOzs7Q0FBQTs7QUFBQTtFQUFBO0VBQUE7QUFBQTs7QUFBQTs7Q0FBQTs7QUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7Ozs7Ozs7Ozs7Ozs7RUFBQTtBQUFBOztBQUFBO0VBQUE7RUFBQTtBQUFBOztBQUFBO0VBQUE7QUFBQTs7QUFBQTs7O0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBOzs7Q0FBQTs7QUFBQTtFQUFBO0VBQUE7QUFBQTs7QUFBQTs7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7O0VBQUE7QUFBQTs7QUFBQTs7Q0FBQTtBQUFBO0VBQUE7QUFBQTs7QUFBQTs7OztDQUFBOztBQUFBOzs7Ozs7OztFQUFBO0VBQUE7QUFBQTs7QUFBQTs7Q0FBQTs7QUFBQTs7RUFBQTtFQUFBO0FBQUE7O0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUNBQTtFQUFBO0FBQUE7QUFBQTs7RUFBQTtJQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0lBQUE7RUFBQTtBQUFBO0FBQUE7O0VBQUE7SUFBQTtFQUFBO0FBQUE7QUFBQTs7RUFBQTtJQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0lBQUE7RUFBQTtBQUFBO0FDQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0lBQUE7RUFBQTtBQUFBO0FBQUE7O0VBQUE7SUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO1VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUNBQTtFQUNFO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFFQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7QUNaRjs7QUN6REE7RUFDRTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUQ0REY7QUFDRjtBQzFEQTtFQUNFO0VBQ0E7QUQ0REY7O0FDMURBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQUE7RUFDQTtBRDZERjs7QUMxREU7RUFBQTtFQUFBO0VBQ0E7QUFEQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FEK0RGO0FDNURJO0VBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7RUFBQTtFQUFBO0VBQ0E7QUFGQTtBQUtFO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUtGO0VBQUE7RUFBQTtFQUNBO0FBREE7O0FBSUo7RUFDRTtJQUNFO0VENERGO0VDekRJO0lBQUE7SUFBQTtJQUNBO0VBREE7RUFJRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUFBO0lBQ0E7SUFDQTtJQUNBO0VEMkRKO0VDekRFO0lBQ0U7RUQyREo7QUFDRjtBQ3ZERTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0lBQUE7RUFBQTtBQUFBO0FBREY7RUFFRTtFQUNBO0VBQ0E7RUFDQTtBRDBERjs7QUN2REU7RUFDRTtFQUNBO0VBQ0E7QUQwREo7O0FDdERFO0VBREY7SUFFSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFBQTtJQUFBO0lBQUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUQwREY7RUN0RE07SUFBQTtJQUFBO0lBQ0E7SUFDQTtFQUZBO0VBS0U7SUFBQTtJQUFBO0VBQUE7RUFHRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUFBO0VEd0RSO0VDdERNO0lBQ0U7RUR3RFI7QUFDRjtBQ25ERTtFQTlDRjtJQStDSTtJQUNBO0lBQ0E7RURzREY7QUFD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TUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUdFO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFJQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFFQTtFQUhGO0lBSUk7RVJxcUJKO0FBQ0Y7QVFucUJNO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7RUFDQTtBQUZBO0FBTUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUo7RUFDRTtBUm1xQko7QVEvcEJJO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTs7QUFNRjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUNBO0FBREE7QUFJRTtFQUFBO0VBQUE7QUFBQTtBQUlBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUlBO0VBQUE7RUFBQTtBQUFBOztBQU1GO0VBQUE7RUFBQTtPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUdFO0VBQUE7RUFBQTtPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFDQTtBQURBO0FBRUE7RUFDRTtFQUNBO0FSNnBCTjtBUTFwQk07RUFBQTtFQUFBO0FBQUE7QUFJRjtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFJQTtFQUFBO0VBQUE7QUFBQTtBQUdGO0VBQ0U7RUFDQTtBUjBwQko7O0FRcHBCRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7QUFEQTtBQUlFO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUlBO0VBQUE7RUFBQTtBQUFBOztBQUtGO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7QUFEQTtBQUlFO0VBQUE7RUFBQTtBQUFBOztBQUtGO0VBQUE7QUFBQTs7QUFJQTtFQUFBO0VBQUE7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OztHQUFBO0FaNmxDRjtBWXJ0Q0k7RUFBQTtFQUFBO0FBQUE7QUFFRTtFQUFBO0FBQUE7QUFJQTtFQUFBO0FBQUE7QUFFRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFLSjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBWnd0Q047QVlydENNO0VBQUE7RUFBQTtBQUFBO0FBS0Y7RUFBQTtFQUFBO0FBQUE7QUFJQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBRUU7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUdBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFNRjs7O0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBRUU7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7OztFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFHQTs7O0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0E7RUFBQTtFQUFBO0FBQUE7QUFBQTs7O0VBQUE7RUFBQTtBQUFBO0FBTUY7O0VBQUE7QUFBQTtBQUlBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUVFO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUY7RUFBQTtBQUFBO0FBRUU7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUNBO0VBQ0E7QUFGQTtBQU1GO0VBQ0U7RUFDQTtFQUNBO0Fad3RDTjtBWXB0Q0k7RUFBQTtBQUFBO0FB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akRGO0FlL2lERTtFQUNFO0FmaWpESjtBZTlpREU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7T0FBQTtBZmdqREo7QWU5aURJO0VBQ0U7QWZnakROO0FlN2lESTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FmK2lETjs7QWUxaURBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZjZpREY7O0FlMWlEQTtFQUNFO0VBQ0E7RUFDQTtPQUFBO0FmNmlERjtBZTNpREU7RUFDRTtBZjZpREo7O0FleGlERTtFQUNFO0FmMmlESjtBZXppREk7RUFDRTtFQUNBO0VBQ0E7QWYyaUROO0FleGlESTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FmMGlETjs7QWVyaURBO0VBQ0U7RUFDQTtBZndpREY7QWV0aURFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZndpREo7QWV0aURJO0VBQ0U7QWZ3aUROOztBZW5pREE7RUFDRTtFQUNBO0Fmc2lERjs7QWVuaURBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZnNpREY7O0FlamlESTtFQUNFO0VBQ0E7QWZvaUROO0FlamlESTtFQUNFO0VBQ0E7RUFDQTtBZm1pRE47QWVoaURJO0VBQ0U7QWZraUROO0FlL2hESTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWZpaUROO0FlL2hETTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FmaWlEUjtBZTdoREU7RUFDRTtFQUNBO0FmK2hESjs7QWV6aERJO0VBQ0U7RUFDQTtBZjRoRE47QWV2aERJO0VBQ0U7RUFDQTtBZnloRE47QWVwaERJO0VBQ0U7RUFDQTtBZnNoRE47O0FnQmhzREE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWhCbXNERjtBZ0Jsc0RFO0VBYkY7SUFjSTtFaEJxc0RGO0FBQ0Y7QWdCbnNERTtFQUNFO0FoQnFzREo7QWdCbHNERTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FoQm9zREo7O0FnQmpzREE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FoQm9zREY7QWdCbHNERTtFQUNFO0VBQ0E7QWhCb3NESjs7QWdCanNEQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWhCb3NERjtBZ0Jsc0RFO0VBYkY7SUFjSTtJQUNBO0VoQnFzREY7QUFDRjtBZ0Juc0RFO0VBQ0U7RUFDQTtBaEJxc0RKO0FKdndEQTtFQUFBO0NxQkFBO0FyQkFBO0VBQUE7Q3FCQUE7QXJCQUE7RUFBQTtDcUJBQTtBckJBQTtFQUFBO0NxQkFBO0FyQkFBO0VBQUE7Q3FCQUE7QXJCQUE7RUFBQTtDcUJBQTtBckJBQTtFQUFBO0NxQkFBO0FyQkFBO0VBQUE7Q3FCQUE7QXJCQUE7RUFBQSx1QnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSx1QnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxtQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxtQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxtQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxtQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxzQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxzQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxpQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxpQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxxQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSxxQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSwrQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQSwrQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQTtDcUJBQTtBckJBQTtFQUFBLHVCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHVCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLG1CcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLG1CcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLG1CcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLG1CcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLGdDcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHFCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHFCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHFCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHFCcUJBQTtFckJBQTtDcUJBQTtBckJBQTs7RUFBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBLG9CcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQSx3QnFCQUE7SXJCQUEsK0RxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLGdDcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSwrQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUEscUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLHFCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxxQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEsb0JxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLGtCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxvQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEsbUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLG9CcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxzQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEsc0JxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBLGtCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQSxnQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEsbUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBO0NBQUE7QXJCQUE7O0VBQUE7SUFBQSxnQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUEsNkJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLDRCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQSxtQnFCQUE7SXJCQUE7R3FCQUE7Q0FBQTtBckJBQTs7RUFBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBLGtCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxxQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7Q0FBQTtBckJBQTs7RUFBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBLGtCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQSx3QnFCQUE7SXJCQUEsd0RxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLHFCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxrQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEsc0JxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLHFCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxtQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEscUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3RhaWx3aW5kY3NzL2Jhc2UuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy90YWlsd2luZGNzcy9jb21wb25lbnRzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdGFpbHdpbmRjc3MvdXRpbGl0aWVzLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvYXBwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2xheW91dHMvX2hlYWRlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9sYXlvdXRzL19tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2xheW91dHMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9sYXlvdXRzL19hY3Rpdml0eS5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9sYXlvdXRzL19zZXR0aW5nX3BhZ2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvbGF5b3V0cy9fd2VicG9ydGFscGFnZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX2J1dHRvbi5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX2hhbWJ1cmdlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX2lucHV0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2NvbXBvbmVudC9fdGFibGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvY29tcG9uZW50L19mb3Jtcy5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvY29tcG9uZW50L19vdmVybGF5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2NvbXBvbmVudC9fc2VsZWN0Mi5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX3NpZGViYXItaWNvbi5zY3NzIiwid2VicGFjazovLy88bm8gc291cmNlPiJdLCJzb3VyY2VzQ29udGVudCI6WyJAdGFpbHdpbmQgYmFzZTtcbiIsIkB0YWlsd2luZCBjb21wb25lbnRzO1xuIiwiQHRhaWx3aW5kIHV0aWxpdGllcztcbiIsIjpyb290IHtcbiAgLS1ibGFjazogMCwgMCwgMDtcbiAgLS13aGl0ZTogMjU1LCAyNTUsIDI1NTtcbiAgLS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgLy8gTmV1dHJhbHNcbiAgLS1uLTA6IDI1NSwgMjU1LCAyNTU7XG4gIC0tbi0xMDogMjQxLCAyNDcsIDI0OTtcbiAgLS1uLTIwOiAyMTMsIDIyMCwgMjIyO1xuICAtLW4tMzA6IDE2NiwgMTgxLCAxODY7XG4gIC0tbi00MDogMTA0LCAxMjEsIDEyNjtcbiAgLS1uLTUwOiA0MiwgNDcsIDQ4O1xuXG4gIC8vIFByaW1hcnkgY29sb3JzXG4gIC0tdHVycXVvaXNlOiA2LCAyMTksIDIyODtcbiAgLS1ibHVlY29yYWw6IDIxLCA4MywgMTAyO1xuXG4gIC0tYmx1ZWNvcmFsLTQwOiA2MCwgMTEyLCAxMjg7XG4gIC0tYmx1ZWNvcmFsLTUwOiAyMSwgODMsIDEwMjtcblxuICAvLyBTZWNvbmRhcnkgY29sb3JzXG4gIC8vIENhbWVsXG4gIC0tY2FtZWwtMTA6IDI1MiwgMjM5LCAyMjg7XG4gIC0tY2FtZWwtMjA6IDI0OSwgMjE5LCAxOTM7XG4gIC0tY2FtZWwtMzA6IDI0OCwgMjA3LCAxNzM7XG4gIC0tY2FtZWwtNDA6IDI0NiwgMTk1LCAxNTI7XG4gIC0tY2FtZWwtNTA6IDI0NCwgMTgzLCAxMzI7XG4gIC8vIFRlYWxcbiAgLS10ZWFsLTEwOiAyMzEsIDI0MywgMjQxO1xuICAtLXRlYWwtMjA6IDIxNSwgMjM1LCAyMzI7XG4gIC0tdGVhbC0zMDogMTk1LCAyMjQsIDIyMDtcbiAgLS10ZWFsLTQwOiAxNzUsIDIxNCwgMjA5O1xuICAtLXRlYWwtNTA6IDEzNSwgMTk0LCAxODY7XG4gIC8vIFNwcmluZ1xuICAtLXNwcmluZy0xMDogMTc4LCAyMjEsIDIxMTtcbiAgLS1zcHJpbmctMjA6IDEzOSwgMjA0LCAxODk7XG4gIC0tc3ByaW5nLTMwOiAxMDAsIDE4NywgMTY3O1xuICAtLXNwcmluZy00MDogNjIsIDE3MCwgMTQ1O1xuICAtLXNwcmluZy01MDogMjMsIDE1MywgMTIzO1xuICAvLyBMYWdvb25cbiAgLS1sYWdvb24tMTA6IDIwOSwgMjM4LCAyNDA7XG4gIC0tbGFnb29uLTIwOiAxNzgsIDIyNywgMjI5O1xuICAtLWxhZ29vbi0zMDogMTM5LCAyMTMsIDIxNjtcbiAgLS1sYWdvb24tNDA6IDEwMSwgMjAwLCAyMDQ7XG4gIC0tbGFnb29uLTUwOiAyNCwgMTcyLCAxNzg7XG4gIC8vIFNhbG1vblxuICAtLXNhbG1vbi0xMDogMjU1LCAyMjcsIDIyNDtcbiAgLS1zYWxtb24tMjA6IDI1NSwgMjA4LCAyMDM7XG4gIC0tc2FsbW9uLTMwOiAyNTUsIDE4NCwgMTc3O1xuICAtLXNhbG1vbi00MDogMjU1LCAxNjEsIDE1MjtcbiAgLS1zYWxtb24tNTA6IDI1NSwgMTE0LCAxMDA7XG4gIC8vIExhdmVuZGVyXG4gIC0tbGF2ZW5kZXItMTA6IDIzNywgMjI2LCAyNTE7XG4gIC0tbGF2ZW5kZXItMjA6IDIyNSwgMjA3LCAyNDg7XG4gIC0tbGF2ZW5kZXItMzA6IDIxMCwgMTgyLCAyNDQ7XG4gIC0tbGF2ZW5kZXItNDA6IDE5NiwgMTU4LCAyNDA7XG4gIC0tbGF2ZW5kZXItNTA6IDE2NiwgMTEwLCAyMzM7XG4gIC0tbGF2ZW5kZXItNjA6IDI0NiwgMjQwLCAyNTU7XG4gIC8vIENyaW1zb25cbiAgLS1jcmltc29uLTEwOiAyNTUsIDI0OCwgMjQ3O1xuICAtLWNyaW1zb24tMjA6IDI1MCwgMjEzLCAyMTU7XG4gIC0tY3JpbXNvbi0zMDogMjQxLCAxNTUsIDE2MDtcbiAgLS1jcmltc29uLTQwOiAyMjcsIDc3LCA5MTtcbiAgLS1jcmltc29uLTUwOiAyMDksIDAsIDMwO1xuXG4gIC8vIFBhc3RlbCBjb2xvcnNcbiAgLS1lZ2dzaGVsbDogMjU1LCAyNTMsIDIzMTtcbiAgLS1taW50OiAyMzgsIDI0OSwgMjQ1O1xuICAtLXJvc2U6IDI1NSwgMjQxLCAyNDA7XG4gIC0tcGFwZXI6IDI0NiwgMjQ3LCAyNTI7XG59XG4iLCJAdGFpbHdpbmQgYmFzZTtcbkB0YWlsd2luZCBjb21wb25lbnRzO1xuQHRhaWx3aW5kIHV0aWxpdGllcztcbjpyb290IHtcbiAgLS1ibGFjazogMCwgMCwgMDtcbiAgLS13aGl0ZTogMjU1LCAyNTUsIDI1NTtcbiAgLS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG4gIC0tbi0wOiAyNTUsIDI1NSwgMjU1O1xuICAtLW4tMTA6IDI0MSwgMjQ3LCAyNDk7XG4gIC0tbi0yMDogMjEzLCAyMjAsIDIyMjtcbiAgLS1uLTMwOiAxNjYsIDE4MSwgMTg2O1xuICAtLW4tNDA6IDEwNCwgMTIxLCAxMjY7XG4gIC0tbi01MDogNDIsIDQ3LCA0ODtcbiAgLS10dXJxdW9pc2U6IDYsIDIxOSwgMjI4O1xuICAtLWJsdWVjb3JhbDogMjEsIDgzLCAxMDI7XG4gIC0tYmx1ZWNvcmFsLTQwOiA2MCwgMTEyLCAxMjg7XG4gIC0tYmx1ZWNvcmFsLTUwOiAyMSwgODMsIDEwMjtcbiAgLS1jYW1lbC0xMDogMjUyLCAyMzksIDIyODtcbiAgLS1jYW1lbC0yMDogMjQ5LCAyMTksIDE5MztcbiAgLS1jYW1lbC0zMDogMjQ4LCAyMDcsIDE3MztcbiAgLS1jYW1lbC00MDogMjQ2LCAxOTUsIDE1MjtcbiAgLS1jYW1lbC01MDogMjQ0LCAxODMsIDEzMjtcbiAgLS10ZWFsLTEwOiAyMzEsIDI0MywgMjQxO1xuICAtLXRlYWwtMjA6IDIxNSwgMjM1LCAyMzI7XG4gIC0tdGVhbC0zMDogMTk1LCAyMjQsIDIyMDtcbiAgLS10ZWFsLTQwOiAxNzUsIDIxNCwgMjA5O1xuICAtLXRlYWwtNTA6IDEzNSwgMTk0LCAxODY7XG4gIC0tc3ByaW5nLTEwOiAxNzgsIDIyMSwgMjExO1xuICAtLXNwcmluZy0yMDogMTM5LCAyMDQsIDE4OTtcbiAgLS1zcHJpbmctMzA6IDEwMCwgMTg3LCAxNjc7XG4gIC0tc3ByaW5nLTQwOiA2MiwgMTcwLCAxNDU7XG4gIC0tc3ByaW5nLTUwOiAyMywgMTUzLCAxMjM7XG4gIC0tbGFnb29uLTEwOiAyMDksIDIzOCwgMjQwO1xuICAtLWxhZ29vbi0yMDogMTc4LCAyMjcsIDIyOTtcbiAgLS1sYWdvb24tMzA6IDEzOSwgMjEzLCAyMTY7XG4gIC0tbGFnb29uLTQwOiAxMDEsIDIwMCwgMjA0O1xuICAtLWxhZ29vbi01MDogMjQsIDE3MiwgMTc4O1xuICAtLXNhbG1vbi0xMDogMjU1LCAyMjcsIDIyNDtcbiAgLS1zYWxtb24tMjA6IDI1NSwgMjA4LCAyMDM7XG4gIC0tc2FsbW9uLTMwOiAyNTUsIDE4NCwgMTc3O1xuICAtLXNhbG1vbi00MDogMjU1LCAxNjEsIDE1MjtcbiAgLS1zYWxtb24tNTA6IDI1NSwgMTE0LCAxMDA7XG4gIC0tbGF2ZW5kZXItMTA6IDIzNywgMjI2LCAyNTE7XG4gIC0tbGF2ZW5kZXItMjA6IDIyNSwgMjA3LCAyNDg7XG4gIC0tbGF2ZW5kZXItMzA6IDIxMCwgMTgyLCAyNDQ7XG4gIC0tbGF2ZW5kZXItNDA6IDE5NiwgMTU4LCAyNDA7XG4gIC0tbGF2ZW5kZXItNTA6IDE2NiwgMTEwLCAyMzM7XG4gIC0tbGF2ZW5kZXItNjA6IDI0NiwgMjQwLCAyNTU7XG4gIC0tY3JpbXNvbi0xMDogMjU1LCAyNDgsIDI0NztcbiAgLS1jcmltc29uLTIwOiAyNTAsIDIxMywgMjE1O1xuICAtLWNyaW1zb24tMzA6IDI0MSwgMTU1LCAxNjA7XG4gIC0tY3JpbXNvbi00MDogMjI3LCA3NywgOTE7XG4gIC0tY3JpbXNvbi01MDogMjA5LCAwLCAzMDtcbiAgLS1lZ2dzaGVsbDogMjU1LCAyNTMsIDIzMTtcbiAgLS1taW50OiAyMzgsIDI0OSwgMjQ1O1xuICAtLXJvc2U6IDI1NSwgMjQxLCAyNDA7XG4gIC0tcGFwZXI6IDI0NiwgMjQ3LCAyNTI7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC53cmFwcGVyOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDI5MnB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWFnZXMvbWFycXVlLXdoaXRlLnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTYuNSU7XG4gICAgYmFja2dyb3VuZC1zaXplOiA3MCU7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cbi5oZWFkZXIge1xuICBtYXgtd2lkdGg6IDExNjZweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4ubmF2X19hY3RpdmU6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgQGFwcGx5IGJnLXR1cnF1b2lzZTtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmxpbmtzX19hY3RpdmUge1xuICBAYXBwbHkgdGV4dC1ibGFjaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5uYXZfX2xpbmtzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAyMHB4IDhweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLm5hdl9fbGlua3MgYTpob3ZlciB7XG4gIEBhcHBseSB0ZXh0LW4tNTA7XG59XG4ubmF2X19saW5rcyAucmVhZF9fbW9yZSB7XG4gIEBhcHBseSByb3VuZGVkLXNtIGJnLWJsdWVjb3JhbCB0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtd2hpdGU7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgcGFkZGluZzogOHB4IDE4cHg7XG59XG4ubmF2X19saW5rcyAucmVhZF9fbW9yZTpob3ZlciB7XG4gIEBhcHBseSBiZy1uLTUwIHRleHQtd2hpdGU7XG59XG4ubmF2X19saW5rcyBhIHtcbiAgQGFwcGx5IHRleHQtd2hpdGU7XG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgLm5hdl9fbGlua3Mge1xuICAgIHBhZGRpbmc6IDBweCA4cHggMjBweDtcbiAgfVxuICAubmF2X19saW5rcyBhIHtcbiAgICBAYXBwbHkgdGV4dC1uLTUwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuICAubmF2X19saW5rczo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBAYXBwbHkgYmctdHVycXVvaXNlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMSk7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gIC5uYXZfX2xpbmtzOmhvdmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgfVxufVxuLmRyb3Bkb3duX19jb250ZW50IHtcbiAgQGFwcGx5IGludmlzaWJsZSBhYnNvbHV0ZSByaWdodC0wIHRvcC03IGhpZGRlbiBoLTU2IGJnLXdoaXRlIHB5LTcgcHgtOCBvcGFjaXR5LTAgZHVyYXRpb24tMzAwIHhsOmJsb2NrO1xuICB3aWR0aDogNDI0cHg7XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4uZHJvcGRvd246aG92ZXIgLmRyb3Bkb3duX19jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLm5hdl9fbGlzdCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgQGFwcGx5IGJnLWJsdWVjb3JhbCB0ZXh0LXdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgei1pbmRleDogMTEwO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCA4cHggIzAwMCk7XG4gIH1cbiAgLm5hdl9fbGlzdCAuYWN0aXZlIGEge1xuICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgfVxuICAubmF2X19saXN0IC5hY3RpdmUgYTpob3ZlciB7XG4gICAgQGFwcGx5IHRleHQtd2hpdGU7XG4gIH1cbiAgLm5hdl9fbGlzdCAuYWN0aXZlIGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAxKTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgQGFwcGx5IGJnLXR1cnF1b2lzZTtcbiAgfVxuICAubmF2X19saXN0IC5hY3RpdmUgYTpob3Zlcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gIC5uYXZfX2xpc3Qge1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuXG4jbWVudS1vdmVybGF5IHtcbiAgQGFwcGx5IHhsOmhpZGRlbjtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTE5MHB4KSB7XG4gICNhY3Rpdml0eS1tZW51LW92ZXJsYXkge1xuICAgIEBhcHBseSBoaWRkZW47XG4gIH1cbn1cblxuLm1lbnUtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgLmFjdGl2aXR5LW5hdi1tZW51IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBAYXBwbHkgYmctYmx1ZWNvcmFsIHRleHQtd2hpdGU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig3cHgpO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgei1pbmRleDogMTAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggOHB4ICMwMDApO1xuICB9XG4gIC5hY3Rpdml0eS1uYXYtbWVudSAuYWN0aXZpdHktbmF2LWxpc3Qge1xuICAgIEBhcHBseSBtdC01NiBmbGV4IGZsZXgtY29sIHNwYWNlLXktOTtcbiAgfVxufVxuXG4ubmF2LWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG59XG5cbi5uYXZfX3BvaW50ZXIsIC5uYXZfX3BvaW50ZXItaG92ZXIge1xuICBAYXBwbHkgcmVsYXRpdmU7XG59XG4ubmF2X19wb2ludGVyOmFmdGVyLCAubmF2X19wb2ludGVyLWhvdmVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgQGFwcGx5IGFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCBoLTEgdy1mdWxsIHNjYWxlLXgtMCBzY2FsZS15LTEwMCByb3VuZGVkLXNtIGJnLXR1cnF1b2lzZSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi01MDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgLm5hdl9fcG9pbnRlcjphZnRlciwgLm5hdl9fcG9pbnRlci1ob3ZlcjphZnRlciB7XG4gICAgQGFwcGx5IC1ib3R0b20tMztcbiAgfVxufVxuLm5hdl9fcG9pbnRlcjpob3ZlcjphZnRlciwgLm5hdl9fcG9pbnRlci1ob3Zlcjpob3ZlcjphZnRlciB7XG4gIEBhcHBseSBzY2FsZS14LTEwMDtcbn1cbi5uYXZfX3BvaW50ZXI6YWZ0ZXIge1xuICBAYXBwbHkgc2NhbGUteC0xMDA7XG59XG5cbi5hY3Rpdml0eS1uYXYge1xuICBAYXBwbHkgZmxleCBncm93O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTE5MHB4KSB7XG4gIC5hY3Rpdml0eS1uYXYge1xuICAgIEBhcHBseSBqdXN0aWZ5LWVuZDtcbiAgfVxufVxuXG4ubWFpbl9fY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMTY2cHg7XG4gIG1hcmdpbjogYXV0bztcbn1cbi5tYWluIC5sZWZ0X19jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTYwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIHRyYW5zcGFyZW50KTtcbn1cbi5tYWluIC5sZWZ0X19jb250YWluZXIgYSB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5tYWluIC5sZWZ0X19jb250YWluZXIgYTpob3ZlciB7XG4gIEBhcHBseSBib3JkZXItYi0yIGJvcmRlci10dXJxdW9pc2U7XG59XG4ubWFpbiAucmlnaHQge1xuICB3aWR0aDogOTMlO1xuICBib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi5tYWluIC5yaWdodF9fY29udGFpbmVyIGgyIHtcbiAgbGluZS1oZWlnaHQ6IDYwcHg7XG59XG4ubWFpbiAucmlnaHRfX2NvbnRlbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLWxnIGJnLXdoaXRlIHB5LTYgcHgtNTtcbn1cbi5tYWluIC5yaWdodF9fY29udGVudCAucmlnaHRfX2ljb24ge1xuICBAYXBwbHkgdGV4dC1sYWdvb24tNTA7XG4gIG1hcmdpbi1ib3R0b206IC04cHg7XG59XG4ubWFpbiAucmlnaHRfX2NvbnRlbnQgLnJpZ2h0X19hcnJvdyB7XG4gIEBhcHBseSB0ZXh0LXdoaXRlO1xufVxuLm1haW4gLnJpZ2h0X19jb250ZW50OmhvdmVyIHtcbiAgQGFwcGx5IGJvcmRlciBib3JkZXItdHVycXVvaXNlIGJnLXR1cnF1b2lzZSBiZy1vcGFjaXR5LTEwO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4IHRyYW5zcGFyZW50O1xufVxuLm1haW4gLnJpZ2h0X19jb250ZW50OmhvdmVyIC5yaWdodF9faWNvbiBzdmcge1xuICBAYXBwbHkgZmlsbC1sYWdvb24tNTAgdGV4dC13aGl0ZTtcbn1cbi5tYWluIC5yaWdodF9fY29udGVudDpob3ZlciAucmlnaHRfX2Fycm93IHtcbiAgQGFwcGx5IGZpbGwtd2hpdGUgdGV4dC10dXJxdW9pc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgLm1haW4gLmpvaW4tbm93IHtcbiAgICBAYXBwbHkgcHgtMjA7XG4gIH1cbiAgLm1haW4gLmpvaW4tbm93IC5yaWdodF9fY29udGVudCB7XG4gICAgd2lkdGg6IDQyM3B4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIGlucHV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubGVmdCB7XG4gICAgaGVpZ2h0OiA2NDlweDtcbiAgfVxuICAubGVmdF9fY29udGFpbmVyIHtcbiAgICB3aWR0aDogMzg2cHg7XG4gIH1cbiAgLnJpZ2h0IHtcbiAgICBoZWlnaHQ6IDY0OXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucmlnaHQge1xuICAgIG1hcmdpbi10b3A6IC0yNjVweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgLnJpZ2h0X19pY29uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5kZXRhaWxzIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgQGFwcGx5IHJvdW5kZWQtbGcgYmctbi0yMCBob3ZlcjpiZy1uLTMwO1xufVxuXG5tYWluIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1xuICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDY1cHgpO1xufVxuXG4uYWN0aXZpdGllc19fc2lkZWJhciB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5hY3Rpdml0aWVzX19zaWRlYmFyIHtcbiAgICB3aWR0aDogMjIwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5ib2R5LmRpc2FibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuXG5ib2R5IHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG59XG5cbmJvZHkubm8tbmF2IHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuXG5odG1sIHtcbiAgc2Nyb2xsLXBhZGRpbmctdG9wOiA2MHB4OyAvKiBoZWlnaHQgb2Ygc3RpY2t5IGhlYWRlciAqL1xufVxuXG4uZm9vdGVyX19jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDExNjZweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuLmZvb3Rlcl9fY29udGFpbmVyIC5mb290ZXJfX2xpbmtzIGEge1xuICBAYXBwbHkgYm9yZGVyLWItMiBib3JkZXItdHJhbnNwYXJlbnQgdGV4dC1uLTIwO1xufVxuLmZvb3Rlcl9fY29udGFpbmVyIC5mb290ZXJfX2xpbmtzIGE6aG92ZXIge1xuICBAYXBwbHkgYm9yZGVyLWItMiBib3JkZXItdHVycXVvaXNlO1xufVxuXG4uZWxsaXBzaXMge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xufVxuXG4uZWxsaXBzaXNfX3RpdGxlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuXG4uZWxsaXBzaXNfX3RpdGxlLS1ob3ZlciB7XG4gIEBhcHBseSBpbnZpc2libGUgYWJzb2x1dGUgbGVmdC0wIHRvcC1mdWxsIHotMjAgbWF4LXctbWQgc3BhY2UteS0xLjUgcm91bmRlZCBiZy1lZ2dzaGVsbCBwLTQgdGV4dC1sZWZ0IHRleHQteHMgZm9udC1ub3JtYWwgdGV4dC1uLTQwIG9wYWNpdHktMCBkdXJhdGlvbi0yMDA7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBtYXgtaGVpZ2h0OiAxMjBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5lbGxpcHNpczpob3ZlciAuZWxsaXBzaXNfX3RpdGxlLS1ob3Zlcixcbi5lbGxpcHNpc19fdGl0bGU6aG92ZXIgLmVsbGlwc2lzX190aXRsZS0taG92ZXIsXG4uYnJlYWRjcnVtYl9fdGl0bGU6aG92ZXIgLmVsbGlwc2lzX190aXRsZS0taG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNXB4KTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmJyZWFkY3J1bWJfX3RpdGxlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQge1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMwcHgpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQgLmFkZF9pbmRpY2F0b3Ige1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gIH1cbn1cblxuLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQgZGl2IC5lZGl0LWJ1dHRvbixcbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IGRpdiAuZGVsZXRlLWJ1dHRvbiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQgZGl2IC5lZGl0LWJ1dHRvbixcbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IGRpdiAuZGVsZXRlLWJ1dHRvbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4uYWN0aXZpdGllc19fY29udGVudC0tZWxlbWVudCBkaXYgLmVkaXQtYnV0dG9uIHtcbiAgb3JkZXI6IDI7XG59XG4uYWN0aXZpdGllc19fY29udGVudC0tZWxlbWVudCBkaXYgLmRlbGV0ZS1idXR0b24ge1xuICBvcmRlcjogMTtcbn1cbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IGRpdjpob3ZlciAuZWRpdC1idXR0b24sIC5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IGRpdjpob3ZlciAuZGVsZXRlLWJ1dHRvbiB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59XG4uYWN0aXZpdGllc19fY29udGVudC0tZWxlbWVudCBkaXYgLmVsZW1lbnRzLXN2ZyB7XG4gIEBhcHBseSBtci0xLjUgdGV4dC14bCB0ZXh0LWJsdWVjb3JhbDtcbn1cblxuLmRlc2NyaXB0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNTAwcHg7XG59XG5cbi5lbGVtZW50cy1kZXRhaWwge1xuICBAYXBwbHkgZmxleCBmbGV4LWNvbCB0ZXh0LXhzIHRleHQtbi01MDtcbn1cbi5lbGVtZW50cy1kZXRhaWwgKiB7XG4gIEBhcHBseSBsZWFkaW5nLTU7XG59XG4uZWxlbWVudHMtZGV0YWlsIHRkOm50aC1jaGlsZCgxKSB7XG4gIEBhcHBseSB0ZXh0LW4tNDA7XG4gIHdpZHRoOiAxMDBweDtcbn1cbi5lbGVtZW50cy1kZXRhaWwud2lkZXI6bm90KC5zbWFsbCkgdGQ6bnRoLWNoaWxkKDEpIHtcbiAgQGFwcGx5IHRleHQtbi00MDtcbiAgd2lkdGg6IDE5MHB4O1xufVxuLmVsZW1lbnRzLWRldGFpbCB0ZDpudGgtY2hpbGQoMikge1xuICBAYXBwbHkgZmxleCBmbGV4LWNvbCBwbC0yIHRleHQteHMgdGV4dC1uLTUwO1xufVxuLmVsZW1lbnRzLWRldGFpbCAubXVsdGlsaW5lIHtcbiAgQGFwcGx5IGl0ZW1zLXN0YXJ0O1xufVxuLmVsZW1lbnRzLWRldGFpbCB0ZCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4uZWxlbWVudHMtZGV0YWlsIHRhYmxlID4gdGJvZHkgPiB0cjpub3QoOmxhc3QtY2hpbGQpID4gdGQge1xuICBAYXBwbHkgcGItMztcbn1cblxuLnZhbHVlIHtcbiAgQGFwcGx5IGZsZXggc3BhY2UteC0xIHRleHQtbi01MDtcbn1cblxuLmNhdGVnb3J5IHtcbiAgQGFwcGx5IG1iLTIgdGV4dC1zbSBmb250LWJvbGQgdGV4dC1uLTUwO1xufVxuXG4ubGFuZ3VhZ2Uge1xuICBAYXBwbHkgdy1bMzAwcHhdIHRleHQteHMgaXRhbGljIHRleHQtbi0zMCAgc206dy1hdXRvO1xufVxuXG4uZGVzY3JpcHRpb24tY29udGVudCB7XG4gIEBhcHBseSB3LVszMDBweF0gc206dy1hdXRvO1xufVxuXG4udGl0bGUtYm9yZGVyOjphZnRlciB7XG4gIHdpZHRoOiA5NTBweDtcbiAgY29udGVudDogXCJcIjtcbiAgQGFwcGx5IGFic29sdXRlIHRvcC0yIGxlZnQtNCBoLXB4IGJnLW4tMzA7XG59XG5cbi5lbGVtZW50cy10aXRsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBAYXBwbHkgaC1weCBncm93IGJnLW4tMzA7XG59XG5cbi50b3Age1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG5cbi5tb2RhbCBwOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uc2VjdGlvbi13cmFwcGVyIHtcbiAgQGFwcGx5IG14LTMgYmctcGFwZXIgc206bXgtMTA7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nIHtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDgwcHgpO1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDE2cHggMHB4IDI0cHg7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIge1xuICBAYXBwbHkgcmVsYXRpdmUgcm91bmRlZC1sZyBiZy13aGl0ZSBwLTcgbWQ6cHktMTQgbWQ6cHgtMjA7XG4gIG1heC1oZWlnaHQ6IDY1dmg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NDBweCkge1xuICAuc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIge1xuICAgIEBhcHBseSBweC0zO1xuICB9XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIgLnZ1ZV9fc2VsZWN0IHtcbiAgbWFyZ2luOiA4cHggMHB4O1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZ19fY29udGFpbmVyIC5yZWdpc3RyeV9faW5mbyB7XG4gIEBhcHBseSBteS00IGZsZXgganVzdGlmeS1iZXR3ZWVuIGJvcmRlci1iIGJvcmRlci1iLW4tMjA7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIgcCB7XG4gIEBhcHBseSB0ZXh0LXhzIGxlYWRpbmctNSB0ZXh0LW4tNDA7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIgLnRleHQge1xuICBAYXBwbHkgbWItOCB0ZXh0LXNtO1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZ19fY29udGFpbmVyIGxhYmVsIHtcbiAgQGFwcGx5IHRleHQteHMgdGV4dC1uLTUwO1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZyAucmVnaXN0ZXIge1xuICBAYXBwbHkgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLW4tMzAgcC00IHNtOnAtNjtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19jb250YWluZXIge1xuICBAYXBwbHkgZ3JpZCBnYXAtMyBzbTpnYXAtNiBsZzpncmlkLWNvbHMtMjtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19jb250YWluZXIgLnRhZ19fY29ycmVjdCB7XG4gIEBhcHBseSBhYnNvbHV0ZSByaWdodC0yIHRvcC0xMCBmbGV4IGgtNSBjdXJzb3ItcG9pbnRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZCBiZy1zcHJpbmctNDAgdGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LXdoaXRlO1xuICB3aWR0aDogNTBweDtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19jb250YWluZXIgLnRhZ19faW5jb3JyZWN0IHtcbiAgQGFwcGx5IGFic29sdXRlIHJpZ2h0LTIgdG9wLTEwIGZsZXggaC01IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkIGJnLXNhbG1vbi01MCB0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtd2hpdGU7XG4gIHdpZHRoOiA2MXB4O1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZyAucmVnaXN0ZXIgLnZlcmlmeS1idG4ge1xuICB3aWR0aDogMTIwcHg7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG4gIEBhcHBseSBmbGV4IGgtMTAganVzdGlmeS1jZW50ZXI7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nIC5yZWdpc3Rlcl9faW5wdXQge1xuICBAYXBwbHkgbXQtMiB3LWZ1bGwgYm9yZGVyIGJvcmRlci1uLTMwIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0zMDA7XG4gIHBhZGRpbmc6IDEzcHggMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDQwcHgpIHtcbiAgLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZyAucmVnaXN0ZXJfX2lucHV0IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICB9XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nIC5yZWdpc3Rlcl9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTQwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19pbnB1dDpmb2N1cyB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19pbnB1dDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC1uLTUwO1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZyAuZXJyb3JfX2lucHV0IHtcbiAgQGFwcGx5IGJvcmRlciBib3JkZXItY3JpbXNvbi01MDtcbn1cblxuLnNhdmUtYnRuIHtcbiAgQGFwcGx5IHB4LTQ7XG59XG5cbi5idG5fX2FjdGl2ZSB7XG4gIEBhcHBseSBmb250LWJvbGQgdGV4dC13aGl0ZTtcbn1cblxuLnNtb290aCB7XG4gIGFuaW1hdGlvbjogZmFkZUluQW5pbWF0aW9uIGVhc2UgMC4zcztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5BbmltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5ib2R5IHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBAYXBwbHkgbWluLWgtc2NyZWVuIGJnLXBhcGVyO1xufVxuXG5hIHtcbiAgY29sb3I6IHJnYih2YXIoLS1ibHVlY29yYWwpKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cbmE6aG92ZXIge1xuICBjb2xvcjogcmdiKHZhcigtLXNwcmluZy01MCkpO1xufVxuXG4ubGVmdF9fdGl0bGUge1xuICBmb250LXNpemU6IDI3cHg7XG4gIHRleHQtc2hhZG93OiA0cHggNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDEpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5sZWZ0X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICB9XG59XG5cbmgyIHtcbiAgQGFwcGx5IHRleHQtaGVhZGluZy01IGZvbnQtYm9sZCB0ZXh0LW4tNTAgbWQ6dGV4dC1oZWFkaW5nLTM7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0NDBweCkge1xuICBoMiB7XG4gICAgQGFwcGx5IHRleHQtaGVhZGluZy00O1xuICB9XG59XG5cbmg0IHtcbiAgQGFwcGx5IHRleHQtaGVhZGluZy00IGxlYWRpbmctbm9ybWFsO1xufVxuXG4uYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgQGFwcGx5IGJnLXR1cnF1b2lzZSB0ZXh0LW4tNTA7XG59XG4uYnRuOmhvdmVyIHtcbiAgQGFwcGx5IGJnLWJsdWVjb3JhbDtcbiAgQGFwcGx5IHRleHQtd2hpdGU7XG59XG4uYnRuOmhvdmVyIHN2ZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG4uYnRuLWJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IDAuM3M7XG4gIEBhcHBseSB3LTI0IHRleHQtYmx1ZWNvcmFsO1xufVxuLmJ0bi1iYWNrIHN2ZyB7XG4gIHRyYW5zaXRpb246IDAuM3M7XG59XG4uYnRuLWJhY2s6aG92ZXIgc3ZnIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xufVxuXG4uYnRuLW5leHQge1xuICBAYXBwbHkgdy0zNiBweS0yLjUgdGV4dC1uLTUwIHNtOnctNDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAuYnRuLW5leHQge1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAxM3B4IDI0cHg7XG4gIH1cbn1cbi5idG4tbmV4dCBzdmcge1xuICBtYXJnaW4tbGVmdDogMTNweDtcbiAgdHJhbnNpdGlvbjogMC4ycztcbn1cblxuLmdldC1zdGFydGVkLWJ0biB7XG4gIHdpZHRoOiAxODVweDtcbn1cblxuLnJlc2V0LWJ0biB7XG4gIEBhcHBseSBtdC02IGZsZXgganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXItbm9uZSBiZy10dXJxdW9pc2UgdGV4dC1zbSBmb250LWJvbGQgdXBwZXJjYXNlIHRleHQtbi01MCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMjAwIGhvdmVyOmJnLWJsdWVjb3JhbCBob3Zlcjp0ZXh0LXdoaXRlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTZweCA5NHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAucmVzZXQtYnRuIHtcbiAgICBwYWRkaW5nOiAxOHB4IDk0cHg7XG4gIH1cbn1cbnN2ZyB7XG4gIGhlaWdodDogMWVtO1xufVxuXG4udnJwX193cmFwcGVyIHAge1xuICBAYXBwbHkgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbDtcbn1cbi52cnBfX3dyYXBwZXIgc3ZnIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uYnV0dG9uLFxuYnV0dG9uIHtcbiAgQGFwcGx5IGZsZXggY3Vyc29yLXBvaW50ZXIgaXRlbXMtY2VudGVyIHRleHQteHMgbGVhZGluZy1ub3JtYWwgdHJhY2tpbmctdGlnaHQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG59XG5cbi50b29sdGlwLWJ0biB7XG4gIEBhcHBseSByZWxhdGl2ZSB0ZXh0LW4tMzA7XG59XG4udG9vbHRpcC1idG4gYnV0dG9uIHtcbiAgQGFwcGx5IHJvdW5kZWQtM3hsIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLW4tMzAgcHktMS41IHB4LTIuNTtcbn1cbi50b29sdGlwLWJ0biBzdmcge1xuICBAYXBwbHkgbXItMSB0ZXh0LXhzO1xufVxuLnRvb2x0aXAtYnRuX19jb250ZW50IHtcbiAgQGFwcGx5IGFic29sdXRlIHRvcC1mdWxsIGxlZnQtMCBoaWRkZW4gdy1bMzUycHhdO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC50b29sdGlwLWJ0bl9fY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpO1xuICB9XG59XG4udG9vbHRpcC1idG5fX2NvbnRlbnQgLmNvbnRlbnQge1xuICBAYXBwbHkgbXQtNiByb3VuZGVkIGJnLWVnZ3NoZWxsIHRleHQtbi01MDtcbiAgcGFkZGluZzogMTZweCAzM3B4IDE2cHggMTZweDtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi50b29sdGlwLWJ0bl9fY29udGVudCBwIHtcbiAgQGFwcGx5IG1iLTEuNSB0ZXh0LXhzIGxlYWRpbmctbm9ybWFsO1xufVxuLnRvb2x0aXAtYnRuOmhvdmVyIC50b29sdGlwLWJ0bl9fY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRvb2x0aXAtYnRuOmhvdmVyIGJ1dHRvbiB7XG4gIEBhcHBseSBib3JkZXItc3ByaW5nLTUwIHRleHQtc3ByaW5nLTUwO1xufVxuXG4ucHJpbWFyeS1idG4ge1xuICBAYXBwbHkgZ2FwLTEgcm91bmRlZCBiZy1ibHVlY29yYWwgcC0zIGZvbnQtYm9sZCB1cHBlcmNhc2UgdGV4dC13aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi5wcmltYXJ5LWJ0bi5zcGFjZSB7XG4gIEBhcHBseSBweC02O1xufVxuLnByaW1hcnktYnRuOmhvdmVyIHtcbiAgQGFwcGx5IGJnLW4tNTAgdGV4dC13aGl0ZTtcbn1cbi5wcmltYXJ5LWJ0biBzdmcge1xuICBAYXBwbHkgdGV4dC1iYXNlO1xufVxuXG4uc2Vjb25kYXJ5LWJ0biB7XG4gIEBhcHBseSBnYXAtMSBnYXAteC0xIHJvdW5kZWQgYmctd2hpdGUgcC0zIHVwcGVyY2FzZSB0ZXh0LWJsdWVjb3JhbDtcbn1cbi5zZWNvbmRhcnktYnRuLS10b3VjaCB7XG4gIEBhcHBseSBnYXAtMSBnYXAteC0xIHJvdW5kZWQgYmctd2hpdGUgcC0zIHVwcGVyY2FzZSB0ZXh0LWJsdWVjb3JhbDtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi5zZWNvbmRhcnktYnRuLS10b3VjaCAuZHJvcGRvd25fX2Fycm93IHtcbiAgZm9udC1zaXplOiA2cHg7XG4gIHRyYW5zaXRpb246IDAuMnM7XG59XG4uc2Vjb25kYXJ5LWJ0bi0tdG91Y2ggc3ZnIHtcbiAgQGFwcGx5IHRleHQtYmFzZTtcbn1cbi5zZWNvbmRhcnktYnRuOmhvdmVyIHtcbiAgQGFwcGx5IGJnLWJsdWVjb3JhbCB0ZXh0LXdoaXRlO1xufVxuLnNlY29uZGFyeS1idG4gc3ZnIHtcbiAgQGFwcGx5IHRleHQtYmFzZTtcbn1cbi5zZWNvbmRhcnktYnRuIC5kcm9wZG93bl9fYXJyb3cge1xuICBmb250LXNpemU6IDZweDtcbiAgdHJhbnNpdGlvbjogMC4ycztcbn1cblxuLnByaW1hcnktb3V0bGluZS1idG4ge1xuICBAYXBwbHkganVzdGlmeS1jZW50ZXIgZ2FwLTEgcm91bmRlZC0zeGwgYm9yZGVyIGJvcmRlci1zcHJpbmctNTAgcHgtMy41IHRleHQtc20gbGVhZGluZy1yZWxheGVkIHRleHQtc3ByaW5nLTUwO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xufVxuLnByaW1hcnktb3V0bGluZS1idG46aG92ZXIge1xuICBAYXBwbHkgYmctc3ByaW5nLTUwIHRleHQtd2hpdGU7XG59XG4ucHJpbWFyeS1vdXRsaW5lLWJ0biBzdmcge1xuICBAYXBwbHkgdGV4dC1iYXNlO1xufVxuXG4uZ2hvc3QtYnRuIHtcbiAgQGFwcGx5IHRleHQteHMgZm9udC1ib2xkIHVwcGVyY2FzZSB0ZXh0LW4tNDA7XG4gIHRyYW5zaXRpb246IDAuNHM7XG59XG4uZ2hvc3QtYnRuOmhvdmVyIHtcbiAgQGFwcGx5IHRleHQtYmx1ZWNvcmFsO1xufVxuXG4udGFiLWJ0bi1hbmNob3Ige1xuICBAYXBwbHkgY3Vyc29yLWRlZmF1bHQ7XG59XG5cbi50YWItYnRuIHtcbiAgQGFwcGx5IGgtOSByb3VuZGVkIGJvcmRlciBib3JkZXItbi0yMCBiZy13aGl0ZSBwLTIgdGV4dC14cyB0ZXh0LW4tNDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi50YWItYnRuOmhvdmVyIHtcbiAgQGFwcGx5IGJvcmRlci10dXJxdW9pc2UgYmctbi0xMCB0ZXh0LWJsdWVjb3JhbDtcbn1cblxuLmFjdGl2ZV9fdGFiIHtcbiAgQGFwcGx5IGJvcmRlci10dXJxdW9pc2UgYmctbi0xMCB0ZXh0LWJsdWVjb3JhbDtcbn1cblxuLnBhbmVsLWJ0biB7XG4gIEBhcHBseSBoLTEwIHNwYWNlLXgtMSByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCBiZy1lZ2dzaGVsbCBweS0zIHB4LTI7XG4gIHdpZHRoOiA0M3B4O1xufVxuLnBhbmVsLWJ0bjpob3ZlciB7XG4gIEBhcHBseSBiZy1ibHVlY29yYWwgdGV4dC13aGl0ZTtcbn1cbi5wYW5lbC1idG4gLmRyb3Bkb3duX19hcnJvdyB7XG4gIGZvbnQtc2l6ZTogNnB4O1xuICB0cmFuc2l0aW9uOiAwLjJzO1xufVxuXG4uaGFtYnVyZ2VyIHtcbiAgQGFwcGx5IHJlbGF0aXZlIHotYXV0byBmbGV4IGgtMTEgdy0xMSBjdXJzb3ItcG9pbnRlciBkdXJhdGlvbi0zMDAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkO1xuICB6LWluZGV4OiAxMjA7XG59XG4uaGFtYnVyZ2VyLmFjdGl2ZSBzcGFuIHtcbiAgQGFwcGx5IGJnLW4tMTA7XG59XG4uaGFtYnVyZ2VyIHNwYW4ge1xuICBAYXBwbHkgcG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBoLTEgdy0xMCByb3VuZGVkLWxnIGR1cmF0aW9uLTMwMDtcbn1cbi5oYW1idXJnZXIgc3BhbjpudGgtY2hpbGQoMSkge1xuICBib3R0b206IDE4cHg7XG4gIGxlZnQ6IDJweDtcbiAgd2lkdGg6IDMwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG59XG4uaGFtYnVyZ2VyLmFjdGl2ZSBzcGFuOm50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiA0MHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWigwKTtcbn1cbi5oYW1idXJnZXIuYWN0aXZlIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xufVxuLmhhbWJ1cmdlci5hY3RpdmUgc3BhbjpudGgtY2hpbGQoMykge1xuICB3aWR0aDogNDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCkgcm90YXRlKDMxNWRlZyk7XG59XG4uaGFtYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgdG9wOiAxOHB4O1xuICBsZWZ0OiAycHg7XG4gIHdpZHRoOiAyMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTVweCk7XG59XG5cbi5oYW1idXJnZXItbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgLmhhbWJ1cmdlci1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uaG9tZS1idXJnZXItbWVudS5hY3RpdmUge1xuICB0cmFuc2xhdGU6IC00OTAlIC05MCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAuaG9tZS1idXJnZXItbWVudS5hY3RpdmUge1xuICAgIHRyYW5zbGF0ZTogLTM1MCUgLTE0MCU7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gIC5ob21lLWJ1cmdlci1tZW51LmFjdGl2ZSB7XG4gICAgdHJhbnNsYXRlOiAtMzgwJSAtOTAlO1xuICB9XG59XG5cbi5pbnB1dCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDE0cHggMHB4IDE0cHggNTVweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBAYXBwbHkgaC0xNCBib3JkZXIgYm9yZGVyLW4tMzAgc206aC0xNjtcbn1cbi5pbnB1dDpmb2N1cyB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbn1cbi5pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgQGFwcGx5IGZvbnQtbm9ybWFsIHRleHQtbi00MDtcbn1cbi5pbnB1dDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC1uLTUwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmlucHV0IHtcbiAgICBwYWRkaW5nOiAyMHB4IDBweCAyMHB4IDU1cHg7XG4gIH1cbn1cblxuLmVycm9yIHtcbiAgQGFwcGx5IHRleHQtc20gdGV4dC1jcmltc29uLTUwIHNtOnRleHQtYmFzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uaGFzX2Vycm9yIC5mb3JtX19pbnB1dCB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLWNyaW1zb24tNTA7XG59XG5cbnRleHRhcmVhLmZvcm1fX2lucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi50ZXh0LWFyZWEge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNjBweDtcbiAgcmVzaXplOiBub25lO1xufVxuXG4uZm9ybV9faW5wdXQge1xuICBAYXBwbHkgbWItMiBib3gtYm9yZGVyIHctZnVsbCByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCB0ZXh0LWJsdWVjb3JhbCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAxNnB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmZvcm1fX2lucHV0IHtcbiAgICBwYWRkaW5nOiAxM3B4IDAgMTNweCAxNnB4O1xuICB9XG59XG4uZm9ybV9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtc20gZm9udC1ub3JtYWwgdGV4dC1uLTQwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cbi5mb3JtX19pbnB1dDpmb2N1cyB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbn1cbi5mb3JtX19pbnB1dDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC1uLTUwO1xufVxuXG4uaW5wdXRfX2ZpZWxkIC5tdWx0aXNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQge1xuICBAYXBwbHkgYmctbi0yMCB0ZXh0LW4tNTA7XG59XG4uaW5wdXRfX2ZpZWxkIC5tdWx0aXNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQuaXMtcG9pbnRlZCB7XG4gIEBhcHBseSBiZy1uLTIwIHRleHQtbi01MDtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LmlzLWFjdGl2ZSB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMDtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIEBhcHBseSB3LVszMTBweF0gb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwIHByLTMgdGV4dC1zbSB0ZXh0LW4tNDAgZHVyYXRpb24tMzAwO1xufVxuLmlucHV0X19maWVsZCAubXVsdGlzZWxlY3QtcGxhY2Vob2xkZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgQGFwcGx5IGFic29sdXRlIHJpZ2h0LTAgdG9wLTMgaC02IHctNyBiZy13aGl0ZTtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LmlzLW9wZW4gLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtbi01MDtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LWRyb3Bkb3duIHtcbiAgQGFwcGx5IGJvcmRlciBib3JkZXItbi01MDtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LWNhcmV0IHtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIvaW1hZ2VzL2Ryb3Bkb3duLWFycm93LnN2Z1wiKTtcbiAgbWFzay1pbWFnZTogdXJsKFwiL2ltYWdlcy9kcm9wZG93bi1hcnJvdy5zdmdcIik7XG59XG4uaW5wdXRfX2ZpZWxkIC5tdWx0aXNlbGVjdC1zZWFyY2gge1xuICBAYXBwbHkgY3Vyc29yLXBvaW50ZXIgYm9yZGVyIGJvcmRlci1uLTMwIHB5LTIuNTtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LXNlYXJjaDpmb2N1cyB7XG4gIEBhcHBseSBiZy1uLTEwO1xufVxuLmlucHV0X19maWVsZCAubXVsdGlzZWxlY3Qtc2VhcmNoOmZvY3VzICsgLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyOjphZnRlciB7XG4gIEBhcHBseSBiZy1uLTEwO1xufVxuLmlucHV0X19maWVsZCAudnVlX19zZWxlY3Qge1xuICBAYXBwbHkgbWItMiBib3JkZXIgYm9yZGVyLW4tMzAgdGV4dC1zbSBsZWFkaW5nLTYgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcbiAgcGFkZGluZzogMTNweCAwcHggMTNweCA1NXB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmlucHV0X19maWVsZCAudnVlX19zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDE2cHggMHB4IDE2cHggNTVweDtcbiAgfVxufVxuXG4uZXJyb3JfaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDEwMDFlO1xufVxuXG4ucGFuZWxfX2lucHV0IHtcbiAgQGFwcGx5IGJveC1ib3JkZXIgaC0xMCB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgYmctcGFwZXIgcHktMi41IHBsLTcgcHItMyBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xufVxuLnBhbmVsX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC14cyBmb250LW5vcm1hbCB0ZXh0LW4tMzAgZHVyYXRpb24tMzAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cbi5wYW5lbF9faW5wdXQ6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtbi00MDtcbn1cblxuLnNlYXJjaCB7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbi5zZWFyY2hfX2lucHV0IHtcbiAgQGFwcGx5IGJvcmRlciBib3JkZXItbi0zMCBiZy10cmFuc3BhcmVudCBvdXRsaW5lLW5vbmU7XG4gIHBhZGRpbmc6IDEwcHggNDJweCAxMHB4IDM0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG59XG4uc2VhcmNoIHN2ZyB7XG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTMgdG9wLTMgdGV4dC1iYXNlIHRleHQtbi0zMDtcbn1cblxuLnJlcXVpcmVkLWljb24ge1xuICBAYXBwbHkgcmVsYXRpdmUgdG9wLTAuNSB0ZXh0LWJhc2UgbGVhZGluZy1ub25lIHRleHQtY3JpbXNvbi01MDtcbn1cblxuLmlhdGktbGlzdC10YWJsZSB7XG4gIEBhcHBseSByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItbi0yMCB0ZXh0LWxlZnQ7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQ1cHgpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuaWF0aS1saXN0LXRhYmxlIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gIH1cbn1cbi5pYXRpLWxpc3QtdGFibGUgdGFibGUge1xuICBAYXBwbHkgdGFibGUgdy1mdWxsICBiZy13aGl0ZTtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6aG92ZXIge1xuICB6LWluZGV4OiAxO1xuICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICBAYXBwbHkgYmctbi0xMDtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0ZCxcbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0aCB7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0ZDphZnRlcixcbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0aDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0wIGJvdHRvbS0wIGgtcHggdy1mdWxsIG1heC13LWZ1bGwgYmctbi0yMDtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0ZDpmaXJzdC1jaGlsZDphZnRlciB7XG4gIEBhcHBseSBtbC02O1xufVxuLmlhdGktbGlzdC10YWJsZSB0Ym9keSB0cjpub3QoOmxhc3QtY2hpbGQpIHRoLmNoZWNrLWNvbHVtbjphZnRlciB7XG4gIEBhcHBseSAtbWwtNjtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGgge1xuICBAYXBwbHkgcHktNCBweC02IGFsaWduLXRvcCB0ZXh0LXhzIHVwcGVyY2FzZSBsZWFkaW5nLW5vcm1hbDtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGggc3ZnIHtcbiAgQGFwcGx5IG1yLTEgdGV4dC14bCB0ZXh0LW4tMzA7XG59XG4uaWF0aS1saXN0LXRhYmxlIHRoIGEge1xuICBAYXBwbHkgZmxleDtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGggYSBzdmcge1xuICBAYXBwbHkgdGV4dC1iYXNlIHRleHQtYmx1ZWNvcmFsO1xufVxuLmlhdGktbGlzdC10YWJsZSB0ZCB7XG4gIEBhcHBseSByZWxhdGl2ZSBweS00IHB4LTYgYWxpZ24tdG9wIHRleHQtc20gbGVhZGluZy1yZWxheGVkO1xufVxuLmlhdGktbGlzdC10YWJsZSB0ci5hbHJlYWR5LXB1Ymxpc2hlZCB0ZCxcbi5pYXRpLWxpc3QtdGFibGUgdHIuYWxyZWFkeS1wdWJsaXNoZWQgdGguY2hlY2stY29sdW1uIHtcbiAgQGFwcGx5IHB0LTExO1xufVxuLmlhdGktbGlzdC10YWJsZSAuaGFzLXN0YXR1cyB0ZCB7XG4gIEBhcHBseSBweC02IHB0LTExIHBiLTc7XG59XG4uaWF0aS1saXN0LXRhYmxlIC5oYXMtc3RhdHVzIHRoIHtcbiAgQGFwcGx5IHB4LTYgcHQtMTEgcGItNztcbn1cbi5pYXRpLWxpc3QtdGFibGUgLmNoZWNrLWNvbHVtbiAuY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yIHtcbiAgQGFwcGx5IGJnLXJvc2U7XG59XG4udXBsb2FkLWxpc3QtdGFibGUgLnVwbG9hZC1lcnJvcjpob3ZlciB7XG4gIEBhcHBseSBiZy1yb3NlO1xufVxuLnVwbG9hZC1saXN0LXRhYmxlIC51cGxvYWQtZXJyb3IgLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udXBsb2FkLWxpc3QtdGFibGUgLnVwbG9hZC1lcnJvci1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yLWNvbnRlbnQgZGl2Om5vdCg6bGFzdC1jaGlsZCkge1xuICBAYXBwbHkgYm9yZGVyLWIgYm9yZGVyLWItbi0yMCBwYi00O1xufVxuLnVwbG9hZC1saXN0LXRhYmxlIC51cGxvYWQtZXJyb3ItY29udGVudCBkaXYgdWwge1xuICBAYXBwbHkgbXQtNCBzcGFjZS15LTQgdGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LWJsdWVjb3JhbDtcbn1cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yLWNvbnRlbnQgZGl2IGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDM2cHg7XG59XG4udXBsb2FkLWxpc3QtdGFibGUgLnVwbG9hZC1lcnJvci1jb250ZW50IGRpdiBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgQGFwcGx5IGJvcmRlci1iIGJvcmRlci1iLW4tMjAgcGItNDtcbn1cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yLWNvbnRlbnQgZGl2IGxpOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOHB4O1xuICBsZWZ0OiAyMHB4O1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb250ZW50OiBcIlwiO1xuICBAYXBwbHkgYmctYmx1ZWNvcmFsO1xufVxuLnVwbG9hZC1saXN0LXRhYmxlIC51cGxvYWQtZXJyb3ItY29udGVudC5vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udXBsb2FkLWxpc3QtdGFibGUgLnVwbG9hZC1lcnJvci1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDI2cHg7XG4gIHJpZ2h0OiAwO1xufVxuLnVwbG9hZC1saXN0LXRhYmxlIC51cGxvYWQtZXJyb3ItaWNvbiBzdmcge1xuICBmb250LXNpemU6IDZweDtcbn1cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yLWljb24ub3BlbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbiNjYiB7XG4gIHdpZHRoOiA2OHB4O1xufVxuXG4jc3RhdHVzIHtcbiAgd2lkdGg6IDE5MnB4O1xufVxuXG4jcHVibGlzaCB7XG4gIHdpZHRoOiAyODBweDtcbn1cblxuI2RhdGUge1xuICB3aWR0aDogMTczcHg7XG59XG5cbi5pYXRpLWxpc3QtdGFibGUgdHIge1xuICBvdmVyZmxvdy15OiB2aXNpYmxlO1xufVxuLmlhdGktbGlzdC10YWJsZSB0ZDpudGgtY2hpbGQoMSkge1xuICBtYXgtd2lkdGg6IDE1MHB4ICFpbXBvcnRhbnQ7XG59XG4uaWF0aS1saXN0LXRhYmxlIHRkOm50aC1jaGlsZCgxKSBhIHtcbiAgbWF4LXdpZHRoOiAxNDVweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uY2hlY2tib3gge1xuICBAYXBwbHkgcmVsYXRpdmUgYmxvY2sgY3Vyc29yLXBvaW50ZXIgc2VsZWN0LW5vbmU7XG59XG4uY2hlY2tib3ggLmNoZWNrbWFyayB7XG4gIEBhcHBseSBmbGV4IGgtNCB3LTQgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQgYm9yZGVyLTIgYm9yZGVyLW4tMjA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG59XG4uY2hlY2tib3ggLmNoZWNrbWFyazphZnRlciB7XG4gIGJvcmRlci13aWR0aDogMCAzcHggM3B4IDA7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIEBhcHBseSBtYi0wLjUgaGlkZGVuIGgtMiB3LVs1cHhdIHJvdGF0ZS00NSBib3JkZXItc3ByaW5nLTUwO1xufVxuLmNoZWNrYm94IGlucHV0IHtcbiAgQGFwcGx5IGFic29sdXRlIGgtMCB3LTAgY3Vyc29yLXBvaW50ZXIgb3BhY2l0eS0wO1xufVxuLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuY2hlY2ttYXJrIHtcbiAgQGFwcGx5IGJvcmRlci1zcHJpbmctNTA7XG59XG4uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5jaGVja21hcms6YWZ0ZXIge1xuICBAYXBwbHkgYmxvY2s7XG59XG4uY2hlY2tib3g6aG92ZXIgaW5wdXQgfiAuY2hlY2ttYXJrIHtcbiAgQGFwcGx5IGJvcmRlci1zcHJpbmctNTA7XG59XG5cbi8qKlxuICBMYXJhdmVsIGZvcm0gZGVzaWduXG4gKi9cbmZvcm0ge1xuICAvKipcbiAgKiBDb25kaXRpb24gdG8gc2hvdyBhbmQgZGVsZXRlIGNvbGxlY3Rpb24gZXJyb3IgaW4gZm9ybVxuICAqL1xufVxuZm9ybSAuZm9ybS1maWVsZC1ncm91cCB7XG4gIEBhcHBseSByZWxhdGl2ZSBwLTM7XG59XG5mb3JtIC5mb3JtLWZpZWxkLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkge1xuICBAYXBwbHkgbWItNjtcbn1cbmZvcm0gLmZvcm0tZmllbGQtZ3JvdXAgLmZvcm0tZmllbGQge1xuICBAYXBwbHkgcC0zO1xufVxuZm9ybSAuZm9ybS1maWVsZC1ncm91cCAuZm9ybS1maWVsZCAuaGVscC10ZXh0IHtcbiAgQGFwcGx5IG10LTIgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQ7XG59XG5mb3JtIGJ1dHRvbi5kZWxldGUtaXRlbSB7XG4gIEBhcHBseSBhYnNvbHV0ZSBoLTggdy04IGN1cnNvci1wb2ludGVyIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLWZ1bGwgYmctbi00MCAtaW5kZW50LTQwO1xufVxuZm9ybSBidXR0b24uZGVsZXRlLWl0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIvaW1hZ2VzL3RyYXNoX2Z1bGwuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTEvMiB0b3AtMS8yIGgtWzE4cHhdIHctWzE4cHhdIC10cmFuc2xhdGUteC0xLzIgLXRyYW5zbGF0ZS15LTEvMjtcbn1cbmZvcm0gYnV0dG9uLmRlbGV0ZS1pdGVtOmhvdmVyIHtcbiAgQGFwcGx5IGJnLWJsdWVjb3JhbDtcbn1cbmZvcm0gLmZvcm0tZmllbGQtZ3JvdXAtb3V0ZXIgLmZvcm0tZmllbGQge1xuICBAYXBwbHkgcHgtMztcbn1cbmZvcm0gLmZvcm0tZmllbGQtbGFiZWwge1xuICBAYXBwbHkgbWItMiBmbGV4IGp1c3RpZnktYmV0d2Vlbjtcbn1cbmZvcm0gLmZvcm0tZmllbGQtbGFiZWwgbGFiZWwge1xuICBAYXBwbHkgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQ7XG59XG5mb3JtIC5mb3JtLWZpZWxkLWxhYmVsIC5yZXF1aXJlZCB7XG4gIEBhcHBseSBmb250LWJvbGQgdGV4dC1zYWxtb24tNTA7XG59XG5mb3JtIGlucHV0W3R5cGU9dGV4dF0sXG5mb3JtIGlucHV0W3R5cGU9ZGF0ZV0sXG5mb3JtIHRleHRhcmVhIHtcbiAgQGFwcGx5IG10LTAgaC0xMiB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgcHgtNCBweS0yLjUgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xufVxuZm9ybSBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbmZvcm0gaW5wdXRbdHlwZT1kYXRlXTo6cGxhY2Vob2xkZXIsXG5mb3JtIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIEBhcHBseSB0ZXh0LXNtIHRleHQtbi00MDtcbn1cbmZvcm0gaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyxcbmZvcm0gaW5wdXRbdHlwZT1kYXRlXTpmb2N1cyxcbmZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG59XG5mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXM6OnBsYWNlaG9sZGVyLFxuZm9ybSBpbnB1dFt0eXBlPWRhdGVdOmZvY3VzOjpwbGFjZWhvbGRlcixcbmZvcm0gdGV4dGFyZWE6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtbi01MDtcbn1cbmZvcm0gaW5wdXRbdHlwZT10ZXh0XSxcbmZvcm0gaW5wdXRbdHlwZT1kYXRlXSB7XG4gIEBhcHBseSBoLTEyO1xufVxuZm9ybSBzZWxlY3Qge1xuICBAYXBwbHkgdy1mdWxsIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1uLTMwIHB4LTQgcHktMyB0ZXh0LXNtIHRleHQtbi00MCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xufVxuZm9ybSBzZWxlY3Q6Zm9jdXMge1xuICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG59XG5mb3JtIC5oZWxwIHtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuZm9ybSAuaGVscF9fdGV4dCB7XG4gIEBhcHBseSBpbnZpc2libGUgYWJzb2x1dGUgdG9wLTQgei0yMCBzcGFjZS15LTEuNSByb3VuZGVkIGJnLWVnZ3NoZWxsIHAtNCB0ZXh0LWxlZnQgdGV4dC14cyB0ZXh0LW4tNDAgb3BhY2l0eS0wIGR1cmF0aW9uLTIwMDtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XG59XG5mb3JtIC5oZWxwOmhvdmVyIC5oZWxwX190ZXh0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59XG5mb3JtIC5hZGRfbW9yZSB7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbmZvcm0gLmFkZF9tb3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgaC0xLzIgdy1weCBib3JkZXItbCBib3JkZXItc3ByaW5nLTUwO1xufVxuZm9ybSAuYWRkX21vcmU6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0wIHRvcC0yLzQgaC1weCB3LTMuNSAtdHJhbnNsYXRlLXktMS8yIGJvcmRlci1iIGJvcmRlci1zcHJpbmctNTA7XG59XG5mb3JtIC5hZGRfbW9yZSBpIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgYmFja2dyb3VuZDogdXJsKFwiL2ltYWdlcy9hZGQtbW9yZS1ncmVlbi5zdmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcbn1cbmZvcm0gLnN1YmVsZW1lbnQuYm9yZGVyLWwgPiBsYWJlbCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuZm9ybSAuc3ViZWxlbWVudCAuc3ViZWxlbWVudCxcbmZvcm0gLnN1YmVsZW1lbnQgLnN1YmVsZW1lbnQgKyBidXR0b24ge1xuICBAYXBwbHkgbWwtNjtcbn1cbmZvcm0gLnN1YmVsZW1lbnQgLndyYXBwZWQtY2hpbGQtYm9keSB7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbmZvcm0gLnN1YmVsZW1lbnQgLndyYXBwZWQtY2hpbGQtYm9keSA+IC5kZWxldGUtcGFyZW50IHtcbiAgQGFwcGx5IGJsb2NrO1xufVxuZm9ybSAuc3ViZWxlbWVudCA+IC5tdWx0aS1mb3JtOm9ubHktb2YtdHlwZSA+IC5kZWxldGUtcGFyZW50LFxuZm9ybSAuc3ViZWxlbWVudCAud3JhcHBlZC1jaGlsZC1ib2R5Om9ubHktb2YtdHlwZSA+IC5kZWxldGUtcGFyZW50IHtcbiAgQGFwcGx5IGhpZGRlbjtcbn1cbmZvcm0gLmZvcm0tZmllbGQtZ3JvdXA6b25seS1vZi10eXBlID4gLmRlbGV0ZS1pdGVtIHtcbiAgQGFwcGx5IGhpZGRlbjtcbn1cbmZvcm0gLmNvbGxlY3Rpb25fZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9ybSAubXVsdGktZm9ybSArIC5jb2xsZWN0aW9uX2Vycm9yLFxuZm9ybSAuZm9ybS1maWVsZC1ncm91cCArIC5jb2xsZWN0aW9uX2Vycm9yLFxuZm9ybSAud3JhcHBlZC1jaGlsZC1ib2R5ICsgLmNvbGxlY3Rpb25fZXJyb3Ige1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gIFNlbGVjdCAyIGZpZWxkXG4qL1xuc3Bhbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuc3Bhbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XG4gIEBhcHBseSBoLTEyIHctZnVsbCByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCBweC00IHB5LTMgdGV4dC1zbSB0ZXh0LW4tNDAgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcbn1cbnNwYW4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gIEBhcHBseSBwLTAgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbDtcbn1cbnNwYW4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gIEBhcHBseSBoLTExO1xufVxuc3Bhbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHNwYW4ge1xuICBAYXBwbHkgbXItMi41IHRleHQtc207XG59XG5zcGFuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tNDA7XG59XG5zcGFuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xuICBjb2xvcjogIzFmMjkzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNjtcbn1cbnNwYW4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uW2FyaWEtc2VsZWN0ZWRdIHtcbiAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTUwO1xufVxuXG4ubWF4LXctaGFsZiB7XG4gIG1heC13aWR0aDogNTAlO1xufVxuXG4vKipcbiAgQWN0aXZpdHkgRGV0YWlsIFBhZ2VcbiovXG4uYWN0aXZpdGllcyB7XG4gIEBhcHBseSBmbGV4IGdhcC01IHhsOmdhcC03O1xufVxuLmFjdGl2aXRpZXNfX3NpZGViYXIge1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDI4MHB4O1xufVxuLmFjdGl2aXRpZXNfX3NpZGViYXItaW5uZXIge1xuICBvcmRlcjogMTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYWN0aXZpdGllc19fY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNTBweCk7XG4gIH1cbn1cbi5hY3Rpdml0aWVzX19jYXJkIHtcbiAgQGFwcGx5IGZsZXggZmxleC1jb2wgYmctd2hpdGUgdGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LW4tNDA7XG4gIHBhZGRpbmc6IDEzcHg7XG59XG4uYWN0aXZpdGllcyAucHJvZ3Jlc3Mge1xuICBAYXBwbHkgaXRlbXMtY2VudGVyO1xuICB3aWR0aDogMTUxcHg7XG4gIG1pbi1oZWlnaHQ6IDE3NHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHggMHB4IDBweCA4cHg7XG59XG4uYWN0aXZpdGllcyAudGFiLWJ0bjpkaXNhYmxlZCB7XG4gIEBhcHBseSBwb2ludGVyLWV2ZW50cy1ub25lIHRleHQtbi0yMDtcbn1cbi5hY3Rpdml0aWVzIC50YWItYnRuOmRpc2FibGVkIHN2ZyB7XG4gIEBhcHBseSB0ZXh0LW4tMjA7XG59XG4uYWN0aXZpdGllcyAuaG92ZXItdGV4dCBzdmcge1xuICBAYXBwbHkgdGV4dC1uLTMwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgLmVsZW1lbnRzLWNhcmQge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAubWFudWFsLWltcG9ydCAuaGVscF9fdGV4dCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDM1MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnJlZ2lzdHJ5X19pbmZvIC5oZWxwX190ZXh0LFxuLnJlZ2lzdGVyIC5oZWxwX190ZXh0LFxuYXNpZGUgLmhlbHBfX3RleHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnJlZ2lzdHJ5X19pbmZvIC5oZWxwX190ZXh0LFxuLnJlZ2lzdGVyIC5oZWxwX190ZXh0LFxuYXNpZGUgLmhlbHBfX3RleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAyNTBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5pbXBvcnQtYWN0aXZpdHkgLmhlbHBfX3RleHQsXG4uYWN0aXZpdGllc19fY29udGVudC0tZWxlbWVudCAuaGVscF9fdGV4dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSAhaW1wb3J0YW50O1xufVxuXG5hc2lkZSAucHJvZ3Jlc3MgLmhlbHBfX3RleHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgYXNpZGUgLnByb2dyZXNzIC5oZWxwX190ZXh0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQ1JSkgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uYWN0aXZpdGllc19fY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGFiLWJ0biAuaGVscF9fdGV4dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAudGFiLWJ0biAuaGVscF9fdGV4dCB7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuXG4uYWN0aXZpdHktZGVmYXVsdC12YWx1ZSAuaGVscF9fdGV4dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbn1cblxuLnBhZ2luYXRpb24ge1xuICBAYXBwbHkgcmVsYXRpdmUgei0wIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy13aGl0ZSB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW4tNDA7XG59XG4ucGFnaW5hdGlvbiA+IGEsXG4ucGFnaW5hdGlvbiA+IHNwYW4ge1xuICBAYXBwbHkgZmxleCBib3JkZXIteSBib3JkZXItbCBib3JkZXItbi0yMCBweS0xLjUgcHgtMztcbn1cbi5wYWdpbmF0aW9uID4gYTpub3QoLnByZXYtYnRuKSxcbi5wYWdpbmF0aW9uID4gc3Bhbjpub3QoLnByZXYtYnRuKSB7XG4gIEBhcHBseSBib3JkZXItbCBib3JkZXItbi0yMDtcbn1cbi5wYWdpbmF0aW9uID4gYS5wcmV2LWJ0biwgLnBhZ2luYXRpb24gPiBhLm5leHQtYnRuLFxuLnBhZ2luYXRpb24gPiBzcGFuLnByZXYtYnRuLFxuLnBhZ2luYXRpb24gPiBzcGFuLm5leHQtYnRuIHtcbiAgQGFwcGx5IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLW4tMTA7XG59XG4ucGFnaW5hdGlvbiA+IGEucHJldi1idG4gc3ZnLCAucGFnaW5hdGlvbiA+IGEubmV4dC1idG4gc3ZnLFxuLnBhZ2luYXRpb24gPiBzcGFuLnByZXYtYnRuIHN2Zyxcbi5wYWdpbmF0aW9uID4gc3Bhbi5uZXh0LWJ0biBzdmcge1xuICBAYXBwbHkgdGV4dC14cztcbn1cbi5wYWdpbmF0aW9uID4gYS5wcmV2LWJ0bixcbi5wYWdpbmF0aW9uID4gc3Bhbi5wcmV2LWJ0biB7XG4gIEBhcHBseSByb3VuZGVkLXRsIHJvdW5kZWQtYmw7XG59XG4ucGFnaW5hdGlvbiA+IGEubmV4dC1idG4sXG4ucGFnaW5hdGlvbiA+IHNwYW4ubmV4dC1idG4ge1xuICBAYXBwbHkgcm91bmRlZC1iciByb3VuZGVkLXRyIGJvcmRlci1yO1xufVxuLnBhZ2luYXRpb24gPiBhLnByZXYtYnRuIHN2Zyxcbi5wYWdpbmF0aW9uID4gc3Bhbi5wcmV2LWJ0biBzdmcge1xuICBAYXBwbHkgbXItMTtcbn1cbi5wYWdpbmF0aW9uID4gYS5uZXh0LWJ0biBzdmcsXG4ucGFnaW5hdGlvbiA+IHNwYW4ubmV4dC1idG4gc3ZnIHtcbiAgQGFwcGx5IG1sLTE7XG59XG4ucGFnaW5hdGlvbiA+IGE6aG92ZXIsIC5wYWdpbmF0aW9uID4gYS5jdXJyZW50LFxuLnBhZ2luYXRpb24gPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiBzcGFuLmN1cnJlbnQge1xuICBAYXBwbHkgYmctYmx1ZWNvcmFsIHRleHQtcGFwZXI7XG59XG5cbi5vdmVybGF5IHtcbiAgQGFwcGx5IGZpeGVkIGxlZnQtMCB0b3AtMCBoLWZ1bGwgdy1mdWxsIGJnLWJsYWNrO1xuICB6LWluZGV4OiAxMDA7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5vdmVybGF5X19pbm5lciB7XG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgaC1mdWxsIHctZnVsbDtcbn1cbi5vdmVybGF5X19jb250ZW50IHtcbiAgQGFwcGx5IGFic29sdXRlIGxlZnQtMi80IHRvcC0yLzQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuLm92ZXJsYXlfX2NvbnRlbnQgLnNwaW5uZXIge1xuICBAYXBwbHkgaW5saW5lLWJsb2NrIGFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLW4tMTAgYm9yZGVyLW9wYWNpdHktNTtcbiAgd2lkdGg6IDc1cHg7XG4gIGhlaWdodDogNzVweDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uc2VsZWN0Mi1jb250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjdmOTtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJhMmYzMDtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xufVxuXG4uc2VsZWN0Mi1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XG4gIHBhZGRpbmc6IDZweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZF0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1kcm9wZG93biB7XG4gIGxlZnQ6IDA7XG59XG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24tLWFib3ZlIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24tLWJlbG93IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNHB4O1xufVxuLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2E2YjViYTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5bdHlwZT1zZWFyY2hdIHtcbiAgb3V0bGluZS1jb2xvcjogI2E2YjViYTtcbiAgb3V0bGluZS1vZmZzZXQ6IDA7XG59XG5cbi5zZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gIGNvbG9yOiAjMTU1MzY2O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDFweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjZweDtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IGIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICBib3JkZXItY29sb3I6ICM4ODggdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNXB4IDRweCAwIDRweDtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1yZXN1bHRzID4gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyBiIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjODg4IHRyYW5zcGFyZW50O1xuICBib3JkZXItd2lkdGg6IDAgNHB4IDVweCA0cHg7XG59XG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWFib3ZlIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWJlbG93IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5zaWRlYmFyLW9wZW4taWNvbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBsZWZ0OiAwcHg7XG4gIGJvdHRvbTogNTBweDtcbiAgei1pbmRleDogNjA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGRkZTA7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBib3JkZXItcmFkaXVzOiAwIDEwMCUgMTAwJSAwO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5zaWRlYmFyLW9wZW4taWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5zaWRlYmFyLW9wZW4taWNvbjpob3ZlciB7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cbi5zaWRlYmFyLW9wZW4taWNvbiBzdmcge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjMTU1MzY2O1xufVxuXG4uZGV0YWlscy1zaWRlYmFyLWNsb3NlLWljb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAyODBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkZGUwO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICB6LWluZGV4OiAyMDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG59XG4uZGV0YWlscy1zaWRlYmFyLWNsb3NlLWljb24gc3ZnIHtcbiAgbWFyZ2luOiBhdXRvO1xuICBjb2xvcjogIzE1NTM2Njtcbn1cblxuLnNpZGViYXItY2xvc2UtaWNvbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiA1MHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxlZnQ6IDI3NXB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGRkZTA7XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIHotaW5kZXg6IDIwMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuc2lkZWJhci1jbG9zZS1pY29uIHtcbiAgICBsZWZ0OiAyNDBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG59XG4uc2lkZWJhci1jbG9zZS1pY29uIHN2ZyB7XG4gIG1hcmdpbjogYXV0bztcbiAgY29sb3I6ICMxNTUzNjY7XG59IiwiQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLndyYXBwZXI6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjkycHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL21hcnF1ZS13aGl0ZS5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTYuNSU7XG4gICAgYmFja2dyb3VuZC1zaXplOiA3MCU7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG59XG4uaGVhZGVyIHtcbiAgbWF4LXdpZHRoOiAxMTY2cHg7XG4gIG1hcmdpbjogYXV0bztcbn1cbi5uYXZfX2FjdGl2ZTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBAYXBwbHkgYmctdHVycXVvaXNlO1xuICBjb250ZW50OiAnJztcbn1cbi5saW5rc19fYWN0aXZlIHtcbiAgQGFwcGx5IHRleHQtYmxhY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLm5hdl9fbGlua3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDIwcHggOHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG5cbiAgYTpob3ZlciB7XG4gICAgQGFwcGx5IHRleHQtbi01MDtcbiAgfVxuXG4gIC5yZWFkX19tb3JlIHtcbiAgICBAYXBwbHkgcm91bmRlZC1zbSBiZy1ibHVlY29yYWwgdGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LXdoaXRlO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBwYWRkaW5nOiA4cHggMThweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgQGFwcGx5IGJnLW4tNTAgdGV4dC13aGl0ZTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBAYXBwbHkgdGV4dC13aGl0ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5uYXZfX2xpbmtzIHtcbiAgICBwYWRkaW5nOiAwcHggOHB4IDIwcHg7XG5cbiAgICBhIHtcbiAgICAgIEBhcHBseSB0ZXh0LW4tNTA7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICBAYXBwbHkgYmctdHVycXVvaXNlO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAxKTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICB9XG4gIH1cbn1cbi5kcm9wZG93bl9fY29udGVudCB7XG4gIEBhcHBseSBpbnZpc2libGUgYWJzb2x1dGUgcmlnaHQtMCB0b3AtNyBoaWRkZW4gaC01NiBiZy13aGl0ZSBweS03IHB4LTggb3BhY2l0eS0wIGR1cmF0aW9uLTMwMCB4bDpibG9jaztcbiAgd2lkdGg6IDQyNHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICBib3gtc2hhZG93OiAwcHggOHB4IDE2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi5kcm9wZG93bjpob3ZlciB7XG4gIC5kcm9wZG93bl9fY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLm5hdl9fbGlzdCB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIEBhcHBseSBiZy1ibHVlY29yYWwgdGV4dC13aGl0ZTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDUlKTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIHotaW5kZXg6IDExMDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KC0wcHggMHB4IDhweCAjMDAwKTtcblxuICAgIC5hY3RpdmUge1xuICAgICAgYSB7XG4gICAgICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDEpO1xuICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgQGFwcGx5IGJnLXR1cnF1b2lzZTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG5cbiNtZW51LW92ZXJsYXkge1xuICBAYXBwbHkgeGw6aGlkZGVuO1xufVxuXG4jYWN0aXZpdHktbWVudS1vdmVybGF5IHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTE5MHB4KSB7XG4gICAgQGFwcGx5IGhpZGRlbjtcbiAgfVxufVxuXG4ubWVudS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uYWN0aXZpdHktbmF2LW1lbnUge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBAYXBwbHkgYmctYmx1ZWNvcmFsIHRleHQtd2hpdGU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig3cHgpO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgei1pbmRleDogMTAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggOHB4ICMwMDApO1xuXG4gICAgLmFjdGl2aXR5LW5hdi1saXN0IHtcbiAgICAgIEBhcHBseSBtdC01NiBmbGV4IGZsZXgtY29sIHNwYWNlLXktOTtcbiAgICB9XG4gIH1cbn1cbi5uYXYtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbn1cblxuLm5hdiB7XG4gICZfX3BvaW50ZXIsXG4gICZfX3BvaW50ZXItaG92ZXIge1xuICAgIEBhcHBseSByZWxhdGl2ZTtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgQGFwcGx5IGFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCBoLTEgdy1mdWxsIHNjYWxlLXgtMCBzY2FsZS15LTEwMCByb3VuZGVkLXNtIGJnLXR1cnF1b2lzZSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi01MDA7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkge1xuICAgICAgICBAYXBwbHkgLWJvdHRvbS0zO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIge1xuICAgICAgQGFwcGx5IHNjYWxlLXgtMTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3BvaW50ZXI6YWZ0ZXIge1xuICAgIEBhcHBseSBzY2FsZS14LTEwMDtcbiAgfVxufVxuXG4uYWN0aXZpdHktbmF2IHtcbiAgQGFwcGx5IGZsZXggZ3JvdztcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTkwcHgpIHtcbiAgICBAYXBwbHkganVzdGlmeS1lbmQ7XG4gIH1cbn1cbiIsIi5tYWluIHtcbiAgJl9fY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDExNjZweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbiAgLmxlZnRfX2NvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgMTYwZGVnLFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLFxuICAgICAgdHJhbnNwYXJlbnRcbiAgICApO1xuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAYXBwbHkgYm9yZGVyLWItMiBib3JkZXItdHVycXVvaXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucmlnaHQge1xuICAgIHdpZHRoOiA5MyU7XG4gICAgYm94LXNoYWRvdzogMHB4IDIwcHggNDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cbiAgICAmX19jb250YWluZXIge1xuICAgICAgaDIge1xuICAgICAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBAYXBwbHkgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1sZyBiZy13aGl0ZSBweS02IHB4LTU7XG5cbiAgICAgIC5yaWdodF9faWNvbiB7XG4gICAgICAgIEBhcHBseSB0ZXh0LWxhZ29vbi01MDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLThweDtcbiAgICAgIH1cbiAgICAgIC5yaWdodF9fYXJyb3cge1xuICAgICAgICBAYXBwbHkgdGV4dC13aGl0ZTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci10dXJxdW9pc2UgYmctdHVycXVvaXNlIGJnLW9wYWNpdHktMTA7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHggdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgLnJpZ2h0X19pY29uIHtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgQGFwcGx5IGZpbGwtbGFnb29uLTUwIHRleHQtd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5yaWdodF9fYXJyb3cge1xuICAgICAgICAgIEBhcHBseSBmaWxsLXdoaXRlIHRleHQtdHVycXVvaXNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzNjZweCkge1xuICAgIC5qb2luLW5vdyB7XG4gICAgICBAYXBwbHkgcHgtMjA7XG5cbiAgICAgIC5yaWdodF9fY29udGVudCB7XG4gICAgICAgIHdpZHRoOiA0MjNweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIGlucHV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubGVmdCB7XG4gICAgaGVpZ2h0OiA2NDlweDtcblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMzg2cHg7XG4gICAgfVxuICB9XG4gIC5yaWdodCB7XG4gICAgaGVpZ2h0OiA2NDlweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiAtMjY1cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gIC5yaWdodF9faWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuZGV0YWlscyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbn1cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBAYXBwbHkgcm91bmRlZC1sZyBiZy1uLTIwIGhvdmVyOmJnLW4tMzA7XG59XG5tYWluIHtcbiAgZGlzcGxheTogZ3JpZDsgLy8gTGluZSAxXG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bzsgLy8gTGluZSAyXG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0NjVweCk7IC8vIExpbmUgM1xufVxuLmFjdGl2aXRpZXNfX3NpZGViYXIge1xuICBmbGV4LXNocmluazogMDtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICAgd2lkdGg6IDIyMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbmJvZHkuZGlzYWJsZS1zY3JvbGwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDEwcHg7XG59XG5ib2R5IHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG59XG5cbmJvZHkubm8tbmF2IHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuaHRtbCB7XG4gIHNjcm9sbC1wYWRkaW5nLXRvcDogNjBweDsgLyogaGVpZ2h0IG9mIHN0aWNreSBoZWFkZXIgKi9cbn1cbiIsIi5mb290ZXJfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTE2NnB4O1xuICBtYXJnaW46IGF1dG87XG5cbiAgLmZvb3Rlcl9fbGlua3Mge1xuICAgIGEge1xuICAgICAgQGFwcGx5IGJvcmRlci1iLTIgYm9yZGVyLXRyYW5zcGFyZW50IHRleHQtbi0yMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIEBhcHBseSBib3JkZXItYi0yIGJvcmRlci10dXJxdW9pc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZWxsaXBzaXMge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xufVxuLmVsbGlwc2lzX190aXRsZSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbi5lbGxpcHNpc19fdGl0bGUtLWhvdmVyIHtcbiAgQGFwcGx5IGludmlzaWJsZSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLWZ1bGwgei0yMCBtYXgtdy1tZCBzcGFjZS15LTEuNSByb3VuZGVkIGJnLWVnZ3NoZWxsIHAtNCB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW5vcm1hbCB0ZXh0LW4tNDAgb3BhY2l0eS0wIGR1cmF0aW9uLTIwMDtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYigwIDAgMCAvIDEwJSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBtYXgtaGVpZ2h0OiAxMjBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uZWxsaXBzaXM6aG92ZXIsXG4uZWxsaXBzaXNfX3RpdGxlOmhvdmVyLFxuLmJyZWFkY3J1bWJfX3RpdGxlOmhvdmVyIHtcbiAgLmVsbGlwc2lzX190aXRsZS0taG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1cHgpO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLmJyZWFkY3J1bWJfX3RpdGxlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuXG4vLyBhY3Rpdml0eSBkZXRhaWxcbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzBweCk7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLmFkZF9pbmRpY2F0b3Ige1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICB9XG4gIH1cbn1cblxuLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQgZGl2IHtcbiAgLmVkaXQtYnV0dG9uLFxuICAuZGVsZXRlLWJ1dHRvbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAvLyBvdXRsaW5lOiAxcHggc29saWQgcmVkICFpbXBvcnRhbnQ7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5lZGl0LWJ1dHRvbiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cblxuICAuZGVsZXRlLWJ1dHRvbiB7XG4gICAgb3JkZXI6IDE7XG4gIH1cblxuICAmOmhvdmVyIC5lZGl0LWJ1dHRvbixcbiAgJjpob3ZlciAuZGVsZXRlLWJ1dHRvbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLmVsZW1lbnRzLXN2ZyB7XG4gICAgQGFwcGx5IG1yLTEuNSB0ZXh0LXhsIHRleHQtYmx1ZWNvcmFsO1xuICB9XG59XG4uZGVzY3JpcHRpb24ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbn1cblxuLmVsZW1lbnRzLWRldGFpbCB7XG4gIEBhcHBseSBmbGV4IGZsZXgtY29sIHRleHQteHMgdGV4dC1uLTUwO1xuXG4gIC8vIHRhYmxlIHtcbiAgLy8gICBmb250LXNpemU6IGluaGVyaXQ7XG5cbiAgLy8gfVxuXG4gICYgKiB7XG4gICAgQGFwcGx5IGxlYWRpbmctNTtcbiAgfVxuXG4gIHRkOm50aC1jaGlsZCgxKSB7XG4gICAgQGFwcGx5IHRleHQtbi00MDtcbiAgICB3aWR0aDogMTAwcHg7XG4gIH1cbiAgJi53aWRlcjpub3QoLnNtYWxsKSB7XG4gICAgdGQ6bnRoLWNoaWxkKDEpIHtcbiAgICAgIEBhcHBseSB0ZXh0LW4tNDA7XG4gICAgICB3aWR0aDogMTkwcHg7XG4gICAgfVxuICB9XG5cbiAgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgICBAYXBwbHkgZmxleCBmbGV4LWNvbCBwbC0yIHRleHQteHMgdGV4dC1uLTUwO1xuICB9XG4gIC5tdWx0aWxpbmUge1xuICAgIEBhcHBseSBpdGVtcy1zdGFydDtcbiAgfVxuXG4gIHRkIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgdGFibGUgPiB0Ym9keSA+IHRyOm5vdCg6bGFzdC1jaGlsZCkgPiB0ZCB7XG4gICAgQGFwcGx5IHBiLTM7XG4gIH1cbn1cbi52YWx1ZSB7XG4gIEBhcHBseSBmbGV4IHNwYWNlLXgtMSB0ZXh0LW4tNTA7XG59XG4uY2F0ZWdvcnkge1xuICBAYXBwbHkgbWItMiB0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LW4tNTA7XG59XG4ubGFuZ3VhZ2Uge1xuICBAYXBwbHkgdy1bMzAwcHhdIHRleHQteHMgaXRhbGljIHRleHQtbi0zMCAgc206dy1hdXRvO1xufVxuLmRlc2NyaXB0aW9uLWNvbnRlbnQge1xuICBAYXBwbHkgdy1bMzAwcHhdIHNtOnctYXV0bztcbn1cbi50aXRsZS1ib3JkZXI6OmFmdGVyIHtcbiAgd2lkdGg6IDk1MHB4O1xuICBjb250ZW50OiAnJztcbiAgQGFwcGx5IGFic29sdXRlIHRvcC0yIGxlZnQtNCBoLXB4IGJnLW4tMzA7XG59XG4uZWxlbWVudHMtdGl0bGU6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIEBhcHBseSBoLXB4IGdyb3cgYmctbi0zMDtcbn1cbi50b3Age1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG5cbi5tb2RhbCB7XG4gIHA6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxufVxuIiwiLnNlY3Rpb24td3JhcHBlciB7XG4gIEBhcHBseSBteC0zIGJnLXBhcGVyIHNtOm14LTEwO1xuXG4gIC5zZXR0aW5nIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZzogMTZweCAwcHggMjRweDtcblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICBAYXBwbHkgcmVsYXRpdmUgcm91bmRlZC1sZyBiZy13aGl0ZSBwLTcgbWQ6cHktMTQgbWQ6cHgtMjA7XG4gICAgICBtYXgtaGVpZ2h0OiA2NXZoO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NDBweCkge1xuICAgICAgICBAYXBwbHkgcHgtMztcbiAgICAgIH1cblxuICAgICAgLnZ1ZV9fc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luOiA4cHggMHB4O1xuICAgICAgfVxuICAgICAgLnJlZ2lzdHJ5X19pbmZvIHtcbiAgICAgICAgQGFwcGx5IG15LTQgZmxleCBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLWIgYm9yZGVyLWItbi0yMDtcbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICBAYXBwbHkgdGV4dC14cyBsZWFkaW5nLTUgdGV4dC1uLTQwO1xuICAgICAgfVxuICAgICAgLnRleHQge1xuICAgICAgICBAYXBwbHkgbWItOCB0ZXh0LXNtO1xuICAgICAgfVxuICAgICAgbGFiZWwge1xuICAgICAgICBAYXBwbHkgdGV4dC14cyB0ZXh0LW4tNTA7XG4gICAgICB9XG4gICAgfVxuICAgIC5yZWdpc3RlciB7XG4gICAgICBAYXBwbHkgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLW4tMzAgcC00IHNtOnAtNjtcblxuICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgQGFwcGx5IGdyaWQgZ2FwLTMgc206Z2FwLTYgbGc6Z3JpZC1jb2xzLTI7XG5cbiAgICAgICAgLnRhZ19fY29ycmVjdCB7XG4gICAgICAgICAgQGFwcGx5IGFic29sdXRlIHJpZ2h0LTIgdG9wLTEwIGZsZXggaC01IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkIGJnLXNwcmluZy00MCB0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtd2hpdGU7XG4gICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudGFnX19pbmNvcnJlY3Qge1xuICAgICAgICAgIEBhcHBseSBhYnNvbHV0ZSByaWdodC0yIHRvcC0xMCBmbGV4IGgtNSBjdXJzb3ItcG9pbnRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZCBiZy1zYWxtb24tNTAgdGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LXdoaXRlO1xuICAgICAgICAgIHdpZHRoOiA2MXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudmVyaWZ5LWJ0biB7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgICAgQGFwcGx5IGZsZXggaC0xMCBqdXN0aWZ5LWNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgLnJlZ2lzdGVyX19pbnB1dCB7XG4gICAgICBAYXBwbHkgbXQtMiB3LWZ1bGwgYm9yZGVyIGJvcmRlci1uLTMwIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0zMDA7XG4gICAgICBwYWRkaW5nOiAxM3B4IDE2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTQwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICAgIH1cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG4gICAgICB9XG4gICAgICAmOmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIEBhcHBseSB0ZXh0LW4tNTA7XG4gICAgICB9XG4gICAgfVxuICAgIC5lcnJvcl9faW5wdXQge1xuICAgICAgQGFwcGx5IGJvcmRlciBib3JkZXItY3JpbXNvbi01MDtcbiAgICB9XG4gIH1cbn1cbi5zYXZlLWJ0biB7XG4gIEBhcHBseSBweC00O1xufVxuLmJ0bl9fYWN0aXZlIHtcbiAgQGFwcGx5IGZvbnQtYm9sZCB0ZXh0LXdoaXRlO1xufVxuIiwiLnNtb290aCB7XG4gIGFuaW1hdGlvbjogZmFkZUluQW5pbWF0aW9uIGVhc2UgMC4zcztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5BbmltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4iLCJib2R5IHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBAYXBwbHkgbWluLWgtc2NyZWVuIGJnLXBhcGVyO1xufVxuXG5hIHtcbiAgY29sb3I6IHJnYih2YXIoLS1ibHVlY29yYWwpKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiKHZhcigtLXNwcmluZy01MCkpO1xuICB9XG59XG5cbi5sZWZ0IHtcbiAgJl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgICB0ZXh0LXNoYWRvdzogNHB4IDRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgIH1cbiAgfVxufVxuXG5oMiB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ0MHB4KSB7XG4gICAgQGFwcGx5IHRleHQtaGVhZGluZy00O1xuICB9XG4gIEBhcHBseSB0ZXh0LWhlYWRpbmctNSBmb250LWJvbGQgdGV4dC1uLTUwIG1kOnRleHQtaGVhZGluZy0zO1xufVxuXG5oNCB7XG4gIEBhcHBseSB0ZXh0LWhlYWRpbmctNCBsZWFkaW5nLW5vcm1hbDtcbn1cbiIsIi8vIFR1cnF1b2lzZSBidXR0b25cbi5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdXRsaW5lOiBub25lO1xuICBAYXBwbHkgYmctdHVycXVvaXNlIHRleHQtbi01MDtcblxuICAmOmhvdmVyIHtcbiAgICBAYXBwbHkgYmctYmx1ZWNvcmFsO1xuICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xuXG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICB9XG4gIH1cbn1cblxuLmJ0bi1iYWNrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBAYXBwbHkgdy0yNCB0ZXh0LWJsdWVjb3JhbDtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xuICAgIH1cbiAgfVxufVxuXG4uYnRuLW5leHQge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAxM3B4IDI0cHg7XG4gIH1cbiAgQGFwcGx5IHctMzYgcHktMi41IHRleHQtbi01MCBzbTp3LTQwO1xuXG4gIHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEzcHg7XG4gICAgdHJhbnNpdGlvbjogMC4ycztcbiAgfVxufVxuXG4uZ2V0LXN0YXJ0ZWQtYnRuIHtcbiAgd2lkdGg6IDE4NXB4O1xufVxuXG4ucmVzZXQtYnRuIHtcbiAgQGFwcGx5IG10LTYgZmxleCBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlci1ub25lIGJnLXR1cnF1b2lzZSB0ZXh0LXNtIGZvbnQtYm9sZCB1cHBlcmNhc2UgdGV4dC1uLTUwIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0yMDAgaG92ZXI6YmctYmx1ZWNvcmFsIGhvdmVyOnRleHQtd2hpdGU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxNnB4IDk0cHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5yZXNldC1idG4ge1xuICAgIHBhZGRpbmc6IDE4cHggOTRweDtcbiAgfVxufVxuXG5zdmcge1xuICBoZWlnaHQ6IDFlbTtcbn1cblxuLnZycF9fd3JhcHBlciB7XG4gIHAge1xuICAgIEBhcHBseSB0ZXh0LXNtIGxlYWRpbmctbm9ybWFsO1xuICB9XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5idXR0b24sXG5idXR0b24ge1xuICBAYXBwbHkgZmxleCBjdXJzb3ItcG9pbnRlciBpdGVtcy1jZW50ZXIgdGV4dC14cyBsZWFkaW5nLW5vcm1hbCB0cmFja2luZy10aWdodDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cblxuLy8gdG9vbHRpcCBidXR0b25cbi50b29sdGlwLWJ0biB7XG4gIEBhcHBseSByZWxhdGl2ZSB0ZXh0LW4tMzA7XG5cbiAgYnV0dG9uIHtcbiAgICBAYXBwbHkgcm91bmRlZC0zeGwgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItbi0zMCBweS0xLjUgcHgtMi41O1xuICB9XG5cbiAgc3ZnIHtcbiAgICBAYXBwbHkgbXItMSB0ZXh0LXhzO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgQGFwcGx5IGFic29sdXRlIHRvcC1mdWxsIGxlZnQtMCBoaWRkZW4gdy1bMzUycHhdO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSk7XG4gICAgfVxuICAgIC5jb250ZW50IHtcbiAgICAgIEBhcHBseSBtdC02IHJvdW5kZWQgYmctZWdnc2hlbGwgdGV4dC1uLTUwO1xuICAgICAgcGFkZGluZzogMTZweCAzM3B4IDE2cHggMTZweDtcbiAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBAYXBwbHkgbWItMS41IHRleHQteHMgbGVhZGluZy1ub3JtYWw7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciAudG9vbHRpcC1idG5fX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJjpob3ZlciBidXR0b24ge1xuICAgIEBhcHBseSBib3JkZXItc3ByaW5nLTUwIHRleHQtc3ByaW5nLTUwO1xuICB9XG59XG5cbi8vIHByaW1hcnkgYnV0dG9uXG4ucHJpbWFyeS1idG4ge1xuICBAYXBwbHkgZ2FwLTEgcm91bmRlZCBiZy1ibHVlY29yYWwgcC0zIGZvbnQtYm9sZCB1cHBlcmNhc2UgdGV4dC13aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcblxuICAmLnNwYWNlIHtcbiAgICBAYXBwbHkgcHgtNjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIEBhcHBseSBiZy1uLTUwIHRleHQtd2hpdGU7XG4gIH1cblxuICBzdmcge1xuICAgIEBhcHBseSB0ZXh0LWJhc2U7XG4gIH1cbn1cblxuLy8gc2Vjb25kYXJ5IGJ1dHRvblxuLnNlY29uZGFyeS1idG4ge1xuICBAYXBwbHkgZ2FwLTEgZ2FwLXgtMSByb3VuZGVkIGJnLXdoaXRlIHAtMyB1cHBlcmNhc2UgdGV4dC1ibHVlY29yYWw7XG5cbiAgJi0tdG91Y2gge1xuICAgIEBhcHBseSBnYXAtMSBnYXAteC0xIHJvdW5kZWQgYmctd2hpdGUgcC0zIHVwcGVyY2FzZSB0ZXh0LWJsdWVjb3JhbDtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDEwcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIC5kcm9wZG93bl9fYXJyb3cge1xuICAgICAgZm9udC1zaXplOiA2cHg7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzO1xuICAgIH1cbiAgICBzdmcge1xuICAgICAgQGFwcGx5IHRleHQtYmFzZTtcbiAgICB9XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgQGFwcGx5IGJnLWJsdWVjb3JhbCB0ZXh0LXdoaXRlO1xuICB9XG5cbiAgc3ZnIHtcbiAgICBAYXBwbHkgdGV4dC1iYXNlO1xuICB9XG5cbiAgLmRyb3Bkb3duX19hcnJvdyB7XG4gICAgZm9udC1zaXplOiA2cHg7XG4gICAgdHJhbnNpdGlvbjogMC4ycztcbiAgfVxufVxuXG4vLyBwcmltYXJ5IG91dGxpbmUgYnV0dG9uXG4ucHJpbWFyeS1vdXRsaW5lLWJ0biB7XG4gIEBhcHBseSBqdXN0aWZ5LWNlbnRlciBnYXAtMSByb3VuZGVkLTN4bCBib3JkZXIgYm9yZGVyLXNwcmluZy01MCBweC0zLjUgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgdGV4dC1zcHJpbmctNTA7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSk7XG5cbiAgJjpob3ZlciB7XG4gICAgQGFwcGx5IGJnLXNwcmluZy01MCB0ZXh0LXdoaXRlO1xuICB9XG5cbiAgc3ZnIHtcbiAgICBAYXBwbHkgdGV4dC1iYXNlO1xuICB9XG59XG5cbi5naG9zdC1idG4ge1xuICBAYXBwbHkgdGV4dC14cyBmb250LWJvbGQgdXBwZXJjYXNlIHRleHQtbi00MDtcbiAgdHJhbnNpdGlvbjogMC40cztcblxuICAmOmhvdmVyIHtcbiAgICBAYXBwbHkgdGV4dC1ibHVlY29yYWw7XG4gIH1cbn1cblxuLnRhYi1idG4tYW5jaG9yIHtcbiAgQGFwcGx5IGN1cnNvci1kZWZhdWx0O1xufVxuXG4udGFiLWJ0biB7XG4gIEBhcHBseSBoLTkgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMjAgYmctd2hpdGUgcC0yIHRleHQteHMgdGV4dC1uLTQwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgQGFwcGx5IGJvcmRlci10dXJxdW9pc2UgYmctbi0xMCB0ZXh0LWJsdWVjb3JhbDtcbiAgfVxufVxuXG4uYWN0aXZlX190YWIge1xuICBAYXBwbHkgYm9yZGVyLXR1cnF1b2lzZSBiZy1uLTEwIHRleHQtYmx1ZWNvcmFsO1xufVxuXG4ucGFuZWwtYnRuIHtcbiAgQGFwcGx5IGgtMTAgc3BhY2UteC0xIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1uLTMwIGJnLWVnZ3NoZWxsIHB5LTMgcHgtMjtcbiAgd2lkdGg6IDQzcHg7XG5cbiAgJjpob3ZlciB7XG4gICAgQGFwcGx5IGJnLWJsdWVjb3JhbCB0ZXh0LXdoaXRlO1xuICB9XG5cbiAgLmRyb3Bkb3duX19hcnJvdyB7XG4gICAgZm9udC1zaXplOiA2cHg7XG4gICAgdHJhbnNpdGlvbjogMC4ycztcbiAgfVxufVxuIiwiLmhhbWJ1cmdlciB7XG4gIEBhcHBseSByZWxhdGl2ZSB6LWF1dG8gZmxleCBoLTExIHctMTEgY3Vyc29yLXBvaW50ZXIgZHVyYXRpb24tMzAwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZDtcbiAgei1pbmRleDogMTIwO1xuXG4gICYuYWN0aXZlIHtcbiAgICBzcGFuIHtcbiAgICAgIEBhcHBseSBiZy1uLTEwO1xuICAgIH1cbiAgfVxuXG4gIHNwYW4ge1xuICAgIEBhcHBseSBwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGgtMSB3LTEwIHJvdW5kZWQtbGcgZHVyYXRpb24tMzAwO1xuICB9XG4gIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICBib3R0b206IDE4cHg7XG4gICAgbGVmdDogMnB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG4gIH1cbiAgJi5hY3RpdmUge1xuICAgIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpICB0cmFuc2xhdGVaKDApO1xuICAgIH1cbiAgICBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjBweCk7XG4gICAgfVxuICAgIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCkgcm90YXRlKDMxNWRlZyk7XG4gICAgfVxuICB9XG4gIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgICB0b3A6IDE4cHg7XG4gICAgbGVmdDogMnB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNXB4KTtcbiAgfVxufVxuLmhhbWJ1cmdlci1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uaG9tZS1idXJnZXItbWVudS5hY3RpdmUge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIHRyYW5zbGF0ZTogLTM1MCUgLTE0MCU7XG4gIH1cbiAgdHJhbnNsYXRlOiAtNDkwJSAtOTAlO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgdHJhbnNsYXRlOiAtMzgwJSAtOTAlO1xuICB9XG59XG5cbiIsIi5pbnB1dCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDE0cHggMHB4IDE0cHggNTVweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBAYXBwbHkgaC0xNCBib3JkZXIgYm9yZGVyLW4tMzAgc206aC0xNjtcblxuICAmOmZvY3VzIHtcbiAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG4gIH1cblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgQGFwcGx5IGZvbnQtbm9ybWFsIHRleHQtbi00MDtcbiAgfVxuXG4gICY6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgICBAYXBwbHkgdGV4dC1uLTUwO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICBwYWRkaW5nOiAyMHB4IDBweCAyMHB4IDU1cHg7XG4gIH1cbn1cbi5lcnJvciB7XG4gIEBhcHBseSB0ZXh0LXNtIHRleHQtY3JpbXNvbi01MCBzbTp0ZXh0LWJhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmhhc19lcnJvciB7XG4gIC5mb3JtX19pbnB1dCB7XG4gICAgQGFwcGx5IGJvcmRlciBib3JkZXItY3JpbXNvbi01MDtcbiAgfVxufVxudGV4dGFyZWEuZm9ybV9faW5wdXQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50ZXh0LWFyZWEge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNjBweDtcbiAgcmVzaXplOiBub25lO1xufVxuLmZvcm1fX2lucHV0IHtcbiAgQGFwcGx5IG1iLTIgYm94LWJvcmRlciB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgdGV4dC1ibHVlY29yYWwgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIHBhZGRpbmc6IDEzcHggMCAxM3B4IDE2cHg7XG4gIH1cbiAgcGFkZGluZzogMTBweCAwIDEwcHggMTZweDtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGFwcGx5IHRleHQtc20gZm9udC1ub3JtYWwgdGV4dC1uLTQwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgQGFwcGx5IGJvcmRlciBib3JkZXItbi01MCBiZy1uLTEwO1xuICB9XG5cbiAgJjpmb2N1czo6cGxhY2Vob2xkZXIge1xuICAgIEBhcHBseSB0ZXh0LW4tNTA7XG4gIH1cbn1cbi5pbnB1dF9fZmllbGQge1xuICAubXVsdGlzZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkIHtcbiAgICBAYXBwbHkgYmctbi0yMCB0ZXh0LW4tNTA7XG4gIH1cblxuICAubXVsdGlzZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkLmlzLXBvaW50ZWQge1xuICAgIEBhcHBseSBiZy1uLTIwIHRleHQtbi01MDtcbiAgfVxuXG4gIC5tdWx0aXNlbGVjdC5pcy1hY3RpdmUge1xuICAgIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwO1xuICB9XG5cbiAgLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBAYXBwbHkgdy1bMzEwcHhdIG92ZXJmbG93LWhpZGRlbiB3aGl0ZXNwYWNlLW5vd3JhcCBwci0zIHRleHQtc20gdGV4dC1uLTQwIGR1cmF0aW9uLTMwMDtcbiAgfVxuXG4gIC5tdWx0aXNlbGVjdC1wbGFjZWhvbGRlcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIEBhcHBseSBhYnNvbHV0ZSByaWdodC0wIHRvcC0zIGgtNiB3LTcgYmctd2hpdGU7XG4gIH1cblxuICAubXVsdGlzZWxlY3QuaXMtb3BlbiB7XG4gICAgLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBhcHBseSB0ZXh0LW4tNTA7XG4gICAgfVxuICB9XG5cbiAgLm11bHRpc2VsZWN0LWRyb3Bkb3duIHtcbiAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwO1xuICB9XG5cbiAgLm11bHRpc2VsZWN0LWNhcmV0IHtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybCgnL2ltYWdlcy9kcm9wZG93bi1hcnJvdy5zdmcnKTtcbiAgICBtYXNrLWltYWdlOiB1cmwoJy9pbWFnZXMvZHJvcGRvd24tYXJyb3cuc3ZnJyk7XG4gIH1cblxuICAubXVsdGlzZWxlY3Qtc2VhcmNoIHtcbiAgICBAYXBwbHkgY3Vyc29yLXBvaW50ZXIgYm9yZGVyIGJvcmRlci1uLTMwIHB5LTIuNTtcbiAgfVxuXG4gIC5tdWx0aXNlbGVjdC1zZWFyY2g6Zm9jdXMge1xuICAgIEBhcHBseSBiZy1uLTEwO1xuICB9XG5cbiAgLm11bHRpc2VsZWN0LXNlYXJjaDpmb2N1cyArIC5tdWx0aXNlbGVjdC1wbGFjZWhvbGRlcjo6YWZ0ZXIge1xuICAgIEBhcHBseSBiZy1uLTEwO1xuICB9XG5cbiAgLnZ1ZV9fc2VsZWN0IHtcbiAgICBAYXBwbHkgbWItMiBib3JkZXIgYm9yZGVyLW4tMzAgdGV4dC1zbSBsZWFkaW5nLTYgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgICBwYWRkaW5nOiAxNnB4IDBweCAxNnB4IDU1cHg7XG4gICAgfVxuICAgIHBhZGRpbmc6IDEzcHggMHB4IDEzcHggNTVweDtcbiAgfVxufVxuLmVycm9yX2lucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QxMDAxZTtcbn1cblxuLnBhbmVsX19pbnB1dCB7XG4gIEBhcHBseSBib3gtYm9yZGVyIGgtMTAgdy1mdWxsIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1uLTMwIGJnLXBhcGVyIHB5LTIuNSBwbC03IHByLTMgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGFwcGx5IHRleHQteHMgZm9udC1ub3JtYWwgdGV4dC1uLTMwIGR1cmF0aW9uLTMwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgfVxuXG4gICY6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgICBAYXBwbHkgdGV4dC1uLTQwO1xuICB9XG59XG4uc2VhcmNoIHtcbiAgQGFwcGx5IHJlbGF0aXZlO1xuXG4gICZfX2lucHV0IHtcbiAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTMwIGJnLXRyYW5zcGFyZW50IG91dGxpbmUtbm9uZTtcbiAgICBwYWRkaW5nOiAxMHB4IDQycHggMTBweCAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIH1cbiAgc3ZnIHtcbiAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0zIHRvcC0zIHRleHQtYmFzZSB0ZXh0LW4tMzA7XG4gIH1cbn1cbi5yZXF1aXJlZC1pY29uIHtcbiAgQGFwcGx5IHJlbGF0aXZlIHRvcC0wLjUgdGV4dC1iYXNlIGxlYWRpbmctbm9uZSB0ZXh0LWNyaW1zb24tNTA7XG59XG4iLCIuaWF0aS1saXN0LXRhYmxlIHtcbiAgQGFwcGx5IHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1uLTIwIHRleHQtbGVmdDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNDVweCk7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBAYXBwbHkgdGFibGUgdy1mdWxsICBiZy13aGl0ZTtcblxuICAgIC8vIG1pbi13aWR0aDogODAwcHggIWltcG9ydGFudCA7XG4gIH1cbiAgdGJvZHkge1xuICAgIHRyIHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICAgICAgICBAYXBwbHkgYmctbi0xMDtcbiAgICAgIH1cbiAgICB9XG4gICAgdHI6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICB0ZCxcbiAgICAgIHRoIHtcbiAgICAgICAgQGFwcGx5IHJlbGF0aXZlO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgICAgQGFwcGx5IGFic29sdXRlIGxlZnQtMCBib3R0b20tMCBoLXB4IHctZnVsbCBtYXgtdy1mdWxsIGJnLW4tMjA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRkOmZpcnN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgQGFwcGx5IG1sLTY7XG4gICAgICB9XG4gICAgICB0aC5jaGVjay1jb2x1bW46YWZ0ZXIge1xuICAgICAgICBAYXBwbHkgLW1sLTY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGgge1xuICAgIEBhcHBseSBweS00IHB4LTYgYWxpZ24tdG9wIHRleHQteHMgdXBwZXJjYXNlIGxlYWRpbmctbm9ybWFsO1xuXG4gICAgc3ZnIHtcbiAgICAgIEBhcHBseSBtci0xIHRleHQteGwgdGV4dC1uLTMwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGFwcGx5IGZsZXg7XG4gICAgICBzdmcge1xuICAgICAgICBAYXBwbHkgdGV4dC1iYXNlIHRleHQtYmx1ZWNvcmFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICBAYXBwbHkgcmVsYXRpdmUgcHktNCBweC02IGFsaWduLXRvcCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZDtcbiAgfVxuXG4gIHRyLmFscmVhZHktcHVibGlzaGVkIHtcbiAgICB0ZCxcbiAgICB0aC5jaGVjay1jb2x1bW4ge1xuICAgICAgQGFwcGx5IHB0LTExO1xuICAgIH1cbiAgfVxuXG4gIC5oYXMtc3RhdHVzIHtcbiAgICB0ZCB7XG4gICAgICBAYXBwbHkgcHgtNiBwdC0xMSBwYi03O1xuICAgIH1cbiAgICB0aCB7XG4gICAgICBAYXBwbHkgcHgtNiBwdC0xMSBwYi03O1xuICAgIH1cbiAgfVxuXG4gIC5jaGVjay1jb2x1bW4gLmNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cbn1cblxuLnVwbG9hZC1saXN0LXRhYmxlIHtcbiAgLnVwbG9hZC1lcnJvciB7XG4gICAgQGFwcGx5IGJnLXJvc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBhcHBseSBiZy1yb3NlO1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAudXBsb2FkLWVycm9yLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBkaXYge1xuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgQGFwcGx5IGJvcmRlci1iIGJvcmRlci1iLW4tMjAgcGItNDtcbiAgICAgIH1cblxuICAgICAgdWwge1xuICAgICAgICBAYXBwbHkgbXQtNCBzcGFjZS15LTQgdGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LWJsdWVjb3JhbDtcbiAgICAgIH1cblxuICAgICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzZweDtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgIEBhcHBseSBib3JkZXItYiBib3JkZXItYi1uLTIwIHBiLTQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDhweDtcbiAgICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIEBhcHBseSBiZy1ibHVlY29yYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLnVwbG9hZC1lcnJvci1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNnB4O1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgc3ZnIHtcbiAgICAgIGZvbnQtc2l6ZTogNnB4O1xuICAgIH1cblxuICAgICYub3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG4jY2Ige1xuICB3aWR0aDogNjhweDtcbn1cblxuI3N0YXR1cyB7XG4gIHdpZHRoOiAxOTJweDtcbn1cblxuI3B1Ymxpc2gge1xuICB3aWR0aDogMjgwcHg7XG59XG5cbiNkYXRlIHtcbiAgd2lkdGg6IDE3M3B4O1xufVxuLmlhdGktbGlzdC10YWJsZSB7XG4gIHRyIHtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICB9XG4gIHRkOm50aC1jaGlsZCgxKSB7XG4gICAgbWF4LXdpZHRoOiAxNTBweCAhaW1wb3J0YW50O1xuXG4gICAgYSB7XG4gICAgICBtYXgtd2lkdGg6IDE0NXB4ICFpbXBvcnRhbnQ7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLmNoZWNrYm94IHtcbiAgQGFwcGx5IHJlbGF0aXZlIGJsb2NrIGN1cnNvci1wb2ludGVyIHNlbGVjdC1ub25lO1xuICAuY2hlY2ttYXJrIHtcbiAgICBAYXBwbHkgZmxleCBoLTQgdy00IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkIGJvcmRlci0yIGJvcmRlci1uLTIwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6IDAgM3B4IDNweCAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAYXBwbHkgbWItMC41IGhpZGRlbiBoLTIgdy1bNXB4XSByb3RhdGUtNDUgYm9yZGVyLXNwcmluZy01MDtcbiAgICB9XG4gIH1cbiAgaW5wdXQge1xuICAgIEBhcHBseSBhYnNvbHV0ZSBoLTAgdy0wIGN1cnNvci1wb2ludGVyIG9wYWNpdHktMDtcbiAgICAmOmNoZWNrZWQgfiAuY2hlY2ttYXJrIHtcbiAgICAgIEBhcHBseSBib3JkZXItc3ByaW5nLTUwO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIEBhcHBseSBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJjpob3ZlciBpbnB1dCB+IC5jaGVja21hcmsge1xuICAgIEBhcHBseSBib3JkZXItc3ByaW5nLTUwO1xuICB9XG59XG4vKipcbiAgTGFyYXZlbCBmb3JtIGRlc2lnblxuICovXG5mb3JtIHtcbiAgLmZvcm0tZmllbGQtZ3JvdXAge1xuICAgIEBhcHBseSByZWxhdGl2ZSBwLTM7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIEBhcHBseSBtYi02O1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkIHtcbiAgICAgIEBhcHBseSBwLTM7XG4gICAgICAuaGVscC10ZXh0IHtcbiAgICAgICAgQGFwcGx5IG10LTIgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGJ1dHRvbi5kZWxldGUtaXRlbSB7XG4gICAgQGFwcGx5IGFic29sdXRlIGgtOCB3LTggY3Vyc29yLXBvaW50ZXIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbCBiZy1uLTQwIC1pbmRlbnQtNDA7XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWFnZXMvdHJhc2hfZnVsbC5zdmcnKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0xLzIgdG9wLTEvMiBoLVsxOHB4XSB3LVsxOHB4XSAtdHJhbnNsYXRlLXgtMS8yIC10cmFuc2xhdGUteS0xLzI7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgQGFwcGx5IGJnLWJsdWVjb3JhbDtcbiAgICB9XG4gIH1cblxuICAuZm9ybS1maWVsZC1ncm91cC1vdXRlciAuZm9ybS1maWVsZCB7XG4gICAgQGFwcGx5IHB4LTM7XG4gIH1cblxuICAuZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgQGFwcGx5IG1iLTIgZmxleCBqdXN0aWZ5LWJldHdlZW47XG4gICAgbGFiZWwge1xuICAgICAgQGFwcGx5IHRleHQteHMgbGVhZGluZy1yZWxheGVkO1xuICAgIH1cbiAgICAucmVxdWlyZWQge1xuICAgICAgQGFwcGx5IGZvbnQtYm9sZCB0ZXh0LXNhbG1vbi01MDtcbiAgICB9XG4gIH1cbiAgaW5wdXRbdHlwZT0ndGV4dCddLFxuICBpbnB1dFt0eXBlPSdkYXRlJ10sXG4gIHRleHRhcmVhIHtcbiAgICBAYXBwbHkgbXQtMCBoLTEyIHctZnVsbCByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCBweC00IHB5LTIuNSB0ZXh0LXNtIGxlYWRpbmctbm9ybWFsIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0zMDA7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTQwO1xuICAgIH1cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbiAgICB9XG4gICAgJjpmb2N1czo6cGxhY2Vob2xkZXIge1xuICAgICAgQGFwcGx5IHRleHQtbi01MDtcbiAgICB9XG4gIH1cblxuICBpbnB1dFt0eXBlPSd0ZXh0J10sXG4gIGlucHV0W3R5cGU9J2RhdGUnXSB7XG4gICAgQGFwcGx5IGgtMTI7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIEBhcHBseSB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgcHgtNCBweS0zIHRleHQtc20gdGV4dC1uLTQwIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0zMDA7XG4gICAgJjpmb2N1cyB7XG4gICAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG4gICAgfVxuICB9XG4gIC5oZWxwIHtcbiAgICBAYXBwbHkgcmVsYXRpdmU7XG4gICAgJl9fdGV4dCB7XG4gICAgICBAYXBwbHkgaW52aXNpYmxlIGFic29sdXRlIHRvcC00IHotMjAgc3BhY2UteS0xLjUgcm91bmRlZCBiZy1lZ2dzaGVsbCBwLTQgdGV4dC1sZWZ0IHRleHQteHMgdGV4dC1uLTQwIG9wYWNpdHktMCBkdXJhdGlvbi0yMDA7XG4gICAgICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiKDAgMCAwIC8gMTAlKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICAgIH1cbiAgfVxuICAuaGVscDpob3ZlciB7XG4gICAgLmhlbHBfX3RleHQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbiAgLmFkZF9tb3JlIHtcbiAgICBAYXBwbHkgcmVsYXRpdmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0wIHRvcC0wIGgtMS8yIHctcHggYm9yZGVyLWwgYm9yZGVyLXNwcmluZy01MDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTIvNCBoLXB4IHctMy41IC10cmFuc2xhdGUteS0xLzIgYm9yZGVyLWIgYm9yZGVyLXNwcmluZy01MDtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcvaW1hZ2VzL2FkZC1tb3JlLWdyZWVuLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgfVxuICB9XG4gIC5zdWJlbGVtZW50IHtcbiAgICAmLmJvcmRlci1sID4gbGFiZWwge1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICAgIC5zdWJlbGVtZW50LFxuICAgIC5zdWJlbGVtZW50ICsgYnV0dG9uIHtcbiAgICAgIEBhcHBseSBtbC02O1xuICAgIH1cblxuICAgIC53cmFwcGVkLWNoaWxkLWJvZHkge1xuICAgICAgQGFwcGx5IHJlbGF0aXZlO1xuICAgICAgPiAuZGVsZXRlLXBhcmVudCB7XG4gICAgICAgIEBhcHBseSBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAubXVsdGktZm9ybTpvbmx5LW9mLXR5cGUgPiAuZGVsZXRlLXBhcmVudCxcbiAgICAud3JhcHBlZC1jaGlsZC1ib2R5Om9ubHktb2YtdHlwZSA+IC5kZWxldGUtcGFyZW50IHtcbiAgICAgIEBhcHBseSBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tZmllbGQtZ3JvdXA6b25seS1vZi10eXBlID4gLmRlbGV0ZS1pdGVtIHtcbiAgICBAYXBwbHkgaGlkZGVuO1xuICB9XG5cbiAgLyoqXG4gICogQ29uZGl0aW9uIHRvIHNob3cgYW5kIGRlbGV0ZSBjb2xsZWN0aW9uIGVycm9yIGluIGZvcm1cbiAgKi9cbiAgLmNvbGxlY3Rpb25fZXJyb3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubXVsdGktZm9ybSArIC5jb2xsZWN0aW9uX2Vycm9yLFxuICAuZm9ybS1maWVsZC1ncm91cCArIC5jb2xsZWN0aW9uX2Vycm9yLFxuICAud3JhcHBlZC1jaGlsZC1ib2R5ICsgLmNvbGxlY3Rpb25fZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8qKlxuICBTZWxlY3QgMiBmaWVsZFxuKi9cbnNwYW4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICAgIEBhcHBseSBoLTEyIHctZnVsbCByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCBweC00IHB5LTMgdGV4dC1zbSB0ZXh0LW4tNDAgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgIEBhcHBseSBwLTAgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbDtcbiAgICB9XG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gICAgICBAYXBwbHkgaC0xMTtcbiAgICB9XG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciBzcGFuIHtcbiAgICAgIEBhcHBseSBtci0yLjUgdGV4dC1zbTtcbiAgICB9XG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlciB7XG4gICAgICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tNDA7XG4gICAgfVxuICB9XG4gIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xuICAgIGNvbG9yOiAjMWYyOTM3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Y0ZjY7XG4gIH1cbiAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uW2FyaWEtc2VsZWN0ZWRdIHtcbiAgICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tNTA7XG4gIH1cbn1cbi5tYXgtdy1oYWxmIHtcbiAgbWF4LXdpZHRoOiA1MCU7XG59XG5cbi8qKlxuICBBY3Rpdml0eSBEZXRhaWwgUGFnZVxuKi9cbi5hY3Rpdml0aWVzIHtcbiAgQGFwcGx5IGZsZXggZ2FwLTUgeGw6Z2FwLTc7XG5cbiAgJl9fc2lkZWJhciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDI4MHB4O1xuXG4gICAgJi1pbm5lciB7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDUwcHgpO1xuICAgIH1cbiAgfVxuXG4gICZfX2NhcmQge1xuICAgIEBhcHBseSBmbGV4IGZsZXgtY29sIGJnLXdoaXRlIHRleHQtY2VudGVyIHRleHQteHMgdGV4dC1uLTQwO1xuICAgIHBhZGRpbmc6IDEzcHg7XG4gIH1cblxuICAucHJvZ3Jlc3Mge1xuICAgIEBhcHBseSBpdGVtcy1jZW50ZXI7XG4gICAgd2lkdGg6IDE1MXB4O1xuICAgIG1pbi1oZWlnaHQ6IDE3NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAwcHggMHB4IDhweDtcbiAgfVxuXG4gIC50YWItYnRuOmRpc2FibGVkIHtcbiAgICBAYXBwbHkgcG9pbnRlci1ldmVudHMtbm9uZSB0ZXh0LW4tMjA7XG5cbiAgICBzdmcge1xuICAgICAgQGFwcGx5IHRleHQtbi0yMDtcbiAgICB9XG4gIH1cbiAgLmhvdmVyLXRleHQge1xuICAgIHN2ZyB7XG4gICAgICBAYXBwbHkgdGV4dC1uLTMwO1xuICAgIH1cbiAgfVxufVxuLmVsZW1lbnRzLWNhcmQge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4ubWFudWFsLWltcG9ydCB7XG4gIC5oZWxwX190ZXh0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAzNTBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4ucmVnaXN0cnlfX2luZm8sXG4ucmVnaXN0ZXIsXG5hc2lkZSB7XG4gIC5oZWxwX190ZXh0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgIWltcG9ydGFudDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAyNTBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuLmltcG9ydC1hY3Rpdml0eSxcbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IHtcbiAgLmhlbHBfX3RleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSAhaW1wb3J0YW50O1xuICB9XG59XG5hc2lkZSB7XG4gIC5wcm9ncmVzcyB7XG4gICAgLmhlbHBfX3RleHQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NSUpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4uYWN0aXZpdGllc19fY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRhYi1idG4ge1xuICAuaGVscF9fdGV4dCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbi5hY3Rpdml0eS1kZWZhdWx0LXZhbHVlIHtcbiAgLmhlbHBfX3RleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLnBhZ2luYXRpb24ge1xuICBAYXBwbHkgcmVsYXRpdmUgei0wIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy13aGl0ZSB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW4tNDA7XG5cbiAgPiBhLFxuICA+IHNwYW4ge1xuICAgIEBhcHBseSBmbGV4IGJvcmRlci15IGJvcmRlci1sIGJvcmRlci1uLTIwIHB5LTEuNSBweC0zO1xuXG4gICAgJjpub3QoLnByZXYtYnRuKSB7XG4gICAgICBAYXBwbHkgYm9yZGVyLWwgYm9yZGVyLW4tMjA7XG4gICAgfVxuXG4gICAgJi5wcmV2LWJ0bixcbiAgICAmLm5leHQtYnRuIHtcbiAgICAgIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1uLTEwO1xuXG4gICAgICBzdmcge1xuICAgICAgICBAYXBwbHkgdGV4dC14cztcbiAgICAgIH1cbiAgICB9XG4gICAgJi5wcmV2LWJ0biB7XG4gICAgICBAYXBwbHkgcm91bmRlZC10bCByb3VuZGVkLWJsO1xuICAgIH1cblxuICAgICYubmV4dC1idG4ge1xuICAgICAgQGFwcGx5IHJvdW5kZWQtYnIgcm91bmRlZC10ciBib3JkZXItcjtcbiAgICB9XG5cbiAgICAmLnByZXYtYnRuIHN2ZyB7XG4gICAgICBAYXBwbHkgbXItMTtcbiAgICB9XG5cbiAgICAmLm5leHQtYnRuIHN2ZyB7XG4gICAgICBAYXBwbHkgbWwtMTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICYuY3VycmVudCB7XG4gICAgICBAYXBwbHkgYmctYmx1ZWNvcmFsIHRleHQtcGFwZXI7XG4gICAgfVxuICB9XG59XG4iLCIub3ZlcmxheSB7XG4gIEBhcHBseSBmaXhlZCBsZWZ0LTAgdG9wLTAgaC1mdWxsIHctZnVsbCBiZy1ibGFjaztcbiAgei1pbmRleDogMTAwO1xuICBvcGFjaXR5OiAwLjc7XG5cbiAgJl9faW5uZXIge1xuICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgaC1mdWxsIHctZnVsbDtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTIvNCB0b3AtMi80O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgLnNwaW5uZXIge1xuICAgICAgQGFwcGx5IGlubGluZS1ibG9jayBhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci1uLTEwIGJvcmRlci1vcGFjaXR5LTU7XG4gICAgICB3aWR0aDogNzVweDtcbiAgICAgIGhlaWdodDogNzVweDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxufVxuIiwiLnNlbGVjdDItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjdmOTtcbiAgfVxuXG4gIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMyYTJmMzA7XG4gICAgfVxuXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgfVxuICB9XG59XG5cbi5zZWxlY3QyLWRyb3Bkb3duIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTAwMDAwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcbiAgcGFkZGluZzogNnB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAmW2FyaWEtc2VsZWN0ZWRdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcbiAgLnNlbGVjdDItZHJvcGRvd24ge1xuICAgIGxlZnQ6IDA7XG5cbiAgICAmLS1hYm92ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIH1cblxuICAgICYtLWJlbG93IHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uc2VsZWN0Mi1zZWFyY2gtLWRyb3Bkb3duIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDRweDtcblxuICAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYTZiNWJhO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcblxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5bdHlwZT0nc2VhcmNoJ10ge1xuICBvdXRsaW5lLWNvbG9yOiAjYTZiNWJhO1xuICBvdXRsaW5lLW9mZnNldDogMDtcbn1cblxuLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XG4gIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgIGNvbG9yOiAjMTU1MzY2O1xuICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgfVxuXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgIH1cblxuICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICByaWdodDogMXB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDI2cHg7XG5cbiAgICAgIGIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgICBib3JkZXItY29sb3I6ICM4ODggdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogNXB4IDRweCAwIDRweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnNlbGVjdDItcmVzdWx0cyA+IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbnMge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcbiAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gICAgYiB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM4ODggdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItd2lkdGg6IDAgNHB4IDVweCA0cHg7XG4gICAgfVxuICB9XG5cbiAgJi5zZWxlY3QyLWNvbnRhaW5lci0tYWJvdmUge1xuICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICB9XG4gIH1cblxuICAmLnNlbGVjdDItY29udGFpbmVyLS1iZWxvdyB7XG4gICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLnNpZGViYXItb3Blbi1pY29uIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBoZWlnaHQ6IDQwcHg7XG4gIGxlZnQ6IDBweDtcbiAgYm90dG9tOiA1MHB4O1xuICB6LWluZGV4OiA2MDtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZGRlMDtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMTAwJSAxMDAlIDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICB9XG5cbiAgc3ZnIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAjMTU1MzY2O1xuICB9XG59XG4uZGV0YWlscy1zaWRlYmFyLWNsb3NlLWljb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAyODBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkZGUwO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICB6LWluZGV4OiAyMDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG5cbiAgc3ZnIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgY29sb3I6ICMxNTUzNjY7XG4gIH1cbn1cbi5zaWRlYmFyLWNsb3NlLWljb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAyNzVweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkZGUwO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICB6LWluZGV4OiAyMDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICAgbGVmdDogMjQwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGNvbG9yOiAjMTU1MzY2O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/
\ No newline at end of file
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2FwcC5jc3MiLCJtYXBwaW5ncyI6IkFBQUE7O0NBQUE7OztDQUFBOztBQUFBOzs7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQUFBOztFQUFBO0FBQUE7O0FBQUE7Ozs7O0NBQUE7O0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtLQUFBO0VBQUE7QUFBQTs7QUFBQTs7O0NBQUE7O0FBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7Ozs7Q0FBQTs7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBO0VBQUE7VUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBOzs7Ozs7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7O0VBQUE7QUFBQTs7QUFBQTs7O0NBQUE7O0FBQUE7Ozs7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBOztFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBO0VBQUE7QUFBQTs7QUFBQTs7OztDQUFBOztBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7Ozs7Q0FBQTs7QUFBQTs7Ozs7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBOztFQUFBO0FBQUE7O0FBQUE7OztDQUFBOztBQUFBOzs7O0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBOztDQUFBOztBQUFBO0VBQUE7QUFBQTs7QUFBQTs7Q0FBQTs7QUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7O0VBQUE7QUFBQTs7QUFBQTs7O0NBQUE7O0FBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBOzs7Q0FBQTs7QUFBQTtFQUFBO0VBQUE7QUFBQTs7QUFBQTs7Q0FBQTs7QUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7Ozs7Ozs7Ozs7Ozs7RUFBQTtBQUFBOztBQUFBO0VBQUE7RUFBQTtBQUFBOztBQUFBO0VBQUE7QUFBQTs7QUFBQTs7O0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7RUFBQTtBQUFBOztBQUFBOzs7Q0FBQTs7QUFBQTtFQUFBO0VBQUE7QUFBQTs7QUFBQTs7RUFBQTtFQUFBO0FBQUE7O0FBQUE7O0NBQUE7O0FBQUE7O0VBQUE7QUFBQTs7QUFBQTs7Q0FBQTtBQUFBO0VBQUE7QUFBQTs7QUFBQTs7OztDQUFBOztBQUFBOzs7Ozs7OztFQUFBO0VBQUE7QUFBQTs7QUFBQTs7Q0FBQTs7QUFBQTs7RUFBQTtFQUFBO0FBQUE7O0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUNBQTtFQUFBO0FBQUE7QUFBQTs7RUFBQTtJQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0lBQUE7RUFBQTtBQUFBO0FBQUE7O0VBQUE7SUFBQTtFQUFBO0FBQUE7QUFBQTs7RUFBQTtJQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0lBQUE7RUFBQTtBQUFBO0FDQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0lBQUE7RUFBQTtBQUFBO0FBQUE7O0VBQUE7SUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO1VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQ0FBO0VBQ0U7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUVBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtBQ1pGOztBQ3pEQTtFQUNFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFRDRERjtBQUNGO0FDMURBO0VBQ0U7RUFDQTtBRDRERjs7QUMxREE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFBQTtFQUNBO0FENkRGOztBQzFERTtFQUFBO0VBQUE7RUFDQTtBQURB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SEY7SUFJSTtFUnFxQko7QUFDRjtBUW5xQk07RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFDQTtFQUNBO0FBRkE7QUFNQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFJSjtFQUNFO0FSbXFCSjtBUS9wQkk7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQU1GO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7QUFEQTtBQUlFO0VBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQTtFQUFBO0FBQUE7O0FBTUY7RUFBQTtFQUFBO09BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0U7RUFBQTtFQUFBO09BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUNBO0FBREE7QUFFQTtFQUNFO0VBQ0E7QVI2cEJOO0FRMXBCTTtFQUFBO0VBQUE7QUFBQTtBQUlGO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUlBO0VBQUE7RUFBQTtBQUFBO0FBR0Y7RUFDRTtFQUNBO0FSMHBCSjs7QVFwcEJFO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFDQTtBQURBO0FBSUU7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQTtFQUFBO0FBQUE7O0FBS0Y7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFDQTtBQURBO0FBSUU7RUFBQTtFQUFBO0FBQUE7O0FBS0Y7RUFBQTtBQUFBOztBQUlBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7QUFEQTtBQUlFO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBS0Y7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTs7QUFJ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QUFBO0VBQUE7QUFBQTtBQUdFO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7QUFEQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7QUFEQTtBQUtBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0FBQUE7O0FBSUY7RUFBQTtBQUFBO0FBR0U7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFDQTtFQUNBO0FBRkE7QUFLQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7O0FBSUY7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQzNKQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFDQTtBQURBO0FBR0E7RUFKRjtJQUtJO0lBQ0E7RVhxa0NGO0FBQ0Y7QVdsa0NJO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQU1FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFBQTtBWGlrQ1I7QVczakNROztFQUFBO0FBQUE7QUFDQTs7RUFDRTtFQUNBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QVhpa0NWO0FXN2pDUTtFQUFBO0FBQUE7QUFHQTtFQUFBO0FBQUE7QUFNSjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0U7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFJQTtFQUFBO0FBQUE7QUFFRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFNSjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBTUU7O0VBQUE7QUFBQTtBQU1BO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUdBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUlKO0VBQ0U7QVhtakNKOztBVzdpQ0k7RUFBQTtFQUFBO0FBQUE7QUFHRTtFQUFBO0VBQUE7QUFBQTtBQUdGO0VBQ0U7QVhnakNOO0FXNWlDRTtFQUNFO0FYOGlDSjtBVzFpQ1E7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0Y7RUFDRTtFQUNBO0FYMmlDUjtBV3hpQ1U7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQUE7QVgwaUNWO0FXcmlDSTtFQUNFO0FYdWlDTjtBV25pQ0U7RUFDRTtFQUNBO0VBQ0E7QVhxaUNKO0FXbmlDSTtFQUNFO0FYcWlDTjtBV2xpQ0k7RUFDRTtBWG9pQ047O0FXL2hDQTtFQUNFO0FYa2lDRjs7QVcvaENBO0VBQ0U7QVhraUNGOztBVy9oQ0E7RUFDRTtBWGtpQ0Y7O0FXL2hDQTtFQUNFO0FYa2lDRjs7QVcvaENFO0VBQ0U7QVhraUNKO0FXaGlDRTtFQUNFO0FYa2lDSjtBV2hpQ0k7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FYa2lDTjs7QVkvc0NFO0VBQUE7RUFBQTtFQUFBO0VBQUE7S0FBQTtVQUFBO0FBQUE7QUFFRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUNBO0FBREE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FacXRDTjtBWWp0Q0k7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFFRTtFQUFBO0VBQUE7QUFBQTtBQUVFO0VBQUE7QUFBQTtBQUtKO0VBQUE7RUFBQTtBQUFBOztBQUdKOztFQUFBO0FBR0E7RUEwSEU7O0dBQUE7QVo2bENGO0FZcnRDSTtFQUFBO0VBQUE7QUFBQTtBQUVFO0VBQUE7QUFBQTtBQUlBO0VBQUE7QUFBQTtBQUVFO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUtKO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0Fad3RDTjtBWXJ0Q007RUFBQTtFQUFBO0FBQUE7QUFLRjtFQUFBO0VBQUE7QUFBQTtBQUlBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFFRTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0E7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQU1GOzs7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFFRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTs7O0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUdBOzs7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFHQTtFQUFBO0VBQUE7QUFBQTtBQUFBOzs7RUFBQTtFQUFBO0FBQUE7QUFNRjs7RUFBQTtBQUFBO0FBSUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBRUU7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFJRjtFQUFBO0FBQUE7QUFFRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQ0E7RUFDQTtBQUZBO0FBTUY7RUFDRTtFQUNBO0VBQ0E7QVp3dENOO0FZcHRDSTtFQUFBO0FBQUE7QUFDQTtFQUNFO0VBQ0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBWnd0Q047QVl4dENNO0VBQUE7QUFBQTtBQUVGO0VBQ0U7RUFDQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBWnd0Q047QVlydENJO0VBQ0U7RUFDQTtFQUNBO0FadXRDTjtBWW50Q0k7RUFDRTtBWnF0Q047QVlqdENNOztFQUFBO0FBQUE7QUFJQTtFQUFBO0FBQUE7QUFFRTtFQUFBO0FBQUE7QUFLRjs7RUFBQTtBQUFBO0FBS0Y7RUFBQTtBQUFBO0FBTUY7RUFDRTtBWjhzQ0o7QVkzc0NFOzs7RUFHRTtBWjZzQ0o7O0FZenNDQTs7Q0FBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0FaNHNDRjtBWTFzQ0k7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFFRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUE7QUFHQTtFQUFBO0FBQUE7QUFHQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0E7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0o7RUFDRTtFQUNBO0FaNnNDSjtBWTFzQ0k7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBOztBQUdKO0VBQ0U7QVo2c0NGOztBWTFzQ0E7O0NBQUE7QUFJRTtFQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0lBQUE7RUFBQTtBQUFBO0FBRUE7RUFDRTtFQUNBO0FaNnNDSjtBWTNzQ0k7RUFDRTtBWjZzQ047QVl4c0NJO0VBREY7SUFFSTtFWjJzQ0o7QUFDRjtBWXZzQ0k7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFDQTtBQURBO0FBS0E7RUFBQTtFQUNBO0VBQ0E7RUFDQTtBQUhBO0FBT0E7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUdFO0VBQUE7RUFBQTtBQUFBO0FBS0E7RUFBQTtFQUFBO0FBQUE7O0FBS0o7RUFERjtJQUVJO0lBQ0E7RVpxc0NGO0FBQ0Y7O0FZanNDSTtFQURGO0lBRUk7SUFDQTtFWnFzQ0o7QUFDRjs7QVk5ckNFOzs7RUFDRTtBWm1zQ0o7QVlsc0NJO0VBRkY7OztJQUdJO0lBQ0E7RVp1c0NKO0FBQ0Y7O0FZbHNDRTs7RUFDRTtBWnNzQ0o7O0FZanNDSTtFQUNFO0Fab3NDTjtBWWxzQ007RUFIRjtJQUlJO0VacXNDTjtBQUNGOztBWWpzQ0E7RUFDRTtBWm9zQ0Y7O0FZanNDRTtFQUNFO0Fab3NDSjtBWW5zQ0k7RUFGRjtJQUdJO0Vac3NDSjtBQUNGOztBWWxzQ0U7RUFDRTtBWnFzQ0o7O0FhLytDRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUU7O0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0FBQUE7QUFHRTs7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUFBOztFQUFBO0FBQUE7QUFLQTs7O0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBR0U7OztFQUFBO0VBQUE7QUFBQTtBQUlGOztFQUFBO0VBQUE7QUFBQTtBQUlBOztFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUE7O0VBQUE7QUFBQTtBQUlBOztFQUFBO0FBQUE7QUFLQTs7O0VBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQTs7QUNwQ0o7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUNBO0VBQ0E7QUFGQTtBQUtFO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQTtFQUFBO0VBQUE7RUFDQTtBQURBO0FBSUU7RUFBQTtBQUFBO0FBQUE7O0VBQUE7SUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO1VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUNBO0VBQ0E7RUFDQTtBQUhBOztBQ2ROO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZmlqREY7QWUvaURFO0VBQ0U7QWZpakRKO0FlOWlERTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtPQUFBO0FmZ2pESjtBZTlpREk7RUFDRTtBZmdqRE47QWU3aURJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWYraUROOztBZTFpREE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FmNmlERjs7QWUxaURBO0VBQ0U7RUFDQTtFQUNBO09BQUE7QWY2aURGO0FlM2lERTtFQUNFO0FmNmlESjs7QWV4aURFO0VBQ0U7QWYyaURKO0FlemlESTtFQUNFO0VBQ0E7RUFDQTtBZjJpRE47QWV4aURJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWYwaUROOztBZXJpREE7RUFDRTtFQUNBO0Fmd2lERjtBZXRpREU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0Fmd2lESjtBZXRpREk7RUFDRTtBZndpRE47O0FlbmlEQTtFQUNFO0VBQ0E7QWZzaURGOztBZW5pREE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0Fmc2lERjs7QWVqaURJO0VBQ0U7RUFDQTtBZm9pRE47QWVqaURJO0VBQ0U7RUFDQTtFQUNBO0FmbWlETjtBZWhpREk7RUFDRTtBZmtpRE47QWUvaERJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZmlpRE47QWUvaERNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWZpaURSO0FlN2hERTtFQUNFO0VBQ0E7QWYraERKOztBZXpoREk7RUFDRTtFQUNBO0FmNGhETjtBZXZoREk7RUFDRTtFQUNBO0FmeWhETjtBZXBoREk7RUFDRTtFQUNBO0Fmc2hETjs7QWdCaHNEQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBaEJtc0RGO0FnQmxzREU7RUFiRjtJQWNJO0VoQnFzREY7QUFDRjtBZ0Juc0RFO0VBQ0U7QWhCcXNESjtBZ0Jsc0RFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWhCb3NESjs7QWdCanNEQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWhCb3NERjtBZ0Jsc0RFO0VBQ0U7RUFDQTtBaEJvc0RKOztBZ0Jqc0RBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBaEJvc0RGO0FnQmxzREU7RUFiRjtJQWNJO0lBQ0E7RWhCcXNERjtBQUNGO0FnQm5zREU7RUFDRTtFQUNBO0FoQnFzREo7QUp2d0RBO0VBQUE7Q3FCQUE7QXJCQUE7RUFBQTtDcUJBQTtBckJBQTtFQUFBO0NxQkFBO0FyQkFBO0VBQUE7Q3FCQUE7QXJCQUE7RUFBQTtDcUJBQTtBckJBQTtFQUFBO0NxQkFBO0FyQkFBO0VBQUE7Q3FCQUE7QXJCQUE7RUFBQTtDcUJBQTtBckJBQTtFQUFBLHVCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHVCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLG1CcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLG1CcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLG1CcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLG1CcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHNCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHNCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLGlCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLGlCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHFCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLHFCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLCtCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBLCtCcUJBQTtFckJBQTtDcUJBQTtBckJBQTtFQUFBO0NxQkFBO0FyQkFBO0VBQUEsdUJxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUEsbUJxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUEsbUJxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUEsbUJxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUEsZ0NxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUEscUJxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUEscUJxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUEscUJxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUEscUJxQkFBO0VyQkFBO0NxQkFBO0FyQkFBO0VBQUE7Q3FCQUE7QXJCQUE7RUFBQSxzQnFCQUE7RXJCQUE7Q3FCQUE7QXJCQUE7RUFBQTtDcUJBQTtBckJBQTs7RUFBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBLG9CcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQSx3QnFCQUE7SXJCQUEsK0RxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLGdDcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSwrQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUEscUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLG9CcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxrQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEsb0JxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLG1CcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxvQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEsc0JxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLHNCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxxQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEscUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBLGtCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQSxnQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEsbUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBO0NBQUE7QXJCQUE7O0VBQUE7SUFBQSxnQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUEsNkJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLDRCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQSxtQnFCQUE7SXJCQUE7R3FCQUE7Q0FBQTtBckJBQTs7RUFBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBLGtCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxxQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7O0VyQkFBO0lBQUE7R3FCQUE7Q0FBQTtBckJBQTs7RUFBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBLGtCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQTtHcUJBQTs7RXJCQUE7SUFBQSx3QnFCQUE7SXJCQUEsd0RxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLHFCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxrQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEscUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBLHNCcUJBQTtJckJBQTtHcUJBQTs7RXJCQUE7SUFBQSxtQnFCQUE7SXJCQUE7R3FCQUE7O0VyQkFBO0lBQUEscUJxQkFBO0lyQkFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBOztFckJBQTtJQUFBO0dxQkFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3RhaWx3aW5kY3NzL2Jhc2UuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy90YWlsd2luZGNzcy9jb21wb25lbnRzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdGFpbHdpbmRjc3MvdXRpbGl0aWVzLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvYXBwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2xheW91dHMvX2hlYWRlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9sYXlvdXRzL19tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2xheW91dHMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9sYXlvdXRzL19hY3Rpdml0eS5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9sYXlvdXRzL19zZXR0aW5nX3BhZ2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvbGF5b3V0cy9fd2VicG9ydGFscGFnZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX2J1dHRvbi5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX2hhbWJ1cmdlci5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX2lucHV0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2NvbXBvbmVudC9fdGFibGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvY29tcG9uZW50L19mb3Jtcy5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL3Nhc3MvY29tcG9uZW50L19vdmVybGF5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2NvbXBvbmVudC9fc2VsZWN0Mi5zY3NzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvc2Fzcy9jb21wb25lbnQvX3NpZGViYXItaWNvbi5zY3NzIiwid2VicGFjazovLy88bm8gc291cmNlPiJdLCJzb3VyY2VzQ29udGVudCI6WyJAdGFpbHdpbmQgYmFzZTtcbiIsIkB0YWlsd2luZCBjb21wb25lbnRzO1xuIiwiQHRhaWx3aW5kIHV0aWxpdGllcztcbiIsIjpyb290IHtcbiAgLS1ibGFjazogMCwgMCwgMDtcbiAgLS13aGl0ZTogMjU1LCAyNTUsIDI1NTtcbiAgLS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgLy8gTmV1dHJhbHNcbiAgLS1uLTA6IDI1NSwgMjU1LCAyNTU7XG4gIC0tbi0xMDogMjQxLCAyNDcsIDI0OTtcbiAgLS1uLTIwOiAyMTMsIDIyMCwgMjIyO1xuICAtLW4tMzA6IDE2NiwgMTgxLCAxODY7XG4gIC0tbi00MDogMTA0LCAxMjEsIDEyNjtcbiAgLS1uLTUwOiA0MiwgNDcsIDQ4O1xuXG4gIC8vIFByaW1hcnkgY29sb3JzXG4gIC0tdHVycXVvaXNlOiA2LCAyMTksIDIyODtcbiAgLS1ibHVlY29yYWw6IDIxLCA4MywgMTAyO1xuXG4gIC0tYmx1ZWNvcmFsLTQwOiA2MCwgMTEyLCAxMjg7XG4gIC0tYmx1ZWNvcmFsLTUwOiAyMSwgODMsIDEwMjtcblxuICAvLyBTZWNvbmRhcnkgY29sb3JzXG4gIC8vIENhbWVsXG4gIC0tY2FtZWwtMTA6IDI1MiwgMjM5LCAyMjg7XG4gIC0tY2FtZWwtMjA6IDI0OSwgMjE5LCAxOTM7XG4gIC0tY2FtZWwtMzA6IDI0OCwgMjA3LCAxNzM7XG4gIC0tY2FtZWwtNDA6IDI0NiwgMTk1LCAxNTI7XG4gIC0tY2FtZWwtNTA6IDI0NCwgMTgzLCAxMzI7XG4gIC8vIFRlYWxcbiAgLS10ZWFsLTEwOiAyMzEsIDI0MywgMjQxO1xuICAtLXRlYWwtMjA6IDIxNSwgMjM1LCAyMzI7XG4gIC0tdGVhbC0zMDogMTk1LCAyMjQsIDIyMDtcbiAgLS10ZWFsLTQwOiAxNzUsIDIxNCwgMjA5O1xuICAtLXRlYWwtNTA6IDEzNSwgMTk0LCAxODY7XG4gIC8vIFNwcmluZ1xuICAtLXNwcmluZy0xMDogMTc4LCAyMjEsIDIxMTtcbiAgLS1zcHJpbmctMjA6IDEzOSwgMjA0LCAxODk7XG4gIC0tc3ByaW5nLTMwOiAxMDAsIDE4NywgMTY3O1xuICAtLXNwcmluZy00MDogNjIsIDE3MCwgMTQ1O1xuICAtLXNwcmluZy01MDogMjMsIDE1MywgMTIzO1xuICAvLyBMYWdvb25cbiAgLS1sYWdvb24tMTA6IDIwOSwgMjM4LCAyNDA7XG4gIC0tbGFnb29uLTIwOiAxNzgsIDIyNywgMjI5O1xuICAtLWxhZ29vbi0zMDogMTM5LCAyMTMsIDIxNjtcbiAgLS1sYWdvb24tNDA6IDEwMSwgMjAwLCAyMDQ7XG4gIC0tbGFnb29uLTUwOiAyNCwgMTcyLCAxNzg7XG4gIC8vIFNhbG1vblxuICAtLXNhbG1vbi0xMDogMjU1LCAyMjcsIDIyNDtcbiAgLS1zYWxtb24tMjA6IDI1NSwgMjA4LCAyMDM7XG4gIC0tc2FsbW9uLTMwOiAyNTUsIDE4NCwgMTc3O1xuICAtLXNhbG1vbi00MDogMjU1LCAxNjEsIDE1MjtcbiAgLS1zYWxtb24tNTA6IDI1NSwgMTE0LCAxMDA7XG4gIC8vIExhdmVuZGVyXG4gIC0tbGF2ZW5kZXItMTA6IDIzNywgMjI2LCAyNTE7XG4gIC0tbGF2ZW5kZXItMjA6IDIyNSwgMjA3LCAyNDg7XG4gIC0tbGF2ZW5kZXItMzA6IDIxMCwgMTgyLCAyNDQ7XG4gIC0tbGF2ZW5kZXItNDA6IDE5NiwgMTU4LCAyNDA7XG4gIC0tbGF2ZW5kZXItNTA6IDE2NiwgMTEwLCAyMzM7XG4gIC0tbGF2ZW5kZXItNjA6IDI0NiwgMjQwLCAyNTU7XG4gIC8vIENyaW1zb25cbiAgLS1jcmltc29uLTEwOiAyNTUsIDI0OCwgMjQ3O1xuICAtLWNyaW1zb24tMjA6IDI1MCwgMjEzLCAyMTU7XG4gIC0tY3JpbXNvbi0zMDogMjQxLCAxNTUsIDE2MDtcbiAgLS1jcmltc29uLTQwOiAyMjcsIDc3LCA5MTtcbiAgLS1jcmltc29uLTUwOiAyMDksIDAsIDMwO1xuXG4gIC8vIFBhc3RlbCBjb2xvcnNcbiAgLS1lZ2dzaGVsbDogMjU1LCAyNTMsIDIzMTtcbiAgLS1taW50OiAyMzgsIDI0OSwgMjQ1O1xuICAtLXJvc2U6IDI1NSwgMjQxLCAyNDA7XG4gIC0tcGFwZXI6IDI0NiwgMjQ3LCAyNTI7XG59XG4iLCJAdGFpbHdpbmQgYmFzZTtcbkB0YWlsd2luZCBjb21wb25lbnRzO1xuQHRhaWx3aW5kIHV0aWxpdGllcztcbjpyb290IHtcbiAgLS1ibGFjazogMCwgMCwgMDtcbiAgLS13aGl0ZTogMjU1LCAyNTUsIDI1NTtcbiAgLS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG4gIC0tbi0wOiAyNTUsIDI1NSwgMjU1O1xuICAtLW4tMTA6IDI0MSwgMjQ3LCAyNDk7XG4gIC0tbi0yMDogMjEzLCAyMjAsIDIyMjtcbiAgLS1uLTMwOiAxNjYsIDE4MSwgMTg2O1xuICAtLW4tNDA6IDEwNCwgMTIxLCAxMjY7XG4gIC0tbi01MDogNDIsIDQ3LCA0ODtcbiAgLS10dXJxdW9pc2U6IDYsIDIxOSwgMjI4O1xuICAtLWJsdWVjb3JhbDogMjEsIDgzLCAxMDI7XG4gIC0tYmx1ZWNvcmFsLTQwOiA2MCwgMTEyLCAxMjg7XG4gIC0tYmx1ZWNvcmFsLTUwOiAyMSwgODMsIDEwMjtcbiAgLS1jYW1lbC0xMDogMjUyLCAyMzksIDIyODtcbiAgLS1jYW1lbC0yMDogMjQ5LCAyMTksIDE5MztcbiAgLS1jYW1lbC0zMDogMjQ4LCAyMDcsIDE3MztcbiAgLS1jYW1lbC00MDogMjQ2LCAxOTUsIDE1MjtcbiAgLS1jYW1lbC01MDogMjQ0LCAxODMsIDEzMjtcbiAgLS10ZWFsLTEwOiAyMzEsIDI0MywgMjQxO1xuICAtLXRlYWwtMjA6IDIxNSwgMjM1LCAyMzI7XG4gIC0tdGVhbC0zMDogMTk1LCAyMjQsIDIyMDtcbiAgLS10ZWFsLTQwOiAxNzUsIDIxNCwgMjA5O1xuICAtLXRlYWwtNTA6IDEzNSwgMTk0LCAxODY7XG4gIC0tc3ByaW5nLTEwOiAxNzgsIDIyMSwgMjExO1xuICAtLXNwcmluZy0yMDogMTM5LCAyMDQsIDE4OTtcbiAgLS1zcHJpbmctMzA6IDEwMCwgMTg3LCAxNjc7XG4gIC0tc3ByaW5nLTQwOiA2MiwgMTcwLCAxNDU7XG4gIC0tc3ByaW5nLTUwOiAyMywgMTUzLCAxMjM7XG4gIC0tbGFnb29uLTEwOiAyMDksIDIzOCwgMjQwO1xuICAtLWxhZ29vbi0yMDogMTc4LCAyMjcsIDIyOTtcbiAgLS1sYWdvb24tMzA6IDEzOSwgMjEzLCAyMTY7XG4gIC0tbGFnb29uLTQwOiAxMDEsIDIwMCwgMjA0O1xuICAtLWxhZ29vbi01MDogMjQsIDE3MiwgMTc4O1xuICAtLXNhbG1vbi0xMDogMjU1LCAyMjcsIDIyNDtcbiAgLS1zYWxtb24tMjA6IDI1NSwgMjA4LCAyMDM7XG4gIC0tc2FsbW9uLTMwOiAyNTUsIDE4NCwgMTc3O1xuICAtLXNhbG1vbi00MDogMjU1LCAxNjEsIDE1MjtcbiAgLS1zYWxtb24tNTA6IDI1NSwgMTE0LCAxMDA7XG4gIC0tbGF2ZW5kZXItMTA6IDIzNywgMjI2LCAyNTE7XG4gIC0tbGF2ZW5kZXItMjA6IDIyNSwgMjA3LCAyNDg7XG4gIC0tbGF2ZW5kZXItMzA6IDIxMCwgMTgyLCAyNDQ7XG4gIC0tbGF2ZW5kZXItNDA6IDE5NiwgMTU4LCAyNDA7XG4gIC0tbGF2ZW5kZXItNTA6IDE2NiwgMTEwLCAyMzM7XG4gIC0tbGF2ZW5kZXItNjA6IDI0NiwgMjQwLCAyNTU7XG4gIC0tY3JpbXNvbi0xMDogMjU1LCAyNDgsIDI0NztcbiAgLS1jcmltc29uLTIwOiAyNTAsIDIxMywgMjE1O1xuICAtLWNyaW1zb24tMzA6IDI0MSwgMTU1LCAxNjA7XG4gIC0tY3JpbXNvbi00MDogMjI3LCA3NywgOTE7XG4gIC0tY3JpbXNvbi01MDogMjA5LCAwLCAzMDtcbiAgLS1lZ2dzaGVsbDogMjU1LCAyNTMsIDIzMTtcbiAgLS1taW50OiAyMzgsIDI0OSwgMjQ1O1xuICAtLXJvc2U6IDI1NSwgMjQxLCAyNDA7XG4gIC0tcGFwZXI6IDI0NiwgMjQ3LCAyNTI7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC53cmFwcGVyOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDI5MnB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWFnZXMvbWFycXVlLXdoaXRlLnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTYuNSU7XG4gICAgYmFja2dyb3VuZC1zaXplOiA3MCU7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cbi5oZWFkZXIge1xuICBtYXgtd2lkdGg6IDExNjZweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4ubmF2X19hY3RpdmU6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgQGFwcGx5IGJnLXR1cnF1b2lzZTtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmxpbmtzX19hY3RpdmUge1xuICBAYXBwbHkgdGV4dC1ibGFjaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5uYXZfX2xpbmtzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAyMHB4IDhweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLm5hdl9fbGlua3MgYTpob3ZlciB7XG4gIEBhcHBseSB0ZXh0LW4tNTA7XG59XG4ubmF2X19saW5rcyAucmVhZF9fbW9yZSB7XG4gIEBhcHBseSByb3VuZGVkLXNtIGJnLWJsdWVjb3JhbCB0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtd2hpdGU7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgcGFkZGluZzogOHB4IDE4cHg7XG59XG4ubmF2X19saW5rcyAucmVhZF9fbW9yZTpob3ZlciB7XG4gIEBhcHBseSBiZy1uLTUwIHRleHQtd2hpdGU7XG59XG4ubmF2X19saW5rcyBhIHtcbiAgQGFwcGx5IHRleHQtd2hpdGU7XG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgLm5hdl9fbGlua3Mge1xuICAgIHBhZGRpbmc6IDBweCA4cHggMjBweDtcbiAgfVxuICAubmF2X19saW5rcyBhIHtcbiAgICBAYXBwbHkgdGV4dC1uLTUwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuICAubmF2X19saW5rczo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBAYXBwbHkgYmctdHVycXVvaXNlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMSk7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gIC5uYXZfX2xpbmtzOmhvdmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgfVxufVxuLmRyb3Bkb3duX19jb250ZW50IHtcbiAgQGFwcGx5IGludmlzaWJsZSBhYnNvbHV0ZSByaWdodC0wIHRvcC03IGhpZGRlbiBoLTU2IGJnLXdoaXRlIHB5LTcgcHgtOCBvcGFjaXR5LTAgZHVyYXRpb24tMzAwIHhsOmJsb2NrO1xuICB3aWR0aDogNDI0cHg7XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4uZHJvcGRvd246aG92ZXIgLmRyb3Bkb3duX19jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgLm5hdl9fbGlzdCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgQGFwcGx5IGJnLWJsdWVjb3JhbCB0ZXh0LXdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgei1pbmRleDogMTEwO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCA4cHggIzAwMCk7XG4gIH1cbiAgLm5hdl9fbGlzdCAuYWN0aXZlIGEge1xuICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgfVxuICAubmF2X19saXN0IC5hY3RpdmUgYTpob3ZlciB7XG4gICAgQGFwcGx5IHRleHQtd2hpdGU7XG4gIH1cbiAgLm5hdl9fbGlzdCAuYWN0aXZlIGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAxKTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgQGFwcGx5IGJnLXR1cnF1b2lzZTtcbiAgfVxuICAubmF2X19saXN0IC5hY3RpdmUgYTpob3Zlcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gIC5uYXZfX2xpc3Qge1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuXG4jbWVudS1vdmVybGF5IHtcbiAgQGFwcGx5IHhsOmhpZGRlbjtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTE5MHB4KSB7XG4gICNhY3Rpdml0eS1tZW51LW92ZXJsYXkge1xuICAgIEBhcHBseSBoaWRkZW47XG4gIH1cbn1cblxuLm1lbnUtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgLmFjdGl2aXR5LW5hdi1tZW51IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBAYXBwbHkgYmctYmx1ZWNvcmFsIHRleHQtd2hpdGU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig3cHgpO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgei1pbmRleDogMTAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggOHB4ICMwMDApO1xuICB9XG4gIC5hY3Rpdml0eS1uYXYtbWVudSAuYWN0aXZpdHktbmF2LWxpc3Qge1xuICAgIEBhcHBseSBtdC01NiBmbGV4IGZsZXgtY29sIHNwYWNlLXktOTtcbiAgfVxufVxuXG4ubmF2LWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG59XG5cbi5uYXZfX3BvaW50ZXIsIC5uYXZfX3BvaW50ZXItaG92ZXIge1xuICBAYXBwbHkgcmVsYXRpdmU7XG59XG4ubmF2X19wb2ludGVyOmFmdGVyLCAubmF2X19wb2ludGVyLWhvdmVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgQGFwcGx5IGFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCBoLTEgdy1mdWxsIHNjYWxlLXgtMCBzY2FsZS15LTEwMCByb3VuZGVkLXNtIGJnLXR1cnF1b2lzZSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi01MDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgLm5hdl9fcG9pbnRlcjphZnRlciwgLm5hdl9fcG9pbnRlci1ob3ZlcjphZnRlciB7XG4gICAgQGFwcGx5IC1ib3R0b20tMztcbiAgfVxufVxuLm5hdl9fcG9pbnRlcjpob3ZlcjphZnRlciwgLm5hdl9fcG9pbnRlci1ob3Zlcjpob3ZlcjphZnRlciB7XG4gIEBhcHBseSBzY2FsZS14LTEwMDtcbn1cbi5uYXZfX3BvaW50ZXI6YWZ0ZXIge1xuICBAYXBwbHkgc2NhbGUteC0xMDA7XG59XG5cbi5hY3Rpdml0eS1uYXYge1xuICBAYXBwbHkgZmxleCBncm93O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTE5MHB4KSB7XG4gIC5hY3Rpdml0eS1uYXYge1xuICAgIEBhcHBseSBqdXN0aWZ5LWVuZDtcbiAgfVxufVxuXG4ubWFpbl9fY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMTY2cHg7XG4gIG1hcmdpbjogYXV0bztcbn1cbi5tYWluIC5sZWZ0X19jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTYwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIHRyYW5zcGFyZW50KTtcbn1cbi5tYWluIC5sZWZ0X19jb250YWluZXIgYSB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5tYWluIC5sZWZ0X19jb250YWluZXIgYTpob3ZlciB7XG4gIEBhcHBseSBib3JkZXItYi0yIGJvcmRlci10dXJxdW9pc2U7XG59XG4ubWFpbiAucmlnaHQge1xuICB3aWR0aDogOTMlO1xuICBib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi5tYWluIC5yaWdodF9fY29udGFpbmVyIGgyIHtcbiAgbGluZS1oZWlnaHQ6IDYwcHg7XG59XG4ubWFpbiAucmlnaHRfX2NvbnRlbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLWxnIGJnLXdoaXRlIHB5LTYgcHgtNTtcbn1cbi5tYWluIC5yaWdodF9fY29udGVudCAucmlnaHRfX2ljb24ge1xuICBAYXBwbHkgdGV4dC1sYWdvb24tNTA7XG4gIG1hcmdpbi1ib3R0b206IC04cHg7XG59XG4ubWFpbiAucmlnaHRfX2NvbnRlbnQgLnJpZ2h0X19hcnJvdyB7XG4gIEBhcHBseSB0ZXh0LXdoaXRlO1xufVxuLm1haW4gLnJpZ2h0X19jb250ZW50OmhvdmVyIHtcbiAgQGFwcGx5IGJvcmRlciBib3JkZXItdHVycXVvaXNlIGJnLXR1cnF1b2lzZSBiZy1vcGFjaXR5LTEwO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4IHRyYW5zcGFyZW50O1xufVxuLm1haW4gLnJpZ2h0X19jb250ZW50OmhvdmVyIC5yaWdodF9faWNvbiBzdmcge1xuICBAYXBwbHkgZmlsbC1sYWdvb24tNTAgdGV4dC13aGl0ZTtcbn1cbi5tYWluIC5yaWdodF9fY29udGVudDpob3ZlciAucmlnaHRfX2Fycm93IHtcbiAgQGFwcGx5IGZpbGwtd2hpdGUgdGV4dC10dXJxdW9pc2U7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgLm1haW4gLmpvaW4tbm93IHtcbiAgICBAYXBwbHkgcHgtMjA7XG4gIH1cbiAgLm1haW4gLmpvaW4tbm93IC5yaWdodF9fY29udGVudCB7XG4gICAgd2lkdGg6IDQyM3B4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIGlucHV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubGVmdCB7XG4gICAgaGVpZ2h0OiA2NDlweDtcbiAgfVxuICAubGVmdF9fY29udGFpbmVyIHtcbiAgICB3aWR0aDogMzg2cHg7XG4gIH1cbiAgLnJpZ2h0IHtcbiAgICBoZWlnaHQ6IDY0OXB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucmlnaHQge1xuICAgIG1hcmdpbi10b3A6IC0yNjVweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgLnJpZ2h0X19pY29uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5kZXRhaWxzIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgQGFwcGx5IHJvdW5kZWQtbGcgYmctbi0yMCBob3ZlcjpiZy1uLTMwO1xufVxuXG5tYWluIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1xuICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDY1cHgpO1xufVxuXG4uYWN0aXZpdGllc19fc2lkZWJhciB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5hY3Rpdml0aWVzX19zaWRlYmFyIHtcbiAgICB3aWR0aDogMjIwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5ib2R5LmRpc2FibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuXG5ib2R5IHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG59XG5cbmJvZHkubm8tbmF2IHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuXG5odG1sIHtcbiAgc2Nyb2xsLXBhZGRpbmctdG9wOiA2MHB4OyAvKiBoZWlnaHQgb2Ygc3RpY2t5IGhlYWRlciAqL1xufVxuXG4uZm9vdGVyX19jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDExNjZweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuLmZvb3Rlcl9fY29udGFpbmVyIC5mb290ZXJfX2xpbmtzIGEge1xuICBAYXBwbHkgYm9yZGVyLWItMiBib3JkZXItdHJhbnNwYXJlbnQgdGV4dC1uLTIwO1xufVxuLmZvb3Rlcl9fY29udGFpbmVyIC5mb290ZXJfX2xpbmtzIGE6aG92ZXIge1xuICBAYXBwbHkgYm9yZGVyLWItMiBib3JkZXItdHVycXVvaXNlO1xufVxuXG4uZWxsaXBzaXMge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xufVxuXG4uZWxsaXBzaXNfX3RpdGxlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuXG4uZWxsaXBzaXNfX3RpdGxlLS1ob3ZlciB7XG4gIEBhcHBseSBpbnZpc2libGUgYWJzb2x1dGUgbGVmdC0wIHRvcC1mdWxsIHotMjAgbWF4LXctbWQgc3BhY2UteS0xLjUgcm91bmRlZCBiZy1lZ2dzaGVsbCBwLTQgdGV4dC1sZWZ0IHRleHQteHMgZm9udC1ub3JtYWwgdGV4dC1uLTQwIG9wYWNpdHktMCBkdXJhdGlvbi0yMDA7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBtYXgtaGVpZ2h0OiAxMjBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5lbGxpcHNpczpob3ZlciAuZWxsaXBzaXNfX3RpdGxlLS1ob3Zlcixcbi5lbGxpcHNpc19fdGl0bGU6aG92ZXIgLmVsbGlwc2lzX190aXRsZS0taG92ZXIsXG4uYnJlYWRjcnVtYl9fdGl0bGU6aG92ZXIgLmVsbGlwc2lzX190aXRsZS0taG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNXB4KTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmJyZWFkY3J1bWJfX3RpdGxlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQge1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMwcHgpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQgLmFkZF9pbmRpY2F0b3Ige1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gIH1cbn1cblxuLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQgZGl2IC5lZGl0LWJ1dHRvbixcbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IGRpdiAuZGVsZXRlLWJ1dHRvbiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQgZGl2IC5lZGl0LWJ1dHRvbixcbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IGRpdiAuZGVsZXRlLWJ1dHRvbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4uYWN0aXZpdGllc19fY29udGVudC0tZWxlbWVudCBkaXYgLmVkaXQtYnV0dG9uIHtcbiAgb3JkZXI6IDI7XG59XG4uYWN0aXZpdGllc19fY29udGVudC0tZWxlbWVudCBkaXYgLmRlbGV0ZS1idXR0b24ge1xuICBvcmRlcjogMTtcbn1cbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IGRpdjpob3ZlciAuZWRpdC1idXR0b24sIC5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IGRpdjpob3ZlciAuZGVsZXRlLWJ1dHRvbiB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59XG4uYWN0aXZpdGllc19fY29udGVudC0tZWxlbWVudCBkaXYgLmVsZW1lbnRzLXN2ZyB7XG4gIEBhcHBseSBtci0xLjUgdGV4dC14bCB0ZXh0LWJsdWVjb3JhbDtcbn1cblxuLmRlc2NyaXB0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNTAwcHg7XG59XG5cbi5lbGVtZW50cy1kZXRhaWwge1xuICBAYXBwbHkgZmxleCBmbGV4LWNvbCB0ZXh0LXhzIHRleHQtbi01MDtcbn1cbi5lbGVtZW50cy1kZXRhaWwgKiB7XG4gIEBhcHBseSBsZWFkaW5nLTU7XG59XG4uZWxlbWVudHMtZGV0YWlsIHRkOm50aC1jaGlsZCgxKSB7XG4gIEBhcHBseSB0ZXh0LW4tNDA7XG4gIHdpZHRoOiAxMDBweDtcbn1cbi5lbGVtZW50cy1kZXRhaWwud2lkZXI6bm90KC5zbWFsbCkgdGQ6bnRoLWNoaWxkKDEpIHtcbiAgQGFwcGx5IHRleHQtbi00MDtcbiAgd2lkdGg6IDE5MHB4O1xufVxuLmVsZW1lbnRzLWRldGFpbCB0ZDpudGgtY2hpbGQoMikge1xuICBAYXBwbHkgZmxleCBmbGV4LWNvbCBwbC0yIHRleHQteHMgdGV4dC1uLTUwO1xufVxuLmVsZW1lbnRzLWRldGFpbCAubXVsdGlsaW5lIHtcbiAgQGFwcGx5IGl0ZW1zLXN0YXJ0O1xufVxuLmVsZW1lbnRzLWRldGFpbCB0ZCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4uZWxlbWVudHMtZGV0YWlsIHRhYmxlID4gdGJvZHkgPiB0cjpub3QoOmxhc3QtY2hpbGQpID4gdGQge1xuICBAYXBwbHkgcGItMztcbn1cblxuLnZhbHVlIHtcbiAgQGFwcGx5IGZsZXggc3BhY2UteC0xIHRleHQtbi01MDtcbn1cblxuLmNhdGVnb3J5IHtcbiAgQGFwcGx5IG1iLTIgdGV4dC1zbSBmb250LWJvbGQgdGV4dC1uLTUwO1xufVxuXG4ubGFuZ3VhZ2Uge1xuICBAYXBwbHkgdy1bMzAwcHhdIHRleHQteHMgaXRhbGljIHRleHQtbi0zMCAgc206dy1hdXRvO1xufVxuXG4uZGVzY3JpcHRpb24tY29udGVudCB7XG4gIEBhcHBseSB3LVszMDBweF0gc206dy1hdXRvO1xufVxuXG4udGl0bGUtYm9yZGVyOjphZnRlciB7XG4gIHdpZHRoOiA5NTBweDtcbiAgY29udGVudDogXCJcIjtcbiAgQGFwcGx5IGFic29sdXRlIHRvcC0yIGxlZnQtNCBoLXB4IGJnLW4tMzA7XG59XG5cbi5lbGVtZW50cy10aXRsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBAYXBwbHkgaC1weCBncm93IGJnLW4tMzA7XG59XG5cbi50b3Age1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG5cbi5tb2RhbCBwOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uc2VjdGlvbi13cmFwcGVyIHtcbiAgQGFwcGx5IG14LTMgYmctcGFwZXIgc206bXgtMTA7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nIHtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDgwcHgpO1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDE2cHggMHB4IDI0cHg7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIge1xuICBAYXBwbHkgcmVsYXRpdmUgcm91bmRlZC1sZyBiZy13aGl0ZSBwLTcgbWQ6cHktMTQgbWQ6cHgtMjA7XG4gIG1heC1oZWlnaHQ6IDY1dmg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NDBweCkge1xuICAuc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIge1xuICAgIEBhcHBseSBweC0zO1xuICB9XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIgLnZ1ZV9fc2VsZWN0IHtcbiAgbWFyZ2luOiA4cHggMHB4O1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZ19fY29udGFpbmVyIC5yZWdpc3RyeV9faW5mbyB7XG4gIEBhcHBseSBteS00IGZsZXgganVzdGlmeS1iZXR3ZWVuIGJvcmRlci1iIGJvcmRlci1iLW4tMjA7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIgcCB7XG4gIEBhcHBseSB0ZXh0LXhzIGxlYWRpbmctNSB0ZXh0LW4tNDA7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nX19jb250YWluZXIgLnRleHQge1xuICBAYXBwbHkgbWItOCB0ZXh0LXNtO1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZ19fY29udGFpbmVyIGxhYmVsIHtcbiAgQGFwcGx5IHRleHQteHMgdGV4dC1uLTUwO1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZyAucmVnaXN0ZXIge1xuICBAYXBwbHkgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLW4tMzAgcC00IHNtOnAtNjtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19jb250YWluZXIge1xuICBAYXBwbHkgZ3JpZCBnYXAtMyBzbTpnYXAtNiBsZzpncmlkLWNvbHMtMjtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19jb250YWluZXIgLnRhZ19fY29ycmVjdCB7XG4gIEBhcHBseSBhYnNvbHV0ZSByaWdodC0yIHRvcC0xMCBmbGV4IGgtNSBjdXJzb3ItcG9pbnRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZCBiZy1zcHJpbmctNDAgdGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LXdoaXRlO1xuICB3aWR0aDogNTBweDtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19jb250YWluZXIgLnRhZ19faW5jb3JyZWN0IHtcbiAgQGFwcGx5IGFic29sdXRlIHJpZ2h0LTIgdG9wLTEwIGZsZXggaC01IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkIGJnLXNhbG1vbi01MCB0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtd2hpdGU7XG4gIHdpZHRoOiA2MXB4O1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZyAucmVnaXN0ZXIgLnZlcmlmeS1idG4ge1xuICB3aWR0aDogMTIwcHg7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG4gIEBhcHBseSBmbGV4IGgtMTAganVzdGlmeS1jZW50ZXI7XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nIC5yZWdpc3Rlcl9faW5wdXQge1xuICBAYXBwbHkgbXQtMiB3LWZ1bGwgYm9yZGVyIGJvcmRlci1uLTMwIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0zMDA7XG4gIHBhZGRpbmc6IDEzcHggMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDQwcHgpIHtcbiAgLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZyAucmVnaXN0ZXJfX2lucHV0IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICB9XG59XG4uc2VjdGlvbi13cmFwcGVyIC5zZXR0aW5nIC5yZWdpc3Rlcl9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTQwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19pbnB1dDpmb2N1cyB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbn1cbi5zZWN0aW9uLXdyYXBwZXIgLnNldHRpbmcgLnJlZ2lzdGVyX19pbnB1dDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC1uLTUwO1xufVxuLnNlY3Rpb24td3JhcHBlciAuc2V0dGluZyAuZXJyb3JfX2lucHV0IHtcbiAgQGFwcGx5IGJvcmRlciBib3JkZXItY3JpbXNvbi01MDtcbn1cblxuLnNhdmUtYnRuIHtcbiAgQGFwcGx5IHB4LTQ7XG59XG5cbi5idG5fX2FjdGl2ZSB7XG4gIEBhcHBseSBmb250LWJvbGQgdGV4dC13aGl0ZTtcbn1cblxuLnNtb290aCB7XG4gIGFuaW1hdGlvbjogZmFkZUluQW5pbWF0aW9uIGVhc2UgMC4zcztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5BbmltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5ib2R5IHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBAYXBwbHkgbWluLWgtc2NyZWVuIGJnLXBhcGVyO1xufVxuXG5hIHtcbiAgY29sb3I6IHJnYih2YXIoLS1ibHVlY29yYWwpKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cbmE6aG92ZXIge1xuICBjb2xvcjogcmdiKHZhcigtLXNwcmluZy01MCkpO1xufVxuXG4ubGVmdF9fdGl0bGUge1xuICBmb250LXNpemU6IDI3cHg7XG4gIHRleHQtc2hhZG93OiA0cHggNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDEpO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5sZWZ0X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICB9XG59XG5cbmgyIHtcbiAgQGFwcGx5IHRleHQtaGVhZGluZy01IGZvbnQtYm9sZCB0ZXh0LW4tNTAgbWQ6dGV4dC1oZWFkaW5nLTM7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0NDBweCkge1xuICBoMiB7XG4gICAgQGFwcGx5IHRleHQtaGVhZGluZy00O1xuICB9XG59XG5cbmg0IHtcbiAgQGFwcGx5IHRleHQtaGVhZGluZy00IGxlYWRpbmctbm9ybWFsO1xufVxuXG4uYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgQGFwcGx5IGJnLXR1cnF1b2lzZSB0ZXh0LW4tNTA7XG59XG4uYnRuOmhvdmVyIHtcbiAgQGFwcGx5IGJnLWJsdWVjb3JhbDtcbiAgQGFwcGx5IHRleHQtd2hpdGU7XG59XG4uYnRuOmhvdmVyIHN2ZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG4uYnRuLWJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IDAuM3M7XG4gIEBhcHBseSB3LTI0IHRleHQtYmx1ZWNvcmFsO1xufVxuLmJ0bi1iYWNrIHN2ZyB7XG4gIHRyYW5zaXRpb246IDAuM3M7XG59XG4uYnRuLWJhY2s6aG92ZXIgc3ZnIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xufVxuXG4uYnRuLW5leHQge1xuICBAYXBwbHkgdy0zNiBweS0yLjUgdGV4dC1uLTUwIHNtOnctNDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAuYnRuLW5leHQge1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAxM3B4IDI0cHg7XG4gIH1cbn1cbi5idG4tbmV4dCBzdmcge1xuICBtYXJnaW4tbGVmdDogMTNweDtcbiAgdHJhbnNpdGlvbjogMC4ycztcbn1cblxuLmdldC1zdGFydGVkLWJ0biB7XG4gIHdpZHRoOiAxODVweDtcbn1cblxuLnJlc2V0LWJ0biB7XG4gIEBhcHBseSBtdC02IGZsZXgganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXItbm9uZSBiZy10dXJxdW9pc2UgdGV4dC1zbSBmb250LWJvbGQgdXBwZXJjYXNlIHRleHQtbi01MCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMjAwIGhvdmVyOmJnLWJsdWVjb3JhbCBob3Zlcjp0ZXh0LXdoaXRlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTZweCA5NHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAucmVzZXQtYnRuIHtcbiAgICBwYWRkaW5nOiAxOHB4IDk0cHg7XG4gIH1cbn1cbnN2ZyB7XG4gIGhlaWdodDogMWVtO1xufVxuXG4udnJwX193cmFwcGVyIHAge1xuICBAYXBwbHkgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbDtcbn1cbi52cnBfX3dyYXBwZXIgc3ZnIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uYnV0dG9uLFxuYnV0dG9uIHtcbiAgQGFwcGx5IGZsZXggY3Vyc29yLXBvaW50ZXIgaXRlbXMtY2VudGVyIHRleHQteHMgbGVhZGluZy1ub3JtYWwgdHJhY2tpbmctdGlnaHQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG59XG5cbi50b29sdGlwLWJ0biB7XG4gIEBhcHBseSByZWxhdGl2ZSB0ZXh0LW4tMzA7XG59XG4udG9vbHRpcC1idG4gYnV0dG9uIHtcbiAgQGFwcGx5IHJvdW5kZWQtM3hsIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLW4tMzAgcHktMS41IHB4LTIuNTtcbn1cbi50b29sdGlwLWJ0biBzdmcge1xuICBAYXBwbHkgbXItMSB0ZXh0LXhzO1xufVxuLnRvb2x0aXAtYnRuX19jb250ZW50IHtcbiAgQGFwcGx5IGFic29sdXRlIHRvcC1mdWxsIGxlZnQtMCBoaWRkZW4gdy1bMzUycHhdO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC50b29sdGlwLWJ0bl9fY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpO1xuICB9XG59XG4udG9vbHRpcC1idG5fX2NvbnRlbnQgLmNvbnRlbnQge1xuICBAYXBwbHkgbXQtNiByb3VuZGVkIGJnLWVnZ3NoZWxsIHRleHQtbi01MDtcbiAgcGFkZGluZzogMTZweCAzM3B4IDE2cHggMTZweDtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi50b29sdGlwLWJ0bl9fY29udGVudCBwIHtcbiAgQGFwcGx5IG1iLTEuNSB0ZXh0LXhzIGxlYWRpbmctbm9ybWFsO1xufVxuLnRvb2x0aXAtYnRuOmhvdmVyIC50b29sdGlwLWJ0bl9fY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRvb2x0aXAtYnRuOmhvdmVyIGJ1dHRvbiB7XG4gIEBhcHBseSBib3JkZXItc3ByaW5nLTUwIHRleHQtc3ByaW5nLTUwO1xufVxuXG4ucHJpbWFyeS1idG4ge1xuICBAYXBwbHkgZ2FwLTEgcm91bmRlZCBiZy1ibHVlY29yYWwgcC0zIGZvbnQtYm9sZCB1cHBlcmNhc2UgdGV4dC13aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi5wcmltYXJ5LWJ0bi5zcGFjZSB7XG4gIEBhcHBseSBweC02O1xufVxuLnByaW1hcnktYnRuOmhvdmVyIHtcbiAgQGFwcGx5IGJnLW4tNTAgdGV4dC13aGl0ZTtcbn1cbi5wcmltYXJ5LWJ0biBzdmcge1xuICBAYXBwbHkgdGV4dC1iYXNlO1xufVxuXG4uc2Vjb25kYXJ5LWJ0biB7XG4gIEBhcHBseSBnYXAtMSBnYXAteC0xIHJvdW5kZWQgYmctd2hpdGUgcC0zIHVwcGVyY2FzZSB0ZXh0LWJsdWVjb3JhbDtcbn1cbi5zZWNvbmRhcnktYnRuLS10b3VjaCB7XG4gIEBhcHBseSBnYXAtMSBnYXAteC0xIHJvdW5kZWQgYmctd2hpdGUgcC0zIHVwcGVyY2FzZSB0ZXh0LWJsdWVjb3JhbDtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi5zZWNvbmRhcnktYnRuLS10b3VjaCAuZHJvcGRvd25fX2Fycm93IHtcbiAgZm9udC1zaXplOiA2cHg7XG4gIHRyYW5zaXRpb246IDAuMnM7XG59XG4uc2Vjb25kYXJ5LWJ0bi0tdG91Y2ggc3ZnIHtcbiAgQGFwcGx5IHRleHQtYmFzZTtcbn1cbi5zZWNvbmRhcnktYnRuOmhvdmVyIHtcbiAgQGFwcGx5IGJnLWJsdWVjb3JhbCB0ZXh0LXdoaXRlO1xufVxuLnNlY29uZGFyeS1idG4gc3ZnIHtcbiAgQGFwcGx5IHRleHQtYmFzZTtcbn1cbi5zZWNvbmRhcnktYnRuIC5kcm9wZG93bl9fYXJyb3cge1xuICBmb250LXNpemU6IDZweDtcbiAgdHJhbnNpdGlvbjogMC4ycztcbn1cblxuLnByaW1hcnktb3V0bGluZS1idG4ge1xuICBAYXBwbHkganVzdGlmeS1jZW50ZXIgZ2FwLTEgcm91bmRlZC0zeGwgYm9yZGVyIGJvcmRlci1zcHJpbmctNTAgcHgtMy41IHRleHQtc20gbGVhZGluZy1yZWxheGVkIHRleHQtc3ByaW5nLTUwO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xufVxuLnByaW1hcnktb3V0bGluZS1idG46aG92ZXIge1xuICBAYXBwbHkgYmctc3ByaW5nLTUwIHRleHQtd2hpdGU7XG59XG4ucHJpbWFyeS1vdXRsaW5lLWJ0biBzdmcge1xuICBAYXBwbHkgdGV4dC1iYXNlO1xufVxuXG4uZ2hvc3QtYnRuIHtcbiAgQGFwcGx5IHRleHQteHMgZm9udC1ib2xkIHVwcGVyY2FzZSB0ZXh0LW4tNDA7XG4gIHRyYW5zaXRpb246IDAuNHM7XG59XG4uZ2hvc3QtYnRuOmhvdmVyIHtcbiAgQGFwcGx5IHRleHQtYmx1ZWNvcmFsO1xufVxuXG4udGFiLWJ0bi1hbmNob3Ige1xuICBAYXBwbHkgY3Vyc29yLWRlZmF1bHQ7XG59XG5cbi50YWItYnRuIHtcbiAgQGFwcGx5IGgtOSByb3VuZGVkIGJvcmRlciBib3JkZXItbi0yMCBiZy13aGl0ZSBwLTIgdGV4dC14cyB0ZXh0LW4tNDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi50YWItYnRuOmhvdmVyIHtcbiAgQGFwcGx5IGJvcmRlci10dXJxdW9pc2UgYmctbi0xMCB0ZXh0LWJsdWVjb3JhbDtcbn1cblxuLmFjdGl2ZV9fdGFiIHtcbiAgQGFwcGx5IGJvcmRlci10dXJxdW9pc2UgYmctbi0xMCB0ZXh0LWJsdWVjb3JhbDtcbn1cblxuLnBhbmVsLWJ0biB7XG4gIEBhcHBseSBoLTEwIHNwYWNlLXgtMSByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCBiZy1lZ2dzaGVsbCBweS0zIHB4LTI7XG4gIHdpZHRoOiA0M3B4O1xufVxuLnBhbmVsLWJ0bjpob3ZlciB7XG4gIEBhcHBseSBiZy1ibHVlY29yYWwgdGV4dC13aGl0ZTtcbn1cbi5wYW5lbC1idG4gLmRyb3Bkb3duX19hcnJvdyB7XG4gIGZvbnQtc2l6ZTogNnB4O1xuICB0cmFuc2l0aW9uOiAwLjJzO1xufVxuXG4uaGFtYnVyZ2VyIHtcbiAgQGFwcGx5IHJlbGF0aXZlIHotYXV0byBmbGV4IGgtMTEgdy0xMSBjdXJzb3ItcG9pbnRlciBkdXJhdGlvbi0zMDAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkO1xuICB6LWluZGV4OiAxMjA7XG59XG4uaGFtYnVyZ2VyLmFjdGl2ZSBzcGFuIHtcbiAgQGFwcGx5IGJnLW4tMTA7XG59XG4uaGFtYnVyZ2VyIHNwYW4ge1xuICBAYXBwbHkgcG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBoLTEgdy0xMCByb3VuZGVkLWxnIGR1cmF0aW9uLTMwMDtcbn1cbi5oYW1idXJnZXIgc3BhbjpudGgtY2hpbGQoMSkge1xuICBib3R0b206IDE4cHg7XG4gIGxlZnQ6IDJweDtcbiAgd2lkdGg6IDMwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG59XG4uaGFtYnVyZ2VyLmFjdGl2ZSBzcGFuOm50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiA0MHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWigwKTtcbn1cbi5oYW1idXJnZXIuYWN0aXZlIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xufVxuLmhhbWJ1cmdlci5hY3RpdmUgc3BhbjpudGgtY2hpbGQoMykge1xuICB3aWR0aDogNDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCkgcm90YXRlKDMxNWRlZyk7XG59XG4uaGFtYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgdG9wOiAxOHB4O1xuICBsZWZ0OiAycHg7XG4gIHdpZHRoOiAyMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTVweCk7XG59XG5cbi5oYW1idXJnZXItbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgLmhhbWJ1cmdlci1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uaG9tZS1idXJnZXItbWVudS5hY3RpdmUge1xuICB0cmFuc2xhdGU6IC00OTAlIC05MCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAuaG9tZS1idXJnZXItbWVudS5hY3RpdmUge1xuICAgIHRyYW5zbGF0ZTogLTM1MCUgLTE0MCU7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gIC5ob21lLWJ1cmdlci1tZW51LmFjdGl2ZSB7XG4gICAgdHJhbnNsYXRlOiAtMzgwJSAtOTAlO1xuICB9XG59XG5cbi5pbnB1dCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDE0cHggMHB4IDE0cHggNTVweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBAYXBwbHkgaC0xNCBib3JkZXIgYm9yZGVyLW4tMzAgc206aC0xNjtcbn1cbi5pbnB1dDpmb2N1cyB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbn1cbi5pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgQGFwcGx5IGZvbnQtbm9ybWFsIHRleHQtbi00MDtcbn1cbi5pbnB1dDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC1uLTUwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmlucHV0IHtcbiAgICBwYWRkaW5nOiAyMHB4IDBweCAyMHB4IDU1cHg7XG4gIH1cbn1cblxuLmVycm9yIHtcbiAgQGFwcGx5IHRleHQtc20gdGV4dC1jcmltc29uLTUwIHNtOnRleHQtYmFzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uaGFzX2Vycm9yIC5mb3JtX19pbnB1dCB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLWNyaW1zb24tNTA7XG59XG5cbnRleHRhcmVhLmZvcm1fX2lucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi50ZXh0LWFyZWEge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNjBweDtcbiAgcmVzaXplOiBub25lO1xufVxuXG4uZm9ybV9faW5wdXQge1xuICBAYXBwbHkgbWItMiBib3gtYm9yZGVyIHctZnVsbCByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCB0ZXh0LWJsdWVjb3JhbCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAxNnB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmZvcm1fX2lucHV0IHtcbiAgICBwYWRkaW5nOiAxM3B4IDAgMTNweCAxNnB4O1xuICB9XG59XG4uZm9ybV9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtc20gZm9udC1ub3JtYWwgdGV4dC1uLTQwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cbi5mb3JtX19pbnB1dDpmb2N1cyB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbn1cbi5mb3JtX19pbnB1dDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC1uLTUwO1xufVxuXG4uaW5wdXRfX2ZpZWxkIC5tdWx0aXNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQge1xuICBAYXBwbHkgYmctbi0yMCB0ZXh0LW4tNTA7XG59XG4uaW5wdXRfX2ZpZWxkIC5tdWx0aXNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQuaXMtcG9pbnRlZCB7XG4gIEBhcHBseSBiZy1uLTIwIHRleHQtbi01MDtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LmlzLWFjdGl2ZSB7XG4gIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMDtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIEBhcHBseSB3LVszMTBweF0gb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwIHByLTMgdGV4dC1zbSB0ZXh0LW4tNDAgZHVyYXRpb24tMzAwO1xufVxuLmlucHV0X19maWVsZCAubXVsdGlzZWxlY3QtcGxhY2Vob2xkZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgQGFwcGx5IGFic29sdXRlIHJpZ2h0LTAgdG9wLTMgaC02IHctNyBiZy13aGl0ZTtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LmlzLW9wZW4gLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtbi01MDtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LWRyb3Bkb3duIHtcbiAgQGFwcGx5IGJvcmRlciBib3JkZXItbi01MDtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LWNhcmV0IHtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIvaW1hZ2VzL2Ryb3Bkb3duLWFycm93LnN2Z1wiKTtcbiAgbWFzay1pbWFnZTogdXJsKFwiL2ltYWdlcy9kcm9wZG93bi1hcnJvdy5zdmdcIik7XG59XG4uaW5wdXRfX2ZpZWxkIC5tdWx0aXNlbGVjdC1zZWFyY2gge1xuICBAYXBwbHkgY3Vyc29yLXBvaW50ZXIgYm9yZGVyIGJvcmRlci1uLTMwIHB5LTIuNTtcbn1cbi5pbnB1dF9fZmllbGQgLm11bHRpc2VsZWN0LXNlYXJjaDpmb2N1cyB7XG4gIEBhcHBseSBiZy1uLTEwO1xufVxuLmlucHV0X19maWVsZCAubXVsdGlzZWxlY3Qtc2VhcmNoOmZvY3VzICsgLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyOjphZnRlciB7XG4gIEBhcHBseSBiZy1uLTEwO1xufVxuLmlucHV0X19maWVsZCAudnVlX19zZWxlY3Qge1xuICBAYXBwbHkgbWItMiBib3JkZXIgYm9yZGVyLW4tMzAgdGV4dC1zbSBsZWFkaW5nLTYgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcbiAgcGFkZGluZzogMTNweCAwcHggMTNweCA1NXB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmlucHV0X19maWVsZCAudnVlX19zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDE2cHggMHB4IDE2cHggNTVweDtcbiAgfVxufVxuXG4uZXJyb3JfaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDEwMDFlO1xufVxuXG4ucGFuZWxfX2lucHV0IHtcbiAgQGFwcGx5IGJveC1ib3JkZXIgaC0xMCB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgYmctcGFwZXIgcHktMi41IHBsLTcgcHItMyBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xufVxuLnBhbmVsX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC14cyBmb250LW5vcm1hbCB0ZXh0LW4tMzAgZHVyYXRpb24tMzAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cbi5wYW5lbF9faW5wdXQ6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtbi00MDtcbn1cblxuLnNlYXJjaCB7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbi5zZWFyY2hfX2lucHV0IHtcbiAgQGFwcGx5IGJvcmRlciBib3JkZXItbi0zMCBiZy10cmFuc3BhcmVudCBvdXRsaW5lLW5vbmU7XG4gIHBhZGRpbmc6IDEwcHggNDJweCAxMHB4IDM0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG59XG4uc2VhcmNoIHN2ZyB7XG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTMgdG9wLTMgdGV4dC1iYXNlIHRleHQtbi0zMDtcbn1cblxuLnJlcXVpcmVkLWljb24ge1xuICBAYXBwbHkgcmVsYXRpdmUgdG9wLTAuNSB0ZXh0LWJhc2UgbGVhZGluZy1ub25lIHRleHQtY3JpbXNvbi01MDtcbn1cblxuLmlhdGktbGlzdC10YWJsZSB7XG4gIEBhcHBseSByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItbi0yMCB0ZXh0LWxlZnQ7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQ1cHgpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuaWF0aS1saXN0LXRhYmxlIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gIH1cbn1cbi5pYXRpLWxpc3QtdGFibGUgdGFibGUge1xuICBAYXBwbHkgdGFibGUgdy1mdWxsICBiZy13aGl0ZTtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6aG92ZXIge1xuICB6LWluZGV4OiAxO1xuICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICBAYXBwbHkgYmctbi0xMDtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0ZCxcbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0aCB7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0ZDphZnRlcixcbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0aDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0wIGJvdHRvbS0wIGgtcHggdy1mdWxsIG1heC13LWZ1bGwgYmctbi0yMDtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGJvZHkgdHI6bm90KDpsYXN0LWNoaWxkKSB0ZDpmaXJzdC1jaGlsZDphZnRlciB7XG4gIEBhcHBseSBtbC02O1xufVxuLmlhdGktbGlzdC10YWJsZSB0Ym9keSB0cjpub3QoOmxhc3QtY2hpbGQpIHRoLmNoZWNrLWNvbHVtbjphZnRlciB7XG4gIEBhcHBseSAtbWwtNjtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGgge1xuICBAYXBwbHkgcHktNCBweC02IGFsaWduLXRvcCB0ZXh0LXhzIHVwcGVyY2FzZSBsZWFkaW5nLW5vcm1hbDtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGggc3ZnIHtcbiAgQGFwcGx5IG1yLTEgdGV4dC14bCB0ZXh0LW4tMzA7XG59XG4uaWF0aS1saXN0LXRhYmxlIHRoIGEge1xuICBAYXBwbHkgZmxleDtcbn1cbi5pYXRpLWxpc3QtdGFibGUgdGggYSBzdmcge1xuICBAYXBwbHkgdGV4dC1iYXNlIHRleHQtYmx1ZWNvcmFsO1xufVxuLmlhdGktbGlzdC10YWJsZSB0ZCB7XG4gIEBhcHBseSByZWxhdGl2ZSBweS00IHB4LTYgYWxpZ24tdG9wIHRleHQtc20gbGVhZGluZy1yZWxheGVkO1xufVxuLmlhdGktbGlzdC10YWJsZSB0ci5hbHJlYWR5LXB1Ymxpc2hlZCB0ZCxcbi5pYXRpLWxpc3QtdGFibGUgdHIuYWxyZWFkeS1wdWJsaXNoZWQgdGguY2hlY2stY29sdW1uIHtcbiAgQGFwcGx5IHB0LTExO1xufVxuLmlhdGktbGlzdC10YWJsZSAuaGFzLXN0YXR1cyB0ZCB7XG4gIEBhcHBseSBweC02IHB0LTExIHBiLTc7XG59XG4uaWF0aS1saXN0LXRhYmxlIC5oYXMtc3RhdHVzIHRoIHtcbiAgQGFwcGx5IHB4LTYgcHQtMTEgcGItNztcbn1cbi5pYXRpLWxpc3QtdGFibGUgLmNoZWNrLWNvbHVtbiAuY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yIHtcbiAgQGFwcGx5IGJnLXJvc2U7XG59XG4udXBsb2FkLWxpc3QtdGFibGUgLnVwbG9hZC1lcnJvcjpob3ZlciB7XG4gIEBhcHBseSBiZy1yb3NlO1xufVxuLnVwbG9hZC1saXN0LXRhYmxlIC51cGxvYWQtZXJyb3IgLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udXBsb2FkLWxpc3QtdGFibGUgLnVwbG9hZC1lcnJvci1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yLWNvbnRlbnQgZGl2Om5vdCg6bGFzdC1jaGlsZCkge1xuICBAYXBwbHkgYm9yZGVyLWIgYm9yZGVyLWItbi0yMCBwYi00O1xufVxuLnVwbG9hZC1saXN0LXRhYmxlIC51cGxvYWQtZXJyb3ItY29udGVudCBkaXYgdWwge1xuICBAYXBwbHkgbXQtNCBzcGFjZS15LTQgdGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LWJsdWVjb3JhbDtcbn1cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yLWNvbnRlbnQgZGl2IGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDM2cHg7XG59XG4udXBsb2FkLWxpc3QtdGFibGUgLnVwbG9hZC1lcnJvci1jb250ZW50IGRpdiBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgQGFwcGx5IGJvcmRlci1iIGJvcmRlci1iLW4tMjAgcGItNDtcbn1cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yLWNvbnRlbnQgZGl2IGxpOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOHB4O1xuICBsZWZ0OiAyMHB4O1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb250ZW50OiBcIlwiO1xuICBAYXBwbHkgYmctYmx1ZWNvcmFsO1xufVxuLnVwbG9hZC1saXN0LXRhYmxlIC51cGxvYWQtZXJyb3ItY29udGVudC5vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udXBsb2FkLWxpc3QtdGFibGUgLnVwbG9hZC1lcnJvci1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDI2cHg7XG4gIHJpZ2h0OiAwO1xufVxuLnVwbG9hZC1saXN0LXRhYmxlIC51cGxvYWQtZXJyb3ItaWNvbiBzdmcge1xuICBmb250LXNpemU6IDZweDtcbn1cbi51cGxvYWQtbGlzdC10YWJsZSAudXBsb2FkLWVycm9yLWljb24ub3BlbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbiNjYiB7XG4gIHdpZHRoOiA2OHB4O1xufVxuXG4jc3RhdHVzIHtcbiAgd2lkdGg6IDE5MnB4O1xufVxuXG4jcHVibGlzaCB7XG4gIHdpZHRoOiAyODBweDtcbn1cblxuI2RhdGUge1xuICB3aWR0aDogMTczcHg7XG59XG5cbi5pYXRpLWxpc3QtdGFibGUgdHIge1xuICBvdmVyZmxvdy15OiB2aXNpYmxlO1xufVxuLmlhdGktbGlzdC10YWJsZSB0ZDpudGgtY2hpbGQoMSkge1xuICBtYXgtd2lkdGg6IDE1MHB4ICFpbXBvcnRhbnQ7XG59XG4uaWF0aS1saXN0LXRhYmxlIHRkOm50aC1jaGlsZCgxKSBhIHtcbiAgbWF4LXdpZHRoOiAxNDVweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uY2hlY2tib3gge1xuICBAYXBwbHkgcmVsYXRpdmUgYmxvY2sgY3Vyc29yLXBvaW50ZXIgc2VsZWN0LW5vbmU7XG59XG4uY2hlY2tib3ggLmNoZWNrbWFyayB7XG4gIEBhcHBseSBmbGV4IGgtNCB3LTQgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQgYm9yZGVyLTIgYm9yZGVyLW4tMjA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG59XG4uY2hlY2tib3ggLmNoZWNrbWFyazphZnRlciB7XG4gIGJvcmRlci13aWR0aDogMCAzcHggM3B4IDA7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIEBhcHBseSBtYi0wLjUgaGlkZGVuIGgtMiB3LVs1cHhdIHJvdGF0ZS00NSBib3JkZXItc3ByaW5nLTUwO1xufVxuLmNoZWNrYm94IGlucHV0IHtcbiAgQGFwcGx5IGFic29sdXRlIGgtMCB3LTAgY3Vyc29yLXBvaW50ZXIgb3BhY2l0eS0wO1xufVxuLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuY2hlY2ttYXJrIHtcbiAgQGFwcGx5IGJvcmRlci1zcHJpbmctNTA7XG59XG4uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5jaGVja21hcms6YWZ0ZXIge1xuICBAYXBwbHkgYmxvY2s7XG59XG4uY2hlY2tib3g6aG92ZXIgaW5wdXQgfiAuY2hlY2ttYXJrIHtcbiAgQGFwcGx5IGJvcmRlci1zcHJpbmctNTA7XG59XG5cbi8qKlxuICBMYXJhdmVsIGZvcm0gZGVzaWduXG4gKi9cbmZvcm0ge1xuICAvKipcbiAgKiBDb25kaXRpb24gdG8gc2hvdyBhbmQgZGVsZXRlIGNvbGxlY3Rpb24gZXJyb3IgaW4gZm9ybVxuICAqL1xufVxuZm9ybSAuZm9ybS1maWVsZC1ncm91cCB7XG4gIEBhcHBseSByZWxhdGl2ZSBwLTM7XG59XG5mb3JtIC5mb3JtLWZpZWxkLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkge1xuICBAYXBwbHkgbWItNjtcbn1cbmZvcm0gLmZvcm0tZmllbGQtZ3JvdXAgLmZvcm0tZmllbGQge1xuICBAYXBwbHkgcC0zO1xufVxuZm9ybSAuZm9ybS1maWVsZC1ncm91cCAuZm9ybS1maWVsZCAuaGVscC10ZXh0IHtcbiAgQGFwcGx5IG10LTIgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQ7XG59XG5mb3JtIGJ1dHRvbi5kZWxldGUtaXRlbSB7XG4gIEBhcHBseSBhYnNvbHV0ZSBoLTggdy04IGN1cnNvci1wb2ludGVyIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLWZ1bGwgYmctbi00MCAtaW5kZW50LTQwO1xufVxuZm9ybSBidXR0b24uZGVsZXRlLWl0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIvaW1hZ2VzL3RyYXNoX2Z1bGwuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTEvMiB0b3AtMS8yIGgtWzE4cHhdIHctWzE4cHhdIC10cmFuc2xhdGUteC0xLzIgLXRyYW5zbGF0ZS15LTEvMjtcbn1cbmZvcm0gYnV0dG9uLmRlbGV0ZS1pdGVtOmhvdmVyIHtcbiAgQGFwcGx5IGJnLWJsdWVjb3JhbDtcbn1cbmZvcm0gLmZvcm0tZmllbGQtZ3JvdXAtb3V0ZXIgLmZvcm0tZmllbGQge1xuICBAYXBwbHkgcHgtMztcbn1cbmZvcm0gLmZvcm0tZmllbGQtbGFiZWwge1xuICBAYXBwbHkgbWItMiBmbGV4IGp1c3RpZnktYmV0d2Vlbjtcbn1cbmZvcm0gLmZvcm0tZmllbGQtbGFiZWwgbGFiZWwge1xuICBAYXBwbHkgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQ7XG59XG5mb3JtIC5mb3JtLWZpZWxkLWxhYmVsIC5yZXF1aXJlZCB7XG4gIEBhcHBseSBmb250LWJvbGQgdGV4dC1zYWxtb24tNTA7XG59XG5mb3JtIGlucHV0W3R5cGU9dGV4dF0sXG5mb3JtIGlucHV0W3R5cGU9ZGF0ZV0sXG5mb3JtIHRleHRhcmVhIHtcbiAgQGFwcGx5IG10LTAgaC0xMiB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgcHgtNCBweS0yLjUgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xufVxuZm9ybSBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbmZvcm0gaW5wdXRbdHlwZT1kYXRlXTo6cGxhY2Vob2xkZXIsXG5mb3JtIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIEBhcHBseSB0ZXh0LXNtIHRleHQtbi00MDtcbn1cbmZvcm0gaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyxcbmZvcm0gaW5wdXRbdHlwZT1kYXRlXTpmb2N1cyxcbmZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG59XG5mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXM6OnBsYWNlaG9sZGVyLFxuZm9ybSBpbnB1dFt0eXBlPWRhdGVdOmZvY3VzOjpwbGFjZWhvbGRlcixcbmZvcm0gdGV4dGFyZWE6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgQGFwcGx5IHRleHQtbi01MDtcbn1cbmZvcm0gaW5wdXRbdHlwZT10ZXh0XSxcbmZvcm0gaW5wdXRbdHlwZT1kYXRlXSB7XG4gIEBhcHBseSBoLTEyO1xufVxuZm9ybSBzZWxlY3Qge1xuICBAYXBwbHkgdy1mdWxsIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1uLTMwIHB4LTQgcHktMyB0ZXh0LXNtIHRleHQtbi00MCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xufVxuZm9ybSBzZWxlY3Q6Zm9jdXMge1xuICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG59XG5mb3JtIC5oZWxwIHtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuZm9ybSAuaGVscF9fdGV4dCB7XG4gIEBhcHBseSBpbnZpc2libGUgYWJzb2x1dGUgdG9wLTQgei0yMCBzcGFjZS15LTEuNSByb3VuZGVkIGJnLWVnZ3NoZWxsIHAtNCB0ZXh0LWxlZnQgdGV4dC14cyB0ZXh0LW4tNDAgb3BhY2l0eS0wIGR1cmF0aW9uLTIwMDtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XG59XG5mb3JtIC5oZWxwOmhvdmVyIC5oZWxwX190ZXh0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59XG5mb3JtIC5hZGRfbW9yZSB7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbmZvcm0gLmFkZF9tb3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgaC0xLzIgdy1weCBib3JkZXItbCBib3JkZXItc3ByaW5nLTUwO1xufVxuZm9ybSAuYWRkX21vcmU6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0wIHRvcC0yLzQgaC1weCB3LTMuNSAtdHJhbnNsYXRlLXktMS8yIGJvcmRlci1iIGJvcmRlci1zcHJpbmctNTA7XG59XG5mb3JtIC5hZGRfbW9yZSBpIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgYmFja2dyb3VuZDogdXJsKFwiL2ltYWdlcy9hZGQtbW9yZS1ncmVlbi5zdmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcbn1cbmZvcm0gLnN1YmVsZW1lbnQuYm9yZGVyLWwgPiBsYWJlbCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuZm9ybSAuc3ViZWxlbWVudCAuc3ViZWxlbWVudCxcbmZvcm0gLnN1YmVsZW1lbnQgLnN1YmVsZW1lbnQgKyBidXR0b24ge1xuICBAYXBwbHkgbWwtNjtcbn1cbmZvcm0gLnN1YmVsZW1lbnQgLndyYXBwZWQtY2hpbGQtYm9keSB7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbmZvcm0gLnN1YmVsZW1lbnQgLndyYXBwZWQtY2hpbGQtYm9keSA+IC5kZWxldGUtcGFyZW50IHtcbiAgQGFwcGx5IGJsb2NrO1xufVxuZm9ybSAuc3ViZWxlbWVudCA+IC5tdWx0aS1mb3JtOm9ubHktb2YtdHlwZSA+IC5kZWxldGUtcGFyZW50LFxuZm9ybSAuc3ViZWxlbWVudCAud3JhcHBlZC1jaGlsZC1ib2R5Om9ubHktb2YtdHlwZSA+IC5kZWxldGUtcGFyZW50IHtcbiAgQGFwcGx5IGhpZGRlbjtcbn1cbmZvcm0gLmZvcm0tZmllbGQtZ3JvdXA6b25seS1vZi10eXBlID4gLmRlbGV0ZS1pdGVtIHtcbiAgQGFwcGx5IGhpZGRlbjtcbn1cbmZvcm0gLmNvbGxlY3Rpb25fZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9ybSAubXVsdGktZm9ybSArIC5jb2xsZWN0aW9uX2Vycm9yLFxuZm9ybSAuZm9ybS1maWVsZC1ncm91cCArIC5jb2xsZWN0aW9uX2Vycm9yLFxuZm9ybSAud3JhcHBlZC1jaGlsZC1ib2R5ICsgLmNvbGxlY3Rpb25fZXJyb3Ige1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gIFNlbGVjdCAyIGZpZWxkXG4qL1xuc3Bhbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuc3Bhbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XG4gIEBhcHBseSBoLTEyIHctZnVsbCByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCBweC00IHB5LTMgdGV4dC1zbSB0ZXh0LW4tNDAgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcbn1cbnNwYW4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gIEBhcHBseSBwLTAgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbDtcbn1cbnNwYW4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gIEBhcHBseSBoLTExO1xufVxuc3Bhbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHNwYW4ge1xuICBAYXBwbHkgbXItMi41IHRleHQtc207XG59XG5zcGFuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXIge1xuICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tNDA7XG59XG5zcGFuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xuICBjb2xvcjogIzFmMjkzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNjtcbn1cbnNwYW4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uW2FyaWEtc2VsZWN0ZWRdIHtcbiAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTUwO1xufVxuXG4ubWF4LXctaGFsZiB7XG4gIG1heC13aWR0aDogNTAlO1xufVxuXG4vKipcbiAgQWN0aXZpdHkgRGV0YWlsIFBhZ2VcbiovXG4uYWN0aXZpdGllcyB7XG4gIEBhcHBseSBmbGV4IGdhcC01IHhsOmdhcC03O1xufVxuLmFjdGl2aXRpZXNfX3NpZGViYXIge1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDI4MHB4O1xufVxuLmFjdGl2aXRpZXNfX3NpZGViYXItaW5uZXIge1xuICBvcmRlcjogMTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYWN0aXZpdGllc19fY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNTBweCk7XG4gIH1cbn1cbi5hY3Rpdml0aWVzX19jYXJkIHtcbiAgQGFwcGx5IGZsZXggZmxleC1jb2wgYmctd2hpdGUgdGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LW4tNDA7XG4gIHBhZGRpbmc6IDEzcHg7XG59XG4uYWN0aXZpdGllcyAucHJvZ3Jlc3Mge1xuICBAYXBwbHkgaXRlbXMtY2VudGVyO1xuICB3aWR0aDogMTUxcHg7XG4gIG1pbi1oZWlnaHQ6IDE3NHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHggMHB4IDBweCA4cHg7XG59XG4uYWN0aXZpdGllcyAudGFiLWJ0bjpkaXNhYmxlZCB7XG4gIEBhcHBseSBwb2ludGVyLWV2ZW50cy1ub25lIHRleHQtbi0yMDtcbn1cbi5hY3Rpdml0aWVzIC50YWItYnRuOmRpc2FibGVkIHN2ZyB7XG4gIEBhcHBseSB0ZXh0LW4tMjA7XG59XG4uYWN0aXZpdGllcyAuaG92ZXItdGV4dCBzdmcge1xuICBAYXBwbHkgdGV4dC1uLTMwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgLmVsZW1lbnRzLWNhcmQge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAubWFudWFsLWltcG9ydCAuaGVscF9fdGV4dCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDM1MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnJlZ2lzdHJ5X19pbmZvIC5oZWxwX190ZXh0LFxuLnJlZ2lzdGVyIC5oZWxwX190ZXh0LFxuYXNpZGUgLmhlbHBfX3RleHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnJlZ2lzdHJ5X19pbmZvIC5oZWxwX190ZXh0LFxuLnJlZ2lzdGVyIC5oZWxwX190ZXh0LFxuYXNpZGUgLmhlbHBfX3RleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAyNTBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5pbXBvcnQtYWN0aXZpdHkgLmhlbHBfX3RleHQsXG4uYWN0aXZpdGllc19fY29udGVudC0tZWxlbWVudCAuaGVscF9fdGV4dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSAhaW1wb3J0YW50O1xufVxuXG5hc2lkZSAucHJvZ3Jlc3MgLmhlbHBfX3RleHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgYXNpZGUgLnByb2dyZXNzIC5oZWxwX190ZXh0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQ1JSkgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uYWN0aXZpdGllc19fY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGFiLWJ0biAuaGVscF9fdGV4dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAudGFiLWJ0biAuaGVscF9fdGV4dCB7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuXG4uYWN0aXZpdHktZGVmYXVsdC12YWx1ZSAuaGVscF9fdGV4dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbn1cblxuLnBhZ2luYXRpb24ge1xuICBAYXBwbHkgcmVsYXRpdmUgei0wIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy13aGl0ZSB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW4tNDA7XG59XG4ucGFnaW5hdGlvbiA+IGEsXG4ucGFnaW5hdGlvbiA+IHNwYW4ge1xuICBAYXBwbHkgZmxleCBib3JkZXIteSBib3JkZXItbCBib3JkZXItbi0yMCBweS0xLjUgcHgtMztcbn1cbi5wYWdpbmF0aW9uID4gYTpub3QoLnByZXYtYnRuKSxcbi5wYWdpbmF0aW9uID4gc3Bhbjpub3QoLnByZXYtYnRuKSB7XG4gIEBhcHBseSBib3JkZXItbCBib3JkZXItbi0yMDtcbn1cbi5wYWdpbmF0aW9uID4gYS5wcmV2LWJ0biwgLnBhZ2luYXRpb24gPiBhLm5leHQtYnRuLFxuLnBhZ2luYXRpb24gPiBzcGFuLnByZXYtYnRuLFxuLnBhZ2luYXRpb24gPiBzcGFuLm5leHQtYnRuIHtcbiAgQGFwcGx5IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLW4tMTA7XG59XG4ucGFnaW5hdGlvbiA+IGEucHJldi1idG4gc3ZnLCAucGFnaW5hdGlvbiA+IGEubmV4dC1idG4gc3ZnLFxuLnBhZ2luYXRpb24gPiBzcGFuLnByZXYtYnRuIHN2Zyxcbi5wYWdpbmF0aW9uID4gc3Bhbi5uZXh0LWJ0biBzdmcge1xuICBAYXBwbHkgdGV4dC14cztcbn1cbi5wYWdpbmF0aW9uID4gYS5wcmV2LWJ0bixcbi5wYWdpbmF0aW9uID4gc3Bhbi5wcmV2LWJ0biB7XG4gIEBhcHBseSByb3VuZGVkLXRsIHJvdW5kZWQtYmw7XG59XG4ucGFnaW5hdGlvbiA+IGEubmV4dC1idG4sXG4ucGFnaW5hdGlvbiA+IHNwYW4ubmV4dC1idG4ge1xuICBAYXBwbHkgcm91bmRlZC1iciByb3VuZGVkLXRyIGJvcmRlci1yO1xufVxuLnBhZ2luYXRpb24gPiBhLnByZXYtYnRuIHN2Zyxcbi5wYWdpbmF0aW9uID4gc3Bhbi5wcmV2LWJ0biBzdmcge1xuICBAYXBwbHkgbXItMTtcbn1cbi5wYWdpbmF0aW9uID4gYS5uZXh0LWJ0biBzdmcsXG4ucGFnaW5hdGlvbiA+IHNwYW4ubmV4dC1idG4gc3ZnIHtcbiAgQGFwcGx5IG1sLTE7XG59XG4ucGFnaW5hdGlvbiA+IGE6aG92ZXIsIC5wYWdpbmF0aW9uID4gYS5jdXJyZW50LFxuLnBhZ2luYXRpb24gPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiBzcGFuLmN1cnJlbnQge1xuICBAYXBwbHkgYmctYmx1ZWNvcmFsIHRleHQtcGFwZXI7XG59XG5cbi5vdmVybGF5IHtcbiAgQGFwcGx5IGZpeGVkIGxlZnQtMCB0b3AtMCBoLWZ1bGwgdy1mdWxsIGJnLWJsYWNrO1xuICB6LWluZGV4OiAxMDA7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5vdmVybGF5X19pbm5lciB7XG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgaC1mdWxsIHctZnVsbDtcbn1cbi5vdmVybGF5X19jb250ZW50IHtcbiAgQGFwcGx5IGFic29sdXRlIGxlZnQtMi80IHRvcC0yLzQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuLm92ZXJsYXlfX2NvbnRlbnQgLnNwaW5uZXIge1xuICBAYXBwbHkgaW5saW5lLWJsb2NrIGFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLW4tMTAgYm9yZGVyLW9wYWNpdHktNTtcbiAgd2lkdGg6IDc1cHg7XG4gIGhlaWdodDogNzVweDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uc2VsZWN0Mi1jb250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjdmOTtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJhMmYzMDtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xufVxuXG4uc2VsZWN0Mi1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XG4gIHBhZGRpbmc6IDZweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZF0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1kcm9wZG93biB7XG4gIGxlZnQ6IDA7XG59XG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24tLWFib3ZlIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24tLWJlbG93IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNHB4O1xufVxuLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2E2YjViYTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5bdHlwZT1zZWFyY2hdIHtcbiAgb3V0bGluZS1jb2xvcjogI2E2YjViYTtcbiAgb3V0bGluZS1vZmZzZXQ6IDA7XG59XG5cbi5zZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gIGNvbG9yOiAjMTU1MzY2O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDFweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjZweDtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IGIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICBib3JkZXItY29sb3I6ICM4ODggdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNXB4IDRweCAwIDRweDtcbn1cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1yZXN1bHRzID4gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyBiIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjODg4IHRyYW5zcGFyZW50O1xuICBib3JkZXItd2lkdGg6IDAgNHB4IDVweCA0cHg7XG59XG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWFib3ZlIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWJlbG93IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5zaWRlYmFyLW9wZW4taWNvbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBsZWZ0OiAwcHg7XG4gIGJvdHRvbTogNTBweDtcbiAgei1pbmRleDogNjA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGRkZTA7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBib3JkZXItcmFkaXVzOiAwIDEwMCUgMTAwJSAwO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5zaWRlYmFyLW9wZW4taWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5zaWRlYmFyLW9wZW4taWNvbjpob3ZlciB7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cbi5zaWRlYmFyLW9wZW4taWNvbiBzdmcge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjMTU1MzY2O1xufVxuXG4uZGV0YWlscy1zaWRlYmFyLWNsb3NlLWljb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAyODBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkZGUwO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICB6LWluZGV4OiAyMDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG59XG4uZGV0YWlscy1zaWRlYmFyLWNsb3NlLWljb24gc3ZnIHtcbiAgbWFyZ2luOiBhdXRvO1xuICBjb2xvcjogIzE1NTM2Njtcbn1cblxuLnNpZGViYXItY2xvc2UtaWNvbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiA1MHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxlZnQ6IDI3NXB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGRkZTA7XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIHotaW5kZXg6IDIwMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuc2lkZWJhci1jbG9zZS1pY29uIHtcbiAgICBsZWZ0OiAyNDBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG59XG4uc2lkZWJhci1jbG9zZS1pY29uIHN2ZyB7XG4gIG1hcmdpbjogYXV0bztcbiAgY29sb3I6ICMxNTUzNjY7XG59IiwiQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLndyYXBwZXI6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjkycHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL21hcnF1ZS13aGl0ZS5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTYuNSU7XG4gICAgYmFja2dyb3VuZC1zaXplOiA3MCU7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG59XG4uaGVhZGVyIHtcbiAgbWF4LXdpZHRoOiAxMTY2cHg7XG4gIG1hcmdpbjogYXV0bztcbn1cbi5uYXZfX2FjdGl2ZTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBAYXBwbHkgYmctdHVycXVvaXNlO1xuICBjb250ZW50OiAnJztcbn1cbi5saW5rc19fYWN0aXZlIHtcbiAgQGFwcGx5IHRleHQtYmxhY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLm5hdl9fbGlua3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDIwcHggOHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG5cbiAgYTpob3ZlciB7XG4gICAgQGFwcGx5IHRleHQtbi01MDtcbiAgfVxuXG4gIC5yZWFkX19tb3JlIHtcbiAgICBAYXBwbHkgcm91bmRlZC1zbSBiZy1ibHVlY29yYWwgdGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LXdoaXRlO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBwYWRkaW5nOiA4cHggMThweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgQGFwcGx5IGJnLW4tNTAgdGV4dC13aGl0ZTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBAYXBwbHkgdGV4dC13aGl0ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5uYXZfX2xpbmtzIHtcbiAgICBwYWRkaW5nOiAwcHggOHB4IDIwcHg7XG5cbiAgICBhIHtcbiAgICAgIEBhcHBseSB0ZXh0LW4tNTA7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICBAYXBwbHkgYmctdHVycXVvaXNlO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAxKTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICB9XG4gIH1cbn1cbi5kcm9wZG93bl9fY29udGVudCB7XG4gIEBhcHBseSBpbnZpc2libGUgYWJzb2x1dGUgcmlnaHQtMCB0b3AtNyBoaWRkZW4gaC01NiBiZy13aGl0ZSBweS03IHB4LTggb3BhY2l0eS0wIGR1cmF0aW9uLTMwMCB4bDpibG9jaztcbiAgd2lkdGg6IDQyNHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICBib3gtc2hhZG93OiAwcHggOHB4IDE2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi5kcm9wZG93bjpob3ZlciB7XG4gIC5kcm9wZG93bl9fY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLm5hdl9fbGlzdCB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIEBhcHBseSBiZy1ibHVlY29yYWwgdGV4dC13aGl0ZTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDUlKTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIHotaW5kZXg6IDExMDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KC0wcHggMHB4IDhweCAjMDAwKTtcblxuICAgIC5hY3RpdmUge1xuICAgICAgYSB7XG4gICAgICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDEpO1xuICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgQGFwcGx5IGJnLXR1cnF1b2lzZTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG5cbiNtZW51LW92ZXJsYXkge1xuICBAYXBwbHkgeGw6aGlkZGVuO1xufVxuXG4jYWN0aXZpdHktbWVudS1vdmVybGF5IHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTE5MHB4KSB7XG4gICAgQGFwcGx5IGhpZGRlbjtcbiAgfVxufVxuXG4ubWVudS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uYWN0aXZpdHktbmF2LW1lbnUge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBAYXBwbHkgYmctYmx1ZWNvcmFsIHRleHQtd2hpdGU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig3cHgpO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgei1pbmRleDogMTAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggOHB4ICMwMDApO1xuXG4gICAgLmFjdGl2aXR5LW5hdi1saXN0IHtcbiAgICAgIEBhcHBseSBtdC01NiBmbGV4IGZsZXgtY29sIHNwYWNlLXktOTtcbiAgICB9XG4gIH1cbn1cbi5uYXYtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbn1cblxuLm5hdiB7XG4gICZfX3BvaW50ZXIsXG4gICZfX3BvaW50ZXItaG92ZXIge1xuICAgIEBhcHBseSByZWxhdGl2ZTtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgQGFwcGx5IGFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCBoLTEgdy1mdWxsIHNjYWxlLXgtMCBzY2FsZS15LTEwMCByb3VuZGVkLXNtIGJnLXR1cnF1b2lzZSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi01MDA7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkge1xuICAgICAgICBAYXBwbHkgLWJvdHRvbS0zO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIge1xuICAgICAgQGFwcGx5IHNjYWxlLXgtMTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3BvaW50ZXI6YWZ0ZXIge1xuICAgIEBhcHBseSBzY2FsZS14LTEwMDtcbiAgfVxufVxuXG4uYWN0aXZpdHktbmF2IHtcbiAgQGFwcGx5IGZsZXggZ3JvdztcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTkwcHgpIHtcbiAgICBAYXBwbHkganVzdGlmeS1lbmQ7XG4gIH1cbn1cbiIsIi5tYWluIHtcbiAgJl9fY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDExNjZweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbiAgLmxlZnRfX2NvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgMTYwZGVnLFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLFxuICAgICAgdHJhbnNwYXJlbnRcbiAgICApO1xuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAYXBwbHkgYm9yZGVyLWItMiBib3JkZXItdHVycXVvaXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucmlnaHQge1xuICAgIHdpZHRoOiA5MyU7XG4gICAgYm94LXNoYWRvdzogMHB4IDIwcHggNDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cbiAgICAmX19jb250YWluZXIge1xuICAgICAgaDIge1xuICAgICAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBAYXBwbHkgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1sZyBiZy13aGl0ZSBweS02IHB4LTU7XG5cbiAgICAgIC5yaWdodF9faWNvbiB7XG4gICAgICAgIEBhcHBseSB0ZXh0LWxhZ29vbi01MDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLThweDtcbiAgICAgIH1cbiAgICAgIC5yaWdodF9fYXJyb3cge1xuICAgICAgICBAYXBwbHkgdGV4dC13aGl0ZTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci10dXJxdW9pc2UgYmctdHVycXVvaXNlIGJnLW9wYWNpdHktMTA7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHggdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgLnJpZ2h0X19pY29uIHtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgQGFwcGx5IGZpbGwtbGFnb29uLTUwIHRleHQtd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5yaWdodF9fYXJyb3cge1xuICAgICAgICAgIEBhcHBseSBmaWxsLXdoaXRlIHRleHQtdHVycXVvaXNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzNjZweCkge1xuICAgIC5qb2luLW5vdyB7XG4gICAgICBAYXBwbHkgcHgtMjA7XG5cbiAgICAgIC5yaWdodF9fY29udGVudCB7XG4gICAgICAgIHdpZHRoOiA0MjNweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIGlucHV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubGVmdCB7XG4gICAgaGVpZ2h0OiA2NDlweDtcblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMzg2cHg7XG4gICAgfVxuICB9XG4gIC5yaWdodCB7XG4gICAgaGVpZ2h0OiA2NDlweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiAtMjY1cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gIC5yaWdodF9faWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuZGV0YWlscyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbn1cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBAYXBwbHkgcm91bmRlZC1sZyBiZy1uLTIwIGhvdmVyOmJnLW4tMzA7XG59XG5tYWluIHtcbiAgZGlzcGxheTogZ3JpZDsgLy8gTGluZSAxXG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bzsgLy8gTGluZSAyXG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0NjVweCk7IC8vIExpbmUgM1xufVxuLmFjdGl2aXRpZXNfX3NpZGViYXIge1xuICBmbGV4LXNocmluazogMDtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICAgd2lkdGg6IDIyMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbmJvZHkuZGlzYWJsZS1zY3JvbGwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDEwcHg7XG59XG5ib2R5IHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG59XG5cbmJvZHkubm8tbmF2IHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuaHRtbCB7XG4gIHNjcm9sbC1wYWRkaW5nLXRvcDogNjBweDsgLyogaGVpZ2h0IG9mIHN0aWNreSBoZWFkZXIgKi9cbn1cbiIsIi5mb290ZXJfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTE2NnB4O1xuICBtYXJnaW46IGF1dG87XG5cbiAgLmZvb3Rlcl9fbGlua3Mge1xuICAgIGEge1xuICAgICAgQGFwcGx5IGJvcmRlci1iLTIgYm9yZGVyLXRyYW5zcGFyZW50IHRleHQtbi0yMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIEBhcHBseSBib3JkZXItYi0yIGJvcmRlci10dXJxdW9pc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZWxsaXBzaXMge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xufVxuLmVsbGlwc2lzX190aXRsZSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIEBhcHBseSByZWxhdGl2ZTtcbn1cbi5lbGxpcHNpc19fdGl0bGUtLWhvdmVyIHtcbiAgQGFwcGx5IGludmlzaWJsZSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLWZ1bGwgei0yMCBtYXgtdy1tZCBzcGFjZS15LTEuNSByb3VuZGVkIGJnLWVnZ3NoZWxsIHAtNCB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW5vcm1hbCB0ZXh0LW4tNDAgb3BhY2l0eS0wIGR1cmF0aW9uLTIwMDtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYigwIDAgMCAvIDEwJSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBtYXgtaGVpZ2h0OiAxMjBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uZWxsaXBzaXM6aG92ZXIsXG4uZWxsaXBzaXNfX3RpdGxlOmhvdmVyLFxuLmJyZWFkY3J1bWJfX3RpdGxlOmhvdmVyIHtcbiAgLmVsbGlwc2lzX190aXRsZS0taG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1cHgpO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLmJyZWFkY3J1bWJfX3RpdGxlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuXG4vLyBhY3Rpdml0eSBkZXRhaWxcbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzBweCk7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLmFkZF9pbmRpY2F0b3Ige1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICB9XG4gIH1cbn1cblxuLmFjdGl2aXRpZXNfX2NvbnRlbnQtLWVsZW1lbnQgZGl2IHtcbiAgLmVkaXQtYnV0dG9uLFxuICAuZGVsZXRlLWJ1dHRvbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAvLyBvdXRsaW5lOiAxcHggc29saWQgcmVkICFpbXBvcnRhbnQ7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5lZGl0LWJ1dHRvbiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cblxuICAuZGVsZXRlLWJ1dHRvbiB7XG4gICAgb3JkZXI6IDE7XG4gIH1cblxuICAmOmhvdmVyIC5lZGl0LWJ1dHRvbixcbiAgJjpob3ZlciAuZGVsZXRlLWJ1dHRvbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLmVsZW1lbnRzLXN2ZyB7XG4gICAgQGFwcGx5IG1yLTEuNSB0ZXh0LXhsIHRleHQtYmx1ZWNvcmFsO1xuICB9XG59XG4uZGVzY3JpcHRpb24ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbn1cblxuLmVsZW1lbnRzLWRldGFpbCB7XG4gIEBhcHBseSBmbGV4IGZsZXgtY29sIHRleHQteHMgdGV4dC1uLTUwO1xuXG4gIC8vIHRhYmxlIHtcbiAgLy8gICBmb250LXNpemU6IGluaGVyaXQ7XG5cbiAgLy8gfVxuXG4gICYgKiB7XG4gICAgQGFwcGx5IGxlYWRpbmctNTtcbiAgfVxuXG4gIHRkOm50aC1jaGlsZCgxKSB7XG4gICAgQGFwcGx5IHRleHQtbi00MDtcbiAgICB3aWR0aDogMTAwcHg7XG4gIH1cbiAgJi53aWRlcjpub3QoLnNtYWxsKSB7XG4gICAgdGQ6bnRoLWNoaWxkKDEpIHtcbiAgICAgIEBhcHBseSB0ZXh0LW4tNDA7XG4gICAgICB3aWR0aDogMTkwcHg7XG4gICAgfVxuICB9XG5cbiAgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgICBAYXBwbHkgZmxleCBmbGV4LWNvbCBwbC0yIHRleHQteHMgdGV4dC1uLTUwO1xuICB9XG4gIC5tdWx0aWxpbmUge1xuICAgIEBhcHBseSBpdGVtcy1zdGFydDtcbiAgfVxuXG4gIHRkIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgdGFibGUgPiB0Ym9keSA+IHRyOm5vdCg6bGFzdC1jaGlsZCkgPiB0ZCB7XG4gICAgQGFwcGx5IHBiLTM7XG4gIH1cbn1cbi52YWx1ZSB7XG4gIEBhcHBseSBmbGV4IHNwYWNlLXgtMSB0ZXh0LW4tNTA7XG59XG4uY2F0ZWdvcnkge1xuICBAYXBwbHkgbWItMiB0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LW4tNTA7XG59XG4ubGFuZ3VhZ2Uge1xuICBAYXBwbHkgdy1bMzAwcHhdIHRleHQteHMgaXRhbGljIHRleHQtbi0zMCAgc206dy1hdXRvO1xufVxuLmRlc2NyaXB0aW9uLWNvbnRlbnQge1xuICBAYXBwbHkgdy1bMzAwcHhdIHNtOnctYXV0bztcbn1cbi50aXRsZS1ib3JkZXI6OmFmdGVyIHtcbiAgd2lkdGg6IDk1MHB4O1xuICBjb250ZW50OiAnJztcbiAgQGFwcGx5IGFic29sdXRlIHRvcC0yIGxlZnQtNCBoLXB4IGJnLW4tMzA7XG59XG4uZWxlbWVudHMtdGl0bGU6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIEBhcHBseSBoLXB4IGdyb3cgYmctbi0zMDtcbn1cbi50b3Age1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG5cbi5tb2RhbCB7XG4gIHA6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxufVxuIiwiLnNlY3Rpb24td3JhcHBlciB7XG4gIEBhcHBseSBteC0zIGJnLXBhcGVyIHNtOm14LTEwO1xuXG4gIC5zZXR0aW5nIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZzogMTZweCAwcHggMjRweDtcblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICBAYXBwbHkgcmVsYXRpdmUgcm91bmRlZC1sZyBiZy13aGl0ZSBwLTcgbWQ6cHktMTQgbWQ6cHgtMjA7XG4gICAgICBtYXgtaGVpZ2h0OiA2NXZoO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NDBweCkge1xuICAgICAgICBAYXBwbHkgcHgtMztcbiAgICAgIH1cblxuICAgICAgLnZ1ZV9fc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luOiA4cHggMHB4O1xuICAgICAgfVxuICAgICAgLnJlZ2lzdHJ5X19pbmZvIHtcbiAgICAgICAgQGFwcGx5IG15LTQgZmxleCBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLWIgYm9yZGVyLWItbi0yMDtcbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICBAYXBwbHkgdGV4dC14cyBsZWFkaW5nLTUgdGV4dC1uLTQwO1xuICAgICAgfVxuICAgICAgLnRleHQge1xuICAgICAgICBAYXBwbHkgbWItOCB0ZXh0LXNtO1xuICAgICAgfVxuICAgICAgbGFiZWwge1xuICAgICAgICBAYXBwbHkgdGV4dC14cyB0ZXh0LW4tNTA7XG4gICAgICB9XG4gICAgfVxuICAgIC5yZWdpc3RlciB7XG4gICAgICBAYXBwbHkgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLW4tMzAgcC00IHNtOnAtNjtcblxuICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgQGFwcGx5IGdyaWQgZ2FwLTMgc206Z2FwLTYgbGc6Z3JpZC1jb2xzLTI7XG5cbiAgICAgICAgLnRhZ19fY29ycmVjdCB7XG4gICAgICAgICAgQGFwcGx5IGFic29sdXRlIHJpZ2h0LTIgdG9wLTEwIGZsZXggaC01IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkIGJnLXNwcmluZy00MCB0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtd2hpdGU7XG4gICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudGFnX19pbmNvcnJlY3Qge1xuICAgICAgICAgIEBhcHBseSBhYnNvbHV0ZSByaWdodC0yIHRvcC0xMCBmbGV4IGgtNSBjdXJzb3ItcG9pbnRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZCBiZy1zYWxtb24tNTAgdGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LXdoaXRlO1xuICAgICAgICAgIHdpZHRoOiA2MXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudmVyaWZ5LWJ0biB7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgICAgQGFwcGx5IGZsZXggaC0xMCBqdXN0aWZ5LWNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgLnJlZ2lzdGVyX19pbnB1dCB7XG4gICAgICBAYXBwbHkgbXQtMiB3LWZ1bGwgYm9yZGVyIGJvcmRlci1uLTMwIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0zMDA7XG4gICAgICBwYWRkaW5nOiAxM3B4IDE2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTQwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICAgIH1cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG4gICAgICB9XG4gICAgICAmOmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIEBhcHBseSB0ZXh0LW4tNTA7XG4gICAgICB9XG4gICAgfVxuICAgIC5lcnJvcl9faW5wdXQge1xuICAgICAgQGFwcGx5IGJvcmRlciBib3JkZXItY3JpbXNvbi01MDtcbiAgICB9XG4gIH1cbn1cbi5zYXZlLWJ0biB7XG4gIEBhcHBseSBweC00O1xufVxuLmJ0bl9fYWN0aXZlIHtcbiAgQGFwcGx5IGZvbnQtYm9sZCB0ZXh0LXdoaXRlO1xufVxuIiwiLnNtb290aCB7XG4gIGFuaW1hdGlvbjogZmFkZUluQW5pbWF0aW9uIGVhc2UgMC4zcztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5BbmltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4iLCJib2R5IHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBAYXBwbHkgbWluLWgtc2NyZWVuIGJnLXBhcGVyO1xufVxuXG5hIHtcbiAgY29sb3I6IHJnYih2YXIoLS1ibHVlY29yYWwpKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiKHZhcigtLXNwcmluZy01MCkpO1xuICB9XG59XG5cbi5sZWZ0IHtcbiAgJl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgICB0ZXh0LXNoYWRvdzogNHB4IDRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgIH1cbiAgfVxufVxuXG5oMiB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ0MHB4KSB7XG4gICAgQGFwcGx5IHRleHQtaGVhZGluZy00O1xuICB9XG4gIEBhcHBseSB0ZXh0LWhlYWRpbmctNSBmb250LWJvbGQgdGV4dC1uLTUwIG1kOnRleHQtaGVhZGluZy0zO1xufVxuXG5oNCB7XG4gIEBhcHBseSB0ZXh0LWhlYWRpbmctNCBsZWFkaW5nLW5vcm1hbDtcbn1cbiIsIi8vIFR1cnF1b2lzZSBidXR0b25cbi5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdXRsaW5lOiBub25lO1xuICBAYXBwbHkgYmctdHVycXVvaXNlIHRleHQtbi01MDtcblxuICAmOmhvdmVyIHtcbiAgICBAYXBwbHkgYmctYmx1ZWNvcmFsO1xuICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xuXG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICB9XG4gIH1cbn1cblxuLmJ0bi1iYWNrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBAYXBwbHkgdy0yNCB0ZXh0LWJsdWVjb3JhbDtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xuICAgIH1cbiAgfVxufVxuXG4uYnRuLW5leHQge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAxM3B4IDI0cHg7XG4gIH1cbiAgQGFwcGx5IHctMzYgcHktMi41IHRleHQtbi01MCBzbTp3LTQwO1xuXG4gIHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEzcHg7XG4gICAgdHJhbnNpdGlvbjogMC4ycztcbiAgfVxufVxuXG4uZ2V0LXN0YXJ0ZWQtYnRuIHtcbiAgd2lkdGg6IDE4NXB4O1xufVxuXG4ucmVzZXQtYnRuIHtcbiAgQGFwcGx5IG10LTYgZmxleCBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlci1ub25lIGJnLXR1cnF1b2lzZSB0ZXh0LXNtIGZvbnQtYm9sZCB1cHBlcmNhc2UgdGV4dC1uLTUwIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0yMDAgaG92ZXI6YmctYmx1ZWNvcmFsIGhvdmVyOnRleHQtd2hpdGU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxNnB4IDk0cHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5yZXNldC1idG4ge1xuICAgIHBhZGRpbmc6IDE4cHggOTRweDtcbiAgfVxufVxuXG5zdmcge1xuICBoZWlnaHQ6IDFlbTtcbn1cblxuLnZycF9fd3JhcHBlciB7XG4gIHAge1xuICAgIEBhcHBseSB0ZXh0LXNtIGxlYWRpbmctbm9ybWFsO1xuICB9XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5idXR0b24sXG5idXR0b24ge1xuICBAYXBwbHkgZmxleCBjdXJzb3ItcG9pbnRlciBpdGVtcy1jZW50ZXIgdGV4dC14cyBsZWFkaW5nLW5vcm1hbCB0cmFja2luZy10aWdodDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cblxuLy8gdG9vbHRpcCBidXR0b25cbi50b29sdGlwLWJ0biB7XG4gIEBhcHBseSByZWxhdGl2ZSB0ZXh0LW4tMzA7XG5cbiAgYnV0dG9uIHtcbiAgICBAYXBwbHkgcm91bmRlZC0zeGwgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItbi0zMCBweS0xLjUgcHgtMi41O1xuICB9XG5cbiAgc3ZnIHtcbiAgICBAYXBwbHkgbXItMSB0ZXh0LXhzO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgQGFwcGx5IGFic29sdXRlIHRvcC1mdWxsIGxlZnQtMCBoaWRkZW4gdy1bMzUycHhdO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSk7XG4gICAgfVxuICAgIC5jb250ZW50IHtcbiAgICAgIEBhcHBseSBtdC02IHJvdW5kZWQgYmctZWdnc2hlbGwgdGV4dC1uLTUwO1xuICAgICAgcGFkZGluZzogMTZweCAzM3B4IDE2cHggMTZweDtcbiAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBAYXBwbHkgbWItMS41IHRleHQteHMgbGVhZGluZy1ub3JtYWw7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciAudG9vbHRpcC1idG5fX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJjpob3ZlciBidXR0b24ge1xuICAgIEBhcHBseSBib3JkZXItc3ByaW5nLTUwIHRleHQtc3ByaW5nLTUwO1xuICB9XG59XG5cbi8vIHByaW1hcnkgYnV0dG9uXG4ucHJpbWFyeS1idG4ge1xuICBAYXBwbHkgZ2FwLTEgcm91bmRlZCBiZy1ibHVlY29yYWwgcC0zIGZvbnQtYm9sZCB1cHBlcmNhc2UgdGV4dC13aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcblxuICAmLnNwYWNlIHtcbiAgICBAYXBwbHkgcHgtNjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIEBhcHBseSBiZy1uLTUwIHRleHQtd2hpdGU7XG4gIH1cblxuICBzdmcge1xuICAgIEBhcHBseSB0ZXh0LWJhc2U7XG4gIH1cbn1cblxuLy8gc2Vjb25kYXJ5IGJ1dHRvblxuLnNlY29uZGFyeS1idG4ge1xuICBAYXBwbHkgZ2FwLTEgZ2FwLXgtMSByb3VuZGVkIGJnLXdoaXRlIHAtMyB1cHBlcmNhc2UgdGV4dC1ibHVlY29yYWw7XG5cbiAgJi0tdG91Y2gge1xuICAgIEBhcHBseSBnYXAtMSBnYXAteC0xIHJvdW5kZWQgYmctd2hpdGUgcC0zIHVwcGVyY2FzZSB0ZXh0LWJsdWVjb3JhbDtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDEwcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIC5kcm9wZG93bl9fYXJyb3cge1xuICAgICAgZm9udC1zaXplOiA2cHg7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzO1xuICAgIH1cbiAgICBzdmcge1xuICAgICAgQGFwcGx5IHRleHQtYmFzZTtcbiAgICB9XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgQGFwcGx5IGJnLWJsdWVjb3JhbCB0ZXh0LXdoaXRlO1xuICB9XG5cbiAgc3ZnIHtcbiAgICBAYXBwbHkgdGV4dC1iYXNlO1xuICB9XG5cbiAgLmRyb3Bkb3duX19hcnJvdyB7XG4gICAgZm9udC1zaXplOiA2cHg7XG4gICAgdHJhbnNpdGlvbjogMC4ycztcbiAgfVxufVxuXG4vLyBwcmltYXJ5IG91dGxpbmUgYnV0dG9uXG4ucHJpbWFyeS1vdXRsaW5lLWJ0biB7XG4gIEBhcHBseSBqdXN0aWZ5LWNlbnRlciBnYXAtMSByb3VuZGVkLTN4bCBib3JkZXIgYm9yZGVyLXNwcmluZy01MCBweC0zLjUgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgdGV4dC1zcHJpbmctNTA7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSk7XG5cbiAgJjpob3ZlciB7XG4gICAgQGFwcGx5IGJnLXNwcmluZy01MCB0ZXh0LXdoaXRlO1xuICB9XG5cbiAgc3ZnIHtcbiAgICBAYXBwbHkgdGV4dC1iYXNlO1xuICB9XG59XG5cbi5naG9zdC1idG4ge1xuICBAYXBwbHkgdGV4dC14cyBmb250LWJvbGQgdXBwZXJjYXNlIHRleHQtbi00MDtcbiAgdHJhbnNpdGlvbjogMC40cztcblxuICAmOmhvdmVyIHtcbiAgICBAYXBwbHkgdGV4dC1ibHVlY29yYWw7XG4gIH1cbn1cblxuLnRhYi1idG4tYW5jaG9yIHtcbiAgQGFwcGx5IGN1cnNvci1kZWZhdWx0O1xufVxuXG4udGFiLWJ0biB7XG4gIEBhcHBseSBoLTkgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMjAgYmctd2hpdGUgcC0yIHRleHQteHMgdGV4dC1uLTQwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgQGFwcGx5IGJvcmRlci10dXJxdW9pc2UgYmctbi0xMCB0ZXh0LWJsdWVjb3JhbDtcbiAgfVxufVxuXG4uYWN0aXZlX190YWIge1xuICBAYXBwbHkgYm9yZGVyLXR1cnF1b2lzZSBiZy1uLTEwIHRleHQtYmx1ZWNvcmFsO1xufVxuXG4ucGFuZWwtYnRuIHtcbiAgQGFwcGx5IGgtMTAgc3BhY2UteC0xIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1uLTMwIGJnLWVnZ3NoZWxsIHB5LTMgcHgtMjtcbiAgd2lkdGg6IDQzcHg7XG5cbiAgJjpob3ZlciB7XG4gICAgQGFwcGx5IGJnLWJsdWVjb3JhbCB0ZXh0LXdoaXRlO1xuICB9XG5cbiAgLmRyb3Bkb3duX19hcnJvdyB7XG4gICAgZm9udC1zaXplOiA2cHg7XG4gICAgdHJhbnNpdGlvbjogMC4ycztcbiAgfVxufVxuIiwiLmhhbWJ1cmdlciB7XG4gIEBhcHBseSByZWxhdGl2ZSB6LWF1dG8gZmxleCBoLTExIHctMTEgY3Vyc29yLXBvaW50ZXIgZHVyYXRpb24tMzAwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZDtcbiAgei1pbmRleDogMTIwO1xuXG4gICYuYWN0aXZlIHtcbiAgICBzcGFuIHtcbiAgICAgIEBhcHBseSBiZy1uLTEwO1xuICAgIH1cbiAgfVxuXG4gIHNwYW4ge1xuICAgIEBhcHBseSBwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGgtMSB3LTEwIHJvdW5kZWQtbGcgZHVyYXRpb24tMzAwO1xuICB9XG4gIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICBib3R0b206IDE4cHg7XG4gICAgbGVmdDogMnB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG4gIH1cbiAgJi5hY3RpdmUge1xuICAgIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpICB0cmFuc2xhdGVaKDApO1xuICAgIH1cbiAgICBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjBweCk7XG4gICAgfVxuICAgIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCkgcm90YXRlKDMxNWRlZyk7XG4gICAgfVxuICB9XG4gIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgICB0b3A6IDE4cHg7XG4gICAgbGVmdDogMnB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNXB4KTtcbiAgfVxufVxuLmhhbWJ1cmdlci1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uaG9tZS1idXJnZXItbWVudS5hY3RpdmUge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIHRyYW5zbGF0ZTogLTM1MCUgLTE0MCU7XG4gIH1cbiAgdHJhbnNsYXRlOiAtNDkwJSAtOTAlO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgdHJhbnNsYXRlOiAtMzgwJSAtOTAlO1xuICB9XG59XG5cbiIsIi5pbnB1dCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDE0cHggMHB4IDE0cHggNTVweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBAYXBwbHkgaC0xNCBib3JkZXIgYm9yZGVyLW4tMzAgc206aC0xNjtcblxuICAmOmZvY3VzIHtcbiAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG4gIH1cblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgQGFwcGx5IGZvbnQtbm9ybWFsIHRleHQtbi00MDtcbiAgfVxuXG4gICY6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgICBAYXBwbHkgdGV4dC1uLTUwO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICBwYWRkaW5nOiAyMHB4IDBweCAyMHB4IDU1cHg7XG4gIH1cbn1cbi5lcnJvciB7XG4gIEBhcHBseSB0ZXh0LXNtIHRleHQtY3JpbXNvbi01MCBzbTp0ZXh0LWJhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmhhc19lcnJvciB7XG4gIC5mb3JtX19pbnB1dCB7XG4gICAgQGFwcGx5IGJvcmRlciBib3JkZXItY3JpbXNvbi01MDtcbiAgfVxufVxudGV4dGFyZWEuZm9ybV9faW5wdXQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50ZXh0LWFyZWEge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNjBweDtcbiAgcmVzaXplOiBub25lO1xufVxuLmZvcm1fX2lucHV0IHtcbiAgQGFwcGx5IG1iLTIgYm94LWJvcmRlciB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgdGV4dC1ibHVlY29yYWwgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIHBhZGRpbmc6IDEzcHggMCAxM3B4IDE2cHg7XG4gIH1cbiAgcGFkZGluZzogMTBweCAwIDEwcHggMTZweDtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGFwcGx5IHRleHQtc20gZm9udC1ub3JtYWwgdGV4dC1uLTQwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgQGFwcGx5IGJvcmRlciBib3JkZXItbi01MCBiZy1uLTEwO1xuICB9XG5cbiAgJjpmb2N1czo6cGxhY2Vob2xkZXIge1xuICAgIEBhcHBseSB0ZXh0LW4tNTA7XG4gIH1cbn1cbi5pbnB1dF9fZmllbGQge1xuICAubXVsdGlzZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkIHtcbiAgICBAYXBwbHkgYmctbi0yMCB0ZXh0LW4tNTA7XG4gIH1cblxuICAubXVsdGlzZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkLmlzLXBvaW50ZWQge1xuICAgIEBhcHBseSBiZy1uLTIwIHRleHQtbi01MDtcbiAgfVxuXG4gIC5tdWx0aXNlbGVjdC5pcy1hY3RpdmUge1xuICAgIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwO1xuICB9XG5cbiAgLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBAYXBwbHkgdy1bMzEwcHhdIG92ZXJmbG93LWhpZGRlbiB3aGl0ZXNwYWNlLW5vd3JhcCBwci0zIHRleHQtc20gdGV4dC1uLTQwIGR1cmF0aW9uLTMwMDtcbiAgfVxuXG4gIC5tdWx0aXNlbGVjdC1wbGFjZWhvbGRlcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIEBhcHBseSBhYnNvbHV0ZSByaWdodC0wIHRvcC0zIGgtNiB3LTcgYmctd2hpdGU7XG4gIH1cblxuICAubXVsdGlzZWxlY3QuaXMtb3BlbiB7XG4gICAgLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBhcHBseSB0ZXh0LW4tNTA7XG4gICAgfVxuICB9XG5cbiAgLm11bHRpc2VsZWN0LWRyb3Bkb3duIHtcbiAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwO1xuICB9XG5cbiAgLm11bHRpc2VsZWN0LWNhcmV0IHtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybCgnL2ltYWdlcy9kcm9wZG93bi1hcnJvdy5zdmcnKTtcbiAgICBtYXNrLWltYWdlOiB1cmwoJy9pbWFnZXMvZHJvcGRvd24tYXJyb3cuc3ZnJyk7XG4gIH1cblxuICAubXVsdGlzZWxlY3Qtc2VhcmNoIHtcbiAgICBAYXBwbHkgY3Vyc29yLXBvaW50ZXIgYm9yZGVyIGJvcmRlci1uLTMwIHB5LTIuNTtcbiAgfVxuXG4gIC5tdWx0aXNlbGVjdC1zZWFyY2g6Zm9jdXMge1xuICAgIEBhcHBseSBiZy1uLTEwO1xuICB9XG5cbiAgLm11bHRpc2VsZWN0LXNlYXJjaDpmb2N1cyArIC5tdWx0aXNlbGVjdC1wbGFjZWhvbGRlcjo6YWZ0ZXIge1xuICAgIEBhcHBseSBiZy1uLTEwO1xuICB9XG5cbiAgLnZ1ZV9fc2VsZWN0IHtcbiAgICBAYXBwbHkgbWItMiBib3JkZXIgYm9yZGVyLW4tMzAgdGV4dC1zbSBsZWFkaW5nLTYgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgICBwYWRkaW5nOiAxNnB4IDBweCAxNnB4IDU1cHg7XG4gICAgfVxuICAgIHBhZGRpbmc6IDEzcHggMHB4IDEzcHggNTVweDtcbiAgfVxufVxuLmVycm9yX2lucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QxMDAxZTtcbn1cblxuLnBhbmVsX19pbnB1dCB7XG4gIEBhcHBseSBib3gtYm9yZGVyIGgtMTAgdy1mdWxsIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1uLTMwIGJnLXBhcGVyIHB5LTIuNSBwbC03IHByLTMgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGFwcGx5IHRleHQteHMgZm9udC1ub3JtYWwgdGV4dC1uLTMwIGR1cmF0aW9uLTMwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgfVxuXG4gICY6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgICBAYXBwbHkgdGV4dC1uLTQwO1xuICB9XG59XG4uc2VhcmNoIHtcbiAgQGFwcGx5IHJlbGF0aXZlO1xuXG4gICZfX2lucHV0IHtcbiAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTMwIGJnLXRyYW5zcGFyZW50IG91dGxpbmUtbm9uZTtcbiAgICBwYWRkaW5nOiAxMHB4IDQycHggMTBweCAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIH1cbiAgc3ZnIHtcbiAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0zIHRvcC0zIHRleHQtYmFzZSB0ZXh0LW4tMzA7XG4gIH1cbn1cbi5yZXF1aXJlZC1pY29uIHtcbiAgQGFwcGx5IHJlbGF0aXZlIHRvcC0wLjUgdGV4dC1iYXNlIGxlYWRpbmctbm9uZSB0ZXh0LWNyaW1zb24tNTA7XG59XG4iLCIuaWF0aS1saXN0LXRhYmxlIHtcbiAgQGFwcGx5IHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1uLTIwIHRleHQtbGVmdDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNDVweCk7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBAYXBwbHkgdGFibGUgdy1mdWxsICBiZy13aGl0ZTtcblxuICAgIC8vIG1pbi13aWR0aDogODAwcHggIWltcG9ydGFudCA7XG4gIH1cbiAgdGJvZHkge1xuICAgIHRyIHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICAgICAgICBAYXBwbHkgYmctbi0xMDtcbiAgICAgIH1cbiAgICB9XG4gICAgdHI6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICB0ZCxcbiAgICAgIHRoIHtcbiAgICAgICAgQGFwcGx5IHJlbGF0aXZlO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgICAgQGFwcGx5IGFic29sdXRlIGxlZnQtMCBib3R0b20tMCBoLXB4IHctZnVsbCBtYXgtdy1mdWxsIGJnLW4tMjA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRkOmZpcnN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgQGFwcGx5IG1sLTY7XG4gICAgICB9XG4gICAgICB0aC5jaGVjay1jb2x1bW46YWZ0ZXIge1xuICAgICAgICBAYXBwbHkgLW1sLTY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGgge1xuICAgIEBhcHBseSBweS00IHB4LTYgYWxpZ24tdG9wIHRleHQteHMgdXBwZXJjYXNlIGxlYWRpbmctbm9ybWFsO1xuXG4gICAgc3ZnIHtcbiAgICAgIEBhcHBseSBtci0xIHRleHQteGwgdGV4dC1uLTMwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGFwcGx5IGZsZXg7XG4gICAgICBzdmcge1xuICAgICAgICBAYXBwbHkgdGV4dC1iYXNlIHRleHQtYmx1ZWNvcmFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICBAYXBwbHkgcmVsYXRpdmUgcHktNCBweC02IGFsaWduLXRvcCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZDtcbiAgfVxuXG4gIHRyLmFscmVhZHktcHVibGlzaGVkIHtcbiAgICB0ZCxcbiAgICB0aC5jaGVjay1jb2x1bW4ge1xuICAgICAgQGFwcGx5IHB0LTExO1xuICAgIH1cbiAgfVxuXG4gIC5oYXMtc3RhdHVzIHtcbiAgICB0ZCB7XG4gICAgICBAYXBwbHkgcHgtNiBwdC0xMSBwYi03O1xuICAgIH1cbiAgICB0aCB7XG4gICAgICBAYXBwbHkgcHgtNiBwdC0xMSBwYi03O1xuICAgIH1cbiAgfVxuXG4gIC5jaGVjay1jb2x1bW4gLmNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cbn1cblxuLnVwbG9hZC1saXN0LXRhYmxlIHtcbiAgLnVwbG9hZC1lcnJvciB7XG4gICAgQGFwcGx5IGJnLXJvc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBhcHBseSBiZy1yb3NlO1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAudXBsb2FkLWVycm9yLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBkaXYge1xuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgQGFwcGx5IGJvcmRlci1iIGJvcmRlci1iLW4tMjAgcGItNDtcbiAgICAgIH1cblxuICAgICAgdWwge1xuICAgICAgICBAYXBwbHkgbXQtNCBzcGFjZS15LTQgdGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LWJsdWVjb3JhbDtcbiAgICAgIH1cblxuICAgICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzZweDtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgIEBhcHBseSBib3JkZXItYiBib3JkZXItYi1uLTIwIHBiLTQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDhweDtcbiAgICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIEBhcHBseSBiZy1ibHVlY29yYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLnVwbG9hZC1lcnJvci1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNnB4O1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgc3ZnIHtcbiAgICAgIGZvbnQtc2l6ZTogNnB4O1xuICAgIH1cblxuICAgICYub3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG4jY2Ige1xuICB3aWR0aDogNjhweDtcbn1cblxuI3N0YXR1cyB7XG4gIHdpZHRoOiAxOTJweDtcbn1cblxuI3B1Ymxpc2gge1xuICB3aWR0aDogMjgwcHg7XG59XG5cbiNkYXRlIHtcbiAgd2lkdGg6IDE3M3B4O1xufVxuLmlhdGktbGlzdC10YWJsZSB7XG4gIHRyIHtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICB9XG4gIHRkOm50aC1jaGlsZCgxKSB7XG4gICAgbWF4LXdpZHRoOiAxNTBweCAhaW1wb3J0YW50O1xuXG4gICAgYSB7XG4gICAgICBtYXgtd2lkdGg6IDE0NXB4ICFpbXBvcnRhbnQ7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLmNoZWNrYm94IHtcbiAgQGFwcGx5IHJlbGF0aXZlIGJsb2NrIGN1cnNvci1wb2ludGVyIHNlbGVjdC1ub25lO1xuICAuY2hlY2ttYXJrIHtcbiAgICBAYXBwbHkgZmxleCBoLTQgdy00IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkIGJvcmRlci0yIGJvcmRlci1uLTIwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6IDAgM3B4IDNweCAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAYXBwbHkgbWItMC41IGhpZGRlbiBoLTIgdy1bNXB4XSByb3RhdGUtNDUgYm9yZGVyLXNwcmluZy01MDtcbiAgICB9XG4gIH1cbiAgaW5wdXQge1xuICAgIEBhcHBseSBhYnNvbHV0ZSBoLTAgdy0wIGN1cnNvci1wb2ludGVyIG9wYWNpdHktMDtcbiAgICAmOmNoZWNrZWQgfiAuY2hlY2ttYXJrIHtcbiAgICAgIEBhcHBseSBib3JkZXItc3ByaW5nLTUwO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIEBhcHBseSBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJjpob3ZlciBpbnB1dCB+IC5jaGVja21hcmsge1xuICAgIEBhcHBseSBib3JkZXItc3ByaW5nLTUwO1xuICB9XG59XG4vKipcbiAgTGFyYXZlbCBmb3JtIGRlc2lnblxuICovXG5mb3JtIHtcbiAgLmZvcm0tZmllbGQtZ3JvdXAge1xuICAgIEBhcHBseSByZWxhdGl2ZSBwLTM7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIEBhcHBseSBtYi02O1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkIHtcbiAgICAgIEBhcHBseSBwLTM7XG4gICAgICAuaGVscC10ZXh0IHtcbiAgICAgICAgQGFwcGx5IG10LTIgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGJ1dHRvbi5kZWxldGUtaXRlbSB7XG4gICAgQGFwcGx5IGFic29sdXRlIGgtOCB3LTggY3Vyc29yLXBvaW50ZXIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbCBiZy1uLTQwIC1pbmRlbnQtNDA7XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy9pbWFnZXMvdHJhc2hfZnVsbC5zdmcnKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0xLzIgdG9wLTEvMiBoLVsxOHB4XSB3LVsxOHB4XSAtdHJhbnNsYXRlLXgtMS8yIC10cmFuc2xhdGUteS0xLzI7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgQGFwcGx5IGJnLWJsdWVjb3JhbDtcbiAgICB9XG4gIH1cblxuICAuZm9ybS1maWVsZC1ncm91cC1vdXRlciAuZm9ybS1maWVsZCB7XG4gICAgQGFwcGx5IHB4LTM7XG4gIH1cblxuICAuZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgQGFwcGx5IG1iLTIgZmxleCBqdXN0aWZ5LWJldHdlZW47XG4gICAgbGFiZWwge1xuICAgICAgQGFwcGx5IHRleHQteHMgbGVhZGluZy1yZWxheGVkO1xuICAgIH1cbiAgICAucmVxdWlyZWQge1xuICAgICAgQGFwcGx5IGZvbnQtYm9sZCB0ZXh0LXNhbG1vbi01MDtcbiAgICB9XG4gIH1cbiAgaW5wdXRbdHlwZT0ndGV4dCddLFxuICBpbnB1dFt0eXBlPSdkYXRlJ10sXG4gIHRleHRhcmVhIHtcbiAgICBAYXBwbHkgbXQtMCBoLTEyIHctZnVsbCByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCBweC00IHB5LTIuNSB0ZXh0LXNtIGxlYWRpbmctbm9ybWFsIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0zMDA7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTQwO1xuICAgIH1cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBhcHBseSBib3JkZXIgYm9yZGVyLW4tNTAgYmctbi0xMDtcbiAgICB9XG4gICAgJjpmb2N1czo6cGxhY2Vob2xkZXIge1xuICAgICAgQGFwcGx5IHRleHQtbi01MDtcbiAgICB9XG4gIH1cblxuICBpbnB1dFt0eXBlPSd0ZXh0J10sXG4gIGlucHV0W3R5cGU9J2RhdGUnXSB7XG4gICAgQGFwcGx5IGgtMTI7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIEBhcHBseSB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgcHgtNCBweS0zIHRleHQtc20gdGV4dC1uLTQwIG91dGxpbmUtbm9uZSBkdXJhdGlvbi0zMDA7XG4gICAgJjpmb2N1cyB7XG4gICAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1uLTUwIGJnLW4tMTA7XG4gICAgfVxuICB9XG4gIC5oZWxwIHtcbiAgICBAYXBwbHkgcmVsYXRpdmU7XG4gICAgJl9fdGV4dCB7XG4gICAgICBAYXBwbHkgaW52aXNpYmxlIGFic29sdXRlIHRvcC00IHotMjAgc3BhY2UteS0xLjUgcm91bmRlZCBiZy1lZ2dzaGVsbCBwLTQgdGV4dC1sZWZ0IHRleHQteHMgdGV4dC1uLTQwIG9wYWNpdHktMCBkdXJhdGlvbi0yMDA7XG4gICAgICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiKDAgMCAwIC8gMTAlKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICAgIH1cbiAgfVxuICAuaGVscDpob3ZlciB7XG4gICAgLmhlbHBfX3RleHQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbiAgLmFkZF9tb3JlIHtcbiAgICBAYXBwbHkgcmVsYXRpdmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0wIHRvcC0wIGgtMS8yIHctcHggYm9yZGVyLWwgYm9yZGVyLXNwcmluZy01MDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTIvNCBoLXB4IHctMy41IC10cmFuc2xhdGUteS0xLzIgYm9yZGVyLWIgYm9yZGVyLXNwcmluZy01MDtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcvaW1hZ2VzL2FkZC1tb3JlLWdyZWVuLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgfVxuICB9XG4gIC5zdWJlbGVtZW50IHtcbiAgICAmLmJvcmRlci1sID4gbGFiZWwge1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICAgIC5zdWJlbGVtZW50LFxuICAgIC5zdWJlbGVtZW50ICsgYnV0dG9uIHtcbiAgICAgIEBhcHBseSBtbC02O1xuICAgIH1cblxuICAgIC53cmFwcGVkLWNoaWxkLWJvZHkge1xuICAgICAgQGFwcGx5IHJlbGF0aXZlO1xuICAgICAgPiAuZGVsZXRlLXBhcmVudCB7XG4gICAgICAgIEBhcHBseSBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAubXVsdGktZm9ybTpvbmx5LW9mLXR5cGUgPiAuZGVsZXRlLXBhcmVudCxcbiAgICAud3JhcHBlZC1jaGlsZC1ib2R5Om9ubHktb2YtdHlwZSA+IC5kZWxldGUtcGFyZW50IHtcbiAgICAgIEBhcHBseSBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tZmllbGQtZ3JvdXA6b25seS1vZi10eXBlID4gLmRlbGV0ZS1pdGVtIHtcbiAgICBAYXBwbHkgaGlkZGVuO1xuICB9XG5cbiAgLyoqXG4gICogQ29uZGl0aW9uIHRvIHNob3cgYW5kIGRlbGV0ZSBjb2xsZWN0aW9uIGVycm9yIGluIGZvcm1cbiAgKi9cbiAgLmNvbGxlY3Rpb25fZXJyb3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubXVsdGktZm9ybSArIC5jb2xsZWN0aW9uX2Vycm9yLFxuICAuZm9ybS1maWVsZC1ncm91cCArIC5jb2xsZWN0aW9uX2Vycm9yLFxuICAud3JhcHBlZC1jaGlsZC1ib2R5ICsgLmNvbGxlY3Rpb25fZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8qKlxuICBTZWxlY3QgMiBmaWVsZFxuKi9cbnNwYW4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICAgIEBhcHBseSBoLTEyIHctZnVsbCByb3VuZGVkIGJvcmRlciBib3JkZXItbi0zMCBweC00IHB5LTMgdGV4dC1zbSB0ZXh0LW4tNDAgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgIEBhcHBseSBwLTAgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbDtcbiAgICB9XG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gICAgICBAYXBwbHkgaC0xMTtcbiAgICB9XG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciBzcGFuIHtcbiAgICAgIEBhcHBseSBtci0yLjUgdGV4dC1zbTtcbiAgICB9XG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlciB7XG4gICAgICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tNDA7XG4gICAgfVxuICB9XG4gIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xuICAgIGNvbG9yOiAjMWYyOTM3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Y0ZjY7XG4gIH1cbiAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uW2FyaWEtc2VsZWN0ZWRdIHtcbiAgICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tNTA7XG4gIH1cbn1cbi5tYXgtdy1oYWxmIHtcbiAgbWF4LXdpZHRoOiA1MCU7XG59XG5cbi8qKlxuICBBY3Rpdml0eSBEZXRhaWwgUGFnZVxuKi9cbi5hY3Rpdml0aWVzIHtcbiAgQGFwcGx5IGZsZXggZ2FwLTUgeGw6Z2FwLTc7XG5cbiAgJl9fc2lkZWJhciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDI4MHB4O1xuXG4gICAgJi1pbm5lciB7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDUwcHgpO1xuICAgIH1cbiAgfVxuXG4gICZfX2NhcmQge1xuICAgIEBhcHBseSBmbGV4IGZsZXgtY29sIGJnLXdoaXRlIHRleHQtY2VudGVyIHRleHQteHMgdGV4dC1uLTQwO1xuICAgIHBhZGRpbmc6IDEzcHg7XG4gIH1cblxuICAucHJvZ3Jlc3Mge1xuICAgIEBhcHBseSBpdGVtcy1jZW50ZXI7XG4gICAgd2lkdGg6IDE1MXB4O1xuICAgIG1pbi1oZWlnaHQ6IDE3NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAwcHggMHB4IDhweDtcbiAgfVxuXG4gIC50YWItYnRuOmRpc2FibGVkIHtcbiAgICBAYXBwbHkgcG9pbnRlci1ldmVudHMtbm9uZSB0ZXh0LW4tMjA7XG5cbiAgICBzdmcge1xuICAgICAgQGFwcGx5IHRleHQtbi0yMDtcbiAgICB9XG4gIH1cbiAgLmhvdmVyLXRleHQge1xuICAgIHN2ZyB7XG4gICAgICBAYXBwbHkgdGV4dC1uLTMwO1xuICAgIH1cbiAgfVxufVxuLmVsZW1lbnRzLWNhcmQge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4ubWFudWFsLWltcG9ydCB7XG4gIC5oZWxwX190ZXh0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAzNTBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4ucmVnaXN0cnlfX2luZm8sXG4ucmVnaXN0ZXIsXG5hc2lkZSB7XG4gIC5oZWxwX190ZXh0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgIWltcG9ydGFudDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAyNTBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuLmltcG9ydC1hY3Rpdml0eSxcbi5hY3Rpdml0aWVzX19jb250ZW50LS1lbGVtZW50IHtcbiAgLmhlbHBfX3RleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSAhaW1wb3J0YW50O1xuICB9XG59XG5hc2lkZSB7XG4gIC5wcm9ncmVzcyB7XG4gICAgLmhlbHBfX3RleHQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NSUpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4uYWN0aXZpdGllc19fY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRhYi1idG4ge1xuICAuaGVscF9fdGV4dCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbi5hY3Rpdml0eS1kZWZhdWx0LXZhbHVlIHtcbiAgLmhlbHBfX3RleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLnBhZ2luYXRpb24ge1xuICBAYXBwbHkgcmVsYXRpdmUgei0wIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy13aGl0ZSB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW4tNDA7XG5cbiAgPiBhLFxuICA+IHNwYW4ge1xuICAgIEBhcHBseSBmbGV4IGJvcmRlci15IGJvcmRlci1sIGJvcmRlci1uLTIwIHB5LTEuNSBweC0zO1xuXG4gICAgJjpub3QoLnByZXYtYnRuKSB7XG4gICAgICBAYXBwbHkgYm9yZGVyLWwgYm9yZGVyLW4tMjA7XG4gICAgfVxuXG4gICAgJi5wcmV2LWJ0bixcbiAgICAmLm5leHQtYnRuIHtcbiAgICAgIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1uLTEwO1xuXG4gICAgICBzdmcge1xuICAgICAgICBAYXBwbHkgdGV4dC14cztcbiAgICAgIH1cbiAgICB9XG4gICAgJi5wcmV2LWJ0biB7XG4gICAgICBAYXBwbHkgcm91bmRlZC10bCByb3VuZGVkLWJsO1xuICAgIH1cblxuICAgICYubmV4dC1idG4ge1xuICAgICAgQGFwcGx5IHJvdW5kZWQtYnIgcm91bmRlZC10ciBib3JkZXItcjtcbiAgICB9XG5cbiAgICAmLnByZXYtYnRuIHN2ZyB7XG4gICAgICBAYXBwbHkgbXItMTtcbiAgICB9XG5cbiAgICAmLm5leHQtYnRuIHN2ZyB7XG4gICAgICBAYXBwbHkgbWwtMTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICYuY3VycmVudCB7XG4gICAgICBAYXBwbHkgYmctYmx1ZWNvcmFsIHRleHQtcGFwZXI7XG4gICAgfVxuICB9XG59XG4iLCIub3ZlcmxheSB7XG4gIEBhcHBseSBmaXhlZCBsZWZ0LTAgdG9wLTAgaC1mdWxsIHctZnVsbCBiZy1ibGFjaztcbiAgei1pbmRleDogMTAwO1xuICBvcGFjaXR5OiAwLjc7XG5cbiAgJl9faW5uZXIge1xuICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgaC1mdWxsIHctZnVsbDtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTIvNCB0b3AtMi80O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgLnNwaW5uZXIge1xuICAgICAgQGFwcGx5IGlubGluZS1ibG9jayBhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci1uLTEwIGJvcmRlci1vcGFjaXR5LTU7XG4gICAgICB3aWR0aDogNzVweDtcbiAgICAgIGhlaWdodDogNzVweDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxufVxuIiwiLnNlbGVjdDItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjdmOTtcbiAgfVxuXG4gIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMyYTJmMzA7XG4gICAgfVxuXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgfVxuICB9XG59XG5cbi5zZWxlY3QyLWRyb3Bkb3duIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTAwMDAwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcbiAgcGFkZGluZzogNnB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAmW2FyaWEtc2VsZWN0ZWRdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcbiAgLnNlbGVjdDItZHJvcGRvd24ge1xuICAgIGxlZnQ6IDA7XG5cbiAgICAmLS1hYm92ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIH1cblxuICAgICYtLWJlbG93IHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uc2VsZWN0Mi1zZWFyY2gtLWRyb3Bkb3duIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDRweDtcblxuICAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYTZiNWJhO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcblxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5bdHlwZT0nc2VhcmNoJ10ge1xuICBvdXRsaW5lLWNvbG9yOiAjYTZiNWJhO1xuICBvdXRsaW5lLW9mZnNldDogMDtcbn1cblxuLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XG4gIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgIGNvbG9yOiAjMTU1MzY2O1xuICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgfVxuXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgIH1cblxuICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICByaWdodDogMXB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDI2cHg7XG5cbiAgICAgIGIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgICBib3JkZXItY29sb3I6ICM4ODggdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogNXB4IDRweCAwIDRweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnNlbGVjdDItcmVzdWx0cyA+IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbnMge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1vcGVuIHtcbiAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gICAgYiB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM4ODggdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItd2lkdGg6IDAgNHB4IDVweCA0cHg7XG4gICAgfVxuICB9XG5cbiAgJi5zZWxlY3QyLWNvbnRhaW5lci0tYWJvdmUge1xuICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICB9XG4gIH1cblxuICAmLnNlbGVjdDItY29udGFpbmVyLS1iZWxvdyB7XG4gICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLnNpZGViYXItb3Blbi1pY29uIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBoZWlnaHQ6IDQwcHg7XG4gIGxlZnQ6IDBweDtcbiAgYm90dG9tOiA1MHB4O1xuICB6LWluZGV4OiA2MDtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZGRlMDtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMTAwJSAxMDAlIDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICB9XG5cbiAgc3ZnIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAjMTU1MzY2O1xuICB9XG59XG4uZGV0YWlscy1zaWRlYmFyLWNsb3NlLWljb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAyODBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkZGUwO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICB6LWluZGV4OiAyMDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG5cbiAgc3ZnIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgY29sb3I6ICMxNTUzNjY7XG4gIH1cbn1cbi5zaWRlYmFyLWNsb3NlLWljb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogNTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAyNzVweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkZGUwO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICB6LWluZGV4OiAyMDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICAgbGVmdDogMjQwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGNvbG9yOiAjMTU1MzY2O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/
\ No newline at end of file
diff --git a/public/js/app.js b/public/js/app.js
index a9d50ba404..22a80a558e 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -205,6 +205,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
+ var translation = window['globalLang'];
var showUserDropdown = (0, vue_2.ref)(false);
var toastVisibility = (0, vue_2.ref)(false);
var showSidebar = (0, vue_2.ref)(false);
@@ -229,20 +230,20 @@ exports["default"] = (0, vue_1.defineComponent)({
active: false
}],
menus: [{
- name: 'Activity DATA',
+ name: translation.admin.header.activity_data,
permalink: '/activities',
active: true
}, {
- name: 'Organisation DATA',
+ name: translation.admin.header.organisation_data,
permalink: '/organisation',
active: false
}, {
- name: 'Settings',
+ name: translation.admin.header.settings,
permalink: '/setting',
active: false
}, {
- name: 'Add / Import Activity',
- permalink: '',
+ name: translation.common_lang.add_import_activity,
+ permalink: '#',
active: false
}]
});
@@ -380,6 +381,7 @@ exports["default"] = (0, vue_1.defineComponent)({
localStorage.removeItem('openAddModel');
});
var __returned__ = {
+ translation: translation,
showUserDropdown: showUserDropdown,
toastVisibility: toastVisibility,
showSidebar: showSidebar,
@@ -536,7 +538,10 @@ exports["default"] = (0, vue_1.defineComponent)({
components: {},
props: {},
setup: function setup() {
- return {};
+ var language = window["globalLang"];
+ return {
+ language: language
+ };
}
});
@@ -728,6 +733,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var show = (0, vue_2.ref)(false);
var hasErrors = (0, vue_2.ref)(false);
var errorCount = (0, vue_2.ref)(0);
@@ -793,6 +799,7 @@ exports["default"] = (0, vue_1.defineComponent)({
});
});
var __returned__ = {
+ language: language,
show: show,
hasErrors: hasErrors,
errorCount: errorCount,
@@ -848,6 +855,7 @@ exports["default"] = (0, vue_1.defineComponent)({
emit = _a.emit;
expose();
var props = __props;
+ var language = window["globalLang"];
var close = function close() {
emit('close-popup', 'closed');
@@ -860,6 +868,7 @@ exports["default"] = (0, vue_1.defineComponent)({
document.documentElement.style.overflow = 'auto';
});
var __returned__ = {
+ language: language,
emit: emit,
props: props,
close: close
@@ -925,6 +934,12 @@ exports["default"] = (0, vue_1.defineComponent)({
required: false,
"default": false
}
+ },
+ setup: function setup() {
+ var language = window["globalLang"];
+ return {
+ language: language
+ };
}
});
@@ -1122,6 +1137,7 @@ exports["default"] = (0, vue_1.defineComponent)({
emits: ['fetchActivities'],
setup: function setup(props, _a) {
var emit = _a.emit;
+ var language = window["globalLang"];
var active_page = (0, vue_1.ref)(1);
(0, vue_1.watch)(active_page, function () {
emit('fetchActivities', active_page.value);
@@ -1149,7 +1165,8 @@ exports["default"] = (0, vue_1.defineComponent)({
updateActivePage: updateActivePage,
nextPage: nextPage,
previousPage: previousPage,
- changePage: changePage
+ changePage: changePage,
+ language: language
};
}
});
@@ -1259,6 +1276,7 @@ exports["default"] = (0, vue_1.defineComponent)({
text: 'Please Wait'
}); // call api for unpublishing
+ var language = window["globalLang"];
var toastMessage = (0, vue_2.inject)('toastMessage');
var deleteFunction = function deleteFunction() {
@@ -1287,6 +1305,7 @@ exports["default"] = (0, vue_1.defineComponent)({
deleteValue: deleteValue,
deleteToggle: deleteToggle,
loader: loader,
+ language: language,
toastMessage: toastMessage,
deleteFunction: deleteFunction,
BtnComponent: ButtonComponent_vue_1["default"],
@@ -1429,6 +1448,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
var props = __props;
+ var language = window["globalLang"];
var _b = (0, vue_2.toRefs)(props),
linkedToIati = _b.linkedToIati,
@@ -1477,13 +1497,16 @@ exports["default"] = (0, vue_1.defineComponent)({
icon = 'tick'; // different content for step 1 based on coreElement status
if (coreElementStatus) {
- title = 'Core Elements Complete';
- description = 'Congratulations! All the core elements are complete. Continue to Validate this activity.';
+ title = language.common_lang.core_completed_title;
+ description = language.common_lang.core_completed_description;
} else {
- title = 'Core Elements not complete';
- description = 'There is missing data in some of the core elements. We highly recommend that you complete these data fields to help ensure your data is useful.
Do you want to continue anyway and run checks on (validate) this data.
';
+ title = language.common_lang.core_not_completed_title;
+ description = language.common_lang.core_not_completed_description;
icon = 'warning-fill';
- }
+ } //creating a shorter variable so that building error description for case 3 and 4 becomes easire
+
+
+ var s = language.common_lang.sticky.common;
switch (publishStep.value) {
// first step
@@ -1496,32 +1519,32 @@ exports["default"] = (0, vue_1.defineComponent)({
//second step
case 1:
- publishState.title = "Activity will be validated before publishing";
- publishState.description = "This activity will be first validated before publishing the activity to the IATI Registry. ";
+ publishState.title = language.common_lang.sticky.title_1;
+ publishState.description = language.common_lang.sticky.description_1;
publishState.icon = "shield";
publishState.alertState = false;
break;
// case 2 is for success validation
case 2:
- publishState.title = "IATI Validation";
- publishState.description = "Congratulations! No errors were found. Publish your data now.
This data will be available on the IATI Datastore and other data portals/tools/software that use IATI data.
";
+ publishState.title = language.common_lang.sticky.title_2;
+ publishState.description = language.common_lang.sticky.description_2;
publishState.icon = "tick";
publishState.alertState = true;
break;
//case 3 is for validation with critical errors
case 3:
- publishState.title = "IATI Validation Issue";
- publishState.description = "".concat(err.criticalNumber, " critical errors , ").concat(err.errorNumber, " errors and ").concat(err.warningNumber, " warnings were found. View information about these errors/warnings at the top of the activity page.
As your data has at least one critical error, it will not be available on the IATI Datastore and may not be available on other data portals/tools/software that use IATI data.
We highly recommend you fix these issue(s) before publishing your activity to improve the quality and usefulness of your data.
");
+ publishState.title = language.common_lang.sticky.title_3;
+ publishState.description = "".concat(err.criticalNumber, " ").concat(s.critical, " ").concat(s.errors, " , ").concat(err.errorNumber, " ").concat(s.errors, " ").concat(s.and, " ").concat(err.warningNumber, " ").concat(s.warnings, " ").concat(s.warnings, ". ").concat(s.critical, "
").concat(s.has_atleast_one_critical_error, "
").concat(s.we_highly_recommend, "
");
publishState.icon = "warning-fill";
publishState.alertState = false;
break;
// case 4 is for validation without critical errors
case 4:
- publishState.title = "IATI Validation Issue";
- publishState.description = "".concat(err.errorNumber, " errors and ").concat(err.warningNumber, " warnings were found. View information about these errors/warnings at the top of the activity page.
We highly recommend you fix these issue(s) before publishing your activity to improve the quality and usefulness of your data.
");
+ publishState.title = language.common_lang.sticky.title_3;
+ publishState.description = "".concat(err.errorNumber, " ").concat(s.errors, " ").concat(s.and, " ").concat(err.warningNumber, " ").concat(s.warnings, " ").concat(s.were_found, ". ").concat(s.view_information, "
").concat(s.we_highly_recommend, "
");
publishState.icon = "warning-fill";
publishState.alertState = false;
break;
@@ -1551,7 +1574,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var validatorFunction = function validatorFunction() {
loader.value = true;
- loaderText.value = 'Validating Activity';
+ loaderText.value = "".concat(language.common_lang.validating, " ").concat(language.common_lang.activity);
axios_1["default"].post("/activity/".concat(id, "/validateActivity")).then(function (res) {
var response = res.data;
var errors = response.errors;
@@ -1603,7 +1626,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var publishFunction = function publishFunction() {
loader.value = true;
- loaderText.value = 'Publishing Activity';
+ loaderText.value = "".concat(language.common_lang.publishing, " ").concat(language.common_lang.activity);
resetPublishStep();
axios_1["default"].post("/activity/".concat(id, "/publish")).then(function (res) {
var response = res.data;
@@ -1622,14 +1645,15 @@ exports["default"] = (0, vue_1.defineComponent)({
});
var btnText = (0, vue_2.computed)(function () {
if (publishStatus.linked_to_iati && publishStatus.status === 'draft') {
- return 'Republish';
+ return language.button_lang.republish;
} else if (!publishStatus.linked_to_iati && publishStatus.status === 'draft') {
- return 'Publish';
+ return language.button_lang.publish;
} else {
return '';
}
});
var __returned__ = {
+ language: language,
props: props,
linkedToIati: linkedToIati,
status: status,
@@ -1721,6 +1745,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
var props = __props;
+ var language = window["globalLang"];
var activityId = (0, vue_2.toRefs)(props).activityId; // toggle state for modal popup
var _b = (0, core_1.useToggle)(),
@@ -1734,14 +1759,14 @@ exports["default"] = (0, vue_1.defineComponent)({
var loader = (0, vue_2.reactive)({
value: false,
- text: 'Please Wait'
+ text: language.common_lang.please_wait
}); // call api for unpublishing
var toastMessage = (0, vue_2.inject)('toastMessage');
var unPublishFunction = function unPublishFunction() {
loader.value = true;
- loader.text = 'Unpublishing';
+ loader.text = language.common_lang.unpublishing;
axios_1["default"].post("/activity/".concat(id, "/unpublish")).then(function (res) {
var response = res.data;
toastMessage.message = response.message;
@@ -1760,6 +1785,7 @@ exports["default"] = (0, vue_1.defineComponent)({
};
var __returned__ = {
+ language: language,
props: props,
activityId: activityId,
unpublishValue: unpublishValue,
@@ -1811,8 +1837,7 @@ var axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/a
var ButtonComponent_vue_1 = __importDefault(__webpack_require__(/*! Components/ButtonComponent.vue */ "./resources/assets/js/components/ButtonComponent.vue"));
-var PopupModal_vue_1 = __importDefault(__webpack_require__(/*! Components/PopupModal.vue */ "./resources/assets/js/components/PopupModal.vue")); // props
-
+var PopupModal_vue_1 = __importDefault(__webpack_require__(/*! Components/PopupModal.vue */ "./resources/assets/js/components/PopupModal.vue"));
exports["default"] = (0, vue_1.defineComponent)({
__name: 'DeleteAction',
@@ -1829,7 +1854,9 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
- var props = __props; // toggle state for modal popup
+ var props = __props;
+ var language = window["globalLang"]; // props
+ // toggle state for modal popup
var _b = (0, core_1.useToggle)(),
deleteValue = _b[0],
@@ -1859,6 +1886,7 @@ exports["default"] = (0, vue_1.defineComponent)({
};
var __returned__ = {
+ language: language,
props: props,
deleteValue: deleteValue,
deleteToggle: deleteToggle,
@@ -2087,6 +2115,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"]; // toggle state for modal popup
var _b = (0, core_1.useToggle)(),
publishValue = _b[0],
@@ -2195,6 +2224,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
});
var __returned__ = {
+ language: language,
publishValue: publishValue,
publishToggle: publishToggle,
unpublishValue: unpublishValue,
@@ -2363,7 +2393,8 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
- var props = __props; // toggle issues
+ var props = __props;
+ var language = window["globalLang"]; // toggle issues
var _b = (0, core_1.useToggle)(),
errorValue = _b[0],
@@ -2414,6 +2445,7 @@ exports["default"] = (0, vue_1.defineComponent)({
updateTempMessage();
});
var __returned__ = {
+ language: language,
props: props,
errorValue: errorValue,
errorToggle: errorToggle,
@@ -2461,10 +2493,12 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
var props = __props;
+ var language = window["globalLang"];
var data = (0, vue_2.toRefs)(props).data;
var color = data.value ? 'text-spring-50' : 'text-crimson-50',
- text = data.value ? 'completed' : 'not completed';
+ text = data.value ? language.common_lang.completed : language.common_lang.not_completed;
var __returned__ = {
+ language: language,
props: props,
data: data,
color: color,
@@ -2500,7 +2534,7 @@ exports["default"] = (0, vue_1.defineComponent)({
props: {
text: {
type: String,
- "default": 'Previously Published on IATI'
+ "default": window["globalLang"].common_lang.previously_published_on_iati
},
icon: {
type: String,
@@ -2510,6 +2544,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ ;
var __returned__ = {};
Object.defineProperty(__returned__, '__isScriptSetup', {
enumerable: false,
@@ -2710,10 +2745,6 @@ var axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/a
var Loader_vue_1 = __importDefault(__webpack_require__(/*! Components/Loader.vue */ "./resources/assets/js/components/Loader.vue"));
var ToastMessage_vue_1 = __importDefault(__webpack_require__(/*! Components/ToastMessage.vue */ "./resources/assets/js/components/ToastMessage.vue"));
-/**
- * Props
- */
-
exports["default"] = (0, vue_1.defineComponent)({
__name: 'ActivityDefaultValue',
@@ -2745,6 +2776,11 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
var props = __props;
+ var language = window['globalLang'];
+ /**
+ * Props
+ */
+
/**
* Reactive variables
*/
@@ -2831,6 +2867,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
var __returned__ = {
+ language: language,
props: props,
defaultValues: defaultValues,
defaultErrors: defaultErrors,
@@ -2972,6 +3009,8 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
+
var _a = (0, vue_1.toRefs)(props),
types = _a.types,
coreCompleted = _a.coreCompleted;
@@ -3183,8 +3222,8 @@ exports["default"] = (0, vue_1.defineComponent)({
*/
var breadcrumbData = [{
- title: 'Your Activities',
- link: '/activities'
+ title: language.activities_lang.your_activities,
+ link: "/activities"
}, {
title: pageTitle,
link: ''
@@ -3234,7 +3273,8 @@ exports["default"] = (0, vue_1.defineComponent)({
toggleSidebar: toggleSidebar,
istopVisible: istopVisible,
screenWidth: screenWidth,
- width: width
+ width: width,
+ language: language
};
}
});
@@ -3773,6 +3813,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var _this = this;
var emit = _a.emit;
+ var language = window["globalLang"];
var formData = (0, vue_1.reactive)({
narrative: '',
language: '',
@@ -3832,7 +3873,8 @@ exports["default"] = (0, vue_1.defineComponent)({
languages: languages,
organization: organization,
closeModal: closeModal,
- storeActivity: storeActivity
+ storeActivity: storeActivity,
+ language: language
};
}
});
@@ -4005,8 +4047,7 @@ var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bund
var vue_2 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/axios/index.js")); //inject
-
+var axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/axios/index.js"));
exports["default"] = (0, vue_1.defineComponent)({
__name: 'BulkPublishing',
@@ -4016,6 +4057,8 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
var refreshToastMsg = (0, vue_2.inject)("refreshToastMsg");
+ var language = window["globalLang"]; //inject
+
var paStorage = (0, vue_2.inject)("paStorage");
var activities = (0, vue_2.ref)(paStorage.value.publishingActivities.activities),
completed = (0, vue_2.ref)("processing");
@@ -4183,6 +4226,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var __returned__ = {
refreshToastMsg: refreshToastMsg,
+ language: language,
paStorage: paStorage,
activities: activities,
completed: completed,
@@ -4237,6 +4281,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var selectedActivities = (0, vue_2.inject)('selectedActivities');
var toggle = (0, vue_2.ref)(false);
@@ -4279,6 +4324,7 @@ exports["default"] = (0, vue_1.defineComponent)({
};
var __returned__ = {
+ language: language,
selectedActivities: selectedActivities,
toggle: toggle,
accordionToggle: accordionToggle,
@@ -4348,6 +4394,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
/**
* Global State
*/
@@ -4363,7 +4410,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var loader = (0, vue_2.ref)(false); // Dynamic text for loader
- var loaderText = (0, vue_2.ref)('Please Wait'); // reset step to zero after closing modal
+ var loaderText = (0, vue_2.ref)(language.common_lang.please_wait); // reset step to zero after closing modal
var resetPublishStep = function resetPublishStep() {
bulkPublishStep.value = 1;
@@ -4423,7 +4470,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var verifyCoreElements = function verifyCoreElements() {
loader.value = true;
- loaderText.value = 'Verifying Core Elements';
+ loaderText.value = language.common_lang.verifying_core_elements;
var activities = store.state.selectedActivities.join(', ');
axios_1["default"].get("/activities/core-elements-completed?activities=[".concat(activities, "]")).then(function (res) {
var response = res.data;
@@ -4452,7 +4499,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var validateActivities = function validateActivities() {
loader.value = true;
- loaderText.value = 'Validating Activity';
+ loaderText.value = language.common_lang.validating_activities;
var activities = store.state.selectedActivities.join(', ');
axios_1["default"].post("/activities/validate-activities?activities=[".concat(activities, "]")).then(function (res) {
var response = res.data;
@@ -4484,7 +4531,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var startBulkPublish = function startBulkPublish() {
loader.value = true;
- loaderText.value = 'Starting to publish';
+ loaderText.value = language.common_lang.starting_to_publish;
pa.value.publishingActivities = {};
axios_1["default"].get("activities/start-bulk-publish?activities=[".concat(selectedActivities.value, "]")).then(function (res) {
var response = res.data;
@@ -4503,6 +4550,7 @@ exports["default"] = (0, vue_1.defineComponent)({
(0, vue_2.provide)('paStorage', pa);
var __returned__ = {
+ language: language,
store: store,
publishAlertValue: publishAlertValue,
publishAlertToggle: publishAlertToggle,
@@ -4572,11 +4620,13 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
var props = __props;
+ var language = window["globalLang"];
var className = (0, vue_2.ref)('');
className.value = props.type ? 'bg-mint border-spring-10' : 'bg-crimson-10 border-crimson-20';
var className2 = (0, vue_2.ref)('');
className2.value = props.type ? 'text-spring-50 hover:text-spring-50' : 'text-crimson-50 hover:text-crimson-50';
var __returned__ = {
+ language: language,
props: props,
className: className,
className2: className2
@@ -4625,10 +4675,12 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
- var criticalMessage = "Data will not be available on the IATI Datastore and may not be available on other data portals/tools/software that use IATI data. We highly recommend you fix these issue(s) before publishing.";
- var warningMessage = "We highly recommend you fix these issue(s) before publishing your activity to improve the quality and usefulness of your data.";
- var noErrorMessage = "Congratulations! No errors were found. Publish your data now. This data will be available on the IATI Datastore and other data portals/tools/ software that use IATI data.";
+ var language = window["globalLang"];
+ var criticalMessage = language.common_lang.message.critical;
+ var warningMessage = language.common_lang.message.warning;
+ var noErrorMessage = language.common_lang.message.no_error;
var __returned__ = {
+ language: language,
criticalMessage: criticalMessage,
warningMessage: warningMessage,
noErrorMessage: noErrorMessage,
@@ -4677,6 +4729,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var types = (0, vue_1.inject)('types');
function formatDate(date) {
@@ -4685,7 +4738,8 @@ exports["default"] = (0, vue_1.defineComponent)({
return {
types: types,
- formatDate: formatDate
+ formatDate: formatDate,
+ language: language
};
}
});
@@ -4724,10 +4778,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var types = (0, vue_1.inject)("types");
return {
types: types,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -4759,9 +4815,11 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window['globalLang'];
var types = (0, vue_1.inject)("types");
return {
- types: types
+ types: types,
+ language: language
};
}
});
@@ -4793,9 +4851,11 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window['globalLang'];
var types = (0, vue_1.inject)('types');
return {
- types: types
+ types: types,
+ language: language
};
}
});
@@ -4830,8 +4890,10 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("types");
var __returned__ = {
+ language: language,
types: types
};
Object.defineProperty(__returned__, '__isScriptSetup', {
@@ -4898,7 +4960,10 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
- return {};
+ var language = window['globalLang'];
+ return {
+ language: language
+ };
}
});
@@ -4929,9 +4994,11 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window['globalLang'];
var types = (0, vue_1.inject)('types');
return {
- types: types
+ types: types,
+ language: language
};
}
});
@@ -4963,8 +5030,10 @@ exports["default"] = (0, vue_1.defineComponent)({
},
setup: function setup() {
var types = (0, vue_1.inject)('types');
+ var language = window['globalLang'];
return {
- types: types
+ types: types,
+ language: language
};
}
});
@@ -4995,9 +5064,11 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window['globalLang'];
var types = (0, vue_1.inject)('types');
return {
- types: types
+ types: types,
+ language: language
};
}
});
@@ -5045,9 +5116,11 @@ exports["default"] = (0, vue_1.defineComponent)({
return (0, moment_1["default"])(date).format("LL");
}
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("types");
var __returned__ = {
formatDate: formatDate,
+ language: language,
types: types
};
Object.defineProperty(__returned__, '__isScriptSetup', {
@@ -5092,10 +5165,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var types = (0, vue_1.inject)("types");
return {
types: types,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -5126,6 +5201,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var types = (0, vue_1.inject)('types');
function roundFloat(num) {
@@ -5134,7 +5210,8 @@ exports["default"] = (0, vue_1.defineComponent)({
return {
types: types,
- roundFloat: roundFloat
+ roundFloat: roundFloat,
+ language: language
};
}
});
@@ -5169,6 +5246,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)('types');
function roundFloat(num) {
@@ -5176,6 +5254,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
var __returned__ = {
+ language: language,
types: types,
roundFloat: roundFloat
};
@@ -5259,8 +5338,10 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("types");
var __returned__ = {
+ language: language,
types: types
};
Object.defineProperty(__returned__, '__isScriptSetup', {
@@ -5340,6 +5421,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var format = 'MMMM DD, YYYY';
var data = (0, vue_1.toRefs)(props).data;
var resultData = data.value.content;
@@ -5350,7 +5432,8 @@ exports["default"] = (0, vue_1.defineComponent)({
resultData: resultData,
getActivityTitle: title_1["default"],
currentLanguage: currentLanguage,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -5381,6 +5464,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var types = (0, vue_1.inject)("types");
function roundFloat(num) {
@@ -5389,7 +5473,8 @@ exports["default"] = (0, vue_1.defineComponent)({
return {
types: types,
- roundFloat: roundFloat
+ roundFloat: roundFloat,
+ language: language
};
}
});
@@ -5428,10 +5513,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var types = (0, vue_1.inject)("types");
return {
types: types,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -5463,9 +5550,11 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var types = (0, vue_1.inject)("types");
return {
- types: types
+ types: types,
+ language: language
};
}
});
@@ -5509,10 +5598,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var types = (0, vue_1.inject)("types");
return {
types: types,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -5599,6 +5690,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var linkClasses = 'flex items-center w-full bg-white rounded p-2 text-sm text-n-50 font-bold leading-normal mb-2 shadow-default';
var toastData = (0, vue_1.reactive)({
visibility: false,
@@ -5649,8 +5741,8 @@ exports["default"] = (0, vue_1.defineComponent)({
var breadcrumbData = [{
- title: 'Your Activities',
- link: '/activities'
+ title: language.activities_lang.your_activities,
+ link: "/activities"
}, {
title: (0, title_1["default"])(activityTitle, 'en'),
link: activityLink
@@ -5705,7 +5797,8 @@ exports["default"] = (0, vue_1.defineComponent)({
toastData: toastData,
periodData: periodData,
showSidebar: showSidebar,
- istopVisible: istopVisible
+ istopVisible: istopVisible,
+ language: language
};
}
});
@@ -5928,6 +6021,8 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(props) {
var _this = this;
+ var language = window["globalLang"];
+
var _a = (0, vue_1.toRefs)(props),
activity = _a.activity,
parentData = _a.parentData;
@@ -5951,7 +6046,7 @@ exports["default"] = (0, vue_1.defineComponent)({
*/
var breadcrumbData = [{
- title: 'Your Activities',
+ title: language.activities_lang.your_activities,
link: '/activities'
}, {
title: (0, title_1["default"])(activityTitle, 'en'),
@@ -5960,7 +6055,7 @@ exports["default"] = (0, vue_1.defineComponent)({
title: resultTitle,
link: "/activity/".concat(activityId, "/result/").concat(resultId)
}, {
- title: 'Indicator List',
+ title: language.common_lang.indicator_list,
link: ''
}];
(0, vue_1.onMounted)(function () {
@@ -6013,7 +6108,8 @@ exports["default"] = (0, vue_1.defineComponent)({
breadcrumbData: breadcrumbData,
toastData: toastData,
resultId: resultId,
- handleNavigate: handleNavigate
+ handleNavigate: handleNavigate,
+ language: language
};
}
});
@@ -6045,10 +6141,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var statusData = data.value;
return {
- statusData: statusData
+ statusData: statusData,
+ language: language
};
}
});
@@ -6090,6 +6188,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(props) {
var data = (0, vue_1.toRefs)(props).data;
var elementSpacing = 'mb-1';
+ var language = window["globalLang"];
var baseline = data.value;
var location = function location(data) {
@@ -6128,7 +6227,8 @@ exports["default"] = (0, vue_1.defineComponent)({
baseline: baseline,
location: location,
dimensions: dimensions,
- elementSpacing: elementSpacing
+ elementSpacing: elementSpacing,
+ language: language
};
}
});
@@ -6164,10 +6264,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var descriptionData = data.value;
return {
- descriptionData: descriptionData
+ descriptionData: descriptionData,
+ language: language
};
}
});
@@ -6217,11 +6319,13 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var dlData = data.value;
return {
dlData: dlData,
- getActivityTitle: title_1["default"]
+ getActivityTitle: title_1["default"],
+ language: language
};
}
});
@@ -6251,6 +6355,12 @@ exports["default"] = (0, vue_1.defineComponent)({
type: String,
required: true
}
+ },
+ setup: function setup() {
+ var language = window["globalLang"];
+ return {
+ language: language
+ };
}
});
@@ -6285,10 +6395,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var measureData = data.value;
return {
- measureData: measureData
+ measureData: measureData,
+ language: language
};
}
});
@@ -6332,10 +6444,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var id = (0, vue_1.inject)('parentData');
return {
id: id,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -6371,10 +6485,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var refData = data.value;
return {
- refData: refData
+ refData: refData,
+ language: language
};
}
});
@@ -6410,10 +6526,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var titleData = data.value;
return {
- titleData: titleData
+ titleData: titleData,
+ language: language
};
}
});
@@ -6457,6 +6575,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
var props = __props;
+ var language = window["globalLang"];
var data = (0, vue_2.toRefs)(props).data;
var dropdown = (0, vue_2.ref)();
var dropdownBtn = (0, vue_2.ref)();
@@ -6530,6 +6649,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
var __returned__ = {
+ language: language,
props: props,
data: data,
dropdown: dropdown,
@@ -6639,8 +6759,9 @@ exports["default"] = (0, vue_1.defineComponent)({
var _b = (0, core_1.useToggle)(),
deleteValue = _b[0],
- deleteToggle = _b[1]; // call api for publishing
+ deleteToggle = _b[1];
+ var translation = window["globalLang"]; // call api for publishing
var toastData = (0, vue_2.inject)('toastData');
var layout = 'basis-full lg:basis-6/12';
@@ -6688,6 +6809,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var __returned__ = {
deleteValue: deleteValue,
deleteToggle: deleteToggle,
+ translation: translation,
props: props,
toastData: toastData,
layout: layout,
@@ -6763,6 +6885,7 @@ exports["default"] = (0, vue_1.defineComponent)({
CreateModal: CreateModal_vue_1["default"]
},
setup: function setup() {
+ var language = window["globalLang"];
var state = (0, vue_1.reactive)({
isVisible: false
});
@@ -6799,7 +6922,8 @@ exports["default"] = (0, vue_1.defineComponent)({
toggle: toggle,
modalToggle: modalToggle,
toggleModel: toggleModel,
- dropdownBtn: dropdownBtn
+ dropdownBtn: dropdownBtn,
+ language: language
};
}
});
@@ -6852,6 +6976,7 @@ exports["default"] = (0, vue_1.defineComponent)({
Modal: PopupModal_vue_1["default"]
},
setup: function setup() {
+ var language = window["globalLang"];
var state = (0, vue_1.reactive)({
isVisible: false
});
@@ -7030,7 +7155,8 @@ exports["default"] = (0, vue_1.defineComponent)({
showErrorpopup: showErrorpopup,
downloadErrorxml: downloadErrorxml,
message: message,
- downloadError: downloadError
+ downloadError: downloadError,
+ language: language
};
}
});
@@ -7066,7 +7192,10 @@ exports["default"] = (0, vue_1.defineComponent)({
HoverText: HoverText_vue_1["default"]
},
setup: function setup() {
- return {};
+ var language = window["globalLang"];
+ return {
+ language: language
+ };
}
});
@@ -7101,11 +7230,13 @@ exports["default"] = (0, vue_1.defineComponent)({
ActivityButton: AddActivityButton_vue_1["default"]
},
setup: function setup() {
+ var language = window['globalLang'];
var state = (0, vue_1.reactive)({
dismiss: true
});
return {
- state: state
+ state: state,
+ language: language
};
}
});
@@ -7157,11 +7288,13 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var store = (0, index_1.useStore)();
var toastMessage = (0, vue_2.inject)('toastData');
var errorData = (0, vue_2.inject)('errorData');
var refreshToastMsg = (0, vue_2.inject)('refreshToastMsg');
var __returned__ = {
+ language: language,
store: store,
toastMessage: toastMessage,
errorData: errorData,
@@ -7254,6 +7387,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var _b = (0, core_1.useToggle)(),
selectAllValue = _b[0],
@@ -7304,6 +7438,7 @@ exports["default"] = (0, vue_1.defineComponent)({
};
var __returned__ = {
+ language: language,
selectAllValue: selectAllValue,
selectAllToggle: selectAllToggle,
store: store,
@@ -7399,6 +7534,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var linkClasses = 'flex items-center w-full bg-white rounded p-2 text-sm text-n-50 font-bold leading-normal mb-2 shadow-default';
var _a = (0, vue_1.toRefs)(props),
@@ -7433,8 +7569,8 @@ exports["default"] = (0, vue_1.defineComponent)({
*/
var breadcrumbData = [{
- title: 'Your Activities',
- link: '/activities'
+ title: language.acttivities_lang.your_activities,
+ link: "/activities"
}, {
title: activityTitle,
link: activityLink
@@ -7445,8 +7581,8 @@ exports["default"] = (0, vue_1.defineComponent)({
title: indicatorTitle,
link: indicatorLink
}, {
- title: 'Period',
- link: ''
+ title: language.common_lang.period,
+ link: ""
}];
(0, vue_1.onMounted)(function () {
if (props.toast.message !== '') {
@@ -7469,7 +7605,8 @@ exports["default"] = (0, vue_1.defineComponent)({
indicatorLink: indicatorLink,
periodLink: periodLink,
toastData: toastData,
- showSidebar: showSidebar
+ showSidebar: showSidebar,
+ language: language
};
}
});
@@ -7688,6 +7825,8 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(props) {
var _this = this;
+ var language = window["globalLang"];
+
var _a = (0, vue_1.toRefs)(props),
activity = _a.activity,
parentData = _a.parentData;
@@ -7714,7 +7853,7 @@ exports["default"] = (0, vue_1.defineComponent)({
*/
var breadcrumbData = [{
- title: 'Your Activities',
+ title: language.activities_lang.your_activities,
link: '/activity'
}, {
title: (0, title_1["default"])(activityTitle, 'en'),
@@ -7726,7 +7865,7 @@ exports["default"] = (0, vue_1.defineComponent)({
title: (0, title_1["default"])(indicatorTitle, 'en'),
link: indicatorLink
}, {
- title: 'Periods List',
+ title: language.common_lang.periods_list,
link: ''
}];
(0, vue_1.onMounted)(function () {
@@ -7778,7 +7917,8 @@ exports["default"] = (0, vue_1.defineComponent)({
fetchListings: fetchListings,
indicatorId: indicatorId,
toastData: toastData,
- handleNavigate: handleNavigate
+ handleNavigate: handleNavigate,
+ language: language
};
}
});
@@ -7824,6 +7964,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data; // vue inject
var dlType = (0, vue_1.inject)('types');
@@ -7834,7 +7975,8 @@ exports["default"] = (0, vue_1.defineComponent)({
elementSpacing: elementSpacing,
location: location,
getLocation: utils_1["default"],
- dlType: dlType
+ dlType: dlType,
+ language: language
};
}
});
@@ -7880,6 +8022,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data; // vue inject
// const languageType = inject('types').language;
@@ -7892,7 +8035,8 @@ exports["default"] = (0, vue_1.defineComponent)({
location: location,
getLocation: utils_1["default"],
// languageType,
- dlType: dlType
+ dlType: dlType,
+ language: language
};
}
});
@@ -7968,6 +8112,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var linkClasses = 'flex items-center w-full bg-white rounded p-2 text-sm text-n-50 font-bold leading-normal mb-2 shadow-default';
var positionY = (0, vue_1.ref)(0);
var showSidebar = (0, vue_1.ref)(false);
@@ -7999,8 +8144,8 @@ exports["default"] = (0, vue_1.defineComponent)({
*/
var breadcrumbData = [{
- title: 'Your Activities',
- link: '/activities'
+ title: language.activities_lang.your_activities,
+ link: "/activities"
}, {
title: (0, title_1["default"])(activityTitle, 'en'),
link: activityLink
@@ -8058,7 +8203,8 @@ exports["default"] = (0, vue_1.defineComponent)({
breadcrumbData: breadcrumbData,
toastData: toastData,
showSidebar: showSidebar,
- istopVisible: istopVisible
+ istopVisible: istopVisible,
+ language: language
};
}
});
@@ -8136,11 +8282,13 @@ exports["default"] = (0, vue_1.defineComponent)({
resultVocabulary = types.value.resultVocabulary,
language = types.value.language;
+ var translationLanguage = window["globalLang"];
return {
elementData: elementData,
resultType: resultType,
resultVocabulary: resultVocabulary,
- language: language
+ language: language,
+ translationLanguage: translationLanguage
};
}
});
@@ -8359,6 +8507,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(props) {
var _this = this;
+ var language = window["globalLang"];
var activity = (0, vue_1.toRefs)(props).activity;
var activityId = activity.value.id,
activityTitle = activity.value.title,
@@ -8375,13 +8524,13 @@ exports["default"] = (0, vue_1.defineComponent)({
*/
var breadcrumbData = [{
- title: 'Your Activities',
+ title: language.activities_lang.your_activities,
link: '/activities'
}, {
title: (0, title_1["default"])(activityTitle, 'en'),
link: activityLink
}, {
- title: 'Result List',
+ title: language.common_lang.result_list,
link: ''
}];
@@ -8432,7 +8581,8 @@ exports["default"] = (0, vue_1.defineComponent)({
resultsData: resultsData,
getActivityTitle: title_1["default"],
fetchListings: fetchListings,
- handleNavigate: handleNavigate
+ handleNavigate: handleNavigate,
+ language: language
};
}
});
@@ -8531,12 +8681,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var result = (0, vue_1.toRefs)(props).result;
var indicatorData = result.value.indicators.reverse();
return {
indicatorData: indicatorData,
dateFormat: dateFormat_1["default"],
- getActivityTitle: title_1["default"]
+ getActivityTitle: title_1["default"],
+ language: language
};
}
});
@@ -8572,10 +8724,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var referenceData = data.value;
return {
- referenceData: referenceData
+ referenceData: referenceData,
+ language: language
};
}
});
@@ -8610,10 +8764,12 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var typeData = data.value;
return {
- typeData: typeData
+ typeData: typeData,
+ language: language
};
}
});
@@ -8725,6 +8881,8 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
+
var _a = (0, vue_1.toRefs)(props),
activity = _a.activity,
transaction = _a.transaction;
@@ -8781,14 +8939,14 @@ exports["default"] = (0, vue_1.defineComponent)({
*/
var breadcrumbData = [{
- title: 'Your Activities',
- link: '/activity'
+ title: language.activities_lang.your_activities,
+ link: "/activity"
}, {
title: activityTitle,
link: activityLink
}, {
- title: 'Transaction',
- link: ''
+ title: language.common_lang.transaction,
+ link: ""
}];
(0, vue_1.onMounted)(function () {
window.addEventListener('scroll', handleScroll);
@@ -8807,10 +8965,8 @@ exports["default"] = (0, vue_1.defineComponent)({
var isMandatoryIcon = function isMandatoryIcon(r) {
return r.toString() === 'value' || r.toString() === 'transaction_type' || r.toString() === 'transaction_date';
- }; // const language = global_lang as Translation;
-
+ };
- var language = window["global_lang"];
return {
activityTitle: activityTitle,
dateFormat: dateFormat_1["default"],
@@ -8905,6 +9061,8 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
+
var _a = (0, vue_1.toRefs)(props),
data = _a.data,
types = _a.types,
@@ -8921,7 +9079,8 @@ exports["default"] = (0, vue_1.defineComponent)({
return {
elementData: elementData,
getLanguages: getLanguages,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -9147,6 +9306,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(props) {
var _this = this;
+ var language = window["globalLang"];
var activity = (0, vue_1.toRefs)(props).activity;
var activityId = activity.value.id,
activityTitle = (0, title_1["default"])(activity.value.title, 'en'),
@@ -9199,13 +9359,13 @@ exports["default"] = (0, vue_1.defineComponent)({
*/
var breadcrumbData = [{
- title: 'Your Activities',
+ title: language.activities_lang.your_activities,
link: '/activities'
}, {
title: activityTitle,
link: activityLink
}, {
- title: 'Transaction List',
+ title: language.common_lang.transaction_list,
link: ''
}];
return {
@@ -9218,7 +9378,8 @@ exports["default"] = (0, vue_1.defineComponent)({
toastData: toastData,
deleteValue: deleteValue,
deleteToggle: deleteToggle,
- handleNavigate: handleNavigate
+ handleNavigate: handleNavigate,
+ language: language
};
}
});
@@ -9250,12 +9411,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var atData = data.value;
var type = (0, vue_1.inject)('types');
return {
atData: atData,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9287,12 +9450,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var tdData = data.value;
var type = (0, vue_1.inject)('types');
return {
tdData: tdData,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9324,12 +9489,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var code = data.value;
var type = (0, vue_1.inject)('types');
return {
code: code,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9361,12 +9528,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var financeData = data.value;
var type = (0, vue_1.inject)('types');
return {
financeData: financeData,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9398,12 +9567,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var flowData = data.value;
var type = (0, vue_1.inject)('types');
return {
flowData: flowData,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9435,12 +9606,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var PoData = data.value;
var type = (0, vue_1.inject)('types');
return {
PoData: PoData,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9472,12 +9645,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var PoData = data.value;
var type = (0, vue_1.inject)('types');
return {
PoData: PoData,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9509,12 +9684,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var country = data.value;
var type = (0, vue_1.inject)('types');
return {
country: country,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9546,12 +9723,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var country = data.value;
var type = (0, vue_1.inject)("types");
return {
country: country,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9583,12 +9762,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var type = (0, vue_1.inject)("types");
var sector = data.value;
return {
sector: sector,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9620,12 +9801,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var tsData = data.value;
var type = (0, vue_1.inject)('types');
return {
tsData: tsData,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9665,11 +9848,13 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var date = data.value;
return {
date: date,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -9701,12 +9886,14 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var code = data.value;
var type = (0, vue_1.inject)('types');
return {
code: code,
- type: type
+ type: type,
+ language: language
};
}
});
@@ -9746,11 +9933,13 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var data = (0, vue_1.toRefs)(props).data;
var value = data.value;
return {
value: value,
- dateFormat: dateFormat_1["default"]
+ dateFormat: dateFormat_1["default"],
+ language: language
};
}
});
@@ -9793,6 +9982,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var file = (0, vue_2.ref)(),
error = (0, vue_2.ref)(''),
loader = (0, vue_2.ref)(false),
@@ -9844,6 +10034,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
var __returned__ = {
+ language: language,
file: file,
error: error,
loader: loader,
@@ -9902,6 +10093,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var activities = (0, vue_2.reactive)({});
var selectedActivities = (0, vue_2.reactive)([]);
var selectedCount = (0, vue_2.ref)(0);
@@ -9988,6 +10180,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
var __returned__ = {
+ language: language,
activities: activities,
selectedActivities: selectedActivities,
selectedCount: selectedCount,
@@ -10094,6 +10287,7 @@ exports["default"] = (0, vue_1.defineComponent)({
emit = _a.emit;
expose();
var props = __props;
+ var language = window["globalLang"];
var active = (0, vue_2.ref)(false);
var activities = (0, vue_2.reactive)([]);
@@ -10127,6 +10321,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
});
var __returned__ = {
+ language: language,
props: props,
emit: emit,
active: active,
@@ -10230,6 +10425,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var toastData = (0, vue_1.reactive)({
visibility: false,
message: '',
@@ -10400,7 +10596,8 @@ exports["default"] = (0, vue_1.defineComponent)({
errorData: errorData,
toggleSidebar: toggleSidebar,
showSidebar: showSidebar,
- istopVisible: istopVisible
+ istopVisible: istopVisible,
+ language: language
};
}
});
@@ -10452,6 +10649,7 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
var props = __props;
+ var language = window["globalLang"];
var _b = (0, core_1.useToggle)(),
searchBtnValue = _b[0],
@@ -10503,6 +10701,7 @@ exports["default"] = (0, vue_1.defineComponent)({
};
var __returned__ = {
+ language: language,
props: props,
searchBtnValue: searchBtnValue,
searchBtnToggle: searchBtnToggle,
@@ -10595,7 +10794,8 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
- var props = __props; // const status = '';
+ var props = __props;
+ var language = window["globalLang"]; // const status = '';
var layout = 'basis-6/12';
@@ -10612,6 +10812,7 @@ exports["default"] = (0, vue_1.defineComponent)({
};
var __returned__ = {
+ language: language,
props: props,
layout: layout,
replaceUnderscore: replaceUnderscore,
@@ -10671,13 +10872,15 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("orgTypes");
function formatDate(date) {
- return date ? (0, moment_1["default"])(date).format("LL") : "Date Missing";
+ return date ? (0, moment_1["default"])(date).format("LL") : language.common_lang.missing.date;
}
var __returned__ = {
+ language: language,
types: types,
formatDate: formatDate
};
@@ -10727,13 +10930,15 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("orgTypes");
function formatDate(date) {
- return date ? (0, moment_1["default"])(date).format("LL") : "Date Missing";
+ return date ? (0, moment_1["default"])(date).format("LL") : language.common_lang.missing.date;
}
var __returned__ = {
+ language: language,
types: types,
formatDate: formatDate
};
@@ -10783,13 +10988,15 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("orgTypes");
function formatDate(date) {
- return date ? (0, moment_1["default"])(date).format("LL") : "Date Missing";
+ return date ? (0, moment_1["default"])(date).format("LL") : language.common_lang.missing.date;
}
var __returned__ = {
+ language: language,
types: types,
formatDate: formatDate
};
@@ -10831,8 +11038,10 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)('orgTypes');
var __returned__ = {
+ language: language,
types: types
};
Object.defineProperty(__returned__, '__isScriptSetup', {
@@ -10881,13 +11090,15 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("orgTypes");
function formatDate(date) {
- return date ? (0, moment_1["default"])(date).format("LL") : "Date Missing";
+ return date ? (0, moment_1["default"])(date).format("LL") : language.common_lang.missing.date;
}
var __returned__ = {
+ language: language,
types: types,
formatDate: formatDate
};
@@ -10937,13 +11148,15 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("orgTypes");
function formatDate(date) {
- return date ? (0, moment_1["default"])(date).format("LL") : "Date Missing";
+ return date ? (0, moment_1["default"])(date).format("LL") : language.common_lang.missing.date;
}
var __returned__ = {
+ language: language,
types: types,
formatDate: formatDate
};
@@ -10993,13 +11206,15 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
var types = (0, vue_2.inject)("orgTypes");
function formatDate(date) {
- return date ? (0, moment_1["default"])(date).format("LL") : "Date Missing";
+ return date ? (0, moment_1["default"])(date).format("LL") : language.common_lang.missing.date;
}
var __returned__ = {
+ language: language,
types: types,
formatDate: formatDate
};
@@ -11043,6 +11258,7 @@ exports["default"] = (0, vue_1.defineComponent)({
Loader: Loader_vue_1["default"]
},
setup: function setup() {
+ var language = window["globalLang"];
var formData = (0, vue_1.reactive)({
email: ''
});
@@ -11076,7 +11292,8 @@ exports["default"] = (0, vue_1.defineComponent)({
formData: formData,
loaderVisibility: loaderVisibility,
emailError: emailError,
- reset: reset
+ reset: reset,
+ language: language
};
}
});
@@ -11125,6 +11342,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var loaderVisibility = (0, vue_1.ref)(false);
var formData = (0, vue_1.reactive)({
email: props.email,
@@ -11204,7 +11422,8 @@ exports["default"] = (0, vue_1.defineComponent)({
loaderVisibility: loaderVisibility,
formData: formData,
errorData: errorData,
- reset: reset
+ reset: reset,
+ language: language
};
}
});
@@ -11264,6 +11483,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var store = (0, store_1.useStore)();
var defaultForm = (0, vue_1.computed)(function () {
return store.state.defaultForm;
@@ -11283,7 +11503,8 @@ exports["default"] = (0, vue_1.defineComponent)({
props: props,
defaultForm: defaultForm,
defaultError: defaultError,
- updateStore: updateStore
+ updateStore: updateStore,
+ language: language
};
}
});
@@ -11516,6 +11737,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(props) {
var _this = this;
+ var language = window["globalLang"];
var tab = (0, vue_1.ref)('publish');
var store = (0, store_1.useStore)();
var loaderVisibility = (0, vue_1.ref)(false);
@@ -11686,7 +11908,8 @@ exports["default"] = (0, vue_1.defineComponent)({
toastMessage: toastMessage,
toastType: toastType,
toggleTab: toggleTab,
- submitForm: submitForm
+ submitForm: submitForm,
+ language: language
};
}
});
@@ -11733,6 +11956,7 @@ exports["default"] = (0, vue_1.defineComponent)({
emits: ['submitPublishing'],
setup: function setup(props, _a) {
var emit = _a.emit;
+ var language = window["globalLang"];
var tab = (0, vue_1.ref)('publish');
var store = (0, store_1.useStore)();
var publishingForm = (0, vue_1.computed)(function () {
@@ -11774,7 +11998,8 @@ exports["default"] = (0, vue_1.defineComponent)({
submitPublishing: submitPublishing,
toggleTab: toggleTab,
updateStore: updateStore,
- autoVerify: autoVerify
+ autoVerify: autoVerify,
+ language: language
};
}
});
@@ -11811,21 +12036,22 @@ var ProgressLoader_vue_1 = __importDefault(__webpack_require__(/*! Components/se
var ToastMessage_vue_1 = __importDefault(__webpack_require__(/*! Components/ToastMessage.vue */ "./resources/assets/js/components/ToastMessage.vue"));
-var TableList_vue_1 = __importDefault(__webpack_require__(/*! ./components/TableList.vue */ "./resources/assets/js/views/superadmin/components/TableList.vue")); // ref
-
+var TableList_vue_1 = __importDefault(__webpack_require__(/*! ./components/TableList.vue */ "./resources/assets/js/views/superadmin/components/TableList.vue"));
exports["default"] = (0, vue_1.defineComponent)({
__name: 'OrganisationList',
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"]; // ref
+
var loader = (0, vue_2.reactive)({
status: false,
- text: 'Please Wait'
+ text: language.common_lang.please_wait
}); //Breadcrumb data
var breadcrumbData = [{
- title: 'Organisations',
+ title: language.common_lang.organisations,
link: ''
}];
var toastMessage = (0, vue_2.reactive)({
@@ -11837,6 +12063,7 @@ exports["default"] = (0, vue_1.defineComponent)({
(0, vue_2.provide)('loader', loader);
(0, vue_2.provide)('toastData', toastMessage);
var __returned__ = {
+ language: language,
loader: loader,
breadcrumbData: breadcrumbData,
toastMessage: toastMessage,
@@ -11885,6 +12112,7 @@ exports["default"] = (0, vue_1.defineComponent)({
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
+ var language = window["globalLang"];
/**
* Switch Back
*/
@@ -11894,6 +12122,7 @@ exports["default"] = (0, vue_1.defineComponent)({
};
var __returned__ = {
+ language: language,
switchBack: switchBack
};
Object.defineProperty(__returned__, '__isScriptSetup', {
@@ -12090,6 +12319,8 @@ exports["default"] = (0, vue_1.defineComponent)({
var expose = _a.expose;
expose();
+ var language = window["globalLang"]; // inject
+
var toastMessage = (0, vue_2.inject)('toastData');
var loader = (0, vue_2.inject)('loader'); //typeface
@@ -12189,6 +12420,7 @@ exports["default"] = (0, vue_1.defineComponent)({
};
var __returned__ = {
+ language: language,
toastMessage: toastMessage,
loader: loader,
organisationData: organisationData,
@@ -12311,6 +12543,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var step = (0, vue_1.ref)(1);
var publisherExists = (0, vue_1.ref)(true);
var isLoaderVisible = (0, vue_1.ref)(false);
@@ -12403,121 +12636,121 @@ exports["default"] = (0, vue_1.defineComponent)({
var registerForm = (0, vue_1.reactive)({
1: {
- title: "Publisher Information",
+ title: language.register_lang.publisher_information.label,
is_complete: false,
- description: "This information will be used to create a Publisher in IATI Publisher",
- hover_text: "We refer to organisations who publish IATI data as 'Publishers'. Before publishing data, all organisations need their own 'Publisher Account' on the IATI Registry (iatiregistry.org). Enter your organisation's data here and we'll create your organisation's Publisher Account for you. These details will also be saved here in IATI Publisher. ",
+ description: language.register_lang.publisher_information.description,
+ hover_text: language.register_lang.publisher_information.hover_text,
fields: {
publisher_name: {
- label: "Publisher Name",
+ label: language.register_lang.publisher_name.label,
name: "publisher_name",
- placeholder: "Type your organisation name here",
+ placeholder: language.register_lang.publisher_name.placeholder,
id: "publisher-name",
required: true,
- hover_text: "The name of your organisation publishing the data.",
+ hover_text: language.register_lang.publisher_name.hover_text,
type: "text",
"class": "col-span-2 mb-4 lg:mb-2",
help_text: ""
},
publisher_id: {
- label: "Publisher ID",
+ label: language.register_lang.publisher_id.label,
name: "publisher_id",
- placeholder: "Type your organisation ID here",
+ placeholder: language.register_lang.publisher_id.placeholder,
id: "publisher-id",
required: true,
- hover_text: "Provide a unique ID for your organisation. It must be at least two characters long and use lower case letters. You can include letters, numbers and also - (dash) and _ (underscore). Where possible use a short abbreviation of your organisation's name, for example: 'nef_mali' for Near East Foundation Mali.",
+ hover_text: language.register_lang.publisher_id.hover_text,
type: "text",
"class": "mb-4 lg:mb-2",
help_text: ""
},
country: {
- label: "Country",
+ label: language.register_lang.country.label,
name: "country",
- placeholder: "Select a Country",
+ placeholder: language.register_lang.country.placeholder,
id: "country_select",
required: false,
type: "select",
- hover_text: "Add the location of your organisation.",
+ hover_text: language.register_lang.country.hover_text,
options: props.types.country,
"class": "mb-4 lg:mb-2 relative",
help_text: ""
},
registration_agency: {
- label: "Organisation Registration Agency",
+ label: language.register_lang.org_registration_agency.label,
name: "registration_agency",
- placeholder: "Select an Organisation Registration Agency",
+ placeholder: language.register_lang.org_registration_agency.placeholder,
id: "registration-agency",
required: true,
- hover_text: "Select the agency in your country where your organisation is registered. If you do not know this information please email support@iatistandard.org ",
+ hover_text: language.register_lang.org_registration_agency.hover_text,
type: "select",
options: registration_agency,
"class": "mb-4 lg:mb-2 relative",
help_text: ""
},
registration_number: {
- label: "Registration Number",
+ label: language.register_lang.registration_number.label,
name: "registration_number",
- placeholder: "Type your Registration Number here",
+ placeholder: language.register_lang.registration_number.placeholder,
id: "registration-number",
required: true,
- hover_text: "Provide the registration number for your organisation that has been provided by organisation registration agency. If you do not know this please email support@iatistandard.org .",
+ hover_text: language.register_lang.registration_number.hover_text,
type: "text",
"class": "mb-4 lg:mb-2",
- help_text: "for e.g. 123456"
+ help_text: "".concat(language.register_lang.for_eg, " 123456")
},
identifier: {
- label: "IATI Organisational Identifier",
+ label: language.register_lang.iati_org_identifier.label,
name: "identifier",
placeholder: "",
id: "identifier",
required: true,
- hover_text: 'The Organisation Identifier is a unique code for your organisation. This is genereated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. ',
+ hover_text: language.register_lang.iati_org_identifier.hover_text,
type: "text",
"class": "mb-4 lg:mb-6",
- help_text: "This is autogenerated, please make sure to fill the above fields correctly."
+ help_text: language.register_lang.iati_org_identifier.help_text
},
publisher_type: {
- label: "Publisher Type",
+ label: language.register_lang.publisher_type.label,
name: "publisher_type",
- placeholder: "Select a publisher type ",
+ placeholder: language.register_lang.publisher_type.placeholder,
id: "publisher-type",
required: true,
- hover_text: 'Select the type that best describes your organisation. Read more on Organisation types. ',
+ hover_text: language.register_lang.publisher_type.hover_text,
type: "select",
options: props.types.publisherType,
"class": "mb-4 lg:mb-2 relative",
help_text: ""
},
license_id: {
- label: "Data License",
+ label: language.register_lang.data_license.label,
name: "license_id",
- placeholder: "Select a Data License",
+ placeholder: language.register_lang.data_license.placeholder,
id: "data-license",
required: true,
- hover_text: " Select the License under which your data is being published. IATI is an open data standard and requires you to make your data available under an open licence so it can be freely used. One of the most frequently used licenses is Creative Commons Attribution. For more information read: How to license your data. ",
+ hover_text: language.register_lang.data_license.hover_text,
type: "select",
options: props.types.dataLicense,
"class": "mb-4 lg:mb-2 relative",
help_text: ""
},
image_url: {
- label: "Publisher Logo Url",
+ label: language.register_lang.publisher_logo_url.label,
name: "image_url",
- placeholder: "For e.g. http://mylogo.com ",
+ placeholder: "".concat(language.register_lang.for_eg, " http://mylogo.com "),
id: "publisher-logo-url",
required: false,
- hover_text: " Provide a link to an image to your organisation's logo (Optimum size: 200 x 120 px)",
+ hover_text: language.register_lang.publisher_logo_url.hover_text,
type: "text",
"class": "mb-4 lg:mb-2 relative",
help_text: ""
},
description: {
- label: "Organization Description",
+ label: language.register_lang.organisation_desc.label,
name: "description",
- placeholder: "Type Description here",
+ placeholder: language.register_lang.organisation_desc.placeholder,
id: "organization-description",
required: false,
- hover_text: " Provide a short description about your organisation.",
+ hover_text: language.register_lang.organisation_desc.hover_text,
type: "textarea",
"class": "mb-4 col-span-2 lg:mb-2 relative",
help_text: ""
@@ -12525,90 +12758,90 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
2: {
- title: "Contact Information",
+ title: language.register_lang.contact_info.title,
is_complete: false,
- description: "This information will be used to create a Publisher in IATI Publisher",
+ description: language.register_lang.publisher_information.description,
fields: {
contact_email: {
- label: "Contact Email",
+ label: language.register_lang.contact.label,
name: "contact_email",
placeholder: "",
id: "contact-email",
required: true,
- hover_text: "Please add a contact email address for your organisation. Please note that IATI is an open data standard and the email provided here will be visible to others on the IATI Registry.",
+ hover_text: language.register_lang.contact.hover_text,
type: "text",
"class": "mb-4 lg:mb-6"
},
website: {
- label: "Website",
+ label: language.register_lang.website.label,
name: "website",
- placeholder: "For e.g. http://mywebsite.com",
+ placeholder: "".concat(language.register_lang.for_eg, " http://mywebsite.com"),
id: "website",
required: false,
- hover_text: "Add the URL to your organisation's website.",
+ hover_text: language.register_lang.website.hover_text,
type: "text",
"class": "mb-4 lg:mb-6"
},
address: {
- label: "Address",
+ label: language.register_lang.address.label,
name: "address",
- placeholder: "Type address here",
+ placeholder: language.register_lang.address.placeholder,
id: "address",
required: false,
- hover_text: "Provide a contact address for your organisation.",
+ hover_text: language.register_lang.address.hover_text,
type: "textarea",
"class": "mb-4 col-span-2 lg:mb-6"
}
}
},
3: {
- title: "Publishing Aditional Information",
+ title: language.register_lang.publishing_additional_info.title,
is_complete: false,
- description: "This information will be used to create an admin account in IATI Publisher",
+ description: language.register_lang.publishing_additional_info.description,
fields: {
source: {
- label: "Source",
+ label: language.register_lang.source.label,
name: "source",
- placeholder: "Select a Source",
+ placeholder: language.register_lang.source.placeholder,
id: "contact-email",
required: true,
- hover_text: "Select an option: Primary - your organisation is publishing its own or (associated organisations') data Secondary - your organisation is reproducing data on the activities of another organisation",
+ hover_text: language.register_lang.source.hover_text,
type: "select",
options: props.types.source,
"class": "mb-4 lg:mb-6"
},
record_exclusions: {
- label: "Record Exclusions",
+ label: language.register_lang.record_exclusions.label,
name: "record_exclusions",
- placeholder: "Type Record Exclusions here",
+ placeholder: language.register_lang.record_exclusions.placeholder,
id: "record-exclusions",
required: false,
- hover_text: "Does your organisation have an exclusion policy that provide details on what data that it cannot publish? For example an organisation may not be able to publish data because of political sensitivity issues or if information is commercially restricted. Please provide details here about what data your organisation needs to exclude (if any), and a URL to your organisation's exclusion policy (if it has one). For more information read: Information and data you can't publish (exclusions) ",
+ hover_text: language.register_lang.record_exclusions.hover_text,
type: "textarea",
"class": "mb-4 col-span-2 lg:mb-6"
}
}
},
4: {
- title: "Administrator Information",
+ title: language.register_lang.administrator_information.title,
is_complete: false,
- description: "Provide your information to create an admin account here on IATI Publisher and IATI Registry at once.",
+ description: language.register_lang.administrator_information.iati_register_description,
fields: {
username: {
- label: "Username",
+ label: language.register_lang.username.label,
name: "username",
- placeholder: "Type username here",
+ placeholder: language.register_lang.username.placeholder,
id: "username",
required: true,
- hover_text: "You will need this later to login into IATI Publisher.",
+ hover_text: language.register_lang.username.hover_text,
type: "text",
"class": "mb-4 lg:mb-2",
help_text: ""
},
full_name: {
- label: "Full Name",
+ label: language.register_lang.fullname.label,
name: "full_name",
- placeholder: "Type your full name here",
+ placeholder: language.register_lang.fullname.placeholder,
id: "full-name",
hover_text: "",
required: true,
@@ -12616,9 +12849,9 @@ exports["default"] = (0, vue_1.defineComponent)({
"class": "col-start-1 mb-4 lg:mb-2"
},
email: {
- label: "Email Address",
+ label: language.register_lang.email_address.label,
name: "email",
- placeholder: "Type valid email here",
+ placeholder: language.register_lang.email_address.placeholder,
id: "email",
required: true,
hover_text: "",
@@ -12626,31 +12859,31 @@ exports["default"] = (0, vue_1.defineComponent)({
"class": "mb-4 lg:mb-2"
},
password: {
- label: "Password",
+ label: language.register_lang.password.label,
name: "password",
- placeholder: "Type password here",
+ placeholder: language.register_lang.password.placeholder,
id: "password",
required: true,
- help_text: "Minimum length: 6 characters",
+ help_text: language.register_lang.password.help_text,
type: "password",
"class": "mb-4 lg:mb-2"
},
password_confirmation: {
- label: "Confirm Password",
+ label: language.register_lang.password.confirm,
name: "password_confirmation",
- placeholder: "Type password here",
+ placeholder: language.register_lang.password.placeholder,
id: "password-confirmation",
required: true,
- help_text: "Should match the password above",
+ help_text: language.register_lang.password.confirm_help,
type: "password",
"class": "mb-4 lg:mb-6"
}
}
},
5: {
- title: "Email Verification",
+ title: language.register_lang.email_verification.title,
is_complete: false,
- description: "Please verify and activate your IATI Publisher account through your provided email"
+ description: language.register_lang.email_verification.description
}
});
/**
@@ -12907,17 +13140,18 @@ exports["default"] = (0, vue_1.defineComponent)({
props: props,
step: step,
resize: resize,
- textarea: textarea
+ textarea: textarea,
+ language: language
};
}
});
/***/ }),
-/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts&setup=true":
-/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts&setup=true ***!
- \*********************************************************************************************************************************************************************************************************************************************************************************/
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=script&lang=ts&setup=true":
+/*!**************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=script&lang=ts&setup=true ***!
+ \**************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
@@ -12930,17 +13164,13 @@ Object.defineProperty(exports, "__esModule", ({
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
exports["default"] = (0, vue_1.defineComponent)({
- __name: 'PublishingChecklist',
+ __name: 'IatiStandard',
setup: function setup(__props, _a) {
var expose = _a.expose;
expose();
-
- function triggerModel() {
- localStorage.setItem('openAddModel', 'true');
- }
-
+ var language = window["globalLang"];
var __returned__ = {
- triggerModel: triggerModel
+ language: language
};
Object.defineProperty(__returned__, '__isScriptSetup', {
enumerable: false,
@@ -12952,6 +13182,54 @@ exports["default"] = (0, vue_1.defineComponent)({
/***/ }),
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts":
+/*!**********************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts ***!
+ \**********************************************************************************************************************************************************************************************************************************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var __importDefault = this && this.__importDefault || function (mod) {
+ return mod && mod.__esModule ? mod : {
+ "default": mod
+ };
+};
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+
+var SimpleSpan_vue_1 = __importDefault(__webpack_require__(Object(function webpackMissingModule() { var e = new Error("Cannot find module 'Components/SimpleSpan.vue'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())));
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+exports["default"] = (0, vue_1.defineComponent)({
+ components: {
+ SimpleSpan: SimpleSpan_vue_1["default"]
+ },
+ props: {
+ elements: {
+ type: String,
+ required: true
+ }
+ },
+ setup: function setup() {
+ var language = window["globalLang"];
+ return {
+ SimpleSpan: SimpleSpan_vue_1["default"],
+ language: language
+ };
+ }
+});
+
+function triggerModel() {
+ localStorage.setItem('openAddModel', 'true');
+}
+
+/***/ }),
+
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/RegisterPage.vue?vue&type=script&lang=ts":
/*!***************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/RegisterPage.vue?vue&type=script&lang=ts ***!
@@ -13019,6 +13297,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup(props) {
+ var language = window["globalLang"];
var step = (0, vue_1.ref)(1);
var publisherExists = (0, vue_1.ref)(true);
var isLoaderVisible = (0, vue_1.ref)(false);
@@ -13081,102 +13360,102 @@ exports["default"] = (0, vue_1.defineComponent)({
});
var registerForm = (0, vue_1.reactive)({
1: {
- title: "Publisher Information",
+ title: language.register_lang.publisher_information.label,
is_complete: false,
- description: "This information will be used to create a Publisher in IATI Publisher",
- hover_text: "Provide information about your organisation. You will need to provide the same information that you used to create your Publisher Account on the IATI Registry (iatiregistry.org).",
+ description: language.register_lang.publisher_information.description,
+ hover_text: language.register_lang.publisher_information.hover_text,
fields: {
publisher_name: {
- label: "Publisher Name",
+ label: language.register_lang.publisher_name,
name: "publisher_name",
- placeholder: "Type your Publisher Name here",
+ placeholder: language.register_lang.publsher_name.placeholder,
id: "publisher-name",
required: true,
- hover_text: "Provide the name of your organisation.",
+ hover_text: language.register_lang.publsher_name.hover_text,
type: "text",
"class": "col-span-2 mb-4 lg:mb-2",
help_text: ""
},
publisher_id: {
- label: "Publisher ID",
+ label: language.register_lang.publisher_id.label,
name: "publisher_id",
- placeholder: "Type your organisation ID here",
+ placeholder: language.register_lang.publisher_id.placeholder,
id: "publisher-id",
required: true,
- hover_text: "This is the unique ID for your organisation that you created when you set up your IATI Registry Publisher Account. It should be a shorter version of your organisation's name, which will include lowercase letters and may include numbers, - (dash) or _ (underscore). For example nef_mali' for Near East Foundation Mali.",
+ hover_text: language.register_lang.publisher_id.hover_text,
type: "text",
"class": "mb-4 lg:mb-2",
help_text: ""
},
country: {
- label: "Country",
+ label: language.register_lang.country.label,
name: "country",
- placeholder: "Select a Country",
+ placeholder: language.register_lang.country.placeholder,
id: "country_select",
required: false,
type: "select",
- hover_text: "Add the location of your organisation.",
+ hover_text: language.register_lang.country.hover_text,
options: props.country,
"class": "mb-4 lg:mb-2 relative",
help_text: ""
},
organization_registration_agency: {
- label: "Organisation Registration Agency",
+ label: language.register_lang.org_registration_agency.label,
name: "registration_agency",
- placeholder: "Select an Organisation Registration Agency",
+ placeholder: language.register_lang.org_registration_agency.placeholder,
id: "registration-agency",
required: true,
- hover_text: "Provide the name of the agency in your country where you organisation is registered. If you do not know this information please email support@iatistandard.org.",
+ hover_text: language.register_lang.org_registration_agency.hover_text,
type: "select",
options: registration_agency,
"class": "mb-4 lg:mb-2 relative",
help_text: ""
},
organization_registration_no: {
- label: "Organisation Registration Number",
+ label: language.register_lang.org_registration_no.label,
name: "registration_number",
- placeholder: "Type your Registration Number here",
+ placeholder: language.register_lang.org_registration_no.placeholder,
id: "registration-number",
required: true,
- hover_text: "Add the registration number for your organisation that has been provided by the registration agency named above.",
+ hover_text: language.register_lang.org_registration_no.hover_text,
type: "text",
"class": "mb-4 lg:mb-2",
- help_text: "for e.g. 123456"
+ help_text: "".concat(language.register_lang.for_eg, " 123456")
},
iati_organizational_identifier: {
- label: "IATI Organisational Identifier",
+ label: language.register_lang.iati_org_identifier.label,
name: "identifier",
placeholder: "",
id: "identifier",
required: true,
- hover_text: 'The Organisation Identifier is a unique code for your organisation. This is generated from the Organisation Registration Agency and Registration Number. For more information read: How to create your IATI organisation identifier. ',
+ hover_text: language.register_lang.iati_org_identifier.hover_text,
type: "text",
"class": "mb-4 lg:mb-6",
- help_text: "This is autogenerated, please make sure to fill the above fields correctly."
+ help_text: language.register_lang.iati_org_identifier.help_text
}
}
},
2: {
- title: "Administrator Information",
+ title: language.register_lang.administrator_information.label,
is_complete: false,
- description: "This information will be used to create an admin account in IATI Publisher",
- hover_text: "Provide your information to create an admin account here on IATI Publisher.",
+ description: language.register_lang.administrator_information.register_description,
+ hover_text: language.register_lang.administrator_information.hover_text,
fields: {
username: {
- label: "Username",
+ label: language.register_lang.username.label,
name: "username",
- placeholder: "Type username here",
+ placeholder: language.register_lang.username.placeholder,
id: "username",
required: true,
- hover_text: "You will need this later to login into IATI Publisher.",
+ hover_text: language.register_lang.username.hover_text,
type: "text",
"class": "mb-4 lg:mb-2",
help_text: ""
},
full_name: {
- label: "Full Name",
+ label: language.register_lang.fullname.label,
name: "full_name",
- placeholder: "Type your full name here",
+ placeholder: language.register_lang.fullname.placeholder,
id: "full-name",
hover_text: "",
required: true,
@@ -13184,9 +13463,9 @@ exports["default"] = (0, vue_1.defineComponent)({
"class": "col-start-1 mb-4 lg:mb-2"
},
email: {
- label: "Email Address",
+ label: language.register_lang.email_address.label,
name: "email",
- placeholder: "Type valid email here",
+ placeholder: language.register_lang.email_address.placeholder,
id: "email",
required: true,
hover_text: "",
@@ -13194,9 +13473,9 @@ exports["default"] = (0, vue_1.defineComponent)({
"class": "mb-4 lg:mb-2"
},
password: {
- label: "Password",
+ label: language.register_lang.password.label,
name: "password",
- placeholder: "Type password here",
+ placeholder: language.register_lang.password.placeholder,
id: "password",
required: true,
hover_text: "",
@@ -13204,9 +13483,9 @@ exports["default"] = (0, vue_1.defineComponent)({
"class": "mb-4 lg:mb-2"
},
confirm_password: {
- label: "Confirm Password",
+ label: language.register_lang.password.confirm,
name: "password_confirmation",
- placeholder: "Type password here",
+ placeholder: language.register_lang.password.placeholder,
id: "password-confirmation",
required: true,
hover_text: "",
@@ -13216,9 +13495,9 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
3: {
- title: "Email Verification",
+ title: language.register_lang.email_verification.title,
is_complete: false,
- description: "Please verify and activate your IATI Publisher account through your provided email"
+ description: language.register_lang.email_verification.description
}
});
@@ -13321,7 +13600,109 @@ exports["default"] = (0, vue_1.defineComponent)({
getCurrentStep: getCurrentStep,
checkStep: checkStep,
isTextField: isTextField,
- props: props
+ props: props,
+ language: language
+ };
+ }
+});
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=script&lang=ts&setup=true":
+/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=script&lang=ts&setup=true ***!
+ \*************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+exports["default"] = (0, vue_1.defineComponent)({
+ __name: 'SupportPage',
+ setup: function setup(__props, _a) {
+ var expose = _a.expose;
+ expose();
+ var language = window["globalLang"];
+ var __returned__ = {
+ language: language
+ };
+ Object.defineProperty(__returned__, '__isScriptSetup', {
+ enumerable: false,
+ value: true
+ });
+ return __returned__;
+ }
+});
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=script&lang=ts&setup=true":
+/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=script&lang=ts&setup=true ***!
+ \**********************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+exports["default"] = (0, vue_1.defineComponent)({
+ __name: 'AdminFooter',
+ setup: function setup(__props, _a) {
+ var expose = _a.expose;
+ expose();
+ var language = window["globalLang"];
+ var __returned__ = {
+ language: language
+ };
+ Object.defineProperty(__returned__, '__isScriptSetup', {
+ enumerable: false,
+ value: true
+ });
+ return __returned__;
+ }
+});
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=script&lang=ts":
+/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=script&lang=ts ***!
+ \*******************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+exports["default"] = (0, vue_1.defineComponent)({
+ props: {
+ message: {
+ type: String,
+ required: false,
+ "default": ""
+ }
+ },
+ setup: function setup() {
+ var language = window["globalLang"];
+ return {
+ language: language
};
}
});
@@ -13510,6 +13891,7 @@ exports["default"] = (0, vue_1.defineComponent)({
}
},
setup: function setup() {
+ var language = window["globalLang"];
var formData = (0, vue_1.reactive)({
username: '',
password: ''
@@ -13578,8 +13960,43 @@ exports["default"] = (0, vue_1.defineComponent)({
formData: formData,
errorData: errorData,
isLoaderVisible: isLoaderVisible,
- login: login
+ login: login,
+ language: language
+ };
+ }
+});
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=script&lang=ts&setup=true":
+/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=script&lang=ts&setup=true ***!
+ \********************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+exports["default"] = (0, vue_1.defineComponent)({
+ __name: 'WebFooter',
+ setup: function setup(__props, _a) {
+ var expose = _a.expose;
+ expose();
+ var language = window["globalLang"];
+ var __returned__ = {
+ language: language
};
+ Object.defineProperty(__returned__, '__isScriptSetup', {
+ enumerable: false,
+ value: true
+ });
+ return __returned__;
}
});
@@ -13629,6 +14046,10 @@ exports["default"] = (0, vue_1.defineComponent)({
(0, vue_1.onUnmounted)(function () {
document.body.classList.remove('no-nav');
});
+ var language = window["globalLang"];
+ return {
+ language: language
+ };
}
});
@@ -13703,8 +14124,8 @@ var _hoisted_12 = {
"class": "add-import"
};
var _hoisted_13 = {
- key: 0,
- "class": "button__dropdown add-import-dropdown absolute top-full z-10 w-56 -translate-y-3 bg-white p-2 text-left shadow-dropdown transition-all duration-300"
+ key: 2,
+ "class": "button__dropdown invisible absolute left-4 top-full z-10 w-56 -translate-y-3 bg-white p-2 text-left opacity-0 shadow-dropdown outline transition-all duration-300 group-hover:visible group-hover:translate-y-0 group-hover:opacity-100"
};
var _hoisted_14 = {
"class": "flex-col"
@@ -13715,81 +14136,58 @@ var _hoisted_15 = {
var _hoisted_16 = {
"class": "search"
};
-var _hoisted_17 = {
+var _hoisted_17 = ["placeholder"];
+var _hoisted_18 = ["placeholder"];
+var _hoisted_19 = {
key: 2,
"class": "spinner"
};
-var _hoisted_18 = {
+var _hoisted_20 = {
key: 0,
"class": "profile__dropdown"
};
-var _hoisted_19 = {
+var _hoisted_21 = {
"class": "border-b border-b-n-20"
};
-var _hoisted_20 = {
+var _hoisted_22 = {
"class": "flex flex-col break-all capitalize leading-4"
};
-var _hoisted_21 = {
+var _hoisted_23 = {
"class": "text-n-50"
};
-var _hoisted_22 = {
+var _hoisted_24 = {
"class": "text-tiny text-n-40"
};
-var _hoisted_23 = {
+var _hoisted_25 = {
"class": "dropdown__list border-b border-b-n-20"
};
-
-var _hoisted_24 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("a", {
- href: "#"
- }, "Your Profile", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_25 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("button", {
- "class": "text-sm"
- }, "Logout", -1
- /* HOISTED */
- );
-});
-
var _hoisted_26 = {
- "class": "border-b border-b-n-20"
+ href: "#"
};
var _hoisted_27 = {
- "class": "flex flex-col break-all capitalize leading-4"
+ "class": "text-sm"
};
var _hoisted_28 = {
- "class": "text-n-50"
+ "class": "border-b border-b-n-20"
};
var _hoisted_29 = {
- "class": "text-tiny text-n-40"
+ "class": "flex flex-col break-all capitalize leading-4"
};
var _hoisted_30 = {
+ "class": "text-n-50"
+};
+var _hoisted_31 = {
+ "class": "text-tiny text-n-40"
+};
+var _hoisted_32 = {
"class": "dropdown__list border-b border-b-n-20"
};
-
-var _hoisted_31 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("a", {
- href: "#"
- }, "Your Profile", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_32 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("button", {
- "class": "text-sm"
- }, "Logout", -1
- /* HOISTED */
- );
-});
+var _hoisted_33 = {
+ href: "#"
+};
+var _hoisted_34 = {
+ "class": "text-sm"
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _a, _b;
@@ -13820,7 +14218,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", {
key: index,
"class": (0, vue_1.normalizeClass)($setup.data.menuNavLiClasses)
- }, [menu.name !== 'Add / Import Activity' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
+ }, [menu.name !== $setup.translation.common_lang.add_import_activity ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: 0,
"class": (0, vue_1.normalizeClass)([{
nav__pointer: menu.active
@@ -13830,24 +14228,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* TEXT */
)], 10
/* CLASS, PROPS */
- , _hoisted_10)) : (0, vue_1.createCommentVNode)("v-if", true), menu.name === 'Add / Import Activity' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", {
+ , _hoisted_10)) : (0, vue_1.createCommentVNode)("v-if", true), menu.name === $setup.translation.common_lang.add_import_activity ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", {
key: 1,
"class": (0, vue_1.normalizeClass)([{
nav__pointer: menu.active
}, $setup.data.menuNavAnchorClasses])
- }, [(0, vue_1.createElementVNode)("span", _hoisted_12, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(menu.name) + " ", 1
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_12, (0, vue_1.toDisplayString)(menu.name), 1
/* TEXT */
- ), menu.name === 'Add / Import Activity' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_13, [(0, vue_1.createElementVNode)("ul", _hoisted_14, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
- "class": (0, vue_1.normalizeClass)(["cursor-pointer", $setup.liClass]),
+ )], 2
+ /* CLASS */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), menu.name === $setup.translation.common_lang.add_import_activity ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_13, [(0, vue_1.createElementVNode)("ul", _hoisted_14, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
+ "class": (0, vue_1.normalizeClass)($setup.liClass),
onClick: _cache[2] || (_cache[2] = function ($event) {
return $setup.modalValue = true;
})
- }, "Add activity manually")]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
+ }, (0, vue_1.toDisplayString)($setup.translation.common_lang.add_activity_manually), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
href: "/import",
"class": (0, vue_1.normalizeClass)($setup.liClass)
- }, "Import activities from .csv/.xml")])])])) : (0, vue_1.createCommentVNode)("v-if", true)])], 2
- /* CLASS */
- )) : (0, vue_1.createCommentVNode)("v-if", true)], 2
+ }, (0, vue_1.toDisplayString)($setup.translation.common_lang.import_activities), 1
+ /* TEXT */
+ )])])])) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
);
}), 128
@@ -13864,28 +14266,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}),
"class": "search__input mr-3.5",
type: "text",
- placeholder: "Search activity...",
+ placeholder: $setup.translation.admin.header.search_activity,
onKeyup: _cache[4] || (_cache[4] = (0, vue_1.withKeys)(function ($event) {
return $setup.searchFunction('/activities');
}, ["enter"]))
- }, null, 544
- /* HYDRATE_EVENTS, NEED_PATCH */
- )), [[vue_1.vModelText, $setup.searchValue]]) : (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("input", {
+ }, null, 40
+ /* PROPS, HYDRATE_EVENTS */
+ , _hoisted_17)), [[vue_1.vModelText, $setup.searchValue]]) : (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("input", {
key: 1,
"onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
return $setup.searchValue = $event;
}),
"class": "search__input mr-3.5",
type: "text",
- placeholder: "Search organisation...",
+ placeholder: $setup.translation.admin.header.search_organisation,
onKeyup: _cache[6] || (_cache[6] = (0, vue_1.withKeys)(function ($event) {
return $setup.searchFunction('/list-organisations');
}, ["enter"]))
- }, null, 544
- /* HYDRATE_EVENTS, NEED_PATCH */
- )), [[vue_1.vModelText, $setup.searchValue]]), (0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 40
+ /* PROPS, HYDRATE_EVENTS */
+ , _hoisted_18)), [[vue_1.vModelText, $setup.searchValue]]), (0, vue_1.createVNode)(_component_svg_vue, {
icon: "search"
- }), $setup.spinner ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17)) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("button", {
+ }), $setup.spinner ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19)) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("button", {
"class": (0, vue_1.normalizeClass)($setup.isTouchDevice ? 'button secondary-btn--touch' : 'button secondary-btn dropdown-btn'),
onClick: _cache[7] || (_cache[7] = function ($event) {
return $setup.showUserDropdown = !$setup.showUserDropdown;
@@ -13895,38 +14297,46 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "dropdown__arrow",
icon: "dropdown-arrow"
- }), !$setup.isTouchDevice ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_18, [(0, vue_1.createElementVNode)("ul", null, [(0, vue_1.createElementVNode)("li", _hoisted_19, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }), !$setup.isTouchDevice ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_20, [(0, vue_1.createElementVNode)("ul", null, [(0, vue_1.createElementVNode)("li", _hoisted_21, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "user-profile",
icon: "user-profile"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("span", _hoisted_21, (0, vue_1.toDisplayString)($props.user.full_name), 1
+ })]), (0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("span", _hoisted_23, (0, vue_1.toDisplayString)($props.user.full_name), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("span", _hoisted_22, (0, vue_1.toDisplayString)((_a = $props.organization) === null || _a === void 0 ? void 0 : _a.publisher_name), 1
+ ), (0, vue_1.createElementVNode)("span", _hoisted_24, (0, vue_1.toDisplayString)((_a = $props.organization) === null || _a === void 0 ? void 0 : _a.publisher_name), 1
/* TEXT */
- )])]), (0, vue_1.createElementVNode)("li", _hoisted_23, [(0, vue_1.createVNode)(_component_svg_vue, {
+ )])]), (0, vue_1.createElementVNode)("li", _hoisted_25, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "user"
- }), _hoisted_24]), (0, vue_1.createElementVNode)("li", {
+ }), (0, vue_1.createElementVNode)("a", _hoisted_26, (0, vue_1.toDisplayString)($setup.translation.admin.header.your_profile), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", {
"class": "dropdown__list",
onClick: $setup.logout
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "logout"
- }), _hoisted_25])])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
+ }), (0, vue_1.createElementVNode)("button", _hoisted_27, (0, vue_1.toDisplayString)($setup.translation.admin.header.logout), 1
+ /* TEXT */
+ )])])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: 1,
"class": (0, vue_1.normalizeClass)([!$setup.showUserDropdown ? 'invisible -translate-y-2 opacity-0' : 'opacity-1 visible translate-y-0', "profile__dropdown--touch"])
- }, [(0, vue_1.createElementVNode)("ul", null, [(0, vue_1.createElementVNode)("li", _hoisted_26, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("ul", null, [(0, vue_1.createElementVNode)("li", _hoisted_28, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "user-profile",
icon: "user-profile"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createElementVNode)("span", _hoisted_28, (0, vue_1.toDisplayString)($props.user.full_name), 1
+ })]), (0, vue_1.createElementVNode)("div", _hoisted_29, [(0, vue_1.createElementVNode)("span", _hoisted_30, (0, vue_1.toDisplayString)($props.user.full_name), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("span", _hoisted_29, (0, vue_1.toDisplayString)((_b = $props.organization) === null || _b === void 0 ? void 0 : _b.publisher_name), 1
+ ), (0, vue_1.createElementVNode)("span", _hoisted_31, (0, vue_1.toDisplayString)((_b = $props.organization) === null || _b === void 0 ? void 0 : _b.publisher_name), 1
/* TEXT */
- )])]), (0, vue_1.createElementVNode)("li", _hoisted_30, [(0, vue_1.createVNode)(_component_svg_vue, {
+ )])]), (0, vue_1.createElementVNode)("li", _hoisted_32, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "user"
- }), _hoisted_31]), (0, vue_1.createElementVNode)("li", {
+ }), (0, vue_1.createElementVNode)("a", _hoisted_33, (0, vue_1.toDisplayString)($setup.translation.admin.header.your_profile), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", {
"class": "dropdown__list",
onClick: $setup.logout
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "logout"
- }), _hoisted_32])])], 2
+ }), (0, vue_1.createElementVNode)("button", _hoisted_34, (0, vue_1.toDisplayString)($setup.translation.admin.header.logout), 1
+ /* TEXT */
+ )])])], 2
/* CLASS */
))], 2
/* CLASS */
@@ -14087,49 +14497,161 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "subelement rounded-tl-lg border-l border-spring-50 pb-11"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_3 = {
"class": "control-label flex rounded-tl-lg rounded-tr-lg border-t border-r border-spring-50 py-4 px-6 text-sm font-bold leading-relaxed"
-}, "Description", -1
-/* HOISTED */
-);
-
+};
var _hoisted_4 = {
"class": "multi-form relative"
};
+var _hoisted_5 = {
+ "class": "form-field-group flex flex-wrap rounded-br-lg border-y border-r border-spring-50 p-6"
+};
+var _hoisted_6 = {
+ "class": "form-field max-w-half basis-6/12"
+};
+var _hoisted_7 = {
+ "class": "form-field-label"
+};
+var _hoisted_8 = {
+ "for": ""
+};
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createStaticVNode)("", 2);
+var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+ "class": "text-salmon-40"
+}, " *", -1
+/* HOISTED */
+);
-var _hoisted_7 = {
+var _hoisted_10 = {
+ id: "",
+ "aria-hidden": "true",
+ "class": "",
+ required: "",
+ tabindex: "-1"
+};
+var _hoisted_11 = {
+ value: ""
+};
+var _hoisted_12 = {
+ "data-select2-id": "select2-data-2-e15l",
+ value: "1"
+};
+var _hoisted_13 = {
+ value: "2"
+};
+var _hoisted_14 = {
+ value: "3"
+};
+var _hoisted_15 = {
+ value: "4"
+};
+var _hoisted_16 = {
"class": "add_to_collection add_more button relative ml-6 -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-bluecoral",
icon: "",
type: "button"
};
-var _hoisted_8 = {
+var _hoisted_17 = {
"class": "mr-1.5 text-lg"
};
+var _hoisted_18 = {
+ "class": "subelement rounded-tl-lg border-l border-spring-50 pb-11"
+};
+var _hoisted_19 = {
+ "class": "control-label flex rounded-tl-lg rounded-tr-lg border-t border-r border-spring-50 py-4 px-6 text-sm font-bold leading-relaxed"
+};
+var _hoisted_20 = {
+ "class": "form-child-body relative"
+};
+var _hoisted_21 = {
+ "class": "form-field-group flex flex-wrap rounded-br-lg border-y border-r border-spring-50 p-6"
+};
+var _hoisted_22 = {
+ "class": "form-field max-w-half basis-6/12"
+};
+var _hoisted_23 = {
+ "class": "form-field-label"
+};
+var _hoisted_24 = {
+ "for": ""
+};
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ADD NARRATIVE IN OTHER LANGUAGE ");
+var _hoisted_25 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+ "class": "text-salmon-40"
+}, " *", -1
+/* HOISTED */
+);
-var _hoisted_10 = {
+var _hoisted_26 = /*#__PURE__*/(0, vue_1.createElementVNode)("textarea", {
+ "class": "form__input border-0",
+ cols: "50",
+ name: "",
+ required: "",
+ rows: "10"
+}, "\nEducation and psychosocial support to children in Aleppo Governorate", -1
+/* HOISTED */
+);
+
+var _hoisted_27 = {
+ "class": "form-field max-w-half basis-6/12"
+};
+
+var _hoisted_28 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+ "class": "form-field-label"
+}, [/*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+ "for": ""
+}, [/*#__PURE__*/(0, vue_1.createTextVNode)("@xml:lang"), /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+ "class": "text-salmon-40"
+}, " *")])], -1
+/* HOISTED */
+);
+
+var _hoisted_29 = {
+ value: ""
+};
+
+var _hoisted_30 = /*#__PURE__*/(0, vue_1.createStaticVNode)("Afar Abkhazian English French Spanish ", 5);
+
+var _hoisted_35 = {
"class": "add_to_parent add_more button relative -translate-y-1/2 pl-3.5 text-xs font-bold uppercase leading-normal text-bluecoral",
icon: "",
type: "button"
};
-var _hoisted_11 = {
+var _hoisted_36 = {
"class": "mr-1.5 text-lg"
};
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createTextVNode)(" add additional description ");
-
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("form", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("div", _hoisted_4, [_hoisted_5, (0, vue_1.createElementVNode)("button", _hoisted_7, [(0, vue_1.createElementVNode)("span", _hoisted_8, [(0, vue_1.createVNode)(_component_svg_vue, {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("form", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("label", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.commoon_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("label", _hoisted_8, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.commoon_lang.type), 1
+ /* TEXT */
+ ), _hoisted_9])]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("select", _hoisted_10, [(0, vue_1.createElementVNode)("option", _hoisted_11, (0, vue_1.toDisplayString)(_ctx.language.common_lang.placeholder.select_a_value), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("option", _hoisted_12, " 1 - " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.general), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("option", _hoisted_13, "2 - " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.objectives), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("option", _hoisted_14, "3 - " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.target_groups) + " Groups", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("option", _hoisted_15, "4 - " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.other), 1
+ /* TEXT */
+ )])])])]), (0, vue_1.createElementVNode)("button", _hoisted_16, [(0, vue_1.createElementVNode)("span", _hoisted_17, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "add-more"
- })]), _hoisted_9])])]), (0, vue_1.createElementVNode)("button", _hoisted_10, [(0, vue_1.createElementVNode)("span", _hoisted_11, [(0, vue_1.createVNode)(_component_svg_vue, {
+ })]), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.add_narrative_in_other_lang), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("label", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("label", _hoisted_24, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.type), 1
+ /* TEXT */
+ ), _hoisted_25])]), _hoisted_26]), (0, vue_1.createElementVNode)("div", _hoisted_27, [_hoisted_28, (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("select", null, [(0, vue_1.createElementVNode)("option", _hoisted_29, (0, vue_1.toDisplayString)(_ctx.language.common_lang.placeholder.select_a_value), 1
+ /* TEXT */
+ ), _hoisted_30])])])])])])])]), (0, vue_1.createElementVNode)("button", _hoisted_35, [(0, vue_1.createElementVNode)("span", _hoisted_36, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "add-more"
- })]), _hoisted_12])]);
+ })]), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.add_additional_description), 1
+ /* TEXT */
+ )])]);
}
exports.render = render;
@@ -14167,34 +14689,15 @@ var _hoisted_4 = ["show"];
var _hoisted_5 = {
"class": "text-sm font-bold text-n-50"
};
-
-var _hoisted_6 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", {
- "class": "text-sm font-bold text-n-50"
- }, "Account not verified", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_7 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", {
- "class": "text-sm font-bold text-bluecoral"
- }, "Complete your setup", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_8 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", {
- "class": "text-sm font-bold text-n-50"
- }, "Publisher is Inactive", -1
- /* HOISTED */
- );
-});
-
+var _hoisted_6 = {
+ "class": "text-sm font-bold text-n-50"
+};
+var _hoisted_7 = {
+ "class": "text-sm font-bold text-bluecoral"
+};
+var _hoisted_8 = {
+ "class": "text-sm font-bold text-n-50"
+};
var _hoisted_9 = {
key: 1,
"class": "ml-4 mr-6"
@@ -14208,120 +14711,52 @@ var _hoisted_11 = {
var _hoisted_12 = {
"class": "alert__content"
};
-
-var _hoisted_13 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", null, "Account not verified", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_14 = {
+var _hoisted_13 = {
"class": "ml-5 text-left"
};
-
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Please check for verification email sent to you and verify your account, ");
-
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createTextVNode)(" if you haven’t received your verification email. Contact ");
-
-var _hoisted_17 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- target: "_blank",
- href: "mailto:support@iatistandard.org"
- }, "support@iatistandard.org")], -1
- /* HOISTED */
- );
-});
-
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createTextVNode)(" for further assistance. ");
-
-var _hoisted_19 = {
+var _hoisted_14 = {
key: 2,
"class": "ml-4 mr-6"
};
-var _hoisted_20 = {
+var _hoisted_15 = {
"class": "alert mb-2.5"
};
-var _hoisted_21 = {
+var _hoisted_16 = {
"class": "alert__container"
};
-var _hoisted_22 = {
+var _hoisted_17 = {
"class": "alert__content"
};
-
-var _hoisted_23 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", null, "Complete your setup", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_24 = {
+var _hoisted_18 = {
"class": "ml-5"
};
-
-var _hoisted_25 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("p", null, [/*#__PURE__*/(0, vue_1.createTextVNode)(" Please "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- href: "/setting",
- target: "_blank"
- }, "complete your setup")]), /*#__PURE__*/(0, vue_1.createTextVNode)(" in order to enable complete features of IATI publisher tool. ")], -1
- /* HOISTED */
- );
-});
-
-var _hoisted_26 = {
+var _hoisted_19 = {
key: 0,
"class": "alert__message"
};
-
-var _hoisted_27 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Update registry information - API Key & Publisher ID");
-
-var _hoisted_28 = {
+var _hoisted_20 = {
key: 0
};
-var _hoisted_29 = {
+var _hoisted_21 = {
key: 1,
"class": "alert__message"
};
-
-var _hoisted_30 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("p", null, "Update default values", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_31 = {
+var _hoisted_22 = {
key: 3,
"class": "ml-4 mr-6"
};
-var _hoisted_32 = {
+var _hoisted_23 = {
"class": "alert mb-2.5"
};
-var _hoisted_33 = {
+var _hoisted_24 = {
"class": "alert__container"
};
-var _hoisted_34 = {
+var _hoisted_25 = {
"class": "alert__content"
};
-
-var _hoisted_35 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", null, "Publisher is Inactive", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_36 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("div", {
- "class": "ml-5 text-left"
- }, [/*#__PURE__*/(0, vue_1.createElementVNode)("p", null, "The publisher is not active at IATI Registry.")], -1
- /* HOISTED */
- );
-});
+var _hoisted_26 = {
+ "class": "ml-5 text-left"
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -14353,7 +14788,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "red-dot",
"class": "text-[6px]"
- }), _hoisted_6], 2
+ }), (0, vue_1.createElementVNode)("span", _hoisted_6, (0, vue_1.toDisplayString)($setup.language.common_lang.account_not_verified), 1
+ /* TEXT */
+ )], 2
/* CLASS */
)) : (0, vue_1.createCommentVNode)("v-if", true), !$setup.errorData.publisher_setting || !$setup.errorData.default_setting ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: 1,
@@ -14361,7 +14798,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "red-dot",
"class": "text-[6px]"
- }), _hoisted_7], 2
+ }), (0, vue_1.createElementVNode)("span", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.common_lang.complete_your_setup), 1
+ /* TEXT */
+ )], 2
/* CLASS */
)) : (0, vue_1.createCommentVNode)("v-if", true), !$setup.errorData.publisher_active ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: 2,
@@ -14369,14 +14808,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "red-dot",
"class": "text-[6px]"
- }), _hoisted_8], 2
+ }), (0, vue_1.createElementVNode)("span", _hoisted_8, (0, vue_1.toDisplayString)($setup.language.common_lang.publisher_is_inactive), 1
+ /* TEXT */
+ )], 2
/* CLASS */
)) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("button", {
"class": "text-sm leading-relaxed text-bluecoral",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.show = !$setup.show;
})
- }, " Show " + (0, vue_1.toDisplayString)($setup.show ? "less" : "more"), 1
+ }, (0, vue_1.toDisplayString)($setup.language.button_lang.show) + " " + (0, vue_1.toDisplayString)($setup.show ? "less" : "more"), 1
/* TEXT */
)])])], 10
/* CLASS, PROPS */
@@ -14398,19 +14839,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "red-dot",
"class": "text-[6px]"
- }), _hoisted_13]), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("p", null, [_hoisted_15, (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createElementVNode)("a", {
- "class": "cursor-pointer border-b-2 border-b-bluecoral font-bold text-bluecoral hover:border-b-spring-50",
- onClick: _cache[1] || (_cache[1] = function ($event) {
- return $setup.resendVerificationEmail();
- })
- }, "resend verification email")]), _hoisted_16, _hoisted_17, _hoisted_18])])])])];
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.account_not_verified), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.common_lang.account_not_verified_description), 1
+ /* TEXT */
+ )])])])];
}),
_: 1
/* STABLE */
}, 8
/* PROPS */
- , ["show"])])) : (0, vue_1.createCommentVNode)("v-if", true), !$setup.errorData.publisher_setting || !$setup.errorData.default_setting ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_19, [(0, vue_1.createVNode)($setup["TransitionRoot"], {
+ , ["show"])])) : (0, vue_1.createCommentVNode)("v-if", true), !$setup.errorData.publisher_setting || !$setup.errorData.default_setting ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_14, [(0, vue_1.createVNode)($setup["TransitionRoot"], {
show: $setup.show,
as: "template",
enter: "transition-all duration-300 ease-out",
@@ -14421,23 +14861,33 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"leave-to": "-translate-y-32 opacity-0 w-[65%] mx-auto"
}, {
"default": (0, vue_1.withCtx)(function () {
- return [(0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createVNode)(_component_svg_vue, {
+ return [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "red-dot",
"class": "text-[6px]"
- }), _hoisted_23]), (0, vue_1.createElementVNode)("div", _hoisted_24, [_hoisted_25, !$setup.errorData.publisher_setting ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_26, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.complete_your_setup), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.common_lang.complete_your_setup_description), 1
+ /* TEXT */
+ ), !$setup.errorData.publisher_setting ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_19, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "red-cross",
"class": "text-[7px]"
- }), (0, vue_1.createElementVNode)("p", null, [_hoisted_27, !$setup.errorData.token_status ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_28, ". Please enter correct API token.")) : (0, vue_1.createCommentVNode)("v-if", true)])])) : (0, vue_1.createCommentVNode)("v-if", true), !$setup.errorData.default_setting ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_29, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }), (0, vue_1.createElementVNode)("p", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)($setup.language.common_lang.update_registry_information) + " - " + (0, vue_1.toDisplayString)($setup.language.common_lang.api_key_pub_id), 1
+ /* TEXT */
+ ), !$setup.errorData.token_status ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, ". " + (0, vue_1.toDisplayString)($setup.language.common_lang.enter_correct_api_token) + ".", 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])])) : (0, vue_1.createCommentVNode)("v-if", true), !$setup.errorData.default_setting ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_21, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "red-cross",
"class": "text-[7px]"
- }), _hoisted_30])) : (0, vue_1.createCommentVNode)("v-if", true)])])])];
+ }), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.common_lang.update_default_values), 1
+ /* TEXT */
+ )])) : (0, vue_1.createCommentVNode)("v-if", true)])])])];
}),
_: 1
/* STABLE */
}, 8
/* PROPS */
- , ["show"])])) : (0, vue_1.createCommentVNode)("v-if", true), !$setup.errorData.publisher_active ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_31, [(0, vue_1.createVNode)($setup["TransitionRoot"], {
+ , ["show"])])) : (0, vue_1.createCommentVNode)("v-if", true), !$setup.errorData.publisher_active ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_22, [(0, vue_1.createVNode)($setup["TransitionRoot"], {
show: $setup.show,
as: "template",
enter: "transition-all duration-300 ease-out",
@@ -14448,10 +14898,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"leave-to": "-translate-y-11 opacity-0 w-[90%] mx-auto"
}, {
"default": (0, vue_1.withCtx)(function () {
- return [(0, vue_1.createElementVNode)("div", _hoisted_32, [(0, vue_1.createElementVNode)("div", _hoisted_33, [(0, vue_1.createElementVNode)("div", _hoisted_34, [(0, vue_1.createVNode)(_component_svg_vue, {
+ return [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "red-dot",
"class": "text-[6px]"
- }), _hoisted_35]), _hoisted_36])])];
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.publisher_is_inactive), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_26, [(0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.common_lang.publisher_is_not_active), 1
+ /* TEXT */
+ )])])])];
}),
_: 1
/* STABLE */
@@ -14506,6 +14960,9 @@ var _hoisted_6 = {
key: 1,
"class": "list-disc rounded-md bg-salmon-10 p-3 font-medium"
};
+var _hoisted_7 = {
+ "class": "mt-4 flex flex-row-reverse"
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -14526,12 +14983,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
);
}), 128
/* KEYED_FRAGMENT */
- ))])), (0, vue_1.createElementVNode)("div", {
- "class": "mt-4 flex flex-row-reverse"
- }, [(0, vue_1.createElementVNode)("button", {
+ ))])), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("button", {
"class": "rounded bg-bluecoral py-2 px-5 font-semibold text-white",
onClick: $setup.close
- }, " Close ")])])]);
+ }, (0, vue_1.toDisplayString)($setup.language.button_lang.close), 1
+ /* TEXT */
+ )])])]);
}
exports.render = render;
@@ -14580,7 +15037,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* PROPS */
, ["class"])]), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)([_ctx.position === 'right' ? 'help__text left-0 ' + _ctx.width : 'help__text right-0 ' + _ctx.width])
- }, [_ctx.showIatiReference ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_2, " IATI standard reference ")) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.name), 1
+ }, [_ctx.showIatiReference ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.language.common_lang.iati_standard_reference), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.name), 1
/* TEXT */
), (0, vue_1.createCommentVNode)(" eslint-disable vue/no-v-html "), (0, vue_1.createElementVNode)("p", {
innerHTML: _ctx.hoverText
@@ -14590,8 +15049,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
key: 1,
href: _ctx.link,
"class": "inline-block font-bold text-bluecoral"
- }, "Learn more", 8
- /* PROPS */
+ }, (0, vue_1.toDisplayString)(_ctx.language.button_lang.learn_more), 9
+ /* TEXT, PROPS */
, _hoisted_5)) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
)]);
@@ -14836,20 +15295,13 @@ var _hoisted_1 = {
"class": "pagination",
"aria-label": "Pagination"
};
-
-var _hoisted_2 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_2 = {
"class": ""
-}, "Prev", -1
-/* HOISTED */
-);
-
+};
var _hoisted_3 = ["onClick"];
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_4 = {
"class": ""
-}, "Next", -1
-/* HOISTED */
-);
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -14872,7 +15324,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "arrow-left"
- }), _hoisted_2], 2
+ }), (0, vue_1.createElementVNode)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.language.button_lang.prev), 1
+ /* TEXT */
+ )], 2
/* CLASS */
), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.data.last_page, function (index, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
@@ -14902,7 +15356,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.nextPage && _ctx.nextPage.apply(_ctx, args);
})
- }, [_hoisted_4, (0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.button_lang.next), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_svg_vue, {
icon: "arrow-right"
})], 2
/* CLASS */
@@ -14991,21 +15447,13 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "flex mb-6 title"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Delete activity", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_3 = {
"class": "p-4 rounded-lg bg-rose"
-}, " Are you sure you want to delete this activity? ", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+};
+var _hoisted_4 = {
"class": "flex justify-end"
};
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "inline-flex"
};
@@ -15029,19 +15477,27 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 mt-0.5 text-lg text-crimson-40",
icon: "delete"
- }), _hoisted_3]), _hoisted_4]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)($setup["BtnComponent"], {
+ }), (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.button_lang.delete_something.replace(':something', $setup.language.common_lang.activity)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)($setup.language.button_lang.delete_confirmation.replace(':something', $setup.language.common_lang.activity)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "px-6 uppercase bg-white",
- text: "Go Back",
+ text: $setup.language.button_lang.go_back,
type: "",
onClick: _cache[1] || (_cache[1] = function ($event) {
return $setup.deleteValue = false;
})
- }), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"]), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "space",
- text: "Delete",
+ text: $setup.language.button_lang["delete"],
type: "primary",
onClick: $setup.deleteFunction
- })])])];
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])];
}),
_: 1
/* STABLE */
@@ -15201,68 +15657,86 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [$setup.publishStep == 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 0,
"class": "bg-white px-6 uppercase",
- text: "Go Back",
+ text: $setup.language.button_lang.go_back,
type: "",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.publishValue = false;
})
- })) : (0, vue_1.createCommentVNode)("v-if", true), $setup.publishStep == 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.publishStep == 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 1,
"class": "space",
- text: "Continue",
+ text: $setup.language.button_lang["continue"],
type: "primary",
onClick: $setup.stepPlusOne
- })) : (0, vue_1.createCommentVNode)("v-if", true)], 64
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true)], 64
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
}, [$setup.publishStep == 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 0,
"class": "bg-white px-6 uppercase",
- text: "Continue Anyway",
+ text: $setup.language.button_lang.continue_anyway,
type: "",
onClick: $setup.stepPlusOne
- })) : (0, vue_1.createCommentVNode)("v-if", true), $setup.publishStep == 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.publishStep == 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 1,
"class": "space",
- text: "Add Missing Data",
+ text: $setup.language.button_lang.add_something.replace(':something', $setup.language.common_lang.missing.data),
type: "primary",
onClick: _cache[1] || (_cache[1] = function ($event) {
return $setup.publishValue = false;
})
- })) : (0, vue_1.createCommentVNode)("v-if", true)], 64
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true)], 64
/* STABLE_FRAGMENT */
)), $setup.publishStep === 1 || $setup.publishStep === 2 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 2,
"class": "bg-white px-6 uppercase",
- text: "Go Back",
+ text: $setup.language.button_lang.go_back,
type: "",
onClick: $setup.stepMinusOne
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" api validator button (validatorFunction) "), $setup.publishStep === 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" api validator button (validatorFunction) "), $setup.publishStep === 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 3,
"class": "space",
- text: "Continue",
+ text: $setup.language.button_lang["continue"],
type: "primary",
onClick: $setup.validatorFunction
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" api publishing button (publishFunction) "), $setup.publishStep === 2 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" api publishing button (publishFunction) "), $setup.publishStep === 2 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 4,
"class": "space",
- text: "Publish",
+ text: $setup.language.button_lang.publish,
type: "primary",
onClick: $setup.publishFunction
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" api publishing button (publishFunction) "), $setup.publishStep === 3 || $setup.publishStep === 4 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" api publishing button (publishFunction) "), $setup.publishStep === 3 || $setup.publishStep === 4 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 5,
"class": "bg-white px-6 uppercase",
- text: "Publish Anyway",
+ text: $setup.language.button_lang.publish_anyway,
type: "",
onClick: $setup.publishFunction
- })) : (0, vue_1.createCommentVNode)("v-if", true), $setup.publishStep === 3 || $setup.publishStep === 4 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.publishStep === 3 || $setup.publishStep === 4 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 6,
"class": "space",
- text: "Fix issues",
+ text: $setup.language.button_lang.fix_issues,
type: "primary",
onClick: $setup.resetPublishStep
- })) : (0, vue_1.createCommentVNode)("v-if", true)])])];
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true)])])];
}),
_: 1
/* STABLE */
@@ -15308,21 +15782,13 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "flex mb-6 title"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Unpublish activity", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_3 = {
"class": "p-4 rounded-lg bg-rose"
-}, " Are you sure you want to unpublish this activity? ", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+};
+var _hoisted_4 = {
"class": "flex justify-end"
};
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "inline-flex"
};
@@ -15348,19 +15814,27 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 mt-0.5 text-lg text-crimson-40",
icon: "cancel-cloud"
- }), _hoisted_3]), _hoisted_4]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)($setup["BtnComponent"], {
+ }), (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.button_lang.unpublish) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.activity), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)($setup.language.button_lang.unpublish_confirmation.replace(':something', $setup.language.common_lang.activity)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "px-6 uppercase bg-white",
- text: "Go Back",
+ text: $setup.language.button_lang.go_back,
type: "",
onClick: _cache[1] || (_cache[1] = function ($event) {
return $setup.unpublishValue = false;
})
- }), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"]), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "space",
- text: "Unpublish",
+ text: $setup.language.button_lang.unpublish,
type: "primary",
onClick: $setup.unPublishFunction
- })])])];
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])];
}),
_: 1
/* STABLE */
@@ -15467,19 +15941,43 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 mt-0.5 text-lg text-crimson-40",
icon: "delete"
- }), $setup.props.itemType === 'result' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_3, "Delete Result")) : $setup.props.itemType === 'indicator' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_4, "Delete Indicator")) : $setup.props.itemType === 'period' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_5, "Delete Period")) : $setup.props.itemType === 'transaction' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_6, "Delete Transaction")) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_7, "Delete"))]), (0, vue_1.createElementVNode)("div", _hoisted_8, [$setup.props.itemType === 'result' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_9, " Are you sure you want to delete this Result? Related Indicators and Periods will also be deleted ")) : $setup.props.itemType === 'indicator' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_10, " Are you sure you want to delete this Indicator? Related Periods will also be deleted ")) : $setup.props.itemType === 'period' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_11, " Are you sure you want to delete this Period? ")) : $setup.props.itemType === 'transaction' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_12, " Are you sure you want to delete this Transaction? ")) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_13, "Are you sure you want to delete this module?"))])]), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createVNode)($setup["BtnComponent"], {
+ }), $setup.props.itemType === 'result' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_3, (0, vue_1.toDisplayString)($setup.language.button_lang.delete_result), 1
+ /* TEXT */
+ )) : $setup.props.itemType === 'indicator' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_4, (0, vue_1.toDisplayString)($setup.language.button_lang.delete_indicator), 1
+ /* TEXT */
+ )) : $setup.props.itemType === 'period' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_5, (0, vue_1.toDisplayString)($setup.language.button_lang.delete_period), 1
+ /* TEXT */
+ )) : $setup.props.itemType === 'transaction' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_6, (0, vue_1.toDisplayString)($setup.language.button_lang.delete_transaction), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("b", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.button_lang["delete"]), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_8, [$setup.props.itemType === 'result' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_9, (0, vue_1.toDisplayString)($setup.language.common_lang.delete_confim_default) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.result) + " ? " + (0, vue_1.toDisplayString)($setup.language.common_lang.related_indicator_period_deleted), 1
+ /* TEXT */
+ )) : $setup.props.itemType === 'indicator' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_10, (0, vue_1.toDisplayString)($setup.language.common_lang.delete_confim_default) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.indicator) + " ? " + (0, vue_1.toDisplayString)($setup.language.common_lang.related_period_deleted), 1
+ /* TEXT */
+ )) : $setup.props.itemType === 'period' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_11, (0, vue_1.toDisplayString)($setup.language.common_lang.delete_confim_default) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.period) + " ? ", 1
+ /* TEXT */
+ )) : $setup.props.itemType === 'transaction' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.common_lang.delete_confim_default) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.transaction) + " ? ", 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_13, (0, vue_1.toDisplayString)($setup.language.common_lang.delete_confirm_default) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.module) + " ?", 1
+ /* TEXT */
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "bg-white px-6 uppercase",
- text: "Go Back",
+ text: $setup.language.button_lang.go_back,
type: "",
onClick: _cache[1] || (_cache[1] = function ($event) {
return $setup.deleteValue = false;
})
- }), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"]), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "space",
- text: "Delete",
+ text: $setup.language.button_lang["delete"],
type: "primary",
onClick: $setup.deleteFunction
- })])])];
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])];
}),
_: 1
/* STABLE */
@@ -15647,21 +16145,13 @@ var _hoisted_6 = {
var _hoisted_7 = {
"class": "title mb-6 flex"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Unpublish organisation", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_8 = {
"class": "rounded-lg bg-rose p-4"
-}, " Are you sure you want to unpublish this organisation? ", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+};
+var _hoisted_9 = {
"class": "flex justify-end"
};
-var _hoisted_11 = {
+var _hoisted_10 = {
"class": "inline-flex"
};
@@ -15708,17 +16198,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
)]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [!$setup.mandatoryElementStatus ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 0,
"class": "bg-white px-6 uppercase",
- text: "Add Missing Data",
+ text: $setup.language.button_lang.add_something.replace(':something', $setup.language.common_lang.missing.data),
type: "",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.publishValue = false;
})
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "space",
- text: "Continue",
+ text: $setup.language.button_lang["continue"],
type: "primary",
onClick: $setup.publishFunction
- })])])];
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])];
}),
_: 1
/* STABLE */
@@ -15728,13 +16222,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["modal-active", "onClose"]), $setup.publishStatus.is_published ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 1,
"class": "ml-4",
- text: "Unpublish",
+ text: $setup.language.button_lang.unpublish,
type: "primary",
icon: "cancel-cloud",
onClick: _cache[1] || (_cache[1] = function ($event) {
return $setup.unpublishValue = true;
})
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)($setup["Modal"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)($setup["Modal"], {
"modal-active": $setup.unpublishValue,
width: "583",
onClose: $setup.unpublishToggle
@@ -15743,19 +16239,27 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 mt-0.5 text-lg text-crimson-40",
icon: "cancel-cloud"
- }), _hoisted_8]), _hoisted_9]), (0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createVNode)($setup["BtnComponent"], {
+ }), (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.button_lang.unpublish) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.organisation), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)($setup.language.button_lang.unpublish_confirmation.replace(':something', $setup.language.common_lang.organisation)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "bg-white px-6 uppercase",
- text: "Go Back",
+ text: $setup.language.button_lang.go_back,
type: "",
onClick: _cache[2] || (_cache[2] = function ($event) {
return $setup.unpublishValue = false;
})
- }), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"]), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "space",
- text: "Unpublish",
+ text: $setup.language.button_lang.unpublish,
type: "primary",
onClick: $setup.unPublishFunction
- })])])];
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])];
}),
_: 1
/* STABLE */
@@ -15966,28 +16470,32 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 text-base text-crimson-50",
icon: "warning-fill"
- }), (0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)($setup.errorData.length) + " Issues found", 1
+ }), (0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)($setup.errorData.length) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.issues_found), 1
/* TEXT */
)]), (0, vue_1.createElementVNode)("button", {
"class": "validation__toggle",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.errorToggle();
})
- }, "Show")])], 2
+ }, (0, vue_1.toDisplayString)($setup.language.common_lang.show), 1
+ /* TEXT */
+ )])], 2
/* CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["validation validation__errors", {
'opacity-1 visible': $setup.errorValue,
'invisible opacity-0': !$setup.errorValue
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)($setup.errorData.length) + " Issues found in IATI Validator ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)($setup.errorData.length) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.issues_found_in_iati_validator), 1
/* TEXT */
)]), (0, vue_1.createElementVNode)("button", {
"class": "validation__toggle",
onClick: _cache[1] || (_cache[1] = function ($event) {
return $setup.errorToggle();
})
- }, "Hide")]), (0, vue_1.createElementVNode)("div", _hoisted_7, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.tempData, function (error, e) {
+ }, (0, vue_1.toDisplayString)($setup.language.button_lang.hide), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_7, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.tempData, function (error, e) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: e,
"class": (0, vue_1.normalizeClass)({
@@ -16109,37 +16617,25 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "setting input__field"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_3 = {
"class": "text-xs font-bold text-n-40"
-}, "Override default values", -1
-/* HOISTED */
-);
-
+};
var _hoisted_4 = {
- "class": "mb-6 flex flex-wrap items-center justify-between gap-2"
+ "class": "flex items-center justify-between"
};
var _hoisted_5 = {
- "class": "mt-4 flex items-center"
+ "class": "mt-4 mb-6 flex items-center"
};
var _hoisted_6 = ["href"];
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("h2", {
+var _hoisted_7 = {
"class": "ml-3 text-heading-4 font-bold text-n-50"
-}, " Override default values ", -1
-/* HOISTED */
-);
-
+};
var _hoisted_8 = {
"class": "setting__container overflow-x-hidden"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_9 = {
"class": "mb-8 text-xs text-n-40"
-}, " Use the following form to change the default values such as currency, language etc for this specific activity. Changing the values here will not change the default values in the setting page. ", -1
-/* HOISTED */
-);
-
+};
var _hoisted_10 = {
"class": "register mt-4"
};
@@ -16149,13 +16645,9 @@ var _hoisted_11 = {
var _hoisted_12 = {
"class": "flex justify-between"
};
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_13 = {
"for": "default-currency"
-}, "Currency", -1
-/* HOISTED */
-);
-
+};
var _hoisted_14 = {
key: 0
};
@@ -16169,13 +16661,9 @@ var _hoisted_16 = {
var _hoisted_17 = {
"class": "flex justify-between"
};
-
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_18 = {
"for": "default-currency"
-}, "Language", -1
-/* HOISTED */
-);
-
+};
var _hoisted_19 = {
key: 0
};
@@ -16189,62 +16677,51 @@ var _hoisted_21 = {
var _hoisted_22 = {
"class": "flex justify-between"
};
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
- "for": "default-currency"
-}, "Hierarchy", -1
-/* HOISTED */
-);
-
-var _hoisted_24 = {
- key: 0
+var _hoisted_23 = {
+ "for": "default-hierarchy"
};
+var _hoisted_24 = ["placeholder"];
var _hoisted_25 = {
- "class": "text-xs"
+ key: 0
};
var _hoisted_26 = {
+ "class": "text-xs"
+};
+var _hoisted_27 = {
key: 1,
"class": "text-xs text-n-40"
};
-var _hoisted_27 = {
+var _hoisted_28 = {
"class": "flex justify-between"
};
-
-var _hoisted_28 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
- "for": "default-currency"
-}, "Budget not provided", -1
-/* HOISTED */
-);
-
var _hoisted_29 = {
- key: 0
+ "for": "default-currency"
};
var _hoisted_30 = {
- "class": "text-xs"
+ key: 0
};
var _hoisted_31 = {
+ "class": "text-xs"
+};
+var _hoisted_32 = {
"class": "flex justify-between"
};
-
-var _hoisted_32 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
- "for": "default-currency"
-}, "Humanitarian", -1
-/* HOISTED */
-);
-
var _hoisted_33 = {
- key: 0
+ "for": "default-currency"
};
var _hoisted_34 = {
- "class": "text-xs"
+ key: 0
};
var _hoisted_35 = {
- "class": "fixed bottom-0 left-0 w-full bg-eggshell py-5 pr-40 shadow-dropdown"
+ "class": "text-xs"
};
var _hoisted_36 = {
+ "class": "fixed bottom-0 left-0 w-full bg-eggshell py-5 pr-40 shadow-dropdown"
+};
+var _hoisted_37 = {
"class": "flex items-center justify-end"
};
-var _hoisted_37 = ["href"];
+var _hoisted_38 = ["href"];
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _a;
@@ -16255,35 +16732,45 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("section", _hoisted_1, [$setup.loaderVisibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Loader"], {
key: 0
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("a", {
+ })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.override_default_values.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("a", {
href: "/activity/".concat($props.activityId)
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "left-arrow"
})], 8
/* PROPS */
- , _hoisted_6), _hoisted_7]), (0, vue_1.createElementVNode)("div", null, [$setup.toastVisibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Toast"], {
+ , _hoisted_6), (0, vue_1.createElementVNode)("h2", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.override_default_values.label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", null, [$setup.toastVisibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Toast"], {
key: 0,
message: $setup.toastMessage,
type: $setup.toastType
}, null, 8
/* PROPS */
- , ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true)])]), (0, vue_1.createElementVNode)("div", _hoisted_8, [_hoisted_9, (0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_12, [_hoisted_13, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
- name: "Default Currency",
- "hover-text": "The currency in which you report your financial transactions. You can later manually change the currency on individual transactions and budgets if required.",
+ , ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true)])]), (0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("div", _hoisted_9, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.override_default_values.text), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("label", _hoisted_13, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.currency.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ name: $setup.language.activity_default_lang.currency.hover_header,
+ "hover-text": $setup.language.activity_default_lang.currency.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.createVNode)($setup["Multiselect"], {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createVNode)($setup["Multiselect"], {
id: "default-currency",
modelValue: $setup.defaultValues.default_currency,
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return $setup.defaultValues.default_currency = $event;
}),
"class": "vue__select",
- placeholder: "Select from dropdown",
+ placeholder: $setup.language.activity_default_lang.currency.placeholder,
options: $props.currencies,
searchable: true
}, null, 8
/* PROPS */
- , ["modelValue", "options"]), $setup.defaultErrors.default_currency.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_14, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)((_a = $setup.defaultErrors) === null || _a === void 0 ? void 0 : _a.default_currency, function (error, e) {
+ , ["modelValue", "placeholder", "options"]), $setup.defaultErrors.default_currency.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_14, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)((_a = $setup.defaultErrors) === null || _a === void 0 ? void 0 : _a.default_currency, function (error, e) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: e,
"class": "error",
@@ -16293,23 +16780,29 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
)]);
}), 128
/* KEYED_FRAGMENT */
- ))])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.defaultErrors.default_currency.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_16, " The currency in which you are reporting your financial transactions for this activity. Select from dropdown ")) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_17, [_hoisted_18, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
- name: "Default Language",
- "hover-text": "The language in which you provide data on your activities. You can later manually change the language on individual text if required.",
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.defaultErrors.default_currency.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_16, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.currency.help_text), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("label", _hoisted_18, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.language.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ name: $setup.language.activity_default_lang.language.hover_header,
+ "hover-text": $setup.language.activity_default_lang.language.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.createVNode)($setup["Multiselect"], {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createVNode)($setup["Multiselect"], {
id: "default-language",
modelValue: $setup.defaultValues.default_language,
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return $setup.defaultValues.default_language = $event;
}),
"class": "vue__select",
- placeholder: "Select from dropdown",
+ placeholder: $setup.language.activity_default_lang.language.placeholder,
searchable: true,
options: $setup.props.languages
}, null, 8
/* PROPS */
- , ["modelValue", "options"]), $setup.defaultErrors.default_language.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_19, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.defaultErrors.default_language, function (error, e) {
+ , ["modelValue", "placeholder", "options"]), $setup.defaultErrors.default_language.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_19, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.defaultErrors.default_language, function (error, e) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: e,
"class": "error",
@@ -16319,95 +16812,113 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
)]);
}), 128
/* KEYED_FRAGMENT */
- ))])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.defaultErrors.default_language.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_21, " The language in which you are reporting this activity. Select from dropdown. ")) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_22, [_hoisted_23, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.defaultErrors.default_language.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_21, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.language.help_text), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("label", _hoisted_23, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.hierarchy.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
width: "w-64",
- name: "Default Hierarchy",
- "hover-text": "If you are reporting both programmes (parent activities) and projects (child activities),\n choose the hierarchical level that most of your activities are at. e.g. parent activity = 1; child activity = 2.\n If all your activities are at the same level i.e. you have no child activities, then choose 1.",
+ name: $setup.language.activity_default_lang.hierarchy.hover_header,
+ "hover-text": $setup.language.activity_default_lang.hierarchy.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
id: "default-hierarchy",
"onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
return $setup.defaultValues.hierarchy = $event;
}),
"class": "register__input mb-2",
type: "text",
- placeholder: "Type default hierarchy here"
- }, null, 512
- /* NEED_PATCH */
- ), [[vue_1.vModelText, $setup.defaultValues.hierarchy]]), $setup.defaultErrors.hierarchy.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_24, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.defaultErrors.hierarchy, function (error, e) {
+ placeholder: $setup.language.activity_default_lang.hierarchy.placeholder
+ }, null, 8
+ /* PROPS */
+ , _hoisted_24), [[vue_1.vModelText, $setup.defaultValues.hierarchy]]), $setup.defaultErrors.hierarchy.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_25, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.defaultErrors.hierarchy, function (error, e) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: e,
"class": "error",
role: "alert"
- }, [(0, vue_1.createElementVNode)("span", _hoisted_25, (0, vue_1.toDisplayString)(error), 1
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_26, (0, vue_1.toDisplayString)(error), 1
/* TEXT */
)]);
}), 128
/* KEYED_FRAGMENT */
- ))])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.defaultErrors.hierarchy.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_26, " IATI allows for activities to be reported hierarchically (eg. parent - child ; programme - project - sub-project, etc). For activities at lower levels, their hierarchy can be edited as you are entering them. ")) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_27, [_hoisted_28, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true), $setup.defaultErrors.hierarchy.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_27, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.hierarchy.help_text), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_28, [(0, vue_1.createElementVNode)("label", _hoisted_29, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.budget_not_provided.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
width: "w-72",
- name: "Budget Not Provided",
- "hover-text": "A code indicating the reason why this activity does not contain any iati-activity/budget elements. The attribute MUST only be used when no budget elements are present."
- })])]), (0, vue_1.createVNode)($setup["Multiselect"], {
+ name: $setup.language.activity_default_lang.budget_not_provided.hover_header,
+ "hover-text": $setup.language.activity_default_lang.budget_not_provided.hover_text
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createVNode)($setup["Multiselect"], {
id: "budget_not_provided",
modelValue: $setup.defaultValues.budget_not_provided,
"onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
return $setup.defaultValues.budget_not_provided = $event;
}),
"class": "vue__select",
- placeholder: "Select budget not provided type here",
+ placeholder: $setup.language.activity_default_lang.budget_not_provided.placeholder,
options: $props.budgetNotProvided,
searchable: true
}, null, 8
/* PROPS */
- , ["modelValue", "options"]), $setup.defaultErrors.budget_not_provided.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_29, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.defaultErrors.budget_not_provided, function (error, e) {
+ , ["modelValue", "placeholder", "options"]), $setup.defaultErrors.budget_not_provided.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_30, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.defaultErrors.budget_not_provided, function (error, e) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: e,
"class": "error",
role: "alert"
- }, [(0, vue_1.createElementVNode)("span", _hoisted_30, (0, vue_1.toDisplayString)(error), 1
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_31, (0, vue_1.toDisplayString)(error), 1
/* TEXT */
)]);
}), 128
/* KEYED_FRAGMENT */
- ))])) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_31, [_hoisted_32, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_32, [(0, vue_1.createElementVNode)("label", _hoisted_33, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.humanitarian.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
width: "w-72",
- name: "Humanitarian",
- "hover-text": "Add a 'Humanitarian Flag' to every activity that your organisation publishes data on. This means that your organisation identifies all their activities as wholly or partially addressing a humanitarian crisis or multiple crises. You can later manually add or remove a Humanitarian Flag on individual activities if required.",
+ name: $setup.language.activity_default_lang.humanitarian.hover_header,
+ "hover-text": $setup.language.activity_default_lang.humanitarian.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.createVNode)($setup["Multiselect"], {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createVNode)($setup["Multiselect"], {
id: "humanitarian",
modelValue: $setup.defaultValues.humanitarian,
"onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
return $setup.defaultValues.humanitarian = $event;
}),
"class": "vue__select",
- placeholder: "Select Humanitarian here",
+ placeholder: $setup.language.activity_default_lang.humanitarian.placeholder,
options: $props.humanitarian,
searchable: true
}, null, 8
/* PROPS */
- , ["modelValue", "options"]), $setup.defaultErrors.humanitarian.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_33, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.defaultErrors.humanitarian, function (error, e) {
+ , ["modelValue", "placeholder", "options"]), $setup.defaultErrors.humanitarian.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_34, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.defaultErrors.humanitarian, function (error, e) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: e,
"class": "error",
role: "alert"
- }, [(0, vue_1.createElementVNode)("span", _hoisted_34, (0, vue_1.toDisplayString)(error), 1
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_35, (0, vue_1.toDisplayString)(error), 1
/* TEXT */
)]);
}), 128
/* KEYED_FRAGMENT */
- ))])) : (0, vue_1.createCommentVNode)("v-if", true)])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_35, [(0, vue_1.createElementVNode)("div", _hoisted_36, [(0, vue_1.createElementVNode)("a", {
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true)])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_36, [(0, vue_1.createElementVNode)("div", _hoisted_37, [(0, vue_1.createElementVNode)("a", {
"class": "ghost-btn mr-8",
href: "/activity/".concat($props.activityId)
- }, "Cancel", 8
- /* PROPS */
- , _hoisted_37), (0, vue_1.createElementVNode)("button", {
+ }, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.cancel_label), 9
+ /* TEXT, PROPS */
+ , _hoisted_38), (0, vue_1.createElementVNode)("button", {
"class": "primary-btn save-btn",
onClick: _cache[5] || (_cache[5] = function ($event) {
return $setup.submitForm();
})
- }, " Save default values ")])])]);
+ }, (0, vue_1.toDisplayString)($setup.language.activity_default_lang.save_default_values_label), 1
+ /* TEXT */
+ )])])]);
}
exports.render = render;
@@ -16448,13 +16959,10 @@ var _hoisted_4 = {
var _hoisted_5 = {
"class": "flex"
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_6 = {
"class": "whitespace-nowrap font-bold",
href: "/activities"
-}, " Your Activities ", -1
-/* HOISTED */
-);
+};
var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
"class": "separator mx-4"
@@ -16466,7 +16974,7 @@ var _hoisted_8 = {
"class": "breadcrumb__title"
};
var _hoisted_9 = {
- "class": "breadcrumb__title last w-[200px] overflow-hidden text-ellipsis text-n-30"
+ "class": "breadcrumb__title last max-w-lg overflow-hidden text-n-30"
};
var _hoisted_10 = {
"class": "ellipsis__title--hover w-[calc(100%_+_35px)]"
@@ -16527,136 +17035,86 @@ var _hoisted_27 = {
var _hoisted_28 = {
"class": "mb-2 flex items-center justify-between"
};
-
-var _hoisted_29 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_29 = {
"class": "mr-2"
-}, "Publishing Progress", -1
-/* HOISTED */
-);
-
-var _hoisted_30 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Complete all core elements to get 100% score", -1
-/* HOISTED */
-);
-
-var _hoisted_31 = {
+};
+var _hoisted_30 = {
"class": "activities__card elements"
};
-var _hoisted_32 = {
+var _hoisted_31 = {
"class": "mb-7 flex items-center justify-between"
};
-
-var _hoisted_33 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Elements", -1
-/* HOISTED */
-);
-
-var _hoisted_34 = {
+var _hoisted_32 = {
"class": "mb-3 flex justify-between"
};
-var _hoisted_35 = {
+var _hoisted_33 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_36 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Core", -1
-/* HOISTED */
-);
-
-var _hoisted_37 = {
+var _hoisted_34 = {
"class": "flex justify-between"
};
-var _hoisted_38 = {
+var _hoisted_35 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_39 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Completed", -1
-/* HOISTED */
-);
-
-var _hoisted_40 = {
+var _hoisted_36 = {
"class": "!z-[200] w-[280px] bg-white pt-8"
};
-var _hoisted_41 = {
+var _hoisted_37 = {
key: 0,
"class": "mb-2"
};
-var _hoisted_42 = {
+var _hoisted_38 = {
"class": "mb-1 flex"
};
-var _hoisted_43 = {
+var _hoisted_39 = {
"class": "activities__card progress mr-1"
};
-var _hoisted_44 = {
+var _hoisted_40 = {
"class": "mb-2 flex items-center justify-between"
};
-
-var _hoisted_45 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_41 = {
"class": "mr-2"
-}, "Publishing Progress", -1
-/* HOISTED */
-);
-
-var _hoisted_46 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Complete all core elements to get 100% score", -1
-/* HOISTED */
-);
-
-var _hoisted_47 = {
+};
+var _hoisted_42 = {
"class": "activities__card elements"
};
-var _hoisted_48 = {
+var _hoisted_43 = {
"class": "mb-7 flex items-center justify-between"
};
-
-var _hoisted_49 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Elements", -1
-/* HOISTED */
-);
-
-var _hoisted_50 = {
+var _hoisted_44 = {
"class": "mb-3 flex justify-between"
};
-var _hoisted_51 = {
+var _hoisted_45 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_52 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Core", -1
-/* HOISTED */
-);
-
-var _hoisted_53 = {
+var _hoisted_46 = {
"class": "flex justify-between"
};
-var _hoisted_54 = {
+var _hoisted_47 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_55 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Completed", -1
-/* HOISTED */
-);
-
-var _hoisted_56 = {
+var _hoisted_48 = {
"class": "flex justify-end"
};
-var _hoisted_57 = ["href"];
-
-var _hoisted_58 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_49 = ["href"];
+var _hoisted_50 = {
"class": "whitespace-nowrap"
-}, "Override this activity's default values", -1
-/* HOISTED */
-);
-
-var _hoisted_59 = {
+};
+var _hoisted_51 = {
"class": "mb-3 inline-flex max-w-[70%] flex-wrap gap-2 lg:max-w-full"
};
-var _hoisted_60 = ["href"];
-var _hoisted_61 = ["disabled"];
-var _hoisted_62 = {
+var _hoisted_52 = ["href"];
+var _hoisted_53 = ["disabled"];
+var _hoisted_54 = {
"class": "hover__text"
};
-var _hoisted_63 = {
+var _hoisted_55 = {
"class": "activities__content--elements -mx-3 flex flex-wrap"
};
-var _hoisted_64 = {
+var _hoisted_56 = {
"class": "elements-title relative mx-3 mt-3 mb-1 flex w-full items-center text-sm uppercase text-n-40"
};
-var _hoisted_65 = ["id"];
+var _hoisted_57 = ["id"];
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _a;
@@ -16713,15 +17171,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "chevron",
"class": "rotate-180 pb-2 text-3xl text-white"
- })])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createCommentVNode)(" title section "), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("nav", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [_hoisted_6, _hoisted_7, (0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("span", _hoisted_9, (0, vue_1.toDisplayString)((_a = _ctx.pageTitle) !== null && _a !== void 0 ? _a : 'Untitled'), 1
+ })])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createCommentVNode)(" title section "), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("nav", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("a", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.language.activity_lang.your_activities_label), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.pageTitle ? _ctx.pageTitle : 'Untitled'), 1
+ ), _hoisted_7, (0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("span", _hoisted_9, (0, vue_1.toDisplayString)((_a = _ctx.pageTitle) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.untitled), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.pageTitle ? _ctx.pageTitle : _ctx.language.common_lang.untitled), 1
/* TEXT */
)])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("a", _hoisted_15, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "arrow-short-left"
- })])]), (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("h4", _hoisted_17, [(0, vue_1.createElementVNode)("span", _hoisted_18, (0, vue_1.toDisplayString)(_ctx.pageTitle ? _ctx.pageTitle : 'Untitled'), 1
+ })])]), (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("h4", _hoisted_17, [(0, vue_1.createElementVNode)("span", _hoisted_18, (0, vue_1.toDisplayString)(_ctx.pageTitle ? _ctx.pageTitle : _ctx.language.common_lang.untitled), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("span", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.pageTitle ? _ctx.pageTitle : 'Untitled'), 1
+ ), (0, vue_1.createElementVNode)("span", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.pageTitle ? _ctx.pageTitle : _ctx.language.common_lang.untitled), 1
/* TEXT */
)])])])]), (0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createCommentVNode)(" toast msg for publishing "), _ctx.toastData.visibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Toast, {
key: 0,
@@ -16733,13 +17193,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.errorData.visibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_ErrorPopUp, {
key: 1,
message: _ctx.errorData.message,
- title: "Activity couldn’t be published because",
+ title: _ctx.language.common_lang.error.activity_could_not_be_published,
onClosePopup: _cache[2] || (_cache[2] = function () {
_ctx.errorData.visibility = false;
})
}, null, 8
/* PROPS */
- , ["message"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" {{ typeof toastData.message }} "), (0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createCommentVNode)(" Delete Activity "), (0, vue_1.createVNode)(_component_DeleteButton), (0, vue_1.createCommentVNode)(" Unpublish Activity "), _ctx.store.state.unPublished ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_UnPublish, {
+ , ["message", "title"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" {{ typeof toastData.message }} "), (0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createCommentVNode)(" Delete Activity "), (0, vue_1.createVNode)(_component_DeleteButton), (0, vue_1.createCommentVNode)(" Unpublish Activity "), _ctx.store.state.unPublished ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_UnPublish, {
key: 0,
"activity-id": _ctx.activityProps.id
}, null, 8
@@ -16773,34 +17233,52 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "chevron",
"class": "pb-2 text-3xl text-white"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("aside", _hoisted_24, [_ctx.publishStatus.linked_to_iati && _ctx.publishStatus.status === 'draft' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_25, [(0, vue_1.createVNode)(_component_PreviouslyPublished)])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_26, [(0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createElementVNode)("div", _hoisted_28, [_hoisted_29, (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "The IATI Standard contains a wide range of data elements and your organisation is encouraged to (at least) publish data in elements marked as “Core”.",
+ })]), (0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("aside", _hoisted_24, [_ctx.publishStatus.linked_to_iati && _ctx.publishStatus.status === 'draft' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_25, [(0, vue_1.createVNode)(_component_PreviouslyPublished)])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_26, [(0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createElementVNode)("div", _hoisted_28, [(0, vue_1.createElementVNode)("span", _hoisted_29, (0, vue_1.toDisplayString)(_ctx.language.common_lang.publishing_progress), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text",
position: "right"
- })]), (0, vue_1.createVNode)(_component_ProgressBar, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createVNode)(_component_ProgressBar, {
percent: _ctx.progress,
"class": "mb-3"
}, null, 8
/* PROPS */
- , ["percent"]), _hoisted_30]), (0, vue_1.createElementVNode)("div", _hoisted_31, [(0, vue_1.createElementVNode)("div", _hoisted_32, [_hoisted_33, (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "Each “Element” represents a basic unit of information in the IATI Standard. Click on each element listed below and complete all data fields contained in the element. For each element, you will find its technical definition, which is labelled as “IATI Standard Reference” and helpful guidance on the data you are required to provide.",
+ , ["percent"]), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.activity_lang.complete_all_core_label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_30, [(0, vue_1.createElementVNode)("div", _hoisted_31, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.elements), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.each_element_represents,
name: "",
"class": "hover-text"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_34, [(0, vue_1.createElementVNode)("div", _hoisted_35, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_32, [(0, vue_1.createElementVNode)("div", _hoisted_33, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "core"
- }), _hoisted_36]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "Core elements include the IATI Standard's “mandatory and recommended” elements and it is important to provide this data to ensure your data is usable and useful.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.core), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.core_elements_include,
name: "",
"class": "hover-text"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_37, [(0, vue_1.createElementVNode)("div", _hoisted_38, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_34, [(0, vue_1.createElementVNode)("div", _hoisted_35, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-spring-50",
icon: "double-tick"
- }), _hoisted_39]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.completed), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text"
- })])])]), (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [(0, vue_1.createVNode)(_component_Elements, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])])])]), (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [(0, vue_1.createVNode)(_component_Elements, {
"activity-id": _ctx.activity.id,
data: _ctx.elementProps
}, null, 8
@@ -16809,34 +17287,52 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
boundary: '.activities'
}]])]), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)([_ctx.showSidebar ? ' h-screen -translate-x-[20px]' : ' h-screen -translate-x-[110%]', "opacity-1 fixed top-[60px] z-[200] block h-[calc(100vh_-_60px)] overflow-y-auto duration-200 lg:hidden"])
- }, [(0, vue_1.createElementVNode)("aside", _hoisted_40, [_ctx.publishStatus.linked_to_iati && _ctx.publishStatus.status === 'draft' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_41, [(0, vue_1.createVNode)(_component_PreviouslyPublished)])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_42, [(0, vue_1.createElementVNode)("div", _hoisted_43, [(0, vue_1.createElementVNode)("div", _hoisted_44, [_hoisted_45, (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "The IATI Standard contains a wide range of data elements and your organisation is encouraged to (at least) publish data in elements marked as “Core”.",
+ }, [(0, vue_1.createElementVNode)("aside", _hoisted_36, [_ctx.publishStatus.linked_to_iati && _ctx.publishStatus.status === 'draft' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_37, [(0, vue_1.createVNode)(_component_PreviouslyPublished)])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_38, [(0, vue_1.createElementVNode)("div", _hoisted_39, [(0, vue_1.createElementVNode)("div", _hoisted_40, [(0, vue_1.createElementVNode)("span", _hoisted_41, (0, vue_1.toDisplayString)(_ctx.language.common_lang.publishing_progress), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.the_iati_standard_contains_wide,
name: "",
"class": "hover-text",
position: "right"
- })]), (0, vue_1.createVNode)(_component_ProgressBar, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createVNode)(_component_ProgressBar, {
percent: _ctx.progress,
"class": "mb-3"
}, null, 8
/* PROPS */
- , ["percent"]), _hoisted_46]), (0, vue_1.createElementVNode)("div", _hoisted_47, [(0, vue_1.createElementVNode)("div", _hoisted_48, [_hoisted_49, (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "Each “Element” represents a basic unit of information in the IATI Standard. Click on each element listed below and complete all data fields contained in the element. For each element, you will find its technical definition, which is labelled as “IATI Standard Reference” and helpful guidance on the data you are required to provide.",
+ , ["percent"]), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.activity_lang.complete_all_core_label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_42, [(0, vue_1.createElementVNode)("div", _hoisted_43, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.elements), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.each_element_represents,
name: "",
"class": "hover-text"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_50, [(0, vue_1.createElementVNode)("div", _hoisted_51, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_44, [(0, vue_1.createElementVNode)("div", _hoisted_45, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "core"
- }), _hoisted_52]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "Core elements include the IATI Standard's “mandatory and recommended” elements and it is important to provide this data to ensure your data is usable and useful.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.core), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.core_elements_include,
name: "",
"class": "hover-text"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_53, [(0, vue_1.createElementVNode)("div", _hoisted_54, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_46, [(0, vue_1.createElementVNode)("div", _hoisted_47, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-spring-50",
icon: "double-tick"
- }), _hoisted_55]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.completed), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text"
- })])])]), (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [(0, vue_1.createVNode)(_component_Elements, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])])])]), (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [(0, vue_1.createVNode)(_component_Elements, {
"activity-id": _ctx.activity.id,
data: _ctx.elementProps
}, null, 8
@@ -16845,15 +17341,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
boundary: '.activities'
}]])])], 2
/* CLASS */
- ), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_56, [(0, vue_1.createElementVNode)("a", {
+ ), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_48, [(0, vue_1.createElementVNode)("a", {
href: "/activity/".concat(_ctx.activityProps.id, "/default_values"),
"class": "mb-4 flex items-center text-xs font-bold uppercase leading-normal text-n-50"
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-0.5 text-base",
icon: "setting"
- }), _hoisted_58], 8
+ }), (0, vue_1.createElementVNode)("span", _hoisted_50, (0, vue_1.toDisplayString)(_ctx.language.activity_lang.uc_override_this_activity_label), 1
+ /* TEXT */
+ )], 8
/* PROPS */
- , _hoisted_57)]), (0, vue_1.createElementVNode)("div", _hoisted_59, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.groupedData, function (post, key, index) {
+ , _hoisted_49)]), (0, vue_1.createElementVNode)("div", _hoisted_51, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.groupedData, function (post, key, index) {
return (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: index,
href: "#".concat(String(key)),
@@ -16863,28 +17361,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "tab-btn"
}, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(post.label), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("span", _hoisted_62, [(0, vue_1.createVNode)(_component_HoverText, {
+ ), (0, vue_1.createElementVNode)("span", _hoisted_54, [(0, vue_1.createVNode)(_component_HoverText, {
name: post.label,
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
icon_size: "text-tiny"
}, null, 8
/* PROPS */
- , ["name"])])], 8
+ , ["name", "hover-text"])])], 8
/* PROPS */
- , _hoisted_61)], 8
+ , _hoisted_53)], 8
/* PROPS */
- , _hoisted_60)), [[_directive_smooth_scroll]]);
+ , _hoisted_52)), [[_directive_smooth_scroll]]);
}), 128
/* KEYED_FRAGMENT */
- ))]), (0, vue_1.createElementVNode)("div", _hoisted_63, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.groupedData, function (post, key, index) {
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_55, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.groupedData, function (post, key, index) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: index
- }, [(0, vue_1.createElementVNode)("div", _hoisted_64, [(0, vue_1.createElementVNode)("div", {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_56, [(0, vue_1.createElementVNode)("div", {
id: key,
"class": "mr-4 shrink-0"
}, (0, vue_1.toDisplayString)(_ctx.formatTitle(key)), 9
/* TEXT, PROPS */
- , _hoisted_65)]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.elements, function (element, name, i) {
+ , _hoisted_57)]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.elements, function (element, name, i) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
@@ -17032,15 +17530,9 @@ var _withScopeId = function _withScopeId(n) {
return (0, vue_1.pushScopeId)("data-v-c7ca28b8"), n = n(), (0, vue_1.popScopeId)(), n;
};
-var _hoisted_1 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("h5", {
- "class": "title mb-5 flex text-xl font-bold text-bluecoral sm:text-2xl"
- }, " Add a title and identifier for the activity ", -1
- /* HOISTED */
- );
-});
-
+var _hoisted_1 = {
+ "class": "title mb-5 flex text-xl font-bold text-bluecoral sm:text-2xl"
+};
var _hoisted_2 = {
"class": "manual-import overflow-hidden"
};
@@ -17053,16 +17545,9 @@ var _hoisted_4 = {
var _hoisted_5 = {
"class": "form-group-title-container"
};
-
-var _hoisted_6 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("p", {
- "class": "form-group-title"
- }, "title", -1
- /* HOISTED */
- );
-});
-
+var _hoisted_6 = {
+ "class": "form-group-title"
+};
var _hoisted_7 = {
"class": "form-group"
};
@@ -17072,121 +17557,122 @@ var _hoisted_8 = {
var _hoisted_9 = {
"class": "label-field"
};
+var _hoisted_10 = {
+ "class": "label",
+ "for": "narrative"
+};
-var _hoisted_10 = /*#__PURE__*/_withScopeId(function () {
+var _hoisted_11 = /*#__PURE__*/_withScopeId(function () {
/*#__PURE__*/
- return (0, vue_1.createElementVNode)("label", {
- "class": "label",
- "for": "narrative"
- }, [/*#__PURE__*/(0, vue_1.createTextVNode)("narrative "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+ return (0, vue_1.createElementVNode)("span", {
"class": "required-icon"
- }, " *")], -1
+ }, " *", -1
/* HOISTED */
);
});
-var _hoisted_11 = {
+var _hoisted_12 = ["placeholder"];
+var _hoisted_13 = {
key: 0,
"class": "error",
role: "alert"
};
-var _hoisted_12 = {
+var _hoisted_14 = {
"class": "label-field"
};
+var _hoisted_15 = {
+ "class": "label",
+ "for": ""
+};
-var _hoisted_13 = /*#__PURE__*/_withScopeId(function () {
+var _hoisted_16 = /*#__PURE__*/_withScopeId(function () {
/*#__PURE__*/
- return (0, vue_1.createElementVNode)("label", {
- "class": "label",
- "for": ""
- }, [/*#__PURE__*/(0, vue_1.createTextVNode)("language "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+ return (0, vue_1.createElementVNode)("span", {
"class": "required-icon"
- }, " *")], -1
+ }, " *", -1
/* HOISTED */
);
});
-var _hoisted_14 = {
+var _hoisted_17 = {
key: 0,
"class": "error",
role: "alert"
};
-var _hoisted_15 = {
+var _hoisted_18 = {
key: 1,
"class": "text-xs font-normal text-n-40"
};
-var _hoisted_16 = {
+var _hoisted_19 = {
"class": "form-group-title-container"
};
-
-var _hoisted_17 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("p", {
- "class": "form-group-title"
- }, "iati-identifier", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_18 = {
+var _hoisted_20 = {
+ "class": "form-group-title"
+};
+var _hoisted_21 = {
"class": "form-group"
};
-var _hoisted_19 = {
+var _hoisted_22 = {
"class": "form__content"
};
+var _hoisted_23 = {
+ "class": "label-field"
+};
+var _hoisted_24 = {
+ "class": "label",
+ "for": ""
+};
-var _hoisted_20 = /*#__PURE__*/_withScopeId(function () {
+var _hoisted_25 = /*#__PURE__*/_withScopeId(function () {
/*#__PURE__*/
- return (0, vue_1.createElementVNode)("div", {
- "class": "label-field"
- }, [/*#__PURE__*/(0, vue_1.createElementVNode)("label", {
- "class": "label",
- "for": ""
- }, [/*#__PURE__*/(0, vue_1.createTextVNode)("activity identifiers "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+ return (0, vue_1.createElementVNode)("span", {
"class": "required-icon"
- }, " *")])], -1
+ }, " *", -1
/* HOISTED */
);
});
-var _hoisted_21 = {
+var _hoisted_26 = ["placeholder"];
+var _hoisted_27 = {
key: 0,
"class": "error",
role: "alert"
};
-var _hoisted_22 = {
+var _hoisted_28 = {
key: 1,
"class": "text-xs font-normal text-n-40"
};
+var _hoisted_29 = {
+ "class": "label-field"
+};
+var _hoisted_30 = {
+ "class": "label",
+ "for": ""
+};
-var _hoisted_23 = /*#__PURE__*/_withScopeId(function () {
+var _hoisted_31 = /*#__PURE__*/_withScopeId(function () {
/*#__PURE__*/
- return (0, vue_1.createElementVNode)("div", {
- "class": "label-field"
- }, [/*#__PURE__*/(0, vue_1.createElementVNode)("label", {
- "class": "label",
- "for": ""
- }, [/*#__PURE__*/(0, vue_1.createTextVNode)("iati-identifier "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+ return (0, vue_1.createElementVNode)("span", {
"class": "required-icon"
- }, " *")])], -1
+ }, " *", -1
/* HOISTED */
);
});
-var _hoisted_24 = ["value"];
-var _hoisted_25 = {
+var _hoisted_32 = ["value"];
+var _hoisted_33 = {
key: 0,
"class": "error",
role: "alert"
};
-var _hoisted_26 = {
+var _hoisted_34 = {
key: 1,
"class": "text-xs font-normal text-n-40"
};
-var _hoisted_27 = {
+var _hoisted_35 = {
"class": "mt-8 flex justify-end"
};
-var _hoisted_28 = {
+var _hoisted_36 = {
"class": "inline-flex"
};
@@ -17207,16 +17693,26 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"default": (0, vue_1.withCtx)(function () {
return [_ctx.loaderVisibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Loader, {
key: 0
- })) : (0, vue_1.createCommentVNode)("v-if", true), _hoisted_1, (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createVNode)(_component_HoverText, {
- name: 'title',
- "hover-text": "A short, human-readable title. For more information ",
+ })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("h5", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.language.activities_lang.add_a_tittle_and_identifier_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createVNode)(_component_HoverText, {
+ name: _ctx.language.el_common_lang.title,
+ "hover-text": _ctx.language.elements_lang.activities.title.hover_text,
position: "right",
"show-iati-reference": true
- }), _hoisted_6]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_9, [_hoisted_10, (0, vue_1.createVNode)(_component_HoverText, {
- name: 'narrative',
- "hover-text": "The free text name or description of the item being described. This can be repeated in multiple languages. For more information ",
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"]), (0, vue_1.createElementVNode)("p", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.language.el_common_lang.title), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("label", _hoisted_10, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.el_common_lang.narrative) + " ", 1
+ /* TEXT */
+ ), _hoisted_11]), (0, vue_1.createVNode)(_component_HoverText, {
+ name: _ctx.language.el_common_lang.narrative,
+ "hover-text": _ctx.language.elements_lang.activities.title.narrative.hover_text,
"show-iati-reference": true
- })]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return _ctx.formData.narrative = $event;
}),
@@ -17224,16 +17720,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
error__input: _ctx.errorData.narrative != ''
}]),
type: "text",
- placeholder: "Type narrative here"
- }, null, 2
- /* CLASS */
- ), [[vue_1.vModelText, _ctx.formData.narrative]]), _ctx.errorData.narrative != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(_ctx.errorData.narrative), 1
+ placeholder: _ctx.language.el_common_lang.type_narrative_here
+ }, null, 10
+ /* CLASS, PROPS */
+ , _hoisted_12), [[vue_1.vModelText, _ctx.formData.narrative]]), _ctx.errorData.narrative != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.errorData.narrative), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_12, [_hoisted_13, (0, vue_1.createVNode)(_component_HoverText, {
- name: "language",
- "hover-text": "A code specifying the language of text in this element. It is recommended that wherever possible only codes from ISO 639-1 are used. If not present, the default language is assumed. For more information ",
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("label", _hoisted_15, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.el_common_lang.language) + " ", 1
+ /* TEXT */
+ ), _hoisted_16]), (0, vue_1.createVNode)(_component_HoverText, {
+ name: _ctx.language.el_common_lang.language,
+ "hover-text": _ctx.language.el_common_lang.a_code_specifying_text_link_5,
"show-iati-reference": true
- })]), (0, vue_1.createVNode)(_component_Multiselect, {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])]), (0, vue_1.createVNode)(_component_Multiselect, {
modelValue: _ctx.formData.language,
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return _ctx.formData.language = $event;
@@ -17243,17 +17743,25 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}]),
searchable: true,
options: _ctx.languages,
- placeholder: "Select language"
+ placeholder: _ctx.language.el_common_lang.select_language
}, null, 8
/* PROPS */
- , ["modelValue", "class", "options"]), _ctx.errorData.language != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.errorData.language), 1
+ , ["modelValue", "class", "options", "placeholder"]), _ctx.errorData.language != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.errorData.language), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, (0, vue_1.toDisplayString)(_ctx.language.el_common_lang.your_default_language_assumed_no_that), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, "If no value is selected, default value is assumed. "))])])])]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createVNode)(_component_HoverText, {
- name: 'iati-identifier',
+ ))])])])]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createVNode)(_component_HoverText, {
+ name: _ctx.language.el_common_lang.iati_identifier,
position: "right",
- "hover-text": "A globally unique identifier for the activity. This MUST be prefixed with EITHER the current IATI organisation identifier for the reporting organisation (reporting-org/@ref) OR a previous identifier reported in other-identifier, and suffixed with the organisation’s own activity identifier. The prefix and the suffix should be separated by a hyphen “-“. Once an activity has been reported to IATI its identifier MUST NOT be changed in subsequent updates. For more information ",
+ "hover-text": _ctx.language.elements_lang.activities.iati_identifier.hover_text,
"show-iati-reference": true
- }), _hoisted_17]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("div", null, [_hoisted_20, (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"]), (0, vue_1.createElementVNode)("p", _hoisted_20, (0, vue_1.toDisplayString)(_ctx.language.el_common_lang.iati_identifier), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("label", _hoisted_24, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.el_common_lang.acitivity_identifier) + " ", 1
+ /* TEXT */
+ ), _hoisted_25])]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
"onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
return _ctx.formData.activity_identifier = $event;
}),
@@ -17261,12 +17769,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
error__input: _ctx.errorData.activity_identifier != ''
}]),
type: "text",
- placeholder: "Type activity-identifier here"
- }, null, 2
- /* CLASS */
- ), [[vue_1.vModelText, _ctx.formData.activity_identifier]]), _ctx.errorData.activity_identifier != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_21, (0, vue_1.toDisplayString)(_ctx.errorData.activity_identifier), 1
+ placeholder: _ctx.language.el_common_lang.type_activity_identifier_here
+ }, null, 10
+ /* CLASS, PROPS */
+ , _hoisted_26), [[vue_1.vModelText, _ctx.formData.activity_identifier]]), _ctx.errorData.activity_identifier != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_27, (0, vue_1.toDisplayString)(_ctx.errorData.activity_identifier), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_28, (0, vue_1.toDisplayString)(_ctx.language.elements_lang.activities.activity_identifier.shorter_help_text), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_29, [(0, vue_1.createElementVNode)("label", _hoisted_30, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.el_common_lang.iati_identifier) + " ", 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_22, "Enter your own unique activity identifier such as abbreviation or simply a number. Make sure it is unique across all the activities. IATI Publisher will concatenate Organization Identifier and Activity Identifier to autogenerate 'iati-identifier'. "))]), (0, vue_1.createElementVNode)("div", null, [_hoisted_23, (0, vue_1.createElementVNode)("input", {
+ ), _hoisted_31])]), (0, vue_1.createElementVNode)("input", {
"class": "form__input",
type: "text",
placeholder: "",
@@ -17274,23 +17786,27 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
disabled: "true"
}, null, 8
/* PROPS */
- , _hoisted_24), _ctx.errorData.iati_identifier_text != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, (0, vue_1.toDisplayString)(_ctx.errorData.iati_identifier_text), 1
+ , _hoisted_32), _ctx.errorData.iati_identifier_text != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_33, (0, vue_1.toDisplayString)(_ctx.errorData.iati_identifier_text), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_26, "This is autogenerated "))])])])]), (0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createElementVNode)("div", _hoisted_28, [(0, vue_1.createVNode)(_component_BtnComponent, {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_34, (0, vue_1.toDisplayString)(_ctx.language.common_lang.this_is_autogenerated), 1
+ /* TEXT */
+ ))])])])]), (0, vue_1.createElementVNode)("div", _hoisted_35, [(0, vue_1.createElementVNode)("div", _hoisted_36, [(0, vue_1.createVNode)(_component_BtnComponent, {
"class": "mx-3 bg-white px-3 uppercase",
type: "",
- text: "Cancel",
+ text: _ctx.language.button_lang.cancel,
onClick: _ctx.closeModal
}, null, 8
/* PROPS */
- , ["onClick"]), (0, vue_1.createVNode)(_component_BtnComponent, {
+ , ["text", "onClick"]), (0, vue_1.createVNode)(_component_BtnComponent, {
"class": "space",
type: "primary",
- text: "Save",
+ text: _ctx.language.button_lang.save,
onClick: _cache[3] || (_cache[3] = function ($event) {
return _ctx.storeActivity();
})
- })])])])])];
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])])])];
}),
_: 1
/* STABLE */
@@ -17339,16 +17855,9 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "flex shrink-0"
};
-
-var _hoisted_5 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", {
- "class": "text-xs uppercase"
- }, "Retry", -1
- /* HOISTED */
- );
-});
-
+var _hoisted_5 = {
+ "class": "text-xs uppercase"
+};
var _hoisted_6 = {
"class": "bulk-activities max-h-[240px] overflow-y-auto overflow-x-hidden bg-white transition-all duration-500"
};
@@ -17366,7 +17875,7 @@ var _hoisted_9 = {
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, " Publishing " + (0, vue_1.toDisplayString)(Object.keys($setup.activities).length) + " activities ", 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)($setup.language.common_lang.publishing) + " " + (0, vue_1.toDisplayString)(Object.keys($setup.activities).length) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.activities_nocase), 1
/* TEXT */
), (0, vue_1.createElementVNode)("div", _hoisted_4, [$setup.hasFailedActivities.ids.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: 0,
@@ -17375,7 +17884,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1",
icon: "redo"
- }), _hoisted_5])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
+ }), (0, vue_1.createElementVNode)("span", _hoisted_5, (0, vue_1.toDisplayString)($setup.language.common_lang.retry), 1
+ /* TEXT */
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: 1,
"class": "cursor-pointer minus",
onClick: $setup.toggleWindow
@@ -17431,16 +17942,9 @@ var _hoisted_1 = {
"class": "flex items-center accordion-title"
};
var _hoisted_2 = ["href"];
-
-var _hoisted_3 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", {
- "class": "text-xs"
- }, "Show more", -1
- /* HOISTED */
- );
-});
-
+var _hoisted_3 = {
+ "class": "text-xs"
+};
var _hoisted_4 = {
"class": "checkbox shrink-0"
};
@@ -17462,15 +17966,9 @@ var _hoisted_8 = {
"class": "mb-2"
};
var _hoisted_9 = ["href"];
-
-var _hoisted_10 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", {
- "class": "mr-1 grow"
- }, "View the errors and warnings in detail", -1
- /* HOISTED */
- );
-});
+var _hoisted_10 = {
+ "class": "mr-1 grow"
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -17491,7 +17989,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
key: 0,
"class": "flex mr-2 cursor-pointer shrink-0",
onClick: $setup.accordionToggle
- }, [_hoisted_3, (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)($setup.language.common_lang.show_more), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-xl transition-transform duration-500 text-blue-50",
icon: "arrow-down"
})])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("label", _hoisted_4, [(0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
@@ -17508,7 +18008,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
href: "/activity/".concat(error.activity_id),
target: "_blank",
"class": "inline-flex items-center"
- }, [_hoisted_10, (0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_10, (0, vue_1.toDisplayString)($setup.language.common_lang.view_errors_or_warning), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "shrink-0",
icon: "external"
})], 8
@@ -17547,19 +18049,12 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "title mb-6 flex items-center text-sm"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Publishing alert", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_3 = {
"class": "rounded-lg bg-eggshell p-4"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_4 = {
"class": "text-sm leading-normal"
-}, " Activities that are already published will not be published. Changes made to published activities (Draft) will be republished. ")], -1
-/* HOISTED */
-);
-
+};
var _hoisted_5 = {
"class": "flex justify-end"
};
@@ -17572,56 +18067,46 @@ var _hoisted_7 = {
var _hoisted_8 = {
"class": "title mb-6 flex"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Core Elements Complete", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+var _hoisted_9 = {
"class": "rounded-lg bg-mint px-6"
};
-var _hoisted_11 = {
+var _hoisted_10 = {
key: 0,
"class": "coreCompleted"
};
-var _hoisted_12 = ["href"];
-var _hoisted_13 = {
+var _hoisted_11 = ["href"];
+var _hoisted_12 = {
key: 1,
"class": "py-6"
};
-var _hoisted_14 = {
+var _hoisted_13 = {
"class": "non-eligible-activities mb-6 text-sm leading-relaxed"
};
-var _hoisted_15 = {
+var _hoisted_14 = {
"class": "title mb-6 flex"
};
-
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Core Elements not Complete", -1
-/* HOISTED */
-);
-
-var _hoisted_17 = {
+var _hoisted_15 = {
"class": "rounded-lg bg-rose px-6"
};
-var _hoisted_18 = {
+var _hoisted_16 = {
key: 0,
"class": "notCompleted"
};
-var _hoisted_19 = ["href"];
-var _hoisted_20 = {
+var _hoisted_17 = ["href"];
+var _hoisted_18 = {
key: 1,
"class": "py-6"
};
-var _hoisted_21 = {
+var _hoisted_19 = {
"class": "flex justify-end"
};
-var _hoisted_22 = {
+var _hoisted_20 = {
"class": "inline-flex"
};
-var _hoisted_23 = {
+var _hoisted_21 = {
"class": "flex justify-end"
};
-var _hoisted_24 = {
+var _hoisted_22 = {
"class": "inline-flex"
};
@@ -17646,28 +18131,38 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 text-lg text-crimson-40",
icon: "shield"
- }), _hoisted_3]), _hoisted_4]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)($setup["BtnComponent"], {
+ }), (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.common_lang.publishing_alert), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, (0, vue_1.toDisplayString)($setup.language.common_lang.activities_already_published_will_not) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.changes_made_to_published_will_be_republished), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "bg-white px-6 uppercase",
- text: "Cancel",
+ text: $setup.language.common_lang.cancel,
type: "",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.resetPublishStep();
})
- }), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"]), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "space",
- text: "Continue",
+ text: $setup.language.common_lang["continue"],
type: "primary",
onClick: _cache[1] || (_cache[1] = function ($event) {
return $setup.verifyCoreElements();
})
- })])])], 64
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])], 64
/* STABLE_FRAGMENT */
)) : $setup.bulkPublishStep === 2 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
}, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "tick",
"class": "mr-1 mt-0.5 text-lg text-spring-50"
- }), _hoisted_9]), (0, vue_1.createElementVNode)("div", _hoisted_10, [$setup.coreCompletedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.coreCompletedActivities, function (act, i) {
+ }), (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.common_lang.core_completed_title), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_9, [$setup.coreCompletedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_10, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.coreCompletedActivities, function (act, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)(["item py-6", {
@@ -17678,15 +18173,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": ""
}, (0, vue_1.toDisplayString)(act.title), 9
/* TEXT, PROPS */
- , _hoisted_12)], 2
+ , _hoisted_11)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_13, "No activities found"))])]), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createVNode)(_component_svg_vue, {
+ ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.activities_lang.no_activities_found), 1
+ /* TEXT */
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "warning-fill",
"class": "mr-1 mt-0.5 text-lg text-crimson-40"
- }), _hoisted_16]), (0, vue_1.createElementVNode)("div", _hoisted_17, [$setup.coreInCompletedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_18, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.coreInCompletedActivities, function (act, i) {
+ }), (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.common_lang.core_completed_title), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_15, [$setup.coreInCompletedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_16, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.coreInCompletedActivities, function (act, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)(["item py-6", {
@@ -17698,27 +18197,31 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": ""
}, (0, vue_1.toDisplayString)(act.title), 9
/* TEXT, PROPS */
- , _hoisted_19)], 2
+ , _hoisted_17)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_20, "No activities found"))])]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("div", _hoisted_22, [$setup.coreCompletedActivities.length > 0 || $setup.coreInCompletedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
+ ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_18, "No activities found"))])]), (0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("div", _hoisted_20, [$setup.coreCompletedActivities.length > 0 || $setup.coreInCompletedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 0,
"class": "bg-white px-6 uppercase",
type: "",
- text: "Continue Anyway",
+ text: $setup.language.common_lang.continue_anyway,
onClick: _cache[2] || (_cache[2] = function ($event) {
return $setup.validateActivities();
})
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "space",
type: "primary",
- text: "Go Back",
+ text: $setup.language.common_lang.go_back,
onClick: _cache[3] || (_cache[3] = function ($event) {
return $setup.resetPublishStep();
})
- })])])], 64
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])], 64
/* STABLE_FRAGMENT */
)) : $setup.bulkPublishStep === 3 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 2
@@ -17726,19 +18229,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
data: $setup.validationErrors
}, null, 8
/* PROPS */
- , ["data"]), (0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createVNode)($setup["BtnComponent"], {
+ , ["data"]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "bg-white px-6 uppercase",
type: "",
- text: "Cancel",
+ text: $setup.language.common_lang.cancel,
onClick: _cache[4] || (_cache[4] = function ($event) {
return $setup.resetPublishStep();
})
- }), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"]), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": (0, vue_1.normalizeClass)(["space", {
'pointer-events-none': $setup.selectedActivities.length === 0
}]),
type: "primary",
- text: "Publish (".concat($setup.selectedActivities.length, ") Activities"),
+ text: "".concat($setup.language.common_lang.publishing, " (").concat($setup.selectedActivities.length, ") ").concat($setup.language.common_lang.activities),
onClick: _cache[5] || (_cache[5] = function ($event) {
return $setup.startBulkPublish();
})
@@ -17790,10 +18295,6 @@ var _hoisted_1 = {
"class": "mr-5"
};
-var _hoisted_2 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Refresh", -1
-/* HOISTED */
-);
-
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -17812,7 +18313,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "redo",
"class": "mr-1"
- }), _hoisted_2], 2
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.refresh), 1
+ /* TEXT */
+ )], 2
/* CLASS */
)], 2
/* CLASS */
@@ -17885,27 +18388,33 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [$props.data.critical.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "warning",
"class": "mr-1 mt-0.5 shrink-0 text-lg text-crimson-40"
- }), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("b", null, "Critical error found in " + (0, vue_1.toDisplayString)($props.data.critical.length) + " activities.", 1
+ }), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.common_lang.critical_error_found) + " " + (0, vue_1.toDisplayString)($props.data.critical.length) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.activities_nocase) + ".", 1
/* TEXT */
- ), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)($setup.criticalMessage))])]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createVNode)($setup["ErrorItem"], {
+ ), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)($setup.criticalMessage), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createVNode)($setup["ErrorItem"], {
data: $props.data.critical,
message: $setup.criticalMessage
}, null, 8
/* PROPS */
- , ["data"])])])])) : (0, vue_1.createCommentVNode)("v-if", true), $props.data.errors.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)(_component_svg_vue, {
+ , ["data", "message"])])])])) : (0, vue_1.createCommentVNode)("v-if", true), $props.data.errors.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "warning-fill",
"class": "mr-1 mt-0.5 shrink-0 text-lg text-camel-40"
- }), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("b", null, "Errors and Warning found in " + (0, vue_1.toDisplayString)($props.data.errors.length) + " activities.", 1
+ }), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.common_lang.errors_and_warnings_found) + " " + (0, vue_1.toDisplayString)($props.data.errors.length) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.activities_nocase) + ".", 1
+ /* TEXT */
+ ), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)($setup.warningMessage), 1
/* TEXT */
- ), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)($setup.warningMessage))])]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createVNode)($setup["ErrorItem"], {
+ )])]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createVNode)($setup["ErrorItem"], {
data: $props.data.errors,
message: $setup.warningMessage
}, null, 8
/* PROPS */
- , ["data"])])])])) : (0, vue_1.createCommentVNode)("v-if", true), $props.data.no_errors.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createVNode)(_component_svg_vue, {
+ , ["data", "message"])])])])) : (0, vue_1.createCommentVNode)("v-if", true), $props.data.no_errors.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "tick",
"class": "mr-1 mt-0.5 shrink-0 text-lg text-spring-50"
- }), (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)($setup.noErrorMessage))]), (0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createVNode)($setup["ErrorItem"], {
+ }), (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)($setup.noErrorMessage), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createVNode)($setup["ErrorItem"], {
data: $props.data.no_errors
}, null, 8
/* PROPS */
@@ -17959,24 +18468,19 @@ var _hoisted_6 = {
var _hoisted_7 = {
"class": "multiline"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = {
+var _hoisted_8 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_10 = {
+var _hoisted_9 = {
key: 0,
"class": "language top"
};
-var _hoisted_11 = {
+var _hoisted_10 = {
key: 1,
"class": "description"
};
-var _hoisted_12 = {
+var _hoisted_11 = {
key: 1,
"class": "italic"
};
@@ -17990,19 +18494,27 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", null, [post.type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.types.activityDate[post.type]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Type Missing"))]), (0, vue_1.createElementVNode)("div", null, [post.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.formatDate(post.date)), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.type)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, "Date Missing"))])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (item, i) {
+ ))]), (0, vue_1.createElementVNode)("div", null, [post.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.formatDate(post.date)), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.date)), 1
+ /* TEXT */
+ ))])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (item, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)([{
'mb-4': i !== post.narrative.length - 1
}, "date-content elements-detail"])
- }, [(0, vue_1.createElementVNode)("table", _hoisted_6, [(0, vue_1.createElementVNode)("tr", _hoisted_7, [_hoisted_8, (0, vue_1.createElementVNode)("td", null, [item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_9, [item.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, " (Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[item.language]) + ") ", 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_6, [(0, vue_1.createElementVNode)("tr", _hoisted_7, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.nattative), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(item.narrative), 1
+ ), (0, vue_1.createElementVNode)("td", null, [item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_8, [item.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[item.language]) + ") ", 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(item.narrative), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, "Missing"))])])])], 2
+ ))])])])], 2
/* CLASS */
);
}), 128
@@ -18042,76 +18554,78 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "category"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Attached - ", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = {
+var _hoisted_3 = {
key: 0
};
-var _hoisted_5 = {
+var _hoisted_4 = {
key: 1
};
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "mb-2 text-sm font-bold"
};
-var _hoisted_7 = {
+var _hoisted_6 = {
key: 0
};
-var _hoisted_8 = {
+var _hoisted_7 = {
key: 1,
"class": "italic"
};
-var _hoisted_9 = {
+var _hoisted_8 = {
"class": "ml-5"
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+var _hoisted_9 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_12 = {
+var _hoisted_10 = {
key: 0,
"class": "language top"
};
-var _hoisted_13 = {
+var _hoisted_11 = {
key: 1,
"class": "description"
};
-var _hoisted_14 = {
+var _hoisted_12 = {
key: 1,
"class": "italic"
};
-var _hoisted_15 = {
+var _hoisted_13 = {
key: 1,
"class": "text-sm italic"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [_ctx.data.condition_attached == '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("span", null, [_ctx.data.condition_attached == '0' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, "No")) : _ctx.data.condition_attached == '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, "Yes")) : (0, vue_1.createCommentVNode)("v-if", true)])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.data.condition, function (post, key) {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [_ctx.data.condition_attached == '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.attached) + " - ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", null, [_ctx.data.condition_attached == '0' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.no), 1
+ /* TEXT */
+ )) : _ctx.data.condition_attached == '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.common_lang.yes), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.data.condition, function (post, key) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: key,
"class": (0, vue_1.normalizeClass)({
'mb-4': Number(key) !== _ctx.data.condition.length - 1
})
- }, [(0, vue_1.createElementVNode)("div", _hoisted_6, [post.condition_type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.types.conditionType[post.condition_type]), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_5, [post.condition_type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.types.conditionType[post.condition_type]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, "Type Missing"))]), (0, vue_1.createElementVNode)("table", _hoisted_9, [(0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (item, i) {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.type)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("table", _hoisted_8, [(0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (item, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
key: i,
"class": (0, vue_1.normalizeClass)(["multiline", {
'mb-4': i !== post.narrative.length - 1
}])
- }, [_hoisted_10, (0, vue_1.createElementVNode)("td", null, [item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, [item.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[item.language]) + ")", 1
+ }, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_9, [item.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[item.language]) + ")", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(item.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(item.narrative), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.language.common_lang.attached), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, "Missing"))])], 2
+ ))])], 2
/* CLASS */
);
}), 128
@@ -18121,7 +18635,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
);
}), 128
/* KEYED_FRAGMENT */
- ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, "Condition not Attached"))]);
+ ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.language.common_lang.conditions_not_attached), 1
+ /* TEXT */
+ ))]);
}
exports.render = render;
@@ -18157,83 +18673,43 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "ml-5"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Organization", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "language mb-1.5"
};
-var _hoisted_7 = {
+var _hoisted_6 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Person Name", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = {
+var _hoisted_7 = {
"class": "language mb-1.5"
};
-var _hoisted_10 = {
+var _hoisted_8 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Department", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = {
+var _hoisted_9 = {
"class": "language mb-1.5"
};
-var _hoisted_13 = {
+var _hoisted_10 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Job Title", -1
-/* HOISTED */
-);
-
-var _hoisted_15 = {
+var _hoisted_11 = {
"class": "language mb-1.5"
};
-var _hoisted_16 = {
+var _hoisted_12 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Email", -1
-/* HOISTED */
-);
-
-var _hoisted_18 = {
+var _hoisted_13 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Telephone", -1
-/* HOISTED */
-);
-
-var _hoisted_20 = {
+var _hoisted_14 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Website", -1
-/* HOISTED */
-);
-
-var _hoisted_22 = {
+var _hoisted_15 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Mailing Address", -1
-/* HOISTED */
-);
-
-var _hoisted_24 = {
+var _hoisted_16 = {
"class": "language mb-1.5"
};
-var _hoisted_25 = {
+var _hoisted_17 = {
"class": "w-[500px] max-w-full"
};
@@ -18246,7 +18722,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [post.type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.types.contactType[post.type]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Type Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.organisation[0].narrative, function (narrative, k) {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.type)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.organisation), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.organisation[0].narrative, function (narrative, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -18254,16 +18734,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.organisation[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_6, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : "Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_5, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_7, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_8, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.person_name[0].narrative, function (narrative, k) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.person_name), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.person_name[0].narrative, function (narrative, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -18271,16 +18753,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.person_name[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_9, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : "Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_7, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_11, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.department[0].narrative, function (narrative, k) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.department), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.department[0].narrative, function (narrative, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -18288,16 +18772,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.department[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_12, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : "Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_9, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : "Missing") + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_13, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_14, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.job_title[0].narrative, function (narrative, k) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.job_title), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.job_title[0].narrative, function (narrative, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -18305,16 +18791,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.job_title[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_15, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : "Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_11, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_16, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_12, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_17, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.email, function (email_value, k) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.email) + "l", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.email, function (email_value, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -18322,14 +18810,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.email.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_18, (0, vue_1.toDisplayString)((_a = email_value.email) !== null && _a !== void 0 ? _a : "Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_13, (0, vue_1.toDisplayString)((_a = email_value.email) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_19, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.telephone, function (tel, k) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.telephone), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.telephone, function (tel, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -18337,14 +18827,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.telephone.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_20, (0, vue_1.toDisplayString)((_a = tel.telephone) !== null && _a !== void 0 ? _a : "Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_14, (0, vue_1.toDisplayString)((_a = tel.telephone) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_21, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.website, function (w, k) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.website), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.website, function (w, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -18352,14 +18844,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.website.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_22, (0, vue_1.toDisplayString)((_a = w.website) !== null && _a !== void 0 ? _a : "Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_15, (0, vue_1.toDisplayString)((_a = w.website) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_23, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.mailing_address, function (address, address_index) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.mailing_address), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.mailing_address, function (address, address_index) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: address_index,
"class": (0, vue_1.normalizeClass)({
@@ -18371,9 +18865,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: k,
"class": "description-content"
- }, [(0, vue_1.createElementVNode)("div", _hoisted_24, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : "Not Available") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_16, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(narrative.language ? _ctx.types.languages[narrative.language] : "Not Available") + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_25, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : "Not Available"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_17, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.not_available), 1
/* TEXT */
)]);
}), 128
@@ -18447,17 +18941,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [post.type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.types.descriptionType[post.type]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Type Missing"))]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (item, i) {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.type)), 1
+ /* TEXT */
+ ))]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (item, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)([{
'mb-4': i !== post.narrative.length - 1
}, "text-sm description-content"])
- }, [item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_4, [item.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, " (Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[item.language]) + ") ", 1
+ }, [item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_4, [item.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[item.language]) + ") ", 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true), item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(item.narrative), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, "Narrative Missing"))], 2
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.narrative)), 1
+ /* TEXT */
+ ))], 2
/* CLASS */
);
}), 128
@@ -18502,37 +19000,18 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "ml-5"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
key: 0
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary URI", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = ["href"];
-var _hoisted_9 = {
+var _hoisted_6 = ["href"];
+var _hoisted_7 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Code", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = {
+var _hoisted_8 = {
"class": "language mb-1.5"
};
-var _hoisted_13 = {
+var _hoisted_9 = {
"class": "w-[500px] max-w-full"
};
@@ -18547,17 +19026,29 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [post.type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)((_a = $setup.types.humanitarianScopeType[post.type]) !== null && _a !== void 0 ? _a : "Missing"), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Vocabulary Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = $setup.types.humanitarianScopeVocabulary[post.vocabulary]) !== null && _b !== void 0 ? _b : "Missing"), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.vocabulary)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.vocabulary), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = $setup.types.humanitarianScopeVocabulary[post.vocabulary]) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
- )]), post.vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_6, [_hoisted_7, (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
+ )]), post.vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_5, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.vocabulary_uri), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: 0,
target: "_blank",
href: post.vocabulary_uri
}, (0, vue_1.toDisplayString)(post.vocabulary_uri), 9
/* TEXT, PROPS */
- , _hoisted_8)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, "Missing"))])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_10, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_c = post.code) !== null && _c !== void 0 ? _c : "Missing"), 1
+ , _hoisted_6)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.code), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_c = post.code) !== null && _c !== void 0 ? _c : $setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_11, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -18565,9 +19056,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_12, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? $setup.types.languages[narrative.language] : "Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_8, " (" + (0, vue_1.toDisplayString)($setup.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(narrative.language ? $setup.types.languages[narrative.language] : $setup.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_13, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_9, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
@@ -18652,33 +19143,23 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "ml-5"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
key: 0
};
-var _hoisted_7 = {
+var _hoisted_6 = {
"class": "description"
};
-var _hoisted_8 = {
+var _hoisted_7 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Iati-Equivalent", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+var _hoisted_8 = {
key: 0
};
-var _hoisted_11 = {
+var _hoisted_9 = {
"class": "description"
};
-var _hoisted_12 = {
+var _hoisted_10 = {
key: 1,
"class": "italic"
};
@@ -18692,11 +19173,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [post.legacy_name ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_2, (0, vue_1.toDisplayString)(post.legacy_name), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Name Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, post.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_6, [(0, vue_1.createElementVNode)("span", _hoisted_7, (0, vue_1.toDisplayString)(post.value), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.name)), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_8, "Missing"))])]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_9, post.iati_equivalent ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_10, [(0, vue_1.createElementVNode)("span", _hoisted_11, (0, vue_1.toDisplayString)(post.iati_equivalent), 1
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.value), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_12, "Missing"))])])])], 2
+ ), post.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_5, [(0, vue_1.createElementVNode)("span", _hoisted_6, (0, vue_1.toDisplayString)(post.value), 1
+ /* TEXT */
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.iati_equivalent), 1
+ /* TEXT */
+ ), post.iati_equivalent ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_8, [(0, vue_1.createElementVNode)("span", _hoisted_9, (0, vue_1.toDisplayString)(post.iati_equivalent), 1
+ /* TEXT */
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])], 2
/* CLASS */
);
}), 128
@@ -18749,210 +19240,165 @@ var _hoisted_6 = {
var _hoisted_7 = {
"class": "ml-5"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = {
+var _hoisted_8 = {
"class": "text-sm"
};
-var _hoisted_10 = {
+var _hoisted_9 = {
key: 0
};
-var _hoisted_11 = {
+var _hoisted_10 = {
key: 1,
"class": "italic"
};
-var _hoisted_12 = {
+var _hoisted_11 = {
"class": "ml-5"
};
-var _hoisted_13 = {
+var _hoisted_12 = {
"class": "w-full"
};
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Location Id", -1
-/* HOISTED */
-);
-
-var _hoisted_15 = {
+var _hoisted_13 = {
"class": "flex space-x-1"
};
-var _hoisted_16 = {
+var _hoisted_14 = {
"class": "value"
};
-var _hoisted_17 = {
+var _hoisted_15 = {
key: 0
};
-var _hoisted_18 = {
+var _hoisted_16 = {
key: 1,
"class": "italic"
};
-var _hoisted_19 = {
+var _hoisted_17 = {
key: 0
};
-var _hoisted_20 = {
+var _hoisted_18 = {
key: 1,
"class": "italic"
};
-var _hoisted_21 = {
+var _hoisted_19 = {
"class": "w-full"
};
-var _hoisted_22 = {
+var _hoisted_20 = {
"class": "multiline"
};
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_24 = {
+var _hoisted_21 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_25 = {
+var _hoisted_22 = {
key: 0,
"class": "language top"
};
-var _hoisted_26 = {
+var _hoisted_23 = {
"class": "description"
};
-var _hoisted_27 = {
+var _hoisted_24 = {
key: 1,
"class": "italic"
};
-var _hoisted_28 = {
+var _hoisted_25 = {
"class": "w-full"
};
-var _hoisted_29 = {
+var _hoisted_26 = {
"class": "multiline"
};
-
-var _hoisted_30 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Activity Description", -1
-/* HOISTED */
-);
-
-var _hoisted_31 = {
+var _hoisted_27 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_32 = {
+var _hoisted_28 = {
key: 0,
"class": "language top"
};
-var _hoisted_33 = {
+var _hoisted_29 = {
"class": "description"
};
-var _hoisted_34 = {
+var _hoisted_30 = {
key: 1,
"class": "italic"
};
-var _hoisted_35 = {
+var _hoisted_31 = {
"class": "w-full"
};
-
-var _hoisted_36 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Administrative", -1
-/* HOISTED */
-);
-
-var _hoisted_37 = {
+var _hoisted_32 = {
"class": "flex"
};
-var _hoisted_38 = {
+var _hoisted_33 = {
key: 0
};
-var _hoisted_39 = {
+var _hoisted_34 = {
key: 1,
"class": "italic"
};
-var _hoisted_40 = {
+var _hoisted_35 = {
key: 0
};
-var _hoisted_41 = {
+var _hoisted_36 = {
key: 1,
"class": "ml-1 italic"
};
-var _hoisted_42 = {
+var _hoisted_37 = {
key: 0
};
-var _hoisted_43 = {
+var _hoisted_38 = {
key: 1,
"class": "ml-1 italic"
};
-var _hoisted_44 = {
+var _hoisted_39 = {
"class": "w-full"
};
-
-var _hoisted_45 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Point", -1
-/* HOISTED */
-);
-
-var _hoisted_46 = {
+var _hoisted_40 = {
"class": "flex space-x-1"
};
-var _hoisted_47 = {
+var _hoisted_41 = {
key: 0
};
-var _hoisted_48 = {
+var _hoisted_42 = {
key: 1,
"class": "italic"
};
-var _hoisted_49 = {
+var _hoisted_43 = {
key: 0
};
-var _hoisted_50 = {
+var _hoisted_44 = {
key: 1,
"class": "italic"
};
-var _hoisted_51 = {
+var _hoisted_45 = {
key: 0
};
-var _hoisted_52 = {
+var _hoisted_46 = {
key: 1,
"class": "italic"
};
-var _hoisted_53 = {
+var _hoisted_47 = {
"class": "w-full"
};
-
-var _hoisted_54 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Exactness", -1
-/* HOISTED */
-);
-
-var _hoisted_55 = {
+var _hoisted_48 = {
key: 0
};
-var _hoisted_56 = {
+var _hoisted_49 = {
key: 1,
"class": "italic"
};
-var _hoisted_57 = {
+var _hoisted_50 = {
"class": "w-full"
};
-
-var _hoisted_58 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Location Class", -1
-/* HOISTED */
-);
-
-var _hoisted_59 = {
+var _hoisted_51 = {
key: 0
};
-var _hoisted_60 = {
+var _hoisted_52 = {
key: 1,
"class": "italic"
};
-var _hoisted_61 = {
+var _hoisted_53 = {
"class": "w-full"
};
-
-var _hoisted_62 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Feature Designation", -1
-/* HOISTED */
-);
-
-var _hoisted_63 = {
+var _hoisted_54 = {
key: 0
};
-var _hoisted_64 = {
+var _hoisted_55 = {
key: 1,
"class": "italic"
};
@@ -18972,7 +19418,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.types.geographicLocationReach[item.code]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Location Reach Missing"))])], 2
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "language.common_lang.missing.something.replace(':something', language.common_lang.location_reached)"))])], 2
/* CLASS */
);
}), 128
@@ -18991,9 +19437,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_4, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- ), narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
+ ), narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, "(language.common_lang.language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, "Name Missing"))], 2
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, "language.common_lang.missing.something.replace(':something', language.common_lang.name)"))], 2
/* CLASS */
);
}), 128
@@ -19003,19 +19449,29 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
);
}), 128
/* KEYED_FRAGMENT */
- )), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_8, (0, vue_1.createElementVNode)("td", _hoisted_9, [post.ref ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(post.ref), 1
+ )), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.refernece), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, "Missing"))])])])]), (0, vue_1.createElementVNode)("div", _hoisted_12, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.location_id, function (item, i) {
+ ), (0, vue_1.createElementVNode)("td", _hoisted_8, [post.ref ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(post.ref), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])]), (0, vue_1.createElementVNode)("div", _hoisted_11, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.location_id, function (item, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)({
'mb-4': i !== post.location_id.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", _hoisted_13, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_14, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("div", _hoisted_16, [item.vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.types.geographicVocabulary[item.vocabulary]) + ", ", 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_12, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.location_id), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [item.vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.types.geographicVocabulary[item.vocabulary]) + ", ", 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.vocabulary)) + ")", 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.language.common_lang.code) + " " + (0, vue_1.toDisplayString)(item.code), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, "(Vocabulary Missing)"))]), (0, vue_1.createElementVNode)("div", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, "code " + (0, vue_1.toDisplayString)(item.code), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]) + ")", 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, "(Missing)"))])])])])])], 2
+ ))])])])])])], 2
/* CLASS */
);
}), 128
@@ -19032,11 +19488,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4': j !== item.narrative.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", _hoisted_21, [(0, vue_1.createElementVNode)("tr", _hoisted_22, [_hoisted_23, (0, vue_1.createElementVNode)("td", null, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_24, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_19, [(0, vue_1.createElementVNode)("tr", _hoisted_20, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_26, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ ), (0, vue_1.createElementVNode)("td", null, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_21, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_22, "(language.common_lang.language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_27, "Missing"))])])])], 2
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_23, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ /* TEXT */
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_24, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])], 2
/* CLASS */
);
}), 128
@@ -19058,11 +19518,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4': j !== item.narrative.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", _hoisted_28, [(0, vue_1.createElementVNode)("tr", _hoisted_29, [_hoisted_30, (0, vue_1.createElementVNode)("td", null, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_31, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_32, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_25, [(0, vue_1.createElementVNode)("tr", _hoisted_26, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.activity_description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_27, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_28, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_33, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_29, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_34, "Missing"))])])])], 2
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_30, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])], 2
/* CLASS */
);
}), 128
@@ -19078,13 +19542,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4': i !== post.administrative.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", _hoisted_35, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_36, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_37, [(0, vue_1.createElementVNode)("div", null, [item.vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_38, "Vocabulary - " + (0, vue_1.toDisplayString)(_ctx.types.geographicVocabulary[item.vocabulary]), 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_31, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.administrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_32, [(0, vue_1.createElementVNode)("div", null, [item.vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_33, (0, vue_1.toDisplayString)(_ctx.language.common_lang.vocabulary) + " - " + (0, vue_1.toDisplayString)(_ctx.types.geographicVocabulary[item.vocabulary]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_39, "(Vocabulary Missing)"))]), (0, vue_1.createElementVNode)("div", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_40, ", code " + (0, vue_1.toDisplayString)(_ctx.types.country[item.code]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_34, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.vocabulary)) + ")", 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_41, " (Code Missing)"))]), (0, vue_1.createElementVNode)("div", null, [item.level ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_42, ", level " + (0, vue_1.toDisplayString)(item.level), 1
+ ))]), (0, vue_1.createElementVNode)("div", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_35, ", " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.code) + " " + (0, vue_1.toDisplayString)(_ctx.types.country[item.code]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_43, " (Level Missing)"))])])])])])], 2
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_36, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.code)) + ")", 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", null, [item.level ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_37, ", " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.level) + " " + (0, vue_1.toDisplayString)(item.level), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_38, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.level)) + ")", 1
+ /* TEXT */
+ ))])])])])])], 2
/* CLASS */
);
}), 128
@@ -19095,13 +19567,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["flex space-x-1", {
'mb-4': i !== post.point.length - 1
}])
- }, [(0, vue_1.createElementVNode)("table", _hoisted_44, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_45, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_46, [(0, vue_1.createElementVNode)("div", null, [item.srs_name ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_47, "(" + (0, vue_1.toDisplayString)(item.srs_name) + ")", 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_39, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.point), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_40, [(0, vue_1.createElementVNode)("div", null, [item.srs_name ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_41, "(" + (0, vue_1.toDisplayString)(item.srs_name) + ")", 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_42, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.srs_name)) + ")", 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_48, " (SRS Name Missing)"))]), (0, vue_1.createElementVNode)("div", null, [item.pos[0].latitude ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_49, " latitude " + (0, vue_1.toDisplayString)(item.pos[0].latitude) + ", ", 1
+ ))]), (0, vue_1.createElementVNode)("div", null, [item.pos[0].latitude ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_43, (0, vue_1.toDisplayString)(_ctx.language.common_lang.latitude) + " " + (0, vue_1.toDisplayString)(item.pos[0].latitude) + ", ", 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_50, " (Latitude Missing)"))]), (0, vue_1.createElementVNode)("div", null, [item.pos[0].longitude ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_51, "longitude " + (0, vue_1.toDisplayString)(item.pos[0].longitude), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_44, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.latitude)) + ")", 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_52, " (Longitude Missing)"))])])])])])], 2
+ ))]), (0, vue_1.createElementVNode)("div", null, [item.pos[0].longitude ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_45, (0, vue_1.toDisplayString)(_ctx.language.common_lang.longitude) + " " + (0, vue_1.toDisplayString)(item.pos[0].longitude), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_46, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.longitude)) + ")", 1
+ /* TEXT */
+ ))])])])])])], 2
/* CLASS */
);
}), 128
@@ -19112,9 +19592,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4': i !== post.exactness.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", _hoisted_53, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_54, (0, vue_1.createElementVNode)("td", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_55, (0, vue_1.toDisplayString)(_ctx.types.geographicExactness[item.code]), 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_47, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.exactness), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_48, (0, vue_1.toDisplayString)(_ctx.types.geographicExactness[item.code]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_49, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_56, "Missing"))])])])], 2
+ ))])])])], 2
/* CLASS */
);
}), 128
@@ -19125,9 +19609,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4': i !== post.location_class.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", _hoisted_57, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_58, (0, vue_1.createElementVNode)("td", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_59, (0, vue_1.toDisplayString)(_ctx.types.geographicLocationClass[item.code]), 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_50, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.location_class), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_60, "Missing"))])])])], 2
+ ), (0, vue_1.createElementVNode)("td", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_51, (0, vue_1.toDisplayString)(_ctx.types.geographicLocationClass[item.code]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_52, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])], 2
/* CLASS */
);
}), 128
@@ -19138,9 +19626,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4': i !== post.feature_designation.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", _hoisted_61, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_62, (0, vue_1.createElementVNode)("td", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_63, (0, vue_1.toDisplayString)(_ctx.types.locationType[item.code]), 1
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_53, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.feature_designation.proper_class), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [item.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_54, (0, vue_1.toDisplayString)(_ctx.types.locationType[item.code]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_64, "Missing"))])])])], 2
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_55, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])], 2
/* CLASS */
);
}), 128
@@ -19199,36 +19691,26 @@ var _hoisted_7 = {
var _hoisted_8 = {
"class": "ml-5 tb-content"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Owner Organisation Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+var _hoisted_9 = {
key: 0
};
-var _hoisted_11 = {
+var _hoisted_10 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Owner Organisation Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_13 = {
+var _hoisted_11 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_14 = {
+var _hoisted_12 = {
key: 0,
"class": "language top"
};
-var _hoisted_15 = {
+var _hoisted_13 = {
key: 1,
"class": "description"
};
-var _hoisted_16 = {
+var _hoisted_14 = {
key: 1,
"class": "italic"
};
@@ -19242,27 +19724,39 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createElementVNode)("div", _hoisted_2, [identifier.reference_type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.types.otherIdentifierType[identifier.reference_type]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, "Type Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_5, [identifier.reference ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(identifier.reference), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.type)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_5, [identifier.reference ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(identifier.reference), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.reference)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, "Reference Missing"))]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_8, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(identifier.owner_org, function (post, i) {
+ ))]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_8, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(identifier.owner_org, function (post, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)({
'mb-4': key !== identifier.owner_org.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_9, post.ref ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_10, (0, vue_1.toDisplayString)(post.ref), 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.owner_organisation_reference), 1
+ /* TEXT */
+ ), post.ref ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_9, (0, vue_1.toDisplayString)(post.ref), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_11, "Missing"))]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_12, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (n, k) {
+ ))]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.owner_organisation_narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (n, k) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: k,
"class": (0, vue_1.normalizeClass)(["item", {
'mb-2': k != post.narrative.length - 1
}])
- }, [n.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_13, [n.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[n.language]) + ")", 1
+ }, [n.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, [n.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[n.language]) + ")", 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), n.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(n.narrative), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), n.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)(n.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, "Missing"))], 2
+ ))], 2
/* CLASS */
);
}), 128
@@ -19329,83 +19823,54 @@ var _hoisted_8 = {
var _hoisted_9 = {
"class": "multiline"
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Organisation Name", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+var _hoisted_10 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_12 = {
+var _hoisted_11 = {
key: 0,
"class": "language top"
};
-var _hoisted_13 = {
+var _hoisted_12 = {
key: 1,
"class": "description"
};
-var _hoisted_14 = {
+var _hoisted_13 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Organisation Type", -1
-/* HOISTED */
-);
-
-var _hoisted_16 = {
+var _hoisted_14 = {
key: 0
};
-var _hoisted_17 = {
+var _hoisted_15 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Organisation Role", -1
-/* HOISTED */
-);
-
-var _hoisted_19 = {
+var _hoisted_16 = {
key: 0
};
-var _hoisted_20 = {
+var _hoisted_17 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Ref", -1
-/* HOISTED */
-);
-
-var _hoisted_22 = {
+var _hoisted_18 = {
key: 0
};
-var _hoisted_23 = {
+var _hoisted_19 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_24 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Activity Id", -1
-/* HOISTED */
-);
-
-var _hoisted_25 = {
+var _hoisted_20 = {
key: 0
};
-var _hoisted_26 = {
+var _hoisted_21 = {
key: 1,
"class": "italic"
};
-var _hoisted_27 = {
+var _hoisted_22 = {
key: 0
};
-var _hoisted_28 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "CRS Channel Code", -1
-/* HOISTED */
-);
-
function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.data, function (participating_org, key) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -19415,28 +19880,54 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [participating_org.organization_role ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.types.organisationRole[participating_org.organization_role]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Organization Role Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [participating_org.narrative['0'].narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)(participating_org.narrative['0'].narrative), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.missing_lang.something.replace(':something', _ctx.language.common_lang.organisation_role)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [participating_org.narrative['0'].narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)(participating_org.narrative['0'].narrative), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.narrative)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("table", _hoisted_8, [(0, vue_1.createElementVNode)("tr", _hoisted_9, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.organisation_name), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, "Narrative Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("table", _hoisted_8, [(0, vue_1.createElementVNode)("tr", _hoisted_9, [_hoisted_10, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(participating_org.narrative, function (narrative, i) {
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(participating_org.narrative, function (narrative, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": "flex flex-col"
- }, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
+ }, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_10, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + " " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, "Missing"))]);
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_15, participating_org.type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_16, (0, vue_1.toDisplayString)(_ctx.types.organizationType[participating_org.type]), 1
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.organisation_type), 1
+ /* TEXT */
+ ), participating_org.type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.types.organizationType[participating_org.type]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.organisation_role), 1
+ /* TEXT */
+ ), participating_org.organization_role ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_16, (0, vue_1.toDisplayString)(_ctx.types.organisationRole[participating_org.organization_role]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.ref), 1
+ /* TEXT */
+ ), participating_org.ref ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_18, (0, vue_1.toDisplayString)(participating_org.ref), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_17, "Missing"))]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_18, participating_org.organization_role ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.types.organisationRole[participating_org.organization_role]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_20, "Missing"))]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_21, participating_org.ref ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_22, (0, vue_1.toDisplayString)(participating_org.ref), 1
+ ))]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.activity_id), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_23, "Missing"))]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_24, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, [participating_org.identifier ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, (0, vue_1.toDisplayString)(participating_org.identifier), 1
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, [participating_org.identifier ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, (0, vue_1.toDisplayString)(participating_org.identifier), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_26, "Missing"))])])]), participating_org.crs_channel_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_27, [_hoisted_28, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.types.crsChannelCode[participating_org.crs_channel_code]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_21, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])]), participating_org.crs_channel_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_22, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.crs_channel_code), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.types.crsChannelCode[participating_org.crs_channel_code]), 1
/* TEXT */
)])) : (0, vue_1.createCommentVNode)("v-if", true)])])], 2
/* CLASS */
@@ -19472,105 +19963,42 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "mb-4 ml-5"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_3 = {
"class": "category"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Value")], -1
-/* HOISTED */
-);
-
+};
var _hoisted_4 = {
"class": "ml-5"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value Amount", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value Date", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period Start", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period End", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = {
+var _hoisted_5 = {
key: 0,
"class": "mb-4 ml-5"
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_6 = {
"class": "category"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Provider org")], -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+};
+var _hoisted_7 = {
"class": "ml-5"
};
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Type", -1
-/* HOISTED */
-);
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Provider Activity ID", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_16 = {
+var _hoisted_8 = {
"class": "language mb-1.5"
};
-var _hoisted_17 = {
+var _hoisted_9 = {
"class": "w-[500px] max-w-full"
};
-var _hoisted_18 = {
+var _hoisted_10 = {
key: 1,
"class": "ml-5"
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_11 = {
"class": "category"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Receiver org")], -1
-/* HOISTED */
-);
-
-var _hoisted_20 = {
+};
+var _hoisted_12 = {
"class": "ml-5"
};
-
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Type", -1
-/* HOISTED */
-);
-
-var _hoisted_22 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Receiver Activity ID", -1
-/* HOISTED */
-);
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_24 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_25 = {
+var _hoisted_13 = {
"class": "language mb-1.5"
};
-var _hoisted_26 = {
+var _hoisted_14 = {
"class": "w-[500px] max-w-full"
};
@@ -19583,23 +20011,43 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["elements-detail", {
'mb-4': Number(key) !== $props.data.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)((_a = $setup.types.budgetType[post.planned_disbursement_type]) !== null && _a !== void 0 ? _a : "Type Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)((_a = $setup.types.budgetType[post.planned_disbursement_type]) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.type)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_amount), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.value[0].amount ? Number(post.value[0].amount).toLocaleString() + " " + $setup.types.currency[post.value[0].currency] : $setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.value[0].value_date ? $setup.formatDate(post.value[0].value_date) : $setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.period_start), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(post.period_start[0].date ? $setup.formatDate(post.period_start[0].date) : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.date)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.value[0].amount ? Number(post.value[0].amount).toLocaleString() + " " + $setup.types.currency[post.value[0].currency] : "Missing"), 1
+ )])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.period_end), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_6, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.value[0].value_date ? $setup.formatDate(post.value[0].value_date) : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(post.period_end[0].date ? $setup.formatDate(post.period_end[0].date) : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.date)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_7, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(post.period_start[0].date ? $setup.formatDate(post.period_start[0].date) : "Date Missing"), 1
+ )])])])])]), post.provider_org ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.provider) + (0, vue_1.toDisplayString)($setup.language.common_lang.org) + " org", 1
/* TEXT */
- )])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_8, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(post.period_end[0].date ? $setup.formatDate(post.period_end[0].date) : "Date Missing"), 1
+ )]), (0, vue_1.createElementVNode)("table", _hoisted_7, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.provider) + (0, vue_1.toDisplayString)($setup.language.common_lang.activity_id), 1
/* TEXT */
- )])])])])]), post.provider_org ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_9, [_hoisted_10, (0, vue_1.createElementVNode)("table", _hoisted_11, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_12, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.provider_org[0].type ? $setup.types.organizationType[post.provider_org[0].type] : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.provider_org[0].type ? $setup.types.organizationType[post.provider_org[0].type] : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_13, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = post.provider_org[0].provider_activity_id) !== null && _b !== void 0 ? _b : "Missing"), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.reference), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_14, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_c = post.provider_org[0].ref) !== null && _c !== void 0 ? _c : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = post.provider_org[0].provider_activity_id) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_15, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.provider_org[0].narrative, function (narrative, k) {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.reference), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_c = post.provider_org[0].ref) !== null && _c !== void 0 ? _c : $setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.provider_org[0].narrative, function (narrative, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -19607,22 +20055,32 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.provider_org[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_16, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? $setup.types.languages[narrative.language] : "Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_8, " (" + (0, vue_1.toDisplayString)($setup.language.common_lang.language) + " " + (0, vue_1.toDisplayString)(narrative.language ? $setup.types.languages[narrative.language] : $setup.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_17, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_9, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])])])])])) : (0, vue_1.createCommentVNode)("v-if", true), post.receiver_org ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_18, [_hoisted_19, (0, vue_1.createElementVNode)("table", _hoisted_20, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_21, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.receiver_org[0].type ? $setup.types.organizationType[post.receiver_org[0].type] : "Missing"), 1
+ ))])])])])])) : (0, vue_1.createCommentVNode)("v-if", true), post.receiver_org ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.provider) + (0, vue_1.toDisplayString)($setup.language.common_lang.org), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("table", _hoisted_12, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.type), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.receiver_org[0].type ? $setup.types.organizationType[post.receiver_org[0].type] : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_22, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_d = post.receiver_org[0].receiver_activity_id) !== null && _d !== void 0 ? _d : "Missing"), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.receiver) + (0, vue_1.toDisplayString)($setup.language.common_lang.activity_id), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_23, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_e = post.receiver_org[0].ref) !== null && _e !== void 0 ? _e : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_d = post.receiver_org[0].receiver_activity_id) !== null && _d !== void 0 ? _d : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_24, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.receiver_org[0].narrative, function (narrative, k) {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.reference), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_e = post.receiver_org[0].ref) !== null && _e !== void 0 ? _e : $setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.receiver_org[0].narrative, function (narrative, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -19630,9 +20088,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.receiver_org[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_25, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? $setup.types.languages[narrative.language] : "Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_13, " (" + (0, vue_1.toDisplayString)($setup.language.common_lang.language) + " " + (0, vue_1.toDisplayString)(narrative.language ? $setup.types.languages[narrative.language] : $setup.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_26, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_14, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
@@ -19706,45 +20164,30 @@ var _hoisted_11 = {
var _hoisted_12 = {
key: 0
};
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary URI", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = ["href"];
-var _hoisted_15 = {
+var _hoisted_13 = ["href"];
+var _hoisted_14 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Significance", -1
-/* HOISTED */
-);
-
-var _hoisted_17 = {
+var _hoisted_15 = {
key: 0
};
-var _hoisted_18 = {
+var _hoisted_16 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_20 = {
+var _hoisted_17 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_21 = {
+var _hoisted_18 = {
key: 0,
"class": "language top"
};
-var _hoisted_22 = {
+var _hoisted_19 = {
"class": "description"
};
-var _hoisted_23 = {
+var _hoisted_20 = {
key: 1,
"class": "italic"
};
@@ -19758,30 +20201,48 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [post.policy_marker_vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.types.policyMarkerVocabulary[post.policy_marker_vocabulary]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Vocabulary Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [post.policy_marker_vocabulary == '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [post.policy_marker ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.types.policyMarker[post.policy_marker]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.vocabulary)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [post.policy_marker_vocabulary == '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [post.policy_marker ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.types.policyMarker[post.policy_marker]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, "Missing"))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_8, [post.policy_marker_text ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(post.policy_marker_text), 1
+ ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_8, [post.policy_marker_text ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(post.policy_marker_text), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, "Missing"))]))]), (0, vue_1.createElementVNode)("table", _hoisted_11, [(0, vue_1.createElementVNode)("tbody", null, [post.policy_marker_vocabulary == '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_12, [_hoisted_13, (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]))]), (0, vue_1.createElementVNode)("table", _hoisted_11, [(0, vue_1.createElementVNode)("tbody", null, [post.policy_marker_vocabulary == '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_12, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.vocabulary_uri), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: 0,
target: "_blank",
href: post.vocabulary_uri
}, (0, vue_1.toDisplayString)(post.vocabulary_uri), 9
/* TEXT, PROPS */
- , _hoisted_14)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, "Missing"))])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_16, (0, vue_1.createElementVNode)("td", null, [post.significance ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.types.policySignificance[post.significance]), 1
+ , _hoisted_13)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.significance), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.significance ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.types.policySignificance[post.significance]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, "Missing"))])]), (0, vue_1.createElementVNode)("tr", {
+ ))])]), (0, vue_1.createElementVNode)("tr", {
"class": (0, vue_1.normalizeClass)(["multiline", {
'mb-4': _ctx.k !== post.narrative.length - 1
}])
- }, [_hoisted_19, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
+ }, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: k
- }, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_20, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_21, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
+ }, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_17, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_19, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_22, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_23, "Missing"))]);
+ ))]);
}), 128
/* KEYED_FRAGMENT */
))])], 2
@@ -19853,17 +20314,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* TEXT */
), participating_org.percentage ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "(" + (0, vue_1.toDisplayString)(_ctx.roundFloat(participating_org.percentage)) + "%)", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, "Missing"))]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(participating_org.narrative, function (item, i) {
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(participating_org.narrative, function (item, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)([{
'mb-4': i !== participating_org.narrative.length - 1
}, "text-sm recipient_country-content"])
- }, [item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [item.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, " (Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[item.language]) + ") ", 1
+ }, [item.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [item.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[item.language]) + ") ", 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(item.narrative), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, "Narrative Missing"))], 2
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.narrative)), 1
+ /* TEXT */
+ ))], 2
/* CLASS */
);
}), 128
@@ -19911,63 +20376,38 @@ var _hoisted_4 = {
var _hoisted_5 = {
key: 0
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Region Code", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = {
+var _hoisted_6 = {
key: 0
};
+var _hoisted_7 = {
+ key: 1
+};
var _hoisted_8 = {
key: 1
};
var _hoisted_9 = {
+ key: 0
+};
+var _hoisted_10 = {
key: 1
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Custom Code", -1
-/* HOISTED */
-);
-
var _hoisted_11 = {
key: 0
};
var _hoisted_12 = {
key: 1
};
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Percentage", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = {
- key: 0
+var _hoisted_13 = {
+ key: 2
};
+var _hoisted_14 = ["href"];
var _hoisted_15 = {
key: 1
};
var _hoisted_16 = {
- key: 2
-};
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary-uri", -1
-/* HOISTED */
-);
-
-var _hoisted_18 = ["href"];
-var _hoisted_19 = {
- key: 1
-};
-
-var _hoisted_20 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_21 = {
"class": "language mb-1.5"
};
-var _hoisted_22 = {
+var _hoisted_17 = {
"class": "w-[500px] max-w-full text-xs"
};
@@ -19980,19 +20420,39 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [post.region_vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)($setup.types.regionVocabulary[post.region_vocabulary]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Vocabulary Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [post.region_vocabulary == '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_5, [_hoisted_6, (0, vue_1.createElementVNode)("td", null, [post.region_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)($setup.types.region[post.region_code]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.vocabulary)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [post.region_vocabulary == '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_5, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.region_code), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, "Missing"))])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_9, [_hoisted_10, (0, vue_1.createElementVNode)("td", null, [post.custom_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(post.custom_code), 1
+ ), (0, vue_1.createElementVNode)("td", null, [post.region_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)($setup.types.region[post.region_code]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, "Missing"))])])), (0, vue_1.createElementVNode)("tr", null, [_hoisted_13, (0, vue_1.createElementVNode)("td", null, [post.percentage ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, " (" + (0, vue_1.toDisplayString)($setup.roundFloat(post.percentage)) + "%) ", 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, "Missing"))])]), post.region_vocabulary == '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_16, [_hoisted_17, (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
+ ))])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_8, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.custom_code), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.custom_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(post.custom_code), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.percentage), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.percentage ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, " (" + (0, vue_1.toDisplayString)($setup.roundFloat(post.percentage)) + "%) ", 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])]), post.region_vocabulary == '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_13, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.vocabulary_uri), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: 0,
target: "_blank",
href: post.vocabulary_uri
}, (0, vue_1.toDisplayString)(post.vocabulary_uri), 9
/* TEXT, PROPS */
- , _hoisted_18)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, "Missing"))])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_20, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
+ , _hoisted_14)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -20000,9 +20460,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k !== post.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_21, " (Language: " + (0, vue_1.toDisplayString)(narrative.language ? $setup.types.languages[narrative.language] : 'Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_16, " (" + (0, vue_1.toDisplayString)($setup.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(narrative.language ? $setup.types.languages[narrative.language] : $setup.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_22, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_17, (0, vue_1.toDisplayString)((_a = narrative.narrative) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
@@ -20067,9 +20527,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [post.relationship_type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.types.relatedActivityType[post.relationship_type]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, "Type Missing"))]), (0, vue_1.createElementVNode)("div", null, [post.activity_identifier ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)(post.activity_identifier), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.type)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, "Reference Missing"))])])], 2
+ ))]), (0, vue_1.createElementVNode)("div", null, [post.activity_identifier ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)(post.activity_identifier), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.reference)), 1
+ /* TEXT */
+ ))])])], 2
/* CLASS */
);
}), 128
@@ -20103,23 +20567,10 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "category"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Secondary Reporter", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_3 = {
"class": "language mb-1.5"
};
-var _hoisted_7 = {
+var _hoisted_4 = {
"class": "w-[500px] max-w-full"
};
@@ -20132,13 +20583,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4 border-b border-n-20 pb-4': Number(index) != $props.data.content.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(reporting_org.type ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.organizationType[reporting_org.type] : "Type Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(reporting_org.type ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.organizationType[reporting_org.type] : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.type)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.references), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_3, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = reporting_org.ref) !== null && _b !== void 0 ? _b : "Reference Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = reporting_org.ref) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.reference)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_4, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(parseInt(reporting_org.secondary_reporter) ? "True" : reporting_org.secondary_reporter ? "False" : "Missing"), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.secondary_reporter), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(reporting_org.narrative, function (narrative, j) {
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(parseInt(reporting_org.secondary_reporter) ? $setup.language.common_lang["true"] : reporting_org.secondary_reporter ? $setup.language.common_lang["false"] : $setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(reporting_org.narrative, function (narrative, j) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -20146,9 +20603,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': j != reporting_org.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_6, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_3, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_7, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_4, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.narrative)), 1
/* TEXT */
)], 2
/* CLASS */
@@ -20244,111 +20701,79 @@ var _hoisted_17 = {
var _hoisted_18 = {
"class": "mb-3"
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Result Type", -1
-/* HOISTED */
-);
-
-var _hoisted_20 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_21 = {
+var _hoisted_19 = {
"class": "description-content"
};
-var _hoisted_22 = {
+var _hoisted_20 = {
"class": "language mb-1.5"
};
-var _hoisted_23 = {
+var _hoisted_21 = {
"class": "w-[500px] max-w-full"
};
-var _hoisted_24 = {
+var _hoisted_22 = {
key: 0
};
-var _hoisted_25 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, null, -1
+var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, null, -1
/* HOISTED */
);
-var _hoisted_26 = {
+var _hoisted_24 = {
key: 0,
"class": "indicator overflow-hidden rounded-t-lg border border-n-20"
};
-var _hoisted_27 = {
+var _hoisted_25 = {
"class": "head flex items-center border-b border-n-20 px-6 py-2"
};
-
-var _hoisted_28 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_26 = {
"class": "grow text-xs font-bold text-n-50"
-}, " Indicator ", -1
-/* HOISTED */
-);
-
-var _hoisted_29 = {
+};
+var _hoisted_27 = {
"class": "inline-flex shrink-0"
};
-var _hoisted_30 = {
+var _hoisted_28 = {
"class": "elements-detail grow"
};
-var _hoisted_31 = {
+var _hoisted_29 = {
"class": "category flex"
};
-var _hoisted_32 = {
+var _hoisted_30 = {
"class": "mr-4"
};
-var _hoisted_33 = {
+var _hoisted_31 = {
"class": "flex shrink-0 grow justify-between"
};
-var _hoisted_34 = {
+var _hoisted_32 = {
"class": "flex"
};
-
-var _hoisted_35 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Baseline:", -1
-/* HOISTED */
-);
-
-var _hoisted_36 = {
+var _hoisted_33 = {
"class": "description text-xs"
};
-
-var _hoisted_37 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Value: ");
-
-var _hoisted_38 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing, ");
-
-var _hoisted_39 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Date: ");
-
-var _hoisted_40 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_41 = {
+var _hoisted_34 = {
key: 0
};
-
-var _hoisted_42 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period:", -1
-/* HOISTED */
-);
-
-var _hoisted_43 = {
+var _hoisted_35 = {
"class": "inline-flex gap-4"
};
-var _hoisted_44 = {
+var _hoisted_36 = {
"class": "text-xs"
};
-var _hoisted_45 = ["href"];
-var _hoisted_46 = {
+var _hoisted_37 = ["href"];
+var _hoisted_38 = {
"class": "ml-2"
};
-var _hoisted_47 = {
+var _hoisted_39 = {
"class": "shrink-0"
};
-var _hoisted_48 = {
+var _hoisted_40 = {
key: 1
};
-var _hoisted_49 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, null, -1
+var _hoisted_41 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, null, -1
/* HOISTED */
);
-var _hoisted_50 = {
+var _hoisted_42 = {
key: 0,
"class": "divider my-5 h-px w-full border-b border-n-20"
};
@@ -20375,24 +20800,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
'text-spring-50': _ctx.completed,
'text-crimson-50': !_ctx.completed
}])
- }, [_hoisted_6, _ctx.completed ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, "completed")) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, "not completed"))], 2
+ }, [_hoisted_6, _ctx.completed ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.completed), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.language.common_lang.not_completed), 1
+ /* TEXT */
+ ))], 2
/* CLASS */
)]), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Add New Result",
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.new_result),
icon: "add",
link: "/activity/".concat(_ctx.activityId, "/").concat(_ctx.title, "/create"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Show full result list",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.show_something.replace(':something', _ctx.language.common_lang.full_result_list),
icon: "",
design: "bgText",
link: "/activity/".concat(_ctx.activityId, "/").concat(_ctx.title),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_svg_vue, {
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1.5",
icon: "core"
}), (0, vue_1.createVNode)(_component_HoverText, {
@@ -20408,78 +20837,88 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createCommentVNode)(" title "), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(result.result.title[0].narrative, 'en')), 1
/* TEXT */
), (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createVNode)(_component_Btn, {
- text: "View Result",
+ text: _ctx.language.button_lang.view_something.replace(':something', _ctx.language.common_lang.result),
icon: "eye",
link: "/activity/".concat(_ctx.activityId, "/").concat(_ctx.title, "/").concat(result.id),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Edit Result",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.edit_something.replace(':something', _ctx.language.common_lang.result),
icon: "edit",
link: "/activity/".concat(_ctx.activityId, "/").concat(_ctx.title, "/").concat(result.id, "/edit")
}, null, 8
/* PROPS */
- , ["link"])])]), (0, vue_1.createCommentVNode)(" content "), (0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("table", _hoisted_18, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_19, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.types.resultType[result.result.type]), 1
+ , ["text", "link"])])]), (0, vue_1.createCommentVNode)(" content "), (0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("table", _hoisted_18, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.result_type), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.types.resultType[result.result.type]), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
/* TEXT */
- )])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_20, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("div", _hoisted_22, " (Language: " + (0, vue_1.toDisplayString)(_ctx.getActivityTitle(result.result.description[0].narrative, _ctx.currentLanguage) === 'Untitled' ? 'Missing' : _ctx.types.languages[_ctx.currentLanguage]) + ") ", 1
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("div", _hoisted_20, " (Language: " + (0, vue_1.toDisplayString)(_ctx.getActivityTitle(result.result.description[0].narrative, _ctx.currentLanguage) === 'Untitled' ? _ctx.language.common_lang.missing["default"] : _ctx.types.languages[_ctx.currentLanguage]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_23, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(result.result.description[0].narrative, _ctx.currentLanguage)), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_21, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(result.result.description[0].narrative, _ctx.currentLanguage)), 1
/* TEXT */
- )])])]), result.indicators.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_24, [_hoisted_25, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_NotYet, {
+ )])])]), result.indicators.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_22, [_hoisted_23, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_NotYet, {
link: "/".concat(_ctx.title, "/").concat(result.id, "/indicator/create"),
- description: "You haven't added any indicator yet.",
- "btn-text": "Add new indicator"
+ description: _ctx.language.button_lang.not_yet_added_period,
+ "btn-text": _ctx.language.button_lang.not_yet_added_period_btn
}, null, 8
/* PROPS */
- , ["link"])])])])) : (0, vue_1.createCommentVNode)("v-if", true)])]), (0, vue_1.createCommentVNode)(" indicator "), result.indicators.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_26, [(0, vue_1.createElementVNode)("div", _hoisted_27, [_hoisted_28, (0, vue_1.createElementVNode)("div", _hoisted_29, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Add New Indicator",
+ , ["link", "description", "btn-text"])])])])) : (0, vue_1.createCommentVNode)("v-if", true)])]), (0, vue_1.createCommentVNode)(" indicator "), result.indicators.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_24, [(0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createElementVNode)("div", _hoisted_26, (0, vue_1.toDisplayString)(_ctx.language.common_lang.indicator), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.new_indicator),
icon: "add",
link: "/".concat(_ctx.title, "/").concat(result.id, "/indicator/create"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Show full indicator list",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.show_something.replace(':something', _ctx.language.common_lang.full_indicator),
icon: "",
design: "bgText",
link: "/".concat(_ctx.title, "/").concat(result.id, "/indicator")
}, null, 8
/* PROPS */
- , ["link"])])]), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(result.indicators, function (indicator, i) {
+ , ["text", "link"])])]), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(result.indicators, function (indicator, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)(["indicator-content flex px-6 py-2", {
'mb-2 border-b border-n-20': i !== result.indicators.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_30, [(0, vue_1.createElementVNode)("div", _hoisted_31, [(0, vue_1.createElementVNode)("div", _hoisted_32, (0, vue_1.toDisplayString)(indicator.indicator.title[0].narrative[0].narrative), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_28, [(0, vue_1.createElementVNode)("div", _hoisted_29, [(0, vue_1.createElementVNode)("div", _hoisted_30, (0, vue_1.toDisplayString)(indicator.indicator.title[0].narrative[0].narrative), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_33, [(0, vue_1.createElementVNode)("span", _hoisted_34, [(0, vue_1.createVNode)(_component_Btn, {
- text: "View Indicator",
+ ), (0, vue_1.createElementVNode)("div", _hoisted_31, [(0, vue_1.createElementVNode)("span", _hoisted_32, [(0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.view_something.replace(':something', _ctx.language.common_lang.indicator),
icon: "eye",
link: "/".concat(_ctx.title, "/").concat(result.id, "/indicator/").concat(indicator.id),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Edit Indicator",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.edit_something.replace(':something', _ctx.language.common_lang.indicator),
link: "/".concat(_ctx.title, "/").concat(result.id, "/indicator/").concat(indicator.id, "/edit"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"])]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Add Period",
+ , ["text", "link"])]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.period),
icon: "add",
link: "/indicator/".concat(indicator.id, "/period/create")
}, null, 8
/* PROPS */
- , ["link"])])]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_35, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(indicator.indicator.baseline, function (baseline, b) {
+ , ["text", "link"])])]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.baseline) + ":", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(indicator.indicator.baseline, function (baseline, b) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: b,
"class": (0, vue_1.normalizeClass)(["", {
'mb-1': b !== indicator.indicator.baseline.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_36, [(0, vue_1.createElementVNode)("span", null, [_hoisted_37, baseline.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_33, [(0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.value) + ": ", 1
+ /* TEXT */
+ ), baseline.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(baseline.value) + ", ", 1
/* TEXT */
@@ -20487,9 +20926,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_38], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]) + ", ", 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- ))]), (0, vue_1.createElementVNode)("span", null, [_hoisted_39, baseline.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ ))]), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.date) + ": ", 1
+ /* TEXT */
+ ), baseline.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(baseline.date), 1
/* TEXT */
@@ -20497,54 +20940,58 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_40], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), indicator.periods.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_41, [_hoisted_42, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_43, [(0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(indicator.periods, function (period, p) {
+ ))])]), indicator.periods.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_34, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.period) + ":", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_35, [(0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(indicator.periods, function (period, p) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: p,
"class": (0, vue_1.normalizeClass)(["flex", {
'mb-1': p !== indicator.periods.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_44, [(0, vue_1.createElementVNode)("a", {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_36, [(0, vue_1.createElementVNode)("a", {
"class": "text-xs text-n-50",
href: "/indicator/".concat(indicator.id, "/period/").concat(period.id)
}, (0, vue_1.toDisplayString)(_ctx.dateFormat(period.period.period_start[0].date, _ctx.format)) + " - " + (0, vue_1.toDisplayString)(_ctx.dateFormat(period.period.period_end[0].date, _ctx.format)), 9
/* TEXT, PROPS */
- , _hoisted_45)]), (0, vue_1.createElementVNode)("div", _hoisted_46, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Edit",
+ , _hoisted_37)]), (0, vue_1.createElementVNode)("div", _hoisted_38, [(0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.edit,
icon: "edit",
link: "/indicator/".concat(indicator.id, "/period/").concat(period.id, "/edit")
}, null, 8
/* PROPS */
- , ["link"])])], 2
+ , ["text", "link"])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))]), (0, vue_1.createElementVNode)("div", _hoisted_47, [(0, vue_1.createVNode)(_component_Btn, {
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_39, [(0, vue_1.createVNode)(_component_Btn, {
"class": "-mt-1",
- text: "Show full period list",
+ text: _ctx.language.common_lang.buttons.show_full_period,
icon: "",
design: "bgText",
link: "/indicator/".concat(indicator.id, "/period")
}, null, 8
/* PROPS */
- , ["link"])])])])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_48, [_hoisted_49, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_NotYet, {
+ , ["text", "link"])])])])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_40, [_hoisted_41, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_NotYet, {
link: "/indicator/".concat(indicator.id, "/period/create"),
- description: "You haven't added any period yet."
+ description: _ctx.language.button_lang.not_yet_added_period
}, null, 8
/* PROPS */
- , ["link"])])])]))])])])], 2
+ , ["link", "description"])])])]))])])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])])) : (0, vue_1.createCommentVNode)("v-if", true)])])])]), r !== _ctx.data.content.length - 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_50)) : (0, vue_1.createCommentVNode)("v-if", true)], 64
+ ))])])) : (0, vue_1.createCommentVNode)("v-if", true)])])])]), r !== _ctx.data.content.length - 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_42)) : (0, vue_1.createCommentVNode)("v-if", true)], 64
/* STABLE_FRAGMENT */
);
}), 128
@@ -20647,36 +21094,26 @@ var _hoisted_21 = {
var _hoisted_22 = {
"class": "multiline"
};
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_24 = {
+var _hoisted_23 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_25 = {
+var _hoisted_24 = {
key: 0,
"class": "language top"
};
-var _hoisted_26 = {
+var _hoisted_25 = {
"class": "description"
};
-var _hoisted_27 = {
+var _hoisted_26 = {
key: 1,
"class": "italic"
};
-var _hoisted_28 = {
+var _hoisted_27 = {
key: 0
};
-
-var _hoisted_29 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary URI", -1
-/* HOISTED */
-);
-
-var _hoisted_30 = ["href"];
-var _hoisted_31 = {
+var _hoisted_28 = ["href"];
+var _hoisted_29 = {
key: 1,
"class": "italic"
};
@@ -20690,40 +21127,60 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [post.sector_vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.types.sectorVocabulary[post.sector_vocabulary]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Vocabulary Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", null, [post.sector_vocabulary == 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [post.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.types.sectorCode[post.code]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.vocabulary)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", null, [post.sector_vocabulary == 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [post.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.types.sectorCode[post.code]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])) : post.sector_vocabulary == 2 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_8, [post.category_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.types.sectorCategory[post.category_code]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, "Missing"))])) : post.sector_vocabulary == 2 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_8, [post.category_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.types.sectorCategory[post.category_code]), 1
+ ))])) : post.sector_vocabulary == 7 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, [post.sdg_goal ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.types.sdgGoals[post.sdg_goal]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, "Missing"))])) : post.sector_vocabulary == 7 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, [post.sdg_goal ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.types.sdgGoals[post.sdg_goal]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, "Missing"))])) : post.sector_vocabulary == 8 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_14, [post.sdg_target ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.types.sdgTarget[post.sdg_target]), 1
+ ))])) : post.sector_vocabulary == 8 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_14, [post.sdg_target ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.types.sdgTarget[post.sdg_target]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, "Missing"))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_17, [post.text ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, (0, vue_1.toDisplayString)(post.text), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, "Missing"))]))]), post.percentage ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, "(" + (0, vue_1.toDisplayString)(_ctx.roundFloat(post.percentage)) + "%)", 1
+ ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_17, [post.text ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, (0, vue_1.toDisplayString)(post.text), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", _hoisted_22, [_hoisted_23, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]))]), post.percentage ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, "(" + (0, vue_1.toDisplayString)(_ctx.roundFloat(post.percentage)) + "%)", 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", _hoisted_22, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: k,
"class": (0, vue_1.normalizeClass)({
'mb-0': k !== post.narrative - 1
})
- }, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_24, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
+ }, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_23, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_24, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_26, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_25, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_27, "Missing"))], 2
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_26, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), post.sector_vocabulary === '98' || post.sector_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_28, [_hoisted_29, (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
+ ))])]), post.sector_vocabulary === '98' || post.sector_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_27, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_language.vocabulary_uri), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: 0,
target: "_blank",
href: post.vocabulary_uri
}, (0, vue_1.toDisplayString)(post.vocabulary_uri), 9
/* TEXT, PROPS */
- , _hoisted_30)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_31, "Missing"))])])) : (0, vue_1.createCommentVNode)("v-if", true)])])], 2
+ , _hoisted_28)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_29, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])) : (0, vue_1.createCommentVNode)("v-if", true)])])], 2
/* CLASS */
);
}), 128
@@ -20800,33 +21257,23 @@ var _hoisted_14 = {
var _hoisted_15 = {
key: 0
};
-
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary URI", -1
-/* HOISTED */
-);
-
-var _hoisted_17 = ["href"];
-var _hoisted_18 = {
+var _hoisted_16 = ["href"];
+var _hoisted_17 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_20 = {
+var _hoisted_18 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_21 = {
+var _hoisted_19 = {
key: 0,
"class": "language top"
};
-var _hoisted_22 = {
+var _hoisted_20 = {
"class": "description"
};
-var _hoisted_23 = {
+var _hoisted_21 = {
key: 1,
"class": "italic"
};
@@ -20840,31 +21287,47 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, [post.tag_vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.types.tagVocabulary[post.tag_vocabulary]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, "Vocabulary Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [post.tag_vocabulary === '1' || post.tag_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, [post.tag_text ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(post.tag_text), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.vocabulary)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, "Missing"))])) : (0, vue_1.createCommentVNode)("v-if", true), post.tag_vocabulary === '2' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, [post.goals_tag_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.types.sdgGoals[post.goals_tag_code]), 1
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_4, [post.tag_vocabulary === '1' || post.tag_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, [post.tag_text ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(post.tag_text), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, "Missing"))])) : (0, vue_1.createCommentVNode)("v-if", true), post.tag_vocabulary === '3' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, [post.targets_tag_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.types.sdgTarget[post.targets_tag_code]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, "Missing"))])) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("table", _hoisted_14, [(0, vue_1.createElementVNode)("tbody", null, [post.tag_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_15, [_hoisted_16, (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true), post.tag_vocabulary === '2' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, [post.goals_tag_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.types.sdgGoals[post.goals_tag_code]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true), post.tag_vocabulary === '3' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, [post.targets_tag_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.types.sdgTarget[post.targets_tag_code]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("table", _hoisted_14, [(0, vue_1.createElementVNode)("tbody", null, [post.tag_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_15, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.vocabulary_uri), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: 0,
target: "_blank",
href: post.vocabulary_uri
}, (0, vue_1.toDisplayString)(post.vocabulary_uri), 9
/* TEXT, PROPS */
- , _hoisted_17)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, "Missing"))])])) : (0, vue_1.createCommentVNode)("v-if", true), (post === null || post === void 0 ? void 0 : post.narrative) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
+ , _hoisted_16)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])) : (0, vue_1.createCommentVNode)("v-if", true), (post === null || post === void 0 ? void 0 : post.narrative) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
key: 1,
"class": (0, vue_1.normalizeClass)(["multiline", {
'mb-4': _ctx.k !== post.narrative.length - 1
}])
- }, [_hoisted_19, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
+ }, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.narrative, function (narrative, k) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: k
- }, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_20, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_21, "(Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
+ }, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_18, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, "(" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[narrative.language]) + ")", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_22, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_20, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_23, "Missing"))]);
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_21, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]);
}), 128
/* KEYED_FRAGMENT */
))])], 2
@@ -20923,11 +21386,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": "title-content"
- }, [post.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [post.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, " (Language: " + (0, vue_1.toDisplayString)(_ctx.types.languages[post.language]) + ") ", 1
+ }, [post.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [post.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.types.languages[post.language]) + ") ", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), post.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(post.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), post.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.narrative).replace(':missing', "bruh")), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, "Title Missing")), i !== _ctx.data.content.length - 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5)) : (0, vue_1.createCommentVNode)("v-if", true)]);
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.type)), 1
+ /* TEXT */
+ )), i !== _ctx.data.content.length - 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5)) : (0, vue_1.createCommentVNode)("v-if", true)]);
}), 128
/* KEYED_FRAGMENT */
);
@@ -20971,21 +21436,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["", {
'mb-4': Number(t) !== _ctx.data.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((_a = _ctx.types.transactionType[trans.transaction.transaction_type[0].transaction_type_code]) !== null && _a !== void 0 ? _a : "Transaction type missing") + " ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((_a = _ctx.types.transactionType[trans.transaction.transaction_type[0].transaction_type_code]) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.transaction_type)) + " ", 1
/* TEXT */
), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Edit",
+ text: _ctx.language.button_lang.edit,
icon: "edit",
link: "/activity/".concat(trans.activity_id, "/transaction/").concat(trans.id, "/edit")
}, null, 8
/* PROPS */
- , ["link"])])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(trans.transaction.value, function (val, v) {
+ , ["text", "link"])])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(trans.transaction.value, function (val, v) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: v,
"class": (0, vue_1.normalizeClass)(["description text-sm", {
'mb-4': Number(t) !== trans.transaction.value.length - 1
}])
- }, (0, vue_1.toDisplayString)(val.amount ? Number(val.amount).toLocaleString() : "Value missing") + " " + (0, vue_1.toDisplayString)(val.currency) + " " + (0, vue_1.toDisplayString)(_ctx.dateFormat(val.date, "MMMM DD, YYYY") ? "- valued at" + " " + _ctx.dateFormat(val.date, "MMMM DD, YYYY") : ""), 3
+ }, (0, vue_1.toDisplayString)(val.amount ? Number(val.amount).toLocaleString() : _ctx.language.common_lang.missing.value) + " " + (0, vue_1.toDisplayString)(val.currency) + " " + (0, vue_1.toDisplayString)(_ctx.dateFormat(val.date, "MMMM DD, YYYY") ? "- valued at" + " " + _ctx.dateFormat(val.date, "MMMM DD, YYYY") : ""), 3
/* TEXT, CLASS */
);
}), 128
@@ -21062,54 +21527,54 @@ var _hoisted_17 = {
key: 0
};
var _hoisted_18 = ["href"];
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createTextVNode)(" add period ");
-
-var _hoisted_20 = {
+var _hoisted_19 = {
key: 1
};
-
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createTextVNode)(" period ");
-
-var _hoisted_22 = [_hoisted_21];
-var _hoisted_23 = {
+var _hoisted_20 = {
"class": "activities__content"
};
-var _hoisted_24 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, null, -1
+var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, null, -1
/* HOISTED */
);
-var _hoisted_25 = {
+var _hoisted_22 = {
"class": "bg-white px-4 py-5"
};
-var _hoisted_26 = {
+var _hoisted_23 = {
"class": "category flex"
};
-var _hoisted_27 = {
+var _hoisted_24 = {
"class": "ml-4"
};
-var _hoisted_28 = {
+var _hoisted_25 = {
"class": "indicators elements-detail"
};
-var _hoisted_29 = {
+var _hoisted_26 = {
key: 0,
id: "document_link"
};
-
-var _hoisted_30 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_27 = {
"class": "title mb-4"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_28 = {
"class": "item elements-detail wider"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("table", {
+};
+var _hoisted_29 = {
"class": "mb-5"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("tr", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Document Link"), /*#__PURE__*/(0, vue_1.createElementVNode)("td")])])]), /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+
+var _hoisted_30 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, null, -1
+/* HOISTED */
+);
+
+var _hoisted_31 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
"class": "divider mb-4 h-px w-full border-b border-n-20"
-})], -1
+}, null, -1
/* HOISTED */
);
-var _hoisted_31 = {
+var _hoisted_32 = {
"class": "ml-4"
};
@@ -21159,7 +21624,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "rotate-180 pb-2 text-3xl text-white"
})])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)(_component_PageTitle, {
"breadcrumb-data": _ctx.breadcrumbData,
- title: "Indicator Detail",
+ text: _ctx.language.common_lang.indicator_detail,
"back-link": "".concat(_ctx.indicatorLink)
}, {
"default": (0, vue_1.withCtx)(function () {
@@ -21171,32 +21636,32 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, null, 8
/* PROPS */
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createVNode)(_component_Btn, {
- text: "Add Indicator",
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.indicator),
icon: "add",
link: "".concat(_ctx.indicatorLink, "/create"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Add Period",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.period),
icon: "add",
link: "/indicator/".concat(_ctx.indicator.id, "/period/create"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Edit Indicator",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.edit_something.replace(':something', _ctx.language.common_lang.indicator),
link: "".concat(_ctx.indicatorLink, "/").concat(_ctx.indicator.id, "/edit")
}, null, 8
/* PROPS */
- , ["link"])])];
+ , ["text", "link"])])];
}),
_: 1
/* STABLE */
}, 8
/* PROPS */
- , ["breadcrumb-data", "back-link"]), (0, vue_1.createElementVNode)("div", {
+ , ["breadcrumb-data", "text", "back-link"]), (0, vue_1.createElementVNode)("div", {
"class": "sidebar-open-icon",
onClick: _cache[2] || (_cache[2] = function () {
_ctx.showSidebar = !_ctx.showSidebar;
@@ -21253,20 +21718,27 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "add",
"class": "mr-2 text-n-40"
- }), _hoisted_19], 10
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.period)), 1
+ /* TEXT */
+ )], 10
/* CLASS, PROPS */
- , _hoisted_18)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", _hoisted_20, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
+ , _hoisted_18)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", _hoisted_19, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
href: "#period",
"class": (0, vue_1.normalizeClass)(_ctx.linkClasses)
- }, _hoisted_22, 2
+ }, [(0, vue_1.createVNode)(_component_svg_vue, {
+ icon: "core",
+ "class": "mr-2 text-base"
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.button_lang.period_nocase), 1
+ /* TEXT */
+ )], 2
/* CLASS */
- )), [[_directive_smooth_scroll]])]))])])]), (0, vue_1.createElementVNode)("div", _hoisted_23, [_hoisted_24, (0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createElementVNode)("div", {
+ )), [[_directive_smooth_scroll]])]))])])]), (0, vue_1.createElementVNode)("div", _hoisted_20, [_hoisted_21, (0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["elements-detail wider", {
'mb-10': _ctx.indicatorData.document_link.length > 0
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_26, (0, vue_1.toDisplayString)(_ctx.indicatorTitle), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_23, (0, vue_1.toDisplayString)(_ctx.indicatorTitle), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createElementVNode)("div", _hoisted_28, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [_ctx.indicatorData.title[0].narrative.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_TitleElement, {
+ ), (0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [_ctx.indicatorData.title[0].narrative.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_TitleElement, {
key: 0,
id: "title",
data: _ctx.indicatorData.title[0],
@@ -21315,7 +21787,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
data: _ctx.periodData
}, null, 8
/* PROPS */
- , ["data"])])])])]), _ctx.indicatorData.document_link.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_29, [_hoisted_30, (0, vue_1.createElementVNode)("div", _hoisted_31, [(0, vue_1.createVNode)(_component_DocumentLink, {
+ , ["data"])])])])]), _ctx.indicatorData.document_link.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_26, [(0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createElementVNode)("div", _hoisted_28, [(0, vue_1.createElementVNode)("table", _hoisted_29, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_link), 1
+ /* TEXT */
+ ), _hoisted_30])])]), _hoisted_31]), (0, vue_1.createElementVNode)("div", _hoisted_32, [(0, vue_1.createVNode)(_component_DocumentLink, {
data: _ctx.indicatorData.document_link,
type: _ctx.types
}, null, 8
@@ -21355,46 +21829,46 @@ var _hoisted_3 = ["href"];
var _hoisted_4 = {
"class": "iati-list-table text-n-40"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("thead", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("tr", {
+var _hoisted_5 = {
"class": "bg-n-10"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_6 = {
id: "title",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Title")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_7 = {
id: "measure",
scope: "col",
width: "190px"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Measure")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_8 = {
id: "aggregation_status",
scope: "col",
width: "208px"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Aggregation Status")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_9 = {
id: "action",
scope: "col",
width: "190px"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Action")])])], -1
-/* HOISTED */
-);
-
-var _hoisted_6 = ["onClick"];
-var _hoisted_7 = {
+};
+var _hoisted_10 = ["onClick"];
+var _hoisted_11 = {
"class": "ellipsis relative"
};
-var _hoisted_8 = ["href"];
-var _hoisted_9 = {
+var _hoisted_12 = ["href"];
+var _hoisted_13 = {
"class": "w-52"
};
-var _hoisted_10 = {
+var _hoisted_14 = {
"class": "ellipsis__title--hover"
};
-var _hoisted_11 = ["onClick"];
-var _hoisted_12 = ["onClick"];
-var _hoisted_13 = {
+var _hoisted_15 = ["onClick"];
+var _hoisted_16 = ["onClick"];
+var _hoisted_17 = {
"class": "flex text-n-40"
};
-var _hoisted_14 = ["href"];
-var _hoisted_15 = {
+var _hoisted_18 = ["href"];
+var _hoisted_19 = {
"class": "mt-6"
};
@@ -21413,7 +21887,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createVNode)(_component_PageTitle, {
"breadcrumb-data": _ctx.breadcrumbData,
- title: "Indicator List",
+ text: _ctx.language.common_lang.indicator_link,
"back-link": "".concat(_ctx.resultLink)
}, {
"default": (0, vue_1.withCtx)(function () {
@@ -21427,10 +21901,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("a", {
href: "".concat(_ctx.indicatorLink, "/create")
}, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Add Indicator",
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.indicator),
icon: "plus",
type: "primary"
- })], 8
+ }, null, 8
+ /* PROPS */
+ , ["text"])], 8
/* PROPS */
, _hoisted_3)])];
}),
@@ -21439,7 +21915,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, 8
/* PROPS */
- , ["breadcrumb-data", "back-link"]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [_hoisted_5, (0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.indicatorsData.data, function (indicator, t, index) {
+ , ["breadcrumb-data", "text", "back-link"]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("thead", null, [(0, vue_1.createElementVNode)("tr", _hoisted_5, [(0, vue_1.createElementVNode)("th", _hoisted_6, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.title), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_7, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.measure), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_8, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.aggregation_status), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_9, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.action), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.indicatorsData.data, function (indicator, t, index) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
key: index
}, [(0, vue_1.createElementVNode)("td", {
@@ -21447,30 +21931,30 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: function onClick($event) {
return _ctx.handleNavigate("/result/".concat(indicator.result_id, "/indicator/").concat(indicator.id));
}
- }, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("a", {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("a", {
href: "/result/".concat(indicator.result_id, "/indicator/").concat(indicator.id),
"class": "ellipsis overflow-hidden text-n-50"
}, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(indicator.indicator.title[0].narrative, 'en')), 9
/* TEXT, PROPS */
- , _hoisted_8), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(indicator.indicator.title[0].narrative, 'en')), 1
+ , _hoisted_12), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(indicator.indicator.title[0].narrative, 'en')), 1
/* TEXT */
)])])], 8
/* PROPS */
- , _hoisted_6), (0, vue_1.createElementVNode)("td", {
+ , _hoisted_10), (0, vue_1.createElementVNode)("td", {
"class": "cursor-pointer",
onClick: function onClick($event) {
return _ctx.handleNavigate("/result/".concat(indicator.result_id, "/indicator/").concat(indicator.id));
}
}, (0, vue_1.toDisplayString)(_ctx.types.indicatorMeasure[indicator.indicator.measure]), 9
/* TEXT, PROPS */
- , _hoisted_11), (0, vue_1.createElementVNode)("td", {
+ , _hoisted_15), (0, vue_1.createElementVNode)("td", {
"class": "cursor-pointer capitalize",
onClick: function onClick($event) {
return _ctx.handleNavigate("/result/".concat(indicator.result_id, "/indicator/").concat(indicator.id));
}
}, (0, vue_1.toDisplayString)(parseInt(indicator.indicator.aggregation_status) ? 'True' : indicator.indicator.aggregation_status ? 'False' : 'Missing'), 9
/* TEXT, PROPS */
- , _hoisted_12), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("a", {
+ , _hoisted_16), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("a", {
"class": "mr-6",
href: "/result/".concat(indicator.result_id, "/indicator/").concat(indicator.id, "/edit")
}, [(0, vue_1.createVNode)(_component_svg_vue, {
@@ -21478,7 +21962,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "text-xl"
})], 8
/* PROPS */
- , _hoisted_14), (0, vue_1.createVNode)(_component_DeleteAction, {
+ , _hoisted_18), (0, vue_1.createVNode)(_component_DeleteAction, {
"item-id": indicator.id,
"item-type": "indicator"
}, null, 8
@@ -21486,7 +21970,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["item-id"])])])]);
}), 128
/* KEYED_FRAGMENT */
- ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_15, [_ctx.indicatorsData && _ctx.indicatorsData.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Pagination, {
+ ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_19, [_ctx.indicatorsData && _ctx.indicatorsData.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Pagination, {
key: 0,
data: _ctx.indicatorsData,
onFetchActivities: _ctx.fetchListings
@@ -21515,16 +21999,14 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var _hoisted_1 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Aggregation Status", -1
-/* HOISTED */
-);
-
-var _hoisted_2 = {
+var _hoisted_1 = {
"class": "capitalize"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [_hoisted_1, (0, vue_1.createElementVNode)("td", _hoisted_2, (0, vue_1.toDisplayString)(parseInt(_ctx.data) ? 'True' : _ctx.data ? 'False' : 'Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.aggregation_status), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", _hoisted_1, (0, vue_1.toDisplayString)(parseInt(_ctx.data) ? 'True' : _ctx.data ? _ctx.language.common_lang["false"] : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)]);
}
@@ -21549,56 +22031,28 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var _hoisted_1 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Baseline", -1
-/* HOISTED */
-);
-
-var _hoisted_2 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Year: ");
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createTextVNode)("Missing");
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createTextVNode)(" , ");
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Date: ");
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createTextVNode)("Missing");
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createTextVNode)(" , ");
+var _hoisted_1 = /*#__PURE__*/(0, vue_1.createTextVNode)(" , ");
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Value: ");
+var _hoisted_2 = /*#__PURE__*/(0, vue_1.createTextVNode)(" , ");
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createTextVNode)("Missing");
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Location: ", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Dimension: ", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = {
+var _hoisted_3 = {
"class": "description"
};
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Comment: ", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = {
+var _hoisted_4 = {
"class": "description"
};
-var _hoisted_15 = {
+var _hoisted_5 = {
key: 0
};
-
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_6 = {
"class": "mb-2.5 flex"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Document Link: "), /*#__PURE__*/(0, vue_1.createElementVNode)("div")], -1
+};
+
+var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, null, -1
/* HOISTED */
);
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
"class": "w-full h-px mb-4 border-b divider border-n-20"
}, null, -1
/* HOISTED */
@@ -21607,7 +22061,9 @@ var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_DocumentLink = (0, vue_1.resolveComponent)("DocumentLink");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [_hoisted_1, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.baseline, function (base, b) {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.baseline), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.baseline, function (base, b) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: b,
"class": (0, vue_1.normalizeClass)({
@@ -21615,7 +22071,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(_ctx.elementSpacing)
- }, [(0, vue_1.createElementVNode)("span", null, [_hoisted_2, base.year ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ }, [(0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.year) + ": ", 1
+ /* TEXT */
+ ), base.year ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(base.year), 1
/* TEXT */
@@ -21623,9 +22081,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_3], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- )), _hoisted_4]), (0, vue_1.createElementVNode)("span", null, [_hoisted_5, base.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ )), _hoisted_1]), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.date) + ": ", 1
+ /* TEXT */
+ ), base.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(base.date), 1
/* TEXT */
@@ -21633,9 +22095,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_6], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- )), _hoisted_7]), (0, vue_1.createElementVNode)("span", null, [_hoisted_8, base.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ )), _hoisted_2]), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.value) + ": ", 1
+ /* TEXT */
+ ), base.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(base.value), 1
/* TEXT */
@@ -21643,31 +22109,39 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_9], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])], 2
/* CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_10, (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.location(base.location) ? _ctx.location(base.location) : 'Missing'), 1
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.location) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.location(base.location) ? _ctx.location(base.location) : _ctx.language.common_lang.baseline["default"]), 1
/* TEXT */
)], 2
/* CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_11, (0, vue_1.createElementVNode)("div", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.dimensions(base.dimension)), 1
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.dimension) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.dimensions(base.dimension)), 1
/* TEXT */
)], 2
/* CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_13, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(base.comment[0].narrative, function (com, c) {
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.comment) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(base.comment[0].narrative, function (com, c) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: c,
"class": (0, vue_1.normalizeClass)(["item", {
'mb-1.5': c !== base.comment[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_14, (0, vue_1.toDisplayString)(com.narrative ? com.narrative : 'Missing') + " (Language: " + (0, vue_1.toDisplayString)(com.language ? _ctx.baseType.language[com.language] : 'Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_4, (0, vue_1.toDisplayString)(com.narrative ? com.narrative : _ctx.language.common_lang.missing["default"]) + " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(com.language ? _ctx.baseType.language[com.language] : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
)])], 2
/* CLASS */
@@ -21676,7 +22150,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* KEYED_FRAGMENT */
))])], 2
/* CLASS */
- ), base.document_link.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_15, [_hoisted_16, _hoisted_17, (0, vue_1.createVNode)(_component_DocumentLink, {
+ ), base.document_link.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_link) + ": ", 1
+ /* TEXT */
+ ), _hoisted_7]), _hoisted_8, (0, vue_1.createVNode)(_component_DocumentLink, {
data: base.document_link,
type: _ctx.baseType,
alignment: ""
@@ -21710,27 +22186,25 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var _hoisted_1 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_2 = {
+var _hoisted_1 = {
"class": "mb-1 language"
};
-var _hoisted_3 = {
+var _hoisted_2 = {
"class": "text-xs description"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [_hoisted_1, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.descriptionData.narrative, function (description, t) {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.descriptionData.narrative, function (description, t) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: t,
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-3': t !== _ctx.descriptionData.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_2, " (Language: " + (0, vue_1.toDisplayString)(description.language ? _ctx.descType[description.language] : 'Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(description.language ? _ctx.descType[description.language] : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)(description.narrative), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(description.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -21781,66 +22255,32 @@ var _hoisted_5 = {
var _hoisted_6 = {
"class": "ml-4"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Title", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = {
+var _hoisted_7 = {
"class": "mb-1 language"
};
-var _hoisted_9 = {
+var _hoisted_8 = {
"class": "text-xs description"
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Document Link", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = ["href"];
-var _hoisted_12 = {
+var _hoisted_9 = ["href"];
+var _hoisted_10 = {
key: 1
};
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Format", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_15 = {
+var _hoisted_11 = {
"class": "mb-1 language"
};
-var _hoisted_16 = {
+var _hoisted_12 = {
"class": "text-xs description"
};
-var _hoisted_17 = {
+var _hoisted_13 = {
key: 0
};
-
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Category", -1
-/* HOISTED */
-);
-
-var _hoisted_19 = {
+var _hoisted_14 = {
key: 1
};
-
-var _hoisted_20 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Language", -1
-/* HOISTED */
-);
-
-var _hoisted_21 = {
+var _hoisted_15 = {
"class": "text-xs"
};
-
-var _hoisted_22 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Document Date", -1
-/* HOISTED */
-);
-
-var _hoisted_23 = {
+var _hoisted_16 = {
"class": "text-xs"
};
@@ -21850,9 +22290,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
key: i
- }, [_ctx.alignment === 'center' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_3)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(post.title[0].narrative, 'en') ? _ctx.getActivityTitle(post.title[0].narrative, 'en') : 'Missing'), 1
+ }, [_ctx.alignment === 'center' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_3)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(post.title[0].narrative, 'en') ? _ctx.getActivityTitle(post.title[0].narrative, 'en') : _ctx.language.common_lang.missing.defualt), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_7, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.title[0].narrative, function (na, n) {
+ ), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.title), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.title[0].narrative, function (na, n) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -21860,24 +22302,32 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["title-content", {
'mb-1.5': post.title[0].narrative.length - 1 != n
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_8, " (Language: " + (0, vue_1.toDisplayString)(na.language ? _ctx.type.language[na.language] : 'Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_7, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(na.language ? _ctx.type.language[na.language] : _ctx.language.common_lang.missing.defualt) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_9, (0, vue_1.toDisplayString)((_a = na.narrative) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)((_a = na.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.defualt), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_10, (0, vue_1.createElementVNode)("td", null, [post.url ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_link), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.url ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: 0,
target: "_blank",
href: post.url
}, (0, vue_1.toDisplayString)(post.url), 9
/* TEXT, PROPS */
- , _hoisted_11)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, "Missing"))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_13, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = post.format) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ , _hoisted_9)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.format), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_14, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.description[0].narrative, function (na, n) {
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = post.format) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.defualt), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.description[0].narrative, function (na, n) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -21885,31 +22335,37 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-1.5': post.description[0].narrative.length - 1 != n
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_15, " (Language: " + (0, vue_1.toDisplayString)(na.language ? _ctx.type.language[na.language] : 'Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_11, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(na.language ? _ctx.type.language[na.language] : _ctx.language.common_lang.missing.defualt) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_16, (0, vue_1.toDisplayString)((_a = na.narrative) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_12, (0, vue_1.toDisplayString)((_a = na.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.defualt), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), post.category.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_17, [_hoisted_18, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.category, function (cat, c) {
+ ))])]), post.category.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_13, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.category), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.category, function (cat, c) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: c,
"class": (0, vue_1.normalizeClass)(["text-xs", {
'mb-1': post.category.length - 1 != c
}])
- }, (0, vue_1.toDisplayString)(cat.code ? _ctx.type.documentCategory[cat.code] : 'Missing'), 3
+ }, (0, vue_1.toDisplayString)(cat.code ? _ctx.type.documentCategory[cat.code] : _ctx.language.common_lang.missing.defualt), 3
/* TEXT, CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])])) : (0, vue_1.createCommentVNode)("v-if", true), post.language.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_19, [_hoisted_20, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_21, (0, vue_1.toDisplayString)(post.language[0].language ? post.language.map(function (entry) {
+ ))])])) : (0, vue_1.createCommentVNode)("v-if", true), post.language.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_14, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.language), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_15, (0, vue_1.toDisplayString)(post.language[0].language ? post.language.map(function (entry) {
return _ctx.type.language[entry.language];
- }).join(', ') : 'Missing'), 1
+ }).join(', ') : _ctx.language.common_lang.missing.defualt), 1
+ /* TEXT */
+ )])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_date), 1
/* TEXT */
- )])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_22, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_23, (0, vue_1.toDisplayString)((_b = post.document_date[0].date) !== null && _b !== void 0 ? _b : 'Missing'), 1
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_16, (0, vue_1.toDisplayString)((_b = post.document_date[0].date) !== null && _b !== void 0 ? _b : _ctx.language.common_lang.missing.defualt), 1
/* TEXT */
)])])])])])])])]);
}), 128
@@ -21937,12 +22393,10 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var _hoisted_1 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Ascending", -1
-/* HOISTED */
-);
-
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [_hoisted_1, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(parseInt(_ctx.data) ? 'True' : _ctx.data ? 'False' : 'Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.ascending), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(parseInt(_ctx.data) ? 'True' : _ctx.data ? 'False' : 'Missing'), 1
/* TEXT */
)]);
}
@@ -21967,12 +22421,10 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var _hoisted_1 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Measure", -1
-/* HOISTED */
-);
-
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [_hoisted_1, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.measureData ? _ctx.measureType[_ctx.measureData] : 'Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.measure), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.measureData ? _ctx.measureType[_ctx.measureData] : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)]);
}
@@ -22008,19 +22460,14 @@ var _hoisted_2 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, null, -1
var _hoisted_3 = {
key: 1
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Periods", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+var _hoisted_4 = {
"class": "inline-flex gap-4"
};
-var _hoisted_6 = ["href"];
-var _hoisted_7 = {
+var _hoisted_5 = ["href"];
+var _hoisted_6 = {
"class": "ml-2"
};
-var _hoisted_8 = {
+var _hoisted_7 = {
"class": "shrink-0"
};
@@ -22031,12 +22478,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.data.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_1, [_hoisted_2, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_NotYet, {
link: "/indicator/".concat(_ctx.id.indicator, "/period/create"),
- description: "You haven't added any periods yet.",
- "btn-text": "Add period",
+ description: _ctx.language.button_lang.not_yet_added_period,
+ "btn-text": _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.period),
"class": "max-w-[442px]"
}, null, 8
/* PROPS */
- , ["link"])])])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_3, [_hoisted_4, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.data, function (item, key) {
+ , ["link", "description", "btn-text"])])])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_3, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.periods), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.data, function (item, key) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: key,
"class": (0, vue_1.normalizeClass)(["flex", {
@@ -22047,26 +22496,26 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
href: "/indicator/".concat(_ctx.id.indicator, "/period/").concat(item.id)
}, (0, vue_1.toDisplayString)(_ctx.dateFormat(item.period.period_start[0].date, 'MMMM DD, YYYY')) + " - " + (0, vue_1.toDisplayString)(_ctx.dateFormat(item.period.period_end[0].date, 'MMMM DD, YYYY')), 9
/* TEXT, PROPS */
- , _hoisted_6)]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Edit",
+ , _hoisted_5)]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.edit,
icon: "edit",
link: "/indicator/".concat(_ctx.id.indicator, "/period/").concat(item.id, "/edit")
}, null, 8
/* PROPS */
- , ["link"])])], 2
+ , ["text", "link"])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))]), (0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Show full period list",
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.show_full_period,
icon: "",
design: "bgText",
link: "/indicator/".concat(_ctx.id.indicator, "/period"),
"class": "mr-2.5 -mt-1"
}, null, 8
/* PROPS */
- , ["link"])])])])]));
+ , ["text", "link"])])])])]));
}
exports.render = render;
@@ -22089,41 +22538,38 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var _hoisted_1 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_2 = {
+var _hoisted_1 = {
key: 0
};
-var _hoisted_3 = {
+var _hoisted_2 = {
key: 1
};
-var _hoisted_4 = {
+var _hoisted_3 = {
key: 2
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Indicator URI: ");
-
-var _hoisted_6 = ["href"];
+var _hoisted_4 = ["href"];
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [_hoisted_1, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.refData, function (ref, r) {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.reference), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.refData, function (ref, r) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: r,
"class": (0, vue_1.normalizeClass)({
'mb-1.5': r !== Object.keys(_ctx.refData).length - 1
})
- }, [ref.vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, " Vocabulary: " + (0, vue_1.toDisplayString)(_ctx.refType.indicatorVocabulary[ref.vocabulary]) + ", ", 1
+ }, [ref.vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.language.common_lang.vocabulary) + ": " + (0, vue_1.toDisplayString)(_ctx.refType.indicatorVocabulary[ref.vocabulary]) + ", ", 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), ref.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.language.common_lang.code) + ": " + (0, vue_1.toDisplayString)(ref.code) + ", ", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), ref.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, " Code: " + (0, vue_1.toDisplayString)(ref.code) + ", ", 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), ref.indicator_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.indicator_uri) + ": ", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), ref.indicator_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, [_hoisted_5, (0, vue_1.createElementVNode)("a", {
+ ), (0, vue_1.createElementVNode)("a", {
target: "_blank",
href: ref.indicator_uri
}, (0, vue_1.toDisplayString)(ref.indicator_uri), 9
/* TEXT, PROPS */
- , _hoisted_6)])) : (0, vue_1.createCommentVNode)("v-if", true)], 2
+ , _hoisted_4)])) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
);
}), 128
@@ -22151,20 +22597,18 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var _hoisted_1 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Title", -1
-/* HOISTED */
-);
-
-var _hoisted_2 = {
+var _hoisted_1 = {
key: 0,
"class": "language mb-1"
};
-var _hoisted_3 = {
+var _hoisted_2 = {
"class": "description text-xs"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [_hoisted_1, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.titleData.narrative, function (title, t) {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.title), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.titleData.narrative, function (title, t) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -22172,9 +22616,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["title-content", {
'mb-3': t !== _ctx.titleData.narrative.length - 1
}])
- }, [title.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_2, " (Language: " + (0, vue_1.toDisplayString)(_ctx.titleType[title.language]) + ") ", 1
+ }, [title.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.titleType[title.language]) + ") ", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)((_a = title.narrative) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)((_a = title.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
@@ -22223,31 +22667,14 @@ var _hoisted_5 = {
var _hoisted_6 = {
"class": "w-full bg-eggshell py-2"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "All Elements", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Core", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Completed", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Not Completed", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+var _hoisted_7 = {
"class": "elements__listing mt-3 grid grid-cols-2 gap-2"
};
-var _hoisted_12 = ["href"];
-var _hoisted_13 = {
+var _hoisted_8 = ["href"];
+var _hoisted_9 = {
"class": "status_icons absolute top-0 right-0 mt-1 mr-1 inline-flex"
};
-var _hoisted_14 = {
+var _hoisted_10 = {
"class": "title mt-1 text-xs"
};
@@ -22296,7 +22723,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 text-lg",
icon: "box"
- }), _hoisted_7]), (0, vue_1.createElementVNode)("li", {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.all_elements), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", {
"class": "flex py-1.5 px-3.5 hover:bg-white",
onClick: _cache[3] || (_cache[3] = function ($event) {
return $setup.dropdownFilter('core');
@@ -22304,7 +22733,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 text-lg",
icon: "core"
- }), _hoisted_8]), (0, vue_1.createElementVNode)("li", {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.core), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", {
"class": "flex py-1.5 px-3.5 hover:bg-white",
onClick: _cache[4] || (_cache[4] = function ($event) {
return $setup.dropdownFilter('completed');
@@ -22312,7 +22743,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 text-lg",
icon: "double-tick"
- }), _hoisted_9]), (0, vue_1.createElementVNode)("li", {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.completed), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", {
"class": "flex py-1.5 px-3.5 hover:bg-white",
onClick: _cache[5] || (_cache[5] = function ($event) {
return $setup.dropdownFilter('not_completed');
@@ -22320,16 +22753,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "ml-1 !mr-1.5",
icon: "red-cross"
- }), _hoisted_10])])], 512
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.not_completed), 1
+ /* TEXT */
+ )])])], 512
/* NEED_PATCH */
- ), [[vue_1.vShow, $setup.searchBtnValue]])])]), (0, vue_1.createElementVNode)("div", _hoisted_11, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.filteredElements, function (post, index) {
+ ), [[vue_1.vShow, $setup.searchBtnValue]])])]), (0, vue_1.createElementVNode)("div", _hoisted_7, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.filteredElements, function (post, index) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: index
}, [!(index.toString() === 'indicator' || index.toString() === 'period') ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: 0,
"class": "elements__item relative flex cursor-pointer flex-col items-center justify-center rounded border border-dashed border-n-40 py-2.5 text-n-30",
href: $setup.getLink(post.has_data, index.toString())
- }, [(0, vue_1.createElementVNode)("div", _hoisted_13, [post.completed ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_9, [post.completed ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_svg_vue, {
key: 0,
"class": "text-base text-spring-50",
icon: "double-tick"
@@ -22347,11 +22782,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "text-base"
}, null, 8
/* PROPS */
- , ["icon"])), (0, vue_1.createElementVNode)("div", _hoisted_14, (0, vue_1.toDisplayString)(index.toString().replace(/_/g, "-")), 1
+ , ["icon"])), (0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)(index.toString().replace(/_/g, "-")), 1
/* TEXT */
)], 8
/* PROPS */
- , _hoisted_12)) : (0, vue_1.createCommentVNode)("v-if", true)], 64
+ , _hoisted_8)) : (0, vue_1.createCommentVNode)("v-if", true)], 64
/* STABLE_FRAGMENT */
);
}), 128
@@ -22385,388 +22820,325 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "title mb-6 flex"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Delete element", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_3 = {
"class": "rounded-lg bg-rose p-4"
-}, " Are you sure you want to delete this element? ", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+};
+var _hoisted_4 = {
"class": "flex justify-end"
};
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "inline-flex"
};
-var _hoisted_7 = ["id"];
-var _hoisted_8 = {
+var _hoisted_6 = ["id"];
+var _hoisted_7 = {
"class": "mb-4 flex"
};
-var _hoisted_9 = {
+var _hoisted_8 = {
"class": "title flex grow"
};
-var _hoisted_10 = {
+var _hoisted_9 = {
"class": "title text-sm font-bold"
};
-var _hoisted_11 = {
+var _hoisted_10 = {
"class": "icons flex items-center"
};
-var _hoisted_12 = {
+var _hoisted_11 = {
key: 1,
"class": "mr-2.5 flex gap-2.5"
};
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
"class": "divider mb-4 h-px w-full bg-n-20"
}, null, -1
/* HOISTED */
);
-var _hoisted_14 = {
+var _hoisted_13 = {
"class": "default_aid_type-content"
};
-var _hoisted_15 = {
+var _hoisted_14 = {
"class": "date-type mb-2 text-sm font-bold"
};
-var _hoisted_16 = {
+var _hoisted_15 = {
key: 0
};
-var _hoisted_17 = {
+var _hoisted_16 = {
key: 1,
"class": "italic"
};
-var _hoisted_18 = {
+var _hoisted_17 = {
key: 0,
"class": "text-sm"
};
-var _hoisted_19 = {
+var _hoisted_18 = {
key: 0
};
-var _hoisted_20 = {
+var _hoisted_19 = {
key: 1,
"class": "italic"
};
-var _hoisted_21 = {
+var _hoisted_20 = {
key: 1,
"class": "text-sm"
};
-var _hoisted_22 = {
+var _hoisted_21 = {
key: 0
};
-var _hoisted_23 = {
+var _hoisted_22 = {
key: 1,
"class": "italic"
};
-var _hoisted_24 = {
+var _hoisted_23 = {
key: 2,
"class": "text-sm"
};
-var _hoisted_25 = {
+var _hoisted_24 = {
key: 0
};
-var _hoisted_26 = {
+var _hoisted_25 = {
key: 1,
"class": "italic"
};
-var _hoisted_27 = {
+var _hoisted_26 = {
key: 3,
"class": "max-w-[887px] text-sm"
};
-var _hoisted_28 = {
+var _hoisted_27 = {
key: 0
};
-var _hoisted_29 = {
+var _hoisted_28 = {
key: 1,
"class": "italic"
};
-var _hoisted_30 = {
+var _hoisted_29 = {
"class": "category"
};
-
-var _hoisted_31 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Vocabulary - ", -1
-/* HOISTED */
-);
-
-var _hoisted_32 = {
+var _hoisted_30 = {
key: 0
};
-var _hoisted_33 = {
+var _hoisted_31 = {
key: 1,
"class": "italic"
};
-var _hoisted_34 = {
+var _hoisted_32 = {
key: 0,
"class": "text-sm"
};
-var _hoisted_35 = {
+var _hoisted_33 = {
key: 0,
"class": "flex space-x-1"
};
-var _hoisted_36 = {
+var _hoisted_34 = {
key: 1,
"class": "italic"
};
-var _hoisted_37 = {
+var _hoisted_35 = {
key: 1,
"class": "text-sm"
};
-var _hoisted_38 = {
+var _hoisted_36 = {
key: 0
};
-var _hoisted_39 = {
+var _hoisted_37 = {
key: 1,
"class": "italic"
};
-var _hoisted_40 = {
+var _hoisted_38 = {
key: 2
};
-var _hoisted_41 = {
+var _hoisted_39 = {
key: 3,
"class": "italic"
};
-var _hoisted_42 = {
+var _hoisted_40 = {
"class": "multiline"
};
-
-var _hoisted_43 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_44 = {
+var _hoisted_41 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_45 = {
+var _hoisted_42 = {
key: 0,
"class": "language top"
};
-var _hoisted_46 = {
+var _hoisted_43 = {
"class": "description"
};
-var _hoisted_47 = {
+var _hoisted_44 = {
key: 1,
"class": "italic"
};
-var _hoisted_48 = {
+var _hoisted_45 = {
"class": "category"
};
-var _hoisted_49 = {
+var _hoisted_46 = {
key: 0
};
-var _hoisted_50 = {
+var _hoisted_47 = {
key: 1,
"class": "italic"
};
-var _hoisted_51 = {
+var _hoisted_48 = {
"class": "text-sm"
};
-var _hoisted_52 = {
+var _hoisted_49 = {
key: 0,
"class": "value"
};
-var _hoisted_53 = {
+var _hoisted_50 = {
key: 0
};
-var _hoisted_54 = {
+var _hoisted_51 = {
key: 1,
"class": "italic"
};
-var _hoisted_55 = {
+var _hoisted_52 = {
"class": "ml-5"
};
-
-var _hoisted_56 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period Start", -1
-/* HOISTED */
-);
-
-var _hoisted_57 = {
+var _hoisted_53 = {
key: 0
};
-var _hoisted_58 = {
+var _hoisted_54 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_59 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period end", -1
-/* HOISTED */
-);
-
-var _hoisted_60 = {
+var _hoisted_55 = {
key: 0
};
-var _hoisted_61 = {
+var _hoisted_56 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_62 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Status", -1
-/* HOISTED */
-);
-
-var _hoisted_63 = {
+var _hoisted_57 = {
key: 0
};
-var _hoisted_64 = {
+var _hoisted_58 = {
key: 1,
"class": "italic"
};
-var _hoisted_65 = {
+var _hoisted_59 = {
key: 0,
"class": "max-w-[887px] text-sm"
};
-var _hoisted_66 = ["href"];
-var _hoisted_67 = {
+var _hoisted_60 = ["href"];
+var _hoisted_61 = {
key: 1,
"class": "italic"
};
-var _hoisted_68 = {
+var _hoisted_62 = {
"class": "ml-5"
};
-
-var _hoisted_69 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Language", -1
-/* HOISTED */
-);
-
-var _hoisted_70 = {
+var _hoisted_63 = {
key: 0
};
-var _hoisted_71 = {
+var _hoisted_64 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_72 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Date", -1
-/* HOISTED */
-);
-
-var _hoisted_73 = {
+var _hoisted_65 = {
key: 0
};
-var _hoisted_74 = {
+var _hoisted_66 = {
key: 1,
"class": "italic"
};
-var _hoisted_75 = {
+var _hoisted_67 = {
"class": "multiline"
};
-
-var _hoisted_76 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Title", -1
-/* HOISTED */
-);
-
-var _hoisted_77 = {
+var _hoisted_68 = {
key: 0,
"class": "language"
};
-var _hoisted_78 = {
+var _hoisted_69 = {
key: 1,
"class": "flex flex-col"
};
-var _hoisted_79 = {
+var _hoisted_70 = {
key: 2,
"class": "italic"
};
-
-var _hoisted_80 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Category", -1
-/* HOISTED */
-);
-
-var _hoisted_81 = {
+var _hoisted_71 = {
key: 0
};
-var _hoisted_82 = {
+var _hoisted_72 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_83 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Format", -1
-/* HOISTED */
-);
-
-var _hoisted_84 = {
+var _hoisted_73 = {
key: 0
};
-var _hoisted_85 = {
+var _hoisted_74 = {
key: 1,
"class": "italic"
};
-var _hoisted_86 = {
+var _hoisted_75 = {
"class": "multiline"
};
-
-var _hoisted_87 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_88 = {
+var _hoisted_76 = {
key: 0,
"class": "flex flex-col"
};
-var _hoisted_89 = {
+var _hoisted_77 = {
key: 0,
"class": "language"
};
-var _hoisted_90 = {
+var _hoisted_78 = {
key: 1,
"class": "italic"
};
-var _hoisted_91 = {
+var _hoisted_79 = {
"class": "content text-sm"
};
-var _hoisted_92 = {
+var _hoisted_80 = {
key: 0
};
-var _hoisted_93 = {
+var _hoisted_81 = {
key: 1,
"class": "italic"
};
-var _hoisted_94 = {
+var _hoisted_82 = {
key: 0
};
-var _hoisted_95 = {
+var _hoisted_83 = {
key: 1,
"class": "italic"
};
-var _hoisted_96 = {
+var _hoisted_84 = {
key: 0
};
-var _hoisted_97 = {
+var _hoisted_85 = {
key: 1,
"class": "italic"
};
-var _hoisted_98 = {
+var _hoisted_86 = {
key: 0
};
-var _hoisted_99 = {
+var _hoisted_87 = {
key: 1,
"class": "italic"
};
-var _hoisted_100 = {
+var _hoisted_88 = {
key: 0
};
-var _hoisted_101 = {
+var _hoisted_89 = {
key: 1,
"class": "italic"
};
-var _hoisted_102 = {
+var _hoisted_90 = {
key: 0
};
-var _hoisted_103 = {
+var _hoisted_91 = {
key: 1,
"class": "italic"
};
-var _hoisted_104 = {
+var _hoisted_92 = {
key: 0
};
-var _hoisted_105 = {
+var _hoisted_93 = {
key: 1,
"class": "italic"
};
-var _hoisted_106 = {
+var _hoisted_94 = {
key: 7
};
@@ -22782,21 +23154,29 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 mt-0.5 text-lg text-crimson-40",
icon: "delete"
- }), _hoisted_3]), _hoisted_4]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)($setup["BtnComponent"], {
+ }), (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.translation.button_lang.delete_something.replace(':something', $setup.translation.common_lang.element)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, (0, vue_1.toDisplayString)($setup.translation.button_lang.delete_confirmation.replace(':something', $setup.translation.common_lang.element)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "bg-white px-6 uppercase",
- text: "Go Back",
+ text: $setup.translation.button_lang.go_back,
type: "",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.deleteValue = false;
})
- }), (0, vue_1.createVNode)($setup["BtnComponent"], {
+ }, null, 8
+ /* PROPS */
+ , ["text"]), (0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "space",
- text: "Delete",
+ text: $setup.translation.button_lang["delete"],
type: "primary",
onClick: _cache[1] || (_cache[1] = function ($event) {
return $setup.deleteElement($props.activityId, $props.title);
})
- })])])];
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])];
}),
_: 1
/* STABLE */
@@ -22808,7 +23188,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createElementVNode)("div", {
id: $props.title,
"class": "rounded-lg bg-white p-4"
- }, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("div", _hoisted_9, [$props.title === 'reporting_org' || $props.title === 'default_tied_status' || $props.title === 'crs_add' || $props.title === 'fss' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, [$props.title === 'reporting_org' || $props.title === 'default_tied_status' || $props.title === 'crs_add' || $props.title === 'fss' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_svg_vue, {
key: 0,
"class": "elements-svg",
icon: "activity-elements/building"
@@ -22822,44 +23202,46 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "elements-svg"
}, null, 8
/* PROPS */
- , ["icon"])), (0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)($props.title.toString().replace(/_/g, '-')), 1
+ , ["icon"])), (0, vue_1.createElementVNode)("div", _hoisted_9, (0, vue_1.toDisplayString)($props.title.toString().replace(/_/g, '-')), 1
/* TEXT */
), (0, vue_1.createVNode)($setup["Status"], {
data: $props.completed
}, null, 8
/* PROPS */
- , ["data"])]), (0, vue_1.createElementVNode)("div", _hoisted_11, [$props.title == 'transactions' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ , ["data"])]), (0, vue_1.createElementVNode)("div", _hoisted_10, [$props.title == 'transactions' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createVNode)($setup["Btn"], {
- text: "Add Transaction",
+ text: $setup.translation.button_lang.add_something.replace(':something', $setup.translation.common_lang.transaction),
icon: "add",
link: "/activity/".concat($props.activityId, "/transaction/create"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)($setup["Btn"], {
- text: "Show full transaction list",
+ , ["text", "link"]), (0, vue_1.createVNode)($setup["Btn"], {
+ text: $setup.translation.button_lang.show_something.replace(':something', $setup.translation.common_lang.full_transaction),
icon: "",
design: "bgText",
link: "/activity/".concat($props.activityId, "/transaction"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"])], 64
+ , ["text", "link"])], 64
/* STABLE_FRAGMENT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_12, [(0, vue_1.createVNode)($setup["Btn"], {
- text: "Edit",
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, [(0, vue_1.createVNode)($setup["Btn"], {
+ text: $setup.translation.button_lang.edit,
link: "/activity/".concat($props.activityId, "/").concat($props.title),
"class": "edit-button"
}, null, 8
/* PROPS */
- , ["link"]), $props.title !== 'title' && $props.title !== 'iati_identifier' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Btn"], {
+ , ["text", "link"]), $props.title !== 'title' && $props.title !== 'iati_identifier' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Btn"], {
key: 0,
- text: "Delete",
+ text: $setup.translation.button_lang["delete"],
"class": "delete-button",
icon: "delete",
onClick: $setup.deleteActivityElement
- })) : (0, vue_1.createCommentVNode)("v-if", true)])), $setup.activityCoreElements().includes($props.title) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true)])), $setup.activityCoreElements().includes($props.title) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_svg_vue, {
key: 2,
"class": "mr-1.5",
icon: "core"
@@ -22871,7 +23253,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "text-n-40"
}, null, 8
/* PROPS */
- , ["name", "hover-text"])) : (0, vue_1.createCommentVNode)("v-if", true)])]), _hoisted_13, $props.title === 'iati_identifier' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["IatiIdentifier"], {
+ , ["name", "hover-text"])) : (0, vue_1.createCommentVNode)("v-if", true)])]), _hoisted_12, $props.title === 'iati_identifier' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["IatiIdentifier"], {
key: 0,
data: $props.data.content.iati_identifier_text
}, null, 8
@@ -22949,17 +23331,25 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["default_aid_type", {
'mb-4': key !== $props.data.content.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [post.default_aid_type_vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, (0, vue_1.toDisplayString)($props.types.aidTypeVocabulary[post.default_aid_type_vocabulary]), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [post.default_aid_type_vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)($props.types.aidTypeVocabulary[post.default_aid_type_vocabulary]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, "Vocabulary Missing"))]), post.default_aid_type_vocabulary == '2' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_17, [post.earmarking_category ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, (0, vue_1.toDisplayString)($props.types.earmarkingCategory[post.earmarking_category]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing.something.replace(':something', $setup.translation.common_lang.code)), 1
+ /* TEXT */
+ ))])) : post.default_aid_type_vocabulary == '3' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_20, [post.earmarking_modality ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_21, (0, vue_1.toDisplayString)($props.types.earmarkingModality[post.earmarking_modality]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, "Vocabulary Missing"))]), post.default_aid_type_vocabulary == '2' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_18, [post.earmarking_category ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, (0, vue_1.toDisplayString)($props.types.earmarkingCategory[post.earmarking_category]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_22, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing.something.replace(':something', $setup.translation.common_lang.code)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, "Code Missing"))])) : post.default_aid_type_vocabulary == '3' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_21, [post.earmarking_modality ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_22, (0, vue_1.toDisplayString)($props.types.earmarkingModality[post.earmarking_modality]), 1
+ ))])) : post.default_aid_type_vocabulary == '4' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_23, [post.cash_and_voucher_modalities ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_24, (0, vue_1.toDisplayString)($props.types.cashandVoucherModalities[post.cash_and_voucher_modalities]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_23, "Code Missing"))])) : post.default_aid_type_vocabulary == '4' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_24, [post.cash_and_voucher_modalities ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, (0, vue_1.toDisplayString)($props.types.cashandVoucherModalities[post.cash_and_voucher_modalities]), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing.something.replace(':something', $setup.translation.common_lang.code)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_26, "Code Missing"))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_27, [post.default_aid_type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_28, (0, vue_1.toDisplayString)($props.types.aidType[post.default_aid_type]), 1
+ ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_26, [post.default_aid_type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_27, (0, vue_1.toDisplayString)($props.types.aidType[post.default_aid_type]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_29, "Code Missing"))]))])], 2
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_28, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing.something.replace(':something', $setup.translation.common_lang.code)), 1
+ /* TEXT */
+ ))]))])], 2
/* CLASS */
);
}), 128
@@ -22968,23 +23358,31 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : $props.title === 'country_budget_items' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 15
- }, [(0, vue_1.createCommentVNode)(" Country Budget Items "), (0, vue_1.createElementVNode)("div", _hoisted_30, [_hoisted_31, (0, vue_1.createElementVNode)("span", null, [$props.data.content.country_budget_vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_32, (0, vue_1.toDisplayString)($setup.props.types.budgetIdentifierVocabulary[$props.data.content.country_budget_vocabulary]), 1
+ }, [(0, vue_1.createCommentVNode)(" Country Budget Items "), (0, vue_1.createElementVNode)("div", _hoisted_29, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.vocabulary) + " - ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", null, [$props.data.content.country_budget_vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_30, (0, vue_1.toDisplayString)($setup.props.types.budgetIdentifierVocabulary[$props.data.content.country_budget_vocabulary]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_33, "Missing"))])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($props.data.content.budget_item, function (post, key) {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_31, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($props.data.content.budget_item, function (post, key) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: key,
"class": (0, vue_1.normalizeClass)(["elements-detail", {
'mb-4': key !== $props.data.content.budget_item.length - 1
}])
- }, [$props.data.content.country_budget_vocabulary === '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_34, [post.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_35, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($props.types.budgetIdentifier[post.code]), 1
+ }, [$props.data.content.country_budget_vocabulary === '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_32, [post.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_33, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($props.types.budgetIdentifier[post.code]), 1
/* TEXT */
), (0, vue_1.createElementVNode)("span", null, "(" + (0, vue_1.toDisplayString)($setup.roundFloat(post.percentage)) + "%)", 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_36, "Missing"))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_37, [post.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_38, (0, vue_1.toDisplayString)($props.types.budgetIdentifier[post.code]), 1
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_34, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_35, [post.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_36, (0, vue_1.toDisplayString)($props.types.budgetIdentifier[post.code]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_39, "Missing")), post.percentage ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_40, " (" + (0, vue_1.toDisplayString)($setup.roundFloat(post.percentage)) + " %)", 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_37, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_41, "(Percentage Missing)"))])), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.description, function (item, i) {
+ )), post.percentage ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_38, " (" + (0, vue_1.toDisplayString)($setup.roundFloat(post.percentage)) + " %)", 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_39, "(Percentage Missing)"))])), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.description, function (item, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: i
}, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(item.narrative, function (narrative, k) {
@@ -22993,11 +23391,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["elements-detail ml-5", {
'mb-0': k !== item.narrative - 1
}])
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", _hoisted_42, [_hoisted_43, (0, vue_1.createElementVNode)("td", null, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_44, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_45, "(Language: " + (0, vue_1.toDisplayString)($props.types.languages[narrative.language]) + ")", 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", _hoisted_40, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_41, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_42, "(" + (0, vue_1.toDisplayString)($setup.translation.common_lang.language) + ": " + (0, vue_1.toDisplayString)($props.types.languages[narrative.language]) + ")", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_46, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_43, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_47, "Missing"))])])])], 2
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_44, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])], 2
/* CLASS */
);
}), 128
@@ -23030,34 +23432,38 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["elements-detail", {
'mb-4': key !== $props.data.content.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_48, [post.budget_type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_49, (0, vue_1.toDisplayString)($props.types.budgetType[post.budget_type]), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_45, [post.budget_type ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_46, (0, vue_1.toDisplayString)($props.types.budgetType[post.budget_type]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_50, "Type Missing"))]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.budget_value, function (item, i) {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_47, "Type Missing"))]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.budget_value, function (item, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)(["elements-detail mb-1", {
'mb-4': i !== post.budget_value.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_51, [item.amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_52, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(Number(item.amount).toLocaleString()), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_48, [item.amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_49, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(Number(item.amount).toLocaleString()), 1
/* TEXT */
), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(item.currency), 1
/* TEXT */
- ), item.value_date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_53, "(Valued at " + (0, vue_1.toDisplayString)($setup.formatDate(item.value_date)) + ")", 1
+ ), item.value_date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_50, "(Valued at " + (0, vue_1.toDisplayString)($setup.formatDate(item.value_date)) + ")", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_54, "Budget Value Missing"))])], 2
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_51, "Budget Value Missing"))])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- )), (0, vue_1.createElementVNode)("div", _hoisted_55, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.period_start, function (item, i) {
+ )), (0, vue_1.createElementVNode)("div", _hoisted_52, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.period_start, function (item, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": (0, vue_1.normalizeClass)({
'mb-4': i !== post.period_start.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_56, item.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_57, (0, vue_1.toDisplayString)($setup.formatDate(item.date)), 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.period_start), 1
+ /* TEXT */
+ ), item.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_53, (0, vue_1.toDisplayString)($setup.formatDate(item.date)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_58, "Missing"))])])], 2
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_54, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])], 2
/* CLASS */
);
}), 128
@@ -23068,16 +23474,24 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4': i !== post.period_end.length - 1
})
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_59, item.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_60, (0, vue_1.toDisplayString)($setup.formatDate(item.date)), 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.period_end), 1
+ /* TEXT */
+ ), item.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_55, (0, vue_1.toDisplayString)($setup.formatDate(item.date)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_61, "Missing"))])])], 2
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_56, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- )), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_62, (0, vue_1.createElementVNode)("td", null, [post.budget_status ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_63, (0, vue_1.toDisplayString)($props.types.budgetStatus[post.budget_status]), 1
+ )), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.period), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [post.budget_status ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_57, (0, vue_1.toDisplayString)($props.types.budgetStatus[post.budget_status]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_64, "Missing"))])])])])], 2
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_58, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])])], 2
/* CLASS */
);
}), 128
@@ -23100,25 +23514,33 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["elements-detail", {
'mb-4': key !== $props.data.content.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", null, [post.url ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_65, [(0, vue_1.createElementVNode)("a", {
+ }, [(0, vue_1.createElementVNode)("div", null, [post.url ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_59, [(0, vue_1.createElementVNode)("a", {
href: post.url,
target: "_blank"
}, (0, vue_1.toDisplayString)(post.url), 9
/* TEXT, PROPS */
- , _hoisted_66)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_67, "URL Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_68, [(0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.language, function (language, i) {
+ , _hoisted_60)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_61, "URL Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_62, [(0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.language, function (language, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_69, (0, vue_1.createElementVNode)("td", null, [language.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_70, (0, vue_1.toDisplayString)($props.types.languages[language.code]), 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.language), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [language.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_63, (0, vue_1.toDisplayString)($props.types.languages[language.code]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_64, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_71, "Missing"))])])])]);
+ ))])])])]);
}), 128
/* KEYED_FRAGMENT */
)), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.document_date, function (document_date, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_72, (0, vue_1.createElementVNode)("td", null, [document_date.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_73, (0, vue_1.toDisplayString)($setup.formatDate(document_date.date)), 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.date), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [document_date.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_65, (0, vue_1.toDisplayString)($setup.formatDate(document_date.date)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_74, "Missing"))])])])]);
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_66, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])]);
}), 128
/* KEYED_FRAGMENT */
))]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.title, function (item, i) {
@@ -23128,11 +23550,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: j,
"class": "mb-1 flex items-center space-x-1"
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", _hoisted_75, [_hoisted_76, (0, vue_1.createElementVNode)("td", null, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_77, " (" + (0, vue_1.toDisplayString)($props.types.languages[narrative.language]) + ") ", 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", _hoisted_67, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.title), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_68, " (" + (0, vue_1.toDisplayString)($props.types.languages[narrative.language]) + ") ", 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_69, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_78, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_70, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_79, "Missing"))])])])]);
+ ))])])])]);
}), 128
/* KEYED_FRAGMENT */
))]);
@@ -23141,24 +23567,36 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
)), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.category, function (category, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_80, (0, vue_1.createElementVNode)("td", null, [category.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_81, (0, vue_1.toDisplayString)($props.types.documentCategory[category.code]), 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.category), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_82, "Missing"))])])])]);
+ ), (0, vue_1.createElementVNode)("td", null, [category.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_71, (0, vue_1.toDisplayString)($props.types.documentCategory[category.code]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_72, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])]);
}), 128
/* KEYED_FRAGMENT */
- )), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_83, post.format ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_84, (0, vue_1.toDisplayString)(post.format), 1
+ )), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.category), 1
+ /* TEXT */
+ ), post.format ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_73, (0, vue_1.toDisplayString)(post.format), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_85, "Missing"))])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.description, function (description, i) {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_74, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.description, function (description, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i
}, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(description.narrative, function (narrative, j) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: j
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", _hoisted_86, [_hoisted_87, (0, vue_1.createElementVNode)("td", null, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_88, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_89, "(Language: " + (0, vue_1.toDisplayString)($props.types.languages[narrative.language]) + ")", 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", _hoisted_75, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.translation.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_76, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_77, "(" + (0, vue_1.toDisplayString)($setup.translation.common_lang.language) + ": " + (0, vue_1.toDisplayString)($props.types.languages[narrative.language]) + ")", 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_90, "Missing"))])])])]);
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_78, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])]);
}), 128
/* KEYED_FRAGMENT */
))]);
@@ -23193,53 +23631,69 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* PROPS */
, ["data"])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 24
- }, [(0, vue_1.createCommentVNode)(" Activity Status "), (0, vue_1.createElementVNode)("div", _hoisted_91, [$props.title === 'activity_status' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ }, [(0, vue_1.createCommentVNode)(" Activity Status "), (0, vue_1.createElementVNode)("div", _hoisted_79, [$props.title === 'activity_status' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
- }, [$props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_92, (0, vue_1.toDisplayString)($setup.props.types.activityStatus[$props.data.content]), 1
+ }, [$props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_80, (0, vue_1.toDisplayString)($setup.props.types.activityStatus[$props.data.content]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_81, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_93, "Missing"))], 64
+ ))], 64
/* STABLE_FRAGMENT */
)) : $props.title === 'activity_scope' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [(0, vue_1.createCommentVNode)(" Activity Scope "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_94, (0, vue_1.toDisplayString)($setup.props.types.activityScope[$props.data.content]), 1
+ }, [(0, vue_1.createCommentVNode)(" Activity Scope "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_82, (0, vue_1.toDisplayString)($setup.props.types.activityScope[$props.data.content]), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_83, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_95, "Missing"))], 64
+ ))], 64
/* STABLE_FRAGMENT */
)) : $props.title === 'collaboration_type' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 2
- }, [(0, vue_1.createCommentVNode)(" Collaboration Type "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_96, (0, vue_1.toDisplayString)($setup.props.types.collaborationType[$props.data.content]), 1
+ }, [(0, vue_1.createCommentVNode)(" Collaboration Type "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_84, (0, vue_1.toDisplayString)($setup.props.types.collaborationType[$props.data.content]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_97, "Missing"))], 64
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_85, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))], 64
/* STABLE_FRAGMENT */
)) : $props.title === 'default_flow_type' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 3
- }, [(0, vue_1.createCommentVNode)(" Default Flow Type "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_98, (0, vue_1.toDisplayString)($setup.props.types.flowType[$props.data.content]), 1
+ }, [(0, vue_1.createCommentVNode)(" Default Flow Type "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_86, (0, vue_1.toDisplayString)($setup.props.types.flowType[$props.data.content]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_99, "Missing"))], 64
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_87, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))], 64
/* STABLE_FRAGMENT */
)) : $props.title === 'default_tied_status' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 4
- }, [(0, vue_1.createCommentVNode)(" Default Tied Status "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_100, (0, vue_1.toDisplayString)($setup.props.types.tiedStatus[$props.data.content]), 1
+ }, [(0, vue_1.createCommentVNode)(" Default Tied Status "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_88, (0, vue_1.toDisplayString)($setup.props.types.tiedStatus[$props.data.content]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_101, "Missing"))], 64
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_89, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))], 64
/* STABLE_FRAGMENT */
)) : $props.title === 'capital_spend' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 5
- }, [(0, vue_1.createCommentVNode)(" Capital Spend "), $props.data.content.toString() ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_102, (0, vue_1.toDisplayString)($props.data.content.toString()) + "%", 1
+ }, [(0, vue_1.createCommentVNode)(" Capital Spend "), $props.data.content.toString() ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_90, (0, vue_1.toDisplayString)($props.data.content.toString()) + "%", 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_103, "Missing"))], 64
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_91, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))], 64
/* STABLE_FRAGMENT */
)) : $props.title === 'default_finance_type' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 6
- }, [(0, vue_1.createCommentVNode)(" Default Finance Type "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_104, (0, vue_1.toDisplayString)($setup.props.types.financeType[$props.data.content]), 1
+ }, [(0, vue_1.createCommentVNode)(" Default Finance Type "), $props.data.content ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_92, (0, vue_1.toDisplayString)($setup.props.types.financeType[$props.data.content]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_105, "Missing"))], 64
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_93, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))], 64
/* STABLE_FRAGMENT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_106, "No content"))])], 64
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_94, (0, vue_1.toDisplayString)($setup.translation.common_lang.missing.no_content), 1
+ /* TEXT */
+ ))])], 64
/* STABLE_FRAGMENT */
))], 8
/* PROPS */
- , _hoisted_7)], 2
+ , _hoisted_6)], 2
/* CLASS */
)], 64
/* STABLE_FRAGMENT */
@@ -23266,11 +23720,7 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-var _hoisted_1 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Add Activity", -1
-/* HOISTED */
-);
-
-var _hoisted_2 = {
+var _hoisted_1 = {
key: 0,
"class": "button__dropdown absolute right-0 top-full z-10 w-56 bg-white p-2 text-left shadow-dropdown"
};
@@ -23295,19 +23745,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "plus"
- }), _hoisted_1, _ctx.state.isVisible ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_2, [(0, vue_1.createElementVNode)("ul", null, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.button_lang.add_activity), 1
+ /* TEXT */
+ ), _ctx.state.isVisible ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("ul", null, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
href: "#",
"class": (0, vue_1.normalizeClass)(_ctx.liClass),
onClick: _cache[0] || (_cache[0] = function ($event) {
return _ctx.modalValue = true;
})
- }, "Add activity manually", 2
- /* CLASS */
+ }, (0, vue_1.toDisplayString)(_ctx.language.common_lang.add_activity_manually), 3
+ /* TEXT, CLASS */
)]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
href: "/import",
"class": (0, vue_1.normalizeClass)(_ctx.liClass)
- }, "Import activities from .csv/.xml", 2
- /* CLASS */
+ }, (0, vue_1.toDisplayString)(_ctx.language.common_lang.import_activities), 3
+ /* TEXT, CLASS */
)])])])) : (0, vue_1.createCommentVNode)("v-if", true)], 512
/* NEED_PATCH */
), (0, vue_1.createVNode)(_component_CreateModal, {
@@ -23342,34 +23794,23 @@ var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bund
var _hoisted_1 = {
"class": "relative flex flex-row-reverse gap-2"
};
-
-var _hoisted_2 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Download All ");
-
-var _hoisted_3 = {
+var _hoisted_2 = {
key: 2,
"class": "button__dropdown absolute left-0 top-[calc(100%_+_8px)] z-10 w-56 bg-white p-2 text-left shadow-dropdown"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("p", {
+var _hoisted_3 = {
"class": "text-sm font-bold"
-}, " The XML file is in wrong format. Would you like to download it anyway? ", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+};
+var _hoisted_4 = {
"class": "mb-4 h-40 overflow-y-auto rounded-lg bg-rose p-4 text-sm"
};
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "mb-2 flex justify-between"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_6 = {
"class": "text-xs font-bold"
-}, "Error message", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = {
+};
+var _hoisted_7 = {
"class": "flex justify-end space-x-4"
};
@@ -23398,7 +23839,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "download-file"
- }), _hoisted_2], 512
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.button_lang.download_all), 1
+ /* TEXT */
+ )], 512
/* NEED_PATCH */
)) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.store.state.selectedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("button", {
key: 1,
@@ -23418,22 +23861,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
icon: "download-file"
})], 512
/* NEED_PATCH */
- )) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.state.isVisible ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_3, [(0, vue_1.createElementVNode)("ul", null, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
+ )) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.state.isVisible ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_2, [(0, vue_1.createElementVNode)("ul", null, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
href: "#",
"class": (0, vue_1.normalizeClass)(_ctx.liClass),
onClick: _cache[2] || (_cache[2] = function ($event) {
return _ctx.downloadCsv(_ctx.store.state.selectedActivities.length);
})
- }, "Download CSV", 2
- /* CLASS */
+ }, (0, vue_1.toDisplayString)(_ctx.language.button_lang.download_something.replace(':something', _ctx.language.common_lang.csv)), 3
+ /* TEXT, CLASS */
)]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", {
href: "#",
"class": (0, vue_1.normalizeClass)(_ctx.liClass),
onClick: _cache[3] || (_cache[3] = function ($event) {
return _ctx.downloadXml(_ctx.store.state.selectedActivities.length);
})
- }, "Download XML", 2
- /* CLASS */
+ }, (0, vue_1.toDisplayString)(_ctx.language.button_lang.download_something.replace(':something', _ctx.language.common_lang.xml)), 3
+ /* TEXT, CLASS */
)])])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)(_component_Modal, {
"modal-active": _ctx.showErrorpopup,
width: "583",
@@ -23442,24 +23885,34 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, {
"default": (0, vue_1.withCtx)(function () {
- return [_hoisted_4, (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [_hoisted_7, (0, vue_1.createElementVNode)("a", {
+ return [(0, vue_1.createElementVNode)("p", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.button_lang.download_xml_confirmation), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.language.common_lang.error_message), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", {
"class": "top-1 right-3 cursor-pointer text-xs font-bold",
onClick: _cache[4] || (_cache[4] = function ($event) {
return _ctx.downloadError('error', _ctx.message);
})
- }, "Download error message")]), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.message), 1
+ }, (0, vue_1.toDisplayString)(_ctx.language.button_lang.download_something.replace(':something', _ctx.language.common_lang.error_message)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("button", {
+ )]), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.message), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("button", {
"class": "text-xs font-bold capitalize text-bluecoral",
onClick: _cache[5] || (_cache[5] = function () {
_ctx.showErrorpopup = false;
})
- }, " Go back "), (0, vue_1.createElementVNode)("button", {
+ }, (0, vue_1.toDisplayString)(_ctx.language.button_lang.go_back), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", {
"class": "rounded bg-bluecoral px-4 py-3 font-bold text-white",
onClick: _cache[6] || (_cache[6] = function ($event) {
return _ctx.downloadErrorxml(_ctx.store.state.selectedActivities.length);
})
- }, " Download Anyway ")])];
+ }, (0, vue_1.toDisplayString)(_ctx.language.button_lang.download_something.replace(':something', _ctx.language.common_lang.anyway)), 1
+ /* TEXT */
+ )])];
}),
_: 1
/* STABLE */
@@ -23505,70 +23958,66 @@ var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bund
var _hoisted_1 = {
"class": "p-6 text-xs leading-relaxed bg-white rounded-lg text-n-40"
};
-
-var _hoisted_2 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_2 = {
"class": "mb-3"
-}, "Note", -1
-/* HOISTED */
-);
-
+};
var _hoisted_3 = {
"class": "flex justify-between mb-3"
};
var _hoisted_4 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Core Elements", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "flex justify-between mb-3"
};
-var _hoisted_7 = {
+var _hoisted_6 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Mandatory sub-elements", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = {
+var _hoisted_7 = {
"class": "flex justify-between mb-3"
};
-var _hoisted_10 = {
+var _hoisted_8 = {
"class": "flex items-center space-x-1"
};
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Recommended sub-elements", -1
-/* HOISTED */
-);
-
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
var _component_HoverText = (0, vue_1.resolveComponent)("HoverText");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [_hoisted_2, (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createVNode)(_component_svg_vue, {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.language.common_lang.note), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-sm",
icon: "core"
- }), _hoisted_5]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.core_elements), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: ""
- })]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-sm",
icon: "star"
- }), _hoisted_8]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.mandatory_sub_elements), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: ""
- })]), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-sm",
icon: "moon"
- }), _hoisted_11]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.recommended_sub_elements), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: ""
- })])]);
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])])]);
}
exports.render = render;
@@ -23601,18 +24050,12 @@ var _hoisted_2 = {
"background": "linear-gradient(180deg, #e3ecfa 0%, #dae7ff 100%)"
}
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("h5", {
+var _hoisted_3 = {
"class": "mb-[5px] text-heading-5 font-bold leading-9"
-}, " No activity has been added yet. ", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_4 = {
"class": "mb-[17px] text-caption-c1 leading-5 text-n-50"
-}, " Click on the button below to add a new activity ", -1
-/* HOISTED */
-);
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -23622,7 +24065,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "folder",
"class": "text-[94px]"
- })]), _hoisted_3, _hoisted_4, (0, vue_1.createVNode)(_component_ActivityButton)]);
+ })]), (0, vue_1.createElementVNode)("h5", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.activity.no_activity_has_been_added_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.activity.click_on_button_to_add_new_label), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_ActivityButton)]);
}
exports.render = render;
@@ -23654,82 +24101,78 @@ var _hoisted_2 = {
var _hoisted_3 = {
"class": "title shrink-0 grow-0"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_4 = {
"class": "mb-2 text-caption-c1 text-n-40 xl:mb-4"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("nav", {
+};
+var _hoisted_5 = {
"aria-label": "breadcrumbs",
"class": "breadcrumb"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("p", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_6 = {
"class": "last font-bold"
-}, "Your Activities")])])], -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+};
+var _hoisted_7 = {
"class": "inline-flex flex-col space-y-2 md:flex-row md:items-center"
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("h4", {
+var _hoisted_8 = {
"class": "mr-4 text-3xl font-bold xl:text-heading-4"
-}, " Your Activities ", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = {
+};
+var _hoisted_9 = {
"class": "tooltip-btn"
};
-var _hoisted_8 = {
+var _hoisted_10 = {
"class": ""
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "What is an activity?", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_11 = {
"class": "tooltip-btn__content z-[1]"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_12 = {
"class": "content"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_13 = {
"class": "mb-1.5 text-caption-c1 font-bold text-bluecoral"
-}, " What is an activity? "), /*#__PURE__*/(0, vue_1.createElementVNode)("p", null, [/*#__PURE__*/(0, vue_1.createTextVNode)(" You need to provide data about your organisation's development and humanitarian 'activities'. The unit of work described by an 'activity' is determined by the organisation that is publishing the data. For example, an activity could be a donor government providing US$ 50 million to a recipient country's government to implement basic education over 5 years. Or an activity could be an NGO spending US$ 500,000 to deliver clean drinking water to 1000 households over 6 months. "), /*#__PURE__*/(0, vue_1.createElementVNode)("br"), /*#__PURE__*/(0, vue_1.createTextVNode)(" Therefore your organisation will need to determine how it will divide its work internally into activities. Read the "), /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- target: "_blank",
- rel: "noopener noreferrer",
- href: "/publishing-checklist",
- "class": "text-bluecoral"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Publishing Checklist")]), /*#__PURE__*/(0, vue_1.createTextVNode)(" for more information. ")])])], -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+};
+var _hoisted_14 = ["innerHTML"];
+var _hoisted_15 = {
"class": "actions relative inline-flex grow flex-col items-end justify-end space-y-2 lg:flex-row"
};
-var _hoisted_12 = {
+var _hoisted_16 = {
"class": "inline-flex justify-end"
};
-var _hoisted_13 = {
+var _hoisted_17 = {
"class": "inline-flex shrink-0 flex-col items-end justify-end gap-3 md:flex-row"
};
-var _hoisted_14 = {
+var _hoisted_18 = {
"class": "flex flex-col gap-2 md:flex-row"
};
-var _hoisted_15 = {
+var _hoisted_19 = {
"class": "flex gap-2"
};
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createTextVNode)();
+var _hoisted_20 = /*#__PURE__*/(0, vue_1.createTextVNode)();
-var _hoisted_17 = {
+var _hoisted_21 = {
"class": "flex gap-2"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [_hoisted_4, (0, vue_1.createElementVNode)("div", _hoisted_5, [_hoisted_6, (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("button", _hoisted_8, [(0, vue_1.createVNode)(_component_svg_vue, {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("nav", _hoisted_5, [(0, vue_1.createElementVNode)("p", null, [(0, vue_1.createElementVNode)("span", _hoisted_6, (0, vue_1.toDisplayString)($setup.language.activities_lang.your_activities), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("h4", _hoisted_8, (0, vue_1.toDisplayString)($setup.language.activities_lang.your_activities), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("button", _hoisted_10, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "question-mark"
- }), _hoisted_9]), _hoisted_10])])]), (0, vue_1.createElementVNode)("div", _hoisted_11, [$setup.toastMessage.visibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Toast"], {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.activities_lang.what_is_activity.label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("div", _hoisted_13, (0, vue_1.toDisplayString)($setup.language.activities_lang.what_is_activity.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: $setup.language.activities_lang.what_is_activity.description.one
+ }, null, 8
+ /* PROPS */
+ , _hoisted_14)])])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_15, [$setup.toastMessage.visibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Toast"], {
key: 0,
"class": "whitespace-nowrap lg:mr-3.5",
message: $setup.toastMessage.message,
@@ -23745,13 +24188,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, null, 8
/* PROPS */
- , ["message"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("div", _hoisted_13, [$setup.refreshToastMsg.visibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["RefreshToastMessage"], {
+ , ["message"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, [$setup.refreshToastMsg.visibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["RefreshToastMessage"], {
key: 0,
message: $setup.refreshToastMsg.refreshMessage,
type: $setup.refreshToastMsg.refreshMessageType
}, null, 8
/* PROPS */
- , ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createVNode)($setup["DownloadActivityButton"]), _hoisted_16, (0, vue_1.createVNode)($setup["PublishSelected"])]), (0, vue_1.createElementVNode)("div", _hoisted_17, [$setup.store.state.selectedActivities.length === 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["DeleteButton"], {
+ , ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createVNode)($setup["DownloadActivityButton"]), _hoisted_20, (0, vue_1.createVNode)($setup["PublishSelected"])]), (0, vue_1.createElementVNode)("div", _hoisted_21, [$setup.store.state.selectedActivities.length === 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["DeleteButton"], {
key: 0
})) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)($setup["AddActivityButton"])])])])])])])]);
}
@@ -23838,109 +24281,93 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "bg-n-10"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+var _hoisted_3 = {
id: "title",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Activity Title")], -1
-/* HOISTED */
-);
-
+};
var _hoisted_4 = {
id: "date",
scope: "col"
};
var _hoisted_5 = ["href"];
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Updated On", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+var _hoisted_6 = {
id: "status",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_7 = {
"class": "hidden"
-}, "Status")], -1
-/* HOISTED */
-);
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_8 = {
id: "publish",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
- "class": "hidden"
-}, "Publish")], -1
-/* HOISTED */
-);
-
+};
var _hoisted_9 = {
+ "class": "hidden"
+};
+var _hoisted_10 = {
id: "cb",
scope: "col"
};
-var _hoisted_10 = {
+var _hoisted_11 = {
key: 0
};
-var _hoisted_11 = {
+var _hoisted_12 = {
"class": "title"
};
-var _hoisted_12 = {
+var _hoisted_13 = {
"class": "inline-flex items-start transition duration-500 hover:text-spring-50"
};
-var _hoisted_13 = {
+var _hoisted_14 = {
"class": "ellipsis relative"
};
-var _hoisted_14 = ["href"];
-var _hoisted_15 = {
+var _hoisted_15 = ["href"];
+var _hoisted_16 = {
"class": "w-52"
};
-var _hoisted_16 = {
+var _hoisted_17 = {
"class": "ellipsis__title--hover"
};
-var _hoisted_17 = {
+var _hoisted_18 = {
"class": "text-n-40"
};
-var _hoisted_18 = {
+var _hoisted_19 = {
"class": "mr-1 text-base"
};
-var _hoisted_19 = {
+var _hoisted_20 = {
"class": "text-sm leading-relaxed"
};
-var _hoisted_20 = {
+var _hoisted_21 = {
"class": "flex flex-wrap gap-2"
};
-var _hoisted_21 = {
+var _hoisted_22 = {
"class": "sr-only",
"for": ""
};
-var _hoisted_22 = {
+var _hoisted_23 = {
"class": "checkbox"
};
-var _hoisted_23 = ["value"];
+var _hoisted_24 = ["value"];
-var _hoisted_24 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_25 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
"class": "checkmark"
}, null, -1
/* HOISTED */
);
-var _hoisted_25 = {
+var _hoisted_26 = {
key: 1
};
-
-var _hoisted_26 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", {
+var _hoisted_27 = {
colspan: "5",
"class": "text-center"
-}, "Activities not found", -1
-/* HOISTED */
-);
-
-var _hoisted_27 = [_hoisted_26];
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("thead", null, [(0, vue_1.createElementVNode)("tr", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("th", _hoisted_4, [(0, vue_1.createElementVNode)("a", {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("thead", null, [(0, vue_1.createElementVNode)("tr", _hoisted_2, [(0, vue_1.createElementVNode)("th", _hoisted_3, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.activity_title), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_4, [(0, vue_1.createElementVNode)("a", {
"class": "text-n-50 transition duration-500 hover:text-spring-50",
href: $setup.sortByDateUrl()
}, [(0, vue_1.createElementVNode)("span", {
@@ -23951,47 +24378,53 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* PROPS */
, ["icon"])], 2
/* CLASS */
- ), _hoisted_6], 8
+ ), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.updated_on), 1
+ /* TEXT */
+ )], 8
/* PROPS */
- , _hoisted_5)]), _hoisted_7, _hoisted_8, (0, vue_1.createElementVNode)("th", _hoisted_9, [(0, vue_1.createElementVNode)("span", {
+ , _hoisted_5)]), (0, vue_1.createElementVNode)("th", _hoisted_6, [(0, vue_1.createElementVNode)("span", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.common_lang.status), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_8, [(0, vue_1.createElementVNode)("span", _hoisted_9, (0, vue_1.toDisplayString)($setup.language.common_lang.publish), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_10, [(0, vue_1.createElementVNode)("span", {
"class": "cursor-pointer",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.toggleSelectAll($props.data.data, $setup.selectAllValue);
})
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "checkbox"
- })])])])]), $props.data.total > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tbody", _hoisted_10, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($props.data.data, function (datum) {
+ })])])])]), $props.data.total > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tbody", _hoisted_11, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($props.data.data, function (datum) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
key: datum['id'],
"class": (0, vue_1.normalizeClass)({
'already-published': datum['linked_to_iati'] && datum['status'] === 'draft'
})
- }, [(0, vue_1.createElementVNode)("td", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [datum['linked_to_iati'] && datum['status'] === 'draft' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["PreviouslyPublished"], {
+ }, [(0, vue_1.createElementVNode)("td", _hoisted_12, [(0, vue_1.createElementVNode)("div", _hoisted_13, [datum['linked_to_iati'] && datum['status'] === 'draft' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["PreviouslyPublished"], {
key: 0,
"class": "absolute top-0 left-0"
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("a", {
+ })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("a", {
href: '/activity/' + datum['id'],
"class": "ellipsis overflow-hidden text-n-50"
- }, (0, vue_1.toDisplayString)(datum['default_title_narrative'] && datum['default_title_narrative'] !== '' ? datum['default_title_narrative'] : 'Untitled'), 9
+ }, (0, vue_1.toDisplayString)(datum['default_title_narrative'] && datum['default_title_narrative'] !== '' ? datum['default_title_narrative'] : $setup.language.common_lang.untitled), 9
/* TEXT, PROPS */
- , _hoisted_14), (0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("span", _hoisted_16, (0, vue_1.toDisplayString)(datum['default_title_narrative'] && datum['default_title_narrative'] !== '' ? datum['default_title_narrative'] : 'Untitled'), 1
+ , _hoisted_15), (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("span", _hoisted_17, (0, vue_1.toDisplayString)(datum['default_title_narrative'] && datum['default_title_narrative'] !== '' ? datum['default_title_narrative'] : $setup.language.common_lang.untitled), 1
/* TEXT */
- )])])])]), (0, vue_1.createElementVNode)("td", _hoisted_17, (0, vue_1.toDisplayString)($setup.formatDate(datum.updated_at)), 1
+ )])])])]), (0, vue_1.createElementVNode)("td", _hoisted_18, (0, vue_1.toDisplayString)($setup.formatDate(datum.updated_at)), 1
/* TEXT */
), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("button", {
"class": (0, vue_1.normalizeClass)(["inline-flex items-center transition duration-500 hover:text-spring-50", {
'text-n-40': datum['status'] === 'draft',
'text-spring-50': datum['status'] === 'published'
}])
- }, [(0, vue_1.createElementVNode)("span", _hoisted_18, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_19, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: datum['status'] === 'draft' ? 'document-write' : 'tick'
}, null, 8
/* PROPS */
- , ["icon"])]), (0, vue_1.createElementVNode)("span", _hoisted_19, (0, vue_1.toDisplayString)(datum['status']), 1
+ , ["icon"])]), (0, vue_1.createElementVNode)("span", _hoisted_20, (0, vue_1.toDisplayString)($setup.language.activities_lang.status_labels[datum['status']]), 1
/* TEXT */
)], 2
/* CLASS */
- )]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_20, [datum.linked_to_iati ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["UnPublish"], {
+ )]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_21, [datum.linked_to_iati ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["UnPublish"], {
key: 0,
type: "outline",
"activity-id": datum['id']
@@ -24011,9 +24444,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: _cache[2] || (_cache[2] = function (event) {
return event.stopPropagation();
})
- }, [(0, vue_1.createElementVNode)("label", _hoisted_21, " Select \"" + (0, vue_1.toDisplayString)(datum['default_title_narrative']) + "\" ", 1
+ }, [(0, vue_1.createElementVNode)("label", _hoisted_22, (0, vue_1.toDisplayString)($setup.language.common_lang.select) + " \"" + (0, vue_1.toDisplayString)(datum['default_title_narrative']) + "\" ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("label", _hoisted_22, [(0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ ), (0, vue_1.createElementVNode)("label", _hoisted_23, [(0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return $setup.store.state.selectedActivities = $event;
}),
@@ -24021,12 +24454,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
type: "checkbox"
}, null, 8
/* PROPS */
- , _hoisted_23), [[vue_1.vModelCheckbox, $setup.store.state.selectedActivities]]), _hoisted_24])])], 2
+ , _hoisted_24), [[vue_1.vModelCheckbox, $setup.store.state.selectedActivities]]), _hoisted_25])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tbody", _hoisted_25, _hoisted_27))])]);
+ ))])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tbody", _hoisted_26, [(0, vue_1.createElementVNode)("td", _hoisted_27, (0, vue_1.toDisplayString)($setup.language.common_lang.activities_not_found), 1
+ /* TEXT */
+ )]))])]);
}
exports.render = render;
@@ -24078,30 +24513,25 @@ var _hoisted_9 = {
var _hoisted_10 = {
"class": "text-sm font-bold leading-relaxed"
};
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createTextVNode)(" target ");
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createTextVNode)(" actual ");
-
-var _hoisted_13 = {
+var _hoisted_11 = {
"class": "activities__content"
};
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, null, -1
+var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, null, -1
/* HOISTED */
);
-var _hoisted_15 = {
+var _hoisted_13 = {
"class": "bg-white px-4 py-5"
};
-var _hoisted_16 = {
+var _hoisted_14 = {
"class": "elements-detail wider"
};
-var _hoisted_17 = {
+var _hoisted_15 = {
"class": "category flex"
};
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
"class": "divider my-10 h-px w-full border-b border-n-20"
}, null, -1
/* HOISTED */
@@ -24141,7 +24571,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "rotate-180 pb-2 text-3xl text-white"
})])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)(_component_PageTitle, {
"breadcrumb-data": _ctx.breadcrumbData,
- title: "Period Detail",
+ title: _ctx.language.common_lang.period_detail,
"back-link": "".concat(_ctx.periodLink)
}, {
"default": (0, vue_1.withCtx)(function () {
@@ -24153,25 +24583,25 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, null, 8
/* PROPS */
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createVNode)(_component_Btn, {
- text: "Add Period",
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.period),
icon: "add",
link: "".concat(_ctx.periodLink, "/create"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Edit Period",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.edit_something.replace(':something', _ctx.language.common_lang.period),
link: "".concat(_ctx.periodLink, "/").concat(_ctx.period.id, "/edit")
}, null, 8
/* PROPS */
- , ["link"])])];
+ , ["text", "link"])])];
}),
_: 1
/* STABLE */
}, 8
/* PROPS */
- , ["breadcrumb-data", "back-link"]), (0, vue_1.createElementVNode)("div", {
+ , ["breadcrumb-data", "title", "back-link"]), (0, vue_1.createElementVNode)("div", {
"class": "sidebar-open-icon",
onClick: _cache[2] || (_cache[2] = function () {
_ctx.showSidebar = !_ctx.showSidebar;
@@ -24196,21 +24626,25 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("aside", _hoisted_8, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("ul", _hoisted_10, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
href: "#target",
"class": (0, vue_1.normalizeClass)(_ctx.linkClasses)
- }, [(0, vue_1.createCommentVNode)(" "), _hoisted_11], 2
+ }, [(0, vue_1.createCommentVNode)(" "), (0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.target), 1
+ /* TEXT */
+ )], 2
/* CLASS */
)), [[_directive_smooth_scroll]])]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
href: "#actual",
"class": (0, vue_1.normalizeClass)(_ctx.linkClasses)
- }, [(0, vue_1.createCommentVNode)(" "), _hoisted_12], 2
+ }, [(0, vue_1.createCommentVNode)(" "), (0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.target), 1
+ /* TEXT */
+ )], 2
/* CLASS */
- )), [[_directive_smooth_scroll]])])])])])), [[_directive_sticky_component]])]), (0, vue_1.createElementVNode)("div", _hoisted_13, [_hoisted_14, (0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.dateFormat(_ctx.periodData.period_start[0].date)) + " - " + (0, vue_1.toDisplayString)(_ctx.dateFormat(_ctx.periodData.period_end[0].date)), 1
+ )), [[_directive_smooth_scroll]])])])])])), [[_directive_sticky_component]])]), (0, vue_1.createElementVNode)("div", _hoisted_11, [_hoisted_12, (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.dateFormat(_ctx.periodData.period_start[0].date)) + " - " + (0, vue_1.toDisplayString)(_ctx.dateFormat(_ctx.periodData.period_end[0].date)), 1
/* TEXT */
), (0, vue_1.createVNode)(_component_TargetValue, {
id: "target",
data: _ctx.periodData.target
}, null, 8
/* PROPS */
- , ["data"]), _hoisted_18, (0, vue_1.createVNode)(_component_ActualValue, {
+ , ["data"]), _hoisted_16, (0, vue_1.createVNode)(_component_ActualValue, {
id: "actual",
data: _ctx.periodData.actual
}, null, 8
@@ -24248,27 +24682,25 @@ var _hoisted_3 = ["href"];
var _hoisted_4 = {
"class": "iati-list-table text-n-40"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("thead", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("tr", {
+var _hoisted_5 = {
"class": "bg-n-10 text-left"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_6 = {
id: "transaction_type",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Start Date - End Date")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_7 = {
id: "action",
scope: "col",
- width: "177px"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Action")])])], -1
-/* HOISTED */
-);
-
-var _hoisted_6 = ["onClick"];
-var _hoisted_7 = ["href"];
-var _hoisted_8 = {
- "class": "flex"
+ wideleth: "177px"
};
+var _hoisted_8 = ["onClick"];
var _hoisted_9 = ["href"];
var _hoisted_10 = {
+ "class": "flex"
+};
+var _hoisted_11 = ["href"];
+var _hoisted_12 = {
"class": "mt-6"
};
@@ -24287,7 +24719,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createVNode)(_component_PageTitle, {
"breadcrumb-data": _ctx.breadcrumbData,
- title: "Periods List",
+ title: _ctx.language.common_lang.periods_list,
"back-link": _ctx.indicatorLink
}, {
"default": (0, vue_1.withCtx)(function () {
@@ -24301,10 +24733,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("a", {
href: "".concat(_ctx.periodLink, "/create")
}, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Add Period",
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.period),
icon: "plus",
type: "primary"
- })], 8
+ }, null, 8
+ /* PROPS */
+ , ["text"])], 8
/* PROPS */
, _hoisted_3)])];
}),
@@ -24313,7 +24747,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, 8
/* PROPS */
- , ["breadcrumb-data", "back-link"]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [_hoisted_5, (0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.periodsData.data, function (pe, p) {
+ , ["breadcrumb-data", "title", "back-link"]), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("thead", null, [(0, vue_1.createElementVNode)("tr", _hoisted_5, [(0, vue_1.createElementVNode)("th", _hoisted_6, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.start_date) + " - " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.end_date), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_7, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.action), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.periodsData.data, function (pe, p) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
key: p,
"class": "cursor-pointer",
@@ -24323,9 +24761,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("a", {
"class": "text-sm font-bold leading-relaxed text-n-50",
href: "".concat(_ctx.periodLink, "/").concat(pe.id)
- }, (0, vue_1.toDisplayString)(pe.period.period_start[0].date ? _ctx.dateFormat(pe.period.period_start[0].date) : 'Missing') + " - " + (0, vue_1.toDisplayString)(pe.period.period_end[0].date ? _ctx.dateFormat(pe.period.period_end[0].date) : 'Missing'), 9
+ }, (0, vue_1.toDisplayString)(pe.period.period_start[0].date ? _ctx.dateFormat(pe.period.period_start[0].date) : _ctx.language.common_lang.missing["default"]) + " - " + (0, vue_1.toDisplayString)(pe.period.period_end[0].date ? _ctx.dateFormat(pe.period.period_end[0].date) : _ctx.language.common_lang.missing["default"]), 9
/* TEXT, PROPS */
- , _hoisted_7)]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("a", {
+ , _hoisted_9)]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("a", {
"class": "mr-6 text-n-40",
href: "".concat(_ctx.periodLink, "/").concat(pe.id, "/edit")
}, [(0, vue_1.createVNode)(_component_svg_vue, {
@@ -24333,17 +24771,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "text-xl"
})], 8
/* PROPS */
- , _hoisted_9), (0, vue_1.createVNode)(_component_DeleteAction, {
+ , _hoisted_11), (0, vue_1.createVNode)(_component_DeleteAction, {
"item-type": "period",
"item-id": pe.id
}, null, 8
/* PROPS */
, ["item-id"])])])], 8
/* PROPS */
- , _hoisted_6);
+ , _hoisted_8);
}), 128
/* KEYED_FRAGMENT */
- ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_10, [_ctx.periodsData && _ctx.periodsData.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Pagination, {
+ ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_12, [_ctx.periodsData && _ctx.periodsData.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Pagination, {
key: 0,
data: _ctx.periodsData,
onFetchActivities: _ctx.fetchListings
@@ -24378,34 +24816,22 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "w-full mb-3"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_3 = {
"class": "flex category"
-}, "Actual Value")], -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Location Reference: ", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Dimension: ", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Comment: ", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("table", {
+};
+var _hoisted_4 = {
"class": "w-full mb-3"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("tbody", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("tr", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("td", {
+};
+var _hoisted_5 = {
colspan: "2"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_6 = {
"class": "flex category"
-}, "Document Link"), /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+
+var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
"class": "w-full h-px my-4 border-b divider border-n-20"
-})])])])], -1
+}, null, -1
/* HOISTED */
);
@@ -24418,25 +24844,31 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: v,
"class": "item"
- }, [(0, vue_1.createElementVNode)("table", _hoisted_2, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_3, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", {
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_2, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.actual_value.upper_case), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(_ctx.elementSpacing)
- }, (0, vue_1.toDisplayString)((_a = tValue.value) !== null && _a !== void 0 ? _a : 'Missing'), 3
+ }, (0, vue_1.toDisplayString)((_a = tValue.value) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 3
/* TEXT, CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_4, (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.getLocation(tValue.location) ? _ctx.getLocation(tValue.location) : 'Missing'), 1
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.location_reference.upper_case) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.getLocation(tValue.location) ? _ctx.getLocation(tValue.location) : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_5, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tValue.dimension, function (dim, d) {
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.dimension.upper_case) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tValue.dimension, function (dim, d) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: d,
"class": "dimension"
- }, (0, vue_1.toDisplayString)((_a = dim.name) !== null && _a !== void 0 ? _a : 'Missing') + " (" + (0, vue_1.toDisplayString)((_b = dim.value) !== null && _b !== void 0 ? _b : 'Missing') + ") ", 1
+ }, (0, vue_1.toDisplayString)((_a = dim.name) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]) + " (" + (0, vue_1.toDisplayString)((_b = dim.value) !== null && _b !== void 0 ? _b : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
);
}), 128
@@ -24445,15 +24877,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_6, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tValue.comment[0].narrative, function (com, c) {
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.comment.upper_case) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tValue.comment[0].narrative, function (com, c) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: c,
"class": (0, vue_1.normalizeClass)(["item", {
'mb-1.5': c !== tValue.comment[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(com.narrative ? com.narrative : 'Missing') + " ", 1
+ }, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(com.narrative ? com.narrative : _ctx.language.common_lang.missing["default"]) + " ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("span", null, " (Language: " + (0, vue_1.toDisplayString)(com.language ? _ctx.dlType.language[com.language] : 'Missing') + ") ", 1
+ ), (0, vue_1.createElementVNode)("span", null, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(com.language ? _ctx.dlType.language[com.language] : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
)])], 2
/* CLASS */
@@ -24462,7 +24896,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* KEYED_FRAGMENT */
))])], 2
/* CLASS */
- )])])])]), _hoisted_7, (0, vue_1.createVNode)(_component_DocumentLink, {
+ )])])])]), (0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_link.upper_case), 1
+ /* TEXT */
+ ), _hoisted_7])])])]), (0, vue_1.createVNode)(_component_DocumentLink, {
data: tValue.document_link,
type: _ctx.dlType
}, null, 8
@@ -24499,41 +24935,28 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "w-full mb-3"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_3 = {
"class": "flex category"
-}, "Target Value")], -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Location Reference: ", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Dimension: ", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Comment: ", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = {
+};
+var _hoisted_4 = {
"class": "language mb-1.5"
};
-var _hoisted_8 = {
+var _hoisted_5 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("table", {
+var _hoisted_6 = {
"class": "w-full mb-3"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("tbody", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("tr", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("td", {
+};
+var _hoisted_7 = {
colspan: "2"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_8 = {
"class": "flex category"
-}, "Document Link"), /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+
+var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
"class": "w-full h-px my-4 border-b divider border-n-20"
-})])])])], -1
+}, null, -1
/* HOISTED */
);
@@ -24551,25 +24974,31 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: v,
"class": "item"
- }, [(0, vue_1.createElementVNode)("table", _hoisted_2, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_3, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", {
+ }, [(0, vue_1.createElementVNode)("table", _hoisted_2, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.common_lang.target_value), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(_ctx.elementSpacing)
- }, (0, vue_1.toDisplayString)((_a = tValue.value) !== null && _a !== void 0 ? _a : "Missing"), 3
+ }, (0, vue_1.toDisplayString)((_a = tValue.value) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 3
/* TEXT, CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_4, (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.getLocation(tValue.location) ? _ctx.getLocation(tValue.location) : "Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.location_reference) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.getLocation(tValue.location) ? _ctx.getLocation(tValue.location) : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_5, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tValue.dimension, function (dim, d) {
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.dimension) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tValue.dimension, function (dim, d) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: d,
"class": "dimension"
- }, (0, vue_1.toDisplayString)((_a = dim.name) !== null && _a !== void 0 ? _a : "Missing") + " (" + (0, vue_1.toDisplayString)((_b = dim.value) !== null && _b !== void 0 ? _b : "Missing") + ") ", 1
+ }, (0, vue_1.toDisplayString)((_a = dim.name) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]) + " (" + (0, vue_1.toDisplayString)((_b = dim.value) !== null && _b !== void 0 ? _b : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
);
}), 128
@@ -24578,15 +25007,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS */
), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["flex", _ctx.elementSpacing])
- }, [_hoisted_6, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tValue.comment[0].narrative, function (com, c) {
+ }, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.comment) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tValue.comment[0].narrative, function (com, c) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: c,
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-1.5': c !== tValue.comment[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_7, " (Language: " + (0, vue_1.toDisplayString)(com.language ? _ctx.dlType.language[com.language] : "Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_4, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(com.language ? _ctx.dlType.language[com.language] : _ctx.language.common_lang.missing["default"]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)(com.narrative ? com.narrative : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_5, (0, vue_1.toDisplayString)(com.narrative ? com.narrative : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)], 2
/* CLASS */
@@ -24595,7 +25026,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* KEYED_FRAGMENT */
))])], 2
/* CLASS */
- )])])])]), _hoisted_9, (0, vue_1.createVNode)(_component_DocumentLink, {
+ )])])])]), (0, vue_1.createElementVNode)("table", _hoisted_6, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_link), 1
+ /* TEXT */
+ ), _hoisted_9])])])]), (0, vue_1.createVNode)(_component_DocumentLink, {
data: tValue.document_link,
type: _ctx.dlType
}, null, 8
@@ -24669,44 +25102,31 @@ var _hoisted_16 = ["href"];
var _hoisted_17 = {
key: 0
};
-
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createTextVNode)(" indicator ");
-
-var _hoisted_19 = {
+var _hoisted_18 = {
key: 1
};
-var _hoisted_20 = ["href"];
-
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createTextVNode)(" add indicator ");
-
-var _hoisted_22 = {
+var _hoisted_19 = ["href"];
+var _hoisted_20 = {
"class": "activities__content"
};
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, null, -1
+var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, null, -1
/* HOISTED */
);
-var _hoisted_24 = {
+var _hoisted_22 = {
"class": "activities__content--elements -mx-3 -mt-3 flex-wrap xl:flex"
};
-var _hoisted_25 = ["href"];
-
-var _hoisted_26 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_23 = ["href"];
+var _hoisted_24 = {
"class": "grow text-left italic"
-}, " You haven't added any indicator yet. ", -1
-/* HOISTED */
-);
-
-var _hoisted_27 = {
+};
+var _hoisted_25 = {
"class": "flex shrink-0 items-center font-bold uppercase text-bluecoral"
};
-
-var _hoisted_28 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_26 = {
"class": "grow text-[10px]"
-}, "Add new indicator", -1
-/* HOISTED */
-);
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -24740,7 +25160,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "rotate-180 pb-2 text-3xl text-white"
})])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)(_component_PageTitle, {
"breadcrumb-data": _ctx.breadcrumbData,
- title: "Result Detail",
+ title: _ctx.language.common_lang.result_detail,
"back-link": "".concat(_ctx.activityLink, "/result")
}, {
"default": (0, vue_1.withCtx)(function () {
@@ -24754,12 +25174,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("a", {
href: "".concat(_ctx.activityLink, "/result/create")
}, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Edit Result",
+ text: _ctx.language.button_lang.edit_something.replace(':something', _ctx.language.common_lang.result),
link: "".concat(_ctx.resultLink, "/edit"),
icon: "edit"
}, null, 8
/* PROPS */
- , ["link"])], 8
+ , ["text", "link"])], 8
/* PROPS */
, _hoisted_3)])];
}),
@@ -24768,7 +25188,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, 8
/* PROPS */
- , ["breadcrumb-data", "back-link"]), (0, vue_1.createElementVNode)("div", {
+ , ["breadcrumb-data", "title", "back-link"]), (0, vue_1.createElementVNode)("div", {
"class": "sidebar-open-icon",
onClick: _cache[2] || (_cache[2] = function () {
_ctx.showSidebar = !_ctx.showSidebar;
@@ -24822,17 +25242,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
)), _ctx.hasIndicators ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", _hoisted_17, [(0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
href: "#indicator",
"class": (0, vue_1.normalizeClass)(_ctx.linkClasses)
- }, [(0, vue_1.createCommentVNode)(" "), _hoisted_18], 2
+ }, [(0, vue_1.createCommentVNode)(" "), (0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.indicator_nocase), 1
+ /* TEXT */
+ )], 2
/* CLASS */
- )), [[_directive_smooth_scroll]])])) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.hasIndicators ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", _hoisted_19, [(0, vue_1.createElementVNode)("a", {
+ )), [[_directive_smooth_scroll]])])) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.hasIndicators ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", _hoisted_18, [(0, vue_1.createElementVNode)("a", {
href: "/result/".concat(_ctx.result.id, "/indicator/create"),
"class": (0, vue_1.normalizeClass)([_ctx.linkClasses, "border border-dashed border-n-40"])
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "add",
"class": "mr-2 text-n-40"
- }), _hoisted_21], 10
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.add_indicator_nocase), 1
+ /* TEXT */
+ )], 10
/* CLASS, PROPS */
- , _hoisted_20)])) : (0, vue_1.createCommentVNode)("v-if", true)])])]), (0, vue_1.createElementVNode)("div", _hoisted_22, [_hoisted_23, (0, vue_1.createElementVNode)("div", _hoisted_24, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.result.result, function (post, key) {
+ , _hoisted_19)])) : (0, vue_1.createCommentVNode)("v-if", true)])])]), (0, vue_1.createElementVNode)("div", _hoisted_20, [_hoisted_21, (0, vue_1.createElementVNode)("div", _hoisted_22, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.result.result, function (post, key) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_ResultElement, {
@@ -24859,12 +25283,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
key: 0,
href: "/result/".concat(_ctx.result.id, "/indicator/create"),
"class": "add_indicator flex w-full rounded border border-dashed border-n-40 bg-white px-4 py-3 text-xs leading-normal"
- }, [_hoisted_26, (0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_24, (0, vue_1.toDisplayString)(_ctx.language.button_lang.not_yet_added_indicator), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "add",
"class": "mr-1 shrink-0 text-base"
- }), _hoisted_28])], 8
+ }), (0, vue_1.createElementVNode)("span", _hoisted_26, (0, vue_1.toDisplayString)(_ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.new_indicator)), 1
+ /* TEXT */
+ )])], 8
/* PROPS */
- , _hoisted_25)) : (0, vue_1.createCommentVNode)("v-if", true)])])]);
+ , _hoisted_23)) : (0, vue_1.createCommentVNode)("v-if", true)])])]);
}
exports.render = render;
@@ -24945,7 +25373,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
type: _ctx.types.language
}, null, 8
/* PROPS */
- , ["data", "type"])) : _ctx.elementName === 'aggregation_status' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)(parseInt(_ctx.data) ? 'True' : _ctx.data ? 'False' : 'Missing'), 1
+ , ["data", "type"])) : _ctx.elementName === 'aggregation_status' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)(parseInt(_ctx.data) ? _ctx.translationLanguage.common_lang["true"] : _ctx.data ? _ctx.translationLanguage.common_lang["false"] : _ctx.translationlanguage.common_lang.missing["default"]), 1
/* TEXT */
)) : _ctx.elementName === 'document_link' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_DocumentLink, {
key: 2,
@@ -25006,46 +25434,46 @@ var _hoisted_3 = ["href"];
var _hoisted_4 = {
"class": "iati-list-table text-n-40"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("thead", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("tr", {
+var _hoisted_5 = {
"class": "bg-n-10 text-left"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_6 = {
id: "transaction_type",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Title")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_7 = {
id: "transaction_value",
scope: "col",
width: "190px"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "RESULT TYPE")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_8 = {
id: "transaction_date",
scope: "col",
width: "208px"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "AGGREGATION STATUS")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_9 = {
id: "action",
scope: "col",
width: "177px"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Action")])])], -1
-/* HOISTED */
-);
-
-var _hoisted_6 = ["onClick"];
-var _hoisted_7 = {
+};
+var _hoisted_10 = ["onClick"];
+var _hoisted_11 = {
"class": "ellipsis relative"
};
-var _hoisted_8 = ["href"];
-var _hoisted_9 = {
+var _hoisted_12 = ["href"];
+var _hoisted_13 = {
"class": "w-52"
};
-var _hoisted_10 = {
+var _hoisted_14 = {
"class": "ellipsis__title--hover"
};
-var _hoisted_11 = ["onClick"];
-var _hoisted_12 = ["onClick"];
-var _hoisted_13 = {
+var _hoisted_15 = ["onClick"];
+var _hoisted_16 = ["onClick"];
+var _hoisted_17 = {
"class": "flex"
};
-var _hoisted_14 = ["href"];
-var _hoisted_15 = {
+var _hoisted_18 = ["href"];
+var _hoisted_19 = {
"class": "mt-6"
};
@@ -25064,7 +25492,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createVNode)(_component_PageTitle, {
"breadcrumb-data": _ctx.breadcrumbData,
- title: "Result List",
+ text: _ctx.language.common_lang.result_list,
"back-link": _ctx.activityLink
}, {
"default": (0, vue_1.withCtx)(function () {
@@ -25078,10 +25506,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("a", {
href: "".concat(_ctx.activityLink, "/result/create")
}, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Add Result",
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.add),
icon: "plus",
type: "primary"
- })], 8
+ }, null, 8
+ /* PROPS */
+ , ["text"])], 8
/* PROPS */
, _hoisted_3)])];
}),
@@ -25090,7 +25520,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, 8
/* PROPS */
- , ["breadcrumb-data", "back-link"]), (0, vue_1.createCommentVNode)(" page content "), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [_hoisted_5, (0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.resultsData.data, function (result, t, index) {
+ , ["breadcrumb-data", "text", "back-link"]), (0, vue_1.createCommentVNode)(" page content "), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("thead", null, [(0, vue_1.createElementVNode)("tr", _hoisted_5, [(0, vue_1.createElementVNode)("th", _hoisted_6, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.title), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_7, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.result_type), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_8, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.aggregation_status), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_9, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.action), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.resultsData.data, function (result, t, index) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
@@ -25100,30 +25538,30 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: function onClick($event) {
return _ctx.handleNavigate("".concat(_ctx.activityLink, "/result/").concat(result.id));
}
- }, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("a", {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("a", {
href: "".concat(_ctx.activityLink, "/result/").concat(result.id),
"class": "ellipsis overflow-hidden text-n-50"
}, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(result.result.title[0].narrative, 'en')), 9
/* TEXT, PROPS */
- , _hoisted_8), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(result.result.title[0].narrative, 'en')), 1
+ , _hoisted_12), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(result.result.title[0].narrative, 'en')), 1
/* TEXT */
)])])], 8
/* PROPS */
- , _hoisted_6), (0, vue_1.createElementVNode)("td", {
+ , _hoisted_10), (0, vue_1.createElementVNode)("td", {
"class": "cursor-pointer",
onClick: function onClick($event) {
return _ctx.handleNavigate("".concat(_ctx.activityLink, "/result/").concat(result.id));
}
}, (0, vue_1.toDisplayString)((_a = _ctx.types.resultType[result.result.type]) !== null && _a !== void 0 ? _a : 'Missing'), 9
/* TEXT, PROPS */
- , _hoisted_11), (0, vue_1.createElementVNode)("td", {
+ , _hoisted_15), (0, vue_1.createElementVNode)("td", {
"class": "cursor-pointer capitalize",
onClick: function onClick($event) {
return _ctx.handleNavigate("".concat(_ctx.activityLink, "/result/").concat(result.id));
}
- }, (0, vue_1.toDisplayString)(parseInt(result.result.aggregation_status) ? 'True' : result.result.aggregation_status ? 'False' : 'Missing'), 9
+ }, (0, vue_1.toDisplayString)(parseInt(result.result.aggregation_status) ? 'True' : result.result.aggregation_status ? _ctx.language.common_lang["false"] : _ctx.language.common_lang.missing["default"]), 9
/* TEXT, PROPS */
- , _hoisted_12), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("a", {
+ , _hoisted_16), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("a", {
"class": "mr-6 text-n-40",
href: "/activity/".concat(result.activity_id, "/result/").concat(result.id, "/edit")
}, [(0, vue_1.createVNode)(_component_svg_vue, {
@@ -25131,7 +25569,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "text-xl"
})], 8
/* PROPS */
- , _hoisted_14), (0, vue_1.createVNode)(_component_DeleteAction, {
+ , _hoisted_18), (0, vue_1.createVNode)(_component_DeleteAction, {
"item-id": result.id,
"item-type": "result"
}, null, 8
@@ -25139,7 +25577,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["item-id"])])])]);
}), 128
/* KEYED_FRAGMENT */
- ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_15, [_ctx.resultsData && _ctx.resultsData.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Pagination, {
+ ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_19, [_ctx.resultsData && _ctx.resultsData.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Pagination, {
key: 0,
data: _ctx.resultsData,
onFetchActivities: _ctx.fetchListings
@@ -25180,72 +25618,38 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "mb-3"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Title", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "mb-1 language"
};
-var _hoisted_7 = {
+var _hoisted_6 = {
"class": "text-xs description"
};
-var _hoisted_8 = {
+var _hoisted_7 = {
key: 0
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Document Link", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = ["href"];
-var _hoisted_11 = {
+var _hoisted_8 = ["href"];
+var _hoisted_9 = {
key: 1
};
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Format", -1
-/* HOISTED */
-);
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = {
+var _hoisted_10 = {
"class": "mb-1 language"
};
-var _hoisted_15 = {
+var _hoisted_11 = {
"class": "text-xs description"
};
-var _hoisted_16 = {
+var _hoisted_12 = {
key: 2
};
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Category", -1
-/* HOISTED */
-);
-
-var _hoisted_18 = {
+var _hoisted_13 = {
key: 3
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Language", -1
-/* HOISTED */
-);
-
-var _hoisted_20 = {
+var _hoisted_14 = {
"class": "text-xs"
};
-var _hoisted_21 = {
+var _hoisted_15 = {
key: 4
};
-
-var _hoisted_22 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Document Date", -1
-/* HOISTED */
-);
-
-var _hoisted_23 = {
+var _hoisted_16 = {
"class": "text-xs"
};
@@ -25256,36 +25660,46 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "item elements-detail"
}, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(post.title[0].narrative[0].narrative), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.title[0].narrative, function (na, n) {
+ ), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.title), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.title[0].narrative, function (na, n) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: n,
"class": "title-content mb-1.5"
- }, [(0, vue_1.createElementVNode)("div", _hoisted_6, " (Language: " + (0, vue_1.toDisplayString)(_ctx.type.language[na.language]) + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_5, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.type.language[na.language]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_7, (0, vue_1.toDisplayString)(na.narrative), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)(na.narrative), 1
/* TEXT */
)]);
}), 128
/* KEYED_FRAGMENT */
- ))])]), post.url ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_8, [_hoisted_9, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("a", {
+ ))])]), post.url ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_7, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_link), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("a", {
target: "_blank",
href: post.url
}, (0, vue_1.toDisplayString)(post.url), 9
/* TEXT, PROPS */
- , _hoisted_10)])])) : (0, vue_1.createCommentVNode)("v-if", true), post.format ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_11, [_hoisted_12, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.format), 1
+ , _hoisted_8)])])) : (0, vue_1.createCommentVNode)("v-if", true), post.format ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_9, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.format), 1
/* TEXT */
- )])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_13, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.description[0].narrative, function (na, n) {
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.format), 1
+ /* TEXT */
+ )])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.description[0].narrative, function (na, n) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: n,
"class": "description-content mb-1.5"
- }, [(0, vue_1.createElementVNode)("div", _hoisted_14, " (Language: " + (0, vue_1.toDisplayString)(_ctx.type.language[na.language]) + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_10, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.type.language[na.language]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_15, (0, vue_1.toDisplayString)(na.narrative), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_11, (0, vue_1.toDisplayString)(na.narrative), 1
/* TEXT */
)]);
}), 128
/* KEYED_FRAGMENT */
- ))])]), post.category.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_16, [_hoisted_17, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.category, function (cat, c) {
+ ))])]), post.category.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_12, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.category), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.category, function (cat, c) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: c,
"class": "mb-1 text-xs"
@@ -25294,11 +25708,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
);
}), 128
/* KEYED_FRAGMENT */
- ))])])) : (0, vue_1.createCommentVNode)("v-if", true), post.language.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_18, [_hoisted_19, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_20, (0, vue_1.toDisplayString)(post.language.map(function (entry) {
+ ))])])) : (0, vue_1.createCommentVNode)("v-if", true), post.language.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_13, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.language), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_14, (0, vue_1.toDisplayString)(post.language.map(function (entry) {
return _ctx.type.language[entry.language];
}).join(", ")), 1
/* TEXT */
- )])])) : (0, vue_1.createCommentVNode)("v-if", true), post.document_date[0].date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_21, [_hoisted_22, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_23, (0, vue_1.toDisplayString)(post.document_date[0].date), 1
+ )])])) : (0, vue_1.createCommentVNode)("v-if", true), post.document_date[0].date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_15, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_date), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_16, (0, vue_1.toDisplayString)(post.document_date[0].date), 1
/* TEXT */
)])])) : (0, vue_1.createCommentVNode)("v-if", true)])])])]);
}), 128
@@ -25339,13 +25757,9 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "title flex grow items-center"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_5 = {
"class": "title text-sm font-bold"
-}, "Indicator", -1
-/* HOISTED */
-);
-
+};
var _hoisted_6 = {
"class": "icons flex items-center"
};
@@ -25401,258 +25815,121 @@ var _hoisted_21 = {
var _hoisted_22 = {
"class": "mb-3"
};
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Indicator Title", -1
-/* HOISTED */
-);
-
-var _hoisted_24 = {
+var _hoisted_23 = {
"class": "language mb-1"
};
-var _hoisted_25 = {
+var _hoisted_24 = {
"class": "description text-xs"
};
-var _hoisted_26 = {
+var _hoisted_25 = {
key: 0
};
-
-var _hoisted_27 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Measure", -1
-/* HOISTED */
-);
-
-var _hoisted_28 = {
+var _hoisted_26 = {
key: 1
};
-
-var _hoisted_29 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Aggregation Status", -1
-/* HOISTED */
-);
-
-var _hoisted_30 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_31 = {
+var _hoisted_27 = {
"class": "language mb-1"
};
-var _hoisted_32 = {
+var _hoisted_28 = {
"class": "description text-xs"
};
-
-var _hoisted_33 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_34 = {
+var _hoisted_29 = {
key: 0
};
-var _hoisted_35 = {
+var _hoisted_30 = {
key: 1
};
-var _hoisted_36 = {
+var _hoisted_31 = {
key: 2
};
-var _hoisted_37 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Document Link", -1
-/* HOISTED */
-);
-
-var _hoisted_38 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Baseline", -1
-/* HOISTED */
-);
-
-var _hoisted_39 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Year: ");
-
-var _hoisted_40 = /*#__PURE__*/(0, vue_1.createTextVNode)("Missing");
-
-var _hoisted_41 = /*#__PURE__*/(0, vue_1.createTextVNode)(" , ");
-
-var _hoisted_42 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Date: ");
-
-var _hoisted_43 = /*#__PURE__*/(0, vue_1.createTextVNode)("Missing");
+var _hoisted_32 = /*#__PURE__*/(0, vue_1.createTextVNode)(" , ");
-var _hoisted_44 = /*#__PURE__*/(0, vue_1.createTextVNode)(" , ");
+var _hoisted_33 = /*#__PURE__*/(0, vue_1.createTextVNode)(" , ");
-var _hoisted_45 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Value: ");
-
-var _hoisted_46 = /*#__PURE__*/(0, vue_1.createTextVNode)("Missing");
-
-var _hoisted_47 = {
+var _hoisted_34 = {
"class": "flex"
};
-
-var _hoisted_48 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Location: ", -1
-/* HOISTED */
-);
-
-var _hoisted_49 = /*#__PURE__*/(0, vue_1.createTextVNode)("Missing");
-
-var _hoisted_50 = {
+var _hoisted_35 = {
"class": "flex"
};
-
-var _hoisted_51 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Dimension: ", -1
-/* HOISTED */
-);
-
-var _hoisted_52 = {
+var _hoisted_36 = {
"class": "description"
};
-var _hoisted_53 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_54 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ");
-
-var _hoisted_55 = /*#__PURE__*/(0, vue_1.createTextVNode)(" (Missing) ");
+var _hoisted_37 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ");
-var _hoisted_56 = {
+var _hoisted_38 = {
"class": "flex"
};
-
-var _hoisted_57 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Comment: ", -1
-/* HOISTED */
-);
-
-var _hoisted_58 = {
+var _hoisted_39 = {
"class": "description"
};
-var _hoisted_59 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_60 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ");
-
-var _hoisted_61 = /*#__PURE__*/(0, vue_1.createTextVNode)(" (Language: ");
-
-var _hoisted_62 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing) ");
+var _hoisted_40 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ");
-var _hoisted_63 = {
+var _hoisted_41 = {
"class": "flex"
};
-
-var _hoisted_64 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Document Link: ", -1
-/* HOISTED */
-);
-
-var _hoisted_65 = {
+var _hoisted_42 = {
key: 2
};
-var _hoisted_66 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, null, -1
+var _hoisted_43 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, null, -1
/* HOISTED */
);
-var _hoisted_67 = {
+var _hoisted_44 = {
"class": "mt-3"
};
-var _hoisted_68 = {
+var _hoisted_45 = {
key: 0,
"class": "periods"
};
-var _hoisted_69 = {
+var _hoisted_46 = {
"class": "category"
};
-var _hoisted_70 = {
+var _hoisted_47 = {
"class": "category flex"
};
-var _hoisted_71 = {
+var _hoisted_48 = {
"class": "mr-10"
};
-var _hoisted_72 = ["href"];
-var _hoisted_73 = {
+var _hoisted_49 = ["href"];
+var _hoisted_50 = {
"class": "flex shrink-0 grow justify-between"
};
-
-var _hoisted_74 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Target Value", -1
-/* HOISTED */
-);
-
-var _hoisted_75 = {
+var _hoisted_51 = {
"class": "language target_value mb-1"
};
-var _hoisted_76 = {
+var _hoisted_52 = {
"class": "location_reference flex"
};
-
-var _hoisted_77 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Location Reference: ", -1
-/* HOISTED */
-);
-
-var _hoisted_78 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_79 = {
+var _hoisted_53 = {
"class": "dimension flex"
};
-
-var _hoisted_80 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Dimension: ", -1
-/* HOISTED */
-);
-
-var _hoisted_81 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_82 = /*#__PURE__*/(0, vue_1.createTextVNode)(" (Missing) ");
-
-var _hoisted_83 = {
+var _hoisted_54 = {
"class": "flex"
};
-var _hoisted_84 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Comment: ", -1
-/* HOISTED */
-);
-
-var _hoisted_85 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_86 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ");
-
-var _hoisted_87 = /*#__PURE__*/(0, vue_1.createTextVNode)(" (Language: ");
-
-var _hoisted_88 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing) ");
+var _hoisted_55 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ");
-var _hoisted_89 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Actual Value", -1
-/* HOISTED */
-);
-
-var _hoisted_90 = {
+var _hoisted_56 = {
"class": "language target_value mb-1"
};
-var _hoisted_91 = {
+var _hoisted_57 = {
"class": "location_reference flex"
};
-
-var _hoisted_92 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Location Reference: ", -1
-/* HOISTED */
-);
-
-var _hoisted_93 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_94 = {
+var _hoisted_58 = {
"class": "dimension flex"
};
-
-var _hoisted_95 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Dimension: ", -1
-/* HOISTED */
-);
-
-var _hoisted_96 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_97 = /*#__PURE__*/(0, vue_1.createTextVNode)(" (Missing) ");
-
-var _hoisted_98 = {
+var _hoisted_59 = {
"class": "flex"
};
-var _hoisted_99 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", null, "Comment: ", -1
-/* HOISTED */
-);
-
-var _hoisted_100 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing ");
-
-var _hoisted_101 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ");
-
-var _hoisted_102 = /*#__PURE__*/(0, vue_1.createTextVNode)(" (Language: ");
-
-var _hoisted_103 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Missing) ");
+var _hoisted_60 = /*#__PURE__*/(0, vue_1.createTextVNode)(" ");
-var _hoisted_104 = {
+var _hoisted_61 = {
key: 0,
"class": "divider my-8 h-px w-full border-b border-n-20"
};
@@ -25667,22 +25944,24 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1.5 text-xl text-bluecoral",
icon: "bill"
- }), _hoisted_5, (0, vue_1.createCommentVNode)(" "), (0, vue_1.createCommentVNode)(" . "), (0, vue_1.createCommentVNode)(" not completed "), (0, vue_1.createCommentVNode)("
")]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Add Indicator",
+ }), (0, vue_1.createElementVNode)("div", _hoisted_5, (0, vue_1.toDisplayString)(_ctx.language.common_lang.indicator), 1
+ /* TEXT */
+ ), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createCommentVNode)(" . "), (0, vue_1.createCommentVNode)(" not completed "), (0, vue_1.createCommentVNode)("
")]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.indicator),
icon: "add",
link: "/result/".concat(_ctx.result.id, "/indicator/create"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Show full indicator list",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.show_something.replace(':something', _ctx.language.common_lang.full_indicator),
icon: "",
design: "bgText",
link: "/result/".concat(_ctx.result.id, "/indicator"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_svg_vue, {
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1.5",
icon: "core"
}), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_svg_vue, {
@@ -25700,85 +25979,101 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, (0, vue_1.toDisplayString)(_ctx.getActivityTitle(post.indicator.title[0].narrative, 'en')), 9
/* TEXT, PROPS */
, _hoisted_17)]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("span", _hoisted_19, [(0, vue_1.createVNode)(_component_Btn, {
- text: "View Indicator",
+ text: _ctx.language.button_lang.view_something.replace(':something', _ctx.language.common_lang.indicator),
icon: "eye",
link: "/result/".concat(_ctx.result.id, "/indicator/").concat(post.id),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Edit Indicator",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.edit_something.replace(':something', _ctx.language.common_lang.indicator),
icon: "edit",
link: "/result/".concat(_ctx.result.id, "/indicator/").concat(post.id, "/edit")
}, null, 8
/* PROPS */
- , ["link"])]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Add Period",
+ , ["text", "link"])]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.period),
icon: "edit",
link: "/indicator/".concat(post.id, "/period/create"),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"])])]), (0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("table", _hoisted_22, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_23, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.indicator.title[0].narrative, function (title, t) {
+ , ["text", "link"])])]), (0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("table", _hoisted_22, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.indicator_title), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.indicator.title[0].narrative, function (title, t) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: t,
"class": (0, vue_1.normalizeClass)(["title-content", {
'mb-1.5': t !== post.indicator.title[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_24, " (Language: " + (0, vue_1.toDisplayString)(_ctx.type.language[title.language]) + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_23, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.type.language[title.language]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_25, (0, vue_1.toDisplayString)(title.narrative), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_24, (0, vue_1.toDisplayString)(title.narrative), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), post.indicator.measure ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_26, [_hoisted_27, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.type.indicatorMeasure[post.indicator.measure]), 1
+ ))])]), post.indicator.measure ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_25, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.lanugage.common_lang.measure), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.type.indicatorMeasure[post.indicator.measure]), 1
+ /* TEXT */
+ )])) : (0, vue_1.createCommentVNode)("v-if", true), post.indicator.aggregation_status ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_26, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.aggregation_status), 1
/* TEXT */
- )])) : (0, vue_1.createCommentVNode)("v-if", true), post.indicator.aggregation_status ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_28, [_hoisted_29, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.indicator.aggregation_status != 0), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.indicator.aggregation_status != 0), 1
/* TEXT */
- )])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_30, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.indicator.description[0].narrative, function (description, d) {
+ )])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.indicator.description[0].narrative, function (description, d) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: d,
"class": (0, vue_1.normalizeClass)(["title-content", {
'mb-1.5': d !== post.indicator.description[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_31, " (Language: " + (0, vue_1.toDisplayString)(_ctx.type.language[description.language]) + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_27, " (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)(_ctx.type.language[description.language]) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_32, (0, vue_1.toDisplayString)(description.narrative), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_28, (0, vue_1.toDisplayString)(description.narrative), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_33, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.indicator.reference, function (ref, r) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.references), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.indicator.reference, function (ref, r) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: r,
"class": (0, vue_1.normalizeClass)({
'mb-1.5': r !== post.indicator.reference.length - 1
})
- }, [ref.vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_34, " Vocabulary: " + (0, vue_1.toDisplayString)(ref.vocabulary) + ", ", 1
+ }, [ref.vocabulary ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_29, (0, vue_1.toDisplayString)(_ctx.language.common_lang.vocabulary) + ": " + (0, vue_1.toDisplayString)(ref.vocabulary) + ", ", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), ref.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_35, " Code: " + (0, vue_1.toDisplayString)(ref.code) + ", ", 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), ref.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_30, " Code: " + (0, vue_1.toDisplayString)(ref.code) + ", ", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), ref.indicator_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_36, " Indicator URI: " + (0, vue_1.toDisplayString)(ref.indicator_uri), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), ref.indicator_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_31, (0, vue_1.toDisplayString)(_ctx.language.common_lang.indicator_uri) + ": " + (0, vue_1.toDisplayString)(ref.indicator_uri), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_37, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.indicator.document_link.length) + " documents ", 1
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_link), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_38, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.indicator.baseline, function (base, b) {
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(post.indicator.document_link.length) + " " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.documents), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.baseline), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.indicator.baseline, function (base, b) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: b,
"class": (0, vue_1.normalizeClass)({
'mb-1.5': b !== post.indicator.baseline.length - 1
})
- }, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("span", null, [_hoisted_39, base.year ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ }, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.year) + ": ", 1
+ /* TEXT */
+ ), base.year ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(base.year), 1
/* TEXT */
@@ -25786,9 +26081,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_40], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- )), _hoisted_41]), (0, vue_1.createElementVNode)("span", null, [_hoisted_42, base.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ )), _hoisted_32]), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.date) + ": ", 1
+ /* TEXT */
+ ), base.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(base.date), 1
/* TEXT */
@@ -25796,9 +26095,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_43], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- )), _hoisted_44]), (0, vue_1.createElementVNode)("span", null, [_hoisted_45, base.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ )), _hoisted_33]), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.value) + ": ", 1
+ /* TEXT */
+ ), base.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(base.value), 1
/* TEXT */
@@ -25806,9 +26109,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_46], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_47, [_hoisted_48, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(base.location, function (loc, l) {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_34, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.location) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(base.location, function (loc, l) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: l,
"class": (0, vue_1.normalizeClass)(["item", {
@@ -25822,14 +26129,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_49], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_50, [_hoisted_51, (0, vue_1.createElementVNode)("div", _hoisted_52, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(base.dimension, function (dim, d) {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_35, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.dimension) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_36, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(base.dimension, function (dim, d) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: d,
"class": (0, vue_1.normalizeClass)({
@@ -25843,9 +26154,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_53], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- )), _hoisted_54]), (0, vue_1.createElementVNode)("span", null, [dim.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ )), _hoisted_37]), (0, vue_1.createElementVNode)("span", null, [dim.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)(" (" + (0, vue_1.toDisplayString)(dim.value) + ") ", 1
/* TEXT */
@@ -25853,14 +26166,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_55], 64
+ }, [(0, vue_1.createTextVNode)(" (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]) + ") ", 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_56, [_hoisted_57, (0, vue_1.createElementVNode)("div", _hoisted_58, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(base.comment[0].narrative, function (com, c) {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_38, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.comment) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_39, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(base.comment[0].narrative, function (com, c) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: c,
"class": (0, vue_1.normalizeClass)(["item", {
@@ -25874,9 +26191,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_59], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- )), _hoisted_60]), (0, vue_1.createElementVNode)("span", null, [_hoisted_61, com.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ )), _hoisted_40]), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)(" (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": ", 1
+ /* TEXT */
+ ), com.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.type.language[com.language]) + ") ", 1
/* TEXT */
@@ -25884,59 +26205,67 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_62], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]) + ") ", 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_63, [_hoisted_64, (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(base.document_link.length) + " document ", 1
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_41, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.document_link) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(base.document_link.length) + " " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.document), 1
/* TEXT */
)])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), post.periods.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_65, [_hoisted_66, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_67, [(0, vue_1.createVNode)(_component_NotYet, {
+ ))])]), post.periods.length === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_42, [_hoisted_43, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_44, [(0, vue_1.createVNode)(_component_NotYet, {
link: "/indicator/".concat(post.id, "/period/create"),
description: "You haven't added any periods yet.",
"btn-text": "Add period",
"class": "w-[442px]"
}, null, 8
/* PROPS */
- , ["link"])])])])) : (0, vue_1.createCommentVNode)("v-if", true)])])]), (0, vue_1.createCommentVNode)(" for periods "), post.periods.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_68, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.periods, function (item, key) {
+ , ["link"])])])])) : (0, vue_1.createCommentVNode)("v-if", true)])])]), (0, vue_1.createCommentVNode)(" for periods "), post.periods.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_45, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.periods, function (item, key) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("table", {
key: key
- }, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_69, " Period " + (0, vue_1.toDisplayString)(Number(key) + 1), 1
+ }, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_46, (0, vue_1.toDisplayString)(_ctx.language.common_lang.period) + " " + (0, vue_1.toDisplayString)(Number(key) + 1), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_70, [(0, vue_1.createElementVNode)("div", _hoisted_71, [(0, vue_1.createElementVNode)("a", {
+ )]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_47, [(0, vue_1.createElementVNode)("div", _hoisted_48, [(0, vue_1.createElementVNode)("a", {
"class": "text-n-50",
href: "/indicator/".concat(post.id, "/period/").concat(item.id)
}, (0, vue_1.toDisplayString)(_ctx.dateFormat(item.period.period_start[0].date, 'MMMM DD, YYYY')) + " - " + (0, vue_1.toDisplayString)(_ctx.dateFormat(item.period.period_end[0].date, 'MMMM DD, YYYY')), 9
/* TEXT, PROPS */
- , _hoisted_72)]), (0, vue_1.createElementVNode)("div", _hoisted_73, [(0, vue_1.createVNode)(_component_Btn, {
- text: "View Period",
+ , _hoisted_49)]), (0, vue_1.createElementVNode)("div", _hoisted_50, [(0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.view_something.replace(':something', _ctx.language.common_lang.period),
icon: "eye",
link: "/indicator/".concat(post.id, "/period/").concat(item.id),
"class": "mr-2.5"
}, null, 8
/* PROPS */
- , ["link"]), (0, vue_1.createVNode)(_component_Btn, {
- text: "Edit Period",
+ , ["text", "link"]), (0, vue_1.createVNode)(_component_Btn, {
+ text: _ctx.language.button_lang.edit_something.replace(':something', _ctx.language.common_lang.period),
icon: "edit",
link: "/indicator/".concat(post.id, "/period/").concat(item.id, "/edit")
}, null, 8
/* PROPS */
- , ["link"])])])])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_74, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(item.period.target, function (tar, t) {
+ , ["text", "link"])])])])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.target_value), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(item.period.target, function (tar, t) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: t,
"class": (0, vue_1.normalizeClass)(["item", {
'mb-1.5': t !== item.period.target.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_75, (0, vue_1.toDisplayString)(tar.value), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_51, (0, vue_1.toDisplayString)(tar.value), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_76, [_hoisted_77, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.location, function (loc, l) {
+ ), (0, vue_1.createElementVNode)("div", _hoisted_52, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.location_reference) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.location, function (loc, l) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: l,
"class": (0, vue_1.normalizeClass)(["item", {
@@ -25950,14 +26279,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_78], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_79, [_hoisted_80, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.dimension, function (dim, d) {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_53, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.dimension) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.dimension, function (dim, d) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: d,
"class": (0, vue_1.normalizeClass)(["item", {
@@ -25971,7 +26304,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_81], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))]), (0, vue_1.createElementVNode)("span", null, [dim.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
@@ -25981,14 +26316,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_82], 64
+ }, [(0, vue_1.createTextVNode)(" (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]) + ") ", 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_83, [_hoisted_84, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.comment[0].narrative, function (com, c) {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_54, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.comment) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.comment[0].narrative, function (com, c) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: c,
"class": (0, vue_1.normalizeClass)(["item", {
@@ -26002,9 +26341,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_85], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- )), _hoisted_86]), (0, vue_1.createElementVNode)("span", null, [_hoisted_87, com.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ )), _hoisted_55]), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)(" (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": ", 1
+ /* TEXT */
+ ), com.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.type.language[com.language]) + ") ", 1
/* TEXT */
@@ -26012,7 +26355,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_88], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]) + ") ", 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])])], 2
/* CLASS */
@@ -26024,15 +26369,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_89, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(item.period.actual, function (tar, t) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.actual_value), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(item.period.actual, function (tar, t) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: t,
"class": (0, vue_1.normalizeClass)(["item", {
'mb-1.5': t !== item.period.actual.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_90, (0, vue_1.toDisplayString)(tar.value), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_56, (0, vue_1.toDisplayString)(tar.value), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_91, [_hoisted_92, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.location, function (loc, l) {
+ ), (0, vue_1.createElementVNode)("div", _hoisted_57, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.location_reference) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.location, function (loc, l) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: l,
"class": (0, vue_1.normalizeClass)(["item", {
@@ -26046,14 +26395,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_93], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_94, [_hoisted_95, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.dimension, function (dim, d) {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_58, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.dimension) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.dimension, function (dim, d) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: d,
"class": (0, vue_1.normalizeClass)(["item", {
@@ -26067,7 +26420,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_96], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))]), (0, vue_1.createElementVNode)("span", null, [dim.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
@@ -26077,14 +26432,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_97], 64
+ }, [(0, vue_1.createTextVNode)(" (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]) + ") ", 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_98, [_hoisted_99, (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.comment[0].narrative, function (com, c) {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_59, [(0, vue_1.createElementVNode)("div", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.comment) + ": ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(tar.comment[0].narrative, function (com, c) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: c,
"class": (0, vue_1.normalizeClass)(["item", {
@@ -26098,9 +26457,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_100], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
- )), _hoisted_101]), (0, vue_1.createElementVNode)("span", null, [_hoisted_102, com.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ )), _hoisted_60]), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createTextVNode)(" (" + (0, vue_1.toDisplayString)(_ctx.language.common_lang.language) + ": ", 1
+ /* TEXT */
+ ), com.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 0
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.type.language[com.language]) + ") ", 1
/* TEXT */
@@ -26108,7 +26471,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* STABLE_FRAGMENT */
)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 1
- }, [_hoisted_103], 64
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]) + ") ", 1
+ /* TEXT */
+ )], 64
/* STABLE_FRAGMENT */
))])])], 2
/* CLASS */
@@ -26123,7 +26488,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
))])])])]);
}), 128
/* KEYED_FRAGMENT */
- ))])) : (0, vue_1.createCommentVNode)("v-if", true)])])]), ri != _ctx.indicatorData.length - 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_104)) : (0, vue_1.createCommentVNode)("v-if", true)], 64
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true)])])]), ri != _ctx.indicatorData.length - 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_61)) : (0, vue_1.createCommentVNode)("v-if", true)], 64
/* STABLE_FRAGMENT */
);
}), 128
@@ -26160,16 +26525,7 @@ var _hoisted_2 = {
var _hoisted_3 = {
"class": "mb-3"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Code", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary URI", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = ["href"];
+var _hoisted_4 = ["href"];
function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.referenceData, function (ref, r) {
@@ -26180,14 +26536,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.type[ref.vocabulary]), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("table", _hoisted_3, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_4, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(ref.code), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("table", _hoisted_3, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.code), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(ref.code), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("a", {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.vocabulary_uri), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("a", {
target: "_blank",
href: ref.vocabulary_uri
}, (0, vue_1.toDisplayString)(ref.vocabulary_uri), 9
/* TEXT, PROPS */
- , _hoisted_6)])])])])])], 2
+ , _hoisted_4)])])])])])], 2
/* CLASS */
);
}), 128
@@ -26222,7 +26582,7 @@ var _hoisted_1 = {
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _a;
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)((_a = _ctx.type[_ctx.typeData]) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)((_a = _ctx.type[_ctx.typeData]) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
);
}
@@ -26363,7 +26723,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "rotate-180 pb-2 text-3xl text-white"
})])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)(_component_PageTitle, {
"breadcrumb-data": _ctx.breadcrumbData,
- title: "".concat((_a = _ctx.transactionData.reference) !== null && _a !== void 0 ? _a : 'Untitled', " - Transaction detail"),
+ title: "".concat((_a = _ctx.transactionData.reference) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.untitled, " - ").concat(_ctx.language.common_lang.transaction_detail),
"back-link": "".concat(_ctx.activityLink, "/transaction")
}, {
"default": (0, vue_1.withCtx)(function () {
@@ -26375,12 +26735,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, null, 8
/* PROPS */
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createVNode)(_component_Btn, {
- text: "Edit Transaction",
+ text: _ctx.language.button_lang.edit_something.replace(':something', _ctx.language.common_lang.transaction),
link: "".concat(_ctx.activityLink, "/transaction/").concat(_ctx.transaction.id, "/edit"),
icon: "edit"
}, null, 8
/* PROPS */
- , ["link"])])];
+ , ["text", "link"])])];
}),
_: 1
/* STABLE */
@@ -26585,7 +26945,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
data: _ctx.elementData
}, null, 8
/* PROPS */
- , ["data"])) : _ctx.elementName === 'humanitarian' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.data === "0" ? "False" : _ctx.data === "1" ? "True" : "Missing"), 1
+ , ["data"])) : _ctx.elementName === 'humanitarian' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.data === "0" ? _ctx.language.common_lang["false"] : _ctx.data === "1" ? _ctx.language.common_lang["true"] : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)) : _ctx.elementName === 'provider_organization' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_ProviderOrganization, {
key: 6,
@@ -26632,7 +26992,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
data: _ctx.elementData
}, null, 8
/* PROPS */
- , ["data"])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, (0, vue_1.toDisplayString)((_a = _ctx.data) !== null && _a !== void 0 ? _a : "Missing"), 1
+ , ["data"])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_11, (0, vue_1.toDisplayString)((_a = _ctx.data) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
))])])], 10
/* CLASS, PROPS */
@@ -26669,47 +27029,48 @@ var _hoisted_3 = ["href"];
var _hoisted_4 = {
"class": "iati-list-table text-n-40"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("thead", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("tr", {
+var _hoisted_5 = {
"class": "bg-n-10"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_6 = {
id: "internal_ref",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Internal Ref")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_7 = {
id: "transaction_type",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Transaction Type")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_8 = {
id: "transaction_value",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Transaction Value")]), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_9 = {
id: "transaction_date",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Transaction Date")]), /*#__PURE__*/(0, vue_1.createCommentVNode)(" "), /*#__PURE__*/(0, vue_1.createCommentVNode)(" "), /*#__PURE__*/(0, vue_1.createCommentVNode)(" "), /*#__PURE__*/(0, vue_1.createCommentVNode)(" "), /*#__PURE__*/(0, vue_1.createCommentVNode)(" "), /*#__PURE__*/(0, vue_1.createCommentVNode)(" Status "), /*#__PURE__*/(0, vue_1.createCommentVNode)(" "), /*#__PURE__*/(0, vue_1.createCommentVNode)(" "), /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_10 = {
id: "action",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Action")])])], -1
-/* HOISTED */
-);
-
-var _hoisted_6 = ["onClick"];
-var _hoisted_7 = {
+};
+var _hoisted_11 = ["onClick"];
+var _hoisted_12 = {
"class": "ellipsis relative"
};
-var _hoisted_8 = ["href"];
-var _hoisted_9 = {
+var _hoisted_13 = ["href"];
+var _hoisted_14 = {
"class": "w-52"
};
-var _hoisted_10 = {
+var _hoisted_15 = {
"class": "ellipsis__title--hover"
};
-var _hoisted_11 = ["onClick"];
-var _hoisted_12 = ["onClick"];
-var _hoisted_13 = ["onClick"];
-var _hoisted_14 = {
+var _hoisted_16 = ["onClick"];
+var _hoisted_17 = ["onClick"];
+var _hoisted_18 = ["onClick"];
+var _hoisted_19 = {
"class": "flex text-n-40"
};
-var _hoisted_15 = ["href"];
-var _hoisted_16 = {
+var _hoisted_20 = ["href"];
+var _hoisted_21 = {
"class": "mt-6"
};
@@ -26728,7 +27089,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createVNode)(_component_PageTitle, {
"breadcrumb-data": _ctx.breadcrumbData,
- title: "Transaction List",
+ title: _ctx.language.common_lang.transaction_list,
"back-link": _ctx.activityLink
}, {
"default": (0, vue_1.withCtx)(function () {
@@ -26742,10 +27103,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("a", {
href: "".concat(_ctx.activityLink, "/transaction/create")
}, [(0, vue_1.createVNode)(_component_Btn, {
- text: "Add Transaction",
+ text: _ctx.language.button_lang.add_something.replace(':something', _ctx.language.common_lang.transaction),
icon: "plus",
type: "primary"
- })], 8
+ }, null, 8
+ /* PROPS */
+ , ["text"])], 8
/* PROPS */
, _hoisted_3)])];
}),
@@ -26754,7 +27117,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, 8
/* PROPS */
- , ["breadcrumb-data", "back-link"]), (0, vue_1.createCommentVNode)(" page content "), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [_hoisted_5, (0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.transactionsData.data, function (trans, t, index) {
+ , ["breadcrumb-data", "title", "back-link"]), (0, vue_1.createCommentVNode)(" page content "), (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("thead", null, [(0, vue_1.createElementVNode)("tr", _hoisted_5, [(0, vue_1.createElementVNode)("th", _hoisted_6, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.internal) + " " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.ref), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_7, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.transaction) + " " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.type), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_8, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.transaction) + " " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.value), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_9, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.transaction) + " " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.date), 1
+ /* TEXT */
+ )]), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createCommentVNode)(" Status "), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createCommentVNode)(" "), (0, vue_1.createElementVNode)("th", _hoisted_10, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.action), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("tbody", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.transactionsData.data, function (trans, t, index) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
@@ -26764,31 +27137,31 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: function onClick($event) {
return _ctx.handleNavigate("".concat(_ctx.activityLink, "/transaction/").concat(trans.id));
}
- }, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("a", {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("a", {
href: "".concat(_ctx.activityLink, "/transaction/").concat(trans.id)
}, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(trans.transaction.reference && trans.transaction.reference !== '' ? trans.transaction.reference : '- - -'), 1
/* TEXT */
)], 8
/* PROPS */
- , _hoisted_8), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("span", _hoisted_10, (0, vue_1.toDisplayString)(trans.transaction.reference && trans.transaction.reference !== '' ? trans.transaction.reference : '- - -'), 1
+ , _hoisted_13), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("span", _hoisted_15, (0, vue_1.toDisplayString)(trans.transaction.reference && trans.transaction.reference !== '' ? trans.transaction.reference : '- - -'), 1
/* TEXT */
)])])], 8
/* PROPS */
- , _hoisted_6), (0, vue_1.createElementVNode)("td", {
+ , _hoisted_11), (0, vue_1.createElementVNode)("td", {
"class": "cursor-pointer",
onClick: function onClick($event) {
return _ctx.handleNavigate("".concat(_ctx.activityLink, "/transaction/").concat(trans.id));
}
}, (0, vue_1.toDisplayString)((_a = _ctx.types.transactionType[trans.transaction.transaction_type[0].transaction_type_code]) !== null && _a !== void 0 ? _a : '- - -'), 9
/* TEXT, PROPS */
- , _hoisted_11), (0, vue_1.createElementVNode)("td", {
+ , _hoisted_16), (0, vue_1.createElementVNode)("td", {
"class": "cursor-pointer truncate",
onClick: function onClick($event) {
return _ctx.handleNavigate("".concat(_ctx.activityLink, "/transaction/").concat(trans.id));
}
}, (0, vue_1.toDisplayString)(trans.transaction.value[0].amount ? Number(trans.transaction.value[0].amount).toLocaleString() : '- - -'), 9
/* TEXT, PROPS */
- , _hoisted_12), (0, vue_1.createElementVNode)("td", {
+ , _hoisted_17), (0, vue_1.createElementVNode)("td", {
"class": "cursor-pointer",
onClick: function onClick($event) {
return _ctx.handleNavigate("".concat(_ctx.activityLink, "/transaction/").concat(trans.id));
@@ -26797,7 +27170,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* TEXT */
)], 8
/* PROPS */
- , _hoisted_13), (0, vue_1.createCommentVNode)(" completed "), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("a", {
+ , _hoisted_18), (0, vue_1.createCommentVNode)(" completed "), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("a", {
"class": "mr-6",
href: "".concat(_ctx.activityLink, "/transaction/").concat(trans.id, "/edit")
}, [(0, vue_1.createVNode)(_component_svg_vue, {
@@ -26805,7 +27178,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "text-xl"
})], 8
/* PROPS */
- , _hoisted_15), (0, vue_1.createVNode)(_component_DeleteAction, {
+ , _hoisted_20), (0, vue_1.createVNode)(_component_DeleteAction, {
"item-id": trans.id,
"item-type": "transaction"
}, null, 8
@@ -26813,7 +27186,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["item-id"])])])]);
}), 128
/* KEYED_FRAGMENT */
- ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_16, [_ctx.transactionsData && _ctx.transactionsData.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Pagination, {
+ ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_21, [_ctx.transactionsData && _ctx.transactionsData.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Pagination, {
key: 0,
data: _ctx.transactionsData,
onFetchActivities: _ctx.fetchListings
@@ -26854,27 +27227,22 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "mb-3"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Code", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "text-sm"
};
-var _hoisted_7 = {
+var _hoisted_6 = {
key: 0
};
-var _hoisted_8 = {
+var _hoisted_7 = {
key: 1
};
-var _hoisted_9 = {
+var _hoisted_8 = {
key: 2
};
-var _hoisted_10 = {
+var _hoisted_9 = {
key: 3
};
-var _hoisted_11 = {
+var _hoisted_10 = {
key: 4
};
@@ -26887,17 +27255,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4': i !== Object.keys(_ctx.atData).length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)((_a = _ctx.type.aidTypeVocabulary[at.aid_type_vocabulary]) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)((_a = _ctx.type.aidTypeVocabulary[at.aid_type_vocabulary]) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.code), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_6, [at.aid_type_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.type.aidType[at.aid_type_code]), 1
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_5, [at.aid_type_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.type.aidType[at.aid_type_code]), 1
/* TEXT */
- )) : at.cash_and_voucher_modalities ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.type.cashAndVoucherModalities[at.cash_and_voucher_modalities]), 1
+ )) : at.cash_and_voucher_modalities ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.type.cashAndVoucherModalities[at.cash_and_voucher_modalities]), 1
/* TEXT */
- )) : at.earmarking_category ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.type.earMarkingCategory[at.earmarking_category]), 1
+ )) : at.earmarking_category ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.type.earMarkingCategory[at.earmarking_category]), 1
/* TEXT */
- )) : at.earmarking_modality ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.type.earMarkingModality[at.earmarking_modality]), 1
+ )) : at.earmarking_modality ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.type.earMarkingModality[at.earmarking_modality]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, " Missing "))])])])])])], 2
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))])])])])])], 2
/* CLASS */
);
}), 128
@@ -26941,9 +27313,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["title-content", {
'mb-4': i !== Object.keys(_ctx.tdData[0].narrative).length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, " (" + (0, vue_1.toDisplayString)(post.language ? "Language: ".concat(_ctx.type.languages[post.language]) : 'Language Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, " (" + (0, vue_1.toDisplayString)(post.language ? "".concat(_ctx.language.common_lang.language, ": ").concat(_ctx.type.languages[post.language]) : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.language)) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)((_a = post.narrative) !== null && _a !== void 0 ? _a : 'Narrative Missing'), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)((_a = post.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -26978,7 +27350,7 @@ var _hoisted_1 = {
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.code[0].disbursement_channel_code ? _ctx.type.disbursementChannel[_ctx.code[0].disbursement_channel_code] : 'Disbursement Channel Code Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.code[0].disbursement_channel_code ? _ctx.type.disbursementChannel[_ctx.code[0].disbursement_channel_code] : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.disbursement_channel_code)), 1
/* TEXT */
);
}
@@ -27008,7 +27380,7 @@ var _hoisted_1 = {
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.financeData[0].finance_type ? _ctx.type.financeType[_ctx.financeData[0].finance_type] : 'Finance Type Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.financeData[0].finance_type ? _ctx.type.financeType[_ctx.financeData[0].finance_type] : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.finance_type)), 1
/* TEXT */
);
}
@@ -27038,7 +27410,7 @@ var _hoisted_1 = {
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.flowData[0].flow_type ? _ctx.type.flowType[_ctx.flowData[0].flow_type] : 'Flow Type Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.flowData[0].flow_type ? _ctx.type.flowType[_ctx.flowData[0].flow_type] : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.flow_type)), 1
/* TEXT */
);
}
@@ -27072,48 +27444,32 @@ var _hoisted_2 = {
var _hoisted_3 = {
"class": "mb-3"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Organisation Identifier Code", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+var _hoisted_4 = {
"class": "text-sm"
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = {
+var _hoisted_5 = {
"class": "language mb-1.5"
};
-var _hoisted_8 = {
+var _hoisted_6 = {
"class": "text-sm"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Provider Activity ID", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+var _hoisted_7 = {
"class": "text-sm"
};
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Type", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = {
+var _hoisted_8 = {
"class": "text-sm"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _a, _b;
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("table", _hoisted_3, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_4, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_5, (0, vue_1.toDisplayString)((_a = _ctx.PoData[0].organization_identifier_code) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("table", _hoisted_3, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.organiser_identifier_code), 1
/* TEXT */
- )])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_6, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.PoData[0].narrative, function (po, i) {
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_4, (0, vue_1.toDisplayString)((_a = _ctx.PoData[0].organization_identifier_code) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.PoData[0].narrative, function (po, i) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -27121,18 +27477,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["mb-4 title-content", {
'mb-4': i !== _ctx.PoData[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_7, " ( " + (0, vue_1.toDisplayString)(po.language ? "Language: ".concat(_ctx.type.languages[po.language]) : 'Language: Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_5, " ( " + (0, vue_1.toDisplayString)(po.language ? "".concat(_ctx.language.common_lang.language, ": ").concat(_ctx.type.languages[po.language]) : "".concat(_ctx.language.common_lang.language, ":").concat(_ctx.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)((_a = po.narrative) !== null && _a !== void 0 ? _a : 'Narrative Missing'), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)((_a = po.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_9, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)((_b = _ctx.PoData[0].provider_activity_id) !== null && _b !== void 0 ? _b : 'Missing'), 1
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.provider_activity_id), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_7, (0, vue_1.toDisplayString)((_b = _ctx.PoData[0].provider_activity_id) !== null && _b !== void 0 ? _b : _ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.type), 1
/* TEXT */
- )])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_11, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.PoData[0].type ? _ctx.type.organizationType[_ctx.PoData[0].type] : 'Missing'), 1
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.PoData[0].type ? _ctx.type.organizationType[_ctx.PoData[0].type] : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)])])])])])]);
}
@@ -27166,48 +27526,32 @@ var _hoisted_2 = {
var _hoisted_3 = {
"class": "mb-3"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Organisation Identifier Code", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+var _hoisted_4 = {
"class": "text-sm"
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = {
+var _hoisted_5 = {
"class": "language mb-1.5"
};
-var _hoisted_8 = {
+var _hoisted_6 = {
"class": "text-sm"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Provider Activity ID", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+var _hoisted_7 = {
"class": "text-sm"
};
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Type", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = {
+var _hoisted_8 = {
"class": "text-sm"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _a, _b;
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("table", _hoisted_3, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_4, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_5, (0, vue_1.toDisplayString)((_a = _ctx.PoData[0].organization_identifier_code) !== null && _a !== void 0 ? _a : 'Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("table", _hoisted_3, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.organiser_identifier_code), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_4, (0, vue_1.toDisplayString)((_a = _ctx.PoData[0].organization_identifier_code) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.defualt), 1
/* TEXT */
- )])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_6, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.PoData[0].narrative, function (po, i) {
+ )])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.PoData[0].narrative, function (po, i) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -27215,18 +27559,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["mb-4 title-content", {
'mb-4': i !== _ctx.PoData[0].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_7, " (" + (0, vue_1.toDisplayString)(po.language ? "Language: ".concat(_ctx.type.languages[po.language]) : 'Language Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_5, " (" + (0, vue_1.toDisplayString)(po.language ? "".concat(_ctx.language.common_lang.language, ": ").concat(_ctx.type.languages[po.language]) : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.language)) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)((_a = po.narrative) !== null && _a !== void 0 ? _a : 'Narrative Missing'), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)((_a = po.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_9, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)((_b = _ctx.PoData[0].receiver_activity_id) !== null && _b !== void 0 ? _b : 'Missing'), 1
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.provider_activity_id), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_7, (0, vue_1.toDisplayString)((_b = _ctx.PoData[0].receiver_activity_id) !== null && _b !== void 0 ? _b : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_11, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.PoData[0].type ? _ctx.type.organizationType[_ctx.PoData[0].type] : 'Missing'), 1
+ )])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.type), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.PoData[0].type ? _ctx.type.organizationType[_ctx.PoData[0].type] : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
)])])])])])]);
}
@@ -27263,15 +27611,10 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "mb-3"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "language mb-1.5"
};
-var _hoisted_7 = {
+var _hoisted_6 = {
"class": "text-sm"
};
@@ -27284,7 +27627,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.type.countryCode[cou.country_code]), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(cou.narrative, function (sd, i) {
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(cou.narrative, function (sd, i) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -27292,9 +27637,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["mb-4 title-content", {
'mb-4': i !== cou.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_6, " ( " + (0, vue_1.toDisplayString)(sd.language ? "Language: ".concat(_ctx.type.languages[sd.language]) : 'Language Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_5, " ( " + (0, vue_1.toDisplayString)(sd.language ? "".concat(_ctx.language.common_lang.language, ": ").concat(_ctx.type.languages[sd.language]) : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.language)) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_7, (0, vue_1.toDisplayString)((_a = sd.narrative) !== null && _a !== void 0 ? _a : 'Narrative Missing'), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_6, (0, vue_1.toDisplayString)((_a = sd.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -27341,35 +27686,20 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "mb-3"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Code", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
key: 0
};
-var _hoisted_7 = {
+var _hoisted_6 = {
key: 1
};
-var _hoisted_8 = {
+var _hoisted_7 = {
key: 0
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary URI", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = ["href"];
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = {
+var _hoisted_8 = ["href"];
+var _hoisted_9 = {
"class": "language mb-1.5"
};
-var _hoisted_13 = {
+var _hoisted_10 = {
"class": "text-sm"
};
@@ -27384,16 +27714,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.type.regionVocabulary[cou.region_vocabulary]), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [cou.region_vocabulary === '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(cou.region_code ? _ctx.type.regionCode[cou.region_code] : "Code Missing"), 1
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.code), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)((_a = cou.custom_code) !== null && _a !== void 0 ? _a : "Code Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, [cou.region_vocabulary === '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)(cou.region_code ? _ctx.type.regionCode[cou.region_code] : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.code)), 1
/* TEXT */
- ))])]), cou.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_8, [_hoisted_9, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("a", {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)((_a = cou.custom_code) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.code)), 1
+ /* TEXT */
+ ))])]), cou.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_7, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.vocabulary_uri), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("a", {
target: "_blank",
href: cou.vocabulary_uri
}, (0, vue_1.toDisplayString)(cou.vocabulary_uri), 9
/* TEXT, PROPS */
- , _hoisted_10)])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_11, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(cou.narrative, function (sd, i) {
+ , _hoisted_8)])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(cou.narrative, function (sd, i) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -27401,9 +27737,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["mb-4 title-content", {
'mb-4': i !== cou.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_12, " ( " + (0, vue_1.toDisplayString)(sd.language ? "Language: ".concat(_ctx.type.languages[sd.language]) : "Language Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_9, " ( " + (0, vue_1.toDisplayString)(sd.language ? "".concat(_ctx.language.common_lang.language, ": ").concat(_ctx.type.languages[sd.language]) : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.language)) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_13, (0, vue_1.toDisplayString)((_a = sd.narrative) !== null && _a !== void 0 ? _a : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)((_a = sd.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -27450,59 +27786,44 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "mb-3"
};
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Code", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_5 = {
"class": "text-sm"
};
-var _hoisted_7 = {
+var _hoisted_6 = {
key: 0
};
-var _hoisted_8 = {
+var _hoisted_7 = {
key: 1
};
-var _hoisted_9 = {
+var _hoisted_8 = {
key: 2
};
-var _hoisted_10 = {
+var _hoisted_9 = {
key: 3
};
-var _hoisted_11 = {
+var _hoisted_10 = {
key: 4
};
-var _hoisted_12 = {
+var _hoisted_11 = {
key: 0
};
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary URI", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = {
+var _hoisted_12 = {
"class": "text-sm"
};
-var _hoisted_15 = {
+var _hoisted_13 = {
key: 0
};
-var _hoisted_16 = {
+var _hoisted_14 = {
href: "sec.vocabulary_uri",
target: "_blank"
};
-var _hoisted_17 = {
+var _hoisted_15 = {
key: 1
};
-
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_19 = {
+var _hoisted_16 = {
"class": "language mb-1.5"
};
-var _hoisted_20 = {
+var _hoisted_17 = {
"class": "text-sm"
};
@@ -27515,21 +27836,29 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4': s !== Object.keys(_ctx.sector).length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(sec.sector_vocabulary ? _ctx.type.sectorVocabulary[sec.sector_vocabulary] : "Vocabulary Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(sec.sector_vocabulary ? _ctx.type.sectorVocabulary[sec.sector_vocabulary] : _ctx.language.common_lang.missing.vocabulary), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.code), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_5, [sec.text ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)((_a = sec.text) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )) : sec.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(sec.code ? _ctx.type.sectorCode[sec.code] : _ctx.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ )) : sec.category_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)(sec.category_code ? _ctx.type.sectorCategory[sec.category_code] : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("table", _hoisted_4, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_6, [sec.text ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)((_a = sec.text) !== null && _a !== void 0 ? _a : "Missing"), 1
+ )) : sec.sdg_goal ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(sec.sdg_goal ? _ctx.type.unsdgGoals[sec.sdg_goal] : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : sec.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)(sec.code ? _ctx.type.sectorCode[sec.code] : "Missing"), 1
+ )) : sec.sdg_target ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(sec.sdg_target ? _ctx.type.unsdgTargets[sec.sdg_target] : _ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : sec.category_code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(sec.category_code ? _ctx.type.sectorCategory[sec.category_code] : "Missing"), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])])]), sec.sector_vocabulary === '98' || sec.sector_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_11, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.vocabulary_uri), 1
/* TEXT */
- )) : sec.sdg_goal ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(sec.sdg_goal ? _ctx.type.unsdgGoals[sec.sdg_goal] : "Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_12, [sec.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, [(0, vue_1.createElementVNode)("a", _hoisted_14, (0, vue_1.toDisplayString)(sec.vocabulary_uri), 1
/* TEXT */
- )) : sec.sdg_target ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(sec.sdg_target ? _ctx.type.unsdgTargets[sec.sdg_target] : "Missing"), 1
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])])]), sec.sector_vocabulary === '98' || sec.sector_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_12, [_hoisted_13, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", _hoisted_14, [sec.vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, [(0, vue_1.createElementVNode)("a", _hoisted_16, (0, vue_1.toDisplayString)(sec.vocabulary_uri), 1
+ ))])])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.description), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, " Missing"))])])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_18, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(sec.narrative, function (sd, i) {
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(sec.narrative, function (sd, i) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -27537,9 +27866,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["title-content mb-4", {
'mb-4': i !== sec.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_19, " ( " + (0, vue_1.toDisplayString)(sd.language ? "Language: ".concat(_ctx.type.languages[sd.language]) : "Language Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_16, " ( " + (0, vue_1.toDisplayString)(sd.language ? "".concat(_ctx.language.common_lang.language, ": ").concat(_ctx.type.languages[sd.language]) : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.language)) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_20, (0, vue_1.toDisplayString)((_a = sd.narrative) !== null && _a !== void 0 ? _a : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_17, (0, vue_1.toDisplayString)((_a = sd.narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -27579,7 +27908,7 @@ var _hoisted_1 = {
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.tsData[0].tied_status_code ? _ctx.type.tiedStatusType[_ctx.tsData[0].tied_status_code] : 'Tied Status Code Missing'), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, (0, vue_1.toDisplayString)(_ctx.tsData[0].tied_status_code ? _ctx.type.tiedStatusType[_ctx.tsData[0].tied_status_code] : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.tied_status)), 1
/* TEXT */
);
}
@@ -27605,7 +27934,7 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.toDisplayString)(_ctx.date[0].date ? _ctx.dateFormat(_ctx.date[0].date) : 'Date Missing');
+ return (0, vue_1.toDisplayString)(_ctx.date[0].date ? _ctx.dateFormat(_ctx.date[0].date) : _ctx.language.common_lang.missing.date);
}
exports.render = render;
@@ -27629,7 +27958,7 @@ exports.render = void 0;
var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
function render(_ctx, _cache, $props, $setup, $data, $options) {
- return (0, vue_1.toDisplayString)(_ctx.code[0].transaction_type_code ? _ctx.type.transactionType[_ctx.code[0].transaction_type_code] : 'Code Missing');
+ return (0, vue_1.toDisplayString)(_ctx.code[0].transaction_type_code ? _ctx.type.transactionType[_ctx.code[0].transaction_type_code] : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.code));
}
exports.render = render;
@@ -27669,7 +27998,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'text-[64px]': _ctx.value[0].amount
})
- }, (0, vue_1.toDisplayString)(_ctx.value[0].amount ? Number(_ctx.value[0].amount).toLocaleString() : "Amount Missing"), 3
+ }, (0, vue_1.toDisplayString)(_ctx.value[0].amount ? Number(_ctx.value[0].amount).toLocaleString() : _ctx.language.common_lang.missing.something.replace(':something', _ctx.language.common_lang.amount)), 3
/* TEXT, CLASS */
), _ctx.value[0].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.value[0].currency), 1
/* TEXT */
@@ -27724,76 +28053,58 @@ var _hoisted_7 = {
var _hoisted_8 = {
"class": "inline-flex min-h-[48px] grow items-center"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("h4", {
+var _hoisted_9 = {
"class": "ellipsis__title relative mr-4 font-bold"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
- "class": "ellipsis__title overflow-hidden"
-}, " Import Activity ")], -1
-/* HOISTED */
-);
-
+};
var _hoisted_10 = {
- "class": "tooltip-btn"
+ "class": "ellipsis__title overflow-hidden"
};
var _hoisted_11 = {
+ "class": "tooltip-btn"
+};
+var _hoisted_12 = {
"class": ""
};
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "What is an activity?", -1
-/* HOISTED */
-);
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_13 = {
"class": "tooltip-btn__content z-[1]"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_14 = {
"class": "content"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_15 = {
"class": "mb-1.5 text-caption-c1 font-bold text-bluecoral"
-}, " What is an activity? "), /*#__PURE__*/(0, vue_1.createElementVNode)("p", null, [/*#__PURE__*/(0, vue_1.createTextVNode)(" You need to provide data about your organisation's development and humanitarian 'activities'. The unit of work described by an 'activity' is determined by the organisation that is publishing the data. For example, an activity could be a donor government providing US$ 50 million to a recipient country's government to implement basic education over 5 years. Or an activity could be an NGO spending US$ 500,000 to deliver clean drinking water to 1000 households over 6 months. "), /*#__PURE__*/(0, vue_1.createElementVNode)("br"), /*#__PURE__*/(0, vue_1.createTextVNode)(" Therefore your organisation will need to determine how it will divide its work internally into activities. Read the "), /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- target: "_blank",
- rel: "noopener noreferrer",
- href: "/publishing-checklist",
- "class": "text-bluecoral"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Publishing Checklist")]), /*#__PURE__*/(0, vue_1.createTextVNode)(" for more information. ")])])], -1
-/* HOISTED */
-);
-
-var _hoisted_14 = {
+};
+var _hoisted_16 = {
"class": "mx-10 flex min-h-[65vh] w-[500px] items-start justify-center rounded-lg border border-n-20 bg-white md:w-[calc(100%_-_80px)]"
};
-var _hoisted_15 = {
+var _hoisted_17 = {
"class": "mt-24 max-w-[95%] rounded-lg border border-n-30"
};
-
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("p", {
+var _hoisted_18 = {
"class": "border-b border-n-30 p-4 text-sm font-bold uppercase text-n-50"
-}, " Import .CSV/.XML file ", -1
-/* HOISTED */
-);
-
-var _hoisted_17 = {
+};
+var _hoisted_19 = {
"class": "p-6"
};
-var _hoisted_18 = {
+var _hoisted_20 = {
"class": "mb-4 rounded border border-n-30 px-4 py-3"
};
-var _hoisted_19 = {
+var _hoisted_21 = {
ref: "file",
type: "file",
"class": "min-w-[480px] cursor-pointer p-0 text-sm file:cursor-pointer file:rounded-full file:border file:border-solid file:border-spring-50 file:bg-white file:px-4 file:py-0.5 file:text-spring-50 file:outline-none"
};
-var _hoisted_20 = {
+var _hoisted_22 = {
key: 0,
"class": "error"
};
-var _hoisted_21 = {
+var _hoisted_23 = {
"class": "flex w-[280px] flex-col items-start gap-4 md:w-[400px] md:flex-row md:items-end lg:w-auto lg:justify-between"
};
-var _hoisted_22 = {
+var _hoisted_24 = {
"class": "flex items-center space-x-2.5"
};
-var _hoisted_23 = {
+var _hoisted_25 = {
"class": "relative text-sm text-bluecoral"
};
@@ -27802,30 +28113,46 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("a", _hoisted_7, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "arrow-short-left"
- })])]), (0, vue_1.createElementVNode)("div", _hoisted_8, [_hoisted_9, (0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("button", _hoisted_11, [(0, vue_1.createVNode)(_component_svg_vue, {
+ })])]), (0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("h4", _hoisted_9, [(0, vue_1.createElementVNode)("span", _hoisted_10, (0, vue_1.toDisplayString)($setup.language.common_lang.import_activity), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("button", _hoisted_12, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "question-mark"
- }), _hoisted_12]), _hoisted_13])])])]), (0, vue_1.createCommentVNode)(" ")])]), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("div", null, [_hoisted_16, (0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("input", _hoisted_19, null, 512
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.activities_lang.what_is_activity.label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, (0, vue_1.toDisplayString)($setup.language.activities_lang.what_is_activity.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.activities_lang.what_is_activity.description.one), 1
+ /* TEXT */
+ )])])])])])]), (0, vue_1.createCommentVNode)(" ")])]), (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("p", _hoisted_18, (0, vue_1.toDisplayString)($setup.language.common_lang.import_activities), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("input", _hoisted_21, null, 512
/* NEED_PATCH */
- )]), $setup.error ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, (0, vue_1.toDisplayString)($setup.error), 1
+ )]), $setup.error ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_22, (0, vue_1.toDisplayString)($setup.error), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createVNode)($setup["BtnComponent"], {
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createVNode)($setup["BtnComponent"], {
"class": "!border-red !border",
type: "primary",
- text: "Upload file",
+ text: $setup.language.button_lang.upload_file,
icon: "upload-file",
onClick: $setup.uploadFile
- }), (0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("button", _hoisted_23, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["text"]), (0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createElementVNode)("button", _hoisted_25, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: 'download',
"class": "mr-1"
}), (0, vue_1.createElementVNode)("span", {
onClick: $setup.downloadExcel
- }, "Download .CSV activity Template")]), (0, vue_1.createVNode)($setup["HoverText"], {
- "hover-text": "This template contains all the elements that you have to fill as per the IATI Standard before uploading in IATI Publisher. Please make sure that you follow the structure and format of the template.",
+ }, (0, vue_1.toDisplayString)($setup.language.common_lang.download_csv_template), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)($setup["HoverText"], {
+ "hover-text": $setup.language.common_lang.download_csv_template_description,
name: "",
"class": "hover-text import-activity",
position: "right",
"show-iati-reference": true
- })])])])])])])]), $setup.loader ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Loader"], {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])])])])])])])]), $setup.loader ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Loader"], {
key: 0,
text: $setup.loaderText,
"class": (0, vue_1.normalizeClass)({
@@ -27864,137 +28191,130 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "page-title mb-6"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_3 = {
"class": "pb-4 text-caption-c1 text-n-40"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("nav", {
+};
+var _hoisted_4 = {
"aria-label": "breadcrumbs",
"class": "breadcrumb"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_5 = {
"class": "flex"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+};
+var _hoisted_6 = {
"class": "whitespace-nowrap font-bold",
href: "/activities"
-}, " Your Activities ")])])])], -1
-/* HOISTED */
-);
-
-var _hoisted_4 = {
+};
+var _hoisted_7 = {
"class": "flex items-end gap-4"
};
-var _hoisted_5 = {
+var _hoisted_8 = {
"class": "title max-w-[50%] basis-6/12"
};
-var _hoisted_6 = {
+var _hoisted_9 = {
"class": "inline-flex w-full items-center"
};
-var _hoisted_7 = {
+var _hoisted_10 = {
"class": "inline-flex min-h-[48px] grow flex-wrap items-center"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("h4", {
+var _hoisted_11 = {
"class": "ellipsis__title relative mr-4 font-bold"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_12 = {
"class": "ellipsis__title overflow-hidden"
-}, " Import Activity ")], -1
-/* HOISTED */
-);
-
-var _hoisted_9 = {
+};
+var _hoisted_13 = {
"class": "tooltip-btn"
};
-var _hoisted_10 = {
+var _hoisted_14 = {
"class": ""
};
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "What is an activity?", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_15 = {
"class": "tooltip-btn__content z-[1]"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_16 = {
"class": "content"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_17 = {
"class": "mb-1.5 text-caption-c1 font-bold text-bluecoral"
-}, " What is an activity? "), /*#__PURE__*/(0, vue_1.createElementVNode)("p", null, [/*#__PURE__*/(0, vue_1.createTextVNode)(" You need to provide data about your organisation's development and humanitarian 'activities'. The unit of work described by an 'activity' is determined by the organisation that is publishing the data. For example, an activity could be a donor government providing US$ 50 million to a recipient country's government to implement basic education over 5 years. Or an activity could be an NGO spending US$ 500,000 to deliver clean drinking water to 1000 households over 6 months. "), /*#__PURE__*/(0, vue_1.createElementVNode)("br"), /*#__PURE__*/(0, vue_1.createTextVNode)(" Therefore your organisation will need to determine how it will divide its work internally into activities. Read the "), /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- target: "_blank",
- rel: "noopener noreferrer",
- href: "/publishing-checklist",
- "class": "text-bluecoral"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Publishing Checklist")]), /*#__PURE__*/(0, vue_1.createTextVNode)(" for more information. ")])])], -1
-/* HOISTED */
-);
-
-var _hoisted_13 = {
+};
+var _hoisted_18 = {
"class": "actions relative flex grow flex-col items-end justify-end"
};
-var _hoisted_14 = {
+var _hoisted_19 = {
"class": "inline-flex justify-end"
};
-var _hoisted_15 = {
+var _hoisted_20 = {
"class": "actions flex grow justify-end"
};
-var _hoisted_16 = {
+var _hoisted_21 = {
"class": "inline-flex justify-center"
};
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_22 = {
"class": "mb-2 border-l-2 border-l-salmon-50 bg-paper"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+};
+var _hoisted_23 = {
"class": "alert__content m-2 mb-2.5 rounded bg-camel-10 p-2"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_24 = {
"class": "overflow-hidden text-sm font-normal"
-}, " Activities with errors cannot be imported. Please solve the errors to import your activities.")])], -1
-/* HOISTED */
-);
-
-var _hoisted_18 = {
+};
+var _hoisted_25 = {
"class": "iati-list-table upload-list-table"
};
-var _hoisted_19 = {
+var _hoisted_26 = {
"class": "bg-n-10"
};
-
-var _hoisted_20 = /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+var _hoisted_27 = {
id: "title",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Activity Title")], -1
-/* HOISTED */
-);
-
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+};
+var _hoisted_28 = {
id: "status",
scope: "col"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_29 = {
"class": "block text-left"
-}, "Status")], -1
-/* HOISTED */
-);
-
-var _hoisted_22 = {
+};
+var _hoisted_30 = {
id: "cb",
scope: "col"
};
-var _hoisted_23 = {
+var _hoisted_31 = {
"class": "cursor-pointer"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", _hoisted_7, [_hoisted_8, (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("button", _hoisted_10, [(0, vue_1.createVNode)(_component_svg_vue, {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("nav", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("a", _hoisted_6, (0, vue_1.toDisplayString)($setup.language.activities_lang.your_activities), 1
+ /* TEXT */
+ )])])])]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("h4", _hoisted_11, [(0, vue_1.createElementVNode)("span", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.common_lang.import_activiy), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("button", _hoisted_14, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "question-mark"
- }), _hoisted_11]), _hoisted_12])])])]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("div", _hoisted_16, [$setup.selectedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.activities_lang.what_is_activity.label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, (0, vue_1.toDisplayString)($setup.language.activities_lang.what_is_activity.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.activities_lang.what_is_activity.description.one), 1
+ /* TEXT */
+ )])])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("div", _hoisted_21, [$setup.selectedActivities.length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["BtnComponent"], {
key: 0,
"class": "mr-3.5",
type: "primary",
- text: "Import (".concat($setup.selectedCount, "/").concat($setup.activitiesLength, ")"),
+ text: "".concat($setup.language.button_lang["import"], " (").concat($setup.selectedCount, "/").concat($setup.activitiesLength, ")"),
icon: "download-file",
onClick: $setup.importActivities
}, null, 8
/* PROPS */
- , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true)])])])])])]), (0, vue_1.createCommentVNode)(" Table layout: show after upload complete "), _hoisted_17, (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("thead", null, [(0, vue_1.createElementVNode)("tr", _hoisted_19, [_hoisted_20, _hoisted_21, (0, vue_1.createElementVNode)("th", _hoisted_22, [(0, vue_1.createElementVNode)("span", _hoisted_23, [(0, vue_1.createVNode)(_component_svg_vue, {
+ , ["text"])) : (0, vue_1.createCommentVNode)("v-if", true)])])])])])]), (0, vue_1.createCommentVNode)(" Table layout: show after upload complete "), (0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("span", _hoisted_24, (0, vue_1.toDisplayString)($setup.language.common_lang.activities_with_error), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("thead", null, [(0, vue_1.createElementVNode)("tr", _hoisted_26, [(0, vue_1.createElementVNode)("th", _hoisted_27, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.activities) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.title), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_28, [(0, vue_1.createElementVNode)("span", _hoisted_29, (0, vue_1.toDisplayString)($setup.language.common_lang.status), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("th", _hoisted_30, [(0, vue_1.createElementVNode)("span", _hoisted_31, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "checkbox",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.selectAllActivities();
@@ -28101,14 +28421,10 @@ var _hoisted_2 = ["innerHTML"];
var _hoisted_3 = {
"class": "text-sm leading-relaxed"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_4 = {
"class": "sr-only",
"for": ""
-}, " Select ", -1
-/* HOISTED */
-);
-
+};
var _hoisted_5 = {
key: 0,
"class": "checkbox"
@@ -28135,13 +28451,13 @@ var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [(0, vue_1.createElementVNode)("td", _hoisted_1, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)($props.activity["data"]["title"][0]["narrative"] ? $props.activity["data"]["title"][0]["narrative"] : "Missing") + " ", 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, null, [(0, vue_1.createElementVNode)("td", _hoisted_1, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)($props.activity["data"]["title"][0]["narrative"] ? $props.activity["data"]["title"][0]["narrative"] : $setup.language.common_lang.missing["default"]) + " ", 1
/* TEXT */
), Object.keys($props.activity['errors']).length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", {
key: 0,
"class": "inline-flex cursor-pointer items-center text-crimson-50",
onClick: $setup.toggleError
- }, [(0, vue_1.createTextVNode)(" Show " + (0, vue_1.toDisplayString)($setup.countErrors()) + " errors ", 1
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)($setup.language.common_lang.show) + " " + (0, vue_1.toDisplayString)($setup.countErrors()) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.errors_nocase) + " ", 1
/* TEXT */
), (0, vue_1.createVNode)(_component_svg_vue, {
icon: "dropdown-arrow",
@@ -28175,14 +28491,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* KEYED_FRAGMENT */
))], 2
/* CLASS */
- )]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)(!$props.activity["existence"] ? "New" : "Existing"), 1
+ )]), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)(!$props.activity["existence"] ? $setup.language.common_lang["new"] : $setup.language.common_lang.existing), 1
/* TEXT */
)]), (0, vue_1.createElementVNode)("td", {
"class": "check-column",
onClick: _cache[2] || (_cache[2] = function (event) {
return event.stopPropagation();
})
- }, [_hoisted_4, $setup.countErrors() === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("label", _hoisted_5, [(0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ }, [(0, vue_1.createElementVNode)("label", _hoisted_4, (0, vue_1.toDisplayString)($setup.language.common_lang.select), 1
+ /* TEXT */
+ ), $setup.countErrors() === 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("label", _hoisted_5, [(0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return $setup.activities = $event;
}),
@@ -28242,13 +28560,10 @@ var _hoisted_6 = {
var _hoisted_7 = {
"class": "flex"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_8 = {
"class": "whitespace-nowrap font-bold",
href: "/activities"
-}, "Your Organisation", -1
-/* HOISTED */
-);
+};
var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
"class": "separator mx-4"
@@ -28304,110 +28619,64 @@ var _hoisted_24 = {
var _hoisted_25 = {
"class": "mb-2 flex items-center justify-between"
};
-
-var _hoisted_26 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_26 = {
"class": "mr-2"
-}, "Publishing Progress", -1
-/* HOISTED */
-);
-
-var _hoisted_27 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Fill mandatory fields of all elements to get 100% score", -1
-/* HOISTED */
-);
-
-var _hoisted_28 = {
+};
+var _hoisted_27 = {
"class": "activities__card elements"
};
-var _hoisted_29 = {
+var _hoisted_28 = {
"class": "mb-7 flex items-center justify-between"
};
-
-var _hoisted_30 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Elements", -1
-/* HOISTED */
-);
-
-var _hoisted_31 = {
+var _hoisted_29 = {
"class": "mb-3 flex justify-between"
};
-var _hoisted_32 = {
+var _hoisted_30 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_33 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Core", -1
-/* HOISTED */
-);
-
-var _hoisted_34 = {
+var _hoisted_31 = {
"class": "flex justify-between"
};
-var _hoisted_35 = {
+var _hoisted_32 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_36 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Completed", -1
-/* HOISTED */
-);
-
-var _hoisted_37 = {
+var _hoisted_33 = {
"class": "!z-[200] h-full w-[280px] bg-white pt-8"
};
-var _hoisted_38 = {
+var _hoisted_34 = {
"class": "mb-1 flex"
};
-var _hoisted_39 = {
+var _hoisted_35 = {
"class": "activities__card progress mr-1"
};
-var _hoisted_40 = {
+var _hoisted_36 = {
"class": "mb-2 flex items-center justify-between"
};
-
-var _hoisted_41 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_37 = {
"class": "mr-2"
-}, "Publishing Progress", -1
-/* HOISTED */
-);
-
-var _hoisted_42 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Fill mandatory fields of all elements to get 100% score", -1
-/* HOISTED */
-);
-
-var _hoisted_43 = {
+};
+var _hoisted_38 = {
"class": "activities__card elements"
};
-var _hoisted_44 = {
+var _hoisted_39 = {
"class": "mb-7 flex items-center justify-between"
};
-
-var _hoisted_45 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Elements", -1
-/* HOISTED */
-);
-
-var _hoisted_46 = {
+var _hoisted_40 = {
"class": "mb-3 flex justify-between"
};
-var _hoisted_47 = {
+var _hoisted_41 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_48 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Core", -1
-/* HOISTED */
-);
-
-var _hoisted_49 = {
+var _hoisted_42 = {
"class": "flex justify-between"
};
-var _hoisted_50 = {
+var _hoisted_43 = {
"class": "flex items-center space-x-1"
};
-
-var _hoisted_51 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Completed", -1
-/* HOISTED */
-);
-
-var _hoisted_52 = {
+var _hoisted_44 = {
"class": "activities__content"
};
-var _hoisted_53 = {
+var _hoisted_45 = {
"class": "activities__content--elements -mx-3 grid grid-cols-2"
};
@@ -28452,15 +28721,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "chevron",
"class": "rotate-180 pb-2 text-3xl text-white"
- })])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createCommentVNode)(" title section "), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("nav", _hoisted_6, [(0, vue_1.createElementVNode)("div", _hoisted_7, [_hoisted_8, _hoisted_9, (0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("span", _hoisted_11, (0, vue_1.toDisplayString)(_ctx.organization.name ? (_a = _ctx.organization.name['0'].narrative) !== null && _a !== void 0 ? _a : 'Untitled' : 'Untitled'), 1
+ })])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createCommentVNode)(" title section "), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("nav", _hoisted_6, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("a", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.language.org_lang.your_org), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("span", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.organization.name ? (_b = _ctx.organization.name['0'].narrative) !== null && _b !== void 0 ? _b : 'Untitled' : 'Untitled'), 1
+ ), _hoisted_9, (0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("span", _hoisted_11, (0, vue_1.toDisplayString)(_ctx.organization.name ? (_a = _ctx.organization.name["0"].narrative) !== null && _a !== void 0 ? _a : _ctx.language.common_lang.untitled : _ctx.language.common_lang.untitled), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.organization.name ? (_b = _ctx.organization.name["0"].narrative) !== null && _b !== void 0 ? _b : _ctx.language.common_lang.untitled : _ctx.language.common_lang.untitled), 1
/* TEXT */
)])])])]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("a", _hoisted_15, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "arrow-short-left"
- })])]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("h4", _hoisted_16, [(0, vue_1.createElementVNode)("span", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.organization.name ? (_c = _ctx.organization.name['0'].narrative) !== null && _c !== void 0 ? _c : 'Untitled' : 'Untitled'), 1
+ })])]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("h4", _hoisted_16, [(0, vue_1.createElementVNode)("span", _hoisted_17, (0, vue_1.toDisplayString)(_ctx.organization.name ? (_c = _ctx.organization.name["0"].narrative) !== null && _c !== void 0 ? _c : _ctx.language.common_lang.untitled : _ctx.language.common_lang.untitled), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("span", _hoisted_18, (0, vue_1.toDisplayString)(_ctx.organization.name ? (_d = _ctx.organization.name['0'].narrative) !== null && _d !== void 0 ? _d : 'Untitled' : 'Untitled'), 1
+ ), (0, vue_1.createElementVNode)("span", _hoisted_18, (0, vue_1.toDisplayString)(_ctx.organization.name ? (_d = _ctx.organization.name["0"].narrative) !== null && _d !== void 0 ? _d : _ctx.language.common_lang.untitled : _ctx.language.common_lang.untitled), 1
/* TEXT */
)])])])]), (0, vue_1.createElementVNode)("div", _hoisted_19, [_ctx.toastData.visibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Toast, {
key: 0,
@@ -28472,13 +28743,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["message", "type"])) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.errorData.visibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_ErrorPopUp, {
key: 1,
message: _ctx.errorData.message,
- title: "Organisation couldn’t be published because",
+ title: _ctx.language.common_lang.error.org_could_not_be_published,
onClosePopup: _cache[2] || (_cache[2] = function () {
_ctx.errorData.visibility = false;
})
}, null, 8
/* PROPS */
- , ["message"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createCommentVNode)(" Unpublish /Publish Activity "), (0, vue_1.createVNode)(_component_PublishUnpublish)])])])]), (0, vue_1.createCommentVNode)(" title section ends "), (0, vue_1.createElementVNode)("div", {
+ , ["message", "title"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createCommentVNode)(" Unpublish /Publish Activity "), (0, vue_1.createVNode)(_component_PublishUnpublish)])])])]), (0, vue_1.createCommentVNode)(" title section ends "), (0, vue_1.createElementVNode)("div", {
"class": "sidebar-open-icon",
onClick: _cache[3] || (_cache[3] = //@ts-ignore
function () {
@@ -28493,35 +28764,53 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "chevron",
"class": "pb-2 text-3xl text-white"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("aside", _hoisted_22, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createElementVNode)("div", _hoisted_25, [_hoisted_26, (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ })]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("aside", _hoisted_22, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createElementVNode)("span", _hoisted_26, (0, vue_1.toDisplayString)(_ctx.language.common_lang.publishing_progress), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text",
position: "right"
- })]), (0, vue_1.createVNode)(_component_RadialProgressBar, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createVNode)(_component_RadialProgressBar, {
"class": "mb-3 h-20 text-8xl",
"is-percent": true,
percent: _ctx.progress
}, null, 8
/* PROPS */
- , ["percent"]), _hoisted_27]), (0, vue_1.createElementVNode)("div", _hoisted_28, [(0, vue_1.createElementVNode)("div", _hoisted_29, [_hoisted_30, (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ , ["percent"]), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.fill_mandatory_fields), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createElementVNode)("div", _hoisted_28, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.elements), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_31, [(0, vue_1.createElementVNode)("div", _hoisted_32, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_29, [(0, vue_1.createElementVNode)("div", _hoisted_30, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "core"
- }), _hoisted_33]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.core), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_34, [(0, vue_1.createElementVNode)("div", _hoisted_35, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_31, [(0, vue_1.createElementVNode)("div", _hoisted_32, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "double-tick",
"class": "text-spring-50"
- }), _hoisted_36]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.completed), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text"
- })])])]), (0, vue_1.createVNode)(_component_OrganisationElements, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])])])]), (0, vue_1.createVNode)(_component_OrganisationElements, {
"activity-id": _ctx.organization.id,
data: _ctx.elementProps,
status: _ctx.status
@@ -28529,35 +28818,53 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* PROPS */
, ["activity-id", "data", "status"])]), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)([_ctx.showSidebar ? '-translate-x-[20px] ' : ' -translate-x-[110%]', "opacity-1 fixed top-[60px] z-[100] block h-[calc(100vh_-_50px)] overflow-y-auto duration-200 lg:hidden"])
- }, [(0, vue_1.createElementVNode)("aside", _hoisted_37, [(0, vue_1.createElementVNode)("div", _hoisted_38, [(0, vue_1.createElementVNode)("div", _hoisted_39, [(0, vue_1.createElementVNode)("div", _hoisted_40, [_hoisted_41, (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }, [(0, vue_1.createElementVNode)("aside", _hoisted_33, [(0, vue_1.createElementVNode)("div", _hoisted_34, [(0, vue_1.createElementVNode)("div", _hoisted_35, [(0, vue_1.createElementVNode)("div", _hoisted_36, [(0, vue_1.createElementVNode)("span", _hoisted_37, (0, vue_1.toDisplayString)(_ctx.language.common_lang.publishing_progress), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text",
position: "right"
- })]), (0, vue_1.createVNode)(_component_RadialProgressBar, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createVNode)(_component_RadialProgressBar, {
"class": "mb-3 h-20 text-8xl",
"is-percent": true,
percent: _ctx.progress
}, null, 8
/* PROPS */
- , ["percent"]), _hoisted_42]), (0, vue_1.createElementVNode)("div", _hoisted_43, [(0, vue_1.createElementVNode)("div", _hoisted_44, [_hoisted_45, (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ , ["percent"]), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.fill_mandatory_fields), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_38, [(0, vue_1.createElementVNode)("div", _hoisted_39, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.elements), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_46, [(0, vue_1.createElementVNode)("div", _hoisted_47, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_40, [(0, vue_1.createElementVNode)("div", _hoisted_41, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "core"
- }), _hoisted_48]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.core), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text"
- })]), (0, vue_1.createElementVNode)("div", _hoisted_49, [(0, vue_1.createElementVNode)("div", _hoisted_50, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])]), (0, vue_1.createElementVNode)("div", _hoisted_42, [(0, vue_1.createElementVNode)("div", _hoisted_43, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "double-tick",
"class": "text-spring-50"
- }), _hoisted_51]), (0, vue_1.createVNode)(_component_HoverText, {
- "hover-text": "You cannot publish an activity until all the mandatory fields have been filled.",
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.completed), 1
+ /* TEXT */
+ )]), (0, vue_1.createVNode)(_component_HoverText, {
+ "hover-text": _ctx.language.common_lang.cannot_publish_activity_until_mandatory,
name: "",
"class": "hover-text"
- })])])]), (0, vue_1.createVNode)(_component_OrganisationElements, {
+ }, null, 8
+ /* PROPS */
+ , ["hover-text"])])])]), (0, vue_1.createVNode)(_component_OrganisationElements, {
"activity-id": _ctx.organization.id,
data: _ctx.elementProps,
status: _ctx.status
@@ -28565,7 +28872,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* PROPS */
, ["activity-id", "data", "status"])])], 2
/* CLASS */
- ), (0, vue_1.createElementVNode)("div", _hoisted_52, [(0, vue_1.createElementVNode)("div", _hoisted_53, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.groupedData, function (post, key, index) {
+ ), (0, vue_1.createElementVNode)("div", _hoisted_44, [(0, vue_1.createElementVNode)("div", _hoisted_45, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.groupedData, function (post, key, index) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: index
}, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(post.elements, function (element, name, i) {
@@ -28636,31 +28943,14 @@ var _hoisted_5 = {
var _hoisted_6 = {
"class": "w-full py-2 bg-eggshell"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "All Elements", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Core", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Completed", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Not Completed", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+var _hoisted_7 = {
"class": "grid grid-cols-2 gap-2 elements__listing"
};
-var _hoisted_12 = ["href"];
-var _hoisted_13 = {
+var _hoisted_8 = ["href"];
+var _hoisted_9 = {
"class": "absolute top-0 right-0 inline-flex mt-1 mr-1 status_icons"
};
-var _hoisted_14 = {
+var _hoisted_10 = {
"class": "mt-1 text-xs break-all title"
};
@@ -28709,7 +28999,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 text-lg",
icon: "box"
- }), _hoisted_7]), (0, vue_1.createElementVNode)("li", {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.all_elements), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", {
"class": "flex py-1.5 px-3.5 hover:bg-white",
onClick: _cache[3] || (_cache[3] = function ($event) {
return $setup.dropdownFilter('core');
@@ -28717,7 +29009,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 text-lg",
icon: "core"
- }), _hoisted_8]), (0, vue_1.createElementVNode)("li", {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.core), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", {
"class": "flex py-1.5 px-3.5 hover:bg-white",
onClick: _cache[4] || (_cache[4] = function ($event) {
return $setup.dropdownFilter('completed');
@@ -28725,7 +29019,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-1 text-lg",
icon: "double-tick"
- }), _hoisted_9]), (0, vue_1.createElementVNode)("li", {
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.completed), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", {
"class": "flex py-1.5 px-3.5 hover:bg-white",
onClick: _cache[5] || (_cache[5] = function ($event) {
return $setup.dropdownFilter('not_completed');
@@ -28733,14 +29029,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "ml-1 !mr-1.5",
icon: "red-cross"
- }), _hoisted_10])])], 512
+ }), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.completed), 1
+ /* TEXT */
+ )])])], 512
/* NEED_PATCH */
- ), [[vue_1.vShow, $setup.searchBtnValue]])])]), (0, vue_1.createElementVNode)("div", _hoisted_11, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.filteredElements, function (post, index) {
+ ), [[vue_1.vShow, $setup.searchBtnValue]])])]), (0, vue_1.createElementVNode)("div", _hoisted_7, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)($setup.filteredElements, function (post, index) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", {
key: String(index),
"class": "elements__item relative flex cursor-pointer flex-col items-center justify-center rounded border border-dashed border-n-40 px-[3px] py-2.5 text-n-30",
href: post.has_data ? '#' + index : '/organisation/' + index
- }, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(index === 'organisation_identifier' ? $props.status['identifier'] : $props.status[index.toString()]) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_9, [(index === 'organisation_identifier' ? $props.status['identifier'] : $props.status[index.toString()]) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_svg_vue, {
key: 0,
"class": "text-base text-teal-50",
icon: "double-tick"
@@ -28758,11 +29056,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "text-base"
}, null, 8
/* PROPS */
- , ["icon"])), (0, vue_1.createElementVNode)("div", _hoisted_14, (0, vue_1.toDisplayString)(index.toString().replace(/_/g, "-")), 1
+ , ["icon"])), (0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)(index.toString().replace(/_/g, "-")), 1
/* TEXT */
)], 8
/* PROPS */
- , _hoisted_12);
+ , _hoisted_8);
}), 128
/* KEYED_FRAGMENT */
))])]);
@@ -28815,12 +29113,9 @@ var _hoisted_8 = {
"class": "icons flex flex-row-reverse items-center"
};
var _hoisted_9 = ["href"];
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_10 = {
"class": "hidden text-[10px] lg:block"
-}, "Edit", -1
-/* HOISTED */
-);
+};
var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
"class": "divider mb-4 h-px w-full bg-n-20"
@@ -28913,7 +29208,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
'text-spring-50': $props.status,
'text-crimson-50': !$props.status
}])
- }, [_hoisted_5, $props.status ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, "completed")) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, "not completed"))], 2
+ }, [_hoisted_5, $props.status ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)($setup.language.common_lang.completed), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.common_lang.not_completed), 1
+ /* TEXT */
+ ))], 2
/* CLASS */
)], 8
/* PROPS */
@@ -28921,9 +29220,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "edit-button mx-2.5 flex items-center text-xs font-bold uppercase",
href: '/organisation/' + $props.title
}, [(0, vue_1.createVNode)(_component_svg_vue, {
- "class": "mr-0.5 text-base",
+ "class": "mr-0.5 text-xs",
icon: "edit"
- }), _hoisted_10], 8
+ }), (0, vue_1.createElementVNode)("span", _hoisted_10, (0, vue_1.toDisplayString)($setup.language.button_lang.edit), 1
+ /* TEXT */
+ )], 8
/* PROPS */
, _hoisted_9), $props.tooltip ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["HoverText"], {
key: 0,
@@ -28945,11 +29246,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i,
"class": "title-content"
- }, [post.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_15, [post.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, " (Language: " + (0, vue_1.toDisplayString)((_a = $props.types) === null || _a === void 0 ? void 0 : _a.languages[post.language]) + ") ", 1
+ }, [post.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_15, [post.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, " (" + (0, vue_1.toDisplayString)($setup.language.common_lang.language) + ": " + (0, vue_1.toDisplayString)((_a = $props.types) === null || _a === void 0 ? void 0 : _a.languages[post.language]) + ") ", 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true), post.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, (0, vue_1.toDisplayString)(post.narrative), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, "Title Missing")), i !== $props.data.content.length - 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_19)) : (0, vue_1.createCommentVNode)("v-if", true)]);
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.title), 1
+ /* TEXT */
+ )), i !== $props.data.content.length - 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_19)) : (0, vue_1.createCommentVNode)("v-if", true)]);
}), 128
/* KEYED_FRAGMENT */
))])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createCommentVNode)(" name ends "), $props.title == 'reporting_org' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_20, [(0, vue_1.createVNode)($setup["ReportingOrganisation"], {
@@ -29019,86 +29322,52 @@ var _hoisted_4 = {
var _hoisted_5 = {
"class": "ml-4"
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Title", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = {
+var _hoisted_6 = {
key: 0,
"class": "language"
};
-var _hoisted_8 = {
+var _hoisted_7 = {
key: 1,
"class": "flex flex-col"
};
-var _hoisted_9 = {
+var _hoisted_8 = {
key: 2,
"class": "italic"
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Description", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+var _hoisted_9 = {
"class": "language mb-1.5"
};
-var _hoisted_12 = {
+var _hoisted_10 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Language", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Format", -1
-/* HOISTED */
-);
-
-var _hoisted_15 = {
+var _hoisted_11 = {
key: 0
};
-var _hoisted_16 = {
+var _hoisted_12 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Category", -1
-/* HOISTED */
-);
-
-var _hoisted_18 = {
+var _hoisted_13 = {
key: 0
};
-var _hoisted_19 = {
+var _hoisted_14 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_20 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Document Date", -1
-/* HOISTED */
-);
-
-var _hoisted_21 = {
+var _hoisted_15 = {
key: 0
};
-var _hoisted_22 = {
+var _hoisted_16 = {
key: 1,
"class": "italic"
};
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Recipient Country", -1
-/* HOISTED */
-);
-
-var _hoisted_24 = {
+var _hoisted_17 = {
"class": "mb-1.5 text-xs"
};
-var _hoisted_25 = {
+var _hoisted_18 = {
"class": "language mb-1.5"
};
-var _hoisted_26 = {
+var _hoisted_19 = {
"class": "w-[500px] max-w-full"
};
@@ -29115,7 +29384,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
target: "_blank"
}, (0, vue_1.toDisplayString)(document_link.url), 9
/* TEXT, PROPS */
- , _hoisted_3)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, "URL Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_6, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.title['0'].narrative, function (narrative, j) {
+ , _hoisted_3)) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.url)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.title), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.title['0'].narrative, function (narrative, j) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29123,16 +29396,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-1.5': j != document_link.title['0'].narrative.length - 1
})
- }, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + ") ", 1
+ }, [narrative.language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_8, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(narrative.narrative), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), narrative.narrative ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_7, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(narrative.narrative), 1
/* TEXT */
- )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, "Missing"))], 2
+ )])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_10, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.description['0'].narrative, function (narrative, j) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.description), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.description['0'].narrative, function (narrative, j) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29140,30 +29417,38 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': j != document_link.description['0'].length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_11, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_9, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_12, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_13, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.language), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-1.5': _ctx.i != document_link.language.length - 1
}])
}, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(document_link.language.map(function (entry) {
return $setup.types.languages[entry.language];
- }).join(", ") === "" ? "Language Missing" : document_link.language.map(function (entry) {
+ }).join(", ") === "" ? $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.language) : document_link.language.map(function (entry) {
return $setup.types.languages[entry.language];
}).join(", ")), 1
/* TEXT */
)], 2
/* CLASS */
- )])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_14, document_link.format ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_15, (0, vue_1.toDisplayString)(document_link.format), 1
+ )])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.format), 1
+ /* TEXT */
+ ), document_link.format ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_11, (0, vue_1.toDisplayString)(document_link.format), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_16, "Missing"))]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_17, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.category, function (category, i) {
+ ))]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.category), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.category, function (category, i) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29171,27 +29456,35 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-1.5': i != document_link.category.length - 1
}])
- }, [category.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_18, (0, vue_1.toDisplayString)(category.code ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.documentCategory[category.code] : "Category Missing"), 1
+ }, [category.code ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(category.code ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.documentCategory[category.code] : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.category)), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, "Missing"))], 2
+ ))], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_20, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.document_date, function (document_date, i) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.document_date), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.document_date, function (document_date, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i
- }, [document_date.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_21, (0, vue_1.toDisplayString)($setup.formatDate(document_date.date)), 1
+ }, [document_date.date ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_15, (0, vue_1.toDisplayString)($setup.formatDate(document_date.date)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_22, "Missing"))]);
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_23, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.recipient_country, function (recipient_country, i) {
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.recipient_country), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(document_link.recipient_country, function (recipient_country, i) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: i
- }, [(0, vue_1.createElementVNode)("div", _hoisted_24, (0, vue_1.toDisplayString)(recipient_country.code ? "".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.country[recipient_country.code]) : "Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_17, (0, vue_1.toDisplayString)(recipient_country.code ? "".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.country[recipient_country.code]) : $setup.language.common_lang.missing["default"]), 1
/* TEXT */
), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_country.narrative, function (narrative, j) {
var _a, _b;
@@ -29201,9 +29494,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': j != document_link.description['0'].length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_25, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language], " ") : "Language : Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_18, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language], " ") : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_26, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_19, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -29259,82 +29552,49 @@ var _hoisted_5 = {
var _hoisted_6 = {
"class": "ml-4"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value date", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Code", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+var _hoisted_7 = {
"class": "description-content"
};
-var _hoisted_11 = {
+var _hoisted_8 = {
"class": "language mb-1.5"
};
-var _hoisted_12 = {
+var _hoisted_9 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_13 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period", -1
-/* HOISTED */
-);
-
-var _hoisted_14 = {
+var _hoisted_10 = {
"class": "indicator overflow-hidden rounded-t-lg border border-n-20"
};
-
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_11 = {
"class": "head flex items-center border-b border-n-20 px-6 py-2"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_12 = {
"class": "text-xs font-bold text-n-50"
-}, "Budget line")], -1
-/* HOISTED */
-);
-
-var _hoisted_16 = {
+};
+var _hoisted_13 = {
"class": "indicator-content flex px-6 py-2"
};
-var _hoisted_17 = {
+var _hoisted_14 = {
"class": "elements-detail grow"
};
-var _hoisted_18 = {
+var _hoisted_15 = {
"class": "category flex"
};
-var _hoisted_19 = {
+var _hoisted_16 = {
key: 0
};
-var _hoisted_20 = {
+var _hoisted_17 = {
key: 1
};
-var _hoisted_21 = {
+var _hoisted_18 = {
"class": "ml-4"
};
-
-var _hoisted_22 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", {
+var _hoisted_19 = {
"class": "pr-20 text-n-40"
-}, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value date", -1
-/* HOISTED */
-);
-
-var _hoisted_24 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_25 = {
+};
+var _hoisted_20 = {
"class": "language mb-1.5"
};
-var _hoisted_26 = {
+var _hoisted_21 = {
"class": "w-[500px] max-w-full"
};
@@ -29347,15 +29607,23 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4 border-b border-n-20 pb-4': Number(index) != $props.content.length - 1
})
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(recipient_country_budget.status ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.budgetType[recipient_country_budget.status] : "Status Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(recipient_country_budget.status ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.budgetType[recipient_country_budget.status] : $setup.language.common_lang.missing.status), 1
/* TEXT */
), (0, vue_1.createElementVNode)("div", _hoisted_3, [recipient_country_budget.value[0].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(Number(recipient_country_budget.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(recipient_country_budget.value["0"].currency), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, " Budget Amount Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_7, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(recipient_country_budget.value["0"].value_date)), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.budget_value)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(recipient_country_budget.value["0"].value_date)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.code), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_8, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(recipient_country_budget.recipient_country["0"].code ? $setup.types.country[recipient_country_budget.recipient_country["0"].code] : "Code Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(recipient_country_budget.recipient_country["0"].code ? $setup.types.country[recipient_country_budget.recipient_country["0"].code] : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.code)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_9, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_country_budget.recipient_country['0'].narrative, function (narrative, i) {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_country_budget.recipient_country['0'].narrative, function (narrative, i) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29363,18 +29631,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4': i != recipient_country_budget.recipient_country['0'].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, " ( " + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + " ) ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, " ( " + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + " ) ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_12, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_9, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_13, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(recipient_country_budget.period_start["0"].date)) + " - " + (0, vue_1.toDisplayString)($setup.formatDate(recipient_country_budget.period_end["0"].date)), 1
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.period), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(recipient_country_budget.period_start["0"].date)) + " - " + (0, vue_1.toDisplayString)($setup.formatDate(recipient_country_budget.period_end["0"].date)), 1
+ /* TEXT */
+ )])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("span", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.common_lang.budget_line), 1
/* TEXT */
- )])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_14, [_hoisted_15, ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_country_budget.budget_line, function (budget_line, j) {
+ )]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_country_budget.budget_line, function (budget_line, j) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29382,13 +29654,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-2 border-b border-n-20': j !== recipient_country_budget.budget_line.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("div", _hoisted_18, [budget_line.value['0'].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_19, (0, vue_1.toDisplayString)(Number(budget_line.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(budget_line.value["0"].currency), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [budget_line.value['0'].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_16, (0, vue_1.toDisplayString)(Number(budget_line.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(budget_line.value["0"].currency), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_17, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.budget_amount)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", _hoisted_19, (0, vue_1.toDisplayString)($setup.language.common_lang.reference), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, " Budget Amount Missing "))]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_22, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = budget_line.ref) !== null && _a !== void 0 ? _a : "Reference Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = budget_line.ref) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing.reference), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_23, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(budget_line.value["0"].value_date)), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_24, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(budget_line.narrative, function (narrative, k) {
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(budget_line.value["0"].value_date)), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(budget_line.narrative, function (narrative, k) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29396,9 +29676,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k != budget_line.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_25, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_20, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_26, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_21, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -29456,70 +29736,40 @@ var _hoisted_5 = {
var _hoisted_6 = {
"class": "elements-detail mb-4"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Recipient Org", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = {
+var _hoisted_7 = {
"class": "description-content"
};
-var _hoisted_9 = {
+var _hoisted_8 = {
"class": "language mb-1.5"
};
-var _hoisted_10 = {
+var _hoisted_9 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value Date", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period", -1
-/* HOISTED */
-);
-
-var _hoisted_13 = {
+var _hoisted_10 = {
"class": "indicator overflow-hidden rounded-t-lg border border-n-20"
};
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_11 = {
"class": "head flex items-center border-b border-n-20 px-6 py-2"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_12 = {
"class": "text-xs font-bold text-n-50"
-}, "budget line")], -1
-/* HOISTED */
-);
-
-var _hoisted_15 = {
+};
+var _hoisted_13 = {
"class": "indicator-content flex px-6 py-2"
};
-var _hoisted_16 = {
+var _hoisted_14 = {
"class": "elements-detail grow"
};
-var _hoisted_17 = {
+var _hoisted_15 = {
"class": "category flex"
};
-var _hoisted_18 = {
+var _hoisted_16 = {
"class": "ml-4"
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_20 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value date", -1
-/* HOISTED */
-);
-
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_22 = {
+var _hoisted_17 = {
"class": "language mb-1.5"
};
-var _hoisted_23 = {
+var _hoisted_18 = {
"class": "w-[500px] max-w-full"
};
@@ -29532,11 +29782,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4 border-b border-n-20 pb-4': Number(index) != $props.content.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(recipient_org_budget.status ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.budgetType[recipient_org_budget.status] : "Status Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(recipient_org_budget.status ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.budgetType[recipient_org_budget.status] : $setup.language.common_lang.missing.status), 1
/* TEXT */
), (0, vue_1.createElementVNode)("div", _hoisted_3, [recipient_org_budget.value[0].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(Number(recipient_org_budget.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(recipient_org_budget.value["0"].currency), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, " Budget Amount Missing"))])]), (0, vue_1.createElementVNode)("div", _hoisted_6, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_org_budget.recipient_org, function (recipient_org, recipient_org_index) {
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.budget_line)), 1
+ /* TEXT */
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_6, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_org_budget.recipient_org, function (recipient_org, recipient_org_index) {
var _a, _b, _c;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29544,7 +29796,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4': recipient_org_index != recipient_org_budget.recipient_org.length - 1
}])
- }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_7, (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(recipient_org.ref ? "Reference - ".concat(recipient_org.ref) : "Reference Missing") + " ", 1
+ }, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.recipient_org), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(recipient_org.ref ? "".concat($setup.language.common_lang.reference, " - ").concat(recipient_org.ref) : $setup.language.common_lang.missing.reference) + " ", 1
/* TEXT */
), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_org.narrative, function (narrative, narrative_index) {
var _a, _b;
@@ -29554,25 +29808,31 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4': narrative_index != recipient_org.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("div", _hoisted_9, " ( " + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + " ) ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("div", _hoisted_8, " ( " + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + " ) ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_10, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_9, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_11, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate((_a = recipient_org_budget.value["0"].value_date) !== null && _a !== void 0 ? _a : "Value Date Missing")), 1
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate((_a = recipient_org_budget.value["0"].value_date) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.value_date))), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.period), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_12, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate((_b = recipient_org_budget.period_start["0"].date) !== null && _b !== void 0 ? _b : "Period Start Missing")) + " - " + (0, vue_1.toDisplayString)($setup.formatDate((_c = recipient_org_budget.period_end["0"].date) !== null && _c !== void 0 ? _c : "Period End Missing")), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate((_b = recipient_org_budget.period_start["0"].date) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.period_start))) + " - " + (0, vue_1.toDisplayString)($setup.formatDate((_c = recipient_org_budget.period_end["0"].date) !== null && _c !== void 0 ? _c : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.period_end))), 1
/* TEXT */
)])])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))]), (0, vue_1.createElementVNode)("div", _hoisted_13, [_hoisted_14, ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_org_budget.budget_line, function (budget_line, j) {
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("span", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.common_lang.budget_line), 1
+ /* TEXT */
+ )]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_org_budget.budget_line, function (budget_line, j) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29580,13 +29840,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-2 border-b border-n-20': j !== recipient_org_budget.budget_line.length - 1
})
- }, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(budget_line.value["0"].amount ? Number(budget_line.value[0].amount).toLocaleString() : "Budget Missing") + " " + (0, vue_1.toDisplayString)(budget_line.value["0"].currency), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(budget_line.value["0"].amount ? Number(budget_line.value[0].amount).toLocaleString() : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.budget)) + " " + (0, vue_1.toDisplayString)(budget_line.value["0"].currency), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.reference), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = budget_line.ref) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing.reference), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_19, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = budget_line.ref) !== null && _a !== void 0 ? _a : "Reference Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = $setup.formatDate(budget_line.value["0"].value_date)) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.value_date)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_20, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = $setup.formatDate(budget_line.value["0"].value_date)) !== null && _b !== void 0 ? _b : "Value Date Missing"), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_21, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(budget_line.narrative, function (narrative, k) {
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(budget_line.narrative, function (narrative, k) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29594,9 +29860,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k != budget_line.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_22, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_17, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_23, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_18, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -29642,23 +29908,10 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "category"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Secondary Reporter", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = {
+var _hoisted_3 = {
"class": "language mb-1.5"
};
-var _hoisted_7 = {
+var _hoisted_4 = {
"class": "w-[500px] max-w-full"
};
@@ -29671,13 +29924,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4 border-b border-n-20 pb-4': Number(index) != $props.content.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(reporting_org.type ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.organizationType[reporting_org.type] : 'Type Missing'), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(reporting_org.type ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.organizationType[reporting_org.type] : $setup.language.common_lang.missing.type), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.reference), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = reporting_org.ref) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.reference), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_3, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = reporting_org.ref) !== null && _b !== void 0 ? _b : 'Reference Missing'), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.secondary_reporter), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_4, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(parseInt(reporting_org.secondary_reporter) ? 'True' : reporting_org.secondary_reporter ? 'False' : 'Missing'), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(parseInt(reporting_org.secondary_reporter) ? $setup.language.common_lang["true"] : reporting_org.secondary_reporter ? $setup.language.common_lang["false"] : $setup.language.missing_lang), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_5, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(reporting_org.narrative, function (narrative, j) {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(reporting_org.narrative, function (narrative, j) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29685,9 +29944,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': j != reporting_org.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_6, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : 'Language : Missing') + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_3, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_7, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : 'Narrative Missing'), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_4, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -29740,96 +29999,54 @@ var _hoisted_5 = {
var _hoisted_6 = {
"class": "ml-4"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value date", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary", -1
-/* HOISTED */
-);
-
-var _hoisted_9 = {
+var _hoisted_7 = {
key: 0
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Vocabulary URI", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+var _hoisted_8 = {
key: 0
};
-var _hoisted_12 = ["href"];
-var _hoisted_13 = {
+var _hoisted_9 = ["href"];
+var _hoisted_10 = {
key: 1
};
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Code", -1
-/* HOISTED */
-);
-
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_16 = {
+var _hoisted_11 = {
"class": "description-content"
};
-var _hoisted_17 = {
+var _hoisted_12 = {
"class": "language mb-1.5"
};
-var _hoisted_18 = {
+var _hoisted_13 = {
"class": "w-[500px] max-w-full"
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period", -1
-/* HOISTED */
-);
-
-var _hoisted_20 = {
+var _hoisted_14 = {
"class": "indicator overflow-hidden rounded-t-lg border border-n-20"
};
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
"class": "head flex items-center border-b border-n-20 px-6 py-2"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
- "class": "text-xs font-bold text-n-50"
-}, "Budget line")], -1
+}, null, -1
/* HOISTED */
);
-var _hoisted_22 = {
+var _hoisted_16 = {
"class": "indicator-content flex px-6 py-2"
};
-var _hoisted_23 = {
+var _hoisted_17 = {
"class": "elements-detail grow"
};
-var _hoisted_24 = {
+var _hoisted_18 = {
"class": "category flex"
};
-var _hoisted_25 = {
+var _hoisted_19 = {
"class": "ml-4"
};
-
-var _hoisted_26 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", {
+var _hoisted_20 = {
"class": "pr-20 text-n-40"
-}, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_27 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value Date", -1
-/* HOISTED */
-);
-
-var _hoisted_28 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_29 = {
+};
+var _hoisted_21 = {
"class": "language mb-1.5"
};
-var _hoisted_30 = {
+var _hoisted_22 = {
"class": "w-[500px] max-w-full"
};
@@ -29842,22 +30059,36 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4 border-b border-n-20 pb-4': Number(index) != $props.content.length - 1
})
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(recipient_region_budget.status ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.budgetType[recipient_region_budget.status] : "Status Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(recipient_region_budget.status ? (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.budgetType[recipient_region_budget.status] : $setup.language.common_lang.missing.status), 1
/* TEXT */
), (0, vue_1.createElementVNode)("div", _hoisted_3, [recipient_region_budget.value[0].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(Number(recipient_region_budget.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(recipient_region_budget.value["0"].currency), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, " Budget Amount Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_7, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(recipient_region_budget.value["0"].value_date)), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.budget_line)), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_8, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_c = (_b = $setup.types) === null || _b === void 0 ? void 0 : _b.regionVocabulary[recipient_region_budget.recipient_region["0"].region_vocabulary]) !== null && _c !== void 0 ? _c : "Vocabulary Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(recipient_region_budget.value["0"].value_date)), 1
/* TEXT */
- )]), recipient_region_budget.recipient_region['0'].region_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_9, [_hoisted_10, recipient_region_budget.recipient_region['0'].vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_11, [(0, vue_1.createElementVNode)("a", {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.vocabulary), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_c = (_b = $setup.types) === null || _b === void 0 ? void 0 : _b.regionVocabulary[recipient_region_budget.recipient_region["0"].region_vocabulary]) !== null && _c !== void 0 ? _c : $setup.language.common_lang.missing.vocabulary), 1
+ /* TEXT */
+ )]), recipient_region_budget.recipient_region['0'].region_vocabulary === '99' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_7, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.vocabulary_uri), 1
+ /* TEXT */
+ ), recipient_region_budget.recipient_region['0'].vocabulary_uri ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_8, [(0, vue_1.createElementVNode)("a", {
target: "_blank",
href: recipient_region_budget.recipient_region['0'].vocabulary_uri
}, (0, vue_1.toDisplayString)(recipient_region_budget.recipient_region["0"].vocabulary_uri), 9
/* TEXT, PROPS */
- , _hoisted_12)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_13, "Vocabulary URI Missing"))])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [_hoisted_14, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(recipient_region_budget.recipient_region["0"].region_vocabulary === "1" ? (_d = $setup.types.region[recipient_region_budget.recipient_region["0"].region_code]) !== null && _d !== void 0 ? _d : "Code Missing" : (_e = recipient_region_budget.recipient_region["0"].code) !== null && _e !== void 0 ? _e : "Code Missing"), 1
+ , _hoisted_9)])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("td", _hoisted_10, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.vocabulary_uri)), 1
+ /* TEXT */
+ ))])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.code), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)(recipient_region_budget.recipient_region["0"].region_vocabulary === "1" ? (_d = $setup.types.region[recipient_region_budget.recipient_region["0"].region_code]) !== null && _d !== void 0 ? _d : $setup.language.common_lang.code : (_e = recipient_region_budget.recipient_region["0"].code) !== null && _e !== void 0 ? _e : $setup.language.common_lang.code), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_15, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_region_budget.recipient_region['0'].narrative, function (narrative, i) {
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_region_budget.recipient_region['0'].narrative, function (narrative, i) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29865,18 +30096,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4': i != recipient_region_budget.recipient_region['0'].narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, " ( " + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + " ) ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, " ( " + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + " ) ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_18, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_13, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)])], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_19, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(recipient_region_budget.period_start["0"].date)) + " - " + (0, vue_1.toDisplayString)($setup.formatDate(recipient_region_budget.period_end["0"].date)), 1
+ ))])]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.period), 1
/* TEXT */
- )])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_20, [_hoisted_21, ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_region_budget.budget_line, function (budget_line, j) {
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(recipient_region_budget.period_start["0"].date)) + " - " + (0, vue_1.toDisplayString)($setup.formatDate(recipient_region_budget.period_end["0"].date)), 1
+ /* TEXT */
+ )])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_14, [_hoisted_15, ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(recipient_region_budget.budget_line, function (budget_line, j) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29884,13 +30117,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-2 border-b border-n-20': j !== recipient_region_budget.budget_line.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(budget_line.value["0"].amount ? Number(budget_line.value[0].amount).toLocaleString() : "Budget Missing") + " " + (0, vue_1.toDisplayString)(budget_line.value["0"].currency), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(budget_line.value["0"].amount ? Number(budget_line.value[0].amount).toLocaleString() : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.budget)) + " " + (0, vue_1.toDisplayString)(budget_line.value["0"].currency), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", _hoisted_20, (0, vue_1.toDisplayString)($setup.language.common_lang.reference), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = budget_line.ref) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing.reference), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_26, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = budget_line.ref) !== null && _a !== void 0 ? _a : "Reference Missing"), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_27, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(budget_line.value["0"].value_date)), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(budget_line.value["0"].value_date)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_28, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(budget_line.narrative, function (narrative, k) {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(budget_line.narrative, function (narrative, k) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -29898,9 +30137,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k != budget_line.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_29, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_21, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_30, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_22, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -29955,56 +30194,31 @@ var _hoisted_4 = {
var _hoisted_5 = {
key: 1
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value date", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = {
+var _hoisted_6 = {
"class": "indicator overflow-hidden rounded-t-lg border border-n-20"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_7 = {
"class": "head flex items-center border-b border-n-20 px-6 py-2"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_8 = {
"class": "text-xs font-bold text-n-50"
-}, "Budget line")], -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+};
+var _hoisted_9 = {
"class": "indicator-content flex px-6 py-2"
};
-var _hoisted_11 = {
+var _hoisted_10 = {
"class": "elements-detail grow"
};
-var _hoisted_12 = {
+var _hoisted_11 = {
"class": "category flex"
};
-var _hoisted_13 = {
+var _hoisted_12 = {
"class": "ml-4"
};
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value Date", -1
-/* HOISTED */
-);
-
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_17 = {
+var _hoisted_13 = {
"class": "language mb-1.5"
};
-var _hoisted_18 = {
+var _hoisted_14 = {
"class": "w-[500px] max-w-full"
};
@@ -30017,15 +30231,23 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-4 border-b border-n-20 pb-4': Number(index) != $props.content.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)((_b = (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.budgetType[total_budget.total_budget_status]) !== null && _b !== void 0 ? _b : "Budget Status Missing"), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)((_b = (_a = $setup.types) === null || _a === void 0 ? void 0 : _a.budgetType[total_budget.total_budget_status]) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.budget_line)), 1
/* TEXT */
), (0, vue_1.createElementVNode)("div", _hoisted_3, [total_budget.value[0].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(Number(total_budget.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(total_budget.value["0"].currency), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, " Budget Amount Missing"))]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_6, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_c = $setup.formatDate(total_budget.period_start["0"].date)) !== null && _c !== void 0 ? _c : "Period Start Date Missing") + " - " + (0, vue_1.toDisplayString)((_d = $setup.formatDate(total_budget.period_end["0"].date)) !== null && _d !== void 0 ? _d : "Period End Date Missing"), 1
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)($setup.language.common_lang.budget_amount), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.period), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_c = $setup.formatDate(total_budget.period_start["0"].date)) !== null && _c !== void 0 ? _c : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.period_start)) + " - " + (0, vue_1.toDisplayString)((_d = $setup.formatDate(total_budget.period_end["0"].date)) !== null && _d !== void 0 ? _d : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.period_end)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_7, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_e = $setup.formatDate(total_budget.value["0"].value_date)) !== null && _e !== void 0 ? _e : "Value Date Missing"), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
/* TEXT */
- )])])])]), (0, vue_1.createElementVNode)("div", _hoisted_8, [_hoisted_9, ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(total_budget.budget_line, function (budget_line, j) {
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_e = $setup.formatDate(total_budget.value["0"].value_date)) !== null && _e !== void 0 ? _e : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.value_date)), 1
+ /* TEXT */
+ )])])])]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("span", _hoisted_8, (0, vue_1.toDisplayString)($setup.language.common_lang.budget_lang), 1
+ /* TEXT */
+ )]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(total_budget.budget_line, function (budget_line, j) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -30033,13 +30255,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-2 border-b border-n-20': j !== total_budget.budget_line.length - 1
})
- }, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(Number(budget_line.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(budget_line.value["0"].currency), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)(Number(budget_line.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(budget_line.value["0"].currency), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.refernece), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = budget_line.ref) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing.reference), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_14, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = budget_line.ref) !== null && _a !== void 0 ? _a : "Reference Missing"), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = $setup.formatDate(budget_line.value["0"].value_date)) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.value_date)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_15, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_b = $setup.formatDate(budget_line.value["0"].value_date)) !== null && _b !== void 0 ? _b : "Value Date Missing"), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_16, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(budget_line.narrative, function (narrative, k) {
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(budget_line.narrative, function (narrative, k) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -30047,9 +30275,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k != budget_line.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_17, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_13, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.common_lang.missing["default"])) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_18, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_14, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -30104,62 +30332,37 @@ var _hoisted_4 = {
var _hoisted_5 = {
"class": "ml-4"
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Period", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value date", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = {
+var _hoisted_6 = {
"class": "indicator overflow-hidden rounded-t-lg border border-n-20"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_7 = {
"class": "head flex items-center border-b border-n-20 px-6 py-2"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_8 = {
"class": "text-xs font-bold text-n-50"
-}, "Expense line")], -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+};
+var _hoisted_9 = {
"class": "indicator-content flex px-6 py-2"
};
-var _hoisted_11 = {
+var _hoisted_10 = {
"class": "elements-detail grow"
};
-var _hoisted_12 = {
+var _hoisted_11 = {
"class": "category flex"
};
-var _hoisted_13 = {
+var _hoisted_12 = {
key: 0
};
-var _hoisted_14 = {
+var _hoisted_13 = {
key: 1
};
-var _hoisted_15 = {
+var _hoisted_14 = {
"class": "ml-4"
};
-
-var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Reference", -1
-/* HOISTED */
-);
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Value Date", -1
-/* HOISTED */
-);
-
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", null, "Narrative", -1
-/* HOISTED */
-);
-
-var _hoisted_19 = {
+var _hoisted_15 = {
"class": "language mb-1.5"
};
-var _hoisted_20 = {
+var _hoisted_16 = {
"class": "w-[500px] max-w-full"
};
@@ -30170,13 +30373,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)({
'mb-4 border-b border-n-20 pb-4': Number(index) != $props.content.length - 1
})
- }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [total_expenditure.value[0].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(total_expenditure.value["0"].amount ? Number(total_expenditure.value[0].amount).toLocaleString() : "Budget Missing") + " " + (0, vue_1.toDisplayString)(total_expenditure.value["0"].currency), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [total_expenditure.value[0].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_3, (0, vue_1.toDisplayString)(total_expenditure.value["0"].amount ? Number(total_expenditure.value[0].amount).toLocaleString() : $setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.budget)) + " " + (0, vue_1.toDisplayString)(total_expenditure.value["0"].currency), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.something.replace(':something', $setup.language.common_lang.expenditure_amount)), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, " Expenditure Amount Missing"))]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_6, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(total_expenditure.period_start["0"].date)) + " - " + (0, vue_1.toDisplayString)($setup.formatDate(total_expenditure.period_end["0"].date)), 1
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.period), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_7, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(total_expenditure.value["0"].value_date)), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(total_expenditure.period_start["0"].date)) + " - " + (0, vue_1.toDisplayString)($setup.formatDate(total_expenditure.period_end["0"].date)), 1
/* TEXT */
- )])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_8, [_hoisted_9, ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(total_expenditure.expense_line, function (expense_line, j) {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(total_expenditure.value["0"].value_date)), 1
+ /* TEXT */
+ )])])])])]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("span", _hoisted_8, (0, vue_1.toDisplayString)($setup.language.common_lang.expense_line), 1
+ /* TEXT */
+ )]), ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(total_expenditure.expense_line, function (expense_line, j) {
var _a;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -30184,13 +30395,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["item", {
'mb-2 border-b border-n-20': j !== total_expenditure.expense_line.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [expense_line.value['0'].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(Number(expense_line.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(expense_line.value["0"].currency), 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [expense_line.value['0'].amount ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)(Number(expense_line.value["0"].amount).toLocaleString()) + " " + (0, vue_1.toDisplayString)(expense_line.value["0"].currency), 1
+ /* TEXT */
+ )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)($setup.language.common_lang.expense_line) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.missing["default"]), 1
+ /* TEXT */
+ ))]), (0, vue_1.createElementVNode)("div", _hoisted_14, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.reference), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = expense_line.ref) !== null && _a !== void 0 ? _a : $setup.language.common_lang.missing.reference), 1
/* TEXT */
- )) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, " Expense Line Missing "))]), (0, vue_1.createElementVNode)("div", _hoisted_15, [(0, vue_1.createElementVNode)("table", null, [(0, vue_1.createElementVNode)("tbody", null, [(0, vue_1.createElementVNode)("tr", null, [_hoisted_16, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)((_a = expense_line.ref) !== null && _a !== void 0 ? _a : "Reference Missing"), 1
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.value_date), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_17, (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(expense_line.value["0"].value_date)), 1
+ ), (0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.formatDate(expense_line.value["0"].value_date)), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("tr", null, [_hoisted_18, (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(expense_line.narrative, function (narrative, k) {
+ )]), (0, vue_1.createElementVNode)("tr", null, [(0, vue_1.createElementVNode)("td", null, (0, vue_1.toDisplayString)($setup.language.common_lang.narrative), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("td", null, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(expense_line.narrative, function (narrative, k) {
var _a, _b;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
@@ -30198,9 +30417,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["description-content", {
'mb-4': k != expense_line.narrative.length - 1
}])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_19, " (" + (0, vue_1.toDisplayString)(narrative.language ? "Language: ".concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "Language : Missing") + ") ", 1
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_15, " (" + (0, vue_1.toDisplayString)(narrative.language ? "".concat($setup.language.common_lang.language, ": ").concat((_a = $setup.types) === null || _a === void 0 ? void 0 : _a.languages[narrative.language]) : "".concat($setup.language.common_lang.language, " : ").concat($setup.language.missing_lang)) + ") ", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_20, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : "Narrative Missing"), 1
+ ), (0, vue_1.createElementVNode)("div", _hoisted_16, (0, vue_1.toDisplayString)((_b = narrative.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.narrative), 1
/* TEXT */
)], 2
/* CLASS */
@@ -30243,25 +30462,18 @@ var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bund
var _hoisted_1 = {
"class": "mt-7 sm:mt-14"
};
-
-var _hoisted_2 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_2 = {
"class": "mb-4 flex flex-col sm:mb-8"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("h2", null, "Password Recovery"), /*#__PURE__*/(0, vue_1.createElementVNode)("p", null, " Please enter your email, we will send you a link to reset your password ")], -1
-/* HOISTED */
-);
-
+};
var _hoisted_3 = {
"class": "reset__content"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_4 = {
"class": "text-sm font-bold text-bluecoral",
"for": "email"
-}, "Email", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
+};
+var _hoisted_5 = ["placeholder"];
+var _hoisted_6 = {
key: 0,
"class": "error",
role: "alert"
@@ -30286,22 +30498,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.reset && _ctx.reset.apply(_ctx, args);
}, ["enter"]))
- }, [_hoisted_2, (0, vue_1.createElementVNode)("div", _hoisted_3, [_hoisted_4, (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("h2", null, (0, vue_1.toDisplayString)(_ctx.language.password_recovery.password_recovery_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)(_ctx.language.password_recovery.password_recovery_description), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("label", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.password_recovery.email_label), 1
+ /* TEXT */
+ ), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
id: "email",
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return _ctx.formData.email = $event;
}),
type: "email",
- placeholder: "Enter your email address",
+ placeholder: _ctx.language.password_recovery.email_placeholder,
"class": (0, vue_1.normalizeClass)(["input", {
error__input: _ctx.emailError != ''
}])
- }, null, 2
- /* CLASS */
- ), [[vue_1.vModelText, _ctx.formData.email]]), (0, vue_1.createVNode)(_component_svg_vue, {
+ }, null, 10
+ /* CLASS, PROPS */
+ , _hoisted_5), [[vue_1.vModelText, _ctx.formData.email]]), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "mail-icon",
icon: "mail"
- }), _ctx.emailError ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)(_ctx.emailError), 1
+ }), _ctx.emailError ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.emailError), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("button", {
type: "submit",
@@ -30309,7 +30527,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: _cache[1] || (_cache[1] = function ($event) {
return _ctx.reset();
})
- }, " Send password reset link ")], 32
+ }, (0, vue_1.toDisplayString)(_ctx.language.button_lang.send_password_reset), 1
+ /* TEXT */
+ )], 32
/* HYDRATE_EVENTS */
)]);
}
@@ -30337,33 +30557,22 @@ var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bund
var _hoisted_1 = {
"class": "mt-14"
};
-
-var _hoisted_2 = /*#__PURE__*/(0, vue_1.createElementVNode)("h2", null, "Reset Password", -1
-/* HOISTED */
-);
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("p", {
+var _hoisted_2 = {
"class": "mb-4"
-}, "Please enter your new password", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = {
+};
+var _hoisted_3 = {
"class": "text-center"
};
-var _hoisted_5 = {
+var _hoisted_4 = {
key: 0,
"class": "error",
role: "alert"
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_5 = {
"class": "text-sm font-bold text-bluecoral",
"for": "password"
-}, "New Password", -1
-/* HOISTED */
-);
-
+};
+var _hoisted_6 = ["placeholder"];
var _hoisted_7 = {
key: 0,
"class": "error",
@@ -30372,15 +30581,12 @@ var _hoisted_7 = {
var _hoisted_8 = {
"class": "reset__content mt-4"
};
-
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_9 = {
"class": "text-sm font-bold text-bluecoral",
"for": "password_confirmation"
-}, "Repeat Password", -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
+};
+var _hoisted_10 = ["placeholder"];
+var _hoisted_11 = {
key: 0,
"class": "error",
role: "alert"
@@ -30405,14 +30611,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.reset && _ctx.reset.apply(_ctx, args);
}, ["enter"]))
- }, [_hoisted_2, _hoisted_3, (0, vue_1.createElementVNode)("div", _hoisted_4, [_ctx.errorData.email != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_5, (0, vue_1.toDisplayString)(_ctx.errorData.email), 1
+ }, [(0, vue_1.createElementVNode)("h2", null, (0, vue_1.toDisplayString)(_ctx.language.common_lang.reset_password), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.language.common_lang.enter_new_password), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_3, [_ctx.errorData.email != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.errorData.email), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", {
"class": (0, vue_1.normalizeClass)({
'reset__content mt-8': !_ctx.errorData.email,
'reset__content mt-3': _ctx.errorData.email
})
- }, [_hoisted_6, (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ }, [(0, vue_1.createElementVNode)("label", _hoisted_5, (0, vue_1.toDisplayString)(_ctx.language.common_lang.new_password), 1
+ /* TEXT */
+ ), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
id: "new_password",
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return _ctx.formData.password = $event;
@@ -30421,17 +30633,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
error__input: _ctx.errorData.password != ''
}]),
type: "password",
- placeholder: "Enter a new password"
- }, null, 2
- /* CLASS */
- ), [[vue_1.vModelText, _ctx.formData.password]]), (0, vue_1.createVNode)(_component_svg_vue, {
+ placeholder: _ctx.language.common_lang.enter_new_password_placeholder
+ }, null, 10
+ /* CLASS, PROPS */
+ , _hoisted_6), [[vue_1.vModelText, _ctx.formData.password]]), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "lock-icon text-xl",
icon: "pw-lock"
}), _ctx.errorData.password != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.errorData.password), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
- ), (0, vue_1.createElementVNode)("div", _hoisted_8, [_hoisted_9, (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ ), (0, vue_1.createElementVNode)("div", _hoisted_8, [(0, vue_1.createElementVNode)("label", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.language.common_lang.repeat_password), 1
+ /* TEXT */
+ ), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
id: "repeat_password",
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return _ctx.formData.password_confirmation = $event;
@@ -30440,13 +30654,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
error__input: _ctx.errorData.password_confirmation || (_ctx.errorData.password && _ctx.formData.password != '') != ''
}]),
type: "password",
- placeholder: "Re-enter your password"
- }, null, 2
- /* CLASS */
- ), [[vue_1.vModelText, _ctx.formData.password_confirmation]]), (0, vue_1.createVNode)(_component_svg_vue, {
+ placeholder: _ctx.language.common_lang.reenter_password_placeholder
+ }, null, 10
+ /* CLASS, PROPS */
+ , _hoisted_10), [[vue_1.vModelText, _ctx.formData.password_confirmation]]), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "lock-icon text-xl",
icon: "pw-lock"
- }), _ctx.errorData.password_confirmation != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.errorData.password_confirmation), 1
+ }), _ctx.errorData.password_confirmation != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(_ctx.errorData.password_confirmation), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("button", {
type: "submit",
@@ -30454,7 +30668,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: _cache[2] || (_cache[2] = function ($event) {
return _ctx.reset();
})
- }, " Reset Password ")], 32
+ }, (0, vue_1.toDisplayString)(_ctx.language.common_lang.reset_password), 1
+ /* TEXT */
+ )], 32
/* HYDRATE_EVENTS */
)]);
}
@@ -30492,13 +30708,9 @@ var _hoisted_2 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
var _hoisted_3 = {
"class": "flex items-center mb-4 text-xs text-n-50"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_4 = {
"class": "text-sm font-bold text-n-50"
-}, "Default for all data", -1
-/* HOISTED */
-);
-
+};
var _hoisted_5 = {
"class": "mt-4 mb-6 register"
};
@@ -30508,13 +30720,9 @@ var _hoisted_6 = {
var _hoisted_7 = {
"class": "flex justify-between"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_8 = {
"for": "default-currency"
-}, "Default Currency", -1
-/* HOISTED */
-);
-
+};
var _hoisted_9 = {
key: 0,
"class": "error",
@@ -30526,13 +30734,9 @@ var _hoisted_10 = {
var _hoisted_11 = {
"class": "flex justify-between"
};
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_12 = {
"for": "default-language"
-}, "Default Language", -1
-/* HOISTED */
-);
-
+};
var _hoisted_13 = {
key: 0,
"class": "error",
@@ -30541,13 +30745,9 @@ var _hoisted_13 = {
var _hoisted_14 = {
key: 1
};
-
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_15 = {
"class": "text-sm font-bold text-n-50"
-}, "Default for activity data", -1
-/* HOISTED */
-);
-
+};
var _hoisted_16 = {
"class": "mt-4 register"
};
@@ -30557,52 +30757,41 @@ var _hoisted_17 = {
var _hoisted_18 = {
"class": "flex justify-between"
};
-
-var _hoisted_19 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_19 = {
"for": "default-hierarchy"
-}, "Default Hierarchy", -1
-/* HOISTED */
-);
-
-var _hoisted_20 = {
+};
+var _hoisted_20 = ["placeholder"];
+var _hoisted_21 = {
key: 0,
"class": "error",
role: "alert"
};
-var _hoisted_21 = {
+var _hoisted_22 = {
key: 1
};
-var _hoisted_22 = {
+var _hoisted_23 = {
"class": "flex justify-between"
};
-
-var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
- "for": "budget-not-provided"
-}, "Budget Not Provided", -1
-/* HOISTED */
-);
-
var _hoisted_24 = {
+ "for": "budget-not-provided"
+};
+var _hoisted_25 = {
key: 0,
"class": "error",
role: "alert"
};
-var _hoisted_25 = {
+var _hoisted_26 = {
"class": "flex justify-between"
};
-
-var _hoisted_26 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
- "for": "humanitarian"
-}, "Humanitarian", -1
-/* HOISTED */
-);
-
var _hoisted_27 = {
+ "for": "humanitarian"
+};
+var _hoisted_28 = {
key: 0,
"class": "error",
role: "alert"
};
-var _hoisted_28 = {
+var _hoisted_29 = {
key: 1
};
@@ -30612,20 +30801,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Multiselect = (0, vue_1.resolveComponent)("Multiselect");
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_1, [_hoisted_2, (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
- name: "Default Values",
- "hover-text": "These values will be automatically added to your data files."
- })])])]), _hoisted_4, (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_7, [_hoisted_8, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
- name: "Default Currency",
- "hover-text": "The currency in which you report your financial transactions. You can later manually change the currency on individual transactions and budgets if required.",
+ name: _ctx.language.settings_lang.default_values.label,
+ "hover-text": _ctx.language.settings_lang.default_values.hover_text
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])])]), (0, vue_1.createElementVNode)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_for_all_data_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("label", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_currency.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ name: _ctx.language.settings_lang.default_currency.label,
+ "hover-text": _ctx.language.settings_lang.default_currency.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.createVNode)(_component_Multiselect, {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createVNode)(_component_Multiselect, {
id: "default-currency",
modelValue: _ctx.defaultForm.default_currency,
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return _ctx.defaultForm.default_currency = $event;
}),
"class": "vue__select",
- placeholder: "Select from dropdown",
+ placeholder: _ctx.language.settings_lang.default_currency.placeholder,
options: _ctx.props.currencies,
searchable: true,
onClick: _cache[1] || (_cache[1] = function ($event) {
@@ -30633,13 +30830,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, null, 8
/* PROPS */
- , ["modelValue", "options"]), _ctx.defaultError.default_currency ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.defaultError.default_currency), 1
+ , ["modelValue", "placeholder", "options"]), _ctx.defaultError.default_currency ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.defaultError.default_currency), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.defaultError.default_currency ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_currency.help_text), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("label", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_language.label), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.defaultError.default_currency ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_10, " If you do not set your default currency, you have to choose and select currency manually for all the financial transactions. ")) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_11, [_hoisted_12, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
- name: "Default Language",
- "hover-text": "The language in which you provide data on your activities. You can later manually change the language on individual text if required.",
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ name: _ctx.language.settings_lang.default_language.label,
+ "hover-text": _ctx.language.settings_lang.default_language.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.createVNode)(_component_Multiselect, {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createVNode)(_component_Multiselect, {
id: "default-language",
modelValue: _ctx.defaultForm.default_language,
"onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
@@ -30648,7 +30851,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["vue__select", {
error__input: _ctx.defaultError.default_language
}]),
- placeholder: "Select language from dropdown",
+ placeholder: _ctx.language.settings_lang.default_language.placeholder,
searchable: true,
options: _ctx.props.languages,
onClick: _cache[3] || (_cache[3] = function ($event) {
@@ -30656,33 +30859,47 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, null, 8
/* PROPS */
- , ["modelValue", "class", "options"]), _ctx.defaultError.default_language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.defaultError.default_language), 1
+ , ["modelValue", "class", "placeholder", "options"]), _ctx.defaultError.default_language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.defaultError.default_language), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.defaultError.default_language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_language.label), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])])]), (0, vue_1.createElementVNode)("span", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_for_activity_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("label", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_hierarchy.label), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.defaultError.default_language ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_14, " If you do not set your default language, you have to choose and select language for all the narrative text in activity and organisation. ")) : (0, vue_1.createCommentVNode)("v-if", true)])])]), _hoisted_15, (0, vue_1.createElementVNode)("div", _hoisted_16, [(0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_18, [_hoisted_19, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
width: "w-64",
- name: "Default Hierarchy",
- "hover-text": "If you are reporting both programmes (parent activities) and projects (child activities),\n choose the hierarchical level that most of your activities are at. e.g. parent activity = 1; child activity = 2.\n If all your activities are at the same level i.e. you have no child activities, then choose 1.",
+ name: _ctx.language.settings_lang.default_hierarchy.label,
+ "hover-text": _ctx.language.settings_lang.default_hierarchy.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
id: "default-hierarchy",
"onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
return _ctx.defaultForm.hierarchy = $event;
}),
"class": "mb-2 register__input",
type: "text",
- placeholder: "Type default hierarchy here",
+ placeholder: _ctx.language.settings_lang.default_hierarchy.placeholder,
onInput: _cache[5] || (_cache[5] = function ($event) {
return _ctx.updateStore('hierarchy');
})
- }, null, 544
- /* HYDRATE_EVENTS, NEED_PATCH */
- ), [[vue_1.vModelText, _ctx.defaultForm.hierarchy]]), _ctx.defaultError.hierarchy ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, (0, vue_1.toDisplayString)(_ctx.defaultError.hierarchy), 1
+ }, null, 40
+ /* PROPS, HYDRATE_EVENTS */
+ , _hoisted_20), [[vue_1.vModelText, _ctx.defaultForm.hierarchy]]), _ctx.defaultError.hierarchy ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_21, (0, vue_1.toDisplayString)(_ctx.defaultError.hierarchy), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.defaultError.hierarchy ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_22, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_hierarchy.help_text), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.defaultError.hierarchy ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_21, " If hierarchy is not reported then 1 is assumed. If multiple levels are reported then, to avoid double counting, financial transactions should only be reported at the lowest hierarchical level. ")) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_22, [_hoisted_23, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("label", _hoisted_24, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.budget_not_provided.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
width: "w-72",
- name: "Budget Not Provided",
- "hover-text": "A code indicating the reason why this activity does not contain any iati-activity/budget elements. The attribute MUST only be used when no budget elements are present."
- })])]), (0, vue_1.createVNode)(_component_Multiselect, {
+ name: _ctx.language.settings_lang.budget_not_provided.label,
+ "hover-text": _ctx.language.settings_lang.budget_not_provided.hover_text
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createVNode)(_component_Multiselect, {
id: "budget_not_provided",
modelValue: _ctx.defaultForm.budget_not_provided,
"onUpdate:modelValue": _cache[6] || (_cache[6] = function ($event) {
@@ -30691,7 +30908,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["vue__select", {
error__input: _ctx.defaultError.budget_not_provided
}]),
- placeholder: "Select budget not provided type here",
+ placeholder: _ctx.language.settings_lang.budget_not_provided.placeholder,
options: _ctx.props.budgetNotProvided,
searchable: true,
onClick: _cache[7] || (_cache[7] = function ($event) {
@@ -30699,14 +30916,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, null, 8
/* PROPS */
- , ["modelValue", "class", "options"]), _ctx.defaultError.budget_not_provided ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_24, (0, vue_1.toDisplayString)(_ctx.defaultError.budget_not_provided), 1
+ , ["modelValue", "class", "placeholder", "options"]), _ctx.defaultError.budget_not_provided ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, (0, vue_1.toDisplayString)(_ctx.defaultError.budget_not_provided), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_26, [(0, vue_1.createElementVNode)("label", _hoisted_27, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.humanitarian.label), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_25, [_hoisted_26, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
width: "w-72",
- name: "Humanitarian",
- "hover-text": "Add a 'Humanitarian Flag' to every activity that your organisation publishes data on. This means that your organisation identifies all their activities as wholly or partially addressing a humanitarian crisis or multiple crises. You can later manually add or remove a Humanitarian Flag on individual activities if required.",
+ name: _ctx.language.settings_lang.humanitarian.label,
+ "hover-text": _ctx.language.settings_lang.humanitarian.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.createVNode)(_component_Multiselect, {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createVNode)(_component_Multiselect, {
id: "humanitarian",
modelValue: _ctx.defaultForm.humanitarian,
"onUpdate:modelValue": _cache[8] || (_cache[8] = function ($event) {
@@ -30715,7 +30936,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": (0, vue_1.normalizeClass)(["vue__select", {
error__input: _ctx.defaultError.humanitarian
}]),
- placeholder: "Select Humanitarian here",
+ placeholder: _ctx.language.settings_lang.humanitarian.placeholder,
options: _ctx.props.humanitarian,
searchable: true,
onClick: _cache[9] || (_cache[9] = function ($event) {
@@ -30723,9 +30944,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, null, 8
/* PROPS */
- , ["modelValue", "class", "options"]), _ctx.defaultError.humanitarian ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_27, (0, vue_1.toDisplayString)(_ctx.defaultError.humanitarian), 1
+ , ["modelValue", "class", "placeholder", "options"]), _ctx.defaultError.humanitarian ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_28, (0, vue_1.toDisplayString)(_ctx.defaultError.humanitarian), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.defaultError.humanitarian ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_29, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.humanitarian.help_text), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.defaultError.humanitarian ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_28, " If not selected, it will be set to 'Yes' in all the activities. ")) : (0, vue_1.createCommentVNode)("v-if", true)])])])]);
+ )) : (0, vue_1.createCommentVNode)("v-if", true)])])])]);
}
exports.render = render;
@@ -30770,13 +30993,9 @@ var _hoisted_5 = {
var _hoisted_6 = {
href: "/activities"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("h2", {
+var _hoisted_7 = {
"class": "ml-3 text-heading-5 font-bold text-n-50 sm:text-heading-4"
-}, " Settings ", -1
-/* HOISTED */
-);
-
+};
var _hoisted_8 = {
"class": "flex"
};
@@ -30786,13 +31005,10 @@ var _hoisted_9 = {
var _hoisted_10 = {
"class": "flex items-center justify-end"
};
-
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_11 = {
"class": "ghost-btn mr-4 sm:mr-8",
href: "/activities"
-}, "Cancel", -1
-/* HOISTED */
-);
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Loader = (0, vue_1.resolveComponent)("Loader");
@@ -30809,7 +31025,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
key: 0
})) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("a", _hoisted_6, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "left-arrow"
- })]), _hoisted_7]), (0, vue_1.createElementVNode)("div", null, [_ctx.toastVisibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Toast, {
+ })]), (0, vue_1.createElementVNode)("h2", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.settings_label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", null, [_ctx.toastVisibility ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Toast, {
key: 0,
message: _ctx.toastMessage,
type: _ctx.toastType
@@ -30824,8 +31042,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: _cache[0] || (_cache[0] = function ($event) {
return _ctx.toggleTab('publish');
})
- }, " Publishing Settings ", 2
- /* CLASS */
+ }, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.publishing_settings_label), 3
+ /* TEXT, CLASS */
), (0, vue_1.createElementVNode)("button", {
"class": (0, vue_1.normalizeClass)(["tab-btn", {
active__tab: _ctx.tab === 'default'
@@ -30833,8 +31051,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
onClick: _cache[1] || (_cache[1] = function ($event) {
return _ctx.toggleTab('default');
})
- }, " Default Values ", 2
- /* CLASS */
+ }, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.default_values_label), 3
+ /* TEXT, CLASS */
)]), _ctx.tab === 'publish' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_SettingPublishingForm, {
key: 0,
organization: _ctx.props.organization,
@@ -30853,12 +31071,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* PROPS */
, ["currencies", "languages", "humanitarian", "budget-not-provided", "onKeyup"]))], 2
/* CLASS */
- )]), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [_hoisted_11, (0, vue_1.createElementVNode)("button", {
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("a", _hoisted_11, (0, vue_1.toDisplayString)(_ctx.language.button_lang.cancel), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", {
"class": "primary-btn save-btn",
onClick: _cache[2] || (_cache[2] = function ($event) {
return _ctx.submitForm('setting/store/publisher');
})
- }, (0, vue_1.toDisplayString)(_ctx.tab === 'publish' ? 'Save publishing setting' : 'Save default values'), 1
+ }, (0, vue_1.toDisplayString)(_ctx.tab === 'publish' ? _ctx.language.button_lang.save_publishing_settings : _ctx.language.button_lang.save_default_values), 1
/* TEXT */
)])])]);
}
@@ -30886,13 +31106,9 @@ var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bund
var _hoisted_1 = {
"class": "registry__info"
};
-
-var _hoisted_2 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_2 = {
"class": "mb-4 text-sm font-bold text-n-50"
-}, "Registry Information", -1
-/* HOISTED */
-);
-
+};
var _hoisted_3 = {
"class": "flex items-center mb-4 text-xs text-n-50"
};
@@ -30905,14 +31121,10 @@ var _hoisted_5 = {
var _hoisted_6 = {
"class": "flex justify-between"
};
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_7 = {
"for": "publisher-id"
-}, "Publisher ID ", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = ["value"];
+};
+var _hoisted_8 = ["placeholder", "value"];
var _hoisted_9 = {
key: 0,
"class": "error",
@@ -30924,14 +31136,11 @@ var _hoisted_10 = {
var _hoisted_11 = {
"class": "flex justify-between"
};
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("label", {
+var _hoisted_12 = {
"for": "api-token"
-}, "API Token ", -1
-/* HOISTED */
-);
-
-var _hoisted_13 = {
+};
+var _hoisted_13 = ["placeholder"];
+var _hoisted_14 = {
key: 0,
"class": "error",
role: "alert"
@@ -30940,10 +31149,14 @@ var _hoisted_13 = {
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_HoverText = (0, vue_1.resolveComponent)("HoverText");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_1, [_hoisted_2, (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
- name: "IATI Registry Information",
- "hover-text": "IATI Publisher needs to add your organisation's data to the IATI Registry (iatiregistry.org). To do this, we need to access your organisation's IATI Registry Publisher Account. Please provide your organisation's credentials from the IATI Registry."
- })])])]), (0, vue_1.createElementVNode)("div", {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.registry_information.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ name: _ctx.language.settings_lang.registry_information.label,
+ "hover-text": _ctx.language.settings_lang.registry_information.hover_text
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])])]), (0, vue_1.createElementVNode)("div", {
"class": "mt-6 register",
onKeyup: _cache[4] || (_cache[4] = (0, vue_1.withKeys)( //@ts-ignore
function () {
@@ -30955,18 +31168,22 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.autoVerify && _ctx.autoVerify.apply(_ctx, args);
}, ["enter"]))
- }, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [_hoisted_7, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("label", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.publisher_id.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
width: "w-72",
- name: "Publisher ID",
- "hover-text": "This is the unique ID for your organisation that you created when you set up your IATI Registry Publisher Account. It is a shortened version of your organisation's name, which will include lowercase letters and may include numbers and also - (dash) and _ (underscore). For example nef_mali' for Near East Foundation Mali.",
+ name: _ctx.language.settings_lang.publisher_id.label,
+ "hover-text": _ctx.language.settings_lang.publisher_id.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.createElementVNode)("input", {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.createElementVNode)("input", {
id: "publisher-id",
"class": (0, vue_1.normalizeClass)(["mb-2 register__input", {
error__input: _ctx.publishingError.publisher_id
}]),
type: "text",
- placeholder: "Type Publisher ID here",
+ placeholder: _ctx.language.settings_lang.publisher_id.placeholder,
value: _ctx.organization.publisher_id,
disabled: "true",
onInput: _cache[0] || (_cache[0] = function ($event) {
@@ -30976,11 +31193,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS, PROPS, HYDRATE_EVENTS */
, _hoisted_8)]), _ctx.publishingError.publisher_id ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.publishingError.publisher_id), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [_hoisted_12, (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
- name: "API Token",
- "hover-text": "The API token is a unique key that is generated from your organisation's IATI Registry Publisher Account. It is required to give IATI Publisher permission to add data to the IATI Registry on your behalf. Generate a Token in the 'My Account' tab by logging into to the IATI Registry.",
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("div", _hoisted_10, [(0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("label", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.api_token.label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("button", null, [(0, vue_1.createVNode)(_component_HoverText, {
+ name: _ctx.language.settings_lang.api_token.label,
+ "hover-text": _ctx.language.settings_lang.api_token.hover_text,
"show-iati-reference": true
- })])]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ }, null, 8
+ /* PROPS */
+ , ["name", "hover-text"])])]), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
id: "api-token",
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return _ctx.publishingForm.api_token = $event;
@@ -30989,21 +31210,21 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
error__input: _ctx.publishingError.api_token
}]),
type: "text",
- placeholder: "Type API Token here",
+ placeholder: _ctx.language.settings_lang.api_token.placeholder,
onInput: _cache[2] || (_cache[2] = function ($event) {
return _ctx.updateStore('api_token');
})
- }, null, 34
- /* CLASS, HYDRATE_EVENTS */
- ), [[vue_1.vModelText, _ctx.publishingForm.api_token]]), _ctx.publishingInfo.isVerificationRequested ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", {
+ }, null, 42
+ /* CLASS, PROPS, HYDRATE_EVENTS */
+ , _hoisted_13), [[vue_1.vModelText, _ctx.publishingForm.api_token]]), _ctx.publishingInfo.isVerificationRequested ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", {
key: 0,
"class": (0, vue_1.normalizeClass)({
tag__correct: _ctx.publishingInfo.token_verification,
tag__incorrect: !_ctx.publishingInfo.token_verification
})
- }, (0, vue_1.toDisplayString)(_ctx.publishingInfo.token_verification ? 'Correct' : 'Incorrect'), 3
+ }, (0, vue_1.toDisplayString)(_ctx.publishingInfo.token_verification ? _ctx.language.settings_lang.correct_label : _ctx.language.settings_lang.incorrect_label), 3
/* TEXT, CLASS */
- )) : (0, vue_1.createCommentVNode)("v-if", true)]), _ctx.publishingError.api_token ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.publishingError.api_token), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), _ctx.publishingError.api_token ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.publishingError.api_token), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)])]), (0, vue_1.createElementVNode)("button", {
"class": "primary-btn verify-btn",
@@ -31017,7 +31238,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.submitPublishing && _ctx.submitPublishing.apply(_ctx, args);
})
- }, " Verify ")], 32
+ }, (0, vue_1.toDisplayString)(_ctx.language.settings_lang.uc_verify), 1
+ /* TEXT */
+ )], 32
/* HYDRATE_EVENTS */
)]);
}
@@ -31111,20 +31334,11 @@ var _hoisted_2 = {
var _hoisted_3 = {
"class": "mr-1"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Logged in as ");
-
-var _hoisted_5 = {
+var _hoisted_4 = {
"class": "capitalize"
};
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createTextVNode)(", ");
-
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("b", null, "Switch Back", -1
-/* HOISTED */
-);
-
-var _hoisted_8 = [_hoisted_7];
+var _hoisted_5 = /*#__PURE__*/(0, vue_1.createTextVNode)(", ");
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -31132,16 +31346,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "smile",
"class": "mt-1 mr-1 text-base text-spring-50"
- }), (0, vue_1.createElementVNode)("span", _hoisted_3, [_hoisted_4, (0, vue_1.createElementVNode)("b", _hoisted_5, (0, vue_1.toDisplayString)($props.name), 1
+ }), (0, vue_1.createElementVNode)("span", _hoisted_3, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)($setup.language.common_lang.logged_in_as) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("b", _hoisted_4, (0, vue_1.toDisplayString)($props.name), 1
/* TEXT */
- ), _hoisted_6, (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($props.organizationName), 1
+ ), _hoisted_5, (0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($props.organizationName), 1
/* TEXT */
)]), (0, vue_1.createElementVNode)("span", {
"class": "cursor-pointer text-spring-50",
onClick: _cache[0] || (_cache[0] = function ($event) {
return $setup.switchBack();
})
- }, _hoisted_8)])]);
+ }, [(0, vue_1.createElementVNode)("b", null, (0, vue_1.toDisplayString)($setup.language.button_lang.switch_back), 1
+ /* TEXT */
+ )])])]);
}
exports.render = render;
@@ -31178,44 +31396,30 @@ var _hoisted_4 = ["href"];
var _hoisted_5 = {
"class": "sorting-indicator"
};
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Organisation Name", -1
-/* HOISTED */
-);
-
-var _hoisted_7 = {
+var _hoisted_6 = {
id: "activities",
scope: "col",
style: {
"width": "173px"
}
};
-var _hoisted_8 = ["href"];
-var _hoisted_9 = {
+var _hoisted_7 = ["href"];
+var _hoisted_8 = {
"class": "sorting-indicator"
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Activities", -1
-/* HOISTED */
-);
-
-var _hoisted_11 = {
+var _hoisted_9 = {
id: "updated_on",
scope: "col",
style: {
"width": "173px"
}
};
-var _hoisted_12 = ["href"];
-var _hoisted_13 = {
+var _hoisted_10 = ["href"];
+var _hoisted_11 = {
"class": "sorting-indicator"
};
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, "Updated On", -1
-/* HOISTED */
-);
-
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
+var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
id: "proxy",
scope: "col",
style: {
@@ -31225,54 +31429,44 @@ var _hoisted_15 = /*#__PURE__*/(0, vue_1.createElementVNode)("th", {
/* HOISTED */
);
-var _hoisted_16 = {
+var _hoisted_13 = {
key: 0
};
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", {
+var _hoisted_14 = {
colspan: "4"
-}, "Fetching Data...", -1
-/* HOISTED */
-);
-
-var _hoisted_18 = [_hoisted_17];
-var _hoisted_19 = {
+};
+var _hoisted_15 = {
key: 1
};
-
-var _hoisted_20 = /*#__PURE__*/(0, vue_1.createElementVNode)("td", {
+var _hoisted_16 = {
colspan: "4"
-}, "No Data Available", -1
-/* HOISTED */
-);
-
-var _hoisted_21 = [_hoisted_20];
-var _hoisted_22 = {
+};
+var _hoisted_17 = {
key: 0,
"class": "ellipsis relative"
};
-var _hoisted_23 = {
+var _hoisted_18 = {
"class": "ellipsis overflow-hidden"
};
-var _hoisted_24 = {
+var _hoisted_19 = {
"class": "w-52"
};
-var _hoisted_25 = {
+var _hoisted_20 = {
"class": "ellipsis__title--hover"
};
-var _hoisted_26 = {
+var _hoisted_21 = {
key: 1
};
-var _hoisted_27 = {
+var _hoisted_22 = {
"class": "text-blue-40"
};
-var _hoisted_28 = {
+var _hoisted_23 = {
"class": "text-n-40"
};
-var _hoisted_29 = {
+var _hoisted_24 = {
"class": "text-n-40"
};
-var _hoisted_30 = {
+var _hoisted_25 = {
"class": "mt-6"
};
@@ -31286,45 +31480,57 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
icon: "".concat($setup.orderType === 'name' ? $setup.sortingDirection() : $setup.defaultSortDirection, "-arrow")
}, null, 8
/* PROPS */
- , ["icon"])]), _hoisted_6], 10
+ , ["icon"])]), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.organisation_name), 1
+ /* TEXT */
+ )], 10
/* CLASS, PROPS */
- , _hoisted_4)]), (0, vue_1.createElementVNode)("th", _hoisted_7, [(0, vue_1.createElementVNode)("a", {
+ , _hoisted_4)]), (0, vue_1.createElementVNode)("th", _hoisted_6, [(0, vue_1.createElementVNode)("a", {
"class": (0, vue_1.normalizeClass)(["transition duration-500 text-n-50 hover:text-spring-50", $setup.orderType === 'all_activities_count' ? $setup.sortingDirection() : $setup.defaultSortDirection]),
href: $setup.sortBy('all_activities_count')
- }, [(0, vue_1.createElementVNode)("span", _hoisted_9, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_8, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "".concat($setup.orderType === 'all_activities_count' ? $setup.sortingDirection() : $setup.defaultSortDirection, "-arrow")
}, null, 8
/* PROPS */
- , ["icon"])]), _hoisted_10], 10
+ , ["icon"])]), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.activities), 1
+ /* TEXT */
+ )], 10
/* CLASS, PROPS */
- , _hoisted_8)]), (0, vue_1.createElementVNode)("th", _hoisted_11, [(0, vue_1.createElementVNode)("a", {
+ , _hoisted_7)]), (0, vue_1.createElementVNode)("th", _hoisted_9, [(0, vue_1.createElementVNode)("a", {
"class": (0, vue_1.normalizeClass)(["transition duration-500 text-n-50 hover:text-spring-50", $setup.orderType === 'updated_at' ? $setup.sortingDirection() : $setup.defaultSortDirection]),
href: $setup.sortBy('updated_at')
- }, [(0, vue_1.createElementVNode)("span", _hoisted_13, [(0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createElementVNode)("span", _hoisted_11, [(0, vue_1.createVNode)(_component_svg_vue, {
icon: "".concat($setup.orderType === 'updated_at' ? $setup.sortingDirection() : $setup.defaultSortDirection, "-arrow")
}, null, 8
/* PROPS */
- , ["icon"])]), _hoisted_14], 10
+ , ["icon"])]), (0, vue_1.createElementVNode)("span", null, (0, vue_1.toDisplayString)($setup.language.common_lang.update_on), 1
+ /* TEXT */
+ )], 10
/* CLASS, PROPS */
- , _hoisted_12)]), _hoisted_15])]), (0, vue_1.createElementVNode)("tbody", null, [$setup.organisationData.status === 'fetching' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_16, _hoisted_18)) : $setup.organisationData.status === 'empty' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_19, _hoisted_21)) : ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, {
+ , _hoisted_10)]), _hoisted_12])]), (0, vue_1.createElementVNode)("tbody", null, [$setup.organisationData.status === 'fetching' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_13, [(0, vue_1.createElementVNode)("td", _hoisted_14, (0, vue_1.toDisplayString)($setup.language.common_lang.fetching_data), 1
+ /* TEXT */
+ )])) : $setup.organisationData.status === 'empty' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", _hoisted_15, [(0, vue_1.createElementVNode)("td", _hoisted_16, (0, vue_1.toDisplayString)($setup.language.common_lang.data) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.missing.not_available), 1
+ /* TEXT */
+ )])) : ((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, {
key: 2
}, (0, vue_1.renderList)($setup.organisationData.data.data, function (data) {
var _a, _b, _c, _d, _e;
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("tr", {
key: data.id
- }, [(0, vue_1.createElementVNode)("td", null, [data.name ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_22, [(0, vue_1.createElementVNode)("span", _hoisted_23, (0, vue_1.toDisplayString)((_b = (_a = data === null || data === void 0 ? void 0 : data.name[0]) === null || _a === void 0 ? void 0 : _a.narrative) !== null && _b !== void 0 ? _b : 'Name Missing'), 1
+ }, [(0, vue_1.createElementVNode)("td", null, [data.name ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_17, [(0, vue_1.createElementVNode)("span", _hoisted_18, (0, vue_1.toDisplayString)((_b = (_a = data === null || data === void 0 ? void 0 : data.name[0]) === null || _a === void 0 ? void 0 : _a.narrative) !== null && _b !== void 0 ? _b : $setup.language.common_lang.missing.name), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("span", _hoisted_20, (0, vue_1.toDisplayString)((_d = (_c = data === null || data === void 0 ? void 0 : data.name[0]) === null || _c === void 0 ? void 0 : _c.narrative) !== null && _d !== void 0 ? _d : $setup.language.common_lang.missing.name), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createElementVNode)("span", _hoisted_25, (0, vue_1.toDisplayString)((_d = (_c = data === null || data === void 0 ? void 0 : data.name[0]) === null || _c === void 0 ? void 0 : _c.narrative) !== null && _d !== void 0 ? _d : 'Name Missing'), 1
+ )])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_21, (0, vue_1.toDisplayString)($setup.language.common_lang.missing.name), 1
/* TEXT */
- )])])) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_26, "Name Missing")), (0, vue_1.createElementVNode)("div", _hoisted_27, (0, vue_1.toDisplayString)((_e = data === null || data === void 0 ? void 0 : data.user) === null || _e === void 0 ? void 0 : _e.email), 1
+ )), (0, vue_1.createElementVNode)("div", _hoisted_22, (0, vue_1.toDisplayString)((_e = data === null || data === void 0 ? void 0 : data.user) === null || _e === void 0 ? void 0 : _e.email), 1
/* TEXT */
- )]), (0, vue_1.createElementVNode)("td", _hoisted_28, (0, vue_1.toDisplayString)(data.all_activities_count) + " activities ", 1
+ )]), (0, vue_1.createElementVNode)("td", _hoisted_23, (0, vue_1.toDisplayString)(data.all_activities_count) + " " + (0, vue_1.toDisplayString)($setup.language.common_lang.activities_nocase), 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("td", _hoisted_29, (0, vue_1.toDisplayString)($setup.dateFormat(data.updated_at, 'DD MMMM, YYYY')), 1
+ ), (0, vue_1.createElementVNode)("td", _hoisted_24, (0, vue_1.toDisplayString)($setup.dateFormat(data.updated_at, 'DD MMMM, YYYY')), 1
/* TEXT */
), (0, vue_1.createElementVNode)("td", null, [(0, vue_1.createVNode)($setup["BtnComponent"], {
- text: "proxy",
+ text: $setup.language.button_lang.proxy,
type: "outline",
icon: "smile",
onClick: function onClick($event) {
@@ -31334,10 +31540,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}
}, null, 8
/* PROPS */
- , ["onClick"])])]);
+ , ["text", "onClick"])])]);
}), 128
/* KEYED_FRAGMENT */
- ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_30, [$setup.organisationData.data && $setup.organisationData.data.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Pagination"], {
+ ))])])]), (0, vue_1.createElementVNode)("div", _hoisted_25, [$setup.organisationData.data && $setup.organisationData.data.last_page > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)($setup["Pagination"], {
key: 0,
data: $setup.organisationData.data,
onFetchActivities: $setup.fetchOrganisation
@@ -31377,13 +31583,9 @@ var _hoisted_2 = {
var _hoisted_3 = {
"class": "space-y-4 sm:space-y-6"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("p", {
+var _hoisted_4 = {
"class": "text-center text-xl font-bold text-n-50 sm:text-2xl"
-}, " Please verify your account ", -1
-/* HOISTED */
-);
-
+};
var _hoisted_5 = {
"class": "text-sm text-n-40 sm:text-base"
};
@@ -31393,25 +31595,26 @@ var _hoisted_6 = /*#__PURE__*/(0, vue_1.createTextVNode)(" A verification email
var _hoisted_7 = {
"class": "font-bold text-n-50"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createTextVNode)(". Please click on the link in the email to verify and activate your new IATI publisher account. ");
-
-var _hoisted_9 = {
+var _hoisted_8 = {
href: "/activities",
"class": "btn btn-next get-started-btn"
};
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Get started ");
-
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("form", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [_hoisted_4, (0, vue_1.createElementVNode)("p", _hoisted_5, [_hoisted_6, (0, vue_1.createElementVNode)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.props.email), 1
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("form", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("p", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.email_verification.verify_your_account), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_5, [_hoisted_6, (0, vue_1.createElementVNode)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.props.email), 1
+ /* TEXT */
+ ), (0, vue_1.createTextVNode)(". " + (0, vue_1.toDisplayString)(_ctx.language.email_verification.click_and_activate), 1
/* TEXT */
- ), _hoisted_8])]), (0, vue_1.createVNode)(_component_svg_vue, {
+ )])]), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "verification",
icon: "ic-verification"
- }), (0, vue_1.createElementVNode)("a", _hoisted_9, [_hoisted_10, (0, vue_1.createVNode)(_component_svg_vue, {
+ }), (0, vue_1.createElementVNode)("a", _hoisted_8, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.button_lang.get_started) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-2xl",
icon: "right-arrow"
})])])]);
@@ -31445,61 +31648,55 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "section__container"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_3 = {
"class": "section__title"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("h2", {
- "class": "md:text-4xl text-2xl"
-}, "Create IATI Publisher Account and IATI Registry Account"), /*#__PURE__*/(0, vue_1.createElementVNode)("p", null, " Register your organisation to start your IATI publishing journey by creating accounts in IATI publisher and IATI Registry at once. ")], -1
-/* HOISTED */
-);
-
+};
var _hoisted_4 = {
- "class": "section__wrapper flex justify-center"
+ "class": "md:text-4xl text-2xl"
};
var _hoisted_5 = {
- "class": "mb-4 block border-b border-b-n-10 pb-4 xl:hidden"
+ "class": "section__wrapper flex justify-center"
};
var _hoisted_6 = {
- "class": "text-base font-bold"
+ "class": "mb-4 block border-b border-b-n-10 pb-4 xl:hidden"
};
var _hoisted_7 = {
- "class": "relative mt-3 text-sm text-n-40"
+ "class": "text-base font-bold"
};
var _hoisted_8 = {
+ "class": "relative mt-3 text-sm text-n-40"
+};
+var _hoisted_9 = {
key: 0,
"class": "list__active"
};
-var _hoisted_9 = {
+var _hoisted_10 = {
"class": "flex items-center"
};
-var _hoisted_10 = {
+var _hoisted_11 = {
key: 0,
"class": "mr-3"
};
-var _hoisted_11 = {
+var _hoisted_12 = {
key: 1,
"class": "detail mt-2 font-normal"
};
-var _hoisted_12 = {
+var _hoisted_13 = {
"class": "form__container"
};
-var _hoisted_13 = {
+var _hoisted_14 = {
"class": "flex items-center space-x-1"
};
-var _hoisted_14 = {
+var _hoisted_15 = {
"class": "text-xl font-bold text-n-50 sm:text-2xl"
};
-var _hoisted_15 = {
+var _hoisted_16 = {
key: 0,
"class": "feedback mt-6 border-l-2 border-crimson-50 bg-crimson-10 p-4 text-sm text-n-50"
};
-var _hoisted_16 = {
+var _hoisted_17 = {
"class": "mb-2 flex font-bold"
};
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Error: ");
-
var _hoisted_18 = {
"class": "ml-8 xl:mr-1"
};
@@ -31538,67 +31735,50 @@ var _hoisted_30 = {
var _hoisted_31 = {
"class": "flex flex-wrap items-center justify-between"
};
-
-var _hoisted_32 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Go back ");
-
-var _hoisted_33 = {
+var _hoisted_32 = {
key: 1,
"class": "pb-4 text-sm font-normal text-n-40 sm:pb-0"
};
-
-var _hoisted_34 = /*#__PURE__*/(0, vue_1.createTextVNode)("Already have an account? ");
-
-var _hoisted_35 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_33 = {
"class": "border-b-2 border-b-transparent font-bold text-bluecoral hover:border-b-2 hover:border-b-turquoise hover:text-bluecoral",
href: "/"
-}, "Sign In.", -1
-/* HOISTED */
-);
-
-var _hoisted_36 = [_hoisted_34, _hoisted_35];
-
-var _hoisted_37 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Next Step ");
-
-var _hoisted_38 = {
+};
+var _hoisted_34 = {
key: 0,
"class": "mt-6 text-center"
};
-
-var _hoisted_39 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_35 = {
"class": "text-sm font-normal text-n-40"
-}, [/*#__PURE__*/(0, vue_1.createTextVNode)("Already have an account? "), /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+};
+var _hoisted_36 = {
"class": "border-b-2 border-b-transparent font-bold text-bluecoral hover:border-b-2 hover:border-b-turquoise hover:text-bluecoral",
href: "/"
-}, "Sign In.")], -1
-/* HOISTED */
-);
-
-var _hoisted_40 = [_hoisted_39];
-var _hoisted_41 = {
+};
+var _hoisted_37 = {
"class": "register__sidebar hidden xl:block"
};
-var _hoisted_42 = {
+var _hoisted_38 = {
"class": "text-base font-bold"
};
-var _hoisted_43 = {
+var _hoisted_39 = {
"class": "relative mt-6 text-sm text-n-40"
};
-var _hoisted_44 = {
+var _hoisted_40 = {
key: 0,
"class": "list__active"
};
-var _hoisted_45 = {
+var _hoisted_41 = {
"class": "flex items-center"
};
-var _hoisted_46 = {
+var _hoisted_42 = {
key: 0,
"class": "ml-6 mr-3"
};
-var _hoisted_47 = {
+var _hoisted_43 = {
key: 1,
"class": "ml-6 mr-3"
};
-var _hoisted_48 = {
+var _hoisted_44 = {
key: 1,
"class": "detail mt-2 mb-6 font-normal xl:pr-2"
};
@@ -31616,7 +31796,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("section", _hoisted_1, [_ctx.isLoaderVisible ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Loader, {
key: 0
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("div", _hoisted_4, [_ctx.checkStep('5') ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_EmailVerification, {
+ })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("h2", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.register_lang.create_iati_publisher_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)(_ctx.language.register_lang.create_iati_publisher_subheader), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_5, [_ctx.checkStep('5') ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_EmailVerification, {
key: 0,
email: _ctx.formData['email']
}, null, 8
@@ -31634,16 +31818,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.goToNextForm && _ctx.goToNextForm.apply(_ctx, args);
}, ["enter"]))
- }, [(0, vue_1.createElementVNode)("aside", _hoisted_5, [(0, vue_1.createElementVNode)("span", _hoisted_6, "Step " + (0, vue_1.toDisplayString)(_ctx.getCurrentStep()) + " out of 5", 1
+ }, [(0, vue_1.createElementVNode)("aside", _hoisted_6, [(0, vue_1.createElementVNode)("span", _hoisted_7, "Step " + (0, vue_1.toDisplayString)(_ctx.getCurrentStep()) + " out of 5", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("ul", _hoisted_7, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm, function (form, key, i) {
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_8, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm, function (form, key, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", {
key: i,
"class": (0, vue_1.normalizeClass)({
'relative font-bold text-n-50': _ctx.checkStep(key),
'mb-6 hidden': !_ctx.checkStep(key)
})
- }, [_ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_9, [!form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(i + 1), 1
+ }, [_ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_10, [!form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(i + 1), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", {
"class": (0, vue_1.normalizeClass)(["font-bold", {
@@ -31653,26 +31837,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, (0, vue_1.toDisplayString)(form["title"]), 3
/* TEXT, CLASS */
- )]), _ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_11, (0, vue_1.toDisplayString)(form["description"]), 1
+ )]), _ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_12, (0, vue_1.toDisplayString)(form["description"]), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("div", _hoisted_13, [_ctx.registerForm[_ctx.getCurrentStep()]['hover_text'] ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_HoverText, {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [_ctx.registerForm[_ctx.getCurrentStep()]['hover_text'] ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_HoverText, {
key: 0,
"hover-text": _ctx.registerForm[_ctx.getCurrentStep()]['hover_text'],
name: _ctx.registerForm[_ctx.getCurrentStep()].title,
position: "right"
}, null, 8
/* PROPS */
- , ["hover-text", "name"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.registerForm[_ctx.getCurrentStep()].title), 1
+ , ["hover-text", "name"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.registerForm[_ctx.getCurrentStep()].title), 1
/* TEXT */
- )]), Object.keys(_ctx.iatiError).length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_15, [(0, vue_1.createElementVNode)("p", _hoisted_16, [(0, vue_1.createVNode)(_component_svg_vue, {
+ )]), Object.keys(_ctx.iatiError).length > 0 ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_16, [(0, vue_1.createElementVNode)("p", _hoisted_17, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-2 text-xl",
icon: "warning"
- }), _hoisted_17]), (0, vue_1.createElementVNode)("p", _hoisted_18, [(0, vue_1.createElementVNode)("ul", _hoisted_19, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.iatiError, function (error, error_key) {
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.error["default"]) + ": ", 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("p", _hoisted_18, [(0, vue_1.createElementVNode)("ul", _hoisted_19, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.iatiError, function (error, error_key) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", {
key: error_key
}, [_typeof(error) === 'object' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_20, (0, vue_1.toDisplayString)(error[0]), 1
@@ -31781,29 +31967,41 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-3 cursor-pointer",
icon: "left-arrow"
- }), _hoisted_32])) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.checkStep(1) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_33, _hoisted_36)) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.checkStep(5) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("button", {
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.button_lang.go_back), 1
+ /* TEXT */
+ )])) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.checkStep(1) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_32, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.already_have_account) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_33, (0, vue_1.toDisplayString)(_ctx.language.button_lang.sign_in) + ".", 1
+ /* TEXT */
+ )])) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.checkStep(5) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("button", {
key: 2,
"class": "btn btn-next",
onClick: _cache[4] || (_cache[4] = function ($event) {
return _ctx.goToNextForm();
})
- }, [_hoisted_37, (0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.button_lang.next_step) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-2xl",
icon: "right-arrow"
- })])) : (0, vue_1.createCommentVNode)("v-if", true)]), _ctx.checkStep(2) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_38, _hoisted_40)) : (0, vue_1.createCommentVNode)("v-if", true)], 32
+ })])) : (0, vue_1.createCommentVNode)("v-if", true)]), _ctx.checkStep(2) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_34, [(0, vue_1.createElementVNode)("span", _hoisted_35, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.already_have_account) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_36, (0, vue_1.toDisplayString)(_ctx.language.button_lang.sign_in) + ".", 1
+ /* TEXT */
+ )])])) : (0, vue_1.createCommentVNode)("v-if", true)], 32
/* HYDRATE_EVENTS */
- )), (0, vue_1.createElementVNode)("aside", _hoisted_41, [(0, vue_1.createElementVNode)("span", _hoisted_42, "Step " + (0, vue_1.toDisplayString)(_ctx.getCurrentStep()) + " out of 5", 1
+ )), (0, vue_1.createElementVNode)("aside", _hoisted_37, [(0, vue_1.createElementVNode)("span", _hoisted_38, "Step " + (0, vue_1.toDisplayString)(_ctx.getCurrentStep()) + " out of 5", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("ul", _hoisted_43, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm, function (form, key, i) {
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_39, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm, function (form, key, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", {
key: i,
"class": (0, vue_1.normalizeClass)({
'relative font-bold text-n-50': _ctx.checkStep(key),
'mb-6 flex items-center': !_ctx.checkStep(key)
})
- }, [_ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_44)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_45, [!form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_46, (0, vue_1.toDisplayString)(i + 1), 1
+ }, [_ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_40)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_41, [!form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_42, (0, vue_1.toDisplayString)(i + 1), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_47, [(0, vue_1.createVNode)(_component_svg_vue, {
+ )) : (0, vue_1.createCommentVNode)("v-if", true), form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_43, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-xs",
icon: "checked"
})])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", {
@@ -31814,7 +32012,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
})
}, (0, vue_1.toDisplayString)(form["title"]), 3
/* TEXT, CLASS */
- )]), _ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_48, (0, vue_1.toDisplayString)(form["description"]), 1
+ )]), _ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_44, (0, vue_1.toDisplayString)(form["description"]), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
@@ -31828,6 +32026,289 @@ exports.render = render;
/***/ }),
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0&ts=true":
+/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0&ts=true ***!
+ \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.render = void 0;
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+var _hoisted_1 = {
+ "class": "smooth -mb-7 bg-[#e5e5e5] px-5 py-7 sm:px-10 sm:py-14 md:-mb-20"
+};
+var _hoisted_2 = {
+ "class": "mx-auto max-w-[700px]"
+};
+var _hoisted_3 = {
+ "class": "rounded bg-white py-4 shadow-textbox sm:py-8"
+};
+var _hoisted_4 = {
+ "class": "py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_5 = {
+ "class": "text-base"
+};
+var _hoisted_6 = {
+ "class": "py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_7 = {
+ "class": "my-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_8 = {
+ "class": "text-base"
+};
+var _hoisted_9 = {
+ "class": "mt-4 ml-4 list-disc text-base text-bluecoral"
+};
+var _hoisted_10 = {
+ "class": "text-base"
+};
+var _hoisted_11 = {
+ "class": "text-black"
+};
+var _hoisted_12 = {
+ "class": "text-base"
+};
+var _hoisted_13 = {
+ "class": "text-black"
+};
+var _hoisted_14 = {
+ "class": "text-base"
+};
+var _hoisted_15 = {
+ "class": "text-black"
+};
+var _hoisted_16 = {
+ "class": "text-base"
+};
+var _hoisted_17 = {
+ "class": "text-black"
+};
+var _hoisted_18 = {
+ "class": "text-base"
+};
+var _hoisted_19 = {
+ "class": "text-black"
+};
+var _hoisted_20 = {
+ "class": "mt-4 text-base"
+};
+var _hoisted_21 = {
+ target: "_blank",
+ rel: "noopener noreferrer",
+ href: "/organisation"
+};
+var _hoisted_22 = {
+ "class": "py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_23 = {
+ "class": "my-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_24 = {
+ "class": "text-base"
+};
+var _hoisted_25 = {
+ "class": "my-4 ml-4 list-disc text-base text-bluecoral"
+};
+var _hoisted_26 = {
+ "class": "text-base"
+};
+var _hoisted_27 = ["innerHTML"];
+var _hoisted_28 = {
+ "class": "text-base"
+};
+var _hoisted_29 = ["innerHTML"];
+var _hoisted_30 = {
+ "class": "text-base"
+};
+var _hoisted_31 = ["innerHTML"];
+var _hoisted_32 = {
+ "class": "text-base"
+};
+var _hoisted_33 = ["innerHTML"];
+var _hoisted_34 = {
+ "class": "text-base"
+};
+var _hoisted_35 = ["innerHTML"];
+var _hoisted_36 = {
+ "class": "text-base"
+};
+var _hoisted_37 = ["innerHTML"];
+var _hoisted_38 = {
+ "class": "text-base"
+};
+var _hoisted_39 = ["innerHTML"];
+var _hoisted_40 = {
+ "class": "text-lg font-bold text-bluecoral"
+};
+var _hoisted_41 = {
+ "class": "my-4 text-base"
+};
+var _hoisted_42 = {
+ "class": "my-4 text-base"
+};
+var _hoisted_43 = {
+ "class": "my-4 text-base"
+};
+var _hoisted_44 = {
+ "class": "my-4 text-base"
+};
+var _hoisted_45 = {
+ target: "_blank",
+ rel: "noopener noreferrer",
+ href: "/organisation"
+};
+var _hoisted_46 = {
+ "class": "py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_47 = {
+ "class": "my-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_48 = {
+ "class": "text-base"
+};
+var _hoisted_49 = {
+ target: "_blank",
+ rel: "noopener noreferrer",
+ "class": "my-2"
+};
+
+var _hoisted_50 = /*#__PURE__*/(0, vue_1.createElementVNode)("br", null, null, -1
+/* HOISTED */
+);
+
+var _hoisted_51 = {
+ target: "_blank",
+ rel: "noopener noreferrer",
+ "class": "my-2"
+};
+var _hoisted_52 = {
+ "class": "py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_53 = {
+ "class": "my-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_54 = {
+ "class": "text-base"
+};
+var _hoisted_55 = {
+ target: "_blank",
+ rel: "noopener noreferrer",
+ href: "https://iatistandard.org/en/iati-standard/203/activity-standard/",
+ "class": "my-2"
+};
+
+var _hoisted_56 = /*#__PURE__*/(0, vue_1.createElementVNode)("br", null, null, -1
+/* HOISTED */
+);
+
+var _hoisted_57 = {
+ target: "_blank",
+ rel: "noopener noreferrer",
+ href: "https://iatistandard.org/en/iati-standard/203/organisation-standard/",
+ "class": "my-2"
+};
+
+function render(_ctx, _cache, $props, $setup, $data, $options) {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("section", _hoisted_3, [(0, vue_1.createElementVNode)("article", _hoisted_4, [(0, vue_1.createElementVNode)("p", _hoisted_5, (0, vue_1.toDisplayString)($setup.language.iati_standard.iati_standard_description.one), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("article", _hoisted_6, [(0, vue_1.createElementVNode)("h3", _hoisted_7, " 1. " + (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_8, (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_description.one.list_items.header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_9, [(0, vue_1.createElementVNode)("li", _hoisted_10, [(0, vue_1.createElementVNode)("span", _hoisted_11, (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_description.one.list_items.one), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", _hoisted_12, [(0, vue_1.createElementVNode)("span", _hoisted_13, (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_description.one.list_items.two), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", _hoisted_14, [(0, vue_1.createElementVNode)("span", _hoisted_15, (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_description.one.list_items.three), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", _hoisted_16, [(0, vue_1.createElementVNode)("span", _hoisted_17, (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_description.one.list_items.four), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", _hoisted_18, [(0, vue_1.createElementVNode)("span", _hoisted_19, (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_description.one.list_items.five), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("p", _hoisted_20, [(0, vue_1.createElementVNode)("a", _hoisted_21, (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_description.two), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("article", _hoisted_22, [(0, vue_1.createElementVNode)("h3", _hoisted_23, " 2. " + (0, vue_1.toDisplayString)($setup.language.iati_standard.activity_data_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_24, (0, vue_1.toDisplayString)($setup.language.iati_standard.organisation_data_description.one.list_items.header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_25, [(0, vue_1.createElementVNode)("li", _hoisted_26, [(0, vue_1.createElementVNode)("span", {
+ "class": "text-black",
+ innerHTML: $setup.language.iati_standard.activity_data_description.one.list_items.one
+ }, null, 8
+ /* PROPS */
+ , _hoisted_27)]), (0, vue_1.createElementVNode)("li", _hoisted_28, [(0, vue_1.createElementVNode)("span", {
+ "class": "text-black",
+ innerHTML: $setup.language.iati_standard.activity_data_description.one.list_items.two
+ }, null, 8
+ /* PROPS */
+ , _hoisted_29)]), (0, vue_1.createElementVNode)("li", _hoisted_30, [(0, vue_1.createElementVNode)("span", {
+ "class": "text-black",
+ innerHTML: $setup.language.iati_standard.activity_data_description.one.list_items.three
+ }, null, 8
+ /* PROPS */
+ , _hoisted_31)]), (0, vue_1.createElementVNode)("li", _hoisted_32, [(0, vue_1.createElementVNode)("span", {
+ "class": "text-black",
+ innerHTML: $setup.language.iati_standard.activity_data_description.one.list_items.four
+ }, null, 8
+ /* PROPS */
+ , _hoisted_33)]), (0, vue_1.createElementVNode)("li", _hoisted_34, [(0, vue_1.createElementVNode)("span", {
+ "class": "text-black",
+ innerHTML: $setup.language.iati_standard.activity_data_description.one.list_items.five
+ }, null, 8
+ /* PROPS */
+ , _hoisted_35)]), (0, vue_1.createElementVNode)("li", _hoisted_36, [(0, vue_1.createElementVNode)("span", {
+ "class": "text-black",
+ innerHTML: $setup.language.iati_standard.activity_data_description.one.list_items.six
+ }, null, 8
+ /* PROPS */
+ , _hoisted_37)]), (0, vue_1.createElementVNode)("li", _hoisted_38, [(0, vue_1.createElementVNode)("span", {
+ "class": "text-black",
+ innerHTML: $setup.language.iati_standard.activity_data_description.one.list_items.seven
+ }, null, 8
+ /* PROPS */
+ , _hoisted_39)])]), (0, vue_1.createElementVNode)("h6", _hoisted_40, (0, vue_1.toDisplayString)($setup.language.iati_standard.publishing_data_either_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_41, (0, vue_1.toDisplayString)($setup.language.iati_standard.publishing_data_either_description.one), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_42, (0, vue_1.toDisplayString)($setup.language.iati_standard.publishing_data_either_description.two), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_43, (0, vue_1.toDisplayString)($setup.language.iati_standard.publishing_data_either_description.three), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_44, [(0, vue_1.createElementVNode)("a", _hoisted_45, (0, vue_1.toDisplayString)($setup.language.iati_standard.publishing_data_either_description.four), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("article", _hoisted_46, [(0, vue_1.createElementVNode)("h3", _hoisted_47, (0, vue_1.toDisplayString)($setup.language.iati_standard.download_pdf_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_48, (0, vue_1.toDisplayString)($setup.language.iati_standard.download_pdf_description.one), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_49, (0, vue_1.toDisplayString)($setup.language.iati_standard.download_pdf_description.two), 1
+ /* TEXT */
+ ), _hoisted_50, (0, vue_1.createElementVNode)("a", _hoisted_51, (0, vue_1.toDisplayString)($setup.language.iati_standard.download_pdf_description.three), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("article", _hoisted_52, [(0, vue_1.createElementVNode)("h3", _hoisted_53, (0, vue_1.toDisplayString)($setup.language.iati_standard.iati_standard_reference_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_54, (0, vue_1.toDisplayString)($setup.language.iati_standard.iati_standard_reference_description.one), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_55, [(0, vue_1.createElementVNode)("u", null, (0, vue_1.toDisplayString)($setup.language.iati_standard.iati_standard_reference_description.two), 1
+ /* TEXT */
+ )]), _hoisted_56, (0, vue_1.createElementVNode)("a", _hoisted_57, [(0, vue_1.createElementVNode)("u", null, (0, vue_1.toDisplayString)($setup.language.iati_standard.iati_standard_reference_description.three), 1
+ /* TEXT */
+ )])])])])]);
+}
+
+exports.render = render;
+
+/***/ }),
+
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=template&id=dca69396&ts=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=template&id=dca69396&ts=true ***!
@@ -31853,101 +32334,320 @@ var _hoisted_2 = {
var _hoisted_3 = {
"class": "rounded bg-white px-6 py-4 shadow-textbox sm:px-12 sm:py-8"
};
-
-var _hoisted_4 = /*#__PURE__*/(0, vue_1.createStaticVNode)(" Organisations using IATI Publisher need to take the following steps to publish your data: 1. Register a Publisher Account Organisations who publish data to IATI are referred to as 'Publishers'. Before publishing data, organisations need their own 'Publisher Account' on the IATI Registry (iatiregistry.org). If your organisation does not yet have a Publisher Account on the IATI Registry, IATI Publisher will ask you for additional details and create one for you (so you don’t have to visit IATI Registry to do this).
Create your IATI Registry Publisher Account If your organisation has already registered a Publisher Account on the IATI Registry, IATI Publisher will ask you to provide your organisation’s account details.
Provide your organisations existing IATI Registry Publisher Account details ", 2);
-
-var _hoisted_6 = /*#__PURE__*/(0, vue_1.createElementVNode)("h3", {
+var _hoisted_4 = {
+ "class": "text-lg font-bold text-bluecoral"
+};
+var _hoisted_5 = {
+ "class": "py-4 sm:py-6"
+};
+var _hoisted_6 = {
+ "class": "py-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_7 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_8 = {
+ target: "_blank",
+ href: "https://www.iatiregistry.org/register_publisher/"
+};
+var _hoisted_9 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_10 = {
+ target: "_blank",
+ href: "/register"
+};
+var _hoisted_11 = {
+ "class": "py-4 sm:py-6"
+};
+var _hoisted_12 = {
"class": "py-2 text-2xl font-bold text-bluecoral"
-}, " 2. Publish your Organisation Data ", -1
+};
+var _hoisted_13 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_14 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_15 = {
+ target: "_blank",
+ href: "/iati-standard"
+};
+
+var _hoisted_16 = /*#__PURE__*/(0, vue_1.createElementVNode)("br", null, null, -1
/* HOISTED */
);
-var _hoisted_7 = /*#__PURE__*/(0, vue_1.createElementVNode)("p", {
+var _hoisted_17 = {
+ "class": "py-4 sm:py-6"
+};
+var _hoisted_18 = {
+ "class": "py-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_19 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_20 = {
+ "class": "mt-2 text-base"
+};
+var _hoisted_21 = {
+ "class": "mt-4 ml-4 list-disc text-base text-bluecoral"
+};
+var _hoisted_22 = {
+ "class": "text-base"
+};
+var _hoisted_23 = {
+ "class": "text-black"
+};
+var _hoisted_24 = {
+ "class": "text-base"
+};
+var _hoisted_25 = {
+ "class": "text-black"
+};
+var _hoisted_26 = {
+ "class": "text-base"
+};
+var _hoisted_27 = {
+ "class": "text-black"
+};
+var _hoisted_28 = {
+ "class": "mt-2 text-base"
+};
+var _hoisted_29 = {
+ "class": "mt-4 ml-4 list-disc text-base text-bluecoral"
+};
+var _hoisted_30 = {
+ "class": "text-base"
+};
+var _hoisted_31 = {
+ "class": "text-black"
+};
+var _hoisted_32 = {
+ "class": "text-base"
+};
+var _hoisted_33 = {
+ "class": "text-black"
+};
+var _hoisted_34 = {
"class": "my-2 text-base"
-}, " The IATI Standard requires you to provide data about your entire organisation. For example, basic information about your organisation, such as its name and financial data about your entire organisation’s budgets and expenditure. ", -1
+};
+var _hoisted_35 = {
+ target: "_blank",
+ href: "/iati-standard"
+};
+
+var _hoisted_36 = /*#__PURE__*/(0, vue_1.createElementVNode)("br", null, null, -1
/* HOISTED */
);
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("p", {
+var _hoisted_37 = {
+ "class": "py-4 sm:py-6"
+};
+var _hoisted_38 = {
+ "class": "py-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_39 = {
"class": "my-2 text-base"
-}, " The IATI Standard contains a wide range of data fields. Data fields are referred to as ‘elements’ and they represent a basic unit of information in the IATI Standard. For each element you will find its technical definition, which is labelled as “IATI Standard Reference” and helpful guidance on the data you are required to provide. Your organisation is encouraged to (at least) publish data in fields marked as “Core” in IATI Publisher. Core elements include IATI’s \"mandatory and recommended\" elements and it is important to provide this data to ensure your data is usable and useful. ", -1
-/* HOISTED */
-);
+};
+var _hoisted_40 = ["innerHTML"];
+var _hoisted_41 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_42 = ["innerHTML"];
+var _hoisted_43 = {
+ "class": "py-4 sm:py-6"
+};
+var _hoisted_44 = {
+ "class": "py-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_45 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_46 = {
+ "class": "py-4 sm:py-6"
+};
+var _hoisted_47 = {
+ "class": "py-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_48 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_49 = {
+ "class": "my-2 text-base"
+};
-var _hoisted_9 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- target: "_blank",
- href: "/iati-standard"
-}, " Discover what Activity Data is required by the IATI Standard ", -1
+var _hoisted_50 = /*#__PURE__*/(0, vue_1.createElementVNode)("br", null, null, -1
/* HOISTED */
);
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("br", null, null, -1
+var _hoisted_51 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+ target: "_blank",
+ href: "https://iatiregistry.org/publisher/"
+}, " https://iatiregistry.org/publisher/ ", -1
/* HOISTED */
);
-var _hoisted_11 = /*#__PURE__*/(0, vue_1.createStaticVNode)(" 3. Publish your Activity Data You also need to provide data about your organisation’s development and humanitarian ‘activities’. The unit of work described by an ‘activity’ is determined by the organisation that is publishing the data. For example, an activity could be a donor government providing US$ 50 million to a recipient country’s government to implement basic education over 5 years. Or an activity could be an NGO spending US$ 500,000 to deliver clean drinking water to 1000 households over 6 months.
Therefore your organisation will need to determine how it will divide its work internally into activities. You could consider one activity to be:
a large programme at country or region level a smaller project in a local area the work relating to a particular grant or contract You can provide your Activity Data in two ways on IATI Publisher:
fill out the data fields in the Activity Data form for each Activity that you create If you have multiple activities, you can use the Bulk Upload feature to upload a spreadsheet of the core fields of your data then you can edit them further using the online Activity Data form. When publishing your Activity Data you are encouraged to (at least) publish data in fields marked as “Core” in IATI Publisher. They include IATI’s "mandatory and recommended" elements and it is important to provide this data to ensure your data is usable and useful.
Discover what Activity Data is required by the IATI Standard ", 9);
+var _hoisted_52 = /*#__PURE__*/(0, vue_1.createTextVNode)(" . ");
-var _hoisted_20 = /*#__PURE__*/(0, vue_1.createStaticVNode)(" 4. Understand further data requirements If your organisation receives funding from the UK, Dutch or Belgian governments, you may also need to report IATI data according to their specific requirements. You are advised to understand the specific IATI data requirements of each government if you are receiving a grant from them.See more information .
You will also need to consider if your organisation needs to exclude data that it publishes. For example an organisation may not be able to publish data because of political sensitivity issues or if information is commercially restricted. See information on creating an Exclusion Policy .
5. Run automatic checks on your data for errors After you have added your data to IATI Publisher, it will run automatic checks for errors. You will receive information about any errors that you need to fix. Make sure you fix these errors before publishing your data.
6. Publish your data to the IATI Registry Once you are happy with the data that you have provided, you can instruct IATI Publisher to publish it.
IATI Publisher converts your data files into XML, the format that is required by the IATI Standard. IATI Publisher will store your XML data files online, and provide a link to these files on the IATI Registry. The IATI Registry stores links to every IATI data file published and you can search for your organisation’s IATI XML files here: https://iatiregistry.org/publisher/ .
7. Access your data IATI data is open data and can be accessed by anyone. It is pulled from the IATI Registry and used for many purposes. For example, IATI data can be used by governments to monitor development resources going into their countries, by donors and civil society to enable coordination, by analysts and academics to inform research and policy, or by organisations who include IATI data in their own online data portals.
There are many online data tools and platforms that share and visualise IATI data. You can start by looking at your organisation’s data on IATI’s simple platform called d-portal . Within 24 hours of publishing your data, it will be displayed there. Simply search for your organisation in the “Publisher’ drop-down menu. And to see your data in a format that is used by governments and other data users, visit the Country Development Finance Data tool
See more information on IATI tools and resources .
", 4);
-
-var _hoisted_24 = {
+var _hoisted_53 = {
"class": "py-4 sm:py-6"
};
-
-var _hoisted_25 = /*#__PURE__*/(0, vue_1.createElementVNode)("h3", {
+var _hoisted_54 = {
"class": "py-2 text-2xl font-bold text-bluecoral"
-}, " 8. Update and improve your data ", -1
-/* HOISTED */
-);
-
-var _hoisted_26 = {
+};
+var _hoisted_55 = {
"class": "my-2 text-base"
};
+var _hoisted_56 = ["innerHTML"];
+var _hoisted_57 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_58 = ["innerHTML"];
+var _hoisted_59 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_60 = ["innerHTML"];
+var _hoisted_61 = {
+ "class": "py-4 sm:py-6"
+};
+var _hoisted_62 = {
+ "class": "py-2 text-2xl font-bold text-bluecoral"
+};
-var _hoisted_27 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Once your organisation has published its first dataset, you are encouraged to ");
-
-var _hoisted_28 = /*#__PURE__*/(0, vue_1.createTextVNode)("update and improve");
-
-var _hoisted_29 = /*#__PURE__*/(0, vue_1.createTextVNode)(" your data over time. You should update your data at least every quarter. You should also aim to expand the number of data fields that you provide information for. Read more about ");
-
-var _hoisted_30 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- href: "https://iatistandard.org/en/guidance/standard-overview/preparing-your-organisation-data-publication/key-qualities-of-iati-data/"
-}, "improving the quality of IATI data", -1
-/* HOISTED */
-);
-
-var _hoisted_31 = /*#__PURE__*/(0, vue_1.createTextVNode)(". ");
+var _hoisted_63 = /*#__PURE__*/(0, vue_1.createTextVNode)(" 8. ");
-var _hoisted_32 = /*#__PURE__*/(0, vue_1.createElementVNode)("article", {
+var _hoisted_64 = ["innerHTML"];
+var _hoisted_65 = {
+ "class": "my-2 text-base"
+};
+var _hoisted_66 = ["innerHTML"];
+var _hoisted_67 = {
"class": "py-4 sm:py-6"
-}, [/*#__PURE__*/(0, vue_1.createTextVNode)(" For more information about publishing IATI data please visit IATI’s main website: "), /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- href: "https://iatistandard.org/en/guidance/"
-}, "iatistandard.org/guidance"), /*#__PURE__*/(0, vue_1.createTextVNode)(". ")], -1
-/* HOISTED */
-);
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
- var _component_Strong = (0, vue_1.resolveComponent)("Strong");
+ var _component_SimpleSpan = (0, vue_1.resolveComponent)("SimpleSpan");
- return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("section", _hoisted_3, [_hoisted_4, (0, vue_1.createElementVNode)("article", {
- "class": "py-4 sm:py-6"
- }, [_hoisted_6, _hoisted_7, _hoisted_8, _hoisted_9, _hoisted_10, (0, vue_1.createElementVNode)("a", {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("section", _hoisted_3, [(0, vue_1.createElementVNode)("h3", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.organisations_using_iati_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("article", _hoisted_5, [(0, vue_1.createElementVNode)("h3", _hoisted_6, " 1. " + (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.register_a_publisher_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.register_a_publisher_description.one), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.register_a_publisher_description.two), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_9, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.register_a_publisher_description.three), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.register_a_publisher_description.four), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("article", _hoisted_11, [(0, vue_1.createElementVNode)("h3", _hoisted_12, " 2. " + (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_organisation_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_13, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_organisation_description.one), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_organisation_description.two), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_organisation_description.three), 1
+ /* TEXT */
+ ), _hoisted_16, (0, vue_1.createElementVNode)("a", {
target: "_blank",
href: "/activities",
- onClick: $setup.triggerModel
- }, " Publish your Activity Data ")]), (0, vue_1.createElementVNode)("article", {
- "class": "py-4 sm:py-6"
- }, [_hoisted_11, (0, vue_1.createElementVNode)("a", {
+ onClick: _cache[0] || (_cache[0] = //@ts-ignore
+ function () {
+ var args = [];
+
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+
+ return _ctx.triggerModel && _ctx.triggerModel.apply(_ctx, args);
+ })
+ }, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_organisation_description.four), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("article", _hoisted_17, [(0, vue_1.createElementVNode)("h3", _hoisted_18, " 3. " + (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.one), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_20, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.two.list_items.header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_21, [(0, vue_1.createElementVNode)("li", _hoisted_22, [(0, vue_1.createElementVNode)("span", _hoisted_23, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.two.list_items.one), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", _hoisted_24, [(0, vue_1.createElementVNode)("span", _hoisted_25, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.two.list_items.two), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", _hoisted_26, [(0, vue_1.createElementVNode)("span", _hoisted_27, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.two.list_items.three), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("p", _hoisted_28, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.three.list_items.header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_29, [(0, vue_1.createElementVNode)("li", _hoisted_30, [(0, vue_1.createElementVNode)("span", _hoisted_31, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.three.list_items.one), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", _hoisted_32, [(0, vue_1.createElementVNode)("span", _hoisted_33, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.three.list_items.two), 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("p", _hoisted_34, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.four), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_35, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.five), 1
+ /* TEXT */
+ ), _hoisted_36, (0, vue_1.createElementVNode)("a", {
target: "_blank",
href: "/activities",
- onClick: $setup.triggerModel
- }, " Publish your Activity Data ")]), _hoisted_20, (0, vue_1.createElementVNode)("article", _hoisted_24, [_hoisted_25, (0, vue_1.createElementVNode)("p", _hoisted_26, [_hoisted_27, (0, vue_1.createVNode)(_component_Strong, null, {
- "default": (0, vue_1.withCtx)(function () {
- return [_hoisted_28];
- }),
- _: 1
- /* STABLE */
+ onClick: _cache[1] || (_cache[1] = //@ts-ignore
+ function () {
+ var args = [];
+
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
- }), _hoisted_29, _hoisted_30, _hoisted_31])]), _hoisted_32])])]);
+ return _ctx.triggerModel && _ctx.triggerModel.apply(_ctx, args);
+ })
+ }, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_activity_description.six), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("article", _hoisted_37, [(0, vue_1.createElementVNode)("h3", _hoisted_38, " 4. " + (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.understand_further_data_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_39, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.publishing_checklist.understand_further_data_description.one
+ }, null, 8
+ /* PROPS */
+ , _hoisted_40)]), (0, vue_1.createElementVNode)("p", _hoisted_41, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.publishing_checklist.understand_further_data_description.two
+ }, null, 8
+ /* PROPS */
+ , _hoisted_42)])]), (0, vue_1.createElementVNode)("article", _hoisted_43, [(0, vue_1.createElementVNode)("h3", _hoisted_44, " 5. " + (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.run_automatic_checks_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_45, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.run_automatic_checks_description.one), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("article", _hoisted_46, [(0, vue_1.createElementVNode)("h3", _hoisted_47, " 6. " + (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_data_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_48, (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_data_description.one), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_49, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.publish_your_data_description.two) + " ", 1
+ /* TEXT */
+ ), _hoisted_50, _hoisted_51, _hoisted_52])]), (0, vue_1.createElementVNode)("article", _hoisted_53, [(0, vue_1.createElementVNode)("h3", _hoisted_54, "7. " + (0, vue_1.toDisplayString)(_ctx.language.publishing_checklist.access_your_data_header), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_55, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.publishing_checklist.access_your_data_description.one
+ }, null, 8
+ /* PROPS */
+ , _hoisted_56)]), (0, vue_1.createElementVNode)("p", _hoisted_57, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.publishing_checklist.access_your_data_description.two
+ }, null, 8
+ /* PROPS */
+ , _hoisted_58)]), (0, vue_1.createElementVNode)("p", _hoisted_59, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.publishing_checklist.access_your_data_description.three
+ }, null, 8
+ /* PROPS */
+ , _hoisted_60)])]), (0, vue_1.createElementVNode)("article", _hoisted_61, [(0, vue_1.createElementVNode)("h3", _hoisted_62, [_hoisted_63, (0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.publishing_checklist.update_and_improve_header
+ }, null, 8
+ /* PROPS */
+ , _hoisted_64)]), (0, vue_1.createElementVNode)("p", _hoisted_65, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.publishing_checklist.update_and_improve_description.one
+ }, null, 8
+ /* PROPS */
+ , _hoisted_66)])]), (0, vue_1.createElementVNode)("article", _hoisted_67, [(0, vue_1.createVNode)(_component_SimpleSpan, {
+ text: _ctx.language.publishing_checklist.update_and_imporve_description.two
+ }, null, 8
+ /* PROPS */
+ , ["text"])])])])]);
}
exports.render = render;
@@ -31976,158 +32676,143 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "section__container"
};
-
-var _hoisted_3 = /*#__PURE__*/(0, vue_1.createElementVNode)("div", {
+var _hoisted_3 = {
"class": "section__title"
-}, [/*#__PURE__*/(0, vue_1.createElementVNode)("h2", null, "Create IATI Publisher Account"), /*#__PURE__*/(0, vue_1.createElementVNode)("p", null, " Register your organisation to start your IATI publishing journey by creating an account in IATI publisher. ")], -1
+};
+
+var _hoisted_4 = /*#__PURE__*/(0, vue_1.createElementVNode)("h2", null, null, -1
/* HOISTED */
);
-var _hoisted_4 = {
+var _hoisted_5 = {
"class": "section__wrapper flex justify-center"
};
-var _hoisted_5 = {
+var _hoisted_6 = {
"class": "mb-4 block border-b border-b-n-10 pb-4 xl:hidden"
};
-var _hoisted_6 = {
+var _hoisted_7 = {
"class": "text-base font-bold"
};
-var _hoisted_7 = {
+var _hoisted_8 = {
"class": "relative mt-3 text-sm text-n-40"
};
-var _hoisted_8 = {
+var _hoisted_9 = {
key: 0,
"class": "list__active"
};
-var _hoisted_9 = {
+var _hoisted_10 = {
"class": "flex items-center"
};
-var _hoisted_10 = {
+var _hoisted_11 = {
key: 0,
"class": "mr-3"
};
-var _hoisted_11 = {
+var _hoisted_12 = {
key: 1,
"class": "detail mt-2 font-normal"
};
-var _hoisted_12 = {
+var _hoisted_13 = {
"class": "form__container"
};
-var _hoisted_13 = {
+var _hoisted_14 = {
"class": "flex items-center space-x-1"
};
-var _hoisted_14 = {
+var _hoisted_15 = {
"class": "text-xl font-bold text-n-50 sm:text-2xl"
};
-var _hoisted_15 = {
+var _hoisted_16 = {
key: 0,
"class": "feedback mt-6 border-l-2 border-crimson-50 bg-crimson-10 p-4 text-sm text-n-50 xl:h-32"
};
-var _hoisted_16 = {
+var _hoisted_17 = {
"class": "mb-2 flex font-bold"
};
-
-var _hoisted_17 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Sorry, the information you provided doesn’t match your IATI Registry information. ");
-
-var _hoisted_18 = /*#__PURE__*/(0, vue_1.createElementVNode)("p", {
+var _hoisted_18 = {
"class": "ml-8 xl:mr-1"
-}, [/*#__PURE__*/(0, vue_1.createTextVNode)(" Please note that if you’re an account holder in "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+};
+var _hoisted_19 = {
href: "https://iatiregistry.org/"
-}, "IATI Registry")]), /*#__PURE__*/(0, vue_1.createTextVNode)(", make sure your "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+};
+var _hoisted_20 = {
"class": "font-bold"
-}, "Publisher Name, Publisher ID and IATI Organisation ID"), /*#__PURE__*/(0, vue_1.createTextVNode)(" match your IATI Registry Information. Contact "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+};
+
+var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
"class": "text-bluecoral",
href: "mailto:support@iatistandard.org"
-}, "support@iatistandard.org")]), /*#__PURE__*/(0, vue_1.createTextVNode)(" for more details. ")], -1
+}, "support@iatistandard.org")], -1
/* HOISTED */
);
-var _hoisted_19 = {
+var _hoisted_22 = {
"class": "form__content"
};
-var _hoisted_20 = {
+var _hoisted_23 = {
"class": "mb-2 flex items-center justify-between"
};
-var _hoisted_21 = ["for"];
-var _hoisted_22 = {
+var _hoisted_24 = ["for"];
+var _hoisted_25 = {
key: 0,
"class": "text-salmon-40"
};
-var _hoisted_23 = ["id", "onUpdate:modelValue", "placeholder", "type"];
-var _hoisted_24 = ["onUpdate:modelValue", "placeholder", "type", "value"];
-var _hoisted_25 = {
+var _hoisted_26 = ["id", "onUpdate:modelValue", "placeholder", "type"];
+var _hoisted_27 = ["onUpdate:modelValue", "placeholder", "type", "value"];
+var _hoisted_28 = {
key: 3,
"class": "text-xs font-normal text-n-40"
};
-var _hoisted_26 = {
+var _hoisted_29 = {
key: 4,
"class": "error",
role: "alert"
};
-var _hoisted_27 = {
+var _hoisted_30 = {
"class": "flex flex-wrap items-center justify-between"
};
-
-var _hoisted_28 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Go back ");
-
-var _hoisted_29 = {
+var _hoisted_31 = {
key: 1,
"class": "pb-4 text-sm font-normal text-n-40 sm:pb-0"
};
-
-var _hoisted_30 = /*#__PURE__*/(0, vue_1.createTextVNode)("Already have an account? ");
-
-var _hoisted_31 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_32 = {
"class": "border-b-2 border-b-transparent font-bold text-bluecoral hover:border-b-2 hover:border-b-turquoise hover:text-bluecoral",
href: "/"
-}, "Sign In.", -1
-/* HOISTED */
-);
-
-var _hoisted_32 = [_hoisted_30, _hoisted_31];
-
-var _hoisted_33 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Next Step ");
-
-var _hoisted_34 = {
+};
+var _hoisted_33 = {
key: 0,
"class": "mt-6 text-center"
};
-
-var _hoisted_35 = /*#__PURE__*/(0, vue_1.createElementVNode)("span", {
+var _hoisted_34 = {
"class": "text-sm font-normal text-n-40"
-}, [/*#__PURE__*/(0, vue_1.createTextVNode)("Already have an account? "), /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+};
+var _hoisted_35 = {
"class": "border-b-2 border-b-transparent font-bold text-bluecoral hover:border-b-2 hover:border-b-turquoise hover:text-bluecoral",
href: "/"
-}, "Sign In.")], -1
-/* HOISTED */
-);
-
-var _hoisted_36 = [_hoisted_35];
-var _hoisted_37 = {
+};
+var _hoisted_36 = {
"class": "register__sidebar hidden xl:block"
};
-var _hoisted_38 = {
+var _hoisted_37 = {
"class": "text-base font-bold"
};
-var _hoisted_39 = {
+var _hoisted_38 = {
"class": "relative mt-6 text-sm text-n-40"
};
-var _hoisted_40 = {
+var _hoisted_39 = {
key: 0,
"class": "list__active"
};
-var _hoisted_41 = {
+var _hoisted_40 = {
"class": "flex items-center"
};
-var _hoisted_42 = {
+var _hoisted_41 = {
key: 0,
"class": "ml-6 mr-3"
};
-var _hoisted_43 = {
+var _hoisted_42 = {
key: 1,
"class": "ml-6 mr-3"
};
-var _hoisted_44 = {
+var _hoisted_43 = {
key: 1,
"class": "detail mt-2 mb-6 font-normal xl:pr-2"
};
@@ -32145,7 +32830,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("section", _hoisted_1, [_ctx.isLoaderVisible ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Loader, {
key: 0
- })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_2, [_hoisted_3, (0, vue_1.createElementVNode)("div", _hoisted_4, [_ctx.checkStep('3') ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_EmailVerification, {
+ })) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [_hoisted_4, (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)(_ctx.language.register_lang.create_iati_publisher_subheader), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_5, [_ctx.checkStep('3') ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_EmailVerification, {
key: 0,
email: _ctx.formData['email']
}, null, 8
@@ -32163,16 +32850,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.goToNextForm && _ctx.goToNextForm.apply(_ctx, args);
}, ["enter"]))
- }, [(0, vue_1.createElementVNode)("aside", _hoisted_5, [(0, vue_1.createElementVNode)("span", _hoisted_6, "Step " + (0, vue_1.toDisplayString)(_ctx.getCurrentStep()) + " out of 3", 1
+ }, [(0, vue_1.createElementVNode)("aside", _hoisted_6, [(0, vue_1.createElementVNode)("span", _hoisted_7, "Step " + (0, vue_1.toDisplayString)(_ctx.getCurrentStep()) + " out of 3", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("ul", _hoisted_7, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm, function (form, key, i) {
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_8, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm, function (form, key, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", {
key: i,
"class": (0, vue_1.normalizeClass)({
'relative font-bold text-n-50': _ctx.checkStep(key),
'mb-6 hidden': !_ctx.checkStep(key)
})
- }, [_ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_9, [!form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(i + 1), 1
+ }, [_ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_9)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_10, [!form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_11, (0, vue_1.toDisplayString)(i + 1), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", {
"class": (0, vue_1.normalizeClass)(["font-bold", {
@@ -32182,37 +32869,51 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, (0, vue_1.toDisplayString)(form["title"]), 3
/* TEXT, CLASS */
- )]), _ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_11, (0, vue_1.toDisplayString)(form["description"]), 1
+ )]), _ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_12, (0, vue_1.toDisplayString)(form["description"]), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createElementVNode)("div", _hoisted_13, [_ctx.registerForm[_ctx.getCurrentStep()]['hover_text'] ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_HoverText, {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("div", _hoisted_14, [_ctx.registerForm[_ctx.getCurrentStep()]['hover_text'] ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_HoverText, {
key: 0,
"hover-text": _ctx.registerForm[_ctx.getCurrentStep()]['hover_text'],
name: _ctx.registerForm[_ctx.getCurrentStep()].title,
position: "right"
}, null, 8
/* PROPS */
- , ["hover-text", "name"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.registerForm[_ctx.getCurrentStep()].title), 1
+ , ["hover-text", "name"])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", _hoisted_15, (0, vue_1.toDisplayString)(_ctx.registerForm[_ctx.getCurrentStep()].title), 1
/* TEXT */
- )]), !_ctx.publisherExists ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_15, [(0, vue_1.createElementVNode)("p", _hoisted_16, [(0, vue_1.createVNode)(_component_svg_vue, {
+ )]), !_ctx.publisherExists ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_16, [(0, vue_1.createElementVNode)("p", _hoisted_17, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-2 text-xl",
icon: "warning"
- }), _hoisted_17]), _hoisted_18])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_19, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm[_ctx.getCurrentStep()]['fields'], function (field, index, key) {
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.register_lang.information_doesnt_match_registry), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("p", _hoisted_18, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.register_lang.if_you_are_account_holder) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createElementVNode)("a", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.language.common_lang.iati_registry), 1
+ /* TEXT */
+ )]), (0, vue_1.createTextVNode)(", " + (0, vue_1.toDisplayString)(_ctx.language.register_lang.make_sure_your) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", _hoisted_20, (0, vue_1.toDisplayString)(_ctx.language.register_lang.publisher_name.label) + ", " + (0, vue_1.toDisplayString)(_ctx.language.register_lang.publisher_id.label) + " " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.and) + " IATI " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.organisation_id), 1
+ /* TEXT */
+ ), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.register_lang.match_your_iati_registry_info) + ". " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.contact) + " ", 1
+ /* TEXT */
+ ), _hoisted_21, (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.common_lang.for_more_details) + ". ", 1
+ /* TEXT */
+ )])])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_22, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm[_ctx.getCurrentStep()]['fields'], function (field, index, key) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", {
key: key,
"class": (0, vue_1.normalizeClass)(field["class"])
- }, [(0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("label", {
+ }, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("label", {
"for": field.id,
"class": "label"
}, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(field["label"]) + " ", 1
/* TEXT */
- ), field.required ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_22, " *")) : (0, vue_1.createCommentVNode)("v-if", true)], 8
+ ), field.required ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, " *")) : (0, vue_1.createCommentVNode)("v-if", true)], 8
/* PROPS */
- , _hoisted_21), field.hover_text !== '' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_HoverText, {
+ , _hoisted_24), field.hover_text !== '' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_HoverText, {
key: 0,
"hover-text": field.hover_text,
name: field.label
@@ -32232,7 +32933,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
type: field.type
}, null, 10
/* CLASS, PROPS */
- , _hoisted_23)), [[vue_1.vModelDynamic, _ctx.formData[field.name]]]) : (0, vue_1.createCommentVNode)("v-if", true), field.name === 'identifier' ? (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("input", {
+ , _hoisted_26)), [[vue_1.vModelDynamic, _ctx.formData[field.name]]]) : (0, vue_1.createCommentVNode)("v-if", true), field.name === 'identifier' ? (0, vue_1.withDirectives)(((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("input", {
key: 1,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return _ctx.formData[field.name] = $event;
@@ -32247,7 +32948,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
disabled: "true"
}, null, 10
/* CLASS, PROPS */
- , _hoisted_24)), [[vue_1.vModelDynamic, _ctx.formData[field.name]]]) : (0, vue_1.createCommentVNode)("v-if", true), field.type === 'select' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Multiselect, {
+ , _hoisted_27)), [[vue_1.vModelDynamic, _ctx.formData[field.name]]]) : (0, vue_1.createCommentVNode)("v-if", true), field.type === 'select' ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(_component_Multiselect, {
key: 2,
modelValue: _ctx.formData[field.name],
"onUpdate:modelValue": function onUpdateModelValue($event) {
@@ -32262,16 +32963,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
searchable: true
}, null, 8
/* PROPS */
- , ["modelValue", "onUpdate:modelValue", "class", "options", "placeholder"])) : (0, vue_1.createCommentVNode)("v-if", true), field.help_text && _ctx.errorData[field.name] === '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_25, (0, vue_1.toDisplayString)(field.help_text), 1
+ , ["modelValue", "onUpdate:modelValue", "class", "options", "placeholder"])) : (0, vue_1.createCommentVNode)("v-if", true), field.help_text && _ctx.errorData[field.name] === '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_28, (0, vue_1.toDisplayString)(field.help_text), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.errorData[field.name] !== '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_26, (0, vue_1.toDisplayString)(_ctx.errorData[field.name]), 1
+ )) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.errorData[field.name] !== '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_29, (0, vue_1.toDisplayString)(_ctx.errorData[field.name]), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
);
}), 128
/* KEYED_FRAGMENT */
- ))])]), (0, vue_1.createElementVNode)("div", _hoisted_27, [!_ctx.checkStep(1) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("button", {
+ ))])]), (0, vue_1.createElementVNode)("div", _hoisted_30, [!_ctx.checkStep(1) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("button", {
key: 0,
"class": "btn-back",
onClick: _cache[0] || (_cache[0] = function ($event) {
@@ -32280,29 +32981,41 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "mr-3 cursor-pointer",
icon: "left-arrow"
- }), _hoisted_28])) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.checkStep(1) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_29, _hoisted_32)) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.checkStep(3) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("button", {
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)(_ctx.language.button_lang.go_back), 1
+ /* TEXT */
+ )])) : (0, vue_1.createCommentVNode)("v-if", true), _ctx.checkStep(1) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_31, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.already_have_account) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_32, (0, vue_1.toDisplayString)(_ctx.language.button_lang.sign_in) + ".", 1
+ /* TEXT */
+ )])) : (0, vue_1.createCommentVNode)("v-if", true), !_ctx.checkStep(3) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("button", {
key: 2,
"class": "btn btn-next",
onClick: _cache[1] || (_cache[1] = function ($event) {
return _ctx.goToNextForm();
})
- }, [_hoisted_33, (0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.button_lang.next_step) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-2xl",
icon: "right-arrow"
- })])) : (0, vue_1.createCommentVNode)("v-if", true)]), _ctx.checkStep(2) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_34, _hoisted_36)) : (0, vue_1.createCommentVNode)("v-if", true)], 32
+ })])) : (0, vue_1.createCommentVNode)("v-if", true)]), _ctx.checkStep(2) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_33, [(0, vue_1.createElementVNode)("span", _hoisted_34, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.common_lang.already_have_account) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_35, (0, vue_1.toDisplayString)(_ctx.language.button_lang.sign_in) + ".", 1
+ /* TEXT */
+ )])])) : (0, vue_1.createCommentVNode)("v-if", true)], 32
/* HYDRATE_EVENTS */
- )), (0, vue_1.createElementVNode)("aside", _hoisted_37, [(0, vue_1.createElementVNode)("span", _hoisted_38, "Step " + (0, vue_1.toDisplayString)(_ctx.getCurrentStep()) + " out of 3", 1
+ )), (0, vue_1.createElementVNode)("aside", _hoisted_36, [(0, vue_1.createElementVNode)("span", _hoisted_37, (0, vue_1.toDisplayString)(_ctx.language.button_lang.step) + " " + (0, vue_1.toDisplayString)(_ctx.getCurrentStep()) + " " + (0, vue_1.toDisplayString)(_ctx.language.button_lang.out_of) + " 3", 1
/* TEXT */
- ), (0, vue_1.createElementVNode)("ul", _hoisted_39, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm, function (form, key, i) {
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_38, [((0, vue_1.openBlock)(true), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(_ctx.registerForm, function (form, key, i) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("li", {
key: i,
"class": (0, vue_1.normalizeClass)({
'relative font-bold text-n-50': _ctx.checkStep(key),
'mb-6 flex items-center': !_ctx.checkStep(key)
})
- }, [_ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_40)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_41, [!form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_42, (0, vue_1.toDisplayString)(i + 1), 1
+ }, [_ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_39)) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_40, [!form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_41, (0, vue_1.toDisplayString)(i + 1), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_43, [(0, vue_1.createVNode)(_component_svg_vue, {
+ )) : (0, vue_1.createCommentVNode)("v-if", true), form['is_complete'] ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_42, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-xs",
icon: "checked"
})])) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("span", {
@@ -32313,7 +33026,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}])
}, (0, vue_1.toDisplayString)(form["title"]), 3
/* TEXT, CLASS */
- )]), _ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_44, (0, vue_1.toDisplayString)(form["description"]), 1
+ )]), _ctx.checkStep(key) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("p", _hoisted_43, (0, vue_1.toDisplayString)(form["description"]), 1
/* TEXT */
)) : (0, vue_1.createCommentVNode)("v-if", true)], 2
/* CLASS */
@@ -32327,6 +33040,335 @@ exports.render = render;
/***/ }),
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980&ts=true":
+/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980&ts=true ***!
+ \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.render = void 0;
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+var _hoisted_1 = {
+ "class": "smooth -mb-7 bg-[#e5e5e5] px-5 py-7 sm:px-10 sm:py-14 md:-mb-20"
+};
+var _hoisted_2 = {
+ "class": "mx-auto max-w-[700px]"
+};
+var _hoisted_3 = {
+ "class": "rounded bg-white py-4 shadow-textbox sm:py-8"
+};
+var _hoisted_4 = {
+ "class": "py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_5 = {
+ "class": "text-2xl font-bold text-bluecoral"
+};
+var _hoisted_6 = {
+ "class": "mt-4 text-base"
+};
+var _hoisted_7 = ["innerHTML"];
+var _hoisted_8 = {
+ "class": "mt-4 text-base"
+};
+var _hoisted_9 = ["innerHTML"];
+
+function render(_ctx, _cache, $props, $setup, $data, $options) {
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("section", _hoisted_3, [(0, vue_1.createElementVNode)("article", _hoisted_4, [(0, vue_1.createElementVNode)("h3", _hoisted_5, (0, vue_1.toDisplayString)($setup.language.web_lang.support), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_6, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: $setup.language.support.support_description.one
+ }, null, 8
+ /* PROPS */
+ , _hoisted_7)]), (0, vue_1.createElementVNode)("p", _hoisted_8, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: $setup.language.support.support_description.two
+ }, null, 8
+ /* PROPS */
+ , _hoisted_9)])])])])]);
+}
+
+exports.render = render;
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb&ts=true":
+/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb&ts=true ***!
+ \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.render = void 0;
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+var _hoisted_1 = {
+ id: "footer",
+ "class": "mt-7 bg-bluecoral text-sm leading-6 text-n-20 sm:mt-10 md:mt-20"
+};
+var _hoisted_2 = {
+ "class": "border-b border-white border-opacity-20"
+};
+var _hoisted_3 = {
+ "class": "mx-3 py-10 sm:mx-10 xl:mx-24 xl:px-1"
+};
+var _hoisted_4 = {
+ "class": "footer__container grid grid-flow-row gap-8 sm:gap-y-10 md:grid-cols-2 lg:grid-cols-4 lg:justify-items-center"
+};
+var _hoisted_5 = {
+ href: "/"
+};
+var _hoisted_6 = {
+ "class": "footer__links"
+};
+var _hoisted_7 = {
+ "class": "font-bold text-n-10"
+};
+var _hoisted_8 = {
+ "class": "mt-2 flex flex-col"
+};
+var _hoisted_9 = {
+ href: "/activities"
+};
+var _hoisted_10 = {
+ href: "/about"
+};
+var _hoisted_11 = {
+ "class": "footer__links"
+};
+var _hoisted_12 = {
+ "class": "font-bold text-n-10"
+};
+var _hoisted_13 = {
+ "class": "mt-2 flex flex-col"
+};
+var _hoisted_14 = {
+ href: "/iati-standard"
+};
+var _hoisted_15 = {
+ href: "/publishing-checklist"
+};
+var _hoisted_16 = {
+ href: "/support"
+};
+var _hoisted_17 = {
+ "class": "footer__links lg:justify-self-end"
+};
+var _hoisted_18 = {
+ "class": "text-xs leading-5"
+};
+var _hoisted_19 = {
+ "class": "my-5 flex items-center space-x-2 text-n-10"
+};
+var _hoisted_20 = {
+ "class": "text-xs font-bold uppercase"
+};
+
+var _hoisted_21 = /*#__PURE__*/(0, vue_1.createElementVNode)("ul", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("li", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+ "class": "text-sm text-n-10",
+ href: "mailto:support@iatistandard.org"
+}, "support@iatistandard.org")])], -1
+/* HOISTED */
+);
+
+var _hoisted_22 = {
+ "class": "mx-5 py-7 sm:mx-10 xl:mx-24 xl:px-1"
+};
+var _hoisted_23 = {
+ "class": "footer__container grid gap-3 sm:grid-cols-2"
+};
+var _hoisted_24 = {
+ "class": "flex items-center text-n-30"
+};
+var _hoisted_25 = {
+ "class": "flex sm:justify-end"
+};
+var _hoisted_26 = {
+ href: "https://www.youtube.com/channel/UCAVH1gcgJXElsj8ENC-bDQQ",
+ target: "_blank"
+};
+var _hoisted_27 = {
+ "class": "ml-4",
+ href: "https://twitter.com/IATI_aid",
+ target: "_blank"
+};
+
+var _hoisted_28 = /*#__PURE__*/(0, vue_1.createTextVNode)("s ");
+
+function render(_ctx, _cache, $props, $setup, $data, $options) {
+ var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
+
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("footer", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("a", _hoisted_5, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "h-auto w-60 text-6xl sm:w-64",
+ icon: "footer-logo"
+ })])]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("span", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.web_lang.iati_publisher), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_8, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_9, (0, vue_1.toDisplayString)($setup.language.admin.footer.dashboard), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_10, (0, vue_1.toDisplayString)($setup.language.web_lang.about), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("div", _hoisted_11, [(0, vue_1.createElementVNode)("span", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.web_lang.iati_standard), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_13, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_14, (0, vue_1.toDisplayString)($setup.language.web_lang.iati_standard), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_15, (0, vue_1.toDisplayString)($setup.language.web_lang.publishing_checklist), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_16, (0, vue_1.toDisplayString)($setup.language.web_lang.support), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("div", _hoisted_17, [(0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.web_lang.footer.part_of_iati_unified_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.web_lang.footer.code_licensed_under_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.web_lang.footer.documentation_licensed_under_label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "text-2xl",
+ icon: "headphone"
+ }), (0, vue_1.createElementVNode)("span", _hoisted_20, (0, vue_1.toDisplayString)($setup.language.web_lang.footer.any_questions_contact_label), 1
+ /* TEXT */
+ )]), _hoisted_21])])])]), (0, vue_1.createElementVNode)("div", _hoisted_22, [(0, vue_1.createElementVNode)("div", _hoisted_23, [(0, vue_1.createElementVNode)("span", _hoisted_24, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "mr-1 text-base",
+ icon: "copyright"
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)($setup.language.web_lang.footer.copyright_label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createElementVNode)("a", _hoisted_26, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "mt-1 mr-1 text-4xl",
+ icon: "youtube"
+ })]), (0, vue_1.createElementVNode)("a", _hoisted_27, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "mt-1 mr-1 text-4xl",
+ icon: "twitter"
+ })])]), _hoisted_28])])]);
+}
+
+exports.render = render;
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086&ts=true":
+/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086&ts=true ***!
+ \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.render = void 0;
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+var _hoisted_1 = {
+ "class": "right join-now m-auto flex basis-2/4 items-center rounded-l-lg rounded-r-lg bg-white py-5 px-5 sm:py-10 sm:px-7 md:my-0 md:rounded-l-none lg:py-28 xl:px-14"
+};
+var _hoisted_2 = {
+ "class": "right__container flex flex-col"
+};
+var _hoisted_3 = {
+ "class": "mb-2 hidden sm:block"
+};
+var _hoisted_4 = {
+ "class": "mb-8 text-n-40 xl:pr-6"
+};
+var _hoisted_5 = {
+ href: "/iati/register",
+ "class": "right__content mb-6"
+};
+var _hoisted_6 = {
+ "class": "right__icon"
+};
+var _hoisted_7 = {
+ "class": "details mx-4 xl:px-1"
+};
+var _hoisted_8 = {
+ "class": "text-sm font-bold text-bluecoral"
+};
+var _hoisted_9 = {
+ "class": "text-xs leading-5 text-n-40"
+};
+var _hoisted_10 = ["innerHTML"];
+var _hoisted_11 = {
+ href: "/register",
+ "class": "right__content mb-4"
+};
+var _hoisted_12 = {
+ "class": "right__icon"
+};
+var _hoisted_13 = {
+ "class": "details mx-4 xl:px-1"
+};
+var _hoisted_14 = {
+ "class": "text-sm font-bold text-bluecoral"
+};
+var _hoisted_15 = {
+ "class": "text-xs leading-5 text-n-40"
+};
+var _hoisted_16 = ["innerHTML"];
+var _hoisted_17 = {
+ "class": "text-sm text-n-40"
+};
+var _hoisted_18 = {
+ "class": "border-b-2 border-b-transparent font-bold text-bluecoral hover:border-b-2 hover:border-b-turquoise hover:text-bluecoral",
+ href: "mailto:support@iatistandard.org",
+ target: "_blank"
+};
+
+function render(_ctx, _cache, $props, $setup, $data, $options) {
+ var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
+
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("h2", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.web_lang.join_now) + ".", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.language.home.join_now_section.to_begin_text), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_5, [(0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "text-6xl",
+ icon: "default-1"
+ })]), (0, vue_1.createElementVNode)("div", _hoisted_7, [(0, vue_1.createElementVNode)("span", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.language.home.join_now_section.new_to_iati_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_9, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.home.join_now_section.new_to_iati_text
+ }, null, 8
+ /* PROPS */
+ , _hoisted_10)])]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "right__arrow text-2xl",
+ icon: "right-arrow"
+ })])]), (0, vue_1.createElementVNode)("a", _hoisted_11, [(0, vue_1.createElementVNode)("div", _hoisted_12, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "text-6xl",
+ icon: "default-2"
+ })]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("span", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.language.home.join_now_section.my_organisation_has_registered_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", _hoisted_15, [(0, vue_1.createElementVNode)("span", {
+ innerHTML: _ctx.language.home.join_now_section.my_organisation_has_registered_text
+ }, null, 8
+ /* PROPS */
+ , _hoisted_16)])]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "right__arrow text-2xl",
+ icon: "right-arrow"
+ })])]), (0, vue_1.createElementVNode)("span", _hoisted_17, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.home.join_now_section.not_sure_which_one_label) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("a", _hoisted_18, (0, vue_1.toDisplayString)(_ctx.language.home.join_now_section.contact_support_label), 1
+ /* TEXT */
+ )])])]);
+}
+
+exports.render = render;
+
+/***/ }),
+
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true ***!
@@ -32351,25 +33393,12 @@ var _hoisted_1 = {
id: "right",
"class": "right m-auto flex basis-2/4 items-center rounded-l-lg rounded-r-lg bg-white py-5 px-5 sm:py-10 sm:px-10 md:my-0 md:rounded-l-none lg:px-14 lg:py-28 xl:px-24"
};
-
-var _hoisted_2 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("h2", {
- "class": "mb-2 hidden sm:block"
- }, "Sign In.", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_3 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("span", {
- "class": "text-n-40"
- }, "Welcome back! Please enter your details.", -1
- /* HOISTED */
- );
-});
-
+var _hoisted_2 = {
+ "class": "mb-2 hidden sm:block"
+};
+var _hoisted_3 = {
+ "class": "text-n-40"
+};
var _hoisted_4 = {
key: 0,
"class": "error mt-2 text-xs",
@@ -32378,53 +33407,34 @@ var _hoisted_4 = {
var _hoisted_5 = {
"class": "relative mt-6 mb-4 flex flex-col text-sm text-bluecoral"
};
-
-var _hoisted_6 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("label", {
- "for": "Username"
- }, "Username", -1
- /* HOISTED */
- );
-});
-
-var _hoisted_7 = {
+var _hoisted_6 = {
+ "for": "Username"
+};
+var _hoisted_7 = ["placeholder"];
+var _hoisted_8 = {
key: 0,
"class": "error text-xs",
role: "alert"
};
-var _hoisted_8 = {
+var _hoisted_9 = {
"class": "relative mb-4 flex flex-col text-sm text-bluecoral"
};
-
-var _hoisted_9 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("label", {
- "for": "Password"
- }, "Password", -1
- /* HOISTED */
- );
-});
-
var _hoisted_10 = {
+ "for": "Password"
+};
+var _hoisted_11 = ["placeholder"];
+var _hoisted_12 = {
key: 0,
"class": "error",
role: "alert"
};
-
-var _hoisted_11 = /*#__PURE__*/_withScopeId(function () {
- /*#__PURE__*/
- return (0, vue_1.createElementVNode)("p", {
- "class": "mb-6 text-sm text-n-40"
- }, [/*#__PURE__*/(0, vue_1.createTextVNode)(" Forgot your password? "), /*#__PURE__*/(0, vue_1.createElementVNode)("span", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
- "class": "border-b-2 border-b-transparent font-bold text-bluecoral hover:border-b-2 hover:border-b-turquoise hover:text-bluecoral",
- href: "/password/email"
- }, "Reset.")])], -1
- /* HOISTED */
- );
-});
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createTextVNode)(" SIGN IN ");
+var _hoisted_13 = {
+ "class": "mb-6 text-sm text-n-40"
+};
+var _hoisted_14 = {
+ "class": "border-b-2 border-b-transparent font-bold text-bluecoral hover:border-b-2 hover:border-b-turquoise hover:text-bluecoral",
+ href: "/password/email"
+};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Loader = (0, vue_1.resolveComponent)("Loader");
@@ -32445,9 +33455,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.login && _ctx.login.apply(_ctx, args);
}, ["enter"]))
- }, [_hoisted_2, _hoisted_3, _ctx.message != '' && !(_ctx.errorData.username || _ctx.errorData.password) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.message), 1
+ }, [(0, vue_1.createElementVNode)("h2", _hoisted_2, (0, vue_1.toDisplayString)(_ctx.language.web_lang.sign_in) + ".", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", _hoisted_3, (0, vue_1.toDisplayString)(_ctx.language.home.sign_in_section.welcome_back_label), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_5, [_hoisted_6, (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ ), _ctx.message != '' && !(_ctx.errorData.username || _ctx.errorData.password) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_4, (0, vue_1.toDisplayString)(_ctx.message), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true), (0, vue_1.createElementVNode)("div", _hoisted_5, [(0, vue_1.createElementVNode)("label", _hoisted_6, (0, vue_1.toDisplayString)(_ctx.language.home.sign_in_section.username_label), 1
+ /* TEXT */
+ ), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
id: "username",
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
return _ctx.formData.username = $event;
@@ -32456,15 +33472,17 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
error_input: _ctx.errorData.username
}]),
type: "text",
- placeholder: "Enter a registered username"
- }, null, 2
- /* CLASS */
- ), [[vue_1.vModelText, _ctx.formData.username]]), (0, vue_1.createVNode)(_component_svg_vue, {
+ placeholder: _ctx.language.web_lang.sign_in
+ }, null, 10
+ /* CLASS, PROPS */
+ , _hoisted_7), [[vue_1.vModelText, _ctx.formData.username]]), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "absolute top-12 left-5 text-xl sm:left-6",
icon: "user"
- }), _ctx.errorData.username != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_7, (0, vue_1.toDisplayString)(_ctx.errorData.username), 1
+ }), _ctx.errorData.username != '' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.errorData.username), 1
+ /* TEXT */
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", _hoisted_9, [(0, vue_1.createElementVNode)("label", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.home.sign_in_section.password_label), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("div", _hoisted_8, [_hoisted_9, (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
+ ), (0, vue_1.withDirectives)((0, vue_1.createElementVNode)("input", {
id: "password",
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return _ctx.formData.password = $event;
@@ -32473,15 +33491,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
error__input: _ctx.errorData.password || _ctx.errorData.username
}]),
type: "password",
- placeholder: "Enter a correct password"
- }, null, 2
- /* CLASS */
- ), [[vue_1.vModelText, _ctx.formData.password]]), (0, vue_1.createVNode)(_component_svg_vue, {
+ placeholder: _ctx.language.home.sign_in_section.password_placeholder
+ }, null, 10
+ /* CLASS, PROPS */
+ , _hoisted_11), [[vue_1.vModelText, _ctx.formData.password]]), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "absolute top-12 left-5 text-xl sm:left-6",
icon: "pw-lock"
- }), _ctx.errorData.password ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.errorData.password), 1
+ }), _ctx.errorData.password ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("span", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.errorData.password), 1
/* TEXT */
- )) : (0, vue_1.createCommentVNode)("v-if", true)]), _hoisted_11, (0, vue_1.createElementVNode)("button", {
+ )) : (0, vue_1.createCommentVNode)("v-if", true)]), (0, vue_1.createElementVNode)("p", _hoisted_13, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.home.sign_in_section.forgot_password_label) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("span", null, [(0, vue_1.createElementVNode)("a", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.language.button_lang.reset) + ".", 1
+ /* TEXT */
+ )])]), (0, vue_1.createElementVNode)("button", {
id: "btn",
type: "submit",
"class": "btn",
@@ -32495,7 +33517,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return _ctx.login && _ctx.login.apply(_ctx, args);
})
- }, [_hoisted_12, (0, vue_1.createVNode)(_component_svg_vue, {
+ }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.button_lang.sign_in) + " ", 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "",
icon: "right-arrow"
})])], 32
@@ -32507,6 +33531,171 @@ exports.render = render;
/***/ }),
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680&ts=true":
+/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680&ts=true ***!
+ \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.render = void 0;
+
+var vue_1 = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+var _hoisted_1 = {
+ "class": "mt-7 bg-bluecoral text-sm leading-6 text-n-20 sm:mt-10 md:mt-20"
+};
+var _hoisted_2 = {
+ "class": "border-b border-white border-opacity-20"
+};
+var _hoisted_3 = {
+ "class": "mx-3 py-10 sm:mx-10 xl:mx-24 xl:px-1"
+};
+var _hoisted_4 = {
+ "class": "footer__container grid grid-flow-row gap-8 sm:gap-y-10 md:grid-cols-2 lg:grid-cols-4 lg:justify-items-center"
+};
+var _hoisted_5 = {
+ href: "/"
+};
+var _hoisted_6 = {
+ "class": "footer__links"
+};
+var _hoisted_7 = {
+ "class": "font-bold text-n-10"
+};
+var _hoisted_8 = {
+ "class": "mt-2 flex flex-col"
+};
+var _hoisted_9 = {
+ href: "/"
+};
+var _hoisted_10 = {
+ href: "/about"
+};
+var _hoisted_11 = {
+ href: "/"
+};
+var _hoisted_12 = {
+ href: "/register/join"
+};
+var _hoisted_13 = {
+ "class": "footer__links"
+};
+var _hoisted_14 = {
+ "class": "font-bold text-n-10"
+};
+var _hoisted_15 = {
+ "class": "mt-2 flex flex-col"
+};
+var _hoisted_16 = {
+ href: "/iati-standard"
+};
+var _hoisted_17 = {
+ href: "/publishing-checklist"
+};
+var _hoisted_18 = {
+ href: "/support"
+};
+var _hoisted_19 = {
+ "class": "footer__links lg:justify-self-end"
+};
+var _hoisted_20 = {
+ "class": "text-xs leading-5"
+};
+var _hoisted_21 = {
+ "class": "my-5 flex items-center space-x-2 text-n-10"
+};
+var _hoisted_22 = {
+ "class": "text-xs font-bold uppercase"
+};
+
+var _hoisted_23 = /*#__PURE__*/(0, vue_1.createElementVNode)("ul", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("li", null, [/*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+ "class": "text-sm text-n-10",
+ href: "mailto:support@iatistandard.org"
+}, "support@iatistandard.org")])], -1
+/* HOISTED */
+);
+
+var _hoisted_24 = {
+ "class": "mx-5 py-7 sm:mx-10 xl:mx-24 xl:px-1"
+};
+var _hoisted_25 = {
+ "class": "footer__container grid gap-3 sm:grid-cols-2"
+};
+var _hoisted_26 = {
+ "class": "flex items-center text-n-30"
+};
+var _hoisted_27 = {
+ "class": "flex sm:justify-end"
+};
+var _hoisted_28 = {
+ href: "https://www.youtube.com/channel/UCAVH1gcgJXElsj8ENC-bDQQ",
+ target: "_blank"
+};
+var _hoisted_29 = {
+ "class": "ml-4",
+ href: "https://twitter.com/IATI_aid",
+ target: "_blank"
+};
+
+function render(_ctx, _cache, $props, $setup, $data, $options) {
+ var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
+
+ return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("footer", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("div", _hoisted_3, [(0, vue_1.createElementVNode)("div", _hoisted_4, [(0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("a", _hoisted_5, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "h-auto w-60 text-6xl sm:w-64",
+ icon: "footer-logo"
+ })])]), (0, vue_1.createElementVNode)("div", _hoisted_6, [(0, vue_1.createElementVNode)("span", _hoisted_7, (0, vue_1.toDisplayString)($setup.language.web_lang.iati_publisher), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_8, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_9, (0, vue_1.toDisplayString)($setup.language.web_lang.home), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_10, (0, vue_1.toDisplayString)($setup.language.web_lang.about), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_11, (0, vue_1.toDisplayString)($setup.language.web_lang.sign_in), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_12, (0, vue_1.toDisplayString)($setup.language.web_lang.join_now), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("div", _hoisted_13, [(0, vue_1.createElementVNode)("span", _hoisted_14, (0, vue_1.toDisplayString)($setup.language.web_lang.iati_standard), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("ul", _hoisted_15, [(0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_16, (0, vue_1.toDisplayString)($setup.language.web_lang.iati_standard), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_17, (0, vue_1.toDisplayString)($setup.language.web_lang.publishing_checklist), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("li", null, [(0, vue_1.createElementVNode)("a", _hoisted_18, (0, vue_1.toDisplayString)($setup.language.web_lang.support), 1
+ /* TEXT */
+ )])])]), (0, vue_1.createElementVNode)("div", _hoisted_19, [(0, vue_1.createElementVNode)("div", _hoisted_20, [(0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.web_lang.footer.part_of_iati_unified_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.web_lang.footer.code_licensed_under_label), 1
+ /* TEXT */
+ ), (0, vue_1.createElementVNode)("p", null, (0, vue_1.toDisplayString)($setup.language.web_lang.footer.documentation_licensed_under_label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_21, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "text-2xl",
+ icon: "headphone"
+ }), (0, vue_1.createElementVNode)("span", _hoisted_22, (0, vue_1.toDisplayString)($setup.language.web_lang.footer.any_questions_contact_label), 1
+ /* TEXT */
+ )]), _hoisted_23])])])]), (0, vue_1.createElementVNode)("div", _hoisted_24, [(0, vue_1.createElementVNode)("div", _hoisted_25, [(0, vue_1.createElementVNode)("span", _hoisted_26, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "mr-1 text-base",
+ icon: "copyright"
+ }), (0, vue_1.createTextVNode)(" " + (0, vue_1.toDisplayString)($setup.language.web_lang.footer.copyright_label), 1
+ /* TEXT */
+ )]), (0, vue_1.createElementVNode)("div", _hoisted_27, [(0, vue_1.createElementVNode)("a", _hoisted_28, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "mt-1 mr-1 text-4xl",
+ icon: "youtube"
+ })]), (0, vue_1.createElementVNode)("a", _hoisted_29, [(0, vue_1.createVNode)(_component_svg_vue, {
+ "class": "mt-1 mr-1 text-4xl",
+ icon: "twitter"
+ })])])])])]);
+}
+
+exports.render = render;
+
+/***/ }),
+
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true ***!
@@ -32546,44 +33735,29 @@ var _hoisted_6 = {
var _hoisted_7 = {
"class": "nav__links active dropdown"
};
-
-var _hoisted_8 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_8 = {
href: "/about"
-}, "ABOUT", -1
-/* HOISTED */
-);
-
+};
var _hoisted_9 = {
"class": "nav__links active dropdown"
};
-
-var _hoisted_10 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_10 = {
href: "/publishing-checklist"
-}, "PUBLISHING CHECKLIST", -1
-/* HOISTED */
-);
-
+};
var _hoisted_11 = {
"class": "nav__links active dropdown relative"
};
-
-var _hoisted_12 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_12 = {
href: "/iati-standard"
-}, "IATI STANDARD", -1
-/* HOISTED */
-);
-
+};
var _hoisted_13 = {
"class": "nav__links active dropdown"
};
-
-var _hoisted_14 = /*#__PURE__*/(0, vue_1.createElementVNode)("a", {
+var _hoisted_14 = {
href: "/support"
-}, "SUPPORT", -1
-/* HOISTED */
-);
+};
-var _hoisted_15 = /*#__PURE__*/(0, vue_1.createStaticVNode)("
", 3);
+var _hoisted_15 = /*#__PURE__*/(0, vue_1.createStaticVNode)("
", 3);
var _hoisted_18 = {
"class": "header__title mt-6 flex flex-wrap items-center justify-between gap-2 border-l-4 border-l-turquoise py-2 px-4 sm:py-5 sm:px-6"
@@ -32597,8 +33771,6 @@ var _hoisted_20 = {
"class": "button secondary-btn"
};
-var _hoisted_21 = /*#__PURE__*/(0, vue_1.createTextVNode)(" Go to Dashboard ");
-
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_svg_vue = (0, vue_1.resolveComponent)("svg-vue");
@@ -32607,29 +33779,47 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("div", _hoisted_1, [(0, vue_1.createElementVNode)("div", _hoisted_2, [(0, vue_1.createElementVNode)("header", _hoisted_3, [(0, vue_1.createElementVNode)("nav", _hoisted_4, [(0, vue_1.createElementVNode)("a", _hoisted_5, [(0, vue_1.createVNode)(_component_svg_vue, {
"class": "w-52 text-6xl sm:w-60",
icon: "header-logo"
- })]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("ul", _hoisted_6, [(0, vue_1.createElementVNode)("li", _hoisted_7, [_hoisted_8, (0, vue_1.createVNode)(_component_NavDropdown, {
- name: "About",
- text: "IATI Publisher helps small and medium-sized organisations publish IATI data on development and humanitarian financing and activities",
- "btn-text": "Learn more",
+ })]), (0, vue_1.createElementVNode)("div", null, [(0, vue_1.createElementVNode)("ul", _hoisted_6, [(0, vue_1.createElementVNode)("li", _hoisted_7, [(0, vue_1.createElementVNode)("a", _hoisted_8, (0, vue_1.toDisplayString)(_ctx.language.web_lang.about), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_NavDropdown, {
+ name: _ctx.language.web_lang.about,
+ text: _ctx.language.web_lang.header.about_hover_text,
+ "btn-text": _ctx.language.button_lang.learn_more,
"btn-link": "/about"
- })]), (0, vue_1.createElementVNode)("li", _hoisted_9, [_hoisted_10, (0, vue_1.createVNode)(_component_NavDropdown, {
- name: "Publishing checklist",
- text: "New to IATI? Use our checklist to track each step required for your organisation to successfully publish IATI data",
- "btn-text": "Read more",
+ }, null, 8
+ /* PROPS */
+ , ["name", "text", "btn-text"])]), (0, vue_1.createElementVNode)("li", _hoisted_9, [(0, vue_1.createElementVNode)("a", _hoisted_10, (0, vue_1.toDisplayString)(_ctx.language.web_lang.publishing_checklist), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_NavDropdown, {
+ name: _ctx.language.web_lang.publishing_checklist,
+ text: _ctx.language.web_lang.header.publishing_checklist_hover_text,
+ "btn-text": _ctx.language.button_lang.read_more,
"btn-link": "/publishing-checklist"
- })]), (0, vue_1.createElementVNode)("li", _hoisted_11, [_hoisted_12, (0, vue_1.createVNode)(_component_NavDropdown, {
- name: "IATI Standard",
- text: "The IATI Standard provides information and guidance on all the data fields that\n your organisation can publish IATI data on",
- "btn-text": "See all data fields",
+ }, null, 8
+ /* PROPS */
+ , ["name", "text", "btn-text"])]), (0, vue_1.createElementVNode)("li", _hoisted_11, [(0, vue_1.createElementVNode)("a", _hoisted_12, (0, vue_1.toDisplayString)(_ctx.language.web_lang.iati_standard), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_NavDropdown, {
+ name: _ctx.language.web_lang.iati_standard,
+ text: _ctx.language.web_lang.header.iati_standard_hover_text,
+ "btn-text": _ctx.language.button_lang.see_all_data_fields,
"btn-link": "/iati-standard"
- })]), (0, vue_1.createElementVNode)("li", _hoisted_13, [_hoisted_14, (0, vue_1.createVNode)(_component_NavDropdown, {
- name: "Support",
- text: " Any questions? Get help to publish your organisation’s data",
- "btn-text": "Read more",
+ }, null, 8
+ /* PROPS */
+ , ["name", "text", "btn-text"])]), (0, vue_1.createElementVNode)("li", _hoisted_13, [(0, vue_1.createElementVNode)("a", _hoisted_14, (0, vue_1.toDisplayString)(_ctx.language.web_lang.support), 1
+ /* TEXT */
+ ), (0, vue_1.createVNode)(_component_NavDropdown, {
+ name: _ctx.language.web_lang.support,
+ text: _ctx.language.web_lang.header.support_hover_text,
+ "btn-text": _ctx.language.button_lang.read_more,
"btn-link": "/support"
- })]), (0, vue_1.createCommentVNode)(" commented to temporarily hide language buttons "), (0, vue_1.createCommentVNode)(" \n \n
Language: \n
\n \n EN \n \n \n FR \n \n \n ES \n \n \n
\n ")])]), (0, vue_1.createCommentVNode)(" remove width later "), _hoisted_15]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("h1", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.title), 1
+ }, null, 8
+ /* PROPS */
+ , ["name", "text", "btn-text"])]), (0, vue_1.createCommentVNode)(" commented to temporarily hide language buttons "), (0, vue_1.createCommentVNode)(" \n \n
{{ language.web_lang.language }}: \n
\n \n EN \n \n \n FR \n \n \n ES \n \n \n
\n ")])]), (0, vue_1.createCommentVNode)(" remove width later "), _hoisted_15]), (0, vue_1.createElementVNode)("div", _hoisted_18, [(0, vue_1.createElementVNode)("h1", _hoisted_19, (0, vue_1.toDisplayString)(_ctx.title), 1
+ /* TEXT */
+ ), _ctx.auth === '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", _hoisted_20, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(_ctx.language.web_lang.go_to_dashboard) + " ", 1
/* TEXT */
- ), _ctx.auth === '1' ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)("a", _hoisted_20, [_hoisted_21, (0, vue_1.createVNode)(_component_svg_vue, {
+ ), (0, vue_1.createVNode)(_component_svg_vue, {
"class": "text-2xl",
icon: "right-arrow"
})])) : (0, vue_1.createCommentVNode)("v-if", true)])])])]);
@@ -34132,6 +35322,30 @@ Object.defineProperty(exports, "DocumentLink", ({
/***/ }),
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/AboutPage.vue?vue&type=script&lang=js":
+/*!*********************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/AboutPage.vue?vue&type=script&lang=js ***!
+ \*********************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({
+ setup: function setup() {
+ var language = window["globalLang"];
+ return {
+ language: language
+ };
+ }
+}));
+
+/***/ }),
+
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/WelcomePage.vue?vue&type=script&lang=js":
/*!***********************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/WelcomePage.vue?vue&type=script&lang=js ***!
@@ -34166,6 +35380,7 @@ __webpack_require__.r(__webpack_exports__);
},
setup: function setup(props) {
var pageContent = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(props.page === 'signin' ? 'Join Now' : 'Sign In');
+ var language = window["globalLang"];
function togglePage() {
pageContent.value = pageContent.value === 'Join Now' ? 'Sign In' : 'Join Now';
@@ -34173,7 +35388,8 @@ __webpack_require__.r(__webpack_exports__);
return {
pageContent: pageContent,
- togglePage: togglePage
+ togglePage: togglePage,
+ language: language
};
}
}));
@@ -34229,21 +35445,17 @@ var _hoisted_1 = {
var _hoisted_2 = {
"class": "reset text-center"
};
-
-var _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h2", null, "Password Recovery", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", {
+var _hoisted_3 = {
"class": "mb-5"
-}, " An email has been sent with further instructions, please check it out when you get it. ", -1
-/* HOISTED */
-);
-
+};
function render(_ctx, _cache) {
var _component_svg_vue = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("svg-vue");
- return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [_hoisted_3, _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
+ return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h2", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.password_recovery.password_recovery_header), 1
+ /* TEXT */
+ ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.password_recovery.your_email_has_been_sent_with_label), 1
+ /* TEXT */
+ ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
"class": "verification m-auto",
icon: "ic-verification"
})])]);
@@ -34267,64 +35479,107 @@ __webpack_require__.r(__webpack_exports__);
var _hoisted_1 = {
"class": "smooth -mb-7 bg-[#e5e5e5] px-5 py-7 sm:px-10 sm:py-14 md:-mb-20"
};
-
-var _hoisted_2 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createStaticVNode)(" What is IATI Publisher? IATI Publisher enables organisations to publish data on activities and resource flows according to the IATI Standard. The IATI Standard is a set of rules and guidance on how to publish useful development and humanitarian data.
Use IATI Publisher to: Register your organisation with an IATI Publisher account Understand the data fields in the IATI Standard (with IATI Standard Reference definitions, helpful explanations and links to guidance) Provide your organisation’s data easily by completing online forms. Or upload data on multiple activities on a CSV or .xml file with the Bulk Upload feature Run automatic checks (via the IATI Validator) for errors before publishing your data Publish your data. IATI Publisher will add your data to the IATI Registry (where links to all IATI data is found) IATI Publisher has been built to support organisations that publish a limited number of development and humanitarian activities. An ‘activity’ is an individual project or another unit of development and humanitarian work, which is determined by the organisation that is publishing the data. Organisations who publish a limited number of activities tend to represent small and medium sized organisations.
Large organisations, such as donor governments or UN agencies delivering 100+ activities are advised not to use IATI Publisher. Instead these organisations likely need to use an alternative technical solution that enables the publication of large volumes of data. Please email the IATI Helpdesk for more information: support@iatistandard.org .
Development of IATI Publisher IATI Publisher was first launched in December 2022 by the IATI Secretariat and has been developed by Young Innovations , a software development firm based in Nepal. IATI Publisher is fully aligned with the IATI Standard XML schema and rulesets .
", 1);
-
-var _hoisted_3 = [_hoisted_2];
-function render(_ctx, _cache) {
- return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, _hoisted_3);
-}
-
-/***/ }),
-
-/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0":
-/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0 ***!
- \****************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* binding */ render)
-/* harmony export */ });
-/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-
-var _hoisted_1 = {
- "class": "smooth -mb-7 bg-[#e5e5e5] px-5 py-7 sm:px-10 sm:py-14 md:-mb-20"
+var _hoisted_2 = {
+ "class": "mx-auto max-w-[700px]"
};
-
-var _hoisted_2 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createStaticVNode)(" IATI Standard The IATI Standard is a set of rules and guidance on how to publish useful development and humanitarian data. IATI Publisher will take you through all data fields (which are referred to as ‘elements’) of the IATI Standard, offering helpful explanations and links to further information and guidance. The IATI Standard requires organisations to publish two sets of data:
1. Organisation Data IATI Standard You will be asked to publish data about your entire organisation. This includes basic information about your organisation, such as your name and the type of organisation you are. You can also provide data on:
Total spend by your organisation over the last year Total annual planned budget for your organisation in each of the next three years, where available Planned budgets broken down by individual recipient countries or regions Run automatic checks (via the IATI Validator) for errors before publishing your data Useful background documents, such as country action plans and annual reports Publish your Organisation Data
2. Activity Data The IATI Standard also requires organisations to provide data about their development and humanitarian ‘activities’. For each activity, you can publish a wide range of information, including:
Basic information and identification of the activity e.g. providing a title and a description for your activity Participating organisations – information on which other organisations are involved in the activity Participating organisations – information on which other organisations are involved in Financial data – covers the budgets and the transactions for the activity Classifications – helps categorise the activity using various development and humanitarian taxonomies. For example, what sector does the activity target or support (e.g. primary education or agriculture), or what type of aid is used to fund the activity (e.g. a grant or loan) Links to other data that have already been published on the activity elsewhere The results that the activity is aiming to achieve Publishing data at either Activity level or Transaction level As listed above, you will need to provide data on your activity’s transactions, which shows how the activity is being financed and how the finance is being used.
There are specific types of information that you can either publish about your entire activity, or about individual transactions (each transaction represents money flowing in or out of the activity). For example, you can publish data on which country/region your entire activity is benefitting, or you can publish data on which country/region each transaction is benefitting. However you must not publish this information at both activity and transaction levels.
IATI Publisher provides explanations for each element of the IATI Standard and tells you where you have a choice of which level to publish data for.
Publish your Organisation Data
Download PDF of IATI Standard data fields IATI Standard Whilst gathering and preparing your organisation’s IATI data, you may find it helpful to view the following spreadsheets that provide information on all of the data elements in the IATI Standard. You will also be able to view this information as you work your way through completing the forms for each element on IATI Publisher.
[IATI Organisation Standard data PDF] [IATI Activity Standard data PDF] IATI Standard reference You can look up detailed and technical information about each element of the IATI Standard on the IATI Reference section of IATI’s main website:
Activity Standard Organisation Standard ", 1);
-
-var _hoisted_3 = [_hoisted_2];
-function render(_ctx, _cache) {
- return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, _hoisted_3);
-}
-
-/***/ }),
-
-/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980":
-/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980 ***!
- \***************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* binding */ render)
-/* harmony export */ });
-/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-
-var _hoisted_1 = {
- "class": "smooth -mb-7 bg-[#e5e5e5] px-5 py-7 sm:px-10 sm:py-14 md:-mb-20"
+var _hoisted_3 = {
+ "class": "rounded bg-white py-4 shadow-textbox sm:py-8"
};
-
-var _hoisted_2 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createStaticVNode)("", 1);
-
-var _hoisted_3 = [_hoisted_2];
-function render(_ctx, _cache) {
- return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, _hoisted_3);
+var _hoisted_4 = {
+ "class": "py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_5 = {
+ "class": "my-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_6 = {
+ "class": "mt-4 text-base"
+};
+var _hoisted_7 = {
+ "class": "py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_8 = {
+ "class": "my-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_9 = {
+ "class": "mt-4 ml-4 list-disc text-base text-bluecoral"
+};
+var _hoisted_10 = {
+ "class": "text-base"
+};
+var _hoisted_11 = {
+ "class": "text-black"
+};
+var _hoisted_12 = {
+ "class": "text-base"
+};
+var _hoisted_13 = {
+ "class": "text-black"
+};
+var _hoisted_14 = {
+ "class": "text-base"
+};
+var _hoisted_15 = {
+ "class": "text-black"
+};
+var _hoisted_16 = {
+ "class": "text-base"
+};
+var _hoisted_17 = {
+ "class": "text-black"
+};
+var _hoisted_18 = {
+ "class": "text-base"
+};
+var _hoisted_19 = {
+ "class": "text-black"
+};
+var _hoisted_20 = {
+ "class": "mt-4 text-base"
+};
+var _hoisted_21 = {
+ "class": "mt-4 text-base"
+};
+var _hoisted_22 = ["innerHTML"];
+var _hoisted_23 = {
+ "class": "ounded py-4 px-6 sm:py-6 sm:px-12"
+};
+var _hoisted_24 = {
+ "class": "my-2 text-2xl font-bold text-bluecoral"
+};
+var _hoisted_25 = {
+ "class": "mt-4 text-base"
+};
+var _hoisted_26 = ["innerHTML"];
+function render(_ctx, _cache, $props, $setup, $data, $options) {
+ return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("section", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("article", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.what_is_iati_publisher_header), 1
+ /* TEXT */
+ ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.what_is_iati_publisher_description.one), 1
+ /* TEXT */
+ )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("article", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", _hoisted_8, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.use_iati_publisher_to_header), 1
+ /* TEXT */
+ ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("ul", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("li", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_11, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.use_iati_publisher_to_description.one.list_items.one), 1
+ /* TEXT */
+ )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("li", _hoisted_12, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_13, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.use_iati_publisher_to_description.one.list_items.two), 1
+ /* TEXT */
+ )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("li", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_15, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.use_iati_publisher_to_description.one.list_items.three), 1
+ /* TEXT */
+ )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("li", _hoisted_16, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_17, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.use_iati_publisher_to_description.one.list_items.four), 1
+ /* TEXT */
+ )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("li", _hoisted_18, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_19, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.use_iati_publisher_to_description.one.list_items.five), 1
+ /* TEXT */
+ )])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_20, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.use_iati_publisher_to_description.two), 1
+ /* TEXT */
+ ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_21, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
+ innerHTML: _ctx.language.about.use_iati_publisher_to_description.three
+ }, null, 8
+ /* PROPS */
+ , _hoisted_22)])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("article", _hoisted_23, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", _hoisted_24, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.about.development_of_iati_header), 1
+ /* TEXT */
+ ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_25, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
+ innerHTML: _ctx.language.about.development_of_iati_description.one
+ }, null, 8
+ /* PROPS */
+ , _hoisted_26)])])])])]);
}
/***/ }),
@@ -34354,19 +35609,12 @@ var _hoisted_3 = {
var _hoisted_4 = {
"class": "left__container rounded-lg p-5 sm:p-10"
};
-
-var _hoisted_5 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
+var _hoisted_5 = {
"class": "left__title font-bold"
-}, "IATI Publishing Tool", -1
-/* HOISTED */
-);
-
-var _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", {
+};
+var _hoisted_6 = {
"class": "pt-2 sm:pt-6 sm:pb-8"
-}, " Welcome to IATI Publisher. Publish IATI data on your organisation’s development and humanitarian financing and activities. Enter your login information if you’re already a user or create a new account if you’re new here. ", -1
-/* HOISTED */
-);
-
+};
var _hoisted_7 = {
"class": "block"
};
@@ -34378,7 +35626,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_JoinNow = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("JoinNow");
- return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("section", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [_hoisted_5, _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.pageContent === 'Join Now' ? "Haven't registered yet?" : 'Already have an account?') + " ", 1
+ return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("section", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.home.iati_publishing_tool_header), 1
+ /* TEXT */
+ ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.language.home.iati_publishing_tool_section.welcome_text), 1
+ /* TEXT */
+ ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.pageContent === "Join Now" ? _ctx.language.home.iati_publishing_tool_section.havent_registered_label : _ctx.language.home.iati_publishing_tool_section.already_have_account_label) + " ", 1
/* TEXT */
), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", {
"class": "ml-1 border-b-2 border-b-transparent text-base text-turquoise hover:border-b-2 hover:border-b-turquoise",
@@ -34399,318 +35651,6 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/***/ }),
-/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb":
-/*!************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb ***!
- \************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* binding */ render)
-/* harmony export */ });
-/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-
-var _hoisted_1 = {
- id: "footer",
- "class": "mt-7 bg-bluecoral text-sm leading-6 text-n-20 sm:mt-10 md:mt-20"
-};
-var _hoisted_2 = {
- "class": "border-b border-white border-opacity-20"
-};
-var _hoisted_3 = {
- "class": "mx-3 py-10 sm:mx-10 xl:mx-24 xl:px-1"
-};
-var _hoisted_4 = {
- "class": "footer__container grid grid-flow-row gap-8 sm:gap-y-10 md:grid-cols-2 lg:grid-cols-4 lg:justify-items-center"
-};
-var _hoisted_5 = {
- href: "/"
-};
-
-var _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createStaticVNode)("", 2);
-
-var _hoisted_8 = {
- "class": "footer__links lg:justify-self-end"
-};
-
-var _hoisted_9 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
- "class": "text-xs leading-5"
-}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, "Part of the IATI Unified Platform"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, "Code licensed under the GNU AGPL."), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, "Documentation licensed under CC BY 3.0")], -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
- "class": "my-5 flex items-center space-x-2 text-n-10"
-};
-
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
- "class": "text-xs font-bold uppercase"
-}, "Any questions? Contact Support", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("ul", null, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("li", null, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
- "class": "text-sm text-n-10",
- href: "mailto:support@iatistandard.org"
-}, "support@iatistandard.org")])], -1
-/* HOISTED */
-);
-
-var _hoisted_13 = {
- "class": "mx-5 py-7 sm:mx-10 xl:mx-24 xl:px-1"
-};
-var _hoisted_14 = {
- "class": "footer__container grid gap-3 sm:grid-cols-2"
-};
-var _hoisted_15 = {
- "class": "flex items-center text-n-30"
-};
-
-var _hoisted_16 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" Copyright IATI 2022. All rights reserved.");
-
-var _hoisted_17 = {
- "class": "flex sm:justify-end"
-};
-var _hoisted_18 = {
- href: "https://www.youtube.com/channel/UCAVH1gcgJXElsj8ENC-bDQQ",
- target: "_blank"
-};
-var _hoisted_19 = {
- "class": "ml-4",
- href: "https://twitter.com/IATI_aid",
- target: "_blank"
-};
-function render(_ctx, _cache) {
- var _component_svg_vue = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("svg-vue");
-
- return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("footer", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "h-auto w-60 text-6xl sm:w-64",
- icon: "footer-logo"
- })])]), _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_8, [_hoisted_9, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "text-2xl",
- icon: "headphone"
- }), _hoisted_11]), _hoisted_12])])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "mr-1 text-base",
- icon: "copyright"
- }), _hoisted_16]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", _hoisted_18, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "mt-1 mr-1 text-4xl",
- icon: "youtube"
- })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", _hoisted_19, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "mt-1 mr-1 text-4xl",
- icon: "twitter"
- })])])])])]);
-}
-
-/***/ }),
-
-/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086":
-/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086 ***!
- \********************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* binding */ render)
-/* harmony export */ });
-/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-
-var _hoisted_1 = {
- "class": "right join-now m-auto flex basis-2/4 items-center rounded-l-lg rounded-r-lg bg-white py-5 px-5 sm:py-10 sm:px-7 md:my-0 md:rounded-l-none lg:py-28 xl:px-14"
-};
-var _hoisted_2 = {
- "class": "right__container flex flex-col"
-};
-
-var _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h2", {
- "class": "mb-2 hidden sm:block"
-}, "Join Now.", -1
-/* HOISTED */
-);
-
-var _hoisted_4 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
- "class": "mb-8 text-n-40 xl:pr-6"
-}, " To begin, your organisation needs to be registered as an IATI publisher. Select an option and we’ll guide you through this process. ", -1
-/* HOISTED */
-);
-
-var _hoisted_5 = {
- href: "/iati/register",
- "class": "right__content mb-6"
-};
-var _hoisted_6 = {
- "class": "right__icon"
-};
-
-var _hoisted_7 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
- "class": "details mx-4 xl:px-1"
-}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
- "class": "text-sm font-bold text-bluecoral"
-}, "I am new to IATI"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", {
- "class": "text-xs leading-5 text-n-40"
-}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" Use this option if your organization "), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("u", null, "has not"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" registered an account with IATI on the IATI Registry ")])], -1
-/* HOISTED */
-);
-
-var _hoisted_8 = {
- href: "/register",
- "class": "right__content mb-4"
-};
-var _hoisted_9 = {
- "class": "right__icon"
-};
-
-var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
- "class": "details mx-4 xl:px-1"
-}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
- "class": "text-sm font-bold text-bluecoral"
-}, "My organisation has registered with IATI"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", {
- "class": "text-xs leading-5 text-n-40"
-}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" Use this option if your organisation is already registered as an IATI Publisher on the "), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
- href: "https://www.iatiregistry.org/",
- target: "_blank"
-}, "IATI Registry")])], -1
-/* HOISTED */
-);
-
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
- "class": "text-sm text-n-40"
-}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)("Not sure which one to select? "), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
- "class": "border-b-2 border-b-transparent font-bold text-bluecoral hover:border-b-2 hover:border-b-turquoise hover:text-bluecoral",
- href: "mailto:support@iatistandard.org",
- target: "_blank"
-}, "Contact Support.")], -1
-/* HOISTED */
-);
-
-function render(_ctx, _cache) {
- var _component_svg_vue = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("svg-vue");
-
- return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [_hoisted_3, _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "text-6xl",
- icon: "default-1"
- })]), _hoisted_7, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "right__arrow text-2xl",
- icon: "right-arrow"
- })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "text-6xl",
- icon: "default-2"
- })]), _hoisted_10, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "right__arrow text-2xl",
- icon: "right-arrow"
- })])]), _hoisted_11])]);
-}
-
-/***/ }),
-
-/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680":
-/*!**********************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680 ***!
- \**********************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* binding */ render)
-/* harmony export */ });
-/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
-
-var _hoisted_1 = {
- "class": "mt-7 bg-bluecoral text-sm leading-6 text-n-20 sm:mt-10 md:mt-20"
-};
-var _hoisted_2 = {
- "class": "border-b border-white border-opacity-20"
-};
-var _hoisted_3 = {
- "class": "mx-3 py-10 sm:mx-10 xl:mx-24 xl:px-1"
-};
-var _hoisted_4 = {
- "class": "footer__container grid grid-flow-row gap-8 sm:gap-y-10 md:grid-cols-2 lg:grid-cols-4 lg:justify-items-center"
-};
-var _hoisted_5 = {
- href: "/"
-};
-
-var _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createStaticVNode)("", 2);
-
-var _hoisted_8 = {
- "class": "footer__links lg:justify-self-end"
-};
-
-var _hoisted_9 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
- "class": "text-xs leading-5"
-}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, "Part of the IATI Unified Platform"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, "Code licensed under the GNU AGPL."), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, "Documentation licensed under CC BY 3.0")], -1
-/* HOISTED */
-);
-
-var _hoisted_10 = {
- "class": "my-5 flex items-center space-x-2 text-n-10"
-};
-
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
- "class": "text-xs font-bold uppercase"
-}, "Any questions? Contact Support", -1
-/* HOISTED */
-);
-
-var _hoisted_12 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("ul", null, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("li", null, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
- "class": "text-sm text-n-10",
- href: "mailto:support@iatistandard.org"
-}, "support@iatistandard.org")])], -1
-/* HOISTED */
-);
-
-var _hoisted_13 = {
- "class": "mx-5 py-7 sm:mx-10 xl:mx-24 xl:px-1"
-};
-var _hoisted_14 = {
- "class": "footer__container grid gap-3 sm:grid-cols-2"
-};
-var _hoisted_15 = {
- "class": "flex items-center text-n-30"
-};
-
-var _hoisted_16 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" Copyright IATI 2022. All rights reserved.");
-
-var _hoisted_17 = {
- "class": "flex sm:justify-end"
-};
-var _hoisted_18 = {
- href: "https://www.youtube.com/channel/UCAVH1gcgJXElsj8ENC-bDQQ",
- target: "_blank"
-};
-var _hoisted_19 = {
- "class": "ml-4",
- href: "https://twitter.com/IATI_aid",
- target: "_blank"
-};
-function render(_ctx, _cache) {
- var _component_svg_vue = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("svg-vue");
-
- return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("footer", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "h-auto w-60 text-6xl sm:w-64",
- icon: "footer-logo"
- })])]), _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_8, [_hoisted_9, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "text-2xl",
- icon: "headphone"
- }), _hoisted_11]), _hoisted_12])])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "mr-1 text-base",
- icon: "copyright"
- }), _hoisted_16]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", _hoisted_18, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "mt-1 mr-1 text-4xl",
- icon: "youtube"
- })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", _hoisted_19, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_svg_vue, {
- "class": "mt-1 mr-1 text-4xl",
- icon: "twitter"
- })])])])])]);
-}
-
-/***/ }),
-
/***/ "./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/components/AdminHeader.vue?vue&type=style&index=1&id=6fe59055&lang=scss&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/components/AdminHeader.vue?vue&type=style&index=1&id=6fe59055&lang=scss&scoped=true ***!
@@ -41918,12 +42858,14 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _AboutPage_vue_vue_type_template_id_7d9fa904__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AboutPage.vue?vue&type=template&id=7d9fa904 */ "./resources/assets/js/views/web/AboutPage.vue?vue&type=template&id=7d9fa904");
-/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _AboutPage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AboutPage.vue?vue&type=script&lang=js */ "./resources/assets/js/views/web/AboutPage.vue?vue&type=script&lang=js");
+/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+
+
-const script = {}
;
-const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__["default"])(script, [['render',_AboutPage_vue_vue_type_template_id_7d9fa904__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/AboutPage.vue"]])
+const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AboutPage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AboutPage_vue_vue_type_template_id_7d9fa904__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/AboutPage.vue"]])
/* hot reload */
if (false) {}
@@ -42006,15 +42948,18 @@ if (false) {}
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _IatiStandard_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__.__esModule),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
-/* harmony import */ var _IatiStandard_vue_vue_type_template_id_e68494d0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./IatiStandard.vue?vue&type=template&id=e68494d0 */ "./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0");
-/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _IatiStandard_vue_vue_type_template_id_e68494d0_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./IatiStandard.vue?vue&type=template&id=e68494d0&ts=true */ "./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0&ts=true");
+/* harmony import */ var _IatiStandard_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IatiStandard.vue?vue&type=script&lang=ts&setup=true */ "./resources/assets/js/views/web/IatiStandard.vue?vue&type=script&lang=ts&setup=true");
+/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+
+
-const script = {}
;
-const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__["default"])(script, [['render',_IatiStandard_vue_vue_type_template_id_e68494d0__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/IatiStandard.vue"]])
+const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_IatiStandard_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_IatiStandard_vue_vue_type_template_id_e68494d0_ts_true__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/IatiStandard.vue"]])
/* hot reload */
if (false) {}
@@ -42032,18 +42977,20 @@ if (false) {}
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "__esModule": () => (/* reexport safe */ _PublishingChecklist_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__.__esModule),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _PublishingChecklist_vue_vue_type_template_id_dca69396_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PublishingChecklist.vue?vue&type=template&id=dca69396&ts=true */ "./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=template&id=dca69396&ts=true");
-/* harmony import */ var _PublishingChecklist_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PublishingChecklist.vue?vue&type=script&lang=ts&setup=true */ "./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts&setup=true");
+/* harmony import */ var _PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PublishingChecklist.vue?vue&type=script&lang=ts */ "./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts");
+/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
+/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__[__WEBPACK_IMPORT_KEY__]
+/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
;
-const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_PublishingChecklist_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_PublishingChecklist_vue_vue_type_template_id_dca69396_ts_true__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/PublishingChecklist.vue"]])
+const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_PublishingChecklist_vue_vue_type_template_id_dca69396_ts_true__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/PublishingChecklist.vue"]])
/* hot reload */
if (false) {}
@@ -42097,15 +43044,18 @@ if (false) {}
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _SupportPage_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__.__esModule),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
-/* harmony import */ var _SupportPage_vue_vue_type_template_id_56fff980__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SupportPage.vue?vue&type=template&id=56fff980 */ "./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980");
-/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _SupportPage_vue_vue_type_template_id_56fff980_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SupportPage.vue?vue&type=template&id=56fff980&ts=true */ "./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980&ts=true");
+/* harmony import */ var _SupportPage_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SupportPage.vue?vue&type=script&lang=ts&setup=true */ "./resources/assets/js/views/web/SupportPage.vue?vue&type=script&lang=ts&setup=true");
+/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+
+
-const script = {}
;
-const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__["default"])(script, [['render',_SupportPage_vue_vue_type_template_id_56fff980__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/SupportPage.vue"]])
+const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_SupportPage_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_SupportPage_vue_vue_type_template_id_56fff980_ts_true__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/SupportPage.vue"]])
/* hot reload */
if (false) {}
@@ -42151,15 +43101,18 @@ if (false) {}
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _AdminFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__.__esModule),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
-/* harmony import */ var _AdminFooter_vue_vue_type_template_id_55f9b4bb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdminFooter.vue?vue&type=template&id=55f9b4bb */ "./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb");
-/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _AdminFooter_vue_vue_type_template_id_55f9b4bb_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdminFooter.vue?vue&type=template&id=55f9b4bb&ts=true */ "./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb&ts=true");
+/* harmony import */ var _AdminFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AdminFooter.vue?vue&type=script&lang=ts&setup=true */ "./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=script&lang=ts&setup=true");
+/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+
+
-const script = {}
;
-const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__["default"])(script, [['render',_AdminFooter_vue_vue_type_template_id_55f9b4bb__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/partials/AdminFooter.vue"]])
+const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AdminFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AdminFooter_vue_vue_type_template_id_55f9b4bb_ts_true__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/partials/AdminFooter.vue"]])
/* hot reload */
if (false) {}
@@ -42177,15 +43130,18 @@ if (false) {}
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _JoinNow_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__.__esModule),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
-/* harmony import */ var _JoinNow_vue_vue_type_template_id_269f5086__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JoinNow.vue?vue&type=template&id=269f5086 */ "./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086");
-/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _JoinNow_vue_vue_type_template_id_269f5086_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JoinNow.vue?vue&type=template&id=269f5086&ts=true */ "./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086&ts=true");
+/* harmony import */ var _JoinNow_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./JoinNow.vue?vue&type=script&lang=ts */ "./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=script&lang=ts");
+/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+
+
-const script = {}
;
-const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__["default"])(script, [['render',_JoinNow_vue_vue_type_template_id_269f5086__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/partials/JoinNow.vue"]])
+const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_JoinNow_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_JoinNow_vue_vue_type_template_id_269f5086_ts_true__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/partials/JoinNow.vue"]])
/* hot reload */
if (false) {}
@@ -42237,15 +43193,18 @@ if (false) {}
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _WebFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__.__esModule),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
-/* harmony import */ var _WebFooter_vue_vue_type_template_id_20d10680__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./WebFooter.vue?vue&type=template&id=20d10680 */ "./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680");
-/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+/* harmony import */ var _WebFooter_vue_vue_type_template_id_20d10680_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./WebFooter.vue?vue&type=template&id=20d10680&ts=true */ "./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680&ts=true");
+/* harmony import */ var _WebFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./WebFooter.vue?vue&type=script&lang=ts&setup=true */ "./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=script&lang=ts&setup=true");
+/* harmony import */ var _home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
+
+
-const script = {}
;
-const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_1__["default"])(script, [['render',_WebFooter_vue_vue_type_template_id_20d10680__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/partials/WebFooter.vue"]])
+const __exports__ = /*#__PURE__*/(0,_home_momik_YI_iatipublisher_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_WebFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_WebFooter_vue_vue_type_template_id_20d10680_ts_true__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/assets/js/views/web/partials/WebFooter.vue"]])
/* hot reload */
if (false) {}
@@ -44688,19 +45647,39 @@ __webpack_require__.r(__webpack_exports__);
/***/ }),
-/***/ "./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts&setup=true":
-/*!**************************************************************************************************!*\
- !*** ./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts&setup=true ***!
- \**************************************************************************************************/
+/***/ "./resources/assets/js/views/web/IatiStandard.vue?vue&type=script&lang=ts&setup=true":
+/*!*******************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/IatiStandard.vue?vue&type=script&lang=ts&setup=true ***!
+ \*******************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiStandard_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiStandard_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__["default"])
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiStandard_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./IatiStandard.vue?vue&type=script&lang=ts&setup=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=script&lang=ts&setup=true");
+
+
+/***/ }),
+
+/***/ "./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts":
+/*!***************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts ***!
+ \***************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
-/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__["default"])
+/* harmony export */ "default": () => (/* reexport default from dynamic */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0___default.a)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./PublishingChecklist.vue?vue&type=script&lang=ts&setup=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts&setup=true");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./PublishingChecklist.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=script&lang=ts");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
+/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PublishingChecklist_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]
+/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
/***/ }),
@@ -44723,6 +45702,57 @@ __webpack_require__.r(__webpack_exports__);
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
+/***/ }),
+
+/***/ "./resources/assets/js/views/web/SupportPage.vue?vue&type=script&lang=ts&setup=true":
+/*!******************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/SupportPage.vue?vue&type=script&lang=ts&setup=true ***!
+ \******************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SupportPage_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SupportPage_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__["default"])
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SupportPage_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./SupportPage.vue?vue&type=script&lang=ts&setup=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=script&lang=ts&setup=true");
+
+
+/***/ }),
+
+/***/ "./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=script&lang=ts&setup=true":
+/*!***************************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=script&lang=ts&setup=true ***!
+ \***************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AdminFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AdminFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__["default"])
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AdminFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AdminFooter.vue?vue&type=script&lang=ts&setup=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=script&lang=ts&setup=true");
+
+
+/***/ }),
+
+/***/ "./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=script&lang=ts":
+/*!************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=script&lang=ts ***!
+ \************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_JoinNow_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_JoinNow_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"])
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_JoinNow_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./JoinNow.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=script&lang=ts");
+
+
/***/ }),
/***/ "./resources/assets/js/views/web/partials/SignIn.vue?vue&type=script&lang=ts":
@@ -44743,6 +45773,23 @@ __webpack_require__.r(__webpack_exports__);
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
+/***/ }),
+
+/***/ "./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=script&lang=ts&setup=true":
+/*!*************************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=script&lang=ts&setup=true ***!
+ \*************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__["default"])
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebFooter_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WebFooter.vue?vue&type=script&lang=ts&setup=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=script&lang=ts&setup=true");
+
+
/***/ }),
/***/ "./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=script&lang=ts":
@@ -46956,6 +48003,23 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiRegisterPage_vue_vue_type_template_id_17e632a6_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./IatiRegisterPage.vue?vue&type=template&id=17e632a6&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiRegisterPage.vue?vue&type=template&id=17e632a6&ts=true");
+/***/ }),
+
+/***/ "./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0&ts=true":
+/*!**********************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0&ts=true ***!
+ \**********************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiStandard_vue_vue_type_template_id_e68494d0_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiStandard_vue_vue_type_template_id_e68494d0_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiStandard_vue_vue_type_template_id_e68494d0_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./IatiStandard.vue?vue&type=template&id=e68494d0&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0&ts=true");
+
+
/***/ }),
/***/ "./resources/assets/js/views/web/PublishingChecklist.vue?vue&type=template&id=dca69396&ts=true":
@@ -46992,196 +48056,200 @@ __webpack_require__.r(__webpack_exports__);
/***/ }),
-/***/ "./resources/assets/js/views/web/partials/SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true":
-/*!*************************************************************************************************************!*\
- !*** ./resources/assets/js/views/web/partials/SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true ***!
- \*************************************************************************************************************/
+/***/ "./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980&ts=true":
+/*!*********************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980&ts=true ***!
+ \*********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SignIn_vue_vue_type_template_id_a1861f3e_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SignIn_vue_vue_type_template_id_a1861f3e_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SupportPage_vue_vue_type_template_id_56fff980_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SupportPage_vue_vue_type_template_id_56fff980_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SignIn_vue_vue_type_template_id_a1861f3e_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SupportPage_vue_vue_type_template_id_56fff980_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./SupportPage.vue?vue&type=template&id=56fff980&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980&ts=true");
/***/ }),
-/***/ "./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true":
-/*!****************************************************************************************************!*\
- !*** ./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true ***!
- \****************************************************************************************************/
+/***/ "./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb&ts=true":
+/*!******************************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb&ts=true ***!
+ \******************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebHeader_vue_vue_type_template_id_10c9e0b2_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebHeader_vue_vue_type_template_id_10c9e0b2_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AdminFooter_vue_vue_type_template_id_55f9b4bb_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AdminFooter_vue_vue_type_template_id_55f9b4bb_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebHeader_vue_vue_type_template_id_10c9e0b2_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AdminFooter_vue_vue_type_template_id_55f9b4bb_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AdminFooter.vue?vue&type=template&id=55f9b4bb&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb&ts=true");
/***/ }),
-/***/ "./resources/assets/js/views/web/WelcomePage.vue?vue&type=script&lang=js":
-/*!*******************************************************************************!*\
- !*** ./resources/assets/js/views/web/WelcomePage.vue?vue&type=script&lang=js ***!
- \*******************************************************************************/
+/***/ "./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086&ts=true":
+/*!**************************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086&ts=true ***!
+ \**************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WelcomePage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_JoinNow_vue_vue_type_template_id_269f5086_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_JoinNow_vue_vue_type_template_id_269f5086_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WelcomePage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WelcomePage.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/WelcomePage.vue?vue&type=script&lang=js");
-
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_JoinNow_vue_vue_type_template_id_269f5086_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./JoinNow.vue?vue&type=template&id=269f5086&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086&ts=true");
+
/***/ }),
-/***/ "./resources/assets/js/components/ShimmerLoading.vue?vue&type=template&id=74356172&scoped=true":
-/*!*****************************************************************************************************!*\
- !*** ./resources/assets/js/components/ShimmerLoading.vue?vue&type=template&id=74356172&scoped=true ***!
- \*****************************************************************************************************/
+/***/ "./resources/assets/js/views/web/partials/SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true":
+/*!*************************************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/partials/SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true ***!
+ \*************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ShimmerLoading_vue_vue_type_template_id_74356172_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SignIn_vue_vue_type_template_id_a1861f3e_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SignIn_vue_vue_type_template_id_a1861f3e_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ShimmerLoading_vue_vue_type_template_id_74356172_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ShimmerLoading.vue?vue&type=template&id=74356172&scoped=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/components/ShimmerLoading.vue?vue&type=template&id=74356172&scoped=true");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SignIn_vue_vue_type_template_id_a1861f3e_scoped_true_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/SignIn.vue?vue&type=template&id=a1861f3e&scoped=true&ts=true");
/***/ }),
-/***/ "./resources/assets/js/views/reset/PasswordRecovery.vue?vue&type=template&id=70385da3":
-/*!********************************************************************************************!*\
- !*** ./resources/assets/js/views/reset/PasswordRecovery.vue?vue&type=template&id=70385da3 ***!
- \********************************************************************************************/
+/***/ "./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680&ts=true":
+/*!****************************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680&ts=true ***!
+ \****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PasswordRecovery_vue_vue_type_template_id_70385da3__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebFooter_vue_vue_type_template_id_20d10680_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebFooter_vue_vue_type_template_id_20d10680_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PasswordRecovery_vue_vue_type_template_id_70385da3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./PasswordRecovery.vue?vue&type=template&id=70385da3 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/reset/PasswordRecovery.vue?vue&type=template&id=70385da3");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebFooter_vue_vue_type_template_id_20d10680_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WebFooter.vue?vue&type=template&id=20d10680&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680&ts=true");
/***/ }),
-/***/ "./resources/assets/js/views/web/AboutPage.vue?vue&type=template&id=7d9fa904":
-/*!***********************************************************************************!*\
- !*** ./resources/assets/js/views/web/AboutPage.vue?vue&type=template&id=7d9fa904 ***!
- \***********************************************************************************/
+/***/ "./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true":
+/*!****************************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true ***!
+ \****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AboutPage_vue_vue_type_template_id_7d9fa904__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "__esModule": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebHeader_vue_vue_type_template_id_10c9e0b2_ts_true__WEBPACK_IMPORTED_MODULE_0__.__esModule),
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebHeader_vue_vue_type_template_id_10c9e0b2_ts_true__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AboutPage_vue_vue_type_template_id_7d9fa904__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AboutPage.vue?vue&type=template&id=7d9fa904 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/AboutPage.vue?vue&type=template&id=7d9fa904");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebHeader_vue_vue_type_template_id_10c9e0b2_ts_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebHeader.vue?vue&type=template&id=10c9e0b2&ts=true");
/***/ }),
-/***/ "./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0":
-/*!**************************************************************************************!*\
- !*** ./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0 ***!
- \**************************************************************************************/
+/***/ "./resources/assets/js/views/web/AboutPage.vue?vue&type=script&lang=js":
+/*!*****************************************************************************!*\
+ !*** ./resources/assets/js/views/web/AboutPage.vue?vue&type=script&lang=js ***!
+ \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiStandard_vue_vue_type_template_id_e68494d0__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AboutPage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_IatiStandard_vue_vue_type_template_id_e68494d0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./IatiStandard.vue?vue&type=template&id=e68494d0 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/IatiStandard.vue?vue&type=template&id=e68494d0");
-
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AboutPage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AboutPage.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/AboutPage.vue?vue&type=script&lang=js");
+
/***/ }),
-/***/ "./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980":
-/*!*************************************************************************************!*\
- !*** ./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980 ***!
- \*************************************************************************************/
+/***/ "./resources/assets/js/views/web/WelcomePage.vue?vue&type=script&lang=js":
+/*!*******************************************************************************!*\
+ !*** ./resources/assets/js/views/web/WelcomePage.vue?vue&type=script&lang=js ***!
+ \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SupportPage_vue_vue_type_template_id_56fff980__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WelcomePage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_SupportPage_vue_vue_type_template_id_56fff980__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./SupportPage.vue?vue&type=template&id=56fff980 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/SupportPage.vue?vue&type=template&id=56fff980");
-
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WelcomePage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WelcomePage.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/WelcomePage.vue?vue&type=script&lang=js");
+
/***/ }),
-/***/ "./resources/assets/js/views/web/WelcomePage.vue?vue&type=template&id=eae4485a":
-/*!*************************************************************************************!*\
- !*** ./resources/assets/js/views/web/WelcomePage.vue?vue&type=template&id=eae4485a ***!
- \*************************************************************************************/
+/***/ "./resources/assets/js/components/ShimmerLoading.vue?vue&type=template&id=74356172&scoped=true":
+/*!*****************************************************************************************************!*\
+ !*** ./resources/assets/js/components/ShimmerLoading.vue?vue&type=template&id=74356172&scoped=true ***!
+ \*****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WelcomePage_vue_vue_type_template_id_eae4485a__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ShimmerLoading_vue_vue_type_template_id_74356172_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WelcomePage_vue_vue_type_template_id_eae4485a__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WelcomePage.vue?vue&type=template&id=eae4485a */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/WelcomePage.vue?vue&type=template&id=eae4485a");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ShimmerLoading_vue_vue_type_template_id_74356172_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ShimmerLoading.vue?vue&type=template&id=74356172&scoped=true */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/components/ShimmerLoading.vue?vue&type=template&id=74356172&scoped=true");
/***/ }),
-/***/ "./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb":
-/*!**********************************************************************************************!*\
- !*** ./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb ***!
- \**********************************************************************************************/
+/***/ "./resources/assets/js/views/reset/PasswordRecovery.vue?vue&type=template&id=70385da3":
+/*!********************************************************************************************!*\
+ !*** ./resources/assets/js/views/reset/PasswordRecovery.vue?vue&type=template&id=70385da3 ***!
+ \********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AdminFooter_vue_vue_type_template_id_55f9b4bb__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PasswordRecovery_vue_vue_type_template_id_70385da3__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AdminFooter_vue_vue_type_template_id_55f9b4bb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AdminFooter.vue?vue&type=template&id=55f9b4bb */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/AdminFooter.vue?vue&type=template&id=55f9b4bb");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_PasswordRecovery_vue_vue_type_template_id_70385da3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./PasswordRecovery.vue?vue&type=template&id=70385da3 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/reset/PasswordRecovery.vue?vue&type=template&id=70385da3");
/***/ }),
-/***/ "./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086":
-/*!******************************************************************************************!*\
- !*** ./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086 ***!
- \******************************************************************************************/
+/***/ "./resources/assets/js/views/web/AboutPage.vue?vue&type=template&id=7d9fa904":
+/*!***********************************************************************************!*\
+ !*** ./resources/assets/js/views/web/AboutPage.vue?vue&type=template&id=7d9fa904 ***!
+ \***********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_JoinNow_vue_vue_type_template_id_269f5086__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AboutPage_vue_vue_type_template_id_7d9fa904__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_JoinNow_vue_vue_type_template_id_269f5086__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./JoinNow.vue?vue&type=template&id=269f5086 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/JoinNow.vue?vue&type=template&id=269f5086");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AboutPage_vue_vue_type_template_id_7d9fa904__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AboutPage.vue?vue&type=template&id=7d9fa904 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/AboutPage.vue?vue&type=template&id=7d9fa904");
/***/ }),
-/***/ "./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680":
-/*!********************************************************************************************!*\
- !*** ./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680 ***!
- \********************************************************************************************/
+/***/ "./resources/assets/js/views/web/WelcomePage.vue?vue&type=template&id=eae4485a":
+/*!*************************************************************************************!*\
+ !*** ./resources/assets/js/views/web/WelcomePage.vue?vue&type=template&id=eae4485a ***!
+ \*************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebFooter_vue_vue_type_template_id_20d10680__WEBPACK_IMPORTED_MODULE_0__.render)
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WelcomePage_vue_vue_type_template_id_eae4485a__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
-/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WebFooter_vue_vue_type_template_id_20d10680__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WebFooter.vue?vue&type=template&id=20d10680 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/partials/WebFooter.vue?vue&type=template&id=20d10680");
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_WelcomePage_vue_vue_type_template_id_eae4485a__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./WelcomePage.vue?vue&type=template&id=eae4485a */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/assets/js/views/web/WelcomePage.vue?vue&type=template&id=eae4485a");
/***/ }),
@@ -47606,4 +48674,4 @@ webpackContext.id = "./resources/assets/images/svg sync recursive ^\\.\\/.*$";
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ }
]);
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RyxPQUFPLCtCQUErQixHQUFHLFFBQVEsMkJBQTJCLEdBQUcsR0FBRywwQ0FBMEMsTUFBTSxnQ0FBZ0MsR0FBRyxPQUFPLGdDQUFnQyxHQUFHLFFBQVEsOEJBQThCLEdBQUcsR0FBRyxrQ0FBa0MsTUFBTSxnQ0FBZ0MsR0FBRyxPQUFPLGdDQUFnQyxHQUFHLFFBQVEsOEJBQThCLEdBQUcsR0FBRyxPQUFPLDZIQUE2SCxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsV0FBVyxXQUFXLFdBQVcsS0FBSyxLQUFLLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLFdBQVcsS0FBSyxLQUFLLFVBQVUsV0FBVyxXQUFXLEtBQUssS0FBSyxVQUFVLFdBQVcsS0FBSyxLQUFLLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssTUFBTSxXQUFXLEtBQUssS0FBSyxNQUFNLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLE1BQU0sV0FBVyxLQUFLLEtBQUssTUFBTSxLQUFLLFdBQVcsS0FBSyxNQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxLQUFLLEtBQUssS0FBSyxX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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUNuU0EsaUVBQWUsMmVBQTJlOzs7Ozs7Ozs7Ozs7Ozs7QUNBMWYsaUVBQWUsdVdBQXVXOzs7Ozs7Ozs7Ozs7Ozs7QUNBdFgsaUVBQWUscW1CQUFxbUI7Ozs7Ozs7Ozs7Ozs7OztBQ0FwbkIsaUVBQWUsc3dCQUFzd0I7Ozs7Ozs7Ozs7Ozs7OztBQ0FyeEIsaUVBQWUsNG1CQUE0bUI7Ozs7Ozs7Ozs7Ozs7OztBQ0EzbkIsaUVBQWUscWJBQXFiOzs7Ozs7Ozs7Ozs7Ozs7QUNBcGMsaUVBQWUsMHhDQUEweEM7Ozs7Ozs7Ozs7Ozs7OztBQ0F6eUMsaUVBQWUsb2VBQW9lOzs7Ozs7Ozs7Ozs7Ozs7QUNBbmYsaUVBQWUsZzRCQUFnNEI7Ozs7Ozs7Ozs7Ozs7OztBQ0EvNEIsaUVBQWUsaTZCQUFpNkI7Ozs7Ozs7Ozs7Ozs7OztBQ0FoN0IsaUVBQWUsdW1CQUF1bUI7Ozs7Ozs7Ozs7Ozs7OztBQ0F0bkIsaUVBQWUsaXpCQUFpekI7Ozs7Ozs7Ozs7Ozs7OztBQ0FoMEIsaUVBQWUsd2hCQUF3aEI7Ozs7Ozs7Ozs7Ozs7OztBQ0F2aUIsaUVBQWUsd1NBQXdTOzs7Ozs7Ozs7Ozs7Ozs7QUNBdlQsaUVBQWUseXBCQUF5cEI7Ozs7Ozs7Ozs7Ozs7OztBQ0F4cUIsaUVBQWUsNG1CQUE0bUI7Ozs7Ozs7Ozs7Ozs7OztBQ0EzbkIsaUVBQWUsdWlCQUF1aUI7Ozs7Ozs7Ozs7Ozs7OztBQ0F0akIsaUVBQWUsc1VBQXNVOzs7Ozs7Ozs7Ozs7Ozs7QUNBclYsaUVBQWUsMG5CQUEwbkI7Ozs7Ozs7Ozs7Ozs7OztBQ0F6b0IsaUVBQWUsOGdCQUE4Z0I7Ozs7Ozs7Ozs7Ozs7OztBQ0E3aEIsaUVBQWUsb2ZBQW9mOzs7Ozs7Ozs7Ozs7Ozs7QUNBbmdCLGlFQUFlLHdsQkFBd2xCOzs7Ozs7Ozs7Ozs7Ozs7QUNBdm1CLGlFQUFlLGdoQkFBZ2hCOzs7Ozs7Ozs7Ozs7Ozs7QUNBL2hCLGlFQUFlLDBuQkFBMG5COzs7Ozs7Ozs7Ozs7Ozs7QUNBem9CLGlFQUFlLCt3QkFBK3dCOzs7Ozs7Ozs7Ozs7Ozs7QUNBOXhCLGlFQUFlLHM2QkFBczZCOzs7Ozs7Ozs7Ozs7Ozs7QUNBcjdCLGlFQUFlLHVoQkFBdWhCOzs7Ozs7Ozs7Ozs7Ozs7QUNBdGlCLGlFQUFlLHNqQkFBc2pCOzs7Ozs7Ozs7Ozs7Ozs7QUNBcmtCLGlFQUFlLGdhQUFnYTs7Ozs7Ozs7Ozs7Ozs7O0FDQS9hLGlFQUFlLDZrQ0FBNmtDOzs7Ozs7Ozs7Ozs7Ozs7QUNBNWxDLGlFQUFlLCtvQkFBK29COzs7Ozs7Ozs7Ozs7Ozs7QUNBOXBCLGlFQUFlLDgwQkFBODBCOzs7Ozs7Ozs7Ozs7Ozs7QUNBNzFCLGlFQUFlLHFkQUFxZDs7Ozs7Ozs7Ozs7Ozs7O0FDQXBlLGlFQUFlLHVkQUF1ZDs7Ozs7Ozs7Ozs7Ozs7O0FDQXRlLGlFQUFlLDBuQkFBMG5COzs7Ozs7Ozs7Ozs7Ozs7QUNBem9CLGlFQUFlLGdyQkFBZ3JCOzs7Ozs7Ozs7Ozs7Ozs7QUNBL3JCLGlFQUFlLHVZQUF1WTs7Ozs7Ozs7Ozs7Ozs7O0FDQXRaLGlFQUFlLHdQQUF3UDs7Ozs7Ozs7Ozs7Ozs7O0FDQXZRLGlFQUFlLGdkQUFnZDs7Ozs7Ozs7Ozs7Ozs7O0FDQS9kLGlFQUFlLHNVQUFzVTs7Ozs7Ozs7Ozs7Ozs7O0FDQXJWLGlFQUFlLHdsQkFBd2xCOzs7Ozs7Ozs7Ozs7Ozs7QUNBdm1CLGlFQUFlLHdpQkFBd2lCOzs7Ozs7Ozs7Ozs7Ozs7QUNBdmpCLGlFQUFlLGtSQUFrUjs7Ozs7Ozs7Ozs7Ozs7O0FDQWpTLGlFQUFlLDhLQUE4Szs7Ozs7Ozs7Ozs7Ozs7O0FDQTdMLGlFQUFlLCtLQUErSzs7Ozs7Ozs7Ozs7Ozs7O0FDQTlMLGlFQUFlLGliQUFpYjs7Ozs7Ozs7Ozs7Ozs7O0FDQWhjLGlFQUFlLDZZQUE2WTs7Ozs7Ozs7Ozs7Ozs7O0FDQTVaLGlFQUFlLDgwQkFBODBCOzs7Ozs7Ozs7Ozs7Ozs7QUNBNzFCLGlFQUFlLDRwQkFBNHBCOzs7Ozs7Ozs7Ozs7Ozs7QUNBM3FCLGlFQUFlLHN3QkFBc3dCOzs7Ozs7Ozs7Ozs7Ozs7QUNBcnhCLGlFQUFlLDRtQkFBNG1COzs7Ozs7Ozs7Ozs7Ozs7QUNBM25CLGlFQUFlLDQyQkFBNDJCOzs7Ozs7Ozs7Ozs7Ozs7QUNBMzNCLGlFQUFlLHNZQUFzWTs7Ozs7Ozs7Ozs7Ozs7O0FDQXJaLGlFQUFlLHllQUF5ZTs7Ozs7Ozs7Ozs7Ozs7O0FDQXhmLGlFQUFlLHNOQUFzTjs7Ozs7Ozs7Ozs7Ozs7O0FDQXJPLGlFQUFlLGdTQUFnUzs7Ozs7Ozs7Ozs7Ozs7O0FDQS9TLGlFQUFlLDBjQUEwYzs7Ozs7Ozs7Ozs7Ozs7O0FDQXpkLGlFQUFlLHFtQkFBcW1COzs7Ozs7Ozs7Ozs7Ozs7QUNBcG5CLGlFQUFlLDR1QkFBNHVCOzs7Ozs7Ozs7Ozs7Ozs7QUNBM3ZCLGlFQUFlLGtwRUFBa3BFOzs7Ozs7Ozs7Ozs7Ozs7QUNBanFFLGlFQUFlLDBuRUFBMG5FOzs7Ozs7Ozs7Ozs7Ozs7QUNBem9FLGlFQUFlLHN2QkFBc3ZCOzs7Ozs7Ozs7Ozs7Ozs7QUNBcndCLGlFQUFlLHdZQUF3WTs7Ozs7Ozs7Ozs7Ozs7O0FDQXZaLGlFQUFlLGc0QkFBZzRCOzs7Ozs7Ozs7Ozs7Ozs7QUNBLzRCLGlFQUFlLGl3QkFBaXdCOzs7Ozs7Ozs7Ozs7Ozs7QUNBaHhCLGlFQUFlLDJ6QkFBMnpCOzs7Ozs7Ozs7Ozs7Ozs7QUNBMTBCLGlFQUFlLHkyQkFBeTJCOzs7Ozs7Ozs7Ozs7Ozs7QUNBeDNCLGlFQUFlLCtWQUErVjs7Ozs7Ozs7Ozs7Ozs7O0FDQTlXLGlFQUFlLCtlQUErZTs7Ozs7Ozs7Ozs7Ozs7O0FDQTlmLGlFQUFlLGdpQ0FBZ2lDOzs7Ozs7Ozs7Ozs7Ozs7QUNBL2lDLGlFQUFlLGtpQkFBa2lCOzs7Ozs7Ozs7Ozs7Ozs7QUNBampCLGlFQUFlLHd6SEFBd3pIOzs7Ozs7Ozs7Ozs7Ozs7QUNBdjBILGlFQUFlLHdnWkFBd2daOzs7Ozs7Ozs7Ozs7Ozs7QUNBdmhaLGlFQUFlLHdtTkFBd21OOzs7Ozs7Ozs7Ozs7Ozs7QUNBdm5OLGlFQUFlLHV2VUFBdXZVOzs7Ozs7Ozs7Ozs7Ozs7QUNBdHdVLGlFQUFlLHE4QkFBcThCOzs7Ozs7Ozs7Ozs7Ozs7QUNBcDlCLGlFQUFlLDA3REFBMDdEOzs7Ozs7Ozs7Ozs7Ozs7QUNBejhELGlFQUFlLDBwQkFBMHBCOzs7Ozs7Ozs7Ozs7Ozs7QUNBenFCLGlFQUFlLCt5U0FBK3lTOzs7Ozs7Ozs7Ozs7Ozs7QUNBOXpTLGlFQUFlLGliQUFpYjs7Ozs7Ozs7Ozs7Ozs7O0FDQWhjLGlFQUFlLHdnWkFBd2daOzs7Ozs7Ozs7Ozs7Ozs7QUNBdmhaLGlFQUFlLHlpSEFBeWlILHlvL0RBQXlvL0Q7Ozs7Ozs7Ozs7Ozs7OztBQ0Fqc21FLGlFQUFlLGtuQkFBa25COzs7Ozs7Ozs7Ozs7Ozs7QUNBam9CLGlFQUFlLDZUQUE2VDs7Ozs7Ozs7Ozs7Ozs7O0FDQTVVLGlFQUFlLDBhQUEwYTs7Ozs7Ozs7Ozs7Ozs7O0FDQXpiLGlFQUFlLDBuQkFBMG5COzs7Ozs7Ozs7Ozs7Ozs7QUNBem9CLGlFQUFlLDRtQkFBNG1COzs7Ozs7Ozs7Ozs7Ozs7QUNBM25CLGlFQUFlLHlwQkFBeXBCOzs7Ozs7Ozs7Ozs7Ozs7QUNBeHFCLGlFQUFlLHlnQ0FBeWdDOzs7Ozs7Ozs7Ozs7Ozs7QUNBeGhDLGlFQUFlLDBuQkFBMG5COzs7Ozs7Ozs7Ozs7Ozs7QUNBem9CLGlFQUFlLHFtQkFBcW1COzs7Ozs7Ozs7Ozs7Ozs7QUNBcG5CLGlFQUFlLHFtQkFBcW1COzs7Ozs7Ozs7Ozs7Ozs7QUNBcG5CLGlFQUFlLHFtQkFBcW1COzs7Ozs7Ozs7Ozs7Ozs7QUNBcG5CLGlFQUFlLGdhQUFnYTs7Ozs7Ozs7Ozs7Ozs7O0FDQS9hLGlFQUFlLHlwQkFBeXBCOzs7Ozs7Ozs7Ozs7Ozs7QUNBeHFCLGlFQUFlLDJmQUEyZjs7Ozs7Ozs7Ozs7Ozs7O0FDQTFnQixpRUFBZSw2a0NBQTZrQzs7Ozs7Ozs7Ozs7Ozs7O0FDQTVsQyxpRUFBZSw2a0NBQTZrQzs7Ozs7Ozs7Ozs7Ozs7O0FDQTVsQyxpRUFBZSwwbkJBQTBuQjs7Ozs7Ozs7Ozs7Ozs7O0FDQXpvQixpRUFBZSwwbkJBQTBuQjs7Ozs7Ozs7Ozs7Ozs7O0FDQXpvQixpRUFBZSxnNEJBQWc0Qjs7Ozs7Ozs7Ozs7Ozs7O0FDQS80QixpRUFBZSxtZkFBbWY7Ozs7Ozs7Ozs7Ozs7OztBQ0FsZ0IsaUVBQWUsb1JBQW9SOzs7Ozs7Ozs7Ozs7Ozs7QUNBblMsaUVBQWUsc2pDQUFzakM7Ozs7Ozs7Ozs7Ozs7OztBQ0Fya0MsaUVBQWUsaWhCQUFpaEI7Ozs7Ozs7Ozs7Ozs7OztBQ0FoaUIsaUVBQWUsMGxDQUEwbEM7Ozs7Ozs7Ozs7Ozs7OztBQ0F6bUMsaUVBQWUsMlVBQTJVOzs7Ozs7Ozs7Ozs7Ozs7QUNBMVYsaUVBQWUsd0lBQXdJOzs7Ozs7Ozs7Ozs7Ozs7QUNBdkosaUVBQWUsd2hCQUF3aEI7Ozs7Ozs7Ozs7Ozs7OztBQ0F2aUIsaUVBQWUsdU5BQXVOOzs7Ozs7Ozs7Ozs7Ozs7QUNBdE8saUVBQWUsbXFCQUFtcUI7Ozs7Ozs7Ozs7Ozs7OztBQ0FsckIsaUVBQWUseXVDQUF5dUM7Ozs7Ozs7Ozs7Ozs7OztBQ0F4dkMsaUVBQWUsNG9CQUE0b0I7Ozs7Ozs7Ozs7Ozs7OztBQ0EzcEIsaUVBQWUsbXhCQUFteEI7Ozs7Ozs7Ozs7Ozs7OztBQ0FseUIsaUVBQWUsa3FCQUFrcUI7Ozs7Ozs7Ozs7Ozs7OztBQ0FqckIsaUVBQWUseWdCQUF5Z0I7Ozs7Ozs7Ozs7Ozs7OztBQ0F4aEIsaUVBQWUsMmZBQTJmOzs7Ozs7Ozs7Ozs7Ozs7QUNBMWdCLGlFQUFlLHV2QkFBdXZCOzs7Ozs7Ozs7Ozs7Ozs7QUNBdHdCLGlFQUFlLDg3QkFBODdCOzs7Ozs7Ozs7Ozs7Ozs7QUNBNzhCLGlFQUFlLGd0QkFBZ3RCOzs7Ozs7Ozs7Ozs7Ozs7QUNBL3RCLGlFQUFlLHlkQUF5ZDs7Ozs7Ozs7Ozs7Ozs7O0FDQXhlLGlFQUFlLHFoQkFBcWhCOzs7Ozs7Ozs7Ozs7Ozs7QUNBcGlCLGlFQUFlLCtwQkFBK3BCOzs7Ozs7Ozs7Ozs7Ozs7QUNBOXFCLGlFQUFlLGthQUFrYTs7Ozs7Ozs7Ozs7Ozs7O0FDQWpiLGlFQUFlLDIzQkFBMjNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBeHlCO0FBQ2xHLFlBQWdkOztBQUVoZDs7QUFFQTtBQUNBOztBQUVBLGFBQWEsMEdBQUcsQ0FBQyw2WUFBTzs7OztBQUl4QixpRUFBZSxvWkFBYyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaK0Q7QUFDbEcsWUFBaWQ7O0FBRWpkOztBQUVBO0FBQ0E7O0FBRUEsYUFBYSwwR0FBRyxDQUFDLDhZQUFPOzs7O0FBSXhCLGlFQUFlLHFaQUFjLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1orRDtBQUNsRyxZQUFrYzs7QUFFbGM7O0FBRUE7QUFDQTs7QUFFQSxhQUFhLDBHQUFHLENBQUMsK1hBQU87Ozs7QUFJeEIsaUVBQWUsc1lBQWMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDWitEO0FBQ2xHLFlBQStiOztBQUUvYjs7QUFFQTtBQUNBOztBQUVBLGFBQWEsMEdBQUcsQ0FBQyw0WEFBTzs7OztBQUl4QixpRUFBZSxtWUFBYyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaK0Q7QUFDbEcsWUFBK2M7O0FBRS9jOztBQUVBO0FBQ0E7O0FBRUEsYUFBYSwwR0FBRyxDQUFDLDRZQUFPOzs7O0FBSXhCLGlFQUFlLG1aQUFjLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1orRDtBQUNsRyxZQUFtZDs7QUFFbmQ7O0FBRUE7QUFDQTs7QUFFQSxhQUFhLDBHQUFHLENBQUMsZ1pBQU87Ozs7QUFJeEIsaUVBQWUsdVpBQWMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDWmtFO0FBQ3JHLFlBQThkOztBQUU5ZDs7QUFFQTtBQUNBOztBQUVBLGFBQWEsMEdBQUcsQ0FBQyw0WUFBTzs7OztBQUl4QixpRUFBZSxtWkFBYyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaa0U7QUFDckcsWUFBa2U7O0FBRWxlOztBQUVBO0FBQ0E7O0FBRUEsYUFBYSwwR0FBRyxDQUFDLGdaQUFPOzs7O0FBSXhCLGlFQUFlLHVaQUFjLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1prRTtBQUNyRyxZQUFnZTs7QUFFaGU7O0FBRUE7QUFDQTs7QUFFQSxhQUFhLDBHQUFHLENBQUMsOFlBQU87Ozs7QUFJeEIsaUVBQWUscVpBQWMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDWmtFO0FBQ3JHLFlBQXFkOztBQUVyZDs7QUFFQTtBQUNBOztBQUVBLGFBQWEsMEdBQUcsQ0FBQyxtWUFBTzs7OztBQUl4QixpRUFBZSwwWUFBYyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaa0U7QUFDckcsWUFBK2Q7O0FBRS9kOztBQUVBO0FBQ0E7O0FBRUEsYUFBYSwwR0FBRyxDQUFDLDZZQUFPOzs7O0FBSXhCLGlFQUFlLG9aQUFjLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1pxRTtBQUN4RyxZQUFpZjs7QUFFamY7O0FBRUE7QUFDQTs7QUFFQSxhQUFhLDBHQUFHLENBQUMsZ1pBQU87Ozs7QUFJeEIsaUVBQWUsdVpBQWMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDWnFFO0FBQ3hHLFlBQTRlOztBQUU1ZTs7QUFFQTtBQUNBOztBQUVBLGFBQWEsMEdBQUcsQ0FBQywyWUFBTzs7OztBQUl4QixpRUFBZSxrWkFBYyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNacUU7QUFDeEcsWUFBeWU7O0FBRXplOztBQUVBO0FBQ0E7O0FBRUEsYUFBYSwwR0FBRyxDQUFDLHdZQUFPOzs7O0FBSXhCLGlFQUFlLCtZQUFjLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1prRTtBQUNyRyxZQUF3ZDs7QUFFeGQ7O0FBRUE7QUFDQTs7QUFFQSxhQUFhLDBHQUFHLENBQUMsc1lBQU87Ozs7QUFJeEIsaUVBQWUsNllBQWMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDWmtFO0FBQ3JHLFlBQWlkOztBQUVqZDs7QUFFQTtBQUNBOztBQUVBLGFBQWEsMEdBQUcsQ0FBQywrWEFBTzs7OztBQUl4QixpRUFBZSxzWUFBYyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaa0U7QUFDckcsWUFBd2Q7O0FBRXhkOztBQUVBO0FBQ0E7O0FBRUEsYUFBYSwwR0FBRyxDQUFDLHNZQUFPOzs7O0FBSXhCLGlFQUFlLDZZQUFjLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1prRTtBQUNyRyxZQUFvZDs7QUFFcGQ7O0FBRUE7QUFDQTs7QUFFQSxhQUFhLDBHQUFHLENBQUMsa1lBQU87Ozs7QUFJeEIsaUVBQWUseVlBQWMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDWnFFO0FBQ3hHLFlBQXllOztBQUV6ZTs7QUFFQTtBQUNBOztBQUVBLGFBQWEsMEdBQUcsQ0FBQyx3WUFBTzs7OztBQUl4QixpRUFBZSwrWUFBYyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1p5RDtBQUNuQjtBQUNMOztBQUVwRSxDQUFnRjtBQUNHOztBQUVvQjtBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywyRkFBTSxhQUFhLHNHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3pCZ0U7QUFDbEI7QUFDTDs7QUFFeEQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsK0VBQU0sYUFBYSx5RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJxRTtBQUNsQjtBQUNMOztBQUU3RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxvRkFBTSxhQUFhLDhGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnFFO0FBQ2xCO0FBQ0w7O0FBRTdELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLG9GQUFNLGFBQWEsOEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCOEU7QUFDbkI7QUFDTDs7QUFFckUsQ0FBb0Y7O0FBRW1CO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDRGQUFNLGFBQWEsdUdBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCZ0U7QUFDUDtBQUNMOztBQUVuRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywwRkFBTSxhQUFhLHlGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEIrRDtBQUNsQjtBQUNMOztBQUV2RCxDQUFxRTs7QUFFa0M7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsOEVBQU0sYUFBYSx3RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCNEQ7QUFDbEI7QUFDTDs7QUFFcEQsQ0FBa0U7O0FBRXFDO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDJFQUFNLGFBQWEscUZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCaUU7QUFDbEI7QUFDTDs7QUFFekQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsZ0ZBQU0sYUFBYSwwRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCNEU7QUFDOUI7QUFDTDs7QUFFeEQsQ0FBa0Y7O0FBRXFCO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLCtFQUFNLGFBQWEscUdBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDeEJ1RTtBQUNsQjtBQUNMOztBQUUvRCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxzRkFBTSxhQUFhLGdHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCd0U7QUFDdkY7O0FBRUEsQ0FBc0Y7O0FBRWlCO0FBQ3ZHLGlDQUFpQyxxSEFBZSxvQkFBb0IsaUdBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3ZCcUU7QUFDbEI7QUFDTDs7QUFFN0QsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsb0ZBQU0sYUFBYSw4RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJrRTtBQUNQO0FBQ0w7O0FBRXJFLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDRGQUFNLGFBQWEsMkZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJrRTtBQUNQO0FBQ0w7O0FBRXJFLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDRGQUFNLGFBQWEsMkZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCMEQ7QUFDbEI7QUFDTDs7QUFFbEQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMseUVBQU0sYUFBYSxtRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0Qm1FO0FBQ1A7QUFDTDs7QUFFdEUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsNkZBQU0sYUFBYSw0RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnFFO0FBQ1A7QUFDTDs7QUFFeEUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsK0ZBQU0sYUFBYSw4RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmtFO0FBQ1A7QUFDTDs7QUFFckUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsNEZBQU0sYUFBYSwyRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCNEU7QUFDbkI7QUFDTDs7QUFFbkUsQ0FBa0Y7O0FBRXFCO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDBGQUFNLGFBQWEscUdBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDeEJxRTtBQUNsQjtBQUNMOztBQUU3RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxvRkFBTSxhQUFhLDhGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCd0Y7QUFDUDtBQUNMOztBQUUzRixDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxrSEFBTSxhQUFhLGlIQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCK0Q7QUFDbEI7QUFDTDs7QUFFdkQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsOEVBQU0sYUFBYSx3RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCZ0Y7QUFDbkI7QUFDTDs7QUFFdkUsQ0FBc0Y7O0FBRWlCO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDhGQUFNLGFBQWEseUdBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCOEU7QUFDbkI7QUFDTDs7QUFFckUsQ0FBb0Y7O0FBRW1CO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDRGQUFNLGFBQWEsdUdBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCbUU7QUFDUDtBQUNMOztBQUV0RSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyw2RkFBTSxhQUFhLDRGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnlFO0FBQ1A7QUFDTDs7QUFFNUUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsbUdBQU0sYUFBYSxrR0FBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QjBFO0FBQ1A7QUFDTDs7QUFFN0UsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsb0dBQU0sYUFBYSxtR0FBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0Qm9FO0FBQ2xCO0FBQ0w7O0FBRTVELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLG1GQUFNLGFBQWEsNkZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCbUU7QUFDbEI7QUFDTDs7QUFFM0QsQ0FBeUU7O0FBRThCO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGtGQUFNLGFBQWEsNEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCNkU7QUFDOUI7QUFDTDs7QUFFekQsQ0FBbUY7O0FBRW9CO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGdGQUFNLGFBQWEsc0dBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCZ0Y7QUFDbkI7QUFDTDs7QUFFdkUsQ0FBc0Y7O0FBRWlCO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDhGQUFNLGFBQWEseUdBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN4QjJFO0FBQ25CO0FBQ0w7O0FBRWxFLENBQWlGOztBQUVzQjtBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyx5RkFBTSxhQUFhLG9HQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCcUU7QUFDUDtBQUNMOztBQUV4RSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywrRkFBTSxhQUFhLDhGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmtFO0FBQ1A7QUFDTDs7QUFFckUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsNEZBQU0sYUFBYSwyRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnNFO0FBQ1A7QUFDTDs7QUFFekUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsZ0dBQU0sYUFBYSwrRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmtFO0FBQ2xCO0FBQ0w7O0FBRTFELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGlGQUFNLGFBQWEsMkZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJnRTtBQUNsQjtBQUNMOztBQUV4RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywrRUFBTSxhQUFhLHlGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmlFO0FBQ2xCO0FBQ0w7O0FBRXpELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGdGQUFNLGFBQWEsMEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCaUU7QUFDbEI7QUFDTDs7QUFFekQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsZ0ZBQU0sYUFBYSwwRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJ1RTtBQUNQO0FBQ0w7O0FBRTFFLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGlHQUFNLGFBQWEsZ0dBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCb0U7QUFDbEI7QUFDTDs7QUFFNUQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsbUZBQU0sYUFBYSw2RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJnRTtBQUNsQjtBQUNMOztBQUV4RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywrRUFBTSxhQUFhLHlGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QjhEO0FBQ2xCO0FBQ0w7O0FBRXRELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDZFQUFNLGFBQWEsdUZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCcUU7QUFDbEI7QUFDTDs7QUFFN0QsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsb0ZBQU0sYUFBYSw4RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJzRTtBQUNsQjtBQUNMOztBQUU5RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxxRkFBTSxhQUFhLCtGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCeUU7QUFDUDtBQUNMOztBQUU1RSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxtR0FBTSxhQUFhLGtHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCa0U7QUFDbEI7QUFDTDs7QUFFMUQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsaUZBQU0sYUFBYSwyRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJzRTtBQUNsQjtBQUNMOztBQUU5RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxxRkFBTSxhQUFhLCtGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnFFO0FBQ1A7QUFDTDs7QUFFeEUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsK0ZBQU0sYUFBYSw4RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnFFO0FBQ2xCO0FBQ0w7O0FBRTdELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLG9GQUFNLGFBQWEsOEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCMkU7QUFDUDtBQUNMOztBQUU5RSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxxR0FBTSxhQUFhLG9HQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCNEQ7QUFDbEI7QUFDTDs7QUFFcEQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsMkVBQU0sYUFBYSxxRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEI0RDtBQUNsQjtBQUNMOztBQUVwRCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywyRUFBTSxhQUFhLHFGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCeUQ7QUFDbEI7QUFDTDs7QUFFakQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsd0VBQU0sYUFBYSxrRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEIyRDtBQUNsQjtBQUNMOztBQUVuRCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywwRUFBTSxhQUFhLG9GQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCa0U7QUFDbEI7QUFDTDs7QUFFMUQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsaUZBQU0sYUFBYSwyRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnFFO0FBQ2xCO0FBQ0w7O0FBRTdELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLG9GQUFNLGFBQWEsOEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJtRTtBQUNsQjtBQUNMOztBQUUzRCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxrRkFBTSxhQUFhLDRGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnVFO0FBQ2xCO0FBQ0w7O0FBRS9ELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHNGQUFNLGFBQWEsZ0dBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCOEQ7QUFDbEI7QUFDTDs7QUFFdEQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsNkVBQU0sYUFBYSx1RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJpRTtBQUNsQjtBQUNMOztBQUV6RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxnRkFBTSxhQUFhLDBGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCa0U7QUFDbEI7QUFDTDs7QUFFMUQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsaUZBQU0sYUFBYSwyRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJ3RTtBQUNsQjtBQUNMOztBQUVoRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyx1RkFBTSxhQUFhLGlHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QjZEO0FBQ2xCO0FBQ0w7O0FBRXJELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDRFQUFNLGFBQWEsc0ZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEI0RDtBQUNsQjtBQUNMOztBQUVwRCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywyRUFBTSxhQUFhLHFGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QitEO0FBQ2xCO0FBQ0w7O0FBRXZELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDhFQUFNLGFBQWEsd0ZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCMkQ7QUFDbEI7QUFDTDs7QUFFbkQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsMEVBQU0sYUFBYSxvRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCd0U7QUFDUDtBQUNMOztBQUUzRSxDQUE4RTs7QUFFeUI7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsa0dBQU0sYUFBYSxpR0FBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN4QnFFO0FBQ1A7QUFDTDs7QUFFeEUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsK0ZBQU0sYUFBYSw4RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnVFO0FBQ2xCO0FBQ0w7O0FBRS9ELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHNGQUFNLGFBQWEsZ0dBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEI0RTtBQUNsQjtBQUNMOztBQUVwRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywyRkFBTSxhQUFhLHFHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCa0U7QUFDbEI7QUFDTDs7QUFFMUQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsaUZBQU0sYUFBYSwyRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0Qm1FO0FBQ2xCO0FBQ0w7O0FBRTNELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGtGQUFNLGFBQWEsNEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEIrRDtBQUNQO0FBQ0w7O0FBRWxFLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHlGQUFNLGFBQWEsd0ZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCc0U7QUFDbEI7QUFDTDs7QUFFOUQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMscUZBQU0sYUFBYSwrRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmlFO0FBQ1A7QUFDTDs7QUFFcEUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsMkZBQU0sYUFBYSwwRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0Qm1FO0FBQ2xCO0FBQ0w7O0FBRTNELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGtGQUFNLGFBQWEsNEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJpRTtBQUNsQjtBQUNMOztBQUV6RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxnRkFBTSxhQUFhLDBGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCaUU7QUFDbEI7QUFDTDs7QUFFekQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsZ0ZBQU0sYUFBYSwwRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmlFO0FBQ2xCO0FBQ0w7O0FBRXpELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGdGQUFNLGFBQWEsMEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJrRTtBQUNsQjtBQUNMOztBQUUxRCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxpRkFBTSxhQUFhLDJGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCbUU7QUFDbEI7QUFDTDs7QUFFM0QsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsa0ZBQU0sYUFBYSw0RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmdFO0FBQ2xCO0FBQ0w7O0FBRXhELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLCtFQUFNLGFBQWEseUZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCa0U7QUFDbEI7QUFDTDs7QUFFMUQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsaUZBQU0sYUFBYSwyRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QitEO0FBQ2xCO0FBQ0w7O0FBRXZELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDhFQUFNLGFBQWEsd0ZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCK0Q7QUFDbEI7QUFDTDs7QUFFdkQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsOEVBQU0sYUFBYSx3RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJnRTtBQUNsQjtBQUNMOztBQUV4RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywrRUFBTSxhQUFhLHlGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnNFO0FBQ2xCO0FBQ0w7O0FBRTlELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHFGQUFNLGFBQWEsK0ZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJ1RTtBQUNsQjtBQUNMOztBQUUvRCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxzRkFBTSxhQUFhLGdHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCd0U7QUFDbEI7QUFDTDs7QUFFaEUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsdUZBQU0sYUFBYSxpR0FBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnFFO0FBQ2xCO0FBQ0w7O0FBRTdELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLG9GQUFNLGFBQWEsOEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCNkQ7QUFDbEI7QUFDTDs7QUFFckQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsNEVBQU0sYUFBYSxzRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJpRTtBQUNsQjtBQUNMOztBQUV6RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxnRkFBTSxhQUFhLDBGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnlFO0FBQ2xCO0FBQ0w7O0FBRWpFLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHdGQUFNLGFBQWEsa0dBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCaUU7QUFDbEI7QUFDTDs7QUFFekQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsZ0ZBQU0sYUFBYSwwRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEI4RDtBQUNsQjtBQUNMOztBQUV0RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyw2RUFBTSxhQUFhLHVGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QjBFO0FBQ2xCO0FBQ0w7O0FBRWxFLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHlGQUFNLGFBQWEsbUdBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCMEU7QUFDbEI7QUFDTDs7QUFFbEUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMseUZBQU0sYUFBYSxtR0FBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJzRTtBQUNsQjtBQUNMOztBQUU5RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxxRkFBTSxhQUFhLCtGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnFFO0FBQ2xCO0FBQ0w7O0FBRTdELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLG9GQUFNLGFBQWEsOEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCNEQ7QUFDbEI7QUFDTDs7QUFFcEQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsMkVBQU0sYUFBYSxxRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJnRTtBQUNsQjtBQUNMOztBQUV4RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywrRUFBTSxhQUFhLHlGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCcUU7QUFDbEI7QUFDTDs7QUFFN0QsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsb0ZBQU0sYUFBYSw4RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJxRTtBQUNsQjtBQUNMOztBQUU3RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxvRkFBTSxhQUFhLDhGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCMkQ7QUFDbEI7QUFDTDs7QUFFbkQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsMEVBQU0sYUFBYSxvRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0Qm9FO0FBQ1A7QUFDTDs7QUFFdkUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsOEZBQU0sYUFBYSw2RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmdFO0FBQ1A7QUFDTDs7QUFFbkUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsMEZBQU0sYUFBYSx5RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnVFO0FBQ1A7QUFDTDs7QUFFMUUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsaUdBQU0sYUFBYSxnR0FBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJpRTtBQUNQO0FBQ0w7O0FBRXBFLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDJGQUFNLGFBQWEsMEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCc0U7QUFDbEI7QUFDTDs7QUFFOUQsQ0FBNEU7O0FBRTJCO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHFGQUFNLGFBQWEsK0ZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCMEU7QUFDUDtBQUNMOztBQUU3RSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxvR0FBTSxhQUFhLG1HQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCZ0Y7QUFDUDtBQUNMOztBQUVuRixDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywwR0FBTSxhQUFhLHlHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCa0U7QUFDUDtBQUNMOztBQUVyRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyw0RkFBTSxhQUFhLDJGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCNEU7QUFDUDtBQUNMOztBQUUvRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxzR0FBTSxhQUFhLHFHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCd0U7QUFDUDtBQUNMOztBQUUzRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxrR0FBTSxhQUFhLGlHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QjJFO0FBQ1A7QUFDTDs7QUFFOUUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMscUdBQU0sYUFBYSxvR0FBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QjJFO0FBQ1A7QUFDTDs7QUFFOUUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMscUdBQU0sYUFBYSxvR0FBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QmlFO0FBQ1A7QUFDTDs7QUFFcEUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsMkZBQU0sYUFBYSwwRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnNFO0FBQ1A7QUFDTDs7QUFFekUsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsZ0dBQU0sYUFBYSwrRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCOEQ7QUFDN0U7O0FBRUEsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLG9CQUFvQix1RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDckIrRDtBQUNsQjtBQUNMOztBQUV2RCxDQUFxRTs7QUFFa0M7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsOEVBQU0sYUFBYSx3RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN4Qm1FO0FBQ2xCO0FBQ0w7O0FBRTNELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGtGQUFNLGFBQWEsNEZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJ3RTtBQUNsQjtBQUNMOztBQUVoRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyx1RkFBTSxhQUFhLGlHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCaUU7QUFDbEI7QUFDTDs7QUFFekQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsZ0ZBQU0sYUFBYSwwRkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QjJFO0FBQ2xCO0FBQ0w7O0FBRW5FLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLDBGQUFNLGFBQWEsb0dBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJzRTtBQUNQO0FBQ0w7O0FBRXpFLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLGdHQUFNLGFBQWEsK0ZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCOEQ7QUFDUDtBQUNMOztBQUVqRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyx3RkFBTSxhQUFhLHVGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCK0Q7QUFDUDtBQUNMOztBQUVsRSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyx5RkFBTSxhQUFhLHdGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJ1RDtBQUN0RTs7QUFFQSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsb0JBQW9CLGdGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNyQnVFO0FBQ2xCO0FBQ0w7O0FBRS9ELENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHNGQUFNLGFBQWEsZ0dBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0QnNFO0FBQ2xCO0FBQ0w7O0FBRTlELENBQWdGO0FBQ0o7O0FBRTJCO0FBQ3ZHLGlDQUFpQyxxSEFBZSxDQUFDLHFGQUFNLGFBQWEsK0ZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6QjBEO0FBQ3pFOztBQUVBLENBQXVHO0FBQ3ZHLGlDQUFpQyxxSEFBZSxvQkFBb0IsbUZBQU07QUFDMUU7QUFDQSxJQUFJLEtBQVUsRUFBRSxFQVlmOzs7QUFHRCxpRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3JCeUU7QUFDUDtBQUNMOztBQUU1RSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxtR0FBTSxhQUFhLGtHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJrRTtBQUNsQjtBQUNMOztBQUUxRCxDQUFnRjtBQUNSOztBQUUrQjtBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxpRkFBTSxhQUFhLDJGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDekJ5RDtBQUN4RTs7QUFFQSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsb0JBQW9CLGtGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3JCeUQ7QUFDVjtBQUNMOztBQUV6RCxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQyxnRkFBTSxhQUFhLGtGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJ5RDtBQUN4RTs7QUFFQSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsb0JBQW9CLGtGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDckJxRDtBQUNwRTs7QUFFQSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsb0JBQW9CLDhFQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNyQndFO0FBQzlCO0FBQ0w7O0FBRXBELENBQThFOztBQUV5QjtBQUN2RyxpQ0FBaUMscUhBQWUsQ0FBQywyRUFBTSxhQUFhLGlHQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDeEJ1RDtBQUN0RTs7QUFFQSxDQUF1RztBQUN2RyxpQ0FBaUMscUhBQWUsb0JBQW9CLGdGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3JCK0Q7QUFDbEI7QUFDTDs7QUFFdkQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsOEVBQU0sYUFBYSx3RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCK1E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVo7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUY7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVo7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUg7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQU87Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUY7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBOEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQXBDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQXVCOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FNOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FmOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FGOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBZDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBbEI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUk7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVg7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQWlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0ExQjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBWTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQU07Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQWxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBdkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQTVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7QUNsSkEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQWRtaW5IZWFkZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9CcmVhZENydW1iLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRGVzY3JpcHRpb25Gb3JtLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRXJyb3JNZXNzYWdlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRXJyb3JQb3BVcC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0hvdmVyVGV4dC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0xvYWRlci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL05hdkRyb3Bkb3duLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUG9wdXBNb2RhbC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9EZWxldGVCdXR0b24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1B1Ymxpc2hCdXR0b24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL0RlbGV0ZUFjdGlvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL0Vycm9yTGlzdHMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9Pcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9TdGlja3lFcnJvcnMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zdGF0dXMvRWxlbWVudFN0YXR1cy52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3N0YXR1cy9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5RGVmYXVsdFZhbHVlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5RGV0YWlsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQ3JlYXRlTW9kYWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0J1bGtQdWJsaXNoaW5nLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL1B1Ymxpc2hTZWxlY3RlZC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvUmVmcmVzaFRvYXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9WYWxpZGF0aW9uRXJyb3JzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0FjdGl2aXR5RGF0ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Db25kaXRpb25zLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0NvbnRhY3RJbmZvLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0Rlc2NyaXB0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0h1bWFuaXRhcmlhblNjb3BlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0lhdGlJZGVudGlmaWVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0xlZ2FjeURhdGEudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvTG9jYXRpb24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvT3RoZXJJZGVudGlmaWVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1BhcnRpY2lwYXRpbmdPcmcudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUGxhbm5lZERpc2J1cnNlbWVudC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Qb2xpY3lNYXJrZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZWNpcGllbnRSZWdpb24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVsYXRlZEFjdGl2aXR5LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZXN1bHQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvU2VjdG9yLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1RhZy52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UaXRsZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UcmFuc2FjdGlvbnMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9JbmRpY2F0b3JEZXRhaWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9JbmRpY2F0b3JMaXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvQWdncmVnYXRpb25TdGF0dXMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9CYXNlbGluZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0Rlc2NyaXB0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvSW5kaWNhdG9yQXNjZW5kaW5nLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvTWVhc3VyZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1BlcmlvZC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1RpdGxlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9BY3Rpdml0eUVsZW1lbnQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvQWRkQWN0aXZpdHlCdXR0b24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9FbGVtZW50c05vdGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRW1wdHlBY3Rpdml0eS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9QYWdlVGl0bGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvU2lkZWJhckhlbHBCbG9jay52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9UYWJsZUxheW91dC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNEZXRhaWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9QZXJpb2RzTGlzdC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL2VsZW1lbnRzL0FjdHVhbFZhbHVlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BlcmlvZHMvZWxlbWVudHMvVGFyZ2V0VmFsdWUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9SZXN1bHREZXRhaWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9SZXN1bHRFbGVtZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0TGlzdC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL0RvY3VtZW50TGluay52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL0luZGljYXRvci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1Jlc3VsdFR5cGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9UaXRsZURlc2NyaXB0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkRldGFpbC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25FbGVtZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkxpc3QudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0FpZFR5cGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0Rlc2NyaXB0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9EaXNidXJzZW1lbnRDaGFubmVsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GaW5hbmNlVHlwZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRmxvd1R5cGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1Byb3ZpZGVyT3JnYW5pemF0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvUmVjaXBpZW50UmVnaW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9TZWN0b3IudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1RpZWRTdGF0dXMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1RyYW5zYWN0aW9uRGF0ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVHJhbnNhY3Rpb25UeXBlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9WYWx1ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvQWN0aXZpdHlVcGxvYWQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydExpc3QudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydFBsYWNlaG9sZGVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2ltcG9ydC9MaXN0RWxlbWVudC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL09yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Eb2N1bWVudExpbmsudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlY2lwaWVudENvdW50cnlCdWRnZXQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlcG9ydGluZ09yZ0J1ZGdldC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZXBvcnRpbmdSZWdpb25CdWRnZXQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1RvdGFsQnVkZ2V0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9yZXNldC9SZXNldFBhc3N3b3JkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1BhZ2UudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc2V0dGluZy9TZXR0aW5nUHVibGlzaGluZ0Zvcm0udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9PcmdhbmlzYXRpb25MaXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vY29tcG9uZW50cy9BZG1pbkJhci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zdXBlcmFkbWluL2NvbXBvbmVudHMvVGFibGVMaXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9FbWFpbFZlcmlmaWNhdGlvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvSWF0aVJlZ2lzdGVyUGFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUHVibGlzaGluZ0NoZWNrbGlzdC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUmVnaXN0ZXJQYWdlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9TaWduSW4udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1dlYkhlYWRlci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9hcHAudHMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb3NhYmxlL2NvcmVFbGVtZW50cy50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvc2FibGUvZGF0ZUZvcm1hdC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvc2FibGUvZW5jcnlwdGlvbi50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvc2FibGUvdGl0bGUudHMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb3NhYmxlL3V0aWxzLnRzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvc3RvcmUvYWN0aXZpdGllcy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3N0b3JlL2FjdGl2aXRpZXMvc2hvdy50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3N0b3JlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvc3RvcmUvc2V0dGluZy9hY3Rpb25zLnRzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvc3RvcmUvc2V0dGluZy9tdXRhdGlvbi50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3N0b3JlL3NldHRpbmcvc3RhdGUudHMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9JbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvSW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL2VsZW1lbnRzL0luZGV4LnRzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9JbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9JbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9JbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9XZWxjb21lUGFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Bhc3N3b3JkUmVjb3ZlcnkudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0Fib3V0UGFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvSWF0aVN0YW5kYXJkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9TdXBwb3J0UGFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvQWRtaW5Gb290ZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL0pvaW5Ob3cudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1dlYkZvb3Rlci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0FkbWluSGVhZGVyLnZ1ZT85OGRiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9FcnJvck1lc3NhZ2UudnVlPzgwNzUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0hvdmVyVGV4dC52dWU/NDk4MSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZT8yMjBiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZT8wMTgyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9TaGltbWVyTG9hZGluZy52dWU/ZjE5NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvRXJyb3JMaXN0cy52dWU/Y2M2ZiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlP2UyM2UiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1N0aWNreUVycm9ycy52dWU/YmY0ZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlPzM1N2IiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWU/ODAzYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9CdWxrUHVibGlzaGluZy52dWU/MjE4YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlP2RkYzgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9BY3Rpdml0aWVzRWxlbWVudHMudnVlP2UyZjUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWU/OWZkMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWU/M2NmNyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT82NmJlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1JlZ2lzdGVyUGFnZS52dWU/ZmU0YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9TaWduSW4udnVlP2EzZTIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2FwcC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlLyBzeW5jIF5cXC5cXC8uKiQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X2RhdGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9hY3Rpdml0eV9zY29wZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X3N0YXR1cy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2J1ZGdldC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2J1aWxkaW5nLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvY2FwaXRhbF9zcGVuZC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2NvbGxhYm9yYXRpb25fdHlwZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2NvbmRpdGlvbnMuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9jb250YWN0X2luZm8uc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9jb3VudHJ5X2J1ZGdldF9pdGVtcy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2Nycy1hZGQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2FpZF90eXBlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvZGVmYXVsdF9maW5hbmNlX3R5cGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2Zsb3dfdHlwZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2Rlc2NyaXB0aW9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvZG9jdW1lbnRfbGluay5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2h1bWFuaXRhcmlhbl9zY29wZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2lhdGlfaWRlbnRpZmllci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2luZGljYXRvci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2xlZ2FjeV9kYXRhLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvbG9jYXRpb24uc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9vdGhlcl9pZGVudGlmaWVyLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcGFydGljaXBhdGluZ19vcmcuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9wZXJpb2Quc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9wbGFubmVkX2Rpc2J1cnNlbWVudC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3BvbGljeV9tYXJrZXIuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9yZWNpcGllbnRfY291bnRyeS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3JlY2lwaWVudF9yZWdpb24uc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9yZWxhdGVkX2FjdGl2aXR5LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcmVwb3J0aW5nX29yZy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3Jlc3VsdC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3Jlc3VsdHMuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9zZWN0b3Iuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy90YWcuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy90aXRsZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3RyYW5zYWN0aW9ucy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FkZC1tb3JlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWRkLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWxlcnQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hbGlnbi1jZW50ZXIuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hbGlnbi1yaWdodC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FwcHJvdmVkLWNsb3VkLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYXJyb3ctZG93bi5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Fycm93LWxlZnQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hcnJvdy1yaWdodC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Fycm93LXNob3J0LWxlZnQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hc2NlbmRpbmctYXJyb3cuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9iaWxsLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYm94LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYnVkZ2V0LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYnVpbGRpbmcuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jYW5jZWwtY2xvdWQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jaGVjay1jaXJjbGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jaGVja2JveC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2NoZWNrZWQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jaGV2cm9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvY2xvc2Uuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jb3B5cmlnaHQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jb3JlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVmYXVsdC0xLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVmYXVsdC0yLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVsZXRlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVzY2VuZGluZy1hcnJvdy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2RvY3VtZW50LXdyaXRlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZG91YmxlLXRpY2suc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kb3dubG9hZC1maWxlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZG93bmxvYWQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kcm9wZG93bi1hcnJvdy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2VkaXQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9leHRlcm5hbC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2V5ZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2ZvbGRlci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Zvb3Rlci1sb2dvLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZ3JvdXAuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9oZWFkZXItbG9nby5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2hlYWRwaG9uZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2hlbHAuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9oaXN0b3J5LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvaWMtdmVyaWZpY2F0aW9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbGVmdC1hcnJvdy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2xvZ28td2hpdGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9sb2dvLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbG9nb3V0LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbWFpbC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL21vb24uc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9ub3RlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2J1aWxkaW5nLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2Rlc2NyaXB0aW9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2RvY3VtZW50X2xpbmsuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvbmFtZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdfaWRlbnRpZmllci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdhbmlzYXRpb25faWRlbnRpZmllci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdhbml6YXRpb25faWRlbnRpZmllci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZWNpcGllbnRfY291bnRyeV9idWRnZXQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVjaXBpZW50X29yZ19idWRnZXQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVjaXBpZW50X3JlZ2lvbl9idWRnZXQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVwb3J0aW5nX29yZy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZXBvcnRpbmdfb3JnYW5pc2F0aW9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3RpdGxlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3RvdGFsX2J1ZGdldC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy90b3RhbF9leHBlbmRpdHVyZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3BhbmVsLXNlYXJjaC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3BsdXMuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9wdWJsaXNoLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcHctbG9jay5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3F1ZXN0aW9uLW1hcmsuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9yZWQtY3Jvc3Muc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9yZWQtZG90LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcmVkby5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3JpZ2h0LWFycm93LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc2VhcmNoLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc2V0dGluZy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3NoaWVsZC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3NtaWxlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc3Rhci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3RpY2suc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy90aW1lcy1jaXJjbGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy90d2l0dGVyLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvdXBsb2FkLWZpbGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy91c2VyLXByb2ZpbGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy91c2VyLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvd2FybmluZy1hY3Rpdml0eS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3dhcm5pbmctZmlsbC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3dhcm5pbmcuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy95b3V0dWJlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQWRtaW5IZWFkZXIudnVlP2E5Y2YiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Vycm9yTWVzc2FnZS52dWU/NTg4OSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZT9hMGMzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Mb2FkZXIudnVlP2VjYzIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1BvcHVwTW9kYWwudnVlP2VlMWIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZT85NTBlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9FcnJvckxpc3RzLnZ1ZT9hYjkzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWU/ZDc4MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvU3RpY2t5RXJyb3JzLnZ1ZT83Mjk1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlJbmRleC52dWU/ODgwZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0NyZWF0ZU1vZGFsLnZ1ZT82ZDM5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0J1bGtQdWJsaXNoaW5nLnZ1ZT81NDI3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0Vycm9ySXRlbS52dWU/ZGVlYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/MGE3ZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25EYXRhLnZ1ZT9jODU2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUmVzZXRQYWdlLnZ1ZT84MTIzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlSZWdpc3RlclBhZ2UudnVlPzQ4NDUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUmVnaXN0ZXJQYWdlLnZ1ZT9jN2E1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1NpZ25Jbi52dWU/NDQ3OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQWRtaW5IZWFkZXIudnVlPzNjMmQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0JyZWFkQ3J1bWIudnVlP2FhMWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWU/NmYxMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRGVzY3JpcHRpb25Gb3JtLnZ1ZT8xNDEwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9FcnJvck1lc3NhZ2UudnVlP2UxZDAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Vycm9yUG9wVXAudnVlPzMyZmEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0hvdmVyVGV4dC52dWU/YTJlNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZT80MmI3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9OYXZEcm9wZG93bi52dWU/YWUwYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUG9wdXBNb2RhbC52dWU/ZWQzMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUmFkaWFsUHJvZ3Jlc3NCYXIudnVlPzc0YTciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZT8yNjdiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9UYWJsZVBhZ2luYXRpb24udnVlPzI3YjIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWU/MzkxZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9EZWxldGVCdXR0b24udnVlPzZlNDEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL2J1dHRvbnMvTGluay52dWU/MjQ3YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9QdWJsaXNoQnV0dG9uLnZ1ZT9hOGQ3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWU/NDFhMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvRGVsZXRlQWN0aW9uLnZ1ZT84YzkwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9FcnJvckxpc3RzLnZ1ZT84ODhlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlPzkzNjEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlPzkxN2IiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWU/ZTJmMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlP2ZkYzciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1N0aWNreUVycm9ycy52dWU/YWZjYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc3RhdHVzL0VsZW1lbnRTdGF0dXMudnVlP2RhNTQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3N0YXR1cy9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZT9mODczIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlP2Q0YTkiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eURldGFpbC52dWU/OTQ2NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlPzA0NmQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWU/OGU2ZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9CdWxrUHVibGlzaGluZy52dWU/Nzc0OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlPzAxM2QiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvUHVibGlzaFNlbGVjdGVkLnZ1ZT8zOWRhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL1JlZnJlc2hUb2FzdC52dWU/OTFiYSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9WYWxpZGF0aW9uRXJyb3JzLnZ1ZT8yYmYwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQWN0aXZpdHlEYXRlLnZ1ZT8yZjBiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQ29uZGl0aW9ucy52dWU/YzE4ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0NvbnRhY3RJbmZvLnZ1ZT82MDcyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlPzZiNWEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9IdW1hbml0YXJpYW5TY29wZS52dWU/NTliYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0lhdGlJZGVudGlmaWVyLnZ1ZT8yZDc2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvTGVnYWN5RGF0YS52dWU/YjhkYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0xvY2F0aW9uLnZ1ZT8yYmJjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvT3RoZXJJZGVudGlmaWVyLnZ1ZT83MjNlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUGFydGljaXBhdGluZ09yZy52dWU/ODk4YiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1BsYW5uZWREaXNidXJzZW1lbnQudnVlPzBkYzYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Qb2xpY3lNYXJrZXIudnVlPzhlYjgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZT84MTBmIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVjaXBpZW50UmVnaW9uLnZ1ZT9iYjg4Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVsYXRlZEFjdGl2aXR5LnZ1ZT81ZTk4Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZT8zYmU5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVzdWx0LnZ1ZT8xOGRlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvU2VjdG9yLnZ1ZT8yMjc5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGFnLnZ1ZT84ZDE3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGl0bGUudnVlP2MzZTAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UcmFuc2FjdGlvbnMudnVlPzUwMjYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL0luZGljYXRvckRldGFpbC52dWU/NDkwNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvSW5kaWNhdG9yTGlzdC52dWU/MDk1OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvQWdncmVnYXRpb25TdGF0dXMudnVlPzQxYjYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0Jhc2VsaW5lLnZ1ZT84MDYwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9EZXNjcmlwdGlvbi52dWU/OTc5ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZT80ZDg3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9JbmRpY2F0b3JBc2NlbmRpbmcudnVlPzQ2ZDciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL01lYXN1cmUudnVlPzFjNmIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1BlcmlvZC52dWU/MmU3OSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvUmVmZXJlbmNlLnZ1ZT9hYjcxIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9UaXRsZS52dWU/MDEzMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/NzVlMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXR5RWxlbWVudC52dWU/MjE2YSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZT80NzQzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWU/MTEyYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VsZW1lbnRzTm90ZS52dWU/NDZhNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VtcHR5QWN0aXZpdHkudnVlPzU0MWYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9QYWdlVGl0bGUudnVlPzIxMWEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9TaWRlYmFySGVscEJsb2NrLnZ1ZT8zODg2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvVGFibGVMYXlvdXQudnVlPzcwNDYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNEZXRhaWwudnVlP2U2NGMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNMaXN0LnZ1ZT9jMzJjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9lbGVtZW50cy9BY3R1YWxWYWx1ZS52dWU/NGVhNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BlcmlvZHMvZWxlbWVudHMvVGFyZ2V0VmFsdWUudnVlPzJjOTgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL1Jlc3VsdERldGFpbC52dWU/NDdlZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0RWxlbWVudC52dWU/M2VmMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0TGlzdC52dWU/OGIzYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZT83ZDE1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9JbmRpY2F0b3IudnVlPzg1ZTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWU/MjkzMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvUmVzdWx0VHlwZS52dWU/ZjNmNCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvVGl0bGVEZXNjcmlwdGlvbi52dWU/ZTA5YSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkRldGFpbC52dWU/NThmMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkVsZW1lbnQudnVlP2RiNWYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25MaXN0LnZ1ZT8xNTA4Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0FpZFR5cGUudnVlPzMyZjgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlPzE5NWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/ODFkMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GaW5hbmNlVHlwZS52dWU/NGE4NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GbG93VHlwZS52dWU/NzEzNCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9Qcm92aWRlck9yZ2FuaXphdGlvbi52dWU/MzE1MSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/NjJlYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZT8wMTUwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1JlY2lwaWVudFJlZ2lvbi52dWU/ZGY2MyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9TZWN0b3IudnVlP2FiM2YiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVGllZFN0YXR1cy52dWU/NzhkMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9UcmFuc2FjdGlvbkRhdGUudnVlP2U4OWQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVHJhbnNhY3Rpb25UeXBlLnZ1ZT84M2NhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1ZhbHVlLnZ1ZT8xMTg3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0FjdGl2aXR5VXBsb2FkLnZ1ZT9mODc3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydExpc3QudnVlP2ZmOGUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvSW1wb3J0UGxhY2Vob2xkZXIudnVlPzFhNTAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvTGlzdEVsZW1lbnQudnVlP2U2MTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWU/ZDJlNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50cy52dWU/YWE0YSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/Yjg3NSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Eb2N1bWVudExpbmsudnVlPzAwNDQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWU/MzdlZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZXBvcnRpbmdPcmdCdWRnZXQudnVlPzllYWIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZT85ZWE0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlcG9ydGluZ1JlZ2lvbkJ1ZGdldC52dWU/YjEwOCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEJ1ZGdldC52dWU/ZGQyYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZT83YjM3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUGFzc3dvcmRSZWNvdmVyeS52dWU/OWNiZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWU/ZjFhYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFzc3dvcmQudnVlPzQzNjMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zZXR0aW5nL1NldHRpbmdEZWZhdWx0Rm9ybS52dWU/OTE1YiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1BhZ2UudnVlPzAxMDMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zZXR0aW5nL1NldHRpbmdQdWJsaXNoaW5nRm9ybS52dWU/ZTI0NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vT3JnYW5pc2F0aW9uTGlzdC52dWU/ZTUwNyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vY29tcG9uZW50cy9BZG1pbkJhci52dWU/NjY2MCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vY29tcG9uZW50cy9UYWJsZUxpc3QudnVlPzMxMTciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvQWJvdXRQYWdlLnZ1ZT83OGRjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZT9jMGE2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlSZWdpc3RlclBhZ2UudnVlPzIzZTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvSWF0aVN0YW5kYXJkLnZ1ZT82NTJjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1B1Ymxpc2hpbmdDaGVja2xpc3QudnVlPzg2OWYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUmVnaXN0ZXJQYWdlLnZ1ZT8xNWU1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1N1cHBvcnRQYWdlLnZ1ZT8wNThjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1dlbGNvbWVQYWdlLnZ1ZT8wZGViIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL0FkbWluRm9vdGVyLnZ1ZT80MjJiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL0pvaW5Ob3cudnVlPzVhNTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvU2lnbkluLnZ1ZT8wMzVkIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1dlYkZvb3Rlci52dWU/YTdkMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJIZWFkZXIudnVlP2FlYjMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0FkbWluSGVhZGVyLnZ1ZT9kNDgwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9CcmVhZENydW1iLnZ1ZT8xYjI2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlPzUxMjEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Rlc2NyaXB0aW9uRm9ybS52dWU/ZGQxZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRXJyb3JNZXNzYWdlLnZ1ZT9kN2I3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9FcnJvclBvcFVwLnZ1ZT80MjgxIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Ib3ZlclRleHQudnVlPzEyMGUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0xvYWRlci52dWU/ZWU4YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvTmF2RHJvcGRvd24udnVlP2JjZGUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1BvcHVwTW9kYWwudnVlPzM5NDciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZT8wMWI5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9UYWJsZVBhZ2luYXRpb24udnVlPzZkM2MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWU/MzVkNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9EZWxldGVCdXR0b24udnVlPzhiMmIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL2J1dHRvbnMvTGluay52dWU/ZmE1ZiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9QdWJsaXNoQnV0dG9uLnZ1ZT9hYmUwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWU/MGU4YiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvRGVsZXRlQWN0aW9uLnZ1ZT8xMzM1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9FcnJvckxpc3RzLnZ1ZT8wY2I3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlPzg5NGYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlP2NiMmQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWU/YjI2YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlP2Y3ODMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1N0aWNreUVycm9ycy52dWU/NmU5NiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc3RhdHVzL0VsZW1lbnRTdGF0dXMudnVlP2Y0M2QiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3N0YXR1cy9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZT8yYWVjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlPzY1YzEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eURldGFpbC52dWU/YjFlMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlP2MyNmQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWU/ZjU4OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9CdWxrUHVibGlzaGluZy52dWU/ZjA0NSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlPzUwNjIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvUHVibGlzaFNlbGVjdGVkLnZ1ZT83NzQyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL1JlZnJlc2hUb2FzdC52dWU/Zjk2NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9WYWxpZGF0aW9uRXJyb3JzLnZ1ZT8zYTkyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQWN0aXZpdHlEYXRlLnZ1ZT8zM2I2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQ29uZGl0aW9ucy52dWU/NTlhNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0NvbnRhY3RJbmZvLnZ1ZT85ZGE2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlPzRiZTIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9IdW1hbml0YXJpYW5TY29wZS52dWU/YzI3MyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0lhdGlJZGVudGlmaWVyLnZ1ZT8yNmUwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvTGVnYWN5RGF0YS52dWU/NzFhNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0xvY2F0aW9uLnZ1ZT8zNDBhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvT3RoZXJJZGVudGlmaWVyLnZ1ZT9hMmM2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUGFydGljaXBhdGluZ09yZy52dWU/NzBjMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1BsYW5uZWREaXNidXJzZW1lbnQudnVlP2ZmNGQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Qb2xpY3lNYXJrZXIudnVlP2RlYjAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZT9kODU3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVjaXBpZW50UmVnaW9uLnZ1ZT9kMzhjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVsYXRlZEFjdGl2aXR5LnZ1ZT8zZGU3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZT9kNWNmIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVzdWx0LnZ1ZT83NGY2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvU2VjdG9yLnZ1ZT80OTZjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGFnLnZ1ZT8wMzE0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGl0bGUudnVlPzgxMDgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UcmFuc2FjdGlvbnMudnVlPzAxZTAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL0luZGljYXRvckRldGFpbC52dWU/OTcxNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvSW5kaWNhdG9yTGlzdC52dWU/MmNjNyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvQWdncmVnYXRpb25TdGF0dXMudnVlPzAxOGQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0Jhc2VsaW5lLnZ1ZT8wYzJiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9EZXNjcmlwdGlvbi52dWU/ZmY4ZiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZT80NDI0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9JbmRpY2F0b3JBc2NlbmRpbmcudnVlPzEzYWEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL01lYXN1cmUudnVlP2VhZTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1BlcmlvZC52dWU/MzhmNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvUmVmZXJlbmNlLnZ1ZT85MjQyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9UaXRsZS52dWU/OWZmMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/OGM5NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXR5RWxlbWVudC52dWU/NWM1MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZT9jMjBkIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWU/OTQyNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VsZW1lbnRzTm90ZS52dWU/MDYxNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VtcHR5QWN0aXZpdHkudnVlPzI4MWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9QYWdlVGl0bGUudnVlPzlkMWYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9TaWRlYmFySGVscEJsb2NrLnZ1ZT8wZGY0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvVGFibGVMYXlvdXQudnVlPzYzNDAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNEZXRhaWwudnVlPzdhODMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNMaXN0LnZ1ZT82NzQzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9lbGVtZW50cy9BY3R1YWxWYWx1ZS52dWU/MzMwZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BlcmlvZHMvZWxlbWVudHMvVGFyZ2V0VmFsdWUudnVlPzE2YjAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL1Jlc3VsdERldGFpbC52dWU/MGE5YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0RWxlbWVudC52dWU/ODUxYSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0TGlzdC52dWU/NmE3MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZT9hY2NkIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9JbmRpY2F0b3IudnVlPzBiNzEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWU/NjNhNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvUmVzdWx0VHlwZS52dWU/MTYzMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvVGl0bGVEZXNjcmlwdGlvbi52dWU/NWUzMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkRldGFpbC52dWU/MmU1MCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkVsZW1lbnQudnVlPzUzYjEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25MaXN0LnZ1ZT85MjA3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0FpZFR5cGUudnVlPzM0NzkiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlPzgzZjMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/MWU1MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GaW5hbmNlVHlwZS52dWU/NWRjMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GbG93VHlwZS52dWU/YjVkNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9Qcm92aWRlck9yZ2FuaXphdGlvbi52dWU/ODgwYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/OWM0NyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZT9jNWFhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1JlY2lwaWVudFJlZ2lvbi52dWU/NGJiNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9TZWN0b3IudnVlPzZmODAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVGllZFN0YXR1cy52dWU/ODI3OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9UcmFuc2FjdGlvbkRhdGUudnVlPzBiOTkiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVHJhbnNhY3Rpb25UeXBlLnZ1ZT80NTRiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1ZhbHVlLnZ1ZT84YmY0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0FjdGl2aXR5VXBsb2FkLnZ1ZT9jZjY1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydExpc3QudnVlPzg1NDAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvSW1wb3J0UGxhY2Vob2xkZXIudnVlPzJhYjIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvTGlzdEVsZW1lbnQudnVlP2M5NjEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWU/YjMyOSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50cy52dWU/ODc4YiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/YWM0ZiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Eb2N1bWVudExpbmsudnVlPzUzOTEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWU/N2EwMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZXBvcnRpbmdPcmdCdWRnZXQudnVlPzZhZjMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZT8wOTgzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlcG9ydGluZ1JlZ2lvbkJ1ZGdldC52dWU/YTA3OSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEJ1ZGdldC52dWU/NGJhZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZT81MWQyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUmVzZXRQYWdlLnZ1ZT9lOGIzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUmVzZXRQYXNzd29yZC52dWU/ZWU0OSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZT84NWU5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc2V0dGluZy9TZXR0aW5nUGFnZS52dWU/ZjBlMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1B1Ymxpc2hpbmdGb3JtLnZ1ZT8zZjM0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9PcmdhbmlzYXRpb25MaXN0LnZ1ZT80NDBhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9jb21wb25lbnRzL0FkbWluQmFyLnZ1ZT80MjRjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9jb21wb25lbnRzL1RhYmxlTGlzdC52dWU/OWYyZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9FbWFpbFZlcmlmaWNhdGlvbi52dWU/NWExNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT83Y2IwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1B1Ymxpc2hpbmdDaGVja2xpc3QudnVlP2Y2M2YiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUmVnaXN0ZXJQYWdlLnZ1ZT85ODYzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1NpZ25Jbi52dWU/NjNkMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJIZWFkZXIudnVlPzAyZjYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvV2VsY29tZVBhZ2UudnVlP2M2NjIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnLyBzeW5jIF5cXC5cXC8uKiQiLCJ3ZWJwYWNrOi8vL2lnbm9yZWR8L2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvY3J5cHRvLWpzfGNyeXB0byJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBDcmVhdGVNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vdmlld3MvYWN0aXZpdHkvQ3JlYXRlTW9kYWwudnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnQWRtaW5IZWFkZXInLFxuICAgIHByb3BzOiB7XG4gICAgICAgIHVzZXI6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBvcmdhbml6YXRpb246IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICdvYmplY3QnIHx8IHR5cGVvZiB2ID09PSAnc3RyaW5nJyB8fCB2ID09PSBudWxsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzdXBlckFkbWluOiB7IHR5cGU6IEJvb2xlYW4sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBfYjtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBzaG93VXNlckRyb3Bkb3duID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3RWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgc2hvd1NpZGViYXIgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIucmVmKSgnJyk7XG4gICAgICAgIHZhciB0b2FzdFR5cGUgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBsYW5ndWFnZU5hdkxpQ2xhc3NlczogJ2ZsZXgnLFxuICAgICAgICAgICAgbGFuZ3VhZ2VOYXZBbmNob3JDbGFzc2VzOiAnZmxleCB0ZXh0LXdoaXRlIGl0ZW1zLWNlbnRlciB1cHBlcmNhc2UgbmF2X19wb2ludGVyLWhvdmVyIHB4LTEuNScsXG4gICAgICAgICAgICBtZW51TmF2TGlDbGFzc2VzOiAnZmxleCBweC00IHJlbGF0aXZlJyxcbiAgICAgICAgICAgIG1lbnVOYXZBbmNob3JDbGFzc2VzOiAnZmxleCB0ZXh0LXdoaXRlIGl0ZW1zLWNlbnRlciB1cHBlcmNhc2UgbmF2X19wb2ludGVyLWhvdmVyJyxcbiAgICAgICAgICAgIGxhbmd1YWdlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2U6ICdFTicsXG4gICAgICAgICAgICAgICAgICAgIHBlcm1hbGluazogJyMnLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlOiAnRlInLFxuICAgICAgICAgICAgICAgICAgICBwZXJtYWxpbms6ICcjJyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2U6ICdFUycsXG4gICAgICAgICAgICAgICAgICAgIHBlcm1hbGluazogJyMnLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbWVudXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdBY3Rpdml0eSBEQVRBJyxcbiAgICAgICAgICAgICAgICAgICAgcGVybWFsaW5rOiAnL2FjdGl2aXRpZXMnLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdPcmdhbmlzYXRpb24gREFUQScsXG4gICAgICAgICAgICAgICAgICAgIHBlcm1hbGluazogJy9vcmdhbmlzYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnU2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgICAgICBwZXJtYWxpbms6ICcvc2V0dGluZycsXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdBZGQgLyBJbXBvcnQgQWN0aXZpdHknLFxuICAgICAgICAgICAgICAgICAgICBwZXJtYWxpbms6ICcnLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGxpQ2xhc3MgPSAnYmxvY2sgcC0yLjUgdGV4dC1uLTQwIHRleHQtdGlueSB1cHBlcmNhc2UgbGVhZGluZy1bMS41XSBmb250LWJvbGQgaG92ZXI6IXRleHQtbi01MCBob3ZlcjpiZy1uLTEwJztcbiAgICAgICAgdmFyIF9jID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIG1vZGFsVmFsdWUgPSBfY1swXSwgbW9kYWxUb2dnbGUgPSBfY1sxXTtcbiAgICAgICAgZnVuY3Rpb24gdG9hc3QobWVzc2FnZSwgdHlwZSkge1xuICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRvYXN0VmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlKTsgfSwgMTUwMDApO1xuICAgICAgICAgICAgdG9hc3RNZXNzYWdlLnZhbHVlID0gbWVzc2FnZTtcbiAgICAgICAgICAgIHRvYXN0VHlwZS52YWx1ZSA9IHR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzVG91Y2hEZXZpY2UgPSAoMCwgdnVlXzIuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHwgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzID4gMDtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIFRvZ2dsZU1vZGVsKCkge1xuICAgICAgICAgICAgbW9kYWxUb2dnbGUoKTtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnb3BlbkFkZE1vZGVsJyk7XG4gICAgICAgIH1cbiAgICAgICAgKDAsIHZ1ZV8yLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBzaG93U2lkZWJhci52YWx1ZTsgfSwgZnVuY3Rpb24gKHNpZGViYXIpIHtcbiAgICAgICAgICAgIGlmIChzaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gY2hhbmdlQWN0aXZlTWVudSgpIHtcbiAgICAgICAgICAgIHZhciBwYXRoID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgICAgICAgICAgZGF0YS5tZW51cy5mb3JFYWNoKGZ1bmN0aW9uIChtZW51LCBrZXkpIHtcbiAgICAgICAgICAgICAgICBkYXRhLm1lbnVzW2tleV1bJ2FjdGl2ZSddID0gbWVudS5wZXJtYWxpbmsgPT09IHBhdGggPyB0cnVlIDogZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCdhY3Rpdml0eScpIHx8XG4gICAgICAgICAgICAgICAgcGF0aC5pbmNsdWRlcygncmVzdWx0JykgfHxcbiAgICAgICAgICAgICAgICBwYXRoLmluY2x1ZGVzKCdpbmRpY2F0b3InKSkge1xuICAgICAgICAgICAgICAgIGRhdGEubWVudXNbMF1bJ2FjdGl2ZSddID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCdvcmdhbmlzYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIGRhdGEubWVudXNbMV1bJ2FjdGl2ZSddID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCdpbXBvcnQnKSkge1xuICAgICAgICAgICAgICAgIGRhdGEubWVudXNbM11bJ2FjdGl2ZSddID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBsb2NhbCBzdG9yYWdlIGZvciBwdWJsaXNoaW5nXG4gICAgICAgIHZhciBwYSA9ICgwLCBjb3JlXzEudXNlU3RvcmFnZSkoJ3Z1ZS11c2UtbG9jYWwtc3RvcmFnZScsIHtcbiAgICAgICAgICAgIHB1Ymxpc2hpbmdBY3Rpdml0aWVzOiAoX2IgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHVibGlzaGluZ0FjdGl2aXRpZXMnKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDoge30sXG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBsb2dvdXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGEudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBheGlvc18xLmRlZmF1bHQucG9zdCgnL2xvZ291dCcpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZWFyY2ggZnVuY3Rpb25hbGl0eVxuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIHNlYXJjaFZhbHVlID0gKDAsIHZ1ZV8yLnJlZikoJycpO1xuICAgICAgICB2YXIgY3VycmVudFVSTCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgICAgICBpZiAoY3VycmVudFVSTC5pbmNsdWRlcygnPycpKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKSwgc2VhcmNoID0gdXJsUGFyYW1zLmdldCgncScpO1xuICAgICAgICAgICAgc2VhcmNoVmFsdWUudmFsdWUgPSBzZWFyY2g7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNwaW5uZXIgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBzZWFyY2hGdW5jdGlvbiA9IGZ1bmN0aW9uICh1cmwpIHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIHNwaW5uZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgdmFyIHBhcmFtID0gKF9hID0gc2VhcmNoVmFsdWUudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXBsYWNlKCcjJywgJycpO1xuICAgICAgICAgICAgdmFyIHNvcnRpbmdQYXJhbSA9ICcnO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSAmJiBjdXJyZW50VVJMLmluY2x1ZGVzKCcmJykpIHtcbiAgICAgICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgICAgICAgICAgICAgIHZhciBxdWVyeVN0cmluZ0FyciA9IHF1ZXJ5U3RyaW5nLnNwbGl0KCcmJyk7XG4gICAgICAgICAgICAgICAgc29ydGluZ1BhcmFtID0gJyYnICsgcXVlcnlTdHJpbmdBcnIuc2xpY2UoMSkuam9pbignJicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGhyZWYgPSBwYXJhbSA/IFwiXCIuY29uY2F0KHVybCwgXCI/cT1cIikuY29uY2F0KHBhcmFtKS5jb25jYXQoc29ydGluZ1BhcmFtKSA6ICcvYWN0aXZpdGllcy8nO1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgICAgICB9O1xuICAgICAgICAoMCwgdnVlXzIub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlQWN0aXZlTWVudSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgfSk7XG4gICAgICAgICgwLCB2dWVfMi5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnb3BlbkFkZE1vZGVsJykgPT09ICd0cnVlJyAmJlxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSA9PT0gJy9hY3Rpdml0aWVzJykge1xuICAgICAgICAgICAgICAgIG1vZGFsVmFsdWUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8yLm9uVW5tb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnb3BlbkFkZE1vZGVsJyk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBzaG93VXNlckRyb3Bkb3duOiBzaG93VXNlckRyb3Bkb3duLCB0b2FzdFZpc2liaWxpdHk6IHRvYXN0VmlzaWJpbGl0eSwgc2hvd1NpZGViYXI6IHNob3dTaWRlYmFyLCB0b2FzdE1lc3NhZ2U6IHRvYXN0TWVzc2FnZSwgdG9hc3RUeXBlOiB0b2FzdFR5cGUsIGRhdGE6IGRhdGEsIGxpQ2xhc3M6IGxpQ2xhc3MsIG1vZGFsVmFsdWU6IG1vZGFsVmFsdWUsIG1vZGFsVG9nZ2xlOiBtb2RhbFRvZ2dsZSwgdG9hc3Q6IHRvYXN0LCBpc1RvdWNoRGV2aWNlOiBpc1RvdWNoRGV2aWNlLCBUb2dnbGVNb2RlbDogVG9nZ2xlTW9kZWwsIGNoYW5nZUFjdGl2ZU1lbnU6IGNoYW5nZUFjdGl2ZU1lbnUsIHBhOiBwYSwgbG9nb3V0OiBsb2dvdXQsIHNlYXJjaFZhbHVlOiBzZWFyY2hWYWx1ZSwgY3VycmVudFVSTDogY3VycmVudFVSTCwgc3Bpbm5lcjogc3Bpbm5lciwgc2VhcmNoRnVuY3Rpb246IHNlYXJjaEZ1bmN0aW9uLCBDcmVhdGVNb2RhbDogQ3JlYXRlTW9kYWxfdnVlXzEuZGVmYXVsdCwgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnQnJlYWRDcnVtYicsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBicmVhZGNydW1iRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7IGdldEFjdGl2aXR5VGl0bGU6IHRpdGxlXzEuZGVmYXVsdCwgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdCdXR0b25Db21wb25lbnQnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIHRleHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogXCJcIixcbiAgICAgICAgfSxcbiAgICAgICAgbGluazoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogXCJcIixcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGJ0blR5cGUgPSAnJztcbiAgICAgICAgaWYgKHByb3BzLnR5cGUgPT09ICdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICBidG5UeXBlID0gJ3NlY29uZGFyeS1idG4gZm9udC1ib2xkJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwcm9wcy50eXBlID09PSAnb3V0bGluZScpIHtcbiAgICAgICAgICAgIGJ0blR5cGUgPSAncHJpbWFyeS1vdXRsaW5lLWJ0bic7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcHMudHlwZSA9PT0gJ3ByaW1hcnknKSB7XG4gICAgICAgICAgICBidG5UeXBlID0gJ3ByaW1hcnktYnRuIGZvbnQtYm9sZCc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBidG5UeXBlID0gJ2ZvbnQtYm9sZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgYnRuVHlwZTogYnRuVHlwZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnRGVzY3JpcHRpb25Gb3JtJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge30sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8zID0gcmVxdWlyZShcIkBoZWFkbGVzc3VpL3Z1ZVwiKTtcbnZhciBMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZVwiKSk7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ0Vycm9yTWVzc2FnZScsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgaXNFbXB0eToge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgc2hvdyA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGhhc0Vycm9ycyA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGVycm9yQ291bnQgPSAoMCwgdnVlXzIucmVmKSgwKTtcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMi5pbmplY3QpKFwidG9hc3REYXRhXCIpO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBhY2NvdW50X3ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgICAgIHB1Ymxpc2hlcl9hY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdF9zZXR0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHB1Ymxpc2hlcl9zZXR0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHRva2VuX3N0YXR1czogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXNMb2FkZXJWaXNpYmxlID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICBmdW5jdGlvbiByZXNlbmRWZXJpZmljYXRpb25FbWFpbCgpIHtcbiAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdChcIi91c2VyL3ZlcmlmaWNhdGlvbi9lbWFpbFwiKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSByZXMuZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS50eXBlID0gcmVzLmRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IGVycm9yLmRhdGEubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgKDAsIHZ1ZV8yLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9zZXR0aW5nL3N0YXR1c1wiKSxcbiAgICAgICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi91c2VyL3ZlcmlmaWNhdGlvbi9zdGF0dXNcIiksXG4gICAgICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvb3JnYW5pc2F0aW9uL3N0YXR1c1wiKSxcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihheGlvc18xLmRlZmF1bHQuc3ByZWFkKGZ1bmN0aW9uIChzZXR0aW5nX3JlcywgdXNlcl9yZXMsIG9yZ19yZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHNldHRpbmdfcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIHZhciB1c2VyX3Jlc3BvbnNlID0gdXNlcl9yZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG9yZ19yZXNwb25zZSA9IG9yZ19yZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLmRlZmF1bHRfc2V0dGluZyA9IChfYSA9IHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5kYXRhKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGVmYXVsdF9zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wdWJsaXNoZXJfc2V0dGluZyA9IChfYiA9IHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5kYXRhKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucHVibGlzaGVyX3N0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLnRva2VuX3N0YXR1cyA9IChfYyA9IHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5kYXRhKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9rZW5fc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEuYWNjb3VudF92ZXJpZmllZCA9IHVzZXJfcmVzcG9uc2UuZGF0YS5hY2NvdW50X3ZlcmlmaWVkO1xuICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEucHVibGlzaGVyX2FjdGl2ZSA9IG9yZ19yZXNwb25zZS5kYXRhLnB1Ymxpc2hlcl9hY3RpdmU7XG4gICAgICAgICAgICAgICAgICAgIHZhciBncm91cGVkRXJyb3IgPSBbXCJkZWZhdWx0X3NldHRpbmdcIiwgXCJwdWJsaXNoZXJfc2V0dGluZ1wiLCBcInRva2VuX3N0YXR1c1wiXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgZXJyb3IgaW4gZXJyb3JEYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVycm9yRGF0YVtlcnJvcl0gJiYgZ3JvdXBlZEVycm9yLmluZGV4T2YoZXJyb3IpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ291bnQudmFsdWUgKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIShlcnJvckRhdGEucHVibGlzaGVyX3NldHRpbmcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS50b2tlbl9zdGF0dXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS5kZWZhdWx0X3NldHRpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50LnZhbHVlICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC52YWx1ZXMoZXJyb3JEYXRhKS5pbmRleE9mKGZhbHNlKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgfSk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHNob3c6IHNob3csIGhhc0Vycm9yczogaGFzRXJyb3JzLCBlcnJvckNvdW50OiBlcnJvckNvdW50LCB0b2FzdERhdGE6IHRvYXN0RGF0YSwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIGlzTG9hZGVyVmlzaWJsZTogaXNMb2FkZXJWaXNpYmxlLCByZXNlbmRWZXJpZmljYXRpb25FbWFpbDogcmVzZW5kVmVyaWZpY2F0aW9uRW1haWwsIFRyYW5zaXRpb25Sb290OiB2dWVfMy5UcmFuc2l0aW9uUm9vdCwgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ0Vycm9yUG9wVXAnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgdHlwZTogQXJyYXkgfHwgU3RyaW5nLFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBlbWl0czogWydjbG9zZS1wb3B1cCddLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZSwgZW1pdCA9IF9hLmVtaXQ7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgICB2YXIgY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBlbWl0KCdjbG9zZS1wb3B1cCcsICdjbG9zZWQnKTtcbiAgICAgICAgfTtcbiAgICAgICAgKDAsIHZ1ZV8yLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzIub25Vbm1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGVtaXQ6IGVtaXQsIHByb3BzOiBwcm9wcywgY2xvc2U6IGNsb3NlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBwcm9wczoge1xuICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgaG92ZXJUZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICd3LTYwJyxcbiAgICAgICAgfSxcbiAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBsaW5rOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgaWNvblNpemU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBzaG93SWF0aVJlZmVyZW5jZToge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnTG9hZGVyQ21wJyxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIHByb3BzOiB7XG4gICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYnRuVGV4dDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJ0bkxpbms6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUG9wdXBNb2RhbCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbW9kYWxBY3RpdmU6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICc4MDknLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZW1pdHM6IFsnY2xvc2UnLCAncmVzZXQnXSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzLCBfYSkge1xuICAgICAgICB2YXIgZW1pdCA9IF9hLmVtaXQ7XG4gICAgICAgICgwLCB2dWVfMS53YXRjaCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gcHJvcHMubW9kYWxBY3RpdmU7IH0sIGZ1bmN0aW9uIChtb2RhbEFjdGl2ZSkge1xuICAgICAgICAgICAgaWYgKG1vZGFsQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICBlbWl0KCdjbG9zZScpO1xuICAgICAgICAgICAgZW1pdCgncmVzZXQnKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHsgY2xvc2U6IGNsb3NlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZTNfcmFkaWFsX3Byb2dyZXNzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInZ1ZTMtcmFkaWFsLXByb2dyZXNzXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFJhZGlhbFByb2dyZXNzQmFyOiB2dWUzX3JhZGlhbF9wcm9ncmVzc18xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBwZXJjZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAwLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgY29tcGxldGVkUGVyY2VudCA9ICgwLCB2dWVfMS5yZWYpKHByb3BzLnBlcmNlbnQpO1xuICAgICAgICB2YXIgdG90YWxQZXJjZW50ID0gKDAsIHZ1ZV8xLnJlZikoMTAwKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBsZXRlZFBlcmNlbnQ6IGNvbXBsZXRlZFBlcmNlbnQsXG4gICAgICAgICAgICB0b3RhbFBlcmNlbnQ6IHRvdGFsUGVyY2VudCxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1BhZ2luYXRpb25Db21wb25lbnQnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBlbWl0czogWydmZXRjaEFjdGl2aXRpZXMnXSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzLCBfYSkge1xuICAgICAgICB2YXIgZW1pdCA9IF9hLmVtaXQ7XG4gICAgICAgIHZhciBhY3RpdmVfcGFnZSA9ICgwLCB2dWVfMS5yZWYpKDEpO1xuICAgICAgICAoMCwgdnVlXzEud2F0Y2gpKGFjdGl2ZV9wYWdlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBlbWl0KCdmZXRjaEFjdGl2aXRpZXMnLCBhY3RpdmVfcGFnZS52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiB1cGRhdGVBY3RpdmVQYWdlKHBhZ2UpIHtcbiAgICAgICAgICAgIGFjdGl2ZV9wYWdlLnZhbHVlID0gcGFnZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjaGFuZ2VQYWdlKHBhZ2VOdW0pIHtcbiAgICAgICAgICAgIGFjdGl2ZV9wYWdlLnZhbHVlID1cbiAgICAgICAgICAgICAgICBhY3RpdmVfcGFnZS52YWx1ZSA9PT0gcHJvcHMuZGF0YS5sYXN0X3BhZ2UgPyAxIDogcGFnZU51bTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBuZXh0UGFnZSgpIHtcbiAgICAgICAgICAgIGFjdGl2ZV9wYWdlLnZhbHVlID1cbiAgICAgICAgICAgICAgICBhY3RpdmVfcGFnZS52YWx1ZSA9PT0gcHJvcHMuZGF0YS5sYXN0X3BhZ2UgPyAxIDogYWN0aXZlX3BhZ2UudmFsdWUgKyAxO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHByZXZpb3VzUGFnZSgpIHtcbiAgICAgICAgICAgIGFjdGl2ZV9wYWdlLnZhbHVlID1cbiAgICAgICAgICAgICAgICBhY3RpdmVfcGFnZS52YWx1ZSA9PT0gMSA/IHByb3BzLmRhdGEubGFzdF9wYWdlIDogYWN0aXZlX3BhZ2UudmFsdWUgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICBhY3RpdmVfcGFnZTogYWN0aXZlX3BhZ2UsXG4gICAgICAgICAgICB1cGRhdGVBY3RpdmVQYWdlOiB1cGRhdGVBY3RpdmVQYWdlLFxuICAgICAgICAgICAgbmV4dFBhZ2U6IG5leHRQYWdlLFxuICAgICAgICAgICAgcHJldmlvdXNQYWdlOiBwcmV2aW91c1BhZ2UsXG4gICAgICAgICAgICBjaGFuZ2VQYWdlOiBjaGFuZ2VQYWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVG9hc3RNZXNzYWdlJyxcbiAgICBwcm9wczoge1xuICAgICAgICBtZXNzYWdlOiB7IHR5cGU6IFN0cmluZywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgdHlwZTogeyB0eXBlOiBCb29sZWFuLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9ICgwLCB2dWVfMi5yZWYpKFwiXCIpO1xuICAgICAgICBjbGFzc05hbWUudmFsdWUgPSBwcm9wcy50eXBlXG4gICAgICAgICAgICA/IFwicm91bmRlZC1sZyBiZy1taW50IGJvcmRlciBib3JkZXItc3ByaW5nLTEwIHB5LTMgcHgtNSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xIHRleHQtc20gbGVhZGluZy1ub3JtYWwgdGV4dC1uLTUwXCJcbiAgICAgICAgICAgIDogXCJyb3VuZGVkLWxnIGJnLWNyaW1zb24tMTAgYm9yZGVyIGJvcmRlci1jcmltc29uLTIwIHB5LTMgcHgtNSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xIHRleHQtc20gbGVhZGluZy1ub3JtYWwgdGV4dC1uLTUwXCI7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHByb3BzOiBwcm9wcywgY2xhc3NOYW1lOiBjbGFzc05hbWUgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbi8vY29tcG9uZW50XG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIFBvcHVwTW9kYWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvUG9wdXBNb2RhbC52dWVcIikpO1xudmFyIFByb2dyZXNzTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1Byb2dyZXNzTG9hZGVyLnZ1ZVwiKSk7XG4vLyBWdWV4IFN0b3JlXG52YXIgaW5kZXhfMSA9IHJlcXVpcmUoXCJTdG9yZS9hY3Rpdml0aWVzL2luZGV4XCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ0RlbGV0ZUJ1dHRvbicsXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHN0b3JlID0gKDAsIGluZGV4XzEudXNlU3RvcmUpKCk7XG4gICAgICAgIC8vIHRvZ2dsZSBzdGF0ZSBmb3IgbW9kYWwgcG9wdXBcbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIGRlbGV0ZVZhbHVlID0gX2JbMF0sIGRlbGV0ZVRvZ2dsZSA9IF9iWzFdO1xuICAgICAgICAvLyBkaXNwbGF5L2hpZGUgdmFsaWRhdG9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICAgICAgICB0ZXh0OiAnUGxlYXNlIFdhaXQnLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gY2FsbCBhcGkgZm9yIHVucHVibGlzaGluZ1xuICAgICAgICB2YXIgdG9hc3RNZXNzYWdlID0gKDAsIHZ1ZV8yLmluamVjdCkoJ3RvYXN0TWVzc2FnZScpO1xuICAgICAgICB2YXIgZGVsZXRlRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2FkZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgbG9hZGVyLnRleHQgPSAnRGVsZXRpbmcnO1xuICAgICAgICAgICAgZGVsZXRlVmFsdWUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBkZWxldGVFbmRQb2ludCA9IFwiL2FjdGl2aXR5L1wiLmNvbmNhdChzdG9yZS5zdGF0ZS5zZWxlY3RlZEFjdGl2aXRpZXMpO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmRlbGV0ZShkZWxldGVFbmRQb2ludCkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgdG9hc3RNZXNzYWdlLm1lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS50eXBlID0gcmVzcG9uc2Uuc3VjY2VzcztcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSgnL2FjdGl2aXRpZXMnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHN0b3JlOiBzdG9yZSwgZGVsZXRlVmFsdWU6IGRlbGV0ZVZhbHVlLCBkZWxldGVUb2dnbGU6IGRlbGV0ZVRvZ2dsZSwgbG9hZGVyOiBsb2FkZXIsIHRvYXN0TWVzc2FnZTogdG9hc3RNZXNzYWdlLCBkZWxldGVGdW5jdGlvbjogZGVsZXRlRnVuY3Rpb24sIEJ0bkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsIE1vZGFsOiBQb3B1cE1vZGFsX3Z1ZV8xLmRlZmF1bHQsIExvYWRlcjogUHJvZ3Jlc3NMb2FkZXJfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0xpbmtCdXR0b24nLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIHRleHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsaW5rOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJ2VkaXQnLFxuICAgICAgICB9LFxuICAgICAgICBkZXNpZ246IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICdpY29uVGV4dCcsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkZXNpZ24gPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGVzaWduO1xuICAgICAgICB2YXIgc3R5bGVUeXBlID0gZGVzaWduLnZhbHVlO1xuICAgICAgICB2YXIgY2xhc3NlcyA9ICcnO1xuICAgICAgICBzd2l0Y2ggKHN0eWxlVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnYmdUZXh0JzpcbiAgICAgICAgICAgICAgICBjbGFzc2VzID0gJ2ZsZXggaXRlbXMtY2VudGVyIGJnLW4tMTAgcC0xIHRleHQtdGlueSBmb250LWJvbGQgdXBwZXJjYXNlJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9XG4gICAgICAgICAgICAgICAgICAgICdmbGV4IGl0ZW1zLWNlbnRlciBmb250LWJvbGQgbGVhZGluZy1ub3JtYWwgdXBwZXJjYXNlIHRleHQtdGlueSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY2xhc3NlczogY2xhc3NlcyB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vL2NvbXBvbmVudFxudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBQb3B1cE1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCIpKTtcbnZhciBQcm9ncmVzc0xvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWVcIikpO1xuLy8gVnVleCBTdG9yZVxudmFyIHNob3dfMSA9IHJlcXVpcmUoXCJTdG9yZS9hY3Rpdml0aWVzL3Nob3dcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUHVibGlzaEJ1dHRvbicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdHlwZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICdwcmltYXJ5JyB9LFxuICAgICAgICBsaW5rZWRUb0lhdGk6IHsgdHlwZTogQm9vbGVhbiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgc3RhdHVzOiB7IHR5cGU6IFN0cmluZywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgY29yZUNvbXBsZXRlZDogeyB0eXBlOiBCb29sZWFuLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBhY3Rpdml0eUlkOiB7IHR5cGU6IE51bWJlciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBfYiA9ICgwLCB2dWVfMi50b1JlZnMpKHByb3BzKSwgbGlua2VkVG9JYXRpID0gX2IubGlua2VkVG9JYXRpLCBzdGF0dXMgPSBfYi5zdGF0dXMsIGNvcmVDb21wbGV0ZWQgPSBfYi5jb3JlQ29tcGxldGVkLCBhY3Rpdml0eUlkID0gX2IuYWN0aXZpdHlJZDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqICBHbG9iYWwgU3RhdGVcbiAgICAgICAgICovXG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBzaG93XzEuZGV0YWlsU3RvcmUpKCk7XG4gICAgICAgIC8vYWN0aXZpdHkgaWRcbiAgICAgICAgdmFyIGlkID0gYWN0aXZpdHlJZC52YWx1ZTtcbiAgICAgICAgLy8gdG9nZ2xlIHN0YXRlIGZvciBtb2RhbCBwb3B1cFxuICAgICAgICB2YXIgX2MgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgcHVibGlzaFZhbHVlID0gX2NbMF0sIHB1Ymxpc2hUb2dnbGUgPSBfY1sxXTtcbiAgICAgICAgLy8gc3RhdGUgZm9yIHN0ZXAgb2YgdGhlIGZsb3dcbiAgICAgICAgdmFyIHB1Ymxpc2hTdGVwID0gKDAsIHZ1ZV8yLnJlZikoMCk7XG4gICAgICAgIC8vIGRpc3BsYXkvaGlkZSB2YWxpZGF0b3IgbG9hZGVyXG4gICAgICAgIHZhciBsb2FkZXIgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIC8vIHN0YXRlIGZvciBmaXJzdCBzdGVwXG4gICAgICAgIC8vIGRldGVybWluZSBpZiBjb3JlIGVsZW1lbnQgY29tcGxldGVkIG9yIG5vdFxuICAgICAgICAvLyB0cnVlIGZvciBjb21wbGV0ZWQgYW5kIGZhbHNlIGZvciBub3QgY29tcGxldGVkXG4gICAgICAgIHZhciBjb3JlRWxlbWVudFN0YXR1cyA9IGNvcmVDb21wbGV0ZWQudmFsdWU7XG4gICAgICAgIC8vIER5bmFtaWMgdGV4dCBmb3IgbG9hZGVyXG4gICAgICAgIHZhciBsb2FkZXJUZXh0ID0gKDAsIHZ1ZV8yLnJlZikoJ1BsZWFzZSBXYWl0Jyk7XG4gICAgICAgIC8vIHJlc2V0IHN0ZXAgdG8gemVybyBhZnRlciBjbG9zaW5nIG1vZGFsXG4gICAgICAgIHZhciByZXNldFB1Ymxpc2hTdGVwID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcHVibGlzaFN0ZXAudmFsdWUgPSAwO1xuICAgICAgICAgICAgcHVibGlzaFZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIC8vIGNvbXB1dGVkIGZ1bmN0aW9uIHRvIGNoYW5nZSBjb250ZW50IG9mIG1vZGFsXG4gICAgICAgIHZhciBwdWJsaXNoU3RhdGVDaGFuZ2UgPSAoMCwgdnVlXzIuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBwdWJsaXNoU3RhdGUgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgICAgICAgIGljb246ICcnLFxuICAgICAgICAgICAgICAgIGFsZXJ0U3RhdGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciB0aXRsZSA9ICcnLCBkZXNjcmlwdGlvbiA9ICcnLCBpY29uID0gJ3RpY2snO1xuICAgICAgICAgICAgLy8gZGlmZmVyZW50IGNvbnRlbnQgZm9yIHN0ZXAgMSBiYXNlZCBvbiBjb3JlRWxlbWVudCBzdGF0dXNcbiAgICAgICAgICAgIGlmIChjb3JlRWxlbWVudFN0YXR1cykge1xuICAgICAgICAgICAgICAgIHRpdGxlID0gJ0NvcmUgRWxlbWVudHMgQ29tcGxldGUnO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgJ0NvbmdyYXR1bGF0aW9ucyEgQWxsIHRoZSBjb3JlIGVsZW1lbnRzIGFyZSBjb21wbGV0ZS4gQ29udGludWUgdG8gVmFsaWRhdGUgdGhpcyBhY3Rpdml0eS4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGl0bGUgPSAnQ29yZSBFbGVtZW50cyBub3QgY29tcGxldGUnO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgJzxwPlRoZXJlIGlzIG1pc3NpbmcgZGF0YSBpbiBzb21lIG9mIHRoZSBjb3JlIGVsZW1lbnRzLiBXZSBoaWdobHkgcmVjb21tZW5kIHRoYXQgeW91IGNvbXBsZXRlIHRoZXNlIGRhdGEgZmllbGRzIHRvIGhlbHAgZW5zdXJlIHlvdXIgZGF0YSBpcyB1c2VmdWwuPC9wPjxwPkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlIGFueXdheSBhbmQgcnVuIGNoZWNrcyBvbiAodmFsaWRhdGUpIHRoaXMgZGF0YS48L3A+JztcbiAgICAgICAgICAgICAgICBpY29uID0gJ3dhcm5pbmctZmlsbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2ggKHB1Ymxpc2hTdGVwLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgLy8gZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLnRpdGxlID0gdGl0bGU7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuaWNvbiA9IGljb247XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5hbGVydFN0YXRlID0gY29yZUVsZW1lbnRTdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIC8vc2Vjb25kIHN0ZXBcbiAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS50aXRsZSA9IFwiQWN0aXZpdHkgd2lsbCBiZSB2YWxpZGF0ZWQgYmVmb3JlIHB1Ymxpc2hpbmdcIjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmRlc2NyaXB0aW9uID0gXCJUaGlzIGFjdGl2aXR5IHdpbGwgYmUgZmlyc3QgdmFsaWRhdGVkIGJlZm9yZSBwdWJsaXNoaW5nIHRoZSBhY3Rpdml0eSB0byB0aGUgSUFUSSBSZWdpc3RyeS4gXCI7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5pY29uID0gXCJzaGllbGRcIjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmFsZXJ0U3RhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgLy8gY2FzZSAyIGlzIGZvciBzdWNjZXNzIHZhbGlkYXRpb25cbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS50aXRsZSA9IFwiSUFUSSBWYWxpZGF0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5kZXNjcmlwdGlvbiA9IFwiPHA+Q29uZ3JhdHVsYXRpb25zISBObyBlcnJvcnMgd2VyZSBmb3VuZC4gUHVibGlzaCB5b3VyIGRhdGEgbm93LjwvcD48cD5UaGlzIGRhdGEgd2lsbCBiZSBhdmFpbGFibGUgb24gdGhlIElBVEkgRGF0YXN0b3JlIGFuZCBvdGhlciBkYXRhIHBvcnRhbHMvdG9vbHMvc29mdHdhcmUgdGhhdCB1c2UgSUFUSSBkYXRhLjwvcD5cIjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmljb24gPSBcInRpY2tcIjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmFsZXJ0U3RhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAvL2Nhc2UgMyBpcyBmb3IgdmFsaWRhdGlvbiB3aXRoIGNyaXRpY2FsIGVycm9yc1xuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLnRpdGxlID0gXCJJQVRJIFZhbGlkYXRpb24gSXNzdWVcIjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmRlc2NyaXB0aW9uID0gXCI8cD48Yj5cIi5jb25jYXQoZXJyLmNyaXRpY2FsTnVtYmVyLCBcIiBjcml0aWNhbCBlcnJvcnM8L2I+LCA8Yj5cIikuY29uY2F0KGVyci5lcnJvck51bWJlciwgXCIgZXJyb3JzPC9iPiBhbmQgPGI+XCIpLmNvbmNhdChlcnIud2FybmluZ051bWJlciwgXCIgd2FybmluZ3M8L2I+IHdlcmUgZm91bmQuIFZpZXcgaW5mb3JtYXRpb24gYWJvdXQgdGhlc2UgZXJyb3JzL3dhcm5pbmdzIGF0IHRoZSB0b3Agb2YgdGhlIGFjdGl2aXR5IHBhZ2UuPC9wPjxwPkFzIHlvdXIgZGF0YSBoYXMgYXQgbGVhc3Qgb25lIGNyaXRpY2FsIGVycm9yLCBpdCB3aWxsIG5vdCBiZSBhdmFpbGFibGUgb24gdGhlIElBVEkgRGF0YXN0b3JlIGFuZCBtYXkgbm90IGJlIGF2YWlsYWJsZSBvbiBvdGhlciBkYXRhIHBvcnRhbHMvdG9vbHMvc29mdHdhcmUgdGhhdCB1c2UgSUFUSSBkYXRhLjwvcD48cD5XZSBoaWdobHkgcmVjb21tZW5kIHlvdSBmaXggdGhlc2UgaXNzdWUocykgYmVmb3JlIHB1Ymxpc2hpbmcgeW91ciBhY3Rpdml0eSB0byBpbXByb3ZlIHRoZSBxdWFsaXR5IGFuZCB1c2VmdWxuZXNzIG9mIHlvdXIgZGF0YS48L3A+XCIpO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuaWNvbiA9IFwid2FybmluZy1maWxsXCI7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5hbGVydFN0YXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIC8vIGNhc2UgNCBpcyBmb3IgdmFsaWRhdGlvbiB3aXRob3V0IGNyaXRpY2FsIGVycm9yc1xuICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLnRpdGxlID0gXCJJQVRJIFZhbGlkYXRpb24gSXNzdWVcIjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmRlc2NyaXB0aW9uID0gXCI8cD48Yj5cIi5jb25jYXQoZXJyLmVycm9yTnVtYmVyLCBcIiBlcnJvcnM8L2I+IGFuZCA8Yj5cIikuY29uY2F0KGVyci53YXJuaW5nTnVtYmVyLCBcIiB3YXJuaW5nczwvYj4gd2VyZSBmb3VuZC4gVmlldyBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSBlcnJvcnMvd2FybmluZ3MgYXQgdGhlIHRvcCBvZiB0aGUgYWN0aXZpdHkgcGFnZS48L3A+PHA+V2UgaGlnaGx5IHJlY29tbWVuZCB5b3UgZml4IHRoZXNlIGlzc3VlKHMpIGJlZm9yZSBwdWJsaXNoaW5nIHlvdXIgYWN0aXZpdHkgdG8gaW1wcm92ZSB0aGUgcXVhbGl0eSBhbmQgdXNlZnVsbmVzcyBvZiB5b3VyIGRhdGEuPC9wPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmljb24gPSBcIndhcm5pbmctZmlsbFwiO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuYWxlcnRTdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwdWJsaXNoU3RhdGU7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBmdW5jdGlvblxuICAgICAgICB2YXIgc3RlcFBsdXNPbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAocHVibGlzaFN0ZXAudmFsdWUgPj0gMCAmJiBwdWJsaXNoU3RlcC52YWx1ZSA8IDQpIHtcbiAgICAgICAgICAgICAgICBwdWJsaXNoU3RlcC52YWx1ZSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgc3RlcE1pbnVzT25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKHB1Ymxpc2hTdGVwLnZhbHVlID4gMCAmJiBwdWJsaXNoU3RlcC52YWx1ZSA8PSA0KSB7XG4gICAgICAgICAgICAgICAgcHVibGlzaFN0ZXAudmFsdWUtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgLy8gcmVhY3RpdmUgdmFyaWFibGUgZm9yIGVycm9ycyBudW1iZXJcbiAgICAgICAgdmFyIGVyciA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgY3JpdGljYWxOdW1iZXI6IDAsXG4gICAgICAgICAgICBlcnJvck51bWJlcjogMCxcbiAgICAgICAgICAgIHdhcm5pbmdOdW1iZXI6IDAsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjYWxsIGFwaSBmb3IgdmFsaWRhdGlvblxuICAgICAgICB2YXIgdmFsaWRhdG9yRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2FkZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgbG9hZGVyVGV4dC52YWx1ZSA9ICdWYWxpZGF0aW5nIEFjdGl2aXR5JztcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5wb3N0KFwiL2FjdGl2aXR5L1wiLmNvbmNhdChpZCwgXCIvdmFsaWRhdGVBY3Rpdml0eVwiKSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9IHJlc3BvbnNlLmVycm9ycztcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgndXBkYXRlUHVibGlzaEVycm9ycycsIGVycm9ycyk7XG4gICAgICAgICAgICAgICAgICAgIC8vaWRlbnRpZnkgZXJyb3IgdHlwZXNcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNyaXQgPSByZXNwb25zZS5zdW1tYXJ5LmNyaXRpY2FsO1xuICAgICAgICAgICAgICAgICAgICAoZXJyLmNyaXRpY2FsTnVtYmVyID0gY3JpdCksXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyLmVycm9yTnVtYmVyID0gcmVzcG9uc2Uuc3VtbWFyeS5lcnJvciksXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyLndhcm5pbmdOdW1iZXIgPSByZXNwb25zZS5zdW1tYXJ5Lndhcm5pbmcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3JpdCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGVwLnZhbHVlID0gMztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGVwLnZhbHVlID0gNDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0ZXAudmFsdWUgPSAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gY2FsbCBhcGkgZm9yIHB1Ymxpc2hpbmdcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMi5pbmplY3QpKCdlcnJvckRhdGEnKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNoZWNrIHB1Ymxpc2ggc3RhdHVzXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgY2hlY2tQdWJsaXNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9hY3Rpdml0aWVzL2NoZWNrcy1mb3ItYWN0aXZpdHktcHVibGlzaFwiKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoVmFsdWUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLm1lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEudHlwZSA9IHJlc3BvbnNlLnN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHB1Ymxpc2hGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gJ1B1Ymxpc2hpbmcgQWN0aXZpdHknO1xuICAgICAgICAgICAgcmVzZXRQdWJsaXNoU3RlcCgpO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LnBvc3QoXCIvYWN0aXZpdHkvXCIuY29uY2F0KGlkLCBcIi9wdWJsaXNoXCIpKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgndXBkYXRlVW5QdWJsaXNoZWQnLCByZXNwb25zZS5zdWNjZXNzKTtcbiAgICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgndXBkYXRlU2hvd1B1Ymxpc2hlZCcsICFyZXNwb25zZS5zdWNjZXNzKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gcHVibGlzaC1yZXB1Ymxpc2hcbiAgICAgICAgdmFyIHB1Ymxpc2hTdGF0dXMgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGxpbmtlZF90b19pYXRpOiBsaW5rZWRUb0lhdGkudmFsdWUsXG4gICAgICAgICAgICBzdGF0dXM6IHN0YXR1cy52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBidG5UZXh0ID0gKDAsIHZ1ZV8yLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAocHVibGlzaFN0YXR1cy5saW5rZWRfdG9faWF0aSAmJiBwdWJsaXNoU3RhdHVzLnN0YXR1cyA9PT0gJ2RyYWZ0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiAnUmVwdWJsaXNoJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFwdWJsaXNoU3RhdHVzLmxpbmtlZF90b19pYXRpICYmXG4gICAgICAgICAgICAgICAgcHVibGlzaFN0YXR1cy5zdGF0dXMgPT09ICdkcmFmdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1B1Ymxpc2gnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgcHJvcHM6IHByb3BzLCBsaW5rZWRUb0lhdGk6IGxpbmtlZFRvSWF0aSwgc3RhdHVzOiBzdGF0dXMsIGNvcmVDb21wbGV0ZWQ6IGNvcmVDb21wbGV0ZWQsIGFjdGl2aXR5SWQ6IGFjdGl2aXR5SWQsIHN0b3JlOiBzdG9yZSwgaWQ6IGlkLCBwdWJsaXNoVmFsdWU6IHB1Ymxpc2hWYWx1ZSwgcHVibGlzaFRvZ2dsZTogcHVibGlzaFRvZ2dsZSwgcHVibGlzaFN0ZXA6IHB1Ymxpc2hTdGVwLCBsb2FkZXI6IGxvYWRlciwgY29yZUVsZW1lbnRTdGF0dXM6IGNvcmVFbGVtZW50U3RhdHVzLCBsb2FkZXJUZXh0OiBsb2FkZXJUZXh0LCByZXNldFB1Ymxpc2hTdGVwOiByZXNldFB1Ymxpc2hTdGVwLCBwdWJsaXNoU3RhdGVDaGFuZ2U6IHB1Ymxpc2hTdGF0ZUNoYW5nZSwgc3RlcFBsdXNPbmU6IHN0ZXBQbHVzT25lLCBzdGVwTWludXNPbmU6IHN0ZXBNaW51c09uZSwgZXJyOiBlcnIsIHZhbGlkYXRvckZ1bmN0aW9uOiB2YWxpZGF0b3JGdW5jdGlvbiwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIGNoZWNrUHVibGlzaDogY2hlY2tQdWJsaXNoLCBwdWJsaXNoRnVuY3Rpb246IHB1Ymxpc2hGdW5jdGlvbiwgcHVibGlzaFN0YXR1czogcHVibGlzaFN0YXR1cywgYnRuVGV4dDogYnRuVGV4dCwgQnRuQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCwgTW9kYWw6IFBvcHVwTW9kYWxfdnVlXzEuZGVmYXVsdCwgTG9hZGVyOiBQcm9ncmVzc0xvYWRlcl92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vL2NvbXBvbmVudFxudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBQb3B1cE1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCIpKTtcbnZhciBQcm9ncmVzc0xvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWVcIikpO1xuLy8gVnVleCBTdG9yZVxudmFyIHNob3dfMSA9IHJlcXVpcmUoXCJTdG9yZS9hY3Rpdml0aWVzL3Nob3dcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVW5QdWJsaXNoQnV0dG9uJyxcbiAgICBwcm9wczoge1xuICAgICAgICB0eXBlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ3ByaW1hcnknIH0sXG4gICAgICAgIGFjdGl2aXR5SWQ6IHsgdHlwZTogTnVtYmVyLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgdmFyIGFjdGl2aXR5SWQgPSAoMCwgdnVlXzIudG9SZWZzKShwcm9wcykuYWN0aXZpdHlJZDtcbiAgICAgICAgLy8gdG9nZ2xlIHN0YXRlIGZvciBtb2RhbCBwb3B1cFxuICAgICAgICB2YXIgX2IgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgdW5wdWJsaXNoVmFsdWUgPSBfYlswXSwgdW5wdWJsaXNoVG9nZ2xlID0gX2JbMV07XG4gICAgICAgIC8vR2xvYmFsIFN0YXRlXG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBzaG93XzEuZGV0YWlsU3RvcmUpKCk7XG4gICAgICAgIC8vYWN0aXZpdHkgaWRcbiAgICAgICAgdmFyIGlkID0gYWN0aXZpdHlJZC52YWx1ZTtcbiAgICAgICAgLy8gZGlzcGxheS9oaWRlIHZhbGlkYXRvciBsb2FkZXJcbiAgICAgICAgdmFyIGxvYWRlciA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgdGV4dDogJ1BsZWFzZSBXYWl0JyxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNhbGwgYXBpIGZvciB1bnB1Ymxpc2hpbmdcbiAgICAgICAgdmFyIHRvYXN0TWVzc2FnZSA9ICgwLCB2dWVfMi5pbmplY3QpKCd0b2FzdE1lc3NhZ2UnKTtcbiAgICAgICAgdmFyIHVuUHVibGlzaEZ1bmN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGxvYWRlci50ZXh0ID0gJ1VucHVibGlzaGluZyc7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHQucG9zdChcIi9hY3Rpdml0eS9cIi5jb25jYXQoaWQsIFwiL3VucHVibGlzaFwiKSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgdG9hc3RNZXNzYWdlLm1lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS50eXBlID0gcmVzcG9uc2Uuc3VjY2VzcztcbiAgICAgICAgICAgICAgICB1bnB1Ymxpc2hUb2dnbGUoKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVVblB1Ymxpc2hlZCcsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVTaG93UHVibGlzaGVkJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgndXBkYXRlUHVibGlzaEVycm9ycycsIFtdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBwcm9wczogcHJvcHMsIGFjdGl2aXR5SWQ6IGFjdGl2aXR5SWQsIHVucHVibGlzaFZhbHVlOiB1bnB1Ymxpc2hWYWx1ZSwgdW5wdWJsaXNoVG9nZ2xlOiB1bnB1Ymxpc2hUb2dnbGUsIHN0b3JlOiBzdG9yZSwgaWQ6IGlkLCBsb2FkZXI6IGxvYWRlciwgdG9hc3RNZXNzYWdlOiB0b2FzdE1lc3NhZ2UsIHVuUHVibGlzaEZ1bmN0aW9uOiB1blB1Ymxpc2hGdW5jdGlvbiwgQnRuQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCwgTW9kYWw6IFBvcHVwTW9kYWxfdnVlXzEuZGVmYXVsdCwgTG9hZGVyOiBQcm9ncmVzc0xvYWRlcl92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbi8vY29tcG9uZW50XG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIFBvcHVwTW9kYWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvUG9wdXBNb2RhbC52dWVcIikpO1xuLy8gcHJvcHNcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdEZWxldGVBY3Rpb24nLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGl0ZW1JZDogeyB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBpdGVtVHlwZTogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgICAvLyB0b2dnbGUgc3RhdGUgZm9yIG1vZGFsIHBvcHVwXG4gICAgICAgIHZhciBfYiA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBkZWxldGVWYWx1ZSA9IF9iWzBdLCBkZWxldGVUb2dnbGUgPSBfYlsxXTtcbiAgICAgICAgdmFyIGRlbGV0ZUZ1bmN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKHByb3BzLml0ZW1UeXBlID09PSAncmVzdWx0JyB8fCBwcm9wcy5pdGVtVHlwZSA9PT0gJ3RyYW5zYWN0aW9uJykge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5kZWxldGUoXCJcIi5jb25jYXQocHJvcHMuaXRlbVR5cGUsIFwiL1wiKS5jb25jYXQocHJvcHMuaXRlbUlkKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb3BzLml0ZW1UeXBlID09PSAnaW5kaWNhdG9yJykge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5kZWxldGUoXCJcIi5jb25jYXQocHJvcHMuaXRlbVR5cGUsIFwiL1wiKS5jb25jYXQocHJvcHMuaXRlbUlkKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb3BzLml0ZW1UeXBlID09PSAncGVyaW9kJykge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5kZWxldGUoXCJcIi5jb25jYXQocHJvcHMuaXRlbVR5cGUsIFwiL1wiKS5jb25jYXQocHJvcHMuaXRlbUlkKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBwcm9wczogcHJvcHMsIGRlbGV0ZVZhbHVlOiBkZWxldGVWYWx1ZSwgZGVsZXRlVG9nZ2xlOiBkZWxldGVUb2dnbGUsIGRlbGV0ZUZ1bmN0aW9uOiBkZWxldGVGdW5jdGlvbiwgQnRuQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCwgTW9kYWw6IFBvcHVwTW9kYWxfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuLy9wcm9wc1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ0Vycm9yTGlzdHMnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGVycm9yczogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIHR5cGU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiBcImVycm9yXCIgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIC8vcHJvcHMgZGVzdHJ1Y3R1cmluZ1xuICAgICAgICB2YXIgX2IgPSAoMCwgdnVlXzIudG9SZWZzKShwcm9wcyksIHR5cGUgPSBfYi50eXBlLCBlcnJvcnMgPSBfYi5lcnJvcnM7XG4gICAgICAgIHZhciBlcnJvclR5cGUgPSAoMCwgdnVlXzIucmVmKShcIlwiKTtcbiAgICAgICAgLy8gY29sb3JzIGJhc2VkIG9uIHR5cGUgcHJvcHMgdmFsdWVcbiAgICAgICAgdmFyIGJnQ29sb3IgPSBcIlwiLCBpY29uQ29sb3IgPSBcIlwiO1xuICAgICAgICBzd2l0Y2ggKHR5cGUudmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJjcml0aWNhbFwiOlxuICAgICAgICAgICAgICAgIGJnQ29sb3IgPSBcImJnLWxhdmVuZGVyLTYwIGJvcmRlci1sYXZlbmRlci01MFwiO1xuICAgICAgICAgICAgICAgIGljb25Db2xvciA9IFwidGV4dC1sYXZlbmRlci01MFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIndhcm5pbmdzXCI6XG4gICAgICAgICAgICAgICAgYmdDb2xvciA9IFwiYmctZWdnc2hlbGwgYm9yZGVyLWNhbWVsLTUwXCI7XG4gICAgICAgICAgICAgICAgaWNvbkNvbG9yID0gXCJ0ZXh0LWNhbWVsLTUwXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJnQ29sb3IgPSBcImJnLXJvc2UgYm9yZGVyLWNyaW1zb24tNDBcIjtcbiAgICAgICAgICAgICAgICBpY29uQ29sb3IgPSBcInRleHQtY3JpbXNvbi00MFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b2dnbGUgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBhY2NvcmRpb25Ub2dnbGUgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRUYXJnZXQgPSBlLmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZXJyb3JzX19saXN0XCIpO1xuICAgICAgICAgICAgdmFyIGVsSGVpZ2h0ID0gKF9hID0gdGFyZ2V0ID09PSBudWxsIHx8IHRhcmdldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJ1bFwiKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIGlmICh0b2dnbGUudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSBcImhlaWdodDogXCIuY29uY2F0KGVsSGVpZ2h0LCBcInB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9IFwiaGVpZ2h0OiBcIi5jb25jYXQoZWxIZWlnaHQsIFwicHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJoZWlnaHQ6IGF1dG87XCI7XG4gICAgICAgICAgICAgICAgICAgIH0sIDYwMCk7XG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgdXBkYXRlRXJyb3JDb3VudE1lc3NhZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBlcnJvclR5cGUudmFsdWUgPVxuICAgICAgICAgICAgICAgIGVycm9ycy52YWx1ZS5sZW5ndGggKyBcIiBcIiArIHR5cGUudmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnZhbHVlLnNsaWNlKDEpO1xuICAgICAgICB9O1xuICAgICAgICB1cGRhdGVFcnJvckNvdW50TWVzc2FnZSgpO1xuICAgICAgICAoMCwgdnVlXzIud2F0Y2gpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGVycm9ycy52YWx1ZTsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdXBkYXRlRXJyb3JDb3VudE1lc3NhZ2UoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHByb3BzOiBwcm9wcywgdHlwZTogdHlwZSwgZXJyb3JzOiBlcnJvcnMsIGVycm9yVHlwZTogZXJyb3JUeXBlLCBiZ0NvbG9yOiBiZ0NvbG9yLCBpY29uQ29sb3I6IGljb25Db2xvciwgdG9nZ2xlOiB0b2dnbGUsIGFjY29yZGlvblRvZ2dsZTogYWNjb3JkaW9uVG9nZ2xlLCB1cGRhdGVFcnJvckNvdW50TWVzc2FnZTogdXBkYXRlRXJyb3JDb3VudE1lc3NhZ2UgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuLy8gY29tcG9uZW50c1xudmFyIExpbmtfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvYnV0dG9ucy9MaW5rLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0hhdmVOb3RBZGRlZFlldCcsXG4gICAgY29tcG9uZW50czogeyBCdG46IExpbmtfdnVlXzEuZGVmYXVsdCB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGxpbms6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJ0blRleHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vL2NvbXBvbmVudFxudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBQb3B1cE1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCIpKTtcbnZhciBQcm9ncmVzc0xvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWVcIikpO1xuLy8gcHVibGlzaC1yZXB1Ymxpc2hcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdPcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uJyxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgX2IgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgcHVibGlzaFZhbHVlID0gX2JbMF0sIHB1Ymxpc2hUb2dnbGUgPSBfYlsxXTtcbiAgICAgICAgdmFyIF9jID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIHVucHVibGlzaFZhbHVlID0gX2NbMF0sIHVucHVibGlzaFRvZ2dsZSA9IF9jWzFdO1xuICAgICAgICAvLyBkaXNwbGF5L2hpZGUgdmFsaWRhdG9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICAvLyBzdGF0ZSBmb3IgZmlyc3Qgc3RlcFxuICAgICAgICAvLyBkZXRlcm1pbmUgaWYgY29yZSBlbGVtZW50IGNvbXBsZXRlZCBvciBub3RcbiAgICAgICAgLy8gdHJ1ZSBmb3IgY29tcGxldGVkIGFuZCBmYWxzZSBmb3Igbm90IGNvbXBsZXRlZFxuICAgICAgICB2YXIgbWFuZGF0b3J5RWxlbWVudFN0YXR1cyA9ICgwLCB2dWVfMi5pbmplY3QpKFwibWFuZGF0b3J5Q29tcGxldGVkXCIpO1xuICAgICAgICAvLyBEeW5hbWljIHRleHQgZm9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyVGV4dCA9ICgwLCB2dWVfMi5yZWYpKFwiUGxlYXNlIFdhaXRcIik7XG4gICAgICAgIC8vIGNvbXB1dGVkIGZ1bmN0aW9uIHRvIGNoYW5nZSBjb250ZW50IG9mIG1vZGFsXG4gICAgICAgIHZhciBwdWJsaXNoU3RhdGVDaGFuZ2UgPSAoMCwgdnVlXzIuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBwdWJsaXNoU3RhdGUgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogXCJcIixcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICAgICAgICAgICAgICBpY29uOiBcIlwiLFxuICAgICAgICAgICAgICAgIGFsZXJ0U3RhdGU6IG1hbmRhdG9yeUVsZW1lbnRTdGF0dXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGRpZmZlcmVudCBjb250ZW50IGZvciBzdGVwIDEgYmFzZWQgb24gY29yZUVsZW1lbnQgc3RhdHVzXG4gICAgICAgICAgICBpZiAobWFuZGF0b3J5RWxlbWVudFN0YXR1cykge1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS50aXRsZSA9IFwiQ29yZSBFbGVtZW50cyBDb21wbGV0ZVwiO1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5kZXNjcmlwdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgIFwiQ29uZ3JhdHVsYXRpb25zISBBbGwgdGhlIGNvcmUgZWxlbWVudHMgYXJlIGNvbXBsZXRlLiBDb250aW51ZSB0byBwdWJsaXNoIHRoaXMgb3JnYW5pemF0aW9uLlwiO1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5pY29uID0gXCJ0aWNrXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUudGl0bGUgPSBcIkNvcmUgRWxlbWVudHMgbm90IGNvbXBsZXRlXCI7XG4gICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmRlc2NyaXB0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgXCI8cD5UaGVyZSBpcyBtaXNzaW5nIGRhdGEgaW4gc29tZSBvZiB0aGUgY29yZSBlbGVtZW50cy4gV2UgaGlnaGx5IHJlY29tbWVuZCB0aGF0IHlvdSBjb21wbGV0ZSB0aGVzZSBkYXRhIGZpZWxkcyB0byBoZWxwIGVuc3VyZSB5b3VyIGRhdGEgaXMgdXNlZnVsLjwvcD5cIjtcbiAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuaWNvbiA9IFwid2FybmluZy1maWxsXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaFN0YXRlO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY2FsbCBhcGkgZm9yIHB1Ymxpc2hpbmdcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMi5pbmplY3QpKFwidG9hc3REYXRhXCIpO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJlcnJvckRhdGFcIik7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjaGVjayBwdWJsaXNoIHN0YXR1c1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGNoZWNrUHVibGlzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvb3JnYW5pc2F0aW9uL2NoZWNrcy1mb3Itb3JnYW5pc2F0aW9uLXB1Ymxpc2hcIikudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFZhbHVlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS5tZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZTtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLnR5cGUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBwdWJsaXNoRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2FkZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgbG9hZGVyVGV4dC52YWx1ZSA9IFwiUHVibGlzaGluZ1wiO1xuICAgICAgICAgICAgcHVibGlzaFZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHQucG9zdChcIi9vcmdhbmlzYXRpb24vcHVibGlzaFwiKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBsb2FkZXIudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXR1cy5pc19wdWJsaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdHVzLnN0YXR1cyA9IFwicHVibGlzaGVkXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciB1blB1Ymxpc2hGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gXCJVbnB1Ymxpc2hpbmdcIjtcbiAgICAgICAgICAgIHVucHVibGlzaFZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHQucG9zdChcIi9vcmdhbmlzYXRpb24vdW5wdWJsaXNoXCIpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHJlc3BvbnNlLnN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBsb2FkZXIudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCAyMDAwKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdHVzLmlzX3B1Ymxpc2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgcHVibGlzaFN0YXR1cyA9ICgwLCB2dWVfMi5pbmplY3QpKFwicHVibGlzaFN0YXR1c1wiKTtcbiAgICAgICAgdmFyIGJ0blRleHQgPSAoMCwgdnVlXzIuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChwdWJsaXNoU3RhdHVzLmlzX3B1Ymxpc2hlZCAmJiBwdWJsaXNoU3RhdHVzLnN0YXR1cyA9PT0gXCJkcmFmdFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiUmVwdWJsaXNoXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJQdWJsaXNoXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBwdWJsaXNoVmFsdWU6IHB1Ymxpc2hWYWx1ZSwgcHVibGlzaFRvZ2dsZTogcHVibGlzaFRvZ2dsZSwgdW5wdWJsaXNoVmFsdWU6IHVucHVibGlzaFZhbHVlLCB1bnB1Ymxpc2hUb2dnbGU6IHVucHVibGlzaFRvZ2dsZSwgbG9hZGVyOiBsb2FkZXIsIG1hbmRhdG9yeUVsZW1lbnRTdGF0dXM6IG1hbmRhdG9yeUVsZW1lbnRTdGF0dXMsIGxvYWRlclRleHQ6IGxvYWRlclRleHQsIHB1Ymxpc2hTdGF0ZUNoYW5nZTogcHVibGlzaFN0YXRlQ2hhbmdlLCB0b2FzdERhdGE6IHRvYXN0RGF0YSwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIGNoZWNrUHVibGlzaDogY2hlY2tQdWJsaXNoLCBwdWJsaXNoRnVuY3Rpb246IHB1Ymxpc2hGdW5jdGlvbiwgdW5QdWJsaXNoRnVuY3Rpb246IHVuUHVibGlzaEZ1bmN0aW9uLCBwdWJsaXNoU3RhdHVzOiBwdWJsaXNoU3RhdHVzLCBidG5UZXh0OiBidG5UZXh0LCBCdG5Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0LCBNb2RhbDogUG9wdXBNb2RhbF92dWVfMS5kZWZhdWx0LCBMb2FkZXI6IFByb2dyZXNzTG9hZGVyX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuLy8gY29tcG9uZW50c1xudmFyIEJyZWFkQ3J1bWJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnJlYWRDcnVtYi52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdQYWdlVGl0bGUnLFxuICAgIGNvbXBvbmVudHM6IHsgQnJlYWRjcnVtYjogQnJlYWRDcnVtYl92dWVfMS5kZWZhdWx0IH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYnJlYWRjcnVtYkRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJhY2tMaW5rOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1Byb2dyZXNzTG9hZGVyJyxcbiAgICBwcm9wczoge1xuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2hhbmdlVGV4dDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICAoMCwgdnVlXzIub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJvdmVyZmxvdy15LWhpZGRlblwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMi5vblVubW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwib3ZlcmZsb3cteS1oaWRkZW5cIik7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0ge307XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbi8vIGNvbXBvbmVudHNcbnZhciBFcnJvckxpc3RzX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL0Vycm9yTGlzdHMudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdTdGlja3lFcnJvcnMnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGVycm9yRGF0YTogeyB0eXBlOiBBcnJheSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIC8vIHRvZ2dsZSBpc3N1ZXNcbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIGVycm9yVmFsdWUgPSBfYlswXSwgZXJyb3JUb2dnbGUgPSBfYlsxXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGxpc3Qgb2YgZXJyb3JzXG4gICAgICAgICAqKi9cbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMi50b1JlZnMpKHByb3BzKS5lcnJvckRhdGE7XG4gICAgICAgIHZhciB0ZW1wRGF0YSA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgICAgIGNyaXRpY2FsOiBbXSxcbiAgICAgICAgICAgIHdhcm5pbmdzOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB1cGRhdGVUZW1wTWVzc2FnZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBlcnJvckRhdGFQcm9wcyA9IGVycm9yRGF0YS52YWx1ZTtcbiAgICAgICAgICAgIGZvciAodmFyIGRhdGEgaW4gdGVtcERhdGEpIHtcbiAgICAgICAgICAgICAgICB0ZW1wRGF0YVtkYXRhXSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBlcnJvckRhdGFQcm9wc18xID0gZXJyb3JEYXRhUHJvcHM7IF9pIDwgZXJyb3JEYXRhUHJvcHNfMS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGVycm9yRGF0YVByb3BzXzFbX2ldO1xuICAgICAgICAgICAgICAgIHZhciBzZXZlcml0eSA9IGRhdGEuc2V2ZXJpdHk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChzZXZlcml0eSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiY3JpdGljYWxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhLmNyaXRpY2FsLnB1c2goZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZXJyb3JcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhLmVycm9ycy5wdXNoKGRhdGEubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIndhcm5pbmdcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhLndhcm5pbmdzLnB1c2goZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdXBkYXRlVGVtcE1lc3NhZ2UoKTtcbiAgICAgICAgKDAsIHZ1ZV8yLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBlcnJvckRhdGEudmFsdWU7IH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHVwZGF0ZVRlbXBNZXNzYWdlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBwcm9wczogcHJvcHMsIGVycm9yVmFsdWU6IGVycm9yVmFsdWUsIGVycm9yVG9nZ2xlOiBlcnJvclRvZ2dsZSwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIHRlbXBEYXRhOiB0ZW1wRGF0YSwgdXBkYXRlVGVtcE1lc3NhZ2U6IHVwZGF0ZVRlbXBNZXNzYWdlLCBFcnJvckxpc3RzOiBFcnJvckxpc3RzX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdFbGVtZW50U3RhdHVzJyxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7IHR5cGU6IEJvb2xlYW4sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMi50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgY29sb3IgPSBkYXRhLnZhbHVlID8gJ3RleHQtc3ByaW5nLTUwJyA6ICd0ZXh0LWNyaW1zb24tNTAnLCB0ZXh0ID0gZGF0YS52YWx1ZSA/ICdjb21wbGV0ZWQnIDogJ25vdCBjb21wbGV0ZWQnO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBwcm9wczogcHJvcHMsIGRhdGE6IGRhdGEsIGNvbG9yOiBjb2xvciwgdGV4dDogdGV4dCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUHJldmlvdXNseVB1Ymxpc2hlZCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdGV4dDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICdQcmV2aW91c2x5IFB1Ymxpc2hlZCBvbiBJQVRJJyB9LFxuICAgICAgICBpY29uOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ2FwcHJvdmVkLWNsb3VkJyB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHt9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbXVsdGlzZWxlY3RfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQHZ1ZWZvcm0vbXVsdGlzZWxlY3RcIikpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbnZhciBMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvTG9hZGVyLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xuLyoqXG4gKiBQcm9wc1xuICovXG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnQWN0aXZpdHlEZWZhdWx0VmFsdWUnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGN1cnJlbmNpZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFuZ3VhZ2VzOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SWQ6IHsgdHlwZTogTnVtYmVyLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBidWRnZXROb3RQcm92aWRlZDoge1xuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBodW1hbml0YXJpYW46IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWFjdGl2ZSB2YXJpYWJsZXNcbiAgICAgICAgICovXG4gICAgICAgIHZhciBkZWZhdWx0VmFsdWVzID0gKDAsIHZ1ZV8yLnJlZikoe1xuICAgICAgICAgICAgYnVkZ2V0X25vdF9wcm92aWRlZDogJycsXG4gICAgICAgICAgICBkZWZhdWx0X2N1cnJlbmN5OiAnJyxcbiAgICAgICAgICAgIGRlZmF1bHRfbGFuZ3VhZ2U6ICcnLFxuICAgICAgICAgICAgaGllcmFyY2h5OiAnJyxcbiAgICAgICAgICAgIGh1bWFuaXRhcmlhbjogJycsXG4gICAgICAgIH0pLCBkZWZhdWx0RXJyb3JzID0gKDAsIHZ1ZV8yLnJlZikoe1xuICAgICAgICAgICAgYnVkZ2V0X25vdF9wcm92aWRlZDogW10sXG4gICAgICAgICAgICBkZWZhdWx0X2N1cnJlbmN5OiBbXSxcbiAgICAgICAgICAgIGRlZmF1bHRfbGFuZ3VhZ2U6IFtdLFxuICAgICAgICAgICAgaGllcmFyY2h5OiBbXSxcbiAgICAgICAgICAgIGh1bWFuaXRhcmlhbjogW10sXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZXJyb3JSZXNldCA9IGRlZmF1bHRFcnJvcnMudmFsdWU7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbiBNb3VudGVkXG4gICAgICAgICAqL1xuICAgICAgICAoMCwgdnVlXzIub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSwgZGVmYXVsdERhdGE7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6IHJldHVybiBbNCAvKnlpZWxkKi8sIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvYWN0aXZpdHkvXCIuY29uY2F0KHByb3BzLmFjdGl2aXR5SWQsIFwiL2RlZmF1bHRfdmFsdWVzL2RhdGFcIikpXTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IChfYS5zZW50KCkpLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0RGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZXMudmFsdWUgPSBkZWZhdWx0RGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogUmVmXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgbG9hZGVyVmlzaWJpbGl0eSA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKSwgdG9hc3RWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpLCB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIucmVmKSgnJyksIHRvYXN0VHlwZSA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN1Ym1pdCBmb3JtXG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBzdWJtaXRGb3JtKCkge1xuICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBkZWZhdWx0RXJyb3JzLnZhbHVlID0gZXJyb3JSZXNldDtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wdXQoXCIvYWN0aXZpdHkvXCIuY29uY2F0KHByb3BzLmFjdGl2aXR5SWQsIFwiL2RlZmF1bHRfdmFsdWVzXCIpLCBkZWZhdWx0VmFsdWVzLnZhbHVlKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuICh0b2FzdFZpc2liaWxpdHkudmFsdWUgPSBmYWxzZSk7IH0sIDUwMDApO1xuICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS52YWx1ZSA9IHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRvYXN0VHlwZS52YWx1ZSA9IHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgZGVmYXVsdEVycm9ycy52YWx1ZSA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBkZWZhdWx0RXJyb3JzLnZhbHVlKSwgKF9hID0gZXJyb3IucmVzcG9uc2UuZGF0YSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVycm9ycyk7XG4gICAgICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UudmFsdWUgPSAoX2IgPSBlcnJvci5yZXNwb25zZS5kYXRhKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0b2FzdFR5cGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBwcm9wczogcHJvcHMsIGRlZmF1bHRWYWx1ZXM6IGRlZmF1bHRWYWx1ZXMsIGRlZmF1bHRFcnJvcnM6IGRlZmF1bHRFcnJvcnMsIGVycm9yUmVzZXQ6IGVycm9yUmVzZXQsIGxvYWRlclZpc2liaWxpdHk6IGxvYWRlclZpc2liaWxpdHksIHRvYXN0VmlzaWJpbGl0eTogdG9hc3RWaXNpYmlsaXR5LCB0b2FzdE1lc3NhZ2U6IHRvYXN0TWVzc2FnZSwgdG9hc3RUeXBlOiB0b2FzdFR5cGUsIHN1Ym1pdEZvcm06IHN1Ym1pdEZvcm0sIE11bHRpc2VsZWN0OiBtdWx0aXNlbGVjdF8xLmRlZmF1bHQsIExvYWRlcjogTG9hZGVyX3Z1ZV8xLmRlZmF1bHQsIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbi8vIGNvbXBvbmVudHNcbnZhciBJbmRleF8xID0gcmVxdWlyZShcIi4vZWxlbWVudHMvSW5kZXhcIik7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIikpO1xudmFyIFJhZGlhbFByb2dyZXNzQmFyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZVwiKSk7XG52YXIgUHVibGlzaEJ1dHRvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL1B1Ymxpc2hCdXR0b24udnVlXCIpKTtcbnZhciBVblB1Ymxpc2hCdXR0b25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvYnV0dG9ucy9VblB1Ymxpc2hCdXR0b24udnVlXCIpKTtcbnZhciBEZWxldGVCdXR0b25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvYnV0dG9ucy9EZWxldGVCdXR0b24udnVlXCIpKTtcbnZhciBTdGlja3lFcnJvcnNfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvU3RpY2t5RXJyb3JzLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xudmFyIEVycm9yUG9wVXBfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvRXJyb3JQb3BVcC52dWVcIikpO1xuLy8gQWN0aXZpdHkgQ29tcG9uZW50c1xudmFyIEFjdGl2aXRpZXNFbGVtZW50c192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQWN0aXZpdHkvcGFydGlhbHMvQWN0aXZpdGllc0VsZW1lbnRzLnZ1ZVwiKSk7XG52YXIgQWN0aXZpdHlFbGVtZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJBY3Rpdml0eS9wYXJ0aWFscy9BY3Rpdml0eUVsZW1lbnQudnVlXCIpKTtcbnZhciBQcmV2aW91c2x5UHVibGlzaGVkX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3N0YXR1cy9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZVwiKSk7XG4vLyBWdWV4IFN0b3JlXG52YXIgc2hvd18xID0gcmVxdWlyZShcIlN0b3JlL2FjdGl2aXRpZXMvc2hvd1wiKTtcbnZhciBpbmRleF8xID0gcmVxdWlyZShcIlN0b3JlL2FjdGl2aXRpZXMvaW5kZXhcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBIb3ZlclRleHQ6IEhvdmVyVGV4dF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBQcm9ncmVzc0JhcjogUmFkaWFsUHJvZ3Jlc3NCYXJfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgRWxlbWVudHM6IEFjdGl2aXRpZXNFbGVtZW50c192dWVfMS5kZWZhdWx0LFxuICAgICAgICBBY3Rpdml0eUVsZW1lbnQ6IEFjdGl2aXR5RWxlbWVudF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBSZXN1bHQ6IEluZGV4XzEuUmVzdWx0LFxuICAgICAgICBQdWJsaXNoOiBQdWJsaXNoQnV0dG9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEVycm9yczogU3RpY2t5RXJyb3JzX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFVuUHVibGlzaDogVW5QdWJsaXNoQnV0dG9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIERlbGV0ZUJ1dHRvbjogRGVsZXRlQnV0dG9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFByZXZpb3VzbHlQdWJsaXNoZWQ6IFByZXZpb3VzbHlQdWJsaXNoZWRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgRXJyb3JQb3BVcDogRXJyb3JQb3BVcF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBlbGVtZW50czoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvZ3Jlc3M6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2FzdDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdHVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgICAgdHlwZTogQXJyYXksXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNhY3Rpb25zOiB7XG4gICAgICAgICAgICB0eXBlOiBBcnJheSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjb3JlQ29tcGxldGVkOiB7XG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGlhdGlWYWxpZGF0b3JSZXNwb25zZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBfYSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgdHlwZXMgPSBfYS50eXBlcywgY29yZUNvbXBsZXRlZCA9IF9hLmNvcmVDb21wbGV0ZWQ7XG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBzaG93XzEuZGV0YWlsU3RvcmUpKCk7XG4gICAgICAgIHZhciBpbmRleFN0b3JlID0gKDAsIGluZGV4XzEudXNlU3RvcmUpKCk7XG4gICAgICAgIHZhciBzaG93U2lkZWJhciA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIHBvc2l0aW9uWSA9ICgwLCB2dWVfMS5yZWYpKDApO1xuICAgICAgICB2YXIgc2NyZWVuV2lkdGggPSAoMCwgdnVlXzEucmVmKSgwKTtcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHNob3dTaWRlYmFyO1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9yIG1vZGFsIHBvcHVwIGNvbXBsZXRlZFxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIGRlbGV0ZVZhbHVlID0gX2JbMF0sIGRlbGV0ZVRvZ2dsZSA9IF9iWzFdO1xuICAgICAgICB2YXIgX2MgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgZG93bmxvYWRWYWx1ZSA9IF9jWzBdLCBkb3dubG9hZFRvZ2dsZSA9IF9jWzFdO1xuICAgICAgICB2YXIgdG9nZ2xlU2lkZWJhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNob3dTaWRlYmFyLnZhbHVlID0gIXNob3dTaWRlYmFyLnZhbHVlO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgaGFuZGxlU2Nyb2xsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcG9zaXRpb25ZLnZhbHVlID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBpc3RvcFZpc2libGUgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvblkudmFsdWUgPT09IDA7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgd2lkdGggPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5vblVubW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgY2FsY1dpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNjcmVlbldpZHRoLnZhbHVlID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICAgICAgaWYgKHByb3BzLnRvYXN0Lm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBwcm9wcy50b2FzdC50eXBlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2FsY1dpZHRoID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBzY3JlZW5XaWR0aC52YWx1ZSA9IGV2ZW50LnRhcmdldC5pbm5lcldpZHRoO1xuICAgICAgICAgICAgaWYgKHNjcmVlbldpZHRoLnZhbHVlID4gMTAyNCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNob3dTaWRlYmFyLnZhbHVlICYmXG4gICAgICAgICAgICAgICAgICAgIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgICgwLCB2dWVfMS53YXRjaCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc2hvd1NpZGViYXIudmFsdWU7IH0sIGZ1bmN0aW9uIChzaWRlYmFyKSB7XG4gICAgICAgICAgICBpZiAoc2lkZWJhcikge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS53YXRjaCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gdG9hc3REYXRhLnZpc2liaWxpdHk7IH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWdub3JlVG9hc3RVcGRhdGUoKTtcbiAgICAgICAgICAgIH0sIDEwMDAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHcm91cGluZyBhbGwgdGhlIGRhdGEncyBmb3Igc2Nyb2xsIGZ1bmN0aW9uXG4gICAgICAgICAqXG4gICAgICAgICAqIHRoaXMgZGF0YSBpcyBjcmVhdGVkIHVzaW5nIHByb3BzLmVsZW1lbnRfZ3JvdXAgYW5kIHByb3BzLmFjdGl2aXR5XG4gICAgICAgICAqL1xuICAgICAgICB2YXIgX2QgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcyksIGdyb3VwcyA9IF9kLmdyb3VwcywgYWN0aXZpdHkgPSBfZC5hY3Rpdml0eSwgZWxlbWVudHMgPSBfZC5lbGVtZW50cywgc3RhdHVzID0gX2Quc3RhdHVzLCB0cmFuc2FjdGlvbnMgPSBfZC50cmFuc2FjdGlvbnMsIGdyb3VwZWREYXRhID0gZ3JvdXBzLnZhbHVlLCBhY3Rpdml0eVByb3BzID0gYWN0aXZpdHkudmFsdWUsIGFjdGl2aXRpZXMgPSBncm91cHMudmFsdWUsIGVsZW1lbnRQcm9wcyA9IGVsZW1lbnRzLnZhbHVlLCBzdGF0dXNQcm9wcyA9IHN0YXR1cy52YWx1ZSwgdHJhbnNhY3Rpb25Qcm9wcyA9IHRyYW5zYWN0aW9ucy52YWx1ZTtcbiAgICAgICAgdmFyIHJlc3VsdHMgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykucmVzdWx0cztcbiAgICAgICAgYWN0aXZpdHlQcm9wcy5yZXN1bHQgPSByZXN1bHRzLnZhbHVlO1xuICAgICAgICBhY3Rpdml0eVByb3BzLnRyYW5zYWN0aW9ucyA9IHRyYW5zYWN0aW9uUHJvcHM7XG4gICAgICAgIC8vIGdlbmVyYXRpbmcgYXZhaWxhYmxlIGVsZW1lbnRzXG4gICAgICAgIE9iamVjdC5rZXlzKGFjdGl2aXRpZXMpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICB2YXIgZmxhZyA9IGZhbHNlO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoYWN0aXZpdGllc1trZXldWydlbGVtZW50cyddKS5tYXAoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhY3Rpdml0eVByb3BzW2tdID09PSAnbnVtYmVyJyB8fFxuICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGFjdGl2aXR5UHJvcHNba10gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eVByb3BzW2tdICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhhY3Rpdml0eVByb3BzW2tdKS5sZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2aXRpZXNba2V5XVsnZWxlbWVudHMnXVtrXVsnY29udGVudCddID0gYWN0aXZpdHlQcm9wc1trXTtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZpdGllc1trZXldWydlbGVtZW50cyddW2tdWydob3Zlcl90ZXh0J10gPVxuICAgICAgICAgICAgICAgICAgICAgICAgKF9hID0gZWxlbWVudFByb3BzW2tdWydob3Zlcl90ZXh0J10pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICBmbGFnID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBhY3Rpdml0aWVzW2tleV1ba107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZmxhZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgYWN0aXZpdGllc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gZ2VuZXJhdGluZyBhdmFpbGFibGUgY2F0ZWdvcmllcyBvZiBlbGVtZW50c1xuICAgICAgICBPYmplY3Qua2V5cyhncm91cGVkRGF0YSkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWN0aXZpdGllcywga2V5KSkge1xuICAgICAgICAgICAgICAgIGdyb3VwZWREYXRhW2tleV1bJ3N0YXR1cyddID0gJ2VuYWJsZWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBlZERhdGFba2V5XVsnc3RhdHVzJ10gPSAnZGlzYWJsZWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdyb3VwaW5nIGFsbCBlbGVtZW50cyBhbmQgdGhlaXJzIGNvbXBsZXRlZCBzdGF0dXNcbiAgICAgICAgICpcbiAgICAgICAgICogY29tYmluaW5nIHByb3BzLmVsZW1lbnRzIGFuZCBwcm9wcy5zdGF0dXNcbiAgICAgICAgICpcbiAgICAgICAgICogQHJldHVybnMgb2JqZWN0XG4gICAgICAgICAqL1xuICAgICAgICBPYmplY3Qua2V5cyhlbGVtZW50UHJvcHMpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgZWxlbWVudFByb3BzW2tleV1bJ2NvbXBsZXRlZCddID0gKF9hID0gc3RhdHVzUHJvcHNba2V5XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2U7XG4gICAgICAgICAgICBlbGVtZW50UHJvcHNba2V5XVsnbm90X2NvbXBsZXRlZCddID0gISgoX2IgPSBzdGF0dXNQcm9wc1trZXldKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBmYWxzZSk7XG4gICAgICAgICAgICBlbGVtZW50UHJvcHNba2V5XVsnaGFzX2RhdGEnXSA9IDA7XG4gICAgICAgICAgICBpZiAoa2V5IGluIGFjdGl2aXR5UHJvcHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHR5cGVvZiBhY3Rpdml0eVByb3BzW2tleV0gPT09ICdvYmplY3QnIHx8XG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiBhY3Rpdml0eVByb3BzW2tleV0gPT09ICdudW1iZXInKSAmJlxuICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eVByb3BzW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGFjdGl2aXR5UHJvcHNba2V5XSkubGVuZ3RoID4gMCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlQcm9wc1trZXldLnRvU3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRQcm9wc1trZXldWydoYXNfZGF0YSddID0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaW5kaW5nIGN1cnJlbnQgbGFuZ3VhZ2UgLSBhY3Rpdml0eSB0aXRsZVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIHBhZ2VUaXRsZSA9ICcnO1xuICAgICAgICB2YXIgZm91bmQgPSBhY3Rpdml0eVByb3BzLnRpdGxlLmZpbmQoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhciBjdXJyZW50TGFuZ3VhZ2UgPSAnZW4nO1xuICAgICAgICAgICAgcmV0dXJuIGUubGFuZ3VhZ2UgPT09IGN1cnJlbnRMYW5ndWFnZTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNhbGxiYWNrIGlmIGxhbmd1YWdlIG5vdCBhdmFpbGFibGUgaW4gZGF0YVxuICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgIHBhZ2VUaXRsZSA9IGZvdW5kLm5hcnJhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHBhZ2VUaXRsZSA9IGFjdGl2aXR5UHJvcHMudGl0bGVbMF0ubmFycmF0aXZlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZvcm1hdFRpdGxlKHRpdGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGl0bGUucmVwbGFjZSgvXy9naSwgJyAnKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdG9hc3RNZXNzYWdlID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGlnbm9yZVVwZGF0ZXMgPSAoMCwgY29yZV8xLndhdGNoSWdub3JhYmxlKSh0b2FzdERhdGEsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSwge1xuICAgICAgICAgICAgZmx1c2g6ICdzeW5jJyxcbiAgICAgICAgfSkuaWdub3JlVXBkYXRlcztcbiAgICAgICAgdmFyIGlnbm9yZVRvYXN0VXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWdub3JlVXBkYXRlcyhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSAnJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgcHVibGlzaFN0YXR1cyA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgbGlua2VkX3RvX2lhdGk6IGFjdGl2aXR5UHJvcHMubGlua2VkX3RvX2lhdGksXG4gICAgICAgICAgICBzdGF0dXM6IGFjdGl2aXR5UHJvcHMuc3RhdHVzLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gdnVlIHByb3ZpZGVzXG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgndHlwZXMnLCB0eXBlcy52YWx1ZSk7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgnY29yZUNvbXBsZXRlZCcsIGNvcmVDb21wbGV0ZWQudmFsdWUpO1xuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3RvYXN0TWVzc2FnZScsIHRvYXN0TWVzc2FnZSk7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgndG9hc3REYXRhJywgdG9hc3REYXRhKTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdlcnJvckRhdGEnLCBlcnJvckRhdGEpO1xuICAgICAgICBpbmRleFN0b3JlLmRpc3BhdGNoKCd1cGRhdGVTZWxlY3RlZEFjdGl2aXRpZXMnLCBbYWN0aXZpdHkudmFsdWUuaWRdKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnWW91ciBBY3Rpdml0aWVzJyxcbiAgICAgICAgICAgICAgICBsaW5rOiAnL2FjdGl2aXRpZXMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogcGFnZVRpdGxlLFxuICAgICAgICAgICAgICAgIGxpbms6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqICBHbG9iYWwgU3RhdGVcbiAgICAgICAgICovXG4gICAgICAgIHZhciBpYXRpVmFsaWRhdG9yUmVzcG9uc2UgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuaWF0aVZhbGlkYXRvclJlc3BvbnNlO1xuICAgICAgICB2YXIgdmFsaWRhdGlvblJlc3VsdCA9IGlhdGlWYWxpZGF0b3JSZXNwb25zZS52YWx1ZTtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQgJiYgdmFsaWRhdGlvblJlc3VsdC5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVB1Ymxpc2hFcnJvcnMnLCB2YWxpZGF0aW9uUmVzdWx0LmVycm9ycyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHB1Ymxpc2hTdGF0dXMubGlua2VkX3RvX2lhdGkpIHtcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVVblB1Ymxpc2hlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVVuUHVibGlzaGVkJywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKHB1Ymxpc2hTdGF0dXMubGlua2VkX3RvX2lhdGkgJiYgcHVibGlzaFN0YXR1cy5zdGF0dXMgPT09ICdwdWJsaXNoZWQnKSkge1xuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVNob3dQdWJsaXNoZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVTaG93UHVibGlzaGVkJywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBncm91cGVkRGF0YTogZ3JvdXBlZERhdGEsXG4gICAgICAgICAgICBhY3Rpdml0aWVzOiBhY3Rpdml0aWVzLFxuICAgICAgICAgICAgZGVsZXRlVmFsdWU6IGRlbGV0ZVZhbHVlLFxuICAgICAgICAgICAgZGVsZXRlVG9nZ2xlOiBkZWxldGVUb2dnbGUsXG4gICAgICAgICAgICBkb3dubG9hZFZhbHVlOiBkb3dubG9hZFZhbHVlLFxuICAgICAgICAgICAgZG93bmxvYWRUb2dnbGU6IGRvd25sb2FkVG9nZ2xlLFxuICAgICAgICAgICAgdG9hc3REYXRhOiB0b2FzdERhdGEsXG4gICAgICAgICAgICBlbGVtZW50UHJvcHM6IGVsZW1lbnRQcm9wcyxcbiAgICAgICAgICAgIHByb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIGZvcm1hdFRpdGxlOiBmb3JtYXRUaXRsZSxcbiAgICAgICAgICAgIHBhZ2VUaXRsZTogcGFnZVRpdGxlLFxuICAgICAgICAgICAgdG9hc3RNZXNzYWdlOiB0b2FzdE1lc3NhZ2UsXG4gICAgICAgICAgICBwdWJsaXNoU3RhdHVzOiBwdWJsaXNoU3RhdHVzLFxuICAgICAgICAgICAgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhLFxuICAgICAgICAgICAgc3RvcmU6IHN0b3JlLFxuICAgICAgICAgICAgYWN0aXZpdHlQcm9wczogYWN0aXZpdHlQcm9wcyxcbiAgICAgICAgICAgIGVycm9yRGF0YTogZXJyb3JEYXRhLFxuICAgICAgICAgICAgc2hvd1NpZGViYXI6IHNob3dTaWRlYmFyLFxuICAgICAgICAgICAgdG9nZ2xlU2lkZWJhcjogdG9nZ2xlU2lkZWJhcixcbiAgICAgICAgICAgIGlzdG9wVmlzaWJsZTogaXN0b3BWaXNpYmxlLFxuICAgICAgICAgICAgc2NyZWVuV2lkdGg6IHNjcmVlbldpZHRoLFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgRW1wdHlBY3Rpdml0eV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9wYXJ0aWFscy9FbXB0eUFjdGl2aXR5LnZ1ZVwiKSk7XG52YXIgVGFibGVMYXlvdXRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vcGFydGlhbHMvVGFibGVMYXlvdXQudnVlXCIpKTtcbnZhciBUYWJsZVBhZ2luYXRpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZVwiKSk7XG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3BhcnRpYWxzL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBFcnJvck1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvRXJyb3JNZXNzYWdlLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FjdGl2aXR5Q29tcG9uZW50JyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEVtcHR5QWN0aXZpdHk6IEVtcHR5QWN0aXZpdHlfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnZVRpdGxlOiBQYWdlVGl0bGVfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnaW5hdGlvbjogVGFibGVQYWdpbmF0aW9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRhYmxlTGF5b3V0OiBUYWJsZUxheW91dF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBMb2FkZXI6IExvYWRlcl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBFcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZV92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgYWN0aXZpdGllcyA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgaXNMb2FkaW5nID0gKDAsIHZ1ZV8xLnJlZikodHJ1ZSk7XG4gICAgICAgIHZhciBjdXJyZW50VVJMID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIHZhciBlbmRwb2ludCA9ICcnO1xuICAgICAgICB2YXIgc2hvd0VtcHR5VGVtcGxhdGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgICAgICAgdmFyIHF1ZXJ5U3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICAgICAgICAgIGVuZHBvaW50ID0gXCIvYWN0aXZpdGllcy9wYWdlXCIuY29uY2F0KHF1ZXJ5U3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVuZHBvaW50ID0gXCIvYWN0aXZpdGllcy9wYWdlXCI7XG4gICAgICAgICAgICBzaG93RW1wdHlUZW1wbGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy9mb3Igc2Vzc2lvbiBtZXNzYWdlXG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBmb3IgcHVibGlzaCBidXR0b25cbiAgICAgICAgdmFyIHRvYXN0TWVzc2FnZSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChwcm9wcy50b2FzdC5tZXNzYWdlICE9PSAnJykge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS50eXBlID0gcHJvcHMudG9hc3QudHlwZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSBwcm9wcy50b2FzdC5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoZW5kcG9pbnQpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpdml0aWVzLCByZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG93RW1wdHlUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNFbXB0eS52YWx1ZSA9ICFyZXNwb25zZS5kYXRhLmRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pOyB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiB0b2FzdERhdGEudmlzaWJpbGl0eTsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZ25vcmVUb2FzdFVwZGF0ZSgpO1xuICAgICAgICAgICAgfSwgMTAwMDApO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHN0YXRlID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBzaG93QnV0dG9uczogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXNFbXB0eSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIHNob3dPckhpZGUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgaWYgKGRhdGEgPT09IHZvaWQgMCkgeyBkYXRhID0gQXJyYXk7IH1cbiAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5zaG93QnV0dG9ucyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5zaG93QnV0dG9ucyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBmZXRjaEFjdGl2aXRpZXMoYWN0aXZlX3BhZ2UpIHtcbiAgICAgICAgICAgIHZhciBxdWVyeVN0cmluZyA9ICcnO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoJy9hY3Rpdml0aWVzL3BhZ2UvJyArIGFjdGl2ZV9wYWdlICsgcXVlcnlTdHJpbmcpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYWN0aXZpdGllcywgcmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgaXNFbXB0eS52YWx1ZSA9ICFyZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlnbm9yZVVwZGF0ZXMgPSAoMCwgY29yZV8xLndhdGNoSWdub3JhYmxlKSh0b2FzdERhdGEsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSwge1xuICAgICAgICAgICAgZmx1c2g6ICdzeW5jJyxcbiAgICAgICAgfSkuaWdub3JlVXBkYXRlcztcbiAgICAgICAgdmFyIGlnbm9yZVRvYXN0VXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWdub3JlVXBkYXRlcyhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSAnJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvLyBmb3IgcmVmcmVzaCB0b2FzdCBtZXNzYWdlXG4gICAgICAgIC8vIGxldCByZWZyZXNoVG9hc3RNc2cgPSByZWYoZmFsc2UpO1xuICAgICAgICB2YXIgcmVmcmVzaFRvYXN0TXNnID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIHJlZnJlc2hNZXNzYWdlVHlwZTogdHJ1ZSxcbiAgICAgICAgICAgIHJlZnJlc2hNZXNzYWdlOiAnQWN0aXZpdHkgaGFzIGJlZW4gcHVibGlzaGVkIHN1Y2Nlc3NmdWxseSwgcmVmcmVzaCB0byBzZWUgY2hhbmdlcycsXG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogUHJvdmlkZVxuICAgICAgICAgKi9cbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCd0b2FzdE1lc3NhZ2UnLCB0b2FzdE1lc3NhZ2UpO1xuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3RvYXN0RGF0YScsIHRvYXN0RGF0YSk7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgnZXJyb3JEYXRhJywgZXJyb3JEYXRhKTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdyZWZyZXNoVG9hc3RNc2cnLCByZWZyZXNoVG9hc3RNc2cpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWN0aXZpdGllczogYWN0aXZpdGllcyxcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIGlzRW1wdHk6IGlzRW1wdHksXG4gICAgICAgICAgICBpc0xvYWRpbmc6IGlzTG9hZGluZyxcbiAgICAgICAgICAgIHNob3dPckhpZGU6IHNob3dPckhpZGUsXG4gICAgICAgICAgICBmZXRjaEFjdGl2aXRpZXM6IGZldGNoQWN0aXZpdGllcyxcbiAgICAgICAgICAgIHRvYXN0RGF0YTogdG9hc3REYXRhLFxuICAgICAgICAgICAgdG9hc3RNZXNzYWdlOiB0b2FzdE1lc3NhZ2UsXG4gICAgICAgICAgICByZWZyZXNoVG9hc3RNc2c6IHJlZnJlc2hUb2FzdE1zZyxcbiAgICAgICAgICAgIGVycm9yRGF0YTogZXJyb3JEYXRhLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgUG9wdXBNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZVwiKSk7XG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIG11bHRpc2VsZWN0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkB2dWVmb3JtL211bHRpc2VsZWN0XCIpKTtcbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG52YXIgTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jb21wb25lbnRzL0xvYWRlci52dWVcIikpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIE1vZGFsOiBQb3B1cE1vZGFsX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEJ0bkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIE11bHRpc2VsZWN0OiBtdWx0aXNlbGVjdF8xLmRlZmF1bHQsXG4gICAgICAgIExvYWRlcjogTG9hZGVyX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBtb2RhbFZhbHVlOiB7XG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZW1pdHM6IFsnY2xvc2VNb2RhbCcsICd0b2FzdCddLFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBlbWl0ID0gX2EuZW1pdDtcbiAgICAgICAgdmFyIGZvcm1EYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBuYXJyYXRpdmU6ICcnLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6ICcnLFxuICAgICAgICAgICAgYWN0aXZpdHlfaWRlbnRpZmllcjogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBuYXJyYXRpdmU6ICcnLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6ICcnLFxuICAgICAgICAgICAgYWN0aXZpdHlfaWRlbnRpZmllcjogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgbG9hZGVyVmlzaWJpbGl0eSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlcyA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgb3JnYW5pemF0aW9uID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7fSk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9fYXdhaXRlcihfdGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICBheGlvc18xLmRlZmF1bHQuZ2V0KCcvYWN0aXZpdGllcy9jb2RlbGlzdHMnKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obGFuZ3VhZ2VzLCByZXNwb25zZS5kYXRhLmxhbmd1YWdlcyk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3JnYW5pemF0aW9uLCByZXNwb25zZS5kYXRhLm9yZ2FuaXphdGlvbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pOyB9KTtcbiAgICAgICAgZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHtcbiAgICAgICAgICAgIGVtaXQoJ2Nsb3NlTW9kYWwnKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdG9yZUFjdGl2aXR5KCkge1xuICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdCgnL2FjdGl2aXR5JywgZm9ybURhdGEpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBlbWl0KCdjbG9zZU1vZGFsJyk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KHJlc3BvbnNlLmRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSBlcnJvci5yZXNwb25zZS5kYXRhLmVycm9ycztcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEubmFycmF0aXZlID0gZXJyb3JzLm5hcnJhdGl2ZSA/IGVycm9ycy5uYXJyYXRpdmVbMF0gOiAnJztcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEubGFuZ3VhZ2UgPSBlcnJvcnMubGFuZ3VhZ2UgPyBlcnJvcnMubGFuZ3VhZ2VbMF0gOiAnJztcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEuYWN0aXZpdHlfaWRlbnRpZmllciA9IGVycm9ycy5hY3Rpdml0eV9pZGVudGlmaWVyXG4gICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLmFjdGl2aXR5X2lkZW50aWZpZXJbMF1cbiAgICAgICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgZXJyb3JEYXRhOiBlcnJvckRhdGEsXG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5OiBsb2FkZXJWaXNpYmlsaXR5LFxuICAgICAgICAgICAgbGFuZ3VhZ2VzOiBsYW5ndWFnZXMsXG4gICAgICAgICAgICBvcmdhbml6YXRpb246IG9yZ2FuaXphdGlvbixcbiAgICAgICAgICAgIGNsb3NlTW9kYWw6IGNsb3NlTW9kYWwsXG4gICAgICAgICAgICBzdG9yZUFjdGl2aXR5OiBzdG9yZUFjdGl2aXR5LFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbi8vaW5qZWN0XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnQnVsa1B1Ymxpc2hpbmcnLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciByZWZyZXNoVG9hc3RNc2cgPSAoMCwgdnVlXzIuaW5qZWN0KShcInJlZnJlc2hUb2FzdE1zZ1wiKTtcbiAgICAgICAgdmFyIHBhU3RvcmFnZSA9ICgwLCB2dWVfMi5pbmplY3QpKFwicGFTdG9yYWdlXCIpO1xuICAgICAgICB2YXIgYWN0aXZpdGllcyA9ICgwLCB2dWVfMi5yZWYpKHBhU3RvcmFnZS52YWx1ZS5wdWJsaXNoaW5nQWN0aXZpdGllcy5hY3Rpdml0aWVzKSwgY29tcGxldGVkID0gKDAsIHZ1ZV8yLnJlZikoXCJwcm9jZXNzaW5nXCIpO1xuICAgICAgICB2YXIgaGFzRmFpbGVkQWN0aXZpdGllcyA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICBpZHM6IFtdLFxuICAgICAgICAgICAgc3RhdHVzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBpbnRlcnZhbElEO1xuICAgICAgICAvKipcbiAgICAgICAgICogICBDb21wb25lbnQgbGlmZWN5Y2xlIC0gb25Nb3VudGVkXG4gICAgICAgICAqL1xuICAgICAgICAoMCwgdnVlXzIub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb21wbGV0ZWQudmFsdWUgPSAoX2EgPSBwYVN0b3JhZ2UudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMuc3RhdHVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBcInByb2Nlc3NpbmdcIjtcbiAgICAgICAgICAgIGJ1bGtQdWJsaXNoU3RhdHVzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyB3YXRjaGluZyBjaGFuZ2UgaW4gdmFsdWUgb2YgY29tcGxldGVkXG4gICAgICAgICgwLCB2dWVfMi53YXRjaCkoY29tcGxldGVkLCBmdW5jdGlvbiAobmV3VmFsdWUpIHsgcmV0dXJuIF9fYXdhaXRlcihfdGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IFwiY29tcGxldGVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXR0aW5nIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgLy8gcGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzID0ge30gYXMgcGFFbGVtZW50cztcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGZhaWxlZCBwdWJsaXNoXG4gICAgICAgICAgICAgICAgICAgIGZhaWxlZEFjdGl2aXRpZXMocGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzLmFjdGl2aXRpZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogQnVsayBQdWJsaXNoIEZ1bmN0aW9uXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgYnVsa1B1Ymxpc2hTdGF0dXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpbnRlcnZhbElEID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAuZ2V0KFwiYWN0aXZpdGllcy9idWxrLXB1Ymxpc2gtc3RhdHVzP29yZ2FuaXphdGlvbl9pZD1cIi5jb25jYXQocGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzLm9yZ2FuaXphdGlvbl9pZCwgXCImJnV1aWQ9XCIpLmNvbmNhdChwYVN0b3JhZ2UudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMuam9iX2JhdGNoX3V1aWQpKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXCJkYXRhXCIgaW4gcmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXRpZXMudmFsdWUgPSByZXNwb25zZS5kYXRhLmFjdGl2aXRpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWQudmFsdWUgPSByZXNwb25zZS5kYXRhLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNhdmluZyBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICBwYVN0b3JhZ2UudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMuYWN0aXZpdGllcyA9IHJlc3BvbnNlLmRhdGEuYWN0aXZpdGllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhU3RvcmFnZS52YWx1ZS5wdWJsaXNoaW5nQWN0aXZpdGllcy5zdGF0dXMgPSByZXNwb25zZS5kYXRhLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhU3RvcmFnZS52YWx1ZS5wdWJsaXNoaW5nQWN0aXZpdGllcy5tZXNzYWdlID0gcmVzcG9uc2UuZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZC52YWx1ZSA9PT0gXCJjb21wbGV0ZWRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxlZEFjdGl2aXRpZXMocGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzLmFjdGl2aXRpZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hUb2FzdE1zZy52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFRvYXN0TXNnLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWQudmFsdWUgPSBcImNvbXBsZXRlZFwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCAyMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE1pbmltaXplIG9yIG1heGltaXplIHdpbmRvd1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIG9wZW4gPSAoMCwgdnVlXzIucmVmKSh0cnVlKTtcbiAgICAgICAgdmFyIHRvZ2dsZVdpbmRvdyA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICB2YXIgY3VycmVudFRhcmdldCA9IGUuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgIHZhciB0YXJnZXQgPSBjdXJyZW50VGFyZ2V0LmNsb3Nlc3QoXCIjcHVibGlzaGluZ19hY3Rpdml0aWVzXCIpLnF1ZXJ5U2VsZWN0b3IoXCIuYnVsay1hY3Rpdml0aWVzXCIpO1xuICAgICAgICAgICAgdmFyIGVsSGVpZ2h0ID0gKF9hID0gdGFyZ2V0ID09PSBudWxsIHx8IHRhcmdldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJkaXZcIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBpZiAob3Blbi52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9IFwiaGVpZ2h0OiBcIi5jb25jYXQoZWxIZWlnaHQsIFwicHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJoZWlnaHQ6IDBweDsgb3ZlcmZsb3c6IGhpZGRlbjtcIjtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgb3Blbi52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9IFwiaGVpZ2h0OiBcIi5jb25jYXQoZWxIZWlnaHQsIFwicHg7IG92ZXJmbG93OmhpZGRlbjtcIik7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSBcImhlaWdodDogYXV0bztcIjtcbiAgICAgICAgICAgICAgICAgICAgfSwgNjAwKTtcbiAgICAgICAgICAgICAgICAgICAgb3Blbi52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2xvc2luZyB3aW5kb3dcbiAgICAgICAgICovXG4gICAgICAgIHZhciBjbG9zZVdpbmRvdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHBhU3RvcmFnZS52YWx1ZS5wdWJsaXNoaW5nQWN0aXZpdGllcyA9IHt9O1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogRnVuY3Rpb24gdG8gY29sbGVjdCBmYWlsZWQgYWN0aXZpdGllc1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGZhaWxlZEFjdGl2aXRpZXMgPSBmdW5jdGlvbiAobmVzdGVkT2JqZWN0KSB7XG4gICAgICAgICAgICB2YXIgZmFpbGVkQWN0aXZpdGllc0lEID0gW107XG4gICAgICAgICAgICB2YXIgYXNBcnJheURhdGEgPSBPYmplY3QuZW50cmllcyhuZXN0ZWRPYmplY3QpO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgdmFyIGZpbHRlcmVkID0gYXNBcnJheURhdGEuZmlsdGVyKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBfYVswXSwgdmFsdWUgPSBfYVsxXTtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnZhbHVlcyh2YWx1ZSkuaW5kZXhPZihcImZhaWxlZFwiKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGZhaWxlZEFjdGl2aXRpZXNJRC5wdXNoKHZhbHVlLmFjdGl2aXR5X2lkKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBmYWlsZWRBY3Rpdml0aWVzRGF0YSA9IE9iamVjdC5mcm9tRW50cmllcyhmaWx0ZXJlZCk7XG4gICAgICAgICAgICBpZiAoZmFpbGVkQWN0aXZpdGllc0lELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBoYXNGYWlsZWRBY3Rpdml0aWVzLnN0YXR1cyA9IHRydWU7XG4gICAgICAgICAgICAgICAgaGFzRmFpbGVkQWN0aXZpdGllcy5pZHMgPSBmYWlsZWRBY3Rpdml0aWVzSUQ7XG4gICAgICAgICAgICAgICAgaGFzRmFpbGVkQWN0aXZpdGllcy5kYXRhID0gZmFpbGVkQWN0aXZpdGllc0RhdGE7XG4gICAgICAgICAgICAgICAgcmVmcmVzaFRvYXN0TXNnLnJlZnJlc2hNZXNzYWdlVHlwZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2FzdE1zZy5yZWZyZXNoTWVzc2FnZSA9ICdTb21lIGFjdGl2aXRpZXMgaGF2ZSBmYWlsZWQgdG8gcHVibGlzaC4gUmVmcmVzaCB0byBzZWUgY2hhbmdlcy4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaGFzRmFpbGVkQWN0aXZpdGllcy5zdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBoYXNGYWlsZWRBY3Rpdml0aWVzLmlkcyA9IFtdO1xuICAgICAgICAgICAgICAgIGhhc0ZhaWxlZEFjdGl2aXRpZXMuZGF0YSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogUmV0cnkgcHVibGlzaGluZyBmYWlsZWQgYWN0aXZpdGllc1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIHJldHJ5UHVibGlzaGluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vcmVzZXQgcmVxdWlyZWQgc3RhdGVzXG4gICAgICAgICAgICBjb21wbGV0ZWQudmFsdWUgPSBcInByb2Nlc3NpbmdcIjtcbiAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBoYXNGYWlsZWRBY3Rpdml0aWVzLmRhdGEpIHtcbiAgICAgICAgICAgICAgICBoYXNGYWlsZWRBY3Rpdml0aWVzLmRhdGFba2V5XS5zdGF0dXMgPSBcInByb2Nlc3NpbmdcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjdGl2aXRpZXMudmFsdWUgPSBoYXNGYWlsZWRBY3Rpdml0aWVzLmRhdGE7XG4gICAgICAgICAgICAvLyBhcGkgZW5kcG9pbnQgY2FsbFxuICAgICAgICAgICAgdmFyIGVuZHBvaW50ID0gXCJhY3Rpdml0aWVzL3N0YXJ0LWJ1bGstcHVibGlzaD9hY3Rpdml0aWVzPVtcIi5jb25jYXQoaGFzRmFpbGVkQWN0aXZpdGllcy5pZHMsIFwiXVwiKTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoZW5kcG9pbnQpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhU3RvcmFnZS52YWx1ZS5wdWJsaXNoaW5nQWN0aXZpdGllcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGJ1bGtQdWJsaXNoU3RhdHVzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHJlZnJlc2hUb2FzdE1zZzogcmVmcmVzaFRvYXN0TXNnLCBwYVN0b3JhZ2U6IHBhU3RvcmFnZSwgYWN0aXZpdGllczogYWN0aXZpdGllcywgY29tcGxldGVkOiBjb21wbGV0ZWQsIGhhc0ZhaWxlZEFjdGl2aXRpZXM6IGhhc0ZhaWxlZEFjdGl2aXRpZXMsIGludGVydmFsSUQ6IGludGVydmFsSUQsIGJ1bGtQdWJsaXNoU3RhdHVzOiBidWxrUHVibGlzaFN0YXR1cywgb3Blbjogb3BlbiwgdG9nZ2xlV2luZG93OiB0b2dnbGVXaW5kb3csIGNsb3NlV2luZG93OiBjbG9zZVdpbmRvdywgZmFpbGVkQWN0aXZpdGllczogZmFpbGVkQWN0aXZpdGllcywgcmV0cnlQdWJsaXNoaW5nOiByZXRyeVB1Ymxpc2hpbmcgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdFcnJvckl0ZW0nLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBtZXNzYWdlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJycgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBzZWxlY3RlZEFjdGl2aXRpZXMgPSAoMCwgdnVlXzIuaW5qZWN0KSgnc2VsZWN0ZWRBY3Rpdml0aWVzJyk7XG4gICAgICAgIHZhciB0b2dnbGUgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBhY2NvcmRpb25Ub2dnbGUgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRUYXJnZXQgPSBlLmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gY3VycmVudFRhcmdldC5jbG9zZXN0KCcuYWNjb3JkaW9uJykucXVlcnlTZWxlY3RvcignLmFjY29yZGlvbi1jb250ZW50Jyk7XG4gICAgICAgICAgICB2YXIgZWxIZWlnaHQgPSAoX2EgPSB0YXJnZXQgPT09IG51bGwgfHwgdGFyZ2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXQucXVlcnlTZWxlY3RvcignZGl2JykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBpZiAodG9nZ2xlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJoZWlnaHQ6IFwiLmNvbmNhdChlbEhlaWdodCwgXCJweDtcIik7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgICAgICAgICB0b2dnbGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSBcImhlaWdodDogXCIuY29uY2F0KGVsSGVpZ2h0LCBcInB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9IFwiaGVpZ2h0OiBhdXRvO1wiO1xuICAgICAgICAgICAgICAgICAgICB9LCA2MDApO1xuICAgICAgICAgICAgICAgICAgICB0b2dnbGUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGVycm9yQ291bnQgPSBmdW5jdGlvbiAoZXJyb3JzKSB7XG4gICAgICAgICAgICB2YXIgZXJyb3JDb3VudCA9ICcnO1xuICAgICAgICAgICAgaWYgKGVycm9ycyA9PT0gbnVsbCB8fCBlcnJvcnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9ycy53YXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JDb3VudCA9IFwiXCIuY29uY2F0KGVycm9ycyA9PT0gbnVsbCB8fCBlcnJvcnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9ycy5lcnJvciwgXCIgZXJyb3JzIGFuZCBcIikuY29uY2F0KGVycm9ycyA9PT0gbnVsbCB8fCBlcnJvcnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9ycy53YXJuaW5nLCBcIiB3YXJuaW5nc1xcbiAgICAgd2VyZSBmb3VuZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBlcnJvckNvdW50ID0gXCJcIi5jb25jYXQoZXJyb3JzID09PSBudWxsIHx8IGVycm9ycyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyb3JzLmNyaXRpY2FsLCBcIiBjcml0aWNhbCBlcnJvcnMgd2VyZSBmb3VuZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZXJyb3JDb3VudDtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgc2VsZWN0ZWRBY3Rpdml0aWVzOiBzZWxlY3RlZEFjdGl2aXRpZXMsIHRvZ2dsZTogdG9nZ2xlLCBhY2NvcmRpb25Ub2dnbGU6IGFjY29yZGlvblRvZ2dsZSwgZXJyb3JDb3VudDogZXJyb3JDb3VudCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGNvcmVfMSA9IHJlcXVpcmUoXCJAdnVldXNlL2NvcmVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuLy9jb21wb25lbnRcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgUG9wdXBNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZVwiKSk7XG52YXIgUHJvZ3Jlc3NMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlXCIpKTtcbnZhciBWYWxpZGF0aW9uRXJyb3JzX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1ZhbGlkYXRpb25FcnJvcnMudnVlXCIpKTtcbnZhciBCdWxrUHVibGlzaGluZ192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9CdWxrUHVibGlzaGluZy52dWVcIikpO1xuLy8gVnVleCBTdG9yZVxudmFyIGluZGV4XzEgPSByZXF1aXJlKFwiU3RvcmUvYWN0aXZpdGllcy9pbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdQdWJsaXNoU2VsZWN0ZWQnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIHR5cGU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAncHJpbWFyeScgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIF9iO1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqICBHbG9iYWwgU3RhdGVcbiAgICAgICAgICovXG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBpbmRleF8xLnVzZVN0b3JlKSgpO1xuICAgICAgICAvLyB0b2dnbGUgc3RhdGUgZm9yIG1vZGFsIHBvcHVwXG4gICAgICAgIHZhciBfYyA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBwdWJsaXNoQWxlcnRWYWx1ZSA9IF9jWzBdLCBwdWJsaXNoQWxlcnRUb2dnbGUgPSBfY1sxXTtcbiAgICAgICAgLy8gc3RhdGUgZm9yIHN0ZXAgb2YgdGhlIGZsb3dcbiAgICAgICAgdmFyIGJ1bGtQdWJsaXNoU3RlcCA9ICgwLCB2dWVfMi5yZWYpKDEpO1xuICAgICAgICAvLyBkaXNwbGF5L2hpZGUgdmFsaWRhdG9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICAvLyBEeW5hbWljIHRleHQgZm9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyVGV4dCA9ICgwLCB2dWVfMi5yZWYpKCdQbGVhc2UgV2FpdCcpO1xuICAgICAgICAvLyByZXNldCBzdGVwIHRvIHplcm8gYWZ0ZXIgY2xvc2luZyBtb2RhbFxuICAgICAgICB2YXIgcmVzZXRQdWJsaXNoU3RlcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGJ1bGtQdWJsaXNoU3RlcC52YWx1ZSA9IDE7XG4gICAgICAgICAgICBwdWJsaXNoQWxlcnRWYWx1ZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgc2VsZWN0ZWRBY3Rpdml0aWVzLnZhbHVlID0gW107XG4gICAgICAgIH07XG4gICAgICAgIHZhciBwb3BVcFdpZHRoQ2hhbmdlID0gKDAsIHZ1ZV8yLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgd2lkdGggPSAoMCwgdnVlXzIucmVmKSgnODI1Jyk7XG4gICAgICAgICAgICBzd2l0Y2ggKGJ1bGtQdWJsaXNoU3RlcC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgd2lkdGgudmFsdWUgPSAnNTgzJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICB3aWR0aC52YWx1ZSA9ICc4MDknO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdpZHRoLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gdG9hc3QgdmlzaWJpbGl0eVxuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8yLmluamVjdCkoJ2Vycm9yRGF0YScpO1xuICAgICAgICB2YXIgZGlzcGxheVRvYXN0ID0gZnVuY3Rpb24gKG1lc3NhZ2UsIHR5cGUpIHtcbiAgICAgICAgICAgIGVycm9yRGF0YS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgICAgIGVycm9yRGF0YS50eXBlID0gdHlwZTtcbiAgICAgICAgICAgIGVycm9yRGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNoZWNrIHB1Ymxpc2ggc3RhdHVzXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgY2hlY2tQdWJsaXNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9hY3Rpdml0aWVzL2NoZWNrcy1mb3ItYWN0aXZpdHktcHVibGlzaFwiKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoQWxlcnRWYWx1ZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VG9hc3QocmVzcG9uc2UubWVzc2FnZSwgcmVzcG9uc2Uuc3VjY2Vzcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBWZXJpZnkgY29yZSBlbGVtZW50c1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGNvcmVDb21wbGV0ZWRBY3Rpdml0aWVzID0gKDAsIHZ1ZV8yLnJlZikoW10pLCBjb3JlSW5Db21wbGV0ZWRBY3Rpdml0aWVzID0gKDAsIHZ1ZV8yLnJlZikoW10pLCBwZXJtYWxpbmsgPSBcIi9hY3Rpdml0eS9cIjtcbiAgICAgICAgdmFyIHZlcmlmeUNvcmVFbGVtZW50cyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gJ1ZlcmlmeWluZyBDb3JlIEVsZW1lbnRzJztcbiAgICAgICAgICAgIHZhciBhY3Rpdml0aWVzID0gc3RvcmUuc3RhdGUuc2VsZWN0ZWRBY3Rpdml0aWVzLmpvaW4oJywgJyk7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAuZ2V0KFwiL2FjdGl2aXRpZXMvY29yZS1lbGVtZW50cy1jb21wbGV0ZWQ/YWN0aXZpdGllcz1bXCIuY29uY2F0KGFjdGl2aXRpZXMsIFwiXVwiKSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY29yZUNvbXBsZXRlZEFjdGl2aXRpZXMudmFsdWUgPSByZXNwb25zZS5kYXRhLmNvbXBsZXRlO1xuICAgICAgICAgICAgICAgICAgICBjb3JlSW5Db21wbGV0ZWRBY3Rpdml0aWVzLnZhbHVlID0gcmVzcG9uc2UuZGF0YS5pbmNvbXBsZXRlO1xuICAgICAgICAgICAgICAgICAgICBidWxrUHVibGlzaFN0ZXAudmFsdWUgPSAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0UHVibGlzaFN0ZXAoKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVRvYXN0KHJlc3BvbnNlLm1lc3NhZ2UsIHJlc3BvbnNlLnN1Y2Nlc3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFZhbGlkYXRpbmcgQWN0aXZpdGllc1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIHZhbGlkYXRpb25FcnJvcnMgPSAoMCwgdnVlXzIucmVmKSh7fSk7XG4gICAgICAgIHZhciB2YWxpZGF0ZUFjdGl2aXRpZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2FkZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgbG9hZGVyVGV4dC52YWx1ZSA9ICdWYWxpZGF0aW5nIEFjdGl2aXR5JztcbiAgICAgICAgICAgIHZhciBhY3Rpdml0aWVzID0gc3RvcmUuc3RhdGUuc2VsZWN0ZWRBY3Rpdml0aWVzLmpvaW4oJywgJyk7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdChcIi9hY3Rpdml0aWVzL3ZhbGlkYXRlLWFjdGl2aXRpZXM/YWN0aXZpdGllcz1bXCIuY29uY2F0KGFjdGl2aXRpZXMsIFwiXVwiKSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVsa1B1Ymxpc2hTdGVwLnZhbHVlID0gMztcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9ycy52YWx1ZSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXNldFB1Ymxpc2hTdGVwKCk7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlUb2FzdChyZXNwb25zZS5tZXNzYWdlLCByZXNwb25zZS5zdWNjZXNzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCdWxrIHB1Ymxpc2hpbmcgYWN0aXZpdGllc1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIHNlbGVjdGVkQWN0aXZpdGllcyA9ICgwLCB2dWVfMi5yZWYpKFtdKTtcbiAgICAgICAgKDAsIHZ1ZV8yLnByb3ZpZGUpKCdzZWxlY3RlZEFjdGl2aXRpZXMnLCBzZWxlY3RlZEFjdGl2aXRpZXMpO1xuICAgICAgICAvLyBsb2NhbCBzdG9yYWdlIGZvciBwdWJsaXNoaW5nXG4gICAgICAgIHZhciBwYSA9ICgwLCBjb3JlXzEudXNlU3RvcmFnZSkoJ3Z1ZS11c2UtbG9jYWwtc3RvcmFnZScsIHtcbiAgICAgICAgICAgIHB1Ymxpc2hpbmdBY3Rpdml0aWVzOiAoX2IgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHVibGlzaGluZ0FjdGl2aXRpZXMnKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDoge30sXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgc3RhcnRCdWxrUHVibGlzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gJ1N0YXJ0aW5nIHRvIHB1Ymxpc2gnO1xuICAgICAgICAgICAgcGEudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMgPSB7fTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5nZXQoXCJhY3Rpdml0aWVzL3N0YXJ0LWJ1bGstcHVibGlzaD9hY3Rpdml0aWVzPVtcIi5jb25jYXQoc2VsZWN0ZWRBY3Rpdml0aWVzLnZhbHVlLCBcIl1cIikpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1bGtQdWJsaXNoU3RlcC52YWx1ZSA9IDE7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hBbGVydFZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHBhLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgICgwLCB2dWVfMi5wcm92aWRlKSgncGFTdG9yYWdlJywgcGEpO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBzdG9yZTogc3RvcmUsIHB1Ymxpc2hBbGVydFZhbHVlOiBwdWJsaXNoQWxlcnRWYWx1ZSwgcHVibGlzaEFsZXJ0VG9nZ2xlOiBwdWJsaXNoQWxlcnRUb2dnbGUsIGJ1bGtQdWJsaXNoU3RlcDogYnVsa1B1Ymxpc2hTdGVwLCBsb2FkZXI6IGxvYWRlciwgbG9hZGVyVGV4dDogbG9hZGVyVGV4dCwgcmVzZXRQdWJsaXNoU3RlcDogcmVzZXRQdWJsaXNoU3RlcCwgcG9wVXBXaWR0aENoYW5nZTogcG9wVXBXaWR0aENoYW5nZSwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIGRpc3BsYXlUb2FzdDogZGlzcGxheVRvYXN0LCBjaGVja1B1Ymxpc2g6IGNoZWNrUHVibGlzaCwgY29yZUNvbXBsZXRlZEFjdGl2aXRpZXM6IGNvcmVDb21wbGV0ZWRBY3Rpdml0aWVzLCBjb3JlSW5Db21wbGV0ZWRBY3Rpdml0aWVzOiBjb3JlSW5Db21wbGV0ZWRBY3Rpdml0aWVzLCBwZXJtYWxpbms6IHBlcm1hbGluaywgdmVyaWZ5Q29yZUVsZW1lbnRzOiB2ZXJpZnlDb3JlRWxlbWVudHMsIHZhbGlkYXRpb25FcnJvcnM6IHZhbGlkYXRpb25FcnJvcnMsIHZhbGlkYXRlQWN0aXZpdGllczogdmFsaWRhdGVBY3Rpdml0aWVzLCBzZWxlY3RlZEFjdGl2aXRpZXM6IHNlbGVjdGVkQWN0aXZpdGllcywgcGE6IHBhLCBzdGFydEJ1bGtQdWJsaXNoOiBzdGFydEJ1bGtQdWJsaXNoLCBCdG5Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0LCBNb2RhbDogUG9wdXBNb2RhbF92dWVfMS5kZWZhdWx0LCBMb2FkZXI6IFByb2dyZXNzTG9hZGVyX3Z1ZV8xLmRlZmF1bHQsIFZhbGlkYXRpb25FcnJvcnM6IFZhbGlkYXRpb25FcnJvcnNfdnVlXzEuZGVmYXVsdCwgQnVsa1B1Ymxpc2hpbmc6IEJ1bGtQdWJsaXNoaW5nX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdSZWZyZXNoVG9hc3QnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG1lc3NhZ2U6IHsgdHlwZTogU3RyaW5nLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB0eXBlOiB7IHR5cGU6IEJvb2xlYW4sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIHZ1ZV8yLnJlZikoJycpO1xuICAgICAgICBjbGFzc05hbWUudmFsdWUgPSBwcm9wcy50eXBlXG4gICAgICAgICAgICA/ICdiZy1taW50IGJvcmRlci1zcHJpbmctMTAnXG4gICAgICAgICAgICA6ICdiZy1jcmltc29uLTEwIGJvcmRlci1jcmltc29uLTIwJztcbiAgICAgICAgdmFyIGNsYXNzTmFtZTIgPSAoMCwgdnVlXzIucmVmKSgnJyk7XG4gICAgICAgIGNsYXNzTmFtZTIudmFsdWUgPSBwcm9wcy50eXBlXG4gICAgICAgICAgICA/ICd0ZXh0LXNwcmluZy01MCBob3Zlcjp0ZXh0LXNwcmluZy01MCdcbiAgICAgICAgICAgIDogJ3RleHQtY3JpbXNvbi01MCBob3Zlcjp0ZXh0LWNyaW1zb24tNTAnO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBwcm9wczogcHJvcHMsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBjbGFzc05hbWUyOiBjbGFzc05hbWUyIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBFcnJvckl0ZW1fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vRXJyb3JJdGVtLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVmFsaWRhdGlvbkVycm9ycycsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YTogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgY3JpdGljYWxNZXNzYWdlID0gXCJEYXRhIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBvbiB0aGUgSUFUSSBEYXRhc3RvcmUgYW5kIG1heSBub3QgYmUgYXZhaWxhYmxlIG9uIG90aGVyIGRhdGEgcG9ydGFscy90b29scy9zb2Z0d2FyZSB0aGF0IHVzZSBJQVRJIGRhdGEuIFdlIGhpZ2hseSByZWNvbW1lbmQgeW91IGZpeCB0aGVzZSBpc3N1ZShzKSBiZWZvcmUgcHVibGlzaGluZy5cIjtcbiAgICAgICAgdmFyIHdhcm5pbmdNZXNzYWdlID0gXCJXZSBoaWdobHkgcmVjb21tZW5kIHlvdSBmaXggdGhlc2UgaXNzdWUocykgYmVmb3JlIHB1Ymxpc2hpbmcgeW91ciBhY3Rpdml0eSB0byBpbXByb3ZlIHRoZSBxdWFsaXR5IGFuZCB1c2VmdWxuZXNzIG9mIHlvdXIgZGF0YS5cIjtcbiAgICAgICAgdmFyIG5vRXJyb3JNZXNzYWdlID0gXCI8Yj5Db25ncmF0dWxhdGlvbnMhIE5vIGVycm9ycyB3ZXJlIGZvdW5kLjwvYj4gUHVibGlzaCB5b3VyIGRhdGEgbm93LiBUaGlzIGRhdGEgd2lsbCBiZSBhdmFpbGFibGUgb24gdGhlIElBVEkgRGF0YXN0b3JlIGFuZCBvdGhlciBkYXRhIHBvcnRhbHMvdG9vbHMvIHNvZnR3YXJlIHRoYXQgdXNlIElBVEkgZGF0YS5cIjtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgY3JpdGljYWxNZXNzYWdlOiBjcml0aWNhbE1lc3NhZ2UsIHdhcm5pbmdNZXNzYWdlOiB3YXJuaW5nTWVzc2FnZSwgbm9FcnJvck1lc3NhZ2U6IG5vRXJyb3JNZXNzYWdlLCBFcnJvckl0ZW06IEVycm9ySXRlbV92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBtb21lbnRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibW9tZW50XCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnQWN0aXZpdHlEYXRlJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgbW9tZW50XzEuZGVmYXVsdCkoZGF0ZSkuZm9ybWF0KCdMTCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcywgZm9ybWF0RGF0ZTogZm9ybWF0RGF0ZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJBY3Rpdml0eUNvbmRpdGlvbnNcIixcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcywgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJBY3Rpdml0eUNvbnRhY3RJbmZvXCIsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KShcInR5cGVzXCIpO1xuICAgICAgICByZXR1cm4geyB0eXBlczogdHlwZXMgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FjdGl2aXR5RGVzY3JpcHRpb24nLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcyB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnSHVtYW5pdGFyaWFuU2NvcGUnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgdHlwZXM6IHR5cGVzIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSWF0aUlkZW50aWZpZXInLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnQWN0aXZpdHlTZWN0b3InLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnQWN0aXZpdHlMb2NhdGlvbicsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdPdGhlcklkZW50aWZpZXInLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcyB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnQWN0aXZpdHlQYXJ0aWNpcGF0aW5nT3JnJyxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyB0eXBlczogdHlwZXMgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIG1vbWVudF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJtb21lbnRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1BsYW5uZWREaXNidXJzZW1lbnQnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZvcm1hdChcIkxMXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMi5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGZvcm1hdERhdGU6IGZvcm1hdERhdGUsIHR5cGVzOiB0eXBlcyB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6IFwiUG9saWN5TWFya2VyXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KShcInR5cGVzXCIpO1xuICAgICAgICByZXR1cm4geyB0eXBlczogdHlwZXMsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0IH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBY3Rpdml0eVJlY2lwaWVudENvdW50cnknLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIGZ1bmN0aW9uIHJvdW5kRmxvYXQobnVtKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChudW0pLnRvRml4ZWQoMik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCByb3VuZEZsb2F0OiByb3VuZEZsb2F0IH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdSZWNpcGllbnRSZWdpb24nLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIGZ1bmN0aW9uIHJvdW5kRmxvYXQobnVtKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChudW0pLnRvRml4ZWQoMik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgdHlwZXM6IHR5cGVzLCByb3VuZEZsb2F0OiByb3VuZEZsb2F0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1JlbGF0ZWRBY3Rpdml0eScsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUmVwb3J0aW5nT3JnYW5pemF0aW9uJyxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7IHR5cGU6IE9iamVjdCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMi5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHR5cGVzOiB0eXBlcyB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG4vL2NvbXBvbmVudHNcbnZhciBMaW5rX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL2J1dHRvbnMvTGluay52dWVcIikpO1xudmFyIEhhdmVOb3RBZGRlZFlldF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlXCIpKTtcbi8vIGNvbXBvc2FibGVcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FjdGl2aXR5UmVzdWx0JyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJ0bjogTGlua192dWVfMS5kZWZhdWx0LFxuICAgICAgICBOb3RZZXQ6IEhhdmVOb3RBZGRlZFlldF92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlZDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZm9ybWF0ID0gJ01NTU0gREQsIFlZWVknO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgcmVzdWx0RGF0YSA9IGRhdGEudmFsdWUuY29udGVudDtcbiAgICAgICAgdmFyIGN1cnJlbnRMYW5ndWFnZSA9ICdlbic7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtb21lbnQ6IG1vbWVudF8xLmRlZmF1bHQsXG4gICAgICAgICAgICBmb3JtYXQ6IGZvcm1hdCxcbiAgICAgICAgICAgIHJlc3VsdERhdGE6IHJlc3VsdERhdGEsXG4gICAgICAgICAgICBnZXRBY3Rpdml0eVRpdGxlOiB0aXRsZV8xLmRlZmF1bHQsXG4gICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZSxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIkFjdGl2aXR5U2VjdG9yXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KShcInR5cGVzXCIpO1xuICAgICAgICBmdW5jdGlvbiByb3VuZEZsb2F0KG51bSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQobnVtKS50b0ZpeGVkKDIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcywgcm91bmRGbG9hdDogcm91bmRGbG9hdCB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJBY3Rpdml0eVRhZ1wiLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIkFjdGl2aXR5VGl0bGVcIixcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcyB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIkFjdGl2aXR5VHJhbnNhY3Rpb25zXCIsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBCdG46IExpbmtfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbi8vY29tcG9uZW50XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbnZhciBQYWdlVGl0bGVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiLi9lbGVtZW50cy9JbmRleFwiKTtcbi8vY29tcG9zYWJsZVxudmFyIHRpdGxlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvdGl0bGVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdJbmRpY2F0b3JEZXRhaWwnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgVGl0bGVFbGVtZW50OiBJbmRleF8xLlRpdGxlRWxlbWVudCxcbiAgICAgICAgTWVhc3VyZTogSW5kZXhfMS5NZWFzdXJlLFxuICAgICAgICBBc2NlbmRpbmc6IEluZGV4XzEuQXNjZW5kaW5nLFxuICAgICAgICBBZ2dyZWdhdGlvblN0YXR1czogSW5kZXhfMS5BZ2dyZWdhdGlvblN0YXR1cyxcbiAgICAgICAgRGVzY3JpcHRpb246IEluZGV4XzEuRGVzY3JpcHRpb24sXG4gICAgICAgIFJlZmVyZW5jZTogSW5kZXhfMS5SZWZlcmVuY2UsXG4gICAgICAgIEJhc2VsaW5lOiBJbmRleF8xLkJhc2VsaW5lLFxuICAgICAgICBEb2N1bWVudExpbms6IEluZGV4XzEuRG9jdW1lbnRMaW5rLFxuICAgICAgICBQZXJpb2Q6IEluZGV4XzEuUGVyaW9kLFxuICAgICAgICBCdG46IExpbmtfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnZVRpdGxlOiBQYWdlVGl0bGVfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZXN1bHRUaXRsZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGluZGljYXRvcjoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHBlcmlvZDoge1xuICAgICAgICAgICAgdHlwZTogQXJyYXksXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2FzdDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGlua0NsYXNzZXMgPSAnZmxleCBpdGVtcy1jZW50ZXIgdy1mdWxsIGJnLXdoaXRlIHJvdW5kZWQgcC0yIHRleHQtc20gdGV4dC1uLTUwIGZvbnQtYm9sZCBsZWFkaW5nLW5vcm1hbCBtYi0yIHNoYWRvdy1kZWZhdWx0JztcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2EgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcyksIGluZGljYXRvciA9IF9hLmluZGljYXRvciwgYWN0aXZpdHkgPSBfYS5hY3Rpdml0eSwgcGVyaW9kID0gX2EucGVyaW9kLCByZXN1bHRUaXRsZSA9IF9hLnJlc3VsdFRpdGxlO1xuICAgICAgICB2YXIgc2hvd1NpZGViYXIgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBwb3NpdGlvblkgPSAoMCwgdnVlXzEucmVmKSgwKTtcbiAgICAgICAgdmFyIHNjcmVlbldpZHRoID0gKDAsIHZ1ZV8xLnJlZikoMCk7XG4gICAgICAgIC8vaW5kaWNhdG9yXG4gICAgICAgIHZhciBpbmRpY2F0b3JEYXRhID0gaW5kaWNhdG9yLnZhbHVlLmluZGljYXRvcjtcbiAgICAgICAgdmFyIHBlcmlvZERhdGEgPSBwZXJpb2QudmFsdWU7XG4gICAgICAgIC8vIHZ1ZSBwcm92aWRlc1xuICAgICAgICB2YXIgcGFyZW50RGF0YSA9IHtcbiAgICAgICAgICAgIGFjdGl2aXR5OiBhY3Rpdml0eS52YWx1ZS5pZCxcbiAgICAgICAgICAgIHJlc3VsdDogaW5kaWNhdG9yLnZhbHVlLnJlc3VsdF9pZCxcbiAgICAgICAgICAgIGluZGljYXRvcjogaW5kaWNhdG9yLnZhbHVlLmlkLFxuICAgICAgICB9O1xuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3BhcmVudERhdGEnLCBwYXJlbnREYXRhKTtcbiAgICAgICAgdmFyIGFjdGl2aXR5SWQgPSBhY3Rpdml0eS52YWx1ZS5pZCwgYWN0aXZpdHlUaXRsZSA9IGFjdGl2aXR5LnZhbHVlLnRpdGxlLCBhY3Rpdml0eUxpbmsgPSBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCksIHJlc3VsdElkID0gaW5kaWNhdG9yLnZhbHVlLnJlc3VsdF9pZCwgcmVzdWx0VGl0bGVkID0gKDAsIHRpdGxlXzEuZGVmYXVsdCkocmVzdWx0VGl0bGUudmFsdWVbMF0ubmFycmF0aXZlLCAnZW4nKSwgcmVzdWx0TGluayA9IFwiXCIuY29uY2F0KGFjdGl2aXR5TGluaywgXCIvcmVzdWx0L1wiKS5jb25jYXQocmVzdWx0SWQpLCBpbmRpY2F0b3JMaW5rID0gXCIvcmVzdWx0L1wiLmNvbmNhdChyZXN1bHRJZCwgXCIvaW5kaWNhdG9yXCIpLCBpbmRpY2F0b3JUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKGluZGljYXRvckRhdGEudGl0bGVbMF0ubmFycmF0aXZlLCAnZW4nKTtcbiAgICAgICAgdmFyIGNhbGNXaWR0aCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgc2NyZWVuV2lkdGgudmFsdWUgPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgIGlmIChzY3JlZW5XaWR0aC52YWx1ZSA+IDEwMjQpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzaG93U2lkZWJhci52YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogQnJlYWRjcnVtYiBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgYnJlYWRjcnVtYkRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdZb3VyIEFjdGl2aXRpZXMnLFxuICAgICAgICAgICAgICAgIGxpbms6ICcvYWN0aXZpdGllcycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAoMCwgdGl0bGVfMS5kZWZhdWx0KShhY3Rpdml0eVRpdGxlLCAnZW4nKSxcbiAgICAgICAgICAgICAgICBsaW5rOiBhY3Rpdml0eUxpbmssXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiByZXN1bHRUaXRsZWQsXG4gICAgICAgICAgICAgICAgbGluazogcmVzdWx0TGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGluZGljYXRvclRpdGxlLFxuICAgICAgICAgICAgICAgIGxpbms6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgdmFyIGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uWS52YWx1ZSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICB9O1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgY2FsY1dpZHRoKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgICAgICAgaWYgKHByb3BzLnRvYXN0Lm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBwcm9wcy50b2FzdC50eXBlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXN0b3BWaXNpYmxlID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gcG9zaXRpb25ZLnZhbHVlID09PSAwO1xuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uVW5tb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBzaG93U2lkZWJhci52YWx1ZTsgfSwgZnVuY3Rpb24gKHNpZGViYXIpIHtcbiAgICAgICAgICAgIGlmIChzaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxpbmtDbGFzc2VzOiBsaW5rQ2xhc3NlcyxcbiAgICAgICAgICAgIGluZGljYXRvclRpdGxlOiBpbmRpY2F0b3JUaXRsZSxcbiAgICAgICAgICAgIGluZGljYXRvckRhdGE6IGluZGljYXRvckRhdGEsXG4gICAgICAgICAgICBhY3Rpdml0eUxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIHJlc3VsdExpbms6IHJlc3VsdExpbmssXG4gICAgICAgICAgICBpbmRpY2F0b3JMaW5rOiBpbmRpY2F0b3JMaW5rLFxuICAgICAgICAgICAgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhLFxuICAgICAgICAgICAgdG9hc3REYXRhOiB0b2FzdERhdGEsXG4gICAgICAgICAgICBwZXJpb2REYXRhOiBwZXJpb2REYXRhLFxuICAgICAgICAgICAgc2hvd1NpZGViYXI6IHNob3dTaWRlYmFyLFxuICAgICAgICAgICAgaXN0b3BWaXNpYmxlOiBpc3RvcFZpc2libGUsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vLyBjb21wb25lbnRzXG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIFRhYmxlUGFnaW5hdGlvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9UYWJsZVBhZ2luYXRpb24udnVlXCIpKTtcbnZhciBQYWdlVGl0bGVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xudmFyIERlbGV0ZUFjdGlvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9EZWxldGVBY3Rpb24udnVlXCIpKTtcbi8vIGNvbXBvc2FibGVcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG52YXIgdGl0bGVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS90aXRsZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0luZGljYXRvckxpc3QnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgQnRuOiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnaW5hdGlvbjogVGFibGVQYWdpbmF0aW9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgRGVsZXRlQWN0aW9uOiBEZWxldGVBY3Rpb25fdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcGFyZW50RGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGluZGljYXRvcnM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvYXN0OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIF9hID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLCBhY3Rpdml0eSA9IF9hLmFjdGl2aXR5LCBwYXJlbnREYXRhID0gX2EucGFyZW50RGF0YTtcbiAgICAgICAgdmFyIGFjdGl2aXR5SWQgPSBhY3Rpdml0eS52YWx1ZS5pZCwgYWN0aXZpdHlUaXRsZSA9IGFjdGl2aXR5LnZhbHVlLnRpdGxlLCBhY3Rpdml0eUxpbmsgPSBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCksIHJlc3VsdElkID0gcGFyZW50RGF0YS52YWx1ZS5yZXN1bHQuaWQsIHJlc3VsdFRpdGxlID0gKDAsIHRpdGxlXzEuZGVmYXVsdCkocGFyZW50RGF0YS52YWx1ZS5yZXN1bHQudGl0bGUsICdlbicpLCByZXN1bHRMaW5rID0gXCJcIi5jb25jYXQoYWN0aXZpdHlMaW5rLCBcIi9yZXN1bHQvXCIpLmNvbmNhdChyZXN1bHRJZCksIGluZGljYXRvckxpbmsgPSBcIi9yZXN1bHQvXCIuY29uY2F0KHJlc3VsdElkLCBcIi9pbmRpY2F0b3JcIik7XG4gICAgICAgIHZhciBpbmRpY2F0b3JzRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgaXNFbXB0eSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogQnJlYWRjcnVtYiBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgYnJlYWRjcnVtYkRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdZb3VyIEFjdGl2aXRpZXMnLFxuICAgICAgICAgICAgICAgIGxpbms6ICcvYWN0aXZpdGllcycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAoMCwgdGl0bGVfMS5kZWZhdWx0KShhY3Rpdml0eVRpdGxlLCAnZW4nKSxcbiAgICAgICAgICAgICAgICBsaW5rOiBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiByZXN1bHRUaXRsZSxcbiAgICAgICAgICAgICAgICBsaW5rOiBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCwgXCIvcmVzdWx0L1wiKS5jb25jYXQocmVzdWx0SWQpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0luZGljYXRvciBMaXN0JyxcbiAgICAgICAgICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9fYXdhaXRlcihfdGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICBheGlvc18xLmRlZmF1bHQuZ2V0KFwiL3Jlc3VsdC9cIi5jb25jYXQocmVzdWx0SWQsIFwiL2luZGljYXRvcnMvcGFnZS8xXCIpKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaW5kaWNhdG9yc0RhdGEsIHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBpc0VtcHR5LnZhbHVlID0gcmVzcG9uc2UuZGF0YS5kYXRhLmxlbmd0aCA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHMudG9hc3QubWVzc2FnZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBwcm9wcy50b2FzdC50eXBlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcHJvcHMudG9hc3QubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pOyB9KTtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlTmF2aWdhdGUocGF0aCkge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZldGNoTGlzdGluZ3MoYWN0aXZlX3BhZ2UpIHtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5nZXQoXCIvcmVzdWx0L1wiLmNvbmNhdChyZXN1bHRJZCwgXCIvaW5kaWNhdG9ycy9wYWdlL1wiKSArIGFjdGl2ZV9wYWdlKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGluZGljYXRvcnNEYXRhLCByZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICBpc0VtcHR5LnZhbHVlID0gcmVzcG9uc2UuZGF0YSA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIHByb3ZpZGVcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdwYXJlbnRJdGVtSWQnLCByZXN1bHRJZCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY3Rpdml0eUlkOiBhY3Rpdml0eUlkLFxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsXG4gICAgICAgICAgICBpbmRpY2F0b3JzRGF0YTogaW5kaWNhdG9yc0RhdGEsXG4gICAgICAgICAgICBnZXRBY3Rpdml0eVRpdGxlOiB0aXRsZV8xLmRlZmF1bHQsXG4gICAgICAgICAgICBmZXRjaExpc3RpbmdzOiBmZXRjaExpc3RpbmdzLFxuICAgICAgICAgICAgcmVzdWx0TGluazogcmVzdWx0TGluayxcbiAgICAgICAgICAgIGluZGljYXRvckxpbms6IGluZGljYXRvckxpbmssXG4gICAgICAgICAgICBicmVhZGNydW1iRGF0YTogYnJlYWRjcnVtYkRhdGEsXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIHJlc3VsdElkOiByZXN1bHRJZCxcbiAgICAgICAgICAgIGhhbmRsZU5hdmlnYXRlOiBoYW5kbGVOYXZpZ2F0ZSxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0luZGljYXRvckFnZ3JlZ2F0aW9uU3RhdHVzJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIHN0YXR1c0RhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyBzdGF0dXNEYXRhOiBzdGF0dXNEYXRhIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiLi9JbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSW5kaWNhdG9yQmFzZWxpbmUnLFxuICAgIGNvbXBvbmVudHM6IHsgRG9jdW1lbnRMaW5rOiBJbmRleF8xLkRvY3VtZW50TGluayB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJhc2VUeXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGVsZW1lbnRTcGFjaW5nID0gJ21iLTEnO1xuICAgICAgICB2YXIgYmFzZWxpbmUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgbG9jYXRpb24gPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgdmFyIGxvY2F0aW9ucyA9IFtdO1xuICAgICAgICAgICAgbG9jYXRpb25zID0gZGF0YS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5yZWZlcmVuY2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBsYXN0TG9jYXRpb24gPSBsb2NhdGlvbnMuc2xpY2UoLTEpWzBdO1xuICAgICAgICAgICAgbG9jYXRpb25zID0gbG9jYXRpb25zLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgIGlmIChsb2NhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbnMuam9pbignLCAnKSArICcgJyArICdhbmQnICsgJyAnICsgbGFzdExvY2F0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RMb2NhdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZ1bmN0aW9uIHRvIHJldHVybiBkaW1lbnNpb25zIG9mIGJhc2VsaW5lXG4gICAgICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgZGltZW5zaW9ucyA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICB2YXIgZGltZW5zaW9ucyA9IFtdO1xuICAgICAgICAgICAgZGltZW5zaW9ucyA9IGRhdGEubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IChfYSA9IGl0ZW0ubmFtZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ01pc3NpbmcnLCB2YWx1ZSA9IChfYiA9IGl0ZW0udmFsdWUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICdNaXNzaW5nJztcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJjb2RlIC0gXCIuY29uY2F0KG5hbWUsIFwiLCB2YWx1ZSAtIChcIikuY29uY2F0KHZhbHVlLCBcIilcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBkaW1lbnNpb25zLmpvaW4oJzsgJyk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7IGJhc2VsaW5lOiBiYXNlbGluZSwgbG9jYXRpb246IGxvY2F0aW9uLCBkaW1lbnNpb25zOiBkaW1lbnNpb25zLCBlbGVtZW50U3BhY2luZzogZWxlbWVudFNwYWNpbmcgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0luZGljYXRvckRlc2NyaXB0aW9uJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY1R5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgZGVzY3JpcHRpb25EYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgZGVzY3JpcHRpb25EYXRhOiBkZXNjcmlwdGlvbkRhdGEgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG4vL2NvbXBvc2FibGVcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSW5kaWNhdG9yRG9jdW1lbnRMaW5rJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBBcnJheSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYWxpZ25tZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnY2VudGVyJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGRsRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7IGRsRGF0YTogZGxEYXRhLCBnZXRBY3Rpdml0eVRpdGxlOiB0aXRsZV8xLmRlZmF1bHQgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0luZGljYXRvckFzY2VuZGluZycsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH1cbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0luZGljYXRvck1lYXN1cmUnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBtZWFzdXJlVHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBtZWFzdXJlRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7IG1lYXN1cmVEYXRhOiBtZWFzdXJlRGF0YSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSW5kaWNhdG9yUGVyaW9kJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJ0bjogTGlua192dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaWQgPSAoMCwgdnVlXzEuaW5qZWN0KSgncGFyZW50RGF0YScpO1xuICAgICAgICByZXR1cm4geyBpZDogaWQsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0IH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdJbmRpY2F0b3JSZWZlcmVuY2UnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZWZUeXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIHJlZkRhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyByZWZEYXRhOiByZWZEYXRhIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdJbmRpY2F0b3JUaXRsZScsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlVHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciB0aXRsZURhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyB0aXRsZURhdGE6IHRpdGxlRGF0YSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBjb3JlRWxlbWVudHNfMSA9IHJlcXVpcmUoXCJDb21wb3NhYmxlL2NvcmVFbGVtZW50c1wiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdBY3Rpdml0aWVzRWxlbWVudHMnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUlkOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8yLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBkcm9wZG93biA9ICgwLCB2dWVfMi5yZWYpKCk7XG4gICAgICAgIHZhciBkcm9wZG93bkJ0biA9ICgwLCB2dWVfMi5yZWYpKCk7XG4gICAgICAgIHZhciBfYiA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBzZWFyY2hCdG5WYWx1ZSA9IF9iWzBdLCBzZWFyY2hCdG5Ub2dnbGUgPSBfYlsxXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNlYXJjaCBmdW5jdGlvbmFsaXR5XG4gICAgICAgICAqL1xuICAgICAgICB2YXIgZWxlbWVudHMgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHNlYXJjaDogXCJcIixcbiAgICAgICAgICAgIHN0YXR1czogXCJcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBlbGVtZW50SWNvbnMgPSB7XG4gICAgICAgICAgICBjb21wbGV0ZWQ6IFwiZG91YmxlLXRpY2tcIixcbiAgICAgICAgICAgIG5vdF9jb21wbGV0ZWQ6IFwicmVkLWNyb3NzXCIsXG4gICAgICAgICAgICBjb3JlOiBcImNvcmVcIixcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGFzQXJyYXlEYXRhID0gT2JqZWN0LmVudHJpZXMoZGF0YS52YWx1ZSk7XG4gICAgICAgIHZhciBmaWx0ZXJlZEVsZW1lbnRzID0gKDAsIHZ1ZV8yLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZmlsdGVyZWQgPSBhc0FycmF5RGF0YS5maWx0ZXIoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IF9hWzBdLCB2YWx1ZSA9IF9hWzFdO1xuICAgICAgICAgICAgICAgIGlmICghZWxlbWVudHMuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoZWxlbWVudHMuc2VhcmNoLnRvTG93ZXJDYXNlKCkucmVwbGFjZShcIl9cIiwgXCJcIikucmVwbGFjZShcIi1cIiwgXCJfXCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVtlbGVtZW50cy5zdGF0dXNdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoZWxlbWVudHMuc2VhcmNoLnRvTG93ZXJDYXNlKCkucmVwbGFjZShcIl9cIiwgXCJcIikucmVwbGFjZShcIi1cIiwgXCJfXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGp1c3RTdHJpbmdzID0gT2JqZWN0LmZyb21FbnRyaWVzKGZpbHRlcmVkKTtcbiAgICAgICAgICAgIHJldHVybiBqdXN0U3RyaW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZGRpbmcgY29yZSBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICBPYmplY3Qua2V5cyhkYXRhLnZhbHVlKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgaWYgKCgwLCBjb3JlRWxlbWVudHNfMS5hY3Rpdml0eUNvcmVFbGVtZW50cykoKS5pbmNsdWRlcyhrZXkudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnZhbHVlW2tleV1bXCJjb3JlXCJdID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkcm9wZG93bkZpbHRlciA9IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICBlbGVtZW50cy5zdGF0dXMgPSBzO1xuICAgICAgICAgICAgc2VhcmNoQnRuVG9nZ2xlKCk7XG4gICAgICAgIH07XG4gICAgICAgICgwLCB2dWVfMi5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRyb3Bkb3duQnRuLnZhbHVlLmNvbnRhaW5zKGUudGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAhZHJvcGRvd24udmFsdWUuY29udGFpbnMoZS50YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaEJ0blZhbHVlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaEJ0blRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gZ2V0TGluayhoYXNfZGF0YSwgaW5kZXgpIHtcbiAgICAgICAgICAgIGlmIChoYXNfZGF0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIiNcIi5jb25jYXQoaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaW5kZXggPT0gXCJyZXN1bHRcIiB8fCBpbmRleCA9PSBcInRyYW5zYWN0aW9uc1wiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBpbmRleCA9PSBcInJlc3VsdFwiID8gXCJyZXN1bHRcIiA6IFwidHJhbnNhY3Rpb25cIjtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIvYWN0aXZpdHkvXCIuY29uY2F0KHByb3BzLmFjdGl2aXR5SWQsIFwiL1wiKS5jb25jYXQoZWxlbWVudCwgXCIvY3JlYXRlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwiL2FjdGl2aXR5L1wiLmNvbmNhdChwcm9wcy5hY3Rpdml0eUlkLCBcIi9cIikuY29uY2F0KGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBwcm9wczogcHJvcHMsIGRhdGE6IGRhdGEsIGRyb3Bkb3duOiBkcm9wZG93biwgZHJvcGRvd25CdG46IGRyb3Bkb3duQnRuLCBzZWFyY2hCdG5WYWx1ZTogc2VhcmNoQnRuVmFsdWUsIHNlYXJjaEJ0blRvZ2dsZTogc2VhcmNoQnRuVG9nZ2xlLCBlbGVtZW50czogZWxlbWVudHMsIGVsZW1lbnRJY29uczogZWxlbWVudEljb25zLCBhc0FycmF5RGF0YTogYXNBcnJheURhdGEsIGZpbHRlcmVkRWxlbWVudHM6IGZpbHRlcmVkRWxlbWVudHMsIGRyb3Bkb3duRmlsdGVyOiBkcm9wZG93bkZpbHRlciwgZ2V0TGluazogZ2V0TGluaywgYWN0aXZpdHlDb3JlRWxlbWVudHM6IGNvcmVFbGVtZW50c18xLmFjdGl2aXR5Q29yZUVsZW1lbnRzIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBtb21lbnRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibW9tZW50XCIpKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgY29yZUVsZW1lbnRzXzEgPSByZXF1aXJlKFwiQ29tcG9zYWJsZS9jb3JlRWxlbWVudHNcIik7XG4vL2NvbXBvbmVudHNcbnZhciBJbmRleF8xID0gcmVxdWlyZShcIkFjdGl2aXR5L2VsZW1lbnRzL0luZGV4XCIpO1xudmFyIExpbmtfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvYnV0dG9ucy9MaW5rLnZ1ZVwiKSk7XG52YXIgRWxlbWVudFN0YXR1c192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zdGF0dXMvRWxlbWVudFN0YXR1cy52dWVcIikpO1xudmFyIEhvdmVyVGV4dF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCIpKTtcbnZhciBQb3B1cE1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCIpKTtcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnQWN0aXZpdHlFbGVtZW50JyxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlJZDoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBfYiA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBkZWxldGVWYWx1ZSA9IF9iWzBdLCBkZWxldGVUb2dnbGUgPSBfYlsxXTtcbiAgICAgICAgLy8gY2FsbCBhcGkgZm9yIHB1Ymxpc2hpbmdcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMi5pbmplY3QpKCd0b2FzdERhdGEnKTtcbiAgICAgICAgdmFyIGxheW91dCA9ICdiYXNpcy1mdWxsICBsZzpiYXNpcy02LzEyJztcbiAgICAgICAgaWYgKHByb3BzLndpZHRoID09PSAnZnVsbCcpIHtcbiAgICAgICAgICAgIGxheW91dCA9ICdiYXNpcy1mdWxsJztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgbW9tZW50XzEuZGVmYXVsdCkoZGF0ZSkuZm9ybWF0KCdMTCcpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJvdW5kRmxvYXQobnVtKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChudW0pLnRvRml4ZWQoMik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRlbGV0ZUFjdGl2aXR5RWxlbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGRlbGV0ZVZhbHVlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgZnVuY3Rpb24gZGVsZXRlRWxlbWVudChpZCwgZWxlbWVudCkge1xuICAgICAgICAgICAgZGVsZXRlVmFsdWUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5kZWxldGUoXCIvYXBpL2FjdGl2aXR5L1wiLmNvbmNhdChpZCwgXCIvXCIpLmNvbmNhdChlbGVtZW50KSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS50eXBlID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID1cbiAgICAgICAgICAgICAgICAgICAgXCJDb3VsZG4ndCBkZWxldGUgdGhlIGFjdGl2aXR5IHRpdGxlIGR1ZSB0byBzeXN0ZW0gZXJyb3IuXCI7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBkZWxldGVWYWx1ZTogZGVsZXRlVmFsdWUsIGRlbGV0ZVRvZ2dsZTogZGVsZXRlVG9nZ2xlLCBwcm9wczogcHJvcHMsIHRvYXN0RGF0YTogdG9hc3REYXRhLCBsYXlvdXQ6IGxheW91dCwgZm9ybWF0RGF0ZTogZm9ybWF0RGF0ZSwgcm91bmRGbG9hdDogcm91bmRGbG9hdCwgZGVsZXRlQWN0aXZpdHlFbGVtZW50OiBkZWxldGVBY3Rpdml0eUVsZW1lbnQsIGRlbGV0ZUVsZW1lbnQ6IGRlbGV0ZUVsZW1lbnQsIGFjdGl2aXR5Q29yZUVsZW1lbnRzOiBjb3JlRWxlbWVudHNfMS5hY3Rpdml0eUNvcmVFbGVtZW50cywgQWN0aXZpdHlEYXRlOiBJbmRleF8xLkFjdGl2aXR5RGF0ZSwgQ29uZGl0aW9uczogSW5kZXhfMS5Db25kaXRpb25zLCBDb250YWN0SW5mbzogSW5kZXhfMS5Db250YWN0SW5mbywgRGVzY3JpcHRpb246IEluZGV4XzEuRGVzY3JpcHRpb24sIEh1bWFuaXRhcmlhblNjb3BlOiBJbmRleF8xLkh1bWFuaXRhcmlhblNjb3BlLCBJYXRpSWRlbnRpZmllcjogSW5kZXhfMS5JYXRpSWRlbnRpZmllciwgTGVnYWN5RGF0YTogSW5kZXhfMS5MZWdhY3lEYXRhLCBMb2NhdGlvbjogSW5kZXhfMS5Mb2NhdGlvbiwgT3RoZXJJZGVudGlmaWVyOiBJbmRleF8xLk90aGVySWRlbnRpZmllciwgUGFydGljaXBhdGluZ09yZzogSW5kZXhfMS5QYXJ0aWNpcGF0aW5nT3JnLCBQbGFubmVkRGlzYnVyc2VtZW50OiBJbmRleF8xLlBsYW5uZWREaXNidXJzZW1lbnQsIFBvbGljeU1hcmtlcjogSW5kZXhfMS5Qb2xpY3lNYXJrZXIsIFJlY2lwaWVudENvdW50cnk6IEluZGV4XzEuUmVjaXBpZW50Q291bnRyeSwgUmVjaXBpZW50UmVnaW9uOiBJbmRleF8xLlJlY2lwaWVudFJlZ2lvbiwgUmVsYXRlZEFjdGl2aXR5OiBJbmRleF8xLlJlbGF0ZWRBY3Rpdml0eSwgUmVwb3J0aW5nT3JnYW5pemF0aW9uOiBJbmRleF8xLlJlcG9ydGluZ09yZ2FuaXphdGlvbiwgU2VjdG9yOiBJbmRleF8xLlNlY3RvciwgVGFnOiBJbmRleF8xLlRhZywgVGl0bGVFbGVtZW50OiBJbmRleF8xLlRpdGxlRWxlbWVudCwgVHJhbnNhY3Rpb25zOiBJbmRleF8xLlRyYW5zYWN0aW9ucywgQnRuOiBMaW5rX3Z1ZV8xLmRlZmF1bHQsIFN0YXR1czogRWxlbWVudFN0YXR1c192dWVfMS5kZWZhdWx0LCBIb3ZlclRleHQ6IEhvdmVyVGV4dF92dWVfMS5kZWZhdWx0LCBNb2RhbDogUG9wdXBNb2RhbF92dWVfMS5kZWZhdWx0LCBCdG5Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBDcmVhdGVNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vQ3JlYXRlTW9kYWwudnVlXCIpKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBZGRBY3Rpdml0eUJ1dHRvbicsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBDcmVhdGVNb2RhbDogQ3JlYXRlTW9kYWxfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzdGF0ZSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgaXNWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfYSA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBtb2RhbFZhbHVlID0gX2FbMF0sIG1vZGFsVG9nZ2xlID0gX2FbMV07XG4gICAgICAgIHZhciBtb2RlbFZpc2libGUgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciB0b2dnbGVNb2RlbCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgbW9kZWxWaXNpYmxlLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBsaUNsYXNzID0gJ2Jsb2NrIHAtMi41IHRleHQtbi00MCB0ZXh0LXRpbnkgbGVhZGluZy1bMS41XSBmb250LWJvbGQgaG92ZXI6dGV4dC1uLTUwIGhvdmVyOmJnLW4tMTAnO1xuICAgICAgICB2YXIgZHJvcGRvd25CdG4gPSAoMCwgdnVlXzEucmVmKSgpO1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIGlmICghZHJvcGRvd25CdG4udmFsdWUuY29udGFpbnMoZS50YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHRvZ2dsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHN0YXRlLmlzVmlzaWJsZSA9ICFzdGF0ZS5pc1Zpc2libGU7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICBsaUNsYXNzOiBsaUNsYXNzLFxuICAgICAgICAgICAgbW9kZWxWaXNpYmxlOiBtb2RlbFZpc2libGUsXG4gICAgICAgICAgICBtb2RhbFZhbHVlOiBtb2RhbFZhbHVlLFxuICAgICAgICAgICAgdG9nZ2xlOiB0b2dnbGUsXG4gICAgICAgICAgICBtb2RhbFRvZ2dsZTogbW9kYWxUb2dnbGUsXG4gICAgICAgICAgICB0b2dnbGVNb2RlbDogdG9nZ2xlTW9kZWwsXG4gICAgICAgICAgICBkcm9wZG93bkJ0bjogZHJvcGRvd25CdG4sXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgaW5kZXhfMSA9IHJlcXVpcmUoXCJTdG9yZS9hY3Rpdml0aWVzL2luZGV4XCIpO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBDcmVhdGVNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vQ3JlYXRlTW9kYWwudnVlXCIpKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vY29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbnZhciBQb3B1cE1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCIpKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vKipcbiAqICBHbG9iYWwgU3RhdGVcbiAqL1xudmFyIHN0b3JlID0gKDAsIGluZGV4XzEudXNlU3RvcmUpKCk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FkZEFjdGl2aXR5QnV0dG9uJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIENyZWF0ZU1vZGFsOiBDcmVhdGVNb2RhbF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIE1vZGFsOiBQb3B1cE1vZGFsX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgc3RhdGUgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2EgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgbW9kYWxWYWx1ZSA9IF9hWzBdLCBtb2RhbFRvZ2dsZSA9IF9hWzFdO1xuICAgICAgICB2YXIgbW9kZWxWaXNpYmxlID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3RWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3RNZXNzYWdlID0gKDAsIHZ1ZV8xLnJlZikoJycpO1xuICAgICAgICB2YXIgdG9hc3RtZXNzYWdlVHlwZSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIHNob3dFcnJvcnBvcHVwID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgbWVzc2FnZSA9ICgwLCB2dWVfMS5yZWYpKCcnKTtcbiAgICAgICAgdmFyIHRvZ2dsZU1vZGVsID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICBtb2RlbFZpc2libGUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGxpQ2xhc3MgPSAnYmxvY2sgcC0yLjUgdGV4dC1uLTQwIHRleHQtdGlueSBsZWFkaW5nLVsxLjVdIGZvbnQtYm9sZCBob3Zlcjp0ZXh0LW4tNTAgaG92ZXI6Ymctbi0xMCc7XG4gICAgICAgIHZhciBkcm9wZG93bkJ0biA9ICgwLCB2dWVfMS5yZWYpKCk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkcm9wZG93bkJ0bi52YWx1ZS5jb250YWlucyhlLnRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBkb3dubG9hZEVycm9yKGZpbGVuYW1lLCB0ZXh0KSB7XG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6dGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04LCcgKyBlbmNvZGVVUklDb21wb25lbnQodGV4dCkpO1xuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgICAgIGVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvZ2dsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHN0YXRlLmlzVmlzaWJsZSA9ICFzdGF0ZS5pc1Zpc2libGU7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBkb3dubG9hZEVycm9yeG1sID0gZnVuY3Rpb24gKGNvdW50QWN0aXZpdGllcykge1xuICAgICAgICAgICAgc2hvd0Vycm9ycG9wdXAudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBxdWVyeVBhcmFtZXRlcnMgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnPycpO1xuICAgICAgICAgICAgdmFyIGFkZFF1ZXJ5UGFyYW1zID0gJyc7XG4gICAgICAgICAgICBpZiAocXVlcnlQYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIGFkZFF1ZXJ5UGFyYW1zID0gJyYnICsgcXVlcnlQYXJhbWV0ZXJzWzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGFwaVVybCA9ICcvYWN0aXZpdGllcy9kb3dubG9hZC14bWwvdHJ1ZT9hY3Rpdml0aWVzPWFsbCcgKyBhZGRRdWVyeVBhcmFtcztcbiAgICAgICAgICAgIGlmIChjb3VudEFjdGl2aXRpZXMgPiAwKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFjdGl2aXRpZXMgPSBzdG9yZS5zdGF0ZS5zZWxlY3RlZEFjdGl2aXRpZXMuam9pbignLCcpO1xuICAgICAgICAgICAgICAgIGFwaVVybCA9IFwiL2FjdGl2aXRpZXMvZG93bmxvYWQteG1sL3RydWU/YWN0aXZpdGllcz1bXCIuY29uY2F0KGFjdGl2aXRpZXMsIFwiXVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoYXBpVXJsKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuc3VjY2VzcyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdFZpc2liaWxpdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdG1lc3NhZ2VUeXBlLnZhbHVlID0gcmVzLmRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiAodG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2UpOyB9LCAxNTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24veG1sJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IHJlcy5oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgZG93bmxvYWRYbWwgPSBmdW5jdGlvbiAoY291bnRBY3Rpdml0aWVzKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlQYXJhbWV0ZXJzID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTtcbiAgICAgICAgICAgIHZhciBhZGRRdWVyeVBhcmFtcyA9ICcnO1xuICAgICAgICAgICAgaWYgKHF1ZXJ5UGFyYW1ldGVycy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICBhZGRRdWVyeVBhcmFtcyA9ICcmJyArIHF1ZXJ5UGFyYW1ldGVyc1sxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhcGlVcmwgPSAnL2FjdGl2aXRpZXMvZG93bmxvYWQteG1sP2FjdGl2aXRpZXM9YWxsJyArIGFkZFF1ZXJ5UGFyYW1zO1xuICAgICAgICAgICAgaWYgKGNvdW50QWN0aXZpdGllcyA+IDApIHtcbiAgICAgICAgICAgICAgICB2YXIgYWN0aXZpdGllcyA9IHN0b3JlLnN0YXRlLnNlbGVjdGVkQWN0aXZpdGllcy5qb2luKCcsJyk7XG4gICAgICAgICAgICAgICAgYXBpVXJsID0gXCIvYWN0aXZpdGllcy9kb3dubG9hZC14bWw/YWN0aXZpdGllcz1bXCIuY29uY2F0KGFjdGl2aXRpZXMsIFwiXVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoYXBpVXJsKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5zdWNjZXNzID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS54bWxfZXJyb3IgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dFcnJvcnBvcHVwLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS52YWx1ZSA9IHJlcy5kYXRhLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2FzdG1lc3NhZ2VUeXBlLnZhbHVlID0gcmVzLmRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRvYXN0VmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlKTsgfSwgMTUwMDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24veG1sJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IHJlcy5oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgZG93bmxvYWRDc3YgPSBmdW5jdGlvbiAoY291bnRBY3Rpdml0aWVzKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlQYXJhbWV0ZXJzID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTtcbiAgICAgICAgICAgIHZhciBhZGRRdWVyeVBhcmFtcyA9ICcnO1xuICAgICAgICAgICAgaWYgKHF1ZXJ5UGFyYW1ldGVycy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICBhZGRRdWVyeVBhcmFtcyA9ICcmJyArIHF1ZXJ5UGFyYW1ldGVyc1sxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhcGlVcmwgPSAnL2FjdGl2aXRpZXMvZG93bmxvYWQtY3N2P2FjdGl2aXRpZXM9YWxsJyArIGFkZFF1ZXJ5UGFyYW1zO1xuICAgICAgICAgICAgaWYgKGNvdW50QWN0aXZpdGllcyA+IDApIHtcbiAgICAgICAgICAgICAgICB2YXIgYWN0aXZpdGllcyA9IHN0b3JlLnN0YXRlLnNlbGVjdGVkQWN0aXZpdGllcy5qb2luKCcsJyk7XG4gICAgICAgICAgICAgICAgYXBpVXJsID0gXCIvYWN0aXZpdGllcy9kb3dubG9hZC1jc3Y/YWN0aXZpdGllcz1bXCIuY29uY2F0KGFjdGl2aXRpZXMsIFwiXVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoYXBpVXJsKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuc3VjY2VzcyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdFZpc2liaWxpdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdG1lc3NhZ2VUeXBlLnZhbHVlID0gcmVzLmRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiAodG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2UpOyB9LCAxNTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vY3N2JyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IHJlcy5oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RvcmU6IHN0b3JlLFxuICAgICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgICAgbGlDbGFzczogbGlDbGFzcyxcbiAgICAgICAgICAgIG1vZGVsVmlzaWJsZTogbW9kZWxWaXNpYmxlLFxuICAgICAgICAgICAgbW9kYWxWYWx1ZTogbW9kYWxWYWx1ZSxcbiAgICAgICAgICAgIHRvZ2dsZTogdG9nZ2xlLFxuICAgICAgICAgICAgbW9kYWxUb2dnbGU6IG1vZGFsVG9nZ2xlLFxuICAgICAgICAgICAgdG9nZ2xlTW9kZWw6IHRvZ2dsZU1vZGVsLFxuICAgICAgICAgICAgZHJvcGRvd25CdG46IGRyb3Bkb3duQnRuLFxuICAgICAgICAgICAgZG93bmxvYWRDc3Y6IGRvd25sb2FkQ3N2LFxuICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5OiB0b2FzdFZpc2liaWxpdHksXG4gICAgICAgICAgICB0b2FzdE1lc3NhZ2U6IHRvYXN0TWVzc2FnZSxcbiAgICAgICAgICAgIHRvYXN0bWVzc2FnZVR5cGU6IHRvYXN0bWVzc2FnZVR5cGUsXG4gICAgICAgICAgICBkb3dubG9hZFhtbDogZG93bmxvYWRYbWwsXG4gICAgICAgICAgICBNb2RhbDogUG9wdXBNb2RhbF92dWVfMS5kZWZhdWx0LFxuICAgICAgICAgICAgc2hvd0Vycm9ycG9wdXA6IHNob3dFcnJvcnBvcHVwLFxuICAgICAgICAgICAgZG93bmxvYWRFcnJvcnhtbDogZG93bmxvYWRFcnJvcnhtbCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBkb3dubG9hZEVycm9yOiBkb3dubG9hZEVycm9yLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uLy4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0VsZW1lbnROb3RlJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIEFkZEFjdGl2aXR5QnV0dG9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0VtcHR5QWN0aXZpdHknLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgQWN0aXZpdHlCdXR0b246IEFkZEFjdGl2aXR5QnV0dG9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgc3RhdGUgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGRpc21pc3M6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4geyBzdGF0ZTogc3RhdGUgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIERvd25sb2FkQWN0aXZpdHlCdXR0b25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWVcIikpO1xudmFyIEFkZEFjdGl2aXR5QnV0dG9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xudmFyIFJlZnJlc2hUb2FzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQWN0aXZpdHkvYnVsay1wdWJsaXNoL1JlZnJlc2hUb2FzdC52dWVcIikpO1xudmFyIFB1Ymxpc2hTZWxlY3RlZF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQWN0aXZpdHkvYnVsay1wdWJsaXNoL1B1Ymxpc2hTZWxlY3RlZC52dWVcIikpO1xudmFyIERlbGV0ZUJ1dHRvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0RlbGV0ZUJ1dHRvbi52dWVcIikpO1xudmFyIEVycm9yUG9wVXBfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvRXJyb3JQb3BVcC52dWVcIikpO1xuLy8gVnVleCBTdG9yZVxudmFyIGluZGV4XzEgPSByZXF1aXJlKFwiU3RvcmUvYWN0aXZpdGllcy9pbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdQYWdlVGl0bGUnLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBpbmRleF8xLnVzZVN0b3JlKSgpO1xuICAgICAgICB2YXIgdG9hc3RNZXNzYWdlID0gKDAsIHZ1ZV8yLmluamVjdCkoJ3RvYXN0RGF0YScpO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8yLmluamVjdCkoJ2Vycm9yRGF0YScpO1xuICAgICAgICB2YXIgcmVmcmVzaFRvYXN0TXNnID0gKDAsIHZ1ZV8yLmluamVjdCkoJ3JlZnJlc2hUb2FzdE1zZycpO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBzdG9yZTogc3RvcmUsIHRvYXN0TWVzc2FnZTogdG9hc3RNZXNzYWdlLCBlcnJvckRhdGE6IGVycm9yRGF0YSwgcmVmcmVzaFRvYXN0TXNnOiByZWZyZXNoVG9hc3RNc2csIERvd25sb2FkQWN0aXZpdHlCdXR0b246IERvd25sb2FkQWN0aXZpdHlCdXR0b25fdnVlXzEuZGVmYXVsdCwgQWRkQWN0aXZpdHlCdXR0b246IEFkZEFjdGl2aXR5QnV0dG9uX3Z1ZV8xLmRlZmF1bHQsIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCwgUmVmcmVzaFRvYXN0TWVzc2FnZTogUmVmcmVzaFRvYXN0X3Z1ZV8xLmRlZmF1bHQsIFB1Ymxpc2hTZWxlY3RlZDogUHVibGlzaFNlbGVjdGVkX3Z1ZV8xLmRlZmF1bHQsIERlbGV0ZUJ1dHRvbjogRGVsZXRlQnV0dG9uX3Z1ZV8xLmRlZmF1bHQsIEVycm9yUG9wVXA6IEVycm9yUG9wVXBfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1NpZGViYXJIZWxwQmxvY2snLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbi8vIFZ1ZXggU3RvcmVcbnZhciBpbmRleF8xID0gcmVxdWlyZShcIlN0b3JlL2FjdGl2aXRpZXMvaW5kZXhcIik7XG52YXIgUHJldmlvdXNseVB1Ymxpc2hlZF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zdGF0dXMvUHJldmlvdXNseVB1Ymxpc2hlZC52dWVcIikpO1xudmFyIFB1Ymxpc2hCdXR0b25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvYnV0dG9ucy9QdWJsaXNoQnV0dG9uLnZ1ZVwiKSk7XG52YXIgVW5QdWJsaXNoQnV0dG9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL2J1dHRvbnMvVW5QdWJsaXNoQnV0dG9uLnZ1ZVwiKSk7XG4vLyBpbXBvcnQgU2hpbW1lciBmcm9tIFwiQ29tcG9uZW50cy9TaGltbWVyTG9hZGluZy52dWVcIjtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdUYWJsZUxheW91dCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YTogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgX2IgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgc2VsZWN0QWxsVmFsdWUgPSBfYlswXSwgc2VsZWN0QWxsVG9nZ2xlID0gX2JbMV07XG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBpbmRleF8xLnVzZVN0b3JlKSgpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgbW9tZW50XzEuZGVmYXVsdCkoZGF0ZSkuZnJvbU5vdygpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVNlbGVjdEFsbChhY3Rpdml0aWVzLCBzZWxlY3RBbGxWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RBbGxWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHZhciBpZHMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBkYXR1bSBpbiBhY3Rpdml0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlkcy5wdXNoKGFjdGl2aXRpZXNbZGF0dW1dLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVNlbGVjdGVkQWN0aXZpdGllcycsIGlkcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgndXBkYXRlU2VsZWN0ZWRBY3Rpdml0aWVzJywgW10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VsZWN0QWxsVG9nZ2xlKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy9Tb3J0aW5nIGJ5IHVwZGF0ZV9hdFxuICAgICAgICB2YXIgY3VycmVudFVSTCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgICAgICB2YXIgcXVlcnkgPSAnJywgZGlyZWN0aW9uID0gJ2FzYyc7XG4gICAgICAgIHZhciBzb3J0aW5nRGlyZWN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzY2VuZGluZycgOiAnYXNjZW5kaW5nJztcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHNvcnRCeURhdGVVcmwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoY3VycmVudFVSTC5pbmNsdWRlcygnPycpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHF1ZXJ5U3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaCwgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeVN0cmluZyk7XG4gICAgICAgICAgICAgICAgcXVlcnkgPSAoX2EgPSB1cmxQYXJhbXMuZ2V0KCdxJykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnO1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IHVybFBhcmFtcy5nZXQoJ2RpcmVjdGlvbicpID09PSAnZGVzYycgPyAnYXNjJyA6ICdkZXNjJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcIj9xPVwiLmNvbmNhdChxdWVyeSwgXCImb3JkZXJCeT11cGRhdGVkX2F0JmRpcmVjdGlvbj1cIikuY29uY2F0KGRpcmVjdGlvbik7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHNlbGVjdEFsbFZhbHVlOiBzZWxlY3RBbGxWYWx1ZSwgc2VsZWN0QWxsVG9nZ2xlOiBzZWxlY3RBbGxUb2dnbGUsIHN0b3JlOiBzdG9yZSwgZm9ybWF0RGF0ZTogZm9ybWF0RGF0ZSwgdG9nZ2xlU2VsZWN0QWxsOiB0b2dnbGVTZWxlY3RBbGwsIGN1cnJlbnRVUkw6IGN1cnJlbnRVUkwsIHF1ZXJ5OiBxdWVyeSwgZGlyZWN0aW9uOiBkaXJlY3Rpb24sIHNvcnRpbmdEaXJlY3Rpb246IHNvcnRpbmdEaXJlY3Rpb24sIHNvcnRCeURhdGVVcmw6IHNvcnRCeURhdGVVcmwsIFByZXZpb3VzbHlQdWJsaXNoZWQ6IFByZXZpb3VzbHlQdWJsaXNoZWRfdnVlXzEuZGVmYXVsdCwgUHVibGlzaDogUHVibGlzaEJ1dHRvbl92dWVfMS5kZWZhdWx0LCBVblB1Ymxpc2g6IFVuUHVibGlzaEJ1dHRvbl92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbi8vY29tcG9uZW50XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbnZhciBQYWdlVGl0bGVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiLi9lbGVtZW50cy9JbmRleFwiKTtcbi8vY29tcG9zYWJsZVxudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUGVyaW9kRGV0YWlsJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFRhcmdldFZhbHVlOiBJbmRleF8xLlRhcmdldFZhbHVlLFxuICAgICAgICBBY3R1YWxWYWx1ZTogSW5kZXhfMS5BY3R1YWxWYWx1ZSxcbiAgICAgICAgQnRuOiBMaW5rX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcGFyZW50RGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHBlcmlvZDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxpbmtDbGFzc2VzID0gJ2ZsZXggaXRlbXMtY2VudGVyIHctZnVsbCBiZy13aGl0ZSByb3VuZGVkIHAtMiB0ZXh0LXNtIHRleHQtbi01MCBmb250LWJvbGQgbGVhZGluZy1ub3JtYWwgbWItMiBzaGFkb3ctZGVmYXVsdCc7XG4gICAgICAgIHZhciBfYSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgcGVyaW9kID0gX2EucGVyaW9kLCBhY3Rpdml0eSA9IF9hLmFjdGl2aXR5LCBwYXJlbnREYXRhID0gX2EucGFyZW50RGF0YSwgdHlwZXMgPSBfYS50eXBlcztcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgc2hvd1NpZGViYXIgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIC8vIHZ1ZSBwcm92aWRlXG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgndHlwZXMnLCB0eXBlcy52YWx1ZSk7XG4gICAgICAgIC8vaW5kaWNhdG9yXG4gICAgICAgIHZhciBwZXJpb2REYXRhID0gcGVyaW9kLnZhbHVlLnBlcmlvZDtcbiAgICAgICAgLy90aXRsZXNcbiAgICAgICAgdmFyIGFjdGl2aXR5SWQgPSBhY3Rpdml0eS52YWx1ZS5pZCwgYWN0aXZpdHlUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKGFjdGl2aXR5LnZhbHVlLnRpdGxlLCAnZW4nKSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpLCByZXN1bHRJZCA9IHBhcmVudERhdGEudmFsdWUucmVzdWx0LmlkLCByZXN1bHRUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKHBhcmVudERhdGEudmFsdWUucmVzdWx0LnRpdGxlLCAnZW4nKSwgcmVzdWx0TGluayA9IFwiXCIuY29uY2F0KGFjdGl2aXR5TGluaywgXCIvcmVzdWx0L1wiKS5jb25jYXQocmVzdWx0SWQpLCBpbmRpY2F0b3JJZCA9IHBhcmVudERhdGEudmFsdWUuaW5kaWNhdG9yLmlkLCBpbmRpY2F0b3JUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKHBhcmVudERhdGEudmFsdWUuaW5kaWNhdG9yLnRpdGxlLCAnZW4nKSwgaW5kaWNhdG9yTGluayA9IFwiL3Jlc3VsdC9cIi5jb25jYXQocmVzdWx0SWQsIFwiL2luZGljYXRvci9cIikuY29uY2F0KGluZGljYXRvcklkKSwgcGVyaW9kTGluayA9IFwiL2luZGljYXRvci9cIi5jb25jYXQoaW5kaWNhdG9ySWQsIFwiL3BlcmlvZFwiKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnWW91ciBBY3Rpdml0aWVzJyxcbiAgICAgICAgICAgICAgICBsaW5rOiAnL2FjdGl2aXRpZXMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogYWN0aXZpdHlUaXRsZSxcbiAgICAgICAgICAgICAgICBsaW5rOiBhY3Rpdml0eUxpbmssXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiByZXN1bHRUaXRsZSxcbiAgICAgICAgICAgICAgICBsaW5rOiByZXN1bHRMaW5rLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogaW5kaWNhdG9yVGl0bGUsXG4gICAgICAgICAgICAgICAgbGluazogaW5kaWNhdG9yTGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdQZXJpb2QnLFxuICAgICAgICAgICAgICAgIGxpbms6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKHByb3BzLnRvYXN0Lm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBwcm9wcy50b2FzdC50eXBlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGlua0NsYXNzZXM6IGxpbmtDbGFzc2VzLFxuICAgICAgICAgICAgcGVyaW9kRGF0YTogcGVyaW9kRGF0YSxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhLFxuICAgICAgICAgICAgYWN0aXZpdHlMaW5rOiBhY3Rpdml0eUxpbmssXG4gICAgICAgICAgICByZXN1bHRMaW5rOiByZXN1bHRMaW5rLFxuICAgICAgICAgICAgaW5kaWNhdG9yTGluazogaW5kaWNhdG9yTGluayxcbiAgICAgICAgICAgIHBlcmlvZExpbms6IHBlcmlvZExpbmssXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIHNob3dTaWRlYmFyOiBzaG93U2lkZWJhcixcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbi8vIGNvbXBvbmVudHNcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgVGFibGVQYWdpbmF0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RhYmxlUGFnaW5hdGlvbi52dWVcIikpO1xudmFyIFBhZ2VUaXRsZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9QYWdlVGl0bGUudnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG52YXIgRGVsZXRlQWN0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL0RlbGV0ZUFjdGlvbi52dWVcIikpO1xuLy8gY29tcG9zYWJsZVxudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUGVyaW9kTGlzdCcsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBCdG46IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBQYWdpbmF0aW9uOiBUYWJsZVBhZ2luYXRpb25fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnZVRpdGxlOiBQYWdlVGl0bGVfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0LFxuICAgICAgICBEZWxldGVBY3Rpb246IERlbGV0ZUFjdGlvbl92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBwYXJlbnREYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVyaW9kOiB7XG4gICAgICAgICAgICB0eXBlOiBBcnJheSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2FzdDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBfYSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgYWN0aXZpdHkgPSBfYS5hY3Rpdml0eSwgcGFyZW50RGF0YSA9IF9hLnBhcmVudERhdGE7XG4gICAgICAgIHZhciBhY3Rpdml0eUlkID0gYWN0aXZpdHkudmFsdWUuaWQsIGFjdGl2aXR5VGl0bGUgPSBhY3Rpdml0eS52YWx1ZS50aXRsZSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpLCByZXN1bHRUaXRsZSA9IHBhcmVudERhdGEudmFsdWUucmVzdWx0LnRpdGxlLCByZXN1bHRJZCA9IHBhcmVudERhdGEudmFsdWUucmVzdWx0LmlkLCByZXN1bHRMaW5rID0gXCJcIi5jb25jYXQoYWN0aXZpdHlMaW5rLCBcIi9yZXN1bHQvXCIpLmNvbmNhdChyZXN1bHRJZCksIGluZGljYXRvclRpdGxlID0gcGFyZW50RGF0YS52YWx1ZS5pbmRpY2F0b3IudGl0bGUsIGluZGljYXRvcklkID0gcGFyZW50RGF0YS52YWx1ZS5pbmRpY2F0b3IuaWQsIGluZGljYXRvckxpbmsgPSBcIi9yZXN1bHQvXCIuY29uY2F0KHJlc3VsdElkLCBcIi9pbmRpY2F0b3IvXCIpLmNvbmNhdChpbmRpY2F0b3JJZCksIHBlcmlvZExpbmsgPSBcIi9pbmRpY2F0b3IvXCIuY29uY2F0KGluZGljYXRvcklkLCBcIi9wZXJpb2RcIik7XG4gICAgICAgIHZhciBwZXJpb2RzRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgaXNFbXB0eSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogQnJlYWRjcnVtYiBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgYnJlYWRjcnVtYkRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdZb3VyIEFjdGl2aXRpZXMnLFxuICAgICAgICAgICAgICAgIGxpbms6ICcvYWN0aXZpdHknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogKDAsIHRpdGxlXzEuZGVmYXVsdCkoYWN0aXZpdHlUaXRsZSwgJ2VuJyksXG4gICAgICAgICAgICAgICAgbGluazogYWN0aXZpdHlMaW5rLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogKDAsIHRpdGxlXzEuZGVmYXVsdCkocmVzdWx0VGl0bGUsICdlbicpLFxuICAgICAgICAgICAgICAgIGxpbms6IHJlc3VsdExpbmssXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAoMCwgdGl0bGVfMS5kZWZhdWx0KShpbmRpY2F0b3JUaXRsZSwgJ2VuJyksXG4gICAgICAgICAgICAgICAgbGluazogaW5kaWNhdG9yTGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdQZXJpb2RzIExpc3QnLFxuICAgICAgICAgICAgICAgIGxpbms6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvaW5kaWNhdG9yL1wiLmNvbmNhdChpbmRpY2F0b3JJZCwgXCIvcGVyaW9kcy9wYWdlLzFcIikpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwZXJpb2RzRGF0YSwgcmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHkudmFsdWUgPSByZXNwb25zZS5kYXRhLmRhdGEubGVuZ3RoID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy50b2FzdC5tZXNzYWdlICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSBwcm9wcy50b2FzdC5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICBmdW5jdGlvbiBmZXRjaExpc3RpbmdzKGFjdGl2ZV9wYWdlKSB7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAuZ2V0KFwiL2luZGljYXRvci9cIi5jb25jYXQoaW5kaWNhdG9ySWQsIFwiL3BlcmlvZHMvcGFnZS9cIikgKyBhY3RpdmVfcGFnZSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwZXJpb2RzRGF0YSwgcmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgaXNFbXB0eS52YWx1ZSA9IHJlc3BvbnNlLmRhdGEgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVOYXZpZ2F0ZShwYXRoKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcHJvdmlkZVxuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3BhcmVudEl0ZW1JZCcsIGluZGljYXRvcklkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJyZWFkY3J1bWJEYXRhOiBicmVhZGNydW1iRGF0YSxcbiAgICAgICAgICAgIGluZGljYXRvckxpbms6IGluZGljYXRvckxpbmssXG4gICAgICAgICAgICBwZXJpb2RMaW5rOiBwZXJpb2RMaW5rLFxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsXG4gICAgICAgICAgICBwZXJpb2RzRGF0YTogcGVyaW9kc0RhdGEsXG4gICAgICAgICAgICBnZXRBY3Rpdml0eVRpdGxlOiB0aXRsZV8xLmRlZmF1bHQsXG4gICAgICAgICAgICBmZXRjaExpc3RpbmdzOiBmZXRjaExpc3RpbmdzLFxuICAgICAgICAgICAgaW5kaWNhdG9ySWQ6IGluZGljYXRvcklkLFxuICAgICAgICAgICAgdG9hc3REYXRhOiB0b2FzdERhdGEsXG4gICAgICAgICAgICBoYW5kbGVOYXZpZ2F0ZTogaGFuZGxlTmF2aWdhdGUsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuLy8gY29tcG9uZW50XG52YXIgSW5kZXhfMSA9IHJlcXVpcmUoXCJBY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0luZGV4XCIpO1xuLy9jb21wb3NhYmxlXG52YXIgdXRpbHNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS91dGlsc1wiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FjdHVhbFZhbHVlJyxcbiAgICBjb21wb25lbnRzOiB7IERvY3VtZW50TGluazogSW5kZXhfMS5Eb2N1bWVudExpbmsgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgLy8gdnVlIGluamVjdFxuICAgICAgICB2YXIgZGxUeXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHZhciBlbGVtZW50U3BhY2luZyA9ICdtYi0xJztcbiAgICAgICAgdmFyIGFjdHVhbFZhbHVlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFjdHVhbFZhbHVlOiBhY3R1YWxWYWx1ZSxcbiAgICAgICAgICAgIGVsZW1lbnRTcGFjaW5nOiBlbGVtZW50U3BhY2luZyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbixcbiAgICAgICAgICAgIGdldExvY2F0aW9uOiB1dGlsc18xLmRlZmF1bHQsXG4gICAgICAgICAgICBkbFR5cGU6IGRsVHlwZSxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG4vLyBjb21wb25lbnRcbnZhciBJbmRleF8xID0gcmVxdWlyZShcIkFjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvSW5kZXhcIik7XG4vL2NvbXBvc2FibGVcbnZhciB1dGlsc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3V0aWxzXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIlRhcmdldFZhbHVlXCIsXG4gICAgY29tcG9uZW50czogeyBEb2N1bWVudExpbms6IEluZGV4XzEuRG9jdW1lbnRMaW5rIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIC8vIHZ1ZSBpbmplY3RcbiAgICAgICAgLy8gY29uc3QgbGFuZ3VhZ2VUeXBlID0gaW5qZWN0KCd0eXBlcycpLmxhbmd1YWdlO1xuICAgICAgICB2YXIgZGxUeXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgdmFyIGVsZW1lbnRTcGFjaW5nID0gXCJtYi0xXCI7XG4gICAgICAgIHZhciB0YXJnZXRWYWx1ZSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YXJnZXRWYWx1ZTogdGFyZ2V0VmFsdWUsXG4gICAgICAgICAgICBlbGVtZW50U3BhY2luZzogZWxlbWVudFNwYWNpbmcsXG4gICAgICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24sXG4gICAgICAgICAgICBnZXRMb2NhdGlvbjogdXRpbHNfMS5kZWZhdWx0LFxuICAgICAgICAgICAgLy8gbGFuZ3VhZ2VUeXBlLFxuICAgICAgICAgICAgZGxUeXBlOiBkbFR5cGUsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuLy9jb21wb25lbnRcbnZhciBSZXN1bHRFbGVtZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1Jlc3VsdEVsZW1lbnQudnVlXCIpKTtcbnZhciBJbmRpY2F0b3JfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkFjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvSW5kaWNhdG9yLnZ1ZVwiKSk7XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbnZhciBQYWdlVGl0bGVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xuLy9jb21wb3NhYmxlXG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xudmFyIHRpdGxlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvdGl0bGVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdSZXN1bHREZXRhaWwnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgUmVzdWx0RWxlbWVudDogUmVzdWx0RWxlbWVudF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBJbmRpY2F0b3I6IEluZGljYXRvcl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBCdG46IExpbmtfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnZVRpdGxlOiBQYWdlVGl0bGVfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvYXN0OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsaW5rQ2xhc3NlcyA9ICdmbGV4IGl0ZW1zLWNlbnRlciB3LWZ1bGwgYmctd2hpdGUgcm91bmRlZCBwLTIgdGV4dC1zbSB0ZXh0LW4tNTAgZm9udC1ib2xkIGxlYWRpbmctbm9ybWFsIG1iLTIgc2hhZG93LWRlZmF1bHQnO1xuICAgICAgICB2YXIgcG9zaXRpb25ZID0gKDAsIHZ1ZV8xLnJlZikoMCk7XG4gICAgICAgIHZhciBzaG93U2lkZWJhciA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIHNjcmVlbldpZHRoID0gKDAsIHZ1ZV8xLnJlZikoMCk7XG4gICAgICAgIHZhciBfYSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgcmVzdWx0ID0gX2EucmVzdWx0LCBhY3Rpdml0eSA9IF9hLmFjdGl2aXR5O1xuICAgICAgICB2YXIgaGFzSW5kaWNhdG9ycyA9IHJlc3VsdC52YWx1ZS5pbmRpY2F0b3JzLmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHZhciByZXN1bHRzRGF0YSA9IHJlc3VsdC52YWx1ZS5yZXN1bHQ7XG4gICAgICAgIHZhciBhY3Rpdml0eUlkID0gYWN0aXZpdHkudmFsdWUuaWQsIGFjdGl2aXR5VGl0bGUgPSBhY3Rpdml0eS52YWx1ZS50aXRsZSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpLCByZXN1bHRUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKHJlc3VsdHNEYXRhLnRpdGxlWzBdLm5hcnJhdGl2ZSwgJ2VuJyksIHJlc3VsdExpbmsgPSBcIlwiLmNvbmNhdChhY3Rpdml0eUxpbmssIFwiL3Jlc3VsdC9cIikuY29uY2F0KHJlc3VsdC52YWx1ZS5pZCk7XG4gICAgICAgIHZhciBoYW5kbGVTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwb3NpdGlvblkudmFsdWUgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogQnJlYWRjcnVtYiBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgYnJlYWRjcnVtYkRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdZb3VyIEFjdGl2aXRpZXMnLFxuICAgICAgICAgICAgICAgIGxpbms6ICcvYWN0aXZpdGllcycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAoMCwgdGl0bGVfMS5kZWZhdWx0KShhY3Rpdml0eVRpdGxlLCAnZW4nKSxcbiAgICAgICAgICAgICAgICBsaW5rOiBhY3Rpdml0eUxpbmssXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiByZXN1bHRUaXRsZSxcbiAgICAgICAgICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIHZhciBpc3RvcFZpc2libGUgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvblkudmFsdWUgPT09IDA7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICAgICAgaWYgKHByb3BzLnRvYXN0Lm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBwcm9wcy50b2FzdC50eXBlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzEub25Vbm1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNhbGNXaWR0aCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2FsY1dpZHRoID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBzY3JlZW5XaWR0aC52YWx1ZSA9IGV2ZW50LnRhcmdldC5pbm5lcldpZHRoO1xuICAgICAgICAgICAgaWYgKHNjcmVlbldpZHRoLnZhbHVlID4gMTAyNCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNob3dTaWRlYmFyLnZhbHVlICYmXG4gICAgICAgICAgICAgICAgICAgIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgICgwLCB2dWVfMS53YXRjaCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc2hvd1NpZGViYXIudmFsdWU7IH0sIGZ1bmN0aW9uIChzaWRlYmFyKSB7XG4gICAgICAgICAgICBpZiAoc2lkZWJhcikge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY3Rpdml0eUxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIHJlc3VsdFRpdGxlOiByZXN1bHRUaXRsZSxcbiAgICAgICAgICAgIHJlc3VsdExpbms6IHJlc3VsdExpbmssXG4gICAgICAgICAgICBsaW5rQ2xhc3NlczogbGlua0NsYXNzZXMsXG4gICAgICAgICAgICBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCxcbiAgICAgICAgICAgIGhhc0luZGljYXRvcnM6IGhhc0luZGljYXRvcnMsXG4gICAgICAgICAgICByZXN1bHRzRGF0YTogcmVzdWx0c0RhdGEsXG4gICAgICAgICAgICBicmVhZGNydW1iRGF0YTogYnJlYWRjcnVtYkRhdGEsXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIHNob3dTaWRlYmFyOiBzaG93U2lkZWJhcixcbiAgICAgICAgICAgIGlzdG9wVmlzaWJsZTogaXN0b3BWaXNpYmxlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG52YXIgSW5kZXhfMSA9IHJlcXVpcmUoXCIuL2VsZW1lbnRzL0luZGV4XCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBY3Rpdml0eUVsZW1lbnQnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgVGl0bGVEZXNjcmlwdGlvbjogSW5kZXhfMS5UaXRsZURlc2NyaXB0aW9uLFxuICAgICAgICBEb2N1bWVudExpbms6IEluZGV4XzEuRG9jdW1lbnRMaW5rLFxuICAgICAgICBSZWZlcmVuY2U6IEluZGV4XzEuUmVmZXJlbmNlLFxuICAgICAgICBSZXN1bHRUeXBlOiBJbmRleF8xLlJlc3VsdFR5cGUsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnROYW1lOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZWRpdFVybDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBob3ZlclRleHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX2EgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcyksIGRhdGEgPSBfYS5kYXRhLCB0eXBlcyA9IF9hLnR5cGVzLCBlbGVtZW50RGF0YSA9IGRhdGEudmFsdWUsIHJlc3VsdFR5cGUgPSB0eXBlcy52YWx1ZS5yZXN1bHRUeXBlLCByZXN1bHRWb2NhYnVsYXJ5ID0gdHlwZXMudmFsdWUucmVzdWx0Vm9jYWJ1bGFyeSwgbGFuZ3VhZ2UgPSB0eXBlcy52YWx1ZS5sYW5ndWFnZTtcbiAgICAgICAgcmV0dXJuIHsgZWxlbWVudERhdGE6IGVsZW1lbnREYXRhLCByZXN1bHRUeXBlOiByZXN1bHRUeXBlLCByZXN1bHRWb2NhYnVsYXJ5OiByZXN1bHRWb2NhYnVsYXJ5LCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbi8vIGNvbXBvbmVudHNcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgVGFibGVQYWdpbmF0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RhYmxlUGFnaW5hdGlvbi52dWVcIikpO1xudmFyIFBhZ2VUaXRsZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9QYWdlVGl0bGUudnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG52YXIgRGVsZXRlQWN0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL0RlbGV0ZUFjdGlvbi52dWVcIikpO1xuLy8gY29tcG9zYWJsZVxudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUmVzdWx0c0xpc3QnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgQnRuOiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnaW5hdGlvbjogVGFibGVQYWdpbmF0aW9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgRGVsZXRlQWN0aW9uOiBEZWxldGVBY3Rpb25fdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgYWN0aXZpdHkgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuYWN0aXZpdHk7XG4gICAgICAgIHZhciBhY3Rpdml0eUlkID0gYWN0aXZpdHkudmFsdWUuaWQsIGFjdGl2aXR5VGl0bGUgPSBhY3Rpdml0eS52YWx1ZS50aXRsZSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpO1xuICAgICAgICB2YXIgdG9hc3REYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciByZXN1bHRzRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgaXNFbXB0eSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnWW91ciBBY3Rpdml0aWVzJyxcbiAgICAgICAgICAgICAgICBsaW5rOiAnL2FjdGl2aXRpZXMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogKDAsIHRpdGxlXzEuZGVmYXVsdCkoYWN0aXZpdHlUaXRsZSwgJ2VuJyksXG4gICAgICAgICAgICAgICAgbGluazogYWN0aXZpdHlMaW5rLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1Jlc3VsdCBMaXN0JyxcbiAgICAgICAgICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU5hdmlnYXRlKHBhdGgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcGF0aDtcbiAgICAgICAgfVxuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCwgXCIvcmVzdWx0cy9wYWdlLzFcIikpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHRzRGF0YSwgcmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHkudmFsdWUgPSByZXNwb25zZS5kYXRhLmRhdGEubGVuZ3RoID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy50b2FzdC5tZXNzYWdlICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSBwcm9wcy50b2FzdC5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICBmdW5jdGlvbiBmZXRjaExpc3RpbmdzKGFjdGl2ZV9wYWdlKSB7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAuZ2V0KFwiL2FjdGl2aXR5L1wiLmNvbmNhdChhY3Rpdml0eUlkLCBcIi9yZXN1bHRzL3BhZ2UvXCIpICsgYWN0aXZlX3BhZ2UpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0c0RhdGEsIHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIGlzRW1wdHkudmFsdWUgPSByZXNwb25zZS5kYXRhID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJvdmlkZVxuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3BhcmVudEl0ZW1JZCcsIGFjdGl2aXR5SWQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhLFxuICAgICAgICAgICAgYWN0aXZpdHlMaW5rOiBhY3Rpdml0eUxpbmssXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgcmVzdWx0c0RhdGE6IHJlc3VsdHNEYXRhLFxuICAgICAgICAgICAgZ2V0QWN0aXZpdHlUaXRsZTogdGl0bGVfMS5kZWZhdWx0LFxuICAgICAgICAgICAgZmV0Y2hMaXN0aW5nczogZmV0Y2hMaXN0aW5ncyxcbiAgICAgICAgICAgIGhhbmRsZU5hdmlnYXRlOiBoYW5kbGVOYXZpZ2F0ZSxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJSZXN1bHREb2N1bWVudExpbmtcIixcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgZGxEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgZGxEYXRhOiBkbERhdGEgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG4vL2NvbXBvc2FibGVcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG52YXIgdGl0bGVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS90aXRsZVwiKSk7XG4vL2NvbXBvbmVudHNcbnZhciBIYXZlTm90QWRkZWRZZXRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvSGF2ZU5vdEFkZGVkWWV0LnZ1ZVwiKSk7XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUmVzdWx0SW5kaWNhdG9yJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIE5vdFlldDogSGF2ZU5vdEFkZGVkWWV0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEJ0bjogTGlua192dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvb2xUaXA6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLnJlc3VsdDtcbiAgICAgICAgdmFyIGluZGljYXRvckRhdGEgPSByZXN1bHQudmFsdWUuaW5kaWNhdG9ycy5yZXZlcnNlKCk7XG4gICAgICAgIHJldHVybiB7IGluZGljYXRvckRhdGE6IGluZGljYXRvckRhdGEsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LCBnZXRBY3Rpdml0eVRpdGxlOiB0aXRsZV8xLmRlZmF1bHQgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1Jlc3VsdFJlZmVyZW5jZScsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIHJlZmVyZW5jZURhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VEYXRhOiByZWZlcmVuY2VEYXRhIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdSZXN1bHRUeXBlJyxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciB0eXBlRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7IHR5cGVEYXRhOiB0eXBlRGF0YSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUmVzdWx0VEQnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciB0ZERhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyB0ZERhdGE6IHRkRGF0YSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbi8vY29tcG9uZW50c1xudmFyIExpbmtfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvYnV0dG9ucy9MaW5rLnZ1ZVwiKSk7XG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbi8vY29tcG9zYWJsZVxudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbnZhciBUcmFuc2FjdGlvbkVsZW1lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vVHJhbnNhY3Rpb25FbGVtZW50LnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uRGV0YWlsJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFRyYW5zYWN0aW9uRWxlbWVudDogVHJhbnNhY3Rpb25FbGVtZW50X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEJ0bjogTGlua192dWVfMS5kZWZhdWx0LFxuICAgICAgICBQYWdlVGl0bGU6IFBhZ2VUaXRsZV92dWVfMS5kZWZhdWx0LFxuICAgICAgICBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBhY3Rpdml0eToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zYWN0aW9uOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2FzdDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX2EgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcyksIGFjdGl2aXR5ID0gX2EuYWN0aXZpdHksIHRyYW5zYWN0aW9uID0gX2EudHJhbnNhY3Rpb247XG4gICAgICAgIHZhciBsaW5rQ2xhc3NlcyA9ICdmbGV4IGl0ZW1zLWNlbnRlciB3LWZ1bGwgYmctd2hpdGUgcm91bmRlZCBwLTIgdGV4dC1zbSB0ZXh0LW4tNTAgZm9udC1ib2xkIGxlYWRpbmctcmVsYXhlZCBtYi0yIHNoYWRvdy1kZWZhdWx0JztcbiAgICAgICAgdmFyIHNob3dTaWRlYmFyID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgcG9zaXRpb25ZID0gKDAsIHZ1ZV8xLnJlZikoMCk7XG4gICAgICAgIHZhciBzY3JlZW5XaWR0aCA9ICgwLCB2dWVfMS5yZWYpKDApO1xuICAgICAgICB2YXIgdG9hc3REYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBoYW5kbGVTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwb3NpdGlvblkudmFsdWUgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGlzdG9wVmlzaWJsZSA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uWS52YWx1ZSA9PT0gMDtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHRpdGxlc1xuICAgICAgICB2YXIgdHJhbnNhY3Rpb25EYXRhID0gdHJhbnNhY3Rpb24udmFsdWUudHJhbnNhY3Rpb247XG4gICAgICAgIHZhciBjYWxjV2lkdGggPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHNjcmVlbldpZHRoLnZhbHVlID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XG4gICAgICAgICAgICBpZiAoc2NyZWVuV2lkdGgudmFsdWUgPiAxMDI0KSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2hvd1NpZGViYXIudmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGFjdGl2aXR5SWQgPSBhY3Rpdml0eS52YWx1ZS5pZCwgYWN0aXZpdHlUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKGFjdGl2aXR5LnZhbHVlLnRpdGxlLCAnZW4nKSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpLCB0cmFuc2FjdGlvbkxpbmsgPSBcIlwiLmNvbmNhdChhY3Rpdml0eUxpbmssIFwiL3RyYW5zYWN0aW9uL1wiKS5jb25jYXQodHJhbnNhY3Rpb24udmFsdWUuaWQpO1xuICAgICAgICAoMCwgdnVlXzEub25Vbm1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNhbGNXaWR0aCk7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzEud2F0Y2gpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNob3dTaWRlYmFyLnZhbHVlOyB9LCBmdW5jdGlvbiAoc2lkZWJhcikge1xuICAgICAgICAgICAgaWYgKHNpZGViYXIpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCcmVhZGNydW1iIGRhdGFcbiAgICAgICAgICovXG4gICAgICAgIHZhciBicmVhZGNydW1iRGF0YSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1lvdXIgQWN0aXZpdGllcycsXG4gICAgICAgICAgICAgICAgbGluazogJy9hY3Rpdml0eScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBhY3Rpdml0eVRpdGxlLFxuICAgICAgICAgICAgICAgIGxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdUcmFuc2FjdGlvbicsXG4gICAgICAgICAgICAgICAgbGluazogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICAgICAgaWYgKHByb3BzLnRvYXN0Lm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBwcm9wcy50b2FzdC50eXBlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXNNYW5kYXRvcnlJY29uID0gZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgIHJldHVybiAoci50b1N0cmluZygpID09PSAndmFsdWUnIHx8XG4gICAgICAgICAgICAgICAgci50b1N0cmluZygpID09PSAndHJhbnNhY3Rpb25fdHlwZScgfHxcbiAgICAgICAgICAgICAgICByLnRvU3RyaW5nKCkgPT09ICd0cmFuc2FjdGlvbl9kYXRlJyk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIGNvbnN0IGxhbmd1YWdlID0gZ2xvYmFsX2xhbmcgYXMgVHJhbnNsYXRpb247XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbF9sYW5nXCJdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWN0aXZpdHlUaXRsZTogYWN0aXZpdHlUaXRsZSxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgdHJhbnNhY3Rpb25EYXRhOiB0cmFuc2FjdGlvbkRhdGEsXG4gICAgICAgICAgICBsaW5rQ2xhc3NlczogbGlua0NsYXNzZXMsXG4gICAgICAgICAgICBicmVhZGNydW1iRGF0YTogYnJlYWRjcnVtYkRhdGEsXG4gICAgICAgICAgICBhY3Rpdml0eUxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uTGluazogdHJhbnNhY3Rpb25MaW5rLFxuICAgICAgICAgICAgdG9hc3REYXRhOiB0b2FzdERhdGEsXG4gICAgICAgICAgICBpc01hbmRhdG9yeUljb246IGlzTWFuZGF0b3J5SWNvbixcbiAgICAgICAgICAgIHNob3dTaWRlYmFyOiBzaG93U2lkZWJhcixcbiAgICAgICAgICAgIGlzdG9wVmlzaWJsZTogaXN0b3BWaXNpYmxlLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vLi4vLi4vLi4vY29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCIpKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vLi4vLi4vLi4vY29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciBJbmRleF8xID0gcmVxdWlyZShcIi4vZWxlbWVudHMvSW5kZXhcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJBY3Rpdml0eUVsZW1lbnRcIixcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIERlc2NyaXB0aW9uOiBJbmRleF8xLkRlc2NyaXB0aW9uLFxuICAgICAgICBBaWRUeXBlOiBJbmRleF8xLkFpZFR5cGUsXG4gICAgICAgIFRyYW5zYWN0aW9uVHlwZTogSW5kZXhfMS5UcmFuc2FjdGlvblR5cGUsXG4gICAgICAgIFRyYW5zYWN0aW9uRGF0ZTogSW5kZXhfMS5UcmFuc2FjdGlvbkRhdGUsXG4gICAgICAgIFZhbHVlOiBJbmRleF8xLlZhbHVlLFxuICAgICAgICBQcm92aWRlck9yZ2FuaXphdGlvbjogSW5kZXhfMS5Qcm92aWRlck9yZ2FuaXphdGlvbixcbiAgICAgICAgUmVjZWl2ZXJPcmdhbml6YXRpb246IEluZGV4XzEuUmVjZWl2ZXJPcmdhbml6YXRpb24sXG4gICAgICAgIERpc2J1cnNlbWVudENoYW5uZWw6IEluZGV4XzEuRGlzYnVyc2VtZW50Q2hhbm5lbCxcbiAgICAgICAgU2VjdG9yOiBJbmRleF8xLlNlY3RvcixcbiAgICAgICAgUmVjaXBpZW50Q291bnRyeTogSW5kZXhfMS5SZWNpcGllbnRDb3VudHJ5LFxuICAgICAgICBSZWNpcGllbnRSZWdpb246IEluZGV4XzEuUmVjaXBpZW50UmVnaW9uLFxuICAgICAgICBGbG93VHlwZTogSW5kZXhfMS5GbG93VHlwZSxcbiAgICAgICAgRmluYW5jZVR5cGU6IEluZGV4XzEuRmluYW5jZVR5cGUsXG4gICAgICAgIFRpZWRTdGF0dXM6IEluZGV4XzEuVGllZFN0YXR1cyxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudE5hbWU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBlZGl0VXJsOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IFwiXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgaG92ZXJUZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiBcIlwiLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX2EgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcyksIGRhdGEgPSBfYS5kYXRhLCB0eXBlcyA9IF9hLnR5cGVzLCBlbGVtZW50RGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKShcInR5cGVzXCIsIHR5cGVzKTtcbiAgICAgICAgZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VzKGxhbmd1YWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gbGFuZ3VhZ2UubWFwKGZ1bmN0aW9uIChlbnRyeSkgeyByZXR1cm4gZW50cnkubGFuZ3VhZ2U7IH0pLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZWxlbWVudERhdGE6IGVsZW1lbnREYXRhLFxuICAgICAgICAgICAgZ2V0TGFuZ3VhZ2VzOiBnZXRMYW5ndWFnZXMsXG4gICAgICAgICAgICBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbi8vY29tcG9uZW50c1xudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBUYWJsZVBhZ2luYXRpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZVwiKSk7XG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbnZhciBEZWxldGVBY3Rpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvRGVsZXRlQWN0aW9uLnZ1ZVwiKSk7XG4vL2NvbXBvc2FibGVcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG52YXIgdGl0bGVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS90aXRsZVwiKSk7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbi8vIHRvZ2dsZSBzdGF0ZSBmb3IgbW9kYWwgcG9wdXBcbnZhciBfYSA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBkZWxldGVWYWx1ZSA9IF9hWzBdLCBkZWxldGVUb2dnbGUgPSBfYVsxXTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnVHJhbnNhY3Rpb25MaXN0JyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJ0bjogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2luYXRpb246IFRhYmxlUGFnaW5hdGlvbl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBQYWdlVGl0bGU6IFBhZ2VUaXRsZV92dWVfMS5kZWZhdWx0LFxuICAgICAgICBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIERlbGV0ZUFjdGlvbjogRGVsZXRlQWN0aW9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBhY3Rpdml0eToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zYWN0aW9uczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgYWN0aXZpdHkgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuYWN0aXZpdHk7XG4gICAgICAgIHZhciBhY3Rpdml0eUlkID0gYWN0aXZpdHkudmFsdWUuaWQsIGFjdGl2aXR5VGl0bGUgPSAoMCwgdGl0bGVfMS5kZWZhdWx0KShhY3Rpdml0eS52YWx1ZS50aXRsZSwgJ2VuJyksIGFjdGl2aXR5TGluayA9IFwiL2FjdGl2aXR5L1wiLmNvbmNhdChhY3Rpdml0eUlkKTtcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgdHJhbnNhY3Rpb25zRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCwgXCIvdHJhbnNhY3Rpb25zL3BhZ2UvMVwiKSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRyYW5zYWN0aW9uc0RhdGEsIHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy50b2FzdC5tZXNzYWdlICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSBwcm9wcy50b2FzdC5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICBmdW5jdGlvbiBoYW5kbGVOYXZpZ2F0ZShwYXRoKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZmV0Y2hMaXN0aW5ncyhhY3RpdmVfcGFnZSkge1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLmdldChcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCwgXCIvdHJhbnNhY3Rpb25zL3BhZ2UvXCIpICsgYWN0aXZlX3BhZ2UpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNhY3Rpb25zRGF0YSwgcmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQcm92aWRlXG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgncGFyZW50SXRlbUlkJywgYWN0aXZpdHlJZCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCcmVhZGNydW1iIGRhdGFcbiAgICAgICAgICovXG4gICAgICAgIHZhciBicmVhZGNydW1iRGF0YSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1lvdXIgQWN0aXZpdGllcycsXG4gICAgICAgICAgICAgICAgbGluazogJy9hY3Rpdml0aWVzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGFjdGl2aXR5VGl0bGUsXG4gICAgICAgICAgICAgICAgbGluazogYWN0aXZpdHlMaW5rLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1RyYW5zYWN0aW9uIExpc3QnLFxuICAgICAgICAgICAgICAgIGxpbms6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJyZWFkY3J1bWJEYXRhOiBicmVhZGNydW1iRGF0YSxcbiAgICAgICAgICAgIGFjdGl2aXR5TGluazogYWN0aXZpdHlMaW5rLFxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsXG4gICAgICAgICAgICB0cmFuc2FjdGlvbnNEYXRhOiB0cmFuc2FjdGlvbnNEYXRhLFxuICAgICAgICAgICAgZ2V0QWN0aXZpdHlUaXRsZTogdGl0bGVfMS5kZWZhdWx0LFxuICAgICAgICAgICAgZmV0Y2hMaXN0aW5nczogZmV0Y2hMaXN0aW5ncyxcbiAgICAgICAgICAgIHRvYXN0RGF0YTogdG9hc3REYXRhLFxuICAgICAgICAgICAgZGVsZXRlVmFsdWU6IGRlbGV0ZVZhbHVlLFxuICAgICAgICAgICAgZGVsZXRlVG9nZ2xlOiBkZWxldGVUb2dnbGUsXG4gICAgICAgICAgICBoYW5kbGVOYXZpZ2F0ZTogaGFuZGxlTmF2aWdhdGUsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdUcmFuc2FjdGlvbkFpZFR5cGUnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGF0RGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHZhciB0eXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhdERhdGE6IGF0RGF0YSxcbiAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdUcmFuc2FjdGlvbkRlc2NyaXB0aW9uJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciB0ZERhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgdHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyB0ZERhdGE6IHRkRGF0YSwgdHlwZTogdHlwZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnVHJhbnNhY3Rpb25EaXNidXJzZW1lbnRDaGFubmVsJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBjb2RlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgY29kZTogY29kZSwgdHlwZTogdHlwZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnVHJhbnNhY3Rpb25GaW5hbmNlVHlwZScsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgZmluYW5jZURhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgdHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyBmaW5hbmNlRGF0YTogZmluYW5jZURhdGEsIHR5cGU6IHR5cGUgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uRmxvd1R5cGUnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGZsb3dEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgZmxvd0RhdGE6IGZsb3dEYXRhLCB0eXBlOiB0eXBlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdUcmFuc2FjdGlvblByb3ZpZGVyT3JnYW5pc2F0aW9uJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBQb0RhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgdHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyBQb0RhdGE6IFBvRGF0YSwgdHlwZTogdHlwZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnVHJhbnNhY3Rpb25SZWNlaXZlck9yZ2FuaXNhdGlvbicsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgUG9EYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgUG9EYXRhOiBQb0RhdGEsIHR5cGU6IHR5cGUgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uUmVjaXBpZW50Q291bnRyeScsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgY291bnRyeSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHZhciB0eXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHJldHVybiB7IGNvdW50cnk6IGNvdW50cnksIHR5cGU6IHR5cGUgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJUcmFuc2FjdGlvblJlY2lwaWVudFJlZ2lvblwiLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGNvdW50cnkgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgdHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIHJldHVybiB7IGNvdW50cnk6IGNvdW50cnksIHR5cGU6IHR5cGUgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJUcmFuc2FjdGlvblNlY3RvclwiLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KShcInR5cGVzXCIpO1xuICAgICAgICB2YXIgc2VjdG9yID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNlY3Rvcjogc2VjdG9yLFxuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uVGllZFN0YXR1cycsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgdHNEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgdHNEYXRhOiB0c0RhdGEsIHR5cGU6IHR5cGUgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLy4uLy4uLy4uLy4uL2NvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uRGF0ZScsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgZGF0ZSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7IGRhdGU6IGRhdGUsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0IH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdUcmFuc2FjdGlvblR5cGUnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGNvZGUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgdHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyBjb2RlOiBjb2RlLCB0eXBlOiB0eXBlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi8uLi8uLi8uLi8uLi9jb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6IFwiVHJhbnNhY3Rpb25WYWx1ZVwiLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIHZhbHVlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlLCBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIEhvdmVyVGV4dF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCIpKTtcbnZhciBQcm9ncmVzc0xvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWVcIikpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdBY3Rpdml0eVVwbG9hZCcsXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGZpbGUgPSAoMCwgdnVlXzIucmVmKSgpLCBlcnJvciA9ICgwLCB2dWVfMi5yZWYpKCcnKSwgbG9hZGVyID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpLCBsb2FkZXJUZXh0ID0gKDAsIHZ1ZV8yLnJlZikoJ1BsZWFzZSBXYWl0Jyk7XG4gICAgICAgIGZ1bmN0aW9uIHVwbG9hZEZpbGUoKSB7XG4gICAgICAgICAgICBsb2FkZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgbG9hZGVyVGV4dC52YWx1ZSA9ICdVcGxvYWRpbmcgLmNzdi8ueG1sIGZpbGUnO1xuICAgICAgICAgICAgdmFyIGFjdGl2aXR5ID0gZmlsZS52YWx1ZS5maWxlcy5sZW5ndGggPyBmaWxlLnZhbHVlLmZpbGVzWzBdIDogJyc7XG4gICAgICAgICAgICB2YXIgY29uZmlnID0ge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBkYXRhLmFwcGVuZCgnYWN0aXZpdHknLCBhY3Rpdml0eSk7XG4gICAgICAgICAgICBlcnJvci52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoJy9pbXBvcnQnLCBkYXRhLCBjb25maWcpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZS52YWx1ZS5maWxlcy5sZW5ndGggJiYgKChfYSA9IHJlcyA9PT0gbnVsbCB8fCByZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlcy5kYXRhKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc3VjY2VzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvaW1wb3J0L2xpc3QnO1xuICAgICAgICAgICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLnZhbHVlID0gT2JqZWN0LnZhbHVlcyhyZXMuZGF0YS5lcnJvcnMpLmpvaW4oJyAnKTtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGVycm9yLnZhbHVlID0gJ0Vycm9yIGhhcyBvY2N1cmVkIHdoaWxlIHVwbG9hZGluZyBmaWxlLic7XG4gICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBkb3dubG9hZEV4Y2VsKCkge1xuICAgICAgICAgICAgKDAsIGF4aW9zXzEuZGVmYXVsdCkoe1xuICAgICAgICAgICAgICAgIHVybDogJ2ltcG9ydC9kb3dubG9hZC9jc3YnLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLFxuICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZS5kYXRhXSwge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vY3N2JyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICBsaW5rLmRvd25sb2FkID0gJ2Nzdl90ZXN0LmNzdic7XG4gICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgZmlsZTogZmlsZSwgZXJyb3I6IGVycm9yLCBsb2FkZXI6IGxvYWRlciwgbG9hZGVyVGV4dDogbG9hZGVyVGV4dCwgdXBsb2FkRmlsZTogdXBsb2FkRmlsZSwgZG93bmxvYWRFeGNlbDogZG93bmxvYWRFeGNlbCwgQnRuQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCwgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCwgTG9hZGVyOiBQcm9ncmVzc0xvYWRlcl92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIFByb2dyZXNzTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1Byb2dyZXNzTG9hZGVyLnZ1ZVwiKSk7XG52YXIgSW1wb3J0UGxhY2Vob2xkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vSW1wb3J0UGxhY2Vob2xkZXIudnVlXCIpKTtcbnZhciBMaXN0RWxlbWVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9MaXN0RWxlbWVudC52dWVcIikpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdJbXBvcnRMaXN0JyxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgYWN0aXZpdGllcyA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgc2VsZWN0ZWRBY3Rpdml0aWVzID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKShbXSk7XG4gICAgICAgIHZhciBzZWxlY3RlZENvdW50ID0gKDAsIHZ1ZV8yLnJlZikoMCk7XG4gICAgICAgIHZhciBhY3Rpdml0aWVzTGVuZ3RoID0gKDAsIHZ1ZV8yLnJlZikoMCk7XG4gICAgICAgIHZhciBsb2FkZXIgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBzZWxlY3RBbGwgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBsb2FkZXJUZXh0ID0gKDAsIHZ1ZV8yLnJlZikoJ1BsZWFzZSBXYWl0Jyk7XG4gICAgICAgIHZhciB0aW1lcjtcbiAgICAgICAgKDAsIHZ1ZV8yLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGxvYWRlclRleHQudmFsdWUgPSAnUGxlYXNlIFdhaXQnO1xuICAgICAgICAgICAgdmFyIGNvdW50ID0gMDtcbiAgICAgICAgICAgIHRpbWVyID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAuZ2V0KCcvaW1wb3J0L2NoZWNrX3N0YXR1cycpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpdml0aWVzLCByZXMuZGF0YS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZpdGllc0xlbmd0aC52YWx1ZSA9IHJlcy5kYXRhLmRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5zdGF0dXMgPT09IFwiZXJyb3JcIiB8fCAoIXJlcy5kYXRhLmRhdGEgJiYgY291bnQgPj0gNSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL2FjdGl2aXRpZXMnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9hY3Rpdml0aWVzJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlU2VsZWN0ZWRBY3Rpdml0aWVzKGFjdGl2aXR5X2lkKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBzZWxlY3RlZEFjdGl2aXRpZXMuaW5kZXhPZihhY3Rpdml0eV9pZCk7XG4gICAgICAgICAgICBpZiAoYWN0aXZpdGllc1thY3Rpdml0eV9pZF1bJ2Vycm9ycyddLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQWN0aXZpdGllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENvdW50LnZhbHVlID0gc2VsZWN0ZWRDb3VudC52YWx1ZSAtIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEFjdGl2aXRpZXMucHVzaChhY3Rpdml0eV9pZCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ291bnQudmFsdWUgPSBzZWxlY3RlZENvdW50LnZhbHVlICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2VsZWN0QWxsQWN0aXZpdGllcygpIHtcbiAgICAgICAgICAgIHNlbGVjdEFsbC52YWx1ZSA9ICFzZWxlY3RBbGwudmFsdWU7XG4gICAgICAgICAgICBzZWxlY3RlZENvdW50LnZhbHVlID0gMDtcbiAgICAgICAgICAgIHNlbGVjdGVkQWN0aXZpdGllcy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoYWN0aXZpdGllcykuZm9yRWFjaChmdW5jdGlvbiAoYWN0aXZpdHlfaWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBzZWxlY3RlZEFjdGl2aXRpZXMuaW5kZXhPZihhY3Rpdml0eV9pZCk7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2aXRpZXNbYWN0aXZpdHlfaWRdWydlcnJvcnMnXS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdEFsbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBY3Rpdml0aWVzLnB1c2goYWN0aXZpdHlfaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb3VudC52YWx1ZSA9IHNlbGVjdGVkQ291bnQudmFsdWUgKyAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBY3Rpdml0aWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghc2VsZWN0QWxsLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb3VudC52YWx1ZSA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaW1wb3J0QWN0aXZpdGllcygpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gJ0ltcG9ydGluZyAuY3N2Ly54bWwgZmlsZSc7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wb3N0KCcvaW1wb3J0L2FjdGl2aXR5Jywge1xuICAgICAgICAgICAgICAgIGFjdGl2aXRpZXM6IHNlbGVjdGVkQWN0aXZpdGllcyxcbiAgICAgICAgICAgICAgICBmaWxldHlwZTogJ2NzdicsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvYWN0aXZpdGllcyc7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL2FjdGl2aXRpZXMnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgYWN0aXZpdGllczogYWN0aXZpdGllcywgc2VsZWN0ZWRBY3Rpdml0aWVzOiBzZWxlY3RlZEFjdGl2aXRpZXMsIHNlbGVjdGVkQ291bnQ6IHNlbGVjdGVkQ291bnQsIGFjdGl2aXRpZXNMZW5ndGg6IGFjdGl2aXRpZXNMZW5ndGgsIGxvYWRlcjogbG9hZGVyLCBzZWxlY3RBbGw6IHNlbGVjdEFsbCwgbG9hZGVyVGV4dDogbG9hZGVyVGV4dCwgdGltZXI6IHRpbWVyLCB1cGRhdGVTZWxlY3RlZEFjdGl2aXRpZXM6IHVwZGF0ZVNlbGVjdGVkQWN0aXZpdGllcywgc2VsZWN0QWxsQWN0aXZpdGllczogc2VsZWN0QWxsQWN0aXZpdGllcywgaW1wb3J0QWN0aXZpdGllczogaW1wb3J0QWN0aXZpdGllcywgQnRuQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCwgTG9hZGVyOiBQcm9ncmVzc0xvYWRlcl92dWVfMS5kZWZhdWx0LCBQbGFjZWhvbGRlcjogSW1wb3J0UGxhY2Vob2xkZXJfdnVlXzEuZGVmYXVsdCwgTGlzdEVsZW1lbnQ6IExpc3RFbGVtZW50X3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIFNoaW1tZXJMb2FkaW5nX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnSW1wb3J0UGxhY2Vob2xkZXInLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IFNoaW1tZXI6IFNoaW1tZXJMb2FkaW5nX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdMaXN0RWxlbWVudCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdGVkQWN0aXZpdGllczoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBlbWl0czogW1wic2VsZWN0RWxlbWVudFwiXSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2UsIGVtaXQgPSBfYS5lbWl0O1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgdmFyIGFjdGl2ZSA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGFjdGl2aXRpZXMgPSAoMCwgdnVlXzIucmVhY3RpdmUpKFtdKTtcbiAgICAgICAgZnVuY3Rpb24gdG9nZ2xlRXJyb3IoKSB7XG4gICAgICAgICAgICBhY3RpdmUudmFsdWUgPSAhYWN0aXZlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzZWxlY3RFbGVtZW50ID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgICAgICBlbWl0KFwic2VsZWN0RWxlbWVudFwiLCBpbmRleCk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBjb3VudEVycm9ycyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBjb3VudCA9IDA7XG4gICAgICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBwcm9wcy5hY3Rpdml0eVtcImVycm9yc1wiXSkge1xuICAgICAgICAgICAgICAgIGNvdW50ICs9IE9iamVjdC5rZXlzKHByb3BzLmFjdGl2aXR5W1wiZXJyb3JzXCJdW2luZGV4XSkubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xuICAgICAgICB9O1xuICAgICAgICAoMCwgdnVlXzIud2F0Y2gpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHByb3BzLnNlbGVjdGVkQWN0aXZpdGllczsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHNlbGVjdGVkRGF0YSA9IEpTT04ucGFyc2UocHJvcHMuc2VsZWN0ZWRBY3Rpdml0aWVzKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpdml0aWVzLCBzZWxlY3RlZERhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYWN0aXZpdGllcy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgcHJvcHM6IHByb3BzLCBlbWl0OiBlbWl0LCBhY3RpdmU6IGFjdGl2ZSwgYWN0aXZpdGllczogYWN0aXZpdGllcywgdG9nZ2xlRXJyb3I6IHRvZ2dsZUVycm9yLCBzZWxlY3RFbGVtZW50OiBzZWxlY3RFbGVtZW50LCBjb3VudEVycm9yczogY291bnRFcnJvcnMgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIEhvdmVyVGV4dF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCIpKTtcbnZhciBSYWRpYWxQcm9ncmVzc0Jhcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9SYWRpYWxQcm9ncmVzc0Jhci52dWVcIikpO1xudmFyIE9yZ2FuaXNhdGlvbkVsZW1lbnRzX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL09yZ2FuaXNhdGlvbkVsZW1lbnRzLnZ1ZVwiKSk7XG52YXIgT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWwudnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG52YXIgT3JnYW5pemF0aW9uUHVibGlzaFVucHVibGlzaEJ1dHRvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9Pcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uLnZ1ZVwiKSk7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBjb3JlXzIgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIEVycm9yUG9wVXBfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvRXJyb3JQb3BVcC52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdPcmdhbmlzYXRpb25EYXRhJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFJhZGlhbFByb2dyZXNzQmFyOiBSYWRpYWxQcm9ncmVzc0Jhcl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBPcmdhbmlzYXRpb25FbGVtZW50czogT3JnYW5pc2F0aW9uRWxlbWVudHNfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWw6IE9yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUHVibGlzaFVucHVibGlzaDogT3JnYW5pemF0aW9uUHVibGlzaFVucHVibGlzaEJ1dHRvbl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBFcnJvclBvcFVwOiBFcnJvclBvcFVwX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBlbGVtZW50czoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZ2FuaXphdGlvbjoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHByb2dyZXNzOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG1hbmRhdG9yeUNvbXBsZXRlZDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgdG9hc3REYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBlcnJvckRhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHNob3dTaWRlYmFyID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgc2NyZWVuV2lkdGggPSAoMCwgdnVlXzEucmVmKSgwKTtcbiAgICAgICAgdmFyIF9hID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIHB1Ymxpc2hWYWx1ZSA9IF9hWzBdLCBwdWJsaXNoVG9nZ2xlID0gX2FbMV07XG4gICAgICAgIHZhciBfYiA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCB1bnB1Ymxpc2hWYWx1ZSA9IF9iWzBdLCB1bnB1Ymxpc2hUb2dnbGUgPSBfYlsxXTtcbiAgICAgICAgdmFyIF9jID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIGRlbGV0ZVZhbHVlID0gX2NbMF0sIGRlbGV0ZVRvZ2dsZSA9IF9jWzFdO1xuICAgICAgICB2YXIgX2QgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgZG93bmxvYWRWYWx1ZSA9IF9kWzBdLCBkb3dubG9hZFRvZ2dsZSA9IF9kWzFdO1xuICAgICAgICB2YXIgcG9zaXRpb25ZID0gKDAsIHZ1ZV8xLnJlZikoMCk7XG4gICAgICAgIHZhciB0b2dnbGVTaWRlYmFyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2hvd1NpZGViYXIudmFsdWUgPSAhc2hvd1NpZGViYXIudmFsdWU7XG4gICAgICAgIH07XG4gICAgICAgICgwLCB2dWVfMS5vblVubW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgY2FsY1dpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICAgICAgICBpZiAocHJvcHMudG9hc3QubWVzc2FnZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGUgPT09ICdzdWNjZXNzJyA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSBwcm9wcy50b2FzdC5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGNhbGNXaWR0aCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgc2NyZWVuV2lkdGgudmFsdWUgPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgIGlmIChzY3JlZW5XaWR0aC52YWx1ZSA+IDEwMjQpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzaG93U2lkZWJhci52YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgaGFuZGxlU2Nyb2xsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcG9zaXRpb25ZLnZhbHVlID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBpc3RvcFZpc2libGUgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHBvc2l0aW9uWS52YWx1ZSA9PT0gMCk7XG4gICAgICAgICAgICByZXR1cm4gcG9zaXRpb25ZLnZhbHVlID09PSAwO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGlnbm9yZVVwZGF0ZXMgPSAoMCwgY29yZV8yLndhdGNoSWdub3JhYmxlKSh0b2FzdERhdGEsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSwge1xuICAgICAgICAgICAgZmx1c2g6ICdzeW5jJyxcbiAgICAgICAgfSkuaWdub3JlVXBkYXRlcztcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBzaG93U2lkZWJhci52YWx1ZTsgfSwgZnVuY3Rpb24gKHNpZGViYXIpIHtcbiAgICAgICAgICAgIGlmIChzaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiB0b2FzdERhdGEudmlzaWJpbGl0eTsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZ25vcmVUb2FzdFVwZGF0ZSgpO1xuICAgICAgICAgICAgfSwgMTAwMDApO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGlnbm9yZVRvYXN0VXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWdub3JlVXBkYXRlcyhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSAnJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogR3JvdXBpbmcgYWxsIHRoZSBkYXRhJ3MgZm9yIHNjcm9sbCBmdW5jdGlvblxuICAgICAgICAgKlxuICAgICAgICAgKiB0aGlzIGRhdGEgaXMgY3JlYXRlZCB1c2luZyBwcm9wcy5ncm91cHMgYW5kIHByb3BzLmFjdGl2aXR5XG4gICAgICAgICAqL1xuICAgICAgICB2YXIgX2UgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcyksIGdyb3VwcyA9IF9lLmdyb3Vwcywgb3JnYW5pemF0aW9uID0gX2Uub3JnYW5pemF0aW9uLCBlbGVtZW50cyA9IF9lLmVsZW1lbnRzLCBncm91cGVkRGF0YSA9IGdyb3Vwcy52YWx1ZSwgb3JnYW5pemF0aW9uUHJvcHMgPSBvcmdhbml6YXRpb24udmFsdWUsIG9yZ2FuaXphdGlvbkRhdGEgPSBncm91cHMudmFsdWUsIGVsZW1lbnRQcm9wcyA9IGVsZW1lbnRzLnZhbHVlO1xuICAgICAgICAvLyBnZW5lcmF0aW5nIGF2YWlsYWJsZSBlbGVtZW50c1xuICAgICAgICBPYmplY3Qua2V5cyhvcmdhbml6YXRpb25EYXRhKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgdmFyIGZsYWcgPSBmYWxzZTtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG9yZ2FuaXphdGlvbkRhdGFba2V5XVsnZWxlbWVudHMnXSkubWFwKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9yZ2FuaXphdGlvblByb3BzW2tdIHx8IHR5cGVvZiBvcmdhbml6YXRpb25Qcm9wc1trXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uRGF0YVtrZXldWydlbGVtZW50cyddW2tdWydjb250ZW50J10gPVxuICAgICAgICAgICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uUHJvcHNba107XG4gICAgICAgICAgICAgICAgICAgIGZsYWcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50UHJvcHNba11bJ2hhc19kYXRhJ10gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG9yZ2FuaXphdGlvbkRhdGFba2V5XVtrXTtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFByb3BzW2tdWydoYXNfZGF0YSddID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsZW1lbnRQcm9wc1trXVsnY29yZSddID1cbiAgICAgICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uRGF0YVtrZXldWydlbGVtZW50cyddW2tdWydtYW5kYXRvcnknXTtcbiAgICAgICAgICAgICAgICBlbGVtZW50UHJvcHNba11bJ2NvbXBsZXRlZCddID1cbiAgICAgICAgICAgICAgICAgICAgayA9PT0gJ29yZ2FuaXNhdGlvbl9pZGVudGlmaWVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBvcmdhbml6YXRpb25Qcm9wc1snZWxlbWVudF9zdGF0dXMnXVsnaWRlbnRpZmllciddXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG9yZ2FuaXphdGlvblByb3BzWydlbGVtZW50X3N0YXR1cyddW2tdO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRQcm9wc1trXVsnbm90X2NvbXBsZXRlZCddID0gIWVsZW1lbnRQcm9wc1trXVsnY29tcGxldGVkJ107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmbGFnID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBvcmdhbml6YXRpb25EYXRhW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBnZW5lcmF0aW5nIGF2YWlsYWJsZSBjYXRlZ29yaWVzIG9mIGVsZW1lbnRzXG4gICAgICAgIE9iamVjdC5rZXlzKGdyb3VwZWREYXRhKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvcmdhbml6YXRpb25EYXRhLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBlZERhdGFba2V5XVsnc3RhdHVzJ10gPSAnZW5hYmxlZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBncm91cGVkRGF0YVtrZXldWydzdGF0dXMnXSA9ICdkaXNhYmxlZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgcHVibGlzaE1lc3NhZ2UgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgcHVibGlzaFN0YXR1cyA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgaXNfcHVibGlzaGVkOiBvcmdhbml6YXRpb25Qcm9wcy5pc19wdWJsaXNoZWQsXG4gICAgICAgICAgICBzdGF0dXM6IG9yZ2FuaXphdGlvblByb3BzLnN0YXR1cyxcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgncHVibGlzaE1lc3NhZ2UnLCBwdWJsaXNoTWVzc2FnZSk7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgnbWFuZGF0b3J5Q29tcGxldGVkJywgcHJvcHMubWFuZGF0b3J5Q29tcGxldGVkKTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCd0b2FzdERhdGEnLCB0b2FzdERhdGEpO1xuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3B1Ymxpc2hTdGF0dXMnLCBwdWJsaXNoU3RhdHVzKTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdlcnJvckRhdGEnLCBlcnJvckRhdGEpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBlZERhdGE6IGdyb3VwZWREYXRhLFxuICAgICAgICAgICAgb3JnYW5pemF0aW9uRGF0YTogb3JnYW5pemF0aW9uRGF0YSxcbiAgICAgICAgICAgIHB1Ymxpc2hWYWx1ZTogcHVibGlzaFZhbHVlLFxuICAgICAgICAgICAgcHVibGlzaFRvZ2dsZTogcHVibGlzaFRvZ2dsZSxcbiAgICAgICAgICAgIHVucHVibGlzaFZhbHVlOiB1bnB1Ymxpc2hWYWx1ZSxcbiAgICAgICAgICAgIHVucHVibGlzaFRvZ2dsZTogdW5wdWJsaXNoVG9nZ2xlLFxuICAgICAgICAgICAgZGVsZXRlVmFsdWU6IGRlbGV0ZVZhbHVlLFxuICAgICAgICAgICAgZGVsZXRlVG9nZ2xlOiBkZWxldGVUb2dnbGUsXG4gICAgICAgICAgICBkb3dubG9hZFZhbHVlOiBkb3dubG9hZFZhbHVlLFxuICAgICAgICAgICAgZG93bmxvYWRUb2dnbGU6IGRvd25sb2FkVG9nZ2xlLFxuICAgICAgICAgICAgZWxlbWVudFByb3BzOiBlbGVtZW50UHJvcHMsXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIHB1Ymxpc2hTdGF0dXM6IHB1Ymxpc2hTdGF0dXMsXG4gICAgICAgICAgICBlcnJvckRhdGE6IGVycm9yRGF0YSxcbiAgICAgICAgICAgIHRvZ2dsZVNpZGViYXI6IHRvZ2dsZVNpZGViYXIsXG4gICAgICAgICAgICBzaG93U2lkZWJhcjogc2hvd1NpZGViYXIsXG4gICAgICAgICAgICBpc3RvcFZpc2libGU6IGlzdG9wVmlzaWJsZSxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGNvcmVfMSA9IHJlcXVpcmUoXCJAdnVldXNlL2NvcmVcIik7XG52YXIgY29yZUVsZW1lbnRzXzEgPSByZXF1aXJlKFwiQ29tcG9zYWJsZS9jb3JlRWxlbWVudHNcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnT3JnYW5pc2F0aW9uRWxlbWVudHMnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBtYW5kYXRvcnk6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIHNlYXJjaEJ0blZhbHVlID0gX2JbMF0sIHNlYXJjaEJ0blRvZ2dsZSA9IF9iWzFdO1xuICAgICAgICB2YXIgZHJvcGRvd24gPSAoMCwgdnVlXzIucmVmKSgpO1xuICAgICAgICB2YXIgZHJvcGRvd25CdG4gPSAoMCwgdnVlXzIucmVmKSgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogU2VhcmNoIGZ1bmN0aW9uYWxpdHlcbiAgICAgICAgICovXG4gICAgICAgIHZhciBlbGVtZW50cyA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgc2VhcmNoOiBcIlwiLFxuICAgICAgICAgICAgc3RhdHVzOiBcIlwiLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGVsZW1lbnRJY29ucyA9IHtcbiAgICAgICAgICAgIGNvbXBsZXRlZDogXCJkb3VibGUtdGlja1wiLFxuICAgICAgICAgICAgbm90X2NvbXBsZXRlZDogXCJyZWQtY3Jvc3NcIixcbiAgICAgICAgICAgIGNvcmU6IFwiY29yZVwiLFxuICAgICAgICB9O1xuICAgICAgICB2YXIgYXNBcnJheURhdGEgPSBPYmplY3QuZW50cmllcyhwcm9wcy5kYXRhKTtcbiAgICAgICAgdmFyIGZpbHRlcmVkRWxlbWVudHMgPSAoMCwgdnVlXzIuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBmaWx0ZXJlZCA9IGFzQXJyYXlEYXRhLmZpbHRlcihmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0gX2FbMF0sIHZhbHVlID0gX2FbMV07XG4gICAgICAgICAgICAgICAgaWYgKCFlbGVtZW50cy5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhlbGVtZW50cy5zZWFyY2gudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIFwiIFwiKS5yZXBsYWNlKC8tL2csIFwiX1wiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbZWxlbWVudHMuc3RhdHVzXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKGVsZW1lbnRzLnNlYXJjaC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywgXCIgXCIpLnJlcGxhY2UoLy0vZywgXCJfXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGp1c3RTdHJpbmdzID0gT2JqZWN0LmZyb21FbnRyaWVzKGZpbHRlcmVkKTtcbiAgICAgICAgICAgIHJldHVybiBqdXN0U3RyaW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMi5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRyb3Bkb3duQnRuLnZhbHVlLmNvbnRhaW5zKGUudGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAhZHJvcGRvd24udmFsdWUuY29udGFpbnMoZS50YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaEJ0blZhbHVlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaEJ0blRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGRyb3Bkb3duRmlsdGVyID0gZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgIGVsZW1lbnRzLnN0YXR1cyA9IHM7XG4gICAgICAgICAgICBzZWFyY2hCdG5Ub2dnbGUoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgcHJvcHM6IHByb3BzLCBzZWFyY2hCdG5WYWx1ZTogc2VhcmNoQnRuVmFsdWUsIHNlYXJjaEJ0blRvZ2dsZTogc2VhcmNoQnRuVG9nZ2xlLCBkcm9wZG93bjogZHJvcGRvd24sIGRyb3Bkb3duQnRuOiBkcm9wZG93bkJ0biwgZWxlbWVudHM6IGVsZW1lbnRzLCBlbGVtZW50SWNvbnM6IGVsZW1lbnRJY29ucywgYXNBcnJheURhdGE6IGFzQXJyYXlEYXRhLCBmaWx0ZXJlZEVsZW1lbnRzOiBmaWx0ZXJlZEVsZW1lbnRzLCBkcm9wZG93bkZpbHRlcjogZHJvcGRvd25GaWx0ZXIsIG9yZ01hbmRhdG9yeUVsZW1lbnRzOiBjb3JlRWxlbWVudHNfMS5vcmdNYW5kYXRvcnlFbGVtZW50cyB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIEhvdmVyVGV4dF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCIpKTtcbnZhciBjb3JlRWxlbWVudHNfMSA9IHJlcXVpcmUoXCJDb21wb3NhYmxlL2NvcmVFbGVtZW50c1wiKTtcbnZhciBJbmRleF8xID0gcmVxdWlyZShcIk9yZ2FuaXNhdGlvbi9lbGVtZW50cy9JbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdPcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCB8fCBBcnJheSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYW5ndWFnZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJ2VuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgLy8gY29uc3Qgc3RhdHVzID0gJyc7XG4gICAgICAgIHZhciBsYXlvdXQgPSAnYmFzaXMtNi8xMic7XG4gICAgICAgIGlmIChwcm9wcy53aWR0aCA9PT0gJ2Z1bGwnKSB7XG4gICAgICAgICAgICBsYXlvdXQgPSAnYmFzaXMtZnVsbCc7XG4gICAgICAgIH1cbiAgICAgICAgKDAsIHZ1ZV8yLnByb3ZpZGUpKCdvcmdUeXBlcycsIHByb3BzLnR5cGVzKTtcbiAgICAgICAgdmFyIHJlcGxhY2VVbmRlcnNjb3JlID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgdmFyIHJlZ2V4ID0gL18vZztcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBzdHJpbmcucmVwbGFjZShyZWdleCwgJy0nKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHByb3BzOiBwcm9wcywgbGF5b3V0OiBsYXlvdXQsIHJlcGxhY2VVbmRlcnNjb3JlOiByZXBsYWNlVW5kZXJzY29yZSwgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCwgb3JnTWFuZGF0b3J5RWxlbWVudHM6IGNvcmVFbGVtZW50c18xLm9yZ01hbmRhdG9yeUVsZW1lbnRzLCBSZXBvcnRpbmdPcmdhbmlzYXRpb246IEluZGV4XzEuUmVwb3J0aW5nT3JnYW5pc2F0aW9uLCBUb3RhbEJ1ZGdldDogSW5kZXhfMS5Ub3RhbEJ1ZGdldCwgUmVwb3J0aW5nT3JnQnVkZ2V0OiBJbmRleF8xLlJlcG9ydGluZ09yZ0J1ZGdldCwgUmVwb3J0aW5nUmVnaW9uQnVkZ2V0OiBJbmRleF8xLlJlcG9ydGluZ1JlZ2lvbkJ1ZGdldCwgUmVjaXBpZW50Q291bnRyeUJ1ZGdldDogSW5kZXhfMS5SZWNpcGllbnRDb3VudHJ5QnVkZ2V0LCBUb3RhbEV4cGVuZGl0dXJlOiBJbmRleF8xLlRvdGFsRXhwZW5kaXR1cmUsIERvY3VtZW50TGluazogSW5kZXhfMS5Eb2N1bWVudExpbmsgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBtb21lbnRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibW9tZW50XCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdEb2N1bWVudExpbmsnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNvbnRlbnQ6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJvcmdUeXBlc1wiKTtcbiAgICAgICAgZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZSA/ICgwLCBtb21lbnRfMS5kZWZhdWx0KShkYXRlKS5mb3JtYXQoXCJMTFwiKSA6IFwiRGF0ZSBNaXNzaW5nXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUmVjaXBpZW50Q291bnRyeUJ1ZGdldCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY29udGVudDogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcIm9yZ1R5cGVzXCIpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlID8gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZvcm1hdChcIkxMXCIpIDogXCJEYXRlIE1pc3NpbmdcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyB0eXBlczogdHlwZXMsIGZvcm1hdERhdGU6IGZvcm1hdERhdGUgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBtb21lbnRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibW9tZW50XCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdSZXBvcnRpbmdPcmdCdWRnZXQnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNvbnRlbnQ6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJvcmdUeXBlc1wiKTtcbiAgICAgICAgZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZSA/ICgwLCBtb21lbnRfMS5kZWZhdWx0KShkYXRlKS5mb3JtYXQoXCJMTFwiKSA6IFwiRGF0ZSBNaXNzaW5nXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUmVwb3J0aW5nT3JnYW5pc2F0aW9uJyxcbiAgICBwcm9wczoge1xuICAgICAgICBjb250ZW50OiB7IHR5cGU6IE9iamVjdCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMi5pbmplY3QpKCdvcmdUeXBlcycpO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyB0eXBlczogdHlwZXMgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBtb21lbnRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibW9tZW50XCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdSZXBvcnRpbmdSZWdpb25CdWRnZXQnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNvbnRlbnQ6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJvcmdUeXBlc1wiKTtcbiAgICAgICAgZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZSA/ICgwLCBtb21lbnRfMS5kZWZhdWx0KShkYXRlKS5mb3JtYXQoXCJMTFwiKSA6IFwiRGF0ZSBNaXNzaW5nXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVG90YWxCdWRnZXQnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNvbnRlbnQ6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJvcmdUeXBlc1wiKTtcbiAgICAgICAgZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZSA/ICgwLCBtb21lbnRfMS5kZWZhdWx0KShkYXRlKS5mb3JtYXQoXCJMTFwiKSA6IFwiRGF0ZSBNaXNzaW5nXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVG90YWxFeHBlbmRpdHVyZScsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY29udGVudDogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcIm9yZ1R5cGVzXCIpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlID8gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZvcm1hdChcIkxMXCIpIDogXCJEYXRlIE1pc3NpbmdcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyB0eXBlczogdHlwZXMsIGZvcm1hdERhdGU6IGZvcm1hdERhdGUgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBMb2FkZXI6IExvYWRlcl92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGZvcm1EYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBlbWFpbDogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZW1haWxFcnJvciA9ICgwLCB2dWVfMS5yZWYpKCcnKTtcbiAgICAgICAgdmFyIGxvYWRlclZpc2liaWxpdHkgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIGZ1bmN0aW9uIHJlc2V0KCkge1xuICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdCgnL3Bhc3N3b3JkL2VtYWlsJywgZm9ybURhdGEpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIGlmIChyZXMucmVxdWVzdC5yZXNwb25zZVVSTC5pbmNsdWRlcygnYWN0aXZpdGllcycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9hY3Rpdml0aWVzJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9ICFyZXNwb25zZS5zdWNjZXNzIHx8ICdlcnJvcnMnIGluIHJlc3BvbnNlID8gcmVzcG9uc2UuZXJyb3JzIDogW107XG4gICAgICAgICAgICAgICAgZW1haWxFcnJvci52YWx1ZSA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9wYXNzd29yZC9jb25maXJtJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9IGVycm9yLnJlc3BvbnNlLmRhdGEuZXJyb3JzO1xuICAgICAgICAgICAgICAgIGVtYWlsRXJyb3IudmFsdWUgPSBlcnJvcnMuZW1haWwgPyBlcnJvcnMuZW1haWxbMF0gOiAnJztcbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eTogbG9hZGVyVmlzaWJpbGl0eSxcbiAgICAgICAgICAgIGVtYWlsRXJyb3I6IGVtYWlsRXJyb3IsXG4gICAgICAgICAgICByZXNldDogcmVzZXQsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgY3J5cHRvX2pzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImNyeXB0by1qc1wiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBMb2FkZXI6IExvYWRlcl92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsb2FkZXJWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgZm9ybURhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGVtYWlsOiBwcm9wcy5lbWFpbCxcbiAgICAgICAgICAgIHRva2VuOiBwcm9wcy50b2tlbixcbiAgICAgICAgICAgIHBhc3N3b3JkOiAnJyxcbiAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBlbWFpbDogJycsXG4gICAgICAgICAgICBwYXNzd29yZDogJycsXG4gICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246ICcnLFxuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gZW5jcnlwdChzdHJpbmcsIGtleSkge1xuICAgICAgICAgICAgdmFyIGl2ID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5saWIuV29yZEFycmF5LnJhbmRvbSgxNik7IC8vIHRoZSByZWFzb24gdG8gYmUgMTYsIHBsZWFzZSByZWFkIG9uIGBlbmNyeXB0TWV0aG9kYCBwcm9wZXJ0eS5cbiAgICAgICAgICAgIHZhciBzYWx0ID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5saWIuV29yZEFycmF5LnJhbmRvbSgyNTYpO1xuICAgICAgICAgICAgdmFyIGl0ZXJhdGlvbnMgPSA5OTk7XG4gICAgICAgICAgICB2YXIgZW5jcnlwdE1ldGhvZExlbmd0aCA9IDI1NiAvIDQ7IC8vIGV4YW1wbGU6IEFFUyBudW1iZXIgaXMgMjU2IC8gNCA9IDY0XG4gICAgICAgICAgICB2YXIgaGFzaEtleSA9IGNyeXB0b19qc18xLmRlZmF1bHQuUEJLREYyKGtleSwgc2FsdCwge1xuICAgICAgICAgICAgICAgIGhhc2hlcjogY3J5cHRvX2pzXzEuZGVmYXVsdC5hbGdvLlNIQTUxMixcbiAgICAgICAgICAgICAgICBrZXlTaXplOiBlbmNyeXB0TWV0aG9kTGVuZ3RoIC8gOCxcbiAgICAgICAgICAgICAgICBpdGVyYXRpb25zOiBpdGVyYXRpb25zLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgZW5jcnlwdGVkID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5BRVMuZW5jcnlwdChzdHJpbmcsIGhhc2hLZXksIHtcbiAgICAgICAgICAgICAgICBtb2RlOiBjcnlwdG9fanNfMS5kZWZhdWx0Lm1vZGUuQ0JDLFxuICAgICAgICAgICAgICAgIGl2OiBpdixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGVuY3J5cHRlZFN0cmluZyA9IGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkJhc2U2NC5zdHJpbmdpZnkoZW5jcnlwdGVkLmNpcGhlcnRleHQpO1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IHtcbiAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0OiBlbmNyeXB0ZWRTdHJpbmcsXG4gICAgICAgICAgICAgICAgaXY6IGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkhleC5zdHJpbmdpZnkoaXYpLFxuICAgICAgICAgICAgICAgIHNhbHQ6IGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkhleC5zdHJpbmdpZnkoc2FsdCksXG4gICAgICAgICAgICAgICAgaXRlcmF0aW9uczogaXRlcmF0aW9ucyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gY3J5cHRvX2pzXzEuZGVmYXVsdC5lbmMuQmFzZTY0LnN0cmluZ2lmeShjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5VdGY4LnBhcnNlKEpTT04uc3RyaW5naWZ5KG91dHB1dCkpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiByZXNldCgpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBmb3JtID0ge1xuICAgICAgICAgICAgICAgIGVtYWlsOiBmb3JtRGF0YS5lbWFpbCxcbiAgICAgICAgICAgICAgICB0b2tlbjogcHJvcHMudG9rZW4sXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiBlbmNyeXB0KGZvcm1EYXRhLnBhc3N3b3JkX2NvbmZpcm1hdGlvbiwgKF9hID0gcHJvY2Vzcy5lbnYuTUlYX0VOQ1JZUFRJT05fS0VZKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyksXG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6IGVuY3J5cHQoZm9ybURhdGEucGFzc3dvcmQsIChfYiA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJycpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wb3N0KCcvcmVzZXQnLCBmb3JtKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLnJlcXVlc3QucmVzcG9uc2VVUkwuaW5jbHVkZXMoJ2FjdGl2aXRpZXMnKSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvYWN0aXZpdGllcyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAnZXJyb3JzJyBpbiByZXNwb25zZSA/IHJlc3BvbnNlLmVycm9ycyA6IFtdO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZCA9IGVycm9ycy5wYXNzd29yZCA/IGVycm9ycy5wYXNzd29yZFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5lbWFpbCA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24gPSBlcnJvcnMucGFzc3dvcmRfY29uZmlybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnBhc3N3b3JkX2NvbmZpcm1hdGlvblswXVxuICAgICAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9hY3Rpdml0aWVzJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9IGVycm9yLnJlc3BvbnNlLmRhdGEuZXJyb3JzO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZCA9IGVycm9ycy5wYXNzd29yZCA/IGVycm9ycy5wYXNzd29yZFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5lbWFpbCA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24gPSBlcnJvcnMucGFzc3dvcmRfY29uZmlybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnBhc3N3b3JkX2NvbmZpcm1hdGlvblswXVxuICAgICAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5OiBsb2FkZXJWaXNpYmlsaXR5LFxuICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgZXJyb3JEYXRhOiBlcnJvckRhdGEsXG4gICAgICAgICAgICByZXNldDogcmVzZXQsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIG11bHRpc2VsZWN0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkB2dWVmb3JtL211bHRpc2VsZWN0XCIpKTtcbnZhciBzdG9yZV8xID0gcmVxdWlyZShcIi4uLy4uL3N0b3JlXCIpO1xudmFyIGFjdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9zdG9yZS9zZXR0aW5nL2FjdGlvbnNcIik7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLy4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBNdWx0aXNlbGVjdDogbXVsdGlzZWxlY3RfMS5kZWZhdWx0LFxuICAgICAgICBIb3ZlclRleHQ6IEhvdmVyVGV4dF92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY3VycmVuY2llczoge1xuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYW5ndWFnZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgaHVtYW5pdGFyaWFuOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJ1ZGdldE5vdFByb3ZpZGVkOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBzdG9yZV8xLnVzZVN0b3JlKSgpO1xuICAgICAgICB2YXIgZGVmYXVsdEZvcm0gPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5zdGF0ZS5kZWZhdWx0Rm9ybTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkZWZhdWx0RXJyb3IgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5zdGF0ZS5kZWZhdWx0RXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiB1cGRhdGVTdG9yZShrZXkpIHtcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnNfMS5BY3Rpb25UeXBlcy5VUERBVEVfREVGQVVMVF9WQUxVRVMsIHtcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZGVmYXVsdEZvcm0udmFsdWVba2V5XSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICBkZWZhdWx0Rm9ybTogZGVmYXVsdEZvcm0sXG4gICAgICAgICAgICBkZWZhdWx0RXJyb3I6IGRlZmF1bHRFcnJvcixcbiAgICAgICAgICAgIHVwZGF0ZVN0b3JlOiB1cGRhdGVTdG9yZSxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBzdG9yZV8xID0gcmVxdWlyZShcIi4uLy4uL3N0b3JlXCIpO1xudmFyIGFjdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9zdG9yZS9zZXR0aW5nL2FjdGlvbnNcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xudmFyIFNldHRpbmdEZWZhdWx0Rm9ybV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9TZXR0aW5nRGVmYXVsdEZvcm0udnVlXCIpKTtcbnZhciBTZXR0aW5nUHVibGlzaGluZ0Zvcm1fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vU2V0dGluZ1B1Ymxpc2hpbmdGb3JtLnZ1ZVwiKSk7XG52YXIgTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jb21wb25lbnRzL0xvYWRlci52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFNldHRpbmdEZWZhdWx0Rm9ybTogU2V0dGluZ0RlZmF1bHRGb3JtX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFNldHRpbmdQdWJsaXNoaW5nRm9ybTogU2V0dGluZ1B1Ymxpc2hpbmdGb3JtX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIExvYWRlcjogTG9hZGVyX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGN1cnJlbmNpZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFuZ3VhZ2VzOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGh1bWFuaXRhcmlhbjoge1xuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBvcmdhbml6YXRpb246IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYnVkZ2V0Tm90UHJvdmlkZWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgdGFiID0gKDAsIHZ1ZV8xLnJlZikoJ3B1Ymxpc2gnKTtcbiAgICAgICAgdmFyIHN0b3JlID0gKDAsIHN0b3JlXzEudXNlU3RvcmUpKCk7XG4gICAgICAgIHZhciBsb2FkZXJWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3RWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3RNZXNzYWdlID0gKDAsIHZ1ZV8xLnJlZikoJycpO1xuICAgICAgICB2YXIgdG9hc3RUeXBlID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgcHVibGlzaGluZ0Zvcm0gPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0b3JlLnN0YXRlLnB1Ymxpc2hpbmdGb3JtOyB9KTtcbiAgICAgICAgdmFyIHB1Ymxpc2hpbmdJbmZvID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBzdG9yZS5zdGF0ZS5wdWJsaXNoaW5nSW5mbzsgfSk7XG4gICAgICAgIHZhciBwdWJsaXNoaW5nRXJyb3IgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0b3JlLnN0YXRlLnB1Ymxpc2hpbmdFcnJvcjsgfSk7XG4gICAgICAgIHZhciBkZWZhdWx0Rm9ybSA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc3RvcmUuc3RhdGUuZGVmYXVsdEZvcm07IH0pO1xuICAgICAgICB2YXIgZGVmYXVsdEVycm9yID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBzdG9yZS5zdGF0ZS5kZWZhdWx0RXJyb3I7IH0pO1xuICAgICAgICBmdW5jdGlvbiB1cGRhdGVTdG9yZShuYW1lLCBrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICBzdG9yZS5kaXNwYXRjaChhY3Rpb25zXzEuQWN0aW9uVHlwZXNbbmFtZV0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSwgc2V0dGluZ0RhdGEsIGRlZmF1bHRWYWx1ZXMsIHB1Ymxpc2hlckluZm8sIGFjdGl2aXR5VmFsdWVzLCBrZXksIGtleSwga2V5O1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gWzQgLyp5aWVsZCovLCBheGlvc18xLmRlZmF1bHQuZ2V0KCcvc2V0dGluZy9kYXRhJyldO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gKF9hLnNlbnQoKSkuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdEYXRhID0gZGF0YS5kYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmdEYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlcyA9IHNldHRpbmdEYXRhLmRlZmF1bHRfdmFsdWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2V0dGluZ0RhdGEuZGVmYXVsdF92YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZXJJbmZvID0gc2V0dGluZ0RhdGEucHVibGlzaGluZ19pbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2V0dGluZ0RhdGEucHVibGlzaGluZ19pbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlWYWx1ZXMgPSBzZXR0aW5nRGF0YS5hY3Rpdml0eV9kZWZhdWx0X3ZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNldHRpbmdEYXRhLmFjdGl2aXR5X2RlZmF1bHRfdmFsdWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHB1Ymxpc2hlckluZm8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChrZXkgaW4gcHVibGlzaGVySW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RvcmUodHlwZW9mIHB1Ymxpc2hlckluZm9ba2V5XSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdVUERBVEVfUFVCTElTSElOR19GT1JNJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ1VQREFURV9QVUJMSVNIRVJfSU5GTycsIGtleSwgcHVibGlzaGVySW5mb1trZXldKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHVibGlzaGVySW5mby5hcGlfdG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfUFVCTElTSEVSX0lORk8nLCAnaXNWZXJpZmljYXRpb25SZXF1ZXN0ZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBkZWZhdWx0VmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSgnVVBEQVRFX0RFRkFVTFRfVkFMVUVTJywga2V5LCBkZWZhdWx0VmFsdWVzW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3Rpdml0eVZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBhY3Rpdml0eVZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RvcmUoJ1VQREFURV9ERUZBVUxUX1ZBTFVFUycsIGtleSwgYWN0aXZpdHlWYWx1ZXNba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pOyB9KTtcbiAgICAgICAgZnVuY3Rpb24gdG9nZ2xlVGFiKHBhZ2UpIHtcbiAgICAgICAgICAgIHRvYXN0VmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGFiLnZhbHVlID0gcGFnZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdWJtaXREZWZhdWx0KCkge1xuICAgICAgICAgICAgZm9yICh2YXIgZGF0YSBpbiBkZWZhdWx0RXJyb3IudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSgnVVBEQVRFX0RFRkFVTFRfRVJST1InLCBkYXRhLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wb3N0KCcvc2V0dGluZy9zdG9yZS9kZWZhdWx0JywgZGVmYXVsdEZvcm0udmFsdWUpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0b2FzdFZpc2liaWxpdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRvYXN0VmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlKTsgfSwgNTAwMCk7XG4gICAgICAgICAgICAgICAgdG9hc3RNZXNzYWdlLnZhbHVlID0gcmVzcG9uc2UubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0b2FzdFR5cGUudmFsdWUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfUFVCTElTSEVSX0lORk8nLCByZXNwb25zZS5kYXRhLmhpZXJhcmNoaWFsLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSBlcnJvci5yZXNwb25zZS5kYXRhLmVycm9ycztcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBlIGluIGVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSgnVVBEQVRFX0RFRkFVTFRfRVJST1InLCBlLCBlcnJvcnNbZV1bMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdWJtaXRQdWJsaXNoaW5nKHVybCkge1xuICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBmb3IgKHZhciBkYXRhIGluIHB1Ymxpc2hpbmdFcnJvci52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfUFVCTElTSElOR19FUlJPUicsIGRhdGEsICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wb3N0KHVybCwgX19hc3NpZ24oX19hc3NpZ24oe30sIHB1Ymxpc2hpbmdJbmZvLnZhbHVlKSwgcHVibGlzaGluZ0Zvcm0udmFsdWUpKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSgnVVBEQVRFX1BVQkxJU0hFUl9JTkZPJywgJ3B1Ymxpc2hlcl92ZXJpZmljYXRpb24nLCByZXNwb25zZS5kYXRhLnB1Ymxpc2hlcl92ZXJpZmljYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSgnVVBEQVRFX1BVQkxJU0hFUl9JTkZPJywgJ3Rva2VuX3ZlcmlmaWNhdGlvbicsIHJlc3BvbnNlLmRhdGEudG9rZW5fdmVyaWZpY2F0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RvcmUoJ1VQREFURV9QVUJMSVNIRVJfSU5GTycsICdpc1ZlcmlmaWNhdGlvblJlcXVlc3RlZCcsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuICh0b2FzdFZpc2liaWxpdHkudmFsdWUgPSBmYWxzZSk7IH0sIDUwMDApO1xuICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS52YWx1ZSA9IHJlc3BvbnNlLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdG9hc3RUeXBlLnZhbHVlID0gcmVzcG9uc2Uuc3VjY2VzcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSBlcnJvci5yZXNwb25zZS5kYXRhLmVycm9ycztcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBlIGluIGVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSgnVVBEQVRFX1BVQkxJU0hJTkdfRVJST1InLCBlLCBlcnJvcnNbZV1bMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdWJtaXRGb3JtKHVybCkge1xuICAgICAgICAgICAgaWYgKHVybCA9PT0gdm9pZCAwKSB7IHVybCA9ICdzZXR0aW5nL3ZlcmlmeSc7IH1cbiAgICAgICAgICAgIGlmICh0YWIudmFsdWUgPT09ICdwdWJsaXNoJylcbiAgICAgICAgICAgICAgICBzdWJtaXRQdWJsaXNoaW5nKHVybCk7XG4gICAgICAgICAgICBpZiAodGFiLnZhbHVlID09PSAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgc3VibWl0RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICB0YWI6IHRhYixcbiAgICAgICAgICAgIGRlZmF1bHRFcnJvcjogZGVmYXVsdEVycm9yLFxuICAgICAgICAgICAgcHVibGlzaGluZ0Vycm9yOiBwdWJsaXNoaW5nRXJyb3IsXG4gICAgICAgICAgICBzdG9yZTogc3RvcmUsXG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5OiBsb2FkZXJWaXNpYmlsaXR5LFxuICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5OiB0b2FzdFZpc2liaWxpdHksXG4gICAgICAgICAgICB0b2FzdE1lc3NhZ2U6IHRvYXN0TWVzc2FnZSxcbiAgICAgICAgICAgIHRvYXN0VHlwZTogdG9hc3RUeXBlLFxuICAgICAgICAgICAgdG9nZ2xlVGFiOiB0b2dnbGVUYWIsXG4gICAgICAgICAgICBzdWJtaXRGb3JtOiBzdWJtaXRGb3JtLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBzdG9yZV8xID0gcmVxdWlyZShcIi4uLy4uL3N0b3JlXCIpO1xudmFyIGFjdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9zdG9yZS9zZXR0aW5nL2FjdGlvbnNcIik7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLy4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBIb3ZlclRleHQ6IEhvdmVyVGV4dF92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgb3JnYW5pemF0aW9uOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGVtaXRzOiBbJ3N1Ym1pdFB1Ymxpc2hpbmcnXSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzLCBfYSkge1xuICAgICAgICB2YXIgZW1pdCA9IF9hLmVtaXQ7XG4gICAgICAgIHZhciB0YWIgPSAoMCwgdnVlXzEucmVmKSgncHVibGlzaCcpO1xuICAgICAgICB2YXIgc3RvcmUgPSAoMCwgc3RvcmVfMS51c2VTdG9yZSkoKTtcbiAgICAgICAgdmFyIHB1Ymxpc2hpbmdGb3JtID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBzdG9yZS5zdGF0ZS5wdWJsaXNoaW5nRm9ybTsgfSk7XG4gICAgICAgIHZhciBwdWJsaXNoaW5nSW5mbyA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc3RvcmUuc3RhdGUucHVibGlzaGluZ0luZm87IH0pO1xuICAgICAgICB2YXIgcHVibGlzaGluZ0Vycm9yID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBzdG9yZS5zdGF0ZS5wdWJsaXNoaW5nRXJyb3I7IH0pO1xuICAgICAgICBmdW5jdGlvbiBzdWJtaXRQdWJsaXNoaW5nKCkge1xuICAgICAgICAgICAgZW1pdCgnc3VibWl0UHVibGlzaGluZycpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGF1dG9WZXJpZnkoKSB7XG4gICAgICAgICAgICBlbWl0KCdzdWJtaXRQdWJsaXNoaW5nJyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlU3RvcmUoa2V5KSB7XG4gICAgICAgICAgICBzdG9yZS5kaXNwYXRjaChhY3Rpb25zXzEuQWN0aW9uVHlwZXMuVVBEQVRFX1BVQkxJU0hJTkdfRk9STSwge1xuICAgICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBwdWJsaXNoaW5nRm9ybS52YWx1ZVtrZXldLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdG9nZ2xlVGFiKCkge1xuICAgICAgICAgICAgdGFiLnZhbHVlID0gdGFiLnZhbHVlID09PSAncHVibGlzaCcgPyAnZGVmYXVsdCcgOiAncHVibGlzaCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhYjogdGFiLFxuICAgICAgICAgICAgcHVibGlzaGluZ0Zvcm06IHB1Ymxpc2hpbmdGb3JtLFxuICAgICAgICAgICAgcHVibGlzaGluZ0luZm86IHB1Ymxpc2hpbmdJbmZvLFxuICAgICAgICAgICAgcHVibGlzaGluZ0Vycm9yOiBwdWJsaXNoaW5nRXJyb3IsXG4gICAgICAgICAgICBzdG9yZTogc3RvcmUsXG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICBzdWJtaXRQdWJsaXNoaW5nOiBzdWJtaXRQdWJsaXNoaW5nLFxuICAgICAgICAgICAgdG9nZ2xlVGFiOiB0b2dnbGVUYWIsXG4gICAgICAgICAgICB1cGRhdGVTdG9yZTogdXBkYXRlU3RvcmUsXG4gICAgICAgICAgICBhdXRvVmVyaWZ5OiBhdXRvVmVyaWZ5LFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG4vLyBDb21wb25lbnRzXG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIFByb2dyZXNzTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1Byb2dyZXNzTG9hZGVyLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xudmFyIFRhYmxlTGlzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9jb21wb25lbnRzL1RhYmxlTGlzdC52dWVcIikpO1xuLy8gcmVmXG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnT3JnYW5pc2F0aW9uTGlzdCcsXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxvYWRlciA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgc3RhdHVzOiBmYWxzZSxcbiAgICAgICAgICAgIHRleHQ6ICdQbGVhc2UgV2FpdCcsXG4gICAgICAgIH0pO1xuICAgICAgICAvL0JyZWFkY3J1bWIgZGF0YVxuICAgICAgICB2YXIgYnJlYWRjcnVtYkRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdPcmdhbmlzYXRpb25zJyxcbiAgICAgICAgICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gcHJvdmlkZVxuICAgICAgICAoMCwgdnVlXzIucHJvdmlkZSkoJ2xvYWRlcicsIGxvYWRlcik7XG4gICAgICAgICgwLCB2dWVfMi5wcm92aWRlKSgndG9hc3REYXRhJywgdG9hc3RNZXNzYWdlKTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbG9hZGVyOiBsb2FkZXIsIGJyZWFkY3J1bWJEYXRhOiBicmVhZGNydW1iRGF0YSwgdG9hc3RNZXNzYWdlOiB0b2FzdE1lc3NhZ2UsIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsIExvYWRlcjogUHJvZ3Jlc3NMb2FkZXJfdnVlXzEuZGVmYXVsdCwgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0LCBUYWJsZUxpc3Q6IFRhYmxlTGlzdF92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdBZG1pbkJhcicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbmFtZTogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIG9yZ2FuaXphdGlvbk5hbWU6IHsgdHlwZTogU3RyaW5nLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN3aXRjaCBCYWNrXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgc3dpdGNoQmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKFwiL2xpc3Qtb3JnYW5pc2F0aW9uc1wiKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgc3dpdGNoQmFjazogc3dpdGNoQmFjayB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBUYWJsZVBhZ2luYXRpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZVwiKSk7XG4vLyByZWFjdGl2aXR5XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVGFibGVMaXN0JyxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBfYjtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIuaW5qZWN0KSgndG9hc3REYXRhJyk7XG4gICAgICAgIHZhciBsb2FkZXIgPSAoMCwgdnVlXzIuaW5qZWN0KSgnbG9hZGVyJyk7XG4gICAgICAgIC8vdHlwZWZhY2VcbiAgICAgICAgdmFyIG9yZ2FuaXNhdGlvbkRhdGEgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgc3RhdHVzOiAnZmV0Y2hpbmcnLFxuICAgICAgICB9KTtcbiAgICAgICAgLy9saWZlY3ljbGVcbiAgICAgICAgKDAsIHZ1ZV8yLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIGZldGNoT3JnYW5pc2F0aW9uKDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGZXRjaGluZyBvcmdhbml6YXRpb24gbGlzdFxuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGN1cnJlbnRVUkwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgICAgdmFyIGZldGNoT3JnYW5pc2F0aW9uID0gZnVuY3Rpb24gKGFjdGl2ZV9wYWdlKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSAnJztcbiAgICAgICAgICAgIGlmIChjdXJyZW50VVJMLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZW5kcG9pbnQgPSBcIi9saXN0LW9yZ2FuaXNhdGlvbnMvcGFnZS9cIi5jb25jYXQoYWN0aXZlX3BhZ2UpLmNvbmNhdChxdWVyeVN0cmluZyk7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHQuZ2V0KGVuZHBvaW50KS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JnYW5pc2F0aW9uRGF0YS5zdGF0dXMgPSAnZW1wdHknO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JnYW5pc2F0aW9uRGF0YS5zdGF0dXMgPSAnc3VjY2Vzcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmdhbmlzYXRpb25EYXRhLmRhdGEgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQcm94eSBVc2VyXG4gICAgICAgICAqL1xuICAgICAgICAvLyBkaXNwbGF5L2hpZGUgdmFsaWRhdG9yIGxvYWRlclxuICAgICAgICB2YXIgcHJveHlVc2VyID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgICAgICBsb2FkZXIuc3RhdHVzID0gdHJ1ZTtcbiAgICAgICAgICAgIGxvYWRlci50ZXh0ID0gJ1Byb3h5IExvZ2luJztcbiAgICAgICAgICAgIHZhciBlbmRwb2ludCA9IFwiL3Byb3h5LW9yZ2FuaXNhdGlvbi9cIi5jb25jYXQoaWQpO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChlbmRwb2ludCkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSgnL2FjdGl2aXRpZXMnKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2FkZXIuc3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS5tZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3RNZXNzYWdlLnR5cGUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogU29ydGluZyBCeSB1cGRhdGUgb25cbiAgICAgICAgICovXG4gICAgICAgIHZhciBxdWVyeSA9ICcnLCBkZWZhdWx0U29ydERpcmVjdGlvbiA9ICdhc2NlbmRpbmcnLCBzb3J0RGlyZWN0aW9uID0gJ2Rlc2MnO1xuICAgICAgICB2YXIgb3JkZXJUeXBlID0gKDAsIHZ1ZV8yLnJlZikoJycpO1xuICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKTtcbiAgICAgICAgb3JkZXJUeXBlLnZhbHVlID0gKF9iID0gdXJsUGFyYW1zLmdldCgnb3JkZXJCeScpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnJztcbiAgICAgICAgdmFyIHNvcnRpbmdEaXJlY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzY2VuZGluZycgOiAnYXNjZW5kaW5nJztcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHNvcnRCeSA9IGZ1bmN0aW9uIChvcmRlcikge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgICAgICAgICAgIHF1ZXJ5ID0gKF9hID0gdXJsUGFyYW1zLmdldCgncScpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJztcbiAgICAgICAgICAgICAgICBzb3J0RGlyZWN0aW9uID0gdXJsUGFyYW1zLmdldCgnZGlyZWN0aW9uJykgPT09ICdkZXNjJyA/ICdhc2MnIDogJ2Rlc2MnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwiP3E9XCIuY29uY2F0KHF1ZXJ5LCBcIiZvcmRlckJ5PVwiKS5jb25jYXQob3JkZXIsIFwiJmRpcmVjdGlvbj1cIikuY29uY2F0KHNvcnREaXJlY3Rpb24pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyB0b2FzdE1lc3NhZ2U6IHRvYXN0TWVzc2FnZSwgbG9hZGVyOiBsb2FkZXIsIG9yZ2FuaXNhdGlvbkRhdGE6IG9yZ2FuaXNhdGlvbkRhdGEsIGN1cnJlbnRVUkw6IGN1cnJlbnRVUkwsIGZldGNoT3JnYW5pc2F0aW9uOiBmZXRjaE9yZ2FuaXNhdGlvbiwgcHJveHlVc2VyOiBwcm94eVVzZXIsIHF1ZXJ5OiBxdWVyeSwgZGVmYXVsdFNvcnREaXJlY3Rpb246IGRlZmF1bHRTb3J0RGlyZWN0aW9uLCBzb3J0RGlyZWN0aW9uOiBzb3J0RGlyZWN0aW9uLCBvcmRlclR5cGU6IG9yZGVyVHlwZSwgcXVlcnlTdHJpbmc6IHF1ZXJ5U3RyaW5nLCB1cmxQYXJhbXM6IHVybFBhcmFtcywgc29ydGluZ0RpcmVjdGlvbjogc29ydGluZ0RpcmVjdGlvbiwgc29ydEJ5OiBzb3J0QnksIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LCBCdG5Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0LCBQYWdpbmF0aW9uOiBUYWJsZVBhZ2luYXRpb25fdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgcHJvcHM6IHtcbiAgICAgICAgZW1haWw6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAnJyB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xudmFyIEVtYWlsVmVyaWZpY2F0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZVwiKSk7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLy4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG52YXIgbXVsdGlzZWxlY3RfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQHZ1ZWZvcm0vbXVsdGlzZWxlY3RcIikpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBlbmNyeXB0aW9uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZW5jcnlwdGlvblwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBFbWFpbFZlcmlmaWNhdGlvbjogRW1haWxWZXJpZmljYXRpb25fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgTXVsdGlzZWxlY3Q6IG11bHRpc2VsZWN0XzEuZGVmYXVsdCxcbiAgICAgICAgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIHN0ZXAgPSAoMCwgdnVlXzEucmVmKSgxKTtcbiAgICAgICAgdmFyIHB1Ymxpc2hlckV4aXN0cyA9ICgwLCB2dWVfMS5yZWYpKHRydWUpO1xuICAgICAgICB2YXIgaXNMb2FkZXJWaXNpYmxlID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdGV4dGFyZWEgPSAoMCwgdnVlXzEucmVmKShudWxsKTtcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgcHVibGlzaGVyX25hbWU6IFwiXCIsXG4gICAgICAgICAgICBwdWJsaXNoZXJfaWQ6IFwiXCIsXG4gICAgICAgICAgICBjb3VudHJ5OiBcIlwiLFxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2FnZW5jeTogXCJcIixcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9udW1iZXI6IFwiXCIsXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBcIlwiLFxuICAgICAgICAgICAgcHVibGlzaGVyX3R5cGU6IFwiXCIsXG4gICAgICAgICAgICBsaWNlbnNlX2lkOiBcIlwiLFxuICAgICAgICAgICAgaW1hZ2VfdXJsOiBcIlwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXG4gICAgICAgICAgICBjb250YWN0X2VtYWlsOiBcIlwiLFxuICAgICAgICAgICAgd2Vic2l0ZTogXCJcIixcbiAgICAgICAgICAgIGFkZHJlc3M6IFwiXCIsXG4gICAgICAgICAgICBzb3VyY2U6IFwiXCIsXG4gICAgICAgICAgICByZWNvcmRfZXhjbHVzaW9uczogXCJcIixcbiAgICAgICAgICAgIHVzZXJuYW1lOiBcIlwiLFxuICAgICAgICAgICAgZnVsbF9uYW1lOiBcIlwiLFxuICAgICAgICAgICAgZW1haWw6IFwiXCIsXG4gICAgICAgICAgICBwYXNzd29yZDogXCJcIixcbiAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogXCJcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBpYXRpRXJyb3IgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHt9KTtcbiAgICAgICAgdmFyIGZvcm1EYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBwdWJsaXNoZXJfbmFtZTogXCJcIixcbiAgICAgICAgICAgIHB1Ymxpc2hlcl9pZDogXCJcIixcbiAgICAgICAgICAgIGNvdW50cnk6IFwiXCIsXG4gICAgICAgICAgICByZWdpc3RyYXRpb25fYWdlbmN5OiBcIlwiLFxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uX251bWJlcjogXCJcIixcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IFwiXCIsXG4gICAgICAgICAgICBwdWJsaXNoZXJfdHlwZTogXCJcIixcbiAgICAgICAgICAgIGxpY2Vuc2VfaWQ6IFwiXCIsXG4gICAgICAgICAgICBpbWFnZV91cmw6IFwiXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICAgICAgICAgIGNvbnRhY3RfZW1haWw6IFwiXCIsXG4gICAgICAgICAgICB3ZWJzaXRlOiBcIlwiLFxuICAgICAgICAgICAgYWRkcmVzczogXCJcIixcbiAgICAgICAgICAgIHNvdXJjZTogXCJcIixcbiAgICAgICAgICAgIHJlY29yZF9leGNsdXNpb25zOiBcIlwiLFxuICAgICAgICAgICAgdXNlcm5hbWU6IFwiXCIsXG4gICAgICAgICAgICBmdWxsX25hbWU6IFwiXCIsXG4gICAgICAgICAgICBlbWFpbDogXCJcIixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBcIlwiLFxuICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiBcIlwiLFxuICAgICAgICAgICAgc3RlcDogXCIxXCIsXG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzEud2F0Y2gpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZvcm1EYXRhLmNvdW50cnk7IH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZvcm1EYXRhLnJlZ2lzdHJhdGlvbl9hZ2VuY3kgPSBcIlwiO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gcmVzaXplKGV2ZW50KSB7XG4gICAgICAgICAgICBldmVudC50YXJnZXQuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnN0eWxlLmhlaWdodCA9IFwiXCIuY29uY2F0KGV2ZW50LnRhcmdldC5zY3JvbGxIZWlnaHQsIFwicHhcIik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlZ2lzdHJhdGlvbl9hZ2VuY3kgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhZ2VuY2llcyA9IHByb3BzLnR5cGVzLnJlZ2lzdHJhdGlvbkFnZW5jeTtcbiAgICAgICAgICAgIGlmIChmb3JtRGF0YS5jb3VudHJ5KSB7XG4gICAgICAgICAgICAgICAgdmFyIHVuY2F0ZWdvcml6ZWRfMSA9IFtcIlhJXCIsIFwiWFJcIl07XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhZ2VuY2llcykuZmlsdGVyKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIga2V5ID0gX2FbMF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXkuc3RhcnRzV2l0aChmb3JtRGF0YS5jb3VudHJ5KSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5jYXRlZ29yaXplZF8xLnNvbWUoZnVuY3Rpb24gKGspIHsgcmV0dXJuIGtleS5zdGFydHNXaXRoKGspOyB9KTtcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWdlbmNpZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXNUZXh0RmllbGQgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoZmllbGRUeXBlLCBmaWVsZE5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKChmaWVsZFR5cGUgPT09IFwidGV4dFwiIHx8IGZpZWxkVHlwZSA9PT0gXCJwYXNzd29yZFwiIHx8IGZpZWxkVHlwZSA9PT0gXCJlbWFpbFwiKSAmJlxuICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWUgIT0gXCJpZGVudGlmaWVyXCIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBjaGVja1N0ZXAgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoZm9ybVN0ZXApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoZm9ybVN0ZXAudG9TdHJpbmcoKSkgPT09IHN0ZXAudmFsdWU7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIG9iamVjdCB3aXRoIG11bHRpLXN0ZXAgZm9ybSBpbmZvcm1hdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIHJlZ2lzdGVyRm9ybSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgMToge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBcIlB1Ymxpc2hlciBJbmZvcm1hdGlvblwiLFxuICAgICAgICAgICAgICAgIGlzX2NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSBQdWJsaXNoZXIgaW4gSUFUSSBQdWJsaXNoZXJcIixcbiAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIldlIHJlZmVyIHRvIG9yZ2FuaXNhdGlvbnMgd2hvIHB1Ymxpc2ggSUFUSSBkYXRhIGFzICdQdWJsaXNoZXJzJy4gQmVmb3JlIHB1Ymxpc2hpbmcgZGF0YSwgYWxsIG9yZ2FuaXNhdGlvbnMgbmVlZCB0aGVpciBvd24gJ1B1Ymxpc2hlciBBY2NvdW50JyBvbiB0aGUgSUFUSSBSZWdpc3RyeSAoaWF0aXJlZ2lzdHJ5Lm9yZykuIEVudGVyIHlvdXIgb3JnYW5pc2F0aW9uJ3MgZGF0YSBoZXJlIGFuZCB3ZSdsbCBjcmVhdGUgeW91ciBvcmdhbmlzYXRpb24ncyBQdWJsaXNoZXIgQWNjb3VudCBmb3IgeW91LiBUaGVzZSBkZXRhaWxzIHdpbGwgYWxzbyBiZSBzYXZlZCBoZXJlIGluIElBVEkgUHVibGlzaGVyLiBcIixcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVyX25hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlB1Ymxpc2hlciBOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInB1Ymxpc2hlcl9uYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUeXBlIHlvdXIgb3JnYW5pc2F0aW9uIG5hbWUgaGVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicHVibGlzaGVyLW5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJUaGUgbmFtZSBvZiB5b3VyIG9yZ2FuaXNhdGlvbiBwdWJsaXNoaW5nIHRoZSBkYXRhLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJjb2wtc3Bhbi0yIG1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZXJfaWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlB1Ymxpc2hlciBJRFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJwdWJsaXNoZXJfaWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlR5cGUgeW91ciBvcmdhbmlzYXRpb24gSUQgaGVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicHVibGlzaGVyLWlkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiUHJvdmlkZSBhIHVuaXF1ZSBJRCBmb3IgeW91ciBvcmdhbmlzYXRpb24uIEl0IG11c3QgYmUgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgbG9uZyBhbmQgdXNlIGxvd2VyIGNhc2UgbGV0dGVycy4gWW91IGNhbiBpbmNsdWRlIGxldHRlcnMsIG51bWJlcnMgYW5kIGFsc28gLSAoZGFzaCkgYW5kIF8gKHVuZGVyc2NvcmUpLiBXaGVyZSBwb3NzaWJsZSB1c2UgYSBzaG9ydCBhYmJyZXZpYXRpb24gb2YgeW91ciBvcmdhbmlzYXRpb24ncyBuYW1lLCBmb3IgZXhhbXBsZTogJ25lZl9tYWxpJyBmb3IgTmVhciBFYXN0IEZvdW5kYXRpb24gTWFsaS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGNvdW50cnk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvdW50cnlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY291bnRyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiU2VsZWN0IGEgQ291bnRyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiY291bnRyeV9zZWxlY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIkFkZCB0aGUgbG9jYXRpb24gb2YgeW91ciBvcmdhbmlzYXRpb24uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBwcm9wcy50eXBlcy5jb3VudHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yIHJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hZ2VuY3k6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk9yZ2FuaXNhdGlvbiBSZWdpc3RyYXRpb24gQWdlbmN5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInJlZ2lzdHJhdGlvbl9hZ2VuY3lcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlNlbGVjdCBhbiBPcmdhbmlzYXRpb24gUmVnaXN0cmF0aW9uIEFnZW5jeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicmVnaXN0cmF0aW9uLWFnZW5jeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIlNlbGVjdCB0aGUgYWdlbmN5IGluIHlvdXIgY291bnRyeSB3aGVyZSB5b3VyIG9yZ2FuaXNhdGlvbiBpcyByZWdpc3RlcmVkLiBJZiB5b3UgZG8gbm90IGtub3cgdGhpcyBpbmZvcm1hdGlvbiBwbGVhc2UgZW1haWwgPGEgaHJlZj0nbWFpbHRvOnN1cHBvcnRAaWF0aXN0YW5kYXJkLm9yZycgdGFyZ2V0PSdfYmxhbmsnPnN1cHBvcnRAaWF0aXN0YW5kYXJkLm9yZzwvYT5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiByZWdpc3RyYXRpb25fYWdlbmN5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yIHJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9udW1iZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlJlZ2lzdHJhdGlvbiBOdW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicmVnaXN0cmF0aW9uX251bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiVHlwZSB5b3VyIFJlZ2lzdHJhdGlvbiBOdW1iZXIgaGVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicmVnaXN0cmF0aW9uLW51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIlByb3ZpZGUgdGhlIHJlZ2lzdHJhdGlvbiBudW1iZXIgZm9yIHlvdXIgb3JnYW5pc2F0aW9uIHRoYXQgaGFzIGJlZW4gcHJvdmlkZWQgYnkgb3JnYW5pc2F0aW9uIHJlZ2lzdHJhdGlvbiBhZ2VuY3kuIElmIHlvdSBkbyBub3Qga25vdyB0aGlzIHBsZWFzZSBlbWFpbCA8YSBocmVmPSdtYWlsdG86c3VwcG9ydEBpYXRpc3RhbmRhcmQub3JnJyB0YXJnZXQ9J19ibGFuayc+c3VwcG9ydEBpYXRpc3RhbmRhcmQub3JnPC9hPi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiZm9yIGUuZy4gMTIzNDU2XCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIklBVEkgT3JnYW5pc2F0aW9uYWwgSWRlbnRpZmllclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJpZGVudGlmaWVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImlkZW50aWZpZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogJ1RoZSBPcmdhbmlzYXRpb24gSWRlbnRpZmllciBpcyBhIHVuaXF1ZSBjb2RlIGZvciB5b3VyIG9yZ2FuaXNhdGlvbi4gVGhpcyBpcyBnZW5lcmVhdGVkIGZyb20gdGhlIE9yZ2FuaXNhdGlvbiBSZWdpc3RyYXRpb24gQWdlbmN5IGFuZCBSZWdpc3RyYXRpb24gTnVtYmVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWFkOiAgPGEgaHJlZj1cImh0dHA6Ly9pYXRpc3RhbmRhcmQub3JnL2VuL2d1aWRhbmNlL3ByZXBhcmluZy1vcmdhbmlzYXRpb24vb3JnYW5pc2F0aW9uLWFjY291bnQvaG93LXRvLWNyZWF0ZS15b3VyLWlhdGktb3JnYW5pc2F0aW9uLWlkZW50aWZpZXIvXCIgdGFyZ2V0PVwiX2JsYW5rXCI+SG93IHRvIGNyZWF0ZSB5b3VyIElBVEkgb3JnYW5pc2F0aW9uIGlkZW50aWZpZXIuPC9hPicsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlRoaXMgaXMgYXV0b2dlbmVyYXRlZCwgcGxlYXNlIG1ha2Ugc3VyZSB0byBmaWxsIHRoZSBhYm92ZSBmaWVsZHMgY29ycmVjdGx5LlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZXJfdHlwZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiUHVibGlzaGVyIFR5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicHVibGlzaGVyX3R5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlNlbGVjdCBhIHB1Ymxpc2hlciB0eXBlIFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicHVibGlzaGVyLXR5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogJ1NlbGVjdCB0aGUgdHlwZSB0aGF0IGJlc3QgZGVzY3JpYmVzIHlvdXIgb3JnYW5pc2F0aW9uLiAgPGEgaHJlZj1cImh0dHBzOi8vaWF0aXN0YW5kYXJkLm9yZy9lbi9pYXRpLXN0YW5kYXJkLzIwMy9jb2RlbGlzdHMvb3JnYW5pc2F0aW9udHlwZS9cIiB0YXJnZXQ9XCJfYmxhbmtcIj4gUmVhZCBtb3JlIG9uIE9yZ2FuaXNhdGlvbiB0eXBlcy48L2E+JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBwcm9wcy50eXBlcy5wdWJsaXNoZXJUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yIHJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGxpY2Vuc2VfaWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkRhdGEgTGljZW5zZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJsaWNlbnNlX2lkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJTZWxlY3QgYSBEYXRhIExpY2Vuc2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImRhdGEtbGljZW5zZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIiBTZWxlY3QgdGhlIExpY2Vuc2UgdW5kZXIgd2hpY2ggeW91ciBkYXRhIGlzIGJlaW5nIHB1Ymxpc2hlZC4gSUFUSSBpcyBhbiBvcGVuIGRhdGEgc3RhbmRhcmQgYW5kIHJlcXVpcmVzIHlvdSB0byBtYWtlIHlvdXIgZGF0YSBhdmFpbGFibGUgdW5kZXIgYW4gb3BlbiBsaWNlbmNlIHNvIGl0IGNhbiBiZSBmcmVlbHkgdXNlZC4gT25lIG9mIHRoZSBtb3N0IGZyZXF1ZW50bHkgdXNlZCBsaWNlbnNlcyBpcyBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLiA8YSBocmVmPSdodHRwczovL2lhdGlzdGFuZGFyZC5vcmcvZW4vZ3VpZGFuY2Uvc3RhbmRhcmQtb3ZlcnZpZXcvcHJlcGFyaW5nLXlvdXItb3JnYW5pc2F0aW9uLWRhdGEtcHVibGljYXRpb24vaG93LXRvLWxpY2Vuc2UteW91ci1kYXRhLycgdGFyZ2V0PSdfYmxhbmsnID4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVhZDogSG93IHRvIGxpY2Vuc2UgeW91ciBkYXRhLjwvYT5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBwcm9wcy50eXBlcy5kYXRhTGljZW5zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMiByZWxhdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBpbWFnZV91cmw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlB1Ymxpc2hlciBMb2dvIFVybFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJpbWFnZV91cmxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIkZvciBlLmcuIGh0dHA6Ly9teWxvZ28uY29tIFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicHVibGlzaGVyLWxvZ28tdXJsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIiBQcm92aWRlIGEgbGluayB0byBhbiBpbWFnZSB0byB5b3VyIG9yZ2FuaXNhdGlvbidzIGxvZ28gKE9wdGltdW0gc2l6ZTogMjAwIHggMTIwIHB4KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTIgcmVsYXRpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk9yZ2FuaXphdGlvbiBEZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJkZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiVHlwZSBEZXNjcmlwdGlvbiBoZXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJvcmdhbml6YXRpb24tZGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiIFByb3ZpZGUgYSBzaG9ydCBkZXNjcmlwdGlvbiBhYm91dCB5b3VyIG9yZ2FuaXNhdGlvbi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dGFyZWFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgY29sLXNwYW4tMiBsZzptYi0yIHJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAyOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiQ29udGFjdCBJbmZvcm1hdGlvblwiLFxuICAgICAgICAgICAgICAgIGlzX2NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSBQdWJsaXNoZXIgaW4gSUFUSSBQdWJsaXNoZXJcIixcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFjdF9lbWFpbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiQ29udGFjdCBFbWFpbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJjb250YWN0X2VtYWlsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImNvbnRhY3QtZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJQbGVhc2UgYWRkIGEgY29udGFjdCBlbWFpbCBhZGRyZXNzIGZvciB5b3VyIG9yZ2FuaXNhdGlvbi4gUGxlYXNlIG5vdGUgdGhhdCBJQVRJIGlzIGFuIG9wZW4gZGF0YSBzdGFuZGFyZCBhbmQgdGhlIGVtYWlsIHByb3ZpZGVkIGhlcmUgd2lsbCBiZSB2aXNpYmxlIHRvIG90aGVycyBvbiB0aGUgSUFUSSBSZWdpc3RyeS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCAgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJXZWJzaXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIndlYnNpdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIkZvciBlLmcuIGh0dHA6Ly9teXdlYnNpdGUuY29tXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJ3ZWJzaXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIkFkZCB0aGUgVVJMIHRvIHlvdXIgb3JnYW5pc2F0aW9uJ3Mgd2Vic2l0ZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi02XCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiYWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiVHlwZSBhZGRyZXNzIGhlcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiUHJvdmlkZSBhIGNvbnRhY3QgYWRkcmVzcyBmb3IgeW91ciBvcmdhbmlzYXRpb24uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRhcmVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGNvbC1zcGFuLTIgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMzoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBcIlB1Ymxpc2hpbmcgQWRpdGlvbmFsIEluZm9ybWF0aW9uXCIsXG4gICAgICAgICAgICAgICAgaXNfY29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhbiBhZG1pbiBhY2NvdW50IGluIElBVEkgUHVibGlzaGVyXCIsXG4gICAgICAgICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiU291cmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInNvdXJjZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiU2VsZWN0IGEgU291cmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJjb250YWN0LWVtYWlsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiU2VsZWN0IGFuIG9wdGlvbjo8YnI+UHJpbWFyeSAtIHlvdXIgb3JnYW5pc2F0aW9uIGlzIHB1Ymxpc2hpbmcgaXRzIG93biBvciAoYXNzb2NpYXRlZCBvcmdhbmlzYXRpb25zJykgZGF0YSA8YnI+U2Vjb25kYXJ5IC0geW91ciBvcmdhbmlzYXRpb24gaXMgcmVwcm9kdWNpbmcgZGF0YSBvbiB0aGUgYWN0aXZpdGllcyBvZiBhbm90aGVyIG9yZ2FuaXNhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZWxlY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHByb3BzLnR5cGVzLnNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZWNvcmRfZXhjbHVzaW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiUmVjb3JkIEV4Y2x1c2lvbnNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicmVjb3JkX2V4Y2x1c2lvbnNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlR5cGUgUmVjb3JkIEV4Y2x1c2lvbnMgaGVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicmVjb3JkLWV4Y2x1c2lvbnNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiRG9lcyB5b3VyIG9yZ2FuaXNhdGlvbiBoYXZlIGFuIGV4Y2x1c2lvbiBwb2xpY3kgdGhhdCBwcm92aWRlIGRldGFpbHMgb24gd2hhdCBkYXRhIHRoYXQgaXQgY2Fubm90IHB1Ymxpc2g/IEZvciBleGFtcGxlIGFuIG9yZ2FuaXNhdGlvbiBtYXkgbm90IGJlIGFibGUgdG8gcHVibGlzaCBkYXRhIGJlY2F1c2Ugb2YgcG9saXRpY2FsIHNlbnNpdGl2aXR5IGlzc3VlcyBvciBpZiBpbmZvcm1hdGlvbiBpcyBjb21tZXJjaWFsbHkgcmVzdHJpY3RlZC4gUGxlYXNlIHByb3ZpZGUgZGV0YWlscyBoZXJlIGFib3V0IHdoYXQgZGF0YSB5b3VyIG9yZ2FuaXNhdGlvbiBuZWVkcyB0byBleGNsdWRlIChpZiBhbnkpLCBhbmQgYSBVUkwgdG8geW91ciBvcmdhbmlzYXRpb24ncyBleGNsdXNpb24gcG9saWN5IChpZiBpdCBoYXMgb25lKS48YSBocmVmPSdodHRwczovL2lhdGlzdGFuZGFyZC5vcmcvZW4vZ3VpZGFuY2Uvc3RhbmRhcmQtb3ZlcnZpZXcvcHJlcGFyaW5nLXlvdXItb3JnYW5pc2F0aW9uLWRhdGEtcHVibGljYXRpb24vaW5mb3JtYXRpb24tYW5kLWRhdGEteW91LWNhbnQtcHVibGlzaC1leGNsdXNpb25zLycgdGFyZ2V0PSdfYmxhbmsnPiBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWFkOiBJbmZvcm1hdGlvbiBhbmQgZGF0YSB5b3UgY2FuJ3QgcHVibGlzaCAoZXhjbHVzaW9ucyk8L2E+XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRhcmVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00ICBjb2wtc3Bhbi0yIGxnOm1iLTZcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIDQ6IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogXCJBZG1pbmlzdHJhdG9yIEluZm9ybWF0aW9uXCIsXG4gICAgICAgICAgICAgICAgaXNfY29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlByb3ZpZGUgeW91ciBpbmZvcm1hdGlvbiB0byBjcmVhdGUgYW4gYWRtaW4gYWNjb3VudCBoZXJlIG9uIElBVEkgUHVibGlzaGVyIGFuZCBJQVRJIFJlZ2lzdHJ5IGF0IG9uY2UuXCIsXG4gICAgICAgICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJVc2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJ1c2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiVHlwZSB1c2VybmFtZSBoZXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJ1c2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIllvdSB3aWxsIG5lZWQgdGhpcyBsYXRlciB0byBsb2dpbiBpbnRvIElBVEkgUHVibGlzaGVyLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZnVsbF9uYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJGdWxsIE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiZnVsbF9uYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUeXBlIHlvdXIgZnVsbCBuYW1lIGhlcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImZ1bGwtbmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJjb2wtc3RhcnQtMSBtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkVtYWlsIEFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlR5cGUgdmFsaWQgZW1haWwgaGVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiUGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlR5cGUgcGFzc3dvcmQgaGVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIk1pbmltdW0gbGVuZ3RoOiA2IGNoYXJhY3RlcnNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbmZpcm0gUGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicGFzc3dvcmRfY29uZmlybWF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUeXBlIHBhc3N3b3JkIGhlcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInBhc3N3b3JkLWNvbmZpcm1hdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiU2hvdWxkIG1hdGNoIHRoZSBwYXNzd29yZCBhYm92ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi02XCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA1OiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiRW1haWwgVmVyaWZpY2F0aW9uXCIsXG4gICAgICAgICAgICAgICAgaXNfY29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlBsZWFzZSB2ZXJpZnkgYW5kIGFjdGl2YXRlIHlvdXIgSUFUSSBQdWJsaXNoZXIgYWNjb3VudCB0aHJvdWdoIHlvdXIgcHJvdmlkZWQgZW1haWxcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogVXBkYXRlIFZhbGlkYXRpb24gZXJyb3JzIGZyb20gYXBpIGludG8gZXJyb3JEYXRhIGFycmF5XG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiB1cGRhdGVWYWxpZGF0aW9uRXJyb3JzKGVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGNsZWFuVmFsaWRhdGlvbkVycm9ycygpO1xuICAgICAgICAgICAgZm9yICh2YXIgZmllbGQgaW4gZXJyb3JEYXRhKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhW2ZpZWxkXSA9IGVycm9yUmVzcG9uc2VbZmllbGRdID8gZXJyb3JSZXNwb25zZVtmaWVsZF1bMF0gOiBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICogVXBkYXRlIFZhbGlkYXRpb24gZXJyb3JzIGZyb20gYXBpIGludG8gZXJyb3JEYXRhIGFycmF5XG4gICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gY2xlYW5WYWxpZGF0aW9uRXJyb3JzKCkge1xuICAgICAgICAgICAgZm9yICh2YXIgZmllbGQgaW4gZXJyb3JEYXRhKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhW2ZpZWxkXSA9IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVwZGF0ZSBJQVRJIGFuZCBzeXN0ZW0gRXJyb3JcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUVycm9ycyhlcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnZhbHVlcyhlcnJvckRhdGEpLmV2ZXJ5KGZ1bmN0aW9uICh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPT09ICcnOyB9KSB8fCBzdGVwLnZhbHVlID09PSA0KSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpYXRpRXJyb3IsIHR5cGVvZiAoZXJyb3JSZXNwb25zZSkgPT09ICdzdHJpbmcnID8geyAnZXJyb3InOiBlcnJvclJlc3BvbnNlIH0gOiBlcnJvclJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYW5JYXRpRXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgfSwgMzUwMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsZWFuSWF0aUVycm9ycygpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGVyciBpbiBpYXRpRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgaWF0aUVycm9yW2Vycl07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFZlcmlmaWVzIHB1Ymxpc2hlclxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gdmVyaWZ5UHVibGlzaGVyKCkge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBmb3JtRGF0YS5pZGVudGlmaWVyID0gXCJcIi5jb25jYXQoZm9ybURhdGEucmVnaXN0cmF0aW9uX2FnZW5jeSwgXCItXCIpLmNvbmNhdChmb3JtRGF0YS5yZWdpc3RyYXRpb25fbnVtYmVyKTtcbiAgICAgICAgICAgIGZvcm1EYXRhLnN0ZXAgPSBcIjFcIjtcbiAgICAgICAgICAgIHZhciBmb3JtID0ge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkLCAoX2EgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwiXCIpLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogKDAsIGVuY3J5cHRpb25fMS5kZWZhdWx0KShmb3JtRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24sIChfYiA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogXCJcIiksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoXCIvaWF0aS9yZWdpc3Rlci9wdWJsaXNoZXJcIiwgX19hc3NpZ24oX19hc3NpZ24oe30sIGZvcm1EYXRhKSwgZm9ybSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIGlmIChyZXMucmVxdWVzdC5yZXNwb25zZVVSTC5pbmNsdWRlcyhcImFjdGl2aXRpZXNcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBcIi9hY3Rpdml0aWVzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hlckV4aXN0cy52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9ICFyZXNwb25zZS5zdWNjZXNzIHx8IFwiZXJyb3JzXCIgaW4gcmVzcG9uc2UgPyByZXNwb25zZS5lcnJvcnMgOiBbXTtcbiAgICAgICAgICAgICAgICByZWdpc3RlckZvcm1bXCIxXCJdLmlzX2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKFwicHVibGlzaGVyX2Vycm9yXCIgaW4gcmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVyRXhpc3RzLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFuVmFsaWRhdGlvbkVycm9ycygpO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckZvcm1bXCIxXCJdLmlzX2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RlcCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbGlkYXRpb25FcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlRXJyb3JzKGVycm9ycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUVycm9ycyhlcnIpO1xuICAgICAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN1Ym1pdHMgcmVnaXN0cmF0aW9uIEZvcm1cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIHZlcmlmeUNvbnRhY3RJbmZvcm1hdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgZm9ybURhdGEuc3RlcCA9IFwiMlwiO1xuICAgICAgICAgICAgdmFyIGZvcm0gPSB7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICgwLCBlbmNyeXB0aW9uXzEuZGVmYXVsdCkoZm9ybURhdGEucGFzc3dvcmQsIChfYSA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogXCJcIiksXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkX2NvbmZpcm1hdGlvbiwgKF9iID0gcHJvY2Vzcy5lbnYuTUlYX0VOQ1JZUFRJT05fS0VZKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBcIlwiKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdChcIi9pYXRpL3JlZ2lzdGVyL2NvbnRhY3RcIiwgX19hc3NpZ24oX19hc3NpZ24oe30sIGZvcm1EYXRhKSwgZm9ybSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIGlmIChyZXMucmVxdWVzdC5yZXNwb25zZVVSTC5pbmNsdWRlcyhcImFjdGl2aXRpZXNcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBcIi9hY3Rpdml0aWVzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAhcmVzcG9uc2Uuc3VjY2VzcyB8fCBcImVycm9yc1wiIGluIHJlc3BvbnNlID8gcmVzcG9uc2UuZXJyb3JzIDogW107XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsaWRhdGlvbkVycm9ycyhlcnJvcnMpO1xuICAgICAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJlZ2lzdGVyRm9ybVtcIjJcIl0uaXNfY29tcGxldGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBjbGVhblZhbGlkYXRpb25FcnJvcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJGb3JtW1wiMlwiXS5pc19jb21wbGV0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0ZXAoMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVFcnJvcnMoZXJyb3IpO1xuICAgICAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN1Ym1pdHMgcmVnaXN0cmF0aW9uIEZvcm1cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIHZlcmlmeUFkZGl0aW9uYWxJbmZvcm1hdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgZm9ybURhdGEuc3RlcCA9IFwiM1wiO1xuICAgICAgICAgICAgdmFyIGZvcm0gPSB7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICgwLCBlbmNyeXB0aW9uXzEuZGVmYXVsdCkoZm9ybURhdGEucGFzc3dvcmQsIChfYSA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogXCJcIiksXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkX2NvbmZpcm1hdGlvbiwgKF9iID0gcHJvY2Vzcy5lbnYuTUlYX0VOQ1JZUFRJT05fS0VZKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBcIlwiKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdChcIi9pYXRpL3JlZ2lzdGVyL2FkZGl0aW9uYWxcIiwgX19hc3NpZ24oX19hc3NpZ24oe30sIGZvcm1EYXRhKSwgZm9ybSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIGlmIChyZXMucmVxdWVzdC5yZXNwb25zZVVSTC5pbmNsdWRlcyhcImFjdGl2aXRpZXNcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBcIi9hY3Rpdml0aWVzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAhcmVzcG9uc2Uuc3VjY2VzcyB8fCBcImVycm9yc1wiIGluIHJlc3BvbnNlID8gcmVzcG9uc2UuZXJyb3JzIDogW107XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsaWRhdGlvbkVycm9ycyhlcnJvcnMpO1xuICAgICAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJlZ2lzdGVyRm9ybVtcIjNcIl0uaXNfY29tcGxldGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBjbGVhblZhbGlkYXRpb25FcnJvcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJGb3JtW1wiM1wiXS5pc19jb21wbGV0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0ZXAoMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVFcnJvcnMoZXJyb3IpO1xuICAgICAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN1Ym1pdHMgcmVnaXN0cmF0aW9uIEZvcm1cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZvcm1EYXRhLnN0ZXAgPSBcIjRcIjtcbiAgICAgICAgICAgIHZhciBmb3JtID0ge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkLCAoX2EgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwiXCIpLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogKDAsIGVuY3J5cHRpb25fMS5kZWZhdWx0KShmb3JtRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24sIChfYiA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogXCJcIiksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoXCIvaWF0aS9yZWdpc3RlclwiLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZm9ybURhdGEpLCBmb3JtKSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5yZXF1ZXN0LnJlc3BvbnNlVVJMLmluY2x1ZGVzKFwiYWN0aXZpdGllc1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiL2FjdGl2aXRpZXNcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9ICFyZXNwb25zZS5zdWNjZXNzIHx8IFwiZXJyb3JzXCIgaW4gcmVzcG9uc2UgPyByZXNwb25zZS5lcnJvcnMgOiBbXTtcbiAgICAgICAgICAgICAgICB1cGRhdGVWYWxpZGF0aW9uRXJyb3JzKGVycm9ycyk7XG4gICAgICAgICAgICAgICAgY2xlYW5JYXRpRXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpYXRpRXJyb3IsIGVycm9ycyk7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmVnaXN0ZXJGb3JtW1wiNFwiXS5pc19jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFuVmFsaWRhdGlvbkVycm9ycygpO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckZvcm1bXCI0XCJdLmlzX2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RlcCg0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVFcnJvcnMoZXJyb3IpO1xuICAgICAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0Q3VycmVudFN0ZXAoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RlcC52YWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVN0ZXAoY3VycmVudF9zdGVwKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudF9zdGVwID09PSBzdGVwLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgc3RlcC52YWx1ZSArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjYWxscyBzdWJtaXQgZnVuY3Rpb24gYmFzZWQgb24gY3VycmVudCBzdGVwIHZhbHVlXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnb1RvTmV4dEZvcm0oKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHN0ZXAudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIHZlcmlmeVB1Ymxpc2hlcigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIHZlcmlmeUNvbnRhY3RJbmZvcm1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgIHZlcmlmeUFkZGl0aW9uYWxJbmZvcm1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pdEZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ29Ub1ByZXZpb3VzRm9ybSgpIHtcbiAgICAgICAgICAgIGNsZWFuSWF0aUVycm9ycygpO1xuICAgICAgICAgICAgc3RlcC52YWx1ZSAtPSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZWdpc3RlckZvcm06IHJlZ2lzdGVyRm9ybSxcbiAgICAgICAgICAgIGZvcm1EYXRhOiBmb3JtRGF0YSxcbiAgICAgICAgICAgIGVycm9yRGF0YTogZXJyb3JEYXRhLFxuICAgICAgICAgICAgcHVibGlzaGVyRXhpc3RzOiBwdWJsaXNoZXJFeGlzdHMsXG4gICAgICAgICAgICBpc0xvYWRlclZpc2libGU6IGlzTG9hZGVyVmlzaWJsZSxcbiAgICAgICAgICAgIGdvVG9OZXh0Rm9ybTogZ29Ub05leHRGb3JtLFxuICAgICAgICAgICAgZ29Ub1ByZXZpb3VzRm9ybTogZ29Ub1ByZXZpb3VzRm9ybSxcbiAgICAgICAgICAgIGdldEN1cnJlbnRTdGVwOiBnZXRDdXJyZW50U3RlcCxcbiAgICAgICAgICAgIGNoZWNrU3RlcDogY2hlY2tTdGVwLFxuICAgICAgICAgICAgaWF0aUVycm9yOiBpYXRpRXJyb3IsXG4gICAgICAgICAgICBpc1RleHRGaWVsZDogaXNUZXh0RmllbGQsXG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICBzdGVwOiBzdGVwLFxuICAgICAgICAgICAgcmVzaXplOiByZXNpemUsXG4gICAgICAgICAgICB0ZXh0YXJlYTogdGV4dGFyZWEsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1B1Ymxpc2hpbmdDaGVja2xpc3QnLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIGZ1bmN0aW9uIHRyaWdnZXJNb2RlbCgpIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdvcGVuQWRkTW9kZWwnLCAndHJ1ZScpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IHRyaWdnZXJNb2RlbDogdHJpZ2dlck1vZGVsIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xudmFyIEVtYWlsVmVyaWZpY2F0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZVwiKSk7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLy4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG52YXIgbXVsdGlzZWxlY3RfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQHZ1ZWZvcm0vbXVsdGlzZWxlY3RcIikpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBlbmNyeXB0aW9uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZW5jcnlwdGlvblwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBFbWFpbFZlcmlmaWNhdGlvbjogRW1haWxWZXJpZmljYXRpb25fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgTXVsdGlzZWxlY3Q6IG11bHRpc2VsZWN0XzEuZGVmYXVsdCxcbiAgICAgICAgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNvdW50cnk6IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYWdlbmN5OiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBzdGVwID0gKDAsIHZ1ZV8xLnJlZikoMSk7XG4gICAgICAgIHZhciBwdWJsaXNoZXJFeGlzdHMgPSAoMCwgdnVlXzEucmVmKSh0cnVlKTtcbiAgICAgICAgdmFyIGlzTG9hZGVyVmlzaWJsZSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGFnZW5jeSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5hZ2VuY3k7XG4gICAgICAgIHZhciBlcnJvckRhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHB1Ymxpc2hlcl9uYW1lOiBcIlwiLFxuICAgICAgICAgICAgcHVibGlzaGVyX2lkOiBcIlwiLFxuICAgICAgICAgICAgY291bnRyeTogXCJcIixcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hZ2VuY3k6IFwiXCIsXG4gICAgICAgICAgICByZWdpc3RyYXRpb25fbnVtYmVyOiBcIlwiLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogXCJcIixcbiAgICAgICAgICAgIHVzZXJuYW1lOiBcIlwiLFxuICAgICAgICAgICAgZnVsbF9uYW1lOiBcIlwiLFxuICAgICAgICAgICAgZW1haWw6IFwiXCIsXG4gICAgICAgICAgICBwYXNzd29yZDogXCJcIixcbiAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogXCJcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBmb3JtRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgcHVibGlzaGVyX25hbWU6IFwiXCIsXG4gICAgICAgICAgICBwdWJsaXNoZXJfaWQ6IFwiXCIsXG4gICAgICAgICAgICBjb3VudHJ5OiBcIlwiLFxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2FnZW5jeTogXCJcIixcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9udW1iZXI6IFwiXCIsXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBcIlwiLFxuICAgICAgICAgICAgdXNlcm5hbWU6IFwiXCIsXG4gICAgICAgICAgICBmdWxsX25hbWU6IFwiXCIsXG4gICAgICAgICAgICBlbWFpbDogXCJcIixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBcIlwiLFxuICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiBcIlwiLFxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBmb3JtRGF0YS5jb3VudHJ5OyB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5yZWdpc3RyYXRpb25fYWdlbmN5ID0gXCJcIjtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciByZWdpc3RyYXRpb25fYWdlbmN5ID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYWdlbmNpZXMgPSBhZ2VuY3kudmFsdWU7XG4gICAgICAgICAgICBpZiAoZm9ybURhdGEuY291bnRyeSkge1xuICAgICAgICAgICAgICAgIHZhciB1bmNhdGVnb3JpemVkXzEgPSBbXCJYSVwiLCBcIlhSXCJdO1xuICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYWdlbmNpZXMpLmZpbHRlcihmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IF9hWzBdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5LnN0YXJ0c1dpdGgoZm9ybURhdGEuY291bnRyeSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuY2F0ZWdvcml6ZWRfMS5zb21lKGZ1bmN0aW9uIChrKSB7IHJldHVybiBrZXkuc3RhcnRzV2l0aChrKTsgfSk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFnZW5jaWVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGlzVGV4dEZpZWxkID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGZpZWxkVHlwZSwgZmllbGROYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgoZmllbGRUeXBlID09PSBcInRleHRcIiB8fCBmaWVsZFR5cGUgPT09IFwicGFzc3dvcmRcIiB8fCBmaWVsZFR5cGUgPT09IFwiZW1haWxcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lICE9IFwiaWRlbnRpZmllclwiKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2hlY2tTdGVwID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGZvcm1TdGVwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGZvcm1TdGVwLnRvU3RyaW5nKCkpID09PSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciByZWdpc3RlckZvcm0gPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIDE6IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogXCJQdWJsaXNoZXIgSW5mb3JtYXRpb25cIixcbiAgICAgICAgICAgICAgICBpc19jb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhpcyBpbmZvcm1hdGlvbiB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIGEgUHVibGlzaGVyIGluIElBVEkgUHVibGlzaGVyXCIsXG4gICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJQcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgb3JnYW5pc2F0aW9uLiBZb3Ugd2lsbCBuZWVkIHRvIHByb3ZpZGUgdGhlIHNhbWUgaW5mb3JtYXRpb24gdGhhdCB5b3UgdXNlZCB0byBjcmVhdGUgeW91ciBQdWJsaXNoZXIgQWNjb3VudCBvbiB0aGUgSUFUSSBSZWdpc3RyeSAoaWF0aXJlZ2lzdHJ5Lm9yZykuXCIsXG4gICAgICAgICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlcl9uYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJQdWJsaXNoZXIgTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJwdWJsaXNoZXJfbmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiVHlwZSB5b3VyIFB1Ymxpc2hlciBOYW1lIGhlcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInB1Ymxpc2hlci1uYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiUHJvdmlkZSB0aGUgbmFtZSBvZiB5b3VyIG9yZ2FuaXNhdGlvbi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwiY29sLXNwYW4tMiBtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVyX2lkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJQdWJsaXNoZXIgSURcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicHVibGlzaGVyX2lkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUeXBlIHlvdXIgb3JnYW5pc2F0aW9uIElEIGhlcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInB1Ymxpc2hlci1pZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIlRoaXMgaXMgdGhlIHVuaXF1ZSBJRCBmb3IgeW91ciBvcmdhbmlzYXRpb24gdGhhdCB5b3UgY3JlYXRlZCB3aGVuIHlvdSBzZXQgdXAgeW91ciBJQVRJIFJlZ2lzdHJ5IFB1Ymxpc2hlciBBY2NvdW50LiBJdCBzaG91bGQgYmUgYSBzaG9ydGVyIHZlcnNpb24gb2YgeW91ciBvcmdhbmlzYXRpb24ncyBuYW1lLCB3aGljaCB3aWxsIGluY2x1ZGUgbG93ZXJjYXNlIGxldHRlcnMgYW5kIG1heSBpbmNsdWRlIG51bWJlcnMsIC0gKGRhc2gpIG9yIF8gKHVuZGVyc2NvcmUpLiBGb3IgZXhhbXBsZSBuZWZfbWFsaScgZm9yIE5lYXIgRWFzdCBGb3VuZGF0aW9uIE1hbGkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjb3VudHJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJDb3VudHJ5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImNvdW50cnlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlNlbGVjdCBhIENvdW50cnlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImNvdW50cnlfc2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNlbGVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJBZGQgdGhlIGxvY2F0aW9uIG9mIHlvdXIgb3JnYW5pc2F0aW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogcHJvcHMuY291bnRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMiByZWxhdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25fcmVnaXN0cmF0aW9uX2FnZW5jeToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiT3JnYW5pc2F0aW9uIFJlZ2lzdHJhdGlvbiBBZ2VuY3lcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicmVnaXN0cmF0aW9uX2FnZW5jeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiU2VsZWN0IGFuIE9yZ2FuaXNhdGlvbiBSZWdpc3RyYXRpb24gQWdlbmN5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJyZWdpc3RyYXRpb24tYWdlbmN5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiUHJvdmlkZSB0aGUgbmFtZSBvZiB0aGUgYWdlbmN5IGluIHlvdXIgY291bnRyeSB3aGVyZSB5b3Ugb3JnYW5pc2F0aW9uIGlzIHJlZ2lzdGVyZWQuIElmIHlvdSBkbyBub3Qga25vdyB0aGlzIGluZm9ybWF0aW9uIHBsZWFzZSBlbWFpbCBzdXBwb3J0QGlhdGlzdGFuZGFyZC5vcmcuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNlbGVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogcmVnaXN0cmF0aW9uX2FnZW5jeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMiByZWxhdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25fcmVnaXN0cmF0aW9uX25vOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJPcmdhbmlzYXRpb24gUmVnaXN0cmF0aW9uIE51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJyZWdpc3RyYXRpb25fbnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUeXBlIHlvdXIgUmVnaXN0cmF0aW9uIE51bWJlciBoZXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJyZWdpc3RyYXRpb24tbnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiQWRkIHRoZSByZWdpc3RyYXRpb24gbnVtYmVyIGZvciB5b3VyIG9yZ2FuaXNhdGlvbiB0aGF0IGhhcyBiZWVuIHByb3ZpZGVkIGJ5IHRoZSByZWdpc3RyYXRpb24gYWdlbmN5IG5hbWVkIGFib3ZlLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJmb3IgZS5nLiAxMjM0NTZcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgaWF0aV9vcmdhbml6YXRpb25hbF9pZGVudGlmaWVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJJQVRJIE9yZ2FuaXNhdGlvbmFsIElkZW50aWZpZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiaWRlbnRpZmllclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJpZGVudGlmaWVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6ICdUaGUgT3JnYW5pc2F0aW9uIElkZW50aWZpZXIgaXMgYSB1bmlxdWUgY29kZSBmb3IgeW91ciBvcmdhbmlzYXRpb24uIFRoaXMgaXMgZ2VuZXJhdGVkIGZyb20gdGhlIE9yZ2FuaXNhdGlvbiBSZWdpc3RyYXRpb24gQWdlbmN5IGFuZCBSZWdpc3RyYXRpb24gTnVtYmVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWFkOiA8YSBocmVmPVwiaHR0cDovL2lhdGlzdGFuZGFyZC5vcmcvZW4vZ3VpZGFuY2UvcHJlcGFyaW5nLW9yZ2FuaXNhdGlvbi9vcmdhbmlzYXRpb24tYWNjb3VudC9ob3ctdG8tY3JlYXRlLXlvdXItaWF0aS1vcmdhbmlzYXRpb24taWRlbnRpZmllci9cIiB0YXJnZXQ9XCJfYmxhbmtcIj5Ib3cgdG8gY3JlYXRlIHlvdXIgSUFUSSBvcmdhbmlzYXRpb24gaWRlbnRpZmllci48L2E+JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi02XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiVGhpcyBpcyBhdXRvZ2VuZXJhdGVkLCBwbGVhc2UgbWFrZSBzdXJlIHRvIGZpbGwgdGhlIGFib3ZlIGZpZWxkcyBjb3JyZWN0bHkuXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAyOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiQWRtaW5pc3RyYXRvciBJbmZvcm1hdGlvblwiLFxuICAgICAgICAgICAgICAgIGlzX2NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYW4gYWRtaW4gYWNjb3VudCBpbiBJQVRJIFB1Ymxpc2hlclwiLFxuICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiUHJvdmlkZSB5b3VyIGluZm9ybWF0aW9uIHRvIGNyZWF0ZSBhbiBhZG1pbiBhY2NvdW50IGhlcmUgb24gSUFUSSBQdWJsaXNoZXIuXCIsXG4gICAgICAgICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJVc2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJ1c2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiVHlwZSB1c2VybmFtZSBoZXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJ1c2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIllvdSB3aWxsIG5lZWQgdGhpcyBsYXRlciB0byBsb2dpbiBpbnRvIElBVEkgUHVibGlzaGVyLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZnVsbF9uYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJGdWxsIE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiZnVsbF9uYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUeXBlIHlvdXIgZnVsbCBuYW1lIGhlcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImZ1bGwtbmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJjb2wtc3RhcnQtMSBtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkVtYWlsIEFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlR5cGUgdmFsaWQgZW1haWwgaGVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiUGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlR5cGUgcGFzc3dvcmQgaGVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjb25maXJtX3Bhc3N3b3JkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJDb25maXJtIFBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInBhc3N3b3JkX2NvbmZpcm1hdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiVHlwZSBwYXNzd29yZCBoZXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJwYXNzd29yZC1jb25maXJtYXRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMzoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBcIkVtYWlsIFZlcmlmaWNhdGlvblwiLFxuICAgICAgICAgICAgICAgIGlzX2NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJQbGVhc2UgdmVyaWZ5IGFuZCBhY3RpdmF0ZSB5b3VyIElBVEkgUHVibGlzaGVyIGFjY291bnQgdGhyb3VnaCB5b3VyIHByb3ZpZGVkIGVtYWlsXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gdmVyaWZ5UHVibGlzaGVyKCkge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBmb3JtRGF0YS5pZGVudGlmaWVyID0gXCJcIi5jb25jYXQoZm9ybURhdGEucmVnaXN0cmF0aW9uX2FnZW5jeSwgXCItXCIpLmNvbmNhdChmb3JtRGF0YS5yZWdpc3RyYXRpb25fbnVtYmVyKTtcbiAgICAgICAgICAgIHZhciBmb3JtID0ge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkLCAoX2EgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwiXCIpLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogKDAsIGVuY3J5cHRpb25fMS5kZWZhdWx0KShmb3JtRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24sIChfYiA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogXCJcIiksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoXCIvdmVyaWZ5UHVibGlzaGVyXCIsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBmb3JtRGF0YSksIGZvcm0pKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLnJlcXVlc3QucmVzcG9uc2VVUkwuaW5jbHVkZXMoXCJhY3Rpdml0aWVzXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCIvYWN0aXZpdGllc1wiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBwdWJsaXNoZXJFeGlzdHMudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAhcmVzcG9uc2Uuc3VjY2VzcyB8fCBcImVycm9yc1wiIGluIHJlc3BvbnNlID8gcmVzcG9uc2UuZXJyb3JzIDogW107XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnB1Ymxpc2hlcl9uYW1lID0gZXJyb3JzLnB1Ymxpc2hlcl9uYW1lXG4gICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnB1Ymxpc2hlcl9uYW1lWzBdXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEucHVibGlzaGVyX2lkID0gZXJyb3JzLnB1Ymxpc2hlcl9pZCA/IGVycm9ycy5wdWJsaXNoZXJfaWRbMF0gOiBcIlwiO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5yZWdpc3RyYXRpb25fYWdlbmN5ID0gZXJyb3JzLnJlZ2lzdHJhdGlvbl9hZ2VuY3lcbiAgICAgICAgICAgICAgICAgICAgPyBlcnJvcnMucmVnaXN0cmF0aW9uX2FnZW5jeVswXVxuICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnJlZ2lzdHJhdGlvbl9udW1iZXIgPSBlcnJvcnMucmVnaXN0cmF0aW9uX251bWJlclxuICAgICAgICAgICAgICAgICAgICA/IGVycm9ycy5yZWdpc3RyYXRpb25fbnVtYmVyWzBdXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEuaWRlbnRpZmllciA9IGVycm9ycy5pZGVudGlmaWVyID8gZXJyb3JzLmlkZW50aWZpZXJbMF0gOiBcIlwiO1xuICAgICAgICAgICAgICAgIGlmIChcInB1Ymxpc2hlcl9lcnJvclwiIGluIHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlckV4aXN0cy52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckZvcm1bXCIxXCJdLmlzX2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc3RlcC52YWx1ZSArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBmb3JtID0ge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkLCAoX2EgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwiXCIpLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogKDAsIGVuY3J5cHRpb25fMS5kZWZhdWx0KShmb3JtRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24sIChfYiA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogXCJcIiksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoXCIvcmVnaXN0ZXJcIiwgX19hc3NpZ24oX19hc3NpZ24oe30sIGZvcm1EYXRhKSwgZm9ybSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIGlmIChyZXMucmVxdWVzdC5yZXNwb25zZVVSTC5pbmNsdWRlcyhcImFjdGl2aXRpZXNcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBcIi9hY3Rpdml0aWVzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAhcmVzcG9uc2Uuc3VjY2VzcyB8fCBcImVycm9yc1wiIGluIHJlc3BvbnNlID8gcmVzcG9uc2UuZXJyb3JzIDogW107XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnVzZXJuYW1lID0gZXJyb3JzLnVzZXJuYW1lID8gZXJyb3JzLnVzZXJuYW1lWzBdIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEuZnVsbF9uYW1lID0gZXJyb3JzLmZ1bGxfbmFtZSA/IGVycm9ycy5mdWxsX25hbWVbMF0gOiBcIlwiO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5lbWFpbCA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6IFwiXCI7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnBhc3N3b3JkID0gZXJyb3JzLnBhc3N3b3JkID8gZXJyb3JzLnBhc3N3b3JkWzBdIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEucGFzc3dvcmRfY29uZmlybWF0aW9uID0gZXJyb3JzLnBhc3N3b3JkX2NvbmZpcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICA/IGVycm9ycy5wYXNzd29yZF9jb25maXJtYXRpb25bMF1cbiAgICAgICAgICAgICAgICAgICAgOiBlcnJvcnMucGFzc3dvcmRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnBhc3N3b3JkWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJGb3JtW1wiMlwiXS5pc19jb21wbGV0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXAudmFsdWUgKz0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB2YXIgZXJyb3JzID0gZXJyb3IucmVzcG9uc2UuZGF0YS5lcnJvcnM7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnVzZXJuYW1lID0gZXJyb3JzLnVzZXJuYW1lID8gZXJyb3JzLnVzZXJuYW1lWzBdIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEuZnVsbF9uYW1lID0gZXJyb3JzLmZ1bGxfbmFtZSA/IGVycm9ycy5mdWxsX25hbWVbMF0gOiBcIlwiO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5lbWFpbCA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6IFwiXCI7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnBhc3N3b3JkID0gZXJyb3JzLnBhc3N3b3JkID8gZXJyb3JzLnBhc3N3b3JkWzBdIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEucGFzc3dvcmRfY29uZmlybWF0aW9uID0gZXJyb3JzLnBhc3N3b3JkX2NvbmZpcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICA/IGVycm9ycy5wYXNzd29yZF9jb25maXJtYXRpb25bMF1cbiAgICAgICAgICAgICAgICAgICAgOiBlcnJvcnMucGFzc3dvcmRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnBhc3N3b3JkWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRDdXJyZW50U3RlcCgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGVwLnZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ29Ub05leHRGb3JtKCkge1xuICAgICAgICAgICAgaWYgKHN0ZXAudmFsdWUgPT09IDEpXG4gICAgICAgICAgICAgICAgdmVyaWZ5UHVibGlzaGVyKCk7XG4gICAgICAgICAgICBpZiAoc3RlcC52YWx1ZSA9PT0gMilcbiAgICAgICAgICAgICAgICBzdWJtaXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ29Ub1ByZXZpb3VzRm9ybSgpIHtcbiAgICAgICAgICAgIHN0ZXAudmFsdWUgLT0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVnaXN0ZXJGb3JtOiByZWdpc3RlckZvcm0sXG4gICAgICAgICAgICBmb3JtRGF0YTogZm9ybURhdGEsXG4gICAgICAgICAgICBlcnJvckRhdGE6IGVycm9yRGF0YSxcbiAgICAgICAgICAgIHB1Ymxpc2hlckV4aXN0czogcHVibGlzaGVyRXhpc3RzLFxuICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlOiBpc0xvYWRlclZpc2libGUsXG4gICAgICAgICAgICBnb1RvTmV4dEZvcm06IGdvVG9OZXh0Rm9ybSxcbiAgICAgICAgICAgIGdvVG9QcmV2aW91c0Zvcm06IGdvVG9QcmV2aW91c0Zvcm0sXG4gICAgICAgICAgICBnZXRDdXJyZW50U3RlcDogZ2V0Q3VycmVudFN0ZXAsXG4gICAgICAgICAgICBjaGVja1N0ZXA6IGNoZWNrU3RlcCxcbiAgICAgICAgICAgIGlzVGV4dEZpZWxkOiBpc1RleHRGaWVsZCxcbiAgICAgICAgICAgIHByb3BzOiBwcm9wcyxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbnZhciBjcnlwdG9fanNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiY3J5cHRvLWpzXCIpKTtcbnZhciBMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uLy4uLy4uL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBMb2FkZXI6IExvYWRlcl92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZm9ybURhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiAnJyxcbiAgICAgICAgICAgIHBhc3N3b3JkOiAnJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBlcnJvckRhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiAnJyxcbiAgICAgICAgICAgIHBhc3N3b3JkOiAnJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBpc0xvYWRlclZpc2libGUgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIGZ1bmN0aW9uIGVuY3J5cHQoc3RyaW5nLCBrZXkpIHtcbiAgICAgICAgICAgIHZhciBpdiA9IGNyeXB0b19qc18xLmRlZmF1bHQubGliLldvcmRBcnJheS5yYW5kb20oMTYpOyAvLyB0aGUgcmVhc29uIHRvIGJlIDE2LCBwbGVhc2UgcmVhZCBvbiBgZW5jcnlwdE1ldGhvZGAgcHJvcGVydHkuXG4gICAgICAgICAgICB2YXIgc2FsdCA9IGNyeXB0b19qc18xLmRlZmF1bHQubGliLldvcmRBcnJheS5yYW5kb20oMjU2KTtcbiAgICAgICAgICAgIHZhciBpdGVyYXRpb25zID0gOTk5O1xuICAgICAgICAgICAgdmFyIGVuY3J5cHRNZXRob2RMZW5ndGggPSAyNTYgLyA0OyAvLyBleGFtcGxlOiBBRVMgbnVtYmVyIGlzIDI1NiAvIDQgPSA2NFxuICAgICAgICAgICAgdmFyIGhhc2hLZXkgPSBjcnlwdG9fanNfMS5kZWZhdWx0LlBCS0RGMihrZXksIHNhbHQsIHtcbiAgICAgICAgICAgICAgICBoYXNoZXI6IGNyeXB0b19qc18xLmRlZmF1bHQuYWxnby5TSEE1MTIsXG4gICAgICAgICAgICAgICAga2V5U2l6ZTogZW5jcnlwdE1ldGhvZExlbmd0aCAvIDgsXG4gICAgICAgICAgICAgICAgaXRlcmF0aW9uczogaXRlcmF0aW9ucyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGVuY3J5cHRlZCA9IGNyeXB0b19qc18xLmRlZmF1bHQuQUVTLmVuY3J5cHQoc3RyaW5nLCBoYXNoS2V5LCB7XG4gICAgICAgICAgICAgICAgbW9kZTogY3J5cHRvX2pzXzEuZGVmYXVsdC5tb2RlLkNCQyxcbiAgICAgICAgICAgICAgICBpdjogaXYsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBlbmNyeXB0ZWRTdHJpbmcgPSBjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5CYXNlNjQuc3RyaW5naWZ5KGVuY3J5cHRlZC5jaXBoZXJ0ZXh0KTtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSB7XG4gICAgICAgICAgICAgICAgY2lwaGVydGV4dDogZW5jcnlwdGVkU3RyaW5nLFxuICAgICAgICAgICAgICAgIGl2OiBjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5IZXguc3RyaW5naWZ5KGl2KSxcbiAgICAgICAgICAgICAgICBzYWx0OiBjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5IZXguc3RyaW5naWZ5KHNhbHQpLFxuICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IGl0ZXJhdGlvbnMsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkJhc2U2NC5zdHJpbmdpZnkoY3J5cHRvX2pzXzEuZGVmYXVsdC5lbmMuVXRmOC5wYXJzZShKU09OLnN0cmluZ2lmeShvdXRwdXQpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbG9naW4oKSB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZvcm07XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYikge1xuICAgICAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBmb3JtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IGZvcm1EYXRhLnVzZXJuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IGVuY3J5cHQoZm9ybURhdGEucGFzc3dvcmQsIChfYSA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wb3N0KCcvbG9naW4nLCBmb3JtKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEudXNlcm5hbWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICdhY3Rpdml0aWVzJztcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSBlcnJvci5yZXNwb25zZS5kYXRhLmVycm9ycztcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS51c2VybmFtZSA9IGVycm9ycy51c2VybmFtZSA/IGVycm9ycy51c2VybmFtZVswXSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLnBhc3N3b3JkID0gZXJyb3JzLnBhc3N3b3JkID8gZXJyb3JzLnBhc3N3b3JkWzBdIDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmb3JtRGF0YTogZm9ybURhdGEsXG4gICAgICAgICAgICBlcnJvckRhdGE6IGVycm9yRGF0YSxcbiAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZTogaXNMb2FkZXJWaXNpYmxlLFxuICAgICAgICAgICAgbG9naW46IGxvZ2luLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBOYXZEcm9wZG93bl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vY29tcG9uZW50cy9OYXZEcm9wZG93bi52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgTmF2RHJvcGRvd246IE5hdkRyb3Bkb3duX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIGF1dGg6IHsgdHlwZTogU3RyaW5nLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCduby1uYXYnKTtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5vblVubW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCduby1uYXYnKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIEZpcnN0IHdlIHdpbGwgbG9hZCBhbGwgb2YgdGhpcyBwcm9qZWN0J3MgSmF2YVNjcmlwdCBkZXBlbmRlbmNpZXMgd2hpY2hcbiAqIGluY2x1ZGVzIFZ1ZSBhbmQgb3RoZXIgbGlicmFyaWVzLiBJdCBpcyBhIGdyZWF0IHN0YXJ0aW5nIHBvaW50IHdoZW5cbiAqIGJ1aWxkaW5nIHJvYnVzdCwgcG93ZXJmdWwgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBWdWUgYW5kIExhcmF2ZWwuXG4gKi9cbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlM19zbW9vdGhfc2Nyb2xsXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInZ1ZTMtc21vb3RoLXNjcm9sbFwiKSk7XG52YXIgc3ZnX3Z1ZTNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwic3ZnLXZ1ZTNcIikpO1xudmFyIFdlYkhlYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy93ZWIvcGFydGlhbHMvV2ViSGVhZGVyLnZ1ZVwiKSk7XG52YXIgV2ViRm9vdGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJGb290ZXIudnVlXCIpKTtcbnZhciBBZG1pbkZvb3Rlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy93ZWIvcGFydGlhbHMvQWRtaW5Gb290ZXIudnVlXCIpKTtcbnZhciBXZWxjb21lUGFnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy93ZWIvV2VsY29tZVBhZ2UudnVlXCIpKTtcbnZhciBSZWdpc3RlclBhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3Mvd2ViL1JlZ2lzdGVyUGFnZS52dWVcIikpO1xudmFyIEFib3V0UGFnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy93ZWIvQWJvdXRQYWdlLnZ1ZVwiKSk7XG52YXIgU3VwcG9ydFBhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3Mvd2ViL1N1cHBvcnRQYWdlLnZ1ZVwiKSk7XG52YXIgSWF0aVN0YW5kYXJkX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3dlYi9JYXRpU3RhbmRhcmQudnVlXCIpKTtcbnZhciBQdWJsaXNoaW5nQ2hlY2tsaXN0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3dlYi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZVwiKSk7XG52YXIgSWF0aVJlZ2lzdGVyUGFnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy93ZWIvSWF0aVJlZ2lzdGVyUGFnZS52dWVcIikpO1xuLyoqXG4gKiBWdWUgY29tcG9uZW50cyBmb3IgQWN0aXZpdGllcyBMaXN0aW5nXG4gKi9cbnZhciBSZXN1bHREZXRhaWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9SZXN1bHREZXRhaWwudnVlXCIpKTtcbnZhciBSZXN1bHRMaXN0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0TGlzdC52dWVcIikpO1xudmFyIEluZGljYXRvckRldGFpbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL0luZGljYXRvckRldGFpbC52dWVcIikpO1xudmFyIEluZGljYXRvckxpc3RfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9JbmRpY2F0b3JMaXN0LnZ1ZVwiKSk7XG52YXIgUGVyaW9kc0RldGFpbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNEZXRhaWwudnVlXCIpKTtcbnZhciBQZXJpb2RzTGlzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNMaXN0LnZ1ZVwiKSk7XG52YXIgVHJhbnNhY3Rpb25MaXN0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkxpc3QudnVlXCIpKTtcbnZhciBUcmFuc2FjdGlvbkRldGFpbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25EZXRhaWwudnVlXCIpKTtcbnZhciBEZXNjcmlwdGlvbkZvcm1fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vY29tcG9uZW50cy9EZXNjcmlwdGlvbkZvcm0udnVlXCIpKTtcbnZhciBFbGVtZW50c05vdGVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRWxlbWVudHNOb3RlLnZ1ZVwiKSk7XG52YXIgQWN0aXZpdHlJbmRleF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eUluZGV4LnZ1ZVwiKSk7XG52YXIgQWRtaW5IZWFkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vY29tcG9uZW50cy9BZG1pbkhlYWRlci52dWVcIikpO1xudmFyIEFjdGl2aXR5RGV0YWlsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5RGV0YWlsLnZ1ZVwiKSk7XG52YXIgU2lkZWJhckhlbHBCbG9ja192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9TaWRlYmFySGVscEJsb2NrLnZ1ZVwiKSk7XG52YXIgQWN0aXZpdHlVcGxvYWRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvaW1wb3J0L0FjdGl2aXR5VXBsb2FkLnZ1ZVwiKSk7XG52YXIgSW1wb3J0TGlzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9pbXBvcnQvSW1wb3J0TGlzdC52dWVcIikpO1xuLyoqXG4gKiBTZXR0aW5nIHBhZ2VcbiAqL1xudmFyIFNldHRpbmdQYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1BhZ2UudnVlXCIpKTtcbi8vQWN0aXZpdHkgRGVmYXVsdCBWYWx1ZXNcbnZhciBBY3Rpdml0eURlZmF1bHRWYWx1ZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eURlZmF1bHRWYWx1ZS52dWVcIikpO1xuLyoqXG4gKiB2dWUgY29tcG9uZW50IGZvciBwYXNzd29yZCByZXNldFxuICovXG52YXIgUmVzZXRQYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWVcIikpO1xudmFyIFBhc3N3b3JkUmVjb3ZlcnlfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvcmVzZXQvUGFzc3dvcmRSZWNvdmVyeS52dWVcIikpO1xudmFyIFJlc2V0UGFzc3dvcmRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvcmVzZXQvUmVzZXRQYXNzd29yZC52dWVcIikpO1xuLyoqXG4gKiBPcmdhbmlzYXRpb24gZGF0YVxuICovXG52YXIgT3JnYW5pc2F0aW9uRGF0YV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWVcIikpO1xuLyoqXG4gKiBPcmdhbmlzYXRpb24gTGlzdCAvIFByb3h5XG4gKi9cbnZhciBPcmdhbmlzYXRpb25MaXN0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3N1cGVyYWRtaW4vT3JnYW5pc2F0aW9uTGlzdC52dWVcIikpO1xudmFyIEFkbWluQmFyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3N1cGVyYWRtaW4vY29tcG9uZW50cy9BZG1pbkJhci52dWVcIikpO1xuLyoqXG4gKiBBZGRpdGlvbmFsIENvbXBvbmVudHNcbiAqL1xudmFyIEhvdmVyVGV4dF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9jb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIikpO1xudmFyIFBhZ2VUaXRsZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9jb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9jb21wb25lbnRzL0xvYWRlci52dWVcIikpO1xudmFyIGFwcCA9ICgwLCB2dWVfMS5jcmVhdGVBcHApKHt9KTtcbi8qKlxuICogR2xvYmFsIENvbXBvbmVudHNcbiAqL1xuYXBwXG4gICAgLmNvbXBvbmVudCgnV2ViSGVhZGVyJywgV2ViSGVhZGVyX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnV2ViRm9vdGVyJywgV2ViRm9vdGVyX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnQWRtaW5Gb290ZXInLCBBZG1pbkZvb3Rlcl92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1dlbGNvbWVTaWduaW4nLCBXZWxjb21lUGFnZV92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1JlZ2lzdGVyRm9ybScsIFJlZ2lzdGVyUGFnZV92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ0lhdGlSZWdpc3RlckZvcm0nLCBJYXRpUmVnaXN0ZXJQYWdlX3Z1ZV8xLmRlZmF1bHQpO1xuLyoqXG4gKiByZWdpc3RlcmluZyB3ZWIgcG9ydGFsIHBhZ2VzXG4gKi9cbmFwcFxuICAgIC5jb21wb25lbnQoJ0Fib3V0UGFnZScsIEFib3V0UGFnZV92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1N1cHBvcnRQYWdlJywgU3VwcG9ydFBhZ2VfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdJYXRpU3RhbmRhcmQnLCBJYXRpU3RhbmRhcmRfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdQdWJsaXNoaW5nQ2hlY2tsaXN0JywgUHVibGlzaGluZ0NoZWNrbGlzdF92dWVfMS5kZWZhdWx0KTtcbi8qKlxuICogUmVnaXN0ZXJpbmcgdnVlIGNvbXBvbmVudCBmb3IgYWN0aXZpdHkgbGlzdGluZ1xuICovXG5hcHBcbiAgICAuY29tcG9uZW50KCdBY3Rpdml0eVRlbXBsYXRlJywgQWN0aXZpdHlJbmRleF92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ0xvZ2dlZGluSGVhZGVyJywgQWRtaW5IZWFkZXJfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdBY3Rpdml0aWVzRGV0YWlsJywgQWN0aXZpdHlEZXRhaWxfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdEZXNjcmlwdGlvbkZvcm0nLCBEZXNjcmlwdGlvbkZvcm1fdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdFbGVtZW50c05vdGUnLCBFbGVtZW50c05vdGVfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdSZXN1bHREZXRhaWwnLCBSZXN1bHREZXRhaWxfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdSZXN1bHRMaXN0JywgUmVzdWx0TGlzdF92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ0luZGljYXRvckRldGFpbCcsIEluZGljYXRvckRldGFpbF92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ0luZGljYXRvckxpc3QnLCBJbmRpY2F0b3JMaXN0X3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnUGVyaW9kc0RldGFpbCcsIFBlcmlvZHNEZXRhaWxfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdQZXJpb2RzTGlzdCcsIFBlcmlvZHNMaXN0X3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnVHJhbnNhY3Rpb25MaXN0JywgVHJhbnNhY3Rpb25MaXN0X3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnVHJhbnNhY3Rpb25EZXRhaWwnLCBUcmFuc2FjdGlvbkRldGFpbF92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1NpZGViYXJIZWxwQmxvY2snLCBTaWRlYmFySGVscEJsb2NrX3Z1ZV8xLmRlZmF1bHQpO1xuLypcbiAqIEltcG9ydCBwYWdlXG4gKi9cbmFwcFxuICAgIC5jb21wb25lbnQoJ0FjdGl2aXR5VXBsb2FkJywgQWN0aXZpdHlVcGxvYWRfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdJbXBvcnRMaXN0JywgSW1wb3J0TGlzdF92dWVfMS5kZWZhdWx0KTtcbi8qXG4gKiBTZXR0aW5nIHBhZ2VcbiAqL1xuYXBwLmNvbXBvbmVudCgnU2V0dGluZ1BhZ2UnLCBTZXR0aW5nUGFnZV92dWVfMS5kZWZhdWx0KTtcbmFwcC5jb21wb25lbnQoJ0FjdGl2aXR5RGVmYXVsdFZhbHVlcycsIEFjdGl2aXR5RGVmYXVsdFZhbHVlX3Z1ZV8xLmRlZmF1bHQpO1xuLypcblJlZ2lzdGVyaW5nIHZ1ZSBjb21wb25lbnQgZm9yIHBhc3N3b3JkIHJlc2V0XG4qL1xuYXBwXG4gICAgLmNvbXBvbmVudCgnUmVzZXRQYWdlJywgUmVzZXRQYWdlX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnUGFzc3dvcmRSZWNvdmVyeScsIFBhc3N3b3JkUmVjb3ZlcnlfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdSZXNldFBhc3N3b3JkJywgUmVzZXRQYXNzd29yZF92dWVfMS5kZWZhdWx0KTtcbi8qKlxuICogUmVnaXN0ZXJpbmcgQWRkaXRpb25hbCBDb21wb25lbnRzXG4gKi9cbmFwcC5jb21wb25lbnQoJ0hvdmVyVGV4dCcsIEhvdmVyVGV4dF92dWVfMS5kZWZhdWx0KTtcbmFwcC5jb21wb25lbnQoJ1BhZ2VUaXRsZScsIFBhZ2VUaXRsZV92dWVfMS5kZWZhdWx0KTtcbmFwcC5jb21wb25lbnQoJ0xvYWRpbmdTdGF0ZScsIExvYWRlcl92dWVfMS5kZWZhdWx0KTtcbi8qKlxuICogT3JnYW5pc2F0aW9uIGRhdGFcbiAqL1xuYXBwLmNvbXBvbmVudCgnT3JnYW5pc2F0aW9uRGF0YScsIE9yZ2FuaXNhdGlvbkRhdGFfdnVlXzEuZGVmYXVsdCk7XG4vKipcbiAqIFByb3h5XG4gKi9cbmFwcC5jb21wb25lbnQoJ09yZ2FuaXNhdGlvbkxpc3QnLCBPcmdhbmlzYXRpb25MaXN0X3Z1ZV8xLmRlZmF1bHQpO1xuYXBwLmNvbXBvbmVudCgnQWRtaW5CYXInLCBBZG1pbkJhcl92dWVfMS5kZWZhdWx0KTtcbi8qKlxuICogRXh0ZW5zaW9uIHRvIGlubGluZSBTVkcgZmlsZXMgd2l0aCBWdWUuanMgYW5kIG9wdGltaXplIHRoZW0gYXV0b21hdGljYWxseSB3aXRoIFNWR09cbiAqL1xuYXBwLnVzZShzdmdfdnVlM18xLmRlZmF1bHQpO1xuYXBwLnVzZSh2dWUzX3Ntb290aF9zY3JvbGxfMS5kZWZhdWx0KTtcbi8vIGRldGVjdCBzY3JvbGwgdXAgb3IgZG93blxudmFyIGxhc3RTY3JvbGxUb3AgPSAwLCBhZmZpeFR5cGUgPSAnc3RpY2t5LW5vbmUnO1xudmFyIHN0aWNreVNpZGViYXIgPSBmdW5jdGlvbiAoZWwsIHBhcmVudFdyYXBwZXIpIHtcbiAgICAvL3N0aWNreSBlbGVtZW50L2NoaWxkIGRhdGFcbiAgICB2YXIgc3RpY2t5RWxlbWVudCA9IGVsLmZpcnN0Q2hpbGQsIGVsSGVpZ2h0ID0gc3RpY2t5RWxlbWVudC5vZmZzZXRIZWlnaHQsIHN0aWNreUN1cnJlbnRUb3AgPSBzdGlja3lFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCwgc3RpY2t5Q3VycmVudEJvdHRvbSA9IHN0aWNreUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tO1xuICAgIC8vc3RpY2t5IGVsZW1lbnQncyBwYXJlbnQvd3JhcHBlciBkYXRhXG4gICAgdmFyIGVsV2lkdGggPSBlbC5vZmZzZXRXaWR0aCwgZWxTY3JvbGxMZWZ0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCwgZWxTY3JvbGxUb3AgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsIGVsU2Nyb2xsQm90dG9tID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAvLyB3aW5kb3cvZG9jdW1lbnQgZGF0YVxuICAgIHZhciBjdXJyZW50V2luZG93c1Njcm9sbFBvc2l0aW9uID0gd2luZG93LnBhZ2VZT2Zmc2V0LCB0YXJnZXRTY3JvbGxQb3NpdGlvbiA9IGVsU2Nyb2xsQm90dG9tICsgY3VycmVudFdpbmRvd3NTY3JvbGxQb3NpdGlvbiAtIHZpZXdwb3J0SGVpZ2h0O1xuICAgIC8vIHBhcmVudCB3cmFwcGVyIC8gc3RpY2t5IGJvdW5kYXJ5XG4gICAgdmFyIGVsUGFyZW50ID0gc3RpY2t5RWxlbWVudC5jbG9zZXN0KHBhcmVudFdyYXBwZXIpLCBlbFBhcmVudEJvdHRvbSA9IGVsUGFyZW50ID09PSBudWxsIHx8IGVsUGFyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbFBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207XG4gICAgLy8gc2Nyb2xsIGJlaGF2aW91clxuICAgIHZhciBpc1Njcm9sbERvd24gPSBjdXJyZW50V2luZG93c1Njcm9sbFBvc2l0aW9uID4gbGFzdFNjcm9sbFRvcCA/IHRydWUgOiBmYWxzZTtcbiAgICB2YXIgaXNTY3JvbGxVcCA9ICFpc1Njcm9sbERvd247XG4gICAgbGFzdFNjcm9sbFRvcCA9XG4gICAgICAgIGN1cnJlbnRXaW5kb3dzU2Nyb2xsUG9zaXRpb24gPD0gMCA/IDAgOiBjdXJyZW50V2luZG93c1Njcm9sbFBvc2l0aW9uO1xuICAgIGZ1bmN0aW9uIGhhbmRsZVNjcm9sbERvd24oKSB7XG4gICAgICAgIHN3aXRjaCAoYWZmaXhUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdzdGlja3ktdG9wJzpcbiAgICAgICAgICAgICAgICBzdGlja3lFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiByZWxhdGl2ZTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCBcIi5jb25jYXQoc3RpY2t5Q3VycmVudFRvcCAtIGVsU2Nyb2xsVG9wLCBcInB4LCAwKTtcIik7XG4gICAgICAgICAgICAgICAgYWZmaXhUeXBlID0gJ3N0aWNreS10cmFuc2xhdGUnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RpY2t5LWJvdHRvbSc6XG4gICAgICAgICAgICAgICAgaWYgKGVsUGFyZW50Qm90dG9tICYmIGVsUGFyZW50Qm90dG9tIDwgc3RpY2t5Q3VycmVudEJvdHRvbSkge1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uIDogYWJzb2x1dGU7ICB3aWR0aDoyODBweDsgYm90dG9tOiAxNnB4XCI7XG4gICAgICAgICAgICAgICAgICAgIGFmZml4VHlwZSA9ICdzdGlja3ktYm91bmQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0aWNreS10cmFuc2xhdGUnOlxuICAgICAgICAgICAgICAgIGlmIChzdGlja3lDdXJyZW50Qm90dG9tIDw9IHZpZXdwb3J0SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IGZpeGVkOyB0b3A6IGF1dG87IGxlZnQ6IFwiLmNvbmNhdChlbFNjcm9sbExlZnQsIFwiOyBib3R0b206IDA7IHdpZHRoOiBcIikuY29uY2F0KGVsV2lkdGgsIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgIGFmZml4VHlwZSA9ICdzdGlja3ktYm90dG9tJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaXhlZC10b3AnOlxuICAgICAgICAgICAgICAgIGVsLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiBmaXhlZDsgdG9wOjYwcHhcIjtcbiAgICAgICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LXRyYW5zbGF0ZSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGlja3ktbm9uZSc6XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldFNjcm9sbFBvc2l0aW9uIDw9IGN1cnJlbnRXaW5kb3dzU2Nyb2xsUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0SGVpZ2h0ICsgd2luZG93LnNjcm9sbFkgKyA0NTAgPj1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogc3RpY2t5OyB0b3A6NjBweFwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5RWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogZml4ZWQ7IHRvcDogYXV0bzsgbGVmdDogXCIuY29uY2F0KGVsU2Nyb2xsTGVmdCwgXCI7IGJvdHRvbTogMDsgd2lkdGg6IFwiKS5jb25jYXQoZWxXaWR0aCwgXCJweFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4VHlwZSA9ICdzdGlja3ktYm90dG9tJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0aWNreS1ib3VuZCc6XG4gICAgICAgICAgICAgICAgLy8gbm90aGluZyB0byBkbyBoZXJlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlU2Nyb2xsVXAoKSB7XG4gICAgICAgIHN3aXRjaCAoYWZmaXhUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdzdGlja3ktdG9wJzpcbiAgICAgICAgICAgICAgICBpZiAoZWxTY3JvbGxUb3AgPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiByZWxhdGl2ZTsgIFwiO1xuICAgICAgICAgICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LW5vbmUnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5RWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogZml4ZWQ7IHRvcDogNjBweDtsZWZ0OiBcIi5jb25jYXQoZWxTY3JvbGxMZWZ0LCBcIjsgd2lkdGg6IFwiKS5jb25jYXQoZWxXaWR0aCwgXCJweCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RpY2t5LWJvdHRvbSc6XG4gICAgICAgICAgICAgICAgc3RpY2t5RWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogYXV0bzsgIGJvdHRvbTogNjBweDtsZWZ0OiBcIi5jb25jYXQoZWxTY3JvbGxMZWZ0LCBcIjsgd2lkdGg6IFwiKS5jb25jYXQoZWxXaWR0aCwgXCJweCBcIik7XG4gICAgICAgICAgICAgICAgYWZmaXhUeXBlID0gJ3N0aWNreS1ib3VuZCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaXhlZC10b3AnOlxuICAgICAgICAgICAgICAgIGVsLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiBmaXhlZDsgdG9wOjYwcHhcIjtcbiAgICAgICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LXRyYW5zbGF0ZSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGlja3ktdHJhbnNsYXRlJzpcbiAgICAgICAgICAgICAgICBpZiAoc3RpY2t5Q3VycmVudFRvcCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IGZpeGVkOyB0b3A6IDYwcHg7IGxlZnQ6IFwiLmNvbmNhdChlbFNjcm9sbExlZnQsIFwiOyB3aWR0aDogXCIpLmNvbmNhdChlbFdpZHRoLCBcInB4XCIpO1xuICAgICAgICAgICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LXRvcCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RpY2t5LW5vbmUnOlxuICAgICAgICAgICAgICAgIC8vbm90aGluZyB0byBkbyBoZXJlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGlja3ktYm91bmQnOlxuICAgICAgICAgICAgICAgIGlmIChzdGlja3lDdXJyZW50VG9wID49IDAgJiYgY3VycmVudFdpbmRvd3NTY3JvbGxQb3NpdGlvbiAhPSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246Zml4ZWQ7IHRvcDogMDsgbGVmdDogXCIuY29uY2F0KGVsU2Nyb2xsTGVmdCwgXCI7IHdpZHRoOiBcIikuY29uY2F0KGVsV2lkdGgsIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgIGFmZml4VHlwZSA9ICdzdGlja3ktdG9wJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN0aWNreUN1cnJlbnRUb3AgPj0gMCAmJiBjdXJyZW50V2luZG93c1Njcm9sbFBvc2l0aW9uID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5RWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gXCIgdG9wOiAwOyBsZWZ0OiBcIi5jb25jYXQoZWxTY3JvbGxMZWZ0LCBcIjsgd2lkdGg6IFwiKS5jb25jYXQoZWxXaWR0aCwgXCJweFwiKTtcbiAgICAgICAgICAgICAgICAgICAgYWZmaXhUeXBlID0gJ3N0aWNreS10b3AnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZWxIZWlnaHQgPCB2aWV3cG9ydEhlaWdodCkge1xuICAgICAgICBlbC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogc3RpY2t5OyB0b3A6NjBweFwiO1xuICAgICAgICBzdGlja3lFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBcIlwiO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZWwuc3R5bGUuY3NzVGV4dCA9IFwiaGVpZ2h0OiBcIi5jb25jYXQoZWxIZWlnaHQsIFwicHg7XCIpO1xuICAgICAgICBpZiAoaXNTY3JvbGxEb3duICYmIGN1cnJlbnRXaW5kb3dzU2Nyb2xsUG9zaXRpb24gIT0gMCkge1xuICAgICAgICAgICAgaGFuZGxlU2Nyb2xsRG93bigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzU2Nyb2xsVXAgJiYgY3VycmVudFdpbmRvd3NTY3JvbGxQb3NpdGlvbiAhPSAwKSB7XG4gICAgICAgICAgICBoYW5kbGVTY3JvbGxVcCgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZWwuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IHN0aWNreTsgdG9wOjYwcHhcIjtcbiAgICAgICAgICAgIHN0aWNreUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG59O1xudmFyIGZpeFNpZGViYXIgPSBmdW5jdGlvbiAoZWwpIHtcbiAgICB2YXIgZm9vdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvb3RlcicpO1xuICAgIHZhciByZWN0ID0gZm9vdGVyICYmIGZvb3Rlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB2YXIgcHJvZ3Jlc3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ3Jlc3MnKTtcbiAgICB2YXIgdG9wID0gcHJvZ3Jlc3MgJiYgcHJvZ3Jlc3MuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaWYgKGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPiAxMDI0KSB7XG4gICAgICAgIGlmIChyZWN0ICYmIHJlY3QudG9wIDw9IDgwMCkge1xuICAgICAgICAgICAgZWwuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IGF1dG87ICBib3R0b206IDYwcHg7d2lkdGg6MjgwcHggXCI7XG4gICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LWJvdHRvbSc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodG9wICYmIHRvcC5ib3R0b20gPiAwKSB7XG4gICAgICAgICAgICBlbC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDoxOTBweFwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZWwuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IGZpeGVkOyB0b3A6NjBweFwiO1xuICAgICAgICAgICAgYWZmaXhUeXBlID0gJ2ZpeGVkLXRvcCc7XG4gICAgICAgIH1cbiAgICB9XG59O1xuLy8gY3VzdG9tIGRpcmVjdGl2ZVxuYXBwLmRpcmVjdGl2ZSgnc3RpY2t5LWNvbXBvbmVudCcsIHtcbiAgICBtb3VudGVkOiBmdW5jdGlvbiAoZWwsIGJpbmRpbmcpIHtcbiAgICAgICAgdmFyIGJvdW5kYXJ5ID0gKGJpbmRpbmcudmFsdWUgfHwge30pLmJvdW5kYXJ5O1xuICAgICAgICBib3VuZGFyeSA9IGJvdW5kYXJ5IHx8ICdib2R5JztcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0aWNreVNpZGViYXIoZWwsIGJvdW5kYXJ5KTsgfSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmdW5jdGlvbiAoKSB7IHJldHVybiBmaXhTaWRlYmFyKGVsKTsgfSk7XG4gICAgfSxcbiAgICB1bm1vdW50ZWQ6IGZ1bmN0aW9uIChlbCwgYmluZGluZykge1xuICAgICAgICB2YXIgcGFyZW50ID0gYmluZGluZy52YWx1ZS5ib3VuZGFyeTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0aWNreVNpZGViYXIoZWwsIHBhcmVudCk7IH0pO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgeyByZXR1cm4gZml4U2lkZWJhcihlbCk7IH0pO1xuICAgIH0sXG59KTtcbi8qKlxuICogTmV4dCwgd2Ugd2lsbCBjcmVhdGUgYSBmcmVzaCBWdWUgYXBwbGljYXRpb24gaW5zdGFuY2UgYW5kIGF0dGFjaCBpdCB0b1xuICogdGhlIHBhZ2UuIFRoZW4sIHlvdSBtYXkgYmVnaW4gYWRkaW5nIGNvbXBvbmVudHMgdG8gdGhpcyBhcHBsaWNhdGlvblxuICogb3IgY3VzdG9taXplIHRoZSBKYXZhU2NyaXB0IHNjYWZmb2xkaW5nIHRvIGZpdCB5b3VyIHVuaXF1ZSBuZWVkcy5cbiAqL1xuYXBwLm1vdW50KCcjYXBwJyk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMub3JnTWFuZGF0b3J5RWxlbWVudHMgPSBleHBvcnRzLmFjdGl2aXR5Q29yZUVsZW1lbnRzID0gdm9pZCAwO1xuZnVuY3Rpb24gYWN0aXZpdHlDb3JlRWxlbWVudHMoKSB7XG4gICAgdmFyIGVsZW1lbnRzID0gW1xuICAgICAgICAncmVwb3J0aW5nX29yZycsXG4gICAgICAgICdpYXRpX2lkZW50aWZpZXInLFxuICAgICAgICAndGl0bGUnLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAncGFydGljaXBhdGluZ19vcmcnLFxuICAgICAgICAnYWN0aXZpdHlfc3RhdHVzJyxcbiAgICAgICAgJ2FjdGl2aXR5X2RhdGUnLFxuICAgICAgICAncmVjaXBpZW50X2NvdW50cnknLFxuICAgICAgICAncmVjaXBpZW50X3JlZ2lvbicsXG4gICAgICAgICdzZWN0b3InLFxuICAgICAgICAnY29sbGFib3JhdGlvbl90eXBlJyxcbiAgICAgICAgJ2RlZmF1bHRfZmxvd190eXBlJyxcbiAgICAgICAgJ2RlZmF1bHRfZmluYW5jZV90eXBlJyxcbiAgICAgICAgJ2RlZmF1bHRfYWlkX3R5cGUnLFxuICAgICAgICAnYnVkZ2V0JyxcbiAgICAgICAgJ3RyYW5zYWN0aW9ucycsXG4gICAgXTtcbiAgICByZXR1cm4gZWxlbWVudHM7XG59XG5leHBvcnRzLmFjdGl2aXR5Q29yZUVsZW1lbnRzID0gYWN0aXZpdHlDb3JlRWxlbWVudHM7XG5mdW5jdGlvbiBvcmdNYW5kYXRvcnlFbGVtZW50cygpIHtcbiAgICB2YXIgZWxlbWVudHMgPSBbJ3JlcG9ydGluZ19vcmcnLCAnbmFtZSddO1xuICAgIHJldHVybiBlbGVtZW50cztcbn1cbmV4cG9ydHMub3JnTWFuZGF0b3J5RWxlbWVudHMgPSBvcmdNYW5kYXRvcnlFbGVtZW50cztcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIG1vbWVudF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJtb21lbnRcIikpO1xuZnVuY3Rpb24gZGF0ZUZvcm1hdChkYXRlLCBmb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSB2b2lkIDApIHsgZm9ybWF0ID0gJ01NTU0gREQsIFlZWVknOyB9XG4gICAgdmFyIGZvcm1hdF9kYXRlO1xuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgIGNhc2UgJ2Zyb21Ob3cnOlxuICAgICAgICAgICAgZm9ybWF0X2RhdGUgPSBkYXRlID8gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZyb21Ob3coKSA6ICcnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBmb3JtYXRfZGF0ZSA9IGRhdGUgPyAoMCwgbW9tZW50XzEuZGVmYXVsdCkoZGF0ZSkuZm9ybWF0KGZvcm1hdCkgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdF9kYXRlO1xufVxuZXhwb3J0cy5kZWZhdWx0ID0gZGF0ZUZvcm1hdDtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGNyeXB0b19qc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJjcnlwdG8tanNcIikpO1xuZnVuY3Rpb24gZW5jcnlwdChzdHJpbmcsIGtleSkge1xuICAgIHZhciBpdiA9IGNyeXB0b19qc18xLmRlZmF1bHQubGliLldvcmRBcnJheS5yYW5kb20oMTYpO1xuICAgIHZhciBzYWx0ID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5saWIuV29yZEFycmF5LnJhbmRvbSgyNTYpO1xuICAgIHZhciBpdGVyYXRpb25zID0gOTk5O1xuICAgIHZhciBlbmNyeXB0TWV0aG9kTGVuZ3RoID0gMjU2IC8gNDtcbiAgICB2YXIgaGFzaEtleSA9IGNyeXB0b19qc18xLmRlZmF1bHQuUEJLREYyKGtleSwgc2FsdCwge1xuICAgICAgICBoYXNoZXI6IGNyeXB0b19qc18xLmRlZmF1bHQuYWxnby5TSEE1MTIsXG4gICAgICAgIGtleVNpemU6IGVuY3J5cHRNZXRob2RMZW5ndGggLyA4LFxuICAgICAgICBpdGVyYXRpb25zOiBpdGVyYXRpb25zLFxuICAgIH0pO1xuICAgIHZhciBlbmNyeXB0ZWQgPSBjcnlwdG9fanNfMS5kZWZhdWx0LkFFUy5lbmNyeXB0KHN0cmluZywgaGFzaEtleSwge1xuICAgICAgICBtb2RlOiBjcnlwdG9fanNfMS5kZWZhdWx0Lm1vZGUuQ0JDLFxuICAgICAgICBpdjogaXYsXG4gICAgfSk7XG4gICAgdmFyIGVuY3J5cHRlZFN0cmluZyA9IGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkJhc2U2NC5zdHJpbmdpZnkoZW5jcnlwdGVkLmNpcGhlcnRleHQpO1xuICAgIHZhciBvdXRwdXQgPSB7XG4gICAgICAgIGNpcGhlcnRleHQ6IGVuY3J5cHRlZFN0cmluZyxcbiAgICAgICAgaXY6IGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkhleC5zdHJpbmdpZnkoaXYpLFxuICAgICAgICBzYWx0OiBjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5IZXguc3RyaW5naWZ5KHNhbHQpLFxuICAgICAgICBpdGVyYXRpb25zOiBpdGVyYXRpb25zLFxuICAgIH07XG4gICAgcmV0dXJuIGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkJhc2U2NC5zdHJpbmdpZnkoY3J5cHRvX2pzXzEuZGVmYXVsdC5lbmMuVXRmOC5wYXJzZShKU09OLnN0cmluZ2lmeShvdXRwdXQpKSk7XG59XG5leHBvcnRzLmRlZmF1bHQgPSBlbmNyeXB0O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIEdldCBjdXJyZW50IGFjdGl2aXR5IHRpdGxlXG4gKlxuICogQHJldHVybiB0aXRsZSB0ZXh0XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmZ1bmN0aW9uIGdldEFjdGl2aXR5VGl0bGUoZGF0YSwgbGFuZ3VhZ2UpIHtcbiAgICB2YXIgdGl0bGUgPSAnJztcbiAgICAvLyB0aXRsZSByZXR1cm4gaWYgbGFuZ3VhZ2UgZXhpc3QgaW4gZGF0YVxuICAgIGZvciAodmFyIF9pID0gMCwgZGF0YV8xID0gZGF0YTsgX2kgPCBkYXRhXzEubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHZhciB0ID0gZGF0YV8xW19pXTtcbiAgICAgICAgaWYgKHQubGFuZ3VhZ2UgJiYgdC5sYW5ndWFnZSA9PT0gbGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgIHRpdGxlID0gdC5uYXJyYXRpdmUgJiYgdC5uYXJyYXRpdmUgIT09ICcnID8gdC5uYXJyYXRpdmUgOiAnVW50aXRsZWQnO1xuICAgICAgICAgICAgcmV0dXJuIHRpdGxlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGRlZmF1bHQgdGl0bGUgcmV0dXJuIGlmIGxhbmd1YWdlIGRvZXMgbm90IGV4aXN0cyBpbiBkYXRhXG4gICAgdGl0bGUgPSBkYXRhWycwJ10ubmFycmF0aXZlICYmIGRhdGFbJzAnXS5uYXJyYXRpdmUgIT09ICcnID8gZGF0YVsnMCddLm5hcnJhdGl2ZSA6ICdVbnRpdGxlZCc7XG4gICAgcmV0dXJuIHRpdGxlO1xufVxuZXhwb3J0cy5kZWZhdWx0ID0gZ2V0QWN0aXZpdHlUaXRsZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZnVuY3Rpb24gZ2V0TG9jYXRpb24oZGF0YSkge1xuICAgIHZhciBsb2NhdGlvbnMgPSBbXTtcbiAgICBsb2NhdGlvbnMgPSBkYXRhLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS5yZWZlcmVuY2U7XG4gICAgfSk7XG4gICAgdmFyIGxhc3RMb2NhdGlvbiA9IGxvY2F0aW9ucy5zbGljZSgtMSlbMF07XG4gICAgbG9jYXRpb25zID0gbG9jYXRpb25zLnNsaWNlKDAsIC0xKTtcbiAgICBpZiAobG9jYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIGxvY2F0aW9ucy5qb2luKCcsICcpICsgJyAnICsgJ2FuZCcgKyAnICcgKyBsYXN0TG9jYXRpb247XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gbGFzdExvY2F0aW9uO1xuICAgIH1cbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGdldExvY2F0aW9uO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnVzZVN0b3JlID0gdm9pZCAwO1xudmFyIHZ1ZXhfMSA9IHJlcXVpcmUoXCJ2dWV4XCIpO1xudmFyIHN0YXRlID0ge1xuICAgIHNlbGVjdGVkQWN0aXZpdGllczogW10sXG59O1xudmFyIG11dGF0aW9ucyA9IHtcbiAgICBtdXRhdGVTZWxlY3RlZEFjdGl2aXRpZXM6IGZ1bmN0aW9uIChzdGF0ZSwgcGF5bG9hZCkge1xuICAgICAgICBzdGF0ZS5zZWxlY3RlZEFjdGl2aXRpZXMgPSBwYXlsb2FkO1xuICAgIH0sXG59O1xudmFyIGFjdGlvbnMgPSB7XG4gICAgdXBkYXRlU2VsZWN0ZWRBY3Rpdml0aWVzOiBmdW5jdGlvbiAoX2EsIHBheWxvYWQpIHtcbiAgICAgICAgdmFyIGNvbW1pdCA9IF9hLmNvbW1pdDtcbiAgICAgICAgY29tbWl0KCdtdXRhdGVTZWxlY3RlZEFjdGl2aXRpZXMnLCBwYXlsb2FkKTtcbiAgICB9LFxufTtcbnZhciBhY3Rpdml0eUxpc3RTdG9yZSA9ICgwLCB2dWV4XzEuY3JlYXRlU3RvcmUpKHtcbiAgICBzdGF0ZTogc3RhdGUsXG4gICAgbXV0YXRpb25zOiBtdXRhdGlvbnMsXG4gICAgYWN0aW9uczogYWN0aW9ucyxcbn0pO1xuZnVuY3Rpb24gdXNlU3RvcmUoKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5TGlzdFN0b3JlO1xufVxuZXhwb3J0cy51c2VTdG9yZSA9IHVzZVN0b3JlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRldGFpbFN0b3JlID0gdm9pZCAwO1xudmFyIHZ1ZXhfMSA9IHJlcXVpcmUoXCJ2dWV4XCIpO1xudmFyIHN0YXRlID0ge1xuICAgIHVuUHVibGlzaGVkOiBmYWxzZSxcbiAgICBzaG93UHVibGlzaGVkOiBmYWxzZSxcbiAgICBwdWJsaXNoRXJyb3JzOiBbXSxcbn07XG52YXIgbXV0YXRpb25zID0ge1xuICAgIG11dGF0ZVVuUHVibGlzaGVkOiBmdW5jdGlvbiAoc3RhdGUsIHBheWxvYWQpIHtcbiAgICAgICAgc3RhdGUudW5QdWJsaXNoZWQgPSBwYXlsb2FkO1xuICAgIH0sXG4gICAgbXV0YXRlU2hvd1B1Ymxpc2hlZDogZnVuY3Rpb24gKHN0YXRlLCBwYXlsb2FkKSB7XG4gICAgICAgIHN0YXRlLnNob3dQdWJsaXNoZWQgPSBwYXlsb2FkO1xuICAgIH0sXG4gICAgbXV0YXRlUHVibGlzaEVycm9yczogZnVuY3Rpb24gKHN0YXRlLCBwYXlsb2FkKSB7XG4gICAgICAgIHN0YXRlLnB1Ymxpc2hFcnJvcnMgPSBwYXlsb2FkO1xuICAgIH0sXG59O1xudmFyIGFjdGlvbnMgPSB7XG4gICAgdXBkYXRlVW5QdWJsaXNoZWQ6IGZ1bmN0aW9uIChfYSwgcGF5bG9hZCkge1xuICAgICAgICB2YXIgY29tbWl0ID0gX2EuY29tbWl0O1xuICAgICAgICBjb21taXQoJ211dGF0ZVVuUHVibGlzaGVkJywgcGF5bG9hZCk7XG4gICAgfSxcbiAgICB1cGRhdGVTaG93UHVibGlzaGVkOiBmdW5jdGlvbiAoX2EsIHBheWxvYWQpIHtcbiAgICAgICAgdmFyIGNvbW1pdCA9IF9hLmNvbW1pdDtcbiAgICAgICAgY29tbWl0KCdtdXRhdGVTaG93UHVibGlzaGVkJywgcGF5bG9hZCk7XG4gICAgfSxcbiAgICB1cGRhdGVQdWJsaXNoRXJyb3JzOiBmdW5jdGlvbiAoX2EsIHBheWxvYWQpIHtcbiAgICAgICAgdmFyIGNvbW1pdCA9IF9hLmNvbW1pdDtcbiAgICAgICAgY29tbWl0KCdtdXRhdGVQdWJsaXNoRXJyb3JzJywgcGF5bG9hZCk7XG4gICAgfSxcbn07XG52YXIgYWN0aXZpdHlEZXRhaWxTdG9yZSA9ICgwLCB2dWV4XzEuY3JlYXRlU3RvcmUpKHtcbiAgICBzdGF0ZTogc3RhdGUsXG4gICAgbXV0YXRpb25zOiBtdXRhdGlvbnMsXG4gICAgYWN0aW9uczogYWN0aW9ucyxcbn0pO1xuZnVuY3Rpb24gZGV0YWlsU3RvcmUoKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5RGV0YWlsU3RvcmU7XG59XG5leHBvcnRzLmRldGFpbFN0b3JlID0gZGV0YWlsU3RvcmU7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMudXNlU3RvcmUgPSBleHBvcnRzLnN0b3JlID0gdm9pZCAwO1xudmFyIHZ1ZXhfMSA9IHJlcXVpcmUoXCJ2dWV4XCIpO1xudmFyIHN0YXRlXzEgPSByZXF1aXJlKFwiLi9zZXR0aW5nL3N0YXRlXCIpO1xudmFyIG11dGF0aW9uXzEgPSByZXF1aXJlKFwiLi9zZXR0aW5nL211dGF0aW9uXCIpO1xudmFyIGFjdGlvbnNfMSA9IHJlcXVpcmUoXCIuL3NldHRpbmcvYWN0aW9uc1wiKTtcbmV4cG9ydHMuc3RvcmUgPSAoMCwgdnVleF8xLmNyZWF0ZVN0b3JlKSh7XG4gICAgc3RhdGU6IHN0YXRlXzEuc3RhdGUsXG4gICAgbXV0YXRpb25zOiBtdXRhdGlvbl8xLm11dGF0aW9ucyxcbiAgICBhY3Rpb25zOiBhY3Rpb25zXzEuYWN0aW9ucyxcbn0pO1xuZnVuY3Rpb24gdXNlU3RvcmUoKSB7XG4gICAgcmV0dXJuIGV4cG9ydHMuc3RvcmU7XG59XG5leHBvcnRzLnVzZVN0b3JlID0gdXNlU3RvcmU7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfYTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuYWN0aW9ucyA9IGV4cG9ydHMuQWN0aW9uVHlwZXMgPSB2b2lkIDA7XG52YXIgbXV0YXRpb25fMSA9IHJlcXVpcmUoXCIuL211dGF0aW9uXCIpO1xudmFyIEFjdGlvblR5cGVzO1xuKGZ1bmN0aW9uIChBY3Rpb25UeXBlcykge1xuICAgIEFjdGlvblR5cGVzW1wiVVBEQVRFX1BVQkxJU0hJTkdfRk9STVwiXSA9IFwiVVBEQVRFX1BVQkxJU0hJTkdfRk9STVwiO1xuICAgIEFjdGlvblR5cGVzW1wiVVBEQVRFX1BVQkxJU0hFUl9JTkZPXCJdID0gXCJVUERBVEVfUFVCTElTSEVSX0lORk9cIjtcbiAgICBBY3Rpb25UeXBlc1tcIlVQREFURV9QVUJMSVNISU5HX0VSUk9SXCJdID0gXCJVUERBVEVfUFVCTElTSElOR19FUlJPUlwiO1xuICAgIEFjdGlvblR5cGVzW1wiVVBEQVRFX0RFRkFVTFRfVkFMVUVTXCJdID0gXCJVUERBVEVfREVGQVVMVF9WQUxVRVNcIjtcbiAgICBBY3Rpb25UeXBlc1tcIlVQREFURV9ERUZBVUxUX0VSUk9SXCJdID0gXCJVUERBVEVfREVGQVVMVF9FUlJPUlwiO1xufSkoQWN0aW9uVHlwZXMgPSBleHBvcnRzLkFjdGlvblR5cGVzIHx8IChleHBvcnRzLkFjdGlvblR5cGVzID0ge30pKTtcbmV4cG9ydHMuYWN0aW9ucyA9IChfYSA9IHt9LFxuICAgIF9hW0FjdGlvblR5cGVzLlVQREFURV9QVUJMSVNISU5HX0ZPUk1dID0gZnVuY3Rpb24gKF9hLCBwYXlsb2FkKSB7XG4gICAgICAgIHZhciBjb21taXQgPSBfYS5jb21taXQ7XG4gICAgICAgIGNvbW1pdChtdXRhdGlvbl8xLk11dGF0aW9uVHlwZXMuVVBEQVRFX1BVQkxJU0hJTkdfRk9STSwgcGF5bG9hZCk7XG4gICAgfSxcbiAgICBfYVtBY3Rpb25UeXBlcy5VUERBVEVfUFVCTElTSEVSX0lORk9dID0gZnVuY3Rpb24gKF9hLCBwYXlsb2FkKSB7XG4gICAgICAgIHZhciBjb21taXQgPSBfYS5jb21taXQ7XG4gICAgICAgIGNvbW1pdChtdXRhdGlvbl8xLk11dGF0aW9uVHlwZXMuVVBEQVRFX1BVQkxJU0hFUl9JTkZPLCBwYXlsb2FkKTtcbiAgICB9LFxuICAgIF9hW0FjdGlvblR5cGVzLlVQREFURV9QVUJMSVNISU5HX0VSUk9SXSA9IGZ1bmN0aW9uIChfYSwgcGF5bG9hZCkge1xuICAgICAgICB2YXIgY29tbWl0ID0gX2EuY29tbWl0O1xuICAgICAgICBjb21taXQobXV0YXRpb25fMS5NdXRhdGlvblR5cGVzLlVQREFURV9QVUJMSVNISU5HX0VSUk9SLCBwYXlsb2FkKTtcbiAgICB9LFxuICAgIF9hW0FjdGlvblR5cGVzLlVQREFURV9ERUZBVUxUX1ZBTFVFU10gPSBmdW5jdGlvbiAoX2EsIHBheWxvYWQpIHtcbiAgICAgICAgdmFyIGNvbW1pdCA9IF9hLmNvbW1pdDtcbiAgICAgICAgY29tbWl0KG11dGF0aW9uXzEuTXV0YXRpb25UeXBlcy5VUERBVEVfREVGQVVMVF9WQUxVRVMsIHBheWxvYWQpO1xuICAgIH0sXG4gICAgX2FbQWN0aW9uVHlwZXMuVVBEQVRFX0RFRkFVTFRfRVJST1JdID0gZnVuY3Rpb24gKF9hLCBwYXlsb2FkKSB7XG4gICAgICAgIHZhciBjb21taXQgPSBfYS5jb21taXQ7XG4gICAgICAgIGNvbW1pdChtdXRhdGlvbl8xLk11dGF0aW9uVHlwZXMuVVBEQVRFX0RFRkFVTFRfRVJST1IsIHBheWxvYWQpO1xuICAgIH0sXG4gICAgX2EpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX2E7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLm11dGF0aW9ucyA9IGV4cG9ydHMuTXV0YXRpb25UeXBlcyA9IHZvaWQgMDtcbnZhciBNdXRhdGlvblR5cGVzO1xuKGZ1bmN0aW9uIChNdXRhdGlvblR5cGVzKSB7XG4gICAgTXV0YXRpb25UeXBlc1tcIlVQREFURV9QVUJMSVNISU5HX0ZPUk1cIl0gPSBcIlVQREFURV9QVUJMSVNISU5HX0ZPUk1cIjtcbiAgICBNdXRhdGlvblR5cGVzW1wiVVBEQVRFX1BVQkxJU0hFUl9JTkZPXCJdID0gXCJVUERBVEVfUFVCTElTSEVSX0lORk9cIjtcbiAgICBNdXRhdGlvblR5cGVzW1wiVVBEQVRFX1BVQkxJU0hJTkdfRVJST1JcIl0gPSBcIlVQREFURV9QVUJMSVNISU5HX0VSUk9SXCI7XG4gICAgTXV0YXRpb25UeXBlc1tcIlVQREFURV9ERUZBVUxUX1ZBTFVFU1wiXSA9IFwiVVBEQVRFX0RFRkFVTFRfVkFMVUVTXCI7XG4gICAgTXV0YXRpb25UeXBlc1tcIlVQREFURV9ERUZBVUxUX0VSUk9SXCJdID0gXCJVUERBVEVfREVGQVVMVF9FUlJPUlwiO1xufSkoTXV0YXRpb25UeXBlcyA9IGV4cG9ydHMuTXV0YXRpb25UeXBlcyB8fCAoZXhwb3J0cy5NdXRhdGlvblR5cGVzID0ge30pKTtcbmV4cG9ydHMubXV0YXRpb25zID0gKF9hID0ge30sXG4gICAgX2FbTXV0YXRpb25UeXBlcy5VUERBVEVfUFVCTElTSElOR19GT1JNXSA9IGZ1bmN0aW9uIChzdGF0ZSwgcGF5bG9hZCkge1xuICAgICAgICBzdGF0ZS5wdWJsaXNoaW5nRm9ybVtwYXlsb2FkLmtleV0gPSBwYXlsb2FkLnZhbHVlO1xuICAgIH0sXG4gICAgX2FbTXV0YXRpb25UeXBlcy5VUERBVEVfUFVCTElTSEVSX0lORk9dID0gZnVuY3Rpb24gKHN0YXRlLCBwYXlsb2FkKSB7XG4gICAgICAgIHN0YXRlLnB1Ymxpc2hpbmdJbmZvW3BheWxvYWQua2V5XSA9IHBheWxvYWQudmFsdWU7XG4gICAgfSxcbiAgICBfYVtNdXRhdGlvblR5cGVzLlVQREFURV9ERUZBVUxUX1ZBTFVFU10gPSBmdW5jdGlvbiAoc3RhdGUsIHBheWxvYWQpIHtcbiAgICAgICAgc3RhdGUuZGVmYXVsdEZvcm1bcGF5bG9hZC5rZXldID0gcGF5bG9hZC52YWx1ZTtcbiAgICB9LFxuICAgIF9hW011dGF0aW9uVHlwZXMuVVBEQVRFX1BVQkxJU0hJTkdfRVJST1JdID0gZnVuY3Rpb24gKHN0YXRlLCBwYXlsb2FkKSB7XG4gICAgICAgIHN0YXRlLnB1Ymxpc2hpbmdFcnJvcltwYXlsb2FkLmtleV0gPSBwYXlsb2FkLnZhbHVlO1xuICAgIH0sXG4gICAgX2FbTXV0YXRpb25UeXBlcy5VUERBVEVfREVGQVVMVF9FUlJPUl0gPSBmdW5jdGlvbiAoc3RhdGUsIHBheWxvYWQpIHtcbiAgICAgICAgc3RhdGUuZGVmYXVsdEVycm9yW3BheWxvYWQua2V5XSA9IHBheWxvYWQudmFsdWU7XG4gICAgfSxcbiAgICBfYSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuc3RhdGUgPSB2b2lkIDA7XG5leHBvcnRzLnN0YXRlID0ge1xuICAgIHB1Ymxpc2hpbmdGb3JtOiB7XG4gICAgICAgIHB1Ymxpc2hlcl9pZDogJycsXG4gICAgICAgIGFwaV90b2tlbjogJycsXG4gICAgfSxcbiAgICBwdWJsaXNoaW5nSW5mbzoge1xuICAgICAgICBwdWJsaXNoZXJfdmVyaWZpY2F0aW9uOiBmYWxzZSxcbiAgICAgICAgdG9rZW5fdmVyaWZpY2F0aW9uOiBmYWxzZSxcbiAgICAgICAgaXNWZXJpZmljYXRpb25SZXF1ZXN0ZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgZGVmYXVsdEZvcm06IHtcbiAgICAgICAgZGVmYXVsdF9jdXJyZW5jeTogJycsXG4gICAgICAgIGRlZmF1bHRfbGFuZ3VhZ2U6ICcnLFxuICAgICAgICBoaWVyYXJjaHk6ICcnLFxuICAgICAgICBodW1hbml0YXJpYW46ICcnLFxuICAgICAgICBidWRnZXRfbm90X3Byb3ZpZGVkOiAnJ1xuICAgIH0sXG4gICAgcHVibGlzaGluZ0Vycm9yOiB7XG4gICAgICAgIGFwaV90b2tlbjogJycsXG4gICAgfSxcbiAgICBkZWZhdWx0RXJyb3I6IHtcbiAgICAgICAgZGVmYXVsdF9jdXJyZW5jeTogJycsXG4gICAgICAgIGRlZmF1bHRfbGFuZ3VhZ2U6ICcnLFxuICAgICAgICBoaWVyYXJjaHk6ICcnLFxuICAgICAgICBodW1hbml0YXJpYW46ICcnLFxuICAgICAgICBidWRnZXRfbm90X3Byb3ZpZGVkOiAnJ1xuICAgIH0sXG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlcG9ydGluZ09yZ2FuaXphdGlvbiA9IGV4cG9ydHMuUGxhbm5lZERpc2J1cnNlbWVudCA9IGV4cG9ydHMuSHVtYW5pdGFyaWFuU2NvcGUgPSBleHBvcnRzLlRhZyA9IGV4cG9ydHMuUG9saWN5TWFya2VyID0gZXhwb3J0cy5SZWxhdGVkQWN0aXZpdHkgPSBleHBvcnRzLkNvbmRpdGlvbnMgPSBleHBvcnRzLkxlZ2FjeURhdGEgPSBleHBvcnRzLlNlY3RvciA9IGV4cG9ydHMuTG9jYXRpb24gPSBleHBvcnRzLlRyYW5zYWN0aW9ucyA9IGV4cG9ydHMuUmVjaXBpZW50UmVnaW9uID0gZXhwb3J0cy5SZWNpcGllbnRDb3VudHJ5ID0gZXhwb3J0cy5QYXJ0aWNpcGF0aW5nT3JnID0gZXhwb3J0cy5Db250YWN0SW5mbyA9IGV4cG9ydHMuQWN0aXZpdHlEYXRlID0gZXhwb3J0cy5EZXNjcmlwdGlvbiA9IGV4cG9ydHMuVGl0bGVFbGVtZW50ID0gZXhwb3J0cy5PdGhlcklkZW50aWZpZXIgPSBleHBvcnRzLklhdGlJZGVudGlmaWVyID0gZXhwb3J0cy5SZXN1bHQgPSB2b2lkIDA7XG4vLyBQcm94eSBleHBvcnQgYWxsIHJlbGF0ZWQgY29tcG9uZW50cy5cbnZhciBSZXN1bHRfdnVlXzEgPSByZXF1aXJlKFwiLi9SZXN1bHQudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVzdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVzdWx0X3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIElhdGlJZGVudGlmaWVyX3Z1ZV8xID0gcmVxdWlyZShcIi4vSWF0aUlkZW50aWZpZXIudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSWF0aUlkZW50aWZpZXJcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChJYXRpSWRlbnRpZmllcl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBPdGhlcklkZW50aWZpZXJfdnVlXzEgPSByZXF1aXJlKFwiLi9PdGhlcklkZW50aWZpZXIudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiT3RoZXJJZGVudGlmaWVyXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoT3RoZXJJZGVudGlmaWVyX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFRpdGxlX3Z1ZV8xID0gcmVxdWlyZShcIi4vVGl0bGUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVGl0bGVFbGVtZW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoVGl0bGVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgRGVzY3JpcHRpb25fdnVlXzEgPSByZXF1aXJlKFwiLi9EZXNjcmlwdGlvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEZXNjcmlwdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KERlc2NyaXB0aW9uX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIEFjdGl2aXR5RGF0ZV92dWVfMSA9IHJlcXVpcmUoXCIuL0FjdGl2aXR5RGF0ZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBY3Rpdml0eURhdGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChBY3Rpdml0eURhdGVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgQ29udGFjdEluZm9fdnVlXzEgPSByZXF1aXJlKFwiLi9Db250YWN0SW5mby52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDb250YWN0SW5mb1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KENvbnRhY3RJbmZvX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFBhcnRpY2lwYXRpbmdPcmdfdnVlXzEgPSByZXF1aXJlKFwiLi9QYXJ0aWNpcGF0aW5nT3JnLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBhcnRpY2lwYXRpbmdPcmdcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChQYXJ0aWNpcGF0aW5nT3JnX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlY2lwaWVudENvdW50cnlfdnVlXzEgPSByZXF1aXJlKFwiLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlY2lwaWVudENvdW50cnlcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZWNpcGllbnRDb3VudHJ5X3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlY2lwaWVudFJlZ2lvbl92dWVfMSA9IHJlcXVpcmUoXCIuL1JlY2lwaWVudFJlZ2lvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWNpcGllbnRSZWdpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZWNpcGllbnRSZWdpb25fdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgVHJhbnNhY3Rpb25zX3Z1ZV8xID0gcmVxdWlyZShcIi4vVHJhbnNhY3Rpb25zLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRyYW5zYWN0aW9uc1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRyYW5zYWN0aW9uc192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBMb2NhdGlvbl92dWVfMSA9IHJlcXVpcmUoXCIuL0xvY2F0aW9uLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkxvY2F0aW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoTG9jYXRpb25fdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgU2VjdG9yX3Z1ZV8xID0gcmVxdWlyZShcIi4vU2VjdG9yLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlNlY3RvclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFNlY3Rvcl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBMZWdhY3lEYXRhX3Z1ZV8xID0gcmVxdWlyZShcIi4vTGVnYWN5RGF0YS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJMZWdhY3lEYXRhXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoTGVnYWN5RGF0YV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBDb25kaXRpb25zX3Z1ZV8xID0gcmVxdWlyZShcIi4vQ29uZGl0aW9ucy52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDb25kaXRpb25zXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoQ29uZGl0aW9uc192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWxhdGVkQWN0aXZpdHlfdnVlXzEgPSByZXF1aXJlKFwiLi9SZWxhdGVkQWN0aXZpdHkudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVsYXRlZEFjdGl2aXR5XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVsYXRlZEFjdGl2aXR5X3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFBvbGljeU1hcmtlcl92dWVfMSA9IHJlcXVpcmUoXCIuL1BvbGljeU1hcmtlci52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJQb2xpY3lNYXJrZXJcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChQb2xpY3lNYXJrZXJfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgVGFnX3Z1ZV8xID0gcmVxdWlyZShcIi4vVGFnLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRhZ1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRhZ192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBIdW1hbml0YXJpYW5TY29wZV92dWVfMSA9IHJlcXVpcmUoXCIuL0h1bWFuaXRhcmlhblNjb3BlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkh1bWFuaXRhcmlhblNjb3BlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoSHVtYW5pdGFyaWFuU2NvcGVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgUGxhbm5lZERpc2J1cnNlbWVudF92dWVfMSA9IHJlcXVpcmUoXCIuL1BsYW5uZWREaXNidXJzZW1lbnQudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUGxhbm5lZERpc2J1cnNlbWVudFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFBsYW5uZWREaXNidXJzZW1lbnRfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgUmVwb3J0aW5nT3JnYW5pemF0aW9uX3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlcG9ydGluZ09yZ2FuaXphdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFJlcG9ydGluZ09yZ2FuaXphdGlvbl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QZXJpb2QgPSBleHBvcnRzLkJhc2VsaW5lID0gZXhwb3J0cy5Eb2N1bWVudExpbmsgPSBleHBvcnRzLlJlZmVyZW5jZSA9IGV4cG9ydHMuRGVzY3JpcHRpb24gPSBleHBvcnRzLkFnZ3JlZ2F0aW9uU3RhdHVzID0gZXhwb3J0cy5Bc2NlbmRpbmcgPSBleHBvcnRzLk1lYXN1cmUgPSBleHBvcnRzLlRpdGxlRWxlbWVudCA9IHZvaWQgMDtcbi8vIFByb3h5IGV4cG9ydCBhbGwgcmVsYXRlZCBjb21wb25lbnRzLlxudmFyIFRpdGxlX3Z1ZV8xID0gcmVxdWlyZShcIi4vVGl0bGUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVGl0bGVFbGVtZW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoVGl0bGVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgTWVhc3VyZV92dWVfMSA9IHJlcXVpcmUoXCIuL01lYXN1cmUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTWVhc3VyZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KE1lYXN1cmVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgSW5kaWNhdG9yQXNjZW5kaW5nX3Z1ZV8xID0gcmVxdWlyZShcIi4vSW5kaWNhdG9yQXNjZW5kaW5nLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkFzY2VuZGluZ1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KEluZGljYXRvckFzY2VuZGluZ192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBBZ2dyZWdhdGlvblN0YXR1c192dWVfMSA9IHJlcXVpcmUoXCIuL0FnZ3JlZ2F0aW9uU3RhdHVzLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkFnZ3JlZ2F0aW9uU3RhdHVzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoQWdncmVnYXRpb25TdGF0dXNfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgRGVzY3JpcHRpb25fdnVlXzEgPSByZXF1aXJlKFwiLi9EZXNjcmlwdGlvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEZXNjcmlwdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KERlc2NyaXB0aW9uX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlZmVyZW5jZV92dWVfMSA9IHJlcXVpcmUoXCIuL1JlZmVyZW5jZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWZlcmVuY2VcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZWZlcmVuY2VfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgRG9jdW1lbnRMaW5rX3Z1ZV8xID0gcmVxdWlyZShcIi4vRG9jdW1lbnRMaW5rLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRvY3VtZW50TGlua1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KERvY3VtZW50TGlua192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBCYXNlbGluZV92dWVfMSA9IHJlcXVpcmUoXCIuL0Jhc2VsaW5lLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkJhc2VsaW5lXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoQmFzZWxpbmVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgUGVyaW9kX3Z1ZV8xID0gcmVxdWlyZShcIi4vUGVyaW9kLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBlcmlvZFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFBlcmlvZF92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BY3R1YWxWYWx1ZSA9IGV4cG9ydHMuVGFyZ2V0VmFsdWUgPSB2b2lkIDA7XG52YXIgVGFyZ2V0VmFsdWVfdnVlXzEgPSByZXF1aXJlKFwiLi9UYXJnZXRWYWx1ZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUYXJnZXRWYWx1ZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRhcmdldFZhbHVlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIEFjdHVhbFZhbHVlX3Z1ZV8xID0gcmVxdWlyZShcIi4vQWN0dWFsVmFsdWUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQWN0dWFsVmFsdWVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChBY3R1YWxWYWx1ZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5JbmRpY2F0b3IgPSBleHBvcnRzLlJlc3VsdFR5cGUgPSBleHBvcnRzLlJlZmVyZW5jZSA9IGV4cG9ydHMuRG9jdW1lbnRMaW5rID0gZXhwb3J0cy5UaXRsZURlc2NyaXB0aW9uID0gdm9pZCAwO1xuLy8gUHJveHkgZXhwb3J0IGFsbCByZWxhdGVkIGNvbXBvbmVudHMuXG52YXIgVGl0bGVEZXNjcmlwdGlvbl92dWVfMSA9IHJlcXVpcmUoXCIuL1RpdGxlRGVzY3JpcHRpb24udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVGl0bGVEZXNjcmlwdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRpdGxlRGVzY3JpcHRpb25fdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgRG9jdW1lbnRMaW5rX3Z1ZV8xID0gcmVxdWlyZShcIi4vRG9jdW1lbnRMaW5rLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRvY3VtZW50TGlua1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KERvY3VtZW50TGlua192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWZlcmVuY2VfdnVlXzEgPSByZXF1aXJlKFwiLi9SZWZlcmVuY2UudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVmZXJlbmNlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVmZXJlbmNlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlc3VsdFR5cGVfdnVlXzEgPSByZXF1aXJlKFwiLi9SZXN1bHRUeXBlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlc3VsdFR5cGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZXN1bHRUeXBlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIEluZGljYXRvcl92dWVfMSA9IHJlcXVpcmUoXCIuL0luZGljYXRvci52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJJbmRpY2F0b3JcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChJbmRpY2F0b3JfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVGllZFN0YXR1cyA9IGV4cG9ydHMuRmluYW5jZVR5cGUgPSBleHBvcnRzLkZsb3dUeXBlID0gZXhwb3J0cy5SZWNpcGllbnRSZWdpb24gPSBleHBvcnRzLlJlY2lwaWVudENvdW50cnkgPSBleHBvcnRzLlNlY3RvciA9IGV4cG9ydHMuRGlzYnVyc2VtZW50Q2hhbm5lbCA9IGV4cG9ydHMuUmVjZWl2ZXJPcmdhbml6YXRpb24gPSBleHBvcnRzLlByb3ZpZGVyT3JnYW5pemF0aW9uID0gZXhwb3J0cy5WYWx1ZSA9IGV4cG9ydHMuVHJhbnNhY3Rpb25EYXRlID0gZXhwb3J0cy5UcmFuc2FjdGlvblR5cGUgPSBleHBvcnRzLkFpZFR5cGUgPSBleHBvcnRzLkRlc2NyaXB0aW9uID0gdm9pZCAwO1xuLy8gUHJveHkgZXhwb3J0IGFsbCByZWxhdGVkIGNvbXBvbmVudHMuXG52YXIgRGVzY3JpcHRpb25fdnVlXzEgPSByZXF1aXJlKFwiLi9EZXNjcmlwdGlvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEZXNjcmlwdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KERlc2NyaXB0aW9uX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIEFpZFR5cGVfdnVlXzEgPSByZXF1aXJlKFwiLi9BaWRUeXBlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkFpZFR5cGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChBaWRUeXBlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFRyYW5zYWN0aW9uVHlwZV92dWVfMSA9IHJlcXVpcmUoXCIuL1RyYW5zYWN0aW9uVHlwZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUcmFuc2FjdGlvblR5cGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChUcmFuc2FjdGlvblR5cGVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgVHJhbnNhY3Rpb25EYXRlX3Z1ZV8xID0gcmVxdWlyZShcIi4vVHJhbnNhY3Rpb25EYXRlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRyYW5zYWN0aW9uRGF0ZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRyYW5zYWN0aW9uRGF0ZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBWYWx1ZV92dWVfMSA9IHJlcXVpcmUoXCIuL1ZhbHVlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlZhbHVlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoVmFsdWVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgUHJvdmlkZXJPcmdhbml6YXRpb25fdnVlXzEgPSByZXF1aXJlKFwiLi9Qcm92aWRlck9yZ2FuaXphdGlvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJQcm92aWRlck9yZ2FuaXphdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFByb3ZpZGVyT3JnYW5pemF0aW9uX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlY2VpdmVyT3JnYW5pemF0aW9uX3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVjZWl2ZXJPcmdhbml6YXRpb24udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVjZWl2ZXJPcmdhbml6YXRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZWNlaXZlck9yZ2FuaXphdGlvbl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBEaXNidXJzZW1lbnRDaGFubmVsX3Z1ZV8xID0gcmVxdWlyZShcIi4vRGlzYnVyc2VtZW50Q2hhbm5lbC52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEaXNidXJzZW1lbnRDaGFubmVsXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoRGlzYnVyc2VtZW50Q2hhbm5lbF92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBTZWN0b3JfdnVlXzEgPSByZXF1aXJlKFwiLi9TZWN0b3IudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiU2VjdG9yXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoU2VjdG9yX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlY2lwaWVudENvdW50cnlfdnVlXzEgPSByZXF1aXJlKFwiLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlY2lwaWVudENvdW50cnlcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZWNpcGllbnRDb3VudHJ5X3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlY2lwaWVudFJlZ2lvbl92dWVfMSA9IHJlcXVpcmUoXCIuL1JlY2lwaWVudFJlZ2lvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWNpcGllbnRSZWdpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZWNpcGllbnRSZWdpb25fdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgRmxvd1R5cGVfdnVlXzEgPSByZXF1aXJlKFwiLi9GbG93VHlwZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJGbG93VHlwZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KEZsb3dUeXBlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIEZpbmFuY2VUeXBlX3Z1ZV8xID0gcmVxdWlyZShcIi4vRmluYW5jZVR5cGUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRmluYW5jZVR5cGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChGaW5hbmNlVHlwZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBUaWVkU3RhdHVzX3Z1ZV8xID0gcmVxdWlyZShcIi4vVGllZFN0YXR1cy52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUaWVkU3RhdHVzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoVGllZFN0YXR1c192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Eb2N1bWVudExpbmsgPSBleHBvcnRzLlRvdGFsRXhwZW5kaXR1cmUgPSBleHBvcnRzLlJlY2lwaWVudENvdW50cnlCdWRnZXQgPSBleHBvcnRzLlJlcG9ydGluZ1JlZ2lvbkJ1ZGdldCA9IGV4cG9ydHMuUmVwb3J0aW5nT3JnQnVkZ2V0ID0gZXhwb3J0cy5Ub3RhbEJ1ZGdldCA9IGV4cG9ydHMuUmVwb3J0aW5nT3JnYW5pc2F0aW9uID0gdm9pZCAwO1xuLy8gUHJveHkgZXhwb3J0IGFsbCByZWxhdGVkIGNvbXBvbmVudHMuXG52YXIgUmVwb3J0aW5nT3JnYW5pc2F0aW9uX3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlcG9ydGluZ09yZ2FuaXNhdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFJlcG9ydGluZ09yZ2FuaXNhdGlvbl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBUb3RhbEJ1ZGdldF92dWVfMSA9IHJlcXVpcmUoXCIuL1RvdGFsQnVkZ2V0LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRvdGFsQnVkZ2V0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoVG90YWxCdWRnZXRfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgUmVwb3J0aW5nT3JnQnVkZ2V0X3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVwb3J0aW5nT3JnQnVkZ2V0LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlcG9ydGluZ09yZ0J1ZGdldFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFJlcG9ydGluZ09yZ0J1ZGdldF92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZXBvcnRpbmdSZWdpb25CdWRnZXRfdnVlXzEgPSByZXF1aXJlKFwiLi9SZXBvcnRpbmdSZWdpb25CdWRnZXQudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVwb3J0aW5nUmVnaW9uQnVkZ2V0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVwb3J0aW5nUmVnaW9uQnVkZ2V0X3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlY2lwaWVudENvdW50cnlCdWRnZXRfdnVlXzEgPSByZXF1aXJlKFwiLi9SZWNpcGllbnRDb3VudHJ5QnVkZ2V0LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlY2lwaWVudENvdW50cnlCdWRnZXRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZWNpcGllbnRDb3VudHJ5QnVkZ2V0X3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFRvdGFsRXhwZW5kaXR1cmVfdnVlXzEgPSByZXF1aXJlKFwiLi9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRvdGFsRXhwZW5kaXR1cmVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChUb3RhbEV4cGVuZGl0dXJlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIERvY3VtZW50TGlua192dWVfMSA9IHJlcXVpcmUoXCIuL0RvY3VtZW50TGluay52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEb2N1bWVudExpbmtcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChEb2N1bWVudExpbmtfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG4iLCI8dGVtcGxhdGU+XG4gIDxzZWN0aW9uIGNsYXNzPVwibWFpbiBtdC0xMCBzbTpteC0xMCB4bDpteC0yNCB4bDpweC0xXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtYWluX19jb250YWluZXIgcm91bmRlZC1sZyBiZy1ibHVlY29yYWwgcGItOCBzbTptYi0xMCBtZDptYi0yMCBtZDpmbGV4IG1kOmJnLW5vbmUgbWQ6cGItMFwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxlZnQgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctYmx1ZWNvcmFsIHB4LTMgcHQtNSBwYi03MiB0ZXh0LXdoaXRlIHNtOnJvdW5kZWQtci1sZyBzbTpyb3VuZGVkLWwtbGcgc206cHgtNSBzbTpwdC0xMCBtZDpiYXNpcy0yLzQgbWQ6cm91bmRlZC1yLW5vbmUgbWQ6cGItMTYgbGc6cHQtNDQgbGc6cGItNDQgeGw6cHgtMjRcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdF9fY29udGFpbmVyIHJvdW5kZWQtbGcgcC01IHNtOnAtMTBcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxlZnRfX3RpdGxlIGZvbnQtYm9sZFwiPklBVEkgUHVibGlzaGluZyBUb29sPC9zcGFuPlxuICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBzbTpwdC02IHNtOnBiLThcIj5cbiAgICAgICAgICAgIFdlbGNvbWUgdG8gSUFUSSBQdWJsaXNoZXIuIFB1Ymxpc2ggSUFUSSBkYXRhIG9uIHlvdXIgb3JnYW5pc2F0aW9u4oCZc1xuICAgICAgICAgICAgZGV2ZWxvcG1lbnQgYW5kIGh1bWFuaXRhcmlhbiBmaW5hbmNpbmcgYW5kIGFjdGl2aXRpZXMuIEVudGVyIHlvdXJcbiAgICAgICAgICAgIGxvZ2luIGluZm9ybWF0aW9uIGlmIHlvdeKAmXJlIGFscmVhZHkgYSB1c2VyIG9yIGNyZWF0ZSBhIG5ldyBhY2NvdW50XG4gICAgICAgICAgICBpZiB5b3XigJlyZSBuZXcgaGVyZS5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggZmxleC13cmFwXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgcGFnZUNvbnRlbnQgPT09ICdKb2luIE5vdydcbiAgICAgICAgICAgICAgICAgID8gXCJIYXZlbid0IHJlZ2lzdGVyZWQgeWV0P1wiXG4gICAgICAgICAgICAgICAgICA6ICdBbHJlYWR5IGhhdmUgYW4gYWNjb3VudD8nXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTEgYm9yZGVyLWItMiBib3JkZXItYi10cmFuc3BhcmVudCB0ZXh0LWJhc2UgdGV4dC10dXJxdW9pc2UgaG92ZXI6Ym9yZGVyLWItMiBob3Zlcjpib3JkZXItYi10dXJxdW9pc2VcIlxuICAgICAgICAgICAgICAgIEBjbGljaz1cInRvZ2dsZVBhZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgcGFnZUNvbnRlbnQgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxTaWduSW4gdi1pZj1cInBhZ2VDb250ZW50ID09PSAnSm9pbiBOb3cnXCIgOm1lc3NhZ2U9XCJtZXNzYWdlXCIgLz5cbiAgICAgIDxKb2luTm93IHYtZWxzZSAvPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IHsgZGVmaW5lQ29tcG9uZW50LCByZWYgfSBmcm9tICd2dWUnO1xuaW1wb3J0IFNpZ25JbiBmcm9tICcuL3BhcnRpYWxzL1NpZ25Jbi52dWUnO1xuaW1wb3J0IEpvaW5Ob3cgZnJvbSAnLi9wYXJ0aWFscy9Kb2luTm93LnZ1ZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbXBvbmVudCh7XG4gIGNvbXBvbmVudHM6IHtcbiAgICBKb2luTm93LFxuICAgIFNpZ25JbixcbiAgfSxcbiAgcHJvcHM6IHtcbiAgICBwYWdlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIG1lc3NhZ2U6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIHNldHVwKHByb3BzKSB7XG4gICAgY29uc3QgcGFnZUNvbnRlbnQgPSByZWYocHJvcHMucGFnZSA9PT0gJ3NpZ25pbicgPyAnSm9pbiBOb3cnIDogJ1NpZ24gSW4nKTtcblxuICAgIGZ1bmN0aW9uIHRvZ2dsZVBhZ2UoKSB7XG4gICAgICBwYWdlQ29udGVudC52YWx1ZSA9XG4gICAgICAgIHBhZ2VDb250ZW50LnZhbHVlID09PSAnSm9pbiBOb3cnID8gJ1NpZ24gSW4nIDogJ0pvaW4gTm93JztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFnZUNvbnRlbnQsXG4gICAgICB0b2dnbGVQYWdlLFxuICAgIH07XG4gIH0sXG59KTtcbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2hpbW1lcl9fYmxvY2tcIiBzdHlsZT1cIm1heC13aWR0aDogNTE1cHhcIj48L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cbi5zaGltbWVyX19ibG9jayB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHBsYWNlSG9sZGVyU2hpbW1lcjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24tZGVsYXk6IDAuNXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2VkZWRlZCAxNC4zNiUsICNkN2Q2ZDYgNTYuMjklLCAjZWRlZGVkIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDI0NHB4IDEwNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTlweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogM3B4IDZweCAzcHggMHB4O1xufVxuXG5Aa2V5ZnJhbWVzIHBsYWNlSG9sZGVyU2hpbW1lciB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDAlIC0gMzAwcHgpIDA7XG4gIH1cblxuICAyMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMCUgLSAzMDBweCkgMDtcbiAgfVxuXG4gIDgwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlICsgMzAwcHgpIDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgKyAzMDBweCkgMDtcbiAgfVxufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm10LTE0XCI+XG4gICAgPGRpdiBjbGFzcz1cInJlc2V0IHRleHQtY2VudGVyXCI+XG4gICAgICA8aDI+UGFzc3dvcmQgUmVjb3Zlcnk8L2gyPlxuICAgICAgPHAgY2xhc3M9XCJtYi01XCI+XG4gICAgICAgIEFuIGVtYWlsIGhhcyBiZWVuIHNlbnQgd2l0aCBmdXJ0aGVyIGluc3RydWN0aW9ucywgcGxlYXNlIGNoZWNrIGl0IG91dFxuICAgICAgICB3aGVuIHlvdSBnZXQgaXQuXG4gICAgICA8L3A+XG4gICAgICA8c3ZnLXZ1ZSBjbGFzcz1cInZlcmlmaWNhdGlvbiBtLWF1dG9cIiBpY29uPVwiaWMtdmVyaWZpY2F0aW9uXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic21vb3RoIC1tYi03IGJnLVsjZTVlNWU1XSBweC01IHB5LTcgc206cHgtMTAgc206cHktMTQgbWQ6LW1iLTIwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm14LWF1dG8gbWF4LXctWzcwMHB4XVwiPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJyb3VuZGVkIGJnLXdoaXRlIHB5LTQgc2hhZG93LXRleHRib3ggc206cHktOFwiPlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInB5LTQgcHgtNiBzbTpweS02IHNtOnB4LTEyXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwibXktMiB0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1ibHVlY29yYWxcIj5cbiAgICAgICAgICAgIFdoYXQgaXMgSUFUSSBQdWJsaXNoZXI/XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8cCBjbGFzcz1cIm10LTQgdGV4dC1iYXNlXCI+XG4gICAgICAgICAgICBJQVRJIFB1Ymxpc2hlciBlbmFibGVzIG9yZ2FuaXNhdGlvbnMgdG8gcHVibGlzaCBkYXRhIG9uIGFjdGl2aXRpZXNcbiAgICAgICAgICAgIGFuZCByZXNvdXJjZSBmbG93cyBhY2NvcmRpbmcgdG8gdGhlIElBVEkgU3RhbmRhcmQuIFRoZSBJQVRJIFN0YW5kYXJkXG4gICAgICAgICAgICBpcyBhIHNldCBvZiBydWxlcyBhbmQgZ3VpZGFuY2Ugb24gaG93IHRvIHB1Ymxpc2ggdXNlZnVsIGRldmVsb3BtZW50XG4gICAgICAgICAgICBhbmQgaHVtYW5pdGFyaWFuIGRhdGEuXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICAgIDxhcnRpY2xlIGNsYXNzPVwicHktNCBweC02IHNtOnB5LTYgc206cHgtMTJcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJteS0yIHRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWJsdWVjb3JhbFwiPlxuICAgICAgICAgICAgVXNlIElBVEkgUHVibGlzaGVyIHRvOlxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibXQtNCBtbC00IGxpc3QtZGlzYyB0ZXh0LWJhc2UgdGV4dC1ibHVlY29yYWxcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgID5SZWdpc3RlciB5b3VyIG9yZ2FuaXNhdGlvbiB3aXRoIGFuIElBVEkgUHVibGlzaGVyIGFjY291bnQ8L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgID5VbmRlcnN0YW5kIHRoZSBkYXRhIGZpZWxkcyBpbiB0aGUgSUFUSSBTdGFuZGFyZCAod2l0aCBJQVRJXG4gICAgICAgICAgICAgICAgU3RhbmRhcmQgUmVmZXJlbmNlIGRlZmluaXRpb25zLCBoZWxwZnVsIGV4cGxhbmF0aW9ucyBhbmQgbGlua3NcbiAgICAgICAgICAgICAgICB0byBndWlkYW5jZSk8L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgID5Qcm92aWRlIHlvdXIgb3JnYW5pc2F0aW9u4oCZcyBkYXRhIGVhc2lseSBieSBjb21wbGV0aW5nIG9ubGluZVxuICAgICAgICAgICAgICAgIGZvcm1zLiBPciB1cGxvYWQgZGF0YSBvbiBtdWx0aXBsZSBhY3Rpdml0aWVzIG9uIGEgQ1NWIG9yIC54bWxcbiAgICAgICAgICAgICAgICBmaWxlIHdpdGggdGhlIEJ1bGsgVXBsb2FkIGZlYXR1cmU8L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgID5SdW4gYXV0b21hdGljIGNoZWNrcyAodmlhIHRoZSBJQVRJIFZhbGlkYXRvcikgZm9yIGVycm9ycyBiZWZvcmVcbiAgICAgICAgICAgICAgICBwdWJsaXNoaW5nIHlvdXIgZGF0YTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1iYXNlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgICAgICAgPlB1Ymxpc2ggeW91ciBkYXRhLiBJQVRJIFB1Ymxpc2hlciB3aWxsIGFkZCB5b3VyIGRhdGEgdG8gdGhlXG4gICAgICAgICAgICAgICAgSUFUSSBSZWdpc3RyeSAod2hlcmUgbGlua3MgdG8gYWxsIElBVEkgZGF0YSBpcyBmb3VuZCk8L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxwIGNsYXNzPVwibXQtNCB0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIElBVEkgUHVibGlzaGVyIGhhcyBiZWVuIGJ1aWx0IHRvIHN1cHBvcnQgb3JnYW5pc2F0aW9ucyB0aGF0IHB1Ymxpc2hcbiAgICAgICAgICAgIGEgbGltaXRlZCBudW1iZXIgb2YgZGV2ZWxvcG1lbnQgYW5kIGh1bWFuaXRhcmlhbiBhY3Rpdml0aWVzLiBBblxuICAgICAgICAgICAg4oCYYWN0aXZpdHnigJkgaXMgYW4gaW5kaXZpZHVhbCBwcm9qZWN0IG9yIGFub3RoZXIgdW5pdCBvZiBkZXZlbG9wbWVudFxuICAgICAgICAgICAgYW5kIGh1bWFuaXRhcmlhbiB3b3JrLCB3aGljaCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmdhbmlzYXRpb24gdGhhdFxuICAgICAgICAgICAgaXMgcHVibGlzaGluZyB0aGUgZGF0YS4gT3JnYW5pc2F0aW9ucyB3aG8gcHVibGlzaCBhIGxpbWl0ZWQgbnVtYmVyXG4gICAgICAgICAgICBvZiBhY3Rpdml0aWVzIHRlbmQgdG8gcmVwcmVzZW50IHNtYWxsIGFuZCBtZWRpdW0gc2l6ZWRcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbnMuXG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwibXQtNCB0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIExhcmdlIG9yZ2FuaXNhdGlvbnMsIHN1Y2ggYXMgZG9ub3IgZ292ZXJubWVudHMgb3IgVU4gYWdlbmNpZXNcbiAgICAgICAgICAgIGRlbGl2ZXJpbmcgMTAwKyBhY3Rpdml0aWVzIGFyZSBhZHZpc2VkIG5vdCB0byB1c2UgSUFUSSBQdWJsaXNoZXIuXG4gICAgICAgICAgICBJbnN0ZWFkIHRoZXNlIG9yZ2FuaXNhdGlvbnMgbGlrZWx5IG5lZWQgdG8gdXNlIGFuIGFsdGVybmF0aXZlXG4gICAgICAgICAgICB0ZWNobmljYWwgc29sdXRpb24gdGhhdCBlbmFibGVzIHRoZSBwdWJsaWNhdGlvbiBvZiBsYXJnZSB2b2x1bWVzIG9mXG4gICAgICAgICAgICBkYXRhLiBQbGVhc2UgZW1haWwgdGhlIElBVEkgSGVscGRlc2sgZm9yIG1vcmUgaW5mb3JtYXRpb246XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgaHJlZj1cIm1haWx0bzogc3VwcG9ydEBpYXRpc3RhbmRhcmQub3JnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgc3VwcG9ydEBpYXRpc3RhbmRhcmQub3JnIDwvYVxuICAgICAgICAgICAgPi5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJvdW5kZWQgcHktNCBweC02IHNtOnB5LTYgc206cHgtMTJcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJteS0yIHRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWJsdWVjb3JhbFwiPlxuICAgICAgICAgICAgRGV2ZWxvcG1lbnQgb2YgSUFUSSBQdWJsaXNoZXJcbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDxwIGNsYXNzPVwibXQtNCB0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIElBVEkgUHVibGlzaGVyIHdhcyBmaXJzdCBsYXVuY2hlZCBpbiBEZWNlbWJlciAyMDIyIGJ5IHRoZSBJQVRJXG4gICAgICAgICAgICBTZWNyZXRhcmlhdCBhbmQgaGFzIGJlZW4gZGV2ZWxvcGVkIGJ5XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8veW91bmdpbm5vdmF0aW9ucy5jb20ubnAvXCJcbiAgICAgICAgICAgICAgPllvdW5nIElubm92YXRpb25zIDwvYVxuICAgICAgICAgICAgPiwgYSBzb2Z0d2FyZSBkZXZlbG9wbWVudCBmaXJtIGJhc2VkIGluIE5lcGFsLiBJQVRJIFB1Ymxpc2hlciBpc1xuICAgICAgICAgICAgZnVsbHkgYWxpZ25lZCB3aXRoIHRoZSBJQVRJIFN0YW5kYXJkIFhNTFxuICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vaWF0aXN0YW5kYXJkLm9yZy9lbi9pYXRpLXN0YW5kYXJkLzIwMy9zY2hlbWEvXCI+XG4gICAgICAgICAgICAgIHNjaGVtYTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgYW5kXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vaWF0aXN0YW5kYXJkLm9yZy9lbi9pYXRpLXN0YW5kYXJkLzIwMy9ydWxlc2V0cy9cIlxuICAgICAgICAgICAgICA+cnVsZXNldHMgPC9hXG4gICAgICAgICAgICA+LlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0IGxhbmc9XCJ0c1wiPjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic21vb3RoIC1tYi03IGJnLVsjZTVlNWU1XSBweC01IHB5LTcgc206cHgtMTAgc206cHktMTQgbWQ6LW1iLTIwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm14LWF1dG8gbWF4LXctWzcwMHB4XVwiPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJyb3VuZGVkIGJnLXdoaXRlIHB5LTQgc2hhZG93LXRleHRib3ggc206cHktOFwiPlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInB5LTQgcHgtNiBzbTpweS02IHNtOnB4LTEyXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIElBVEkgU3RhbmRhcmQgVGhlIElBVEkgU3RhbmRhcmQgaXMgYSBzZXQgb2YgcnVsZXMgYW5kIGd1aWRhbmNlIG9uXG4gICAgICAgICAgICBob3cgdG8gcHVibGlzaCB1c2VmdWwgZGV2ZWxvcG1lbnQgYW5kIGh1bWFuaXRhcmlhbiBkYXRhLiBJQVRJXG4gICAgICAgICAgICBQdWJsaXNoZXIgd2lsbCB0YWtlIHlvdSB0aHJvdWdoIGFsbCBkYXRhIGZpZWxkcyAod2hpY2ggYXJlIHJlZmVycmVkXG4gICAgICAgICAgICB0byBhcyDigJhlbGVtZW50c+KAmSkgb2YgdGhlIElBVEkgU3RhbmRhcmQsIG9mZmVyaW5nIGhlbHBmdWxcbiAgICAgICAgICAgIGV4cGxhbmF0aW9ucyBhbmQgbGlua3MgdG8gZnVydGhlciBpbmZvcm1hdGlvbiBhbmQgZ3VpZGFuY2UuIFRoZSBJQVRJXG4gICAgICAgICAgICBTdGFuZGFyZCByZXF1aXJlcyBvcmdhbmlzYXRpb25zIHRvIHB1Ymxpc2ggdHdvIHNldHMgb2YgZGF0YTpcbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJweS00IHB4LTYgc206cHktNiBzbTpweC0xMlwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cIm15LTIgdGV4dC0yeGwgZm9udC1ib2xkIHRleHQtYmx1ZWNvcmFsXCI+XG4gICAgICAgICAgICAxLiBPcmdhbmlzYXRpb24gRGF0YVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIElBVEkgU3RhbmRhcmQgWW91IHdpbGwgYmUgYXNrZWQgdG8gcHVibGlzaCBkYXRhIGFib3V0IHlvdXIgZW50aXJlXG4gICAgICAgICAgICBvcmdhbmlzYXRpb24uIFRoaXMgaW5jbHVkZXMgYmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgeW91clxuICAgICAgICAgICAgb3JnYW5pc2F0aW9uLCBzdWNoIGFzIHlvdXIgbmFtZSBhbmQgdGhlIHR5cGUgb2Ygb3JnYW5pc2F0aW9uIHlvdVxuICAgICAgICAgICAgYXJlLiBZb3UgY2FuIGFsc28gcHJvdmlkZSBkYXRhIG9uOlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJtdC00IG1sLTQgbGlzdC1kaXNjIHRleHQtYmFzZSB0ZXh0LWJsdWVjb3JhbFwiPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1iYXNlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgICAgICAgPlRvdGFsIHNwZW5kIGJ5IHlvdXIgb3JnYW5pc2F0aW9uIG92ZXIgdGhlIGxhc3QgeWVhclxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1iYXNlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgICAgICAgPlRvdGFsIGFubnVhbCBwbGFubmVkIGJ1ZGdldCBmb3IgeW91ciBvcmdhbmlzYXRpb24gaW4gZWFjaCBvZlxuICAgICAgICAgICAgICAgIHRoZSBuZXh0IHRocmVlIHllYXJzLCB3aGVyZSBhdmFpbGFibGU8L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgID5QbGFubmVkIGJ1ZGdldHMgYnJva2VuIGRvd24gYnkgaW5kaXZpZHVhbCByZWNpcGllbnQgY291bnRyaWVzXG4gICAgICAgICAgICAgICAgb3IgcmVnaW9uczwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1iYXNlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgICAgICAgPlJ1biBhdXRvbWF0aWMgY2hlY2tzICh2aWEgdGhlIElBVEkgVmFsaWRhdG9yKSBmb3IgZXJyb3JzIGJlZm9yZVxuICAgICAgICAgICAgICAgIHB1Ymxpc2hpbmcgeW91ciBkYXRhPC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJsYWNrXCJcbiAgICAgICAgICAgICAgICA+VXNlZnVsIGJhY2tncm91bmQgZG9jdW1lbnRzLCBzdWNoIGFzIGNvdW50cnkgYWN0aW9uIHBsYW5zIGFuZFxuICAgICAgICAgICAgICAgIGFubnVhbCByZXBvcnRzXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8cCBjbGFzcz1cIm10LTQgdGV4dC1iYXNlXCI+XG4gICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgaHJlZj1cIi9vcmdhbmlzYXRpb25cIlxuICAgICAgICAgICAgICA+UHVibGlzaCB5b3VyIE9yZ2FuaXNhdGlvbiBEYXRhPC9hXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICAgIDxhcnRpY2xlIGNsYXNzPVwicHktNCBweC02IHNtOnB5LTYgc206cHgtMTJcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJteS0yIHRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWJsdWVjb3JhbFwiPlxuICAgICAgICAgICAgMi4gQWN0aXZpdHkgRGF0YVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIFRoZSBJQVRJIFN0YW5kYXJkIGFsc28gcmVxdWlyZXMgb3JnYW5pc2F0aW9ucyB0byBwcm92aWRlIGRhdGEgYWJvdXRcbiAgICAgICAgICAgIHRoZWlyIGRldmVsb3BtZW50IGFuZCBodW1hbml0YXJpYW4g4oCYYWN0aXZpdGllc+KAmS4gRm9yIGVhY2ggYWN0aXZpdHksXG4gICAgICAgICAgICB5b3UgY2FuIHB1Ymxpc2ggYSB3aWRlIHJhbmdlIG9mIGluZm9ybWF0aW9uLCBpbmNsdWRpbmc6XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDx1bCBjbGFzcz1cIm15LTQgbWwtNCBsaXN0LWRpc2MgdGV4dC1iYXNlIHRleHQtYmx1ZWNvcmFsXCI+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgPHU+QmFzaWMgaW5mb3JtYXRpb24gYW5kIGlkZW50aWZpY2F0aW9uIDwvdT5vZiB0aGUgYWN0aXZpdHkgZS5nLlxuICAgICAgICAgICAgICAgIHByb3ZpZGluZyBhIHRpdGxlIGFuZCBhIGRlc2NyaXB0aW9uIGZvciB5b3VyIGFjdGl2aXR5XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgPHU+UGFydGljaXBhdGluZyBvcmdhbmlzYXRpb25zPC91PiDigJMgaW5mb3JtYXRpb24gb24gd2hpY2ggb3RoZXJcbiAgICAgICAgICAgICAgICBvcmdhbmlzYXRpb25zIGFyZSBpbnZvbHZlZCBpbiB0aGUgYWN0aXZpdHlcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIj5cbiAgICAgICAgICAgICAgICA8dT5QYXJ0aWNpcGF0aW5nIG9yZ2FuaXNhdGlvbnM8L3U+IOKAkyBpbmZvcm1hdGlvbiBvbiB3aGljaCBvdGhlclxuICAgICAgICAgICAgICAgIG9yZ2FuaXNhdGlvbnMgYXJlIGludm9sdmVkIGluXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgPHU+RmluYW5jaWFsIGRhdGE8L3U+IOKAkyBjb3ZlcnMgdGhlIGJ1ZGdldHMgYW5kIHRoZSB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgICAgICBmb3IgdGhlIGFjdGl2aXR5XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJsYWNrXCI+XG4gICAgICAgICAgICAgICAgPHU+Q2xhc3NpZmljYXRpb25zPC91PiDigJMgaGVscHMgY2F0ZWdvcmlzZSB0aGUgYWN0aXZpdHkgdXNpbmdcbiAgICAgICAgICAgICAgICB2YXJpb3VzIGRldmVsb3BtZW50IGFuZCBodW1hbml0YXJpYW4gdGF4b25vbWllcy4gRm9yIGV4YW1wbGUsXG4gICAgICAgICAgICAgICAgd2hhdCBzZWN0b3IgZG9lcyB0aGUgYWN0aXZpdHkgdGFyZ2V0IG9yIHN1cHBvcnQgKGUuZy4gcHJpbWFyeVxuICAgICAgICAgICAgICAgIGVkdWNhdGlvbiBvciBhZ3JpY3VsdHVyZSksIG9yIHdoYXQgdHlwZSBvZiBhaWQgaXMgdXNlZCB0byBmdW5kXG4gICAgICAgICAgICAgICAgdGhlIGFjdGl2aXR5IChlLmcuIGEgZ3JhbnQgb3IgbG9hbilcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIj5cbiAgICAgICAgICAgICAgICA8dT5MaW5rcyB0byBvdGhlciBkYXRhPC91PiB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHB1Ymxpc2hlZCBvblxuICAgICAgICAgICAgICAgIHRoZSBhY3Rpdml0eSBlbHNld2hlcmVcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIj5cbiAgICAgICAgICAgICAgICBUaGUgPHU+cmVzdWx0czwvdT4gdGhhdCB0aGUgYWN0aXZpdHkgaXMgYWltaW5nIHRvIGFjaGlldmVcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHRleHQtYmx1ZWNvcmFsXCI+XG4gICAgICAgICAgICBQdWJsaXNoaW5nIGRhdGEgYXQgZWl0aGVyIEFjdGl2aXR5IGxldmVsIG9yIFRyYW5zYWN0aW9uIGxldmVsXG4gICAgICAgICAgPC9oNj5cblxuICAgICAgICAgIDxwIGNsYXNzPVwibXktNCB0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIEFzIGxpc3RlZCBhYm92ZSwgeW91IHdpbGwgbmVlZCB0byBwcm92aWRlIGRhdGEgb24geW91ciBhY3Rpdml0eeKAmXNcbiAgICAgICAgICAgIHRyYW5zYWN0aW9ucywgd2hpY2ggc2hvd3MgaG93IHRoZSBhY3Rpdml0eSBpcyBiZWluZyBmaW5hbmNlZCBhbmQgaG93XG4gICAgICAgICAgICB0aGUgZmluYW5jZSBpcyBiZWluZyB1c2VkLlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cIm15LTQgdGV4dC1iYXNlXCI+XG4gICAgICAgICAgICBUaGVyZSBhcmUgc3BlY2lmaWMgdHlwZXMgb2YgaW5mb3JtYXRpb24gdGhhdCB5b3UgY2FuIGVpdGhlciBwdWJsaXNoXG4gICAgICAgICAgICBhYm91dCB5b3VyIGVudGlyZSBhY3Rpdml0eSwgb3IgYWJvdXQgaW5kaXZpZHVhbCB0cmFuc2FjdGlvbnMgKGVhY2hcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uIHJlcHJlc2VudHMgbW9uZXkgZmxvd2luZyBpbiBvciBvdXQgb2YgdGhlIGFjdGl2aXR5KS4gRm9yXG4gICAgICAgICAgICBleGFtcGxlLCB5b3UgY2FuIHB1Ymxpc2ggZGF0YSBvbiB3aGljaCBjb3VudHJ5L3JlZ2lvbiB5b3VyIGVudGlyZVxuICAgICAgICAgICAgYWN0aXZpdHkgaXMgYmVuZWZpdHRpbmcsIG9yIHlvdSBjYW4gcHVibGlzaCBkYXRhIG9uIHdoaWNoXG4gICAgICAgICAgICBjb3VudHJ5L3JlZ2lvbiBlYWNoIHRyYW5zYWN0aW9uIGlzIGJlbmVmaXR0aW5nLiBIb3dldmVyIHlvdSBtdXN0IG5vdFxuICAgICAgICAgICAgcHVibGlzaCB0aGlzIGluZm9ybWF0aW9uIGF0IGJvdGggYWN0aXZpdHkgYW5kIHRyYW5zYWN0aW9uIGxldmVscy5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJteS00IHRleHQtYmFzZVwiPlxuICAgICAgICAgICAgSUFUSSBQdWJsaXNoZXIgcHJvdmlkZXMgZXhwbGFuYXRpb25zIGZvciBlYWNoIGVsZW1lbnQgb2YgdGhlIElBVElcbiAgICAgICAgICAgIFN0YW5kYXJkIGFuZCB0ZWxscyB5b3Ugd2hlcmUgeW91IGhhdmUgYSBjaG9pY2Ugb2Ygd2hpY2ggbGV2ZWwgdG9cbiAgICAgICAgICAgIHB1Ymxpc2ggZGF0YSBmb3IuXG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwibXktNCB0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBocmVmPVwiL29yZ2FuaXNhdGlvblwiXG4gICAgICAgICAgICAgID5QdWJsaXNoIHlvdXIgT3JnYW5pc2F0aW9uIERhdGE8L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJweS00IHB4LTYgc206cHktNiBzbTpweC0xMlwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cIm15LTIgdGV4dC0yeGwgZm9udC1ib2xkIHRleHQtYmx1ZWNvcmFsXCI+XG4gICAgICAgICAgICBEb3dubG9hZCBQREYgb2YgSUFUSSBTdGFuZGFyZCBkYXRhIGZpZWxkc1xuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIElBVEkgU3RhbmRhcmQgV2hpbHN0IGdhdGhlcmluZyBhbmQgcHJlcGFyaW5nIHlvdXIgb3JnYW5pc2F0aW9u4oCZc1xuICAgICAgICAgICAgSUFUSSBkYXRhLCB5b3UgbWF5IGZpbmQgaXQgaGVscGZ1bCB0byB2aWV3IHRoZSBmb2xsb3dpbmdcbiAgICAgICAgICAgIHNwcmVhZHNoZWV0cyB0aGF0IHByb3ZpZGUgaW5mb3JtYXRpb24gb24gYWxsIG9mIHRoZSBkYXRhIGVsZW1lbnRzIGluXG4gICAgICAgICAgICB0aGUgSUFUSSBTdGFuZGFyZC4gWW91IHdpbGwgYWxzbyBiZSBhYmxlIHRvIHZpZXcgdGhpcyBpbmZvcm1hdGlvbiBhc1xuICAgICAgICAgICAgeW91IHdvcmsgeW91ciB3YXkgdGhyb3VnaCBjb21wbGV0aW5nIHRoZSBmb3JtcyBmb3IgZWFjaCBlbGVtZW50IG9uXG4gICAgICAgICAgICBJQVRJIFB1Ymxpc2hlci5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGNsYXNzPVwibXktMlwiPlxuICAgICAgICAgICAgW0lBVEkgT3JnYW5pc2F0aW9uIFN0YW5kYXJkIGRhdGEgUERGXVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3M9XCJteS0yXCI+XG4gICAgICAgICAgICBbSUFUSSBBY3Rpdml0eSBTdGFuZGFyZCBkYXRhIFBERl1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJweS00IHB4LTYgc206cHktNiBzbTpweC0xMlwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cIm15LTIgdGV4dC0yeGwgZm9udC1ib2xkIHRleHQtYmx1ZWNvcmFsXCI+XG4gICAgICAgICAgICBJQVRJIFN0YW5kYXJkIHJlZmVyZW5jZVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIFlvdSBjYW4gbG9vayB1cCBkZXRhaWxlZCBhbmQgdGVjaG5pY2FsIGluZm9ybWF0aW9uIGFib3V0IGVhY2hcbiAgICAgICAgICAgIGVsZW1lbnQgb2YgdGhlIElBVEkgU3RhbmRhcmQgb24gdGhlIElBVEkgUmVmZXJlbmNlIHNlY3Rpb24gb2YgSUFUSeKAmXNcbiAgICAgICAgICAgIG1haW4gd2Vic2l0ZTpcbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2lhdGlzdGFuZGFyZC5vcmcvZW4vaWF0aS1zdGFuZGFyZC8yMDMvYWN0aXZpdHktc3RhbmRhcmQvXCJcbiAgICAgICAgICAgIGNsYXNzPVwibXktMlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHU+QWN0aXZpdHkgU3RhbmRhcmQ8L3U+IDwvYVxuICAgICAgICAgID48YnIgLz5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vaWF0aXN0YW5kYXJkLm9yZy9lbi9pYXRpLXN0YW5kYXJkLzIwMy9vcmdhbmlzYXRpb24tc3RhbmRhcmQvXCJcbiAgICAgICAgICAgIGNsYXNzPVwibXktMlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHU+IE9yZ2FuaXNhdGlvbiBTdGFuZGFyZDwvdT5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD48L3NjcmlwdD5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInNtb290aCAtbWItNyBiZy1bI2U1ZTVlNV0gcHgtNSBweS03IHNtOnB4LTEwIHNtOnB5LTE0IG1kOi1tYi0yMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJteC1hdXRvIG1heC13LVs3MDBweF1cIj5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwicm91bmRlZCBiZy13aGl0ZSBweS00IHNoYWRvdy10ZXh0Ym94IHNtOnB5LThcIj5cbiAgICAgICAgPGFydGljbGUgY2xhc3M9XCJweS00IHB4LTYgc206cHktNiBzbTpweC0xMlwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWJsdWVjb3JhbFwiPlN1cHBvcnQ8L2gzPlxuXG4gICAgICAgICAgPHAgY2xhc3M9XCJtdC00IHRleHQtYmFzZVwiPlxuICAgICAgICAgICAgSWYgeW91ciBvcmdhbmlzYXRpb24gbmVlZHMgc3VwcG9ydCB0byB1c2UgSUFUSSBQdWJsaXNoZXIgb3IgaGFzXG4gICAgICAgICAgICBxdWVzdGlvbnMgYWJvdXQgd2hhdCBkYXRhIHRvIHB1Ymxpc2ggcGxlYXNlIGNvbnRhY3QgSUFUSeKAmXMgSGVscGRlc2s6XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgaHJlZj1cIm1haWx0bzpzdXBwb3J0QGlhdGlzdGFuZGFyZC5vcmdcIlxuICAgICAgICAgICAgICA+c3VwcG9ydEBpYXRpc3RhbmRhcmQub3JnLjwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cIm10LTQgdGV4dC1iYXNlXCI+XG4gICAgICAgICAgICBZb3UgbWF5IGFsc28gam9pbiBJQVRJ4oCZcyBvbmxpbmUgY29tbXVuaXR5IGF0XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vaWF0aWNvbm5lY3Qub3JnL1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIElBVEkgQ29ubmVjdFxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgLCB3aGVyZSB5b3UgY2FuIHBvc3QgbWVzc2FnZXMgYWJvdXQgSUFUSSBwdWJsaXNoaW5nIGluIHRoZVxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2lhdGljb25uZWN0Lm9yZy9kYXRhLXB1Ymxpc2hpbmctY29wL2Fib3V0XCJcbiAgICAgICAgICAgICAgPkRhdGEgUHVibGlzaGluZyBDb21tdW5pdHkgb2YgUHJhY3RpY2UuPC9hXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbiIsIjx0ZW1wbGF0ZT5cblxuICA8Zm9vdGVyXG4gICAgaWQ9XCJmb290ZXJcIlxuICAgIGNsYXNzPVwibXQtNyBiZy1ibHVlY29yYWwgdGV4dC1zbSBsZWFkaW5nLTYgdGV4dC1uLTIwIHNtOm10LTEwIG1kOm10LTIwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXItYiBib3JkZXItd2hpdGUgYm9yZGVyLW9wYWNpdHktMjBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJteC0zIHB5LTEwIHNtOm14LTEwIHhsOm14LTI0IHhsOnB4LTFcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZm9vdGVyX19jb250YWluZXIgZ3JpZCBncmlkLWZsb3ctcm93IGdhcC04IHNtOmdhcC15LTEwIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy00IGxnOmp1c3RpZnktaXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YSBocmVmPVwiL1wiPlxuICAgICAgICAgICAgICA8c3ZnLXZ1ZSBjbGFzcz1cImgtYXV0byB3LTYwIHRleHQtNnhsIHNtOnctNjRcIiBpY29uPVwiZm9vdGVyLWxvZ29cIiAvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlcl9fbGlua3NcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbi0xMFwiPklBVEkgUHVibGlzaGVyPC9zcGFuPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibXQtMiBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL2FjdGl2aXRpZXNcIj5EYXNoYm9hcmQ8L2E+PC9saT5cbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvYWJvdXRcIj5BYm91dDwvYT48L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyX19saW5rc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1uLTEwXCI+SUFUSSBTdGFuZGFyZDwvc3Bhbj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cIm10LTIgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9pYXRpLXN0YW5kYXJkXCI+SUFUSSBTdGFuZGFyZDwvYT48L2xpPlxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9wdWJsaXNoaW5nLWNoZWNrbGlzdFwiPlB1Ymxpc2hpbmcgQ2hlY2tsaXN0PC9hPjwvbGk+XG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL3N1cHBvcnRcIj5TdXBwb3J0PC9hPjwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJfX2xpbmtzIGxnOmp1c3RpZnktc2VsZi1lbmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIGxlYWRpbmctNVwiPlxuICAgICAgICAgICAgICA8cD5QYXJ0IG9mIHRoZSBJQVRJIFVuaWZpZWQgUGxhdGZvcm08L3A+XG4gICAgICAgICAgICAgIDxwPkNvZGUgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBBR1BMLjwvcD5cbiAgICAgICAgICAgICAgPHA+RG9jdW1lbnRhdGlvbiBsaWNlbnNlZCB1bmRlciBDQyBCWSAzLjA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01IGZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiB0ZXh0LW4tMTBcIj5cbiAgICAgICAgICAgICAgPHN2Zy12dWUgY2xhc3M9XCJ0ZXh0LTJ4bFwiIGljb249XCJoZWFkcGhvbmVcIiAvPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgZm9udC1ib2xkIHVwcGVyY2FzZVwiXG4gICAgICAgICAgICAgICAgPkFueSBxdWVzdGlvbnM/IENvbnRhY3QgU3VwcG9ydDwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1zbSB0ZXh0LW4tMTBcIiBocmVmPVwibWFpbHRvOnN1cHBvcnRAaWF0aXN0YW5kYXJkLm9yZ1wiXG4gICAgICAgICAgICAgICAgICA+c3VwcG9ydEBpYXRpc3RhbmRhcmQub3JnPC9hXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXgtNSBweS03IHNtOm14LTEwIHhsOm14LTI0IHhsOnB4LTFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJfX2NvbnRhaW5lciBncmlkIGdhcC0zIHNtOmdyaWQtY29scy0yXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1uLTMwXCI+XG4gICAgICAgICAgPHN2Zy12dWUgY2xhc3M9XCJtci0xIHRleHQtYmFzZVwiIGljb249XCJjb3B5cmlnaHRcIiAvPlxuICAgICAgICAgIENvcHlyaWdodCBJQVRJIDIwMjIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggc206anVzdGlmeS1lbmRcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNBVkgxZ2NnSlhFbHNqOEVOQy1iRFFRXCJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy12dWUgY2xhc3M9XCJtdC0xIG1yLTEgdGV4dC00eGxcIiBpY29uPVwieW91dHViZVwiIC8+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwibWwtNFwiIGhyZWY9XCJodHRwczovL3R3aXR0ZXIuY29tL0lBVElfYWlkXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICA8c3ZnLXZ1ZSBjbGFzcz1cIm10LTEgbXItMSB0ZXh0LTR4bFwiIGljb249XCJ0d2l0dGVyXCIgLz5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9vdGVyPlxuPC90ZW1wbGF0ZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmlnaHQgam9pbi1ub3cgbS1hdXRvIGZsZXggYmFzaXMtMi80IGl0ZW1zLWNlbnRlciByb3VuZGVkLWwtbGcgcm91bmRlZC1yLWxnIGJnLXdoaXRlIHB5LTUgcHgtNSBzbTpweS0xMCBzbTpweC03IG1kOm15LTAgbWQ6cm91bmRlZC1sLW5vbmUgbGc6cHktMjggeGw6cHgtMTRcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0X19jb250YWluZXIgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPGgyIGNsYXNzPVwibWItMiBoaWRkZW4gc206YmxvY2tcIj5Kb2luIE5vdy48L2gyPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYi04IHRleHQtbi00MCB4bDpwci02XCI+XG4gICAgICAgIFRvIGJlZ2luLCB5b3VyIG9yZ2FuaXNhdGlvbiBuZWVkcyB0byBiZSByZWdpc3RlcmVkIGFzIGFuIElBVEkgcHVibGlzaGVyLlxuICAgICAgICBTZWxlY3QgYW4gb3B0aW9uIGFuZCB3ZeKAmWxsIGd1aWRlIHlvdSB0aHJvdWdoIHRoaXMgcHJvY2Vzcy5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxhIGhyZWY9XCIvaWF0aS9yZWdpc3RlclwiIGNsYXNzPVwicmlnaHRfX2NvbnRlbnQgbWItNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRfX2ljb25cIj5cbiAgICAgICAgICA8c3ZnLXZ1ZSBjbGFzcz1cInRleHQtNnhsXCIgaWNvbj1cImRlZmF1bHQtMVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscyBteC00IHhsOnB4LTFcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHRleHQtYmx1ZWNvcmFsXCI+SSBhbSBuZXcgdG8gSUFUSTwvc3Bhbj5cbiAgICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgbGVhZGluZy01IHRleHQtbi00MFwiPlxuICAgICAgICAgICAgVXNlIHRoaXMgb3B0aW9uIGlmIHlvdXIgb3JnYW5pemF0aW9uIDx1PmhhcyBub3Q8L3U+IHJlZ2lzdGVyZWQgYW5cbiAgICAgICAgICAgIGFjY291bnQgd2l0aCBJQVRJIG9uIHRoZSBJQVRJIFJlZ2lzdHJ5XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3ZnLXZ1ZSBjbGFzcz1cInJpZ2h0X19hcnJvdyB0ZXh0LTJ4bFwiIGljb249XCJyaWdodC1hcnJvd1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hPlxuICAgICAgPGEgaHJlZj1cIi9yZWdpc3RlclwiIGNsYXNzPVwicmlnaHRfX2NvbnRlbnQgbWItNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRfX2ljb25cIj5cbiAgICAgICAgICA8c3ZnLXZ1ZSBjbGFzcz1cInRleHQtNnhsXCIgaWNvbj1cImRlZmF1bHQtMlwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscyBteC00IHhsOnB4LTFcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHRleHQtYmx1ZWNvcmFsXCJcbiAgICAgICAgICAgID5NeSBvcmdhbmlzYXRpb24gaGFzIHJlZ2lzdGVyZWQgd2l0aCBJQVRJPC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC14cyBsZWFkaW5nLTUgdGV4dC1uLTQwXCI+XG4gICAgICAgICAgICBVc2UgdGhpcyBvcHRpb24gaWYgeW91ciBvcmdhbmlzYXRpb24gaXMgYWxyZWFkeSByZWdpc3RlcmVkIGFzIGFuXG4gICAgICAgICAgICBJQVRJIFB1Ymxpc2hlciBvbiB0aGVcbiAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5pYXRpcmVnaXN0cnkub3JnL1wiIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgID5JQVRJIFJlZ2lzdHJ5PC9hXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3ZnLXZ1ZSBjbGFzcz1cInJpZ2h0X19hcnJvdyB0ZXh0LTJ4bFwiIGljb249XCJyaWdodC1hcnJvd1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtbi00MFwiXG4gICAgICAgID5Ob3Qgc3VyZSB3aGljaCBvbmUgdG8gc2VsZWN0P1xuICAgICAgICA8YVxuICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLWItMiBib3JkZXItYi10cmFuc3BhcmVudCBmb250LWJvbGQgdGV4dC1ibHVlY29yYWwgaG92ZXI6Ym9yZGVyLWItMiBob3Zlcjpib3JkZXItYi10dXJxdW9pc2UgaG92ZXI6dGV4dC1ibHVlY29yYWxcIlxuICAgICAgICAgIGhyZWY9XCJtYWlsdG86c3VwcG9ydEBpYXRpc3RhbmRhcmQub3JnXCJcbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5Db250YWN0IFN1cHBvcnQuPC9hXG4gICAgICAgID48L3NwYW5cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuIiwiPHRlbXBsYXRlPlxuICA8Zm9vdGVyIGNsYXNzPVwibXQtNyBiZy1ibHVlY29yYWwgdGV4dC1zbSBsZWFkaW5nLTYgdGV4dC1uLTIwIHNtOm10LTEwIG1kOm10LTIwXCI+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlci1iIGJvcmRlci13aGl0ZSBib3JkZXItb3BhY2l0eS0yMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm14LTMgcHktMTAgc206bXgtMTAgeGw6bXgtMjQgeGw6cHgtMVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmb290ZXJfX2NvbnRhaW5lciBncmlkIGdyaWQtZmxvdy1yb3cgZ2FwLTggc206Z2FwLXktMTAgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTQgbGc6anVzdGlmeS1pdGVtcy1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCIvXCI+XG4gICAgICAgICAgICAgIDxzdmctdnVlIGNsYXNzPVwiaC1hdXRvIHctNjAgdGV4dC02eGwgc206dy02NFwiIGljb249XCJmb290ZXItbG9nb1wiIC8+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlcl9fbGlua3NcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbi0xMFwiPklBVEkgUHVibGlzaGVyPC9zcGFuPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibXQtMiBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL1wiPkhvbWU8L2E+PC9saT5cbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvYWJvdXRcIj5BYm91dDwvYT48L2xpPlxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIj5TaWduIEluPC9hPjwvbGk+XG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL3JlZ2lzdGVyL2pvaW5cIj5Kb2luIE5vdzwvYT48L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyX19saW5rc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1uLTEwXCI+SUFUSSBTdGFuZGFyZDwvc3Bhbj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cIm10LTIgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9pYXRpLXN0YW5kYXJkXCI+SUFUSSBTdGFuZGFyZDwvYT48L2xpPlxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9wdWJsaXNoaW5nLWNoZWNrbGlzdFwiPlB1Ymxpc2hpbmcgQ2hlY2tsaXN0PC9hPjwvbGk+XG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL3N1cHBvcnRcIj5TdXBwb3J0PC9hPjwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJfX2xpbmtzIGxnOmp1c3RpZnktc2VsZi1lbmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIGxlYWRpbmctNVwiPlxuICAgICAgICAgICAgICA8cD5QYXJ0IG9mIHRoZSBJQVRJIFVuaWZpZWQgUGxhdGZvcm08L3A+XG4gICAgICAgICAgICAgIDxwPkNvZGUgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBBR1BMLjwvcD5cbiAgICAgICAgICAgICAgPHA+RG9jdW1lbnRhdGlvbiBsaWNlbnNlZCB1bmRlciBDQyBCWSAzLjA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01IGZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiB0ZXh0LW4tMTBcIj5cbiAgICAgICAgICAgICAgPHN2Zy12dWUgY2xhc3M9XCJ0ZXh0LTJ4bFwiIGljb249XCJoZWFkcGhvbmVcIiAvPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgZm9udC1ib2xkIHVwcGVyY2FzZVwiXG4gICAgICAgICAgICAgICAgPkFueSBxdWVzdGlvbnM/IENvbnRhY3QgU3VwcG9ydDwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1zbSB0ZXh0LW4tMTBcIiBocmVmPVwibWFpbHRvOnN1cHBvcnRAaWF0aXN0YW5kYXJkLm9yZ1wiXG4gICAgICAgICAgICAgICAgICA+c3VwcG9ydEBpYXRpc3RhbmRhcmQub3JnPC9hXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXgtNSBweS03IHNtOm14LTEwIHhsOm14LTI0IHhsOnB4LTFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJfX2NvbnRhaW5lciBncmlkIGdhcC0zIHNtOmdyaWQtY29scy0yXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1uLTMwXCI+XG4gICAgICAgICAgPHN2Zy12dWUgY2xhc3M9XCJtci0xIHRleHQtYmFzZVwiIGljb249XCJjb3B5cmlnaHRcIiAvPlxuICAgICAgICAgIENvcHlyaWdodCBJQVRJIDIwMjIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggc206anVzdGlmeS1lbmRcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNBVkgxZ2NnSlhFbHNqOEVOQy1iRFFRXCJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy12dWUgY2xhc3M9XCJtdC0xIG1yLTEgdGV4dC00eGxcIiBpY29uPVwieW91dHViZVwiIC8+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwibWwtNFwiIGhyZWY9XCJodHRwczovL3R3aXR0ZXIuY29tL0lBVElfYWlkXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICA8c3ZnLXZ1ZSBjbGFzcz1cIm10LTEgbXItMSB0ZXh0LTR4bFwiIGljb249XCJ0d2l0dGVyXCIgLz5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9vdGVyPlxuPC90ZW1wbGF0ZT5cbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmFjdGl2aXR5X19oZWFkZXJbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB3aWR0aDogMTAwdnc7XFxuICB0b3A6IDBweDtcXG4gIHotaW5kZXg6IDEwMDtcXG59XFxuLmFjdGl2aXR5X19oZWFkZXIgbmF2W2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxuLmFjdGl2aXR5X19oZWFkZXIgbmF2IGFbZGF0YS12LTZmZTU5MDU1XTpob3ZlciB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLXdoaXRlKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbi5hY3Rpdml0eV9faGVhZGVyIG5hdiB1bFtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM3NXB4KSB7XFxuLmFjdGl2aXR5X19oZWFkZXIgLmFkZC1idG5bZGF0YS12LTZmZTU5MDU1XSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcbn1cXG4uYWN0aXZpdHlfX2hlYWRlciAudXNlci1uYXZbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLnRvYXN0W2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogNTAlO1xcbiAgei1pbmRleDogNTA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcmlnaHQ6IDAuNzVyZW07XFxuICB6LWluZGV4OiAyMDtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwpLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG4gIG9wYWNpdHk6IDA7XFxuICAtLXR3LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDBweCA0cHggNDBweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4ucHJvZmlsZV9fZHJvcGRvd25bZGF0YS12LTZmZTU5MDU1XSB7XFxuICAgIHJpZ2h0OiAyLjVyZW07XFxufVxcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd25bZGF0YS12LTZmZTU5MDU1XSB7XFxuICB0b3A6IDUwcHg7XFxuICB3aWR0aDogMjY1cHg7XFxuICBib3gtc2hhZG93OiA0cHggNHB4IDQwcHggcmdiYSgwLCA1MCwgNzYsIDAuMik7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XFxuLnByb2ZpbGVfX2Ryb3Bkb3duW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgICB3aWR0aDogMjIwcHg7XFxufVxcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24gbGlbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duIGxpW2RhdGEtdi02ZmU1OTA1NV0gPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAuNzVyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTtcXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAuNzVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSk7XFxufVxcbi5wcm9maWxlX19kcm9wZG93biBsaVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHBhZGRpbmc6IDAuNzVyZW07XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5wcm9maWxlX19kcm9wZG93biBsaVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gICAgcGFkZGluZzogMXJlbTtcXG59XFxufVxcbi5wcm9maWxlX19kcm9wZG93biBsaSBhW2RhdGEtdi02ZmU1OTA1NV06aG92ZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwpLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duIGxpIC51c2VyLXByb2ZpbGVbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBmb250LXNpemU6IDI2cHg7XFxufVxcbi5wcm9maWxlX19kcm9wZG93biAuZHJvcGRvd25fX2xpc3RbZGF0YS12LTZmZTU5MDU1XSB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLW4tMTApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxufVxcbi5wcm9maWxlX19kcm9wZG93biAuZHJvcGRvd25fX2xpc3RbZGF0YS12LTZmZTU5MDU1XTpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLW4tMjApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24gLmRyb3Bkb3duX19saXN0IGFbZGF0YS12LTZmZTU5MDU1XSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaFtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAxLjI1cmVtO1xcbiAgei1pbmRleDogMjA7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXdoaXRlKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tYmx1ZWNvcmFsKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxuICAtLXR3LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDBweCA0cHggNDBweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xcbiAgdG9wOiA1MHB4O1xcbiAgd2lkdGg6IDI2NXB4O1xcbiAgYm94LXNoYWRvdzogNHB4IDRweCA0MHB4IHJnYmEoMCwgNTAsIDc2LCAwLjIpO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xcbi5wcm9maWxlX19kcm9wZG93bi0tdG91Y2hbZGF0YS12LTZmZTU5MDU1XSB7XFxuICAgIHdpZHRoOiAyMjBweDtcXG59XFxufVxcbi5wcm9maWxlX19kcm9wZG93bi0tdG91Y2ggbGlbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCBsaVtkYXRhLXYtNmZlNTkwNTVdID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi1yaWdodDogY2FsYygwLjc1cmVtICogdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7XFxuICBtYXJnaW4tbGVmdDogY2FsYygwLjc1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24tLXRvdWNoIGxpW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgcGFkZGluZzogMC43NXJlbTtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCBsaVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gICAgcGFkZGluZzogMXJlbTtcXG59XFxufVxcbi5wcm9maWxlX19kcm9wZG93bi0tdG91Y2ggbGkgYVtkYXRhLXYtNmZlNTkwNTVdOmhvdmVyIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tYmx1ZWNvcmFsKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbi5wcm9maWxlX19kcm9wZG93bi0tdG91Y2ggbGkgLnVzZXItcHJvZmlsZVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIGZvbnQtc2l6ZTogMjZweDtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCAuZHJvcGRvd25fX2xpc3RbZGF0YS12LTZmZTU5MDU1XSB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLW4tMTApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxufVxcbi5wcm9maWxlX19kcm9wZG93bi0tdG91Y2ggLmRyb3Bkb3duX19saXN0W2RhdGEtdi02ZmU1OTA1NV06aG92ZXIge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1uLTIwKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwpLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCAuZHJvcGRvd25fX2xpc3QgYVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xcbn1cXG4uZHJvcGRvd24tYnRuOmhvdmVyIC5wcm9maWxlX19kcm9wZG93bltkYXRhLXYtNmZlNTkwNTVdLCBcXG4uZHJvcGRvd24tYnRuOmFjdGl2ZSAucHJvZmlsZV9fZHJvcGRvd25bZGF0YS12LTZmZTU5MDU1XSB7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgb3BhY2l0eTogMTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcXG59XFxuLmRyb3Bkb3duLWJ0bjpob3ZlciAuZHJvcGRvd25fX2Fycm93W2RhdGEtdi02ZmU1OTA1NV0sXFxuLmRyb3Bkb3duLWJ0bjphY3RpdmUgLmRyb3Bkb3duX19hcnJvd1tkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxufVxcbi5hZGQtaW1wb3J0W2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4uYWRkLWltcG9ydC1kcm9wZG93bltkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5hZGQtaW1wb3J0OmhvdmVyIC5hZGQtaW1wb3J0LWRyb3Bkb3duW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gIG9wYWNpdHk6IDE7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxufVxcbi5zcGlubmVyW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwLjc1cmVtO1xcbiAgcmlnaHQ6IDEuNzVyZW07XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBzcGluLTZmZTU5MDU1IHtcXG50byB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxufVxcbn1cXG5Aa2V5ZnJhbWVzIHNwaW4tNmZlNTkwNTUge1xcbnRvIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG59XFxufVxcbi5zcGlubmVyW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4tNmZlNTkwNTUgMXMgbGluZWFyIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHNwaW4tNmZlNTkwNTUgMXMgbGluZWFyIGluZmluaXRlO1xcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xcbiAgYm9yZGVyLXdpZHRoOiAycHg7XFxuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbi0xMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAwLjA1O1xcbiAgd2lkdGg6IDE1cHg7XFxuICBoZWlnaHQ6IDE1cHg7XFxuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0FkbWluSGVhZGVyLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFDQTtFQUNFLGVBQUE7RUFDQSxZQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7QUFBRjtBQUVFO0VBQ0UsYUFBQTtBQUFKO0FBR007RUFBQSxvQkFBQTtFQUFBLGlEQUFBO0FBQUE7QUFHQTtFQUFBLGFBQUE7QUFBQTtBQUlGO0FBREY7SUFFSSxhQUFBO0FBREo7QUFDRjtBQUlJO0VBQUEsYUFBQTtFQUFBLG1CQUFBO0FBQUE7QUFJRjtFQUFBLGtCQUFBO0VBQUEsU0FBQTtFQUFBLFdBQUE7RUFDQSxnQ0FBQTtBQURBO0FBSUE7RUFBQSxrQkFBQTtFQUFBLGtCQUFBO0VBQUEsY0FBQTtFQUFBLFdBQUE7RUFBQSxrQkFBQTtFQUFBLDBEQUFBO0VBQUEsZ0JBQUE7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxxREFBQTtFQUFBLFVBQUE7RUFBQSw0Q0FBQTtFQUFBLHdEQUFBO0VBQUEsdUdBQUE7RUFBQSwwQkFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLGFBQUE7QUFBQTtBQUFBO0FBREY7RUFFRSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDZDQUFBO0FBQUY7QUFFRTtBQU5GO0lBT0ksWUFBQTtBQUNGO0FBQ0Y7QUFFSTtFQUFBLGFBQUE7RUFBQSxtQkFBQTtBQUFBO0FBQUE7RUFBQSx1QkFBQTtFQUFBLHVEQUFBO0VBQUEsZ0VBQUE7QUFBQTtBQUFBO0VBQUEsZ0JBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxhQUFBO0FBQUE7QUFBQTtBQUVFO0VBQUEsb0JBQUE7RUFBQSxxREFBQTtBQUFBO0FBRUY7RUFDRSxlQUFBO0FBRU47QUFFSTtFQUFBLGtCQUFBO0VBQUEseURBQUE7QUFBQTtBQUFBO0VBQUEsa0JBQUE7RUFBQSx5REFBQTtFQUFBLG9CQUFBO0VBQUEscURBQUE7QUFBQTtBQUVFO0VBQUEsMEJBQUE7QUFBQTtBQUtKO0VBQUEsa0JBQUE7RUFBQSxjQUFBO0VBQUEsV0FBQTtFQUFBLGtCQUFBO0VBQUEsMERBQUE7RUFBQSxnQkFBQTtFQUFBLG1CQUFBO0VBQUEsb0JBQUE7RUFBQSxvQkFBQTtFQUFBLHFEQUFBO0VBQUEsNENBQUE7RUFBQSx3REFBQTtFQUFBLHVHQUFBO0VBQUEsMEJBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLDZDQUFBO0FBSEE7QUFLQTtBQU5GO0lBT0ksWUFBQTtBQUVGO0FBQ0Y7QUFDSTtFQUFBLGFBQUE7RUFBQSxtQkFBQTtBQUFBO0FBQUE7RUFBQSx1QkFBQTtFQUFBLHVEQUFBO0VBQUEsZ0VBQUE7QUFBQTtBQUFBO0VBQUEsZ0JBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxhQUFBO0FBQUE7QUFBQTtBQUVFO0VBQUEsb0JBQUE7RUFBQSxxREFBQTtBQUFBO0FBRUY7RUFDRSxlQUFBO0FBR047QUFDSTtFQUFBLGtCQUFBO0VBQUEseURBQUE7QUFBQTtBQUFBO0VBQUEsa0JBQUE7RUFBQSx5REFBQTtFQUFBLG9CQUFBO0VBQUEscURBQUE7QUFBQTtBQUVFO0VBQUEsMEJBQUE7QUFBQTtBQU9GOztFQUFBLG1CQUFBO0VBQUEsVUFBQTtFQUNBLDJCQUFBO0FBREE7QUFHRjs7RUFDRSx5QkFBQTtBQUVKO0FBQ0E7RUFDRSxlQUFBO0FBRUY7QUFBQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtBQUdGO0FBREE7RUFDRSxtQkFBQTtFQUNBLFVBQUE7RUFDQSx3QkFBQTtBQUlGO0FBQUU7RUFBQSxrQkFBQTtFQUFBLFlBQUE7RUFBQSxjQUFBO0VBQUEscUJBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSx5QkFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEseUJBQUE7QUFBQTtBQUFBO0FBQUE7RUFBQSxtREFBQTtVQUFBLDJDQUFBO0VBQUEscUJBQUE7RUFBQSxpQkFBQTtFQUFBLHlEQUFBO0VBQUEseUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0FBSEFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLmFjdGl2aXR5X19oZWFkZXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgd2lkdGg6IDEwMHZ3O1xcbiAgdG9wOiAwcHg7XFxuICB6LWluZGV4OiAxMDA7XFxuXFxuICBuYXYge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcblxcbiAgICBhOmhvdmVyIHtcXG4gICAgICBAYXBwbHkgdGV4dC13aGl0ZTtcXG4gICAgfVxcbiAgICB1bCB7XFxuICAgICAgQGFwcGx5IGZsZXg7XFxuICAgIH1cXG4gIH1cXG4gIC5hZGQtYnRuIHtcXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzc1cHgpIHtcXG4gICAgICBkaXNwbGF5OiBub25lO1xcbiAgICB9XFxuICB9XFxuICAudXNlci1uYXYge1xcbiAgICBAYXBwbHkgZmxleCBpdGVtcy1jZW50ZXI7XFxuICB9XFxufVxcbi50b2FzdCB7XFxuICBAYXBwbHkgYWJzb2x1dGUgIGxlZnQtMi80IHotNTA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duIHtcXG4gIEBhcHBseSBpbnZpc2libGUgYWJzb2x1dGUgcmlnaHQtMyB6LTIwIGJnLXdoaXRlIHRleHQtbGVmdCB0ZXh0LXNtIHRleHQtYmx1ZWNvcmFsIG9wYWNpdHktMCBzaGFkb3ctZHJvcGRvd24gZHVyYXRpb24tMzAwIHNtOnJpZ2h0LTEwO1xcbiAgdG9wOiA1MHB4O1xcbiAgd2lkdGg6IDI2NXB4O1xcbiAgYm94LXNoYWRvdzogNHB4IDRweCA0MHB4IHJnYmEoMCwgNTAsIDc2LCAwLjIpO1xcblxcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcXG4gICAgd2lkdGg6IDIyMHB4O1xcbiAgfVxcblxcbiAgbGkge1xcbiAgICBAYXBwbHkgZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0zIHAtMyBzbTpwLTQ7XFxuICAgIGE6aG92ZXIge1xcbiAgICAgIEBhcHBseSB0ZXh0LWJsdWVjb3JhbDtcXG4gICAgfVxcbiAgICAudXNlci1wcm9maWxlIHtcXG4gICAgICBmb250LXNpemU6IDI2cHg7XFxuICAgIH1cXG4gIH1cXG4gIC5kcm9wZG93bl9fbGlzdCB7XFxuICAgIEBhcHBseSBiZy1uLTEwIGhvdmVyOmJnLW4tMjAgaG92ZXI6dGV4dC1ibHVlY29yYWw7XFxuICAgIGEge1xcbiAgICAgIEBhcHBseSBjYXBpdGFsaXplO1xcbiAgICB9XFxuICB9XFxufVxcbi5wcm9maWxlX19kcm9wZG93bi0tdG91Y2gge1xcbiAgQGFwcGx5IGFic29sdXRlICByaWdodC01IHotMjAgYmctd2hpdGUgdGV4dC1sZWZ0IHRleHQtc20gdGV4dC1ibHVlY29yYWwgc2hhZG93LWRyb3Bkb3duICBkdXJhdGlvbi0zMDA7XFxuICB0b3A6IDUwcHg7XFxuICB3aWR0aDogMjY1cHg7XFxuICBib3gtc2hhZG93OiA0cHggNHB4IDQwcHggcmdiYSgwLCA1MCwgNzYsIDAuMik7XFxuXFxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xcbiAgICB3aWR0aDogMjIwcHg7XFxuICB9XFxuXFxuICBsaSB7XFxuICAgIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTMgcC0zIHNtOnAtNDtcXG4gICAgYTpob3ZlciB7XFxuICAgICAgQGFwcGx5IHRleHQtYmx1ZWNvcmFsO1xcbiAgICB9XFxuICAgIC51c2VyLXByb2ZpbGUge1xcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcXG4gICAgfVxcbiAgfVxcbiAgLmRyb3Bkb3duX19saXN0IHtcXG4gICAgQGFwcGx5IGJnLW4tMTAgaG92ZXI6Ymctbi0yMCBob3Zlcjp0ZXh0LWJsdWVjb3JhbDtcXG4gICAgYSB7XFxuICAgICAgQGFwcGx5IGNhcGl0YWxpemU7XFxuICAgIH1cXG4gIH1cXG59XFxuLmRyb3Bkb3duLWJ0bjpob3ZlcixcXG4uZHJvcGRvd24tYnRuOmFjdGl2ZSB7XFxuICAucHJvZmlsZV9fZHJvcGRvd24ge1xcbiAgICBAYXBwbHkgdmlzaWJsZSBvcGFjaXR5LTEwMDtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xcbiAgfVxcbiAgLmRyb3Bkb3duX19hcnJvdyB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxuICB9XFxufVxcbi5hZGQtaW1wb3J0IHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLmFkZC1pbXBvcnQtZHJvcGRvd24ge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLmFkZC1pbXBvcnQ6aG92ZXIgLmFkZC1pbXBvcnQtZHJvcGRvd24ge1xcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gIG9wYWNpdHk6IDE7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxufVxcblxcbi5zcGlubmVyIHtcXG4gIEBhcHBseSBhYnNvbHV0ZSB0b3AtMyByaWdodC03IGlubGluZS1ibG9jayBhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci1uLTEwIGJvcmRlci1vcGFjaXR5LTU7XFxuICB3aWR0aDogMTVweDtcXG4gIGhlaWdodDogMTVweDtcXG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuYWxlcnRbZGF0YS12LWI3N2IxMWQ0XSB7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1jYW1lbC0xMCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHBhZGRpbmc6IDFyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxuICBsaW5lLWhlaWdodDogMS42MjU7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNTApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKVxcbn1cXG4uYWxlcnRfX2NvbnRhaW5lcltkYXRhLXYtYjc3YjExZDRdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbVxcbn1cXG4uYWxlcnRfX2NvbnRlbnRbZGF0YS12LWI3N2IxMWQ0XSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxcbn1cXG4uYWxlcnRfX2NvbnRlbnRbZGF0YS12LWI3N2IxMWQ0XSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS14LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpKVxcbn1cXG4uYWxlcnRfX2NvbnRlbnQgc3BhbltkYXRhLXYtYjc3YjExZDRdIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNTApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKVxcbn1cXG4uYWxlcnRfX21lc3NhZ2VbZGF0YS12LWI3N2IxMWQ0XSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxcbn1cXG4uYWxlcnRfX21lc3NhZ2VbZGF0YS12LWI3N2IxMWQ0XSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS14LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMC4yNXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMC4yNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpKVxcbn1cXG4udGV4dC1zaG93W2RhdGEtdi1iNzdiMTFkNF0ge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXJcXG59XFxuLnRleHQtc2hvd1tkYXRhLXYtYjc3YjExZDRdID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi1yaWdodDogY2FsYygwLjVyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTtcXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAuNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpKVxcbn1cXG4udGV4dC1zaG93W2RhdGEtdi1iNzdiMTFkNF0ge1xcbiAgb3BhY2l0eTogMDtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwcHgsIDMwcHgpXFxufVxcbi50ZXh0LWhpZGVbZGF0YS12LWI3N2IxMWQ0XSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLS10dy10cmFuc2xhdGUteTogLTBweDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxcbn1cXG4udGV4dC1oaWRlW2RhdGEtdi1iNzdiMTFkNF0gPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMC41cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpXFxufVxcbi50ZXh0LWhpZGVbZGF0YS12LWI3N2IxMWQ0XSB7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtc1xcbn1cXG4uYm9yZGVyLWhpZGVbZGF0YS12LWI3N2IxMWQ0XTo6YmVmb3JlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDBweDtcXG4gIHRvcDogMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tc2FsbW9uLTUwKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICB3aWR0aDogMnB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpXFxufVxcbi5ib3JkZXItc2hvd1tkYXRhLXYtYjc3YjExZDRdOjpiZWZvcmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMHB4O1xcbiAgdG9wOiAwcHg7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1zYWxtb24tNTApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG4gIHdpZHRoOiAycHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSlcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Vycm9yTWVzc2FnZS52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUU7RUFBQSxzQkFBQTtFQUFBLGtCQUFBO0VBQUEsNkRBQUE7RUFBQSxhQUFBO0VBQUEscUJBQUE7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsa0JBQUE7RUFBQSxvQkFBQTtFQUFBO0FBQUE7QUFHRTtFQUFBLGFBQUE7RUFBQSxzQkFBQTtFQUFBO0FBQUE7QUFHQTtFQUFBLGFBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQSx1QkFBQTtFQUFBLG9EQUFBO0VBQUE7QUFBQTtBQUdFO0VBQUEsbUJBQUE7RUFBQSxvQkFBQTtFQUFBLGdCQUFBO0VBQUEsb0JBQUE7RUFBQTtBQUFBO0FBSUY7RUFBQSxhQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUEsdUJBQUE7RUFBQSx1REFBQTtFQUFBO0FBQUE7QUFJRjtFQUFBLGtCQUFBO0VBQUEsYUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBLHVCQUFBO0VBQUEsc0RBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQSxVQUFBO0VBQUEsMEJBQUE7RUFDQTtBQURBO0FBSUE7RUFBQSxhQUFBO0VBQUEsc0JBQUE7RUFBQSwrTEFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBLHVCQUFBO0VBQUEsc0RBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQTtBQUFBO0FBR0E7RUFBQSxrQkFBQTtFQUFBLFNBQUE7RUFBQSxRQUFBO0VBQUEsc0JBQUE7RUFBQSxrQkFBQTtFQUFBLDhEQUFBO0VBQUEsMEJBQUE7RUFBQSxzREFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBO0FBSkE7QUFPQTtFQUFBLGtCQUFBO0VBQUEsU0FBQTtFQUFBLFFBQUE7RUFBQSxzQkFBQTtFQUFBLGtCQUFBO0VBQUEsOERBQUE7RUFBQSwwQkFBQTtFQUFBLHNEQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0E7QUFKQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4uYWxlcnQge1xcbiAgQGFwcGx5IHJvdW5kZWQgYmctY2FtZWwtMTAgcC00IHByLTYgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgdGV4dC1uLTUwO1xcblxcbiAgJl9fY29udGFpbmVyIHtcXG4gICAgQGFwcGx5IGZsZXggZmxleC1jb2wgbGVhZGluZy02O1xcbiAgfVxcbiAgJl9fY29udGVudCB7XFxuICAgIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTQ7XFxuXFxuICAgIHNwYW4ge1xcbiAgICAgIEBhcHBseSB0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LW4tNTA7XFxuICAgIH1cXG4gIH1cXG4gICZfX21lc3NhZ2Uge1xcbiAgICBAYXBwbHkgZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xO1xcbiAgfVxcbn1cXG4udGV4dC1zaG93IHtcXG4gIEBhcHBseSBpbnZpc2libGUgZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIG9wYWNpdHktMCBkdXJhdGlvbi0zMDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTBweCwgMzBweCk7XFxufVxcbi50ZXh0LWhpZGUge1xcbiAgQGFwcGx5IGZsZXggLXRyYW5zbGF0ZS15LTAgaXRlbXMtY2VudGVyIHNwYWNlLXgtMiBkdXJhdGlvbi0zMDA7XFxufVxcbi5ib3JkZXItaGlkZTo6YmVmb3JlIHtcXG4gIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgcm91bmRlZCBiZy1zYWxtb24tNTAgZHVyYXRpb24tMzAwIGVhc2Utb3V0O1xcbiAgd2lkdGg6IDJweDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcXG59XFxuLmJvcmRlci1zaG93OjpiZWZvcmUge1xcbiAgQGFwcGx5IGFic29sdXRlIGxlZnQtMCB0b3AtMCByb3VuZGVkIGJnLXNhbG1vbi01MCBkdXJhdGlvbi0zMDAgZWFzZS1vdXQ7XFxuICB3aWR0aDogMnB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuaGVscCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5oZWxwX190ZXh0IHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMXJlbTtcXG4gIHotaW5kZXg6IDIwO1xcbn1cXG4uaGVscF9fdGV4dCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tdG9wOiBjYWxjKDAuMzc1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygwLjM3NXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xcbn1cXG4uaGVscF9fdGV4dCB7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1lZ2dzaGVsbCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHBhZGRpbmc6IDFyZW07XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDFyZW07XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNDApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG4gIG9wYWNpdHk6IDA7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyMDBtcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG59XFxuLmhlbHBfX3RleHQgcCBhIHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcbi5oZWxwOmhvdmVyIC5oZWxwX190ZXh0IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgNXB4KTtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XFxuLmhlbHA6aG92ZXIgLmhlbHBfX3RleHQge1xcbiAgICB3aWR0aDogMjAwcHg7XFxufVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLGtCQUFBO0FBQUE7QUFHRTtFQUFBLGtCQUFBO0VBQUEsa0JBQUE7RUFBQSxTQUFBO0VBQUEsV0FBQTtBQUFBO0FBQUE7RUFBQSx1QkFBQTtFQUFBLGdFQUFBO0VBQUEseURBQUE7QUFBQTtBQUFBO0VBQUEsc0JBQUE7RUFBQSxrQkFBQTtFQUFBLDZEQUFBO0VBQUEsYUFBQTtFQUFBLGdCQUFBO0VBQUEsa0JBQUE7RUFBQSxpQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7RUFBQSxVQUFBO0VBQUEsMEJBQUE7RUFDQSw2QkFBQTtFQUNBLDJDQUFBO0FBRkE7QUFJQTtFQUNFLGdCQUFBO0FBQU47QUFNRTtFQUNFLDhCQUFBO0VBQ0EsbUJBQUE7RUFDQSxVQUFBO0FBSEo7QUFJSTtBQUpGO0lBS0ksWUFBQTtBQURKO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLmhlbHAge1xcbiAgQGFwcGx5IHJlbGF0aXZlO1xcblxcbiAgJl9fdGV4dCB7XFxuICAgIEBhcHBseSBpbnZpc2libGUgYWJzb2x1dGUgdG9wLTQgei0yMCBzcGFjZS15LTEuNSByb3VuZGVkIGJnLWVnZ3NoZWxsIHAtNCB0ZXh0LWxlZnQgdGV4dC14cyB0ZXh0LW4tNDAgb3BhY2l0eS0wIGR1cmF0aW9uLTIwMDtcXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XFxuICAgIGJveC1zaGFkb3c6IDBweCA0cHggNDBweCByZ2IoMCAwIDAgLyAxMCUpO1xcblxcbiAgICBwIGEge1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuLmhlbHA6aG92ZXIge1xcbiAgLmhlbHBfX3RleHQge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDVweCk7XFxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcXG4gICAgICB3aWR0aDogMjAwcHg7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLm92ZXJsYXkge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgbGVmdDogMHB4O1xcbiAgdG9wOiAwcHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJTtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tYmxhY2spLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBvcGFjaXR5OiAwLjc7XFxuICB6LWluZGV4OiAxMDBcXG59XFxuLm92ZXJsYXlfX2lubmVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDBweDtcXG4gIHRvcDogMHB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCVcXG59XFxuLm92ZXJsYXlfX2NvbnRlbnQge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogNTAlO1xcbiAgdG9wOiA1MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKVxcbn1cXG4ub3ZlcmxheV9fY29udGVudCAuc3Bpbm5lciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xcbnRvIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKVxcbn1cXG59XFxuQGtleWZyYW1lcyBzcGluIHtcXG50byB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZylcXG59XFxufVxcbi5vdmVybGF5X19jb250ZW50IC5zcGlubmVyIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcXG4gIGJvcmRlci13aWR0aDogMnB4O1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLW4tMTApLCB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpO1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMC4wNTtcXG4gIHdpZHRoOiA3NXB4O1xcbiAgaGVpZ2h0OiA3NXB4O1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGVcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0xvYWRlci52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUU7RUFBQSxlQUFBO0VBQUEsU0FBQTtFQUFBLFFBQUE7RUFBQSxZQUFBO0VBQUEsV0FBQTtFQUFBLGtCQUFBO0VBQUEsMERBQUE7RUFDQSxZQUFBO0VBQ0E7QUFGQTtBQUtFO0VBQUEsa0JBQUE7RUFBQSxTQUFBO0VBQUEsUUFBQTtFQUFBLFlBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQSxrQkFBQTtFQUFBLFNBQUE7RUFBQSxRQUFBO0VBQ0E7QUFEQTtBQUlFO0VBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUE7QUFBQTtBQUFBO0FBQUE7RUFBQSwwQ0FBQTtVQUFBLGtDQUFBO0VBQUEscUJBQUE7RUFBQSxpQkFBQTtFQUFBLHlEQUFBO0VBQUEseUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBO0FBSEFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLm92ZXJsYXkge1xcbiAgQGFwcGx5IGZpeGVkIGxlZnQtMCB0b3AtMCBoLWZ1bGwgdy1mdWxsIGJnLWJsYWNrO1xcbiAgb3BhY2l0eTogMC43O1xcbiAgei1pbmRleDogMTAwO1xcblxcbiAgJl9faW5uZXIge1xcbiAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0wIHRvcC0wIGgtZnVsbCB3LWZ1bGw7XFxuICB9XFxuXFxuICAmX19jb250ZW50IHtcXG4gICAgQGFwcGx5IGFic29sdXRlIGxlZnQtMi80IHRvcC0yLzQ7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcblxcbiAgICAuc3Bpbm5lciB7XFxuICAgICAgQGFwcGx5IGlubGluZS1ibG9jayBhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci1uLTEwIGJvcmRlci1vcGFjaXR5LTU7XFxuICAgICAgd2lkdGg6IDc1cHg7XFxuICAgICAgaGVpZ2h0OiA3NXB4O1xcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5tb2RhbC1hbmltYXRpb24tZW50ZXItYWN0aXZlW2RhdGEtdi01YTJiZGE1OF0sXFxuLm1vZGFsLWFuaW1hdGlvbi1sZWF2ZS1hY3RpdmVbZGF0YS12LTVhMmJkYTU4XSB7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgY3ViaWMtYmV6aWVyKDAuNTIsIDAuMDIsIDAuMTksIDEuMDIpO1xcbn1cXG4ubW9kYWwtYW5pbWF0aW9uLWVudGVyLWZyb21bZGF0YS12LTVhMmJkYTU4XSxcXG4ubW9kYWwtYW5pbWF0aW9uLWxlYXZlLXRvW2RhdGEtdi01YTJiZGE1OF0ge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLm1vZGFsLWFuaW1hdGlvbi1pbm5lci1lbnRlci1hY3RpdmVbZGF0YS12LTVhMmJkYTU4XSB7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBjdWJpYy1iZXppZXIoMC41MiwgMC4wMiwgMC4xOSwgMS4wMikgMC4xNXM7XFxufVxcbi5tb2RhbC1hbmltYXRpb24taW5uZXItbGVhdmUtYWN0aXZlW2RhdGEtdi01YTJiZGE1OF0ge1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgY3ViaWMtYmV6aWVyKDAuNTIsIDAuMDIsIDAuMTksIDEuMDIpO1xcbn1cXG4ubW9kYWwtYW5pbWF0aW9uLWlubmVyLWVudGVyLWZyb21bZGF0YS12LTVhMmJkYTU4XSB7XFxuICBvcGFjaXR5OiAwO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbn1cXG4ubW9kYWwtYW5pbWF0aW9uLWlubmVyLWxlYXZlLXRvW2RhdGEtdi01YTJiZGE1OF0ge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUG9wdXBNb2RhbC52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQ0E7O0VBRUUsNkRBQUE7QUFBRjtBQUdBOztFQUVFLFVBQUE7QUFBRjtBQUdBO0VBQ0UsK0RBQUE7QUFBRjtBQUdBO0VBQ0UseURBQUE7QUFBRjtBQUdBO0VBQ0UsVUFBQTtFQUNBLHFCQUFBO0FBQUY7QUFHQTtFQUNFLHFCQUFBO0FBQUZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLm1vZGFsLWFuaW1hdGlvbi1lbnRlci1hY3RpdmUsXFxuLm1vZGFsLWFuaW1hdGlvbi1sZWF2ZS1hY3RpdmUge1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGN1YmljLWJlemllcigwLjUyLCAwLjAyLCAwLjE5LCAxLjAyKTtcXG59XFxuXFxuLm1vZGFsLWFuaW1hdGlvbi1lbnRlci1mcm9tLFxcbi5tb2RhbC1hbmltYXRpb24tbGVhdmUtdG8ge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuXFxuLm1vZGFsLWFuaW1hdGlvbi1pbm5lci1lbnRlci1hY3RpdmUge1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgY3ViaWMtYmV6aWVyKDAuNTIsIDAuMDIsIDAuMTksIDEuMDIpIDAuMTVzO1xcbn1cXG5cXG4ubW9kYWwtYW5pbWF0aW9uLWlubmVyLWxlYXZlLWFjdGl2ZSB7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBjdWJpYy1iZXppZXIoMC41MiwgMC4wMiwgMC4xOSwgMS4wMik7XFxufVxcblxcbi5tb2RhbC1hbmltYXRpb24taW5uZXItZW50ZXItZnJvbSB7XFxuICBvcGFjaXR5OiAwO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbn1cXG5cXG4ubW9kYWwtYW5pbWF0aW9uLWlubmVyLWxlYXZlLXRvIHtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLnNoaW1tZXJfX2Jsb2NrW2RhdGEtdi03NDM1NjE3Ml0ge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzO1xcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcXG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHBsYWNlSG9sZGVyU2hpbW1lci03NDM1NjE3MjtcXG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHBsYWNlSG9sZGVyU2hpbW1lci03NDM1NjE3MjtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC41cztcXG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2VkZWRlZCAxNC4zNiUsICNkN2Q2ZDYgNTYuMjklLCAjZWRlZGVkIDEwMCUpO1xcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gIGJhY2tncm91bmQtc2l6ZTogMjQ0cHggMTA0cHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDE5cHg7XFxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXJnaW46IDNweCA2cHggM3B4IDBweDtcXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHBsYWNlSG9sZGVyU2hpbW1lci03NDM1NjE3MiB7XFxuMCUge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDAlIC0gMzAwcHgpIDA7XFxufVxcbjIwJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMCUgLSAzMDBweCkgMDtcXG59XFxuODAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlICsgMzAwcHgpIDA7XFxufVxcbjEwMCUge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgKyAzMDBweCkgMDtcXG59XFxufVxcbkBrZXlmcmFtZXMgcGxhY2VIb2xkZXJTaGltbWVyLTc0MzU2MTcyIHtcXG4wJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMCUgLSAzMDBweCkgMDtcXG59XFxuMjAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygwJSAtIDMwMHB4KSAwO1xcbn1cXG44MCUge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgKyAzMDBweCkgMDtcXG59XFxuMTAwJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSArIDMwMHB4KSAwO1xcbn1cXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFDQTtFQUNFLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSxxQ0FBQTtVQUFBLDZCQUFBO0VBQ0EsMkNBQUE7VUFBQSxtQ0FBQTtFQUNBLG1EQUFBO1VBQUEsMkNBQUE7RUFDQSx5Q0FBQTtVQUFBLGlDQUFBO0VBQ0EsNkJBQUE7VUFBQSxxQkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0ZBQUE7RUFDQSw0QkFBQTtFQUNBLDRCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsdUJBQUE7QUFBRjtBQUdBO0FBQ0U7SUFDRSx1Q0FBQTtBQUFGO0FBR0E7SUFDRSx1Q0FBQTtBQURGO0FBSUE7SUFDRSx5Q0FBQTtBQUZGO0FBS0E7SUFDRSx5Q0FBQTtBQUhGO0FBQ0Y7QUFaQTtBQUNFO0lBQ0UsdUNBQUE7QUFBRjtBQUdBO0lBQ0UsdUNBQUE7QUFERjtBQUlBO0lBQ0UseUNBQUE7QUFGRjtBQUtBO0lBQ0UseUNBQUE7QUFIRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbi5zaGltbWVyX19ibG9jayB7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gIGFuaW1hdGlvbi1uYW1lOiBwbGFjZUhvbGRlclNoaW1tZXI7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XFxuICBhbmltYXRpb24tZGVsYXk6IDAuNXM7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZWRlZGVkIDE0LjM2JSwgI2Q3ZDZkNiA1Ni4yOSUsICNlZGVkZWQgMTAwJSk7XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1zaXplOiAyNDRweCAxMDRweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMTlweDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1hcmdpbjogM3B4IDZweCAzcHggMHB4O1xcbn1cXG5cXG5Aa2V5ZnJhbWVzIHBsYWNlSG9sZGVyU2hpbW1lciB7XFxuICAwJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMCUgLSAzMDBweCkgMDtcXG4gIH1cXG5cXG4gIDIwJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMCUgLSAzMDBweCkgMDtcXG4gIH1cXG5cXG4gIDgwJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSArIDMwMHB4KSAwO1xcbiAgfVxcblxcbiAgMTAwJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSArIDMwMHB4KSAwO1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuZXJyb3JzW2RhdGEtdi1mNjdjN2U3Ml0ge1xcbiAgICBib3JkZXItbGVmdC13aWR0aDogMnB4XFxufVxcbi5lcnJvcnNfX2hlYWRbZGF0YS12LWY2N2M3ZTcyXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgcGFkZGluZzogMXJlbVxcbn1cXG4uZXJyb3JzX19oZWFkLS10aXRsZVtkYXRhLXYtZjY3YzdlNzJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1ncm93OiAxO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNjI1XFxufVxcbi5lcnJvcnNfX2xpc3RbZGF0YS12LWY2N2M3ZTcyXSB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XFxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zXFxufVxcbi5lcnJvcnNfX2xpc3QgdWxbZGF0YS12LWY2N2M3ZTcyXSB7XFxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW1cXG59XFxuLmVycm9yc19fbGlzdCBsaVtkYXRhLXYtZjY3YzdlNzJdIHtcXG4gICAgcGFkZGluZy10b3A6IDFyZW07XFxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNVxcbn1cXG4uZXJyb3JzX19saXN0IGxpW2RhdGEtdi1mNjdjN2U3Ml06bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG4gICAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLW4tMjApLCB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpXFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9FcnJvckxpc3RzLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtJQUFBO0FBQUE7QUFFRTtJQUFBLGFBQUE7SUFBQSw4QkFBQTtJQUFBO0FBQUE7QUFHRTtJQUFBLGFBQUE7SUFBQSxZQUFBO0lBQUEsbUJBQUE7SUFBQSxtQkFBQTtJQUFBLG9CQUFBO0lBQUE7QUFBQTtBQUtGO0lBQUEsV0FBQTtJQUFBLGdCQUFBO0lBQUEsa0JBQUE7SUFBQSxtQkFBQTtJQUFBLHdCQUFBO0lBQUEsd0RBQUE7SUFBQTtBQUFBO0FBRUU7SUFBQSxvQkFBQTtJQUFBO0FBQUE7QUFHQTtJQUFBLGlCQUFBO0lBQUEsb0JBQUE7SUFBQSxtQkFBQTtJQUFBLG9CQUFBO0lBQUE7QUFBQTtBQUdBO0lBQUEsd0JBQUE7SUFBQSxzQkFBQTtJQUFBO0FBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLmVycm9ycyB7XFxuICBAYXBwbHkgYm9yZGVyLWwtMjtcXG4gICZfX2hlYWQge1xcbiAgICBAYXBwbHkgZmxleCBqdXN0aWZ5LWJldHdlZW4gcC00O1xcblxcbiAgICAmLS10aXRsZSB7XFxuICAgICAgQGFwcGx5IGZsZXggZ3JvdyBpdGVtcy1jZW50ZXIgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQ7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZfX2xpc3Qge1xcbiAgICBAYXBwbHkgaC0wIG92ZXJmbG93LWhpZGRlbiBweC00IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMDtcXG4gICAgdWwge1xcbiAgICAgIEBhcHBseSBweC02O1xcbiAgICB9XFxuICAgIGxpIHtcXG4gICAgICBAYXBwbHkgcHktNCB0ZXh0LXNtIGxlYWRpbmctbm9ybWFsO1xcbiAgICB9XFxuICAgIGxpOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgIEBhcHBseSBib3JkZXItYiBib3JkZXItbi0yMDtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIucHJvZ3Jlc3NfYmFyW2RhdGEtdi01YzMyYmYwY10ge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgbGVmdDogMHB4O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS13aGl0ZSksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIGhlaWdodDogMTAwdmg7XFxufVxcbi5wcm9ncmVzc19iYXJfX3dyYXBwZXJbZGF0YS12LTVjMzJiZjBjXSB7XFxuICB3aWR0aDogMjUwcHg7XFxuICBib3JkZXItcmFkaXVzOiAxcmVtO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0YzRjNDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5wcm9ncmVzc19iYXJfX3ZpZXdlcltkYXRhLXYtNWMzMmJmMGNdIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tc3ByaW5nLTUwKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgaGVpZ2h0OiA0cHg7XFxuICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcXG59XFxuLnByb2dyZXNzX2Jhci5hbmltYXRlLWxvYWRlciAucHJvZ3Jlc3NfYmFyX192aWV3ZXJbZGF0YS12LTVjMzJiZjBjXSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogRmlsbEFuaW1hdGlvbi01YzMyYmYwYyA2cyBjdWJpYy1iZXppZXIoMC4wMSwgMS4wNiwgMC43MSwgMSkgZm9yd2FyZHM7XFxuICAgICAgICAgIGFuaW1hdGlvbjogRmlsbEFuaW1hdGlvbi01YzMyYmYwYyA2cyBjdWJpYy1iZXppZXIoMC4wMSwgMS4wNiwgMC43MSwgMSkgZm9yd2FyZHM7XFxufVxcbi5wcm9ncmVzc19iYXIuYW5pbWF0ZS1sb2FkZXIgLnByb2dyZXNzX2Jhcl9fc3RhdGVbZGF0YS12LTVjMzJiZjBjXTo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IFRleHRDaGFuZ2UtNWMzMmJmMGMgNnMgY3ViaWMtYmV6aWVyKDAuMDEsIDEuMDYsIDAuNzEsIDEpIGZvcndhcmRzO1xcbiAgICAgICAgICBhbmltYXRpb246IFRleHRDaGFuZ2UtNWMzMmJmMGMgNnMgY3ViaWMtYmV6aWVyKDAuMDEsIDEuMDYsIDAuNzEsIDEpIGZvcndhcmRzO1xcbn1cXG4ucHJvZ3Jlc3NfYmFyX19jb250ZW50W2RhdGEtdi01YzMyYmYwY10ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5wcm9ncmVzc19iYXJfX3N0YXRlW2RhdGEtdi01YzMyYmYwY10ge1xcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbC01MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgRmlsbEFuaW1hdGlvbi01YzMyYmYwYyB7XFxuMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjAyOCk7XFxufVxcbjEwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDI4KTtcXG59XFxuMjAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wMjgpO1xcbn1cXG4yNSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjI0KTtcXG59XFxuMzUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4yNCk7XFxufVxcbjQ1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMjQpO1xcbn1cXG41MCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjYyNCk7XFxufVxcbjYwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNjI0KTtcXG59XFxuNzAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC42MjQpO1xcbn1cXG43NSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjkyOCk7XFxufVxcbjg1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOTI4KTtcXG59XFxuOTUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC45MjgpO1xcbn1cXG4xMDAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XFxufVxcbn1cXG5Aa2V5ZnJhbWVzIEZpbGxBbmltYXRpb24tNWMzMmJmMGMge1xcbjAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wMjgpO1xcbn1cXG4xMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjAyOCk7XFxufVxcbjIwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDI4KTtcXG59XFxuMjUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4yNCk7XFxufVxcbjM1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMjQpO1xcbn1cXG40NSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjI0KTtcXG59XFxuNTAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC42MjQpO1xcbn1cXG42MCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjYyNCk7XFxufVxcbjcwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNjI0KTtcXG59XFxuNzUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC45MjgpO1xcbn1cXG44NSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjkyOCk7XFxufVxcbjk1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOTI4KTtcXG59XFxuMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xcbn1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIFRleHRDaGFuZ2UtNWMzMmJmMGMge1xcbjAlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTtcXG59XFxuOTUlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTtcXG59XFxuMTAwJSB7XFxuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1lbmQpO1xcbn1cXG59XFxuQGtleWZyYW1lcyBUZXh0Q2hhbmdlLTVjMzJiZjBjIHtcXG4wJSB7XFxuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zdGFydCk7XFxufVxcbjk1JSB7XFxuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zdGFydCk7XFxufVxcbjEwMCUge1xcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtZW5kKTtcXG59XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUU7RUFBQSxlQUFBO0VBQUEsU0FBQTtFQUFBLGFBQUE7RUFBQSxXQUFBO0VBQUEsbUJBQUE7RUFBQSx1QkFBQTtFQUFBLGtCQUFBO0VBQUEsMERBQUE7RUFDQSxNQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7QUFIQTtBQU1FO0VBQUEsWUFBQTtFQUFBLG1CQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtBQUZBO0FBTUE7RUFBQSxrQkFBQTtFQUFBLDhEQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxxQkFBQTtBQUpBO0FBT0Y7RUFDRSx1RkFBQTtVQUFBLCtFQUFBO0FBRko7QUFLRTtFQUNFLFdBQUE7RUFDQSxvRkFBQTtVQUFBLDRFQUFBO0FBSEo7QUFPSTtFQUFBLGFBQUE7RUFBQSxzQkFBQTtBQUFBO0FBSUE7RUFBQSxrQkFBQTtFQUFBLGtCQUFBO0VBQUEsbUJBQUE7RUFBQSxvQkFBQTtFQUFBLGdCQUFBO0VBQUEsZ0JBQUE7RUFBQSxvQkFBQTtFQUFBLHdEQUFBO0FBQUE7QUFJSjtBQUNFO0lBQ0Usd0JBQUE7QUFORjtBQVFBO0lBQ0Usd0JBQUE7QUFORjtBQVFBO0lBQ0Usd0JBQUE7QUFORjtBQVNBO0lBQ0UsdUJBQUE7QUFQRjtBQVNBO0lBQ0UsdUJBQUE7QUFQRjtBQVNBO0lBQ0UsdUJBQUE7QUFQRjtBQVVBO0lBQ0Usd0JBQUE7QUFSRjtBQVdBO0lBQ0Usd0JBQUE7QUFURjtBQVlBO0lBQ0Usd0JBQUE7QUFWRjtBQWFBO0lBQ0Usd0JBQUE7QUFYRjtBQWNBO0lBQ0Usd0JBQUE7QUFaRjtBQWVBO0lBQ0Usd0JBQUE7QUFiRjtBQWdCQTtJQUNFLG9CQUFBO0FBZEY7QUFDRjtBQWpDQTtBQUNFO0lBQ0Usd0JBQUE7QUFORjtBQVFBO0lBQ0Usd0JBQUE7QUFORjtBQVFBO0lBQ0Usd0JBQUE7QUFORjtBQVNBO0lBQ0UsdUJBQUE7QUFQRjtBQVNBO0lBQ0UsdUJBQUE7QUFQRjtBQVNBO0lBQ0UsdUJBQUE7QUFQRjtBQVVBO0lBQ0Usd0JBQUE7QUFSRjtBQVdBO0lBQ0Usd0JBQUE7QUFURjtBQVlBO0lBQ0Usd0JBQUE7QUFWRjtBQWFBO0lBQ0Usd0JBQUE7QUFYRjtBQWNBO0lBQ0Usd0JBQUE7QUFaRjtBQWVBO0lBQ0Usd0JBQUE7QUFiRjtBQWdCQTtJQUNFLG9CQUFBO0FBZEY7QUFDRjtBQWlCQTtBQUNFO0lBQ0UseUJBQUE7QUFmRjtBQWtCQTtJQUNFLHlCQUFBO0FBaEJGO0FBbUJBO0lBQ0UsdUJBQUE7QUFqQkY7QUFDRjtBQU1BO0FBQ0U7SUFDRSx5QkFBQTtBQWZGO0FBa0JBO0lBQ0UseUJBQUE7QUFoQkY7QUFtQkE7SUFDRSx1QkFBQTtBQWpCRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbi5wcm9ncmVzc19iYXIge1xcbiAgQGFwcGx5IGZpeGVkIGxlZnQtMCBmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctd2hpdGU7XFxuICB0b3A6IDA7XFxuICB6LWluZGV4OiA5OTk7XFxuICBoZWlnaHQ6IDEwMHZoO1xcblxcbiAgJl9fd3JhcHBlciB7XFxuICAgIEBhcHBseSB3LVsyNTBweF0gb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtMnhsO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGM0O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgJl9fdmlld2VyIHtcXG4gICAgQGFwcGx5IGJnLXNwcmluZy01MDtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBoZWlnaHQ6IDRweDtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XFxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcXG4gIH1cXG5cXG4gICYuYW5pbWF0ZS1sb2FkZXIgJl9fdmlld2VyIHtcXG4gICAgYW5pbWF0aW9uOiBGaWxsQW5pbWF0aW9uIDZzIGN1YmljLWJlemllcigwLjAxLCAxLjA2LCAwLjcxLCAxKSBmb3J3YXJkcztcXG4gIH1cXG5cXG4gICYuYW5pbWF0ZS1sb2FkZXIgJl9fc3RhdGU6OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICBhbmltYXRpb246IFRleHRDaGFuZ2UgNnMgY3ViaWMtYmV6aWVyKDAuMDEsIDEuMDYsIDAuNzEsIDEpIGZvcndhcmRzO1xcbiAgfVxcblxcbiAgJl9fY29udGVudCB7XFxuICAgIEBhcHBseSBmbGV4IGZsZXgtY29sO1xcbiAgfVxcblxcbiAgJl9fc3RhdGUge1xcbiAgICBAYXBwbHkgbXQtNiB0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtYm9sZCBsZWFkaW5nLW5vcm1hbCB0ZXh0LWJsdWUtNTA7XFxuICB9XFxufVxcblxcbkBrZXlmcmFtZXMgRmlsbEFuaW1hdGlvbiB7XFxuICAwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDI4KTtcXG4gIH1cXG4gIDEwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDI4KTtcXG4gIH1cXG4gIDIwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDI4KTtcXG4gIH1cXG5cXG4gIDI1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMjQpO1xcbiAgfVxcbiAgMzUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4yNCk7XFxuICB9XFxuICA0NSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjI0KTtcXG4gIH1cXG5cXG4gIDUwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNjI0KTtcXG4gIH1cXG5cXG4gIDYwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNjI0KTtcXG4gIH1cXG5cXG4gIDcwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNjI0KTtcXG4gIH1cXG5cXG4gIDc1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOTI4KTtcXG4gIH1cXG5cXG4gIDg1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOTI4KTtcXG4gIH1cXG5cXG4gIDk1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOTI4KTtcXG4gIH1cXG5cXG4gIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBUZXh0Q2hhbmdlIHtcXG4gIDAlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTtcXG4gIH1cXG5cXG4gIDk1JSB7XFxuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zdGFydCk7XFxuICB9XFxuXFxuICAxMDAlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWVuZCk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi52YWxpZGF0aW9uW2RhdGEtdi0xZTM4ZDEwZV0ge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC41cmVtO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC41cmVtO1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKVxcbn1cXG4udmFsaWRhdGlvbl9fZXJyb3JIZWFkW2RhdGEtdi0xZTM4ZDEwZV0ge1xcbiAgd2lkdGg6IDIxMnB4O1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1jcmltc29uLTIwKSwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tY3JpbXNvbi0xMCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIGJveC1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSlcXG59XFxuLnZhbGlkYXRpb25fX2Vycm9yc1tkYXRhLXYtMWUzOGQxMGVdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMHB4O1xcbiAgcmlnaHQ6IDBweDtcXG4gIHotaW5kZXg6IDEwO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHdpZHRoOiA0MjRweDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS13aGl0ZSksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXdoaXRlKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpXFxufVxcbi52YWxpZGF0aW9uX19oZWFkaW5nW2RhdGEtdi0xZTM4ZDEwZV0ge1xcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcXG4gIHBhZGRpbmctdG9wOiAwLjc1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW1cXG59XFxuLnZhbGlkYXRpb25fX2Vycm9ycy1saXN0W2RhdGEtdi0xZTM4ZDEwZV0ge1xcbiAgZmxleC1ncm93OiAxO1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIHBhZGRpbmctbGVmdDogMXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XFxuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtXFxufVxcbi52YWxpZGF0aW9uX190b2dnbGVbZGF0YS12LTFlMzhkMTBlXSB7XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICBsaW5lLWhlaWdodDogMXJlbTtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwtNTApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvU3RpY2t5RXJyb3JzLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLDhCQUFBO0VBQUEsaUNBQUE7RUFBQSxpQkFBQTtFQUFBLHdCQUFBO0VBQUEsd0RBQUE7RUFBQSwwQkFBQTtFQUNBO0FBREE7QUFJRTtFQUFBLFlBQUE7RUFBQSxzQkFBQTtFQUFBLCtEQUFBO0VBQUEsa0JBQUE7RUFBQSwrREFBQTtFQUNBO0FBREE7QUFLQTtFQUFBLGtCQUFBO0VBQUEsUUFBQTtFQUFBLFVBQUE7RUFBQSxXQUFBO0VBQUEsYUFBQTtFQUFBLFlBQUE7RUFBQSxzQkFBQTtFQUFBLGdCQUFBO0VBQUEsc0JBQUE7RUFBQSwwREFBQTtFQUFBLGtCQUFBO0VBQUEsMERBQUE7RUFDQTtBQURBO0FBS0E7RUFBQSxrQkFBQTtFQUFBLG1CQUFBO0VBQUEsb0JBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQSxZQUFBO0VBQUEsZ0JBQUE7RUFBQSxrQkFBQTtFQUFBLG1CQUFBO0VBQUEsb0JBQUE7RUFBQTtBQUFBO0FBSUE7RUFBQSxrQkFBQTtFQUFBLGlCQUFBO0VBQUEseUJBQUE7RUFBQSxnQkFBQTtFQUFBLG9CQUFBO0VBQUE7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4udmFsaWRhdGlvbiB7XFxuICBAYXBwbHkgcm91bmRlZC10bC1sZyByb3VuZGVkLWJsLWxnIGJvcmRlciB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi01MDA7XFxuICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xcblxcbiAgJl9fZXJyb3JIZWFkIHtcXG4gICAgQGFwcGx5IHctWzIxMnB4XSBib3JkZXItY3JpbXNvbi0yMCBiZy1jcmltc29uLTEwO1xcbiAgICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgfVxcblxcbiAgJl9fZXJyb3JzIHtcXG4gICAgQGFwcGx5IGFic29sdXRlIHRvcC0wIHJpZ2h0LTAgei0xMCBmbGV4IHctWzQyNHB4XSBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW4gYm9yZGVyLXdoaXRlIGJnLXdoaXRlO1xcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweCk7XFxuICB9XFxuXFxuICAmX19oZWFkaW5nIHtcXG4gICAgQGFwcGx5IHB4LTQgcHktMztcXG4gIH1cXG5cXG4gICZfX2Vycm9ycy1saXN0IHtcXG4gICAgQGFwcGx5IGdyb3cgb3ZlcmZsb3cteS1hdXRvIHB4LTQgcHktMztcXG4gIH1cXG5cXG4gICZfX3RvZ2dsZSB7XFxuICAgIEBhcHBseSB0ZXh0LXhzIHVwcGVyY2FzZSBsZWFkaW5nLW5vcm1hbCB0ZXh0LWJsdWUtNTA7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5wYWdlLWhlaWdodCB7XFxuICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweCk7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlJbmRleC52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQ0E7RUFDRSw4QkFBQTtBQUFGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbi5wYWdlLWhlaWdodCB7XFxuICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweCk7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5mb3JtLWdyb3VwW2RhdGEtdi1jN2NhMjhiOF0ge1xcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLW4tMjApLCB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpO1xcbiAgcGFkZGluZzogMS4yNXJlbTtcXG59XFxuLmZvcm0tZ3JvdXBbZGF0YS12LWM3Y2EyOGI4XTpsYXN0LWNoaWxkIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcbi5mb3JtLWdyb3VwIC5mb3JtX19jb250ZW50W2RhdGEtdi1jN2NhMjhiOF0ge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIGdhcDogMjVweDtcXG59XFxuLmZvcm0tZ3JvdXAgLmZvcm1fX2NvbnRlbnQgLmxhYmVsLWZpZWxkW2RhdGEtdi1jN2NhMjhiOF0ge1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5mb3JtLWdyb3VwLXRpdGxlLWNvbnRhaW5lcltkYXRhLXYtYzdjYTI4YjhdIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuMzc1cmVtO1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxuLmZvcm0tZ3JvdXAtdGl0bGUtY29udGFpbmVyW2RhdGEtdi1jN2NhMjhiOF0gPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAuMjVyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTtcXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSk7XFxufVxcbi5mb3JtLWdyb3VwLXRpdGxlW2RhdGEtdi1jN2NhMjhiOF0ge1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDFyZW07XFxuICBmb250LXdlaWdodDogNzAwO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwpLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUU7RUFBQSxxQkFBQTtFQUFBLGlCQUFBO0VBQUEsc0JBQUE7RUFBQSx5REFBQTtFQUFBLGdCQUFBO0FBQUE7QUFFQTtFQUNFLGdCQUFBO0FBQUo7QUFHRTtFQUNFLGFBQUE7RUFDQSxTQUFBO0FBREo7QUFJTTtFQUFBLHFCQUFBO0VBQUEsYUFBQTtFQUFBLG1CQUFBO0VBQUEsOEJBQUE7QUFBQTtBQUtKO0VBQUEsdUJBQUE7RUFBQSxhQUFBO0FBQUE7QUFBQTtFQUFBLHVCQUFBO0VBQUEsdURBQUE7RUFBQSxnRUFBQTtBQUFBO0FBR0E7RUFBQSxrQkFBQTtFQUFBLGlCQUFBO0VBQUEsZ0JBQUE7RUFBQSxvQkFBQTtFQUFBLHFEQUFBO0FBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLmZvcm0tZ3JvdXAge1xcbiAgQGFwcGx5IHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1uLTIwIHAtNTtcXG5cXG4gICY6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICB9XFxuXFxuICAuZm9ybV9fY29udGVudCB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIGdhcDogMjVweDtcXG5cXG4gICAgLmxhYmVsLWZpZWxkIHtcXG4gICAgICBAYXBwbHkgbWItMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW47XFxuICAgIH1cXG4gIH1cXG59XFxuLmZvcm0tZ3JvdXAtdGl0bGUtY29udGFpbmVyIHtcXG4gIEBhcHBseSBtYi0xLjUgZmxleCBzcGFjZS14LTE7XFxufVxcbi5mb3JtLWdyb3VwLXRpdGxlIHtcXG4gIEBhcHBseSB0ZXh0LXhzIGZvbnQtYm9sZCB0ZXh0LWJsdWVjb3JhbDtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLm1pbnVzW2RhdGEtdi1kMGI4MDJkYV0ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGhlaWdodDogMC43NXJlbTtcXG4gIHdpZHRoOiAwLjc1cmVtO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLm1pbnVzW2RhdGEtdi1kMGI4MDJkYV06YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBoZWlnaHQ6IDAuMTI1cmVtO1xcbiAgd2lkdGg6IDAuNzVyZW07XFxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwtNTApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxufVxcbiNwdWJsaXNoaW5nX2FjdGl2aXRpZXNbZGF0YS12LWQwYjgwMmRhXSB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBib3R0b206IDBweDtcXG4gIHJpZ2h0OiAwcHg7XFxuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xcbn1cXG4ucm9sbGluZ1tkYXRhLXYtZDBiODAyZGFdIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4tZDBiODAyZGEge1xcbnRvIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG59XFxufVxcbkBrZXlmcmFtZXMgc3Bpbi1kMGI4MDJkYSB7XFxudG8ge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbn1cXG59XFxuLnJvbGxpbmdbZGF0YS12LWQwYjgwMmRhXSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogc3Bpbi1kMGI4MDJkYSAxcyBsaW5lYXIgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi1kMGI4MDJkYSAxcyBsaW5lYXIgaW5maW5pdGU7XFxuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbi0yMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xcbn1cXG4uY3Jvc3NbZGF0YS12LWQwYjgwMmRhXSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcXG4gIGhlaWdodDogMC43NXJlbTtcXG4gIHdpZHRoOiAwLjc1cmVtO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLmNyb3NzW2RhdGEtdi1kMGI4MDJkYV06YmVmb3JlLCAuY3Jvc3NbZGF0YS12LWQwYjgwMmRhXTphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDUwJTtcXG4gIHRvcDogMHB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBoZWlnaHQ6IDAuNzVyZW07XFxuICB3aWR0aDogMC4xMjVyZW07XFxuICAtLXR3LXRyYW5zbGF0ZS14OiAtNTAlO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwtNTApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxufVxcbi5jcm9zc1tkYXRhLXYtZDBiODAyZGFdOmJlZm9yZSB7XFxuICAtLXR3LXJvdGF0ZTogNDVkZWc7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxuLmNyb3NzW2RhdGEtdi1kMGI4MDJkYV06YWZ0ZXIge1xcbiAgLS10dy1yb3RhdGU6IC00NWRlZztcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXG4uYWN0aXZpdHktdGl0bGVbZGF0YS12LWQwYjgwMmRhXSB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9CdWxrUHVibGlzaGluZy52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUU7RUFBQSxhQUFBO0VBQUEsZUFBQTtFQUFBLGNBQUE7RUFBQSxtQkFBQTtBQUFBO0FBQ0E7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUFBLGdCQUFBO0VBQUEsY0FBQTtFQUFBLHNCQUFBO0VBQUEsa0JBQUE7RUFBQSxpRUFBQTtBQUNKO0FBSUU7RUFBQSxlQUFBO0VBQUEsV0FBQTtFQUFBLFVBQUE7RUFDQSxvREFBQTtBQURBO0FBS0E7RUFBQSxxQkFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLHlCQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSx5QkFBQTtBQUFBO0FBQUE7QUFBQTtFQUFBLG1EQUFBO1VBQUEsMkNBQUE7RUFBQSxxQkFBQTtFQUFBLGlCQUFBO0VBQUEsc0JBQUE7RUFBQSx5REFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsdUJBQUE7QUFIQTtBQU9BO0VBQUEsa0JBQUE7RUFBQSxvQkFBQTtFQUFBLGVBQUE7RUFBQSxjQUFBO0VBQUEsZ0JBQUE7QUFBQTtBQUVBO0VBRUUsV0FBQTtFQUNBLGtCQUFBO0VBQUEsU0FBQTtFQUFBLFFBQUE7RUFBQSxjQUFBO0VBQUEsZUFBQTtFQUFBLGVBQUE7RUFBQSxzQkFBQTtFQUFBLCtMQUFBO0VBQUEsc0JBQUE7RUFBQSxrQkFBQTtFQUFBLGlFQUFBO0FBREo7QUFLSTtFQUFBLGtCQUFBO0VBQUEsK0xBQUE7QUFBQTtBQUlBO0VBQUEsbUJBQUE7RUFBQSwrTEFBQTtBQUFBO0FBSUo7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7QUFKRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4ubWludXMge1xcbiAgQGFwcGx5IGZsZXggaC0zIHctMyBpdGVtcy1jZW50ZXI7XFxuICAmOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICBAYXBwbHkgYmxvY2sgaC0wLjUgdy0zIHJvdW5kZWQteGwgYmctYmx1ZS01MDtcXG4gIH1cXG59XFxuXFxuI3B1Ymxpc2hpbmdfYWN0aXZpdGllcyB7XFxuICBAYXBwbHkgZml4ZWQgYm90dG9tLTAgcmlnaHQtMDtcXG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSk7XFxufVxcblxcbi5yb2xsaW5nIHtcXG4gIEBhcHBseSBpbmxpbmUtYmxvY2sgYW5pbWF0ZS1zcGluIHJvdW5kZWQtZnVsbCBib3JkZXItMiBib3JkZXItbi0yMDtcXG4gIHdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcblxcbi5jcm9zcyB7XFxuICBAYXBwbHkgcmVsYXRpdmUgbWwtNSBoLTMgdy0zIG92ZXJmbG93LWhpZGRlbjtcXG5cXG4gICY6YmVmb3JlLFxcbiAgJjphZnRlciB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0xLzIgdG9wLTAgYmxvY2sgaC0zIHctMC41IC10cmFuc2xhdGUteC0xLzIgcm91bmRlZC14bCBiZy1ibHVlLTUwO1xcbiAgfVxcblxcbiAgJjpiZWZvcmUge1xcbiAgICBAYXBwbHkgcm90YXRlLTQ1O1xcbiAgfVxcblxcbiAgJjphZnRlciB7XFxuICAgIEBhcHBseSAtcm90YXRlLTQ1O1xcbiAgfVxcbn1cXG5cXG4uYWN0aXZpdHktdGl0bGUge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmFjY29yZGlvbi1jb250ZW50W2RhdGEtdi0wNjNjYmQ4Nl0ge1xcbiAgaGVpZ2h0OiAwcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcXG59XFxuLmFjY29yZGlvbi1jb250ZW50IGRpdltkYXRhLXYtMDYzY2JkODZdIHtcXG4gIG1hcmdpbi10b3A6IDFyZW07XFxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLW4tMjApLCB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpO1xcbiAgcGFkZGluZy10b3A6IDAuNzVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcXG59XFxuLmFjdGl2aXR5LXRpdGxlW2RhdGEtdi0wNjNjYmQ4Nl0ge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvRXJyb3JJdGVtLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLFdBQUE7RUFBQSxnQkFBQTtFQUFBLHdCQUFBO0VBQUEsd0RBQUE7RUFBQSwwQkFBQTtBQUFBO0FBRUU7RUFBQSxnQkFBQTtFQUFBLHFCQUFBO0VBQUEsc0JBQUE7RUFBQSx5REFBQTtFQUFBLG9CQUFBO0VBQUEsdUJBQUE7QUFBQTtBQUlKO0VBQ0UsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FBQUZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLmFjY29yZGlvbi1jb250ZW50IHtcXG4gIEBhcHBseSBoLTAgb3ZlcmZsb3ctaGlkZGVuIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMDtcXG4gIGRpdiB7XFxuICAgIEBhcHBseSBtdC00IGJvcmRlci10IGJvcmRlci1uLTIwIHB5LTM7XFxuICB9XFxufVxcblxcbi5hY3Rpdml0eS10aXRsZSB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuYWN0aXZpdGllcyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5hY3Rpdml0aWVzIC5lbGVtZW50cyB7XFxuICBib3JkZXItcmFkaXVzOiAwcHggOHB4IDhweCAwcHg7XFxuICB3aWR0aDogMTI1cHg7XFxuICBtaW4taGVpZ2h0OiAxNzRweDtcXG59XFxuLmFjdGl2aXRpZXMgLmVsZW1lbnRzX19wYW5lbCB7XFxuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XFxuICBwYWRkaW5nOiAxcmVtO1xcbiAgLS10dy1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwcHggNHB4IDQwcHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXNoYWRvdyk7XFxufVxcbi5hY3Rpdml0aWVzIC5lbGVtZW50c19fcGFuZWwgLnBhbmVsX19pbnB1dDpmb2N1cywgXFxuLmFjdGl2aXRpZXMgLmVsZW1lbnRzX19wYW5lbCAucGFuZWxfX3NlYXJjaDpmb2N1cyB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNDApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuLmFjdGl2aXRpZXMgLmhvdmVyX190ZXh0IHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xcbn1cXG4uYWN0aXZpdGllcyAuYnV0dG9uX19kcm9wZG93biB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMHB4O1xcbiAgdG9wOiAxMDAlO1xcbiAgei1pbmRleDogMTA7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgLS10dy1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwcHggNHB4IDQwcHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXNoYWRvdyk7XFxuICBtaW4td2lkdGg6IDE1MHB4O1xcbn1cXG4uYWN0aXZpdGllcyAuYnV0dG9uX19kcm9wZG93biBsaSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgcGFkZGluZy10b3A6IDAuMzc1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuMzc1cmVtO1xcbiAgcGFkZGluZy1sZWZ0OiAwLjg3NXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuODc1cmVtO1xcbn1cXG4uYWN0aXZpdGllcyAuYnV0dG9uX19kcm9wZG93biBsaTpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXdoaXRlKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbn1cXG4uYWN0aXZpdGllcyAuYnV0dG9uX19kcm9wZG93biBsaSBzdmcge1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQ0E7RUFDRSxrQkFBQTtBQUFGO0FBQ0U7RUFDRSw4QkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQUNKO0FBR0k7RUFBQSxxQkFBQTtFQUFBLGFBQUE7RUFBQSw0Q0FBQTtFQUFBLHdEQUFBO0VBQUEsdUdBQUE7QUFBQTtBQUlFOztFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7QUFBQTtBQUtGO0VBQUEsb0JBQUE7QUFBQTtBQUdBO0VBQUEsa0JBQUE7RUFBQSxVQUFBO0VBQUEsU0FBQTtFQUFBLFdBQUE7RUFBQSxnQkFBQTtFQUFBLDRDQUFBO0VBQUEsd0RBQUE7RUFBQSx1R0FBQTtFQUNBLGdCQUFBO0FBREE7QUFJRTtFQUFBLGFBQUE7RUFBQSxxQkFBQTtFQUFBLHdCQUFBO0VBQUEsc0JBQUE7RUFBQSx1QkFBQTtBQUFBO0FBQUE7RUFBQSxrQkFBQTtFQUFBLDBEQUFBO0FBQUE7QUFHRTtFQUFBLHFCQUFBO0FBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLmFjdGl2aXRpZXMge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLmVsZW1lbnRzIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDhweCA4cHggMHB4O1xcbiAgICB3aWR0aDogMTI1cHg7XFxuICAgIG1pbi1oZWlnaHQ6IDE3NHB4O1xcbiAgfVxcblxcbiAgLmVsZW1lbnRzX19wYW5lbCB7XFxuICAgIEBhcHBseSByb3VuZGVkLWxnIHAtNCBzaGFkb3ctZHJvcGRvd247XFxuXFxuICAgIC5wYW5lbF9faW5wdXQ6Zm9jdXMsXFxuICAgIC5wYW5lbF9fc2VhcmNoOmZvY3VzIHtcXG4gICAgICBAYXBwbHkgdGV4dC1uLTQwO1xcbiAgICB9XFxuICB9XFxuXFxuICAuaG92ZXJfX3RleHQge1xcbiAgICBAYXBwbHkgbWwtMTtcXG4gIH1cXG4gIC5idXR0b25fX2Ryb3Bkb3duIHtcXG4gICAgQGFwcGx5IGFic29sdXRlIHJpZ2h0LTAgdG9wLWZ1bGwgei0xMCB0ZXh0LWxlZnQgc2hhZG93LWRyb3Bkb3duO1xcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xcblxcbiAgICBsaSB7XFxuICAgICAgQGFwcGx5IGZsZXggcHktMS41IHB4LTMuNSBob3ZlcjpiZy13aGl0ZTtcXG5cXG4gICAgICBzdmcge1xcbiAgICAgICAgQGFwcGx5IG1yLTE7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5tYW5kYXRvcnk6OmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgd2lkdGg6IDAuNXB4O1xcbiAgaGVpZ2h0OiAxNDBweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMC4yNXJlbTtcXG4gIHJpZ2h0OiAtMS41cmVtO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1uLTIwKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbn1cXG4uZWxlbWVudCB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcXG59XFxuLmVsZW1lbnRfX2lubmVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbi5lbGVtZW50X19pbm5lciA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS14LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMC42MjVyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTtcXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAuNjI1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpO1xcbn1cXG4uZWxlbWVudF9fbm90ZXMge1xcbiAgaGVpZ2h0OiAxcmVtO1xcbiAgd2lkdGg6IDJyZW07XFxuICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4uZWxlbWVudF9fc2VhcmNoIHtcXG4gIG1hcmdpbi10b3A6IDFyZW07XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgaGVpZ2h0OiAyLjVyZW07XFxuICB3aWR0aDogMTAwJTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbi0zMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXdoaXRlKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgcGFkZGluZy10b3A6IDAuNzVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XFxuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi00MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbiAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xcbn1cXG4uZWxlbWVudF9fc2VhcmNoOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi0zMCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcXG59XFxuLmVsZW1lbnRfX3NlYXJjaDo6cGxhY2Vob2xkZXIge1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTMwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xcbn1cXG4uZWxlbWVudF9fc2VhcmNoOmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi00MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG4uZWxlbWVudF9fc2VhcmNoOmZvY3VzOjpwbGFjZWhvbGRlciB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNDApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuLnRhYl9fbGlua3Mge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xcbn1cXG4udGFiX19saW5rczo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IDBweDtcXG4gIGxlZnQ6IDBweDtcXG4gIGhlaWdodDogMC4yNXJlbTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgLS10dy1zY2FsZS14OiAwO1xcbiAgLS10dy1zY2FsZS15OiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xcbn1cXG4udGFiX19saW5rczpob3Zlcjo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgLS10dy1zY2FsZS14OiAxO1xcbiAgLS10dy1zY2FsZS15OiAxO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcbi50YWJfX2xpbmtzLS1hY3RpdmUge1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tYmx1ZWNvcmFsKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbi50YWJfX2xpbmtzLS1hY3RpdmU6OmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAwcHg7XFxuICBsZWZ0OiAwcHg7XFxuICBoZWlnaHQ6IDAuMjVyZW07XFxuICB3aWR0aDogMTAwJTtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tYmx1ZWNvcmFsKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxufVxcbi5zZXBhcmF0b3Ige1xcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XFxuICBtYXJnaW4tcmlnaHQ6IDFyZW07XFxufVxcbi5sYXN0IHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi0zMCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25EYXRhLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFDQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQUEsWUFBQTtFQUFBLGNBQUE7RUFBQSxrQkFBQTtFQUFBLHlEQUFBO0FBQUY7QUFJRTtFQUFBLHNCQUFBO0VBQUEsbUJBQUE7QUFBQTtBQUdFO0VBQUEsYUFBQTtBQUFBO0FBQUE7RUFBQSx1QkFBQTtFQUFBLHdEQUFBO0VBQUEsaUVBQUE7QUFBQTtBQUlBO0VBQUEsWUFBQTtFQUFBLFdBQUE7RUFBQSx1QkFBQTtFQUFBLGlCQUFBO0FBQUE7QUFLRjtFQUFBLGdCQUFBO0VBQUEsbUJBQUE7RUFBQSxjQUFBO0VBQUEsV0FBQTtFQUFBLHNCQUFBO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFQUFBLHlEQUFBO0VBQUEsa0JBQUE7RUFBQSwwREFBQTtFQUFBLG9CQUFBO0VBQUEsdUJBQUE7RUFBQSxzQkFBQTtFQUFBLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtFQUFBLDhCQUFBO0VBQUEsbUJBQUE7RUFBQSwwQkFBQTtBQUFBO0FBR0U7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtFQUFBLDBCQUFBO0VBQ0EsdUJBQUE7QUFEQTtBQUFBO0VBQUEsbUJBQUE7RUFBQSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7RUFBQSwwQkFBQTtFQUNBLHVCQUFBO0FBREE7QUFLQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7QUFBQTtBQUFBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtBQUFBO0FBS0Y7RUFBQSxrQkFBQTtFQUFBLGVBQUE7RUFBQSxvQkFBQTtFQUFBLHFCQUFBO0VBQUEsc0JBQUE7QUFBQTtBQUVBO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQUEsV0FBQTtFQUFBLFNBQUE7RUFBQSxlQUFBO0VBQUEsV0FBQTtFQUFBLGVBQUE7RUFBQSxlQUFBO0VBQUEsK0xBQUE7RUFBQSxrQkFBQTtFQUFBLDhEQUFBO0VBQUEsMEJBQUE7QUFKSjtBQU9FO0VBQ0UsV0FBQTtFQUNBLG1CQUFBO0VBQUEsZUFBQTtFQUFBLGVBQUE7RUFBQSwrTEFBQTtBQUxKO0FBU0k7RUFBQSxnQkFBQTtFQUFBLG9CQUFBO0VBQUEscURBQUE7QUFBQTtBQUlKO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQUEsV0FBQTtFQUFBLFNBQUE7RUFBQSxlQUFBO0VBQUEsV0FBQTtFQUFBLGtCQUFBO0VBQUEsOERBQUE7RUFBQSwwQkFBQTtBQVBGO0FBV0U7RUFBQSxpQkFBQTtFQUFBLGtCQUFBO0FBQUE7QUFJQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4ubWFuZGF0b3J5OjphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHdpZHRoOiAwLjVweDtcXG4gIGhlaWdodDogMTQwcHg7XFxuICBAYXBwbHkgYWJzb2x1dGUgdG9wLTEgLXJpZ2h0LTYgYmctbi0yMDtcXG59XFxuXFxuLmVsZW1lbnQge1xcbiAgQGFwcGx5IG1iLTMgbWwtMjtcXG5cXG4gICZfX2lubmVyIHtcXG4gICAgQGFwcGx5IGZsZXggc3BhY2UteC0yLjU7XFxuICB9XFxuXFxuICAmX19ub3RlcyB7XFxuICAgIEBhcHBseSBoLTQgdy04IHJvdW5kZWQtc20gYm9yZGVyO1xcbiAgfVxcbn1cXG5cXG4uZWxlbWVudF9fc2VhcmNoIHtcXG4gIEBhcHBseSBteS00IGgtMTAgdy1mdWxsIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1uLTMwIGJnLXdoaXRlIHB5LTMgcHItMyBwbC0xMCB0ZXh0LW4tNDAgb3V0bGluZS1ub25lIGR1cmF0aW9uLTMwMDtcXG5cXG4gICY6OnBsYWNlaG9sZGVyIHtcXG4gICAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTMwIGR1cmF0aW9uLTMwMDtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XFxuICB9XFxuXFxuICAmOmZvY3VzOjpwbGFjZWhvbGRlciB7XFxuICAgIEBhcHBseSB0ZXh0LW4tNDA7XFxuICB9XFxufVxcblxcbi50YWJfX2xpbmtzIHtcXG4gIEBhcHBseSByZWxhdGl2ZSBjdXJzb3ItcG9pbnRlciBweC0yIHBiLTY7XFxuXFxuICAmOjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBAYXBwbHkgYWJzb2x1dGUgYm90dG9tLTAgbGVmdC0wIGgtMSB3LWZ1bGwgc2NhbGUtMCBiZy1ibHVlY29yYWwgZHVyYXRpb24tMzAwO1xcbiAgfVxcblxcbiAgJjpob3Zlcjo6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgQGFwcGx5IHZpc2libGUgc2NhbGUtMTAwO1xcbiAgfVxcblxcbiAgJi0tYWN0aXZlIHtcXG4gICAgQGFwcGx5IGZvbnQtYm9sZCB0ZXh0LWJsdWVjb3JhbDtcXG4gIH1cXG59XFxuXFxuLnRhYl9fbGlua3MtLWFjdGl2ZTo6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBAYXBwbHkgYWJzb2x1dGUgYm90dG9tLTAgbGVmdC0wIGgtMSB3LWZ1bGwgYmctYmx1ZWNvcmFsIGR1cmF0aW9uLTMwMDtcXG59XFxuXFxuLnNlcGFyYXRvciB7XFxuICBAYXBwbHkgbXgtNDtcXG59XFxuXFxuLmxhc3Qge1xcbiAgQGFwcGx5IHRleHQtbi0zMDtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLnJlc2V0IHtcXG4gIGJveC1zaGFkb3c6IDBweCAyMHB4IDQwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xcbiAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07XFxuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XFxuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXdoaXRlKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgcGFkZGluZzogMS4yNXJlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDQwcHgpIHtcXG4ucmVzZXQge1xcbiAgICBwYWRkaW5nOiAyLjVyZW07XFxufVxcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbi5yZXNldCB7XFxuICAgIHdpZHRoOiA1ODNweDtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgICBwYWRkaW5nOiA2cmVtO1xcbn1cXG59XFxuLnJlc2V0X19jb250ZW50IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbn1cXG4ucmVzZXRfX2NvbnRlbnQgLmlucHV0IHtcXG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcXG4gIHBhZGRpbmctdG9wOiAxLjI1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XFxufVxcbi5yZXNldF9fY29udGVudCAubG9jay1pY29uIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDEuNXJlbTtcXG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XFxuICBsaW5lLWhlaWdodDogMS43NXJlbTtcXG4gIHRvcDogNDdweDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4ucmVzZXRfX2NvbnRlbnQgLmxvY2staWNvbiB7XFxuICAgIHRvcDogNTBweDtcXG4gICAgZm9udC1zaXplOiAyMHB4O1xcbn1cXG59XFxuLnJlc2V0X19jb250ZW50IC5tYWlsLWljb24ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMS41cmVtO1xcbiAgdG9wOiA0N3B4O1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbi5yZXNldF9fY29udGVudCAubWFpbC1pY29uIHtcXG4gICAgdG9wOiA1MXB4O1xcbn1cXG59XFxuLnJlc2V0IGgyIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNTApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnJlc2V0IGgyIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xcbn1cXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4ucmVzZXQgaDIge1xcbiAgICBmb250LXNpemU6IDQwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xcbn1cXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDQwcHgpIHtcXG4ucmVzZXQgaDIge1xcbiAgICBmb250LXNpemU6IDMycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xcbn1cXG59XFxuLnJlc2V0IHAge1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTQwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5yZXNldCBwIHtcXG4gICAgZm9udC1zaXplOiAxcmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xcbn1cXG59XFxuLnJlc2V0IC5yZXNldC1idG4ge1xcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDFyZW07XFxuICBwYWRkaW5nOiAxNHB4O1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbi5yZXNldCAucmVzZXQtYnRuIHtcXG4gICAgcGFkZGluZzogMThweCA5NHB4O1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxufVxcbn1cXG4ucmVzZXQgLnZlcmlmaWNhdGlvbiB7XFxuICBmb250LXNpemU6IDE1MHB4O1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbi5yZXNldCAudmVyaWZpY2F0aW9uIHtcXG4gICAgZm9udC1zaXplOiAxOTBweDtcXG59XFxufVxcbi5yZXNldF9fcGFzc3dvcmQge1xcbiAgaGVpZ2h0OiA2MTBweDtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9yZXNldC9SZXNldFBhZ2UudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUNBO0VBV0Usa0RBQUE7RUFDQSxvQkFBQTtFQUFBLHFCQUFBO0VBQUEscUJBQUE7RUFBQSxrQkFBQTtFQUFBLDBEQUFBO0VBQUEsZ0JBQUE7QUFWRjtBQURFO0FBQ0U7SUFBQSxlQUFBO0FBQUE7QUFLSjtBQUZFO0FBTEY7SUFNSSxZQUFBO0lBQ0EsWUFBQTtJQUVBLGFBQUE7QUFJRjtBQUNGO0FBQ0k7RUFBQSxrQkFBQTtFQUFBLGFBQUE7RUFBQSxzQkFBQTtBQUFBO0FBR0U7RUFBQSxrQkFBQTtFQUFBLHFCQUFBO0VBQUEsb0JBQUE7RUFBQSx1QkFBQTtBQUFBO0FBSUE7RUFBQSxrQkFBQTtFQUFBLFlBQUE7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQ0EsU0FBQTtBQURBO0FBR0E7QUFKRjtJQUtJLFNBQUE7SUFDQSxlQUFBO0FBRU47QUFDRjtBQUVNO0VBQUEsa0JBQUE7RUFBQSxZQUFBO0VBQ0EsU0FBQTtBQURBO0FBR0E7QUFKRjtJQUtJLFNBQUE7QUFFTjtBQUNGO0FBV0k7RUFBQSxlQUFBO0VBQUEsZ0JBQUE7RUFBQSxvQkFBQTtFQUFBLGdEQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEscUJBQUE7QUFBQTtBQUFBO0FBVEE7QUFDRTtJQUFBLGVBQUE7SUFDQSxpQkFBQTtBQURBO0FBTU47QUFGSTtBQUNFO0lBQUEsZUFBQTtJQUNBLGlCQUFBO0FBREE7QUFPTjtBQURJO0VBQUEsbUJBQUE7RUFBQSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxlQUFBO0lBQUEsbUJBQUE7QUFBQTtBQUFBO0FBR0E7RUFBQSxtQkFBQTtFQUFBLFdBQUE7RUFBQSxrQkFBQTtFQUFBLGlCQUFBO0VBQ0EsYUFBQTtBQURBO0FBR0E7QUFKRjtJQUtJLGtCQUFBO0lBQ0EsZUFBQTtBQUtKO0FBQ0Y7QUFIRTtFQUNFLGdCQUFBO0FBS0o7QUFISTtBQUhGO0lBSUksZ0JBQUE7QUFNSjtBQUNGO0FBSEE7RUFDRSxhQUFBO0FBTUZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLnJlc2V0IHtcXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ0MHB4KSB7XFxuICAgIEBhcHBseSBwLTEwO1xcbiAgfVxcblxcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4gICAgd2lkdGg6IDU4M3B4O1xcbiAgICBtYXJnaW46IGF1dG87XFxuXFxuICAgIEBhcHBseSBwLTI0O1xcbiAgfVxcbiAgYm94LXNoYWRvdzogMHB4IDIwcHggNDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XFxuICBAYXBwbHkgbXgtMyByb3VuZGVkLWxnIGJnLXdoaXRlIHAtNTtcXG5cXG4gICZfX2NvbnRlbnQge1xcbiAgICBAYXBwbHkgcmVsYXRpdmUgZmxleCBmbGV4LWNvbDtcXG5cXG4gICAgLmlucHV0IHtcXG4gICAgICBAYXBwbHkgbXktMiBweS01O1xcbiAgICB9XFxuXFxuICAgIC5sb2NrLWljb24ge1xcbiAgICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTYgdGV4dC1sZztcXG4gICAgICB0b3A6IDQ3cHg7XFxuXFxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4gICAgICAgIHRvcDogNTBweDtcXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLm1haWwtaWNvbiB7XFxuICAgICAgQGFwcGx5IGFic29sdXRlIGxlZnQtNjtcXG4gICAgICB0b3A6IDQ3cHg7XFxuXFxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4gICAgICAgIHRvcDogNTFweDtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG4gIGgyIHtcXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4gICAgICBAYXBwbHkgdGV4dC1oZWFkaW5nLTM7XFxuICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XFxuICAgIH1cXG5cXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDQwcHgpIHtcXG4gICAgICBAYXBwbHkgdGV4dC1oZWFkaW5nLTQ7XFxuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XFxuICAgIH1cXG4gICAgQGFwcGx5IHRleHQtaGVhZGluZy01IGZvbnQtYm9sZCB0ZXh0LW4tNTAgc206bWItMjtcXG4gIH1cXG4gIHAge1xcbiAgICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tNDAgc206dGV4dC1iYXNlO1xcbiAgfVxcbiAgLnJlc2V0LWJ0biB7XFxuICAgIEBhcHBseSBtdC0zIHctZnVsbCB0ZXh0LXhzO1xcbiAgICBwYWRkaW5nOiAxNHB4O1xcblxcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbiAgICAgIHBhZGRpbmc6IDE4cHggOTRweDtcXG4gICAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIH1cXG4gIH1cXG4gIC52ZXJpZmljYXRpb24ge1xcbiAgICBmb250LXNpemU6IDE1MHB4O1xcblxcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbiAgICAgIGZvbnQtc2l6ZTogMTkwcHg7XFxuICAgIH1cXG4gIH1cXG59XFxuLnJlc2V0X19wYXNzd29yZCB7XFxuICBoZWlnaHQ6IDYxMHB4O1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIubGFiZWwge1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi01MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIHtcXG4gIG1heC13aWR0aDogODY1cHg7XFxuICBtYXJnaW46IGF1dG87XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyODBweCkge1xcbi5zZWN0aW9uX19jb250YWluZXIge1xcbiAgICBtYXgtd2lkdGg6IDEyMDZweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuZmVlZGJhY2sge1xcbiAgICB3aWR0aDogNzAycHg7XFxufVxcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5mZWVkYmFjayBwIHtcXG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX193cmFwcGVyIHtcXG4gIGJveC1zaGFkb3c6IDBweCAyMHB4IDQwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX193cmFwcGVyIC52ZXJpZmljYXRpb24ge1xcbiAgZm9udC1zaXplOiAxOTBweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fdGl0bGUge1xcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDEuNzVyZW07XFxuICBtYXJnaW4tbGVmdDogMC43NXJlbTtcXG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSB7XFxuICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XFxufVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fdGl0bGUge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XFxuICAgIG1hcmdpbi10b3A6IDMuNXJlbTtcXG59XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ0MHB4KSB7XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fdGl0bGUge1xcbiAgICBsaW5lLWhlaWdodDogMi4yNXJlbTtcXG59XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3RpdGxlIHAge1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi00MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSBwIHtcXG4gICAgZm9udC1zaXplOiAxcmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xcbn1cXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAucmVnaXN0ZXJfX3NpZGViYXIge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1lZ2dzaGVsbCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHBhZGRpbmc6IDk2cHggMzJweCA0MHB4O1xcbiAgd2lkdGg6IDM0NHB4O1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5yZWdpc3Rlcl9fc2lkZWJhciB1bCB7XFxuICB3aWR0aDogMjUzcHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnJlZ2lzdGVyX19zaWRlYmFyIHVsOjpiZWZvcmUge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB3aWR0aDogNHB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1uLTIwKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMHB4O1xcbiAgdG9wOiAwcHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnJlZ2lzdGVyX19zaWRlYmFyIC5kZXRhaWwge1xcbiAgbWFyZ2luLWxlZnQ6IDQ1cHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnJlZ2lzdGVyX19zaWRlYmFyIC5saXN0X19hY3RpdmU6OmFmdGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IC0xcHg7XFxuICB3aWR0aDogNnB4O1xcbiAgaGVpZ2h0OiA4NXB4O1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS10dXJxdW9pc2UpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIHotaW5kZXg6IDU7XFxufVxcbi5mb3JtIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBwYWRkaW5nOiAxLjI1cmVtO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4uZm9ybSB7XFxuICAgIHBhZGRpbmctbGVmdDogMi41cmVtO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XFxuICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XFxuICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XFxufVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuLmZvcm0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XFxuICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XFxufVxcbn1cXG4uZm9ybSB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxuICB3aWR0aDogODYycHg7XFxufVxcbi5mb3JtX19jb250YWluZXIge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEodmFyKC0tbi0xMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xcbn1cXG4uZm9ybV9fY29udGFpbmVyIC5lcnJvcl9faW5wdXQge1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLWNyaW1zb24tNTApLCB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpO1xcbn1cXG4uZm9ybV9fY29udGVudCB7XFxuICBtYXJnaW4tdG9wOiAyNHB4O1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcXG4uZm9ybV9fY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XFxuICAgIGdhcDogMTZweDtcXG59XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlSZWdpc3RlclBhZ2UudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUVFO0VBQUEsbUJBQUE7RUFBQSxvQkFBQTtFQUFBLGdCQUFBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtBQUFBO0FBSUE7RUFJRSxnQkFBQTtFQUNBLFlBQUE7QUFKSjtBQUFJO0FBREY7SUFFSSxpQkFBQTtBQUdKO0FBRUU7SUFFSSxZQUFBO0FBQ047QUFKRjtBQU1NO0VBQ0UsaUJBQUE7QUFDUjtBQUdJO0VBQ0Usa0RBQUE7QUFETjtBQUdNO0VBQ0UsZ0JBQUE7QUFEUjtBQVVNO0VBQUEsbUJBQUE7RUFBQSxzQkFBQTtFQUFBLG9CQUFBO0VBQUEscUJBQUE7RUFBQSxrQkFBQTtFQUFBLG9CQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEsbUJBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLHFCQUFBO0lBQUEsa0JBQUE7QUFBQTtBQUFBO0FBSkE7QUFDRTtJQUFBLG9CQUFBO0FBQUE7QUFDUjtBQUlNO0VBQ0UsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQUEsb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGdEQUFBO0FBRlI7QUFFUTtBQUFBO0lBQUEsZUFBQTtJQUFBLG1CQUFBO0FBQUE7QUFBQTtBQUtGO0VBQUEsa0JBQUE7RUFBQSw2REFBQTtFQUNBLHVCQUFBO0VBQ0EsWUFBQTtBQUZBO0FBSUE7RUFDRSxZQUFBO0FBSlI7QUFPTTtFQUNFLFdBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQUEseURBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7QUFMUjtBQVFNO0VBQ0UsaUJBQUE7QUFOUjtBQVNNO0VBQ0Usa0JBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFBQSw4REFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QUFQUjtBQWNFO0VBQUEsa0JBQUE7RUFBQSwwREFBQTtFQUFBLGdCQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEsb0JBQUE7SUFBQSxxQkFBQTtJQUFBLG1CQUFBO0lBQUEsc0JBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLGtCQUFBO0lBQUEsbUJBQUE7QUFBQTtBQUFBO0FBREY7RUFFRSwyQkFBQTtFQUNBLDhCQUFBO0VBQ0EsWUFBQTtBQVZGO0FBYUk7RUFBQSx3QkFBQTtFQUFBLHNCQUFBO0VBQUEsZ0VBQUE7RUFDQSxtQkFBQTtBQURBO0FBSUU7RUFBQSxpQkFBQTtFQUFBLHNCQUFBO0VBQUEsK0RBQUE7QUFBQTtBQUlKO0VBQ0UsZ0JBQUE7QUFaSjtBQWdCQTtBQUNFO0lBQ0UsYUFBQTtJQUNBLHFDQUFBO0lBQ0EsU0FBQTtBQWJGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLmxhYmVsIHtcXG4gIEBhcHBseSB0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtbi01MDtcXG59XFxuXFxuLnNlY3Rpb24ge1xcbiAgJl9fY29udGFpbmVyIHtcXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuICAgICAgbWF4LXdpZHRoOiAxMjA2cHg7XFxuICAgIH1cXG4gICAgbWF4LXdpZHRoOiA4NjVweDtcXG4gICAgbWFyZ2luOiBhdXRvO1xcblxcbiAgICAuZmVlZGJhY2sge1xcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyODBweCkge1xcbiAgICAgICAgd2lkdGg6IDcwMnB4O1xcbiAgICAgIH1cXG5cXG4gICAgICBwIHtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAuc2VjdGlvbl9fd3JhcHBlciB7XFxuICAgICAgYm94LXNoYWRvdzogMHB4IDIwcHggNDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XFxuXFxuICAgICAgLnZlcmlmaWNhdGlvbiB7XFxuICAgICAgICBmb250LXNpemU6IDE5MHB4O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAuc2VjdGlvbl9fdGl0bGUge1xcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ0MHB4KSB7XFxuICAgICAgICBAYXBwbHkgbGVhZGluZy05O1xcbiAgICAgIH1cXG5cXG4gICAgICBAYXBwbHkgbXktNyBteC0zIHRleHQtY2VudGVyIGxlYWRpbmctNyBzbTpsZWFkaW5nLTEwIGxnOm1iLTEwIGxnOm10LTE0O1xcblxcbiAgICAgIHAge1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgICAgIEBhcHBseSB0ZXh0LXNtIHRleHQtbi00MCBzbTp0ZXh0LWJhc2U7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5yZWdpc3Rlcl9fc2lkZWJhciB7XFxuICAgICAgQGFwcGx5IGJnLWVnZ3NoZWxsO1xcbiAgICAgIHBhZGRpbmc6IDk2cHggMzJweCA0MHB4O1xcbiAgICAgIHdpZHRoOiAzNDRweDtcXG5cXG4gICAgICB1bCB7XFxuICAgICAgICB3aWR0aDogMjUzcHg7XFxuICAgICAgfVxcblxcbiAgICAgIHVsOjpiZWZvcmUge1xcbiAgICAgICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgICAgICB3aWR0aDogNHB4O1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgQGFwcGx5IGJnLW4tMjA7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICBsZWZ0OiAwcHg7XFxuICAgICAgICB0b3A6IDBweDtcXG4gICAgICB9XFxuXFxuICAgICAgLmRldGFpbCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogNDVweDtcXG4gICAgICB9XFxuXFxuICAgICAgLmxpc3RfX2FjdGl2ZTo6YWZ0ZXIge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiAwO1xcbiAgICAgICAgbGVmdDogLTFweDtcXG4gICAgICAgIHdpZHRoOiA2cHg7XFxuICAgICAgICBoZWlnaHQ6IDg1cHg7XFxuICAgICAgICBAYXBwbHkgYmctdHVycXVvaXNlO1xcbiAgICAgICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgICAgICB6LWluZGV4OiA1O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcbn1cXG5cXG4uZm9ybSB7XFxuICBAYXBwbHkgYmctd2hpdGUgcC01IHNtOnB4LTEwIHNtOnB5LTEwIGxnOnB4LTIwO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xcbiAgd2lkdGg6IDg2MnB4O1xcblxcbiAgJl9fY29udGFpbmVyIHtcXG4gICAgQGFwcGx5IGJvcmRlci1iLTIgYm9yZGVyLWItbi0xMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcXG5cXG4gICAgLmVycm9yX19pbnB1dCB7XFxuICAgICAgQGFwcGx5IGJvcmRlciBib3JkZXItY3JpbXNvbi01MDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJl9fY29udGVudCB7XFxuICAgIG1hcmdpbi10b3A6IDI0cHg7XFxuICB9XFxufVxcblxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xcbiAgLmZvcm1fX2NvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xcbiAgICBnYXA6IDE2cHg7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5sYWJlbCB7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTUwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIge1xcbiAgbWF4LXdpZHRoOiA4NjVweDtcXG4gIG1hcmdpbjogYXV0bztcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuLnNlY3Rpb25fX2NvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogMTIwNnB4O1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5mZWVkYmFjayB7XFxuICAgIHdpZHRoOiA3MDJweDtcXG59XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLmZlZWRiYWNrIHAge1xcbiAgbGluZS1oZWlnaHQ6IDIycHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3dyYXBwZXIge1xcbiAgYm94LXNoYWRvdzogMHB4IDIwcHggNDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3dyYXBwZXIgLnZlcmlmaWNhdGlvbiB7XFxuICBmb250LXNpemU6IDE5MHB4O1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSB7XFxuICBtYXJnaW4tdG9wOiAxLjc1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMS43NXJlbTtcXG4gIG1hcmdpbi1sZWZ0OiAwLjc1cmVtO1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3RpdGxlIHtcXG4gICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcXG59XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcXG4gICAgbWFyZ2luLXRvcDogMy41cmVtO1xcbn1cXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDQwcHgpIHtcXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSB7XFxuICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xcbn1cXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fdGl0bGUgcCB7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTQwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3RpdGxlIHAge1xcbiAgICBmb250LXNpemU6IDFyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XFxufVxcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5yZWdpc3Rlcl9fc2lkZWJhciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWVnZ3NoZWxsKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgcGFkZGluZzogOTZweCAzMnB4IDQwcHg7XFxuICB3aWR0aDogMzQ0cHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnJlZ2lzdGVyX19zaWRlYmFyIHVsIHtcXG4gIHdpZHRoOiAyNTNweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAucmVnaXN0ZXJfX3NpZGViYXIgdWw6OmJlZm9yZSB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHdpZHRoOiA0cHg7XFxuICBoZWlnaHQ6IDE3NXB4O1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1uLTIwKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMHB4O1xcbiAgdG9wOiAwcHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnJlZ2lzdGVyX19zaWRlYmFyIC5kZXRhaWwge1xcbiAgbWFyZ2luLWxlZnQ6IDQ1cHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnJlZ2lzdGVyX19zaWRlYmFyIC5saXN0X19hY3RpdmU6OmFmdGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IC0xcHg7XFxuICB3aWR0aDogNnB4O1xcbiAgaGVpZ2h0OiA4NXB4O1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS10dXJxdW9pc2UpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIHotaW5kZXg6IDU7XFxufVxcbi5mb3JtIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBwYWRkaW5nOiAxLjI1cmVtO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4uZm9ybSB7XFxuICAgIHBhZGRpbmctbGVmdDogMi41cmVtO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XFxuICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XFxuICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XFxufVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuLmZvcm0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XFxuICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XFxufVxcbn1cXG4uZm9ybSB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxuICB3aWR0aDogODYycHg7XFxufVxcbi5mb3JtX19jb250YWluZXIge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEodmFyKC0tbi0xMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xcbn1cXG4uZm9ybV9fY29udGFpbmVyIC5lcnJvcl9faW5wdXQge1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLWNyaW1zb24tNTApLCB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpO1xcbn1cXG4uZm9ybV9fY29udGVudCB7XFxuICBtYXJnaW4tdG9wOiAyNHB4O1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcXG4uZm9ybV9fY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XFxuICAgIGdhcDogMTZweDtcXG59XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1JlZ2lzdGVyUGFnZS52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUU7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0JBQUE7RUFBQSxvQkFBQTtFQUFBLGdEQUFBO0FBQUE7QUFJQTtFQUlFLGdCQUFBO0VBQ0EsWUFBQTtBQUpKO0FBQUk7QUFERjtJQUVJLGlCQUFBO0FBR0o7QUFFRTtJQUVJLFlBQUE7QUFDTjtBQUpGO0FBTU07RUFDRSxpQkFBQTtBQUNSO0FBR0k7RUFDRSxrREFBQTtBQUROO0FBR007RUFDRSxnQkFBQTtBQURSO0FBVU07RUFBQSxtQkFBQTtFQUFBLHNCQUFBO0VBQUEsb0JBQUE7RUFBQSxxQkFBQTtFQUFBLGtCQUFBO0VBQUEsb0JBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxtQkFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEscUJBQUE7SUFBQSxrQkFBQTtBQUFBO0FBQUE7QUFKQTtBQUNFO0lBQUEsb0JBQUE7QUFBQTtBQUNSO0FBSU07RUFDRSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFBQSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7QUFGUjtBQUVRO0FBQUE7SUFBQSxlQUFBO0lBQUEsbUJBQUE7QUFBQTtBQUFBO0FBS0Y7RUFBQSxrQkFBQTtFQUFBLDZEQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0FBRkE7QUFJQTtFQUNFLFlBQUE7QUFKUjtBQU9NO0VBQ0UsV0FBQTtFQUNBLFVBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFBQSx5REFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtBQUxSO0FBUU07RUFDRSxpQkFBQTtBQU5SO0FBU007RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUFBLDhEQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQVBSO0FBY0U7RUFBQSxrQkFBQTtFQUFBLDBEQUFBO0VBQUEsZ0JBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxvQkFBQTtJQUFBLHFCQUFBO0lBQUEsbUJBQUE7SUFBQSxzQkFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEsa0JBQUE7SUFBQSxtQkFBQTtBQUFBO0FBQUE7QUFERjtFQUVFLDJCQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBVkY7QUFhSTtFQUFBLHdCQUFBO0VBQUEsc0JBQUE7RUFBQSxnRUFBQTtFQUNBLG1CQUFBO0FBREE7QUFJRTtFQUFBLGlCQUFBO0VBQUEsc0JBQUE7RUFBQSwrREFBQTtBQUFBO0FBSUo7RUFDRSxnQkFBQTtBQVpKO0FBZ0JBO0FBQ0U7SUFDRSxhQUFBO0lBQ0EscUNBQUE7SUFDQSxTQUFBO0FBYkY7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4ubGFiZWwge1xcbiAgQGFwcGx5IHRleHQtc20gZm9udC1ub3JtYWwgdGV4dC1uLTUwO1xcbn1cXG5cXG4uc2VjdGlvbiB7XFxuICAmX19jb250YWluZXIge1xcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHtcXG4gICAgICBtYXgtd2lkdGg6IDEyMDZweDtcXG4gICAgfVxcbiAgICBtYXgtd2lkdGg6IDg2NXB4O1xcbiAgICBtYXJnaW46IGF1dG87XFxuXFxuICAgIC5mZWVkYmFjayB7XFxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuICAgICAgICB3aWR0aDogNzAycHg7XFxuICAgICAgfVxcblxcbiAgICAgIHAge1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5zZWN0aW9uX193cmFwcGVyIHtcXG4gICAgICBib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG5cXG4gICAgICAudmVyaWZpY2F0aW9uIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMTkwcHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5zZWN0aW9uX190aXRsZSB7XFxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDQwcHgpIHtcXG4gICAgICAgIEBhcHBseSBsZWFkaW5nLTk7XFxuICAgICAgfVxcblxcbiAgICAgIEBhcHBseSBteS03IG14LTMgdGV4dC1jZW50ZXIgbGVhZGluZy03IHNtOmxlYWRpbmctMTAgbGc6bWItMTAgbGc6bXQtMTQ7XFxuXFxuICAgICAgcCB7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICAgICAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTQwIHNtOnRleHQtYmFzZTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnJlZ2lzdGVyX19zaWRlYmFyIHtcXG4gICAgICBAYXBwbHkgYmctZWdnc2hlbGw7XFxuICAgICAgcGFkZGluZzogOTZweCAzMnB4IDQwcHg7XFxuICAgICAgd2lkdGg6IDM0NHB4O1xcblxcbiAgICAgIHVsIHtcXG4gICAgICAgIHdpZHRoOiAyNTNweDtcXG4gICAgICB9XFxuXFxuICAgICAgdWw6OmJlZm9yZSB7XFxuICAgICAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgICAgIHdpZHRoOiA0cHg7XFxuICAgICAgICBoZWlnaHQ6IDE3NXB4O1xcbiAgICAgICAgQGFwcGx5IGJnLW4tMjA7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICBsZWZ0OiAwcHg7XFxuICAgICAgICB0b3A6IDBweDtcXG4gICAgICB9XFxuXFxuICAgICAgLmRldGFpbCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogNDVweDtcXG4gICAgICB9XFxuXFxuICAgICAgLmxpc3RfX2FjdGl2ZTo6YWZ0ZXIge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiAwO1xcbiAgICAgICAgbGVmdDogLTFweDtcXG4gICAgICAgIHdpZHRoOiA2cHg7XFxuICAgICAgICBoZWlnaHQ6IDg1cHg7XFxuICAgICAgICBAYXBwbHkgYmctdHVycXVvaXNlO1xcbiAgICAgICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgICAgICB6LWluZGV4OiA1O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcbn1cXG5cXG4uZm9ybSB7XFxuICBAYXBwbHkgYmctd2hpdGUgcC01IHNtOnB4LTEwIHNtOnB5LTEwIGxnOnB4LTIwO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xcbiAgd2lkdGg6IDg2MnB4O1xcblxcbiAgJl9fY29udGFpbmVyIHtcXG4gICAgQGFwcGx5IGJvcmRlci1iLTIgYm9yZGVyLWItbi0xMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcXG5cXG4gICAgLmVycm9yX19pbnB1dCB7XFxuICAgICAgQGFwcGx5IGJvcmRlciBib3JkZXItY3JpbXNvbi01MDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJl9fY29udGVudCB7XFxuICAgIG1hcmdpbi10b3A6IDI0cHg7XFxuICB9XFxufVxcblxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xcbiAgLmZvcm1fX2NvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xcbiAgICBnYXA6IDE2cHg7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIiNidG5bZGF0YS12LWExODYxZjNlXSB7XFxuICBwYWRkaW5nOiAxM3B4IDA7XFxufVxcbiNidG4gc3ZnW2RhdGEtdi1hMTg2MWYzZV0ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcmlnaHQ6IDEuNzVyZW07XFxuICBmb250LXNpemU6IDEuNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xcbiAgdHJhbnNpdGlvbjogMC40cztcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4jYnRuW2RhdGEtdi1hMTg2MWYzZV0ge1xcbiAgICBwYWRkaW5nOiAxOHB4IDA7XFxufVxcbn1cXG4udXNlcm5hbWVbZGF0YS12LWExODYxZjNlXSB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XFxufVxcbi5wYXNzd29yZFtkYXRhLXYtYTE4NjFmM2VdIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcXG59XFxubGFiZWxbZGF0YS12LWExODYxZjNlXSB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XFxuICBmb250LXdlaWdodDogNzAwO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9TaWduSW4udnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUNBO0VBQ0UsZUFBQTtBQUFGO0FBR0k7RUFBQSxrQkFBQTtFQUFBLGNBQUE7RUFBQSxpQkFBQTtFQUFBLGlCQUFBO0VBQ0EsZ0JBQUE7QUFEQTtBQUlKO0FBQ0U7SUFDRSxlQUFBO0FBQUY7QUFDRjtBQUdFO0VBQUEscUJBQUE7QUFBQTtBQUdBO0VBQUEscUJBQUE7QUFBQTtBQUdBO0VBQUEscUJBQUE7RUFBQSxnQkFBQTtBQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbiNidG4ge1xcbiAgcGFkZGluZzogMTNweCAwO1xcblxcbiAgc3ZnIHtcXG4gICAgQGFwcGx5IGFic29sdXRlIHJpZ2h0LTcgdGV4dC0yeGw7XFxuICAgIHRyYW5zaXRpb246IDAuNHM7XFxuICB9XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuICAjYnRuIHtcXG4gICAgcGFkZGluZzogMThweCAwO1xcbiAgfVxcbn1cXG4udXNlcm5hbWUge1xcbiAgQGFwcGx5IG1iLTI7XFxufVxcbi5wYXNzd29yZCB7XFxuICBAYXBwbHkgbWItMjtcXG59XFxubGFiZWwge1xcbiAgQGFwcGx5IG1iLTIgZm9udC1ib2xkO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307IiwidmFyIG1hcCA9IHtcblx0XCIuL2FmXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hZi5qc1wiLFxuXHRcIi4vYWYuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FmLmpzXCIsXG5cdFwiLi9hclwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIuanNcIixcblx0XCIuL2FyLWR6XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1kei5qc1wiLFxuXHRcIi4vYXItZHouanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWR6LmpzXCIsXG5cdFwiLi9hci1rd1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIta3cuanNcIixcblx0XCIuL2FyLWt3LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1rdy5qc1wiLFxuXHRcIi4vYXItbHlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWx5LmpzXCIsXG5cdFwiLi9hci1seS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbHkuanNcIixcblx0XCIuL2FyLW1hXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1tYS5qc1wiLFxuXHRcIi4vYXItbWEuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLW1hLmpzXCIsXG5cdFwiLi9hci1zYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItc2EuanNcIixcblx0XCIuL2FyLXNhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1zYS5qc1wiLFxuXHRcIi4vYXItdG5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLXRuLmpzXCIsXG5cdFwiLi9hci10bi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItdG4uanNcIixcblx0XCIuL2FyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci5qc1wiLFxuXHRcIi4vYXpcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2F6LmpzXCIsXG5cdFwiLi9hei5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXouanNcIixcblx0XCIuL2JlXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9iZS5qc1wiLFxuXHRcIi4vYmUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JlLmpzXCIsXG5cdFwiLi9iZ1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmcuanNcIixcblx0XCIuL2JnLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9iZy5qc1wiLFxuXHRcIi4vYm1cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JtLmpzXCIsXG5cdFwiLi9ibS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm0uanNcIixcblx0XCIuL2JuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ibi5qc1wiLFxuXHRcIi4vYm4tYmRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JuLWJkLmpzXCIsXG5cdFwiLi9ibi1iZC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm4tYmQuanNcIixcblx0XCIuL2JuLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ibi5qc1wiLFxuXHRcIi4vYm9cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JvLmpzXCIsXG5cdFwiLi9iby5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm8uanNcIixcblx0XCIuL2JyXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ici5qc1wiLFxuXHRcIi4vYnIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JyLmpzXCIsXG5cdFwiLi9ic1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnMuanNcIixcblx0XCIuL2JzLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9icy5qc1wiLFxuXHRcIi4vY2FcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2NhLmpzXCIsXG5cdFwiLi9jYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY2EuanNcIixcblx0XCIuL2NzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jcy5qc1wiLFxuXHRcIi4vY3MuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2NzLmpzXCIsXG5cdFwiLi9jdlwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3YuanNcIixcblx0XCIuL2N2LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jdi5qc1wiLFxuXHRcIi4vY3lcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2N5LmpzXCIsXG5cdFwiLi9jeS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3kuanNcIixcblx0XCIuL2RhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kYS5qc1wiLFxuXHRcIi4vZGEuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RhLmpzXCIsXG5cdFwiLi9kZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUuanNcIixcblx0XCIuL2RlLWF0XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kZS1hdC5qc1wiLFxuXHRcIi4vZGUtYXQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLWF0LmpzXCIsXG5cdFwiLi9kZS1jaFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtY2guanNcIixcblx0XCIuL2RlLWNoLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kZS1jaC5qc1wiLFxuXHRcIi4vZGUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLmpzXCIsXG5cdFwiLi9kdlwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZHYuanNcIixcblx0XCIuL2R2LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kdi5qc1wiLFxuXHRcIi4vZWxcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VsLmpzXCIsXG5cdFwiLi9lbC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZWwuanNcIixcblx0XCIuL2VuLWF1XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1hdS5qc1wiLFxuXHRcIi4vZW4tYXUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWF1LmpzXCIsXG5cdFwiLi9lbi1jYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tY2EuanNcIixcblx0XCIuL2VuLWNhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1jYS5qc1wiLFxuXHRcIi4vZW4tZ2JcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWdiLmpzXCIsXG5cdFwiLi9lbi1nYi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tZ2IuanNcIixcblx0XCIuL2VuLWllXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1pZS5qc1wiLFxuXHRcIi4vZW4taWUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWllLmpzXCIsXG5cdFwiLi9lbi1pbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWwuanNcIixcblx0XCIuL2VuLWlsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1pbC5qc1wiLFxuXHRcIi4vZW4taW5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWluLmpzXCIsXG5cdFwiLi9lbi1pbi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taW4uanNcIixcblx0XCIuL2VuLW56XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1uei5qc1wiLFxuXHRcIi4vZW4tbnouanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLW56LmpzXCIsXG5cdFwiLi9lbi1zZ1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tc2cuanNcIixcblx0XCIuL2VuLXNnLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1zZy5qc1wiLFxuXHRcIi4vZW9cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VvLmpzXCIsXG5cdFwiLi9lby5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW8uanNcIixcblx0XCIuL2VzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy5qc1wiLFxuXHRcIi4vZXMtZG9cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLWRvLmpzXCIsXG5cdFwiLi9lcy1kby5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtZG8uanNcIixcblx0XCIuL2VzLW14XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy1teC5qc1wiLFxuXHRcIi4vZXMtbXguanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLW14LmpzXCIsXG5cdFwiLi9lcy11c1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtdXMuanNcIixcblx0XCIuL2VzLXVzLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy11cy5qc1wiLFxuXHRcIi4vZXMuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLmpzXCIsXG5cdFwiLi9ldFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXQuanNcIixcblx0XCIuL2V0LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ldC5qc1wiLFxuXHRcIi4vZXVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2V1LmpzXCIsXG5cdFwiLi9ldS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXUuanNcIixcblx0XCIuL2ZhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mYS5qc1wiLFxuXHRcIi4vZmEuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZhLmpzXCIsXG5cdFwiLi9maVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmkuanNcIixcblx0XCIuL2ZpLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9maS5qc1wiLFxuXHRcIi4vZmlsXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9maWwuanNcIixcblx0XCIuL2ZpbC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmlsLmpzXCIsXG5cdFwiLi9mb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZm8uanNcIixcblx0XCIuL2ZvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mby5qc1wiLFxuXHRcIi4vZnJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLmpzXCIsXG5cdFwiLi9mci1jYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnItY2EuanNcIixcblx0XCIuL2ZyLWNhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci1jYS5qc1wiLFxuXHRcIi4vZnItY2hcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNoLmpzXCIsXG5cdFwiLi9mci1jaC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnItY2guanNcIixcblx0XCIuL2ZyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci5qc1wiLFxuXHRcIi4vZnlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2Z5LmpzXCIsXG5cdFwiLi9meS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnkuanNcIixcblx0XCIuL2dhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nYS5qc1wiLFxuXHRcIi4vZ2EuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dhLmpzXCIsXG5cdFwiLi9nZFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ2QuanNcIixcblx0XCIuL2dkLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nZC5qc1wiLFxuXHRcIi4vZ2xcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dsLmpzXCIsXG5cdFwiLi9nbC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ2wuanNcIixcblx0XCIuL2dvbS1kZXZhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nb20tZGV2YS5qc1wiLFxuXHRcIi4vZ29tLWRldmEuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1kZXZhLmpzXCIsXG5cdFwiLi9nb20tbGF0blwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ29tLWxhdG4uanNcIixcblx0XCIuL2dvbS1sYXRuLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nb20tbGF0bi5qc1wiLFxuXHRcIi4vZ3VcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2d1LmpzXCIsXG5cdFwiLi9ndS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ3UuanNcIixcblx0XCIuL2hlXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oZS5qc1wiLFxuXHRcIi4vaGUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hlLmpzXCIsXG5cdFwiLi9oaVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaGkuanNcIixcblx0XCIuL2hpLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oaS5qc1wiLFxuXHRcIi4vaHJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hyLmpzXCIsXG5cdFwiLi9oci5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaHIuanNcIixcblx0XCIuL2h1XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9odS5qc1wiLFxuXHRcIi4vaHUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h1LmpzXCIsXG5cdFwiLi9oeS1hbVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaHktYW0uanNcIixcblx0XCIuL2h5LWFtLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oeS1hbS5qc1wiLFxuXHRcIi4vaWRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lkLmpzXCIsXG5cdFwiLi9pZC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaWQuanNcIixcblx0XCIuL2lzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pcy5qc1wiLFxuXHRcIi4vaXMuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lzLmpzXCIsXG5cdFwiLi9pdFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaXQuanNcIixcblx0XCIuL2l0LWNoXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pdC1jaC5qc1wiLFxuXHRcIi4vaXQtY2guanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LWNoLmpzXCIsXG5cdFwiLi9pdC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaXQuanNcIixcblx0XCIuL2phXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9qYS5qc1wiLFxuXHRcIi4vamEuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2phLmpzXCIsXG5cdFwiLi9qdlwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvanYuanNcIixcblx0XCIuL2p2LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9qdi5qc1wiLFxuXHRcIi4va2FcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2thLmpzXCIsXG5cdFwiLi9rYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva2EuanNcIixcblx0XCIuL2trXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ray5qc1wiLFxuXHRcIi4va2suanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2trLmpzXCIsXG5cdFwiLi9rbVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva20uanNcIixcblx0XCIuL2ttLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rbS5qc1wiLFxuXHRcIi4va25cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tuLmpzXCIsXG5cdFwiLi9rbi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva24uanNcIixcblx0XCIuL2tvXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rby5qc1wiLFxuXHRcIi4va28uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tvLmpzXCIsXG5cdFwiLi9rdVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva3UuanNcIixcblx0XCIuL2t1LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rdS5qc1wiLFxuXHRcIi4va3lcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t5LmpzXCIsXG5cdFwiLi9reS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva3kuanNcIixcblx0XCIuL2xiXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sYi5qc1wiLFxuXHRcIi4vbGIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xiLmpzXCIsXG5cdFwiLi9sb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbG8uanNcIixcblx0XCIuL2xvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sby5qc1wiLFxuXHRcIi4vbHRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x0LmpzXCIsXG5cdFwiLi9sdC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbHQuanNcIixcblx0XCIuL2x2XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sdi5qc1wiLFxuXHRcIi4vbHYuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x2LmpzXCIsXG5cdFwiLi9tZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWUuanNcIixcblx0XCIuL21lLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tZS5qc1wiLFxuXHRcIi4vbWlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21pLmpzXCIsXG5cdFwiLi9taS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWkuanNcIixcblx0XCIuL21rXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tay5qc1wiLFxuXHRcIi4vbWsuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21rLmpzXCIsXG5cdFwiLi9tbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWwuanNcIixcblx0XCIuL21sLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tbC5qc1wiLFxuXHRcIi4vbW5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21uLmpzXCIsXG5cdFwiLi9tbi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbW4uanNcIixcblx0XCIuL21yXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tci5qc1wiLFxuXHRcIi4vbXIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21yLmpzXCIsXG5cdFwiLi9tc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXMuanNcIixcblx0XCIuL21zLW15XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tcy1teS5qc1wiLFxuXHRcIi4vbXMtbXkuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLW15LmpzXCIsXG5cdFwiLi9tcy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXMuanNcIixcblx0XCIuL210XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tdC5qc1wiLFxuXHRcIi4vbXQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL210LmpzXCIsXG5cdFwiLi9teVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXkuanNcIixcblx0XCIuL215LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9teS5qc1wiLFxuXHRcIi4vbmJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25iLmpzXCIsXG5cdFwiLi9uYi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmIuanNcIixcblx0XCIuL25lXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9uZS5qc1wiLFxuXHRcIi4vbmUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25lLmpzXCIsXG5cdFwiLi9ubFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmwuanNcIixcblx0XCIuL25sLWJlXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubC1iZS5qc1wiLFxuXHRcIi4vbmwtYmUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLWJlLmpzXCIsXG5cdFwiLi9ubC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmwuanNcIixcblx0XCIuL25uXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubi5qc1wiLFxuXHRcIi4vbm4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25uLmpzXCIsXG5cdFwiLi9vYy1sbmNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL29jLWxuYy5qc1wiLFxuXHRcIi4vb2MtbG5jLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9vYy1sbmMuanNcIixcblx0XCIuL3BhLWluXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wYS1pbi5qc1wiLFxuXHRcIi4vcGEtaW4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3BhLWluLmpzXCIsXG5cdFwiLi9wbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcGwuanNcIixcblx0XCIuL3BsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wbC5qc1wiLFxuXHRcIi4vcHRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3B0LmpzXCIsXG5cdFwiLi9wdC1iclwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcHQtYnIuanNcIixcblx0XCIuL3B0LWJyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC1ici5qc1wiLFxuXHRcIi4vcHQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3B0LmpzXCIsXG5cdFwiLi9yb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcm8uanNcIixcblx0XCIuL3JvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9yby5qc1wiLFxuXHRcIi4vcnVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3J1LmpzXCIsXG5cdFwiLi9ydS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcnUuanNcIixcblx0XCIuL3NkXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZC5qc1wiLFxuXHRcIi4vc2QuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NkLmpzXCIsXG5cdFwiLi9zZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2UuanNcIixcblx0XCIuL3NlLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZS5qc1wiLFxuXHRcIi4vc2lcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NpLmpzXCIsXG5cdFwiLi9zaS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2kuanNcIixcblx0XCIuL3NrXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zay5qc1wiLFxuXHRcIi4vc2suanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NrLmpzXCIsXG5cdFwiLi9zbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2wuanNcIixcblx0XCIuL3NsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zbC5qc1wiLFxuXHRcIi4vc3FcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NxLmpzXCIsXG5cdFwiLi9zcS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3EuanNcIixcblx0XCIuL3NyXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci5qc1wiLFxuXHRcIi4vc3ItY3lybFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3ItY3lybC5qc1wiLFxuXHRcIi4vc3ItY3lybC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3ItY3lybC5qc1wiLFxuXHRcIi4vc3IuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NyLmpzXCIsXG5cdFwiLi9zc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3MuanNcIixcblx0XCIuL3NzLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zcy5qc1wiLFxuXHRcIi4vc3ZcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N2LmpzXCIsXG5cdFwiLi9zdi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3YuanNcIixcblx0XCIuL3N3XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zdy5qc1wiLFxuXHRcIi4vc3cuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N3LmpzXCIsXG5cdFwiLi90YVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGEuanNcIixcblx0XCIuL3RhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90YS5qc1wiLFxuXHRcIi4vdGVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RlLmpzXCIsXG5cdFwiLi90ZS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGUuanNcIixcblx0XCIuL3RldFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGV0LmpzXCIsXG5cdFwiLi90ZXQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RldC5qc1wiLFxuXHRcIi4vdGdcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RnLmpzXCIsXG5cdFwiLi90Zy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGcuanNcIixcblx0XCIuL3RoXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90aC5qc1wiLFxuXHRcIi4vdGguanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RoLmpzXCIsXG5cdFwiLi90a1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGsuanNcIixcblx0XCIuL3RrLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ay5qc1wiLFxuXHRcIi4vdGwtcGhcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RsLXBoLmpzXCIsXG5cdFwiLi90bC1waC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGwtcGguanNcIixcblx0XCIuL3RsaFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGxoLmpzXCIsXG5cdFwiLi90bGguanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RsaC5qc1wiLFxuXHRcIi4vdHJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RyLmpzXCIsXG5cdFwiLi90ci5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHIuanNcIixcblx0XCIuL3R6bFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHpsLmpzXCIsXG5cdFwiLi90emwuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bC5qc1wiLFxuXHRcIi4vdHptXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90em0uanNcIixcblx0XCIuL3R6bS1sYXRuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90em0tbGF0bi5qc1wiLFxuXHRcIi4vdHptLWxhdG4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS1sYXRuLmpzXCIsXG5cdFwiLi90em0uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS5qc1wiLFxuXHRcIi4vdWctY25cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3VnLWNuLmpzXCIsXG5cdFwiLi91Zy1jbi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdWctY24uanNcIixcblx0XCIuL3VrXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ay5qc1wiLFxuXHRcIi4vdWsuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3VrLmpzXCIsXG5cdFwiLi91clwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXIuanNcIixcblx0XCIuL3VyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ci5qc1wiLFxuXHRcIi4vdXpcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3V6LmpzXCIsXG5cdFwiLi91ei1sYXRuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei1sYXRuLmpzXCIsXG5cdFwiLi91ei1sYXRuLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei1sYXRuLmpzXCIsXG5cdFwiLi91ei5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXouanNcIixcblx0XCIuL3ZpXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS92aS5qc1wiLFxuXHRcIi4vdmkuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3ZpLmpzXCIsXG5cdFwiLi94LXBzZXVkb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUveC1wc2V1ZG8uanNcIixcblx0XCIuL3gtcHNldWRvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS94LXBzZXVkby5qc1wiLFxuXHRcIi4veW9cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3lvLmpzXCIsXG5cdFwiLi95by5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUveW8uanNcIixcblx0XCIuL3poLWNuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1jbi5qc1wiLFxuXHRcIi4vemgtY24uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWNuLmpzXCIsXG5cdFwiLi96aC1oa1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvemgtaGsuanNcIixcblx0XCIuL3poLWhrLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1oay5qc1wiLFxuXHRcIi4vemgtbW9cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLW1vLmpzXCIsXG5cdFwiLi96aC1tby5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvemgtbW8uanNcIixcblx0XCIuL3poLXR3XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC10dy5qc1wiLFxuXHRcIi4vemgtdHcuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLXR3LmpzXCJcbn07XG5cblxuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHZhciBpZCA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpO1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhpZCk7XG59XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8obWFwLCByZXEpKSB7XG5cdFx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRcdGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblx0XHR0aHJvdyBlO1xuXHR9XG5cdHJldHVybiBtYXBbcmVxXTtcbn1cbndlYnBhY2tDb250ZXh0LmtleXMgPSBmdW5jdGlvbiB3ZWJwYWNrQ29udGV4dEtleXMoKSB7XG5cdHJldHVybiBPYmplY3Qua2V5cyhtYXApO1xufTtcbndlYnBhY2tDb250ZXh0LnJlc29sdmUgPSB3ZWJwYWNrQ29udGV4dFJlc29sdmU7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tDb250ZXh0O1xud2VicGFja0NvbnRleHQuaWQgPSBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUgc3luYyByZWN1cnNpdmUgXlxcXFwuXFxcXC8uKiRcIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMi42NjcgMi42NjZoLTEuMzMzVjJBLjY2Ni42NjYgMCAxIDAgMTAgMnYuNjY2SDZWMmEuNjY3LjY2NyAwIDAgMC0xLjMzMyAwdi42NjZIMy4zMzRhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoOS4zMzNhMiAyIDAgMCAwIDItMnYtOGEyIDIgMCAwIDAtMi0yWm0uNjY3IDEwYS42NjYuNjY2IDAgMCAxLS42NjcuNjY3SDMuMzMzYS42NjYuNjY2IDAgMCAxLS42NjYtLjY2N1Y4aDEwLjY2NnY0LjY2NlptMC02SDIuNjY3di0yQS42NjcuNjY3IDAgMCAxIDMuMzM0IDRoMS4zMzN2LjY2NmEuNjY3LjY2NyAwIDAgMCAxLjMzMyAwVjRoNHYuNjY2YS42NjcuNjY3IDAgMSAwIDEuMzM0IDBWNGgxLjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LjY2NnYyWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTQgMTMuMzMzSDIuNjY3VjEyaDJhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNGgtMlY5LjMzM2g0LjY2N2EuNjY3LjY2NyAwIDAgMCAwLTEuMzMzSDIuNjY3VjYuNjY2SDEwYS42NjcuNjY3IDAgMCAwIDAtMS4zMzNIMi42NjdWNGgxMGEuNjY3LjY2NyAwIDEgMCAwLTEuMzM0aC0xMFYyYS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2MTJhLjY2Ny42NjcgMCAwIDAgLjY2Ni42NjZoMTJhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTggNGEuNjY3LjY2NyAwIDAgMC0uNjY3LjY2NnY2LjY2N2EuNjY3LjY2NyAwIDEgMCAxLjMzNCAwVjQuNjY2QS42NjcuNjY3IDAgMCAwIDggNFpNNC42NjcgOEEuNjY3LjY2NyAwIDAgMCA0IDguNjY2djIuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWOC42NjZBLjY2Ny42NjcgMCAwIDAgNC42NjcgOFptNi42NjctMS4zMzRhLjY2Ny42NjcgMCAwIDAtLjY2Ny42Njd2NGEuNjY3LjY2NyAwIDAgMCAxLjMzMyAwdi00YS42NjcuNjY3IDAgMCAwLS42NjYtLjY2N1ptMS4zMzMtNS4zMzNIMy4zMzNhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDkuMzM0YTIgMiAwIDAgMCAyLTJWMy4zMzNhMiAyIDAgMCAwLTItMlptLjY2NyAxMS4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ny42NjdIMy4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ni0uNjY3VjMuMzMzYS42NjcuNjY3IDAgMCAxIC42NjctLjY2N2g5LjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LjY2N3Y5LjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTUuMzM0IDcuMzM0aDUuMzMzYS42NjcuNjY3IDAgMCAwIC41MTMtLjI0Ny42NjYuNjY2IDAgMCAwIC4xNTQtLjU1M0wxMC42NjcgMy4yQS42NjcuNjY3IDAgMCAwIDEwIDIuNjY3SDZhLjY2Ny42NjcgMCAwIDAtLjY2Ni41MzNsLS42NjcgMy4zMzRhLjY2Ny42NjcgMCAwIDAgLjE0LjU1My42NjcuNjY3IDAgMCAwIC41MjcuMjQ3Wk02LjU0NyA0aDIuOTA3bC40IDJINi4xNDdsLjQtMlptOC4xMiA1LjJBLjY2Ny42NjcgMCAwIDAgMTQgOC42NjdoLTRhLjY2Ny42NjcgMCAwIDAtLjY2Ni41MzNsLS42NjcgMy4zMzRhLjY2Ny42NjcgMCAwIDAgLjE0LjU1My42NjYuNjY2IDAgMCAwIC41MjcuMjQ3aDUuMzMzYS42NjcuNjY3IDAgMCAwIC41MTMtLjI0Ny42NjYuNjY2IDAgMCAwIC4xNTQtLjU1M0wxNC42NjcgOS4yWm0tNC41MiAyLjguNC0yaDIuOTA2bC40IDJoLTMuNzA2Wk02IDguNjY4SDJhLjY2Ny42NjcgMCAwIDAtLjY2Ni41MzNsLS42NjcgMy4zMzRhLjY2Ny42NjcgMCAwIDAgLjE0LjU1My42NjYuNjY2IDAgMCAwIC41MjcuMjQ3aDUuMzMzYS42NjcuNjY3IDAgMCAwIC41MTMtLjI0Ny42NjYuNjY2IDAgMCAwIC4xNTQtLjU1M0w2LjY2NyA5LjJBLjY2Ny42NjcgMCAwIDAgNiA4LjY2N1ptLTMuODUzIDMuMzM0LjQtMmgyLjkwN2wuNCAySDIuMTQ3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOS4zMzQgNS4zMzNIMTBBLjY2Ny42NjcgMCAwIDAgMTAgNGgtLjY2NmEuNjY3LjY2NyAwIDAgMCAwIDEuMzMzWm0wIDIuNjY3SDEwYS42NjcuNjY3IDAgMCAwIDAtMS4zMzRoLS42NjZhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNFpNNiA1LjMzM2guNjY3YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNINmEuNjY3LjY2NyAwIDEgMCAwIDEuMzMzWk02IDhoLjY2N2EuNjY3LjY2NyAwIDEgMCAwLTEuMzM0SDZBLjY2Ny42NjcgMCAwIDAgNiA4Wm04IDUuMzMzaC0uNjY2VjJhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3SDMuMzMzQS42NjcuNjY3IDAgMCAwIDIuNjY3IDJ2MTEuMzMzSDJhLjY2Ni42NjYgMCAxIDAgMCAxLjMzM2gxMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWm0tNS4zMzMgMEg3LjMzNHYtMi42NjdoMS4zMzN2Mi42NjdabTMuMzMzIDBoLTJWMTBhLjY2Ny42NjcgMCAwIDAtLjY2Ni0uNjY3SDYuNjY3QS42NjcuNjY3IDAgMCAwIDYgMTB2My4zMzNINFYyLjY2Nmg4djEwLjY2N1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTcuMzM0IDZIMTBhLjY2Ny42NjcgMCAxIDAgMC0xLjMzM0g4LjY2N1Y0YS42NjcuNjY3IDAgMSAwLTEuMzMzIDB2LjY2N2EyIDIgMCAwIDAgMCA0aDEuMzMzYS42NjcuNjY3IDAgMCAxIDAgMS4zMzNINmEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDEuMzM0VjEyYS42NjcuNjY3IDAgMSAwIDEuMzMzIDB2LS42NjZhMiAyIDAgMCAwIDAtNEg3LjMzNGEuNjY3LjY2NyAwIDAgMSAwLTEuMzM0Wk04IC42NjdhNy4zMzMgNy4zMzMgMCAxIDAgMCAxNC42NjdBNy4zMzMgNy4zMzMgMCAwIDAgOCAuNjY3Wk04IDE0QTYgNiAwIDEgMSA4IDJhNiA2IDAgMCAxIDAgMTJaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMy4xMiA0LjU4N2EyLjkzMyAyLjkzMyAwIDAgMC0yLjIwNi0uMjEzIDIuOTEzIDIuOTEzIDAgMCAwLTUuODIgMCAyLjk4NyAyLjk4NyAwIDAgMC0yLjIwNy4xOTNBMi45MTMgMi45MTMgMCAwIDAgMy4yOTQgOS45YTIuOTMzIDIuOTMzIDAgMCAwLS41MzQgMS42NjdjLjAwMy4xNjguMDE5LjMzNS4wNDcuNWEyLjg5MyAyLjg5MyAwIDAgMCAyLjg2IDIuNDJjLjE0Mi4wMS4yODUuMDEuNDI3IDBBMi45NDcgMi45NDcgMCAwIDAgOCAxMy4zMzRhMi45NDcgMi45NDcgMCAwIDAgMS45MDcgMS4xMjZjLjE0Mi4wMS4yODUuMDEuNDI3IDBhMi45MDcgMi45MDcgMCAwIDAgMi4zNzMtNC41OCAyLjkwNyAyLjkwNyAwIDAgMCAuNDEzLTUuMzMzdi4wNFpNNi44OTQgMy4yOTRhMS42IDEuNiAwIDAgMSAyLjIxMyAwIDEuNjIgMS42MiAwIDAgMSAuMzQ3IDEuNzczbC0uMTc0LjM5My0uNDQuMzg3QTIuNzEzIDIuNzEzIDAgMCAwIDggNS43Yy0uMzcgMC0uNzM1LjA3OC0xLjA3My4yMjdsLS4zNzMtLjg2YTEuNTkzIDEuNTkzIDAgMCAxIC4zNC0xLjc3M1ptLTQuMDY3IDQuNTZBMS41OCAxLjU4IDAgMCAxIDUuMjk0IDZsLjMyNi4yODcuMjM0LjUzM2EyLjYxMyAyLjYxMyAwIDAgMC0uNTIgMS41NDcgMS45IDEuOSAwIDAgMCAwIC4zaC0uMzY3bC0uNTYuMDUzYTEuNTggMS41OCAwIDAgMS0xLjU4LS44NjZabTQuNCA0LjA1M2ExLjU4NyAxLjU4NyAwIDAgMS0zLjEwNy0uMDUzIDIuMDQ3IDIuMDQ3IDAgMCAxIDAtLjI4IDEuNTUzIDEuNTUzIDAgMCAxIC43OC0xLjMzNGwuMzQtLjI0LjYwNy0uMDY2Yy4zODIuNTMyLjk0Ny45MDQgMS41ODcgMS4wNDZsLS4yMDcuOTI3Wk04IDkuN2ExLjMzMyAxLjMzMyAwIDEgMSAwLTIuNjY2QTEuMzMzIDEuMzMzIDAgMCAxIDggOS43Wm0zLjg4IDIuMTQ3YTEuNTczIDEuNTczIDAgMCAxLTEuNzg2IDEuMjkzIDEuNTkzIDEuNTkzIDAgMCAxLTEuMzM0LTEuMjMzbC0uMDkzLS40LjE0LS42MTNhMi42NjcgMi42NjcgMCAwIDAgMS40NjctMS4xNzRsLjMzMy4yaC4wNmwuNDQuMjZhMS41ODcgMS41ODcgMCAwIDEgLjc3MyAxLjY2N1ptMS4yOTQtNGExLjU5NCAxLjU5NCAwIDAgMS0xLjQyLjg4N2gtLjE2bC0uNDI3LS4wNjctLjUtLjI3M2MwLS42NDktLjIzOC0xLjI3NC0uNjY3LTEuNzZsLjI4Ny0uMjQ3LjQyLS4zODdhMS41OCAxLjU4IDAgMCAxIDIuNDY3IDEuODh2LS4wMzNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMy4zMzQgNS45NmEuODguODggMCAwIDAtLjA0LS4xOHYtLjA2YS43MTYuNzE2IDAgMCAwLS4xMjctLjE4N2wtNC00YS43MTMuNzEzIDAgMCAwLS4xODctLjEyN2gtLjA2YS41ODcuNTg3IDAgMCAwLS4yMi0uMDczSDQuNjY3YTIgMiAwIDAgMC0yIDJ2OS4zMzNhMiAyIDAgMCAwIDIgMmg2LjY2N2EyIDIgMCAwIDAgMi0yVjUuOTZabS00LTIuMzU0IDEuNzI2IDEuNzI3SDEwYS42NjcuNjY3IDAgMCAxLS42NjYtLjY2N3YtMS4wNlpNMTIgMTIuNjY2YS42NjcuNjY3IDAgMCAxLS42NjYuNjY3SDQuNjY3QS42NjYuNjY2IDAgMCAxIDQgMTIuNjY2VjMuMzMzYS42NjcuNjY3IDAgMCAxIC42NjctLjY2N0g4djJhMiAyIDAgMCAwIDIgMmgydjZaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMi45NiA4LjY2NmMtLjE0NyAwLS4zLS4wNDYtLjQ0Ny0uMDhhNi4yOSA2LjI5IDAgMCAxLS44NzMtLjI2IDEuMzMzIDEuMzMzIDAgMCAwLTEuNjUzLjY2N2wtLjE0Ny4zQTguMTIgOC4xMiAwIDAgMSA4LjA2NyA3Ljk2YTguMTIgOC4xMiAwIDAgMS0xLjMzNC0xLjc3NEw3LjAxMyA2YTEuMzMzIDEuMzMzIDAgMCAwIC42NjctMS42NTQgNi44ODcgNi44ODcgMCAwIDEtLjI2LS44NzNjLS4wMzMtLjE0Ny0uMDYtLjMtLjA4LS40NTNhMiAyIDAgMCAwLTItMS42NmgtMmEyIDIgMCAwIDAtMiAyLjI3MyAxMi42NjcgMTIuNjY3IDAgMCAwIDExLjAxMyAxMC45NzNoLjI1NGEyIDIgMCAwIDAgMS44MjctMS4xODUgMiAyIDAgMCAwIC4xNzMtLjgyMXYtMmEyIDIgMCAwIDAtMS42NDctMS45MzRabS4zMzMgNGEuNjY2LjY2NiAwIDAgMS0uNDgyLjY0MS43MDcuNzA3IDAgMCAxLS4yOS4wMjZBMTEuMzMzIDExLjMzMyAwIDAgMSAyLjcxMiAzLjQ4YS43MjcuNzI3IDAgMCAxIC4xNjctLjU0Ny42NjcuNjY3IDAgMCAxIC41LS4yMjdoMmEuNjY3LjY2NyAwIDAgMSAuNjY3LjUyNyA3LjQxNCA3LjQxNCAwIDAgMCAuNDA3IDEuNTczbC0uOTM0LjQzNGEuNjY3LjY2NyAwIDAgMC0uMzI3Ljg4NiA5LjY2IDkuNjYgMCAwIDAgNC42NjcgNC42NjcuNjY2LjY2NiAwIDAgMCAuNTA3IDAgLjY2NS42NjUgMCAwIDAgLjM4LS4zNDdsLjQxMy0uOTMzYy4zNDUuMTIzLjY5Ny4yMjYgMS4wNTMuMzA3LjE3OC4wNC4zNTguMDczLjU0LjFhLjY2Ny42NjcgMCAwIDEgLjUyNy42NjZsLjAxMyAyLjA4WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTQuMTQ2IDhhMiAyIDAgMCAwIC41Mi0xLjMzMyAyIDIgMCAwIDAtMi0ySDkuMjEzQTIgMiAwIDAgMCA3LjMzMyAyaC00YTIgMiAwIDAgMC0yIDIgMiAyIDAgMCAwIC41MiAxLjMzMyAyIDIgMCAwIDAgMCAyLjY2NyAyIDIgMCAwIDAgMCAyLjY2N0EyIDIgMCAwIDAgMS4zMzMgMTJhMiAyIDAgMCAwIDIgMmg5LjMzM2EyIDIgMCAwIDAgMS40OC0zLjMzMyAyIDIgMCAwIDAgMC0yLjY2N1ptLTYuODEzIDQuNjY3aC00YS42NjcuNjY3IDAgMCAxIDAtMS4zMzRoNGEuNjY3LjY2NyAwIDAgMSAwIDEuMzM0Wm0wLTIuNjY3aC00YS42NjcuNjY3IDAgMCAxIDAtMS4zMzNoNGEuNjY3LjY2NyAwIDAgMSAwIDEuMzMzWm0wLTIuNjY3aC00YS42NjcuNjY3IDAgMSAxIDAtMS4zMzNoNGEuNjY3LjY2NyAwIDAgMSAwIDEuMzMzWm0wLTIuNjY2aC00YS42NjcuNjY3IDAgMCAxIDAtMS4zMzRoNGEuNjY3LjY2NyAwIDEgMSAwIDEuMzM0Wm01Ljc5MyA3LjgwNmEuNjIuNjIgMCAwIDEtLjQ2LjE5NEg5LjIxM2MuMTYtLjQzLjE2LS45MDQgMC0xLjMzNGgzLjQ1M2EuNjY3LjY2NyAwIDAgMSAuNjY3LjY2Ny42NjYuNjY2IDAgMCAxLS4yMDcuNDczWm0wLTIuNjY2YS42Mi42MiAwIDAgMS0uNDYuMTkzSDkuMjEzYy4xNi0uNDMuMTYtLjkwMyAwLTEuMzMzaDMuNDUzYS42NjYuNjY2IDAgMCAxIC42NjcuNjY2LjY2Ni42NjYgMCAwIDEtLjIwNy40NzRabTAtMi42NjdhLjYyLjYyIDAgMCAxLS40Ni4xOTNIOS4yMTNjLjE2LS40My4xNi0uOTAzIDAtMS4zMzNoMy40NTNhLjY2Ni42NjYgMCAwIDEgLjY2Ny42NjcuNjY2LjY2NiAwIDAgMS0uMjA3LjQ3M1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTkuMzMzIDUuMzMzSDEwQS42NjcuNjY3IDAgMSAwIDEwIDRoLS42NjdhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1ptMCAyLjY2N0gxMGEuNjY3LjY2NyAwIDEgMCAwLTEuMzM0aC0uNjY3YS42NjcuNjY3IDAgMCAwIDAgMS4zMzRaTTYgNS4zMzNoLjY2NmEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzSDZhLjY2Ny42NjcgMCAxIDAgMCAxLjMzM1pNNiA4aC42NjZhLjY2Ny42NjcgMCAxIDAgMC0xLjMzNEg2QS42NjcuNjY3IDAgMCAwIDYgOFptOCA1LjMzM2gtLjY2N1YyYS42NjYuNjY2IDAgMCAwLS42NjctLjY2N0gzLjMzM0EuNjY3LjY2NyAwIDAgMCAyLjY2NiAydjExLjMzM0gyYS42NjYuNjY2IDAgMSAwIDAgMS4zMzNoMTJhLjY2Ny42NjcgMCAxIDAgMC0xLjMzM1ptLTUuMzM0IDBINy4zMzN2LTIuNjY3aDEuMzMzdjIuNjY3Wm0zLjMzNCAwaC0yVjEwYS42NjcuNjY3IDAgMCAwLS42NjctLjY2N0g2LjY2NkEuNjY3LjY2NyAwIDAgMCA2IDEwdjMuMzMzSDRWMi42NjZoOHYxMC42NjdaXFxcIiBmaWxsPVxcXCIjQTZCNUJBXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTMuMzM0LjY2N0gyLjY2N2EyIDIgMCAwIDAtMiAydjEwLjY2N2EyIDIgMCAwIDAgMiAyaDEwLjY2N2EyIDIgMCAwIDAgMi0yVjIuNjY3YTIgMiAwIDAgMC0yLTJaTTUuMzM0IDE0SDIuNjY3QS42NjcuNjY3IDAgMCAxIDIgMTMuMzM0di0uNzg3YTIgMiAwIDAgMCAuNjY3LjEyaDIuNjY3VjE0Wm0wLTIuNjY2SDIuNjY3QS42NjcuNjY3IDAgMCAxIDIgMTAuNjY3VjkuODhhMiAyIDAgMCAwIC42NjcuMTJoMi42Njd2MS4zMzRabTAtMi42NjdIMi42NjdBLjY2Ny42NjcgMCAwIDEgMiA4VjIuNjY3QS42NjcuNjY3IDAgMCAxIDIuNjY3IDJoMi42Njd2Ni42NjdabTQgNS4zMzNINi42Njd2LTRoMi42Njd2NFptMC01LjMzM0g2LjY2N1YyaDIuNjY3djYuNjY3Wk0xNCAxMy4zMzRhLjY2Ny42NjcgMCAwIDEtLjY2Ni42NjZoLTIuNjY3di0xLjMzM2gyLjY2N2EyIDIgMCAwIDAgLjY2Ni0uMTJ2Ljc4N1ptMC0yLjY2N2EuNjY3LjY2NyAwIDAgMS0uNjY2LjY2N2gtMi42NjdWMTBoMi42NjdBMiAyIDAgMCAwIDE0IDkuODh2Ljc4N1pNMTQgOGEuNjY3LjY2NyAwIDAgMS0uNjY2LjY2N2gtMi42NjdWMmgyLjY2N2EuNjY3LjY2NyAwIDAgMSAuNjY2LjY2N1Y4Wm0tMi0zLjMzM2EuNjY3LjY2NyAwIDEgMCAwIDEuMzM0LjY2Ny42NjcgMCAwIDAgMC0xLjMzNFpNNCA2YS42NjcuNjY3IDAgMSAwIDAtMS4zMzNBLjY2Ny42NjcgMCAwIDAgNCA2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNCA3LjMzM2EuNjY3LjY2NyAwIDEgMCAwIDEuMzMzLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptOCAwYS42NjcuNjY3IDAgMSAwIDAgMS4zMzQuNjY3LjY2NyAwIDAgMCAwLTEuMzM0Wm0xLjMzNC00SDIuNjY3YTIgMiAwIDAgMC0yIDJ2NS4zMzNhMiAyIDAgMCAwIDIgMmgxMC42NjdhMiAyIDAgMCAwIDItMlY1LjMzM2EyIDIgMCAwIDAtMi0yWk0xNCAxMC42NjZhLjY2Ny42NjcgMCAwIDEtLjY2Ni42NjdIMi42NjdBLjY2Ni42NjYgMCAwIDEgMiAxMC42NjZWNS4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3aDEwLjY2N2EuNjY3LjY2NyAwIDAgMSAuNjY2LjY2N3Y1LjMzM1pNOCA2YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptMCAyLjY2NmEuNjY3LjY2NyAwIDEgMSAwLTEuMzMzLjY2Ny42NjcgMCAwIDEgMCAxLjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTExLjMzMyA0YS42NjcuNjY3IDAgMCAwLS42NjcuNjY2djUuMDZMNS4xNCA0LjE5M2EuNjcuNjcgMCAwIDAtLjk0Ny45NDdsNS41MzMgNS41MjZoLTUuMDZhLjY2Ny42NjcgMCAxIDAgMCAxLjMzNGg2LjY2N2EuNjY3LjY2NyAwIDAgMCAuNjY3LS42NjdWNC42NjZBLjY2Ni42NjYgMCAwIDAgMTEuMzMzIDRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk02IDYuNjY2aC42NjdhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM0g2YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNaTTYgOGEuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaDRBLjY2Ny42NjcgMCAwIDAgMTAgOEg2Wm03LjMzMy0yLjA0YS44OC44OCAwIDAgMC0uMDQtLjE4di0uMDZhLjcxNC43MTQgMCAwIDAtLjEyNy0uMTg3bC00LTRhLjcxMy43MTMgMCAwIDAtLjE4Ni0uMTI3LjIxMy4yMTMgMCAwIDAtLjA2IDAgLjU4Ny41ODcgMCAwIDAtLjIyLS4wNzNINC42NjdhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDYuNjY2YTIgMiAwIDAgMCAyLTJWNS45NlptLTQtMi4zNTQgMS43MjcgMS43MjdIMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ny0uNjY3di0xLjA2Wk0xMiAxMi42NjZhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjdINC42NjZBLjY2Ni42NjYgMCAwIDEgNCAxMi42NjZWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3SDh2MmEyIDIgMCAwIDAgMiAyaDJ2NlptLTItMkg2QS42NjcuNjY3IDAgMCAwIDYgMTJoNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJtNi42NjYgMTEuNy0xLjE4IDEuMTQ3YTEuNjUgMS42NSAwIDAgMS0yLjMzMy0yLjMzM0w2LjE4IDcuNDhhMS42NCAxLjY0IDAgMCAxIDIuMjYtLjA2bC4wOC4wNjdhLjY2Ny42NjcgMCAwIDAgLjkzMy0uOTUzIDEuODM2IDEuODM2IDAgMCAwLS4xMi0uMTQgMi45NzMgMi45NzMgMCAwIDAtNC4wNi4xNDZMMi4yMDYgOS41NzRhMi45ODcgMi45ODcgMCAwIDAgNC4yMiA0LjIybDEuMTU0LTEuMTI3YS42NjcuNjY3IDAgMCAwLS45MTQtLjk2N1ptNy4xMjctOS40OTNhMi45OTMgMi45OTMgMCAwIDAtNC4yMiAwTDguNDIgMy4zMzRhLjY2Ny42NjcgMCAwIDAgLjkxMy45NjZsMS4xNTMtMS4xNDZhMS42NSAxLjY1IDAgMCAxIDIuMzM0IDIuMzMzTDkuNzkzIDguNTJhMS42NCAxLjY0IDAgMCAxLTIuMjYuMDZsLS4wOC0uMDY2YS42NjcuNjY3IDAgMCAwLS45MzMuOTUzIDIuOTggMi45OCAwIDAgMCA0LjIxMy0uMDA3bDMuMDMzLTMuMDMzYTIuOTkzIDIuOTkzIDAgMCAwIC4wMjctNC4yMlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTkuMzMzIDcuMzM0aC0uNjY2di0uNjY3YS42NjcuNjY3IDAgMSAwLTEuMzM0IDB2LjY2N2gtLjY2NmEuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaC42NjZ2LjY2N2EuNjY3LjY2NyAwIDAgMCAxLjMzNCAwdi0uNjY3aC42NjZhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptNC4xMDctNEE0LjE5NCA0LjE5NCAwIDAgMCA4IDIuOTRhNC4xOCA0LjE4IDAgMCAwLTUuNDQgNi4zMmw0IDQuMDM0YTIgMiAwIDAgMCAyLjgyNyAwbDQtNC4wMzRhNC4xOCA0LjE4IDAgMCAwIC4wNTMtNS45MjZabS0uOTQgNC45NzMtNCA0YS42NjYuNjY2IDAgMCAxLS45NDcgMGwtNC00YTIuODYgMi44NiAwIDAgMSAwLTQgMi44NDcgMi44NDcgMCAwIDEgNCAwIC42NjcuNjY3IDAgMCAwIC45NDcgMCAyLjg0NyAyLjg0NyAwIDAgMSA0IDAgMi44NiAyLjg2IDAgMCAxIDAgNC4wMTN2LS4wMTNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0zLjMzMyA1LjMzM2g5LjMzNGEuNjY3LjY2NyAwIDEgMCAwLTEuMzMzSDMuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzNabTEwLjY2NyAySDJhLjY2Ny42NjcgMCAxIDAgMCAxLjMzNGgxMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0Wm0tMS4zMzMgMy4zMzRIMy4zMzNhLjY2Ny42NjcgMCAxIDAgMCAxLjMzM2g5LjMzNGEuNjY2LjY2NiAwIDEgMCAwLTEuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTAuNjY3IDkuMzMzSDUuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptMC0yLjY2N2gtNGEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNFptMi42NjYtNGgtMlYyQS42NjcuNjY3IDAgMSAwIDEwIDJ2LjY2Nkg4LjY2N1YyYS42NjcuNjY3IDAgMSAwLTEuMzM0IDB2LjY2Nkg2VjJhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYuNjY2aC0yQS42NjcuNjY3IDAgMCAwIDIgMy4zMzN2OS4zMzNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMy4zMzNhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3Wm0tLjY2NiAxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0YS42NjYuNjY2IDAgMCAxLS42NjctLjY2N1Y0aDEuMzM0di42NjZhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY0aDEuMzMzdi42NjZhLjY2Ny42NjcgMCAwIDAgMS4zMzQgMFY0SDEwdi42NjZhLjY2Ni42NjYgMCAxIDAgMS4zMzMgMFY0aDEuMzM0djguNjY2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTMuMDg3IDIuNDMzYS42NjcuNjY3IDAgMCAwLS41Ni0uMTMzIDUuMzMzIDUuMzMzIDAgMCAxLTQuMTQ3LS44NDcuNjY3LjY2NyAwIDAgMC0uNzYgMCA1LjMzMyA1LjMzMyAwIDAgMS00LjE0Ni44NDcuNjY3LjY2NyAwIDAgMC0uODA3LjY1M1Y3LjkyYTYgNiAwIDAgMCAyLjUxMyA0Ljg4NmwyLjQzNCAxLjczNGEuNjY3LjY2NyAwIDAgMCAuNzczIDBsMi40MzMtMS43MzRhNiA2IDAgMCAwIDIuNTE0LTQuODg2VjIuOTUzYS42NjcuNjY3IDAgMCAwLS4yNDctLjUyWk0xMiA3LjkyYTQuNjY2IDQuNjY2IDAgMCAxLTEuOTUzIDMuOEw4IDEzLjE4bC0yLjA0Ni0xLjQ2QTQuNjY3IDQuNjY3IDAgMCAxIDQgNy45MnYtNC4yYTYuNjY3IDYuNjY3IDAgMCAwIDQtLjkyNyA2LjY2NyA2LjY2NyAwIDAgMCA0IC45Mjd2NC4yWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNy4zMzMgNy45MzN2My40YS42NjcuNjY3IDAgMSAwIDEuMzM0IDB2LTMuNGEzLjMzMyAzLjMzMyAwIDEgMC0xLjMzNCAwWk04IDIuNjY3YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFptMi44MDcgNi45NDZhLjY4MS42ODEgMCAwIDAtLjI4IDEuMzM0YzEuNTEzLjMgMi4xNC44NCAyLjE0IDEuMDUzIDAgLjM4Ny0xLjYzNCAxLjMzMy00LjY2NyAxLjMzM1MzLjMzMyAxMi4zODcgMy4zMzMgMTJjMC0uMjEzLjYyNy0uNzUzIDIuMTQtMS4wOGEuNjgxLjY4MSAwIDAgMC0uMjgtMS4zMzNDMy4xNjcgMTAuMDUzIDIgMTAuOTI3IDIgMTJjMCAxLjc1MyAzLjAyIDIuNjY3IDYgMi42NjdzNi0uOTE0IDYtMi42NjdjMC0xLjA3My0xLjE2Ny0xLjk0Ny0zLjE5My0yLjM4N1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTIgMy4zMzNoMTJjLjQgMCAuNjY3LS4yNjYuNjY3LS42NjZTMTQuNCAyIDE0IDJIMmMtLjQgMC0uNjY3LjI2Ny0uNjY3LjY2N3MuMjY3LjY2Ni42NjcuNjY2Wm0xMiA5LjMzNEg3LjMzM2MtLjQgMC0uNjY2LjI2Ni0uNjY2LjY2NnMuMjY3LjY2Ny42NjcuNjY3SDE0Yy40IDAgLjY2Ny0uMjY3LjY2Ny0uNjY3cy0uMjY3LS42NjYtLjY2Ny0uNjY2Wm0wLTUuMzM0SDJjLS40IDAtLjY2Ny4yNjctLjY2Ny42NjdzLjI2Ny42NjcuNjY3LjY2N2gxMmMuNCAwIC42NjctLjI2Ny42NjctLjY2N1MxNC40IDcuMzMzIDE0IDcuMzMzWk0xNCAxMEgyYy0uNCAwLS42NjcuMjY3LS42NjcuNjY3cy4yNjcuNjY2LjY2Ny42NjZoMTJjLjQgMCAuNjY3LS4yNjYuNjY3LS42NjZTMTQuNCAxMCAxNCAxMFptMC01LjMzM0gyYy0uNCAwLS42NjcuMjY2LS42NjcuNjY2UzEuNiA2IDIgNmgxMmMuNCAwIC42NjctLjI2Ny42NjctLjY2N1MxNC40IDQuNjY3IDE0IDQuNjY3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJtMTMuMzMzIDUuMzMzLTQtMy41MDZhMiAyIDAgMCAwLTIuNjY2IDBsLTQgMy41MDZBMiAyIDAgMCAwIDIgNi44NHY1LjgyN2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY2LjgzM2EyIDIgMCAwIDAtLjY2Ny0xLjVabS00IDhINi42NjdWMTBhLjY2Ny42NjcgMCAwIDEgLjY2Ni0uNjY3aDEuMzM0YS42NjcuNjY3IDAgMCAxIC42NjYuNjY3djMuMzMzWm0zLjMzNC0uNjY2YS42NjcuNjY3IDAgMCAxLS42NjcuNjY2aC0xLjMzM1YxMGEyIDIgMCAwIDAtMi0ySDcuMzMzYTIgMiAwIDAgMC0yIDJ2My4zMzNINGEuNjY3LjY2NyAwIDAgMS0uNjY3LS42NjZWNi44MzNhLjY2Ny42NjcgMCAwIDEgLjIyNy0uNWw0LTMuNWEuNjY3LjY2NyAwIDAgMSAuODggMGw0IDMuNWEuNjY3LjY2NyAwIDAgMSAuMjI3LjV2NS44MzRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMC42NjcgOS4zMzNINS4zMzNhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM2g1LjMzNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWm0wLTIuNjY3aC00YS42NjcuNjY3IDAgMCAwIDAgMS4zMzRoNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0Wm0yLjY2Ni00aC0yVjJBLjY2Ny42NjcgMCAxIDAgMTAgMnYuNjY2SDguNjY3VjJhLjY2Ny42NjcgMCAxIDAtMS4zMzQgMHYuNjY2SDZWMmEuNjY3LjY2NyAwIDAgMC0xLjMzMyAwdi42NjZoLTJBLjY2Ny42NjcgMCAwIDAgMiAzLjMzM3Y5LjMzM2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzLjMzM2EuNjY2LjY2NiAwIDAgMC0uNjY3LS42NjdabS0uNjY2IDEwYS42NjcuNjY3IDAgMCAxLS42NjcuNjY3SDRhLjY2Ni42NjYgMCAwIDEtLjY2Ny0uNjY3VjRoMS4zMzR2LjY2NmEuNjY3LjY2NyAwIDEgMCAxLjMzMyAwVjRoMS4zMzN2LjY2NmEuNjY3LjY2NyAwIDAgMCAxLjMzNCAwVjRIMTB2LjY2NmEuNjY2LjY2NiAwIDEgMCAxLjMzMyAwVjRoMS4zMzR2OC42NjZaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE3XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk04IDguNWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabTAgMi42NjZhLjY2Ny42NjcgMCAxIDEgMC0xLjMzNC42NjcuNjY3IDAgMCAxIDAgMS4zMzRabS0uNDczLTQuMTkzYy4wNjMuMDYuMTM4LjEwOC4yMi4xNGEuNjI3LjYyNyAwIDAgMCAuNTA3IDAgLjY2Ny42NjcgMCAwIDAgLjIyLS4xNEwxMCA1LjQ3M2EuNjg4LjY4OCAwIDEgMC0uOTczLS45NzNsLS4zNi4zOTNWMi41YS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2Mi4zOTNsLS4zNi0uMzkzQS42ODguNjg4IDAgMCAwIDYgNS40NzNsMS41MjcgMS41Wm01LjE0IDMuNTI3YS42NjYuNjY2IDAgMSAwLTEuMzMyIDAgLjY2Ni42NjYgMCAwIDAgMS4zMzIgMFptLjY2Ny00LjY2N2gtMmEuNjY2LjY2NiAwIDEgMCAwIDEuMzMzaDJhLjY2Ny42NjcgMCAwIDEgLjY2Ni42Njd2NS4zMzNhLjY2Ny42NjcgMCAwIDEtLjY2Ni42NjdIMi42NjdBLjY2Ni42NjYgMCAwIDEgMiAxMy4xNjZWNy44MzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3aDJhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM2gtMmEyIDIgMCAwIDAtMiAydjUuMzMzYTIgMiAwIDAgMCAyIDJoMTAuNjY3YTIgMiAwIDAgMCAyLTJWNy44MzNhMiAyIDAgMCAwLTItMlptLTEwIDQuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzM0IDAgLjY2Ny42NjcgMCAwIDAtMS4zMzQgMFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTYgNi42NjZoLjY2N2EuNjY3LjY2NyAwIDAgMCAwLTEuMzMzSDZhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1pNMTAgOEg2YS42NjcuNjY3IDAgMSAwIDAgMS4zMzNoNEEuNjY3LjY2NyAwIDEgMCAxMCA4Wm0wIDIuNjY2SDZBLjY2Ny42NjcgMCAwIDAgNiAxMmg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRabTMuMTQgMi44NmExLjA4NSAxLjA4NSAwIDAgMC0uMS0uMDguNTA3LjUwNyAwIDAgMC0uMTItLjA2bC0uMTItLjA1M2EuNjY3LjY2NyAwIDAgMC0uMzg2LjA0LjU5OS41OTkgMCAwIDAtLjM2LjM2QS41Ni41NiAwIDAgMCAxMiAxNGEuNjY4LjY2OCAwIDEgMCAxLjI4LS4yNTQuNzY2Ljc2NiAwIDAgMC0uMTQtLjIyWm0uMTk0LTcuNTY2YS44OC44OCAwIDAgMC0uMDQtLjE4di0uMDZhLjcxNi43MTYgMCAwIDAtLjEyNy0uMTg3bC00LTRhLjcxMy43MTMgMCAwIDAtLjE4Ny0uMTI3LjIxMy4yMTMgMCAwIDAtLjA2IDAgLjU4Ny41ODcgMCAwIDAtLjIyLS4wNzNINC42NjdhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAySDEwYS42NjcuNjY3IDAgMSAwIDAtMS4zMzNINC42NjdBLjY2Ni42NjYgMCAwIDEgNCAxMi42NjZWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3SDh2MmEyIDIgMCAwIDAgMiAyaDJWOGEuNjY3LjY2NyAwIDAgMCAxLjMzNCAwVjUuOTZaTTEwIDUuMzMzYS42NjcuNjY3IDAgMCAxLS42NjYtLjY2N3YtMS4wNmwxLjcyNiAxLjcyN0gxMFpNMTIuNjY3IDEwYS42NjcuNjY3IDAgMCAwLS42NjcuNjY2VjEyYS42NjcuNjY3IDAgMCAwIDEuMzM0IDB2LTEuMzM0YS42NjcuNjY3IDAgMCAwLS42NjctLjY2NlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwibTE0LjIxMyAzLjM2Ny00LTEuMzMzaC0uMDQ2YS40NjYuNDY2IDAgMCAwLS4wOTQgMGgtLjI4Nkw2IDMuMzM0bC0zLjc4Ny0xLjNhLjY2Ny42NjcgMCAwIDAtLjYuMDkzLjY2Ny42NjcgMCAwIDAtLjI4LjU0VjEyYS42NjYuNjY2IDAgMCAwIC40NTQuNjMzbDQgMS4zMzRhLjY2Ny42NjcgMCAwIDAgLjQxMyAwTDEwIDEyLjdsMy43ODcgMS4zYy4wNy4wMS4xNDIuMDEuMjEzIDBhLjYyNi42MjYgMCAwIDAgLjM4Ny0uMTI3LjY2Ni42NjYgMCAwIDAgLjI4LS41NFY0YS42NjcuNjY3IDAgMCAwLS40NTQtLjYzM1ptLTguODggOS4wNC0yLjY2Ni0uODg3VjMuNTk0bDIuNjY3Ljg4NnY3LjkyN1ptNC0uODg3LTIuNjY2Ljg4N1Y0LjQ4bDIuNjY3LS44ODZ2Ny45MjZabTQgLjg4Ny0yLjY2Ni0uODg3VjMuNTk0bDIuNjY3Ljg4NnY3LjkyN1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEzLjY0IDYuNDJhNS42NjYgNS42NjYgMCAwIDAtOC43NzMtNC4xOEE1LjcwNyA1LjcwNyAwIDAgMCAyLjM2IDYuNDIgNS42NCA1LjY0IDAgMCAwIDQgMTAuOTczbDMuNTMzIDMuNTRhLjY2Ni42NjYgMCAwIDAgLjk0NyAwbDMuNTItMy41NGE1LjYzOCA1LjYzOCAwIDAgMCAxLjY0LTQuNTUzWm0tMi41NzMgMy42MTNMOCAxMy4xbC0zLjA2Ny0zLjA2N2E0LjMyNyA0LjMyNyAwIDAgMS0xLjI0Ni0zLjQ4IDQuMzggNC4zOCAwIDAgMSAxLjkyNi0zLjIyQTQuMzEzIDQuMzEzIDAgMCAxIDExLjcxIDQuNzJjLjMzNC41NTUuNTQgMS4xNzYuNjA0IDEuODJhNC4zMjYgNC4zMjYgMCAwIDEtMS4yNDYgMy40OTNaTTggNGEzIDMgMCAxIDAgMyAzIDMuMDA3IDMuMDA3IDAgMCAwLTMtM1ptMCA0LjY2NmExLjY2NyAxLjY2NyAwIDEgMSAwLTMuMzMzIDEuNjY3IDEuNjY3IDAgMCAxIDAgMy4zMzNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk00LjY2NyAxMC42NjZhMSAxIDAgMCAwIDEtMSAuNTE0LjUxNCAwIDAgMCAwLS4xbDEuODYtMS44NmguMzA2TDguOTA3IDguNzh2LjA1M2ExIDEgMCAxIDAgMiAwVjguNzhsMi40MjYtMi40NDdhMSAxIDAgMSAwLTEtMSAuNTIyLjUyMiAwIDAgMCAwIC4xTDkuOTI3IDcuODRIOS44Mkw4LjY2NyA2LjY2NmExIDEgMCAwIDAtMiAwbC0yIDJhMSAxIDAgMCAwIDAgMlptOSAyLjY2N0gyLjMzM1YyQS42NjcuNjY3IDAgMSAwIDEgMnYxMmEuNjY3LjY2NyAwIDAgMCAuNjY3LjY2NmgxMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDEyIDE1XFxcIj48cGF0aCBkPVxcXCJtNi4xNCAxMC43NDIuMDIuMDU4LjAwNy4wMXYuMDM2YS4wNi4wNiAwIDAgMS0uMDA2LjAyN2wtLjAxLjAyMi0uMDA4LjAyMWEuMS4xIDAgMCAxLS4wNi4wNmwtLjAyMi4wMDgtLjAyMS4wMWEuMDYuMDYgMCAwIDEtLjAyNy4wMDZoLS4wMDZhLjE2Ni4xNjYgMCAwIDEtLjEwNi0uMDQuMjY2LjI2NiAwIDAgMS0uMDQtLjA2NmwtLjAwNC0uMDEtLjAwNS0uMDFhLjA2LjA2IDAgMCAxLS4wMDUtLjAyOHYtLjAyM2wtLjAwMS0uMDIzLS4wMDEtLjAxOC4wMDMtLjAwNy4wMTItLjAzM2EuNTc2LjU3NiAwIDAgMSAuMDIzLS4wMy4xNjYuMTY2IDAgMCAxIC4wNDQtLjAyNmwuMDE0LS4wMDVhLjE2Ny4xNjcgMCAwIDEgLjA5Ni0uMDFsLjA5NC0uNDkxLS4wOTQuNDlhLjE2Ni4xNjYgMCAwIDEgLjA3Ny4wMzhjLjAwOS4wMS4wMTguMDIyLjAyNi4wMzRabS42OTMtOS4zMzUgMy45NjMgMy45NjMuMDIzLjA3YS4zNy4zNyAwIDAgMSAuMDE0LjA1NHY2LjY3M2ExLjUgMS41IDAgMCAxLTEuNSAxLjVIMi42NjdhMS41IDEuNSAwIDAgMS0xLjA2MS0uNDRsLS4zNDguMzQ4LjM0OC0uMzQ4YTEuNSAxLjUgMCAwIDEtLjQ0LTEuMDZWMi44MzNhMS41IDEuNSAwIDAgMSAxLjUtMS41aDMuOTlsLjAxNS4wMDcuMTE2LjA2N2guMDQ2Wm0uODU0IDEuMzQ2TDYuODMzIDEuOXYyLjI2N0ExLjE2NyAxLjE2NyAwIDAgMCA4IDUuMzMzaDIuMjY3bC0uODUzLS44NTMtMS43MjctMS43MjdaTTYuNSAyLjE2N3YtLjVIMi42NjdBMS4xNjcgMS4xNjcgMCAwIDAgMS41IDIuODMzdjkuMzM0YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3IDEuMTY2aDYuNjY2YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3LTEuMTY2di02LjVIOGExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTJabS0uNjE4IDUuMjE1YS4xNjcuMTY3IDAgMCAxIC4yODUuMTE4djEuMzMzYS4xNjcuMTY3IDAgMCAxLS4zMzQgMFY3LjVjMC0uMDQ0LjAxOC0uMDg3LjA1LS4xMThaXFxcIiBmaWxsPVxcXCJDdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiQ3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTMuMDg3IDIuNDMzYS42NjcuNjY3IDAgMCAwLS41Ni0uMTMzIDUuMzMzIDUuMzMzIDAgMCAxLTQuMTQ3LS44NDcuNjY3LjY2NyAwIDAgMC0uNzYgMCA1LjMzMyA1LjMzMyAwIDAgMS00LjE0Ni44NDcuNjY3LjY2NyAwIDAgMC0uODA3LjY1M1Y3LjkyYTYgNiAwIDAgMCAyLjUxMyA0Ljg4NmwyLjQzNCAxLjczNGEuNjY3LjY2NyAwIDAgMCAuNzczIDBsMi40MzMtMS43MzRhNiA2IDAgMCAwIDIuNTE0LTQuODg2VjIuOTUzYS42NjcuNjY3IDAgMCAwLS4yNDctLjUyWk0xMiA3LjkyYTQuNjY2IDQuNjY2IDAgMCAxLTEuOTUzIDMuOEw4IDEzLjE4bC0yLjA0Ni0xLjQ2QTQuNjY3IDQuNjY3IDAgMCAxIDQgNy45MnYtNC4yYTYuNjY3IDYuNjY3IDAgMCAwIDQtLjkyNyA2LjY2NyA2LjY2NyAwIDAgMCA0IC45Mjd2NC4yWk05LjAyNyA2LjM5M2wtMS43OTMgMS44LS41OTQtLjZhLjY3LjY3IDAgMCAwLS45NDYuOTQ3TDYuNzYgOS42MDZhLjY2Ny42NjcgMCAwIDAgLjk0NyAwTDEwIDcuMzMzYS42Ny42NyAwIDEgMC0uOTQ2LS45NDdsLS4wMjcuMDA3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAyMCAyMFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMy42MzQgMTcuOWEuNS41IDAgMCAxLS41MjQuMDQ3bC0uMTQ5LjI5Ny4xNDktLjI5N2EuNS41IDAgMCAxLS4yMDItLjE4NGwtLjI4My4xNzQuMjgzLS4xNzRhLjUuNSAwIDAgMS0uMDc1LS4yNjN2LTE1YS41LjUgMCAwIDEgLjUtLjVoMTMuMzM0YS41LjUgMCAwIDEgLjUuNXYxNC45OTlhLjUuNSAwIDAgMS0uMjc1LjQ0NWgtLjAwMWEuNS41IDAgMCAxLS41MjUtLjA0NWwtMS43MjQtMS4yOS0uMi0uMTUtLjIuMTUtMS43MTcgMS4yOTFhLjUuNSAwIDAgMS0uNiAwTDEwLjIgMTYuNjA4bC0uMi0uMTUtLjIuMTVMOC4wNzUgMTcuOWEuNS41IDAgMCAxLS42IDBsLTEuNzE2LTEuMjkxLS4yLS4xNS0uMi4xNS0xLjcyNSAxLjI5Wm0xMi0xLjguNTMzLjM5OVYzSDMuODMzdjEzLjQ5OWwuNTMzLS4zOTkuODkyLS42NjZhLjUuNSAwIDAgMSAuNiAwbDEuNzE3IDEuMjkuMi4xNTEuMi0uMTVMOS43IDE1LjQzM2EuNS41IDAgMCAxIC42IDBsMS43MjUgMS4yOTIuMi4xNS4yLS4xNSAxLjcxNy0xLjI5MmEuNS41IDAgMCAxIC42IDBsLjg5Mi42NjdabS0yLjMtOS43NjdoLTVhLjUuNSAwIDAgMSAwLTFoNWEuNS41IDAgMCAxIDAgMVptMCAzLjMzNEg2LjY2NmEuNS41IDAgMCAxIDAtMWg2LjY2NmEuNS41IDAgMCAxIDAgMVptMCAzLjMzM0g2LjY2NmEuNS41IDAgMCAxIDAtMWg2LjY2NmEuNS41IDAgMSAxIDAgMVpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTggNy4yYTEuMzMzIDEuMzMzIDAgMSAwIDAtMi42NjdBMS4zMzMgMS4zMzMgMCAwIDAgOCA3LjJabS0uNDczIDQuNjA2YS42NjYuNjY2IDAgMCAwIC45NDYgMEwxMS4yIDkuMDczYTQuNTI3IDQuNTI3IDAgMSAwLTYuNCAwbDIuNzI3IDIuNzMzWk00LjgyIDUuNTZhMy4yMDcgMy4yMDcgMCAwIDEgMS40Mi0yLjM2NyAzLjIwNyAzLjIwNyAwIDAgMSAzLjUyIDAgMy4yMTMgMy4yMTMgMCAwIDEgLjUgNC45NEw4IDEwLjM5M2wtMi4yNi0yLjI2YTMuMTggMy4xOCAwIDAgMS0uOTItMi41NzNabTcuODQ2IDcuNzczSDMuMzMzYS42NjcuNjY3IDAgMSAwIDAgMS4zMzNoOS4zMzRhLjY2Ni42NjYgMCAxIDAgMC0xLjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTQuNjY2IDRhLjY2Ny42NjcgMCAxIDAgMCAxLjMzMy42NjcuNjY3IDAgMCAwIDAtMS4zMzNabTkuODA3IDMuODUzLTYuMzItNi4zMDdhLjY2Ny42NjcgMCAwIDAtLjQ4Ny0uMjEzaC00YS42NjcuNjY3IDAgMCAwLS40NzMuMTkzbC0xLjY2NyAxLjY2YS42NjcuNjY3IDAgMCAwLS4xOTMuNDc0djRhLjcuNyAwIDAgMCAuMTkzLjQ3M2w2LjMyNyA2LjMzM2EuNy43IDAgMCAwIC40NzMuMTk0LjY2Ni42NjYgMCAwIDAgLjQ3NC0uMTk0bDUuNjczLTUuNjczYS42NjcuNjY3IDAgMCAwIDAtLjk0Wk04LjMyNiAxMy4wNmwtNS42Ni01LjY2N3YtMy40NmwxLjI2Ny0xLjI2N2gzLjQ1M2w1LjY2NyA1LjY2LTQuNzI3IDQuNzM0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTAuNjY3IDkuMzMzSDUuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptMC0yLjY2N2gtNGEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNFptMi42NjYtNGgtMlYyQS42NjcuNjY3IDAgMSAwIDEwIDJ2LjY2Nkg4LjY2N1YyYS42NjcuNjY3IDAgMSAwLTEuMzM0IDB2LjY2Nkg2VjJhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYuNjY2aC0yQS42NjcuNjY3IDAgMCAwIDIgMy4zMzN2OS4zMzNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMy4zMzNhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3Wm0tLjY2NiAxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0YS42NjYuNjY2IDAgMCAxLS42NjctLjY2N1Y0aDEuMzM0di42NjZhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY0aDEuMzMzdi42NjZhLjY2Ny42NjcgMCAwIDAgMS4zMzQgMFY0SDEwdi42NjZhLjY2Ni42NjYgMCAxIDAgMS4zMzMgMFY0aDEuMzM0djguNjY2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNi42NjcgNS4zMzNoNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzaC00YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNaTTUuMzMzIDhoNS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNEg1LjMzM2EuNjY3LjY2NyAwIDAgMCAwIDEuMzM0Wm0wIDIuNjY2aDUuMzM0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNINS4zMzNhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1ptOC05LjMzM0gyLjY2N0EuNjY3LjY2NyAwIDAgMCAyIDJ2MTJhLjY2Ny42NjcgMCAwIDAgMS4wNjcuNTMzbDEuMzgtMS4wMzMgMS4zNzMgMS4wMzNhLjY2Ni42NjYgMCAwIDAgLjggMEw4IDEzLjVsMS4zOCAxLjAzM2EuNjY2LjY2NiAwIDAgMCAuOCAwbDEuMzczLTEuMDMzIDEuMzggMS4wMzNBLjY2Ny42NjcgMCAwIDAgMTQgMTRWMmEuNjY2LjY2NiAwIDAgMC0uNjY3LS42NjdabS0uNjY2IDExLjMzMy0uNzE0LS41MzNhLjY2Ny42NjcgMCAwIDAtLjggMEw5Ljc4IDEzLjE2NiA4LjQgMTIuMTMzYS42NjcuNjY3IDAgMCAwLS44IDBsLTEuMzggMS4wMzMtMS4zNzMtMS4wMzNhLjY2Ny42NjcgMCAwIDAtLjggMGwtLjcxNC41MzN2LTEwaDkuMzM0djEwWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxOCAxOFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cmVjdCB3aWR0aD1cXFwiMThcXFwiIGhlaWdodD1cXFwiMThcXFwiIHJ4PVxcXCI5XFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48cGF0aCBkPVxcXCJNMiA5YTcgNyAwIDEgMSAxNCAwQTcgNyAwIDEgMSAyIDlaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48cGF0aCBkPVxcXCJNMTMuMDgzIDguNDE2aC0zLjV2LTMuNWEuNTgzLjU4MyAwIDAgMC0xLjE2NyAwdjMuNWgtMy41YS41ODMuNTgzIDAgMCAwIDAgMS4xNjdoMy41djMuNWEuNTgzLjU4MyAwIDAgMCAxLjE2NyAwdi0zLjVoMy41YS41ODMuNTgzIDAgMCAwIDAtMS4xNjdaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNyAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTIuOTM1IDcuMzMzaC00di00YS42NjcuNjY3IDAgMSAwLTEuMzMzIDB2NGgtNGEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDR2NGEuNjY3LjY2NyAwIDEgMCAxLjMzNCAwdi00aDRhLjY2Ny42NjcgMCAxIDAgMC0xLjMzNFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMjEgMjBcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEwLjQ2NCAxLjY2N0M1Ljg4IDEuNjY3IDIuMTMgNS40MTcgMi4xMyAxMGMwIDQuNTg0IDMuNzUgOC4zMzQgOC4zMzMgOC4zMzRzOC4zMzMtMy43NSA4LjMzMy04LjMzNGMwLTQuNTgzLTMuNzUtOC4zMzMtOC4zMzMtOC4zMzNabTAgMTIuNWMtLjUgMC0uODMzLS4zMzMtLjgzMy0uODMzIDAtLjUuMzMzLS44MzQuODMzLS44MzQuNSAwIC44MzMuMzM0LjgzMy44MzQgMCAuNS0uMzMzLjgzMy0uODMzLjgzM1pNMTEuMjk3IDEwYzAgLjUtLjMzMy44MzQtLjgzMy44MzQtLjUgMC0uODMzLS4zMzQtLjgzMy0uODM0VjYuNjY3YzAtLjUuMzMzLS44MzMuODMzLS44MzMuNSAwIC44MzMuMzMzLjgzMy44MzNWMTBaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0zLjMzMyA1LjMzM2g5LjMzNGEuNjY3LjY2NyAwIDEgMCAwLTEuMzMzSDMuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzNabTEwLjY2NyAySDJhLjY2Ny42NjcgMCAxIDAgMCAxLjMzNGgxMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0Wm0tMS4zMzMgMy4zMzRIMy4zMzNhLjY2Ny42NjcgMCAxIDAgMCAxLjMzM2g5LjMzNGEuNjY2LjY2NiAwIDEgMCAwLTEuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMiAzLjMzM2gxMmMuNCAwIC42NjctLjI2Ni42NjctLjY2NlMxNC40IDIgMTQgMkgyYy0uNCAwLS42NjcuMjY3LS42NjcuNjY3cy4yNjcuNjY2LjY2Ny42NjZabTEyIDkuMzM0SDcuMzMzYy0uNCAwLS42NjYuMjY2LS42NjYuNjY2cy4yNjcuNjY3LjY2Ny42NjdIMTRjLjQgMCAuNjY3LS4yNjcuNjY3LS42NjdzLS4yNjctLjY2Ni0uNjY3LS42NjZabTAtNS4zMzRIMmMtLjQgMC0uNjY3LjI2Ny0uNjY3LjY2N3MuMjY3LjY2Ny42NjcuNjY3aDEyYy40IDAgLjY2Ny0uMjY3LjY2Ny0uNjY3UzE0LjQgNy4zMzMgMTQgNy4zMzNaTTE0IDEwSDJjLS40IDAtLjY2Ny4yNjctLjY2Ny42NjdzLjI2Ny42NjYuNjY3LjY2NmgxMmMuNCAwIC42NjctLjI2Ni42NjctLjY2NlMxNC40IDEwIDE0IDEwWm0wLTUuMzMzSDJjLS40IDAtLjY2Ny4yNjYtLjY2Ny42NjZTMS42IDYgMiA2aDEyYy40IDAgLjY2Ny0uMjY3LjY2Ny0uNjY3UzE0LjQgNC42NjcgMTQgNC42NjdaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgZD1cXFwibTkuNTI3IDkuNDYtMi4xOTQgMi4xOTQtLjg2LS44NmEuNjY4LjY2OCAwIDEgMC0uOTQ2Ljk0bDEuMzMzIDEuMzMzYS42NjYuNjY2IDAgMCAwIC45NDcgMGwyLjY2Ni0yLjY2N2EuNjY3LjY2NyAwIDEgMC0uOTQ2LS45NFptMi43NTMtMy45MTNhNC42NjcgNC42NjcgMCAwIDAtOC45MDcgMS4yNjcgMi42NjcgMi42NjcgMCAwIDAtLjI1MyA1LjEuNjY4LjY2OCAwIDEgMCAuNDI3LTEuMjQ3IDEuMzMzIDEuMzMzIDAgMCAxLS44OC0xLjI2N0ExLjMzMyAxLjMzMyAwIDAgMSA0IDguMDY3YS42NjcuNjY3IDAgMCAwIC42NjctLjY2NyAzLjMzMyAzLjMzMyAwIDAgMSA2LjQ4Ni0xLjA2Ni42NjguNjY4IDAgMCAwIC41Mi40NCAyIDIgMCAwIDEgLjE2IDMuODkzQS42NzIuNjcyIDAgMSAwIDEyIDEyaC4xNjdhMy4zMzMgMy4zMzMgMCAwIDAgLjExMy02LjQxM3YtLjA0WlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMjAgMjBcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTE0LjE2NyA3LjY0YS44MzQuODM0IDAgMCAwLTEuMTc1IDBMMTAgMTAuNTkgNy4wNSA3LjY0YS44MzMuODMzIDAgMSAwLTEuMTc1IDEuMTg0bDMuNTM0IDMuNTMzYS44MzMuODMzIDAgMCAwIDEuMTgzIDBsMy41NzUtMy41MzNhLjgzMy44MzMgMCAwIDAgMC0xLjE4M1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgOCAxMlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOCAxLjA1NCA2LjgwNSAwIDAgNmw2LjgwNSA2TDggMTAuOTQ3IDIuMzkgNiA4IDEuMDU0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCA4IDEyXFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0wIDEuMDU0IDEuMTk1IDAgOCA2bC02LjgwNSA2TDAgMTAuOTQ3IDUuNjEgNiAwIDEuMDU0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgdmlld0JveD1cXFwiMCAwIDE2IDE4XFxcIj48cGF0aCBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2Utd2lkdGg9XFxcIi42NjdcXFwiIGQ9XFxcIk00LjMxMSA3LjQzIDMuNzQgOGgxMC45MjZhMSAxIDAgMCAxIDAgMkgzLjc0bC41NzEuNTY5IDQuNCA0LjM4N2EuOTk5Ljk5OSAwIDAgMSAwIDEuNDJsLS4wMDEuMDAyYTEuMDAxIDEuMDAxIDAgMCAxLTEuNDIgMGgtLjAwMUwuNjI1IDkuNzEyYTEgMSAwIDAgMS0uMjA4LS4zMjdMLjQxNSA5LjM4YTEgMSAwIDAgMSAwLS43NmwuMDAyLS4wMDdhMSAxIDAgMCAxIC4yMDgtLjMyN2w2LjY2NC02LjY2NEExLjAwNSAxLjAwNSAwIDEgMSA4LjcxIDMuMDQ0TDQuMzEgNy40M1pcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTcgMTZcXFwiPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgZD1cXFwiTTUuOTU1IDEwLjMzM2g0LjY3bC0yLjMzNiAyLjI1My0yLjMzNC0yLjI1M1ptMS44NDQgMy4xOTRjLjI3LjI2LjcwNC4yNi45NzQgMGwzLjE3LTMuMDZjLjQzNi0uNDE0LjEzMi0xLjEzNC0uNDgzLTEuMTM0SDUuMTI2Yy0uNjE1IDAtLjkyNi43Mi0uNDkgMS4xNGwzLjE2MyAzLjA1M1ptLTIuNjgtNi44Nmg2LjM0MWMuNjE1IDAgLjkyNi0uNzIuNDktMS4xNGwtMy4xNy0zLjA2YS43MDYuNzA2IDAgMCAwLS45NzQgMGwtMy4xNyAzLjA2Yy0uNDM2LjQyLS4xMzIgMS4xNC40ODMgMS4xNFpcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDIwIDIwXFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0zLjYzNCAxNy45YS41LjUgMCAwIDEtLjUyNC4wNDdsLS4xNDkuMjk3LjE0OS0uMjk3YS41LjUgMCAwIDEtLjIwMi0uMTg0bC0uMjgzLjE3NC4yODMtLjE3NGEuNS41IDAgMCAxLS4wNzUtLjI2M3YtMTVhLjUuNSAwIDAgMSAuNS0uNWgxMy4zMzRhLjUuNSAwIDAgMSAuNS41djE0Ljk5OWEuNS41IDAgMCAxLS4yNzUuNDQ1aC0uMDAxYS41LjUgMCAwIDEtLjUyNS0uMDQ1bC0xLjcyNC0xLjI5LS4yLS4xNS0uMi4xNS0xLjcxNyAxLjI5MWEuNS41IDAgMCAxLS42IDBMMTAuMiAxNi42MDhsLS4yLS4xNS0uMi4xNUw4LjA3NSAxNy45YS41LjUgMCAwIDEtLjYgMGwtMS43MTYtMS4yOTEtLjItLjE1LS4yLjE1LTEuNzI1IDEuMjlabTEyLTEuOC41MzMuMzk5VjNIMy44MzN2MTMuNDk5bC41MzMtLjM5OS44OTItLjY2NmEuNS41IDAgMCAxIC42IDBsMS43MTcgMS4yOS4yLjE1MS4yLS4xNUw5LjcgMTUuNDMzYS41LjUgMCAwIDEgLjYgMGwxLjcyNSAxLjI5Mi4yLjE1LjItLjE1IDEuNzE3LTEuMjkyYS41LjUgMCAwIDEgLjYgMGwuODkyLjY2N1ptLTIuMy05Ljc2N2gtNWEuNS41IDAgMCAxIDAtMWg1YS41LjUgMCAwIDEgMCAxWm0wIDMuMzM0SDYuNjY2YS41LjUgMCAwIDEgMC0xaDYuNjY2YS41LjUgMCAwIDEgMCAxWm0wIDMuMzMzSDYuNjY2YS41LjUgMCAwIDEgMC0xaDYuNjY2YS41LjUgMCAxIDEgMCAxWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTMuNjQ3IDQuOTEzVjQuODZsLS4wNC0uMWEuNDY2LjQ2NiAwIDAgMC0uMDQ3LS4wNi42MjMuNjIzIDAgMCAwLS4wNi0uMDhsLS4wNi0uMDQ3LS4xMDctLjA1My01LTMuMDg3YS42NjcuNjY3IDAgMCAwLS43MDYgMEwyLjY2NyA0LjUybC0uMDYuMDUzLS4wNi4wNDdhLjYyNy42MjcgMCAwIDAtLjA2LjA4LjQ3My40NzMgMCAwIDAtLjA0Ny4wNmwtLjA0LjF2LjA1M2EuNzY3Ljc2NyAwIDAgMCAwIC4xNzR2NS44MjZhLjY2Ny42NjcgMCAwIDAgLjMxMy41NjdsNSAzLjA4N2MuMDMxLjAxOS4wNjUuMDMyLjEuMDRoLjA1NGEuNTc0LjU3NCAwIDAgMCAuMzQ2IDBoLjA1NGEuMzE0LjMxNCAwIDAgMCAuMS0uMDRsNC45NjYtMy4wODdhLjY2OC42NjggMCAwIDAgLjMxNC0uNTY3VjUuMDg3YS43NjEuNzYxIDAgMCAwIDAtLjE3NFptLTYuMzE0IDcuODk0TDMuNjY3IDEwLjU0VjYuMjg3bDMuNjY2IDIuMjZ2NC4yNlpNOCA3LjM5MyA0LjI2NyA1LjA4NyA4IDIuNzg3bDMuNzMzIDIuM0w4IDcuMzkzWm00LjMzMyAzLjE0Ny0zLjY2NiAyLjI2N3YtNC4yNmwzLjY2Ni0yLjI2djQuMjUzWlxcXCIgZmlsbD1cXFwiI0E2NkVFOVxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTUuMzM0IDcuMzM0aDUuMzMzYS42NjcuNjY3IDAgMCAwIC41MTMtLjI0Ny42NjYuNjY2IDAgMCAwIC4xNTQtLjU1M0wxMC42NjcgMy4yQS42NjcuNjY3IDAgMCAwIDEwIDIuNjY3SDZhLjY2Ny42NjcgMCAwIDAtLjY2Ni41MzNsLS42NjcgMy4zMzRhLjY2Ny42NjcgMCAwIDAgLjE0LjU1My42NjcuNjY3IDAgMCAwIC41MjcuMjQ3Wk02LjU0NyA0aDIuOTA3bC40IDJINi4xNDdsLjQtMlptOC4xMiA1LjJBLjY2Ny42NjcgMCAwIDAgMTQgOC42NjdoLTRhLjY2Ny42NjcgMCAwIDAtLjY2Ni41MzNsLS42NjcgMy4zMzRhLjY2Ny42NjcgMCAwIDAgLjE0LjU1My42NjYuNjY2IDAgMCAwIC41MjcuMjQ3aDUuMzMzYS42NjcuNjY3IDAgMCAwIC41MTMtLjI0Ny42NjYuNjY2IDAgMCAwIC4xNTQtLjU1M0wxNC42NjcgOS4yWm0tNC41MiAyLjguNC0yaDIuOTA2bC40IDJoLTMuNzA2Wk02IDguNjY4SDJhLjY2Ny42NjcgMCAwIDAtLjY2Ni41MzNsLS42NjcgMy4zMzRhLjY2Ny42NjcgMCAwIDAgLjE0LjU1My42NjYuNjY2IDAgMCAwIC41MjcuMjQ3aDUuMzMzYS42NjcuNjY3IDAgMCAwIC41MTMtLjI0Ny42NjYuNjY2IDAgMCAwIC4xNTQtLjU1M0w2LjY2NyA5LjJBLjY2Ny42NjcgMCAwIDAgNiA4LjY2N1ptLTMuODUzIDMuMzM0LjQtMmgyLjkwN2wuNCAySDIuMTQ3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOS4zMzQgNS4zMzNIMTBBLjY2Ny42NjcgMCAwIDAgMTAgNGgtLjY2NmEuNjY3LjY2NyAwIDAgMCAwIDEuMzMzWm0wIDIuNjY3SDEwYS42NjcuNjY3IDAgMCAwIDAtMS4zMzRoLS42NjZhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNFpNNiA1LjMzM2guNjY3YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNINmEuNjY3LjY2NyAwIDEgMCAwIDEuMzMzWk02IDhoLjY2N2EuNjY3LjY2NyAwIDEgMCAwLTEuMzM0SDZBLjY2Ny42NjcgMCAwIDAgNiA4Wm04IDUuMzMzaC0uNjY2VjJhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3SDMuMzMzQS42NjcuNjY3IDAgMCAwIDIuNjY3IDJ2MTEuMzMzSDJhLjY2Ni42NjYgMCAxIDAgMCAxLjMzM2gxMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWm0tNS4zMzMgMEg3LjMzNHYtMi42NjdoMS4zMzN2Mi42NjdabTMuMzMzIDBoLTJWMTBhLjY2Ny42NjcgMCAwIDAtLjY2Ni0uNjY3SDYuNjY3QS42NjcuNjY3IDAgMCAwIDYgMTB2My4zMzNINFYyLjY2Nmg4djEwLjY2N1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNyAxNlxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgZD1cXFwibTEyLjMyMiA1LjY4LjA5Mi4yMTIuMjIxLjA2N2EyLjgzNCAyLjgzNCAwIDAgMS0uMDk0IDUuNDUuMTY4LjE2OCAwIDAgMS0uMDgzLS4zMjVsLjAwOC0uMDAyYTIuNSAyLjUgMCAwIDAtLjItNC44NjZsLS4wMDgtLjAwMmEuMTY3LjE2NyAwIDAgMS0uMTMtLjExMmwtLjAwMi0uMDA0YTMuODM0IDMuODM0IDAgMCAwLTcuNDYgMS4yMzUuMTY3LjE2NyAwIDAgMS0uMTY2LjE2NyAxLjgzMyAxLjgzMyAwIDEgMCAwIDMuNjY3LjE2Ny4xNjcgMCAwIDEgMCAuMzMzaC0uMDAxYTIuMTY3IDIuMTY3IDAgMCAxLS41MS00LjI3M2wuMzM2LS4wOC4wNDQtLjM0MmE0LjE2NyA0LjE2NyAwIDAgMSA3Ljk1My0xLjEyNVptLTIuMzcgNC4xOTkuMDAyLjAwM2EuMTY3LjE2NyAwIDAgMSAwIC4yMzdsLS44NjYuODYtLjM1OC4zNTUuMzU4LjM1NC44NjYuODZhLjE2Ny4xNjcgMCAwIDEgMCAuMjM3bC0uMDAyLjAwM2EuMTY2LjE2NiAwIDAgMS0uMTgzLjAzNy4xNjYuMTY2IDAgMCAxLS4wNTQtLjAzN2wtLjg2LS44NjctLjM1NS0uMzU3LS4zNTUuMzU3LS44Ni44NjdhLjE2Ni4xNjYgMCAwIDEtLjE4My4wMzcuMTY2LjE2NiAwIDAgMS0uMDU0LS4wMzdsLS4wMDMtLjAwM2EuMTY3LjE2NyAwIDAgMSAwLS4yMzZsLjg2Ny0uODYuMzU4LS4zNTUtLjM1OC0uMzU1LS44NjUtLjg1OWEuMTcuMTcgMCAwIDEgLjI0LS4yNGwuODU4Ljg2Ni4zNTUuMzU3LjM1NS0uMzU3Ljg2LS44NjdhLjE2Ny4xNjcgMCAwIDEgLjIzNyAwWlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNCAxNFxcXCI+PHBhdGggZD1cXFwiTTcgLjMzMmMtMy42NjcgMC02LjY2NyAzLTYuNjY3IDYuNjY3IDAgMy42NjYgMyA2LjY2NiA2LjY2NyA2LjY2NiAzLjY2NiAwIDYuNjY2LTMgNi42NjYtNi42NjYgMC0zLjY2Ny0zLTYuNjY3LTYuNjY2LTYuNjY3Wm0yLjggNS41MzMtMy4yIDMuMmEuNjQ0LjY0NCAwIDAgMS0uOTM0IDBMNC4yIDcuNmEuNjQ0LjY0NCAwIDAgMSAwLS45MzQuNjQ0LjY0NCAwIDAgMSAuOTMzIDBsMSAxIDIuNzMzLTIuNzMzYS42NDQuNjQ0IDAgMCAxIC45MzQgMCAuNjQ1LjY0NSAwIDAgMSAwIC45MzNaXFxcIiBmaWxsPVxcXCIjMTc5OTdCXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgdmlld0JveD1cXFwiMCAwIDIwIDIwXFxcIj48cGF0aCBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJNMTcuMTY3IDMuMzM0di0uNWgtMTF2MTFoMTF2LTEwLjVaTTguMjA0IDguNzVsLjQ2My0uNDY2IDEuMzcgMS4zNzYuMzU1LjM1Ny4zNTQtLjM1NyAzLjkyLTMuOTUuNDYzLjQ2NS00LjczNyA0Ljc4TDguMjA0IDguNzVabS01LjM3IDcuOTE2di41SDE0LjV2LjY2N0gzLjMzM2MtLjY0IDAtMS4xNjYtLjUyNi0xLjE2Ni0xLjE2N1Y1LjVoLjY2NnYxMS4xNjdabTMuODMzLTE0LjVoMTBjLjY0IDAgMS4xNjYuNTI2IDEuMTY2IDEuMTY3djEwYzAgLjY0LS41MjYgMS4xNjYtMS4xNjYgMS4xNjZoLTEwYy0uNjQgMC0xLjE2Ny0uNTI2LTEuMTY3LTEuMTY2di0xMGMwLS42NC41MjYtMS4xNjcgMS4xNjctMS4xNjdaXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDEyIDEwXFxcIj48cGF0aCBkPVxcXCJtLjc1IDUuMjUgMy41IDMuNSA3LTcuNVxcXCIgc3Ryb2tlPVxcXCIjMTU1MzY2XFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuNVxcXCIgc3Ryb2tlLWxpbmVjYXA9XFxcInJvdW5kXFxcIiBzdHJva2UtbGluZWpvaW49XFxcInJvdW5kXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS1saW5lY2FwPVxcXCJyb3VuZFxcXCIgc3Ryb2tlLWxpbmVqb2luPVxcXCJyb3VuZFxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIyXFxcIiBjbGFzcz1cXFwiY2hldnJvbl9zdmdfX2ZlYXRoZXIgY2hldnJvbl9zdmdfX2ZlYXRoZXItY2hldnJvbnMtcmlnaHRcXFwiIHZpZXdCb3g9XFxcIjAgMCAyNCAyNFxcXCI+PHBhdGggZD1cXFwibTEzIDE3IDUtNS01LTVNNiAxN2w1LTUtNS01XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxOCAxOVxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOSAyLjQzNGMtNC4xMjUgMC03LjUgMy4zNzUtNy41IDcuNXMzLjM3NSA3LjUgNy41IDcuNSA3LjUtMy4zNzUgNy41LTcuNS0zLjM3NS03LjUtNy41LTcuNVptMi43NzUgOS4yMjVjLjMuMy4zLjc1IDAgMS4wNS0uMy4zLS43NS4zLTEuMDUgMEw5IDEwLjk4NGwtMS43MjUgMS43MjVjLS4zLjMtLjc1LjMtMS4wNSAwLS4zLS4zLS4zLS43NSAwLTEuMDVMNy45NSA5LjkzNCA2LjIyNSA4LjIwOWMtLjMtLjMtLjMtLjc1IDAtMS4wNS4zLS4zLjc1LS4zIDEuMDUgMEw5IDguODg0bDEuNzI1LTEuNzI1Yy4zLS4zLjc1LS4zIDEuMDUgMCAuMy4zLjMuNzUgMCAxLjA1TDEwLjA1IDkuOTM0bDEuNzI1IDEuNzI1WlxcXCIgZmlsbD1cXFwiI0UzNEQ1QlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCI+PHBhdGggZD1cXFwiTTguNzUgNS40NTdoLTEuNUExLjA4MyAxLjA4MyAwIDAgMCA2LjE2NyA2LjU0djNhMS4wODMgMS4wODMgMCAwIDAgMS4wODMgMS4wODNoMS41QTEuMDg0IDEuMDg0IDAgMCAwIDkuODMzIDkuNTRhLjQxNy40MTcgMCAwIDEgLjgzNCAwIDEuOTE3IDEuOTE3IDAgMCAxLTEuOTE3IDEuOTE3aC0xLjVBMS45MTYgMS45MTYgMCAwIDEgNS4zMzMgOS41NHYtM0ExLjkxNyAxLjkxNyAwIDAgMSA3LjI1IDQuNjIzaDEuNWExLjkxNyAxLjkxNyAwIDAgMSAxLjkxNyAxLjkxNy40MTYuNDE2IDAgMSAxLS44MzQgMEExLjA4MyAxLjA4MyAwIDAgMCA4Ljc1IDUuNDU3Wk00LjAxOCAyLjA4QTcuMTY3IDcuMTY3IDAgMSAxIDExLjk4MiAxNCA3LjE2NyA3LjE2NyAwIDAgMSA0LjAxOCAyLjA4Wm0uNDYzIDExLjIyNUE2LjMzNCA2LjMzNCAwIDEgMCAxMS41MiAyLjc3NGE2LjMzNCA2LjMzNCAwIDAgMC03LjA0IDEwLjUzMlpcXFwiIGZpbGw9XFxcIiNBNkI1QkFcXFwiIHN0cm9rZT1cXFwiI0E2QjVCQVxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNCAxNFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOS45MTcgNC4wODNhNC41MTUgNC41MTUgMCAxIDAtNS44MzQgNS44MzQgNC41MTUgNC41MTUgMCAxIDAgNS44MzQtNS44MzRabS0uOTM0LjkzNGEzLjQ1MyAzLjQ1MyAwIDAgMS0uMDMgMS40NDdMNy41MzIgNS4wNTFjLjI1Ni0uMDYxLjUxOC0uMDkzLjc4MS0uMDk0LjIyNCAwIC40NDYuMDIyLjY2NS4wNjRsLjAwNi0uMDA1Wm0tLjU0OCAyLjU2NmEzLjUgMy41IDAgMCAxLS44NTIuODUyTDUuNTY1IDYuNDE3YTMuNSAzLjUgMCAwIDEgLjg1Mi0uODUybDIuMDE4IDIuMDE4Wm0tNC42NjcuODUyYTMuMzU0IDMuMzU0IDAgMSAxIDQuNjY3LTQuNjY3aC0uMTQ2YTQuNTI3IDQuNTI3IDAgMCAwLTQuNDk3IDQuNTQ0YzAgLjA0Ny4wMDUuMS4wMDUuMTQ2bC0uMDI5LS4wMjNabTEuMjI1LjUxOWEzLjU3IDMuNTcgMCAwIDEtLjA2NC0uNjY1Yy4wMDEtLjI2My4wMzMtLjUyNi4wOTMtLjc4Mkw2LjQ0IDguOTI1Yy0uMjU2LjA2LS41MTkuMDkyLS43ODIuMDkzYTMuNTcgMy41NyAwIDAgMS0uNjM2LS4wNGwtLjAyOS0uMDI0Wm0zLjMyIDIuNzEyYTMuMzY1IDMuMzY1IDAgMCAxLTIuNzcxLTEuNDY0aC4xNDVhNC41MjcgNC41MjcgMCAwIDAgNC41MjEtNC41MTV2LS4xNDVhMy4zNTQgMy4zNTQgMCAwIDEtMS44OTYgNi4xMjRaXFxcIiBmaWxsPVxcXCIjRjRCNzg0XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDUyIDUyXFxcIj48Y2lyY2xlIGN4PVxcXCIyNlxcXCIgY3k9XFxcIjI2XFxcIiByPVxcXCIyNS4yNVxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiMS41XFxcIi8+PHBhdGggZD1cXFwiTTM3LjQgMzcuODJjLS4wNTEtLjYwOS0uMDUtNS4zODMtLjAzNi04LjMxOGEuNi42IDAgMCAwLS41OTgtLjYwNGgtLjAwM2EuNi42IDAgMCAwLS42LjU5OGMwIC4wMjItLjAxIDIuMTItLjAxIDQuMjA0LjAwMiAyLjExMi4wMDQgMy4yMjQuMDI5IDMuODM0bC05Ljg0OSAyLjk2M2EuNTk3LjU5NyAwIDAgMCAuMDU0LS4yNDh2LTcuODk3YS42LjYgMCAxIDAtMS4yMDIgMHY3Ljg5N2MwIC4wNTUuMDA5LjEwOC4wMjIuMTU5bC05LjU2LTIuOTA4LS4wMDgtNy45YS42LjYgMCAwIDAtLjYtLjYwMWgtLjAwMWEuNi42IDAgMCAwLS42LjZsLjAwNyA4LjM0N2EuNi42IDAgMCAwIC40MjUuNTc0bDEwLjg2OCAzLjMwNGEuNTkyLjU5MiAwIDAgMCAuMzQ4IDBsMTAuOTAzLTMuMjhhLjYuNiAwIDAgMCAuNDEtLjcyNFptLS40NzItLjQ0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcIiMxOEFDQjJcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjNcXFwiLz48cGF0aCBkPVxcXCJtNDAuMDQgMjMuNzQ2LTMuMzY1LTEuOTAyLS4wMTMtLjAwNmExMi4wMDQgMTIuMDA0IDAgMCAwLTIuMzMxLTMuMjU5LjYuNiAwIDEgMC0uODQ3Ljg1MiAxMC43NzggMTAuNzc4IDAgMCAxIDIuNjI0IDQuMjE3bC0xLjU4Mi40MzNjLTEuMjU4LTMuNjMzLTQuNzMzLTYuMTMyLTguNjEzLTYuMTMyYTkuMTE1IDkuMTE1IDAgMCAwLTQuNTcyIDEuMjI4LjYwMS42MDEgMCAwIDAgLjYwMyAxLjAzOSA3LjkwOCA3LjkwOCAwIDAgMSAzLjk2OS0xLjA2NiA3Ljk1IDcuOTUgMCAwIDEgNy40NSA1LjI1bC0xLjU4My40MzNhNi4zMTIgNi4zMTIgMCAwIDAtNS44NjctNC4wNDcgNi4yOTUgNi4yOTUgMCAwIDAtNS44NzkgNC4wNzVsLTEuNTg2LS40MjVhNy45NCA3Ljk0IDAgMCAxIDEuODcxLTIuOTcuNi42IDAgMSAwLS44NS0uODQ5IDkuMTQ4IDkuMTQ4IDAgMCAwLTIuMTg0IDMuNTA2bC0xLjU4My0uNDI1Yy4xMDItLjMxLjIxOC0uNjEzLjM0Ni0uOTA5YS42MDcuNjA3IDAgMCAwIC4xNzItLjM3NiAxMC43NzYgMTAuNzc2IDAgMCAxIDkuNjkzLTYuMWMxLjg5IDAgMy43NDkuNDk3IDUuMzc1IDEuNDM5YS42MDEuNjAxIDAgMCAwIC42MDItMS4wNCAxMS45NDkgMTEuOTQ5IDAgMCAwLTUuOTc3LTEuNiAxMS45OCAxMS45OCAwIDAgMC0xMC44MTQgNi44NmwtMy4xMzkgMS43NzRhLjYuNiAwIDAgMCAuMzU4IDEuMTJsMS4zMi0uMTM2LTEuNDczIDEuODdhLjU5OS41OTkgMCAwIDAgLjMwMS45NDdsMTEuMzYxIDMuMzc4YS42MDEuNjAxIDAgMCAwIC42OTEtLjI3NGwxLjQwOS0yLjQxOCAxLjMxIDIuMTc3YS42LjYgMCAwIDAgLjY3My4yN2wxMS40NDctMy4xMjlhLjYwMi42MDIgMCAwIDAgLjMxMy0uOTUxbC0xLjQ4Ny0xLjg4OSAxLjQ5OS4xNTZhLjYuNiAwIDAgMCAuMzU4LTEuMTJabS0xNC4xMjctMS43NThhNS4xMDQgNS4xMDQgMCAwIDEgNC43MDIgMy4xNjVsLTQuNzAzIDEuMjg4LTQuNzEtMS4yNjVhNS4wOSA1LjA5IDAgMCAxIDQuNzExLTMuMTg4Wm0tMi4xOTYgNy42NTItMTAuMDYxLTIuOTkyIDEuNDYtMS44NTVMMjUgMjcuNDM5bC0xLjI4MiAyLjIwMVptNC4zMTUtLjI0LTEuMTg0LTEuOTY0IDkuODctMi42NDMgMS40NDggMS44MzgtMTAuMTM0IDIuNzdabS02LjQ0Ny0xNS45N2EuNjAxLjYwMSAwIDAgMCAxLjE1NS0uMzNsLS44LTIuODAzYS42MDEuNjAxIDAgMCAwLTEuMTU2LjMzbC44MDEgMi44MDRabTcuNzU1LjQ3OWEuNjAxLjYwMSAwIDAgMCAuNzQyLS40MTJsLjgtMi44MDRhLjYuNiAwIDEgMC0xLjE1NS0uMzNsLS44IDIuODA0YS42LjYgMCAwIDAgLjQxMi43NDJabTYuNTcgMy42NzdhLjYwMS42MDEgMCAwIDAgLjQyLS4xN2wyLjA1My0yLjAwM2EuNi42IDAgMSAwLS44MzktLjg2bC0yLjA1MiAyLjAwMmEuNi42IDAgMCAwIC40MTkgMS4wM1ptLTIwLjU0LS4yMjFhLjYwMi42MDIgMCAwIDAgLjg0LS44NmwtMi4wMDMtMS45NTJhLjYuNiAwIDEgMC0uODM4Ljg2bDIuMDAxIDEuOTUyWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcIiMxOEFDQjJcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjNcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgNTIgNTJcXFwiPjxjaXJjbGUgY3g9XFxcIjI2XFxcIiBjeT1cXFwiMjZcXFwiIHI9XFxcIjI1LjI1XFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIxLjVcXFwiLz48cGF0aCBkPVxcXCJNMjAuODcxIDE3LjIwOEExMC4xNjcgMTAuMTY3IDAgMCAxIDI2IDE1LjgyM2ExMC4xMSAxMC4xMSAwIDAgMSA3LjE5NiAyLjk4LjU2Ni41NjYgMCAwIDAgLjgwNCAwQS41Ny41NyAwIDAgMCAzNCAxOGExMS4yNCAxMS4yNCAwIDAgMC04LTMuMzEzYy0yLjAwOCAwLTMuOTguNTMyLTUuNzAzIDEuNTRhLjU2OC41NjggMCAxIDAgLjU3NC45ODJaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiIzE4QUNCMlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuM1xcXCIvPjxwYXRoIGQ9XFxcIk0yNiAxMmMtMy43OCAwLTcuMzIxIDEuNDgyLTkuOTc0IDQuMTc1YS41Ny41NyAwIDAgMCAuODEuNzk4QTEyLjc3IDEyLjc3IDAgMCAxIDI2IDEzLjEzN2M3LjA5MiAwIDEyLjg2MyA1Ljc3IDEyLjg2MyAxMi44NjMgMCAyLjE4NC0uNTQ4IDQuMjQ0LTEuNTEzIDYuMDQ3bC0xLjc3LTIuNzA3YTQuMzgxIDQuMzgxIDAgMCAwIDEuNzM0LTMuNDkgNC4zOTIgNC4zOTIgMCAwIDAtNC4zODgtNC4zODggNC4zNCA0LjM0IDAgMCAwLTIuMzg5LjcwNyA1LjkzIDUuOTMgMCAwIDAtOS4xMjMuMDYgNC4zNzcgNC4zNzcgMCAwIDAtMi40NzktLjc2NyA0LjM5MiA0LjM5MiAwIDAgMC00LjM4NyA0LjM4N2MwIDEuNDE1LjY3NCAyLjY3NCAxLjcxNiAzLjQ3N2wtMS42MzUgMi42ODFhMTIuODYgMTIuODYgMCAwIDEgLjIwNC0xMi4zOTMuNTY5LjU2OSAwIDEgMC0uOTg3LS41NjVBMTQgMTQgMCAwIDAgMTIgMjZjMCA1LjA5NSAyLjczNiA5LjU2NCA2LjgxNyAxMi4wMTNhLjU2Ni41NjYgMCAwIDAgLjMyNS4xODlBMTMuOTExIDEzLjkxMSAwIDAgMCAyNiA0MGM3LjcxOSAwIDE0LTYuMjggMTQtMTRzLTYuMjgxLTE0LTE0LTE0Wm02LjkyNSAxMC41OTlhMy4yNTMgMy4yNTMgMCAwIDEgMy4yNSAzLjI1IDMuMjUzIDMuMjUzIDAgMCAxLTMuMjUgMy4yNWMtLjU3NiAwLTEuMTI3LS4xNS0xLjYxOC0uNDM0QTUuOTA2IDUuOTA2IDAgMCAwIDMxLjk0IDI2YTUuOTAzIDUuOTAzIDAgMCAwLS43NTctMi44OTYgMy4yMTcgMy4yMTcgMCAwIDEgMS43NC0uNTA1Wk0yNiAyMS4xOTZBNC44MSA0LjgxIDAgMCAxIDMwLjgwMyAyNiA0LjgxIDQuODEgMCAwIDEgMjYgMzAuODA0IDQuODEgNC44MSAwIDAgMSAyMS4xOTUgMjYgNC44MSA0LjgxIDAgMCAxIDI2IDIxLjE5NlptLTEwLjMxNiA0LjY1M2EzLjI1MyAzLjI1MyAwIDAgMSA1LjA5Mi0yLjY3OEE1LjkwNSA1LjkwNSAwIDAgMCAyMC4wNTggMjZjMCAuOTMzLjIxNyAxLjgxNi42MDEgMi42MDNhMy4yNTMgMy4yNTMgMCAwIDEtNC45NzYtMi43NTRabTMuMzgxIDEwLjk4MWExMi45NjIgMTIuOTYyIDAgMCAxLTMuNzc5LTMuNzE5bDEuOTU5LTMuMjEzYy41Mi4yMTggMS4wOS4zMzkgMS42ODkuMzM5LjgzMiAwIDEuNjI3LS4yMyAyLjMyMS0uNjY1YTYgNiAwIDAgMCAxLjMgMS4yNjVsLTMuNDkgNS45OTNaTTI2IDM4Ljg2NGMtMi4xNDYgMC00LjE3LS41My01Ljk1MS0xLjQ2M2wzLjQ5LTUuOTk1YTUuOSA1LjkgMCAwIDAgMi40Ni41MzVjLjg2MSAwIDEuNjgtLjE4NSAyLjQxOC0uNTE2bDMuNDk1IDUuOTk3QTEyLjc4NCAxMi43ODQgMCAwIDEgMjYgMzguODY0Wm02Ljg5Ny0yLjAxLTMuNDktNS45OWMuNDktLjM0NS45MjYtLjc2MiAxLjI5Mi0xLjIzNWE0LjM0OSA0LjM0OSAwIDAgMCAyLjIyNi42MDdjLjU5IDAgMS4xNTItLjExOCAxLjY2Ni0uMzNsMi4xMSAzLjIyNGExMi45NzMgMTIuOTczIDAgMCAxLTMuODA0IDMuNzIzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcIiMxOEFDQjJcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjNcXFwiLz48cGF0aCBkPVxcXCJNMjYgMjkuODAzYTMuODIzIDMuODIzIDAgMCAwIDMuMDQ4LTEuNTI4LjU2OS41NjkgMCAwIDAtLjkxLS42OCAyLjY2OCAyLjY2OCAwIDAgMS00LjMzNy0uMDg2LjU2OS41NjkgMCAwIDAtLjkzOC42NDNBMy44MDQgMy44MDQgMCAwIDAgMjYgMjkuODAzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcIiMxOEFDQjJcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjNcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTIgMTRcXFwiPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIGQ9XFxcIk04LjE2NyAzdi41aDMuMTY2YS4xNjcuMTY3IDAgMCAxIDAgLjMzM2gtMS4xNjZ2Ny44MzNhMS41IDEuNSAwIDAgMS0xLjUgMS41SDMuMzMzYTEuNSAxLjUgMCAwIDEtMS4wNi0uNDM5bC0uMzU0LjM1NC4zNTQtLjM1NGExLjUgMS41IDAgMCAxLS40NC0xLjA2VjMuODMySC42NjdhLjE2Ny4xNjcgMCAxIDEgMC0uMzMzaDMuMTY2VjIuMzMzYTEuNSAxLjUgMCAwIDEgMS41LTEuNWgxLjMzNGExLjUgMS41IDAgMCAxIDEuNSAxLjVWM1ptLS44MzQuNWguNVYyLjMzM2ExLjE2NyAxLjE2NyAwIDAgMC0xLjE2Ni0xLjE2N0g1LjMzM2ExLjE2NyAxLjE2NyAwIDAgMC0xLjE2NiAxLjE2N1YzLjVoMy4xNjZabS00LjY2Ni4zMzNoLS41djcuODMzYTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY2IDEuMTY3aDUuMzM0YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY2LTEuMTY3VjMuODMzSDIuNjY3Wm0yLjExOCA2LjYxOGEuMTY3LjE2NyAwIDAgMS0uMjg1LS4xMTh2LTRhLjE2Ny4xNjcgMCAxIDEgLjMzMyAwdjRhLjE2Ny4xNjcgMCAwIDEtLjA0OC4xMThabTIuNjY2IDBhLjE2Ny4xNjcgMCAwIDEtLjI4NC0uMTE4di00YS4xNjcuMTY3IDAgMCAxIC4zMzMgMHY0YS4xNjcuMTY3IDAgMCAxLS4wNDkuMTE4WlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNyAxNlxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJNMTAuNjI0IDUuNjY3aC00LjY3TDguMjkgMy40MTRsMi4zMzUgMi4yNTNaTTguNzggMi40NzRhLjcwNi43MDYgMCAwIDAtLjk3NCAwbC0zLjE3IDMuMDZjLS40MzYuNDEzLS4xMzIgMS4xMzMuNDgzIDEuMTMzaDYuMzM0Yy42MTUgMCAuOTI2LS43Mi40OS0xLjE0TDguNzggMi40NzRabTIuNjggNi44Nkg1LjExOWMtLjYxNSAwLS45MjYuNzItLjQ5IDEuMTRsMy4xNyAzLjA2Yy4yNy4yNi43MDQuMjYuOTc0IDBsMy4xNy0zLjA2Yy40MzYtLjQyLjEzMi0xLjE0LS40ODMtMS4xNFpcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgZD1cXFwibTEzLjgwNyAxMS4xNC0xLjYxNC0xLjYxNGEuNjY2LjY2NiAwIDAgMC0uOTQ2IDBMOC44NiAxMS45MTNhLjY2Ny42NjcgMCAwIDAtLjE5My40NzNWMTRhLjY2Ny42NjcgMCAwIDAgLjY2Ni42NjZoMS42MTRhLjY2OC42NjggMCAwIDAgLjQ3My0uMTkzbDIuMzg3LTIuMzg3YS42NjcuNjY3IDAgMCAwIDAtLjk0NlptLTMuMTQgMi4xOTNIMTB2LS42NjdsMS43Mi0xLjcyLjY2Ny42NjctMS43MiAxLjcyWm0tNCAwSDRhLjY2Ni42NjYgMCAwIDEtLjY2Ny0uNjY3VjMuMzMzQS42NjcuNjY3IDAgMCAxIDQgMi42NjZoMy4zMzN2MmEyIDIgMCAwIDAgMiAyaDJ2LjY2N2EuNjY3LjY2NyAwIDAgMCAxLjMzNCAwVjUuOTZhLjg4Ljg4IDAgMCAwLS4wNC0uMTh2LS4wNmEuNzE0LjcxNCAwIDAgMC0uMTI3LS4xODdsLTQtNGEuNzEzLjcxMyAwIDAgMC0uMTg3LS4xMjcuMjEzLjIxMyAwIDAgMC0uMDYgMGwtLjIxMy0uMDczSDRhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDIuNjY3YS42NjcuNjY3IDAgMSAwIDAtMS4zMzNabTItOS43MjcgMS43MjYgMS43MjdoLTEuMDZhLjY2Ny42NjcgMCAwIDEtLjY2Ni0uNjY3di0xLjA2Wk01LjMzMyA5LjMzM2g0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNoLTRhLjY2Ny42NjcgMCAxIDAgMCAxLjMzM1ptMC0yLjY2N0g2YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNoLS42NjdhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1ptMS4zMzQgNEg1LjMzM2EuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDEuMzM0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRaXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNCAxNFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48ZyBjbGlwLXBhdGg9XFxcInVybCgjZG91YmxlLXRpY2tfc3ZnX19hKVxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIj48cGF0aCBkPVxcXCJNOS44NDUgMy43MDZhLjY0Ny42NDcgMCAwIDAtLjk0NyAwbC01LjA3IDUuMTRMMS43MzMgNi43MmEuNjQ3LjY0NyAwIDAgMC0uOTQ3IDAgLjY2OS42NjkgMCAwIDAgMCAuOTZsMi41NyAyLjYwNGEuNjEuNjEgMCAwIDAgLjQ3Mi4yMDYuNjEuNjEgMCAwIDAgLjQ3NC0uMjA2bDUuNTQzLTUuNjJhLjY2OS42NjkgMCAwIDAgMC0uOTZaXFxcIi8+PHBhdGggZD1cXFwiTTEzLjYzMiAzLjM2YTEuMjM0IDEuMjM0IDAgMCAwLTEuNzgzIDBMNy4xOTcgOC4wNzhsLTEuNjc3LTEuN2ExLjIzNCAxLjIzNCAwIDAgMC0xLjc4MyAwIDEuMjU2IDEuMjU2IDAgMCAwIDAgMS43ODRsMi41NyAyLjYwNGMuMTAxLjEwMy4yMjcuMjA1LjM4Ny4yNzcuMTY0LjA3NC4zMzMuMTA0LjUwMy4xMDQuMTcxIDAgLjM0LS4wMy41MDQtLjEwNC4xNi0uMDcyLjI4Ni0uMTc0LjM4OC0uMjc3bDUuNTQzLTUuNjJhMS4yNTYgMS4yNTYgMCAwIDAgMC0xLjc4NFpcXFwiIHN0cm9rZT1cXFwiI2ZmZlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIxLjE3NVxcXCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9XFxcImRvdWJsZS10aWNrX3N2Z19fYVxcXCI+PHBhdGggZmlsbD1cXFwiI2ZmZlxcXCIgZD1cXFwiTTAgMGgxNHYxNEgwelxcXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgZD1cXFwibTEyLjc5NiA1Ljg3LjAyMy4wN2EuMzA1LjMwNSAwIDAgMSAuMDE0LjA1NHY2LjY3MmExLjUgMS41IDAgMCAxLTEuNSAxLjVINC42NjdhMS41IDEuNSAwIDAgMS0xLjUtMS41VjMuMzMzYTEuNSAxLjUgMCAwIDEgMS41LTEuNWgzLjk3OGEuMjMzLjIzMyAwIDAgMSAuMDMzLjAxNGwuMTEuMDZoLjA0NWwzLjk2MyAzLjk2MlptLTMuMTEtMi42MTctLjg1My0uODU0djIuMjY3QTEuMTY3IDEuMTY3IDAgMCAwIDEwIDUuODMzaDIuMjY3bC0uODUzLS44NTQtMS43MjctMS43MjZaTTguNSAyLjY2NnYtLjVINC42NjdBMS4xNjcgMS4xNjcgMCAwIDAgMy41IDMuMzMzdjkuMzMzYTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3IDEuMTY3aDYuNjY2YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3LTEuMTY3di02LjVIMTBhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWm0tLjMzMyA3LjA2djEuMjM3bC44Ni0uODkuMTg5LS4xOTVhLjE3LjE3IDAgMCAxIC4yMzcuMjQybC0xLjMyOCAxLjMyOGEuMTY3LjE2NyAwIDAgMS0uMDUyLjAzMmwtLjAxMS4wMDQtLjAxLjAwNWEuMTI3LjEyNyAwIDAgMS0uMTAzIDBsLS4wMS0uMDA1LS4wMTItLjAwNGEuMTY3LjE2NyAwIDAgMS0uMDUyLS4wMzJsLTEuMzI4LTEuMzI5YS4xNy4xNyAwIDAgMSAuMjM3LS4yNDFsLjE5LjE5Ni44Ni44ODlWOGEuMTY3LjE2NyAwIDAgMSAuMzMzIDB2MS43MjZaXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJtMi42MjYgMTMuMzc0LjIzNi0uMjM2LS4yMzYuMjM2YTEgMSAwIDAgMCAuNzA3LjI5M2g5LjMzNGExIDEgMCAwIDAgLjcwNy0uMjkzbC0uMjM2LS4yMzYuMjM2LjIzNmExIDEgMCAwIDAgLjI5My0uNzA3VjEwYS4zMzMuMzMzIDAgMCAxIC41NjktLjIzNmwuMjM1LS4yMzUtLjIzNS4yMzVhLjMzMy4zMzMgMCAwIDEgLjA5Ny4yMzZ2Mi42NjdhMS42NjcgMS42NjcgMCAwIDEtMS42NjYgMS42NjZIMy4zMzNhMS42NjcgMS42NjcgMCAwIDEtMS42NjYtMS42NjZWMTBjMC0uMDg4LjAzNS0uMTczLjA5Ny0uMjM2TDEuNTMgOS41M2wuMjM1LjIzNWEuMzMzLjMzMyAwIDAgMSAuNDcyIDBsLjIzNS0uMjM1LS4yMzUuMjM1YS4zMzMuMzMzIDAgMCAxIC4wOTcuMjM2djIuNjY3YTEgMSAwIDAgMCAuMjkzLjcwN1ptNS4yNTUtMy4wNjYtLjAwNy0uMDAzLS4wMDctLjAwMmEuMzMzLjMzMyAwIDAgMS0uMTA4LS4wNjhMNS4wOTYgNy41N2EuMzM2LjMzNiAwIDAgMSAuMzY2LS41NDhsLjEyOC0uMzA4LS4xMjguMzA4Yy4wNC4wMTcuMDc4LjA0MS4xMDkuMDcyTDcuMDk3IDguNjNsLjU3LjU3MlYyYS4zMzMuMzMzIDAgMSAxIC42NjYgMHY3LjIwMWwuNTctLjU3MiAxLjUyNi0xLjUzM2EuMzM2LjMzNiAwIDAgMSAuNDc1LjQ3NWwtMi42NjMgMi42NjRhLjMzMy4zMzMgMCAwIDEtLjEwOC4wNjhsLS4wMDcuMDAyLS4wMDcuMDAzYS4yOTIuMjkyIDAgMCAxLS4yMzggMFpcXFwiIGZpbGw9XFxcImN1cnJlbnRjb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Y29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxMCA2XFxcIj48cGF0aCBkPVxcXCJNOC45MzIuODc4YS41LjUgMCAwIDEgMCAuNzFMNS4zNTcgNS4xMjFsLS4wMDIuMDAzYS41LjUgMCAwIDEtLjcxIDB2LS4wMDFMMS4xMSAxLjU4OWEuNS41IDAgMCAxIDAtLjcxVi44NzdhLjUuNSAwIDAgMSAuNzA1IDBsMi45NSAyLjk1LjIzMy4yMzMuMjM2LS4yMzJMOC4yMjYuODc5Vi44NzhhLjUuNSAwIDAgMSAuNzA2IDBaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2Utd2lkdGg9XFxcIi42NjdcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE3IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0zLjcxOCAxMmgyLjgyN2EuNjY2LjY2NiAwIDAgMCAuNDczLS4xOTRsNC42MTQtNC42MiAxLjg5My0xLjg1M2EuNjY4LjY2OCAwIDAgMCAwLS45NDdsLTIuODI3LTIuODZhLjY2Ny42NjcgMCAwIDAtLjk0NiAwbC0xLjg4IDEuODg3LTQuNjI3IDQuNjJhLjY2Ny42NjcgMCAwIDAtLjE5My40NzN2Mi44MjdhLjY2Ny42NjcgMCAwIDAgLjY2Ni42NjdabTYuNTA3LTkuMDYgMS44ODcgMS44ODYtLjk0Ny45NDctMS44ODctMS44ODcuOTQ3LS45NDZabS01Ljg0IDUuODQgMy45NTMtMy45NTQgMS44ODcgMS44ODctMy45NTMgMy45NTNINC4zODVWOC43OFptMTAgNC41NTNoLTEyYS42NjcuNjY3IDAgMSAwIDAgMS4zMzNoMTJhLjY2Ni42NjYgMCAxIDAgMC0xLjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTcgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEyLjc1MSA3LjIxM2EuNzMyLjczMiAwIDAgMC0uNS4xOTUuNjQ3LjY0NyAwIDAgMC0uMjA4LjQ3MnY0Ljc4NmEuNjQ3LjY0NyAwIDAgMS0uMjA3LjQ3Mi43MzEuNzMxIDAgMCAxLS41MDEuMTk1SDMuNTQzYS43MzEuNzMxIDAgMCAxLS41LS4xOTUuNjQ3LjY0NyAwIDAgMS0uMjA4LS40NzJWNS4zMzNjMC0uMTc3LjA3NC0uMzQ2LjIwNy0uNDcxYS43MzEuNzMxIDAgMCAxIC41MDEtLjE5Nmg1LjA4NmMuMTg4IDAgLjM2OC0uMDcuNS0uMTk1QS42NDcuNjQ3IDAgMCAwIDkuMzM4IDRhLjY0Ny42NDcgMCAwIDAtLjIwNy0uNDcyLjczMS43MzEgMCAwIDAtLjUwMS0uMTk1SDMuNTQzYy0uNTY0IDAtMS4xMDQuMjEtMS41MDMuNTg2YTEuOTQyIDEuOTQyIDAgMCAwLS42MjIgMS40MTR2Ny4zMzNjMCAuNTMuMjI0IDEuMDQuNjIyIDEuNDE1LjM5OS4zNzUuOTQuNTg1IDEuNTAzLjU4NWg3Ljc5MmMuNTYzIDAgMS4xMDQtLjIxIDEuNTAyLS41ODUuMzk5LS4zNzUuNjIzLS44ODQuNjIzLTEuNDE1VjcuODhhLjY0Ny42NDcgMCAwIDAtLjIwOC0uNDcyLjczMi43MzIgMCAwIDAtLjUtLjE5NVptMi43NzctNS40NjdhLjY5LjY5IDAgMCAwLS4zODMtLjM2Ljc0Ny43NDcgMCAwIDAtLjI2OS0uMDUzaC00LjI1YS43MzIuNzMyIDAgMCAwLS41LjE5NS42NDcuNjQ3IDAgMCAwLS4yMDguNDcyYzAgLjE3Ni4wNzUuMzQ2LjIwNy40NzFhLjczMi43MzIgMCAwIDAgLjUwMS4xOTVoMi41NDNsLTcuMjk2IDYuODZhLjY2Ni42NjYgMCAwIDAtLjE1NS4yMTcuNjMzLjYzMyAwIDAgMCAuMTU1LjczLjc0Ni43NDYgMCAwIDAgMS4wMDYgMGw3LjI4OS02Ljg2N1Y2YzAgLjE3Ni4wNzUuMzQ2LjIwNy40NzFhLjczMi43MzIgMCAwIDAgLjUwMS4xOTVjLjE4OCAwIC4zNjgtLjA3LjUwMS0uMTk1QS42NDcuNjQ3IDAgMCAwIDE1LjU4NSA2VjJhLjYzMy42MzMgMCAwIDAtLjA1Ny0uMjU0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxN1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTQuNjEzIDcuOThDMTMuMjY3IDQuODUzIDEwLjczMyAyLjkxMyA4IDIuOTEzYy0yLjczMyAwLTUuMjY3IDEuOTQtNi42MTMgNS4wNjdhLjY2Ny42NjcgMCAwIDAgMCAuNTMzQzIuNzMzIDExLjY0IDUuMjY3IDEzLjU4IDggMTMuNThjMi43MzMgMCA1LjI2Ny0xLjk0IDYuNjEzLTUuMDY3YS42NjcuNjY3IDAgMCAwIDAtLjUzM1pNOCAxMi4yNDZjLTIuMTEzIDAtNC4xMTMtMS41MjYtNS4yNjctNCAxLjE1NC0yLjQ3MyAzLjE1NC00IDUuMjY3LTQgMi4xMTMgMCA0LjExMyAxLjUyNyA1LjI2NyA0LTEuMTU0IDIuNDc0LTMuMTU0IDQtNS4yNjcgNFpNOCA1LjU4YTIuNjY3IDIuNjY3IDAgMSAwIDAgNS4zMzNBMi42NjcgMi42NjcgMCAwIDAgOCA1LjU4Wm0wIDRhMS4zMzMgMS4zMzMgMCAxIDEgMC0yLjY2N0ExLjMzMyAxLjMzMyAwIDAgMSA4IDkuNThaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE1MCAxNTBcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PGNpcmNsZSBjeD1cXFwiNzVcXFwiIGN5PVxcXCI3NVxcXCIgcj1cXFwiNzVcXFwiIGZpbGw9XFxcInVybCgjZm9sZGVyX3N2Z19fYSlcXFwiLz48cGF0aCBkPVxcXCJNNDUuNTQ4IDU0LjIyYzAtMi4zOCAwLTMuNTcuNDctNC40NzVhNC4xNzggNC4xNzggMCAwIDEgMS43ODItMS43ODFjLjkwNi0uNDcgMi4wOTUtLjQ3IDQuNDc1LS40N2gxNy41NTdjMS4wMTIgMCAxLjUxOCAwIDEuOTk1LjExMy40MDYuMDk2Ljc5NS4yNTMgMS4xNTQuNDY1LjQyMy4yNS43ODguNiAxLjUxNyAxLjMwMmwuNDMuNDE2Yy43My43MDIgMS4wOTQgMS4wNTMgMS41MTcgMS4zMDIuMzYuMjEyLjc0OC4zNjkgMS4xNTQuNDY1LjQ3Ny4xMTQuOTgzLjExNCAxLjk5Ni4xMTRoMTcuNzE4YzIuMzc5IDAgMy41NjggMCA0LjQ3NC40N2E0LjE4MiA0LjE4MiAwIDAgMSAxLjc4MiAxLjc4MmMuNDcuOTA2LjQ3IDIuMDk1LjQ3IDQuNDc0djQwLjA0NmMwIDEuMTkgMCAxLjc4NC0uMjM1IDIuMjM3YTIuMDgzIDIuMDgzIDAgMCAxLS44OTEuODkxYy0uNDUzLjIzNS0xLjA0OC4yMzUtMi4yMzcuMjM1SDUxLjYwMmMtMi4xNDEgMC0zLjIxMiAwLTQuMDI3LS40MjNhMy43NjMgMy43NjMgMCAwIDEtMS42MDQtMS42MDRjLS40MjMtLjgxNS0uNDIzLTEuODg1LS40MjMtNC4wMjdWNTQuMjJaXFxcIiBmaWxsPVxcXCJ1cmwoI2ZvbGRlcl9zdmdfX2IpXFxcIi8+PHBhdGggZD1cXFwiTTY2LjY1NiA2Mi4zMTFoMzguNTMxYzEuNjcyIDAgMi45MDQgMCAzLjgzLjEzMy45Mi4xMzMgMS40OTkuMzkgMS44OTQuODc3LjM5NC40ODYuNTI4IDEuMTA2LjQ2NyAyLjAzNC0uMDYxLjkzMy0uMzE0IDIuMTQtLjY1OCAzLjc3NWwtNS44OTQgMjcuOTkyYy0uMjM1IDEuMTE3LS40MDggMS45MzgtLjYyMSAyLjU2Mi0uMjExLjYxOS0uNDU1IDEuMDIzLS44MTkgMS4zMTgtLjM2My4yOTUtLjgwOC40NS0xLjQ1OC41MjktLjY1NC4wOC0xLjQ5My4wODEtMi42MzQuMDgxSDUwLjE1N2MuOTItMS4xMDEgMS40MjItMi4yNDUgMS45MTctMy44NjEuMjI1LS43MzQuNDUtMS41NjguNzEyLTIuNTQybC4xNjgtLjYyMmMuMzM3LTEuMjQ4Ljc0Mi0yLjcxNCAxLjI4LTQuNDc0IDEuNTUyLTUuMDYgNS4xMDUtMTcuMjQzIDYuOTg4LTIzLjcyMi4yOTctMS4wMjEuNTE1LTEuNzcuNzU1LTIuMzM5LjIzOC0uNTYzLjQ5LS45My44NDItMS4xOTQuMzUyLS4yNjUuNzc0LS40MDQgMS4zODItLjQ3NS42MTItLjA3MiAxLjM5Mi0uMDcyIDIuNDU1LS4wNzJaXFxcIiBmaWxsPVxcXCIjQjlEREZGXFxcIiBzdHJva2U9XFxcInVybCgjZm9sZGVyX3N2Z19fYylcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjM5XFxcIi8+PHBhdGggZD1cXFwiTTY2LjY1NiA2Mi4zMTFoMzguNTMxYzEuNjcyIDAgMi45MDQgMCAzLjgzLjEzMy45Mi4xMzMgMS40OTkuMzkgMS44OTQuODc3LjM5NC40ODYuNTI4IDEuMTA2LjQ2NyAyLjAzNC0uMDYxLjkzMy0uMzE0IDIuMTQtLjY1OCAzLjc3NWwtNS44OTQgMjcuOTkyYy0uMjM1IDEuMTE3LS40MDggMS45MzgtLjYyMSAyLjU2Mi0uMjExLjYxOS0uNDU1IDEuMDIzLS44MTkgMS4zMTgtLjM2My4yOTUtLjgwOC40NS0xLjQ1OC41MjktLjY1NC4wOC0xLjQ5My4wODEtMi42MzQuMDgxSDUwLjE1N2MuOTItMS4xMDEgMS40MjItMi4yNDUgMS45MTctMy44NjEuMjI1LS43MzQuNDUtMS41NjguNzEyLTIuNTQybC4xNjgtLjYyMmMuMzM3LTEuMjQ4Ljc0Mi0yLjcxNCAxLjI4LTQuNDc0IDEuNTUyLTUuMDYgNS4xMDUtMTcuMjQzIDYuOTg4LTIzLjcyMi4yOTctMS4wMjEuNTE1LTEuNzcuNzU1LTIuMzM5LjIzOC0uNTYzLjQ5LS45My44NDItMS4xOTQuMzUyLS4yNjUuNzc0LS40MDQgMS4zODItLjQ3NS42MTItLjA3MiAxLjM5Mi0uMDcyIDIuNDU1LS4wNzJaXFxcIiBmaWxsPVxcXCJ1cmwoI2ZvbGRlcl9zdmdfX2QpXFxcIiBmaWxsLW9wYWNpdHk9XFxcIi44XFxcIiBzdHJva2U9XFxcInVybCgjZm9sZGVyX3N2Z19fZSlcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjM5XFxcIi8+PHBhdGggZD1cXFwiTTU1Ljk5MyA1MS44MjhoOC4zNTZhMS45MzMgMS45MzMgMCAwIDEgMCAzLjg2NmgtOC4zNTZhMS45MzMgMS45MzMgMCAxIDEgMC0zLjg2NlpcXFwiIGZpbGw9XFxcInVybCgjZm9sZGVyX3N2Z19fZilcXFwiIGZpbGwtb3BhY2l0eT1cXFwiLjlcXFwiIHN0cm9rZT1cXFwidXJsKCNmb2xkZXJfc3ZnX19nKVxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuMzEyXFxcIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmb2xkZXJfc3ZnX19hXFxcIiB4MT1cXFwiNzVcXFwiIHkxPVxcXCIwXFxcIiB4Mj1cXFwiNzVcXFwiIHkyPVxcXCIxNTBcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjRTNFQ0ZBXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjREFFN0ZGXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZvbGRlcl9zdmdfX2JcXFwiIHgxPVxcXCI2Mi40MlxcXCIgeTE9XFxcIjU5LjM3NFxcXCIgeDI9XFxcIjEwNi41NTRcXFwiIHkyPVxcXCI3NS43MTlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjN0ZDMEZCXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDA4OEY0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZvbGRlcl9zdmdfX2NcXFwiIHgxPVxcXCI0Ni41OTNcXFwiIHkxPVxcXCI2NC45NTFcXFwiIHgyPVxcXCI2OC43NDZcXFwiIHkyPVxcXCIxMTguMzcyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjc2NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZvbGRlcl9zdmdfX2RcXFwiIHgxPVxcXCIxMDguNVxcXCIgeTE9XFxcIjk4XFxcIiB4Mj1cXFwiNDFcXFwiIHkyPVxcXCI5OS41XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI0I0RDRGN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjEyOFxcXCIgc3RvcC1jb2xvcj1cXFwiIzhCQkRGQlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjI2MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxQzJGQlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjc1OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzlGQ0ZGRFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzlFQ0VGRFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmb2xkZXJfc3ZnX19lXFxcIiB4MT1cXFwiNDYuNTkzXFxcIiB5MT1cXFwiNjQuOTUxXFxcIiB4Mj1cXFwiNjguNzQ2XFxcIiB5Mj1cXFwiMTE4LjM3MlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIi43NjZcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmb2xkZXJfc3ZnX19mXFxcIiB4MT1cXFwiNTIuOTUyXFxcIiB5MT1cXFwiNTEuMzkzXFxcIiB4Mj1cXFwiNzAuMTA2XFxcIiB5Mj1cXFwiNTYuNDYxXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZvbGRlcl9zdmdfX2dcXFwiIHgxPVxcXCI1MS43ODJcXFwiIHkxPVxcXCI1Mi41NjJcXFwiIHgyPVxcXCI2MC4xNzFcXFwiIHkyPVxcXCI1NS44NVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyNjYgNjNcXFwiPjxwYXRoIGQ9XFxcIk0uODMgNTguOTFWMjguN2g4LjcyNXYzMC4yMUguODNabTM1LjAxNy0yLjkzYy0xLjk4MyAyLjQxNi00LjgzNSAzLjc3Ny04LjYxNSAzLjc3Ny02LjA3NiAwLTEwLjk3MS0zLjc3OC0xMC45NzEtOS42MDMgMC01Ljc2MyA0Ljg5OC04LjYxIDExLjc3Ny04Ljk4NSA1LjI3LS4zMSA2Ljk0My0uODY4IDYuOTQzLTIuNjYzIDAtMS43MzYtMS42MTEtMi45MTMtNC40NjMtMi45MTMtMy40NyAwLTQuOTYgMS43MzYtNS4xNDUgMy41OTRoLTguNDk0Yy40MzQtNi42MjggNS4zOTItMTEuMjE0IDEzLjcwMS0xMS4yMTQgOC4xMjIgMCAxMy4zMyA0LjM5OCAxMy4zMyAxMi42Mzd2MTguNDYzaC03LjI1NGwtLjgwOS0zLjA5NFptLTEwLjc4Ni02LjE5NWMwIDEuNzM2IDEuNTUgMi43ODggNC4wMyAyLjc4OCAzLjM0OCAwIDYuMDEyLTEuODU4IDYuMDEyLTUuNjM4VjQ1Ljgycy0xLjYxMS43NDMtNC45Ni45M2MtMy42NTguMTg1LTUuMDgyIDEuMzYyLTUuMDgyIDMuMDM1Wm0zOC4zMDcgOS40MTZjLTYuNjMyIDAtMTAuNDc3LTMuODQtMTAuNDc3LTEwLjUzM1YzNi44MzZoLTUuMDgzdi04LjExN2g1LjA4M3YtNC40NjFsOC44MDItNy40MzRWMjguNzJoNy42MjZ2OC4xMTdoLTcuNjI2VjQ3LjQzYzAgMi45MTIgMS45MjIgMy41OTMgMy43MiAzLjU5M2E5LjUzOSA5LjUzOSAwIDAgMCAzLjcyMS0uODA1djcuOTkyYzAgLjAwMi0yLjM1NS45OTItNS43NjYuOTkyWk0uMDggMTkuNjM0YzAtMi44NSAyLjIzLTUuMTQyIDUuMDgyLTUuMTQyYTUuMTMgNS4xMyAwIDAgMSA1LjE0NSA1LjE0MmMwIDIuNzg4LTIuMjkzIDUuMDgtNS4xNDUgNS4wOGE1LjA2MyA1LjA2MyAwIDAgMS01LjA4Mi01LjA4Wk03NS44MDkgNTguOTFWMjguN2g4LjcyNnYzMC4yMWgtOC43MjZabTIwLjE1NC0zOS4yMDJjMC0xLjQtLjE5LTIuNzYtLjUzNy00LjA1M2ExNS41MSAxNS41MSAwIDAgMC0xLjU2OS0zLjc3MiAxNS42NjUgMTUuNjY1IDAgMCAwLTIuNDg5LTMuMjQxIDE1LjczMiAxNS43MzIgMCAwIDAtNy4wMTgtNC4wNSAxNS42NTggMTUuNjU4IDAgMCAwLTQuMDUyLS41MzNoLS4wMDZhMTUuNzUgMTUuNzUgMCAwIDAtNC4wNDkuNTNjLTEuMzQuMzU3LTIuNjA1Ljg4OC0zLjc3NyAxLjU2NUExNS42NyAxNS42NyAwIDAgMCA2OS4yMiA4LjY0YTE1Ljc3IDE1Ljc3IDAgMCAwLTIuNDkyIDMuMjQyIDE1LjY0OCAxNS42NDggMCAwIDAtMS41NzIgMy43NzRsMi4yNDIuNjAyYTEzLjQyNyAxMy40MjcgMCAwIDEgMy40NjItNS45NzggMTMuNDI2IDEzLjQyNiAwIDAgMSA1Ljk4NC0zLjQ1IDEzLjQyNiAxMy40MjYgMCAwIDEgMy40NDgtLjQ1aC4wMDZjMS4xOTUgMCAyLjM1LjE1OCAzLjQ1NC40NTNhMTMuNDEyIDEzLjQxMiAwIDAgMSA1Ljk4IDMuNDQ5Yy44MTkuODIgMS41MzEgMS43NSAyLjExOSAyLjc2YTEzLjMgMTMuMyAwIDAgMSAxLjc5MyA2LjY2NHYuMDEyYTEzLjM4IDEzLjM4IDAgMCAxLS40NTEgMy40NDMgMTMuMjE3IDEzLjIxNyAwIDAgMS0xLjMzNCAzLjIxOWwyLjAxIDEuMTZhMTUuNTM5IDE1LjUzOSAwIDAgMCAxLjU2Ni0zLjc3OCAxNS43IDE1LjcgMCAwIDAgLjUzLTQuMDQxbC0uMDAyLS4wMTJaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEwMC4wMjMgMTkuNzA4YTE5LjY1NSAxOS42NTUgMCAwIDAtMi42NDQtOS44NTUgMTkuODEgMTkuODEgMCAwIDAtNy4yMi03LjIxM0ExOS42MTIgMTkuNjEyIDAgMCAwIDg1LjQwMy42NyAxOS44MSAxOS44MSAwIDAgMCA4MC4yOTggMGgtLjAwNmMtMS43NjUgMC0zLjQ3My4yMzMtNS4xMDIuNjY2YTE5LjUxMyAxOS41MTMgMCAwIDAtNC43NTkgMS45NjkgMTkuODI0IDE5LjgyNCAwIDAgMC00LjA4NiAzLjEzNGwxLjIzMSAxLjIzYTE4LjEwNiAxOC4xMDYgMCAwIDEgMy43MjYtMi44NTUgMTcuODAzIDE3LjgwMyAwIDAgMSA0LjM0LTEuNzkzIDE4LjA4NCAxOC4wODQgMCAwIDEgNC42NDgtLjYwN2guMDA1YTE3Ljk1IDE3Ljk1IDAgMCAxIDEyLjcxMyA1LjI2MSAxNy45MzMgMTcuOTMzIDAgMCAxIDUuMjczIDEyLjcwM3YuMDExYTE4LjAzIDE4LjAzIDAgMCAxLS42MDcgNC42NDMgMTcuNjc1IDE3LjY3NSAwIDAgMS0xLjc5NyA0LjMzNyAxOC4wMjMgMTguMDIzIDAgMCAxLTIuODU3IDMuNzIzbDEuMjMxIDEuMjMxYTE5Ljc0MyAxOS43NDMgMCAwIDAgMy4xMzYtNC4wODQgMTkuNiAxOS42IDAgMCAwIDEuOTctNC43NTZjLjQzNC0xLjYyNS42NjYtMy4zMzIuNjY2LTUuMDk0di0uMDFaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwiTTkwLjk0NSAxNi44NTVhMTAuOTQ4IDEwLjk0OCAwIDAgMC0xLjEwNC0yLjY1NSAxMS4xNTUgMTEuMTU1IDAgMCAwLTEuNzUtMi4yOCAxMS4wNDggMTEuMDQ4IDAgMCAwLTIuMjgyLTEuNzQ3QTEwLjk2NCAxMC45NjQgMCAwIDAgODAuMyA4LjY5NWgtLjAwNmMtLjk4NyAwLTEuOTQuMTMtMi44NDkuMzcyYTEwLjkxIDEwLjkxIDAgMCAwLTIuNjYgMS4xIDEwLjk5NCAxMC45OTQgMCAwIDAtNC4wMzcgNC4wMjcgMTEgMTEgMCAwIDAtMS40ODQgNS41MXYuMDEyYTEwLjkyNCAxMC45MjQgMCAwIDAgMS40NzYgNS41MDVsMy4wMTMtMS43MzhhNy41MzUgNy41MzUgMCAwIDEtMS4wMS0zLjc3di0uMDFhNy41NTMgNy41NTMgMCAwIDEgNy41NDgtNy41MzNoLjAwNmE3LjUyNCA3LjUyNCAwIDAgMSAzLjc2OSAxLjAxMiA3LjU1IDcuNTUgMCAwIDEgMy41MTMgNC41NzJjLjE2Ny42Mi4yNTggMS4yNzYuMjU4IDEuOTUxaDMuNDc5Yy4wMDMtLjk4NC0uMTI4LTEuOTQtLjM3Mi0yLjg1WlxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk04Ny41ODUgMTcuNzY1YTcuNTQyIDcuNTQyIDAgMCAwLTEuOTU1LTMuMzhsLTEuNjQgMS42MzlhNS4yNjQgNS4yNjQgMCAwIDEgMS4zNTQgMi4zNDMgNS4xODQgNS4xODQgMCAwIDEgMCAyLjcwNSA1LjIzOSA1LjIzOSAwIDAgMS0zLjY5OCAzLjY5NSA1LjE5NSA1LjE5NSAwIDAgMS0yLjcwNyAwIDUuMjk2IDUuMjk2IDAgMCAxLTEuMjYtLjUyMWwtMS4xNiAyLjAwOGE3LjUyOCA3LjUyOCAwIDAgMCAzLjc3NCAxLjAxYy42NzcgMCAxLjMzLS4wOTEgMS45NTQtLjI1NmE3LjU1MyA3LjU1MyAwIDAgMCA0LjU4NC0zLjUxNyA3LjU0NCA3LjU0NCAwIDAgMCAxLjAxMy0zLjc3MSA3LjUgNy41IDAgMCAwLS4yNTktMS45NTVaXFxcIiBmaWxsPVxcXCIjMTU1MzY2XFxcIi8+PHBhdGggZD1cXFwiTTkxLjg1MyAxMy4wNDZhMTMuNDM1IDEzLjQzNSAwIDAgMC0yLjEyLTIuNzY1IDEzLjM0MyAxMy4zNDMgMCAwIDAtMi43NjYtMi4xMTggMTMuMjg3IDEzLjI4NyAwIDAgMC02LjY3NS0xLjc5Yy0xLjE5NyAwLTIuMzUyLjE1OS0zLjQ1Ni40NTQtMS4xNDEuMzAzLTIuMjIuNzU3LTMuMjE4IDEuMzM2YTEzLjQzNiAxMy40MzYgMCAwIDAtMi43NjcgMi4xMTggMTMuMzM0IDEzLjMzNCAwIDAgMC0yLjEyIDIuNzY1IDEzLjI3MiAxMy4yNzIgMCAwIDAtMS43OSA2LjY3aDIuMzJjMC0uOTg2LjEzMS0xLjk0Mi4zNzUtMi44NTJhMTEuMDg4IDExLjA4OCAwIDAgMSAyLjg1NS00Ljk0IDExLjAwMiAxMS4wMDIgMCAwIDEgMi4yODQtMS43NSAxMS4wMyAxMS4wMyAwIDAgMSAyLjY2LTEuMTA0IDExLjAyIDExLjAyIDAgMCAxIDIuODU0LS4zNzRjLjk4OCAwIDEuOTQ0LjEzIDIuODU1LjM3NGExMS4wOTkgMTEuMDk5IDAgMCAxIDQuOTQzIDIuODUzIDEwLjk5IDEwLjk5IDAgMCAxIDEuNzUxIDIuMjgzYy40NzcuODI2Ljg1MiAxLjcxNiAxLjEwNCAyLjY1OGwyLjI0Mi0uNjAyYTEzLjE5NCAxMy4xOTQgMCAwIDAtMS4zMy0zLjIxNlpcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiLz48cGF0aCBkPVxcXCJNOTcuNjc0IDE1LjA2M2ExNy43OTEgMTcuNzkxIDAgMCAwLTEuOC00LjMzNiAxOC4wNDMgMTguMDQzIDAgMCAwLTYuNTg2LTYuNTgzIDE3LjkzIDE3LjkzIDAgMCAwLTguOTk2LTIuNDA4Yy0xLjYxMiAwLTMuMTcyLjIxMy00LjY1Ny42MWExNy44MTcgMTcuODE3IDAgMCAwLTQuMzM5IDEuNzk4IDE4LjAzMiAxOC4wMzIgMCAwIDAtNi41ODYgNi41ODNsMi4wMTIgMS4xNjNhMTUuNjc2IDE1LjY3NiAwIDAgMSAyLjQ4OS0zLjI0NWMuOTY1LS45NjQgMi4wNTctMS44IDMuMjQ2LTIuNDg3YTE1LjcwNiAxNS43MDYgMCAwIDEgMy43NzctMS41NjkgMTUuNjggMTUuNjggMCAwIDEgOC4xMSAwYzEuMzQuMzU4IDIuNjA2Ljg5MSAzLjc3OCAxLjU2OWExNS42ODUgMTUuNjg1IDAgMCAxIDMuMjQ2IDIuNDg3IDE1LjY3NiAxNS42NzYgMCAwIDEgMi40ODkgMy4yNDUgMTUuNjg0IDE1LjY4NCAwIDAgMSAxLjU2OSAzLjc3NCAxNS42NTQgMTUuNjU0IDAgMCAxIDAgOC4xMDZsMi4yNDUuNjAxYy4zOTctMS40ODMuNjEtMy4wNDMuNjEtNC42NTRhMTcuODc1IDE3Ljg3NSAwIDAgMC0uNjA4LTQuNjU0WlxcXCIgZmlsbD1cXFwiIzE1NTM2NlxcXCIvPjxwYXRoIGQ9XFxcIk04MC4yOTMgMjQuOTQ0YzIuODg4IDAgNS4yMy0yLjM0IDUuMjMtNS4yMjdhNS4yMjkgNS4yMjkgMCAwIDAtNS4yMy01LjIyNyA1LjIyOCA1LjIyOCAwIDAgMC01LjIzIDUuMjI3IDUuMjI4IDUuMjI4IDAgMCAwIDUuMjMgNS4yMjdabTIwLjYxNSAxNS40MzZWMjkuNTQzaDIuMzA0VjQwLjM4aC0yLjMwNFptNi42MTgtMy43ODd2My43ODdoLTIuMTk2di03LjU3NmgyLjE2NXYuNTI1YTIuNTM5IDIuNTM5IDAgMCAxIDEuNzkzLS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNiAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTZ2LTQuMjM1YzAtLjgwMi0uMzcyLTEuNDgzLTEuMjU0LTEuNDgzLTEuMDMzLjAwMy0xLjM5MS43NzQtMS4zOTEgMS45MzRabTkuNjY2IDMuODE3Yy0xLjY1NSAwLTIuNjE0LS45NTgtMi42MTQtMi42Mjh2LTIuOTUzaC0xLjI2OHYtMi4wMjVoMS4yNjh2LTEuMTExbDIuMTk2LTEuODU1djIuOTdoMS45MDJ2Mi4wMjRoLTEuOTAydjIuNjQzYzAgLjcyNy40OC44OTcuOTI4Ljg5Ny41MTEgMCAuOTI4LS4yMDIuOTI4LS4yMDJ2MS45OTRzLS41ODcuMjQ3LTEuNDM4LjI0N1ptMTAuMTkzLTMuMjNoLTUuMzUyYy4xMjUuNzc1Ljc1NyAxLjM2MiAxLjcgMS4zNjIuNjM1IDAgMS4wMDQtLjI2NCAxLjIzNy0uNjVoMi4zNjdjLS41MTEgMS42NC0xLjY4NiAyLjY2LTMuNTczIDIuNjYtMi4xOTcgMC0zLjk1OS0xLjUzLTMuOTU5LTMuOTEgMC0yLjI4OSAxLjYwOS00LjAxOSAzLjgzNy00LjAxOSAyLjQ4OSAwIDMuNzU3IDEuOTYzIDMuNzU3IDMuOTg4IDAgLjE5OC0uMDE0LjU3LS4wMTQuNTdabS0zLjcxNS0yLjYyOGMtLjgzNCAwLTEuMzkzLjUxLTEuNTMyIDEuMTZoMi45NGMtLjA0Ni0uNjY0LS42MTktMS4xNi0xLjQwOC0xLjE2Wm0xMC4yMzktMS4zMTV2Mi4xNjRzLS41NzMtLjU4Ny0xLjQzOS0uNTg3Yy0uNjY0IDAtMS40MDcuMzU0LTEuNDA3IDEuNDY5djQuMDk1aC0yLjE5N3YtNy41NzVoMi4xNjV2LjYzNWMtLjAxNCAwIC40MzUtLjc0MyAxLjUxNi0uNzQzLjkyOCAwIDEuMzYyLjU0MiAxLjM2Mi41NDJabTMuNDAzIDMuMzU2djMuNzg3aC0yLjE5N3YtNy41NzZoMi4xNjV2LjUyNWEyLjU0MyAyLjU0MyAwIDAgMSAxLjc5NC0uNzEyYzEuODU2IDAgMy4wNzkgMS4yMDYgMy4wNzkgMy4zNTV2NC40MDVoLTIuMTk3di00LjIzNWMwLS44MDItLjM3MS0xLjQ4My0xLjI1NC0xLjQ4My0xLjAzNi4wMDMtMS4zOS43NzQtMS4zOSAxLjkzNFptMTEuMTY2IDMuMDE1Yy0uNDk2LjYwNC0xLjIwNi45NDUtMi4xNTEuOTQ1LTEuNTE1IDAtMi43MzgtLjk0NS0yLjczOC0yLjM5NyAwLTEuNDM4IDEuMjItMi4xNSAyLjkzNy0yLjI0IDEuMzE0LS4wNzcgMS43MzQtLjIxNiAxLjczNC0uNjY0IDAtLjQzNC0uNDAzLS43MjYtMS4xMTMtLjcyNi0uODY1IDAtMS4yMzcuNDM0LTEuMjg1Ljg5NmgtMi4xMmMuMTA4LTEuNjUzIDEuMzQ1LTIuNzk5IDMuNDItMi43OTkgMi4wMjYgMCAzLjMyNiAxLjA5OCAzLjMyNiAzLjE1NHY0LjYwNmgtMS44MTFsLS4xOTktLjc3NVptLTIuNjkzLTEuNTQ1YzAgLjQzNC4zODYuNjk0IDEuMDA1LjY5NC44MzQgMCAxLjUwMS0uNDYyIDEuNTAxLTEuNDA2di0uMjc4cy0uNDAzLjE4NC0xLjIzNy4yMzJjLS45MTQuMDQ2LTEuMjY5LjM0LTEuMjY5Ljc1OFptOS41NTggMi4zNDdjLTEuNjU1IDAtMi42MTQtLjk1OC0yLjYxNC0yLjYyOHYtMi45NTNoLTEuMjY5di0yLjAyNWgxLjI2OXYtMS4xMTFsMi4xOTYtMS44NTV2Mi45N2gxLjkwMnYyLjAyNGgtMS45MDJ2Mi42NDNjMCAuNzI3LjQ4Ljg5Ny45MjguODk3LjUxMSAwIC45MjgtLjIwMi45MjgtLjIwMnYxLjk5NHMtLjU5LjI0Ny0xLjQzOC4yNDdabTIuOTUxLTkuNzUzYzAtLjcxMi41NTYtMS4yODIgMS4yNjgtMS4yODIuNzEzIDAgMS4yODYuNTczIDEuMjg2IDEuMjgyIDAgLjY5NS0uNTczIDEuMjY4LTEuMjg2IDEuMjY4YTEuMjY0IDEuMjY0IDAgMCAxLTEuMjY4LTEuMjY4Wm0uMTcgOS43MjJ2LTcuNTc1aDIuMTk3djcuNTc1aC0yLjE5N1ptMy43ODktMy43ODZjMC0yLjI3MiAxLjc0OC0zLjk3NCA0LjAzOC0zLjk3NHM0LjAzNSAxLjcwMiA0LjAzNSAzLjk3NGMwIDIuMjcxLTEuNzQ4IDMuOTU2LTQuMDM1IDMuOTU2LTIuMjkgMC00LjAzOC0xLjY4NS00LjAzOC0zLjk1NlptMi4yNDUgMGMwIDEuMTExLjc1NyAxLjkxNyAxLjc5MyAxLjkxN3MxLjc5NC0uODAzIDEuNzk0LTEuOTE3YzAtMS4xMTItLjc1OC0xLjkxOC0xLjc5NC0xLjkxOHMtMS43OTMuODAzLTEuNzkzIDEuOTE4Wm05LjU0IDB2My43ODdoLTIuMTk2di03LjU3NmgyLjE2NXYuNTI1YTIuNTQgMi41NCAwIDAgMSAxLjc5My0uNzEyYzEuODU2IDAgMy4wNzkgMS4yMDYgMy4wNzkgMy4zNTV2NC40MDVoLTIuMTk2di00LjIzNWMwLS44MDItLjM3Mi0xLjQ4My0xLjI1NC0xLjQ4My0xLjAzNi4wMDMtMS4zOTEuNzc0LTEuMzkxIDEuOTM0Wm0xMS4xNjcgMy4wMTVjLS40OTcuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTYgMC0yLjczOS0uOTQ1LTIuNzM5LTIuMzk3IDAtMS40MzggMS4yMjEtMi4xNSAyLjkzNy0yLjI0IDEuMzE0LS4wNzcgMS43MzQtLjIxNiAxLjczNC0uNjY0IDAtLjQzNC0uNDAzLS43MjYtMS4xMTItLjcyNi0uODY2IDAtMS4yMzcuNDM0LTEuMjg2Ljg5NmgtMi4xMTljLjEwNy0xLjY1MyAxLjM0NS0yLjc5OSAzLjQxOS0yLjc5OSAyLjAyNiAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA2aC0xLjgxbC0uMTk5LS43NzVabS0yLjY5My0xLjU0NWMwIC40MzQuMzg2LjY5NCAxLjAwNC42OTQuODM1IDAgMS41MDItLjQ2MiAxLjUwMi0xLjQwNnYtLjI3OHMtLjQwMy4xODQtMS4yMzguMjMyYy0uOTExLjA0Ni0xLjI2OC4zNC0xLjI2OC43NThabTYuNTI0IDIuMzE3VjI5LjU0M2gyLjE5NlY0MC4zOGgtMi4xOTZabTE0LjA4OS0xMC44MzcgNC4yNCAxMC44MzdoLTIuMzgxbC0uODY2LTIuMTMzaC00LjE5MWwtLjg1MSAyLjEzM2gtMi4zODFsNC4yMzktMTAuODM3aDIuMTkxWm0tMS4wOTggMy4xMjMtMS4zNDUgMy41MzloMi42OWwtMS4zNDUtMy41NFptNi4zODUtMi4wMDljMC0uNzEyLjU1Ni0xLjI4MiAxLjI2OS0xLjI4Mi43MTIgMCAxLjI4NS41NzMgMS4yODUgMS4yODIgMCAuNjk1LS41NzMgMS4yNjgtMS4yODUgMS4yNjhhMS4yNjQgMS4yNjQgMCAwIDEtMS4yNjktMS4yNjhabS4xNyA5LjcyMnYtNy41NzVoMi4xOTd2Ny41NzVoLTIuMTk3Wm0zLjc4OS0zLjc4NmMwLTIuMzk2IDEuNzE2LTMuOTczIDMuODE5LTMuOTczLjg2NiAwIDEuNTkyLjMyMyAxLjk4MS42NjR2LTMuNzQxaDIuMTk2VjQwLjM4aC0yLjE2NXYtLjU0MmMtLjQuMzg2LTEuMTYuNzEyLTIuMDA5LjcxMi0yLjEwNiAwLTMuODIyLTEuNTE1LTMuODIyLTMuOTU2Wm01LjgzMSAwYzAtMS4xNzQtLjc3Mi0xLjk4LTEuNzkzLTEuOTgtMS4wMjIgMC0xLjc5NC44MDMtMS43OTQgMS45OCAwIDEuMTc1Ljc3MiAxLjk4IDEuNzk0IDEuOTggMS4wMjEgMCAxLjc5My0uODA1IDEuNzkzLTEuOThaTTEwMC4xOTYgNDguMDloOC41MjJ2Mi4xMThoLTMuMTF2OC43MTloLTIuMzA0di04LjcxOWgtMy4xMTFWNDguMDloLjAwM1ptMTMuODg4IDMuNjkydjIuMTY0cy0uNTczLS41ODctMS40MzktLjU4N2MtLjY2NCAwLTEuNDA3LjM1NC0xLjQwNyAxLjQ2OXY0LjA5NWgtMi4xOTZ2LTcuNTc1aDIuMTY1di42MzVjLS4wMTQgMCAuNDM0LS43NDMgMS41MTUtLjc0My45MzEuMDAzIDEuMzYyLjU0MiAxLjM2Mi41NDJabTUuODkxIDYuMzcxYy0uNDk2LjYwNC0xLjIwNi45NDUtMi4xNTEuOTQ1LTEuNTE1IDAtMi43MzgtLjk0NS0yLjczOC0yLjM5NyAwLTEuNDM4IDEuMjItMi4xNSAyLjkzNy0yLjI0IDEuMzE0LS4wNzcgMS43MzQtLjIxNiAxLjczNC0uNjY0IDAtLjQzNC0uNDAzLS43MjYtMS4xMTItLjcyNi0uODY2IDAtMS4yMzguNDM0LTEuMjg2Ljg5NmgtMi4xMmMuMTA4LTEuNjUzIDEuMzQ1LTIuNzk5IDMuNDItMi43OTkgMi4wMjYgMCAzLjMyNiAxLjA5OCAzLjMyNiAzLjE1NHY0LjYwNWgtMS44MTFsLS4xOTktLjc3NFptLTIuNjktMS41NDVjMCAuNDM0LjM4Ni42OTUgMS4wMDUuNjk1LjgzNCAwIDEuNTAxLS40NjMgMS41MDEtMS40MDd2LS4yNzhzLS40MDMuMTg0LTEuMjM3LjIzMmMtLjkxNC4wNDYtMS4yNjkuMzQtMS4yNjkuNzU4Wm04LjcyMS0xLjQ3djMuNzg3aC0yLjE5N3YtNy41NzZoMi4xNjV2LjUyNWEyLjU0IDIuNTQgMCAwIDEgMS43OTQtLjcxMmMxLjg1NiAwIDMuMDc5IDEuMjA1IDMuMDc5IDMuMzU1djQuNDA1aC0yLjE5N3YtNC4yMzVjMC0uODAyLS4zNzEtMS40ODMtMS4yNTQtMS40ODMtMS4wMzMuMDAzLTEuMzkuNzc0LTEuMzkgMS45MzRabTEwLjc5NSAxLjYwN2MwLS4yMzItLjEzOS0uNDE2LS43NDQtLjU0MWwtMS4xNDMtLjIzM2MtMS43MTctLjM0LTIuNDQ0LTEuMTYtMi40NDQtMi4yODggMC0xLjMzIDEuMDA1LTIuNTE5IDMuMDk0LTIuNTE5IDIuMTAyIDAgMy4wNDcgMS4xNzQgMy4yMDEgMi40OWgtMi4wODljLS4xMjUtLjQxNy0uNDgtLjY2NC0xLjEyOS0uNjY0LS42MTkgMC0uOTYuMjE2LS45Ni41MjUgMCAuMjMzLjE4NS4zNzIuNzU4LjQ4bDEuMTQ0LjIzMmMxLjYyMy4zMjMgMi40MjkgMS4wODMgMi40MjkgMi4zOCAwIDEuNDY5LTEuMDY3IDIuNDktMy4xODcgMi40OS0yLjE2NSAwLTMuMzI2LTEuMDIxLTMuNTQyLTIuNTk4aDIuMjE0Yy4xMjUuNTI0LjUxMS44MDIgMS4zMjguODAyLjc0NiAwIDEuMDctLjIxNSAxLjA3LS41NTZabTExLjU1Mi0xLjYwOGMwIDIuMzk3LTEuNzE3IDMuOTU3LTMuODE5IDMuOTU3LS44NjYgMC0xLjU5Mi0uMzEtMS45ODEtLjY1djMuNDc3aC0yLjE5N1Y1MS4zNDhoMi4xNjZ2LjU0MmMuNDAzLS4zODYgMS4xNi0uNzI2IDIuMDEyLS43MjYgMi4xMDIgMCAzLjgxOSAxLjUxNyAzLjgxOSAzLjk3M1ptLTUuODMxIDBjMCAxLjE3NS43NzQgMS45OCAxLjc5MyAxLjk4IDEuMDIyIDAgMS43OTQtLjgwMyAxLjc5NC0xLjk4IDAtMS4xNzQtLjc3Mi0xLjk4LTEuNzk0LTEuOTgtMS4wMTkuMDA0LTEuNzkzLjgwNi0xLjc5MyAxLjk4Wm0xMS44NzkgMy4wMTZjLS40OTcuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTYgMC0yLjczOS0uOTQ1LTIuNzM5LTIuMzk3IDAtMS40MzggMS4yMi0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMi0uNzI2LS44NjYgMC0xLjIzNy40MzQtMS4yODYuODk2aC0yLjEyYy4xMDgtMS42NTMgMS4zNDYtMi43OTkgMy40Mi0yLjc5OSAyLjAyNiAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA1aC0xLjgxMWwtLjE5OC0uNzc0Wm0tMi42OTMtMS41NDVjMCAuNDM0LjM4Ni42OTUgMS4wMDQuNjk1LjgzNSAwIDEuNTAxLS40NjMgMS41MDEtMS40MDd2LS4yNzhzLS40MDMuMTg0LTEuMjM3LjIzMmMtLjkxMS4wNDYtMS4yNjguMzQtMS4yNjguNzU4Wm0xMS41NjYtNC44MjZ2Mi4xNjRzLS41NzMtLjU4Ny0xLjQzOS0uNTg3Yy0uNjY0IDAtMS40MDcuMzU0LTEuNDA3IDEuNDY5djQuMDk1aC0yLjE5N3YtNy41NzVoMi4xNjZ2LjYzNWMtLjAxNSAwIC40MzQtLjc0MyAxLjUxNS0uNzQzLjkyOC4wMDMgMS4zNjIuNTQyIDEuMzYyLjU0MlptOC40MjggMy45NDRoLTUuMzUyYy4xMjUuNzc0Ljc1OCAxLjM2IDEuNzAzIDEuMzYuNjM2IDAgMS4wMDUtLjI2MyAxLjIzNy0uNjQ5aDIuMzY3Yy0uNTExIDEuNjQtMS42ODYgMi42Ni0zLjU3MyAyLjY2LTIuMTk2IDAtMy45NTktMS41My0zLjk1OS0zLjkxIDAtMi4yODkgMS42MS00LjAxOSAzLjgzNy00LjAxOSAyLjQ4OSAwIDMuNzU3IDEuOTYzIDMuNzU3IDMuOTg4IDAgLjItLjAxNy41Ny0uMDE3LjU3Wm0tMy43MTEtMi42MjdjLS44MzUgMC0xLjM5NC41MS0xLjUzMyAxLjE2aDIuOTRjLS4wNDUtLjY2Ni0uNjE5LTEuMTYtMS40MDctMS4xNlptNy4zOTIgMi4wMzl2My43ODdoLTIuMTk2di03LjU3NmgyLjE2NXYuNTI1YTIuNTM4IDIuNTM4IDAgMCAxIDEuNzkzLS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNSAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTZ2LTQuMjM1YzAtLjgwMi0uMzcyLTEuNDgzLTEuMjU0LTEuNDgzLTEuMDM2LjAwMy0xLjM5MS43NzQtMS4zOTEgMS45MzRabTExLjU2Ny44MzdoMi40MTJjLS4zNTcgMS44NC0xLjc0OCAzLjEyMy0zLjc5MSAzLjEyMy0yLjI5IDAtMy45OS0xLjY4NS0zLjk5LTMuOTU3IDAtMi4yNzEgMS43MDMtMy45NzMgMy45OS0zLjk3MyAxLjk5NSAwIDMuMzg4IDEuMjM2IDMuNjY2IDMuMDI5aC0yLjQxNWMtLjE3LS41NzMtLjY2NC0uOTU5LTEuMzI4LS45NTktLjkyOCAwLTEuNjcxLjc4OS0xLjY3MSAxLjkgMCAxLjExMi43NDMgMS45IDEuNzAzIDEuOS43MTIuMDA0IDEuMjQtLjQxNiAxLjQyNC0xLjA2M1ptNS4xMDIgNi4wMjdjLS45OSAwLTEuNDg0LS4yNjQtMS40ODQtLjI2NHYtMi4wMXMuNDQ4LjIzMi45MjguMjMyYy40OTYgMCAxLjE0My0uMTg0IDEuMjk5LTEuMDM1bC0yLjk1NC03LjU3NWgyLjQ0NGwxLjcxNyA0LjY5OSAxLjc0OC00LjdoMi4zNDlsLTMuMDc5IDcuN2MtLjgwMyAyLjAyNi0xLjQ1MyAyLjk1My0yLjk2OCAyLjk1M1ptMTEuNTk4LTMuMDc1VjQ4LjA5aDIuMzA1djEwLjgzN2gtMi4zMDVabTYuNjE4LTMuNzg5djMuNzg3aC0yLjE5N3YtNy41NzZoMi4xNjZ2LjUyNWEyLjUzOCAyLjUzOCAwIDAgMSAxLjc5My0uNzEyYzEuODU2IDAgMy4wNzkgMS4yMDUgMy4wNzkgMy4zNTV2NC40MDVoLTIuMTk2di00LjIzNWMwLS44MDItLjM3Mi0xLjQ4My0xLjI1NS0xLjQ4My0xLjAzMy4wMDMtMS4zOS43NzQtMS4zOSAxLjkzNFptNi41NDEtNS45MzZjMC0uNzEyLjU1Ni0xLjI4MiAxLjI2OC0xLjI4MnMxLjI4Ni41NzMgMS4yODYgMS4yODJhMS4yOCAxLjI4IDAgMCAxLTEuMjg2IDEuMjY4IDEuMjY0IDEuMjY0IDAgMCAxLTEuMjY4LTEuMjY4Wm0uMTcgOS43MjV2LTcuNTc1aDIuMTk2djcuNTc1aC0yLjE5NlptNy4yNTQuMDI5Yy0xLjY1NSAwLTIuNjE0LS45NTktMi42MTQtMi42M3YtMi45NTJoLTEuMjY4VjUxLjM1aDEuMjY4di0xLjExMWwyLjE5Ni0xLjg1NXYyLjk3aDEuOTAydjIuMDI0aC0xLjkwMnYyLjY0M2MwIC43MjYuNDguODk3LjkyOC44OTcuNTExIDAgLjkyOC0uMjAyLjkyOC0uMjAydjEuOTk0cy0uNTg3LjI0Ny0xLjQzOC4yNDdabTIuOTU0LTkuNzU0YzAtLjcxMi41NTYtMS4yODIgMS4yNjgtMS4yODJzMS4yODYuNTczIDEuMjg2IDEuMjgyYTEuMjggMS4yOCAwIDAgMS0xLjI4NiAxLjI2OCAxLjI2NCAxLjI2NCAwIDAgMS0xLjI2OC0xLjI2OFptLjE3IDkuNzI1di03LjU3NWgyLjE5NnY3LjU3NWgtMi4xOTZabTguNzU0LS43NzRjLS40OTYuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTUgMC0yLjczOC0uOTQ1LTIuNzM4LTIuMzk3IDAtMS40MzggMS4yMi0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMy0uNzI2LS44NjUgMC0xLjIzNy40MzQtMS4yODUuODk2aC0yLjEyYy4xMDgtMS42NTMgMS4zNDUtMi43OTkgMy40MTktMi43OTkgMi4wMjcgMCAzLjMyNiAxLjA5OCAzLjMyNiAzLjE1NHY0LjYwNWgtMS44MWwtLjE5OS0uNzc0Wm0tMi42OTMtMS41NDVjMCAuNDM0LjM4Ni42OTUgMS4wMDUuNjk1LjgzNCAwIDEuNTAxLS40NjMgMS41MDEtMS40MDd2LS4yNzhzLS40MDMuMTg0LTEuMjM3LjIzMmMtLjkxNC4wNDYtMS4yNjkuMzQtMS4yNjkuNzU4Wm05LjU1OCAyLjM0OGMtMS42NTUgMC0yLjYxNC0uOTU5LTIuNjE0LTIuNjN2LTIuOTUyaC0xLjI2OFY1MS4zNWgxLjI2OHYtMS4xMTFsMi4xOTctMS44NTV2Mi45N2gxLjkwMXYyLjAyNGgtMS45MDF2Mi42NDNjMCAuNzI2LjQ3OS44OTcuOTI4Ljg5Ny41MSAwIC45MjgtLjIwMi45MjgtLjIwMnYxLjk5NHMtLjU4OC4yNDctMS40MzkuMjQ3Wm0yLjk1MS05Ljc1NGMwLS43MTIuNTU2LTEuMjgyIDEuMjY5LTEuMjgyLjcxMiAwIDEuMjg1LjU3MyAxLjI4NSAxLjI4MiAwIC42OTUtLjU3MyAxLjI2OC0xLjI4NSAxLjI2OGExLjI2NCAxLjI2NCAwIDAgMS0xLjI2OS0xLjI2OFptLjE3IDkuNzI1di03LjU3NWgyLjE5N3Y3LjU3NWgtMi4xOTdabTEwLjk4My03LjU3NS0yLjY5MSA3LjU3NWgtMi4yNThsLTIuNjkxLTcuNTc1aDIuMzM2bDEuNDg0IDQuNjg1IDEuNDg0LTQuNjg1aDIuMzM2Wm03Ljk4IDQuMzc0aC01LjM1MmMuMTI1Ljc3NC43NTcgMS4zNiAxLjcwMiAxLjM2LjYzNiAwIDEuMDA1LS4yNjMgMS4yMzgtLjY0OWgyLjM2NmMtLjUxIDEuNjQtMS42ODUgMi42Ni0zLjU3MiAyLjY2LTIuMTk3IDAtMy45NTktMS41My0zLjk1OS0zLjkxIDAtMi4yODkgMS42MDktNC4wMTkgMy44MzctNC4wMTkgMi40ODggMCAzLjc2IDEuOTYzIDMuNzYgMy45ODgtLjAwNi4yLS4wMi41Ny0uMDIuNTdabS0zLjcxMi0yLjYyN2MtLjgzNCAwLTEuMzkzLjUxLTEuNTMyIDEuMTZoMi45NGMtLjA0OS0uNjY2LS42MTktMS4xNi0xLjQwOC0xLjE2WlxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCA5NTAgMjkyXFxcIj48ZyBvcGFjaXR5PVxcXCIuM1xcXCI+PHBhdGggb3BhY2l0eT1cXFwiLjRcXFwiIGQ9XFxcIk0zOTMuMzgzIDUzNy41OTJhMjEzLjA1OCAyMTMuMDU4IDAgMCAxLTU1LjEzMy03LjI0OGMtMTguMTk2LTQuODYtMzUuNDE5LTEyLjA5LTUxLjM0Ny0yMS4zMTYtMTYuMTY2LTkuMzQ1LTMxLjAwMy0yMC43MDMtNDQuMTE3LTMzLjgxNy0xMy4xMTMtMTMuMTEzLTI0LjQ3MS0yNy45NjctMzMuODE2LTQ0LjExNmEyMTEuODI2IDIxMS44MjYgMCAwIDEtMjEuMzE3LTUxLjM0NyAyMTIuOTA2IDIxMi45MDYgMCAwIDEtNy4yNDctNTUuMTMzIDIxMy4wOSAyMTMuMDkgMCAwIDEgNy4yNDctNTUuMTMzYzQuODYxLTE4LjE5NiAxMi4wOTEtMzUuNDIgMjEuMzE3LTUxLjM0OGw1Ni42ODUgMzIuNzI1YTE0Ny4yMDMgMTQ3LjIwMyAwIDAgMC0xNC43NjggMzUuNTczIDE0Ny41MzEgMTQ3LjUzMSAwIDAgMC01LjAxNCAzOC4xODMgMTQ3LjUzIDE0Ny41MyAwIDAgMCA1LjAxNCAzOC4xODIgMTQ2LjUyNyAxNDYuNTI3IDAgMCAwIDE0Ljc2OCAzNS41NzNjNi40OCAxMS4xODcgMTQuMzQxIDIxLjQ3IDIzLjQzMSAzMC41NTkgOS4wODkgOS4wODkgMTkuMzcyIDE2Ljk1MSAzMC41NTkgMjMuNDMxYTE0Ny4yMDMgMTQ3LjIwMyAwIDAgMCAzNS41NzMgMTQuNzY4IDE0Ny42MjcgMTQ3LjYyNyAwIDAgMCAzOC4xODIgNS4wMTRjMTMuMiAwIDI2LjAwNi0xLjc1NyAzOC4xODItNS4wMTRhMTQ2LjQ5NCAxNDYuNDk0IDAgMCAwIDM1LjU3My0xNC43NjhjMTEuMTg3LTYuNDggMjEuNDctMTQuMzQyIDMwLjU2LTIzLjQzMWw0Ni4yODIgNDYuMjgyYy0xMy4xMTQgMTMuMTE0LTI3Ljk2NyAyNC40NzItNDQuMTE3IDMzLjgxN2EyMTEuNzUgMjExLjc1IDAgMCAxLTUxLjM0NyAyMS4zMTYgMjEzLjI4IDIxMy4yOCAwIDAgMS01NS4xNSA3LjI0OFpNNTgxLjY2OCA2NTAuNzRjMjguNTgxLTE2LjUyNCA1NC44MjYtMzYuNjEzIDc4LjAxOC01OS44MDUgMjMuMTkyLTIzLjE5MyA0My4yODEtNDkuNDU1IDU5LjgwNi03OC4wMTkgMTYuMzAzLTI4LjE3MiAyOS4wNzUtNTguNjI5IDM3LjY4Ny05MC44MDhhMzc2LjU5MiAzNzYuNTkyIDAgMCAwIDEyLjgwNy05Ny40NzYgMzc3LjIzIDM3Ny4yMyAwIDAgMC0xMi44MDctOTcuNDc3Yy04LjU5NS0zMi4xNzktMjEuMzg0LTYyLjYzNi0zNy42ODctOTAuODA4LTE2LjU0Mi0yOC41ODEtMzYuNjE0LTU0LjgyNi01OS44MDYtNzguMDE4LTIzLjE5Mi0yMy4xOTMtNDkuNDU0LTQzLjI4MS03OC4wMTgtNTkuODA2LTI4LjE3Mi0xNi4zMDMtNTguNjI5LTI5LjA5My05MC44MDktMzcuNjg3YTM3Ni41OTIgMzc2LjU5MiAwIDAgMC05Ny40NzYtMTIuODA3djY1LjQ1YzI3Ljg2NSAwIDU0Ljg0MyAzLjcxNyA4MC41NDMgMTAuNTkgMjYuNTg1IDcuMTExIDUxLjczOSAxNy42NjcgNzUuMDE3IDMxLjEzOSAyMy42MDEgMTMuNjYgNDUuMzEgMzAuMjUyIDY0LjQ2MSA0OS40MiAxOS4xNjcgMTkuMTY4IDM1Ljc2IDQwLjg2IDQ5LjQyIDY0LjQ2MSAxMy40NzIgMjMuMjc4IDI0LjAyOCA0OC40MzEgMzEuMTM5IDc1LjAxN2EzMTEuMjY2IDMxMS4yNjYgMCAwIDEgMTAuNTkgODAuNTQzYzAgMjcuODY1LTMuNzE3IDU0Ljg0My0xMC41OSA4MC41NDItNy4xMTEgMjYuNTg2LTE3LjY2NyA1MS43MzktMzEuMTM5IDc1LjAxNy0xMy42NiAyMy42MDItMzAuMjUzIDQ1LjMxLTQ5LjQyIDY0LjQ2MS0xOS4xNTEgMTkuMTUxLTQwLjg2IDM1Ljc2MS02NC40NjEgNDkuNDItMjMuMjc4IDEzLjQ3Mi00OC40MzIgMjQuMDI4LTc1LjAxNyAzMS4xMzlsMTYuOTMzIDYzLjIzNGMzMi4xOTctOC42NDYgNjIuNjM3LTIxLjQxOSA5MC44MDktMzcuNzIyWm0tNTYuOTA3IDE2NC4xODhhNTA0LjMxMiA1MDQuMzEyIDAgMCAwIDEyMi40MjUtNTAuNzMzIDUxMC40IDUxMC40IDAgMCAwIDEwNS4wODItODAuNzEzQTUwOS4yMjYgNTA5LjIyNiAwIDAgMCA4MzIuOTgxIDU3OC40YTUwNC43MyA1MDQuNzMgMCAwIDAgNTAuNzMzLTEyMi40MjVjMTEuMjA0LTQxLjkxNiAxNy4yMDctODUuOTQ4IDE3LjIwNy0xMzEuMzc3IDAtNDUuNDQ3LTYuMDAzLTg5LjQ3OS0xNy4yMDctMTMxLjM3OGE1MDQuMzQzIDUwNC4zNDMgMCAwIDAtNTAuNzMzLTEyMi40MjVDODEwLjcwOSAzMi4yODggNzgzLjUwOS0zLjAzIDc1Mi4yNjgtMzQuMjg3QTUwOS4yMTcgNTA5LjIxNyAwIDAgMCA2NDcuMTg2LTExNWwtMzIuNzkzIDU2Ljc4N2MzMy41NDMgMTkuNDA3IDY0LjM1OSA0Mi45OTEgOTEuNTkyIDcwLjIwOCAyNy4yMTcgMjcuMjE3IDUwLjgwMiA1OC4wNSA3MC4yMDkgOTEuNTc2IDE5LjEzMyAzMy4wNjYgMzQuMTQgNjguODEgNDQuMjM2IDEwNi41ODIgOS43NTQgMzYuNTExIDE1LjA0MSA3NC44NDcgMTUuMDQxIDExNC40MjggMCAzOS41OC01LjI3IDc3LjkxNi0xNS4wNDEgMTE0LjQyNi0xMC4wOTYgMzcuNzczLTI1LjEwMyA3My41MTctNDQuMjM2IDEwNi41ODMtMTkuNDA3IDMzLjU0NC00Mi45OTIgNjQuMzU5LTcwLjIwOSA5MS41NzYtMjcuMjE2IDI3LjIxNy01OC4wNDkgNTAuODAxLTkxLjU5MiA3MC4yMDgtMzMuMDY2IDE5LjEzNC02OC44MSAzNC4xNC0xMDYuNTgzIDQ0LjIzNi0zNi41MTEgOS43NTQtNzQuODQ2IDE1LjA0MS0xMTQuNDI3IDE1LjA0MS0zOS41OCAwLTc3LjkxNi01LjI4Ny0xMTQuNDI3LTE1LjA0MWwtMTYuOTUxIDYzLjI4NGM0MS45IDExLjIwNCA4NS45MzEgMTcuMjA3IDEzMS4zNzggMTcuMjA3IDQ1LjQ0Ny4wMzQgODkuNDc4LTUuOTY5IDEzMS4zNzgtMTcuMTczWlxcXCIgZmlsbD1cXFwidXJsKCNncm91cF9zdmdfX2EpXFxcIi8+PHBhdGggZD1cXFwiTTM5My4zODMgNzY2LjY4NmE0NDIuNDg5IDQ0Mi40ODkgMCAwIDEtMTE0LjEwMy0xNC45MzhjLTM3Ljc3My0xMC4wNjItNzMuNTE2LTI1LjA1Mi0xMDYuNTk5LTQ0LjE1MWwzMi43MjUtNTYuNjg1YzI4LjE4OSAxNi4yNjkgNTguNjQ2IDI5LjAyNCA5MC44MjUgMzcuNjAyYTM3Ny4xMjYgMzc3LjEyNiAwIDAgMCA5Ny4xNTIgMTIuNzIyaC4zMDdhMzc2Ljk1OCAzNzYuOTU4IDAgMCAwIDk3LjQyNS0xMi44NzVjMzIuMTQ2LTguNjEyIDYyLjU2OC0yMS40MDIgOTAuNzIzLTM3LjcwNSAyOC41NDctMTYuNTI0IDU0Ljc3NS0zNi42MTMgNzcuOTMzLTU5Ljc4OCAyMy4xNTktMjMuMTc2IDQzLjIzLTQ5LjQwNCA1OS43NTUtNzcuOTUxIDE2LjI4Ni0yOC4xNTQgMjkuMDU5LTU4LjU2IDM3LjY3LTkwLjcyM2EzNzYuNTc1IDM3Ni41NzUgMCAwIDAgMTIuODI0LTk3LjM5di0uMTg4YzAtMzMuNjI5LTQuNDY3LTY2LjIwMS0xMi43MzgtOTcuMjM3LTguNTc4LTMyLjE2My0yMS4zMzQtNjIuNjAzLTM3LjYwMy05MC43NzUtMTYuNTA3LTI4LjU4MS0zNi41NjItNTQuODQzLTU5LjcyLTc4LjAzNS0yMy4xNzUtMjMuMjEtNDkuNDAzLTQzLjMzMi03Ny45NS01OS44OTEtMjguMTcyLTE2LjMzNy01OC42MTItMjkuMTQ0LTkwLjc3NC0zNy43NzNsMTYuOTMzLTYzLjIzM2MzNy43NzMgMTAuMTMgNzMuNSAyNS4xNTMgMTA2LjU2NiA0NC4zMjEgMzMuNTI3IDE5LjQyNCA2NC4zMDggNDMuMDQyIDkxLjUwNyA3MC4yNzYgMjcuMTgzIDI3LjIzNCA1MC43NTEgNTguMDY3IDcwLjEyMyA5MS42MSAxOS4xIDMzLjA2NiAzNC4wNzIgNjguNzkzIDQ0LjE1MSAxMDYuNTY2YTQ0Mi4yOCA0NDIuMjggMCAwIDEgMTQuOTczIDExNC4xNzF2LjE4OGE0NDIuNzg0IDQ0Mi43ODQgMCAwIDEtMTUuMDU4IDExNC4zNDFjLTEwLjA5NiAzNy43MzktMjUuMDg2IDczLjQ0OC00NC4yMTkgMTA2LjQ5Ny0xOS4zOSAzMy41MS00Mi45NTcgNjQuMzA4LTcwLjE0IDkxLjUyNS0yNy4yIDI3LjItNTcuOTgxIDUwLjc4NC05MS40OTEgNzAuMTkxLTMzLjAzMiAxOS4xMzQtNjguNzU4IDM0LjE0MS0xMDYuNDk3IDQ0LjI1M2E0NDIuMDUyIDQ0Mi4wNTIgMCAwIDEtMTE0LjM1OSAxNS4wOTJjLS4xMzYtLjAxNy0uMjM4LS4wMTctLjM0MS0uMDE3Wm0uMzA3IDExNC41NDdjNDkuODEzLS4wMzUgOTguMDktNi42MzQgMTQ0LjAzMi0xOC45MjlhNTUzLjMxNiA1NTMuMzE2IDAgMCAwIDEzNC4xNzQtNTUuNjYyIDU1Ny44ODcgNTU3Ljg4NyAwIDAgMCAxMTUuMTQzLTg4LjUwNiA1NTguOTM4IDU1OC45MzggMCAwIDAgODguNDU1LTExNS4xNzggNTUyLjg2MyA1NTIuODYzIDAgMCAwIDU1LjYxMS0xMzQuMTc0Qzk0My40IDQyMi44NDIgOTQ5Ljk4MyAzNzQuNTgyIDk1MCAzMjQuNzg2di0uMTg3YzAtNDkuNzQ0LTYuNTY2LTk3Ljk1NC0xOC44MS0xNDMuODQ0YTU1My40NTQgNTUzLjQ1NCAwIDAgMC01NS41NDItMTM0LjI0M0M4NTEuMjQ1IDQuMjcyIDgyMS40NTMtMzQuNDU2IDc4Ny4yMS02OC43NWwtMzQuNzIgMzQuNzJhNTA4LjkwOCA1MDguOTA4IDAgMCAxIDgwLjYyNyAxMDUuMDk5IDUwNC40NjUgNTA0LjQ2NSAwIDAgMSA1MC42MzEgMTIyLjM5MWMxMS4xNTMgNDEuODMxIDE3LjEzOSA4NS43NzcgMTcuMTM5IDEzMS4xMzl2LjE4N2MtLjAxNyA0NS40MTMtNi4wMiA4OS40MS0xNy4yMjQgMTMxLjI5M2E1MDQuOTAyIDUwNC45MDIgMCAwIDEtNTAuNjk5IDEyMi4zMjMgNTA5LjcxNSA1MDkuNzE1IDAgMCAxLTgwLjY2MiAxMDUuMDEzIDUwOS4yNzggNTA5LjI3OCAwIDAgMS0xMDQuOTk2IDgwLjY5NiA1MDQuMzIgNTA0LjMyIDAgMCAxLTEyMi4zMjMgNTAuNzVjLTQxLjg4MyAxMS4yMjEtODUuODk3IDE3LjI0MS0xMzEuMzI3IDE3LjI3NWgtLjMwN2MtNDUuMzI3IDAtODkuMjM5LTUuOTY4LTEzMS4wNTQtMTcuMTIxYTUwNC44OTkgNTA0Ljg5OSAwIDAgMS0xMjIuNDQyLTUwLjYzMUE1MDkuMjg0IDUwOS4yODQgMCAwIDEgMzQuNzIgNjgzLjcyMkwwIDcxOC40NDNhNTU5LjIyMiA1NTkuMjIyIDAgMCAwIDExNS4yOTcgODguNDcyIDU1My41NjMgNTUzLjU2MyAwIDAgMCAxMzQuMjk0IDU1LjU0MmM0NS44NTYgMTIuMjI3IDk0LjAzMSAxOC43NzYgMTQzLjc1OCAxOC43NzZoLjM0MVptODAuNDc0LTI1Ni4xMDZhMzA5LjI4IDMwOS4yOCAwIDAgMCA3NC45MzItMzEuMTU2YzIzLjU2OC0xMy42NTkgNDUuMjQyLTMwLjI1MiA2NC4zNzYtNDkuMzg2IDE5LjEzNC0xOS4xNTEgMzUuNzA5LTQwLjgwOCA0OS4zNTItNjQuMzkzIDEzLjQ1NS0yMy4yNDMgMjQuMDExLTQ4LjM4IDMxLjEwNS03NC45MzFhMzExLjM5NiAzMTEuMzk2IDAgMCAwIDEwLjYwNy04MC40NTd2LS4xODhjMC0yNy43OC0zLjY4My01NC42NzMtMTAuNTA1LTgwLjI4Ny03LjA3Ny0yNi41NjgtMTcuNjE2LTUxLjcyMi0zMS4wNTQtNzUtMTMuNjI1LTIzLjYxOC0zMC4yMDEtNDUuMzEtNDkuMzM0LTY0LjQ3OC0xOS4xMzQtMTkuMTg1LTQwLjgwOS0zNS44MTEtNjQuMzkzLTQ5LjQ4OC0yMy4yNjEtMTMuNDktNDguNDE0LTI0LjA4LTc1LTMxLjIyNWEzMTEuNDUxIDMxMS40NTEgMCAwIDAtODAuNTYtMTAuNjc1aC0uMzA3YTMxMC45OTcgMzEwLjk5NyAwIDAgMC04MC4zMDMgMTAuNTIyYy0yNi42MiA3LjA5NC01MS44MDggMTcuNjUtNzUuMTIgMzEuMTIybDQ5LjA5NyA4NS4wMjdhMjExLjY3OCAyMTEuNjc4IDAgMCAxIDUxLjQzMi0yMS4yOTkgMjEzLjMxNCAyMTMuMzE0IDAgMCAxIDU0Ljg5NC03LjE4aC4zMDdhMjEzLjIgMjEzLjIgMCAwIDEgNTUuMTUgNy4zMzMgMjExLjI0NSAyMTEuMjQ1IDAgMCAxIDUxLjMzMSAyMS40MDJjMTYuMTMyIDkuMzc5IDMwLjk1MSAyMC43NzEgNDQuMDQ4IDMzLjkwMiAxMy4wOCAxMy4xMzEgMjQuNDIgMjcuOTg0IDMzLjc0OCA0NC4xMzRhMjExLjQwOCAyMTEuNDA4IDAgMCAxIDIxLjIzMSA1MS4zMyAyMTMuMjc2IDIxMy4yNzYgMCAwIDEgNy4xOCA1NC44Nzd2LjE4OGEyMTIuOTExIDIxMi45MTEgMCAwIDEtNy4yNjUgNTUuMDNjLTQuODYgMTguMTYyLTEyLjA5MSAzNS4zNTItMjEuMjgyIDUxLjI2Mi05LjMyOCAxNi4xMzMtMjAuNjY5IDMwLjk1Mi0zMy43NjYgNDQuMDQ5LTEzLjA3OSAxMy4wOTYtMjcuODk5IDI0LjQ1NC00NC4wMzEgMzMuNzk5LTE1LjkxMSA5LjIyNi0zMy4xIDE2LjQ1Ni01MS4yNjIgMjEuMzM0YTIxMi40OTUgMjEyLjQ5NSAwIDAgMS01NS4wNjUgNy4yOTh2OTguMTc2YTMxMi4wOSAzMTIuMDkgMCAwIDAgODAuNDU3LTEwLjY0MlptNjYuNzQ3LTMwMC41MTFjMC04MS40OC02Ni4wNDctMTQ3LjUyNy0xNDcuNTI4LTE0Ny41MjctODEuNDggMC0xNDcuNTI3IDY2LjA0Ny0xNDcuNTI3IDE0Ny41MjcgMCA4MS40OCA2Ni4wNDcgMTQ3LjUyNyAxNDcuNTI3IDE0Ny41MjcgODEuNDgxIDAgMTQ3LjUyOC02Ni4wNjQgMTQ3LjUyOC0xNDcuNTI3WlxcXCIgZmlsbD1cXFwidXJsKCNncm91cF9zdmdfX2IpXFxcIi8+PC9nPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ3JvdXBfc3ZnX19hXFxcIiB4MT1cXFwiMTI3Ljg5NVxcXCIgeTE9XFxcIjU4Mi42NDdcXFwiIHgyPVxcXCI4NzguMzQyXFxcIiB5Mj1cXFwiMTQ5LjM3N1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiLjZcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJncm91cF9zdmdfX2JcXFwiIHgxPVxcXCItMTEuMDcxXFxcIiB5MT1cXFwiNjk5LjE5M1xcXCIgeDI9XFxcIjkzNi41ODlcXFwiIHkyPVxcXCIxNTIuMDYxXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIuNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDkzNCAyMjBcXFwiPjxnIGZpbGw9XFxcIm5vbmVcXFwiPjxwYXRoIGZpbGw9XFxcIiMxODU1NjhcXFwiIGQ9XFxcIk0yLjYgMjA4LjdWMTAyLjJoMzAuOHYxMDYuNXpNMTI2IDE5OC40Yy03IDguNS0xNyAxMy4zLTMwLjQgMTMuMy0yMS40IDAtMzguNy0xMy4zLTM4LjctMzMuOSAwLTIwLjMgMTcuMy0zMC40IDQxLjUtMzEuNyAxOC42LTEuMSAyNC41LTMuMSAyNC41LTkuNCAwLTYuMS01LjctMTAuMy0xNS43LTEwLjMtMTIuMiAwLTE3LjUgNi4xLTE4LjEgMTIuN0g1OS4yYzEuNS0yMy40IDE5LTM5LjUgNDguMy0zOS41IDI4LjYgMCA0NyAxNS41IDQ3IDQ0LjZ2NjUuMWgtMjUuNmwtMi45LTEwLjl6bS0zOC0yMS45YzAgNi4xIDUuNSA5LjggMTQuMiA5LjggMTEuOCAwIDIxLjItNi42IDIxLjItMTkuOXYtMy45cy01LjcgMi42LTE3LjUgMy4zYy0xMi44LjctMTcuOSA0LjgtMTcuOSAxMC43em0xMzUgMzMuMmMtMjMuNCAwLTM2LjktMTMuNS0zNi45LTM3LjF2LTQxLjdoLTE3Ljl2LTI4LjZoMTcuOVY4Ni41bDMxLTI2LjJ2NDEuOUgyNDR2MjguNmgtMjYuOXYzNy40YzAgMTAuMyA2LjggMTIuNyAxMy4xIDEyLjcgNy4yIDAgMTMuMS0yLjggMTMuMS0yLjh2MjguMnMtOC4zIDMuNC0yMC4zIDMuNHpNMCA3MC4yYzAtMTAgNy45LTE4LjEgMTcuOS0xOC4xIDEwIDAgMTguMSA4LjEgMTguMSAxOC4xIDAgOS44LTguMSAxNy45LTE4LjEgMTcuOS0xMCAwLTE3LjktOC0xNy45LTE3Ljl6bTI2Ni45IDEzOC41VjEwMi4yaDMwLjh2MTA2LjV6XFxcIi8+PGcgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMjI3KVxcXCI+PHBhdGggZmlsbD1cXFwiIzE4NTU2OFxcXCIgZD1cXFwiTTExMC45IDcwLjVjMC00LjktLjctOS43LTEuOS0xNC4zLTEuMy00LjctMy4xLTkuMi01LjUtMTMuMy0yLjQtNC4yLTUuNC04LTguOC0xMS40LTMuNC0zLjQtNy4yLTYuMy0xMS40LTguOC00LjEtMi40LTguNi00LjMtMTMuMy01LjUtNC42LTEuMi05LjMtMS45LTE0LjMtMS45LTQuOSAwLTkuNy43LTE0LjMgMS45LTQuNyAxLjMtOS4yIDMuMS0xMy4zIDUuNS00LjIgMi40LTggNS40LTExLjQgOC44LTMuNCAzLjQtNi40IDcuMi04LjggMTEuNC0yLjQgNC4xLTQuMyA4LjYtNS41IDEzLjNsNy45IDIuMWMxLjEtNCAyLjctNy44IDQuNy0xMS4zIDIuMS0zLjYgNC42LTYuOCA3LjUtOS43IDIuOS0yLjkgNi4yLTUuNCA5LjctNy41IDMuNS0yIDcuMy0zLjYgMTEuMy00LjcgMy45LTEgNy45LTEuNiAxMi4xLTEuNiA0LjIgMCA4LjMuNiAxMi4yIDEuNiA0IDEuMSA3LjggMi43IDExLjMgNC43IDMuNiAyLjEgNi44IDQuNiA5LjcgNy41IDIuOSAyLjkgNS40IDYuMiA3LjUgOS43IDIgMy41IDMuNiA3LjMgNC43IDExLjMgMSAzLjkgMS42IDggMS42IDEyLjIgMCA0LjItLjYgOC4zLTEuNiAxMi4xLTEuMSA0LTIuNyA3LjgtNC43IDExLjNsNy4xIDQuMWMyLjQtNC4xIDQuMy04LjYgNS41LTEzLjMgMS4zLTQuNSAyLTkuMiAyLTE0LjJaXFxcIi8+PHBhdGggZmlsbD1cXFwiIzE4NTU2OFxcXCIgZD1cXFwiTTEyNS4yIDcwLjVjMC02LjItLjgtMTIuMy0yLjQtMTgtMS42LTUuOS0zLjktMTEuNi03LTE2LjgtMy4xLTUuMy02LjgtMTAuMS0xMS4xLTE0LjQtNC4zLTQuMy05LjEtOC0xNC40LTExLjEtNS4yLTMtMTAuOC01LjQtMTYuOC02LjlDNjcuOCAxLjggNjEuNy45IDU1LjUuOWMtNi4yIDAtMTIuMi44LTE4IDIuMy01LjkgMS42LTExLjYgMy45LTE2LjggNi45LTUuMyAzLTEwLjEgNi44LTE0LjQgMTFsNC4zIDQuM2MzLjktMy45IDguMy03LjMgMTMuMS0xMC4xIDQuNy0yLjcgOS45LTQuOSAxNS4zLTYuMyA1LjItMS40IDEwLjctMi4xIDE2LjQtMi4xIDUuNyAwIDExLjIuOCAxNi40IDIuMiA1LjQgMS40IDEwLjUgMy42IDE1LjMgNi4zYTY0LjQ2NiA2NC40NjYgMCAwIDEgMjMuMiAyMy4yYzIuNyA0LjcgNC45IDkuOSA2LjMgMTUuMyAxLjQgNS4yIDIuMiAxMC43IDIuMiAxNi40IDAgNS43LS43IDExLjEtMi4xIDE2LjQtMS40IDUuNC0zLjYgMTAuNi02LjMgMTUuMy0yLjggNC44LTYuMiA5LjItMTAuMSAxMy4xbDQuMyA0LjNjNC4zLTQuMyA4LTkuMSAxMS4xLTE0LjQgMy01LjIgNS40LTEwLjggNi45LTE2LjggMS44LTUuNCAyLjYtMTEuNSAyLjYtMTcuN1pcXFwiLz48cGF0aCBmaWxsPVxcXCIjMTg1NTY4XFxcIiBkPVxcXCJNOTMuMiA2MC40Yy0uOS0zLjMtMi4yLTYuNS0zLjktOS40LTEuNy0yLjktMy44LTUuNy02LjItOC0yLjQtMi40LTUuMS00LjUtOC02LjItMi45LTEuNy02LTMtOS40LTMuOS0zLjItLjktNi42LTEuMy0xMC0xLjMtMy41IDAtNi44LjUtMTAgMS4zLTMuMy45LTYuNSAyLjItOS40IDMuOS0yLjkgMS43LTUuNyAzLjgtOC4xIDYuMi0yLjQgMi40LTQuNSA1LjEtNi4yIDgtMS43IDIuOS0zIDYtMy45IDkuNC0uOSAzLjItMS4zIDYuNi0xLjMgMTAuMXMuNSA2LjggMS4zIDEwYy45IDMuMyAyLjIgNi41IDMuOSA5LjRsMTAuNi02LjFjLTEuMi0yLTIuMS00LjEtMi43LTYuNC0uNi0yLjItLjktNC41LS45LTYuOSAwLTIuNC4zLTQuNy45LTYuOS42LTIuMyAxLjUtNC40IDIuNy02LjQgMS4yLTIgMi42LTMuOSA0LjItNS41czMuNS0zLjEgNS41LTQuMiA0LjEtMiA2LjQtMi43YzIuMi0uNiA0LjUtLjkgNi45LS45IDIuNCAwIDQuNy4zIDYuOS45IDIuMy42IDQuNCAxLjUgNi40IDIuNyAyIDEuMiAzLjkgMi42IDUuNSA0LjJzMy4xIDMuNSA0LjIgNS41YzEuMiAyIDIuMSA0LjEgMi43IDYuNC42IDIuMi45IDQuNS45IDYuOWgxMi4zYzAtMy41LS40LTYuOS0xLjMtMTAuMVpcXFwiLz48ZyBmaWxsPVxcXCIjQTdFQkVGXFxcIj48cGF0aCBkPVxcXCJNODEuNCA2My42Yy0uNi0yLjMtMS41LTQuNC0yLjctNi40LTEuMi0yLTIuNi0zLjktNC4yLTUuNWwtNS44IDUuOGMxLjEgMS4xIDIuMSAyLjQgMi45IDMuOC44IDEuNCAxLjQgMi45IDEuOCA0LjQuNCAxLjUuNiAzLjEuNiA0LjggMCAxLjctLjIgMy4yLS42IDQuOC0uNCAxLjYtMSAzLjEtMS44IDQuNC0uOCAxLjQtMS44IDIuNy0yLjkgMy44LTEuMSAxLjEtMi40IDIuMS0zLjggMi45LTEuNC44LTIuOSAxLjQtNC40IDEuOC0xLjUuNC0zLjEuNi00LjguNi0xLjcgMC0zLjItLjItNC44LS42LTEuNi0uNC0zLjEtMS00LjQtMS44bC00LjEgNy4xYzIgMS4yIDQuMSAyLjEgNi40IDIuNyAyLjIuNiA0LjUuOSA2LjkuOSAyLjQgMCA0LjctLjMgNi45LS45IDIuMy0uNiA0LjQtMS41IDYuNC0yLjcgMi0xLjIgMy45LTIuNiA1LjUtNC4yczMuMS0zLjUgNC4yLTUuNWMxLjItMiAyLjEtNC4xIDIuNy02LjQuNi0yLjIuOS00LjUuOS02LjkgMC0yLjQtLjMtNC43LS45LTYuOVpcXFwiLz48cGF0aCBkPVxcXCJNOTYuNCA0N2MtMi4xLTMuNi00LjYtNi44LTcuNS05LjctMi45LTIuOS02LjItNS40LTkuNy03LjUtMy41LTItNy4zLTMuNi0xMS4zLTQuNy0zLjktMS04LTEuNi0xMi4yLTEuNi00LjIgMC04LjMuNi0xMi4yIDEuNi00IDEuMS03LjggMi43LTExLjMgNC43LTMuNiAyLjEtNi44IDQuNi05LjcgNy41LTIuOSAyLjktNS40IDYuMi03LjUgOS43LTIgMy41LTMuNiA3LjMtNC43IDExLjMtMSAzLjktMS42IDgtMS42IDEyLjJoOC4yYzAtMy41LjUtNi45IDEuMy0xMC4xLjktMy4zIDIuMi02LjUgMy45LTkuNCAxLjctMi45IDMuOC01LjcgNi4yLTguMSAyLjQtMi40IDUuMS00LjUgOC4xLTYuMiAyLjktMS43IDYuMS0zIDkuNC0zLjkgMy4yLS45IDYuNi0xLjMgMTAuMS0xLjNzNi45LjUgMTAuMSAxLjNjMy4zLjkgNi41IDIuMiA5LjQgMy45IDIuOSAxLjcgNS43IDMuOCA4LjEgNi4yIDIuNCAyLjQgNC41IDUuMSA2LjIgOC4xIDEuNyAyLjkgMyA2LjEgMy45IDkuNGw3LjktMi4xYy0xLjUtNC0zLjEtNy44LTUuMS0xMS4zWlxcXCIvPjxwYXRoIGQ9XFxcIk0xMTYuOSA1NC4xYy0xLjQtNS40LTMuNi0xMC41LTYuMy0xNS4zYTY0LjQ2NiA2NC40NjYgMCAwIDAtMjMuMi0yMy4yYy00LjctMi43LTkuOS00LjktMTUuMy02LjMtNS4yLTEuNC0xMC43LTIuMS0xNi40LTIuMS01LjcgMC0xMS4yLjgtMTYuNCAyLjEtNS40IDEuNC0xMC41IDMuNi0xNS4zIDYuM0E2NC40NjYgNjQuNDY2IDAgMCAwIC44IDM4LjhsNy4xIDQuMWMyLjQtNC4yIDUuNC04IDguOC0xMS40IDMuNC0zLjQgNy4zLTYuMyAxMS40LTguOCA0LjEtMi40IDguNi00LjMgMTMuMy01LjUgNC42LTEuMiA5LjMtMS45IDE0LjMtMS45czkuNy43IDE0LjMgMS45YzQuNyAxLjMgOS4yIDMuMSAxMy4zIDUuNSA0LjIgMi40IDggNS40IDExLjQgOC44IDMuNCAzLjQgNi4zIDcuMyA4LjggMTEuNCAyLjQgNC4xIDQuMyA4LjYgNS41IDEzLjMgMS4yIDQuNiAxLjkgOS4zIDEuOSAxNC4zIDAgNC45LS43IDkuNy0xLjkgMTQuM2w3LjkgMi4xYzEuNC01LjIgMi4xLTEwLjcgMi4xLTE2LjQuMS01LjYtLjctMTEuMS0yLjEtMTYuNFpcXFwiLz48L2c+PGNpcmNsZSBjeD1cXFwiNTUuN1xcXCIgY3k9XFxcIjcwLjVcXFwiIHI9XFxcIjE4LjRcXFwiIGZpbGw9XFxcIiMxODU1NjhcXFwiLz48L2c+PHBhdGggZD1cXFwiTTM1NS4zIDE0My40di0zOC4yaDguMXYzOC4yem0yMy4zLTEzLjR2MTMuNGgtNy43di0yNi43aDcuNnYxLjljMS41LTEuNCAzLjYtMi41IDYuMy0yLjUgNi41IDAgMTAuOCA0LjMgMTAuOCAxMS44djE1LjVIMzg4di0xNC45YzAtMi44LTEuMy01LjItNC40LTUuMi0zLjctLjEtNSAyLjYtNSA2Ljd6bTM0LjEgMTMuNWMtNS44IDAtOS4yLTMuNC05LjItOS4zdi0xMC40SDM5OXYtNy4xaDQuNXYtMy45bDcuNy02LjV2MTAuNWg2Ljd2Ny4xaC02Ljd2OS4zYzAgMi42IDEuNyAzLjIgMy4zIDMuMiAxLjggMCAzLjMtLjcgMy4zLS43djdjMC0uMS0yLjEuOC01LjEuOHptMzUuOS0xMS40aC0xOC45Yy40IDIuNyAyLjcgNC44IDYgNC44IDIuMiAwIDMuNS0uOSA0LjQtMi4zaDguM2MtMS44IDUuOC01LjkgOS40LTEyLjYgOS40LTcuNyAwLTE0LTUuNC0xNC0xMy44IDAtOC4xIDUuNy0xNC4yIDEzLjUtMTQuMiA4LjggMCAxMy4yIDYuOSAxMy4yIDE0LjEuMi43LjEgMiAuMSAyem0tMTMuMS05LjNjLTIuOSAwLTQuOSAxLjgtNS40IDQuMWgxMC40Yy0uMi0yLjMtMi4yLTQuMS01LTQuMXptMzYuMS00LjZ2Ny42cy0yLTIuMS01LjEtMi4xYy0yLjMgMC01IDEuMy01IDUuMnYxNC40aC03Ljd2LTI2LjdoNy42djIuMmMtLjEgMCAxLjUtMi42IDUuMy0yLjYgMy40LjEgNC45IDIgNC45IDJ6bTEyIDExLjh2MTMuNGgtNy43di0yNi43aDcuNnYxLjljMS41LTEuNCAzLjYtMi41IDYuMy0yLjUgNi41IDAgMTAuOCA0LjMgMTAuOCAxMS44djE1LjVoLTcuN3YtMTQuOWMwLTIuOC0xLjMtNS4yLTQuNC01LjItMy43LS4xLTQuOSAyLjYtNC45IDYuN3ptMzkuMyAxMC43Yy0xLjcgMi4xLTQuMyAzLjMtNy42IDMuMy01LjMgMC05LjYtMy4zLTkuNi04LjQgMC01LjEgNC4zLTcuNiAxMC40LTcuOSA0LjYtLjMgNi4xLS44IDYuMS0yLjMgMC0xLjUtMS40LTIuNi0zLjktMi42LTMuMSAwLTQuNCAxLjUtNC41IDMuMmgtNy41Yy40LTUuOCA0LjctOS45IDEyLTkuOSA3LjEgMCAxMS43IDMuOSAxMS43IDExLjF2MTYuMmgtNi40bC0uNy0yLjd6bS05LjQtNS41YzAgMS41IDEuNCAyLjUgMy41IDIuNSAyLjkgMCA1LjMtMS42IDUuMy01di0xcy0xLjQuNy00LjQuOGMtMy4yLjItNC40IDEuMi00LjQgMi43em0zMy42IDguM2MtNS44IDAtOS4yLTMuNC05LjItOS4zdi0xMC40aC00LjV2LTcuMWg0LjV2LTMuOWw3LjctNi41djEwLjVoNi43djcuMWgtNi43djkuM2MwIDIuNiAxLjcgMy4yIDMuMyAzLjIgMS44IDAgMy4zLS43IDMuMy0uN3Y3YzAtLjEtMi4xLjgtNS4xLjh6bTEwLjQtMzQuNGMwLTIuNSAyLTQuNSA0LjUtNC41czQuNSAyIDQuNSA0LjUtMiA0LjUtNC41IDQuNS00LjUtMi4xLTQuNS00LjV6bS42IDM0LjN2LTI2LjdoNy43djI2LjdoLTcuN3ptMTMuNC0xMy40YzAtOCA2LjItMTQgMTQuMi0xNCA4LjEgMCAxNC4yIDYgMTQuMiAxNHMtNi4yIDE0LTE0LjIgMTRjLTguMSAwLTE0LjItNi0xNC4yLTE0em03LjkgMGMwIDMuOSAyLjcgNi44IDYuMyA2LjggMy43IDAgNi4zLTIuOCA2LjMtNi44IDAtMy45LTIuNy02LjgtNi4zLTYuOC0zLjYuMS02LjMgMi45LTYuMyA2Ljh6bTMzLjYgMHYxMy40aC03Ljd2LTI2LjdoNy42djEuOWMxLjUtMS40IDMuNi0yLjUgNi4zLTIuNSA2LjUgMCAxMC44IDQuMyAxMC44IDExLjh2MTUuNWgtNy43di0xNC45YzAtMi44LTEuMy01LjItNC40LTUuMi0zLjYtLjEtNC45IDIuNi00LjkgNi43em0zOS40IDEwLjdjLTEuNyAyLjEtNC4zIDMuMy03LjYgMy4zLTUuMyAwLTkuNi0zLjMtOS42LTguNCAwLTUuMSA0LjMtNy42IDEwLjQtNy45IDQuNi0uMyA2LjEtLjggNi4xLTIuMyAwLTEuNS0xLjQtMi42LTMuOS0yLjYtMy4xIDAtNC40IDEuNS00LjUgMy4yaC03LjVjLjQtNS44IDQuNy05LjkgMTItOS45IDcuMSAwIDExLjcgMy45IDExLjcgMTEuMXYxNi4yaC02LjRsLS43LTIuN3ptLTkuNS01LjVjMCAxLjUgMS40IDIuNSAzLjUgMi41IDIuOSAwIDUuMy0xLjYgNS4zLTV2LTFzLTEuNC43LTQuNC44Yy0zLjIuMi00LjQgMS4yLTQuNCAyLjd6bTIzIDguMnYtMzguMmg3Ljd2MzguMnptNDkuNi0zOC4yIDE0LjkgMzguMkg3MjJsLTMuMS03LjVoLTE0LjhsLTMgNy41aC04LjRsMTQuOS0zOC4yaDcuOXptLTMuOSAxMS00LjcgMTIuNWg5LjVsLTQuOC0xMi41em0yMi41LTcuMWMwLTIuNSAyLTQuNSA0LjUtNC41czQuNSAyIDQuNSA0LjUtMiA0LjUtNC41IDQuNS00LjUtMi4xLTQuNS00LjV6bS42IDM0LjN2LTI2LjdoNy43djI2LjdoLTcuN3ptMTMuNC0xMy40YzAtOC40IDYuMS0xNCAxMy41LTE0IDMuMSAwIDUuNiAxLjEgNyAyLjN2LTEzLjJoNy43djM4LjJoLTcuNnYtMS45Yy0xLjQgMS40LTQuMSAyLjUtNy4xIDIuNS03LjUuMS0xMy41LTUuMy0xMy41LTEzLjl6bTIwLjUgMGMwLTQuMS0yLjctNy02LjMtNy0zLjYgMC02LjMgMi44LTYuMyA3IDAgNC4xIDIuNyA3IDYuMyA3IDMuNiAwIDYuMy0yLjggNi4zLTd6bS00MTUuOCA0MC42aDMwdjcuNWgtMTF2MzAuN2gtOC4xVjE3OGgtMTF2LTcuNHptNDguOSAxM3Y3LjZzLTItMi4xLTUuMS0yLjFjLTIuMyAwLTUgMS4zLTUgNS4ydjE0LjRIMzg0VjE4Mmg3LjZ2Mi4yYy0uMSAwIDEuNS0yLjYgNS4zLTIuNiAzLjMuMSA0LjggMiA0LjggMnptMjAuOCAyMi40Yy0xLjcgMi4xLTQuMyAzLjMtNy42IDMuMy01LjMgMC05LjYtMy4zLTkuNi04LjQgMC01LjEgNC4zLTcuNiAxMC40LTcuOSA0LjYtLjMgNi4xLS44IDYuMS0yLjMgMC0xLjUtMS40LTIuNi0zLjktMi42LTMuMSAwLTQuNCAxLjUtNC41IDMuMmgtNy41Yy40LTUuOCA0LjctOS45IDEyLTkuOSA3LjEgMCAxMS43IDMuOSAxMS43IDExLjF2MTYuMmgtNi40bC0uNy0yLjd6bS05LjUtNS40YzAgMS41IDEuNCAyLjUgMy41IDIuNSAyLjkgMCA1LjMtMS42IDUuMy01di0xcy0xLjQuNy00LjQuOGMtMy4xLjItNC40IDEuMi00LjQgMi43em0zMC44LTUuMnYxMy40SDQzNnYtMjYuN2g3LjZ2MS45YzEuNS0xLjQgMy42LTIuNSA2LjMtMi41IDYuNSAwIDEwLjggNC4zIDEwLjggMTEuOHYxNS41SDQ1M3YtMTQuOWMwLTIuOC0xLjMtNS4yLTQuNC01LjItMy42LS4xLTQuOCAyLjYtNC44IDYuN3ptMzggNS43YzAtLjgtLjUtMS41LTIuNi0xLjlsLTQtLjhjLTYuMS0xLjItOC42LTQuMS04LjYtOC4xIDAtNC43IDMuNS04LjkgMTAuOS04LjlzMTAuNyA0LjEgMTEuMyA4LjhoLTcuNGMtLjQtMS41LTEuNy0yLjMtNC0yLjMtMi4yIDAtMy40LjgtMy40IDEuOSAwIC44LjcgMS4zIDIuNyAxLjdsNCAuOGM1LjcgMS4xIDguNiAzLjggOC42IDguNCAwIDUuMi0zLjggOC44LTExLjIgOC44LTcuNiAwLTExLjctMy42LTEyLjUtOS4yaDcuOGMuNCAxLjkgMS44IDIuOCA0LjcgMi44IDIuNS0uMSAzLjctLjggMy43LTJ6bTQwLjctNS43YzAgOC40LTYuMSAxNC0xMy41IDE0LTMuMSAwLTUuNi0xLjEtNy0yLjN2MTIuM2gtNy43di0zNy4zaDcuNnYxLjljMS40LTEuNCA0LjEtMi42IDcuMS0yLjYgNy41IDAgMTMuNSA1LjQgMTMuNSAxNHptLTIwLjUgMGMwIDQuMSAyLjcgNyA2LjMgNyAzLjYgMCA2LjMtMi44IDYuMy03IDAtNC4xLTIuNy03LTYuMy03LTMuNiAwLTYuMyAyLjktNi4zIDd6bTQxLjggMTAuNmMtMS43IDIuMS00LjMgMy4zLTcuNiAzLjMtNS4zIDAtOS42LTMuMy05LjYtOC40IDAtNS4xIDQuMy03LjYgMTAuNC03LjkgNC42LS4zIDYuMS0uOCA2LjEtMi4zIDAtMS41LTEuNC0yLjYtMy45LTIuNi0zLjEgMC00LjQgMS41LTQuNSAzLjJoLTcuNWMuNC01LjggNC43LTkuOSAxMi05LjkgNy4xIDAgMTEuNyAzLjkgMTEuNyAxMS4xdjE2LjJoLTYuNGwtLjctMi43em0tOS41LTUuNGMwIDEuNSAxLjQgMi41IDMuNSAyLjUgMi45IDAgNS4zLTEuNiA1LjMtNXYtMXMtMS40LjctNC40LjhjLTMuMS4yLTQuNCAxLjItNC40IDIuN3ptNDAuOC0xN3Y3LjZzLTItMi4xLTUuMS0yLjFjLTIuMyAwLTUgMS4zLTUgNS4ydjE0LjRoLTcuN1YxODJoNy42djIuMmMtLjEgMCAxLjUtMi42IDUuMy0yLjYgMy40LjEgNC45IDIgNC45IDJ6bTI5LjcgMTMuOWgtMTguOWMuNCAyLjcgMi43IDQuOCA2IDQuOCAyLjIgMCAzLjUtLjkgNC40LTIuM2g4LjNjLTEuOCA1LjgtNS45IDkuNC0xMi42IDkuNC03LjcgMC0xNC01LjQtMTQtMTMuOCAwLTguMSA1LjctMTQuMiAxMy41LTE0LjIgOC44IDAgMTMuMiA2LjkgMTMuMiAxNC4xLjEuNy4xIDIgLjEgMnptLTEzLjEtOS4zYy0yLjkgMC00LjkgMS44LTUuNCA0LjFoMTAuNGMtLjItMi4zLTIuMi00LjEtNS00LjF6bTI2LjEgNy4ydjEzLjRINjEwdi0yNi43aDcuNnYxLjljMS41LTEuNCAzLjYtMi41IDYuMy0yLjUgNi41IDAgMTAuOCA0LjMgMTAuOCAxMS44djE1LjVINjI3di0xNC45YzAtMi44LTEuMy01LjItNC40LTUuMi0zLjYtLjEtNC44IDIuNi00LjggNi43em00MC43IDNoOC41Yy0xLjMgNi41LTYuMiAxMS0xMy40IDExLTguMSAwLTE0LjEtNS45LTE0LjEtMTQgMC04IDYtMTQgMTQuMS0xNCA3IDAgMTEuOSA0LjQgMTIuOSAxMC43SDY1OGMtLjYtMi0yLjMtMy40LTQuNy0zLjQtMy4zIDAtNS45IDIuOC01LjkgNi43IDAgMy45IDIuNiA2LjcgNiA2LjcgMi42IDAgNC41LTEuNCA1LjEtMy43em0xOCAyMS4yYy0zLjUgMC01LjItLjktNS4yLS45di03LjFzMS42LjggMy4zLjhjMS43IDAgNC0uNyA0LjYtMy43TDY2OC44IDE4Mmg4LjZsNi4xIDE2LjYgNi4yLTE2LjZoOC4zbC0xMSAyNy4yYy0yLjkgNy4xLTUuMiAxMC40LTEwLjUgMTAuNHptNDAuOS0xMC44di0zOC4yaDguMXYzOC4yem0yMy4zLTEzLjR2MTMuNEg3MzN2LTI2LjdoNy42djEuOWMxLjUtMS40IDMuNi0yLjUgNi4zLTIuNSA2LjUgMCAxMC44IDQuMyAxMC44IDExLjh2MTUuNUg3NTB2LTE0LjljMC0yLjgtMS4zLTUuMi00LjQtNS4yLTMuNy0uMS00LjkgMi42LTQuOSA2Ljd6bTIzLTIwLjljMC0yLjUgMi00LjUgNC41LTQuNXM0LjUgMiA0LjUgNC41LTIgNC41LTQuNSA0LjUtNC41LTIuMS00LjUtNC41em0uNiAzNC4zdi0yNi43aDcuN3YyNi43aC03Ljd6bTI1LjYuMWMtNS44IDAtOS4yLTMuNC05LjItOS4zdi0xMC40aC00LjV2LTcuMWg0LjV2LTMuOWw3LjctNi41djEwLjVoNi43djcuMWgtNi43djkuM2MwIDIuNiAxLjcgMy4yIDMuMyAzLjIgMS44IDAgMy4zLS43IDMuMy0uN3Y3YzAtLjEtMi4xLjgtNS4xLjh6bTEwLjQtMzQuNGMwLTIuNSAyLTQuNSA0LjUtNC41czQuNSAyIDQuNSA0LjUtMiA0LjUtNC41IDQuNS00LjUtMi4xLTQuNS00LjV6bS42IDM0LjN2LTI2LjdoNy43djI2LjdoLTcuN3ptMzAuOC0yLjhjLTEuNyAyLjEtNC4zIDMuMy03LjYgMy4zLTUuMyAwLTkuNi0zLjMtOS42LTguNCAwLTUuMSA0LjMtNy42IDEwLjQtNy45IDQuNi0uMyA2LjEtLjggNi4xLTIuMyAwLTEuNS0xLjQtMi42LTMuOS0yLjYtMy4xIDAtNC40IDEuNS00LjUgMy4yaC03LjVjLjQtNS44IDQuNy05LjkgMTItOS45IDcuMSAwIDExLjcgMy45IDExLjcgMTEuMXYxNi4yaC02LjRsLS43LTIuN3ptLTkuNC01LjRjMCAxLjUgMS40IDIuNSAzLjUgMi41IDIuOSAwIDUuMy0xLjYgNS4zLTV2LTFzLTEuNC43LTQuNC44Yy0zLjIuMi00LjQgMS4yLTQuNCAyLjd6bTMzLjYgOC4zYy01LjggMC05LjItMy40LTkuMi05LjN2LTEwLjRoLTQuNXYtNy4xaDQuNXYtMy45bDcuNy02LjV2MTAuNWg2Ljd2Ny4xaC02Ljd2OS4zYzAgMi42IDEuNyAzLjIgMy4zIDMuMiAxLjggMCAzLjMtLjcgMy4zLS43djdjMC0uMS0yLjEuOC01LjEuOHptMTAuNC0zNC40YzAtMi41IDItNC41IDQuNS00LjVzNC41IDIgNC41IDQuNS0yIDQuNS00LjUgNC41LTQuNS0yLjEtNC41LTQuNXptLjYgMzQuM3YtMjYuN2g3Ljd2MjYuN2gtNy43em0zOC43LTI2LjctOS41IDI2LjdoLThsLTkuNS0yNi43aDguMmw1LjIgMTYuNSA1LjItMTYuNXptMjguMiAxNS40aC0xOC45Yy40IDIuNyAyLjcgNC44IDYgNC44IDIuMiAwIDMuNS0uOSA0LjQtMi4zaDguM2MtMS44IDUuOC01LjkgOS40LTEyLjYgOS40LTcuNyAwLTE0LTUuNC0xNC0xMy44IDAtOC4xIDUuNy0xNC4yIDEzLjUtMTQuMiA4LjggMCAxMy4yIDYuOSAxMy4yIDE0LjEuMS43LjEgMiAuMSAyWm0tMTMuMS05LjNjLTIuOSAwLTQuOSAxLjgtNS40IDQuMWgxMC40Yy0uMi0yLjMtMi4yLTQuMS01LTQuMVpcXFwiIGZpbGw9XFxcIiMxODU1NjhcXFwiLz48L2c+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI1IDI0XFxcIj48cGF0aCBkPVxcXCJNMjAuODM0IDExLjIzVjguOTU3YTguMzMzIDguMzMzIDAgMCAwLTE2LjY2NyAwdjIuMjcxYTMuMTI1IDMuMTI1IDAgMCAwLTIuMDgzIDIuOTM4djIuMDgzYTMuMTI1IDMuMTI1IDAgMCAwIDMuMTI0IDMuMTI1aDMuMTI2YTEuMDQxIDEuMDQxIDAgMCAwIDEuMDQxLTEuMDQydi02LjI1YTEuMDQyIDEuMDQyIDAgMCAwLTEuMDQxLTEuMDQxSDYuMjVWOC45NThhNi4yNSA2LjI1IDAgMSAxIDEyLjUgMHYyLjA4NGgtMi4wODNhMS4wNDEgMS4wNDEgMCAwIDAtMS4wNDIgMS4wNDF2Ni4yNWExLjA0MSAxLjA0MSAwIDAgMCAxLjA0MiAxLjA0MmgzLjEyNWEzLjEyNSAzLjEyNSAwIDAgMCAzLjEyNS0zLjEyNXYtMi4wODNhMy4xMjUgMy4xMjUgMCAwIDAtMi4wODQtMi45MzhaTTcuMjkyIDEzLjEyNHY0LjE2N0g1LjIwOWExLjA0MiAxLjA0MiAwIDAgMS0xLjA0Mi0xLjA0MnYtMi4wODNhMS4wNDIgMS4wNDIgMCAwIDEgMS4wNDItMS4wNDJoMi4wODNabTEzLjU0MiAzLjEyNWExLjA0MiAxLjA0MiAwIDAgMS0xLjA0MiAxLjA0MmgtMi4wODR2LTQuMTY3aDIuMDg0YTEuMDQyIDEuMDQyIDAgMCAxIDEuMDQxIDEuMDQydjIuMDgzWlxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4zODQgMjEuNjE2QTQuNjMgNC42MyAwIDAgMSAxNS4xMiAyM2wtLjAxLTEuMTU4YTMuNDcyIDMuNDcyIDAgMCAwIDMuNDQ1LTMuNWwxLjE1Ny0uMDA5YTQuNjMgNC42MyAwIDAgMS0xLjMzIDMuMjg0WlxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIgc3Ryb2tlPVxcXCIjZmZmXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuMDQyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMjVcXFwiIHk9XFxcIjIwLjQxNlxcXCIgd2lkdGg9XFxcIjQuNjg4XFxcIiBoZWlnaHQ9XFxcIjMuMTI1XFxcIiByeD1cXFwiMS41NjNcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTUgMTRcXFwiPjxwYXRoIGQ9XFxcIk03LjM4NSA0LjY2N2ExLjEgMS4xIDAgMCAwLS41MTguMTI4Yy0uMTYuMDg1LS4yOTUuMjA5LS4zOS4zNjJsLS4wMDQuMDA2LS4wMDMuMDA3YS4zNDYuMzQ2IDAgMCAxLS4wOTMuMTA1LjQzOC40MzggMCAwIDEtLjQ1NS4wMzMuMzcuMzcgMCAwIDEtLjExMy0uMDkzLjMxMy4zMTMgMCAwIDEtLjA2LS4xMTcuMjg3LjI4NyAwIDAgMS0uMDA1LS4xMjRsLS4zMjktLjA1OC4zMjkuMDU4YS4zMDUuMzA1IDAgMCAxIC4wNDktLjEybC4wMDQtLjAwNS4wMDQtLjAwNmExLjc1IDEuNzUgMCAwIDEgLjY2My0uNjE1IDEuOTIgMS45MiAwIDAgMSAyLjA5Mi4xNzZjLjMyNC4yNTYuNTM3LjYwNS42MDcuOTg1LjA3LjM3OC0uMDA1Ljc3LS4yMTUgMS4xMDUtLjIxMS4zMzctLjU0Ni42LS45NTIuNzM3bC0uMjI3LjA3NnYuMzZhLjMxLjMxIDAgMCAxLS4xMDQuMjI3LjQxNC40MTQgMCAwIDEtLjI4LjEwNmMtLjExIDAtLjIxLS4wNC0uMjgxLS4xMDZBLjMxLjMxIDAgMCAxIDcgNy42NjdWN2EuMzEuMzEgMCAwIDEgLjEwNC0uMjI3LjQxNC40MTQgMCAwIDEgLjI4LS4xMDZjLjI3MiAwIC41MzYtLjEuNzM1LS4yODVhLjk3Ny45NzcgMCAwIDAgLjMxNy0uNzE1Ljk3Ny45NzcgMCAwIDAtLjMxNy0uNzE2IDEuMDggMS4wOCAwIDAgMC0uNzM0LS4yODRabTAgMFY1di0uMzMzWm0tLjM2OSA0LjkwNi4wMTItLjAyMS4wMDktLjAyM2EuMTYuMTYgMCAwIDEgLjAyLS4wMzcuNzM2LjczNiAwIDAgMSAuMDUtLjA2LjM5MS4zOTEgMCAwIDEgLjEyMi0uMDc0LjQzMy40MzMgMCAwIDEgLjMxMSAwbC4xMi0uMzEtLjEyLjMxYS4zOS4zOSAwIDAgMSAuMTI3LjA3OWMuMDM0LjAzMi4wNi4wNy4wNzcuMTA4YS4zLjMgMCAwIDEgLjAyNS4xMnYuMDE1YS4yOS4yOSAwIDAgMS0uMDIuMTE4LjI2My4yNjMgMCAwIDEtLjA2Ny4wOThsLjIyNy4yNDQtLjIyNy0uMjQ0YS4zMjEuMzIxIDAgMCAxLS4xMTYuMDY4bC0uMDEuMDAzLS4wMS4wMDVhLjM4Ni4zODYgMCAwIDEtLjI5MyAwbC0uMDEtLjAwNS0uMDEtLjAwM2EuMzIxLjMyMSAwIDAgMS0uMTE3LS4wNjhsLS4yMjcuMjQ0LjIyNy0uMjQ0YS4yNjMuMjYzIDAgMCAxLS4wNjctLjA5N2wtLjAwNi0uMDE1LS4wMDctLjAxNWEuMTkzLjE5MyAwIDAgMS0uMDIyLS4wOTNWOS42NGEuNTEuNTEgMCAwIDEtLjAwMi0uMDU3LjA3OC4wNzggMCAwIDEgLjAwNC0uMDFaTTMuNTcyIDEuNzRBNy4yNDUgNy4yNDUgMCAwIDEgNy4zODUuNjY3Yy45MDIgMCAxLjc5NS4xNjUgMi42MjcuNDg1LjgzMy4zMiAxLjU4OC43ODkgMi4yMjIgMS4zNzhhNi4zMjMgNi4zMjMgMCAwIDEgMS40OCAyLjA1NWMuMzQxLjc2Ni41MTcgMS41ODcuNTE3IDIuNDE1YTYgNiAwIDAgMS0xLjE0NyAzLjUxIDYuNzYgNi43NiAwIDAgMS0zLjA3MiAyLjMzOCA3LjM2MiA3LjM2MiAwIDAgMS0zLjk2OC4zNjMgNy4wMzMgNy4wMzMgMCAwIDEtMy41MS0xLjc0MUE2LjIwMSA2LjIwMSAwIDAgMSAuNjcgOC4yM2E1Ljg5MiA1Ljg5MiAwIDAgMSAuMzg3LTMuNjQ1QTYuNDY3IDYuNDY3IDAgMCAxIDMuNTcyIDEuNzRabS40NDYgOS45NzhhNi4zOSA2LjM5IDAgMCAwIDMuMzY3Ljk0OWMxLjYwNCAwIDMuMTQ2LS41OTIgNC4yODgtMS42NTJDMTIuODE1IDkuOTU1IDEzLjQ2IDguNTExIDEzLjQ2IDdhNS40IDUuNCAwIDAgMC0xLjAzLTMuMTU4IDYuMDA3IDYuMDA3IDAgMCAwLTIuNzI5LTIuMDggNi40ODggNi40ODggMCAwIDAtMy40OTgtLjMyIDYuMjI2IDYuMjI2IDAgMCAwLTMuMTA4IDEuNTQyIDUuNTYgNS41NiAwIDAgMC0xLjY3IDIuOTA2IDUuMzE0IDUuMzE0IDAgMCAwIC4zNDggMy4yODcgNS43NzMgNS43NzMgMCAwIDAgMi4yNDQgMi41NFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJNMTEuMzMzIDIuMmMtMi42LTEuNDY3LTUuOC0xLTcuOTMzIDFWMmMwLS40LS4yNjctLjY2Ny0uNjY3LS42NjdTMi4wNjcgMS42IDIuMDY3IDJ2M2MwIC40LjI2Ni42NjYuNjY2LjY2NmgzYy40IDAgLjY2Ny0uMjY2LjY2Ny0uNjY2cy0uMjY3LS42NjctLjY2Ny0uNjY3aC0xLjZjMS0xLjA2NyAyLjQtMS42NjcgMy44NjctMS42NjcgMi45MzMgMCA1LjMzMyAyLjQgNS4zMzMgNS4zMzQgMCAyLjkzMy0yLjQgNS4zMzMtNS4zMzMgNS4zMzMtMi45MzMgMC01LjMzMy0yLjQtNS4zMzMtNS4zMzMgMC0uNC0uMjY3LS42NjctLjY2Ny0uNjY3UzEuMzMzIDcuNiAxLjMzMyA4YzAgMy42NjYgMyA2LjY2NiA2LjY2NyA2LjY2NiAyLjQgMCA0LjYtMS4yNjYgNS44LTMuMzMzIDEuOC0zLjIuNzMzLTcuMjY3LTIuNDY3LTkuMTMzWk04IDUuMzMzYy0uNCAwLS42NjcuMjY3LS42NjcuNjY3djJjMCAuNC4yNjcuNjY2LjY2Ny42NjZoMS4zMzNjLjQgMCAuNjY3LS4yNjYuNjY3LS42NjZzLS4yNjctLjY2Ny0uNjY3LS42NjdoLS42NjZWNmMwLS40LS4yNjctLjY2Ny0uNjY3LS42NjdaXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxOTAgMTkwXFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxjaXJjbGUgY3g9XFxcIjk1XFxcIiBjeT1cXFwiOTVcXFwiIHI9XFxcIjg1XFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiOTVcXFwiIGN5PVxcXCI5NVxcXCIgcj1cXFwiOTVcXFwiIGZpbGw9XFxcIiNDREY4RkFcXFwiLz48cGF0aCBkPVxcXCJNNTEuMTcyIDc5LjYzNmMwLTEuODQ4IDAtMi43NzIuMjQyLTMuNjIyYTYuMzMxIDYuMzMxIDAgMCAxIC45ODEtMi4wMDdjLjUyMy0uNzEzIDEuMjUyLTEuMjggMi43MS0yLjQxNmwzNC4xMTYtMjYuNTM3Yy45MjgtLjcyMyAxLjM5Mi0xLjA4NCAxLjktMS4zNDlhNi4zMjkgNi4zMjkgMCAwIDEgMi4wNDctLjY1NWMuNTY3LS4wOCAxLjE1NS0uMDU2IDIuMzMtLjAwOCAxLjAyNy4wNDIgMS41NC4wNjMgMi4wMzMuMTYzLjYyMi4xMjYgMS4yMi4zNDQgMS43NzcuNjQ4LjQ0Mi4yNDEuODQ4LjU1NSAxLjY2MSAxLjE4NGwzNC42ODggMjYuODI0YzEuNDY3IDEuMTM0IDIuMiAxLjcwMiAyLjcyNiAyLjQxNi40NDYuNjA2Ljc4IDEuMjg4Ljk4NyAyLjAxMi4yNDQuODUyLjI0NCAxLjc4LjI0NCAzLjYzNHY1Mi4xMDFjMCAxLjgwMiAwIDIuNzA0LS4zNTYgMy4zOWEzLjE2NyAzLjE2NyAwIDAgMS0xLjM1IDEuMzQ5Yy0uNjg2LjM1Ny0xLjU4Ny4zNTctMy4zOS4zNTdINjAuMzQ1Yy0zLjI0NSAwLTQuODY3IDAtNi4xMDItLjY0MmE1LjY5NyA1LjY5NyAwIDAgMS0yLjQzLTIuNDI5Yy0uNjQxLTEuMjM1LS42NDEtMi44NTctLjY0MS02LjEwMlY3OS42MzZaXFxcIiBmaWxsPVxcXCJ1cmwoI2ljLXZlcmlmaWNhdGlvbl9zdmdfX2EpXFxcIi8+PHBhdGggZD1cXFwiTTU5Ljc3NSA3MS45MjRjMS4yODYgMCAxLjg5LjAwMiAyLjQ2LjExNC43NC4xNDYgMS40NDYuNDI5IDIuMDgxLjgzNC40OS4zMTMuOTI4LjczIDEuODU4IDEuNjE4bDI2Ljc2IDI1LjU2MmE1LjM2IDUuMzYgMCAwIDEgLjAxMiA3LjczOGwtMjYuMTM0IDI1LjExM2MtMS44MzIgMS43Ni0yLjY5MyAyLjU4MS0zLjc2NiAzLjAxMy0xLjA3Mi40MzEtMi4yNjIuNDM2LTQuODAyLjQzNmgtLjc0MmMtMS41IDAtMi41OTYgMC0zLjQzNC0uMTEzLS44MjktLjExMS0xLjM2MS0uMzI4LTEuNzYtLjcyNy0uNC0uNC0uNjE2LS45MzItLjcyOC0xLjc2MS0uMTEyLS44MzgtLjExMy0xLjkzMy0uMTEzLTMuNDM0VjgwLjIzMmMwLTEuMzU4IDAtMi4zNjIuMDU2LTMuMTYuMDU1LS43OTQuMTY0LTEuMzYzLjM3Mi0xLjg1M2E1LjQwMiA1LjQwMiAwIDAgMSAyLjg2Ny0yLjg2N2MuNDktLjIwOCAxLjA1OC0uMzE3IDEuODUzLS4zNzIuNzk4LS4wNTYgMS44MDItLjA1NiAzLjE2LS4wNTZaXFxcIiBmaWxsPVxcXCIjQjlEREZGXFxcIiBmaWxsLW9wYWNpdHk9XFxcIi42XFxcIiBzdHJva2U9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19fYilcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjU5MVxcXCIvPjxwYXRoIGQ9XFxcIk0xMzEuNzggNzEuOTI0Yy0xLjI4NiAwLTEuODkuMDAyLTIuNDYxLjExNGE2LjA0MSA2LjA0MSAwIDAgMC0yLjA4MS44MzRjLS40OS4zMTMtLjkyNy43My0xLjg1NyAxLjYxOGwtMjYuNzYgMjUuNTYyYTUuMzYgNS4zNiAwIDAgMC0uMDEyIDcuNzM4bDI2LjEzNCAyNS4xMTNjMS44MzIgMS43NiAyLjY5MyAyLjU4MSAzLjc2NSAzLjAxMyAxLjA3My40MzEgMi4yNjMuNDM2IDQuODAzLjQzNmguNzQyYzEuNSAwIDIuNTk2IDAgMy40MzMtLjExMy44My0uMTExIDEuMzYyLS4zMjggMS43NjEtLjcyNy40LS40LjYxNi0uOTMyLjcyNy0xLjc2MS4xMTMtLjgzOC4xMTQtMS45MzMuMTE0LTMuNDM0VjgwLjIzMmMwLTEuMzU4IDAtMi4zNjItLjA1Ni0zLjE2LS4wNTUtLjc5NC0uMTY1LTEuMzYzLS4zNzItMS44NTNhNS40MDIgNS40MDIgMCAwIDAtMi44NjgtMi44NjdjLS40ODktLjIwOC0xLjA1OC0uMzE3LTEuODUzLS4zNzItLjc5Ny0uMDU2LTEuODAxLS4wNTYtMy4xNTktLjA1NlpcXFwiIGZpbGw9XFxcIiNCOURERkZcXFwiIGZpbGwtb3BhY2l0eT1cXFwiLjZcXFwiIHN0cm9rZT1cXFwidXJsKCNpYy12ZXJpZmljYXRpb25fc3ZnX19jKVxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNTkxXFxcIi8+PHBhdGggZD1cXFwiTTUwLjcxIDEyOS40NjVjMC0xLjMxLjAwMi0xLjkyNS4xMTUtMi40OTdhNi4wMzYgNi4wMzYgMCAwIDEgMS4zODItMi44MDhjLjM4NC0uNDM5Ljg3LS44MTUgMS45MDktMS42MTVsMzUuMjczLTI3LjE2OGMuOTU2LS43MzYgMS40MDQtMS4wOCAxLjg5My0xLjMzYTYuMDM0IDYuMDM0IDAgMCAxIDEuODkyLS42MDJjLjU0My0uMDc3IDEuMTA5LS4wNTUgMi4zMTQtLjAwNiAxLjA1LjA0MyAxLjU0NC4wNjQgMi4wMTYuMTZhNi4wMzQgNi4wMzQgMCAwIDEgMS42NC41OTVjLjQyNS4yMjcuODE3LjUyNyAxLjY1MyAxLjE2NmwzNC41NTMgMjYuNDUxYzIuMzQ5IDEuNzk4IDMuNDQ1IDIuNjQ1IDQuMDU4IDMuODI0LjAzOC4wNzMuMDc1LjE0Ny4xMS4yMjIuNTYzIDEuMjAzLjU3IDIuNTg5LjU3IDUuNTQ3IDAgMS40MzEtLjAwMSAyLjQ3Ni0uMTA0IDMuMjc4LS4xMDIuNzk1LS4zIDEuMzA5LS42NjYgMS43MDJhMi43MzUgMi43MzUgMCAwIDEtLjE0My4xNDJjLS4zOTMuMzY2LS45MDcuNTY1LTEuNzAyLjY2Ny0uODAyLjEwMy0xLjg0Ny4xMDQtMy4yNzguMTA0SDU4LjU0MmMtMi4yODYgMC0zLjM1NC0uMDA0LTQuMjA1LS4zYTUuNDAzIDUuNDAzIDAgMCAxLTMuMzI2LTMuMzI3Yy0uMjk2LS44NS0uMy0xLjkxOC0uMy00LjIwNVpcXFwiIGZpbGw9XFxcIiNCOURERkZcXFwiIHN0cm9rZT1cXFwidXJsKCNpYy12ZXJpZmljYXRpb25fc3ZnX19kKVxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNTkxXFxcIi8+PHBhdGggZD1cXFwiTTUwLjcxIDEyOS40NjVjMC0xLjMxLjAwMi0xLjkyNS4xMTUtMi40OTdhNi4wMzYgNi4wMzYgMCAwIDEgMS4zODItMi44MDhjLjM4NC0uNDM5Ljg3LS44MTUgMS45MDktMS42MTVsMzUuMjczLTI3LjE2OGMuOTU2LS43MzYgMS40MDQtMS4wOCAxLjg5My0xLjMzYTYuMDM0IDYuMDM0IDAgMCAxIDEuODkyLS42MDJjLjU0My0uMDc3IDEuMTA5LS4wNTUgMi4zMTQtLjAwNiAxLjA1LjA0MyAxLjU0NC4wNjQgMi4wMTYuMTZhNi4wMzQgNi4wMzQgMCAwIDEgMS42NC41OTVjLjQyNS4yMjcuODE3LjUyNyAxLjY1MyAxLjE2NmwzNC41NTMgMjYuNDUxYzIuMzQ5IDEuNzk4IDMuNDQ1IDIuNjQ1IDQuMDU4IDMuODI0bC4yNjItLjEzNy0uMjYyLjEzN2MuMDM4LjA3My4wNzUuMTQ3LjExLjIyMmwuMjY3LS4xMjUtLjI2Ny4xMjVjLjU2MyAxLjIwMy41NyAyLjU4OS41NyA1LjU0NyAwIDEuNDMxLS4wMDEgMi40NzYtLjEwNCAzLjI3OC0uMTAyLjc5NS0uMyAxLjMwOS0uNjY2IDEuNzAyYTMuMjE0IDMuMjE0IDAgMCAxLS4xNDMuMTQzYy0uMzkzLjM2NS0uOTA3LjU2NC0xLjcwMi42NjYtLjgwMi4xMDMtMS44NDcuMTA0LTMuMjc4LjEwNEg1OC41NDJjLTIuMjg2IDAtMy4zNTQtLjAwNC00LjIwNS0uM2E1LjQwMyA1LjQwMyAwIDAgMS0zLjMyNi0zLjMyN2MtLjI5Ni0uODUtLjMtMS45MTgtLjMtNC4yMDVaXFxcIiBmaWxsPVxcXCJ1cmwoI2ljLXZlcmlmaWNhdGlvbl9zdmdfX2UpXFxcIiBzdHJva2U9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19fZilcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjU5MVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEzMy43MzNcXFwiIGN5PVxcXCIxMzIuMjEzXFxcIiByPVxcXCIyMS4yMTNcXFwiIGZpbGw9XFxcIiNGMUY3RjlcXFwiLz48bWFzayBpZD1cXFwiaWMtdmVyaWZpY2F0aW9uX3N2Z19faVxcXCIgZmlsbD1cXFwiI2ZmZlxcXCI+PHBhdGggZmlsbC1ydWxlPVxcXCJldmVub2RkXFxcIiBjbGlwLXJ1bGU9XFxcImV2ZW5vZGRcXFwiIGQ9XFxcIk0xNDYuNTQxIDEyNy4zNjRhMy4wMDEgMy4wMDEgMCAwIDAtNC4yNDMtNC4yNDNsLTEyLjEzMSAxMi4xMzEtNC4yODMtNC4yODNhMyAzIDAgMSAwLTQuMjQzIDQuMjQzbDYuMzY0IDYuMzY0YTMuMDAxIDMuMDAxIDAgMCAwIDMuNDYuNTY0Yy4zMzktLjE0Ni42NTctLjM1Ny45MzQtLjYzNGwxNC4xNDItMTQuMTQyWlxcXCIvPjwvbWFzaz48cGF0aCBmaWxsLXJ1bGU9XFxcImV2ZW5vZGRcXFwiIGNsaXAtcnVsZT1cXFwiZXZlbm9kZFxcXCIgZD1cXFwiTTE0Ni41NDEgMTI3LjM2NGEzLjAwMSAzLjAwMSAwIDAgMC00LjI0My00LjI0M2wtMTIuMTMxIDEyLjEzMS00LjI4My00LjI4M2EzIDMgMCAxIDAtNC4yNDMgNC4yNDNsNi4zNjQgNi4zNjRhMy4wMDEgMy4wMDEgMCAwIDAgMy40Ni41NjRjLjMzOS0uMTQ2LjY1Ny0uMzU3LjkzNC0uNjM0bDE0LjE0Mi0xNC4xNDJaXFxcIiBmaWxsPVxcXCJ1cmwoI2ljLXZlcmlmaWNhdGlvbl9zdmdfX2cpXFxcIiBmaWxsLW9wYWNpdHk9XFxcIi45XFxcIi8+PHBhdGggZD1cXFwibTE0Ni41NDEgMTIzLjEyMS0uMTczLjE3My4xNzMtLjE3M1ptMCA0LjI0My0uMTczLS4xNzQuMTczLjE3NFptLTQuMjQzLTQuMjQzLS4xNzMtLjE3My4xNzMuMTczWm0tMTIuMTMxIDEyLjEzMS0uMTczLjE3My4xNzMuMTc0LjE3My0uMTc0LS4xNzMtLjE3M1ptLTQuMjgzLTQuMjgzLjE3My0uMTczLS4xNzMuMTczWm0tNC4yNDMgNC4yNDMuMTc0LS4xNzQtLjE3NC4xNzRabTYuMzY0IDYuMzY0LS4xNzMuMTczLjE3My0uMTczWm0zLjQ2LjU2NC0uMDk3LS4yMjUtLjAxMi4wMDYuMTA5LjIxOVptLjkzNC0uNjM0LS4xNzQtLjE3NC4xNzQuMTc0Wm0xMy45NjktMTguMjEyYTIuNzU2IDIuNzU2IDAgMCAxIDAgMy44OTZsLjM0Ni4zNDdhMy4yNDUgMy4yNDUgMCAwIDAgMC00LjU4OWwtLjM0Ni4zNDZabS0zLjg5NyAwYTIuNzU2IDIuNzU2IDAgMCAxIDMuODk3IDBsLjM0Ni0uMzQ2YTMuMjQzIDMuMjQzIDAgMCAwLTQuNTg5IDBsLjM0Ni4zNDZabS0xMi4xMzEgMTIuMTMxIDEyLjEzMS0xMi4xMzEtLjM0Ni0uMzQ2LTEyLjEzMSAxMi4xMzEuMzQ2LjM0NlptLTQuNjI5LTQuMjgzIDQuMjgzIDQuMjgzLjM0Ni0uMzQ2LTQuMjgzLTQuMjgzLS4zNDYuMzQ2Wm0tMy44OTYgMGEyLjc1NSAyLjc1NSAwIDAgMSAzLjg5NiAwbC4zNDYtLjM0NmEzLjI0MyAzLjI0MyAwIDAgMC00LjU4OSAwbC4zNDcuMzQ2Wm0wIDMuODk2YTIuNzU1IDIuNzU1IDAgMCAxIDAtMy44OTZsLS4zNDctLjM0NmEzLjI0NSAzLjI0NSAwIDAgMCAwIDQuNTg5bC4zNDctLjM0N1ptNi4zNjQgNi4zNjQtNi4zNjQtNi4zNjQtLjM0Ny4zNDcgNi4zNjQgNi4zNjQuMzQ3LS4zNDdabTMuMTc3LjUxOWEyLjc1NSAyLjc1NSAwIDAgMS0zLjE3Ny0uNTE5bC0uMzQ3LjM0N2EzLjI0NCAzLjI0NCAwIDAgMCAzLjc0Mi42MWwtLjIxOC0uNDM4Wm0uODY5LS41ODlhMi43MzUgMi43MzUgMCAwIDEtLjg1Ny41ODNsLjE5NC40NWEzLjIzNyAzLjIzNyAwIDAgMCAxLjAxLS42ODZsLS4zNDctLjM0N1ptMTQuMTQzLTE0LjE0Mi0xNC4xNDMgMTQuMTQyLjM0Ny4zNDcgMTQuMTQyLTE0LjE0Mi0uMzQ2LS4zNDdaXFxcIiBmaWxsPVxcXCJ1cmwoI2ljLXZlcmlmaWNhdGlvbl9zdmdfX2gpXFxcIiBtYXNrPVxcXCJ1cmwoI2ljLXZlcmlmaWNhdGlvbl9zdmdfX2kpXFxcIi8+PG1hc2sgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2xcXFwiIGZpbGw9XFxcIiNmZmZcXFwiPjxwYXRoIGZpbGwtcnVsZT1cXFwiZXZlbm9kZFxcXCIgY2xpcC1ydWxlPVxcXCJldmVub2RkXFxcIiBkPVxcXCJNMTQ2LjU0MSAxMjcuMzY0YTMuMDAxIDMuMDAxIDAgMCAwLTQuMjQzLTQuMjQzbC0xMi4xMzEgMTIuMTMxLTQuMjgzLTQuMjgzYTMgMyAwIDEgMC00LjI0MyA0LjI0M2w2LjM2NCA2LjM2NGEzLjAwMSAzLjAwMSAwIDAgMCAzLjQ2LjU2NGMuMzM5LS4xNDYuNjU3LS4zNTcuOTM0LS42MzRsMTQuMTQyLTE0LjE0MlpcXFwiLz48L21hc2s+PHBhdGggZmlsbC1ydWxlPVxcXCJldmVub2RkXFxcIiBjbGlwLXJ1bGU9XFxcImV2ZW5vZGRcXFwiIGQ9XFxcIk0xNDYuNTQxIDEyNy4zNjRhMy4wMDEgMy4wMDEgMCAwIDAtNC4yNDMtNC4yNDNsLTEyLjEzMSAxMi4xMzEtNC4yODMtNC4yODNhMyAzIDAgMSAwLTQuMjQzIDQuMjQzbDYuMzY0IDYuMzY0YTMuMDAxIDMuMDAxIDAgMCAwIDMuNDYuNTY0Yy4zMzktLjE0Ni42NTctLjM1Ny45MzQtLjYzNGwxNC4xNDItMTQuMTQyWlxcXCIgZmlsbD1cXFwidXJsKCNpYy12ZXJpZmljYXRpb25fc3ZnX19qKVxcXCIgZmlsbC1vcGFjaXR5PVxcXCIuNzVcXFwiLz48cGF0aCBkPVxcXCJtMTQ2LjU0MSAxMjMuMTIxLS4xNzMuMTczLjE3My0uMTczWm0wIDQuMjQzLS4xNzMtLjE3NC4xNzMuMTc0Wm0tNC4yNDMtNC4yNDMtLjE3My0uMTczLjE3My4xNzNabS0xMi4xMzEgMTIuMTMxLS4xNzMuMTczLjE3My4xNzQuMTczLS4xNzQtLjE3My0uMTczWm0tNC4yODMtNC4yODMuMTczLS4xNzMtLjE3My4xNzNabS00LjI0MyA0LjI0My4xNzQtLjE3NC0uMTc0LjE3NFptNi4zNjQgNi4zNjQtLjE3My4xNzMuMTczLS4xNzNabTMuNDYuNTY0LS4wOTctLjIyNS0uMDEyLjAwNi4xMDkuMjE5Wm0uOTM0LS42MzQtLjE3NC0uMTc0LjE3NC4xNzRabTEzLjk2OS0xOC4yMTJhMi43NTYgMi43NTYgMCAwIDEgMCAzLjg5NmwuMzQ2LjM0N2EzLjI0NSAzLjI0NSAwIDAgMCAwLTQuNTg5bC0uMzQ2LjM0NlptLTMuODk3IDBhMi43NTYgMi43NTYgMCAwIDEgMy44OTcgMGwuMzQ2LS4zNDZhMy4yNDMgMy4yNDMgMCAwIDAtNC41ODkgMGwuMzQ2LjM0NlptLTEyLjEzMSAxMi4xMzEgMTIuMTMxLTEyLjEzMS0uMzQ2LS4zNDYtMTIuMTMxIDEyLjEzMS4zNDYuMzQ2Wm0tNC42MjktNC4yODMgNC4yODMgNC4yODMuMzQ2LS4zNDYtNC4yODMtNC4yODMtLjM0Ni4zNDZabS0zLjg5NiAwYTIuNzU1IDIuNzU1IDAgMCAxIDMuODk2IDBsLjM0Ni0uMzQ2YTMuMjQzIDMuMjQzIDAgMCAwLTQuNTg5IDBsLjM0Ny4zNDZabTAgMy44OTZhMi43NTUgMi43NTUgMCAwIDEgMC0zLjg5NmwtLjM0Ny0uMzQ2YTMuMjQ1IDMuMjQ1IDAgMCAwIDAgNC41ODlsLjM0Ny0uMzQ3Wm02LjM2NCA2LjM2NC02LjM2NC02LjM2NC0uMzQ3LjM0NyA2LjM2NCA2LjM2NC4zNDctLjM0N1ptMy4xNzcuNTE5YTIuNzU1IDIuNzU1IDAgMCAxLTMuMTc3LS41MTlsLS4zNDcuMzQ3YTMuMjQ0IDMuMjQ0IDAgMCAwIDMuNzQyLjYxbC0uMjE4LS40MzhabS44NjktLjU4OWEyLjczNSAyLjczNSAwIDAgMS0uODU3LjU4M2wuMTk0LjQ1YTMuMjM3IDMuMjM3IDAgMCAwIDEuMDEtLjY4NmwtLjM0Ny0uMzQ3Wm0xNC4xNDMtMTQuMTQyLTE0LjE0MyAxNC4xNDIuMzQ3LjM0NyAxNC4xNDItMTQuMTQyLS4zNDYtLjM0N1pcXFwiIGZpbGw9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19faylcXFwiIGZpbGwtb3BhY2l0eT1cXFwiLjFcXFwiIG1hc2s9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19fbClcXFwiLz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2FcXFwiIHgxPVxcXCI3Ni42ODRcXFwiIHkxPVxcXCI4Ni41NjhcXFwiIHgyPVxcXCIxNDMuNDE3XFxcIiB5Mj1cXFwiMTExLjI4M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiM3RkMwRkJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM0MDg4RjRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaWMtdmVyaWZpY2F0aW9uX3N2Z19fYlxcXCIgeDE9XFxcIjkxLjg4OVxcXCIgeTE9XFxcIjY4LjM3OFxcXCIgeDI9XFxcIjM0LjAwOFxcXCIgeTI9XFxcIjkzLjkzN1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIi43NjZcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpYy12ZXJpZmljYXRpb25fc3ZnX19jXFxcIiB4MT1cXFwiOTkuNjY1XFxcIiB5MT1cXFwiNjguMzc4XFxcIiB4Mj1cXFwiMTU3LjU0N1xcXCIgeTI9XFxcIjkzLjkzN1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIi43NjZcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpYy12ZXJpZmljYXRpb25fc3ZnX19kXFxcIiB4MT1cXFwiNDUuOTE3XFxcIiB5MT1cXFwiOTYuMTg1XFxcIiB4Mj1cXFwiNjYuNTY5XFxcIiB5Mj1cXFwiMTU5LjgyMlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIi43NjZcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpYy12ZXJpZmljYXRpb25fc3ZnX19lXFxcIiB4MT1cXFwiOTUuNFxcXCIgeTE9XFxcIjkzXFxcIiB4Mj1cXFwiOTUuNFxcXCIgeTI9XFxcIjEzNy41OTJcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjQTdEMkZEXFxcIiBzdG9wLW9wYWNpdHk9XFxcIi4yNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzk3QzhGQ1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpYy12ZXJpZmljYXRpb25fc3ZnX19mXFxcIiB4MT1cXFwiNDUuOTE3XFxcIiB5MT1cXFwiOTYuMTg1XFxcIiB4Mj1cXFwiNjYuNTY5XFxcIiB5Mj1cXFwiMTU5LjgyMlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIi43NjZcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpYy12ZXJpZmljYXRpb25fc3ZnX19nXFxcIiB4MT1cXFwiMTUwLjM0M1xcXCIgeTE9XFxcIjEyNC4xMjhcXFwiIHgyPVxcXCIxMTcuMzIyXFxcIiB5Mj1cXFwiMTM3LjM5NVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiMxNzk5N0JcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzk5N0JcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpYy12ZXJpZmljYXRpb25fc3ZnX19oXFxcIiB4MT1cXFwiMTUwLjg3MVxcXCIgeTE9XFxcIjEyMS4yMjVcXFwiIHgyPVxcXCIxMzQuMDM1XFxcIiB5Mj1cXFwiMTI1Ljg5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiIzE3OTk3QlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzE3OTk3QlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2pcXFwiIHgxPVxcXCIxNTAuMzQzXFxcIiB5MT1cXFwiMTI0LjEyOFxcXCIgeDI9XFxcIjExNy4zMjJcXFwiIHkyPVxcXCIxMzcuMzk1XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiIzE3OTk3QlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTc5OTdCXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2tcXFwiIHgxPVxcXCIxNTAuODcxXFxcIiB5MT1cXFwiMTIxLjIyNVxcXCIgeDI9XFxcIjEzNC4wMzVcXFwiIHkyPVxcXCIxMjUuODlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjMTc5OTdCXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzk5N0JcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTYgMThcXFwiPjxwYXRoIGQ9XFxcIk00LjMxMSA3LjQzIDMuNzQgOGgxMC45MjZhMSAxIDAgMSAxIDAgMkgzLjc0bC41NzEuNTcgNC40IDQuMzg2YTEgMSAwIDAgMSAwIDEuNDJsLS4wMDEuMDAzYTEgMSAwIDAgMS0xLjQyIDBsLS4wMDEtLjAwMUwuNjI1IDkuNzE0YTEgMSAwIDAgMS0uMjA4LS4zMjhMLjQxNSA5LjM4YTEgMSAwIDAgMSAwLS43NmwuMDAyLS4wMDZhMSAxIDAgMCAxIC4yMDgtLjMyOGw2LjY2NC02LjY2NC0uMjM2LS4yMzUuMjM2LjIzNUExLjAwNSAxLjAwNSAwIDEgMSA4LjcxIDMuMDQ0bC00LjQgNC4zODdaXFxcIiBmaWxsPVxcXCIjMTU1MzY2XFxcIiBzdHJva2U9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyNjYgNjNcXFwiPjxwYXRoIGQ9XFxcIk0uODMgNTguOTFWMjguN2g4LjcyNXYzMC4yMUguODNabTM1LjAxNy0yLjkzYy0xLjk4MyAyLjQxNi00LjgzNSAzLjc3Ny04LjYxNSAzLjc3Ny02LjA3NiAwLTEwLjk3MS0zLjc3OC0xMC45NzEtOS42MDMgMC01Ljc2MyA0Ljg5OC04LjYxIDExLjc3Ny04Ljk4NSA1LjI3LS4zMSA2Ljk0My0uODY4IDYuOTQzLTIuNjYzIDAtMS43MzYtMS42MTEtMi45MTMtNC40NjMtMi45MTMtMy40NyAwLTQuOTYgMS43MzYtNS4xNDUgMy41OTRoLTguNDk0Yy40MzQtNi42MjggNS4zOTItMTEuMjE0IDEzLjcwMS0xMS4yMTQgOC4xMjIgMCAxMy4zMyA0LjM5OCAxMy4zMyAxMi42Mzd2MTguNDYzaC03LjI1NGwtLjgwOS0zLjA5NFptLTEwLjc4Ni02LjE5NWMwIDEuNzM2IDEuNTUgMi43ODggNC4wMyAyLjc4OCAzLjM0OCAwIDYuMDEyLTEuODU4IDYuMDEyLTUuNjM4VjQ1Ljgycy0xLjYxMS43NDMtNC45Ni45M2MtMy42NTguMTg1LTUuMDgyIDEuMzYyLTUuMDgyIDMuMDM1Wm0zOC4zMDcgOS40MTZjLTYuNjMyIDAtMTAuNDc3LTMuODQtMTAuNDc3LTEwLjUzM1YzNi44MzZoLTUuMDgzdi04LjExN2g1LjA4M3YtNC40NjFsOC44MDItNy40MzRWMjguNzJoNy42MjZ2OC4xMTdoLTcuNjI2VjQ3LjQzYzAgMi45MTIgMS45MjIgMy41OTMgMy43MiAzLjU5M2E5LjUzOSA5LjUzOSAwIDAgMCAzLjcyMS0uODA1djcuOTkyYzAgLjAwMi0yLjM1NS45OTItNS43NjYuOTkyWk0uMDggMTkuNjM0YzAtMi44NSAyLjIzLTUuMTQyIDUuMDgyLTUuMTQyYTUuMTMgNS4xMyAwIDAgMSA1LjE0NSA1LjE0MmMwIDIuNzg4LTIuMjkzIDUuMDgtNS4xNDUgNS4wOGE1LjA2MyA1LjA2MyAwIDAgMS01LjA4Mi01LjA4Wk03NS44MDkgNTguOTFWMjguN2g4LjcyNnYzMC4yMWgtOC43MjZabTIwLjE1NC0zOS4yMDJjMC0xLjQtLjE5LTIuNzYtLjUzNy00LjA1M2ExNS41MSAxNS41MSAwIDAgMC0xLjU2OS0zLjc3MiAxNS42NjUgMTUuNjY1IDAgMCAwLTIuNDg5LTMuMjQxIDE1LjczMiAxNS43MzIgMCAwIDAtNy4wMTgtNC4wNSAxNS42NTggMTUuNjU4IDAgMCAwLTQuMDUyLS41MzNoLS4wMDZhMTUuNzUgMTUuNzUgMCAwIDAtNC4wNDkuNTNjLTEuMzQuMzU3LTIuNjA1Ljg4OC0zLjc3NyAxLjU2NUExNS42NyAxNS42NyAwIDAgMCA2OS4yMiA4LjY0YTE1Ljc3IDE1Ljc3IDAgMCAwLTIuNDkyIDMuMjQyIDE1LjY0OCAxNS42NDggMCAwIDAtMS41NzIgMy43NzRsMi4yNDIuNjAyYTEzLjQyNyAxMy40MjcgMCAwIDEgMy40NjItNS45NzggMTMuNDI2IDEzLjQyNiAwIDAgMSA1Ljk4NC0zLjQ1IDEzLjQyNiAxMy40MjYgMCAwIDEgMy40NDgtLjQ1aC4wMDZjMS4xOTUgMCAyLjM1LjE1OCAzLjQ1NC40NTNhMTMuNDEyIDEzLjQxMiAwIDAgMSA1Ljk4IDMuNDQ5Yy44MTkuODIgMS41MzEgMS43NSAyLjExOSAyLjc2YTEzLjMgMTMuMyAwIDAgMSAxLjc5MyA2LjY2NHYuMDEyYTEzLjM4IDEzLjM4IDAgMCAxLS40NTEgMy40NDMgMTMuMjE3IDEzLjIxNyAwIDAgMS0xLjMzNCAzLjIxOWwyLjAxIDEuMTZhMTUuNTM5IDE1LjUzOSAwIDAgMCAxLjU2Ni0zLjc3OCAxNS43IDE1LjcgMCAwIDAgLjUzLTQuMDQxbC0uMDAyLS4wMTJaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEwMC4wMjMgMTkuNzA4YTE5LjY1NSAxOS42NTUgMCAwIDAtMi42NDQtOS44NTUgMTkuODEgMTkuODEgMCAwIDAtNy4yMi03LjIxM0ExOS42MTIgMTkuNjEyIDAgMCAwIDg1LjQwMy42NyAxOS44MSAxOS44MSAwIDAgMCA4MC4yOTggMGgtLjAwNmMtMS43NjUgMC0zLjQ3My4yMzMtNS4xMDIuNjY2YTE5LjUxMyAxOS41MTMgMCAwIDAtNC43NTkgMS45NjkgMTkuODI0IDE5LjgyNCAwIDAgMC00LjA4NiAzLjEzNGwxLjIzMSAxLjIzYTE4LjEwNiAxOC4xMDYgMCAwIDEgMy43MjYtMi44NTUgMTcuODAzIDE3LjgwMyAwIDAgMSA0LjM0LTEuNzkzIDE4LjA4NCAxOC4wODQgMCAwIDEgNC42NDgtLjYwN2guMDA1YTE3Ljk1IDE3Ljk1IDAgMCAxIDEyLjcxMyA1LjI2MSAxNy45MzMgMTcuOTMzIDAgMCAxIDUuMjczIDEyLjcwM3YuMDExYTE4LjAzIDE4LjAzIDAgMCAxLS42MDcgNC42NDMgMTcuNjc1IDE3LjY3NSAwIDAgMS0xLjc5NyA0LjMzNyAxOC4wMjMgMTguMDIzIDAgMCAxLTIuODU3IDMuNzIzbDEuMjMxIDEuMjMxYTE5Ljc0MyAxOS43NDMgMCAwIDAgMy4xMzYtNC4wODQgMTkuNiAxOS42IDAgMCAwIDEuOTctNC43NTZjLjQzNC0xLjYyNS42NjYtMy4zMzIuNjY2LTUuMDk0di0uMDFaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwiTTkwLjk0NSAxNi44NTVhMTAuOTQ4IDEwLjk0OCAwIDAgMC0xLjEwNC0yLjY1NSAxMS4xNTUgMTEuMTU1IDAgMCAwLTEuNzUtMi4yOCAxMS4wNDggMTEuMDQ4IDAgMCAwLTIuMjgyLTEuNzQ3QTEwLjk2NCAxMC45NjQgMCAwIDAgODAuMyA4LjY5NWgtLjAwNmMtLjk4NyAwLTEuOTQuMTMtMi44NDkuMzcyYTEwLjkxIDEwLjkxIDAgMCAwLTIuNjYgMS4xIDEwLjk5NCAxMC45OTQgMCAwIDAtNC4wMzcgNC4wMjcgMTEgMTEgMCAwIDAtMS40ODQgNS41MXYuMDEyYTEwLjkyNCAxMC45MjQgMCAwIDAgMS40NzYgNS41MDVsMy4wMTMtMS43MzhhNy41MzUgNy41MzUgMCAwIDEtMS4wMS0zLjc3di0uMDFhNy41NTMgNy41NTMgMCAwIDEgNy41NDgtNy41MzNoLjAwNmE3LjUyNCA3LjUyNCAwIDAgMSAzLjc2OSAxLjAxMiA3LjU1IDcuNTUgMCAwIDEgMy41MTMgNC41NzJjLjE2Ny42Mi4yNTggMS4yNzYuMjU4IDEuOTUxaDMuNDc5Yy4wMDMtLjk4NC0uMTI4LTEuOTQtLjM3Mi0yLjg1WlxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk04Ny41ODUgMTcuNzY1YTcuNTQyIDcuNTQyIDAgMCAwLTEuOTU1LTMuMzhsLTEuNjQgMS42MzlhNS4yNjQgNS4yNjQgMCAwIDEgMS4zNTQgMi4zNDMgNS4xODQgNS4xODQgMCAwIDEgMCAyLjcwNSA1LjIzOSA1LjIzOSAwIDAgMS0zLjY5OCAzLjY5NSA1LjE5NSA1LjE5NSAwIDAgMS0yLjcwNyAwIDUuMjk2IDUuMjk2IDAgMCAxLTEuMjYtLjUyMWwtMS4xNiAyLjAwOGE3LjUyOCA3LjUyOCAwIDAgMCAzLjc3NCAxLjAxYy42NzcgMCAxLjMzLS4wOTEgMS45NTQtLjI1NmE3LjU1MyA3LjU1MyAwIDAgMCA0LjU4NC0zLjUxNyA3LjU0NCA3LjU0NCAwIDAgMCAxLjAxMy0zLjc3MSA3LjUgNy41IDAgMCAwLS4yNTktMS45NTVaXFxcIiBmaWxsPVxcXCIjMTU1MzY2XFxcIi8+PHBhdGggZD1cXFwiTTkxLjg1MyAxMy4wNDZhMTMuNDM1IDEzLjQzNSAwIDAgMC0yLjEyLTIuNzY1IDEzLjM0MyAxMy4zNDMgMCAwIDAtMi43NjYtMi4xMTggMTMuMjg3IDEzLjI4NyAwIDAgMC02LjY3NS0xLjc5Yy0xLjE5NyAwLTIuMzUyLjE1OS0zLjQ1Ni40NTQtMS4xNDEuMzAzLTIuMjIuNzU3LTMuMjE4IDEuMzM2YTEzLjQzNiAxMy40MzYgMCAwIDAtMi43NjcgMi4xMTggMTMuMzM0IDEzLjMzNCAwIDAgMC0yLjEyIDIuNzY1IDEzLjI3MiAxMy4yNzIgMCAwIDAtMS43OSA2LjY3aDIuMzJjMC0uOTg2LjEzMS0xLjk0Mi4zNzUtMi44NTJhMTEuMDg4IDExLjA4OCAwIDAgMSAyLjg1NS00Ljk0IDExLjAwMiAxMS4wMDIgMCAwIDEgMi4yODQtMS43NSAxMS4wMyAxMS4wMyAwIDAgMSAyLjY2LTEuMTA0IDExLjAyIDExLjAyIDAgMCAxIDIuODU0LS4zNzRjLjk4OCAwIDEuOTQ0LjEzIDIuODU1LjM3NGExMS4wOTkgMTEuMDk5IDAgMCAxIDQuOTQzIDIuODUzIDEwLjk5IDEwLjk5IDAgMCAxIDEuNzUxIDIuMjgzYy40NzcuODI2Ljg1MiAxLjcxNiAxLjEwNCAyLjY1OGwyLjI0Mi0uNjAyYTEzLjE5NCAxMy4xOTQgMCAwIDAtMS4zMy0zLjIxNlpcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiLz48cGF0aCBkPVxcXCJNOTcuNjc0IDE1LjA2M2ExNy43OTEgMTcuNzkxIDAgMCAwLTEuOC00LjMzNiAxOC4wNDMgMTguMDQzIDAgMCAwLTYuNTg2LTYuNTgzIDE3LjkzIDE3LjkzIDAgMCAwLTguOTk2LTIuNDA4Yy0xLjYxMiAwLTMuMTcyLjIxMy00LjY1Ny42MWExNy44MTcgMTcuODE3IDAgMCAwLTQuMzM5IDEuNzk4IDE4LjAzMiAxOC4wMzIgMCAwIDAtNi41ODYgNi41ODNsMi4wMTIgMS4xNjNhMTUuNjc2IDE1LjY3NiAwIDAgMSAyLjQ4OS0zLjI0NWMuOTY1LS45NjQgMi4wNTctMS44IDMuMjQ2LTIuNDg3YTE1LjcwNiAxNS43MDYgMCAwIDEgMy43NzctMS41NjkgMTUuNjggMTUuNjggMCAwIDEgOC4xMSAwYzEuMzQuMzU4IDIuNjA2Ljg5MSAzLjc3OCAxLjU2OWExNS42ODUgMTUuNjg1IDAgMCAxIDMuMjQ2IDIuNDg3IDE1LjY3NiAxNS42NzYgMCAwIDEgMi40ODkgMy4yNDUgMTUuNjg0IDE1LjY4NCAwIDAgMSAxLjU2OSAzLjc3NCAxNS42NTQgMTUuNjU0IDAgMCAxIDAgOC4xMDZsMi4yNDUuNjAxYy4zOTctMS40ODMuNjEtMy4wNDMuNjEtNC42NTRhMTcuODc1IDE3Ljg3NSAwIDAgMC0uNjA4LTQuNjU0WlxcXCIgZmlsbD1cXFwiIzE1NTM2NlxcXCIvPjxwYXRoIGQ9XFxcIk04MC4yOTMgMjQuOTQ0YzIuODg4IDAgNS4yMy0yLjM0IDUuMjMtNS4yMjdhNS4yMjkgNS4yMjkgMCAwIDAtNS4yMy01LjIyNyA1LjIyOCA1LjIyOCAwIDAgMC01LjIzIDUuMjI3IDUuMjI4IDUuMjI4IDAgMCAwIDUuMjMgNS4yMjdabTIwLjYxNSAxNS40MzZWMjkuNTQzaDIuMzA0VjQwLjM4aC0yLjMwNFptNi42MTgtMy43ODd2My43ODdoLTIuMTk2di03LjU3NmgyLjE2NXYuNTI1YTIuNTM5IDIuNTM5IDAgMCAxIDEuNzkzLS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNiAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTZ2LTQuMjM1YzAtLjgwMi0uMzcyLTEuNDgzLTEuMjU0LTEuNDgzLTEuMDMzLjAwMy0xLjM5MS43NzQtMS4zOTEgMS45MzRabTkuNjY2IDMuODE3Yy0xLjY1NSAwLTIuNjE0LS45NTgtMi42MTQtMi42Mjh2LTIuOTUzaC0xLjI2OHYtMi4wMjVoMS4yNjh2LTEuMTExbDIuMTk2LTEuODU1djIuOTdoMS45MDJ2Mi4wMjRoLTEuOTAydjIuNjQzYzAgLjcyNy40OC44OTcuOTI4Ljg5Ny41MTEgMCAuOTI4LS4yMDIuOTI4LS4yMDJ2MS45OTRzLS41ODcuMjQ3LTEuNDM4LjI0N1ptMTAuMTkzLTMuMjNoLTUuMzUyYy4xMjUuNzc1Ljc1NyAxLjM2MiAxLjcgMS4zNjIuNjM1IDAgMS4wMDQtLjI2NCAxLjIzNy0uNjVoMi4zNjdjLS41MTEgMS42NC0xLjY4NiAyLjY2LTMuNTczIDIuNjYtMi4xOTcgMC0zLjk1OS0xLjUzLTMuOTU5LTMuOTEgMC0yLjI4OSAxLjYwOS00LjAxOSAzLjgzNy00LjAxOSAyLjQ4OSAwIDMuNzU3IDEuOTYzIDMuNzU3IDMuOTg4IDAgLjE5OC0uMDE0LjU3LS4wMTQuNTdabS0zLjcxNS0yLjYyOGMtLjgzNCAwLTEuMzkzLjUxLTEuNTMyIDEuMTZoMi45NGMtLjA0Ni0uNjY0LS42MTktMS4xNi0xLjQwOC0xLjE2Wm0xMC4yMzktMS4zMTV2Mi4xNjRzLS41NzMtLjU4Ny0xLjQzOS0uNTg3Yy0uNjY0IDAtMS40MDcuMzU0LTEuNDA3IDEuNDY5djQuMDk1aC0yLjE5N3YtNy41NzVoMi4xNjV2LjYzNWMtLjAxNCAwIC40MzUtLjc0MyAxLjUxNi0uNzQzLjkyOCAwIDEuMzYyLjU0MiAxLjM2Mi41NDJabTMuNDAzIDMuMzU2djMuNzg3aC0yLjE5N3YtNy41NzZoMi4xNjV2LjUyNWEyLjU0MyAyLjU0MyAwIDAgMSAxLjc5NC0uNzEyYzEuODU2IDAgMy4wNzkgMS4yMDYgMy4wNzkgMy4zNTV2NC40MDVoLTIuMTk3di00LjIzNWMwLS44MDItLjM3MS0xLjQ4My0xLjI1NC0xLjQ4My0xLjAzNi4wMDMtMS4zOS43NzQtMS4zOSAxLjkzNFptMTEuMTY2IDMuMDE1Yy0uNDk2LjYwNC0xLjIwNi45NDUtMi4xNTEuOTQ1LTEuNTE1IDAtMi43MzgtLjk0NS0yLjczOC0yLjM5NyAwLTEuNDM4IDEuMjItMi4xNSAyLjkzNy0yLjI0IDEuMzE0LS4wNzcgMS43MzQtLjIxNiAxLjczNC0uNjY0IDAtLjQzNC0uNDAzLS43MjYtMS4xMTMtLjcyNi0uODY1IDAtMS4yMzcuNDM0LTEuMjg1Ljg5NmgtMi4xMmMuMTA4LTEuNjUzIDEuMzQ1LTIuNzk5IDMuNDItMi43OTkgMi4wMjYgMCAzLjMyNiAxLjA5OCAzLjMyNiAzLjE1NHY0LjYwNmgtMS44MTFsLS4xOTktLjc3NVptLTIuNjkzLTEuNTQ1YzAgLjQzNC4zODYuNjk0IDEuMDA1LjY5NC44MzQgMCAxLjUwMS0uNDYyIDEuNTAxLTEuNDA2di0uMjc4cy0uNDAzLjE4NC0xLjIzNy4yMzJjLS45MTQuMDQ2LTEuMjY5LjM0LTEuMjY5Ljc1OFptOS41NTggMi4zNDdjLTEuNjU1IDAtMi42MTQtLjk1OC0yLjYxNC0yLjYyOHYtMi45NTNoLTEuMjY5di0yLjAyNWgxLjI2OXYtMS4xMTFsMi4xOTYtMS44NTV2Mi45N2gxLjkwMnYyLjAyNGgtMS45MDJ2Mi42NDNjMCAuNzI3LjQ4Ljg5Ny45MjguODk3LjUxMSAwIC45MjgtLjIwMi45MjgtLjIwMnYxLjk5NHMtLjU5LjI0Ny0xLjQzOC4yNDdabTIuOTUxLTkuNzUzYzAtLjcxMi41NTYtMS4yODIgMS4yNjgtMS4yODIuNzEzIDAgMS4yODYuNTczIDEuMjg2IDEuMjgyIDAgLjY5NS0uNTczIDEuMjY4LTEuMjg2IDEuMjY4YTEuMjY0IDEuMjY0IDAgMCAxLTEuMjY4LTEuMjY4Wm0uMTcgOS43MjJ2LTcuNTc1aDIuMTk3djcuNTc1aC0yLjE5N1ptMy43ODktMy43ODZjMC0yLjI3MiAxLjc0OC0zLjk3NCA0LjAzOC0zLjk3NHM0LjAzNSAxLjcwMiA0LjAzNSAzLjk3NGMwIDIuMjcxLTEuNzQ4IDMuOTU2LTQuMDM1IDMuOTU2LTIuMjkgMC00LjAzOC0xLjY4NS00LjAzOC0zLjk1NlptMi4yNDUgMGMwIDEuMTExLjc1NyAxLjkxNyAxLjc5MyAxLjkxN3MxLjc5NC0uODAzIDEuNzk0LTEuOTE3YzAtMS4xMTItLjc1OC0xLjkxOC0xLjc5NC0xLjkxOHMtMS43OTMuODAzLTEuNzkzIDEuOTE4Wm05LjU0IDB2My43ODdoLTIuMTk2di03LjU3NmgyLjE2NXYuNTI1YTIuNTQgMi41NCAwIDAgMSAxLjc5My0uNzEyYzEuODU2IDAgMy4wNzkgMS4yMDYgMy4wNzkgMy4zNTV2NC40MDVoLTIuMTk2di00LjIzNWMwLS44MDItLjM3Mi0xLjQ4My0xLjI1NC0xLjQ4My0xLjAzNi4wMDMtMS4zOTEuNzc0LTEuMzkxIDEuOTM0Wm0xMS4xNjcgMy4wMTVjLS40OTcuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTYgMC0yLjczOS0uOTQ1LTIuNzM5LTIuMzk3IDAtMS40MzggMS4yMjEtMi4xNSAyLjkzNy0yLjI0IDEuMzE0LS4wNzcgMS43MzQtLjIxNiAxLjczNC0uNjY0IDAtLjQzNC0uNDAzLS43MjYtMS4xMTItLjcyNi0uODY2IDAtMS4yMzcuNDM0LTEuMjg2Ljg5NmgtMi4xMTljLjEwNy0xLjY1MyAxLjM0NS0yLjc5OSAzLjQxOS0yLjc5OSAyLjAyNiAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA2aC0xLjgxbC0uMTk5LS43NzVabS0yLjY5My0xLjU0NWMwIC40MzQuMzg2LjY5NCAxLjAwNC42OTQuODM1IDAgMS41MDItLjQ2MiAxLjUwMi0xLjQwNnYtLjI3OHMtLjQwMy4xODQtMS4yMzguMjMyYy0uOTExLjA0Ni0xLjI2OC4zNC0xLjI2OC43NThabTYuNTI0IDIuMzE3VjI5LjU0M2gyLjE5NlY0MC4zOGgtMi4xOTZabTE0LjA4OS0xMC44MzcgNC4yNCAxMC44MzdoLTIuMzgxbC0uODY2LTIuMTMzaC00LjE5MWwtLjg1MSAyLjEzM2gtMi4zODFsNC4yMzktMTAuODM3aDIuMTkxWm0tMS4wOTggMy4xMjMtMS4zNDUgMy41MzloMi42OWwtMS4zNDUtMy41NFptNi4zODUtMi4wMDljMC0uNzEyLjU1Ni0xLjI4MiAxLjI2OS0xLjI4Mi43MTIgMCAxLjI4NS41NzMgMS4yODUgMS4yODIgMCAuNjk1LS41NzMgMS4yNjgtMS4yODUgMS4yNjhhMS4yNjQgMS4yNjQgMCAwIDEtMS4yNjktMS4yNjhabS4xNyA5LjcyMnYtNy41NzVoMi4xOTd2Ny41NzVoLTIuMTk3Wm0zLjc4OS0zLjc4NmMwLTIuMzk2IDEuNzE2LTMuOTczIDMuODE5LTMuOTczLjg2NiAwIDEuNTkyLjMyMyAxLjk4MS42NjR2LTMuNzQxaDIuMTk2VjQwLjM4aC0yLjE2NXYtLjU0MmMtLjQuMzg2LTEuMTYuNzEyLTIuMDA5LjcxMi0yLjEwNiAwLTMuODIyLTEuNTE1LTMuODIyLTMuOTU2Wm01LjgzMSAwYzAtMS4xNzQtLjc3Mi0xLjk4LTEuNzkzLTEuOTgtMS4wMjIgMC0xLjc5NC44MDMtMS43OTQgMS45OCAwIDEuMTc1Ljc3MiAxLjk4IDEuNzk0IDEuOTggMS4wMjEgMCAxLjc5My0uODA1IDEuNzkzLTEuOThaTTEwMC4xOTYgNDguMDloOC41MjJ2Mi4xMThoLTMuMTF2OC43MTloLTIuMzA0di04LjcxOWgtMy4xMTFWNDguMDloLjAwM1ptMTMuODg4IDMuNjkydjIuMTY0cy0uNTczLS41ODctMS40MzktLjU4N2MtLjY2NCAwLTEuNDA3LjM1NC0xLjQwNyAxLjQ2OXY0LjA5NWgtMi4xOTZ2LTcuNTc1aDIuMTY1di42MzVjLS4wMTQgMCAuNDM0LS43NDMgMS41MTUtLjc0My45MzEuMDAzIDEuMzYyLjU0MiAxLjM2Mi41NDJabTUuODkxIDYuMzcxYy0uNDk2LjYwNC0xLjIwNi45NDUtMi4xNTEuOTQ1LTEuNTE1IDAtMi43MzgtLjk0NS0yLjczOC0yLjM5NyAwLTEuNDM4IDEuMjItMi4xNSAyLjkzNy0yLjI0IDEuMzE0LS4wNzcgMS43MzQtLjIxNiAxLjczNC0uNjY0IDAtLjQzNC0uNDAzLS43MjYtMS4xMTItLjcyNi0uODY2IDAtMS4yMzguNDM0LTEuMjg2Ljg5NmgtMi4xMmMuMTA4LTEuNjUzIDEuMzQ1LTIuNzk5IDMuNDItMi43OTkgMi4wMjYgMCAzLjMyNiAxLjA5OCAzLjMyNiAzLjE1NHY0LjYwNWgtMS44MTFsLS4xOTktLjc3NFptLTIuNjktMS41NDVjMCAuNDM0LjM4Ni42OTUgMS4wMDUuNjk1LjgzNCAwIDEuNTAxLS40NjMgMS41MDEtMS40MDd2LS4yNzhzLS40MDMuMTg0LTEuMjM3LjIzMmMtLjkxNC4wNDYtMS4yNjkuMzQtMS4yNjkuNzU4Wm04LjcyMS0xLjQ3djMuNzg3aC0yLjE5N3YtNy41NzZoMi4xNjV2LjUyNWEyLjU0IDIuNTQgMCAwIDEgMS43OTQtLjcxMmMxLjg1NiAwIDMuMDc5IDEuMjA1IDMuMDc5IDMuMzU1djQuNDA1aC0yLjE5N3YtNC4yMzVjMC0uODAyLS4zNzEtMS40ODMtMS4yNTQtMS40ODMtMS4wMzMuMDAzLTEuMzkuNzc0LTEuMzkgMS45MzRabTEwLjc5NSAxLjYwN2MwLS4yMzItLjEzOS0uNDE2LS43NDQtLjU0MWwtMS4xNDMtLjIzM2MtMS43MTctLjM0LTIuNDQ0LTEuMTYtMi40NDQtMi4yODggMC0xLjMzIDEuMDA1LTIuNTE5IDMuMDk0LTIuNTE5IDIuMTAyIDAgMy4wNDcgMS4xNzQgMy4yMDEgMi40OWgtMi4wODljLS4xMjUtLjQxNy0uNDgtLjY2NC0xLjEyOS0uNjY0LS42MTkgMC0uOTYuMjE2LS45Ni41MjUgMCAuMjMzLjE4NS4zNzIuNzU4LjQ4bDEuMTQ0LjIzMmMxLjYyMy4zMjMgMi40MjkgMS4wODMgMi40MjkgMi4zOCAwIDEuNDY5LTEuMDY3IDIuNDktMy4xODcgMi40OS0yLjE2NSAwLTMuMzI2LTEuMDIxLTMuNTQyLTIuNTk4aDIuMjE0Yy4xMjUuNTI0LjUxMS44MDIgMS4zMjguODAyLjc0NiAwIDEuMDctLjIxNSAxLjA3LS41NTZabTExLjU1Mi0xLjYwOGMwIDIuMzk3LTEuNzE3IDMuOTU3LTMuODE5IDMuOTU3LS44NjYgMC0xLjU5Mi0uMzEtMS45ODEtLjY1djMuNDc3aC0yLjE5N1Y1MS4zNDhoMi4xNjZ2LjU0MmMuNDAzLS4zODYgMS4xNi0uNzI2IDIuMDEyLS43MjYgMi4xMDIgMCAzLjgxOSAxLjUxNyAzLjgxOSAzLjk3M1ptLTUuODMxIDBjMCAxLjE3NS43NzQgMS45OCAxLjc5MyAxLjk4IDEuMDIyIDAgMS43OTQtLjgwMyAxLjc5NC0xLjk4IDAtMS4xNzQtLjc3Mi0xLjk4LTEuNzk0LTEuOTgtMS4wMTkuMDA0LTEuNzkzLjgwNi0xLjc5MyAxLjk4Wm0xMS44NzkgMy4wMTZjLS40OTcuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTYgMC0yLjczOS0uOTQ1LTIuNzM5LTIuMzk3IDAtMS40MzggMS4yMi0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMi0uNzI2LS44NjYgMC0xLjIzNy40MzQtMS4yODYuODk2aC0yLjEyYy4xMDgtMS42NTMgMS4zNDYtMi43OTkgMy40Mi0yLjc5OSAyLjAyNiAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA1aC0xLjgxMWwtLjE5OC0uNzc0Wm0tMi42OTMtMS41NDVjMCAuNDM0LjM4Ni42OTUgMS4wMDQuNjk1LjgzNSAwIDEuNTAxLS40NjMgMS41MDEtMS40MDd2LS4yNzhzLS40MDMuMTg0LTEuMjM3LjIzMmMtLjkxMS4wNDYtMS4yNjguMzQtMS4yNjguNzU4Wm0xMS41NjYtNC44MjZ2Mi4xNjRzLS41NzMtLjU4Ny0xLjQzOS0uNTg3Yy0uNjY0IDAtMS40MDcuMzU0LTEuNDA3IDEuNDY5djQuMDk1aC0yLjE5N3YtNy41NzVoMi4xNjZ2LjYzNWMtLjAxNSAwIC40MzQtLjc0MyAxLjUxNS0uNzQzLjkyOC4wMDMgMS4zNjIuNTQyIDEuMzYyLjU0MlptOC40MjggMy45NDRoLTUuMzUyYy4xMjUuNzc0Ljc1OCAxLjM2IDEuNzAzIDEuMzYuNjM2IDAgMS4wMDUtLjI2MyAxLjIzNy0uNjQ5aDIuMzY3Yy0uNTExIDEuNjQtMS42ODYgMi42Ni0zLjU3MyAyLjY2LTIuMTk2IDAtMy45NTktMS41My0zLjk1OS0zLjkxIDAtMi4yODkgMS42MS00LjAxOSAzLjgzNy00LjAxOSAyLjQ4OSAwIDMuNzU3IDEuOTYzIDMuNzU3IDMuOTg4IDAgLjItLjAxNy41Ny0uMDE3LjU3Wm0tMy43MTEtMi42MjdjLS44MzUgMC0xLjM5NC41MS0xLjUzMyAxLjE2aDIuOTRjLS4wNDUtLjY2Ni0uNjE5LTEuMTYtMS40MDctMS4xNlptNy4zOTIgMi4wMzl2My43ODdoLTIuMTk2di03LjU3NmgyLjE2NXYuNTI1YTIuNTM4IDIuNTM4IDAgMCAxIDEuNzkzLS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNSAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTZ2LTQuMjM1YzAtLjgwMi0uMzcyLTEuNDgzLTEuMjU0LTEuNDgzLTEuMDM2LjAwMy0xLjM5MS43NzQtMS4zOTEgMS45MzRabTExLjU2Ny44MzdoMi40MTJjLS4zNTcgMS44NC0xLjc0OCAzLjEyMy0zLjc5MSAzLjEyMy0yLjI5IDAtMy45OS0xLjY4NS0zLjk5LTMuOTU3IDAtMi4yNzEgMS43MDMtMy45NzMgMy45OS0zLjk3MyAxLjk5NSAwIDMuMzg4IDEuMjM2IDMuNjY2IDMuMDI5aC0yLjQxNWMtLjE3LS41NzMtLjY2NC0uOTU5LTEuMzI4LS45NTktLjkyOCAwLTEuNjcxLjc4OS0xLjY3MSAxLjkgMCAxLjExMi43NDMgMS45IDEuNzAzIDEuOS43MTIuMDA0IDEuMjQtLjQxNiAxLjQyNC0xLjA2M1ptNS4xMDIgNi4wMjdjLS45OSAwLTEuNDg0LS4yNjQtMS40ODQtLjI2NHYtMi4wMXMuNDQ4LjIzMi45MjguMjMyYy40OTYgMCAxLjE0My0uMTg0IDEuMjk5LTEuMDM1bC0yLjk1NC03LjU3NWgyLjQ0NGwxLjcxNyA0LjY5OSAxLjc0OC00LjdoMi4zNDlsLTMuMDc5IDcuN2MtLjgwMyAyLjAyNi0xLjQ1MyAyLjk1My0yLjk2OCAyLjk1M1ptMTEuNTk4LTMuMDc1VjQ4LjA5aDIuMzA1djEwLjgzN2gtMi4zMDVabTYuNjE4LTMuNzg5djMuNzg3aC0yLjE5N3YtNy41NzZoMi4xNjZ2LjUyNWEyLjUzOCAyLjUzOCAwIDAgMSAxLjc5My0uNzEyYzEuODU2IDAgMy4wNzkgMS4yMDUgMy4wNzkgMy4zNTV2NC40MDVoLTIuMTk2di00LjIzNWMwLS44MDItLjM3Mi0xLjQ4My0xLjI1NS0xLjQ4My0xLjAzMy4wMDMtMS4zOS43NzQtMS4zOSAxLjkzNFptNi41NDEtNS45MzZjMC0uNzEyLjU1Ni0xLjI4MiAxLjI2OC0xLjI4MnMxLjI4Ni41NzMgMS4yODYgMS4yODJhMS4yOCAxLjI4IDAgMCAxLTEuMjg2IDEuMjY4IDEuMjY0IDEuMjY0IDAgMCAxLTEuMjY4LTEuMjY4Wm0uMTcgOS43MjV2LTcuNTc1aDIuMTk2djcuNTc1aC0yLjE5NlptNy4yNTQuMDI5Yy0xLjY1NSAwLTIuNjE0LS45NTktMi42MTQtMi42M3YtMi45NTJoLTEuMjY4VjUxLjM1aDEuMjY4di0xLjExMWwyLjE5Ni0xLjg1NXYyLjk3aDEuOTAydjIuMDI0aC0xLjkwMnYyLjY0M2MwIC43MjYuNDguODk3LjkyOC44OTcuNTExIDAgLjkyOC0uMjAyLjkyOC0uMjAydjEuOTk0cy0uNTg3LjI0Ny0xLjQzOC4yNDdabTIuOTU0LTkuNzU0YzAtLjcxMi41NTYtMS4yODIgMS4yNjgtMS4yODJzMS4yODYuNTczIDEuMjg2IDEuMjgyYTEuMjggMS4yOCAwIDAgMS0xLjI4NiAxLjI2OCAxLjI2NCAxLjI2NCAwIDAgMS0xLjI2OC0xLjI2OFptLjE3IDkuNzI1di03LjU3NWgyLjE5NnY3LjU3NWgtMi4xOTZabTguNzU0LS43NzRjLS40OTYuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTUgMC0yLjczOC0uOTQ1LTIuNzM4LTIuMzk3IDAtMS40MzggMS4yMi0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMy0uNzI2LS44NjUgMC0xLjIzNy40MzQtMS4yODUuODk2aC0yLjEyYy4xMDgtMS42NTMgMS4zNDUtMi43OTkgMy40MTktMi43OTkgMi4wMjcgMCAzLjMyNiAxLjA5OCAzLjMyNiAzLjE1NHY0LjYwNWgtMS44MWwtLjE5OS0uNzc0Wm0tMi42OTMtMS41NDVjMCAuNDM0LjM4Ni42OTUgMS4wMDUuNjk1LjgzNCAwIDEuNTAxLS40NjMgMS41MDEtMS40MDd2LS4yNzhzLS40MDMuMTg0LTEuMjM3LjIzMmMtLjkxNC4wNDYtMS4yNjkuMzQtMS4yNjkuNzU4Wm05LjU1OCAyLjM0OGMtMS42NTUgMC0yLjYxNC0uOTU5LTIuNjE0LTIuNjN2LTIuOTUyaC0xLjI2OFY1MS4zNWgxLjI2OHYtMS4xMTFsMi4xOTctMS44NTV2Mi45N2gxLjkwMXYyLjAyNGgtMS45MDF2Mi42NDNjMCAuNzI2LjQ3OS44OTcuOTI4Ljg5Ny41MSAwIC45MjgtLjIwMi45MjgtLjIwMnYxLjk5NHMtLjU4OC4yNDctMS40MzkuMjQ3Wm0yLjk1MS05Ljc1NGMwLS43MTIuNTU2LTEuMjgyIDEuMjY5LTEuMjgyLjcxMiAwIDEuMjg1LjU3MyAxLjI4NSAxLjI4MiAwIC42OTUtLjU3MyAxLjI2OC0xLjI4NSAxLjI2OGExLjI2NCAxLjI2NCAwIDAgMS0xLjI2OS0xLjI2OFptLjE3IDkuNzI1di03LjU3NWgyLjE5N3Y3LjU3NWgtMi4xOTdabTEwLjk4My03LjU3NS0yLjY5MSA3LjU3NWgtMi4yNThsLTIuNjkxLTcuNTc1aDIuMzM2bDEuNDg0IDQuNjg1IDEuNDg0LTQuNjg1aDIuMzM2Wm03Ljk4IDQuMzc0aC01LjM1MmMuMTI1Ljc3NC43NTcgMS4zNiAxLjcwMiAxLjM2LjYzNiAwIDEuMDA1LS4yNjMgMS4yMzgtLjY0OWgyLjM2NmMtLjUxIDEuNjQtMS42ODUgMi42Ni0zLjU3MiAyLjY2LTIuMTk3IDAtMy45NTktMS41My0zLjk1OS0zLjkxIDAtMi4yODkgMS42MDktNC4wMTkgMy44MzctNC4wMTkgMi40ODggMCAzLjc2IDEuOTYzIDMuNzYgMy45ODgtLjAwNi4yLS4wMi41Ny0uMDIuNTdabS0zLjcxMi0yLjYyN2MtLjgzNCAwLTEuMzkzLjUxLTEuNTMyIDEuMTZoMi45NGMtLjA0OS0uNjY2LS42MTktMS4xNi0xLjQwOC0xLjE2WlxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTIyIDM2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHhtbG5zOnhsaW5rPVxcXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXFxcIj48cGF0aCBkPVxcXCJNNDQuMDE5IDI3VjE2Ljk3OWgzLjI0N2MxLjIzIDAgMi4wMzIuMDUgMi40MDYuMTUuNTc0LjE1IDEuMDU1LjQ3OCAxLjQ0Mi45ODQuMzg4LjUwMi41ODEgMS4xNTEuNTgxIDEuOTQ4IDAgLjYxNi0uMTExIDEuMTMzLS4zMzUgMS41NTItLjIyMy40Mi0uNTA4Ljc1LS44NTQuOTkyLS4zNDIuMjM2LS42OS4zOTQtMS4wNDYuNDcxLS40ODMuMDk2LTEuMTgzLjE0NC0yLjA5OS4xNDRoLTEuMzE5VjI3aC0yLjAyM1ptMi4wMjMtOC4zMjZ2Mi44NDRoMS4xMDdjLjc5OCAwIDEuMzMxLS4wNTMgMS42LS4xNThhMS4zMzMgMS4zMzMgMCAwIDAgLjg2MS0xLjI3MWMwLS4zNjUtLjEwNy0uNjY1LS4zMi0uOTAyYTEuMzk5IDEuMzk5IDAgMCAwLS44MTQtLjQ0NWMtLjI0Mi0uMDQ1LS43MjctLjA2OC0xLjQ1Ni0uMDY4aC0uOTc4Wm03LjAyLTEuNjk1aDIuMDI0djUuNDI3YzAgLjg2Mi4wMjUgMS40Mi4wNzUgMS42NzUuMDg3LjQxLjI5Mi43NC42MTYuOTkxLjMyOC4yNDYuNzc0LjM3IDEuMzQuMzcuNTc0IDAgMS4wMDctLjExNyAxLjI5OC0uMzUuMjkyLS4yMzYuNDY3LS41MjYuNTI3LS44NjcuMDU5LS4zNDIuMDg5LS45MS4wODktMS43MDNWMTYuOThoMi4wMjN2NS4yNjNjMCAxLjIwMy0uMDU1IDIuMDUzLS4xNjQgMi41NS0uMTEuNDk3LS4zMTIuOTE2LS42MDggMS4yNTgtLjI5Mi4zNDItLjY4NC42MTUtMS4xNzYuODItLjQ5Mi4yLTEuMTM1LjMtMS45MjguMy0uOTU3IDAtMS42ODQtLjEwOS0yLjE4LS4zMjctLjQ5My0uMjI0LS44ODMtLjUxLTEuMTctLjg2MmEyLjc4OCAyLjc4OCAwIDAgMS0uNTY3LTEuMTE0Yy0uMTMyLS41NzQtLjE5OC0xLjQyMi0uMTk4LTIuNTQzdi01LjM0NlptOS44NTggMGg0LjAwNmMuNzkzIDAgMS4zODMuMDM0IDEuNzcuMTAyLjM5My4wNjQuNzQxLjIgMS4wNDcuNDEuMzEuMjEuNTY3LjQ5Ljc3Mi44NDEuMjA1LjM0Ni4zMDguNzM2LjMwOCAxLjE2OSAwIC40Ny0uMTI4LjktLjM4MyAxLjI5MmEyLjMzIDIuMzMgMCAwIDEtMS4wMjUuODgyYy42MS4xNzcgMS4wOC40OCAxLjQwOC45MDkuMzI4LjQyOC40OTIuOTMyLjQ5MiAxLjUxIDAgLjQ1Ni0uMTA3LjktLjMyMSAxLjMzNC0uMjEuNDI4LS41Ljc3Mi0uODY4IDEuMDMyLS4zNjUuMjU1LS44MTYuNDEyLTEuMzU0LjQ3Mi0uMzM3LjAzNi0xLjE1LjA1OS0yLjQ0LjA2OEg2Mi45MlYxNi45NzlabTIuMDI0IDEuNjY4djIuMzE3aDEuMzI2Yy43ODggMCAxLjI3OC0uMDExIDEuNDctLjAzNC4zNDYtLjA0MS42MTctLjE2LjgxMy0uMzU2LjItLjIuMzAxLS40NjIuMzAxLS43ODYgMC0uMzEtLjA4Ny0uNTYtLjI2LS43NTItLjE2OC0uMTk2LS40MjEtLjMxNC0uNzU4LS4zNTUtLjIwMS0uMDIzLS43NzgtLjAzNS0xLjczLS4wMzVoLTEuMTYyWm0wIDMuOTg1djIuNjhoMS44NzNjLjczIDAgMS4xOTItLjAyMSAxLjM4OC0uMDYyLjMtLjA1NS41NDQtLjE4Ny43MzEtLjM5Ni4xOTEtLjIxNS4yODctLjUuMjg3LS44NTUgMC0uMy0uMDczLS41NTYtLjIxOS0uNzY2YTEuMjM3IDEuMjM3IDAgMCAwLS42MzUtLjQ1OGMtLjI3NC0uMDk1LS44Ny0uMTQzLTEuNzkxLS4xNDNoLTEuNjM0Wk03Mi44MDUgMjd2LTkuOTRoMi4wMjR2OC4yNTJoNS4wMzFWMjdoLTcuMDU1Wm04LjE2MyAwVjE2Ljk3OWgyLjAyM1YyN2gtMi4wMjNabTMuMTY1LTMuMjYgMS45NjktLjE5MmMuMTE4LjY2LjM1OCAxLjE0Ni43MTggMS40NTYuMzY0LjMxLjg1NC40NjUgMS40Ny40NjUuNjUxIDAgMS4xNDEtLjEzNyAxLjQ3LS40MS4zMzItLjI3OC40OTgtLjYwMi40OTgtLjk3MWEuODkuODkgMCAwIDAtLjIxMi0uNjAyYy0uMTM2LS4xNjgtLjM3OC0uMzE0LS43MjQtLjQzNy0uMjM3LS4wODItLjc3Ny0uMjI4LTEuNjItLjQzOC0xLjA4NS0uMjY5LTEuODQ2LS41OTktMi4yODQtLjk5LS42MTUtLjU1Mi0uOTIyLTEuMjI0LS45MjItMi4wMTcgMC0uNTEuMTQzLS45ODcuNDMtMS40My4yOTItLjQ0Ni43MDktLjc4NSAxLjI1MS0xLjAxOC41NDctLjIzMiAxLjIwNi0uMzQ4IDEuOTc2LS4zNDggMS4yNTcgMCAyLjIwMy4yNzUgMi44MzcuODI3LjYzOC41NTEuOTczIDEuMjg3IDEuMDA1IDIuMjA4bC0yLjAyNC4wODljLS4wODctLjUxNS0uMjczLS44ODQtLjU2LTEuMTA4LS4yODMtLjIyOC0uNzEtLjM0Mi0xLjI3OS0uMzQyLS41ODggMC0xLjA0OC4xMjEtMS4zOC4zNjNhLjczLjczIDAgMCAwLS4zMjIuNjIyYzAgLjIzNy4xLjQ0LjMuNjA4LjI1Ni4yMTQuODc2LjQzOCAxLjg2LjY3Ljk4NS4yMzIgMS43MTIuNDc0IDIuMTguNzI1LjQ3NS4yNDYuODQ0LjU4NSAxLjEwOCAxLjAxOC4yNy40MjkuNDA0Ljk2LjQwNCAxLjU5MyAwIC41NzQtLjE2IDEuMTEyLS40NzkgMS42MTMtLjMxOS41MDItLjc3Ljg3NS0xLjM1MyAxLjEyMS0uNTg0LjI0Mi0xLjMxLjM2My0yLjE4MS4zNjMtMS4yNjcgMC0yLjI0LS4yOTItMi45MTktLjg3NS0uNjc5LS41ODgtMS4wODUtMS40NDMtMS4yMTctMi41NjRaTTkzLjcxMSAyN1YxNi45NzloMi4wMjN2My45NDRIOTkuN3YtMy45NDRoMi4wMjNWMjdoLTIuMDIzdi00LjM4MmgtMy45NjVWMjdoLTIuMDIzWm05LjgzIDBWMTYuOTc5aDcuNDMxdjEuNjk1aC01LjQwOHYyLjIyMWg1LjAzMnYxLjY4OWgtNS4wMzJ2Mi43MjdoNS41OTlWMjdoLTcuNjIyWm05LjA2NSAwVjE2Ljk3OWg0LjI1OGMxLjA3MSAwIDEuODQ4LjA5IDIuMzMyLjI3M2EyLjI4IDIuMjggMCAwIDEgMS4xNjguOTU3Yy4yOTIuNDYuNDM4Ljk4Ny40MzggMS41OCAwIC43NTEtLjIyMSAxLjM3My0uNjYzIDEuODY1LS40NDIuNDg4LTEuMTAzLjc5Ni0xLjk4My45MjMuNDM4LjI1NS43OTguNTM2IDEuMDgxLjg0MS4yODcuMzA1LjY3Mi44NDggMS4xNTUgMS42MjdMMTIxLjYxNSAyN2gtMi40MTlsLTEuNDYzLTIuMThjLS41Mi0uNzgtLjg3NS0xLjI3LTEuMDY3LTEuNDdhMS41MDMgMS41MDMgMCAwIDAtLjYwOC0uNDE3Yy0uMjE0LS4wNzgtLjU1NC0uMTE3LTEuMDE5LS4xMTdoLS40MVYyN2gtMi4wMjNabTIuMDIzLTUuNzgzaDEuNDk3Yy45NzEgMCAxLjU3Ny0uMDQxIDEuODE5LS4xMjMuMjQxLS4wODIuNDMtLjIyNC41NjctLjQyNC4xMzctLjIuMjA1LS40NTEuMjA1LS43NTIgMC0uMzM3LS4wOTEtLjYwOC0uMjczLS44MTMtLjE3OC0uMjEtLjQzMS0uMzQyLS43NTktLjM5Ny0uMTY0LS4wMjMtLjY1Ni0uMDM0LTEuNDc3LS4wMzRoLTEuNTc5djIuNTQzWlxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGZpbGw9XFxcInVybCgjbG9nb19zdmdfX2EpXFxcIiBkPVxcXCJNMCAwaDQxdjM2SDB6XFxcIi8+PGRlZnM+PHBhdHRlcm4gaWQ9XFxcImxvZ29fc3ZnX19hXFxcIiBwYXR0ZXJuQ29udGVudFVuaXRzPVxcXCJvYmplY3RCb3VuZGluZ0JveFxcXCIgd2lkdGg9XFxcIjFcXFwiIGhlaWdodD1cXFwiMVxcXCI+PHVzZSB4bGluazpocmVmPVxcXCIjbG9nb19zdmdfX2JcXFwiIHRyYW5zZm9ybT1cXFwibWF0cml4KC4wMDA5MyAwIDAgLjAwMTA2IC0uMTIyIC0uMDA3KVxcXCIvPjwvcGF0dGVybj48aW1hZ2UgaWQ9XFxcImxvZ29fc3ZnX19iXFxcIiB3aWR0aD1cXFwiMjIzNVxcXCIgaGVpZ2h0PVxcXCI5NTlcXFwiIHhsaW5rOmhyZWY9XFxcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFDTHNBQUFPL0NBWUFBQUF0S2xha0FBQUFDWEJJV1hNQUFDRTNBQUFoTndFeldKOTZBQUFnQUVsRVFWUjQydXpkUFloZDZaMG04T2NkT2pEc0RXcGhZQ293YkRXdW9JT0J2ZzNPWEdBcHNwTEYzYlNTaVZSaWNhVEFyVWhSMDJvY0tlcWVRSkdETGtXVHFMSE1KdFdSTlNEREJBdHpHeWFZb0l4cllZSmFHSmdhcUlVSkJ0NE4zbHVyc3R3ZityajNQZWZjKy90QmNVdHErNTZ2OTFTcGRCNDkvd1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRG9vRGdGQUFBQU1FNjExcDBrOHovN1liNlVwODRPQUFBQUFOdEsyQVVBQUFCV3JOYTZsMlJ2K2N0NWtwM2w1Ly90eXU5bitmdnpOZXpDMHhkK3ZVank3OHZQVDVjZlNiSW9wWnk3WWdBQUFBQk1pYkFMQUFBQXZLSmE2MldBNWRyeXQzNjZmTDBhYkptUzArWEhlWkt2bDYrTEpLZWxsRk5YSEFBQUFJQXhFWFlCQUFDQWIzQmxoTkE4clpGbG50YktzcmVGcDJPUkZvRDUreXlETVVZcEFRQUFBREFVWVJjQUFBQzIzcktwWlM4dDBQTFRUTGVocGJmVHRDRE0xMm1qa3pUQkFBQUFBTEIyd2k0QUFBQnNsV1ZqeTdVSXRxekxlVnJ3NVRJQXN5aWxuRHN0QUFBQUFLeUtzQXNBQUFBYmJkbmFjaGxzdVpidEhFTTB0RVd1QkdDMHZ3QUFBQUR3Sm9SZEFBQUEyQ2kxMXIyMFVNdlBsNjlhVzhibk5DMzg4dHUwOEl2bUZ3QUFBQUJlbXJBTEFBQUFrM1psTE5GbHVHWFBXWm1jeSthWDM1WlNuam9kQUFBQUFId1hZUmNBQUFBbVo5bmU4bjZlQjF6WUhPZDUzdnJ5Uk9zTEFBQUFBQzhTZGdFQUFHQVNhcTN6SkxmU1FpNTd6c2pXV0NSNWxCWjhPWFU2QUFBQUFCQjJBUUFBWUxRRVhIaUI0QXNBQUFBQXdpNEFBQUNNaTRBTEwwbndCUUFBQUdCTENic0FBQUF3dUZyclhscTQ1WmNSY09IVlBjM3o0TXU1MHdFQUFBQ3cyWVJkQUFBQUdFeXQ5VERKejlPQ0xyQUtSMGtlbFZLZU9oVUFBQUFBbTBuWUJRQUFnSzZXTFM2L1RIS1laTWNaWVUxTzA5cGVqb3c1QWdBQUFOZ3N3aTRBQUFCMHNXeHh1WlhrbXJOQlowZlI5Z0lBQUFDd01ZUmRBQUFBV0p0bGk4dGhXcE9MRmhlR2RwcmsweVJQU2lublRnY0FBQURBTkFtN0FBQUFzSEsxMW10cExTNkh6Z1lqZEo3Vzl2SzNSaHdCQUFBQVRJK3dDd0FBQUN0VGEzMC9yY1hsbXJQeFVoYmY4SHNuU2Y3dks3ekhqNUxNWHZpOVdaSjlwL2VsSE1XSUl3QUFBSUJKRVhZQkFBRGdqZFZhRDVOOGttUnZ5MC9GUlZwWUpVbStYcjZlTFQreS9HOFhBK3pYN3ZJamFTR1lXWkwva3VlQm1MbFZuS2RKUGhWNkFRQUFBQmcvWVJjQUFBQmUyNWFHWEM3REs1Y05MSXY4YWNobHl1WjUzZ3J6VjJrQm1jdHd6TFo0bXRiMGN1UU9Cd0FBQUJnbllSY0FBQUJlU2ExMUo4bEhhZU9LZGpiNFVDOERMQ2RKL3BBV2NGbHM2V1cvRE1Ec3A0MU4yczNtdDhHY3BqVzlITG5yQVFBQUFNWkYyQVVBQUlDWFZtdTluODBOdVN6U1JnOWRCbHpPWFBIdmRUVUFNOC96c1VpYjVEUkNMd0FBQUFDakl1d0NBQURBOTlyQWNVV1hMUzEvV0w2ZXVNb3JNMTkrWEFaZ05tVUUwaUxKM1ZMS1U1Y1lBQUFBWUZqQ0xnQUFBSHlyRFFxNVhDUjVsdGJjc29qV2xwNzIwMEl2NzJZendpOVAwNXBlbnJxMEFBQUFBTU1RZGdFQUFPRFAxRnF2cFlWY3JrMzRNQlpKZmgvTkxXTnoyZnp5azB4NzdOR1R0S2FYVTVjVUFBQUFvQzloRndBQUFQNi9XdXRla2k4eXpaREw1V2lpeTRETGhTczZlck1rQjJuQmw2bTJ2bnllMXZSeTduSUNBQUFBOUNIc0FnQUFRR3F0TzJsTkxoOU5iTmZQMHNZVGZSWHRMWnZnTXZoeWtHa0ZYODdUQWkrZnU0UUFBQUFBNnlmc0FnQUFzT1ZxclIrbEJWMTJKckxMQWk3YllZckJsOU1rdDBzcFQxMCtBQUFBZ1BVUmRnRUFBTmhTdGRaclNUNUxHeDh6ZGhkSmppUGdzcTJtRm54NWt1UnVLZVhVcFFNQUFBQllQV0VYQUFDQUxiTWNXZlJaa3NNSjdPNXhrdCtuTmJuQUxDM3c4ck9NUDZSMW51UnZTeW4zWFRZQUFBQ0ExUkoyQVFBQTJDSzExc08wb011WVJ4YWRwRFc0SEtjMXVzQTMyVTF5SXkzNHNqdmkvVnlrdGJ3OGRja0FBQUFBVmtQWUJRQUFZQXZVV3ZlU2ZKSGsyb2gzOHpqSmx6R21pRmQzMmZaeU1PSjkvRHpKcDZXVWM1Y0xBQUFBNE0wSXV3QUFBR3k0V3V0SFNUN0pPTnRjenRJQ0xscGNXSVhkSkIrbU5iN01ScmgvNTBsdWwxS2V1RlFBQUFBQXIwL1lCUUFBWUVQVld1ZHBiUzd6RWU3ZUlpM2s4c3lWWWcxbWFTMHZ0ekxPRVVkUDBrSXZXbDRBQUFBQVhvT3dDd0FBd0FhcXRkNVBhM01aRzZPSzZPMGdyZTFsYktFdkxTOEFBQUFBcjBuWUJRQUFZSVBVV3ZmUzJseXVqV3pYanBNOFNodGJCRU9ZcDRWZURrYTJYMXBlQUFBQUFGNlJzQXNBQU1DR3FMVitsTmJtc2pPU1hicElhM0Y1dlB3Y3htQTNiYnpSalJIdDAybGE0T1dweXdNQUFBRHcvWVJkQUFBQUpxN1d1cFBXNXZMK1NIWkp5SVVwR0dQbzVmTlN5bDJYQmdBQUFPQzdDYnNBQUFCTVdLMzFXcExmWkJ4dExrSXVUTkhZUWkrTEpCK1VVazVkR2dBQUFJQnZKdXdDQUFBd1ViWFcrMmxqaThiZ09NbkRDTGt3WGJ0SjdpV1pqMkJmenBQY0xhVWN1U3dBQUFBQWYwN1lCUUFBWUdKcXJYdHBiUzVqZUNoL25PUlJrak5YaGcweFQydDZHY1A5ZFpRV2VqbDNXUUFBQUFDZUUzWUJBQUNZa0JHTkxWcWtoVndXcnNyYXpKTHNmODgxWUgwT2t0eEphM3daK2w2N1hVcHh2UUVBQUFDV2hGMEFBQUFtWWlSamk4N1N4aFU5YzBWZXl0WEF5dFdta0hldmZMNmIxUVlxVHZLbjQ2UytYcjVlTFA5YklpanpLZzZUZkxpOGxrTTVUd3U4UEhFNUFBQUFBSVJkQUFBQVJxL1d1cFBXNW5KdHdOMjRTUEpsMmxnVi90UitXaEJpbnVTL0xIKzk2Z0RMdWx3R1k3N084ekRNV1l5bGV0RXNyZVhseHNENzhYa3A1YTdMQVFBQUFHdzdZUmNBQUlBUnE3WE8wNEl1ZXdQdXhyTzBOcGR0RDBCY0Jsam1TWDYwL0h4L2c0OTNzYnptZjBnTHdiellHTE9ONW1taGx5R3YrOU1rSDVSU3puMkZCQUFBQUxhVnNBc0FBTUJJMVZvUGszeVdaR2VnWFRoTDhpRGJPZkxtY3Z6UVpiQmxubUhIMkl6RldWcm81ZXZsNjdhT1E3cVo1TmFBYStJMExmQmlIQlVBQUFDd2xZUmRBQUFBUnFqV2VqL0pKd1B1d3FOczE4aWl5ekZFN3k1Zjk2M0NsN1pJQzc4c3NsM3RMN01rOTVJY0RMVDk4eVIzU3lsSGxpQUFBQUN3YllSZEFBQUFScVRXdXBQVzVuSTQwQzRzMGtZV25XejRxUlp1V2U4YXVneS9iRVB6eUR3dDlMSTcwUFkvTGFYY3Qrd0FBQUNBYlNMc0FnQUFNQkxMb012djBoNmU5M2FSMXVieWVJTlA4VzVhQzhkUEJqckgyK2dpTGZEeSt5VFBzcm10TDdPMHNVWTNCOXIrVVNubHR1VUdBQUFBYkF0aEZ3QUFnQkdvdGM3VGdpNDdBMngra2VSQmtyTU5QTFg3U1g2V0ZuTFp0ZElHZDVMa3E3VGd5eWF1dHlGYlhoWkpycGRTemkwekFBQUFZTk1KdXdBQUFBeXMxbm90eVcvU1AraXlxVzB1QWk3VHNLbkJseUZiWGhaSmJwZFNGcFlYQUFBQXNNbUVYUUFBQUFaVWF6MU04c1VBbXo1SjhuRTJKMlN3bStURENMaE0xV1h3NVRpYk0rcG9udVJYYWVHWG5zN1RHbDRFWGdBQUFJQ05KZXdDQUFBd2tGcnJSMGsrRzJEVGo1SWNiY0FwbktXRld6NU1hM05oTXp4TDh2dTA0TXNtck5GN3kzWGEwM2xhdzhzVHl3a0FBQURZUk1JdUFBQUFBNmkxZnBIa3NQTm16NUk4U0J0MU1tWHp0REZGTjZ5a2pYYVJGbmo1TXROdklMcVI1RTc2dDd6Y0xxVWNXVW9BQUFEQXBoRjJBUUFBNkd5Z29NdXp0S0RMVkVmRVhMYTQzSW94UmR0b2tlZGpqcVpxUDYzbHBYY0xrY0FMQUFBQXNIR0VYUUFBQURxcHRlNmtqUzA2N0x6cGgwa2VUL1MwN2FhTkticVIvcTBZak05Wld1amxjYVlaM0pxbE5iejBiaVg2dEpSeTMvSUJBQUFBTm9Xd0N3QUFRQWZMb012djBrYnc5SEtXNU9Na0p4TThaZk8wa011QjFjTTN1RWhySzNxVWFZNDRHbUtzMFZFcDViYWxBd0FBQUd3Q1lSY0FBSUExR3lqb010V3hSUWRwSVplNWxjTkxPazVyZTFsTWJMK0hHR3NrOEFJQUFBQnNCR0VYQUFDQU5Sb282UElveWRIRVR0V05KTGZTeGhiQjYxZ3MxLzZVUWkrenRNQkx6d1lqZ1JjQUFBQmc4b1JkQUFBQTFtU0FvTXRGV3B2THN3bWRKaUVYVm0yS29aZkQ1WDNRaThBTEFBQUFNR25DTGdBQUFHdlNPZXh5a2haME9abkk2VGxJY2lkQ0xxelAxRUl2QjJrdEw3Tk8yeE40QVFBQUFDWkwyQVVBQUdDTk9nVmVGa2srVG10MkdidDVXb1BGM09xZ2srTzAwTXZaQlBaMVA4bXYwaThFSnZBQ0FBQUFUSkt3Q3dBQXdKcXRPZkJ5bk5ib01uYTdhYTBWUWk0TTVYRmE2R1hzb2JCWmtzL1NnaTg5Q0x3QUFBQUFreVBzQWdBQTBNR2FBaThQMHg3Z2o5a3NyY25scGxYQUNGd2srVExKMFFUMjlWNlNHNTIySmZBQ0FBQUFUSXF3Q3dBQVFDY3JETHhjcEFWZGprZCt5RGZUZ2k0elY1K1JPVnZlUTg5R3ZwK0h5M3VvaDg5TEtYY3REUUFBQUdBS2hGMEFBQUE2V2tIZzVTTEozU1FuSXo3TWVaSTc2VGVHQlY3WEltME0yTm1JOS9GR1dzdExEN2RMS1VlV0JRQUFBREIyd2k0QUFBQ2R2VUhnNVN6Snh4bHYwR1dXRm5LNTRTcS9scE8wTU5QcjJvOFduZGYxS09NZWJYU1FGbmpwY1gwRlhnQUFBSURSRTNZQkFBQVl3R3NFWGs3U0dsMHVSbnBJTjlLQ0xzSVdmK29pejBNc2YxaiszdUtGLzdZdWwydHJsdWN0TysrKzhOOTQ3aXl0NVdVeDB2M2JUL0paQkY0QUFBQUFoRjBBQUFDRzhncUJsekVIWFhiVEdpZTJQVHh4dHZ6NCtzcm5pNUh2ODJVSVpqL0pYMTM1Zk5zRFM0L1RtbDdHZUwvMUNyeWNKN2xlU2xrRUFBQUFZSVNFWFFBQUFBYjBFb0dYTVFkZGJpYTVsZTBMUjF3R1dmNnd2RDZiRmdpNERNSE1rL3hvK2JxTjEzaXNMUy83YVFHei9UVnZSK0FGQUFBQUdDMWhGd0FBZ0lGOVIrRGxPTW5EakMvb3NtMXRMcGVCbHErWHJ4ZGJ1RXgzbDlmNzNlWHI3cFljOTFoYlhtWnBEUy9yRHJ5Y0pubXZsSEx1S3pVQUFBQXdKc0l1QUFBQUkvQU5nWmZqdEdhSnNkbUdOaGZobHUrM1RlR1hzYmE4OUFxOExOSWFYZ1JlQUFBQWdORVFkZ0VBQUJpSks0R1h5NGZyWXpKTGEzTTUyTkRUL3l3dDNQSnNlZjU1TlpkamozNlc5WWN2aHZJNHJXbHBiUGRsajhETFVTbmx0bVVPQUFBQWpJV3dDd0FBd0VqVVd0L0tPTU1rOHlTL3ltYTF1VnprVHdNdTJsdFc1N0wxNVNmWnZIRFVTWktQTTY1QVZLL0F5K2VsbEx1V053QUFBREFHd2k0QUFBQWpzQXk2ekRPK1FNbGgydGlpVGZFc3lWZkxWOVp2bGhaNCtUQ2IwL2h5a2Rid2NqeXk4OXdqOEhLN2xISmtXUU1BQUFCREUzWUJBQUFZMkVpRExyMGVudmR3a3VUTGFIQVoybTZTRzJtampuWTM0SGlPMDBJdkYxdDB6NTRudVY1S1dWak9BQUFBd0pDRVhRQUFBQVpXYS8zckpIODVvbDNhaExGRkYybGhoQzh6cnBFelBGOWpQMHNMdjB6WjJNWWE5UXE4dkYxS09iZU1BUUFBZ0tFSXV3QUFBQXlvMXZwT3h0VnljVFBKblFtZjBzc1dsMk9yYXhKbWFZR1hEelBkdHBlTEpBOHludEZZKzJtQmwzV0cxUmFsbFBjc1h3QUFBR0Fvd2k0QUFBQURHVm5RWlpia1hwS0RpWjdPNHlSZkpURmVaYm9PMGtJdjg0bnUvNk1rUnlQWmx4NkJsNk5TeW0zTEZnQUFBQmlDc0FzQUFNQUFhcTM3U1g0NGt0M1pUUnRidEQreDAyaFUwV2JhVHd1OVRISEUwYk8wbHBlTGtaekhkUWRlYnBkU2ppeFpBQUFBb0RkaEZ3QUFnTTVxcmJ0SjNobko3dlI0SUw1cUYya0JsOGNaUjZpQTlkaE5jaXZUQzcyY0pQazQ0d2hnelpmMzk3cWNKN2xlU3RHb0JBQUFBSFFsN0FJQUFORFJ5SUl1TjlKR0YwMkZrTXQybW1MbzVTTEozYlRneTZiZjU2ZEozaXVsbkZ1cUFBQUFRQy9DTGdBQUFKM1VXbWRKZmp5UzNUbE1DeEJNZ1pBTHlmUkNMeGRKSHFhTjJocmF6U1IzMXZqK1Qwb3BIMWlpQUFBQVFDL0NMZ0FBQUIwc2d5N3pKRytOWUhmdVpUcUJnY2RKSGtYSWhlZDIwNEliQnhQWjN3Y1pSK0JsM2ZmOTNWTEs1NVluQUFBQTBJT3dDd0FBd0pyVld0OUtDN3JNQnQ2VldaSmZMZmRsN0k3VFFpNW5WaERmWXA3VzlES1Y5ZnhnQlB2eDJSclAxM21TNjZXVWhhVUpBQUFBckp1d0N3QUF3SnJWV24rY2NRUmRQa3V5UC9MVGRaSTIrc1VEYzE3V2piVFF5KzdJOTNNTWdaZDFmeDFZcEFWZXppMUxBQUFBWUoyRVhRQUFBTmFvMXZwT2huOElQNFdneTBWYXlPWFlxdUUxMS9qTnRORExtQjB2MS9tUVk3bjJsMThQMWhYQSs3eVVjdGVTQkFBQUFOWkoyQVVBQUdCTmFxMjdTZDRaZURmMjAwWVhqYm4xNG5IYXlLSUxxNFkzdEp2a1hzWTkydWdreWQyQjEvczhMZkN5TGgrVVVwNVlqZ0FBQU1DNkNMc0FBQUNzUWExMUo4TS9jRjkzZzhPYk1yS0lkYm1SNU03STEvN1FnWmVieTNPMER1ZEozamJPQ0FBQUFGaVh2M0FLQUFBQVZxdlcrb01rZnozd2Jvdzk2UElveVM4aTZNSjZIQ2Y1bXlUUFJycC9ZN2cvSDJkOVk4TjJrbnhoR1FJQUFBRHJvdGtGQUFCZ3hXcXRQODZ3RDdISEhIUTVTZkpnK1FvOUhLU05OaHJyL1RCa3c4dHMrYlZpZjAzdmY3dVVjbVFKQWdBQUFLc203QUlBQUxCQ3RkWjNrdXdPdUF0akRybzhTbkswNVV0a2Qva3h5L09Bd1krdVhLK3J2Lzhxcmpia25DWDVQeS84L2ttR0haa3p0RmxhNE9WZ2hQczJkT0JsTjhtdjEvUTE0enpKZTZXVVU5OGRBQUFBZ0ZVU2RnRUFBRmlSV3V0dWtuY0czSVd4QmwzT2tueWM3V3B6bWVkNXNPWGR2SDZJWmRVV2FhR0tQeXl2eDltV1haZXh0cndNSFhnNVNQS3JOYjMzMDFMS2RkOGhBQUFBZ0ZVU2RnRUFBRmlCV3Vzc0xlRHcxa0M3c001MmhqZHhuT1JoTnJ0VlpILzU4ZTZWejZkbWtSYTQrTVB5ODdNTnZsNjdhWUdYK2NqMmErakF5NTBrTjlmMDNzWVpBUUFBQUNzbDdBSUFBUENHYXExdnBUMDRIeXBvTWt0cmRCbFR5T0lpTGVSeXZJR1hmSDk1dmQ4ZCtMcXYwMWxhNk9YcmJHNzQ1VERKclpIdDA3TzBGcVNoL0hwTlgwZk9rN3hkU2puM0hRTUFBQUJZQldFWEFBQ0FOMVJyM1UveXc0RTJQOGFneTBtU0I5bWM4VGl6dERFdjd5NWZaMXU0ekMvREw3OVBDMlJzaW5uYStKNHhYZFBqNWYwemhIVTJSRDBwcFh6Z093WUFBQUN3Q3NJdUFBQUFiNkRXK3BkSi9ucWd6WTh4NkxJcFk0dDIwNEl0UDhzMHh4S3QyN004RDc1TS9WcVA5VDRhS3ZCeWtCWUFXb2NQU2lsUDNENEFBQURBbXhKMkFRQUFlRTIxMWg4aytYR1N0d2JhaFh0SmJvem9sRHpJdE1jV3paYm5VOERsMVd4SzhHVnM5OVBESkk4MzdGeWNKbm5QT0NNQUFBRGdUUW03QUFBQXZLWmE2enpKemtDYkg5T0QrWXNrZHpQZHNVVTNrdndrcmRHQ04xc0h6NUo4bFRieWFLcHI0ZDZJOW1lb0FOa3NiWnpSN2hyZSs5TlN5bjIzQ3dBQUFQQW1oRjBBQUFCZVE2MzFoeG11L1dOTUQrUlBrbnljNUd4aWwzQTN5WWZMY3ptem9sZnVMTW1YYVVHTnFiVzk3S2VOTlJyTHV2aEZoZ21TN2FjRlh0Ymh2VkxLd20wQ0FBQUF2QzVoRndBQWdGZFVhNTBsbVdlWThVVUhTWDQxa2xQeExLMTVZa3BoaG5sYXlFV0xTei9IU1I1bFdvR28zZVY5Tm9aeFZrTTJKeDBtdWJXRzkzMWFTcm51MWdBQUFBQmVsN0FMQUFEQUs2cTEvampEdEQ2TXFYSGlPQzNvTWhVMzBoN2E3MXJCZzFta2hWNm0wdWd4Vzk1dll3aThuS1FGWG9ZSWx2MTZUZWZnZGlubHlHMEJBQUFBdkE1aEZ3QUFnRmRRYTkxTHNqZkFwbWRwRDUzSEVOWjRtT1R4QkM3WExLM0JSY2hsWEJaSnZrb0xURTNCdmJTdzFOQ2VwWTBNNjIxZDQ0eE8wOFlabmJzbEFBQUFnRmNsN0FJQUFQQ1NsdU9MZmp6UTVqOUxHOEV6dEFlWlJramhNRzFjMGN6S0hhMnp0S2FYS2F5bnNRUmVIcWVGellhNG45WXh6dWpUVXNwOXR3SUFBQUR3cW9SZEFBQUFYbEt0ZFo1a1o0Qk4zMGx5YytERHYwaDd5RDcyWUlKeFJkTXpsZkZHTjVmMzR0Q0dDcHl0YTV6UjI2V1VVN2NCQUFBQThDcUVYUUFBQUY1Q3JmV0hXYytEM3U5ekk2MVZZa2dYU2U0bU9SbnhKVHBJQ3lJSXVVelhJaTFRTmVaMXRzMzM0enl0WVdyVmprb3B0eTEvQUFBQTRGVUl1d0FBQUh5UFd1c1Awc1lYdmRWNTAvdHBENWVISE1VejlxRExmbHJJWlc2bGJvemp0TkRMeFVqM2J3eUJsNVBsZmRuN0hLMnJaZXA2S2VXcHBROEFBQUM4TEdFWEFBQ0E3MUZyL2Vza2Y5bDVzN08wb012K2dJYys1cURMTEcxYzBVMHJkQ05kcEkwMmVqelMvUnRENE9WWmtvOEh1TzkrbmRVM0tEMHRwVnkzN0FFQUFJQ1g5UmRPQVFBQXdMZXJ0ZTZrZjlBbGFRMEtnaTdmN0NESjMwWFFaWlBObHZmQXJ6UE8xcDdqSkE5R2NCL2NIT0Ryd3NNMXZPKzFXdXY3bGowQUFBRHdzalM3QUFBQWZJdGE2MXRwNDR0KzBIblRRN2RHakRYb3NyczhMMFlXYlovSGFVMHZZeHR0TklhR2wxOE1jSzkrdG9iNzhMU1U4cmFsRGdBQUFMd016UzRBQUFEZjdvZnBIM1RaVFd1MEdNcFlneTQzTTk2V0Q3YjMrbytoNGVWZVdoTk9UK3M0NXIxYTY2R2xEZ0FBQUx3TXpTNEFBQURmb05iNmc3UldsN2M2Yi9yWEdYWjgwZDBraXhGZENtMHV2R2lNTFM5RE43dzh6bnJHQzMyWHd5UzNWdnllMmwwQUFBQ0FsNkxaQlFBQTRKdjlNUDJETG9jWk51anlJT01LdWh4RW13dC83ckxsWlg5RSszUzgvQmp5bkJ4MDN1YmpKR2NyZmsvdExnQUFBTUJMMGV3Q0FBRHdMV3F0dTJrUDFIdUVYdVpKUGh2d2NCOWsySWYxVjgzU1JqbmRzQXI1SG8rU0hJMW9mKzROdUc0dmt2eE4ramJlcktQUlJyc0xBQUFBOEwwMHV3QUFBSHlMVXNwWmtuOUljcnJtVGMweS9BaVVzUVJkOXROQ1A0SXV2SXhieS9VeUc4bitETm1PTk1UWGtlTTFISzkyRndBQUFPQjdDYnNBQUFCOGgxTEtmNVpTVHROQ0wvKzZwczNjU3JJNzBDRWVKM2s0a3ROOUl5MjRzRy9sOFFybVNmNXVST3ZtNHlRbkEyMzdJUDNIR1QxYXczdCtZbGtEQUFBQTMwWFlCUUFBNENXVVV2NmpsUEpQYVMwRy83SEN0NTRudVRuUVlaMWtQRUdYZTh1UG1kWEdhNWdsK1hYRzBRaDBrUlo0dVJqd1h1cDVIeTJTUEZ2eGUycDNBUUFBQUw1VGNRb0FBQUJlWGEzMWgwbjJrcnoxQm05eitZQitpRmFYc3lTL3lIQVA1SytlQTIwdXJOSngyamlob2UwdjcrOGhQRXNMM1BTeW05YXVzMHFucFpTM0xXY0FBQURnbTJoMkFRQUFlQTJsbEg5SkcyMzBMMi93TmpjelROQmw2T2FKUzVkaEFFRVhWdW5HY2wwTjNSSjBrdUZDTjczSEdaMmxoWXhXU2JzTEFBQUE4SzJFWFFBQUFGNVRLZVUvU3lrblNmNVhrdk5YL0wvdko3azEwSzQvVEhzUVA2UjVXcVBMcnBYRUd1eG5ISTFCeDBrZUQ3VHRPK2tiK0htMGh2Zjh4RklHQUFBQXZvbXdDd0FBd0JzcXBWeVVVaFpKL2luSmY3emsvKzNPUUx2N09LdHZZSGhWTjlLQ0NET3JoelVhUytEbFlaTEZBTnZkVGQ5QTNWbFdIM2pacTdXK2J5a0RBQUFBTHhKMkFRQUFXSkZTeXIrV1V2NGh5V21TLy95Ty8rbk50R2FUM2hacEQ5NkhkRFBKUGF1RlRtWnBnWmVEZ2ZkanFMRmhOOU0zN1BONERjZjVTOHNZQUFBQWVKR3dDd0FBd0lxVlVrNlQvRU5hMDhHTFpobG1mTkZGMmdQM0lkM0xjSTAyYks5WmtsK2xOUW9ONVNMSjNZRzJmYWZ6Y1g2NTR2ZThWbXU5WmhrREFBQUFWd203QUFBQXJFRXA1VDlMS2YrYzFxWnlmdVUvM2NrdzQzdUdhcGE0ZEMvRGhnMWc2RFY0a21HYWxlYWRqM3NkN1M2M0xGOEFBQURnS21FWEFBQ0FOU3FsbkpkU0ZrbitPV1NHOXNBQUFDQUFTVVJCVk1rUE04ekQ5a2Rwb1p1aENMb3dGa092eGNjRDNZczlRM2JyYUhjNXJMWHVXYjRBQUFEQUpXRVhBQUNBRGtvcFowbit4d0NiWGlRNUd2RFFCVjBZbTZIWDVCQXRTN01rTnp0dTcvRWEzdlBRMGdVQUFBQXVDYnNBQUFCMFVHczlUSEt0ODJZdmtqd1k4TEFGWFJpcklkZm1VUGZsclNTN0hZL3hlTVh2K1V2TEZnQUFBTGdrN0FJQUFOREhKd05zODJHU3M0R09WOUNGc1J0eWpUN0xldHBQdnMrZGp0dDZ0T0wzMjFtR0JnRUFBQUR5bGxNQUFBQ3dYclhXKzBuMk9tLzJXVmJmclBDeURpUG84cktlSmpsUDh2V1ZYMTg2TDZVc3ZtTmRYYnZ5eTUwazgrWG5QMzNoMTN5N2U4dlhJZTZWUjBrTzBxOXRKY3Z0emRQR202M2IyZks4cnZKcndTOHo3RmcyQUFBQVlDU0tVd0FBQUxBK3RkYWRKSDlNQ3gvMGNwSGtiNWF2dmQzSTh3QUJ6NTJtQlF5K1RndTBMRW9wNXgzVzMxNWF1R0dlNU4yMFVWbzdMc2VmM1M5M2s1d01zTzE1a3M4NmIzT3hQTjRlOXBQOGVzWHYrZDUzaGNBQUFBQ0E3U0RzQWdBQXNFYkxWcGZlSTR3K1RtdDI2VTNRNWJsRldxamw3NU04N1JGc2VZVTF1WmNXZXZucDhuWFA1Um8wOEhJbnljM08yN3liUHUwdVNRdnpyTEpsNktpVWN0dVNCUUFBZ08wbTdBSUFBTEFtQTdXNlBFc0x1L1Mybi9aUWU3YkZsL3hKa3QrbWhWdE9KN1JPNTJtaGwxdlo3dEZIWjBsK2tmNk5TTE8wOXBPZTQ0eE9sc2ZhdzBHU1g2M3cvYzZUdkQybUFCa0FBQURRMzE4NEJRQUFBR3Z6VWZxUEwzbzR3SEh1Wm51RExrK1MzRTd5WDBzcEg1UlNqcVlVZEVtU1VzcWlsUEo1S2VXOUpHK25iK3ZIbUZ5dTQ5NHVranpvdk0zOXRDYW1IcDZsQllsV1pTZkorNzY5QUFBQXdIWVRkZ0VBQUZpRFphdkxMenR2OWxGVysxRDVaY3pTV2h1MktlaHltdVRUdEhhSnk0RExSclJNbEZKT3J3UmYza3Z5ZVZxVHhyYll6ekNqdUJicFAzcnNWc2R0ZlRuaGZRY0FBQUJHU05nRkFBQmdQWHEzdXB3a2VUekFjZDVKQ3doc2c2ZEpQaWlsdkYxS3VUKzFCcGRYdFd4OHVadlc5bkk3TGVTekRXNGt1VG5BZGgrbTd3aWwzZlJyZHpsZThiRmRxN1h1K1RZREFBQUEyMHZZQlFBQVlNVUdhblVaWW56UnpmUjdXRDZrbzdRV2wrdWxsQ2ZidHA1TEtlZkw5cHEzazF4UEMvMXN1anRKNXAyM2VaYld6dFJUcjRhVWk2eSt1ZWJRZHhzQUFBRFlYc0l1QUFBQXE5ZTcxZVU0YlF4S1QvTzBRTUFtTzBvTHVkemU5QmFYbDFWS2VWcEt1Wjd0Q0wwTU1aN3JjZnFPSXR0TnYxQ1BVVVlBQUFEQXlnaTdBQUFBck5BQXJTNFg2ZC9xTWtzTEFteXFvd2k1ZktjdENiME10YzRmZE41ZXI5REl5ZkpqVmZacXJYTjNJd0FBQUd3bllSY0FBSURWNnQzcThtVmE0S1duSVJvdmVuaWE1THFReTh1N0VucTVuV1FUejlrOC9jZmxMTkszcVdtZTZiYTcvTkpkQ0FBQUFOdEoyQVVBQUdDMWVvN1dPRXRySWVucE1QMGVqUGR5bnVSMktlVjZLZVdwSmZ6cVNpbEhTZDVMOHVtRzN0TzkxM3p2ZHBjUE8yM25XVlliem52ZjNRY0FBQURiU2RnRkFBQmdSV3F0aDBuMk9tN3lVZWREM0UvZk1FOFBSMmtqaTQ2czREZFRTamt2cGR4UDhuWTJiN1RSdmZSdE16cExjdHh4ZXdkSmRqdHM1eUl0OExJcU83VldnUmNBQUFEWVFzSXVBQUFBcTlOenBFYnZoK0d6dEFmK20rSTB6MGNXblZ1NnExTktPVjJPTnJxYjFwcXpDWFlIV1A4UDAzZEVXYThnMjFjcmZyK2Z1K3NBQUFCZyt3aTdBQUFBckVDdDlWcjZqanJwUGVia1ZscXp5eVk0U3ZLZWtVWHJWVXI1UEcyMDBhYWM1NFBsUnk4WFNiN3NmSHc5Mm1zV2FXRzlWZEhzQWdBQUFGdEkyQVVBQUdBMWVvNzNXU3cvZXBrbnVia0IxK2c4eVFmYVhQcTUwdkx5NllZY1V1OXhSby9UcjkxbGx1UkdwMjBaWlFRQUFBQzhFV0VYQUFDQU4xUnIzVXR5MkhHVGp6b2Y0aWFNTDFxa3RiazhzV0w3SzZYY1QzSTkweDlyMUh1Y1YrOTJsdzg3YldmVngyU1VFUUFBQUd3WllSY0FBSUEzZDloeFc3MWJYUTZUN0U3OCtod2x1VjVLT2JWVWg3TWNHL1YyNS9XN0RnZnBPN0tzWjd2TGJxZGpPMHR5c3NMM3UrWU9Bd0FBZ08waTdBSUFBUERtZW80dzZ0bnFzdHY1Mk5iaHJyRkY0MUZLT1MrbHZKY1dRSnF5bnVPTWVyZTcvS3pUZHI1YTRYdnQxVnJuN2pBQUFBRFlIc0l1QUFBQWI2RFcrbjZTdlU2YjY5M3FNdVh4UmVkSlBpaWxmRzZWams4cDVYYVN1eE0raE4wa056dHVyMmU3eTQzMENmSThXL0g3M1hKbkFRQUF3UFlRZGdFQUFIZ3pQUit3ZnRWeFc3MUh0YXpTZWRyWW9pZVc1M2d0ZzBpM0ozN3Y5eHJ4ZFpIa3VPT3gzZWl3RGFPTUFBQUFnTmNtN0FJQUFQQ2FhcTA3U2Q3dnRMbXo5SHZZUFV0eVo2S1g1VExvc3JCQ3g2K1VjcFRrZytWMW02S2U3VWM5UnhsOTJHazdxd3p3eld1dGUrNHFBQUFBMkE3Q0xnQUFBSy92c09PMkhuWGMxczMwYTZ4WXBVV1N0d1ZkcG1YWndITTkwd3k4ek5PdkFhbG40RzAzeVg2SDdheDZsTkUxZHhRQUFBQnNCMkVYQUFDQTE5ZHJoTkZGVnY5UStOdk0wcS9WWVpVV2FZMHU1NWJsOUN3RFNyZVhhMzFxZXJZZzlXeDMrVm1IYlp3dFAxYmw1KzRtQUFBQTJBNXZPUVh3YXBhMXlGYy9McjJiWk9mS3J4ZEovdjNLcjU4bVNTbmxxYk1JQUxBeGZ5N3MxZWh3bkg0aGdEdHBnWmNwMllpZ3k1V2ZOWFplV0Zzdi9xeHhtdVIvdjNEODUwa1dVejBIdGRaM2xzZHdOOGxuRTF1RCswbHVwRS9yeXNueWV2ZjQybk1qeWNNTzIzbVcxaWExQ3RkOGR3SUFBSUR0VUp3QytIYTExbm5hWDVhOW05WFdVNStuL1FYbDN5OWZuL29YcUFBQWsvdXo0djBrbjNUYTNOOWt0ZTBIMzJZM3lkOU43RktjcHdWZEZoTmJQMWQvMXRqTDZoN1NYLzZzc1VqeTlmSm5qZE9SbjR0MzhxZGpzK1pwZ1pjcE9WdmVwejNjU0hLdjA3WSt6dnBicFZaOXZkOHp5Z3dBQUFBMm43QUxYRkZyM1VueWZscjE4Ylg4NmIrZVhMZEZXdnZMYjdXL0FBQk00cytPZjh5Zk52MnR5N08wQjg0OTNFdDdrRDRWa3dtNkRQeXp4dW1WbnpXZWpPeTh2QmgwdWRRejBMRXFEOUtuM1NWSi9tZjZ0TjhjTDQ5clNzZnphU25sdnU5U0FBQUFzTm1FWGRoNkwveWw4L3NqMmEzekpFK1MvSzEva1FZQU1Nby9RODZUL0dPbnpmVm9Wa2ltMmVveTZnYUhrZjZza2VYUEdvK0dEcjU4UjlEbDBzMjBzVnBUMGJQZDVVNVdOL3JudTF3aytlOGR0clBLb04zVFVzcDEzNmtBQUFCZ3MvMkZVOEMycXJYT2E2MWZKUGxqa2k4eXJyOTgza2x5bU9RZmE2MS9yTFYrdFB5TGNnQUF4cUhYbngzUDBpZm9raVMzSm5ZTmJvODE2SExsWjQxL0crSFBHcGZyOXplMTFuK3J0WDVXYTkwYjRCeDlYOUFsU1I2blgxUEtLdXltWHpQU2w1MjJNMHR5MEdFN1g2L3d2YTc1RmdVQUFBQ2JUOWlGclZOcnZWWnIvVjNhdjhROVROLzY4TmV4bHphLy9JKzExdnREL0VVMEFBQi81dWVkdHRNcjZOTHpJZjBxZkY1S09Scmh6eHJ2di9Denh0anRKUGxvK2JQR0Y3WFdhNTNPMDhzRVhTNDlTQnY1T2hXOVFtTm5IYy9MVHpwc1k3SGlOWFl0QUFBQXdFWVRkbUZyWEFtNS9DN1QvSmRlTzBrK1NmdUw2TTgwdlFBQURQYm55cjBrODA2YjY5WGVNS1ZXbDZlbGxMc2ovRm5qajBsK2srbTJTaHdtK1YydDlYZkxNVjNyT2xldkVuUzU5SEZhdUdNS2VnYkh2dXEwblI3TkxtZEpUbGI0ZmxPOUR3RUFBSUNYSk96Q3hxdTE3dFZhZjVQcGhseSt5ZVcvdnJ6dkNnTUFkTmRySk0xSitqemduMlU2clM3blNUNFkwYzhhVndQMWV4dXl2cStsalZQOVl0V3RrcThaZEVtU2k3VEF5MVQwQ284OVc1NmJIbDhqOWp0c1o1WHRMai8xclFvQUFBQTJtN0FMRzIwWkJ2bkg5SHNnMGROT2trOXFyWDlVMFF3QS80Kzl1d2VSNU16VFJmKzhnNHlCSTlnY1dEZ3lGaWFibFhFOGxlQjZaMEhaMW82bmFzNDYxMUsyY2ExcnFOdGFhK2x1anJWV3Q0eTFxOXE2MTloRGwrQWFjNnpPQmkyTXNkQWxHR09NWHBRRFkvUUJ3ZVpDSDVBaGVLOFJVZXBTVFg5VVZVWkVSbWIrZnREMGpLVEt5UGhIdkZIeDhjVC9oVUVOTllYUlVGMWQvbTZMYW4rcmxMSWF3WFhHcE5aNmxOMEsxRjgwVHhONnVkOVJ6YTRiZERueklzay9iVW50UHNvdzNaOWVaYmlwenY1MmdHVjgyK0ZudVVZR0FBQ0FIU2Zzd2s2cXRSN1VXcCtubWZabjE2ZjdtYVpwTjI1cUl3Q0Evczh6SnhudUllcFFEN0gvMjVhVS8wRXBaVEdDZmVBd3lYZHB3aUM3N2l4Zy8zeWRxWTA2Q0xxYytlZDAyLzJqVDBOMWQvbVhnWll6UkhqbnRPT3hlaEFBQUFCZ1p3bTdzSE5xclhmU2RIUFp0eHRiZDlLOGVUbXpGd0FBOUdhb2M2MmhwaWY1VFpvcFNzYnV0SlJ5ZjhQWEdaTjJldFFuMmYxQS9VVUh1V2FYbHc2RExtZitZYUN4MFVYTlB0cWhZOFhIQTZ6UHF6UWRmTGJ0ZUEwQUFBQnNnTEFMTytQY3plZUhlMXlHYVpvdUwvZnRFUUFBdlJocUNxT2h1alZzUTFlWFZaSmJHNzdXT01qdVRvOTZGZmRxclU4djIxR3loNkJMMGdRaS9uRkw2alhVK0JxcUM5UzJkWGY1eEs4c0FBQUEyRjNDTHV5RTl1YnowN2o1Zk9aZXJmV0phWTBBQURvM0cyZzVRenk4L3JqOU0zWmZsVktXRzd6V21LY0p1a3p0L2orTmdlL2VOMFZNVDBHWDgrUGpteTJvMVc4R1dzNVE0Ymdod2lQZmJ1SHhHZ0FBQU5nQVlSZTIzcm1naS9tNGYrNHdUWmNYZ1JjQWdJNlVVbTRrdVpua1VicnRRSERlVU5PU2JFTlhsNDFPWDFScmZaamt5SjcvWnlacHBqV2F2NlZ1ZlFaZHp2eFR4aitkMFljWkp2QXkxREhqYjRZWTh4MSsxdFQxTUFBQUFPd3VZUmUyMnJtM0xOM0Flck9EWE9LdFN3QUFMcStVc2lpbDNDMmxmSnJrVjJtbTJEbE9zdXhvRWQ4T3RDcC9zd1hsdnJ2QmE0MmpKSGZzOGU5MFZHdTljNkZ1UXdSZGt1Umxrc2RiVUtPL0hXZzVRM1M2K1REOWQ0TjYxVzdiTHErSkFRQUFnQjBrN01MV2FvTXUzcko4djBtYURpOXU4Z0VBZEt5VXNpcWxuSlJTYnJkZFgyNGt1WjNrSk1ucW1oODd4RVByMzZSNWNEMW14NldVeFFhdU15YTExdWRKNXZid1MzbllCb09HRExxYytlY2tMMFplbjRPQmF2THRnT3ZUdHk2N3U4d01VUUFBQU5oTndpNXNKVUdYS3hONEFRQVlRQ2xsV1VvNUxxWGNLcVg4S3NtblNSNGtXVnp5STE2azI2NEdiL05mUjE3S1ZUYlExYVdkOHNRVXFWYzNyN1UreWJCQmx6UC90QVgxR2FLTDBqY0RyY3NuQXl6ajM3YnMrd0lBQUFBYklPekMxaEYwdVRhQkZ3Q0FnWlZTVGtzcDkwc3BOMHNwSmMyVVI0L3k5czRGcHdOOHJROHovaW1NdmlxbHJJWmNvS0RMMmc2VC9QMEdsbnM2MExoWngzOGJZQm12QnFyREVPT2p5MjQ5VTBNVEFBQUFkcE93QzF1bERXbzhWSWxyT3d1OFRKVUNBR0I0N1pSSGQwc3BueWI1VlpvcGo0NlRMTnYvNUY4RytCcGpEN29zMHdTQ2huWVVRWmQxL1NhYm1mN3BIMGRlbDQrU2ZEekFjb2FZeXVqRDlOL0JwOHZRampFTkFBQUFPMHJZaGEzUkJqU2VwZ2xzY0gyVEpFL2FOMWNCQU5pUVVzcXFuZkxvZGlubFJwb3BqNGJvekREMktZd2ViS0NyeTFHYXppU3M3NHMwb1pjaHZVenkyNUhYNVc5Ny92eFZrdjkzb0hYWnF1NHV0ZGFaWVFrQUFBQzdSOWlGcmRBR001NUUwS1VyQjIwOUFRQVlqMWNETEdQc1V4Z3RTeW5IQTE5cjNNbG11cEhzc3IvUDhCMDFIbS9CTlZqWHg0cy9KZmw5a20vYUtkTitteWIwMHJlL0htQVpwaklDQUFBQTNrblloVzN4TU5vUGQyMVdhNzJ2REFBQW96RkVzSHZzVXhnOUdISmhiY2NIMDZUMjQ3K24vK2x1emh0N2Q1ZVAxNnpIaiswNi9pSEo3MG9wLzFwS2VWRksrYjZVOHVPNS8yNHh3TG9NY1czK3Z6cjhyS25oQ0FBQUFMdEgySVhScTdYTzQwM0x2dHpUMGhrQVlCVG52QitrNmJyU3R6RlBZYlFhc3F0TE8wMnFib2Y5K1RCTjRHVklZKy91Y3RXdzJmZHBPcHo4YXlubG0xTEtIMG9wTDBzcFA3empaNTROc0I0ZkQ3Q01McWQwKzh4d0JBQUFnTjBqN01Lb3RUZWd2V25acnlmdE5GRUFBR3pPVU9kalkrNlcrTlhBeXp1S2FWTDc5bkdTLzN2QTViMU10eUdKcm4zeW5uLy9Lc2t5eVdrcFpWRksrWDBwNVUrbGxLdE1jYmJZa1dPSmFZd0FBQUNBZHhKMlllemNnTzdmcEswekFBQ2JQU2ZyMjBHRzZSNXpYWStHV2xBN25lZk1iamVJdjh1d0lhc3hkM2U1Mk5ubGh5Ui9Tdkw3Sk4rMFV4TXRTeW1yNnk2Z2xESlUyS2Z2N2k2djJqOWRtQnFHQUFBQXNIdUVYUml0ZHZxaW1Vb000ckRXZXFnTUFNQ0l6Z1VQYXEzN05NWE1FQ0dVTVhkMU9WN25BZjhWOTYxcGtudEcyYUQrUHNNRnJVN1RkSGdacTRNa2Ywanl1MUxLNzBvcEwwb3AzNWRTZnV4d0dZc0IxdU0vRDdDTUZ4Mk8rd1BERUFBQUFIYUxzQXVqMUU2clkvcWlZVDAwblJFQU1KSnp3WG1TcDltdkRuOURyT3NuSTE3L0lidHg2R280dkkvU2RIZ1p5djhZY1MxK1hVcDVXVXI1b2NkbFBCdGdQVDRlWUJsZFRtWGtXaGNBQUFCMmpMQUxZM1V2YmtZTmJacmtqaklBQUp0VWE3MlRQWnZLc3RZNlZNZUxzWFkyV0paU0ZnUFZlaDdkSXpmbGl6U2hseUg4ZHNSMUdHTC9HMklxb3lHT0ovOTd5K29PQUFBQURFalloZEZwMjRvTFhXekd2YmIrQUFDYk9BODh5bjUyOTl2M0tZeStHbWovMGoxeTgvNStvT1c4U3ZMTlNHdHdNRUJIemRPQjF1V2pMVnFQdnpEOEFBQUFZTGNJdXpCRzk1UkEvUUdBL1ZGcm5kUmFueWVaNzJrSjlqM3NjakxRY3U1RTk4aE5PeGh3WC95Zkk2OURiMG9weXlTckFkYWo3N0RMcXowNUJnSUFBQURYSU96Q3FMUmRSZVlxc1ZGejNWMEFnQUhQL3c2U1BNMStQNGdjSXV6eXlValgvYlI5TU4vM2ZqWko4cVVSTndwZkRMU2NiOUp0V0tKTHN5SEcxZ0RMNlB1NC9jSndBUUFBQU41RzJJV3gwVlhFZGdBQTlrU3RkUlpCbDJTWWJpTWZqM1RkSHcrMEhGMWR4bVBJN2k1am5jcm9zd0dXTVVUWTVUOE5zSXlYSFgzT3pOQURBQUNBM1NMc3dtam82aklxdXJzQUFIMmYrODNUQkYwbWUxNkhYdzZ3bUk4elRQZVk2emdab01hNnVvelBVTjFkdmgzcCtnOFI5dm5qUU1lV3ZyMDBYQUFBQUlBM0VYWmhUT1pLWUhzQUFMdXYxdm93eVpGS0pFbUdDTHQ4Tk5KMUgyUUtvL2E4VmxlWGNSbXF1OHRZTzd0TUJuaTVZSWpPTGtNY1d6cWJpcXJ0SmdZQUFBRHNDR0VYeHVRTEpSZ1ZiNzhDQUoycXRVNXFyVS9TVENsRFk1K25NRm80cjkxcmZ6dkFNbDVsbU5ESGRmUWQ5dG1Wc011L0dTb0FBQURBbXdpN01BcTExc01rVTVVWWxVazd2UUFBUUJmbmU1TTAweFlkcXNiUGZEREFNajRaNmJwLzdUcGpyLzBtdzB5dnRaZFRHWlZTVmtsV0E2ekhSMXUwenprV0FBQUF3QTRSZG1Fc1BsY0Myd1VBMkUyMTFvTWszMldZYVV1MnpSQVArMGY1TUxxVXNuQSt1L2QrTThBeXh0clo1Wk1kV2ZlUHRtZ2Rwb1ljQUFBQTdBNWhGOGJDRzc0ajNTN3RXOWdBQU5mU2RvcDdtbUdtNjlsR1EzUjJHV1BZWlRIQXZqZEpNcmVMamRvUVV4bU5OZXd5SFdBWk9yc0FBQUFBTzB2WWhZMXJXNHQ3K0RGZWdrZ0F3SFhQOCs0a09YS3U5MDU5ZDNZWmF6ZWRaODVqU2ZKeGhnbExqREh3TXNUWUhHSUtwNzYzMzhzT1Arc1RRdzRBQUFCMmg3QUxZL0NaRXRnK0FNQnVxYlVlSlhtb0V1K3MwUkJkWFQ0YzZlb1BFVDR3aGRGMitKc0Jsdkh0U0k4QjA1NFhzZHFCL2FQTHNJdmdKUUFBQU93UVlSZkd3QnVYdGc4QXNDTnFyWk5hNi9PWVB1WXloZ2lpZkR6U2RSOGk3REt6aTIyRi96ckFNbDZNZE4ybk96RE9kRXNCQUFBQU5rTFloWTFxMzJTYnFzU29UV3F0QjhvQUFGemkzTzRneWZPTWQrcWNmZlNmUnZpZFZxV1VaYy83NGl5Nk9HeUxJWTRYTDBlNjdxNkZoOTEramdrQUFBQ3dRNFJkMkRRUFFyYkRUQWtBZ0hkcHd3VlA0K0h0VlF6eDRIV01uVjEwZFdIbzY4Szk3T3hTU2xuc3lQN3hja3YyTXdBQUFHQkF3aTVzMm1kS1lEc0JBTnV0MWpwUEUzVHgxanlYTVVUWXhmbnJkam5Za2YzdXF2N0N0Z01BQUFDNG5nK1VnQTF6WTh4MkFnQzJXSzMxS01sY0paekhYY0YvT0gvbGdrOEdXTVlyNHhNQUFBQmdkK2pzd3FhNXViY2Rwa29BQUp4WGE1M1VXcDlFMEdVZCs5b0paOUh6dmptTkxrUGJab2pwdHY3TmVOdGFMd3dSQUFBQTRDSmhGemFtMWpxSm05RGJ0TDFtcWdBQXRPY0YwelRURmgycXhxaDl1S2ZyTFZDL25mdHEzL3Vyemk3YmU2ejUzeDMrL25KOEFBQUFnQjBoN01JbXVjbTBYUVNUQUlDekI0WFBuY3R0aFkvSCtLVktLUXZYR1d4Z2Z4MWpkNUNKYmFmbUFBQUF3UFVJdTdCSmJqSnRGdzhOQUdEUDFWcm5hVHE2T0k5anpINnRCRnZwWXlYb3hVb0pBQUFBZ0YwazdNSW1DVThBQUd5Sld1djlKRWNSZE9uU1B0WnlPY0F5cG5hdHJkVDNWRGd2OXJTdTM5cTFBQUFBZ0YwazdBSmMxaWRLQUFEN3FkWjZsT1NlU3RDQjVRRExFTWphVHYrNTU4OS9OZExqcTVkQUFBQUFBSzdoQXlVQUxzbERBd0RZTTdYV1NacHBpenlNM1U0SDFwc3Q4cEhyTE43aWxSSUFBQUFBRituc3dpYnBGQUlBTUZKdHQ0SG5FUndBWUxOZUtBRUFBQUJ3a2JBTG0rUU5OZ0NBRWFxMXp0SjBkSm1xQnJCRFhpb0JBQUFBd0c0UWRnRUFBSDVTYTUybkNib0lKdE9IbFJLd1FjSXVBQUFBQUR2aUF5VUFBQUNTcE5aNmxHU3VFdlRvV3lWZ2czNmY4UVd1Qk1BQUFBQUFya0hZQlFBQTlseXRkWkxrU1pLWmFneW5sTExvZWJ2YW52QnovMUJLV1NvREFBQUF3UFl6alJHYjVBMDJBSUFOcTdWTzAweGJORk1OQnZDSkVnQUFBQUFBNnhKMllaTzBNQWNBMktCYTYwR1M1MGtPVklPQlRKU0FEZnBCQ1FBQUFBQjJnN0FMY0ZsTEpRQ0EzVkZybmFjSnVnZ2ZBUHRDMkFVQUFBQmdSd2k3QUpmMVJ5VUFnTjFRYTcyZjVFZ2xkdDdLZWdNN1FQY3hBQUFBNE04SXU3QkpDeVVBQUJoT3JYVlNhejFLY2s4MTlzS3A5V2FMbU9ZV0FBQUFnRXY3UUFuWUlHOWNicGVGRWdEQTlxcTFUcEk4alRmazJTejdINXYwb3hJQUFBQUE3QWFkWGRpWVVvbzNMcmVMY0JJQWJLbGE2MEdTNXhFMFlQTW1BeXpqbVRKdnBSY0RYSU8rMnNPNmZtYlhBZ0FBQUhhUnNBdWJ0bFNDN1NDY0JBRGJxZFo2bUthankxUTFHTWsrMlhmZ1JVaDdPNzFTQXRzT0FBQUE0TEtFWGRnMEFZcnRzRkFDQU5nK3RkWjVraWNacHBzR0kxTktHZXM1WE44ZGhseGp1RFo4RTRHTS9yellvdSs2dExrQUFBQmdOd2k3c0duZktzRlc4TUFBQUxaTXJmVW95WkZLTUVKOWg2K2N1MjZmbHdNczQwZmpiV3Y5ZFZjZlZFcFpHbTRBQUFDd0c0UmQyTFNGRW15Rlowb0FBTnVoMWpxcHRUNU5NbGNOTXM0cGZYcnQ3RkpLV1VYM2htMHpSRUJwWHp1N0hPekFPbnhvaUFBQUFBQVhDYnV3VVNOdXJjN1AyVTRBc0FWcXJkTWtUNVBNVklQV0dMdWMvTnI1S3hmODJ3REwrRUdaZTJGNktBQUFBR0FqaEYwWWc0VVNqTnBwKzNZc0FEQml0ZGFESk0rekcyL3hzOXVHMkVkTmw3cGwxeHdETEdQdlFobHRBTEp2TCt5K0FBQUF3Q1lJdXpBR1h5dkJxQzJVQUFER3JkWTZUeE4wbWFnR0Y0eHhPc29od2k0bk52M1dlSlZoQWhQNzJJRmt1aVByOGJGcld3QUFBT0FpWVJmR3dJM29jWHVzQkFBd1hyWFdoMG1PVklJdDIyOTdEYnlVVXBaSmxpcTlGYjRaWUJrL2xGSitWT3BldkJ4Z0dSOHFNd0FBQUhDUnNBc2IxOTZJUGxXSlVWcVdVbXdiQUJpaFd1dWsxbnFVNUk1cThBNkxrWDR2M1YwNE04U1VVNi8ydExhekFaYnh2K3pDQUFBQXdDWUl1ekFXdW9mWUxnREFKZFZhSjBtZUpwbXJCdSt4R3VuMytzeTVMSzBoT3J1OFV1YXQ5WEdIbitWRkRnQUFBTmdod2k2TWhiY3V4K2xZQ1FCZ1hOcnBYNzdMTUoweDJISWo3dEkzRzJqZGwvYUNVZnR0aGdtaXJQYTB2a09FeXZvK3huUTVoZEYvR0hJQUFBQ3dPNFJkR0lWMktpT0JsM0ZadE5zRkFCaUpXdXRobW80dUU5WGdDc1lZZUpuV1dxY0RMTWMxeHJqOXkwRFhtL3NhZHRtRjN4VWZHaVlBQUFEQW13aTdNQ1pmS1lIdEFRQzhXYTMxVHBJbkVYVGg2cFlqL1Y0ejU3Ujc3V1dHbWNKb3RjYzFIcUlEMkl1ZVA3L0xhWXdXaGgwQUFBRHNEbUVYUnFPVXNvZzI0Mk94TEtWNEN4WUFScUxXZXBUa29VcHdUZCtPOUh2MVBzVksyNmx3WVJjWXBmODUwSEsrMzlQZkc5T0JGdlhLcmd3QUFBQnNnckFMWS9OQUNXd0hBS0JSYTUzVVdwOG1tYXNHYTFpTTlIc2RPcmZkYS84ODBITDJ0YlBMZElCbHZCaGdHWjkwK0ZsTHd3NEFBQUIyaDdBTG8xSktPWTRiVUp1MmJMY0RBTEJCdGRhREpFOHp6RlF2N0xiVGtYNnZTYnVmOTMyTnNYQ05NVHEvelRBZFFYNG9wZXhyNTVFaGZuZHNWVzNiVGs4QUFBREFqaEIyWVl5OGVibFpkNVVBQURiclhORGxRRFZZVnlsbGxmR0dQYjV3amJHWEhnKzBuTy8zdU1hL0htQVpRMHlSMXRYdndaVmhCd0FBQUx0RjJJWFJhYnVLTEZSaUl4YWxsQk5sQUlETnFiWE9renhQTWxFTnVqelBHK24zR21RcUl4MGtSK1czU1Y0T3RLeVhlMXpuQS9YOW1WTkREd0FBQUhhTHNBdGo1YzNMemREVkJRQTJxTmI2TU1tUlN0Q0RiMGY2dmFaRFRHWFV1bTAzMkxoWEdhNnJ5ejVQWVpUc1J0aWx5M1hRMlFVQUFBQjJqTEFMbzFSS1dTUTVWb2xCUFNxbGVOc05BRGFnMWpxcHRSNGx1YU1hOUdReDR1LzI1WURYR0F1N3drYjlqd3pYRFdSdnB6Q3F0YzRHV3RTTG5qLy93dzQvNjF2RER3QUFBSGFMc0F0amRqZmV2aHJLTXJycEFNQkcxRm9uU1o0bW1hc0dmV2xEeldNOXR6NXN4OEZRMXhoc3hzc2svenpnOHY2MHg3VWVxcXRMMzUxelB1N3dzOXhiQUFBQWdCMGo3TUpvbFZKVzBXcDhLTGZiZWdNQUEycW5iL2t1d3p5WWhNVkl2OWNreWVGQTF4aW5FZkxlbEg5Sy8rR0lNNnRTeWc5N1hPdFBCbGpHRUIxNi9yckR6OUxGRkFBQUFIYU1zQXVqVmtvNWllbU0rdmFnYmVrT0FBeW8xanBQMDlGbG9ob001Tm1Jdjl1WEF5N3JVWnJPaGd6bm0vYlBVRjd1ZWIySENGQU9NUzNRUngxK2xqRVBBQUFBTzBiWWhXMXdOOTdDNnN1aWxISmZHUUJnV0xYV08wbU9JdWpDc0U1Ry9OME9hcTJ6SVJiVWRqUzhaWGNZektzay96amc4bjRvcGV4dDJLV2RFbXlJc011TEFaYnhjWWZqZm1rb0FnQUF3RzRSZG1IMHprMW5aSnFkYnJuSkR3QWJVR3M5U3ZKUUpkakFlZlV5NCs1dThNV0F0VENkMFhEK0ljTk5YNVRvNmpJYmFEbDloMTArN3ZDekZvWWhBQUFBN0I1aEY3WkNlelA2dGtwMFpwWGtaaHNrQWdBR1VHdWQxRnFmSjVtckJoczA1dTR1ODFycmRNQnJqUHZ4RUx4dmp6TnNsODRmay94cHoydisyUURMZUpYK1EwV21NQUlBQUFEZVNkaUZyVkZLT1luQVMxZHV0d0VpQUdBQXRkYURKRTh6ek5RUzhDNWZqL3o3M1J0NGViZmlRWGhmVHBNY0Q3ek1QNVZTZnR6enVzOEdXTVpXVFdHVTVJK0dJd0FBQU93ZVlSZTJTaW5sT01QZk1OMDF0OXZnRUFBd2dGcnJMSUl1ak9kOGVwRnhUdzg2ZEhlWHM2azlkVHpzMW9zMDB4Y05hZSs3dXRSYUp3UDlydmwyZ0dWODB1Rm5lZEVEQUFBQWRwQ3dDMXVubEhJN0FpL1hkYnNOREFFQUE2aTF6dE1FWFNhcXdZaU1QZmc4YUhjWFU2WjI3bFdTZjJ6L0hwS3VMc04wZFVtRzZlelM1VFJHd2k0QUFBQ3dnNFJkMkVvQ0w5Y2k2QUlBQTZxMVBreHlwQktNME5pbk1ocTB1MHQ3ZldISzFHNjhTbkkzdzRRaHp0djdyaTZ0endaYVR0L2hrUS9UWWRpbGxMSzBhd0FBQU1EdUVYWmhhd204WEltZ0N3QU1wTlk2cWJVK1NYSkhOUmpwZWZSSitzeGJ2Z0FBSUFCSlJFRlV4ajl0ejhNTjFPVTRBaS9yMkZUUUpkSFY1Y3poQU10NGtmNjc5blE1RmRQQ2JnRUFBQUM3U2RpRnJkWUdYdTZxeEZ1dGt0d1VkQUdBWWRSYUoybW1MVHBVRFVadTdPZUhoN1hXZzZFWEt2QnliWnNNdXZ3UVhWM1Nka09hRHJDb0lhWUUrbmpMdmk4QUFBQ3dBY0l1YkwxU3lxTTBONlJYcXZFenl6UkJsNFZTQUVELzJnZnozNlhiTjlLaEw0KzM0RHgySXcrcEJWNnViSk5CbHlSNW9hdExrdUZDbHQ4T3NJeFB0dXo3QWdBQUFCc2c3TUpPYUc5STMweHpZNXprSk1tbm0zcEFBQUQ3cHRZNlQ5UFJaYUlhYk1uNTgra0l6NTFYU2U2V1VtNXNPckI5THZBaVVQOXVtdzY2ckVvcDM5c01TWkl2QmxxT3ppNEFBQURBS0FpN3NEUGFHL2FmcGdsNjdMTzdwWlJicFJRMzVnRmdBTFhXTzBtT0l1akM5dmxxUk4vbFVaSWJiZGZHc1Z4ZkhLY0oxRHV2ZnJNWFNmN1BiQzdva2lSL3NCbCtta0x2WUtCdC9xcm5aWHljNU1PTzd4TUFBQUFBTzBqWWhaMVNTbG1WVW01bFA5L0NQRTNUemVXUlBRRUFobEZyUFVyeVVDWFlVc2NqK0E2TDloejI3aGpEMnUyRDhodlJIZUtpMzZicDZQSnFnOTloV1VyNXdhWklNdHdVUnY5Zmt0K2xDUmw5bjZTUDZhTzZETzBzN0JvQUFBQ3d1NFJkMkVudFc1ajcwdVZsbGVSQktjVzBSUUF3a0ZycnBOYjZQTWxjTmRqaWMrWlZOaGQ0V1NhNVZVcTVPZlp6MkRaUS8ybWE3alA3N2xXU2Yyei9iRExvOHFxVXNyUTVmdkw1UU10NVZrcjVvWlR5c3BUeSsxTEtOMG4rdFIzUFhZWFYvcnJENyt2NkdBQUFBSFpZVVFKMlhhMzFNTTBiMTlNZFhMMlROTk1XTFcxcEFCanMzT0lneVpNZFBiY1ltMFVwNWFZeTlMNC9QeDl3a2Fza1g1VlM3bTlwdldacHBpM2J4L0gvSXNrL0pIazVndS95cjZXVVYwYndUMU1ZL2ZzUXl5cWxsRXQ4bjc5TU02M2ZKTmVianVqL1NmSlJSMS81VmlubHhGNENBQUFBdTBsbkYzWmVLZVdrbEhJalRadnRYWm5hYUpIa1ppbmxscUFMQUF5bmZkRDlOSUl1N002NThtbUdtK3JqT00yVVJmZTN1RjZMTkIwazk2bkx5NnNrajVQOFh4bEgwT1dGb012UEREV0YwY2tseDhqM3BaUVhwWlIvVGZKTm1pbVBYaWE1ekpSVEg2VzdvRXVpc3dzQUFBRHNOR0VYOWtZcDVWR1NHMGtlWkh0REw0czBJWmViN1kxMkFHQWd0ZFo1bXFETFJEWFlNWThIT29lOXZRdEI3WFphbzd0SmJtYjNINlova3lia2NqeVM3L045S2VWUGh1elBmRG5RY3I2K3hsajVzWjN5NkErbGxOOGwrVjJhRGtIZkovbnhEVDl5ME9IM1hYb3hCQUFBQUhhYmFZellXKzBEcXkvVDdRMjF2aHluYWZmdXpUUUEyTnk1dzlNa001VVlsR21NaHR1L3YwdjNIWXVXU1I2VVVvNTN0R1lmSlBrLzBuVFcrQ0xkZHFUWXRCZEovaW5qQ3ZQOGtHYjZvaCtOMkovMndXbVM3d1phM0kydXd5UHRGRXpuLy96M0pIL1QxVFYwS2VXMnZRUUFBQUIyMXdkS3dMNXFiN29mMTFvUDBvUmVEak91TjdWUGszeVY1S1NVc3JMRkFBRG8wWU1rUngxLzNxTWRQNC85cXlTL1RQTGJOQjFRL2k3SjMyYTdReTh2MDNUNitlMEl2OXZ2QlYzK3pIeW9hOU0rdXFTMHg0ZFY4bE40ck1zWFVaN1pQUUFBQUdDMzZld0M1OVJhRDVOOGxpYjRNdDNBVjFpa2FROTlvdVV5QUl6dVBFRm5sdzJjRytuc010aitQVW5USVdMZDhQZEprcnU3Zmk1YmEvMWxtcTR1YjNxQjVEZlp2azR2cDJsQ0xtUHRKUG1IVXNwTEkvWFA5c00rT2pLOXlkMTJXdUErMStVZ3lmTU9QL0pUblZFQkFBQmd0K25zQXVlVVVrN1MzcUJ2VzBMUDBvUmZEdEw5ZEVlck5EZVRuNlY1a0xPd0JRQUEyTkI1OEtyVytsV1NlOWY4aU5NMEQ4VDM1WngyK283cjZkKzJmdzdTZEhyNXpValg0Vlg3UGY5SG1vNHVZL1VuUVpjLzE3Nm9NUjFvY1NjRExHUFc1Ylcyb0FzQUFBRHNQcDFkNEFyYXQ4MG1lWDBqN3BOYzd1M1gweVQva1dUWi9qazFOUkVBYk4xNWdNNHV3OVBaWmRoOS9EcmRYVlpwUWk3SGUxYW5xd1RoUDB6eU4wbithL3YzSnIxS00rWFN2N1IvajkzTFVzb2ZqTTQzN29kUDBuUWs3ZHRwS2VYVExmc2RlMXhLdVcwdkFRQUFnTjJtc3d0Y3dibTN3eGFxQVFEQWpwM3JYclc3eTZNa0QvWXd4UDN4RmYvN3N3NHF2MjMvLzkra0NjMGZYT096cnVNMHliZHB3aTB2dHFqT3I3YnMrdzZtN1VKNk9ORGlIZyt3UHVkZktPbkNNM3NKQUFBQTdENWhGd0FBQUpJa3BaVDd0ZFl2OHU3cFVSWkpicGRTbHZ0V24xcnJSMms2dGF6am0veThxOHBaNk9VL3QzOS8xUDY1cWhkcEFpTGZwcG1XNkVXMk55enlLazFIa1IrTnlqZWFEN2lzSWFZdzZqcTRzN0NMQUFBQXdPNFRkZ0VBQU9DOEIwbU8zdkRQbDJsQ0xvdDlMRXF0OVlQMDA0bmx0UDN6SnUrYkxta1h1NThJdXJ6Zmx3TXQ1M1NnVU50bkhYN1djaCtEZUFBQUFMQ1BoRjBBQUFENFNTbmx1Tlo2TDYrN3U2eVNmRlZLdWIvbnBmbXJEVnhEbis1WmpRVmQzcVBXT2s4eUdXaHhqd2RhVHBlZFhVN3NKUUFBQUxBZmZxRUVBQUFBWEhDNy9mczR5WTE5RDdyVVduK1pkMC90eFBvRVhTN255d0dYZFR6QTJEcE10K0dkWjNZUkFBQUEyQTg2dXdBQUFQQXpwWlJGcmZXRzZVQis4ckVTOUVyUTVSSnFyYk84ZjJxcnJweVVVbFlETE9mempvOWRPcnNBQUFEQW5oQjJBUUFBNE04SXVqUnFyWk1rZjZrU3ZWa2wrYjJneTZYY0czQlpwakFDQUFBQVJrM1lCUUFBQU43dXZ5aEJiMTZXVXY2Z0RPL1hkbldaRGJTNDVSQWRVbnFZd3VocmV3b0FBQURzRDJFWEFBQUFlSU5hNjE4bCthVks5T0pGS2VWUHluQnBYdzY0cktHNnVuemU4ZWN0N0NZQUFBQ3dQNFJkQUFBQTRJSmE2d2RKcGlyUnVSL1RURnUwVW9wTDc0dlRkRHZkei9zY0Q3U2NMdGZwMU5SckFBQUFzRitFWFFBQUFPRFBUVjB6ZCs1Vm1xRExEMHB4SlE4SFhOYkpFS0dSSHFZd2VtdzNBUUFBZ1AzaXhoMEFBQUNjVTJ2OVpaSy9Vb2xPL2FtVThrSVpycnd2empKc1Y1ZXZCbHBPMTFNWW5kaGJBQUFBWUw4SXV3QUFBTURQL1JjbDZNd1BTZjVnMnFKcnV6ZmdzcGFsbEVYZkM2bTFUcExNTy94SVV4Z0JBQURBSGhKMkFRQUFnRmF0OVMvVDdmUXErK3hsa2hlbGxCK1Y0bHI3NGl6SmJNQkZQaGhvT1YxM3FqR0ZFUUFBQU93aFlSY0FBQUI0N1dNbFdKdHVMdDBZc3F2TEtzTk5CZlJseDU5bkNpTUFBQURZUThJdUFBQUFrS1RXT2szeVM1Vll5ekxKbjNSeldYdGZuR2ZZcmk1ZkRSRk9hc2ZZUVljZmFRb2pBQUFBMkZQQ0xnQUFBTkJZdFg5TVkzUjEzNmVac3VnSHBWaFByWFdTWWJ1NkpNbWpnWmJUZFZjWFV4Z0JBQURBbmhKMkFRQUFnQ1J0WjR2VFd1dEhTYWJSNWVVeVZrbVdwaXpxMU5CaHErTUJ0OSs4NDg4emhSRUFBQURzcVY4b0FRQUFBTHhXU25sWlN2bGRrajhrMGFua3pWWnBwcEE1RlhUcGZQOWJKdmsweVlPMnpuMTdNTVI2dFZNemRSbmtXWmpDQ0FBQUFQYVhzQXNBQUFDOHdZWFF5eXNWU1NMa010Uyt0eXFsM0U4VGV1bXplOG54Z0lHUkx6citQRk1ZQVFBQXdCNHJTZ0FBQU85WGEzMmFaS1lTZzFxVVVtNHFBeU02RGt5U2ZOVCsyU2MvSnZrK3pYUkZPdDFzWnQrYkpYbVk1S0Rqajc0eFJOaWwxanBOOGwySEg3bHF2N3ZBRlFBQUFPeXBENVFBQUFBQTNxOTlzTDZxdFM3ek92VHl5eDFlNVZkSi9wVGsrMUxLai9hQWplNTdpeVNmdGxNQlBVdzMwd0VOMmRYbFhzZWZkeUxvQWdBQUFQdE5aeGNBQUxnRW5WMDJRbWNYdHVIWThHR2EwTXRmWmplQ0x6OGtlWm5rcFM0dW85M25Ka251WlAwQXlWQmRYU1pwdXJwTU92elltMjBBQ0FBQUFOaFRPcnNBQUFEQU5aVlNYaVY1a2VURnVlRExKTW1IVzdRYXF6VFRGSDB2NExJVis5d3F5ZjFhNjNHU28xd3ZpRGxrVjVjNzZUYm9zaFIwQVFBQUFJUmRBQUFBb0FQbmdpK3B0ZjR5elFQK3MrRExtTUl2cXpSVEZLMlNyRXhSdExYNzJ6TEp6VnJyTEUzb1pYcUZIMzh3NEZmOW91UFArOHJXQndBQUFJUmRBQUFBb0dOdGg1U1g3Wi9VV2o5SUUzaVpwSm51NkN3TTA3ZFZtcW1KWGlWNTFYWUZZYmYydFVXU0c3WFdzNm1OM3JkZlBSaXFxMHV0ZFo2cmhYQXU0OWhXQndBQUFJb1NBQURBKzlWYW4rWjZVMFZ3Zll0U3lrMWxZTWVQTFdmQmw3TXdUUEk2REhOWnI1S2NkV2M1QzdPODByRmxML2VuU1pLSFNlWnYrVTlXU1c0TUZYcXF0WDZYYnNNdXg2V1UyN1kwQUFBQW9MTUxBQUFBYkVqYkFlYUg5djkrcnlLc3VUK3RrdHl1dFg2Vkp2UXl1L0NmZkRWZzBHV1c3cnU2UExhVkFRQUFnQ1Q1aFJJQUFBQUE3STVTeW1uYkdldFdrbVg3ajVlbGxQc0RmbzE3SFgvZWFUdGxFd0FBQUlET0xnQUFBQUM3cUpSeWt1U2sxbm8veWVsUXkyMjd1c3c2L3RpdmJGRUFBQURnakxBTEFBQUF3QTRidUtOTDBuMVhsMVVwNWRpV0JBQUFBTTZZeGdnQUFBQ0FUdWpxQWdBQUFBeEIyQVVBQUFDQXJ0enI0VE1mS1NzQUFBQnduckFMQUFBQUFHdnJxYXZMY1NsbHBib0FBQURBZVI4b0FRQmNYWHNqLzh4QmtzbUYvK1N6amhlNVRQTEhDLzlzY2Y3ZmwxS1d0Z3dBQUJ2VVIxZVhCOG9LQUFBQVhDVHNBZ0RuMUZxblNjNy8rWXMwWVphays3ZFUxM1h2d25jLys1K25TVmJ0bjIvYnYwK1RyRW9wcDdZeUFBQTluRWZQMGs5WGw2WHFBZ0FBQUJjSnV3Q3dkMnF0a3pRQmxvTWt2MjcvbnJaL2RzSEJ1Zjk5ZUdIZGs5ZmhsMldhYmpHTDZBd0RBTUI2K3VqcThsaFpBUUFBZ0RjUmRnRmdwOVZhejBJdG4rUjF3R1d5NTJXWjVPZHYzZDVyYTVXMHdaYzBIV0ZPU3lrTGV4RUFBTzg1NTU2bis2NHVDK2VpQUFBQXdOc0l1d0N3TTlvcGlHWjVIV3lacWNxVnpTN1VOR202d0p3bWVaWW1BR01xSkFBQXp1dWpxOHNEWlFVQUFBRGVSdGdGZ0szVmRtMlpKZm1zL1h1aUtyMDQ2NGd6Yit1K1N0TUI1bG1hTjI2Rlh3QUE5dmVjL0g2Nm53NVVWeGNBQUFEZ25ZUmRBTmdhNXpxM2ZCN2hsazJhSkRscy81eUZYMDd5T3Z5eVZDSUFnTDA0UDU4aytiS0hqOWJWQllCTi80NmJwZ2x6enRKTTk3d1V4QVFBR0JkaEY4WjhRWEVRRDdLSHROS2RnWkVlQzJacHdpMkg2ZjZOVWJveFNkUDFaZDV1czlNMG5WOGVPNjRBTUxMemlrbWFibVVNWnlrSXU5UHU5WERkdnJHdUxoMGNJMDVMS1N1N0JjQldueThldHIvZkR0N3c3ODVlOXJucmVNOGVqNUhaZFg5V1lBeUFyaFVsWU1RblRVL1RKT2NaeHFLVWNsTVpHTW40UDh6cmdJdlEyM1picHUzNlVrbzVVWTY5R2NQMzA5d2NCRGJ2UVNubHZqTDhkSHlhSlhtcUV2WkJPaGxQQjBtZTkvRFJOemNZZGxuM0dISFRReHlBcmYyOU5rbHlsTGFMN1h1c2t0eDJuNE05SFN2MXVqOWJTdkZNRW9CTy9VSUpBQmpKaGRKaHJmVkplOEgwSkUyWEVFR1g3VGROY2lmSmsxcnJ2OWRhSDdZUFJnQUEyRzRQZS9qTWhiQUlsN2gybktvQ0dQYzllSkxMQlYyUzVuN1ZrL1psTFFBQU5rVFlCWUNOcWJYT2FxMUh0ZFovejlWdUtyQ2RKbW1DTDg5cnJkL1ZXdSs3VVEwQXNKWG44WWZwcHhQclhkWGxQZnZlL1RTZEY0RDkrcDN6dk9kbDNML203N1VqOXpVQUFEWkgyQVdBUWRWYXAyM0k0YnMwTGNMbjBjRmxIMDNUVEhQelhhMzFhYTExcmlRQUFGdHhQajlKUDExZGprc3BweXJNMi9hN1d1dFJUSlVKK3piMjc2UjVPV3JTNHpJbVNiNjg1bzlQSEpjQUFEWkgyQVdBUVp4TlU1VGt1L1pHd0ZSVmFNM1N2QTMxNzdxOUFBQ01YbC9uOGcrVWxyZGNTMDd5K2tVSllIL0cvbEg2Q1ZkZU5NOTZZUnBkaWdFQU5rVFlCWURldEcvZm5YVnhNVTBSNzNQMlJ0UjM3ZlJXTXlVQkFCalYrZjFCbW1rcHUvYW9sTEpVWWQ2eXp6MVBjcUFhc0RmamZsSnJIVExnOXRtYVB6OXgvd0lBWURPRVhRRG9YRHRWMFZGMGNlSDY1a21ldGxNY0NVa0JBSXpEVVErZnVZcXVMcno1dXZJd1RVY1gxNU93UCtQK29CMzNzd0VYMjhVVVNRSjVBQUFiSU93Q1FHZHFyYk56SVpkNWVweFRtYjB4Uy9LazF2cGRyWFd1SEFBQUd6dlh2NU4rSHVaOVZVcFpxVEJ2Mk4rZXVLYUV2UnIzc3pSQmwyME1qamhXQVFCc2dMQUxBR3RyUXk1UFl4NTErak5OY2lUMEFnQ3drZlA5YVpxT2pWMWJsbEx1cXpBWDlyZWpKQTlWQXZacTNNL1QzRlBhMXRESXFhMElBREE4WVJjQXJ1MUN5R1dtSWd4Z210ZWhGL3NjQU1Bd2p0TFBBOGk3U3N1NTY4dEplMzA1VnczWXE3SC9NUDFNazNkWnB5UDVEQUFBcmtqWUJZQXJxN1ZPaFZ6WXNHbVNwN1hXcDBJdkFBQzludnZmNmVtY2YxRktPVkZoMnYzc3dQVWw3TjI0bjlSYW55UzVzK0d2OHZXYVAzOWFTbG5hb2dBQXd4TjJBZURTMnBETFVaTHY0aVlrNHpCTEUzbzVhdHZyQXdEUTRmbC8rcG0rS0VsdXF6RHRmbllXZERsUURkaWJjVDlweC8zaHByOUxLV1dSWkxIR1J6eXdSUUVBTmtQWUJZRDNhdCsydVova2ViU1VacHptU1o2Myt5a0FBTjNvYS9xaUI5NkNwNzNXbkxmWG1SUFZnTDBaOXdkcFhxSWFVOER0YnBMVk5YN3VXSmN5QUlETkVYWUI0SjFxcllkcGJqN2VpeHVRak5za3liMWE2M2VtTmdJQVdQczY0SDc2NmVhNFRQSkloYW0xUGt3VHFBTDJaOXpQMDNSMEdkWDlwVkxLYWE0ZWVGbTBQd01Bd0lZSXV3RHdSdTJVUlUrVFBFa3lWUkcyeURTdnB6WVMwQUlBdVBxMXdFSDZtNzdvYmlsbHBjcDd2NC9Oa3R4UkNkZzdmWFVNVzFzcDVUakp6YngvU3FOVm1nNWxOLzArQXdEWXJBK1VBSUNMMnJjNHY0eE9MbXkzZVpMRFd1dHRiWVVCQUM1OUxUQkpmOTAyVHB5WEFUQldiWWVYbTIwZzcvUDhmS3FsVlpKbmFhWXVFbklCQUJnQllSY0FmdEsrd1htVWNjMmJET3VZSkhsU2F6MUpjdHNOS1FDQTkzclkwL1hBS3FaN0FHQUxsRklXZVgrSEZ3QUFOc3cwUmdBaythbWJ5L01JdXJDYkRwTThiOS9PQWdEZ3pkY0VoMm02NC9YaFFTbGxxY29BQUFCQUY0UmRBUFpjcmZXZzF2bzh5VDNWWU1kTmt6eHRnMTBBQVB6OHVtQ2EvcVl2V3BSU0hxa3lBQUFBMEJWaEY0QTlWbXVkSjNrYTNWellML2RxcmMvYkJ6b0FBRFNlcEprQ3NnK21Md0lBQUFBNjlZRVNBT3lmV3Vza3pWdWJoNnJCbmpwSU02M1JyWFl1YmdDQWZiNCtPRXAvQWZnSHBaUlRWZDdJTmQrczNhNmY1TStEVE1za2YweHltdVRVRkZPZDF2NmdyZnMweWEvYnZ5ODZUZklmdTFiL2RyODdmeXhaalczOHQ5dG4xbTZiTngzM25pVlp0ZHRsc1FVMW43YnJjWkRrTDk1eExEKy96eTBkbDNmcWVITzJEN3p0ZUhOMnZGKzIrL1hwanRWZ2RtNU1YMXovVlpKdnQybmRML3dPZWRlWWZ0Yit2V2pIdE4vakFPd2xZUmVBL2J3UWZ2S1dDMkRZSjVNMDB4cmQxVllmQU5qajY0TjVrbmxQSDM5YVNybXZ5cGZhQnRlNVBsdVdVbzR2Zk5aaGtpOXl4UmNiYXEzTEpDZEp2dXJpZ2RrbDF1blhhM3o4OUJwVGt4NzMrU0N3cmZ2bmJkMHYweUZwOW9iNkw1SThIaUpnc2NiVXJtL2I1OTY2N3JYV3RPdjJkYnNkVnBmOGp0TTFqazAvMjk3blB1dUxTNHkxMllYdmZwTGs2NHZyUFlKanhtZFgyTi9ldE0rdHptMlhrOHR1bC9kOHI5bkY1V3g0djExY2RqeXRjUnp1L2ZoeTRYdE8ydTMrZVZ2cnlUVStvL050My9mK2NmRmNvcjIzK2VVbHg4RGhoWFUvR2VwWWU0MXRlcFhmM1dlMXZIZmg5OGpYcFpRVFoxY0E3SXVpQkl4VnJmVnBueGRJdlBFQzhLWXk3UHk0bWlkNW1QN2FrOE8yT2s1eWQ2aWJQSHR3ckxtZjlvWUxzSEVQUEdqKzJmRnBsbVlLUit5RDVLZUhSVTk3dWo1WUpmbDBtOTQwN3VBWWNmTTZEOC9XdVAveDAzVjgrOTJQMHMxTERZdDI3QzdXcU9YWTd1bmM3UHJCWnZ1QThrNmFCNjVkanFGbGtxOXloV0RJTmI1N3ZlNitzZVkrdDJyWDdkSDcxbTNOOFhpemxMSm90OUc5ZGp0MWNVeTcxSGZ2YVp0TjIzMXQzc014ZTlWZUU2OFZkaHZoZGVDbHowSFdQR2JkN0RzNGNTN2NNZS9oNDgrQ2puMnZ3N1gzajFKS09UY09IcWFiVHRYTGRoODUzdUE1eHhjOWJkTmxrc2Q5SGEvVytCM3kwN1lFZ0s3OFFna0E5a090OVdHYUcxR0NMdkRuNW1tNnZCZ2ZBTUMrWEI5TTBuUjg3T3Y4NTRHVytzTnN4L1phNzJtNjY5NDVhOCtOSHpvL2Ztdk43eWY1THMyRDI2NXJORTN6TVBkNSs4TEtXTzh2WEdlZk93dWZQRzBmM3ZmNUhXZEpucWVib012NTcvNjgvZXloeC9oMzdicjBNU2JQZ2x2ZnJkSDFoMzYyLzdRTjRqeFBmMTNZRHRzeCtYVElmZnNhdFppM2RlaHFTdlpwa3FOMnZhY0RiOU1uN1RHMHIyMDZiWTlYMzQzMTl3Z0FkRVhZQldEM0w0d243WVh4SGRXQWR6cEljK1B5UUNrQWdEM1E1OVNtQzlORURtS1M1bUZaWDlkNmR6SkFLR0hMcnE5bmFSNjI5aEZ5dVdpYTF3OWlKeU9xd1ZFSCs5eFpWNm0rZkpGdUEyQVh0OHZUSVVJaFBRUjJMdU5lcmRWMThlYkgyZm1RMDJ5Z3hjN2FmZnRvYkVISDlyalQxd3Q4c3d3VUxxeTEza20zZ1ozTG5DY2MxVnFmQ0s4Q3NLdUVYUUIyKytMNDdBYlNURFhnVXFaeFF4OEEyUDNyaEljOVhpT3NrdHhTNVVFY3RILzZYb2J6NC93MEJVZGZBWXAzbWFWNU8zOE0yMkNXN2pvUjlQbmdkVDVBTGU2MUQrRDcydC9tRzlyZmpQdk5IMnZPN3VWdDZxVzFlWHZNbVkyb0xIMlA2Yk5ReUx6SDdYcVV6VTB0ZjlhOVoycUVBYkJyaEYwQWR2L2kyTTBKdUpwSmV4TmdyaFFBd0E1ZUo4elQ3d08wMjZXVWxVcnY1UG54d1I2UG02TTAzVncydVEyZXUwWVpuWGtmZ1pkMk94K05ZTnpyOExLWjM5Rmp1SmUzci9kRmVnbTh0TWVKVGRmeXJKdXhEaThBN0JSaEY0RGR2amgyQVFQWDAvdGJQUUFBRzdoT21LWGZCNmlQU2lrbktyMno1OGQ3T1EzQ1NCNVNubkdOTWo3ekxyZkpTSUl1NStud010eXg1bXpiaitrNGU5Um5CNk9ST3VweW54L1o3NUN6RUpQN3hRRHNER0VYQUJmSHdOdTVtUXdBN01wMXdrR1NKejB1NGpUSkE1WGVhZE0wVXpEczA3Z1owMFBLODljb3dnZmo4ckNMNlVIYTdUcTJZTUZraE45cEY0ODE4eEhYZWI2SGdaZE93cDIxMWpzai9CMXlrTTEyS2dPQVRnbTdBTGc0QnQ1TjRBVUEyUGJyaExPSGxYMEY0bGN4ZmRHK21MY2RndlpoM056UCtCNVNudkZtL3JoMEZRaDVNdEwxTzJqSEEvMGNhdzR6L250NTh6MjdMekxObWxNK3RnRzRzUVpFNyt6TDczSUFkcCt3QzhEdVhCelBJK2dDZlJGNEFRQzI5VHBoa21hSzB6NDdRZHd0cFp5cTl0NjR0d2ZqWmpieTlaeGt2TUdJZlRWYjUrRnhHeWFaam5qOXZoU3c2dVZZTThadVBtOXp0R2NCaVhYMytiRnZWOTFkQU5nSndpNEF1M0Z4L0RDQ0x0QTNnUmNBWUJzOVRMOUJsK05TeXJFeTc1WFpMai93YkI5dVB0bVM3ZUQ2WkZ6dXJiSFBmVG55ZFp0a3pVNFh2TkcyVFVQK1pJOUNUOWZlNTl2ZmtXUC9QVG5UM1FXQVhTRHNBckRsMnB0YmJqakFNSTdhRnNNQUFOdHdyWENVZnFkaE9VMXlWNlgzMGhjN3ZHNzNzajBQbngvcXRqRXFzM2Jxa3FzNjNKSjk3Z3VidU5QZjBmZlRieGkxRDVPTWQycWVNZTN6MnpKV3ZqUVNBZGgySHlnQndGWmZHTStqb3dzTTdhald1dFNxSHdBWStiWEN3L1FiZEZrbHVWVktXYW4yWGpwTWNuc0h4ODAwM2I1TWNwcms2L1ovTDlOTVUvTVhhZDc0NytJaDkxbm5nZnQyeVZHTmpVZFgvSmt1SGppdmtwd2tlZGJ1YStjZEpQa2s2NGRxcHJYV1dTbGxZVE4zY3F6WjFxREJ2TmI2ZUUvMmd5dnY4MjBBc1l2enIrVzVNWDN4WEd0MmJreXZkYnlxdFU2Y3l3R3d6WVJkQUxiM3duZ2VRUmZZaEVtU3A3WFdtd0l2QU1DSXJ4WDY3djU0dTVTeVZPMVJPazN5dVAxN1dVcFp0bE1WVE5POGJUN3I0cHk0MW5wWVNqblpzZHJkNitoekhxU1o0bXY1am5FNmJaYzNYM05aWDBiWTVUTE93aUJmSjFtVlVoYnROcGdtK2J6ZERsMTBWL2tpVndpN3RBL0dEenJZM3g2OTQ0SDFvbDNXM1RSZE9kYlo1ejQvK3p6V1B0WjAyYzFuMlc2WGkyR25hVjZISXFZZGYvOU43d2ZMQzJQNnROWjZjR0ZNZCtHcSsveTZ2Mk5YU2U2K1o0ckl4Ym5mSTAvV1BJYk0yam9Dd0ZZU2RnSFlRb0l1c0hHVE5ITlZmK29OR0FCZ0Q2OFZIdXhneUdFWG5IWGJXVno4RitmKzJYRWJmRG5LK2c4K1A4dmJINURkemJzZjVCN2srbE5oWEdmNnJOTkxqSjFwMW44NGVwb21DUGJlNWJWQm1OdTExc2RwSGxaZTk4SDNwTlk2ZjgrRDBiNmREMWdscjd2WVROdjlaSlp1SDdSZjFYR2FoOGVyTjJ5RFpaSkZyZlZCbWdmNDZ3WUZENjdZS1dHMjV2SSt2ZXhMR08xM3VsMXJ6UnI3K3NGNzZyeDR6ODgvWFdOZGIxN3h2MStPOVBkMEY4ZWE4K3Y0NEJMai8yNTc3TCtYYmdLUHN3MTMrYmxiU25uMGhuMzh0RDBPbmJSaitxaUQ5YjNxejMrMjV2YThlZGt3Y1J0bXZkbU9xK3NHWHQ3MXV4d0FSay9ZQldETHRHOHBDTHJBNWszVDNGRDRWQ2tBZ0pGY0s4d0h1Rlk0S2FYY1YrM1JXU1c1Y1prSDdHMUhpMCtUUE05NkFZU0RkeXpqOUQzNzZscnIydE1EMW5Xbmd6aE44NUR5U21INGRudWNQYXk4YnVEbDh6UkJnNkdkcG5uby9LYnRzV3ovUG02MytXR2FMalN6Z2Ivakd4K0t2MkU3ck5JRUF2Nlk2d2V4em8rTnhicmo2SkxyZHAxdW8zZHovYkRGN0IwMVhPWTlBWk4xeHY0T1Rac3o3K2h6SHBWUzdsNnhmb3RhNjUwTzl2R2s2V0swaVcxeTZ6S0IyM1ovdkZscmZiTG04ZjJnNS8vKzRyb3Ryemd1Vm0zWHBxY0RyUjhBak1vdmxBQmdlN1JCbDZjcUFhTnhVR3NWUGdNQXhuQ3RNRS8vUVpmVEpMZFZlNVN1RkxJNDYvQ3c1akpuTzFiREw5ZjQyVld1RVhRNXR6MnUwNjNtdk1OMk9wd2hIWmRTUHIxc0FLR1VjbEpLdWRtdTUxRGRNVTh1RTNTNThEMGZaZjBIK0ZkNWVIemRMaENycTY3YmhmRi83WFZzTzVOd2ZWOTA4Qm0zcnhKMGVjTSszc1h2OHZrR2pqdlg2U3gzTzJ0MitXbTc0dlF4L2k4ZXIwNnZ1VTNYT1dZWnp3QnNOV0VYZ0MzUlhrQ3UwOW9ZNk1lOGZUTUtBR0JUMXdyejlCOTBPWnNpeHhTTzQzTjhuUWRrN2NPeFkrWDc2ZUg5ZEkyUHVMdnUyR2luSVZtdThSR0hBNVpzVVVxNWZjMzFmSlNtTyticEFOL3p1Z0dpZFlNQVE5eTNPZG5nZDV3NmFsejdXSFBRUWYwZXJEdHRXZnZ6WFFSZWhqenVMSy9UV2E0OU5qOFljTHhjZDJ3OTI5QnVhVHdEc05WTVl3U3dQWjY2QUlIUmVsaHJYVnozTFJ3QWdEVjlPY0F5Ymw2MXRUNkQrV3FObi8wNmEweXBVV3VkN2NqVUl1czhzRjJ0KytENW5NZEo3bDN6WnovTGNPR2x0UjZTdDhlU3ZxZURQYjd1TWF1VXNxeTFudWI2SFJxdTBxM2xicTczY0h5NXhyZzlpS2xMdHZGWWt5U25YVTBsV0VvNXJyVit2dVozR3ZLNHM4N3Z1cE0wVXpkZE40aHlrTXNIekc1ZWQ5dXVNYWE5Z0FYQTNoSjJBZGdDN1RRcGJrVEF1RDJ0dGQ3d3RqTUFzQUUzMDRUais3cG11QzNVTzFyTGRiWk5LZVdrMXFxSzE1OUtKa2xPcnpqRnhidXNjeTB4RzZoV3gxc1NmUHU2ZzUvdi9UN01rTWZXdG1Qd1BOY1BWTEhaWTAyeTNuUm5iL3U4ZGNJdXN3RnJkN0xHT0Z2VldoY1pvQlBOa0FIUXRpdVpNUTNBWGhOMkFSaTV0aVg1WENWZzlNNm1HcnVwRkFEQWtOcUhPSDBGWGg1MDJMV0M3cDEwOEJtTERQdkFjb3pXR1RlemtkUnZPdEJ5dnQ2U2Jicm80T2UzOWdGeUcydzVhSzlURDlLRUxQWjluSS9CT3R0ZzBYV1FvdTFpZEp6cjMzZWMxbHFuQXdUZ1RqdFl4cmNaZHRxbHJzZjB0RDNPbi8zcGJFenZVSmMyQVBhUXNBdkF1QzlrRHBJY3FRUnNqVm10OVg1WGJZVUJBQzZycDhETHNmT2EwZnUyZzg5WUt1TnVUQmxZeUlTUUFBQWdBRWxFUVZRODBBUExiZWp5dE95ZzQrWnF4TnY1YkJxaWFaSmZuOXQvSjlFVk9DUGZidXQ0M05OWFcyczZ1M2IvNi92M3lISWtuOUhic1R1dncybWY1UFYwUzlPWTBoNEEza25ZQldDOEZ6cG5YU0tBN1hLdjFucWkxVDhBTUxTT0F5K0xVc3B0VlIyOVpRZWY4Y2M5di9ZV0RyamFjV2E1RCtPaWxISTZsaW0rMm80T2gwaytqKzRzMjJ5eTd1L2xuc2IwdXRQWkhmVDEzYzdacVdCbiszdm5pM1k4K3gwRUFHdjRoUklBak5aUnBQZGhXejFwQTJzQUFJTnF1eG5jekhyZEYwNlQzRkxOcmJCU2dyWHQwbm43ek9iY25YRlJhNTNYV3A4bStTN0pROXQzNjAzWDJhZDdEcG90SEVON0g4K1RXdXVkV3V0M1NaNG51Uk5CRndCWW03QUx3RGd2Z081a2krZVJCVExORnMvdkRnQnN0elVETDZkSmJuWXdCUWpEYkd2ZEJPSFBmYnZOWDc3V09tc2ZpQjlGd0dYWDdoTmMxNzRmNnhkYlBxYm5lUjFhbXhvS0FOQWRZUmVBOFYwQUhiUVhQOEIydTlQT3V3d0FNTGhyQmw1V1NXNEp1Z0JzUnEzMVlacXA2S2Fxd1lBRUovc1p6NU8yTzlOUmRNQUJnRjRJdXdDTXo1RVN3TzZNWjlNWkFRQ2Jjc1hBeXlwTlI1ZWx5Z0VNcTMwb2ZqYTFDUXpOZll2dXgvUkJtbTR1TTlVQWdQNEl1d0NNNjBMb2ZzelhDcnRrR2pjckFZQU51bVRnNVN6bzRzMXVnTTE0R3ZlRGVMdSt3eWhUSmU1T3JYWGFqbWtoSWdEb21iQUx3SGd1aEE2UzNGTUoyRG4zMnZFTkFMQVI3d204Q0xvQWJGQTdkWkZyeHQyM3p1L1p2dmVQcWMzVHFTY1JkQUdBUVFpN0FJeUg2WXRnZHoxVUFnQmdrOTRTZUJGMEFkaWdXdXNzdzNZRFhTWTVUbktpK29OYnJibXZIUFMwRDA2eVh0aGxhZFArcko3M00yeDQ3VFRKbzZ3WHBnS0FyZldCRWdEczVZVVFNS3haclhWZVNqbFdDZ0JnVTBvcHExcnJ6YnllTHVPdW9BdkdSVm5VV3EvNzQ4dFN5ZzFWWkExZGQvaGQ1blg0WUpYazIvWi9MNUtjdHNISHMvdFFoOG8vcUhWLzMzNlJmZ0lOaHgzc2M3ejJaUS83emVwY3JmL1kvdi9UQzJQNnFkSURzSStFWFFBMnJKM0g5VXVWZ0oxM3I5WjZjbllqQWdCZ0U4NEZYbWFsRkcvMlEyT1Y2MDA1TWEyMUhnaU5jUjN0L2FCWkIvdnVjWkt2U3lrTFZSMzk3OS9ySG11U0pwUnl0NGV2OXNXYTYyVy9lejJtNTFsLytxSmxtczVMai8xdUFZRDNNNDBSd09ZOWpIbGNZUjlNTTJ4N2FnQ0FOeXFsckFSZDRHZldlYURvNVJXdWE5Mk9HaWRKYnBSUzdsNGpjUENKOG0vRVlvMmZuYlpoaXM2MDAyak5OblRzM0VXZnJmbnpEMG9wWjJQNnFyV2RLajhBKzBqWUJXQ0Qyb3RLYldOaGYzelp6b2NOQUFCY3o3U0h6M3kyeHMvTzJ3NGRjRlhyQkU0V3BaUmJhM1FPM2JwOWRrZkcyYk0xZi81aFYvY1Uyczg1V3ZOakZvYnh6OHpXK05rSHBaVDdhMnhMdjRjQTJFdW1NUUxZckNNbGdMMHlTZFBONmJaU0FBREF0VXhycmJPT3A4NDRTWEp2alo5L2t1VFRkYjVBKzdCeXJVNlExMzFReXViMjVUVis5dTRhKzlvMHljRVcxbXVlWk52MzhaUDJuc0IxVFpJOFhmZDQwM3FZOVFNU3p3emp6c2Iwb3pWKzFvdVVBT3d0WVJlQURhbTEzb25VUGV5amVhMzFRU2xscVJRQUFPeXAxWm8vZnk4ZGRoUW9wWnpXV3BkclhLTWYxRnFQU2lucmhOcVBzdDREeTlOc2Z4Q0FLK3l6YTQ2ZmJmUmxyZlhSR3Qxc3hyRGRsclhXMDZ3WE5qcW90UjRsdVh2ZFdyUS9QMTl6ZFphbVJPek1ZczM5K3A0U0FyQ3ZUR01Fc0FIdEcxc3VSR0IvR2Y4QUFPeXROUi9VSjhtczF2cmtmZE9hMUZvUDI0ZTZsL0Y0emU4MHI3VSt2YzVVSysxM1hQZk4vTWYyclAxeDNTbDkydW0wNXh2ODZvczFmbmFTNUdtN0R1OWF4NE5hNjhOYTYxaTcxM3pWd1dmTTIxb2NYSFcvcWJVKzdXZ2ZjTXpwenNFYXh3SXZVd0t3MTNSMkFkaU1PKzFGT3JDZmRIY0JBSUQxSENZNXJMVXU4dWRUYVh5VzV1SGgyWFgzWlRxdUhHZjlVUG9zeWZOYTYxZEozdHVCb24xby96RGRUQ2x6YkpmWXIydktYTEdUVHh1TWVMTGw2MzJRSnVSeG1pWTQ4eC9uL3QwbjdiK2Z0di8vNjVHdXc5bFVScE1PYXZHODFucWM1S3QzaFFqYmJmOWx1ZzA2T2VaMFozS2Q2ZmxxcmZPc055MFdBR3c5WVJlQWdiVmRYYjVVQ2RoNzkzSzVtKzRBQUxDTEZtbkNJZXVhZGZFNTdmUWl4MW4vWWZCWko5ZDc1NEk0eS9aUDBqeWcvbldhc002MG8xb2ViL1BVTGx6dmVyTFd1aXlsSEYvbVAyNjdQOXpMNWwrOGV0YlJ1RDlJTnlHeHdaVlNWbTBncnF1T3IvTTBMOVFzMDB4bjl1MjVmM2N4QU5TVll5L3ZkTzVKcmZYbVpUcWZuZXNZZmtmWkFOaDN3aTRBd3h2RHpRVmc4M1IzQVFCZ241Mm1tNGZlWFhxUWJqc2Z6QVpheHdkMnA2MjBidkRqcU5iNlJacXVIaWNYLzJYYnpXT1c1b1dyNllqRy9kNHJwZHh2dDEyWDIyWGEvam5zK2V1dmt0eTFGZDlvc2NhWW51UjFwNTdIYityeTBuWUQrN3o5UGVYZU1nQWsrWVVTQUF5bm5WTlo2aDQ0YzA4SkFBRFlVOC9HOW9YYUlQcTJCVWQwV05oZVhRUS9abWs2UXRSYTY3L1hXcCsyZjlja3o5Tk1jVElkMFRvdmJQYWZiR3VuMXdjNlNmVTZwdWRwcHVwNjA1aCttdWErc3FBTEFMU0VYUUNHTlZjQzRKekR0djBzQUFEc2xiWVR4UmdmbUQ3SzluU2YwR0ZodXkwNi9yeEptdkRMWk1UamZwWGt4S1pQMnM0ZGo3WnRueTJsUExMMTN1cnh2bzFwQU5nMFlSZUFnYlFQdEw5VUNlQ2NTWFI3QWdCZ2Z4MlA3UXUxRCtOdlo1eEJuSXR1NjdDd3ZkcHRkN3lIcS83WTF2L0pnMnhYdU82V1RmYk9NWDJhWktrU0FEQWNZUmVBNFdnekNiekpGMG9BQU1DZStpb2pESlcwRHl6SDNqSGx1TzJPdzNaN3NHOHIzTzYzcHpiOVQ0R25teGwvdUc2VjVLWnduVEVOQUdNajdBSXdIRjFkZ0RlWjFscm55Z0FBd0w0cHBTelRCRjdHK04yTzAzUjRHYU50Q09OdytUR3dqOVBDMkg5Zjd3TmpEN3ljQlYwRWxDNy91ME90QUdBZ3dpNEFBMmdmWk92cUFyeU43aTRBQU95bFVzcjlqUFRCNEVnREw2ZlJZV0hYYk5OVU5sMk5yVVgyTStUenRucWNwZ204TEVmMjFRUmRybWRicHNJRGdLMG43QUl3akh0S0FMekRyTlk2VlFZQUFQYlV6WXc3OEhJcjQzaHdLZWl5ZzlydHVZbUg0NHNOci9mZEpNZjJnSi9xY1pyazB4RWRDOCtPTjRJdTE5dVdtK2hldEZCOUFQYU5zQXRBejJxdHN5UlRsUURldzFSbkFBRHNwWFBUZUl3MThIS1N6VCtFUG9tZ3l5NlBnYlBPSGtOdDMrTlN5c2FuemltbDNJN0F5OCtPaGFXVVQ5TjArOW1rUnhGMFdYZGJIbWZZem1DM005NnA5d0NnTjhJdUFQMHpQUWx3R1hNbEFBQmdYNTBMdkR3YTZmZGJ0ZytoNzJiWWdNQXF5ZDFTeWkxQmw1MGZBNmRKYnFUL1VOV0RObVNTTkNHcVRhLzM3UTJNcTdIdkMvZlRCT3dXQXk5Nm1TYmtjdGZ4cHBQdGVOeHV4MlhQdnlOdWwxS09TeW5Makc4cUxBRG9sYkFMUUk5cXJaTjRnQTFjenFUV2VxZ01BQURzcTdhcndkMDBEd2U3ZWdpLzZ2ZzdQa29UU0hpUS9oL09IeWU1MFM2VC9Sa0RuL2EwZnkzVEJCbnVuL3RuejBheTNtZmo2cmpEOVY1dCtiNXcybmJmdVpYK0ExRExOSUdKRzZXVWhaSFk3WFpzZjZmMWNSeGZKUG0wRGRXYy8yY0FzRGVFWFFENk5WY0M0QW8rVndJQUFQWmQrNUQzVnBxSDMzZHo5WWQzcDJrZUxONHFwZnlxaCsrM2FnTURaOSt2eXdmUnl6UkJoeHVsbE51NksrenRHRGpidjdvSXZTelRkSE41VTVCaE1hSjFYclZkWG02a21ZN2w1SXJydmt3VGxybWQ1RmU3TWdWUEtlV2tEVURkVExkaG9MUTF2dFh1RzhkR1hxLzc5dDI4RG5TdDZ6Uk5PT2xtMjgzbHZHY3FEc0JlL1o1VkFzYXExdm8weVV3bEJyTm8zeGFnMi8zNHV5UlRsUUN1NEZmYmZrTzcxbm8veVQyYkVrYmh3WVczZC9mOTNHeVc1S2xLMkFmaExjZUlTWktETlQ3aTlEcm5jYlhXZ3lTVDZ5eXdpemZ3YTYzVE5hNWJUNGM4ZHoxWHE0dmYrVFROQStEVnBoNXd0M1djSmZtcy9mdXlOVjIxMy85WmtwTWh2bi83K3pDYjJ1Y0dHSS9MTnp3QUhySk9uZStIYlJmUXo5dWFYS1l1cCsyZnIwc3BKeDJ2NTlEai9teThYOXdubHUyZnRmZkxkWTdEUTlmajNQN3dXVnVQcTJ5L3hibmp6V0pEMjNFak5SN0RNZVhDZHptODR1K0wwM2I3UFg3WDhlV2E2M21sK203RDd4QUE5b2V3QzZNbDdESTRZWmZ1OStHREpNOVZZcStjM1dBOVRmSWY1MjRrdlBjaThpMFhpbWYvN0MvYUM5VjFiNzZ6SFc1dit4dFZ3aTR3S29JR2YvNzdWdGpGUGdndzVIMkJkejFBUDlXNWhUWE9hZDdJdytTOTNCL2VkNytvMDdBR2cyNi8xYTUwS1FLQVBueWdCQUM5K1VJSmR0WXlUYURsMnpSaGxyVnZHcnpsWnRUaUxSZkIwelJ2ZmN5Uy9EcFhlMnVROGZzODNiUzFCUUFBTnNnRFNucmN0eGFxd0xuOVlaVVJUVW1GN1FjQVF4RjJBZWpQb1JMc2pMTldvWU8zZVgzTFJmQXlUZURtcHd2aDlpMlFXWm9XcUljUmZ0bnFZMGV0ZGVJTlR3QUFBQUFBZ0RjVGRnSG9RVHQzN2xRbHR0cEpYcytadmh6N2wyMkRFU2Z0bjd0dDk1ZkROQjJHVEgyMGZRNmp1d3NBQUFBQUFNQWIvVUlKQUhyeHVSSnNwV1dTdTBsdWxGSnVsVkllYmV1Y3hxV1VaZnY5UDAxeUk4bWpKRHFGT0lZQUFBQUFBQUJzUFdFWGdIN01sR0NySENlNVdVcTVzYzBCbDdkcGd5OTNTeW0vU25JN1RhZ0h4eEFBQUFBQUFJQ3RKT3dDMExGYTYwRk1ZYlF0anROMGNibGRTbG5zd3dxWFVvNUxLVGNpOURKMmsxcnJUQmtBQUFBQUFBRCtuTEFMUVBlK1VJTFJPOG5ya010eUh3dHdMdlJ5TjZZM0dpdFRHUUVBQUFBQUFMeUJzQXRBOTJaS01GcW5hYVlydXJXdklaZUxTaW1Qa255YUpnQ0VZd2tBQUFBQUFNRG9DYnNBZEtqV09rMXlvQktqOUtDVTh1bStURmQwRmFXVVpTbmxWcG91TDR6SFFYdE1BUUFBQUFBQTRCeGhGNEJ1elpSZ2RKWkpQaTJsM0ZlS2R6dlg1Y1cwUm80cEFBQUFBQUFBb3lYc0F0Q3R6NVJnVkU3U0JGMU9sZUp5MmxyZFNEUGxFNDRwQUFBQUFBQUFveVBzQXRDdFF5VVlqUWVsbEZ1bEZGMUtycWl0MmMwSXZJekJUQWtBQUFBQUFBQis3Z01sQU9oR3JmVWd5VVFsUnVGMktlVllHYTZ2bExLcXRkNU04alRKZ1lwc3pMVFdPaTJsTExmc2V4OG5XZXpnOW5ob1BBenVOTWxkWlZqTFVna0FBQUFBZ0YwajdBTFFuWmtTaklLZ1MwZmF3TXZ0TklFWFFhN05PY2lXUGF4dXd6bkxYZHNRdFZhZG9vYTNLcVVzbEFFQUFBQUFnUE5NWXdUUW5VK1VZT01FWFRwV1NqbE5jbHNsTnVvekpRQUFBQUFBQUhoTjJBV2dPek1sMktpN2dpNzlLS1djSkhta0VodGoyaHdBQUFBQUFJQnpoRjBBT2xCcm5TU1pxc1RHSEpmeS83TjNyMWRPSk1rQ2dDUDM3UC9WV3JBYUM2YXhBR0VCalFXb0xZQzJnTVlDR0F0YVdFQmpBUm9MUm1NQldndFcxNEs0UDVSYU5DelFrcklrbGFUdk82Y1BUejBxTWl2cmtWR1JSVExHZnIyTkNFdTRITWRJQ0FBQUFBQUFBTDZTN0FMUWpaRVFITTJzbEdLWm5UMHJwU3dpNGxZa2ppTXpWWGNCQUFBQUFBQ29KTHNBZE1ORTlIRXNJdUtGTUJ4R1hTWnFMaExHR0FBQUFBQUFnR09TN0FMUWpWK0Y0Q2plbGxMbXduRFltQXVCTVFZQUFBQUFBT0NZSkxzQWRFUFZoY09ibGxMZUM4UEJQY1N5b2c3R0dBQUFBQUFBZ0tPUTdBTFFLRE1IRVRFVWlZTzdGWUxESzZVc1lwbnd3bUZKZGdFQUFBQUFBS2drdXdDME13bDllSk5TeWt3WWp1YVRFQnpjb0NiV0FRQUFBQUFBWER6SkxnRHRKTHNjM2xzaE9LcXBFQmhyQUFBQUFBQUFqa1d5QzBBNzFSWU9hMUpLbVF2RDhkU2xqRlRXT1R6SkxnQUFBQUFBQUNIWkJhQUxUNFhnb0g0VGdsNllDOEhCU2F3REFBQUFBQUFJeVM0QVhUQUJmVGl6VW9xS0l2M3dweEFjbk1RNkFBQUFBQUNBa093QzBBVkxpeHlPcWk1Y01vbDFBQUFBQUFBQUlka0ZvRWxtbW53K3JBY2g2QTBWZGc1UFloMEFBQUFBQUVCSWRnRm9aZkw1Y0thbGxJVXc5SWEyT0FJSmRnQUFBQUFBQUpKZEFGcVplRDZjVDBJQUV1d0FBQUFBQUFBa3V3QzBNZkY4T0ZNaDZKV2hFQUFBQUFBQUFIQU1rbDBBT0FtbGxKa285TXBRQ0k1aUpBUUFBQUFBQU1DbGsrd0MwT1pmUW5BUVV5SG9uWDhJQVFBQUFBQUFBTWNnMlFXZ3pWQUlEa0pWbC82eGhOZHhTTEFEQUFBQUFBQXVubVFYQUU3Qi93bEI3NHlFNENpR1FnQUFBQUFBQUZ3NnlTNEFiWVpDY0JCVEllaVB6THdXQlFBQUFBQUFBSTdsNzBJQTBPUkdDQTdDTWtiOThsd0lqbVlvQkFBQUFBQUF3S1dUN0FMUW9KUXlGUVV1U1dZT0ltSXNFa2N6RkFJQUFBQUFBT0RTV2NZSUFOakdheUVBQUFBQUFBRGdtQ1M3QUFBYnljeXJpSGdqRWdBQUFBQUFBQnlUWkJjQTRGRjErYUo3a2VoRld3eEZBUUFBQUFBQXVHU1NYUUNBVGJ5TGlDdGg2SVdoRUFBQUFBQUFBSmRNc2dzQThGT1plUjhSWTVFQUFBQUFBQUNnRHlTN0FBRGZsWmtEaVM0QUFBQUFBQUQwemQrRkFBRDRWbVplUmNSOVdMb0lBQUFBQUFDQW5sSFpCUUQ0aTh5OGk0Zy9RcUlMQUFBQUFBQUFQYVN5Q3dBUUVSR1pPWTZJTnhFeEZBMEFBQUFBQUFENlNySUxBRnc0U1M0blJ6c0JBTkNYYTRsaFJGeEh4SzlyNTZtemlQZ3pJaDVLS1F0UkFnQUFZQjhrdXdEQUJjck1xNGg0R1JIamlCaUl5RWtaQ2dFQXdFbWRlNDhienVHbXBaUnBEN2RwRU11RStkZmYrZWRSL2ZWZFp2NVdTcm5UbGhFUk1TbWx6TTlzbTA1RkwyTVBBQUMwa2V3Q0FCZWlKcmlNWXBua2NpVWlBQUN3OTNQd1FVUzhpOTBUeko5R3hMU0gyL1I1ZzJ1S1FVUzh5Y3luRWZIaVRLcTh2SXl2eVR6Ym1rYkUvTXkyNlZUME5mWUFBRUFEeVM0QWNLYnFUZWhSTEcrUVg0ZUtJQUFBY0dqWDBWWkpjWlNadzc1VXBkZ2kwZVV2MnhBUkh5UGltZTRBQUFCQVZ5UzdBTUNaeU14aExHOGsvMXAvVmIwRkFBQ082MlVINy9FcUltNTdzajJ2ZDd6T0dHWG11SlF5MFNVQUFBRG9nbVFYQURoQm1UbUtaYVdXWVN3cnQxeEYyeE9qQUFCQXQrZnN3K2htZVpoeDlDRFpwVloxZWRYd0ZtOGlZcUpuQUFBQTBBWEpMZ0RRVS9YbStEQytKckk4amE4SkxnQUFRTCs5NnVoOUJwbDVYVXA1T1BMMnRDN0pOTXpNVVNsbHFtc0FBQURRU3JJTEFCeEpyYzRTOFRXQjVWOXJ2eCtLRUFBQW5MUnhoKy8xTWlLT25lelN4VFhLS0NLbXVnWUFBQUN0SkxzQVFJY3ljMzA1b2ZYZlA2Mi9EbUszTmU0QkFJRFR1UzRZUjdmTGpGNW41ckNVTWovaVpqM1ZzZ0FBQVBTRlpCY0ErTWJhOGtFcjMvNzVYOS84ZVNScUFBREFtdWQ3ZU05eFJOd0pMUUFBQUVoMkFlRE1mWk80TWxyN3AvV25FdGYvRHdBQVFPczF5UFVlM3ZwbEhEZlo1ZmVRNkE4QUFFQlBTSFlCNEtSbDVpait1alRRS29sbEpEb0FBTUFSalBmMHZzUE12QzZsUEJ4cHUyWWR2TWVEN2dFQUFFQVhKTHNBMEh1WmVSWEx5aXRYOFhVSm9hdFlKcmtBQUFEMHljczl2dmZ6T0ZMQ1NDbmxJVE1YRGRkaDgxTEtUUGNBQUFDZ0M1SmRBT2lOekZ4VmFCbkZNcW5sS3I1V2JBRUFBT2o3TmMxMTdIZUoxSEZtM3BaU0ZrZmF4TGNSOFc3SDE5N3FJUUFBQUhSRnNnc0FSL0ZOWXN1djlmZERrUUVBQUU3WXl3Tjh4amdpM2g5ajQwb3A3elB6YVVSY2IvblN5UkdYWHdJQUFPQU1TWFlCNENBeWN4akx4SmFub1dJTEFBQndmdGM4ZzlnK0NXUVhyK0pJeVM3VlRmMTEwMjE5WDBwUjFhVy91bDVhYXRCNHZUK3ZQMTFhYUdZQUFEZy9rbDBBMkl0dmtsdEdvV29MQUFCdzNzWUgrcHhoWmw2VlVtYkgyTWk2aE5LTHpCeEh4SnVmWE90TkkrSnRLV1dxYS9SWDE0bEltVG1LaU04TmIvR2hsSEtuWlFBQWdNZElkZ0dnTTNWOStsVko2NkdJQUFBQUYrVFZnVC9yNXBnYlcwcVpSTVFrTTFmTDB3N3FQeTBpWW5xc1pCd0FBQUF1ZzJRWEFIWldxN2VzSjdnQUFBQmM0clhSS0E2YjhIK2RtYmUxeXNwUjFhUVdpUzBBQUFBY2xHUVhBTGF5bHVEeU10clc0UVlBQURnWEx3LzhlWU42WFRZUmVnQUFBQzZSWkJjQUhpWEJCUUFBNElmWFM2dkVrME43RlpKZEFBQUF1RkNTWFFENHJyVWJ0aTlqdWY0NkFBQUEvK3M2bHBWV0R1MHFNNi9xTWtJQUFBQndVU1M3QVBBWGRhMzVseEV4RmcwQUFJQkh2V3A0N1NMYUVtVmVSb1JrbDU5ZjM0NGk0dGVJR01hUEs1WE82OC92RVRFdHBVeEZqeTM2Mk5WMzl1TlpSTXhLS2ZNRGZwZXI3L1QzbjQwdnN6b0cvVjUvUHkybExFNjBIYTRqNG1uZDV0RUcrL21zbFBMUTh6RnJFSTgvZkRhdDIvUm5iYi9aQ2JiZFZTeVRSbit0N1RmY29MK2V4RGhkSHlSY2pSRlBhNXRlUFhKT01EdjFObDNiOWgvdGo5TzZEeTRPL0oyR2EvdlgxU05qNUdxOG1LMzF1Wk1jSDlmMnM1ZVBiSGZ2eDhnTjlySGhUOGFRVmQ5YkgwZWNROE1aa093Q3dPckVjQnpMbTdSREVRRUFBTmpvV21vMWFiQ3JoMWplcE4vMU9td2NFYmNIM041eExDZExkbkY3aUVtRk91bjlQTGFydURPc1A2T0llSk9aaTlvMnY1a0lPYXY5OWZPT0w1MlZVbTdYM21jWUVXODI2V09aT2F2OWFMTEhNZWpWanVQSWF1d2FyYjNmTkNJK1JNVER2aVoydXhwSDZyMnMxL1c5aGx2dTU5R1gvWHp0b2JOZHFvU052bm12MVRaOTZEb1pwUGExZHp1Ky9NUDZQbEQzb2ZFV2JmZHRmMzJUbWF0ajZLZDk3Vjg3eG1td3RtM2JuaDhNdnRPbTg3VitPdS9oK1BodDI0N3FtUFN6NVIzZnJJODMrMnkvaHZaWUh5OWVyNC9uK3h3ZmV6WkdSaXlYeS96UXArU3l4bjFzdFg5ZDcyUE1yUDMvVGVQYjdPVjh1WEVNLzU5eklRQTJQTUZLRHVtelhuZVIrOWt3TSs4ejh6OTJBVGdaZDBZdjV5Yk9UMkQzbTA5Mks4Y3Q2SGhjdVcvY1IwYVorYnJ4UGNZSDNONjdsbTNkODNjYlorYVhmWnlQMUFtQzF2UEIwWVhzRTZPK0hqZGF6MGt6YzVDWjczWjhqeTlkOW9FYTUzMWVuL3luN3UrRFBvNGpkWC8vVDhmNytmQUkrOG8rMi9Eekh2cGMwMzVkOTZIN1UrcXZPOXhqelZOcDA0N0d4L1cyL2RoNm5EMlI5dGhyZit0b2pMemV3eGg1ZGVUemkzM3ZZMTlhejZucmZ0QWE5L3M5eGU5ZDQvY2FCL1RVMzRRQTRDSnZ5STR5ODJORWZJbGxKdlJBVkFBQUFMWjIzZkRhZVgyS3RMVk0vTXRMYm9CNmZmc2xJdTVqUDVWS1J4SHhoK1M5eTFZbk5UOUhmY0ovQjhPSStOekJSTnF3SnQ5OGpzZVh1R2t4aU9YVDZWOXF0YVMrR05UN1dmZlI3YjJzVWQzV3UwUDBwYm9OKzI3RFVlMXpINCtaQkxLMjNkZng5VDdrUHZ2citBamJkcmZIYmZ0ZW03N3JRNXV1YmY5VjNmN3J4dTI2Nm1qLzJuZDdyUGUzMTlFdmc1b3M4WEVQWStSUnpvVldTWElIMk1lR0VYR2ZtWC9zbWxSV0svNjBudGZ2NjVqYkVyc3V0Z3YyUnJJTHdBVlpQVFZTTDZpdlJRUUFBR0RuNjZ0eHRFMGsvQllSVVpjbGFMbUJQRHAwUllLZXhIK1FtZS9xOWUwaHR2OU43SGRpbXY1YUpicDA4VlQ3ZlVPZkgwZkVId2Z1aDRPSStMaXZKODEzak44KzcyZTkyV2R5U0FkSkFidTRqdVdrL0RHck1yeU03aWZmZjlSZjcyc1ZpcjBuZzlUa3N6K2lmZG1TYmIyT1plTEJWUS8yeVgvVjhYSFFRZHU5NjJEL09tUjdEQ0xpM2FINjJ4Wmo1SGpQWStUQnRuZlBTWEkvY2hYTDVLdTdsdlA3bG43VmRaSnBmYitXTnR2cjBsM1FTcklMd0FYNEpzbGxKQ0lBQUFETldpdXFyQ2U0ZkdwOHIxY1hkbzE3RlcxVk5tQWJWOUZOb2t0TG43K1A3cXVaYkdOY24zWS85b1R1SVQ3L09wWVRuWU9PMjNBMWJnMk9GTGRqTGtNeVBQRG5qV0xQQ1Q1cmlSWEhqT25uSGlTOGpLTUhGY1BYa2dHSFIvajR2ZmUzbm8yUm8zMk1rZCswNTc0cTFHeGpwOFNlVXNvc0l1Wkh2c2JvK3YxK0MrZ3h5UzRBWjB5U0N3QUF3RjZ1dFlhTjExZ1B0YUpMUkVTVVVpYXhMQkcrcStzTGl2MXF3dmhLVCtSQyt2eStuOVRmMUZVc0p4NHZ3VlUwVk9INXliaDF6S1NBWXllOEhHTjcvOWpIc2tZOWFjOUxiTk1mdGNlN0x2ZFhiYkh4R1BsNVQrMjVxcWJXaCtQZUtIWkw3R2xORHJudUtwbW92ay9MZGNLc0p2QkFiMGwyQVRqUGsvd3JTUzRBQUFCNzAxcEo1WHVWWENZTjd6ZnN1dVI1WDY5MW94OFRqSENvUHY4NitqSGh0ektxRTh1WDRMcGhHWXYxTmh6RWNhc1RyRnN0UzNWSlkraDlsd2t2TmRtMVQ4ZWhWWkxGUlI0WGF6TGc2NTYxeGNVa3ZIUjlQRmhMZE9sVERLOTIyTWNtSFh4dVYrZjFyZU9mcWk3MG5tUVhnUE02d1YrVitEdjBHczRBQUFDWFpOencya1d0NVBLdEQ0M2Y2ZVU1Qjd5SEU0eXc3ejQvaW9nK0pwYThydC90RXJ6cFlPTDZUUnhuYVpVZkdjYnhxMkFjMm4ySENRaDlTVnhhTjdqQU5sMHRYVFR1WVZ0Y1V2SlJaOGVEbmlhNnJHeFZ5YWFVc29qMmhKZXVsaWh0dVQ1WXhGK1hYWVZla3V3Q2NENG4rSGNSOGFXSEova0FBQURuZE8xMUhXMFRYZCs5YVZ4TGhMZVVDYit1Q1NIbkdQTStWVWFBUTduMzNYcGg1NFNqT2lhLzd1RTJYVjlRd3RKS2N3SkN2ZmZhMTZvZDE1ZFE0VzJ0TFVZOUhvZFc1eXpHeU8yUEszMnVpck50Slp0UEhYemVzSEUvdVdxTTZVTk4zSUZlayt3Q2NBWW45NW41Unl5ZkZISGpEd0FBWUw5YUs2ajhyQng0YTNXWDhabkcvRTMwZXdJRU9sVXJGZ3g3L0JXSFhTNE4wM09qaHNTUU56MGZWeTlKVXdKQ1RaUjUxZk50dklnbHh0WVNZUHMrYnR4ZHlMNTExWG84cUxFNmhXU3RqU3ZabEZJZUltSis1UFA2ZlY2elFHOUlkZ0U0NFJQN21rM2MxL0orQUFBQTUzWWROb3kybS9HeldzSGxSeWFOWC9IbEdjWjhGUDJzakFENzlNWjM3SlZka3h6NlBIazdPdGRxWUk5czgzakgxNzZPL2o5a09MeVFpajN2NGpRZStIeDFRZnZZenVlZnRmcklteFByZjVzNjloS2wrN3htZ2Q2UTdBSndndXFGeXgvaGhoOEFBTUFoalJ0Zi85T2IzclZVK0tUaC9jOXhvdXRldCtPUzFLVkloaDIvN1N3aXBoSFI1WElFd3d0YUNtZnJaZUpxYkFZZHROdmJpTGlOaUdmMTUyMDlUc3c3Mks1WEY3aUx2ZHR4T2FPdWswa1hkWitjZC95K0w4KzU4ZXArTlQ2UnJ6dUl5MGtLYkVtZU83V0tSTnRVc3BrMGZ0Yk94OWtPemlWVWRlRmsvRjBJQUU3cWhINTFraXpKQlFBQTRQQmFKNUVtRy95ZlQ5RTJrZk15bGhObzUzQU5QSTd1Si8xWEU0eC9ydjNkUHlKaUZLcW1jaDdqVE5RKy9pRWlwcVdVK1hmMnJldUllQjd0azhiUGV6YmVySCtYVWNmdmZSMFI3N2Y0L3kyZlA0dUlGOTlydS9WdHJHTmtTNVdMVVkvYWJsWi8vcjMyZDcvVzc5aGxGWTlCTE8rcjNtMXhMQnAxY0N4YUpiTisrRjYxaEZyZFloVExCS1NXenhwSHhNMFpqNDlkSlk4c0l1S2hublBOVjIxUzIyRll4N2JyRHZyZU9EUGYvbUJmdnZReGNqV0dqVTYwSHo1NlRsOUttV2ZtUTdSVldObjF2UDU1Qi9zSG5BU1ZYUUJPUkQzWlZzMEZBQURnT05ka3JVOUlQdFRLTFQ5VlNubUl0aWU5eHpzK3RkNUhYVDRSUFkySVo2V1VmNVpTWHBSUzd0Witia3NwVHlMaWwxaFdUVmpvOGV6UXY2YlJUWldHVWNOckY3Rk1rbmhXU3BuOGFJSzFsUEpRU3JtSmlDZXhURERZVlIrVzZabEV4Sk95OUd6dHAwVEVpK2d1R2VmcGx2Ly8xeDAvWjE3SHFrZjdVaWxsVXNldFhjZXNxeU1mTHhaMXpQMmxsUEtrbEhMenpkajhvcFR5ejFoV3RKbDIrTG5iVnJSNTNrRWYvYVVlYTJZL2FNdFpLZVY5S2VXWGFLd0cwYk9LUzR1MThYSFJ3WFoxc1cyclBuZFR4OExaTisyd0doOVg1d1I5T3BmWnh4alpWVkxEOHlQSFpoN0xaSnRuWlUxdHg1dU94NUJ0S3E1OGF2eXM2eDMybFVHMEpiTnVkTTBDZlNIWkJmZmYxUmdBQUNBQVNVUkJWT0FFWk9icldDYTZERVVEQUFEZ0tGb251ejVzOFg5Ykp4N0daM0FkUE9yb0duZ1J5NG1QWjZXVTZjLytZeWxsWGtxNWkrWEVpQ2RhK1psNUxKZVcrZVdiQ2NSZjZ1VGFzMWhPdWkyMjdQZFhzWHNsZ1ZWZjM3anYxa25lbGlvUXd5TW1TOHhqT1lGNzg1TUVnb2RTeXJQb3B0TEZhTXYvdjJ0Y3RwcGtyUC8zUmNOMkhhdWkxVVBkZis0ZVMrd3BwVXhyT3o2TGJwSVJCMXNzUTlJYW8wbnRvOXUwYWV2RS9DaU9hMTczdVY5cWd1bHFmUHhuUlB5ejl0ZkpEdS9idXV6V29vNFpkeHNtSHkvcU9VRnJ2enRXRXZMcW1QRFlHUG1pdGxmcnZyVlZ2K3R3eWI1RlJOelc0Ky90dCtkNjlkeHVzamFHekR1Szc4c045K2RKWTJ5M0hhOGkyaE5STFdIRVNaSHNBdEJqbVRuSXpJOXhlbXRYQWdBQW5OVzFXYlFsa0N5Mm1ZQ085cHZNcjg0ZzdGMHM1VEtMNVdUYmRKc1gxUW11RjdGTVpvQnZ2YTJUYXU5L1VqbGxXa3E1amUyckJiVk1xdi8yb3duTlIvcjdMTnFTdTQ2UkxMR2F4SjF0dUkyVGFFOTRHV1RtOEFEYk50cWhEYWUxRGFjNy9BeU90QSs5MkxaeVFOM09YNkt0R3RISzgzMjJTVFd2aVNzNzdjOE4yL1pySE1kNjBzRjNLMHZWNCt1cWNzby9ZOFBLS2ZVODdQcFFZOFozK2wzcitIRjloTFo0dHVuNVR4MGptODk1dHF3cTFNVjUzcnh1NS9zdDJ2SkpSMlBJTm0wNk9lQjQxWG9kTU50bFA0RmprdXdDMEZQMWFaN1AwWStTc0FBQUFKZHMzUGo2eVRiL3VVNFF0ZHhvSHRacnlsUFdlaTI4bXVqWitXbmFPbm55WHZkbnpVMTkwbi9UUHJUWXNsclFzT0c3dGZUVlAxdkdteU8xdzN6TC9Ya1M3UldiRHJHdFY1bjVjZHZFbXBvODhteUhuME5Yc1hxL3pUNzB2WDBxdXFud2NyMUp0WTNHaWh3dENTdlRodGNlczRySSsyM2FzdmFGVFpJUHhoMk1HYk9HZnZjUWJRa0x6dy9jSHJmYmJtOGRJeWVObjd2UnVOVkI4dEtxenozWllUdFhZOGk4OGZNSFd5VDN0Q2F4WDI4NkZ0VmpSMVBpckZNOVRzM2ZoUUNnZitxSjBzY2pYWndBQUFEd1Y2MlZVbjdiOFRYM2pkLzU1aFNEWGErSlc2K0hYN1FrdXF5VVVtNXI0dERJYm5EeDN0Zkp3RjM2MFNJaVhtVG1ZNVY3NTdIYkpQZThzYi8vcStHMXd3TzN3N1FoUWVOdHRFMndqcUl0Q1dGVDE3R2MzSHlJWlNMU05KWlAyeTlPZkI5YVZUeHFIWmNYbWZraWxnOEpSbU43UG16UXYzZHQ4Mm5qZDl2Vk1aSmQzKzZhVEZKS21XWG1zMGYyemFkSEdqTytQUzhiTit6VGh6TGY5VmhWeDhoeHcyY1BEeGlQblJPYTZ4aHlHOHY1bDlZeFpMckI1ODB6YzlxNFg0OWpzNlRXbG11V1JWakdreE1rMlFXZ1orb2FqUGNpQVFBQTBJdHJ0S3RvbTh5ZGJWdUJvSHFJNVpLMnV5WjlYR2ZtN1lsT2pvNGFYei9aZHVtaVI5eEV4QmQ3dzBWYnhJYkxiZnpNWXhQOUhUMVp2KzBZTjRyMnFnbUg5S0VoL3JQTW5NVmhrZ0ZtSFl4bDEvWG5UVzJyV1gzZlArdXhaWHBpKzFGblM4T1ZVcWFaT1duc3UwL2prWW5kbXNEeDdNRDc1R0RWNWpzNjlNT1Q4MjBxdXZ3Z3pvdEh4cjdyWTR3WjN4ay81cnVlRTJibTZFRDc3RzhOMnpodkhDUC9zY1crMStKdDYxSTdwWlNIbHZhc2Z0MnlIN1ljRTE3R1pza3VMZnZLd3hra1ZYS0JKTHNBOUVoOXd1ZTFTQUFBQVBUR01hcTZySjQ2ZllqZEovSldKZUluSnhqejVrbVFMcjlNbmZ5WnhHa2xCTkN0czVzQXFra3VMMCt3WDdjK2RUNk53eVM3L0xtSDk3eGEvKzZaR2JGTWZsa2x3RXhiSjREM2FMS0g3OVphaGVLcVovdmtzQjYzWDhWeGxnZnJ4VEgzQjJOVmkxOHo4NjRIY1JyRllTcER0WTZSbnhyMmphc3RZckdyUlhTM3hPU3p4bjF0c1dXN3RDU3hYMlhtOEdjSjlIVmZhZGtlU3hoeGtpUzdBUFRuZ3VZKzNEZ0RBQURvMDNYYUttR2tSY3VrdzRmRzY4UlhjWnJKTGkwVGtBODdWdEo1ekNmWDdCZnQwd21PWFZmZjdGT0RXQzVYTkl6VFhaYXJpNlY4L3QzdzJtMldlNW9lY0x4Y1Q0Q1oxOC8rMExQS0w1M3ZRelVSOGFIaE9EMDY4SDY1Mmcrai9ub1Z5MG9ZcXdweXd4UGRML2ZkejFyajBwY0hTLzkxZ005WWRIQU9kSWlFdVpZMjdTejV0TVpxZm9qRzd5Q0pmWFZlLzdNS1dTOGJqNjk5VFphRW41THNBdENQbXhBU1hRQUFBUHJuT3RxV0E1aTAzSkN2eXpUTVkvZEpnVWVmQXUycGxwai92bzh2Vk12ZEwrTHd5MFBRRDlNK2ZxbjZGUGNvbGtzcERPSjBrMWcyMWNWWTFqS1p0L0ZZWEJNeHBrZG9rMkVzN3pHTzYvSGp0OVpqVVZkajZKN2UrdmRvVDBydGNwOWNKUi85R3FlZnhMSnhYejlBbno0SGg5aU9McElWRm52ZVIxckh4RThuM0FkK2k3WTVvT3Y0UWJKTEJ3bjZxcnB3c2lTN0FCei9Ja2lpQ3dBQVFEKzFMbUgwN3c1dTZzK2liWUxrc2FkQSszYU5mTlZCdlBabEZ1ZWZUTUIzOUdVSm83WEpyT2ZSb3duK0Evcnp4TDd2MnlPUEdjTllMcHZ4SmpOdlN5bVRJMzJQYVYvZk96TkhyUlZ3Nm5IclZXM3I0WVh0azlNRGZNYlRNNG5WSWZyRzJWZm0yR1BpM0NHKyt5d3paN0Y3QmNQaFQ4YXNsZ1Q5UmJRdmZ3VkhJOWtGNElna3VnQUFBUFQyZXUwdlMwUHM2RTM5T2FaeG5GQ3lTelJXVHRuenNoMlNYVGpXZURTSTVWSWNyMEoxb1pOUnEzTzFMTFBUNWJoNm41a3ZJK0xGRVpLM1pudU04U3d6ajdWZmp1c3hmcWkzczRGRDlKUC9PNEU0dEp4SHpjK2dIM3hvdkw1NEdkOVBNbXRad3VpaEwwbTlzSXUvQ1FIQWNVaDBBUUFBNkxXWFo3SWRnem9oUjd2L0V3SU9MVE5mUjhTWFdFNnFTM1E1UFRmUm4yb0xvNGo0MGtFRnJZc2VPelB6S2pQL2lJajdrT2dDaHpRL2cyMllOTDcrK2p0ajBqRGFrb2dzWWNSSmsrd0NjSnlMSW9rdUFBQUEvWFpPMTJ3dk5TZWNsc3djWk9ibldDNURJOG5sUk5XbjVaOUZmeEplQmhIeCtRZ0pMK2V5WDQ0ajRvOW9yL3dHWE80eFlkSXlobjhuaWIzbG1tVldTcGxwR1U2WlpCZUF3MThVdlF1SkxnQUFBSDIrYmh2SGVVMHVqK3BUbjhCcGpFR0RpUGdjbHMwNkN6MU5lTG12L1l6Tjk4djdXRlp6QVdqeG9mSDF6Ny81YzB0U3U2b3VuRHpKTGdDSHZTZ2F4M0tOWlFBQUFQcnJIQ3VoakRVcjlOOWFvb3ZLRVdla2xMSW9wVHlKaUxjOStVcFhjYmg3bFA4NGcvMXk3RGdLUnpjOGsrUEJOTnFXWkxwZUpiSFhLbDI3eG1VUkVRKzZGYWRPc2d2QTRTNktSaUg3SHdBQW9PL1hic000ejJvS0x5K2svZmFaSVBEVUhzSUJ2QW1KTG1lcmxISVhFYjlFMnpJV1hYbDFvT291ZSt2UGgxaU9xWDZHZTdyUWpXbkRhNGRuRklmVzZpN1hxM0c4NFQwZWF1VXhPR2wvRndLQS9hczNTeitLQkFBQVFPKzlPdFB0R21ibWRTbWwxMDl3bGxLbW1kbnlGcVBZMzFJaEVoRFlxM3IvNkZEVk5tYjE1L2RZUHQzdHZ0WGh4cmw1Uk54azV0dFlWZ3Q1R2NlWnhCM1V6MysvNTgrNTZ1dDcxd29MajNsM29QYVlyKzJUMDRqNHc5N3kzN2pzYWhJUi94YkNzenBPOXY1Y2RvdSsrYWJoOVMvcjJIM2Q4QjZXTU9Jc1NIWUIyUDhKMktEZU1MQU9MZ0FBUVA5ZG4vRzJ2WXpUS0ZlK2FMaUdmaHA3bUxqTnpHdlg5UnpBbXc3ZmF4ckxpZlAvVy90elJNUzhKbHVzOSsrUjBCOWViWWU3aUxpcjFVT3U2eGgyeVBaNEdmdFBkaG5zY1lMNmVlT3g1ckd4LzZyRDlwalhmZkxQK3VmWjZqdDhMK21tTWZIem5MUWtxeXhxTlNYNlk5YkJQbi95eVM2bGxIbG1QalJjZDF4bDVydUdjOU5aS1dXbU8zSU9KTHNBN04rNzhQUVhBQUJBNzlXRWh1RVpiK0oxWmc2L25lanVvVm5zUHJtNHIyMThiZy9oRVB0b0Ivdk9iNldVeVphdms4aDFaSFhTY2JaMlBCckY4bjdpci9YWGZkMWJ2TXJNd1FHV3N1aDhncnBXUXJwdTNGOGUwMXJ0YlJITDZnbVRFemoyOXZtY29HVk12UlhDWG8xMWk4eWNONXh2WDJmbWJWZGpWbVorYVR6M2Y5dVFVUFdoY1F4cnFRU25xZ3RuNDI5Q0FMQS85VWJwV0NRQUFBQk93c3NMMk1aVHFGelQrcVJwbDlVeFZoT3FydTNacTVyYzBKSjBNaW1sUE5raDBTWENRMXE5VTBxWmxsTGVsMUp1YXJ1V2lIZ1d5NG43U1hTN1hOc2gybjljeDlJdXRZNzFtOFJ3MVBqK1Qwb3BkOXNtdXRSSzRiU2ZFd3hWcnVxbGFjTnJCOUhSY24rMWJ3eVAxVDlydGF2RkVlSy9pRE9vamdNcmtsMEE5cVJld04yTEJBQUF3TWxjdzExZndLYStPb0h2K0h2ajY4ZDE2WW11dUxibkVFWU5yNTJXVW00YVh2K3I4UGZmdHdrd0VmRkxSTnpFY25tY0ZvZEtyT2hzTEsxai9QZ0F4NXBody92Zk5GUnpHZW54LyszMzg4WSsvazRVeis0ODcwMUg1M2xkSkVkUEcxOC9PVUw4SHc1UXpRc094akpHQVB1OWdKT0ZEd0FBY0JyR0Y3S2R3OHdjbFZLbVBmNk9YWHkzajVuNXBQVm1mbWJlaFVsSCt1OURReDhmeEdVaytoMUVyZks4NnlUc2RKdXh1U1lCVENKaWtwbjNEY2V4cXpqTVUvNmp6THhyV1BKanZjOStiUDB5dGFyQ3p6Nm5aZXlmMXFXcGRtWHB2TDk2aU4ycmVWeGw1bjFqUW1CazVzZkdzZkp0YTk4L3MvWnNUWDVyT3MvcjZQeHUxa0hTeUcvUlVhV2FMVDhUem9aa0Y0RDlYTmkrRGpmREFBQUFUc25MQzl2V2FWKy9YQ2xsa1prUDBUYXBOSXlJejVuNXJHRWlaQndkTDRrRVAvR3ZodGZPRzE2cmozZnJxaUdtLzJvWW0yL2pOSkkyMzJUbWZNZmx0bGFKTHAramZlbVIzaTdoWWVtODcvb1FiUWtCNDh5TVhSTmU2cjMrNjNQdGN5ZCtubmV6YldKWmgrZDNIenFJeFR3enAzRzR1YVJaWXlJZTlJNWtGNEQ5WEpDNFVjQWxtTGo0QmdEZ1RLN2pSdEUrY1RZOTRGY2V4TzZWQXlLV2t6NjNQUzloL2luYUo1YXVJdUtQT2hFeTNhSS9ER0s1N0lIckhVN0YxUzVqVUIzN1hndGZwMW9tRWNlWitYYVhwVy9xNVBHcHhPZytNNTlHeEZiSG9kcGY3enM0WGtkME1FbjlpSjIrWTFkVmE4NU5LV1dXbWZQR3RoL1grL1piTFM5Vks0QzAzdXVmU3pENDdqN1l4WG5lNXpwdXZ0OXcvM3JUNFhGdjBtRXNSZ2VLdTZvdW5CM0pMZ0RkZXhlV0wrSjh6ZW9KK0tUZVNCa0xDUUFBWjZDMXFzdWt0VHorTnVyTitpK04xNTdqaUhqZjF3WXBwVXd5ODAyMFQyb09ZemtSTW9tSTMzNDIyVlRqT283bFJJanJlZzd0M3cydmZaV1preDBTQjB5cWQyL2ErUHFQdTFTa2FsMXk1d2h4R2tmRWRXYStyY2ZReFUrMjdTb2lYa1YzQ1lqeng1WXdxbG9TUW9lWitYcVRDZmh2amtHZm95Mlo5Wnk5amZhbGIwWVI4YVdlRTN6NFdTTHNXdldQWVFmZlhZTEIvNTduUFhTUXdCVDFmTzFkWnI2S1pmV2NUOSsyYXgwZm45Y3hwS3Z6dTBsWFNlUDFuUGNRYzBxTFVHR0lNeVRaQmFCRDljVEpPc2VjbTFXQ3k4TXVUeGNCQUVEUHIrTldDUTR0UGh6eU82K1ZmMi81M2krang4a3VhM0h0cW5McU9KWlBkYzlqT2JIN2JXTEIwN0FjTWFkckdNdWtyaGVQWGJldlZTUWVDOXZleHVkWjdKNndzSFZGcWc0U2w0NVY1V3RWUmV0ZFhjYmo5Mi8rL1Y5MVhCNTIvTGx2TjJ6TFdXTzFuSGQxNlp4TktrNk13d09VajNub01FYXJjNEtJcjhsZTg3VysxdVg1d0NLNnF3QnlicnBJWUZvL0RyNk9pTmNIcW5MMWRnLzllOS9INVllZVYzV0VuVWgyQWVqV3ZSQndCaGIxUXU5VFJFd2x1QUFBY09iR2phK2ZiN05FVG9kK2EvenVWNWw1MWZPeSt1OWptWlF6N1BBOWgyR1NuMzZhUmx0eTExVXNLeFk4eERKcDROdDlleFFSdjRhSHRBN2hRN1JWNXhqR01ubHBIc3NKMEQ5ak9SRy9icldjM2ZQR3o0cWVIQWRHY1ppRXcza3BaYkxOLzI4OEJxMHFUbnlJLzYyZ000eGxvdVYxU0hMWnBKOHVNdk0ydXIvL3Z1OSs5NXNFZ3grMjZhVHVINmRXeldpeWgvdmxyZWYxbTM0R25CM0pMZ0FkeWN6WDBmMlRCbkFvMDFqZURIdXdoaXdBQUJmbVZlUHJqM0xqdUQ1eFBvMjJTWnBYRVhIVDE0WlptOWl5MUFwbnI1UXk3ZWhwOU91UTBISnNrK2htT2JSaExDc1Y3Tk9sTFdteDdURnZHdTBUME1QYUg5N1lOWnJIeVVsbXZvelRxY1Eyai81WDBldkRQdm5IQ1gzZlJYUmYxV1YxWHQ5U0Zld3hNL2Y4T1ZkL0V3S0FkclhzdFFzV1RzVThsamN6YmlQaVNWbDZWa3E1YzlJTEFNQ0ZYY3RkUmZ0REM1TWpia0xyOGtuWDlYcTJ0MG9wRDNGNWs3RmNMbjM5RE5RcURwTVQrYnFmTHFocDN1OVFpZTJESHQwN3QzRzhwYmUyL3E2cXVqdzZYczVpRDhramUvUjJqMVhROTVsQXI2b0xaMHV5QzBBM1hvZHlrL1RUUEpZM3k5NUd4TE9JK0djcDVaZFN5b3RTeW52SkxRQUFYTGpXcWk2VFkwNWkxS1VZV2o1L0VLZFJBZUltVG1kaUMxcVlqRG9mYjA5ZzNGcHN1YVRQS2R0cFFyMG14OHgxNS82bzl6SnZUK0NyUHRTRVhSNXYwN3M0aldUUGgxTEtQaXYxN0NzR2k1Qk15eG1UN0FMUXFENEY5MG9rT0xKNUxFdXJ2cThYZk05cXhaWlZZc3RkS1dYcWFRSUFBUGpMdFZ4cm9rY2Zub2lmTkw3K1pkL2JxbDdIUEFzSkw1eTVPckUrRlltemFNdEY5SGladU9ydGhUVEhJaUp1R3U2SnZkV2plN2QvVGFMZnl3UE5UbUQvNzV1YkdyZUxiZE05VmdWN01DZkFPWlBzQXRCT1ZSY09lVkk5clJkenEwb3RUOWFTV3A2VlVtNXJ4WmFwY0FFQXdFOWROMTdMelh2eXhHNXJKWWhSWmc3NzNsajFTVzRUUjF5Q1d5RTREL1VZTWVucDE1dnR1VUpCWHl4aStVRFlyS0VkSnlFSnJZLzcxMjFQOTYvVzVLcExiYzlWWXZPc3AyMzY0a0J0dW8rbDAxU040Nno5WFFnQW1xbnFRdXZKOG16dDkzL1czOC9yVDBoY0FRQ0FYbDdMZmVqRFJwUlM1cGs1alloUll5eDZQOEZlU25uSXpHY1I4VEU4ZE1LWktxWE1Ndk1tSXU1RjR5emE4eVl6SXlMR1BmcGFpNGg0Y1FIaGIwNTBXZk1pSXI0NDl2UnkvMXJFOG1IVWMrdHpsOWllaTNxZTl6a2lybnJ5dGVheFRIU1pIeWdHMDh5Y1I4U3dvN2VjNlkrY084a3VBQTB5Yyt3aWg3V0xtZG5hU2ZDL3YvUDMvejFwRlM0QUFEanF0ZHd3Mm0raVQzcTBTUitpTGRsbEhDZFNUYUpPQXF3U1hvWjZNK2VvbERMSnpLZHgyQVNKOTdHc2VHVy82cjQ5KzVUd3NwcU1uNTk1MkdmUjRRVDFONVB3Z3dOdXc2ZUllR012K21uYjNHYm1ueEh4TG81N24xNmlTMGY3V2tROHljejdIb3laczlxbWg2N1M4MXZ0ejEyOUY1dzF5UzRBYlZ4c1hKWlpMQk5aL295dmxWZm1GM0NEQUFBQXprMXJWWmVIUGwwSDFJbnhsa21lUVdhTzYxSU52VmNyWHp5SlplV0w2d04rOUNJODhNTGgrdmxOWnY0N0RuUHY2WDJkTUI1RXZ5cVFhTTl1eldLNXZNcTVUOGEvajRpM1hVOVExMlBQb1JKZVpyRmMwbVVZN2o5dmVoNDBpMldDd09nSVgyRWFoMXZtNXBMR3pFLzFYTzhZNTE1dlN5bDNSOXI4aCtnbTJXVlIzd3ZPMnQrRUFHQTNtVGtLVDd1Y3MybEV2STNsbXZCUHl0S1RVc3FMVXNwZEtXVlNTcGxLZEFFQWdKTTBibno5aHg1dTA2VHg5YzlQcVFGTEtZdFN5b3RZTGkyeDcrdXlSYjAyOUhRc2grN25kN1dQTC9iWnQwc3BxOHBPdjR2NjN0dnpTU3p2T1IzYSt6aGUxWWxwL2Z4OW05ZHR2TjFYMGtHTjN5OTdic09IdWgyTCtua1NLRFpzbTFMS3MzcThQbFRNRmhGeFcwcDVKdEZsTDIzNlVQZTM5d2Y4MkdrczV3THVqcmpkOCtnbVNlVkJ2K1FTU0hZQjJOMUxJVGdicXl6bjIvaWEyUEpzTGFsRitVa0FBRGdUSFN4SE82ODMzL3VtTlJIanVpN3ZkRkpLS1ErbGxGOWlPYmsxMzhOSFRDTGlsMU9wZXNQNTJlTmszelNXOTBEVys3WW53UGZmbnFzSitXZHhtS1NYMVJoMmU4eEp6NXBRdGE5RW4za3NrN1orT2NUUzRUVUo1ZGtlamp2eldGWUgrYlpDeU5TZXMxWDdUT3FZZVJ2N1M0WmR4UEloeVY5S0tlOUZmZS83MjIxdDAwbnNMNUZwVmZtcUwwdFJkWkZZTDBtYml5RFpCV0FIeXJxZWhWa3NieFE5S2FYOHMxNUl2cGZZQWdBQVo2KzFna2tmcTdwMDlSVG85YWsyYW4xUTRaZFlWc0dZUk50a3lEeStUbUxkZUNxV0h2VHY5Y20rdDlFMmdUdUpaZFdJWjk5V3E2MTkzWDJSdzdUcHRDWk1QSW5sL2FrdTR6Nkw1VVQvYWd5YjkyU2JaMnZiM0RwT0w5YjY4bEVTRXRlT096ZlJscEF5aTYrVnBiOTNIRmR4YWJjeDgzMkg1d1VyMDlwV3Y5U0hKSjBmSFBBOHQ1UnlVNCtETjlGTmN1WTh2czRQUE9sVFluTWRDMXJHN3BsNURpNW1mQkFDK2lvelA4ZHgxbGU4VktzTExEYnJuK05ZcmhmSmFabkg4c2IweFBKRG5lMExLUW9IZDh3MVk1MmJPRGR4ZnNLcDc4ZWppUGdzRW81YndFV04rNk9JK0RXVzFYeXU0dnRWZmFheG5BVDd2WjUvbUJ6Z0ZQcjNWZTNmVDJ1Ly90NjF5aXA1WmJiV3YwM085cmROaDNXY3V0cGczRnB2MzBWRS9GbC92NWMyYmp5UC91RjEzVGZqOUdyN2Y3U2Q4N3FkdlJ5bjY4T1IxM1Zicmh4emVqMXVydnJiNmlkKzBFNVIyMmx2K3hiTis5elZOK2Q2b3gvODkzbjltVVhFdjA5aDM4dk0vOFR1MVNodlZDWGtVdnhkQ0FCMllnbWowektKaUErSEtHVjZnUmVJQUFBQXZWU3ZBVjBIY3E3OWU1WEVZZ21OODJuVGVTd25ZeDh1YUp2UFpweXVpUkFUUGZra3hrM09aNTg3eTNPOXpMeU8zUk5kRm1GWlFpNklaQmVBN1U4MGh1SEovbE93aU9XNmxLcTQ3TTlBQ0FBQUFBQUFvRE92R2w3N29Bb1JsMFN5QzhEMnJvV2cxMVpKTHUrZDFBRUFBQUFBQUtjZ004ZlI5ckQxYjZMSUpaSHNBckM5cDBMUVc1T0llS3VTeThFTWhRQUFBQUFBQU5yVVJKZjdocmVZMXVXNjRHTDhUUWdBdGpyWkdJVEtMbjAwajRobnBaUWJpUzRITlJRQ0FBQUFBQUQ0cTh5OHk4ejd6THg2NVA4Tk0vTSsyaEpkSWlJK2lEcVhSbVVYZ08yTWhLQjNKaEZ4YThtaW8vaUhFQUFBQUFBQXdIZU5JMktjbVl1SW1FYkVuMnYvOW85WXpqbGRkZkE1ODFMS1JMaTVOSkpkQUxaakNhTit1WEVDZDFSWFFnQVlad0FBQUFEZ3AxYXJCdXhyNVlDM1Fzd2xrdXdDc0oyUkVQVENJaUplbEZLbVFuRlVReUVBRG5BakFBQUFBQUQ0UGxWZHVGaC9Fd0tBeldUbUlEeGgzZ2VMaUhnbTBhVVhoa0lBSE9qNEN3QUFBQUQ4TDFWZHVGaVNYUUEyTnhLQ1huaFdTcGtKdzNGbHB2MEJPQlNKcGdBQUFBRHd2MVIxNGFKSmRnSFluTW0yNDd1UjZOSWJReUVBakRjQUFBQUFjRFEzUXNBbGsrd0NzTG1uUW5CVTcyVW8yeCtBaS9TckVBQUFBQURBWHp5VVVxYkN3Q1dUN0FLd09aVmRqbWNlMXAyMFB3REdHd0FBQUFCZ0hxcTZnR1FYZ0UxazVpQWlCaUp4TkRlbGxJVXc5R3AvTVBrTUhNcElDQUFBQUFEZ3YxNllNd0hKTGdDYk1yRi9QRk9sK0hwbkpBVEFJV1dtY1FjQUFBQUFsZzhIejRRQkpMc0FiRXF5eS9GWXZxaC9uZ3NCY0dBaklRQUFBQURnd3QyVVVpYkNBRXVTWFFBMll3bWo0NWlwNnRKTEl5RUFEa3lTSFFBQUFBQ1hhaEVSenlTNndGOUpkZ0hZekZNaE9JcmZoS0JmTXZNcUlvWWlBUnpZVldZYWV3QUFBQUE0RmZPTzN1ZDlSUHppd1dENFg1SmRBT2l6QnlIb25aZENBQnpKV0FnQUFBQUFPQVcxQ3NzdkVYRWJ5N21PK1JZdm45WFgvVkpLdVMybExFUVUvdGZmaFFCZ0kxZENjSEF6SjNDOU5CWUM0RWhlUnNTZE1BQUFBQnhXclNaUVJBSmc2L0Z6SHN2S0xPOVhmNWVabzdYL3N2cjlJcFlKTHFHQ0MyeE9zZ3ZBWmdaQ2NIQk82SG9tTTYvdEMxdzRDWGpITmN6TXNiV0pBUUFBQURoVjN5U3pURVVFZG1jWkk0QkhaS2JKL2VQNFV3aDZ4eEpHR0pjd0RnRUFBQUFBY0hTU1hRQWVad21qNDVnTFFYOWs1akFpcmtVQ09MSlJabzZGQVFBQUFBRGdza2wyQWFDdlprTFFLMitFQURBZUFRQUFBQURRQjVKZEFPaWxVc3BDRlBxaEx1VTFGZ21nSjRhWmVTY01BQUFBQUFDWFM3SUxBUENZMTBJQUVSRWhDYTgvM21TbVpRWUJBQUFBQUM2VVpCZUF4NDJFZ0V1Vm1jT3daQWlzV0Y2dFh6N1d5bE1BQUFBQUFGd1l5UzRBd005SWRBSDZhaGdSSDRVQkFBQUFBT0R5U0hZQkFMNHJNMGNSTVJZSm9NZEdtWGt2REFBQUFBQUFsMFd5Q3dDOWxKbFhvbkIwNzRRQXZpcWxURVdobDhZU1hnQUFBQUFBTG90a0Z3RDZhaUFFeDVPWmR4RWg0UWc0RmVQTXZNOU14NDdsR0Q3SXpLRklBQUFBQUFEblNySUxBSDAxRW9ManFGVjEzb2dFZk5kQ0NIcHJIQkdmTHpuSkl6T0h0Y3JObDdBTUhRQUFBQUJ3eGlTN0FOQlh2d3JCNGRXcUNKWURnUitiQ1VHdlhVWEVINWw1ZlVuamRtYU9NL056ZkUxeVVlRUdBQUFBQURocmZ4Y0NBSHBxSkFSSDhTNHNYd1NjdGtGRWZNek1oNGk0TGFYTXozRWphMExQODRpNERza3RBQUFBQU1DRlVka0Y0SEZ6SVRpS1FWMU9od1BKek5kaDJRdDR6TzlDY0RLdUkrSkxadDdWcWxXblBrWVBNdk02TSs4ejh6OFI4VEZVY1FFQUFBQUFMcFJrRjRESHpZWGdhRjRKd1dIVUNnSHZSQUk0UTI5aW1mUnluNW5ERXh1YnJ6THpkVjJpU0lJTEFBQUFBRUFsMlFXQVBycytoNmZ4KzY1VzBMa1hDZGpJVkFoTzBpQ1dTU0pmTXZOelpvNzdlSHhaUzI3NVdLdTMvQkhMUk1TUkpnUUFBQUFBK09ydlFnQkFqdzBpNG5WRTNBbkZmdFJFbDgraFNnQnNhaUVFSjI5VWYrNHpjeFlSbnlKaVdrcVpIbmo4SFVYRU1DSitqWWlya05BQ0FBQUFBTEF4eVM0QWp6T3hlVnl2TXZOOUtVVTdkRXlpQzJ5dmxETExUSUU0SDFmMTUwMXQxMW45K1hmOWRSRVJzMTJPUVhXTUhkU2ZxNGo0Ui8xMVdIOEFBQUFBQU5pUlpCZUFSNWpZUERyVlhmWkFvZ3MwbVlka2hYTzFTbjc1ZHN4Y2IvdjVEMTQ3MUM4QUFBQUFBQTVEc2dzQXArQk5aajZVVW1aQzBTNHpyeVBpUGlTNndLN21JYW5oVWcyMVBRQUFBQURBOGYxTkNBQTJNaGVDbzd2UFRNa1pqVEp6SEJFZlE2SUx0UGhkQ0FBQUFBQUE0SGdrdXdCc1ppNEVSM2NWRWUrRVlUZVpPY2pNKzFoV2RBRWNFd0FBQUFBQTRHUlp4Z2hnTTNNaDZJVnhaa1lwNVVZb05wZVpWN0ZNY3JrU0RlaUVKZFVBQUFBQUFPQ0lWSFlCMk15L2hhQTN4cG41V2hnMlUyUDFPU1M2UUdkS0taSmRBQUFBQUFEZ2lDUzdBR3htTGdTOThxNHV5Y01QWk9aVlpuNk81ZEpQQXhHQnprMkZBQUFBQUFBQWprT3lDOEJtNWtMUU8rUE0vSmlaRWpuV1pPWWdNKzhpNG8rSUdJa0k3STNxTGdBQUFBQUFjQ1NTWFFBMlVFcVppa0l2WFVmRUg1azVFb3FJekJ4SHhKZUllQ01hc0hkL0NnRUFBQUFBQUJ5SFpCZUF6YzJGb0plR0VmRTVNOTlkYXBXWHpCeG41cGVJdUE5TEZzR2hUSVVBQUFBQUFBQ09RN0lMd09Zc1dkRnZyeVBpUzYxdWN2Wld5eFd0SmJrTWRRRTRuRkxLUENJV0lnRUEwSFJkczFxZWR0MS82dCtOTHpRbW83cjkvL2ttTHA5cnZEemdjTDc3d2JkdGZySDdBUUFBYkVLeUM4RG1MRm5SZjRPSXVNL01zMDE2cVRjKzd5UGlQN0Zjcm1pbzJlRm9wa0lBQUdkM3J0MWlKSW9ieC9vcU0vK0laZUwrOVhldTY2N3J0ZDBmbVhsMUlURVpaT2JuaVBoY3QvL2JwSlpSalplbGZNOTNQL2kyelZmN3daZEwyUThBQUdBYmtsMEFOamNWZ3BNeGpLODNoTzR5YzNqS0cxTnZnTDJyVlZ3K1I4UllFME12L0M0RUFBRGJYOS9VNjVwTkp1K3ZZcmxzN2RVRnhPUkxMQk5hTnJuZS9heml4MFh0QjhOWUpqbGRpeHdBQUh3bDJRVmdjNVl4T2ozRFdGWS8rYklxLzNzcUpaL3JVNldyQkpjL1lybE0wMUNUUXE5TWhRQUFZS3ZybkVFc0ovaTN1UzRieERLNVkzaWs3L3o2QUpWVTdyZU1TY1R5QVEvVlB2YlQ1dS8yMmVaMVAvaTRZNXU3THdBQUFKVmtGNEFObFZJV0llSGxsRjNIOGdiaWYyb3A3THUrbEg2dTVhcEg5VHQ5enN5TTVRMWdDUzdRNytQQ0xDTG1JZ0VBc0xGM3NmMEVmOVRYdkRuQ3RkcDkvYzc3L0l5NzJLeTZ4L2Zja25IYjJRQUFIa3BKUkVGVTYxS2RYNXQvck5maSs3VHJrc1FEYlE0QUFGLzlYUWdBdGpLTDNXOUMwUjlYOWVmTk1xOGtadlhuei9ycnZKUXkzOGNIMXdTYlFmMzhYK3V2UTAwQ0oyc2FsaFlEQU5qa1dtalFlTjQwenN5Mys3cFcrODUzM1hTSm1WWXZXNjV0TTNOVVNwbnFZYWZSNWgzc0I2UE12S3FKOXdBQWNORWt1d0JzNS9jd3FYbU9Wc2t2LzFXVFlPYnh0V3JETENMK2I4djNmVnAvSFlRa0tUaFhueHdYQUFBMmN0M1JlN3pmNTVlc1N3UGRIK0lhcm43V3NQRnRub2ZsTmJ0b2gyMlgxOXJWcUlQUHVRNlZod0VBUUxJTHdKWWVRc25ZU3pLTXJ6Y2VSOElCZk1kVUNBQUFOcjYrYXZXdmZYN0JXb256WXh3bTZTR2ltNFFhRDFhMHRmazRkbDllNjFqdDlhdVdBd0NBaUw4SkFjRG1TaW1MOFBRTUFIODlManlJQkFEQVFld3RzYU1tUFJ5cXVzZktVSk1lVDJhK2p1VURUWU1UKytvRHJRY0FBSkpkQUhZeEZRSUExbndTQWdDQWc1anY0MDB6ODEwY3A0cnJRcE1lUjJiZXg3S2lDd0FBY0tJa3V3QnM3NE1RQUxCbUtnUUFBSS9xSXJIajMxMStvY3djWk9iSGlIaDlwSmgwVVRsMnJtdHQzZVovUk1UNFNGK2hpL2I2WFVzQ0FJQmtGNEN0bFZKbTRla3JBTDRlRitZaDRRVUE0REVQUFhtUGlGZ21QY1J5MmFMckk1NUhUcVA5L29MRWg4M2IvS3EyK2RXSjd3ZXVQUUFBSUNTN0FPenFRUWdBV0tQcUZ3REFUM1NRSUR5dEQ1ODBxMGtQWCtLNFNROHJMZmNYNXFXVWlkNjFVWnVQNHZpSkxsRktXVVRFcExITnAxb1VBQUFrdXdEczZwTVFBTEJHRWlRQXdPTnVqL1RhLzhyTWNTeVRIZ1k5aXNuaW1ERTVkejFzODdjTmJYNmpSUUVBWUVteUM4QU9TaWtQWVNrakFMNGVGeFloNFFVQTRMRnpwbG5zTmxsLzAwVlZsOHg4SFJIMzBaK2toOVY1NUxQWS9oN0QrM3B2Z3ArMytidmE1bjNhRCtZTis4RlVxd0lBd0pKa0Y0RGRUWVFBZ0RXV01nSUFlRVJkZHVkRmJKYmNzWWlJRjEwczFWTVRYZDcxTkNheldDYTh6RGVNeVUwcFJWV1h4OXY4WFVTODdtbWJQOFRtU1U2ck5wOW9WUUFBK0VxeUM4RHVUR29DOEYvMWh2VmNKQUFBTmpwditpV1d5N2w4Ny94cFh2L3RsdzZybHd4NkhwTlpSRHlKNWRKRXN4L0U1SDFFUEpIMHNMR3JucmY1ZEl2OVFKc0RBTUEzL2k0RUFMc3BwY3d5Y3hZOXYza0N3RUY5aUlnM3dnQUE4T2cxOVNJaTdpTGlMak1IYTlmV3MvcHZseHFUOXhIeC9wdVl6T3ZTTjlnUEFBQ0FTcklMUUp2Zm9tZHJQd053VkpPUTdBSUFzSlU2cVQ4VkNUSFI1dG9jQUFBMlpSa2pnRFlQc2RuNnlnQmNnUHJFN1VRa0FBQUFBQUJnZnlTN0FEU29UOTFNUkFLQU5SK0VBQUFBQUFBQTlzY3lSZ0R0Zm91STE4SUFRRVJFS1dXYW1kT0lHSWtHQUhCTW1Ya1ZFWU9JR05hZmlJaFpMQ3VVTGtvcE0xRmloMzQxaUlpcitzZjEzMGVzTGNOVFNwbUtGajN1eDZ2cnRmWHhjVkhIeUlpSWVhM2NDUUJBVDBsMkFXaFVTcGxuNWlRaXhxSUJRUFUySkxzQUFCdFlTMGpaMW5lVFZUSnpIQkhQNjduSTRKSFBqbGdtSi93ZUVRLzdUbjdKekdGOG5WVGUxazhubnRjbXJuL2tYdzFmL2FyR2FwdDdCZE1OWS9KdHNraG5NZW00ajE1SHhOUDZYWC9Xcjk1ODA3L21zVXdlK0JRUjB5Ni83d1p0UHVocG0rOWxQMmpzU3o4Y1U0NHd0bTBWenkzMnMxVWZIbTBhLzh4Y0piOGNaSXdFQUdBN2tsMEF1dkVoSkxzQVVOWHFMdlBZL1NZMkFIQTUzc1Z1U2JMVGlIZ1c4ZCtKM05jUjhTcTJuMXdlMVo4M21UbUxpTjlLS1pNOWJlczQxcElodHZRMkl1NSs4dStmOTl4R1c1OFNidmovcmhxKysyTXgyVmxOeUJoSHhNdkdjOXBoL2JtdTd6dU5pQThkOWJGVGJmTzk3QWVsbEVWbWZvemRFMHptRWZGTGh6SDhvK0cxblh5WG1oRDFNbmEvWnpmNFpveWN4N0xDODZRdWJRNEF3Qkg5VFFnQTJ0V25UYVlpQWNDYXQwSUFBT3hibmN6OUk1YVQ1NFBHdDd1S2lQdk0vTEpCMVF6T3N6OE5Ndk0rSXI3VVBqWHMrQ05HYTMzc1dzUTc5OUR3Mm1HdHh0SkZQN28rNG5aRVpvNHk4M01zRTZMR0hjWjNHTXRFcUMrWmVWY1REUUVBT0JMSkxnRGRNYWtKd0gvVnAxV1Z1UVlBOWlZelg4ZHlNbmZZOFZzUEkrSnpacjRUNVl2cVQrTllKcm1NRC9CeHc0ajRtSm1mSlF4MDZsUGo2MTkyOUQyZU43Nyt0eDM3OEtCV3Qva2MrMTFXZGhETFpMQS9KQVlDQUJ5UFpCZUFqcWp1QXNCMzNBb0JBTEFubzlodHFaVnR2SmFNY1A3V3FybmNSM3Qxb0YzNjhaZXVLb3BjdWxMS1EwUzBMSy9UVmJXZGx2ZVpsVkxtTy9UajYxZ21heDJ5WXRBd0pBWUNBQnlOWkJlQWJ0MElBUUFyRWlFQmdETXdpdVZrcm9TWE0xVGJ0ZXVsWHJZMXFIMU13a3MzSmcydkhXYm1zTEZQWFVkYjB0U0hIVDd6ZFVSOGpNTW5hNjI4enN5UHhra0FnTU9TN0FMUW9mcmt5VVFrQUZoam1Uc0E0TlJkeGY2cnlIQmdhNGt1ZlVneWtmRFNuUStOcjIrdGpOSzZoTkhEbHYzNHZpZmowM1ZJREFRQU9DakpMZ0RkZXh0dEpXTUJPQ08xdXN0RUpBQ0FFemV1MVJNNEgrK2lINGt1SzRPSVVCMmovZnBqRmhIemhyZDQyZmdWUmcydmZkaG1DYU9hNkRMdVVmaXZZcmtjR0FBQUJ5RFpCYUJqOWFMOE41RUFZTTF0U0lRRUFFN2ZHNGtJNTZFdU5UUHU0VmNiUnNRYkxkU3NwYnJMMWE1TEdkWEtQTU9Hei82MHhXZU5lOXFIcnpOVEpTd0FnQU9RN0FLd0I2V1V1Mmg3aWdhQTh6b3VMTUp5UmdEQTZSdUU1WXhPWGsxWTZuUDFpZGU3Smx2d1g1UEcxKys2bEZGclZaaUhEZnZ3MVFuMDRXdmRFQUJndnlTN0FPelBqUkFBc0ZKS2VSOFJNNUVBQUU3Y1dDTEN5WHNkeThTbFBsUGRwZTNhWTk1NDdmRjB4OWUxSkhnODFJY0VmcW9tYTMwOGdXYTRWd2tMQUdDL0pMc0E3RWtwWlJvYlBwRUN3TVdRQ0FrQW5JT3hFSnkwVjZmUXh5UlZOV3RaeXVoNjIwU05EcFl3MnZUN3ZtbjhuRU1aaEtRdEFJQzlrdXdDc0Y4M0ViRVFCZ0FpSWtvcHM3Q2NFUUJ3K2w0S3dXbkt6SEYwVjlWbEZzdmxjdDZ1L1V5anUvc2dsb0ZwTXpsdy9FY05uN1VvcFR4czBIK0hzYXhNMUtWNTdiZlRqdnR2aENXNUFBRDI2dTlDQUxBL3BaUkZadDdFYVpSWEJlQXd4NGE3ekh3ZUVWZWlBUURzeVN5V2s3Yi90L1ozVDZOdE1ucmRNRE92YWlJdnArVjU0K3NYRWZGYlJMei8yWkl6bVRtS1pWV0xVZU4zZmEvSmRyN3VXR1RtUSt5ZU5QUTh0a3VZYVVtQzI3UXljbGVWVXFheHJDVHozYVdUYXBXYWw3R3NZdFdhSFBZbVZQZ0VBTmdMeVM0QWUxWktlV2k4dVFEQStibUppRCtFQVFEbzJDUWkzcFpTNXQvN3g3b3N5WnZvcGpMQ0tKWkpOWDN4V1BXOGxtU2ZTVVQ4KzB6NnlLamh0Yk9JZVBhekpKZVZ1clR6TkRQdlkvZGxyMGFOYmY0eWRsL3U1bHphL0ZQc2ZqOXE0OWZWNmlVdHlmd2ZOdnlNY1dNOEZoRng4MWdWbVpySU44dk10eEZ4SDIzMzlNYVplYnZKZmdNQXdIWWt1d0FjeGsyOTZCOEtCUUNsbEZsbTNrYkVPOUVBQUxxNjdpeWxUQjQ1QjFsRXhHMW0vaG5MQ2R3V1Q2TkhWVGRLS1hjLysvZk12SXZkRXowKzFPU05rMWFyVmV4YXBXSVJHeWE2Zk5NdU43WEt5M0RIN3p6NlVldzNhUE9uc2Z0OW1MTm84MWhXVExsdjZEUFhteXd2RkczSklQTU5ZLzJxTVJhclBqemJvdjh1SXVKRlk5SlcxTmVxVWdRQTBMRy9DUUhBL3RXTFl5VkxBVmcvTnJ5UHpjdDFBd0Q4ek8xamlTN2ZuSWRNSXVLMjhUTXR5WGg2aG8xOWJOZktGQitPOUoxZGN5emJiTkx3RnBzdWUzV0lKWXhhRW1xMlRuVDVKbzQzMFZiSjZxWGVDQURRUGNrdUFBZFNuMUo1S3hJQXJMbUppTGt3QUFBTnBqV0pkdHRyMVBlTjV5RkRvVDg1TFFsS3gwclMxcy9hZldwNDdhTUpKblY1dEgwdllkUmFMZm50cm9rdWExb1NCSzlxbkFBQTZKQmxqQUFPcUpSeWw1bS9SdHZUS0FDY3ozRmhrWmt2SXVKejdGNVNIZ0M0Ykw4MXZQWnR0QzF4Y3RYQkJES0hNOTN4ZFl1R3FpNFJ5eVd2T040MXgwTm1MbmE4M2hoc3NKUlI2eEpHbTR3aEx4cy80MzBIY1p4bTVpeDJUK3k1anJZcU93QUFmRU95QzhEaDNjVHlhUlFsbndHSVVzb3NNMitqWWFJSkFMaFlpMGNtb1IvejBIZ09JbG4zdE00N3A3Rjd3c3RPTXZNdUlrWU5ieUZScGhzUEVUSGU4YlhQNCtlVmZaNDNmSzlOay9YNlVwWG9VOE4zK1ZVM0JBRG9sbVFYZ0FPclQvSGZoS2Y0QWZoNmJKalV5bCt2UlFNQTJNSzBnK3ZUbGtvRjhCZDFxWlpSTEpOVXJzTXlSSDN4Vyt5ZTdESjZwTDFiS3JzOHRINkhUVjZibVo4N2ltTkxmemJPQWdCMFRMSUx3QkhVcC9odkl1S2phSERHSnJIN3pUUzR4R1BEYmIxWmJMOEJBRGIxWndmdnNSQkdIcE9adzFoTzlBL2lyNVAyLzRxdkNRQWprZXJ0dGNZc00rZXhXN0xHOENkTGxyVWt1c3hLS2ZNTitsNXJra2hma2t6c0h3QUFIWlBzQW5Ba2RjM2ttN0JzQmVkcEZoRzNzYnlSTmhJTzJOaHRMRy9HZXVvUEFOakV0SVAzK04wNU8rdStxYzV5cFgrY2pZZll2WkxreTNxZC82MldaYVkyWGNKb2NFNzdWaWxGZ2lFQVFFZitKZ1FBeDFOS21VVEVlNUhnek13ajRsbTlnZk5KT0dDcjQ4SWlJcDdGOTI4a0F3REEzbVRtZFdaK2pJai94TElTN2V1UTZISk9QalM4OW5yTHY5L0VJWll3NmhzUE5RQUFkRWl5QzhDUmxWSnVZN25jQzV5RFJVUzhXSHRTYVNva3NQVnhRY0lMQUxBcDV3czBxMGt1WDJLWjRISXRJbWQ3blRGckdET0czeTRubEpuWHNYdlZsUWNWVGdBQWFDWFpCYUFIU2lrM0llR0YwN2VJWlVXWDJWcmZudFcvQjdZN0xraDRBUUEyUFdlQW5XVG1JRE0veHpMSlpTZ2lGNkdsdXN2b216OC9iM2d2VldBQkFHZ20yUVdnSjJyQ3k0TkljTUplckNlNnJKa0tEZXgwWEpEd0FnREFYdFFxSFYvQ01rV1hwdVcrMDh0di9yeHJGYUJGdVA4RkFFQUhKTHNBOU10Tm1OVGtSUHR1S1dYNmczLzdYWGhnTnhKZUFBRG9XazEwK1J5N0wwSEQ2VjVmekdQM0IxS3VNbk80MW9jc1lRUUF3RkZKZGdIb2tiVkp6WWxvY0VKdVNpay82N05USVlKT2pnMFNYZ0FBYUpLWmc1RG9jdWxhbGpKYVZYTjUyZkFlbGpBQ0FLQVRrbDBBZXFhVXNxaExHazFFZ3hQd1dLSkwxS1dOUExVRmpjZUdXQ2E4VEVVREFJQUc5M0g0UkJkSjIvM1N4VkpHT3k5aFZFcXhoQkVBQUozNHV4QUE5Rk1wNVNZekl5TEdva0ZQUFpyb3N1WkJYNGJtNDhJaUlwNWw1cjM5Q1FDQWJXWG1LSFpQVXRqVU5KWVBPL3daeXlTWGFVU3NsazJpSjljVm1mbXdZMSs0cXYxb3VPUEhUM2JzVTI4YSt1UGJIb1ZmNGhjQVFJY2t1d0QwV0UxNFdVVEVhOUdnUnhheFRIVFo1bW1zMzhQa1BIUjViUGd6SXQ2SkJnQUFXM2pWMGZzOHhES1paUnJMU2gwL25jQ3ZEL0xRTDU5aTk4U24rNGJQM1dVSnBaWktzY05TeWxSekF3Q2NKOHNZQWZSY0tlVTJJbTVFZ3A1WVJNU3pIY29PVDRVT09qMDJ2SS9sc2thV0NBTUEyTC9CbVd4SGExV1h0eEh4ejFMS2kxTEtYU2xsK2xpaUM3MjlucGcwWEVzTWQzemRmSmYrMHRqSGhyVVNEUUFBWjBpeUM4QUpxRGNoVEdweWJLdEVsMTF1VHMwallpNkUwT214WVJvUlQwSXBiQUNBZmJzNjlRM29ZTUwvcGlhNDdISmZZblNDSVJ0ZVFMOStPUERuZldoNDdiVGh0VzhDQUlDelpCa2pnQk5SU3BsbTVyTllsb3U5RWhFT2JCYkxSSmVXaEt0cFdNb0l1ajQyekNQaVNXYStDMHZlQVFEc3k2OW5zQTB0OXhFbTlTR2NTNHJmMDRpWW5IbS8vblRnYS9TV2VQNGV1eWROalRKejNOaUhJek1IamZ0UldGSUpBS0Jia2wwQVRrZ3BaYmFXOEhJdEloeklReXlmNG11dExQUjdTSGFCZlIwZmJqUHo5M3A4R0lnSUFFQ25yalB6NnNTWDdHazVSL3g5MXhkbTVqQ09kLytpSlVGaW5KbHZhM0w1dVY1RFBHVG1QQTVUeFdiV0dNdUhhS3ZROGk0elo0MzdjT3U5dUlld3hETUFRS2NzWXdSd1lrb3BpMUxLaTRpNEZRME80RzFkajcyTEpiUWVoQlAyZW54NGlJaGY3R3NBQUh2eE9UTWZyZXFRbVlQTTlIREtWKzlPK0x0L3JNazZtN1Q1cVZiZ1BkUzFROHNTUmxHVFZPWU5iekdvKy9Cb2x4ZG41bDIwSjIxOU1od0FBSFJMc2d2QWlTcWx2SStJSjQwWCsvQWppNGg0VVVxNTY3RFBMbUs1SEJLd3YyUERLaUh5UmQyUEFRQllhcjBXR1VURUg1bDVuNW5YcXlTSXpCeG01aWd6WDJmbXg0ajRUMFM4T3JQWVBkM2xSWms1anRPdVNudFYyL3hkYmVOVm0xL1ZQOTlsNXVmYTVxZTZuUjhPOURsZEpOWDgxc0UrL0xudXc4TU4rL0FnTSsranJhcE0xR3N6RHlVQUFIUk1zZ3ZBQ2F0UHRqeHh3VXpIWmhIeHJGYUo2TnBVZU9FZ3g0ZFZsWmVKYUFBQVJFUjNpY0RqaVBnWUVWOHlNeVBpUzBSOGptVUZrM090NkRLdWlTc2J5OHgzc1Z6MjVaaTZ1UDRjUk1UcjJzYXJOditqL3ZsTjdMNU1VbCt1RzFvcnBtemlvYVBsb0NZZDdjZmoycGIzbVRuK052R2xKcmlNYWgvK0V0MHN4L3pRVWNWY0FBRFdTSFlCT0hHZTRxZGprMWdtdXV5ckFzdnZRZ3dIUFQ3Y1JNU3pVRlVKQUhCdU5MM3dFTFJ1LzMydFpETDQwWCtvU1FManpQd1N5d1NSWTNNT3ZKbDlWM2Y1MU5FK3ZJajI2aTdyeHJGTXlQcVNhMkpacWVkejdjT0Rqajdyclc0R0FOQTl5UzRBWjZJK3hmOGtWTTVnTjZ0bGkyNzIvTFNSL2dtSFB6NU1TeWxQSXVJMkpFVUNBSmZ0a3E5SDVoMjh4NXVJK0U5bWZxNUwrOXpWbjNkcnkvbmNSOFN3SitmQmk3RDA4eVltZTM3L0xxdkd2ai9CTnAxMFZOa0dBSUJ2U0hZQk9DT2xsSGtwNVZtbzhzSjJwaEh4eTU2V0xmcTJqeTdDMDNWd3JHUEUrMWd1YmZUV01RSUF1RkNmTG5YRDYyUjdWOWRpbzFoV3ZYaFRmMTVIZjVmenNlenpZZnZHdHlaZFBsQlQzK3YyaE1KN2F0OFhBT0NrU0hZQk9FTTFhZUdYMlAvVE9aeTJSVVRjbGxLZUhYanQ2S25RdzlHT0Q0dFN5bDA5UnJ3WEVRRGd3bHo2TmZLSEM5em0zM1Q3by9hTnpoUE02ajJ2VTdtV2VYdmcreTBBQUJkRnNndkFtYW9UbWpjUjhTeFUwdUIvUGNTeW1zc3hiaEI5RW43b3hUSGlObFI2QVFBdTdCd29ManZoWlhKcDUzMjFhc2xVNzkrb2IzUnRzYThLc3ZWYXB1LzN1aDZPZE04RkFPQmlTSFlCT0hPbGxHa3A1VWxFM0lUSlRKWnJXNzhvcGJ3NDF0TkZwWlNwWm9EZUhDUG1hNVZlM3RZeGd0Tm55VGdBK0xHTFRmU3QxNENYV09ua1JyZmZxRzkwblppeTd5V2srdnh3MTF5L0F3RFlQOGt1QUJlaWxESUpUL0Jmc2tWdCt5ZjdlckpxUzFOTkFyMDZSaXhLS1hlbGxGOWllVk5Xb3NScG1zUXlvZkdmUFJuckFhQ1A1ejN6aUxpOTRPMi91N1J6dmRybWIvWCtSM1ZkaGZYRG50dDFFZjFNZUZuVWMzTDMzZ0FBOWt5eUM4QUZXVTFteGpMcFJTblZ5ekdKWlpMTFhZOXV0dnl1V2FDM3g0cEpyUWoySkM2dzFQMEplb2hsZ3RJL1N5azNrbHdBWUxQem5ianM1WXhlSE9rY2IzSEVOcis3OERiZjlMeXlxemFhSDZLcWF3OFRYaFlSOGF5VTR1RUJBSUFEa093QzhQL3QzZEZ4R2tjQUJ1RC9adkllcDRMSUZWaXVRRklGamlwd3FDQkRCM1lGY1Ftb0E2V0Rjd2ZuRGxBRndSVmNIbmJQTUxGa0dZSGdUbnpmREFNampSRHNMdHplM3IrN0o2aUdYdVlwb1plRkVubXgycFNReTZ6T1pCdmJhd1BHZmF6bzZ2ZkhieWxoQ2lHS2NWalZZL2QxU3NEbHVnYVVoSklBWUx1K3p1eFV6NGZyK2VGVkRocyttWTNnUEhDdVQvdkRkckhQcll4dUQvbTZhMWovMkpPNnVwUXhHRUVYQUlBREVYWUJPR0ZOMHl6ckFKL3RqVjZXTm1VbTBXaG5FOVVaWHRvYlRPZDRzV2lhNWpxSjRNdnh2dGVIcmVpK3JlQWk0QUlBTy9keFpqblI3VzNxdWVKVmt1VXovNnRoUzVkRmpyekNadzFGWE1kS3R6K3lyNjJNYm81UXYvTUR0ZW43ZkVvWmgxbHFRZ0FBaHlQc0FzQVFldm1RZGVqRnlmazB0Vm1IWE5xSnZGNWdXc2VMMVQzQmwwV0UxL2F0U3hrd0gxWnZ1YXBiMFprbENnRDc3OTk4U05tK3NUM0I5OTdWOS81YzRZK3VucVBlanVrY2NDTVU0WnowKzdMWngxWkczYkg2clhVczVHME9ONkZyV2R2NFhCQWRBT0R3aEYwQTJCd1VXTldMYWE4emppV0crVG1MSks4bkZISVpmRloxTVBsanhtSmpxNk5oVU5teFl6dXJyRmR1dVVvSnQ3eXRBK1pXYndHQXcvUnJ1cVpwcm1wL1pwR25YeVJmcGdSSDVoUHIwKzA3L0xGS01xOTltbTZ6bkRPU2tIVFRORzJ0ODZzZDYzd0lLUzllMEVkaTExVWNiMGJRcGora1RPaWE1M2ttZEhWSlprM1R2SjdZT0F3QXdJdnlpeUlBNElIQmdVV1NSZC8zNTBuK1N2SkhrbGRLWmpTV0tRTklueVo4SWJSVmpmQ2lqaHRkeXFCdmtxVHYrOHNrbDBrdWtwdzdoaVFwRjFHR2N2cVNJODU2QmVEQlB2YkhIZi8rS1c1eTNDQjRlOEQzM0I3cGRXN1RuNWtsbWRWejRjdmFoN2w0NEUrNkpGL3JhK3VlZUc2MlM3dHI5L2plMnlSdDMvZG5HMk1BWjFzK3pXMlNmK3A0d2tQbVd6N3Y4cG5ydkszbE9LdjkxL05INnZ6elJ0ay90YzVIL1RtbzdmRnVoNzhmeFphbnRXNCtKZmxVUDgvdjYyZjYvSWxQMmFWczgzU3JEdzhBTUE2TklnRGdaL1Y5LzJlU2R5bURYaHpIYlpLYmpXV2dwOTZtL28wTDROdjZXR2Vwd2RRKzcyY3BBOHZuS1JjUHpyTDlCWlFwYVZNdXp0d05qNXVtV1dvSkFNQkUrMisvNXZ1UXdMZmdoOVV0bUZqYnZzdzYyUFQ3UGVjbFF6OStsUkpxMHI0QkFFWkkyQVdBcHd3S25LVUVYdDduNlROaStIbGR5bXpQMjVkMm9iVHYrNysxb2EzZFBESlRFcWIyUFhDWmRmRGxUY3FBOHhSV2dsbHUzTzQySG5lMkhnSUFBQUFBZUY3Q0xnRHNaQ1A0OGk1bE9WajJZNW4xS2k2V3h3Vk85Umd6aEY2R0FFeHkvNnppWFk4L3cvWkNtNFp0Q1lidjVPWHdjMkVXQUFBQUFJRGpFbllCWUcvNnZuK1ZFbnk1cVBlMnA5bE9tL1grejB2RkFRQUFBQUFBQU44VGRnSGcyZFFaK1pleDZzdERsbGtIWEZvckJRQUFBQUFBQU1EamhGMEFPSmlOOE10RnloWVVaeWRXQkYxS3VPVkxTcmhscVZVQUFBQUFBQURBZG9SZEFEaWF1dTNSRUlCNWt4SitPWDhoYjY5TldibmxTNUt1YVpwV2pRTUFBQUFBQU1EdWhGMEFHSjI2QXN4WlN2RGw5L3A0dUkxSmwyUlY3NyttQmx5czJBSUFBQUFBQUFEUFI5Z0ZnRW5aV0EwbTlmNVZmVHlFWWpadC92NHh5M3I3LzgvdTd2bDkxelROU20wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBY0hyK0EzTEJkNGF3OFV5TEFBQUFBRWxGVGtTdVFtQ0NcXFwiLz48L2RlZnM+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDEyIDE0XFxcIj48cGF0aCBkPVxcXCJNLjY2NyA3YS42NjcuNjY3IDAgMCAwIC42NjYuNjY2aDUuMDZMNC44NiA5LjE5M2EuNjY3LjY2NyAwIDAgMCAuMjE3IDEuMDkzLjY2OC42NjggMCAwIDAgLjczLS4xNDZsMi42NjYtMi42NjdhLjY2Ny42NjcgMCAwIDAgLjE0LS4yMi42NjcuNjY3IDAgMCAwIDAtLjUwNy42NjcuNjY3IDAgMCAwLS4xNC0uMjJMNS44MDcgMy44NmEuNjcuNjcgMCAwIDAtLjk0Ny45NDZsMS41MzMgMS41MjdoLTUuMDZBLjY2Ny42NjcgMCAwIDAgLjY2NyA3Wk05LjMzMy4zMzNIMi42NjdhMiAyIDAgMCAwLTIgMnYyYS42NjcuNjY3IDAgMSAwIDEuMzMzIDB2LTJhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3aDYuNjY2YS42NjcuNjY3IDAgMCAxIC42NjcuNjY3djkuMzMzYS42NjYuNjY2IDAgMCAxLS42NjcuNjY3SDIuNjY3QS42NjYuNjY2IDAgMCAxIDIgMTEuNjY2di0yYS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2MmEyIDIgMCAwIDAgMiAyaDYuNjY2YTIgMiAwIDAgMCAyLTJWMi4zMzNhMiAyIDAgMCAwLTItMlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyMCAxNlxcXCI+PHBhdGggZD1cXFwiTTE3IDBIM2EzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTRhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNabS0uNDEgMi01Ljg4IDUuODhhMSAxIDAgMCAxLTEuNDIgMEwzLjQxIDJoMTMuMThaTTE4IDEzYTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjMuNDFsNS44OCA1Ljg4YTMgMyAwIDAgMCA0LjI0IDBMMTggMy40MVYxM1pcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE1IDE0XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMi44NDYgNy41ODNhLjU4My41ODMgMCAwIDAtLjYxMi0uMDgyIDQuNjk2IDQuNjk2IDAgMCAxLTEuOTY2LjQyNkE0Ljc1NCA0Ljc1NCAwIDAgMSA1LjUyIDMuMjAyYTUuMDEgNS4wMSAwIDAgMSAuMTQ1LTEuMTY2LjU4My41ODMgMCAwIDAtLjc3NS0uNjYgNS45MTUgNS45MTUgMCAxIDAgOC4xNjYgNi44Mi41ODMuNTgzIDAgMCAwLS4yMS0uNjEzWm0tNS41NDEgMy45MDNhNC43NDggNC43NDggMCAwIDEtMi45NTItOC40NDF2LjE1N2E1LjkyIDUuOTIgMCAwIDAgNy4xNCA1Ljc4NyA0LjczMSA0LjczMSAwIDAgMS00LjE4OCAyLjUydi0uMDIzWlxcXCIgZmlsbD1cXFwiI0E2NkVFOVxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEwLjY2NyA5LjMzM0g1LjMzM2EuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaDUuMzM0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNabTAtMi42NjdoLTRhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNGg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRabTIuNjY2LTRoLTJWMkEuNjY3LjY2NyAwIDEgMCAxMCAydi42NjZIOC42NjdWMmEuNjY3LjY2NyAwIDEgMC0xLjMzNCAwdi42NjZINlYyYS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2LjY2NmgtMkEuNjY3LjY2NyAwIDAgMCAyIDMuMzMzdjkuMzMzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMuMzMzYS42NjYuNjY2IDAgMCAwLS42NjctLjY2N1ptLS42NjYgMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjdINGEuNjY2LjY2NiAwIDAgMS0uNjY3LS42NjdWNGgxLjMzNHYuNjY2YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWNGgxLjMzM3YuNjY2YS42NjcuNjY3IDAgMCAwIDEuMzM0IDBWNEgxMHYuNjY2YS42NjYuNjY2IDAgMSAwIDEuMzMzIDBWNGgxLjMzNHY4LjY2NlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTkuMzM0IDUuMzMzSDEwQS42NjcuNjY3IDAgMCAwIDEwIDRoLS42NjZhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1ptMCAyLjY2N0gxMGEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0aC0uNjY2YS42NjcuNjY3IDAgMCAwIDAgMS4zMzRaTTYgNS4zMzNoLjY2N2EuNjY3LjY2NyAwIDAgMCAwLTEuMzMzSDZhLjY2Ny42NjcgMCAxIDAgMCAxLjMzM1pNNiA4aC42NjdhLjY2Ny42NjcgMCAxIDAgMC0xLjMzNEg2QS42NjcuNjY3IDAgMCAwIDYgOFptOCA1LjMzM2gtLjY2NlYyYS42NjYuNjY2IDAgMCAwLS42NjctLjY2N0gzLjMzM0EuNjY3LjY2NyAwIDAgMCAyLjY2NyAydjExLjMzM0gyYS42NjYuNjY2IDAgMSAwIDAgMS4zMzNoMTJhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptLTUuMzMzIDBINy4zMzR2LTIuNjY3aDEuMzMzdjIuNjY3Wm0zLjMzMyAwaC0yVjEwYS42NjcuNjY3IDAgMCAwLS42NjYtLjY2N0g2LjY2N0EuNjY3LjY2NyAwIDAgMCA2IDEwdjMuMzMzSDRWMi42NjZoOHYxMC42NjdaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk02IDYuNjY2aC42NjdhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM0g2YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNaTTYgOGEuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaDRBLjY2Ny42NjcgMCAwIDAgMTAgOEg2Wm03LjMzMy0yLjA0YS44OC44OCAwIDAgMC0uMDQtLjE4di0uMDZhLjcxNC43MTQgMCAwIDAtLjEyNy0uMTg3bC00LTRhLjcxMy43MTMgMCAwIDAtLjE4Ni0uMTI3LjIxMy4yMTMgMCAwIDAtLjA2IDAgLjU4Ny41ODcgMCAwIDAtLjIyLS4wNzNINC42NjdhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDYuNjY2YTIgMiAwIDAgMCAyLTJWNS45NlptLTQtMi4zNTQgMS43MjcgMS43MjdIMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ny0uNjY3di0xLjA2Wk0xMiAxMi42NjZhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjdINC42NjZBLjY2Ni42NjYgMCAwIDEgNCAxMi42NjZWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3SDh2MmEyIDIgMCAwIDAgMiAyaDJ2NlptLTItMkg2QS42NjcuNjY3IDAgMCAwIDYgMTJoNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDE0IDE1XFxcIj48cGF0aCBkPVxcXCJtMTEuNzkgNi44OTYuMDU2LjQzN0gxM2EuMTY2LjE2NiAwIDAgMSAuMTE4LjI4NWwuMzUzLjM1My0uMzUzLS4zNTNhLjE2Ni4xNjYgMCAwIDEtLjExOC4wNDloLTEuMTU0bC0uMDU1LjQzN2E0LjgzMyA0LjgzMyAwIDAgMS00LjE4NyA0LjE4N2wtLjQzNy4wNTVWMTMuNWEuMTY3LjE2NyAwIDAgMS0uMDUuMTE4bC4zNTQuMzUzLS4zNTMtLjM1M2EuMTY3LjE2NyAwIDAgMS0uMjg1LS4xMTh2LTEuMTUzbC0uNDM3LS4wNTZBNC44MzMgNC44MzMgMCAwIDEgMi4yMSA4LjEwNGwtLjA1NS0uNDM3SDFhLjE2Ny4xNjcgMCAxIDEgMC0uMzM0aDEuMTUzbC4wNTYtLjQzN0E0LjgzMyA0LjgzMyAwIDAgMSA2LjM5NiAyLjcxbC40MzctLjA1NVYxLjVhLjE2Ny4xNjcgMCAwIDEgLjMzNCAwdjEuMTUzbC40MzcuMDU2YTQuODM0IDQuODM0IDAgMCAxIDQuMTg3IDQuMTg3Wm0tLjM1NyAxLjM1NC4xLS41ODNoLTEuMmEuMTY2LjE2NiAwIDEgMSAwLS4zMzRoMS4xOTlsLS4xLS41ODNBNC41IDQuNSAwIDAgMCA3Ljc1IDMuMDY3bC0uNTgzLS4xdjEuMmEuMTY3LjE2NyAwIDAgMS0uMDUuMTE4bC4zMDQuMzAzLS4zMDMtLjMwM2EuMTY3LjE2NyAwIDAgMS0uMjg1LS4xMThWMi45NjhsLS41ODMuMUE0LjUgNC41IDAgMCAwIDIuNTY3IDYuNzVsLS4xLjU4M2gxLjJhLjE2Ny4xNjcgMCAwIDEgLjExOC4yODVsLjMwMy4zMDMtLjMwNC0uMzAzYS4xNjcuMTY3IDAgMCAxLS4xMTcuMDQ5SDIuNDY4bC4xLjU4M2E0LjUgNC41IDAgMCAwIDMuNjgyIDMuNjgzbC41ODMuMXYtMS4yYS4xNjYuMTY2IDAgMSAxIC4zMzQgMHYxLjE5OWwuNTgzLS4xYTQuNSA0LjUgMCAwIDAgMy42ODMtMy42ODJabS00LjUyNi0uODg5YS4xNjcuMTY3IDAgMSAxIC4xODYuMjc4LjE2Ny4xNjcgMCAwIDEtLjE4Ni0uMjc4WlxcXCIgZmlsbD1cXFwiQ3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcIkN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEwLjY2NyA5LjMzM0g1LjMzM2EuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaDUuMzM0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNabTAtMi42NjdoLTRhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNGg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRabTIuNjY2LTRoLTJWMkEuNjY3LjY2NyAwIDEgMCAxMCAydi42NjZIOC42NjdWMmEuNjY3LjY2NyAwIDEgMC0xLjMzNCAwdi42NjZINlYyYS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2LjY2NmgtMkEuNjY3LjY2NyAwIDAgMCAyIDMuMzMzdjkuMzMzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMuMzMzYS42NjYuNjY2IDAgMCAwLS42NjctLjY2N1ptLS42NjYgMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjdINGEuNjY2LjY2NiAwIDAgMS0uNjY3LS42NjdWNGgxLjMzNHYuNjY2YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWNGgxLjMzM3YuNjY2YS42NjcuNjY3IDAgMCAwIDEuMzM0IDBWNEgxMHYuNjY2YS42NjYuNjY2IDAgMSAwIDEuMzMzIDBWNGgxLjMzNHY4LjY2NlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTggNGEuNjY3LjY2NyAwIDAgMC0uNjY3LjY2NnY2LjY2N2EuNjY3LjY2NyAwIDEgMCAxLjMzNCAwVjQuNjY2QS42NjcuNjY3IDAgMCAwIDggNFpNNC42NjcgOEEuNjY3LjY2NyAwIDAgMCA0IDguNjY2djIuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWOC42NjZBLjY2Ny42NjcgMCAwIDAgNC42NjcgOFptNi42NjctMS4zMzRhLjY2Ny42NjcgMCAwIDAtLjY2Ny42Njd2NGEuNjY3LjY2NyAwIDAgMCAxLjMzMyAwdi00YS42NjcuNjY3IDAgMCAwLS42NjYtLjY2N1ptMS4zMzMtNS4zMzNIMy4zMzNhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDkuMzM0YTIgMiAwIDAgMCAyLTJWMy4zMzNhMiAyIDAgMCAwLTItMlptLjY2NyAxMS4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ny42NjdIMy4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ni0uNjY3VjMuMzMzYS42NjcuNjY3IDAgMCAxIC42NjctLjY2N2g5LjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LjY2N3Y5LjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTggNGEuNjY3LjY2NyAwIDAgMC0uNjY3LjY2NnY2LjY2N2EuNjY3LjY2NyAwIDEgMCAxLjMzNCAwVjQuNjY2QS42NjcuNjY3IDAgMCAwIDggNFpNNC42NjcgOEEuNjY3LjY2NyAwIDAgMCA0IDguNjY2djIuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWOC42NjZBLjY2Ny42NjcgMCAwIDAgNC42NjcgOFptNi42NjctMS4zMzRhLjY2Ny42NjcgMCAwIDAtLjY2Ny42Njd2NGEuNjY3LjY2NyAwIDAgMCAxLjMzMyAwdi00YS42NjcuNjY3IDAgMCAwLS42NjYtLjY2N1ptMS4zMzMtNS4zMzNIMy4zMzNhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDkuMzM0YTIgMiAwIDAgMCAyLTJWMy4zMzNhMiAyIDAgMCAwLTItMlptLjY2NyAxMS4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ny42NjdIMy4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ni0uNjY3VjMuMzMzYS42NjcuNjY3IDAgMCAxIC42NjctLjY2N2g5LjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LjY2N3Y5LjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTggNGEuNjY3LjY2NyAwIDAgMC0uNjY3LjY2NnY2LjY2N2EuNjY3LjY2NyAwIDEgMCAxLjMzNCAwVjQuNjY2QS42NjcuNjY3IDAgMCAwIDggNFpNNC42NjcgOEEuNjY3LjY2NyAwIDAgMCA0IDguNjY2djIuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWOC42NjZBLjY2Ny42NjcgMCAwIDAgNC42NjcgOFptNi42NjctMS4zMzRhLjY2Ny42NjcgMCAwIDAtLjY2Ny42Njd2NGEuNjY3LjY2NyAwIDAgMCAxLjMzMyAwdi00YS42NjcuNjY3IDAgMCAwLS42NjYtLjY2N1ptMS4zMzMtNS4zMzNIMy4zMzNhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDkuMzM0YTIgMiAwIDAgMCAyLTJWMy4zMzNhMiAyIDAgMCAwLTItMlptLjY2NyAxMS4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ny42NjdIMy4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ni0uNjY3VjMuMzMzYS42NjcuNjY3IDAgMCAxIC42NjctLjY2N2g5LjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LjY2N3Y5LjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTQuNjY3IDEwLjY2NmExIDEgMCAwIDAgMS0xIC41MTQuNTE0IDAgMCAwIDAtLjFsMS44Ni0xLjg2aC4zMDZMOC45MDcgOC43OHYuMDUzYTEgMSAwIDEgMCAyIDBWOC43OGwyLjQyNi0yLjQ0N2ExIDEgMCAxIDAtMS0xIC41MjIuNTIyIDAgMCAwIDAgLjFMOS45MjcgNy44NEg5LjgyTDguNjY3IDYuNjY2YTEgMSAwIDAgMC0yIDBsLTIgMmExIDEgMCAwIDAgMCAyWm05IDIuNjY3SDIuMzMzVjJBLjY2Ny42NjcgMCAxIDAgMSAydjEyYS42NjcuNjY3IDAgMCAwIC42NjcuNjY2aDEyYS42NjcuNjY3IDAgMCAwIDAtMS4zMzNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk02IDYuNjY2aC42NjdhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM0g2YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNaTTYgOGEuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaDRBLjY2Ny42NjcgMCAwIDAgMTAgOEg2Wm03LjMzMy0yLjA0YS44OC44OCAwIDAgMC0uMDQtLjE4di0uMDZhLjcxNC43MTQgMCAwIDAtLjEyNy0uMTg3bC00LTRhLjcxMy43MTMgMCAwIDAtLjE4Ni0uMTI3LjIxMy4yMTMgMCAwIDAtLjA2IDAgLjU4Ny41ODcgMCAwIDAtLjIyLS4wNzNINC42NjdhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDYuNjY2YTIgMiAwIDAgMCAyLTJWNS45NlptLTQtMi4zNTQgMS43MjcgMS43MjdIMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ny0uNjY3di0xLjA2Wk0xMiAxMi42NjZhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjdINC42NjZBLjY2Ni42NjYgMCAwIDEgNCAxMi42NjZWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3SDh2MmEyIDIgMCAwIDAgMiAyaDJ2NlptLTItMkg2QS42NjcuNjY3IDAgMCAwIDYgMTJoNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI0IDI0XFxcIj48cGF0aCBkPVxcXCJNMTIgMTRhMSAxIDAgMSAwLTEtMSAxIDEgMCAwIDAgMSAxWm01IDBhMSAxIDAgMSAwLTEtMSAxIDEgMCAwIDAgMSAxWm0tNSA0YTEgMSAwIDEgMC0xLTEgMSAxIDAgMCAwIDEgMVptNSAwYTEgMSAwIDEgMC0xLTEgMSAxIDAgMCAwIDEgMVpNNyAxNGExIDEgMCAxIDAtMS0xIDEgMSAwIDAgMCAxIDFaTTE5IDRoLTFWM2ExIDEgMCAwIDAtMiAwdjFIOFYzYTEgMSAwIDAgMC0yIDB2MUg1YTMgMyAwIDAgMC0zIDN2MTJhMyAzIDAgMCAwIDMgM2gxNGEzIDMgMCAwIDAgMy0zVjdhMyAzIDAgMCAwLTMtM1ptMSAxNWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXYtOWgxNlptMC0xMUg0VjdhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxWk03IDE4YTEgMSAwIDEgMC0xLTEgMSAxIDAgMCAwIDEgMVpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxMiAxNVxcXCI+PHBhdGggZD1cXFwibTYuMTQgMTAuNzQyLjAyLjA1OC4wMDcuMDF2LjAzNmEuMDYuMDYgMCAwIDEtLjAwNi4wMjdsLS4wMS4wMjItLjAwOC4wMjFhLjEuMSAwIDAgMS0uMDYuMDZsLS4wMjIuMDA4LS4wMjEuMDFhLjA2LjA2IDAgMCAxLS4wMjcuMDA2aC0uMDA2YS4xNjYuMTY2IDAgMCAxLS4xMDYtLjA0LjI2Ni4yNjYgMCAwIDEtLjA0LS4wNjZsLS4wMDQtLjAxLS4wMDUtLjAxYS4wNi4wNiAwIDAgMS0uMDA1LS4wMjh2LS4wMjNsLS4wMDEtLjAyMy0uMDAxLS4wMTguMDAzLS4wMDcuMDEyLS4wMzNhLjU3Ni41NzYgMCAwIDEgLjAyMy0uMDMuMTY2LjE2NiAwIDAgMSAuMDQ0LS4wMjZsLjAxNC0uMDA1YS4xNjcuMTY3IDAgMCAxIC4wOTYtLjAxbC4wOTQtLjQ5MS0uMDk0LjQ5YS4xNjYuMTY2IDAgMCAxIC4wNzcuMDM4Yy4wMDkuMDEuMDE4LjAyMi4wMjYuMDM0Wm0uNjkzLTkuMzM1IDMuOTYzIDMuOTYzLjAyMy4wN2EuMzcuMzcgMCAwIDEgLjAxNC4wNTR2Ni42NzNhMS41IDEuNSAwIDAgMS0xLjUgMS41SDIuNjY3YTEuNSAxLjUgMCAwIDEtMS4wNjEtLjQ0bC0uMzQ4LjM0OC4zNDgtLjM0OGExLjUgMS41IDAgMCAxLS40NC0xLjA2VjIuODMzYTEuNSAxLjUgMCAwIDEgMS41LTEuNWgzLjk5bC4wMTUuMDA3LjExNi4wNjdoLjA0NlptLjg1NCAxLjM0Nkw2LjgzMyAxLjl2Mi4yNjdBMS4xNjcgMS4xNjcgMCAwIDAgOCA1LjMzM2gyLjI2N2wtLjg1My0uODUzLTEuNzI3LTEuNzI3Wk02LjUgMi4xNjd2LS41SDIuNjY3QTEuMTY3IDEuMTY3IDAgMCAwIDEuNSAyLjgzM3Y5LjMzNGExLjE2NyAxLjE2NyAwIDAgMCAxLjE2NyAxLjE2Nmg2LjY2NmExLjE2NyAxLjE2NyAwIDAgMCAxLjE2Ny0xLjE2NnYtNi41SDhhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWm0tLjYxOCA1LjIxNWEuMTY3LjE2NyAwIDAgMSAuMjg1LjExOHYxLjMzM2EuMTY3LjE2NyAwIDAgMS0uMzM0IDBWNy41YzAtLjA0NC4wMTgtLjA4Ny4wNS0uMTE4WlxcXCIgZmlsbD1cXFwiQ3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcIkN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxMiAxNVxcXCI+PHBhdGggZD1cXFwibTYuMTQgMTAuNzQyLjAyLjA1OC4wMDcuMDF2LjAzNmEuMDYuMDYgMCAwIDEtLjAwNi4wMjdsLS4wMS4wMjItLjAwOC4wMjFhLjEuMSAwIDAgMS0uMDYuMDZsLS4wMjIuMDA4LS4wMjEuMDFhLjA2LjA2IDAgMCAxLS4wMjcuMDA2aC0uMDA2YS4xNjYuMTY2IDAgMCAxLS4xMDYtLjA0LjI2Ni4yNjYgMCAwIDEtLjA0LS4wNjZsLS4wMDQtLjAxLS4wMDUtLjAxYS4wNi4wNiAwIDAgMS0uMDA1LS4wMjh2LS4wMjNsLS4wMDEtLjAyMy0uMDAxLS4wMTguMDAzLS4wMDcuMDEyLS4wMzNhLjU3Ni41NzYgMCAwIDEgLjAyMy0uMDMuMTY2LjE2NiAwIDAgMSAuMDQ0LS4wMjZsLjAxNC0uMDA1YS4xNjcuMTY3IDAgMCAxIC4wOTYtLjAxbC4wOTQtLjQ5MS0uMDk0LjQ5YS4xNjYuMTY2IDAgMCAxIC4wNzcuMDM4Yy4wMDkuMDEuMDE4LjAyMi4wMjYuMDM0Wm0uNjkzLTkuMzM1IDMuOTYzIDMuOTYzLjAyMy4wN2EuMzcuMzcgMCAwIDEgLjAxNC4wNTR2Ni42NzNhMS41IDEuNSAwIDAgMS0xLjUgMS41SDIuNjY3YTEuNSAxLjUgMCAwIDEtMS4wNjEtLjQ0bC0uMzQ4LjM0OC4zNDgtLjM0OGExLjUgMS41IDAgMCAxLS40NC0xLjA2VjIuODMzYTEuNSAxLjUgMCAwIDEgMS41LTEuNWgzLjk5bC4wMTUuMDA3LjExNi4wNjdoLjA0NlptLjg1NCAxLjM0Nkw2LjgzMyAxLjl2Mi4yNjdBMS4xNjcgMS4xNjcgMCAwIDAgOCA1LjMzM2gyLjI2N2wtLjg1My0uODUzLTEuNzI3LTEuNzI3Wk02LjUgMi4xNjd2LS41SDIuNjY3QTEuMTY3IDEuMTY3IDAgMCAwIDEuNSAyLjgzM3Y5LjMzNGExLjE2NyAxLjE2NyAwIDAgMCAxLjE2NyAxLjE2Nmg2LjY2NmExLjE2NyAxLjE2NyAwIDAgMCAxLjE2Ny0xLjE2NnYtNi41SDhhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWm0tLjYxOCA1LjIxNWEuMTY3LjE2NyAwIDAgMSAuMjg1LjExOHYxLjMzM2EuMTY3LjE2NyAwIDAgMS0uMzM0IDBWNy41YzAtLjA0NC4wMTgtLjA4Ny4wNS0uMTE4WlxcXCIgZmlsbD1cXFwiQ3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcIkN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEwLjY2NyA5LjMzM0g1LjMzM2EuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaDUuMzM0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNabTAtMi42NjdoLTRhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNGg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRabTIuNjY2LTRoLTJWMkEuNjY3LjY2NyAwIDEgMCAxMCAydi42NjZIOC42NjdWMmEuNjY3LjY2NyAwIDEgMC0xLjMzNCAwdi42NjZINlYyYS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2LjY2NmgtMkEuNjY3LjY2NyAwIDAgMCAyIDMuMzMzdjkuMzMzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMuMzMzYS42NjYuNjY2IDAgMCAwLS42NjctLjY2N1ptLS42NjYgMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjdINGEuNjY2LjY2NiAwIDAgMS0uNjY3LS42NjdWNGgxLjMzNHYuNjY2YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWNGgxLjMzM3YuNjY2YS42NjcuNjY3IDAgMCAwIDEuMzM0IDBWNEgxMHYuNjY2YS42NjYuNjY2IDAgMSAwIDEuMzMzIDBWNGgxLjMzNHY4LjY2NlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEwLjY2NyA5LjMzM0g1LjMzM2EuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaDUuMzM0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNabTAtMi42NjdoLTRhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNGg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRabTIuNjY2LTRoLTJWMkEuNjY3LjY2NyAwIDEgMCAxMCAydi42NjZIOC42NjdWMmEuNjY3LjY2NyAwIDEgMC0xLjMzNCAwdi42NjZINlYyYS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2LjY2NmgtMkEuNjY3LjY2NyAwIDAgMCAyIDMuMzMzdjkuMzMzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMuMzMzYS42NjYuNjY2IDAgMCAwLS42NjctLjY2N1ptLS42NjYgMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjdINGEuNjY2LjY2NiAwIDAgMS0uNjY3LS42NjdWNGgxLjMzNHYuNjY2YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWNGgxLjMzM3YuNjY2YS42NjcuNjY3IDAgMCAwIDEuMzM0IDBWNEgxMHYuNjY2YS42NjYuNjY2IDAgMSAwIDEuMzMzIDBWNGgxLjMzNHY4LjY2NlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEyLjk2IDguNjY2Yy0uMTQ3IDAtLjMtLjA0Ni0uNDQ3LS4wOGE2LjI5IDYuMjkgMCAwIDEtLjg3My0uMjYgMS4zMzMgMS4zMzMgMCAwIDAtMS42NTMuNjY3bC0uMTQ3LjNBOC4xMiA4LjEyIDAgMCAxIDguMDY3IDcuOTZhOC4xMiA4LjEyIDAgMCAxLTEuMzM0LTEuNzc0TDcuMDEzIDZhMS4zMzMgMS4zMzMgMCAwIDAgLjY2Ny0xLjY1NCA2Ljg4NyA2Ljg4NyAwIDAgMS0uMjYtLjg3M2MtLjAzMy0uMTQ3LS4wNi0uMy0uMDgtLjQ1M2EyIDIgMCAwIDAtMi0xLjY2aC0yYTIgMiAwIDAgMC0yIDIuMjczIDEyLjY2NyAxMi42NjcgMCAwIDAgMTEuMDEzIDEwLjk3M2guMjU0YTIgMiAwIDAgMCAxLjgyNy0xLjE4NSAyIDIgMCAwIDAgLjE3My0uODIxdi0yYTIgMiAwIDAgMC0xLjY0Ny0xLjkzNFptLjMzMyA0YS42NjYuNjY2IDAgMCAxLS40ODIuNjQxLjcwNy43MDcgMCAwIDEtLjI5LjAyNkExMS4zMzMgMTEuMzMzIDAgMCAxIDIuNzEyIDMuNDhhLjcyNy43MjcgMCAwIDEgLjE2Ny0uNTQ3LjY2Ny42NjcgMCAwIDEgLjUtLjIyN2gyYS42NjcuNjY3IDAgMCAxIC42NjcuNTI3IDcuNDE0IDcuNDE0IDAgMCAwIC40MDcgMS41NzNsLS45MzQuNDM0YS42NjcuNjY3IDAgMCAwLS4zMjcuODg2IDkuNjYgOS42NiAwIDAgMCA0LjY2NyA0LjY2Ny42NjYuNjY2IDAgMCAwIC41MDcgMCAuNjY1LjY2NSAwIDAgMCAuMzgtLjM0N2wuNDEzLS45MzNjLjM0NS4xMjMuNjk3LjIyNiAxLjA1My4zMDcuMTc4LjA0LjM1OC4wNzMuNTQuMWEuNjY3LjY2NyAwIDAgMSAuNTI3LjY2NmwuMDEzIDIuMDhaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTUgMTVcXFwiPjxwYXRoIGQ9XFxcIk0xMC45MTcgOS42NjZoLS42NTlsLS4yMzMtLjIyNWE1LjQxNyA1LjQxNyAwIDAgMCAxLjIzMy00LjQ1QzEwLjg2NyAyLjY3NSA4LjkzMy44MjUgNi42LjU0MUE1LjQyIDUuNDIgMCAwIDAgLjU0MiA2LjZjLjI4MyAyLjMzMyAyLjEzMyA0LjI2NiA0LjQ1IDQuNjU4YTUuNDE3IDUuNDE3IDAgMCAwIDQuNDUtMS4yMzNsLjIyNS4yMzN2LjY1OGwzLjU0MSAzLjU0MmEuODguODggMCAwIDAgMS4yNDIgMCAuODguODggMCAwIDAgMC0xLjI0MmwtMy41MzMtMy41NVptLTUgMGEzLjc0NSAzLjc0NSAwIDAgMS0zLjc1LTMuNzUgMy43NDUgMy43NDUgMCAwIDEgMy43NS0zLjc1IDMuNzQ1IDMuNzQ1IDAgMCAxIDMuNzUgMy43NSAzLjc0NSAzLjc0NSAwIDAgMS0zLjc1IDMuNzVaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiPjxwYXRoIGZpbGw9XFxcIiNmZmZcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJNOC4xNjcgNy4zMzR2LjVoNC41YS4xNjcuMTY3IDAgMSAxIDAgLjMzM2gtNC41djQuNWEuMTY2LjE2NiAwIDEgMS0uMzM0IDB2LTQuNWgtNC41YS4xNjcuMTY3IDAgMCAxIDAtLjMzM2g0LjV2LTQuNWEuMTY3LjE2NyAwIDEgMSAuMzM0IDB2NFpcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTcgMTZcXFwiPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIgZD1cXFwiTTguMTY3IDMuNnYtLjgwNWwtLjU3LjU2OS0uODY2Ljg2N2EuMzEyLjMxMiAwIDAgMS0uNDYyIDAgLjMxMi4zMTIgMCAwIDEgMC0uNDYybDItMi0uMjM0LS4yMzUuMjM0LjIzNWEuMzEyLjMxMiAwIDAgMSAuNDYyIDBsLjIzMy0uMjM0LS4yMzMuMjM0IDIgMmEuMzEyLjMxMiAwIDAgMSAwIC40NjIuMzY4LjM2OCAwIDAgMS0uMTA4LjA4LjI5Mi4yOTIgMCAwIDEtLjEyMy4wMjIuMjkyLjI5MiAwIDAgMS0uMTIzLS4wMjEuMzY4LjM2OCAwIDAgMS0uMTA4LS4wODFsLS44NjctLjg2Ny0uNTY5LS41N3Y4LjUzOWMwIC4xMjQtLjA0LjIwMi0uMDg1LjI0OC0uMDQ2LjA0NS0uMTI0LjA4NS0uMjQ4LjA4NXMtLjIwMi0uMDQtLjI0OC0uMDg1Yy0uMDQ1LS4wNDYtLjA4NS0uMTI0LS4wODUtLjI0OFYzLjZabTMgMi43MzNIMTIuNWMuOTUgMCAxLjY2Ny43MTcgMS42NjcgMS42Njd2NC42NjZjMCAuOTUtLjcxOCAxLjY2Ny0xLjY2NyAxLjY2N2gtOGMtLjk1IDAtMS42NjctLjcxNy0xLjY2Ny0xLjY2N1Y4YzAtLjk1LjcxOC0xLjY2NyAxLjY2Ny0xLjY2N2gxLjMzM2MuMTI1IDAgLjIwMi4wNC4yNDguMDg2LjA0Ni4wNDUuMDg2LjEyMy4wODYuMjQ3IDAgLjEyNS0uMDQuMjAyLS4wODYuMjQ4LS4wNDYuMDQ2LS4xMjMuMDg2LS4yNDguMDg2SDQuNWExIDEgMCAwIDAtLjcxOS4yOEExIDEgMCAwIDAgMy41IDh2NC42NjZhMSAxIDAgMCAwIC4yODEuNzIgMSAxIDAgMCAwIC43MTkuMjhoOGExIDEgMCAwIDAgLjcxOS0uMjggMSAxIDAgMCAwIC4yODEtLjcyVjhhMSAxIDAgMCAwLS4yODEtLjcyQTEgMSAwIDAgMCAxMi41IDdoLTEuMzMzYy0uMTI1IDAtLjIwMi0uMDQtLjI0OC0uMDg2LS4wNDYtLjA0Ni0uMDg2LS4xMjMtLjA4Ni0uMjQ4IDAtLjEyNC4wNC0uMjAyLjA4Ni0uMjQ3LjA0Ni0uMDQ2LjEyMy0uMDg2LjI0OC0uMDg2WlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAyMFxcXCI+PHBhdGggZD1cXFwiTTEyLjY2NyA3di4zMzNIMTNBMi42NjcgMi42NjcgMCAwIDEgMTUuNjY3IDEwdjdBMi42NjcgMi42NjcgMCAwIDEgMTMgMTkuNjY3SDNBMi42NjcgMi42NjcgMCAwIDEgLjMzMyAxN3YtN0EyLjY2NyAyLjY2NyAwIDAgMSAzIDcuMzMzaC4zMzNWNWE0LjY2NyA0LjY2NyAwIDAgMSA5LjMzNCAwdjJaTTExIDcuMzMzaC4zMzNWNWEzLjMzMyAzLjMzMyAwIDAgMC02LjY2NiAwdjIuMzMzSDExWm0yLjk0MyAxMC42MWMuMjUtLjI1LjM5LS41OS4zOS0uOTQzdi03QTEuMzMzIDEuMzMzIDAgMCAwIDEzIDguNjY3SDNBMS4zMzMgMS4zMzMgMCAwIDAgMS42NjcgMTB2N0ExLjMzMyAxLjMzMyAwIDAgMCAzIDE4LjMzM2gxMGMuMzU0IDAgLjY5My0uMTQuOTQzLS4zOVpcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZT1cXFwiIzE1NTM2NlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgdmlld0JveD1cXFwiMCAwIDE1IDE0XFxcIj48cGF0aCBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2Utd2lkdGg9XFxcIi42NjdcXFwiIGQ9XFxcIk03LjUgNC42NjZhMSAxIDAgMCAwLS44NjkuNWwtLjAwNi4wMTJhLjMzMy4zMzMgMCAwIDEtLjIwMy4xNjZsLjA5My4zMi0uMDkzLS4zMmEuMzMzLjMzMyAwIDAgMS0uMzYtLjEybC0uMjY2LjIuMjY3LS4yYS4zMzMuMzMzIDAgMCAxLS4wMTUtLjM3OWwuMDA0LS4wMDYuMDAzLS4wMDZBMS42NjcgMS42NjcgMCAwIDEgNy41IDRhMS42NjcgMS42NjcgMCAwIDEgLjU1NCAzLjIzM2wtLjIyLjA4di4zNTNhLjMzMy4zMzMgMCAxIDEtLjY2NiAwVjdhLjMzMy4zMzMgMCAwIDEgLjMzMy0uMzM0IDEgMSAwIDAgMCAwLTJabTAgMFY1bC4wMDEtLjMzNFptLS4zMTYgNC44OTguMDEtLjAyLjAwOC0uMDIzYS4xNzMuMTczIDAgMCAxIC4wMi0uMDM5IDEuMiAxLjIgMCAwIDEgLjA0Ni0uMDYuMzMzLjMzMyAwIDAgMSAuMTA0LS4wNjdsLS4xMjgtLjMwOC4xMjguMzA4YS4zMzMuMzMzIDAgMCAxIC4zNjUuMDczLjMzMy4zMzMgMCAwIDEgLjA5Ni4yMzZ2LjAxNWEuMzMzLjMzMyAwIDAgMS0uMDIuMTI2di4wMDFhLjI2Ny4yNjcgMCAwIDEtLjA2Mi4wOThsLjIzNi4yMzYtLjIzNi0uMjM2YS4yNjcuMjY3IDAgMCAxLS4wOTguMDYybC0uMDEuMDA0LS4wMTEuMDA1YS4yOTMuMjkzIDAgMCAxLS4yMzcgMGwtLjAxLS4wMDUtLjAxMi0uMDA0YS4yNjcuMjY3IDAgMCAxLS4wOTctLjA2MmwtLjIzNi4yMzYuMjM2LS4yMzZhLjI2Ny4yNjcgMCAwIDEtLjA2My0uMDk4bC0uMDA1LS4wMTQtLjAwNy0uMDE1YS4yMjcuMjI3IDAgMCAxLS4wMjEtLjEwMnYtLjAzM2EuNTczLjU3MyAwIDAgMS0uMDAyLS4wNjQuMDk0LjA5NCAwIDAgMSAuMDA2LS4wMTRaTTMuOTggMS43MzRhNi4zMzMgNi4zMzMgMCAxIDEgNy4wMzggMTAuNTMyQTYuMzMzIDYuMzMzIDAgMCAxIDMuOTggMS43MzRabS4zNyA5Ljk3N2E1LjY2NiA1LjY2NiAwIDEgMCA2LjI5Ny05LjQyMiA1LjY2NiA1LjY2NiAwIDAgMC02LjI5NiA5LjQyMlpcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTQgMTRcXFwiPjxwYXRoIGZpbGw9XFxcInJlZFxcXCIgZD1cXFwibTguNDEgNyA0LjMtNC4yOWExLjAwNCAxLjAwNCAwIDAgMC0xLjQyLTEuNDJMNyA1LjU5bC00LjI5LTQuM2ExLjAwNCAxLjAwNCAwIDEgMC0xLjQyIDEuNDJMNS41OSA3bC00LjMgNC4yOWEuOTk5Ljk5OSAwIDAgMCAwIDEuNDIgMSAxIDAgMCAwIDEuNDIgMEw3IDguNDFsNC4yOSA0LjNhMS4wMDEgMS4wMDEgMCAwIDAgMS42MzktLjMyNSAxIDEgMCAwIDAtLjIyLTEuMDk1TDguNDEgN1pcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgNiA2XFxcIj48Y2lyY2xlIGN4PVxcXCIzXFxcIiBjeT1cXFwiM1xcXCIgcj1cXFwiM1xcXCIgZmlsbD1cXFwiI0ZGNzI2NFxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEzLjk5OSA3LjMzM2MtLjQgMC0uNjY3LjI2Ny0uNjY3LjY2NyAwIDEuOTMzLTEgMy42NjYtMi42NjcgNC42LTIuNTMzIDEuNDY2LTUuOC42LTcuMjY2LTEuOTM0LTEuNDY3LTIuNTMzLS42LTUuOCAxLjkzMy03LjI2NmE1LjMzOCA1LjMzOCAwIDAgMSA2LjUzMy45MzNoLTEuNmMtLjQgMC0uNjY2LjI2Ny0uNjY2LjY2N3MuMjY2LjY2Ni42NjYuNjY2aDNjLjQgMCAuNjY3LS4yNjYuNjY3LS42NjZWMmMwLS40LS4yNjctLjY2Ny0uNjY3LS42NjdTMTIuNiAxLjYgMTIuNiAydjEuMmMtMS4yNjctMS4yLTIuODY3LTEuODY3LTQuNi0xLjg2Ny0zLjY2NyAwLTYuNjY3IDMtNi42NjcgNi42NjcgMCAzLjY2NiAzIDYuNjY2IDYuNjY3IDYuNjY2IDMuNjY2IDAgNi42NjYtMyA2LjY2Ni02LjY2NiAwLS40LS4yNjYtLjY2Ny0uNjY2LS42NjdaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjQgMjRcXFwiPjxwYXRoIGQ9XFxcIk0zIDEyaDE4bS01LTUgNSA1LTUgNVxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiMlxcXCIgc3Ryb2tlLWxpbmVjYXA9XFxcInJvdW5kXFxcIiBzdHJva2UtbGluZWpvaW49XFxcInJvdW5kXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIj48cGF0aCBkPVxcXCJtMTAuMTY1IDkuNjYyLjE2My4xNjQuMjEtLjA5NmExLjcyIDEuNzIgMCAwIDEgMS44OTUuMzE0bDEuMzc2IDEuNDA5LjIzOC0uMjMzLS4yMzMuMjM4YTEuNjY1IDEuNjY1IDAgMCAxIDAgMi4zODRsLS4wMDMuMDAyYTEuNjY3IDEuNjY3IDAgMCAxLTIuMzU1IDBsLTEuNDEyLTEuNDEyYTEuNjY3IDEuNjY3IDAgMCAxLS4yOTMtMS45MmwuMTEtLjIxNi0uMTcyLS4xNzItLjU5My0uNTkzLS4yMDQtLjIwNC0uMjMxLjE3M2E0LjMzMyA0LjMzMyAwIDEgMSAuODcyLS44NzNsLS4xNzMuMjMxLjIwNS4yMDQuNi42Wm0yLjg1MyAzLjg5OGExIDEgMCAwIDAgLjU0My0uNTQyLjk5OS45OTkgMCAwIDAtLjIxOS0xLjA5NGwtMS40MTItMS40MTJhMSAxIDAgMCAwLTEuNjM3LjMyMyAxIDEgMCAwIDAgLjIxOSAxLjA5NWwxLjQxMiAxLjQxMXYuMDAxYS45OTkuOTk5IDAgMCAwIDEuMDk0LjIxOFpNNi43NTIgOS42M2EzLjY2NyAzLjY2NyAwIDEgMC0xLjQyNC03LjE5NEEzLjY2NyAzLjY2NyAwIDAgMCA2Ljc1MiA5LjYzWlxcXCIgZmlsbD1cXFwiI0E2QjVCQVxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwibTE0LjIxMiA2LjM2Ni0xLjI2LS40Mi41OTMtMS4xODZBLjY2Ny42NjcgMCAwIDAgMTMuNDIgNGwtMS40Mi0xLjQyYS42NjcuNjY3IDAgMCAwLS43NjctLjEyN2wtMS4xODcuNTkzLS40Mi0xLjI2QS42NjcuNjY3IDAgMCAwIDkgMS4zMzNoLTJhLjY2Ny42NjcgMCAwIDAtLjYzNC40NTNsLS40MiAxLjI2LTEuMTg2LS41OTNhLjY2Ny42NjcgMCAwIDAtLjc2LjEyN0wyLjU3OSA0YS42NjcuNjY3IDAgMCAwLS4xMjcuNzY2bC41OTMgMS4xODctMS4yNi40MkEuNjY3LjY2NyAwIDAgMCAxLjMzMiA3djJhLjY2Ny42NjcgMCAwIDAgLjQ1My42MzNsMS4yNi40Mi0uNTkzIDEuMTg3YS42NjcuNjY3IDAgMCAwIC4xMjcuNzZsMS40MiAxLjQyYS42NjcuNjY3IDAgMCAwIC43NjYuMTI2bDEuMTg3LS41OTMuNDIgMS4yNmEuNjY3LjY2NyAwIDAgMCAuNjMzLjQ1M2gyYS42NjcuNjY3IDAgMCAwIC42MzQtLjQ1M2wuNDItMS4yNiAxLjE4Ni41OTNBLjY2Ni42NjYgMCAwIDAgMTIgMTMuNDJsMS40Mi0xLjQyYS42NjcuNjY3IDAgMCAwIC4xMjYtLjc2N2wtLjU5My0xLjE4NyAxLjI2LS40MkEuNjY3LjY2NyAwIDAgMCAxNC42NjUgOVY3YS42NjcuNjY3IDAgMCAwLS40NTMtLjYzNFptLS44OCAyLjE1NC0uOC4yNjZhMS4zMzQgMS4zMzQgMCAwIDAtLjc3MyAxLjg4bC4zOC43Ni0uNzM0LjczNC0uNzQtLjRhMS4zMzUgMS4zMzUgMCAwIDAtMS44Ni43NzNsLS4yNjYuOGgtMS4wNmwtLjI2Ny0uOGExLjMzMyAxLjMzMyAwIDAgMC0xLjg4LS43NzNsLS43Ni4zOC0uNzMzLS43MzQuNC0uNzRhMS4zMzMgMS4zMzMgMCAwIDAtLjc3NC0xLjg4bC0uOC0uMjY2VjcuNDhsLjgtLjI2N2ExLjMzMyAxLjMzMyAwIDAgMCAuNzc0LTEuODhsLS4zOC0uNzQuNzMzLS43MzMuNzQuMzhhMS4zMzMgMS4zMzMgMCAwIDAgMS44OC0uNzc0bC4yNjctLjhoMS4wNGwuMjY2LjhhMS4zMzMgMS4zMzMgMCAwIDAgMS44OC43NzRsLjc2LS4zOC43MzQuNzMzLS40Ljc0YTEuMzMzIDEuMzMzIDAgMCAwIC43NzMgMS44NmwuOC4yNjd2MS4wNlpNNy45OTkgNS4zMzNhMi42NjcgMi42NjcgMCAxIDAgMCA1LjMzMyAyLjY2NyAyLjY2NyAwIDAgMCAwLTUuMzMzWm0wIDRhMS4zMzMgMS4zMzMgMCAxIDEgMC0yLjY2NyAxLjMzMyAxLjMzMyAwIDAgMSAwIDIuNjY3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxOCAxOFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTQuNzIzIDIuNzM4YS43NS43NSAwIDAgMC0uNjMtLjE1IDYgNiAwIDAgMS00LjY2NS0uOTUzLjc1Ljc1IDAgMCAwLS44NTYgMCA2IDYgMCAwIDEtNC42NjQuOTUzLjc1Ljc1IDAgMCAwLS45MDguNzM1VjguOTFhNi43NSA2Ljc1IDAgMCAwIDIuODI3IDUuNDk4bDIuNzM4IDEuOTVhLjc1Ljc1IDAgMCAwIC44NyAwbDIuNzM3LTEuOTVBNi43NSA2Ljc1IDAgMCAwIDE1IDguOTFWMy4zMjNhLjc0OS43NDkgMCAwIDAtLjI3Ny0uNTg1Wk0xMy41IDguOTFhNS4yNDkgNS4yNDkgMCAwIDEtMi4xOTcgNC4yNzVMOSAxNC44MjhsLTIuMzAzLTEuNjQzQTUuMjUgNS4yNSAwIDAgMSA0LjUgOC45MVY0LjE4NUE3LjUgNy41IDAgMCAwIDkgMy4xNDNhNy41IDcuNSAwIDAgMCA0LjUgMS4wNDJWOC45MVptLTMuMzQ1LTEuNzE3TDguMTM3IDkuMjE4bC0uNjY3LS42NzVhLjc1My43NTMgMCAxIDAtMS4wNjUgMS4wNjVsMS4yIDEuMmEuNzUuNzUgMCAwIDAgMS4wNjUgMGwyLjU4LTIuNTU4YS43NTMuNzUzIDAgMCAwLTEuMDY1LTEuMDY1bC0uMDMuMDA4WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTQuMjczIDUuNzY3di0uMDRhNi42NjcgNi42NjcgMCAwIDAtMTIuNTItLjA0LjU2Ny41NjcgMCAwIDAtLjA1My4xNiA2LjY2NyA2LjY2NyAwIDEgMCAxMi41NzMtLjA4Wk04IDIuNjY3YTUuMzMzIDUuMzMzIDAgMCAxIDQuNjEzIDIuNjY2aC0uOGEyIDIgMCAwIDAtMy4wOC4xNDdBMi4xMTMgMi4xMTMgMCAwIDAgOCA1LjMzM2MtLjI1MS4wMDUtLjUuMDU1LS43MzMuMTQ3YTIgMiAwIDAgMC0zLjA4LS4xNDdoLS44QTUuMzMzIDUuMzMzIDAgMCAxIDggMi42NjdabTMgNGEuNjY3LjY2NyAwIDEgMS0xLjMzNCAwIC42NjcuNjY3IDAgMCAxIDEuMzM0IDBabS00LjY2NyAwYS42NjcuNjY3IDAgMSAxLTEuMzMzIDAgLjY2Ny42NjcgMCAwIDEgMS4zMzMgMFpNOCAxMy4zMzNBNS4zMzMgNS4zMzMgMCAwIDEgMi42NjcgOGMuMDAzLS40NS4wNi0uODk4LjE3My0xLjMzM2guODI3YTIgMiAwIDAgMCA0IC4xMi42NjcuNjY3IDAgMCAxIC42NjYgMCAyIDIgMCAxIDAgNC0uMTJoLjgyN2MuMTEyLjQzNS4xNy44ODMuMTczIDEuMzMzQTUuMzM0IDUuMzM0IDAgMCAxIDggMTMuMzMzWm0xLjU3My0zLjg0NmEyLjUwNyAyLjUwNyAwIDAgMS0zLjE0NiAwIC42NjcuNjY3IDAgMCAwLS44NTQgMS4wMjYgMy43ODcgMy43ODcgMCAwIDAgNC44NTQgMCAuNjY4LjY2OCAwIDAgMC0uODU0LTEuMDI2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNyAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTQuODkgNi40NDdBLjY2Ni42NjYgMCAwIDAgMTQuMzE2IDZsLTMuNzkzLS41NTNMOC44MjMgMmEuNjY3LjY2NyAwIDAgMC0xLjIgMGwtMS43IDMuNDRMMi4xMyA2YS42NjcuNjY3IDAgMCAwLS41NC40NTMuNjY3LjY2NyAwIDAgMCAuMTY2LjY2N0w0LjUxIDkuNzg3bC0uNjY3IDMuNzg2YS42NjcuNjY3IDAgMCAwIC45NjcuNzE0bDMuNDEzLTEuNzggMy40IDEuNzg2Yy4wOTQuMDUzLjIuMDguMzA3LjA4YS42NjcuNjY3IDAgMCAwIC42MjQtLjQyLjY2Ni42NjYgMCAwIDAgLjAzNi0uMzczbC0uNjY3LTMuNzg3IDIuNzUzLTIuNjY2YS42NjcuNjY3IDAgMCAwIC4yMTQtLjY4Wm0tNC4xIDIuNjY2YS42NjYuNjY2IDAgMCAwLS4xOTQuNTk0bC40OCAyLjc5My0yLjUwNi0xLjMzM2EuNjY2LjY2NiAwIDAgMC0uNjI3IDBMNS40MzYgMTIuNWwuNDgtMi43OTNhLjY2Ny42NjcgMCAwIDAtLjE5My0uNTk0bC0yLTIgMi44MDctLjQwNmEuNjY3LjY2NyAwIDAgMCAuNTA2LS4zNjdMOC4yMjMgMy44bDEuMjUzIDIuNTQ3YS42NjcuNjY3IDAgMCAwIC41MDcuMzY2bDIuODA3LjQwNy0yIDEuOTkzWlxcXCIgZmlsbD1cXFwiIzA2REJFNFxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCI+PHBhdGggZmlsbD1cXFwiI2ZmZlxcXCIgZD1cXFwiTTYuODc1IDEwLjcyOWEuNjY1LjY2NSAwIDAgMS0uNDcxLS4xOTZMNC41MjkgOC42NThhLjY2Ny42NjcgMCAwIDEgLjk0Mi0uOTQybDEuNDA0IDEuNDAzIDMuNjU0LTMuNjUzYS42NjcuNjY3IDAgMCAxIC45NDIuOTQybC00LjEyNSA0LjEyNWEuNjY0LjY2NCAwIDAgMS0uNDcxLjE5NlpcXFwiIG9wYWNpdHk9XFxcIi45OVxcXCIvPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgZD1cXFwiTTggMS4zMzNBNi42NjcgNi42NjcgMCAxIDAgMTQuNjY3IDggNi42NzQgNi42NzQgMCAwIDAgOCAxLjMzM1ptMy40NzEgNS4wNzYtNC4xMjUgNC4xMjVhLjY2Ny42NjcgMCAwIDEtLjk0MiAwTDQuNTI5IDguNjU5YS42NjcuNjY3IDAgMCAxIC45NDItLjk0M2wxLjQwNCAxLjQwMyAzLjY1NC0zLjY1M2EuNjY3LjY2NyAwIDAgMSAuOTQyLjk0M1pcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTQgMTRcXFwiPjxwYXRoIGQ9XFxcIk03IC4zMzJjLTMuNjY3IDAtNi42NjcgMy02LjY2NyA2LjY2NyAwIDMuNjY2IDMgNi42NjYgNi42NjcgNi42NjYgMy42NjYgMCA2LjY2Ni0zIDYuNjY2LTYuNjY2IDAtMy42NjctMy02LjY2Ny02LjY2Ni02LjY2N1ptMi40NjYgOC4yYS42NDQuNjQ0IDAgMCAxIDAgLjkzMy42NDQuNjQ0IDAgMCAxLS45MzMgMEw3IDcuOTMyIDUuNDY2IDkuNDY1YS42NDQuNjQ0IDAgMCAxLS45MzMgMCAuNjQ0LjY0NCAwIDAgMSAwLS45MzNsMS41MzMtMS41MzMtMS41MzMtMS41MzRhLjY0NC42NDQgMCAwIDEgMC0uOTMzLjY0NC42NDQgMCAwIDEgLjkzMyAwTDcgNi4wNjVsMS41MzMtMS41MzNhLjY0NC42NDQgMCAwIDEgLjkzMyAwIC42NDQuNjQ0IDAgMCAxIDAgLjkzM0w3LjkzMyA3bDEuNTMzIDEuNTMzWlxcXCIgZmlsbD1cXFwiI0QxMDAxRVxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAzMiAzMlxcXCI+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTZcXFwiIGZpbGw9XFxcIiNGMUY3RjlcXFwiLz48cGF0aCBkPVxcXCJNMTAuNzAyIDE3LjY5YTIuNzQ5IDIuNzQ5IDAgMCAwIDIuMzUgMS40MTFsLjkzMy4wMTgtLjczNC41NzhhNi40OTggNi40OTggMCAwIDEtMy40MDEgMS4zNjIgOC4zNDIgOC4zNDIgMCAwIDAgMy4zNjcuNzA1aC4wMDRhOC4zNTggOC4zNTggMCAwIDAgOC40NDYtOC40MjR2LS41NjhsLjEzNC0uMWMuMjYzLS4xOTYuNTEtLjQxNC43MzctLjY1TDEwLjcwMiAxNy42OVptMCAwaC4wNTJjLjMxMS0uMDAzLjYyLS4wNS45MTgtLjE0MWwtLjAzMi0uNjQ2YTIuNzQxIDIuNzQxIDAgMCAxLTIuMTU4LTIuMTc3Yy4zMjIuMTEuNjYuMTcyIDEuMDA0LjE4MmwxLjE1Ni4wMzEtLjk2Mi0uNjQyYTIuNzM0IDIuNzM0IDAgMCAxLTEuMjE3LTIuMjhjMC0uMzIzLjA1Ni0uNjQyLjE2NC0uOTQzYTkuMDY0IDkuMDY0IDAgMCAwIDYuMjM2IDIuOTQxbC40NDUuMDIzLS4xMDQtLjQzNGEyLjc0MiAyLjc0MiAwIDAgMSA0LjY4LTIuNWwuMTI4LjEzNi4xODMtLjAzNmMuMzg0LS4wNzYuNzYtLjE4NiAxLjEyMi0uMzI5YTIuNzYzIDIuNzYzIDAgMCAxLS43NTguNjY4TDEwLjcwMiAxNy42OVpcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZT1cXFwiIzE1NTM2NlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOS4yNyA5LjQ5MWEuMTY3LjE2NyAwIDAgMS0uMDU0LS4wMzVsLS4xOS0uMTk3LS44Ni0uODg5djIuOTYzYS4xNjcuMTY3IDAgMCAxLS4zMzMgMFY4LjM3bC0uODYuODktLjE4OS4xOTVhLjE3LjE3IDAgMCAxLS4yMzctLjI0MWwxLjMyOC0xLjMyOWEuMTY2LjE2NiAwIDAgMSAuMDUyLS4wMzJsLjAxLS4wMDRhLjE2Ny4xNjcgMCAwIDEgLjEyNiAwbC4wMS4wMDRhLjE1Ni4xNTYgMCAwIDEgLjA1Mi4wMzJsMS4zMjggMS4zMjkuMDAyLjAwMWEuMTY3LjE2NyAwIDAgMSAuMDM2LjE4MmwuNDYyLjE5My0uNDYyLS4xOTNhLjE2Ny4xNjcgMCAwIDEtLjAzNi4wNTVsLS4wMDMuMDAzYS4xNjcuMTY3IDAgMCAxLS4xODMuMDM2Wm0tLjQzNy03LjU4NCAzLjk2MyAzLjk2My4wMjMuMDdhLjMzLjMzIDAgMCAxIC4wMTQuMDU0djYuNjczYTEuNSAxLjUgMCAwIDEtMS41IDEuNUg0LjY2N2ExLjUgMS41IDAgMCAxLTEuMDYxLS40NGwtLjM0OC4zNDguMzQ4LS4zNDhhMS41IDEuNSAwIDAgMS0uNDQtMS4wNlYzLjMzM2ExLjUgMS41IDAgMCAxIDEuNS0xLjVoMy45OGEuMjMzLjIzMyAwIDAgMSAuMDMyLjAxNWwuMTEuMDU5aC4wNDVabS44NTQgMS4zNDZMOC44MzMgMi40djIuMjY3QTEuMTY3IDEuMTY3IDAgMCAwIDEwIDUuODMzaDIuMjY3bC0uODUzLS44NTMtMS43MjctMS43MjdaTTguNSAyLjY2N3YtLjVINC42NjdBMS4xNjcgMS4xNjcgMCAwIDAgMy41IDMuMzMzdjkuMzM0YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3IDEuMTY2aDYuNjY2YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3LTEuMTY2di02LjVIMTBhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWlxcXCIgZmlsbD1cXFwiY3VycmVudGNvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRjb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwibTMuODM3IDExLjY0My0uMTI4LjMxNC4yNDMuMjM1QTUuODMzIDUuODMzIDAgMCAwIDggMTMuODMzaC4wMDJhNS44MzMgNS44MzMgMCAwIDAgNC4wNDctMS42NGwuMjQzLS4yMzYtLjEyOS0uMzE0YTQuNSA0LjUgMCAwIDAtOC4zMjUgMFptOC4zMzgtLjcyNC40My43MzYuNDMzLS43MzZBNS43OCA1Ljc4IDAgMCAwIDEzLjgzMyA4IDUuODMzIDUuODMzIDAgMCAwIDIuMTY3IDhhNS43OCA1Ljc4IDAgMCAwIC43OTUgMi45MmwuNDMyLjczNi40My0uNzM3YTQuODMzIDQuODMzIDAgMCAxIDIuMzYzLTIuMDQybC42NTUtLjI2NS0uNDY3LS41M2EyLjE2NyAyLjE2NyAwIDEgMSAzLjI1IDBsLS40NjcuNTMuNjU1LjI2NWE0LjgzMyA0LjgzMyAwIDAgMSAyLjM2MiAyLjA0MlpNNC42MzUgMi44NGMxLS42NTUgMi4xNy0xLjAwNSAzLjM2NS0xLjAwN2E2LjE2NiA2LjE2NiAwIDAgMSA0LjUzMiAxMC4zMzUgNi4xNjcgNi4xNjcgMCAwIDEtOS4wNjQgMEE2LjE2NyA2LjE2NyAwIDAgMSA0LjYzNSAyLjg0Wm0xLjg0IDIuODA4YTEuODMzIDEuODMzIDAgMSAwIDMuMDUgMi4wMzcgMS44MzMgMS44MzMgMCAwIDAtMy4wNS0yLjAzN1pcXFwiIGZpbGw9XFxcInRyYW5zcGFyZW50XFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyMCAyMlxcXCI+PHBhdGggZD1cXFwibTEzLjUwNCAxMS40NDgtLjQ1NS4zNTguNTM4LjIxNGE5LjY2NyA5LjY2NyAwIDAgMSA2LjA0MiA3LjkxNi42NjcuNjY3IDAgMCAxLS41Ny43M2gtLjA5MWEuNjY3LjY2NyAwIDAgMS0uNjY3LS41OTMgOC4zMzMgOC4zMzMgMCAwIDAtMTYuNTYyIDBBLjY3My42NzMgMCAwIDEgLjQgMTkuOTI2YTkuNjY3IDkuNjY3IDAgMCAxIDYuMDEzLTcuOTA3bC41MzYtLjIxNC0uNDU0LS4zNTdhNS42NjcgNS42NjcgMCAxIDEgNy4wMDggMFptLTUuOTExLS44NDVhNC4zMzQgNC4zMzQgMCAxIDAgNC44MTUtNy4yMDcgNC4zMzQgNC4zMzQgMCAwIDAtNC44MTUgNy4yMDdaXFxcIiBmaWxsPVxcXCIjMTU1MzY2XFxcIiBzdHJva2U9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyMCAxOFxcXCI+PHBhdGggZD1cXFwibTE4LjkxNyAxMy41ODMtNi43NS0xMS42NjZDMTEuNS43NSA5LjkxNy4zMzMgOC43NSAxYy0uNDE3LjI1LS43NS41ODMtLjkxNy45MTdsLTYuNzUgMTEuNjY2Qy40MTcgMTQuNzUuODMzIDE2LjMzMyAyIDE3Yy40MTcuMjUuODMzLjMzMyAxLjI1LjMzM2gxMy40MTdjMS40MTYgMCAyLjUtMS4xNjYgMi41LTIuNS4wODMtLjUtLjA4NC0uOTE2LS4yNS0xLjI1Wk0xMCAxNGMtLjUgMC0uODMzLS4zMzMtLjgzMy0uODMzIDAtLjUuMzMzLS44MzQuODMzLS44MzQuNSAwIC44MzMuMzM0LjgzMy44MzQgMCAuNS0uMzMzLjgzMy0uODMzLjgzM1ptLjgzMy00LjE2N2MwIC41LS4zMzMuODM0LS44MzMuODM0LS41IDAtLjgzMy0uMzM0LS44MzMtLjgzNFY2LjVjMC0uNS4zMzMtLjgzMy44MzMtLjgzMy41IDAgLjgzMy4zMzMuODMzLjgzM3YzLjMzM1pcXFwiIGZpbGw9XFxcIiNGRjcyNjRcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTggMTlcXFwiPjxnIGNsaXAtcGF0aD1cXFwidXJsKCN3YXJuaW5nLWZpbGxfc3ZnX19hKVxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJtMTcuMDIgMTMuOTkyLTYuMDczLTEwLjVjLS42LTEuMDUtMi4wMjUtMS40MjUtMy4wNzQtLjgyNS0uMzc1LjIyNS0uNjc1LjUyNS0uODI1LjgyNWwtNi4wNzMgMTAuNWMtLjYgMS4wNS0uMjI1IDIuNDc1LjgyNCAzLjA3NS4zNzUuMjI1Ljc1LjMgMS4xMjUuM2gxMi4wNzFjMS4yNzUgMCAyLjI1LTEuMDUgMi4yNS0yLjI1LjA3NS0uNDUtLjA3NS0uODI1LS4yMjUtMS4xMjVabS04LjAyMy4zNzVjLS40NSAwLS43NS0uMy0uNzUtLjc1cy4zLS43NS43NS0uNzUuNzUuMy43NS43NS0uMy43NS0uNzUuNzVabS43NS0zLjc1YzAgLjQ1LS4zLjc1LS43NS43NXMtLjc1LS4zLS43NS0uNzV2LTNjMC0uNDUuMy0uNzUuNzUtLjc1cy43NS4zLjc1Ljc1djNaXFxcIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD1cXFwid2FybmluZy1maWxsX3N2Z19fYVxcXCI+PHBhdGggZmlsbD1cXFwiI2ZmZlxcXCIgZD1cXFwiTTAgMGgxNy45OTV2MThIMHpcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDAgLjg2NylcXFwiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjMgMjFcXFwiPjxwYXRoIGQ9XFxcIk0xMS44ODcgMTVhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWm0xMC42NyAxLjQ3LTguMDUtMTRhMyAzIDAgMCAwLTUuMjQgMGwtOCAxNEEzIDMgMCAwIDAgMy44MjcgMjFoMTYuMTJhMyAzIDAgMCAwIDIuNjEtNC41M1ptLTEuNzMgMmExIDEgMCAwIDEtLjg4LjUxSDMuODI3YTEgMSAwIDAgMS0uODgtLjUxIDEgMSAwIDAgMSAwLTFsOC0xNGExIDEgMCAwIDEgMS43OCAwbDguMDUgMTRhMSAxIDAgMCAxIC4wNSAxLjAydi0uMDJaTTExLjg4NyA3YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMiAwVjhhMSAxIDAgMCAwLTEtMVpcXFwiIGZpbGw9XFxcIiNEMTAwMUVcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMzIgMzJcXFwiPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE2XFxcIiBmaWxsPVxcXCIjRjFGN0Y5XFxcIi8+PHBhdGggZD1cXFwiTTIzLjkxNyAxNC4yN3YuMDEyYzAgLjQ2MiAwIDIuOTc3LS4wMyAzLjM4MXYuMDI4YTcuNiA3LjYgMCAwIDEtLjM3NCAyLjQ0M3YuMDAxYTEuNTM1IDEuNTM1IDAgMCAxLS4zNzUuNjE1IDEuODI3IDEuODI3IDAgMCAxLS45NTUuNDkxYy0yLjcwMi4yMDgtNC45OS4yNDUtNy42MDMuMjA4aC0uMDEyYTMzLjU2MiAzMy41NjIgMCAwIDEtNC44MTctLjI0NCAxLjgxMSAxLjgxMSAwIDAgMS0uOTI3LS40ODUgMi4wMjIgMi4wMjIgMCAwIDEtLjQ1LS44NjhsLS4wMDEtLjAwNmE2LjgyOCA2LjgyOCAwIDAgMS0uMjE1LTEuNDN2LS4wMDlhMzUuODg3IDM1Ljg4NyAwIDAgMSAuMDAzLTQuODU3Yy4wMzctLjQ0Mi4wNzQtLjg4OC4xNzUtMS4yOTguMTA0LS40MjQuMjctLjc3NS41NC0xLjAyNWwuMDAzLS4wMDNjLjI1My0uMjQuNTctLjQwMS45MTEtLjQ2NmE1OC41MjcgNTguNTI3IDAgMCAxIDYuMjA0LS4yMjNoLjAxMmE1OC40MjYgNTguNDI2IDAgMCAxIDYuMjI2LjIzYy40MS4wNzguNzgyLjI5IDEuMDU2LjYwNS40NDcuOS42NjQgMS44OTYuNjI5IDIuOVptLTkuOTQ1IDMuODY3di41NmwuNDkyLS4yNjdhOTguOTcgOTguOTcgMCAwIDEgMi4yNjQtMS4xNzVsLjA2My0uMDMyYTcwLjQ1IDcwLjQ1IDAgMCAwIDIuMTE2LTEuMTA0bC41NC0uMy0uNTQ3LS4yODctNC40NC0yLjMzMi0uNDg4LS4yNTd2NS4xOTRaXFxcIiBmaWxsPVxcXCIjMTU1MzY2XFxcIiBzdHJva2U9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIvPjwvc3ZnPlwiOyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BZG1pbkhlYWRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MSZpZD02ZmU1OTA1NSZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JNZXNzYWdlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWI3N2IxMWQ0Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Ib3ZlclRleHQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTUzOGQ3ZTImbGFuZz1zY3NzXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0xvYWRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04ZTM2ZjhlYyZsYW5nPXNjc3NcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUG9wdXBNb2RhbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01YTJiZGE1OCZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2hpbW1lckxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzQzNTYxNzImbGFuZz1zY3NzJnNjb3BlZD10cnVlXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Vycm9yTGlzdHMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZjY3YzdlNzImbGFuZz1zY3NzJnNjb3BlZD10cnVlXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Byb2dyZXNzTG9hZGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTVjMzJiZjBjJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TdGlja3lFcnJvcnMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MWUzOGQxMGUmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5SW5kZXgudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MGE1NzFmZDYmbGFuZz1zY3NzXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0NyZWF0ZU1vZGFsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWM3Y2EyOGI4Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9CdWxrUHVibGlzaGluZy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1kMGI4MDJkYSZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JJdGVtLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTA2M2NiZDg2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0aWVzRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWE0MGZjZjQmbGFuZz1zY3NzXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL09yZ2FuaXNhdGlvbkRhdGEudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGFkYTVmMzYmbGFuZz1zY3NzXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc2V0UGFnZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zNmI3NjRiYiZsYW5nPXNjc3NcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSWF0aVJlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MSZpZD0xN2U2MzJhNiZsYW5nPXNjc3NcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0xJmlkPTUyMjY2MjAwJmxhbmc9c2Nzc1wiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TaWduSW4udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YTE4NjFmM2UmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWRtaW5IZWFkZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZmZTU5MDU1JnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9BZG1pbkhlYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BZG1pbkhlYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBcIkB2dWVmb3JtL211bHRpc2VsZWN0L3RoZW1lcy9kZWZhdWx0LmNzcz92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmxhbmc9Y3NzXCJcbmltcG9ydCBcIi4vQWRtaW5IZWFkZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTEmaWQ9NmZlNTkwNTUmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX3Njb3BlSWQnLFwiZGF0YS12LTZmZTU5MDU1XCJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9BZG1pbkhlYWRlci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNmZlNTkwNTVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc2ZmU1OTA1NScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzZmZTU5MDU1JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BZG1pbkhlYWRlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmZlNTkwNTUmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc2ZmU1OTA1NScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQnJlYWRDcnVtYi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjVkMGUzZGEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0JyZWFkQ3J1bWIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0JyZWFkQ3J1bWIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0JyZWFkQ3J1bWIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjY1ZDBlM2RhXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNjVkMGUzZGEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc2NWQwZTNkYScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQnJlYWRDcnVtYi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjVkMGUzZGEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc2NWQwZTNkYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQnV0dG9uQ29tcG9uZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD05ZmY1YThmOCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQnV0dG9uQ29tcG9uZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9CdXR0b25Db21wb25lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiOWZmNWE4ZjhcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc5ZmY1YThmOCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzlmZjVhOGY4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9CdXR0b25Db21wb25lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTlmZjVhOGY4JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignOWZmNWE4ZjgnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0Rlc2NyaXB0aW9uRm9ybS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmViZjQxZjkmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Rlc2NyaXB0aW9uRm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRGVzY3JpcHRpb25Gb3JtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9EZXNjcmlwdGlvbkZvcm0udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjZlYmY0MWY5XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNmViZjQxZjknLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc2ZWJmNDFmOScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRGVzY3JpcHRpb25Gb3JtLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02ZWJmNDFmOSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzZlYmY0MWY5JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9FcnJvck1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWI3N2IxMWQ0JnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9FcnJvck1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRXJyb3JNZXNzYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9FcnJvck1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Yjc3YjExZDQmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX3Njb3BlSWQnLFwiZGF0YS12LWI3N2IxMWQ0XCJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9FcnJvck1lc3NhZ2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImI3N2IxMWQ0XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnYjc3YjExZDQnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdiNzdiMTFkNCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRXJyb3JNZXNzYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1iNzdiMTFkNCZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2I3N2IxMWQ0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9FcnJvclBvcFVwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wZjFkOGIxYiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRXJyb3JQb3BVcC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9FcnJvclBvcFVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Vycm9yUG9wVXAudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjBmMWQ4YjFiXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMGYxZDhiMWInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwZjFkOGIxYicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRXJyb3JQb3BVcC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGYxZDhiMWImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwZjFkOGIxYicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSG92ZXJUZXh0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01NTM4ZDdlMiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSG92ZXJUZXh0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Ib3ZlclRleHQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9Ib3ZlclRleHQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTUzOGQ3ZTImbGFuZz1zY3NzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNTUzOGQ3ZTJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1NTM4ZDdlMicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzU1MzhkN2UyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Ib3ZlclRleHQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU1MzhkN2UyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNTUzOGQ3ZTInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0xvYWRlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OGUzNmY4ZWMmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0xvYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vTG9hZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vTG9hZGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPThlMzZmOGVjJmxhbmc9c2Nzc1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Mb2FkZXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjhlMzZmOGVjXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnOGUzNmY4ZWMnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc4ZTM2ZjhlYycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vTG9hZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04ZTM2ZjhlYyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzhlMzZmOGVjJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9OYXZEcm9wZG93bi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjYxOWE3ZWQmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL05hdkRyb3Bkb3duLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9OYXZEcm9wZG93bi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvTmF2RHJvcGRvd24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjI2MTlhN2VkXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjYxOWE3ZWQnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyNjE5YTdlZCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vTmF2RHJvcGRvd24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI2MTlhN2VkJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMjYxOWE3ZWQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1BvcHVwTW9kYWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTVhMmJkYTU4JnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Qb3B1cE1vZGFsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Qb3B1cE1vZGFsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vUG9wdXBNb2RhbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01YTJiZGE1OCZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fc2NvcGVJZCcsXCJkYXRhLXYtNWEyYmRhNThcIl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjVhMmJkYTU4XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNWEyYmRhNTgnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1YTJiZGE1OCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUG9wdXBNb2RhbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWEyYmRhNTgmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1YTJiZGE1OCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmFkaWFsUHJvZ3Jlc3NCYXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTE1NzM4ZTYwJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SYWRpYWxQcm9ncmVzc0Jhci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmFkaWFsUHJvZ3Jlc3NCYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxNTczOGU2MFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzE1NzM4ZTYwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMTU3MzhlNjAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xNTczOGU2MCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzE1NzM4ZTYwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TaGltbWVyTG9hZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzQzNTYxNzImc2NvcGVkPXRydWVcIlxuY29uc3Qgc2NyaXB0ID0ge31cblxuaW1wb3J0IFwiLi9TaGltbWVyTG9hZGluZy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03NDM1NjE3MiZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fc2NvcGVJZCcsXCJkYXRhLXYtNzQzNTYxNzJcIl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3NDM1NjE3MlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzc0MzU2MTcyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNzQzNTYxNzInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1NoaW1tZXJMb2FkaW5nLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03NDM1NjE3MiZzY29wZWQ9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc3NDM1NjE3MicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVGFibGVQYWdpbmF0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04Yzk3YTViZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVGFibGVQYWdpbmF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UYWJsZVBhZ2luYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1RhYmxlUGFnaW5hdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiOGM5N2E1YmVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc4Yzk3YTViZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzhjOTdhNWJlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UYWJsZVBhZ2luYXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPThjOTdhNWJlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignOGM5N2E1YmUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RvYXN0TWVzc2FnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDAxZDhjZDImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RvYXN0TWVzc2FnZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Ub2FzdE1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJkMDFkOGNkMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2QwMWQ4Y2QyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZDAxZDhjZDInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RvYXN0TWVzc2FnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDAxZDhjZDImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdkMDFkOGNkMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRGVsZXRlQnV0dG9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hOTNkODQ3YyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRGVsZXRlQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0RlbGV0ZUJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL0RlbGV0ZUJ1dHRvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYTkzZDg0N2NcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdhOTNkODQ3YycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2E5M2Q4NDdjJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9EZWxldGVCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWE5M2Q4NDdjJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYTkzZDg0N2MnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0xpbmsudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWJmZTY1MTAyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9MaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9MaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImJmZTY1MTAyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnYmZlNjUxMDInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdiZmU2NTEwMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vTGluay52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YmZlNjUxMDImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdiZmU2NTEwMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZWNjNTA4MjgmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1B1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1B1Ymxpc2hCdXR0b24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImVjYzUwODI4XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZWNjNTA4MjgnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdlY2M1MDgyOCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZWNjNTA4MjgmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdlY2M1MDgyOCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVW5QdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NTljMzE5MyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVW5QdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1VuUHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDU5YzMxOTNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0NTljMzE5MycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQ1OWMzMTkzJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9VblB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ1OWMzMTkzJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDU5YzMxOTMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0RlbGV0ZUFjdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTZiY2U4Y2EmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0RlbGV0ZUFjdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9EZWxldGVBY3Rpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvRGVsZXRlQWN0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1NmJjZThjYVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzU2YmNlOGNhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNTZiY2U4Y2EnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0RlbGV0ZUFjdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTZiY2U4Y2EmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1NmJjZThjYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRXJyb3JMaXN0cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZjY3YzdlNzImc2NvcGVkPXRydWUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Vycm9yTGlzdHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRXJyb3JMaXN0cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vRXJyb3JMaXN0cy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1mNjdjN2U3MiZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fc2NvcGVJZCcsXCJkYXRhLXYtZjY3YzdlNzJcIl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL0Vycm9yTGlzdHMudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImY2N2M3ZTcyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZjY3YzdlNzInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdmNjdjN2U3MicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRXJyb3JMaXN0cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZjY3YzdlNzImc2NvcGVkPXRydWUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdmNjdjN2U3MicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSGF2ZU5vdEFkZGVkWWV0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zOTI1ZWY0OSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSGF2ZU5vdEFkZGVkWWV0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9IYXZlTm90QWRkZWRZZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL0hhdmVOb3RBZGRlZFlldC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMzkyNWVmNDlcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCczOTI1ZWY0OScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzM5MjVlZjQ5JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9IYXZlTm90QWRkZWRZZXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM5MjVlZjQ5JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMzkyNWVmNDknLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTJmYjhmNDA2JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Pcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvT3JnYW5pemF0aW9uUHVibGlzaFVucHVibGlzaEJ1dHRvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMmZiOGY0MDZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcyZmI4ZjQwNicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzJmYjhmNDA2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Pcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yZmI4ZjQwNiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzJmYjhmNDA2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFiNTRlMDlmJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1BhZ2VUaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxYjU0ZTA5ZlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzFiNTRlMDlmJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMWI1NGUwOWYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1BhZ2VUaXRsZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWI1NGUwOWYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcxYjU0ZTA5ZicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUHJvZ3Jlc3NMb2FkZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTVjMzJiZjBjJnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Qcm9ncmVzc0xvYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Qcm9ncmVzc0xvYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vUHJvZ3Jlc3NMb2FkZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWMzMmJmMGMmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX3Njb3BlSWQnLFwiZGF0YS12LTVjMzJiZjBjXCJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNWMzMmJmMGNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1YzMyYmYwYycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzVjMzJiZjBjJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Qcm9ncmVzc0xvYWRlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWMzMmJmMGMmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1YzMyYmYwYycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vU3RpY2t5RXJyb3JzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xZTM4ZDEwZSZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU3RpY2t5RXJyb3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1N0aWNreUVycm9ycy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vU3RpY2t5RXJyb3JzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTFlMzhkMTBlJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19zY29wZUlkJyxcImRhdGEtdi0xZTM4ZDEwZVwiXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvU3RpY2t5RXJyb3JzLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxZTM4ZDEwZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzFlMzhkMTBlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMWUzOGQxMGUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1N0aWNreUVycm9ycy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWUzOGQxMGUmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcxZTM4ZDEwZScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRWxlbWVudFN0YXR1cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWViOGRlYjAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0VsZW1lbnRTdGF0dXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRWxlbWVudFN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zdGF0dXMvRWxlbWVudFN0YXR1cy52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMWViOGRlYjBcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcxZWI4ZGViMCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzFlYjhkZWIwJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FbGVtZW50U3RhdHVzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xZWI4ZGViMCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzFlYjhkZWIwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xZjJmOWFiOCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUHJldmlvdXNseVB1Ymxpc2hlZC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3N0YXR1cy9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxZjJmOWFiOFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzFmMmY5YWI4JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMWYyZjlhYjgnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1ByZXZpb3VzbHlQdWJsaXNoZWQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFmMmY5YWI4JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMWYyZjlhYjgnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FjdGl2aXR5RGVmYXVsdFZhbHVlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yM2VlMzc1YyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5RGVmYXVsdFZhbHVlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyM2VlMzc1Y1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzIzZWUzNzVjJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMjNlZTM3NWMnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FjdGl2aXR5RGVmYXVsdFZhbHVlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yM2VlMzc1YyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzIzZWUzNzVjJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9BY3Rpdml0eURldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGU0MDJiMDYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FjdGl2aXR5RGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BY3Rpdml0eURldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5RGV0YWlsLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0ZTQwMmIwNlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzRlNDAyYjA2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNGU0MDJiMDYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FjdGl2aXR5RGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ZTQwMmIwNiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzRlNDAyYjA2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9BY3Rpdml0eUluZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wYTU3MWZkNiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWN0aXZpdHlJbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWN0aXZpdHlJbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgXCIuL0FjdGl2aXR5SW5kZXgudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MGE1NzFmZDYmbGFuZz1zY3NzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eUluZGV4LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIwYTU3MWZkNlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzBhNTcxZmQ2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMGE1NzFmZDYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FjdGl2aXR5SW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBhNTcxZmQ2JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMGE1NzFmZDYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0NyZWF0ZU1vZGFsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jN2NhMjhiOCZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQ3JlYXRlTW9kYWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0NyZWF0ZU1vZGFsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vQ3JlYXRlTW9kYWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YzdjYTI4YjgmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX3Njb3BlSWQnLFwiZGF0YS12LWM3Y2EyOGI4XCJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQ3JlYXRlTW9kYWwudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImM3Y2EyOGI4XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnYzdjYTI4YjgnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdjN2NhMjhiOCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQ3JlYXRlTW9kYWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWM3Y2EyOGI4JnNjb3BlZD10cnVlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYzdjYTI4YjgnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0J1bGtQdWJsaXNoaW5nLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMGI4MDJkYSZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQnVsa1B1Ymxpc2hpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQnVsa1B1Ymxpc2hpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgXCIuL0J1bGtQdWJsaXNoaW5nLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWQwYjgwMmRhJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19zY29wZUlkJyxcImRhdGEtdi1kMGI4MDJkYVwiXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9CdWxrUHVibGlzaGluZy52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZDBiODAyZGFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdkMGI4MDJkYScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2QwYjgwMmRhJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9CdWxrUHVibGlzaGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDBiODAyZGEmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdkMGI4MDJkYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRXJyb3JJdGVtLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wNjNjYmQ4NiZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRXJyb3JJdGVtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Vycm9ySXRlbS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vRXJyb3JJdGVtLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTA2M2NiZDg2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19zY29wZUlkJyxcImRhdGEtdi0wNjNjYmQ4NlwiXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjA2M2NiZDg2XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMDYzY2JkODYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwNjNjYmQ4NicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRXJyb3JJdGVtLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wNjNjYmQ4NiZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzA2M2NiZDg2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QdWJsaXNoU2VsZWN0ZWQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTNmYjFlMWNjJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QdWJsaXNoU2VsZWN0ZWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUHVibGlzaFNlbGVjdGVkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvUHVibGlzaFNlbGVjdGVkLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIzZmIxZTFjY1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzNmYjFlMWNjJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnM2ZiMWUxY2MnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1B1Ymxpc2hTZWxlY3RlZC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9M2ZiMWUxY2MmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCczZmIxZTFjYycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVmcmVzaFRvYXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00MDExODk3YSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVmcmVzaFRvYXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlZnJlc2hUb2FzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL1JlZnJlc2hUb2FzdC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDAxMTg5N2FcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0MDExODk3YScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQwMTE4OTdhJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWZyZXNoVG9hc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQwMTE4OTdhJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDAxMTg5N2EnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1ZhbGlkYXRpb25FcnJvcnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI1NzVkM2IyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9WYWxpZGF0aW9uRXJyb3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1ZhbGlkYXRpb25FcnJvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9WYWxpZGF0aW9uRXJyb3JzLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyNTc1ZDNiMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzI1NzVkM2IyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMjU3NWQzYjInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1ZhbGlkYXRpb25FcnJvcnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI1NzVkM2IyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMjU3NWQzYjInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FjdGl2aXR5RGF0ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDEzOGVhODgmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FjdGl2aXR5RGF0ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWN0aXZpdHlEYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQWN0aXZpdHlEYXRlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIwMTM4ZWE4OFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzAxMzhlYTg4JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMDEzOGVhODgnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FjdGl2aXR5RGF0ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDEzOGVhODgmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwMTM4ZWE4OCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQ29uZGl0aW9ucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YmFmYjI1YmEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0NvbmRpdGlvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0NvbmRpdGlvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Db25kaXRpb25zLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJiYWZiMjViYVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2JhZmIyNWJhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnYmFmYjI1YmEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0NvbmRpdGlvbnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWJhZmIyNWJhJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYmFmYjI1YmEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0NvbnRhY3RJbmZvLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yOWE3ZDMxMyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQ29udGFjdEluZm8udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0NvbnRhY3RJbmZvLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQ29udGFjdEluZm8udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjI5YTdkMzEzXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjlhN2QzMTMnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyOWE3ZDMxMycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQ29udGFjdEluZm8udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI5YTdkMzEzJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMjlhN2QzMTMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jN2Q3OTliZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImM3ZDc5OWJlXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnYzdkNzk5YmUnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdjN2Q3OTliZScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWM3ZDc5OWJlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYzdkNzk5YmUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0h1bWFuaXRhcmlhblNjb3BlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jZGZiNzQ2OCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSHVtYW5pdGFyaWFuU2NvcGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vSHVtYW5pdGFyaWFuU2NvcGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0h1bWFuaXRhcmlhblNjb3BlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJjZGZiNzQ2OFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2NkZmI3NDY4JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnY2RmYjc0NjgnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0h1bWFuaXRhcmlhblNjb3BlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jZGZiNzQ2OCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2NkZmI3NDY4JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9JYXRpSWRlbnRpZmllci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTI2MWFmZmUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0lhdGlJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9JYXRpSWRlbnRpZmllci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0lhdGlJZGVudGlmaWVyLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1MjYxYWZmZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzUyNjFhZmZlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNTI2MWFmZmUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0lhdGlJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MjYxYWZmZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzUyNjFhZmZlJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9MZWdhY3lEYXRhLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jYjNlNDgwNCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTGVnYWN5RGF0YS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vTGVnYWN5RGF0YS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0xlZ2FjeURhdGEudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImNiM2U0ODA0XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnY2IzZTQ4MDQnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdjYjNlNDgwNCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vTGVnYWN5RGF0YS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Y2IzZTQ4MDQmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdjYjNlNDgwNCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vTG9jYXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTEyYzJlODYwJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Mb2NhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vTG9jYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Mb2NhdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMTJjMmU4NjBcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcxMmMyZTg2MCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzEyYzJlODYwJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Mb2NhdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MTJjMmU4NjAmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcxMmMyZTg2MCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vT3RoZXJJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03OGI2NDQwNCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vT3RoZXJJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9PdGhlcklkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9PdGhlcklkZW50aWZpZXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjc4YjY0NDA0XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNzhiNjQ0MDQnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3OGI2NDQwNCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vT3RoZXJJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03OGI2NDQwNCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzc4YjY0NDA0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QYXJ0aWNpcGF0aW5nT3JnLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZDRkYWI3NCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUGFydGljaXBhdGluZ09yZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGFydGljaXBhdGluZ09yZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1BhcnRpY2lwYXRpbmdPcmcudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjdkNGRhYjc0XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnN2Q0ZGFiNzQnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3ZDRkYWI3NCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUGFydGljaXBhdGluZ09yZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2Q0ZGFiNzQmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc3ZDRkYWI3NCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUGxhbm5lZERpc2J1cnNlbWVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDE3MmMyYWMmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1BsYW5uZWREaXNidXJzZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGxhbm5lZERpc2J1cnNlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUGxhbm5lZERpc2J1cnNlbWVudC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMDE3MmMyYWNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwMTcyYzJhYycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzAxNzJjMmFjJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9QbGFubmVkRGlzYnVyc2VtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wMTcyYzJhYyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzAxNzJjMmFjJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Qb2xpY3lNYXJrZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWJkOTg4ODkyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Qb2xpY3lNYXJrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1BvbGljeU1hcmtlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1BvbGljeU1hcmtlci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYmQ5ODg4OTJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdiZDk4ODg5MicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2JkOTg4ODkyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Qb2xpY3lNYXJrZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWJkOTg4ODkyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYmQ5ODg4OTInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlY2lwaWVudENvdW50cnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTdmMThiZTMwJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiN2YxOGJlMzBcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3ZjE4YmUzMCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzdmMThiZTMwJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZjE4YmUzMCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzdmMThiZTMwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWViZDY2MmRjJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVjaXBpZW50UmVnaW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZWNpcGllbnRSZWdpb24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImViZDY2MmRjXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZWJkNjYyZGMnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdlYmQ2NjJkYycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVjaXBpZW50UmVnaW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lYmQ2NjJkYyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2ViZDY2MmRjJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZWxhdGVkQWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTJjYTA0YzAyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZWxhdGVkQWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlbGF0ZWRBY3Rpdml0eS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1JlbGF0ZWRBY3Rpdml0eS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMmNhMDRjMDJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcyY2EwNGMwMicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzJjYTA0YzAyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWxhdGVkQWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTJjYTA0YzAyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMmNhMDRjMDInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDM4YjBhZTYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXBvcnRpbmdPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDM4YjBhZTZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0MzhiMGFlNicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQzOGIwYWU2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXBvcnRpbmdPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQzOGIwYWU2JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDM4YjBhZTYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1Jlc3VsdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mjc3Y2I0ZjAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1Jlc3VsdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVzdWx0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVzdWx0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyNzdjYjRmMFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzI3N2NiNGYwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMjc3Y2I0ZjAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Jlc3VsdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mjc3Y2I0ZjAmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyNzdjYjRmMCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vU2VjdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zMjk0Njg1MSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2VjdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9TZWN0b3IudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjMyOTQ2ODUxXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMzI5NDY4NTEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCczMjk0Njg1MScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU2VjdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zMjk0Njg1MSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzMyOTQ2ODUxJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UYWcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTAxMTk2NjgyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UYWcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RhZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1RhZy52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMDExOTY2ODJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwMTE5NjY4MicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzAxMTk2NjgyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UYWcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTAxMTk2NjgyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMDExOTY2ODInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RpdGxlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NzRhNzEzZCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGl0bGUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjQ3NGE3MTNkXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNDc0YTcxM2QnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc0NzRhNzEzZCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ3NGE3MTNkJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDc0YTcxM2QnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RyYW5zYWN0aW9ucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MmI4YWZmMDAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RyYW5zYWN0aW9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVHJhbnNhY3Rpb25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVHJhbnNhY3Rpb25zLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyYjhhZmYwMFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzJiOGFmZjAwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMmI4YWZmMDAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RyYW5zYWN0aW9ucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MmI4YWZmMDAmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyYjhhZmYwMCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSW5kaWNhdG9yRGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01ZmYxNzc3MiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSW5kaWNhdG9yRGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9JbmRpY2F0b3JEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL0luZGljYXRvckRldGFpbC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNWZmMTc3NzJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1ZmYxNzc3MicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzVmZjE3NzcyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9JbmRpY2F0b3JEZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTVmZjE3NzcyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNWZmMTc3NzInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0luZGljYXRvckxpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZmNzhjZjdmJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9JbmRpY2F0b3JMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9JbmRpY2F0b3JMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9JbmRpY2F0b3JMaXN0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI2Zjc4Y2Y3ZlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzZmNzhjZjdmJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNmY3OGNmN2YnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0luZGljYXRvckxpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZmNzhjZjdmJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNmY3OGNmN2YnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FnZ3JlZ2F0aW9uU3RhdHVzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kZDc2M2U0YyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWdncmVnYXRpb25TdGF0dXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FnZ3JlZ2F0aW9uU3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9BZ2dyZWdhdGlvblN0YXR1cy52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZGQ3NjNlNGNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdkZDc2M2U0YycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2RkNzYzZTRjJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BZ2dyZWdhdGlvblN0YXR1cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZGQ3NjNlNGMmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdkZDc2M2U0YycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQmFzZWxpbmUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZhYTZkMDYyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9CYXNlbGluZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQmFzZWxpbmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0Jhc2VsaW5lLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI2YWE2ZDA2MlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzZhYTZkMDYyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNmFhNmQwNjInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0Jhc2VsaW5lLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02YWE2ZDA2MiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzZhYTZkMDYyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Nzc1YjYxZTImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjc3NWI2MWUyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNzc1YjYxZTInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3NzViNjFlMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc3NWI2MWUyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNzc1YjYxZTInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9M2NiMjYwM2YmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9Eb2N1bWVudExpbmsudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjNjYjI2MDNmXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnM2NiMjYwM2YnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCczY2IyNjAzZicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zY2IyNjAzZiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzNjYjI2MDNmJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9JbmRpY2F0b3JBc2NlbmRpbmcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWY3ZWQ2YWRhJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9JbmRpY2F0b3JBc2NlbmRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0luZGljYXRvckFzY2VuZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvSW5kaWNhdG9yQXNjZW5kaW5nLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJmN2VkNmFkYVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2Y3ZWQ2YWRhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZjdlZDZhZGEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0luZGljYXRvckFzY2VuZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZjdlZDZhZGEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdmN2VkNmFkYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vTWVhc3VyZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2E2NGQ5NDQmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL01lYXN1cmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL01lYXN1cmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL01lYXN1cmUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjdhNjRkOTQ0XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnN2E2NGQ5NDQnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3YTY0ZDk0NCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vTWVhc3VyZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2E2NGQ5NDQmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc3YTY0ZDk0NCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUGVyaW9kLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01ODE2ODQ2YSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUGVyaW9kLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QZXJpb2QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1BlcmlvZC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNTgxNjg0NmFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1ODE2ODQ2YScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzU4MTY4NDZhJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9QZXJpb2QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU4MTY4NDZhJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNTgxNjg0NmEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlZmVyZW5jZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDg1YTRkOWUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlZmVyZW5jZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9SZWZlcmVuY2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjQ4NWE0ZDllXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNDg1YTRkOWUnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc0ODVhNGQ5ZScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ODVhNGQ5ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzQ4NWE0ZDllJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UaXRsZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OGY2ZmY2ODQmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvVGl0bGUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjhmNmZmNjg0XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnOGY2ZmY2ODQnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc4ZjZmZjY4NCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPThmNmZmNjg0JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignOGY2ZmY2ODQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWE0MGZjZjQmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BY3Rpdml0aWVzRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgXCIuL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01YTQwZmNmNCZsYW5nPXNjc3NcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNWE0MGZjZjRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1YTQwZmNmNCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzVhNDBmY2Y0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BY3Rpdml0aWVzRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTVhNDBmY2Y0JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNWE0MGZjZjQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FjdGl2aXR5RWxlbWVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2Y1ZDYwYTYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FjdGl2aXR5RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BY3Rpdml0eUVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXR5RWxlbWVudC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiN2Y1ZDYwYTZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3ZjVkNjBhNicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzdmNWQ2MGE2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BY3Rpdml0eUVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTdmNWQ2MGE2JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignN2Y1ZDYwYTYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wNTBlMTczYyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWRkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvQWRkQWN0aXZpdHlCdXR0b24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjA1MGUxNzNjXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMDUwZTE3M2MnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwNTBlMTczYycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWRkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1MGUxNzNjJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMDUwZTE3M2MnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0Rvd25sb2FkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTY2MWU2ZjhlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Eb3dubG9hZEFjdGl2aXR5QnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Eb3dubG9hZEFjdGl2aXR5QnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNjYxZTZmOGVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc2NjFlNmY4ZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzY2MWU2ZjhlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Eb3dubG9hZEFjdGl2aXR5QnV0dG9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02NjFlNmY4ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzY2MWU2ZjhlJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9FbGVtZW50c05vdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTViYzA0MWY5JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9FbGVtZW50c05vdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0VsZW1lbnRzTm90ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VsZW1lbnRzTm90ZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNWJjMDQxZjlcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1YmMwNDFmOScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzViYzA0MWY5JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FbGVtZW50c05vdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTViYzA0MWY5JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNWJjMDQxZjknLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0VtcHR5QWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTlhZWY5Njg4JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9FbXB0eUFjdGl2aXR5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9FbXB0eUFjdGl2aXR5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRW1wdHlBY3Rpdml0eS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiOWFlZjk2ODhcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc5YWVmOTY4OCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzlhZWY5Njg4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FbXB0eUFjdGl2aXR5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD05YWVmOTY4OCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzlhZWY5Njg4JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc1ODllODZlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGFnZVRpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9QYWdlVGl0bGUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjc1ODllODZlXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNzU4OWU4NmUnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3NTg5ZTg2ZScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUGFnZVRpdGxlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03NTg5ZTg2ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzc1ODllODZlJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TaWRlYmFySGVscEJsb2NrLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1mZWYyNmE4MCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2lkZWJhckhlbHBCbG9jay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2lkZWJhckhlbHBCbG9jay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL1NpZGViYXJIZWxwQmxvY2sudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImZlZjI2YTgwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZmVmMjZhODAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdmZWYyNmE4MCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU2lkZWJhckhlbHBCbG9jay52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZmVmMjZhODAmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdmZWYyNmE4MCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVGFibGVMYXlvdXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTVkODRhMWQ4JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UYWJsZUxheW91dC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UYWJsZUxheW91dC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvVGFibGVMYXlvdXQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjVkODRhMWQ4XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNWQ4NGExZDgnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1ZDg0YTFkOCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVGFibGVMYXlvdXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTVkODRhMWQ4JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNWQ4NGExZDgnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1BlcmlvZHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcyZTNiNTk5JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QZXJpb2RzRGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QZXJpb2RzRGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9QZXJpb2RzRGV0YWlsLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3MmUzYjU5OVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzcyZTNiNTk5JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNzJlM2I1OTknLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1BlcmlvZHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcyZTNiNTk5JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNzJlM2I1OTknLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1BlcmlvZHNMaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMzNiMjkzNCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUGVyaW9kc0xpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1BlcmlvZHNMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9QZXJpb2RzTGlzdC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZDMzYjI5MzRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdkMzNiMjkzNCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2QzM2IyOTM0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9QZXJpb2RzTGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDMzYjI5MzQmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdkMzNiMjkzNCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWN0dWFsVmFsdWUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc5YTg4ZmM1JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9BY3R1YWxWYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWN0dWFsVmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL2VsZW1lbnRzL0FjdHVhbFZhbHVlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3OWE4OGZjNVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzc5YTg4ZmM1JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNzlhODhmYzUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FjdHVhbFZhbHVlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03OWE4OGZjNSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzc5YTg4ZmM1JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UYXJnZXRWYWx1ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGU1NzFiMjImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RhcmdldFZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UYXJnZXRWYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BlcmlvZHMvZWxlbWVudHMvVGFyZ2V0VmFsdWUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjBlNTcxYjIyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMGU1NzFiMjInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwZTU3MWIyMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVGFyZ2V0VmFsdWUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBlNTcxYjIyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMGU1NzFiMjInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1Jlc3VsdERldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmMyMGYxNzgmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1Jlc3VsdERldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVzdWx0RGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9SZXN1bHREZXRhaWwudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjZjMjBmMTc4XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNmMyMGYxNzgnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc2YzIwZjE3OCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVzdWx0RGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02YzIwZjE3OCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzZjMjBmMTc4JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZXN1bHRFbGVtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xOGZlNDIxOSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVzdWx0RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVzdWx0RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0RWxlbWVudC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMThmZTQyMTlcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcxOGZlNDIxOScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzE4ZmU0MjE5JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXN1bHRFbGVtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xOGZlNDIxOSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzE4ZmU0MjE5JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZXN1bHRMaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hYTA2YTg1ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVzdWx0TGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVzdWx0TGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0TGlzdC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYWEwNmE4NWVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdhYTA2YTg1ZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2FhMDZhODVlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXN1bHRMaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hYTA2YTg1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2FhMDZhODVlJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBlMmU4MzA3JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIwZTJlODMwN1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzBlMmU4MzA3JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMGUyZTgzMDcnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGUyZTgzMDcmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwZTJlODMwNycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSW5kaWNhdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YzJlNjgyZCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSW5kaWNhdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9JbmRpY2F0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL0luZGljYXRvci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNGMyZTY4MmRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0YzJlNjgyZCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzRjMmU2ODJkJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9JbmRpY2F0b3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRjMmU2ODJkJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNGMyZTY4MmQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlZmVyZW5jZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ODFjMjI5MmUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlZmVyZW5jZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9SZWZlcmVuY2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjgxYzIyOTJlXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnODFjMjI5MmUnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc4MWMyMjkyZScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04MWMyMjkyZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzgxYzIyOTJlJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZXN1bHRUeXBlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zYzIxYzQ2ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVzdWx0VHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVzdWx0VHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvUmVzdWx0VHlwZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiM2MyMWM0NmVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCczYzIxYzQ2ZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzNjMjFjNDZlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXN1bHRUeXBlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zYzIxYzQ2ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzNjMjFjNDZlJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UaXRsZURlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTJmZWQ1NCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVGl0bGVEZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVGl0bGVEZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvVGl0bGVEZXNjcmlwdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZDEyZmVkNTRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdkMTJmZWQ1NCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2QxMmZlZDU0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UaXRsZURlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTJmZWQ1NCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2QxMmZlZDU0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UcmFuc2FjdGlvbkRldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDdjMDZjMTImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RyYW5zYWN0aW9uRGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UcmFuc2FjdGlvbkRldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkRldGFpbC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMDdjMDZjMTJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwN2MwNmMxMicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzA3YzA2YzEyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UcmFuc2FjdGlvbkRldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDdjMDZjMTImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwN2MwNmMxMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVHJhbnNhY3Rpb25FbGVtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kNTZjMTFlYSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVHJhbnNhY3Rpb25FbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UcmFuc2FjdGlvbkVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25FbGVtZW50LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJkNTZjMTFlYVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2Q1NmMxMWVhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZDU2YzExZWEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RyYW5zYWN0aW9uRWxlbWVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDU2YzExZWEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdkNTZjMTFlYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVHJhbnNhY3Rpb25MaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jYzg3MjdjMiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVHJhbnNhY3Rpb25MaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UcmFuc2FjdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25MaXN0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJjYzg3MjdjMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2NjODcyN2MyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnY2M4NzI3YzInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RyYW5zYWN0aW9uTGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Y2M4NzI3YzImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdjYzg3MjdjMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWlkVHlwZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZGY5NmM5NmEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FpZFR5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FpZFR5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvQWlkVHlwZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZGY5NmM5NmFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdkZjk2Yzk2YScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2RmOTZjOTZhJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BaWRUeXBlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kZjk2Yzk2YSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2RmOTZjOTZhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjJhOGE3MzEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9EZXNjcmlwdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMjJhOGE3MzFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcyMmE4YTczMScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzIyYThhNzMxJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjJhOGE3MzEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyMmE4YTczMScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Yzc4NTMwNTImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Rpc2J1cnNlbWVudENoYW5uZWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Rpc2J1cnNlbWVudENoYW5uZWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGlzYnVyc2VtZW50Q2hhbm5lbC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYzc4NTMwNTJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdjNzg1MzA1MicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2M3ODUzMDUyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9EaXNidXJzZW1lbnRDaGFubmVsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jNzg1MzA1MiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2M3ODUzMDUyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9GaW5hbmNlVHlwZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTVjN2M1MmUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0ZpbmFuY2VUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9GaW5hbmNlVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GaW5hbmNlVHlwZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZTVjN2M1MmVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdlNWM3YzUyZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2U1YzdjNTJlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9GaW5hbmNlVHlwZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTVjN2M1MmUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdlNWM3YzUyZScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRmxvd1R5cGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBlNDA2YWEzJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9GbG93VHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRmxvd1R5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRmxvd1R5cGUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjBlNDA2YWEzXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMGU0MDZhYTMnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwZTQwNmFhMycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRmxvd1R5cGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBlNDA2YWEzJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMGU0MDZhYTMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1Byb3ZpZGVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zNWVmNjg1ZiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUHJvdmlkZXJPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1Byb3ZpZGVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1Byb3ZpZGVyT3JnYW5pemF0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIzNWVmNjg1ZlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzM1ZWY2ODVmJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMzVlZjY4NWYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Byb3ZpZGVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zNWVmNjg1ZiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzM1ZWY2ODVmJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OGEwOGRmNDYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlY2VpdmVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiOGEwOGRmNDZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc4YTA4ZGY0NicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzhhMDhkZjQ2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OGEwOGRmNDYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc4YTA4ZGY0NicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVjaXBpZW50Q291bnRyeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDNkNTM2ZDgmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlY2lwaWVudENvdW50cnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlY2lwaWVudENvdW50cnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDNkNTM2ZDhcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0M2Q1MzZkOCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQzZDUzNmQ4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00M2Q1MzZkOCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzQzZDUzNmQ4JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBhMzBiYWEyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlY2lwaWVudFJlZ2lvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNpcGllbnRSZWdpb24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjBhMzBiYWEyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMGEzMGJhYTInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwYTMwYmFhMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVjaXBpZW50UmVnaW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wYTMwYmFhMiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzBhMzBiYWEyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRlZWJhYTQxJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1NlY3Rvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9TZWN0b3IudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjRlZWJhYTQxXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNGVlYmFhNDEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc0ZWViYWE0MScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU2VjdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ZWViYWE0MSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzRlZWJhYTQxJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UaWVkU3RhdHVzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01NzA4OTg0MSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVGllZFN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVGllZFN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9UaWVkU3RhdHVzLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1NzA4OTg0MVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzU3MDg5ODQxJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNTcwODk4NDEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RpZWRTdGF0dXMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU3MDg5ODQxJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNTcwODk4NDEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RyYW5zYWN0aW9uRGF0ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjEyZmNjNjEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RyYW5zYWN0aW9uRGF0ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVHJhbnNhY3Rpb25EYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1RyYW5zYWN0aW9uRGF0ZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNjEyZmNjNjFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc2MTJmY2M2MScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzYxMmZjYzYxJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UcmFuc2FjdGlvbkRhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTYxMmZjYzYxJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNjEyZmNjNjEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RyYW5zYWN0aW9uVHlwZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjNmNjc0MjYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RyYW5zYWN0aW9uVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVHJhbnNhY3Rpb25UeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1RyYW5zYWN0aW9uVHlwZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNjNmNjc0MjZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc2M2Y2NzQyNicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzYzZjY3NDI2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UcmFuc2FjdGlvblR5cGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTYzZjY3NDI2JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNjNmNjc0MjYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1ZhbHVlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xNjk3MjgzNCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1ZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1ZhbHVlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxNjk3MjgzNFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzE2OTcyODM0JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMTY5NzI4MzQnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1ZhbHVlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xNjk3MjgzNCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzE2OTcyODM0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9BY3Rpdml0eVVwbG9hZC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGVkNWZkZDImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FjdGl2aXR5VXBsb2FkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FjdGl2aXR5VXBsb2FkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvQWN0aXZpdHlVcGxvYWQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjBlZDVmZGQyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMGVkNWZkZDInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwZWQ1ZmRkMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWN0aXZpdHlVcGxvYWQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBlZDVmZGQyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMGVkNWZkZDInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0ltcG9ydExpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQwZDc4NzBhJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9JbXBvcnRMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0ltcG9ydExpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2ltcG9ydC9JbXBvcnRMaXN0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0MGQ3ODcwYVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzQwZDc4NzBhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNDBkNzg3MGEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0ltcG9ydExpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQwZDc4NzBhJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDBkNzg3MGEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0ltcG9ydFBsYWNlaG9sZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01ZDE0OGQzNyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSW1wb3J0UGxhY2Vob2xkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vSW1wb3J0UGxhY2Vob2xkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2ltcG9ydC9JbXBvcnRQbGFjZWhvbGRlci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNWQxNDhkMzdcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1ZDE0OGQzNycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzVkMTQ4ZDM3JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9JbXBvcnRQbGFjZWhvbGRlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWQxNDhkMzcmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1ZDE0OGQzNycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vTGlzdEVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTlhNjA4NDMyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9MaXN0RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9MaXN0RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0xpc3RFbGVtZW50LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI5YTYwODQzMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzlhNjA4NDMyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnOWE2MDg0MzInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0xpc3RFbGVtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD05YTYwODQzMiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzlhNjA4NDMyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9PcmdhbmlzYXRpb25EYXRhLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YWRhNWYzNiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vT3JnYW5pc2F0aW9uRGF0YS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vT3JnYW5pc2F0aW9uRGF0YS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgXCIuL09yZ2FuaXNhdGlvbkRhdGEudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGFkYTVmMzYmbGFuZz1zY3NzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNGFkYTVmMzZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0YWRhNWYzNicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzRhZGE1ZjM2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9PcmdhbmlzYXRpb25EYXRhLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YWRhNWYzNiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzRhZGE1ZjM2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9PcmdhbmlzYXRpb25FbGVtZW50cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDU0ZWE4MDMmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL09yZ2FuaXNhdGlvbkVsZW1lbnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL09yZ2FuaXNhdGlvbkVsZW1lbnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjQ1NGVhODAzXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNDU0ZWE4MDMnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc0NTRlYTgwMycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ1NGVhODAzJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDU0ZWE4MDMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL09yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yODM5ZTA5OCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMjgzOWUwOThcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcyODM5ZTA5OCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzI4MzllMDk4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjgzOWUwOTgmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyODM5ZTA5OCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lZjZkMzEyYSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL0RvY3VtZW50TGluay52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZWY2ZDMxMmFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdlZjZkMzEyYScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2VmNmQzMTJhJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWVmNmQzMTJhJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignZWY2ZDMxMmEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlY2lwaWVudENvdW50cnlCdWRnZXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWNiZTg3NmQwJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZWNpcGllbnRDb3VudHJ5QnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlY2lwaWVudENvdW50cnlCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5QnVkZ2V0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJjYmU4NzZkMFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2NiZTg3NmQwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnY2JlODc2ZDAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlY2lwaWVudENvdW50cnlCdWRnZXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWNiZTg3NmQwJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignY2JlODc2ZDAnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlcG9ydGluZ09yZ0J1ZGdldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjQ2N2QyZjEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlcG9ydGluZ09yZ0J1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXBvcnRpbmdPcmdCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZXBvcnRpbmdPcmdCdWRnZXQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjI0NjdkMmYxXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjQ2N2QyZjEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyNDY3ZDJmMScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVwb3J0aW5nT3JnQnVkZ2V0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yNDY3ZDJmMSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzI0NjdkMmYxJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZXBvcnRpbmdPcmdhbmlzYXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTY5OTlhZWUyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZXBvcnRpbmdPcmdhbmlzYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI2OTk5YWVlMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzY5OTlhZWUyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNjk5OWFlZTInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlcG9ydGluZ09yZ2FuaXNhdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Njk5OWFlZTImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc2OTk5YWVlMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVwb3J0aW5nUmVnaW9uQnVkZ2V0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04NWM5ZGMzZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVwb3J0aW5nUmVnaW9uQnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlcG9ydGluZ1JlZ2lvbkJ1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlcG9ydGluZ1JlZ2lvbkJ1ZGdldC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiODVjOWRjM2VcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc4NWM5ZGMzZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzg1YzlkYzNlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXBvcnRpbmdSZWdpb25CdWRnZXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTg1YzlkYzNlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignODVjOWRjM2UnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RvdGFsQnVkZ2V0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kM2MwZDMzYSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVG90YWxCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVG90YWxCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEJ1ZGdldC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZDNjMGQzM2FcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdkM2MwZDMzYScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2QzYzBkMzNhJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Ub3RhbEJ1ZGdldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDNjMGQzM2EmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdkM2MwZDMzYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVG90YWxFeHBlbmRpdHVyZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDY1NWY5NTEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RvdGFsRXhwZW5kaXR1cmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVG90YWxFeHBlbmRpdHVyZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1RvdGFsRXhwZW5kaXR1cmUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjQ2NTVmOTUxXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNDY1NWY5NTEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc0NjU1Zjk1MScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVG90YWxFeHBlbmRpdHVyZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDY1NWY5NTEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0NjU1Zjk1MScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUGFzc3dvcmRSZWNvdmVyeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzAzODVkYTNcIlxuY29uc3Qgc2NyaXB0ID0ge31cblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9yZXNldC9QYXNzd29yZFJlY292ZXJ5LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3MDM4NWRhM1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzcwMzg1ZGEzJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNzAzODVkYTMnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Bhc3N3b3JkUmVjb3ZlcnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcwMzg1ZGEzXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzcwMzg1ZGEzJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZXNldFBhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM2Yjc2NGJiJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZXNldFBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1Jlc2V0UGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgXCIuL1Jlc2V0UGFnZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zNmI3NjRiYiZsYW5nPXNjc3NcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMzZiNzY0YmJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCczNmI3NjRiYicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzM2Yjc2NGJiJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXNldFBhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM2Yjc2NGJiJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMzZiNzY0YmInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1Jlc2V0UGFzc3dvcmQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ1YjQyY2M3JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZXNldFBhc3N3b3JkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXNldFBhc3N3b3JkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUmVzZXRQYXNzd29yZC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDViNDJjYzdcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0NWI0MmNjNycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQ1YjQyY2M3JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXNldFBhc3N3b3JkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NWI0MmNjNyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzQ1YjQyY2M3JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TZXR0aW5nRGVmYXVsdEZvcm0udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRkODY0NjY3JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TZXR0aW5nRGVmYXVsdEZvcm0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1NldHRpbmdEZWZhdWx0Rm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0ZDg2NDY2N1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzRkODY0NjY3JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNGQ4NjQ2NjcnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1NldHRpbmdEZWZhdWx0Rm9ybS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGQ4NjQ2NjcmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0ZDg2NDY2NycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vU2V0dGluZ1BhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgxYTdmZDg2JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TZXR0aW5nUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2V0dGluZ1BhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zZXR0aW5nL1NldHRpbmdQYWdlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI4MWE3ZmQ4NlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzgxYTdmZDg2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnODFhN2ZkODYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1NldHRpbmdQYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04MWE3ZmQ4NiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzgxYTdmZDg2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TZXR0aW5nUHVibGlzaGluZ0Zvcm0udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTYzMDc3MzA1JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TZXR0aW5nUHVibGlzaGluZ0Zvcm0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1NldHRpbmdQdWJsaXNoaW5nRm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1B1Ymxpc2hpbmdGb3JtLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI2MzA3NzMwNVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzYzMDc3MzA1JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNjMwNzczMDUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1NldHRpbmdQdWJsaXNoaW5nRm9ybS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjMwNzczMDUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc2MzA3NzMwNScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vT3JnYW5pc2F0aW9uTGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzViOTkwNjAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL09yZ2FuaXNhdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vT3JnYW5pc2F0aW9uTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9PcmdhbmlzYXRpb25MaXN0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3NWI5OTA2MFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzc1Yjk5MDYwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNzViOTkwNjAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL09yZ2FuaXNhdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc1Yjk5MDYwJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNzViOTkwNjAnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FkbWluQmFyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NTk0YWNkNSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWRtaW5CYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWRtaW5CYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vY29tcG9uZW50cy9BZG1pbkJhci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDU5NGFjZDVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0NTk0YWNkNScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQ1OTRhY2Q1JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BZG1pbkJhci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDU5NGFjZDUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0NTk0YWNkNScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVGFibGVMaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wNWIyNjM0YiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVGFibGVMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RhYmxlTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9jb21wb25lbnRzL1RhYmxlTGlzdC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMDViMjYzNGJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwNWIyNjM0YicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzA1YjI2MzRiJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UYWJsZUxpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1YjI2MzRiJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMDViMjYzNGInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0Fib3V0UGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2Q5ZmE5MDRcIlxuY29uc3Qgc2NyaXB0ID0ge31cblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvQWJvdXRQYWdlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3ZDlmYTkwNFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzdkOWZhOTA0JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnN2Q5ZmE5MDQnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0Fib3V0UGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2Q5ZmE5MDRcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignN2Q5ZmE5MDQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03Y2RhNWMxOSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRW1haWxWZXJpZmljYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3Y2RhNWMxOVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzdjZGE1YzE5JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnN2NkYTVjMTknLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03Y2RhNWMxOSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzdjZGE1YzE5JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xN2U2MzJhNiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSWF0aVJlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vSWF0aVJlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgXCJAdnVlZm9ybS9tdWx0aXNlbGVjdC90aGVtZXMvZGVmYXVsdC5jc3M/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZsYW5nPWNzc1wiXG5pbXBvcnQgXCIuL0lhdGlSZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTEmaWQ9MTdlNjMyYTYmbGFuZz1zY3NzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvSWF0aVJlZ2lzdGVyUGFnZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMTdlNjMyYTZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcxN2U2MzJhNicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzE3ZTYzMmE2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xN2U2MzJhNiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzE3ZTYzMmE2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9JYXRpU3RhbmRhcmQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWU2ODQ5NGQwXCJcbmNvbnN0IHNjcmlwdCA9IHt9XG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlTdGFuZGFyZC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZTY4NDk0ZDBcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdlNjg0OTRkMCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2U2ODQ5NGQwJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9JYXRpU3RhbmRhcmQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWU2ODQ5NGQwXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2U2ODQ5NGQwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kY2E2OTM5NiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUHVibGlzaGluZ0NoZWNrbGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHMmc2V0dXA9dHJ1ZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10cyZzZXR1cD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUHVibGlzaGluZ0NoZWNrbGlzdC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZGNhNjkzOTZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdkY2E2OTM5NicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2RjYTY5Mzk2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kY2E2OTM5NiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2RjYTY5Mzk2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUyMjY2MjAwJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgXCJAdnVlZm9ybS9tdWx0aXNlbGVjdC90aGVtZXMvZGVmYXVsdC5jc3M/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZsYW5nPWNzc1wiXG5pbXBvcnQgXCIuL1JlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MSZpZD01MjI2NjIwMCZsYW5nPXNjc3NcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9SZWdpc3RlclBhZ2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjUyMjY2MjAwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNTIyNjYyMDAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1MjI2NjIwMCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MjI2NjIwMCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzUyMjY2MjAwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TdXBwb3J0UGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTZmZmY5ODBcIlxuY29uc3Qgc2NyaXB0ID0ge31cblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvU3VwcG9ydFBhZ2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjU2ZmZmOTgwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNTZmZmY5ODAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1NmZmZjk4MCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU3VwcG9ydFBhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU2ZmZmOTgwXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzU2ZmZmOTgwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9XZWxjb21lUGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZWFlNDQ4NWFcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9XZWxjb21lUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIlxuZXhwb3J0ICogZnJvbSBcIi4vV2VsY29tZVBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvV2VsY29tZVBhZ2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImVhZTQ0ODVhXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZWFlNDQ4NWEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdlYWU0NDg1YScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vV2VsY29tZVBhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWVhZTQ0ODVhXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2VhZTQ0ODVhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9BZG1pbkZvb3Rlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTVmOWI0YmJcIlxuY29uc3Qgc2NyaXB0ID0ge31cblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvQWRtaW5Gb290ZXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjU1ZjliNGJiXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNTVmOWI0YmInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1NWY5YjRiYicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWRtaW5Gb290ZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU1ZjliNGJiXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzU1ZjliNGJiJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Kb2luTm93LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yNjlmNTA4NlwiXG5jb25zdCBzY3JpcHQgPSB7fVxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9Kb2luTm93LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyNjlmNTA4NlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzI2OWY1MDg2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMjY5ZjUwODYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0pvaW5Ob3cudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI2OWY1MDg2XCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzI2OWY1MDg2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TaWduSW4udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWExODYxZjNlJnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TaWduSW4udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1NpZ25Jbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgXCIuL1NpZ25Jbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMTg2MWYzZSZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fc2NvcGVJZCcsXCJkYXRhLXYtYTE4NjFmM2VcIl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvU2lnbkluLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJhMTg2MWYzZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2ExODYxZjNlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnYTE4NjFmM2UnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1NpZ25Jbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YTE4NjFmM2Umc2NvcGVkPXRydWUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdhMTg2MWYzZScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vV2ViRm9vdGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yMGQxMDY4MFwiXG5jb25zdCBzY3JpcHQgPSB7fVxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJGb290ZXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjIwZDEwNjgwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjBkMTA2ODAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyMGQxMDY4MCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vV2ViRm9vdGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yMGQxMDY4MFwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyMGQxMDY4MCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vV2ViSGVhZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xMGM5ZTBiMiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vV2ViSGVhZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9XZWJIZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvV2ViSGVhZGVyLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxMGM5ZTBiMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzEwYzllMGIyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMTBjOWUwYjInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1dlYkhlYWRlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MTBjOWUwYjImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcxMGM5ZTBiMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FkbWluSGVhZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FkbWluSGVhZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQnJlYWRDcnVtYi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQnJlYWRDcnVtYi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9CdXR0b25Db21wb25lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0J1dHRvbkNvbXBvbmVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EZXNjcmlwdGlvbkZvcm0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Rlc2NyaXB0aW9uRm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FcnJvck1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JNZXNzYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JQb3BVcC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FcnJvclBvcFVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSG92ZXJUZXh0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Ib3ZlclRleHQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTG9hZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Mb2FkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTmF2RHJvcGRvd24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL05hdkRyb3Bkb3duLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BvcHVwTW9kYWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BvcHVwTW9kYWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmFkaWFsUHJvZ3Jlc3NCYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RhYmxlUGFnaW5hdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGFibGVQYWdpbmF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RvYXN0TWVzc2FnZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Ub2FzdE1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EZWxldGVCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVsZXRlQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTGluay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTGluay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1B1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9VblB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVW5QdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVsZXRlQWN0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0RlbGV0ZUFjdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Vycm9yTGlzdHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JMaXN0cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0hhdmVOb3RBZGRlZFlldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSGF2ZU5vdEFkZGVkWWV0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3JnYW5pemF0aW9uUHVibGlzaFVucHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BhZ2VUaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGFnZVRpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Byb2dyZXNzTG9hZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Byb2dyZXNzTG9hZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU3RpY2t5RXJyb3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1N0aWNreUVycm9ycy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0VsZW1lbnRTdGF0dXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRWxlbWVudFN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1ByZXZpb3VzbHlQdWJsaXNoZWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUHJldmlvdXNseVB1Ymxpc2hlZC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5RGVmYXVsdFZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5RGVmYXVsdFZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5RGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5SW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5SW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQ3JlYXRlTW9kYWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0NyZWF0ZU1vZGFsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0J1bGtQdWJsaXNoaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0J1bGtQdWJsaXNoaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JJdGVtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Vycm9ySXRlbS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1B1Ymxpc2hTZWxlY3RlZC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QdWJsaXNoU2VsZWN0ZWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWZyZXNoVG9hc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVmcmVzaFRvYXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVmFsaWRhdGlvbkVycm9ycy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9WYWxpZGF0aW9uRXJyb3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlEYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0eURhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQ29uZGl0aW9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQ29uZGl0aW9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Db250YWN0SW5mby52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQ29udGFjdEluZm8udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0h1bWFuaXRhcmlhblNjb3BlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0h1bWFuaXRhcmlhblNjb3BlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSWF0aUlkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0lhdGlJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0xlZ2FjeURhdGEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0xlZ2FjeURhdGEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTG9jYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0xvY2F0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL090aGVySWRlbnRpZmllci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3RoZXJJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BhcnRpY2lwYXRpbmdPcmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BhcnRpY2lwYXRpbmdPcmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGxhbm5lZERpc2J1cnNlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QbGFubmVkRGlzYnVyc2VtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUG9saWN5TWFya2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Qb2xpY3lNYXJrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVjaXBpZW50Q291bnRyeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVjaXBpZW50Q291bnRyeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVjaXBpZW50UmVnaW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVsYXRlZEFjdGl2aXR5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWxhdGVkQWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc3VsdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzdWx0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NlY3Rvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2VjdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RhZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGFnLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RyYW5zYWN0aW9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JbmRpY2F0b3JEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0luZGljYXRvckRldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JbmRpY2F0b3JMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JbmRpY2F0b3JMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FnZ3JlZ2F0aW9uU3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BZ2dyZWdhdGlvblN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9CYXNlbGluZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQmFzZWxpbmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0luZGljYXRvckFzY2VuZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW5kaWNhdG9yQXNjZW5kaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL01lYXN1cmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL01lYXN1cmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGVyaW9kLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QZXJpb2QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWZlcmVuY2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0aWVzRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0eUVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlFbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWRkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Rvd25sb2FkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Rvd25sb2FkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRWxlbWVudHNOb3RlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FbGVtZW50c05vdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRW1wdHlBY3Rpdml0eS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRW1wdHlBY3Rpdml0eS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGFnZVRpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2lkZWJhckhlbHBCbG9jay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2lkZWJhckhlbHBCbG9jay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UYWJsZUxheW91dC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UYWJsZUxheW91dC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BlcmlvZHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BlcmlvZHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGVyaW9kc0xpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BlcmlvZHNMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdHVhbFZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3R1YWxWYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UYXJnZXRWYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGFyZ2V0VmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzdWx0RGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXN1bHREZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzdWx0RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzdWx0RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXN1bHRMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXN1bHRMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0luZGljYXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW5kaWNhdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlZmVyZW5jZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc3VsdFR5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc3VsdFR5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGl0bGVEZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGl0bGVEZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvbkRldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVHJhbnNhY3Rpb25EZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVHJhbnNhY3Rpb25FbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvbkVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVHJhbnNhY3Rpb25MaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWlkVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWlkVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9GaW5hbmNlVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRmluYW5jZVR5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRmxvd1R5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Zsb3dUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Byb3ZpZGVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Qcm92aWRlck9yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVjZWl2ZXJPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVjaXBpZW50Q291bnRyeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVjaXBpZW50Q291bnRyeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlY2lwaWVudFJlZ2lvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NlY3Rvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UaWVkU3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UaWVkU3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RyYW5zYWN0aW9uRGF0ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVHJhbnNhY3Rpb25EYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RyYW5zYWN0aW9uVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVHJhbnNhY3Rpb25UeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1ZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9WYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0eVVwbG9hZC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0eVVwbG9hZC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0ltcG9ydExpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW1wb3J0TGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0ltcG9ydFBsYWNlaG9sZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0ltcG9ydFBsYWNlaG9sZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTGlzdEVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTGlzdEVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9PcmdhbmlzYXRpb25EYXRhLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9PcmdhbmlzYXRpb25EYXRhLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL09yZ2FuaXNhdGlvbkVsZW1lbnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL09yZ2FuaXNhdGlvbkVsZW1lbnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRDb3VudHJ5QnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVwb3J0aW5nT3JnQnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlcG9ydGluZ09yZ0J1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlcG9ydGluZ09yZ2FuaXNhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXBvcnRpbmdPcmdhbmlzYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXBvcnRpbmdSZWdpb25CdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVwb3J0aW5nUmVnaW9uQnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVG90YWxCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVG90YWxCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RvdGFsRXhwZW5kaXR1cmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXNldFBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc2V0UGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXNldFBhc3N3b3JkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXNldFBhc3N3b3JkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NldHRpbmdEZWZhdWx0Rm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NldHRpbmdQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TZXR0aW5nUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TZXR0aW5nUHVibGlzaGluZ0Zvcm0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NldHRpbmdQdWJsaXNoaW5nRm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9PcmdhbmlzYXRpb25MaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL09yZ2FuaXNhdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BZG1pbkJhci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BZG1pbkJhci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RhYmxlTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UYWJsZUxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FbWFpbFZlcmlmaWNhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRW1haWxWZXJpZmljYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSWF0aVJlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSWF0aVJlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10cyZzZXR1cD10cnVlXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1B1Ymxpc2hpbmdDaGVja2xpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzJnNldHVwPXRydWVcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TaWduSW4udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NpZ25Jbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9XZWJIZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1dlYkhlYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1dlbGNvbWVQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1dlbGNvbWVQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiIiwidmFyIG1hcCA9IHtcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X2RhdGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvYWN0aXZpdHlfZGF0ZS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X3Njb3BlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X3Njb3BlLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvYWN0aXZpdHlfc3RhdHVzLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X3N0YXR1cy5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2J1ZGdldC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9idWRnZXQuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9idWlsZGluZy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9idWlsZGluZy5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2NhcGl0YWxfc3BlbmQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvY2FwaXRhbF9zcGVuZC5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2NvbGxhYm9yYXRpb25fdHlwZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9jb2xsYWJvcmF0aW9uX3R5cGUuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9jb25kaXRpb25zLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2NvbmRpdGlvbnMuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9jb250YWN0X2luZm8uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvY29udGFjdF9pbmZvLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvY291bnRyeV9idWRnZXRfaXRlbXMuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvY291bnRyeV9idWRnZXRfaXRlbXMuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9jcnMtYWRkLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2Nycy1hZGQuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2FpZF90eXBlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2RlZmF1bHRfYWlkX3R5cGUuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2ZpbmFuY2VfdHlwZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2ZpbmFuY2VfdHlwZS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2RlZmF1bHRfZmxvd190eXBlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2RlZmF1bHRfZmxvd190eXBlLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvZGVzY3JpcHRpb24uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvZGVzY3JpcHRpb24uc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9kb2N1bWVudF9saW5rLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2RvY3VtZW50X2xpbmsuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9odW1hbml0YXJpYW5fc2NvcGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvaHVtYW5pdGFyaWFuX3Njb3BlLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvaWF0aV9pZGVudGlmaWVyLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2lhdGlfaWRlbnRpZmllci5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2luZGljYXRvci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9pbmRpY2F0b3Iuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9sZWdhY3lfZGF0YS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9sZWdhY3lfZGF0YS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2xvY2F0aW9uLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2xvY2F0aW9uLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvb3RoZXJfaWRlbnRpZmllci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9vdGhlcl9pZGVudGlmaWVyLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvcGFydGljaXBhdGluZ19vcmcuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcGFydGljaXBhdGluZ19vcmcuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9wZXJpb2Quc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcGVyaW9kLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvcGxhbm5lZF9kaXNidXJzZW1lbnQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcGxhbm5lZF9kaXNidXJzZW1lbnQuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9wb2xpY3lfbWFya2VyLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3BvbGljeV9tYXJrZXIuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9yZWNpcGllbnRfY291bnRyeS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9yZWNpcGllbnRfY291bnRyeS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3JlY2lwaWVudF9yZWdpb24uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcmVjaXBpZW50X3JlZ2lvbi5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3JlbGF0ZWRfYWN0aXZpdHkuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcmVsYXRlZF9hY3Rpdml0eS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3JlcG9ydGluZ19vcmcuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcmVwb3J0aW5nX29yZy5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3Jlc3VsdC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9yZXN1bHQuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9yZXN1bHRzLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3Jlc3VsdHMuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9zZWN0b3Iuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvc2VjdG9yLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvdGFnLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3RhZy5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3RpdGxlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3RpdGxlLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvdHJhbnNhY3Rpb25zLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3RyYW5zYWN0aW9ucy5zdmdcIixcblx0XCIuL2FkZC1tb3JlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FkZC1tb3JlLnN2Z1wiLFxuXHRcIi4vYWRkLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FkZC5zdmdcIixcblx0XCIuL2FsZXJ0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FsZXJ0LnN2Z1wiLFxuXHRcIi4vYWxpZ24tY2VudGVyLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FsaWduLWNlbnRlci5zdmdcIixcblx0XCIuL2FsaWduLXJpZ2h0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FsaWduLXJpZ2h0LnN2Z1wiLFxuXHRcIi4vYXBwcm92ZWQtY2xvdWQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYXBwcm92ZWQtY2xvdWQuc3ZnXCIsXG5cdFwiLi9hcnJvdy1kb3duLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Fycm93LWRvd24uc3ZnXCIsXG5cdFwiLi9hcnJvdy1sZWZ0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Fycm93LWxlZnQuc3ZnXCIsXG5cdFwiLi9hcnJvdy1yaWdodC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hcnJvdy1yaWdodC5zdmdcIixcblx0XCIuL2Fycm93LXNob3J0LWxlZnQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYXJyb3ctc2hvcnQtbGVmdC5zdmdcIixcblx0XCIuL2FzY2VuZGluZy1hcnJvdy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hc2NlbmRpbmctYXJyb3cuc3ZnXCIsXG5cdFwiLi9iaWxsLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2JpbGwuc3ZnXCIsXG5cdFwiLi9ib3guc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYm94LnN2Z1wiLFxuXHRcIi4vYnVkZ2V0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2J1ZGdldC5zdmdcIixcblx0XCIuL2J1aWxkaW5nLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2J1aWxkaW5nLnN2Z1wiLFxuXHRcIi4vY2FuY2VsLWNsb3VkLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2NhbmNlbC1jbG91ZC5zdmdcIixcblx0XCIuL2NoZWNrLWNpcmNsZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jaGVjay1jaXJjbGUuc3ZnXCIsXG5cdFwiLi9jaGVja2JveC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jaGVja2JveC5zdmdcIixcblx0XCIuL2NoZWNrZWQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvY2hlY2tlZC5zdmdcIixcblx0XCIuL2NoZXZyb24uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvY2hldnJvbi5zdmdcIixcblx0XCIuL2Nsb3NlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Nsb3NlLnN2Z1wiLFxuXHRcIi4vY29weXJpZ2h0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2NvcHlyaWdodC5zdmdcIixcblx0XCIuL2NvcmUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvY29yZS5zdmdcIixcblx0XCIuL2RlZmF1bHQtMS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kZWZhdWx0LTEuc3ZnXCIsXG5cdFwiLi9kZWZhdWx0LTIuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVmYXVsdC0yLnN2Z1wiLFxuXHRcIi4vZGVsZXRlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2RlbGV0ZS5zdmdcIixcblx0XCIuL2Rlc2NlbmRpbmctYXJyb3cuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVzY2VuZGluZy1hcnJvdy5zdmdcIixcblx0XCIuL2RvY3VtZW50LXdyaXRlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2RvY3VtZW50LXdyaXRlLnN2Z1wiLFxuXHRcIi4vZG91YmxlLXRpY2suc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZG91YmxlLXRpY2suc3ZnXCIsXG5cdFwiLi9kb3dubG9hZC1maWxlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Rvd25sb2FkLWZpbGUuc3ZnXCIsXG5cdFwiLi9kb3dubG9hZC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kb3dubG9hZC5zdmdcIixcblx0XCIuL2Ryb3Bkb3duLWFycm93LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Ryb3Bkb3duLWFycm93LnN2Z1wiLFxuXHRcIi4vZWRpdC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9lZGl0LnN2Z1wiLFxuXHRcIi4vZXh0ZXJuYWwuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZXh0ZXJuYWwuc3ZnXCIsXG5cdFwiLi9leWUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZXllLnN2Z1wiLFxuXHRcIi4vZm9sZGVyLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2ZvbGRlci5zdmdcIixcblx0XCIuL2Zvb3Rlci1sb2dvLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Zvb3Rlci1sb2dvLnN2Z1wiLFxuXHRcIi4vZ3JvdXAuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZ3JvdXAuc3ZnXCIsXG5cdFwiLi9oZWFkZXItbG9nby5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9oZWFkZXItbG9nby5zdmdcIixcblx0XCIuL2hlYWRwaG9uZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9oZWFkcGhvbmUuc3ZnXCIsXG5cdFwiLi9oZWxwLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2hlbHAuc3ZnXCIsXG5cdFwiLi9oaXN0b3J5LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2hpc3Rvcnkuc3ZnXCIsXG5cdFwiLi9pYy12ZXJpZmljYXRpb24uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvaWMtdmVyaWZpY2F0aW9uLnN2Z1wiLFxuXHRcIi4vbGVmdC1hcnJvdy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9sZWZ0LWFycm93LnN2Z1wiLFxuXHRcIi4vbG9nby13aGl0ZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9sb2dvLXdoaXRlLnN2Z1wiLFxuXHRcIi4vbG9nby5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9sb2dvLnN2Z1wiLFxuXHRcIi4vbG9nb3V0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2xvZ291dC5zdmdcIixcblx0XCIuL21haWwuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbWFpbC5zdmdcIixcblx0XCIuL21vb24uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbW9vbi5zdmdcIixcblx0XCIuL25vdGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbm90ZS5zdmdcIixcblx0XCIuL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9idWlsZGluZy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvYnVpbGRpbmcuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvZGVzY3JpcHRpb24uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2Rlc2NyaXB0aW9uLnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2RvY3VtZW50X2xpbmsuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2RvY3VtZW50X2xpbmsuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvbmFtZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvbmFtZS5zdmdcIixcblx0XCIuL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdfaWRlbnRpZmllci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvb3JnX2lkZW50aWZpZXIuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvb3JnYW5pc2F0aW9uX2lkZW50aWZpZXIuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL29yZ2FuaXNhdGlvbl9pZGVudGlmaWVyLnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL29yZ2FuaXphdGlvbl9pZGVudGlmaWVyLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdhbml6YXRpb25faWRlbnRpZmllci5zdmdcIixcblx0XCIuL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZWNpcGllbnRfY291bnRyeV9idWRnZXQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3JlY2lwaWVudF9jb3VudHJ5X2J1ZGdldC5zdmdcIixcblx0XCIuL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZWNpcGllbnRfb3JnX2J1ZGdldC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVjaXBpZW50X29yZ19idWRnZXQuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVjaXBpZW50X3JlZ2lvbl9idWRnZXQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3JlY2lwaWVudF9yZWdpb25fYnVkZ2V0LnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3JlcG9ydGluZ19vcmcuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3JlcG9ydGluZ19vcmcuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVwb3J0aW5nX29yZ2FuaXNhdGlvbi5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVwb3J0aW5nX29yZ2FuaXNhdGlvbi5zdmdcIixcblx0XCIuL29yZ2FuaXNhdGlvbi1lbGVtZW50cy90aXRsZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvdGl0bGUuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvdG90YWxfYnVkZ2V0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy90b3RhbF9idWRnZXQuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvdG90YWxfZXhwZW5kaXR1cmUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3RvdGFsX2V4cGVuZGl0dXJlLnN2Z1wiLFxuXHRcIi4vcGFuZWwtc2VhcmNoLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3BhbmVsLXNlYXJjaC5zdmdcIixcblx0XCIuL3BsdXMuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcGx1cy5zdmdcIixcblx0XCIuL3B1Ymxpc2guc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcHVibGlzaC5zdmdcIixcblx0XCIuL3B3LWxvY2suc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcHctbG9jay5zdmdcIixcblx0XCIuL3F1ZXN0aW9uLW1hcmsuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcXVlc3Rpb24tbWFyay5zdmdcIixcblx0XCIuL3JlZC1jcm9zcy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9yZWQtY3Jvc3Muc3ZnXCIsXG5cdFwiLi9yZWQtZG90LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3JlZC1kb3Quc3ZnXCIsXG5cdFwiLi9yZWRvLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3JlZG8uc3ZnXCIsXG5cdFwiLi9yaWdodC1hcnJvdy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9yaWdodC1hcnJvdy5zdmdcIixcblx0XCIuL3NlYXJjaC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9zZWFyY2guc3ZnXCIsXG5cdFwiLi9zZXR0aW5nLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3NldHRpbmcuc3ZnXCIsXG5cdFwiLi9zaGllbGQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc2hpZWxkLnN2Z1wiLFxuXHRcIi4vc21pbGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc21pbGUuc3ZnXCIsXG5cdFwiLi9zdGFyLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3N0YXIuc3ZnXCIsXG5cdFwiLi90aWNrLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3RpY2suc3ZnXCIsXG5cdFwiLi90aW1lcy1jaXJjbGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvdGltZXMtY2lyY2xlLnN2Z1wiLFxuXHRcIi4vdHdpdHRlci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy90d2l0dGVyLnN2Z1wiLFxuXHRcIi4vdXBsb2FkLWZpbGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvdXBsb2FkLWZpbGUuc3ZnXCIsXG5cdFwiLi91c2VyLXByb2ZpbGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvdXNlci1wcm9maWxlLnN2Z1wiLFxuXHRcIi4vdXNlci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy91c2VyLnN2Z1wiLFxuXHRcIi4vd2FybmluZy1hY3Rpdml0eS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy93YXJuaW5nLWFjdGl2aXR5LnN2Z1wiLFxuXHRcIi4vd2FybmluZy1maWxsLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3dhcm5pbmctZmlsbC5zdmdcIixcblx0XCIuL3dhcm5pbmcuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvd2FybmluZy5zdmdcIixcblx0XCIuL3lvdXR1YmUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcveW91dHViZS5zdmdcIlxufTtcblxuXG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dChyZXEpIHtcblx0dmFyIGlkID0gd2VicGFja0NvbnRleHRSZXNvbHZlKHJlcSk7XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKGlkKTtcbn1cbmZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpIHtcblx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhtYXAsIHJlcSkpIHtcblx0XHR2YXIgZSA9IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIgKyByZXEgKyBcIidcIik7XG5cdFx0ZS5jb2RlID0gJ01PRFVMRV9OT1RfRk9VTkQnO1xuXHRcdHRocm93IGU7XG5cdH1cblx0cmV0dXJuIG1hcFtyZXFdO1xufVxud2VicGFja0NvbnRleHQua2V5cyA9IGZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0S2V5cygpIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKG1hcCk7XG59O1xud2VicGFja0NvbnRleHQucmVzb2x2ZSA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZTtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0NvbnRleHQ7XG53ZWJwYWNrQ29udGV4dC5pZCA9IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcgc3luYyByZWN1cnNpdmUgXlxcXFwuXFxcXC8uKiRcIjsiLCIvKiAoaWdub3JlZCkgKi8iXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX19nZW5lcmF0b3IiLCJib2R5IiwiXyIsImxhYmVsIiwic2VudCIsInQiLCJ0cnlzIiwib3BzIiwiZiIsInkiLCJnIiwidmVyYiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwibiIsInYiLCJvcCIsIlR5cGVFcnJvciIsImNhbGwiLCJwb3AiLCJsZW5ndGgiLCJwdXNoIiwiX19pbXBvcnREZWZhdWx0IiwibW9kIiwiX19lc01vZHVsZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZ1ZV8xIiwicmVxdWlyZSIsInZ1ZV8yIiwiYXhpb3NfMSIsImNvcmVfMSIsIkNyZWF0ZU1vZGFsX3Z1ZV8xIiwiVG9hc3RNZXNzYWdlX3Z1ZV8xIiwiZGVmaW5lQ29tcG9uZW50IiwiX19uYW1lIiwicHJvcHMiLCJ1c2VyIiwidHlwZSIsInJlcXVpcmVkIiwib3JnYW5pemF0aW9uIiwidmFsaWRhdG9yIiwic3VwZXJBZG1pbiIsIkJvb2xlYW4iLCJzZXR1cCIsIl9fcHJvcHMiLCJfYSIsIl90aGlzIiwiX2IiLCJleHBvc2UiLCJzaG93VXNlckRyb3Bkb3duIiwicmVmIiwidG9hc3RWaXNpYmlsaXR5Iiwic2hvd1NpZGViYXIiLCJ0b2FzdE1lc3NhZ2UiLCJ0b2FzdFR5cGUiLCJkYXRhIiwicmVhY3RpdmUiLCJsYW5ndWFnZU5hdkxpQ2xhc3NlcyIsImxhbmd1YWdlTmF2QW5jaG9yQ2xhc3NlcyIsIm1lbnVOYXZMaUNsYXNzZXMiLCJtZW51TmF2QW5jaG9yQ2xhc3NlcyIsImxhbmd1YWdlcyIsImxhbmd1YWdlIiwicGVybWFsaW5rIiwiYWN0aXZlIiwibWVudXMiLCJuYW1lIiwibGlDbGFzcyIsIl9jIiwidXNlVG9nZ2xlIiwibW9kYWxWYWx1ZSIsIm1vZGFsVG9nZ2xlIiwidG9hc3QiLCJtZXNzYWdlIiwic2V0VGltZW91dCIsImlzVG91Y2hEZXZpY2UiLCJjb21wdXRlZCIsIndpbmRvdyIsIm5hdmlnYXRvciIsIm1heFRvdWNoUG9pbnRzIiwiVG9nZ2xlTW9kZWwiLCJsb2NhbFN0b3JhZ2UiLCJyZW1vdmVJdGVtIiwid2F0Y2giLCJzaWRlYmFyIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJzdHlsZSIsIm92ZXJmbG93IiwiY2hhbmdlQWN0aXZlTWVudSIsInBhdGgiLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwiZm9yRWFjaCIsIm1lbnUiLCJrZXkiLCJpbmNsdWRlcyIsInBhIiwidXNlU3RvcmFnZSIsInB1Ymxpc2hpbmdBY3Rpdml0aWVzIiwiZ2V0SXRlbSIsImxvZ291dCIsInBvc3QiLCJyZXMiLCJzdGF0dXMiLCJocmVmIiwic2VhcmNoVmFsdWUiLCJjdXJyZW50VVJMIiwicXVlcnlTdHJpbmciLCJzZWFyY2giLCJ1cmxQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJnZXQiLCJzcGlubmVyIiwic2VhcmNoRnVuY3Rpb24iLCJ1cmwiLCJwYXJhbSIsInJlcGxhY2UiLCJzb3J0aW5nUGFyYW0iLCJxdWVyeVN0cmluZ0FyciIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwiY29uY2F0Iiwib25Nb3VudGVkIiwib25Vbm1vdW50ZWQiLCJfX3JldHVybmVkX18iLCJDcmVhdGVNb2RhbCIsIlRvYXN0IiwiZW51bWVyYWJsZSIsInRpdGxlXzEiLCJjb21wb25lbnRzIiwidG9SZWZzIiwiYnJlYWRjcnVtYkRhdGEiLCJnZXRBY3Rpdml0eVRpdGxlIiwidGV4dCIsIlN0cmluZyIsImljb24iLCJsaW5rIiwiYnRuVHlwZSIsInZ1ZV8zIiwiTG9hZGVyX3Z1ZV8xIiwiaXNFbXB0eSIsInNob3ciLCJoYXNFcnJvcnMiLCJlcnJvckNvdW50IiwidG9hc3REYXRhIiwiaW5qZWN0IiwiZXJyb3JEYXRhIiwiYWNjb3VudF92ZXJpZmllZCIsInB1Ymxpc2hlcl9hY3RpdmUiLCJkZWZhdWx0X3NldHRpbmciLCJwdWJsaXNoZXJfc2V0dGluZyIsInRva2VuX3N0YXR1cyIsImlzTG9hZGVyVmlzaWJsZSIsInJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsIiwidmlzaWJpbGl0eSIsInN1Y2Nlc3MiLCJlcnJvciIsImFsbCIsInNwcmVhZCIsInNldHRpbmdfcmVzIiwidXNlcl9yZXMiLCJvcmdfcmVzIiwicmVzcG9uc2UiLCJ1c2VyX3Jlc3BvbnNlIiwib3JnX3Jlc3BvbnNlIiwiZGVmYXVsdF9zdGF0dXMiLCJwdWJsaXNoZXJfc3RhdHVzIiwiZ3JvdXBlZEVycm9yIiwiaW5kZXhPZiIsInZhbHVlcyIsIlRyYW5zaXRpb25Sb290IiwiTG9hZGVyIiwiQXJyYXkiLCJ0aXRsZSIsImVtaXRzIiwiZW1pdCIsImNsb3NlIiwiaG92ZXJUZXh0Iiwid2lkdGgiLCJwb3NpdGlvbiIsImljb25TaXplIiwic2hvd0lhdGlSZWZlcmVuY2UiLCJidG5UZXh0IiwiYnRuTGluayIsIm1vZGFsQWN0aXZlIiwidnVlM19yYWRpYWxfcHJvZ3Jlc3NfMSIsIlJhZGlhbFByb2dyZXNzQmFyIiwicGVyY2VudCIsIk51bWJlciIsImNvbXBsZXRlZFBlcmNlbnQiLCJ0b3RhbFBlcmNlbnQiLCJhY3RpdmVfcGFnZSIsInVwZGF0ZUFjdGl2ZVBhZ2UiLCJwYWdlIiwiY2hhbmdlUGFnZSIsInBhZ2VOdW0iLCJsYXN0X3BhZ2UiLCJuZXh0UGFnZSIsInByZXZpb3VzUGFnZSIsImNsYXNzTmFtZSIsIkJ1dHRvbkNvbXBvbmVudF92dWVfMSIsIlBvcHVwTW9kYWxfdnVlXzEiLCJQcm9ncmVzc0xvYWRlcl92dWVfMSIsImluZGV4XzEiLCJzdG9yZSIsInVzZVN0b3JlIiwiZGVsZXRlVmFsdWUiLCJkZWxldGVUb2dnbGUiLCJsb2FkZXIiLCJkZWxldGVGdW5jdGlvbiIsImRlbGV0ZUVuZFBvaW50Iiwic3RhdGUiLCJzZWxlY3RlZEFjdGl2aXRpZXMiLCJyZWxvYWQiLCJCdG5Db21wb25lbnQiLCJNb2RhbCIsImRlc2lnbiIsInN0eWxlVHlwZSIsImNsYXNzZXMiLCJzaG93XzEiLCJsaW5rZWRUb0lhdGkiLCJjb3JlQ29tcGxldGVkIiwiYWN0aXZpdHlJZCIsImRldGFpbFN0b3JlIiwiaWQiLCJwdWJsaXNoVmFsdWUiLCJwdWJsaXNoVG9nZ2xlIiwicHVibGlzaFN0ZXAiLCJjb3JlRWxlbWVudFN0YXR1cyIsImxvYWRlclRleHQiLCJyZXNldFB1Ymxpc2hTdGVwIiwicHVibGlzaFN0YXRlQ2hhbmdlIiwicHVibGlzaFN0YXRlIiwiZGVzY3JpcHRpb24iLCJhbGVydFN0YXRlIiwiZXJyIiwiY3JpdGljYWxOdW1iZXIiLCJlcnJvck51bWJlciIsIndhcm5pbmdOdW1iZXIiLCJzdGVwUGx1c09uZSIsInN0ZXBNaW51c09uZSIsInZhbGlkYXRvckZ1bmN0aW9uIiwiZXJyb3JzIiwiZGlzcGF0Y2giLCJjcml0Iiwic3VtbWFyeSIsImNyaXRpY2FsIiwid2FybmluZyIsImNoZWNrUHVibGlzaCIsInB1Ymxpc2hGdW5jdGlvbiIsInB1Ymxpc2hTdGF0dXMiLCJsaW5rZWRfdG9faWF0aSIsInVucHVibGlzaFZhbHVlIiwidW5wdWJsaXNoVG9nZ2xlIiwidW5QdWJsaXNoRnVuY3Rpb24iLCJpdGVtSWQiLCJpdGVtVHlwZSIsImVycm9yVHlwZSIsImJnQ29sb3IiLCJpY29uQ29sb3IiLCJ0b2dnbGUiLCJhY2NvcmRpb25Ub2dnbGUiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJlbEhlaWdodCIsImNsaWVudEhlaWdodCIsImNzc1RleHQiLCJ1cGRhdGVFcnJvckNvdW50TWVzc2FnZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwiTGlua192dWVfMSIsIkJ0biIsIm1hbmRhdG9yeUVsZW1lbnRTdGF0dXMiLCJpc19wdWJsaXNoZWQiLCJCcmVhZENydW1iX3Z1ZV8xIiwiQnJlYWRjcnVtYiIsImJhY2tMaW5rIiwiY2hhbmdlVGV4dCIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsIkVycm9yTGlzdHNfdnVlXzEiLCJlcnJvclZhbHVlIiwiZXJyb3JUb2dnbGUiLCJ0ZW1wRGF0YSIsIndhcm5pbmdzIiwidXBkYXRlVGVtcE1lc3NhZ2UiLCJlcnJvckRhdGFQcm9wcyIsIl9pIiwiZXJyb3JEYXRhUHJvcHNfMSIsInNldmVyaXR5IiwiRXJyb3JMaXN0cyIsImNvbG9yIiwiX19hc3NpZ24iLCJhc3NpZ24iLCJzIiwiaSIsImFyZ3VtZW50cyIsInAiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIm11bHRpc2VsZWN0XzEiLCJjdXJyZW5jaWVzIiwiYnVkZ2V0Tm90UHJvdmlkZWQiLCJodW1hbml0YXJpYW4iLCJkZWZhdWx0VmFsdWVzIiwiYnVkZ2V0X25vdF9wcm92aWRlZCIsImRlZmF1bHRfY3VycmVuY3kiLCJkZWZhdWx0X2xhbmd1YWdlIiwiaGllcmFyY2h5IiwiZGVmYXVsdEVycm9ycyIsImVycm9yUmVzZXQiLCJkZWZhdWx0RGF0YSIsImxvYWRlclZpc2liaWxpdHkiLCJzdWJtaXRGb3JtIiwicHV0IiwiTXVsdGlzZWxlY3QiLCJJbmRleF8xIiwiSG92ZXJUZXh0X3Z1ZV8xIiwiUmFkaWFsUHJvZ3Jlc3NCYXJfdnVlXzEiLCJQdWJsaXNoQnV0dG9uX3Z1ZV8xIiwiVW5QdWJsaXNoQnV0dG9uX3Z1ZV8xIiwiRGVsZXRlQnV0dG9uX3Z1ZV8xIiwiU3RpY2t5RXJyb3JzX3Z1ZV8xIiwiRXJyb3JQb3BVcF92dWVfMSIsIkFjdGl2aXRpZXNFbGVtZW50c192dWVfMSIsIkFjdGl2aXR5RWxlbWVudF92dWVfMSIsIlByZXZpb3VzbHlQdWJsaXNoZWRfdnVlXzEiLCJIb3ZlclRleHQiLCJQcm9ncmVzc0JhciIsIkVsZW1lbnRzIiwiQWN0aXZpdHlFbGVtZW50IiwiUmVzdWx0IiwiUHVibGlzaCIsIkVycm9ycyIsIlVuUHVibGlzaCIsIkRlbGV0ZUJ1dHRvbiIsIlByZXZpb3VzbHlQdWJsaXNoZWQiLCJFcnJvclBvcFVwIiwiZWxlbWVudHMiLCJncm91cHMiLCJhY3Rpdml0eSIsInByb2dyZXNzIiwidHlwZXMiLCJyZXN1bHRzIiwidHJhbnNhY3Rpb25zIiwiaWF0aVZhbGlkYXRvclJlc3BvbnNlIiwiaW5kZXhTdG9yZSIsInBvc2l0aW9uWSIsInNjcmVlbldpZHRoIiwiZG93bmxvYWRWYWx1ZSIsImRvd25sb2FkVG9nZ2xlIiwidG9nZ2xlU2lkZWJhciIsImhhbmRsZVNjcm9sbCIsInNjcm9sbFkiLCJpc3RvcFZpc2libGUiLCJpbm5lcldpZHRoIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNhbGNXaWR0aCIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsImlnbm9yZVRvYXN0VXBkYXRlIiwiX2QiLCJncm91cGVkRGF0YSIsImFjdGl2aXR5UHJvcHMiLCJhY3Rpdml0aWVzIiwiZWxlbWVudFByb3BzIiwic3RhdHVzUHJvcHMiLCJ0cmFuc2FjdGlvblByb3BzIiwia2V5cyIsIm1hcCIsImZsYWciLCJrIiwidG9TdHJpbmciLCJwYWdlVGl0bGUiLCJmb3VuZCIsImZpbmQiLCJjdXJyZW50TGFuZ3VhZ2UiLCJuYXJyYXRpdmUiLCJmb3JtYXRUaXRsZSIsImlnbm9yZVVwZGF0ZXMiLCJ3YXRjaElnbm9yYWJsZSIsInVuZGVmaW5lZCIsImZsdXNoIiwicHJvdmlkZSIsInZhbGlkYXRpb25SZXN1bHQiLCJFbXB0eUFjdGl2aXR5X3Z1ZV8xIiwiVGFibGVMYXlvdXRfdnVlXzEiLCJUYWJsZVBhZ2luYXRpb25fdnVlXzEiLCJQYWdlVGl0bGVfdnVlXzEiLCJFcnJvck1lc3NhZ2VfdnVlXzEiLCJFbXB0eUFjdGl2aXR5IiwiUGFnZVRpdGxlIiwiUGFnaW5hdGlvbiIsIlRhYmxlTGF5b3V0IiwiRXJyb3JNZXNzYWdlIiwiaXNMb2FkaW5nIiwiZW5kcG9pbnQiLCJzaG93RW1wdHlUZW1wbGF0ZSIsInNob3dCdXR0b25zIiwic2hvd09ySGlkZSIsImZldGNoQWN0aXZpdGllcyIsInJlZnJlc2hUb2FzdE1zZyIsInJlZnJlc2hNZXNzYWdlVHlwZSIsInJlZnJlc2hNZXNzYWdlIiwiZm9ybURhdGEiLCJhY3Rpdml0eV9pZGVudGlmaWVyIiwiY2xvc2VNb2RhbCIsInN0b3JlQWN0aXZpdHkiLCJwYVN0b3JhZ2UiLCJjb21wbGV0ZWQiLCJoYXNGYWlsZWRBY3Rpdml0aWVzIiwiaWRzIiwiaW50ZXJ2YWxJRCIsImJ1bGtQdWJsaXNoU3RhdHVzIiwibmV3VmFsdWUiLCJjbGVhckludGVydmFsIiwiZmFpbGVkQWN0aXZpdGllcyIsInNldEludGVydmFsIiwib3JnYW5pemF0aW9uX2lkIiwiam9iX2JhdGNoX3V1aWQiLCJvcGVuIiwidG9nZ2xlV2luZG93IiwiY2xvc2VzdCIsImNsb3NlV2luZG93IiwibmVzdGVkT2JqZWN0IiwiZmFpbGVkQWN0aXZpdGllc0lEIiwiYXNBcnJheURhdGEiLCJlbnRyaWVzIiwiZmlsdGVyZWQiLCJmaWx0ZXIiLCJhY3Rpdml0eV9pZCIsImZhaWxlZEFjdGl2aXRpZXNEYXRhIiwiZnJvbUVudHJpZXMiLCJyZXRyeVB1Ymxpc2hpbmciLCJWYWxpZGF0aW9uRXJyb3JzX3Z1ZV8xIiwiQnVsa1B1Ymxpc2hpbmdfdnVlXzEiLCJwdWJsaXNoQWxlcnRWYWx1ZSIsInB1Ymxpc2hBbGVydFRvZ2dsZSIsImJ1bGtQdWJsaXNoU3RlcCIsInBvcFVwV2lkdGhDaGFuZ2UiLCJkaXNwbGF5VG9hc3QiLCJjb3JlQ29tcGxldGVkQWN0aXZpdGllcyIsImNvcmVJbkNvbXBsZXRlZEFjdGl2aXRpZXMiLCJ2ZXJpZnlDb3JlRWxlbWVudHMiLCJjb21wbGV0ZSIsImluY29tcGxldGUiLCJ2YWxpZGF0aW9uRXJyb3JzIiwidmFsaWRhdGVBY3Rpdml0aWVzIiwic3RhcnRCdWxrUHVibGlzaCIsIlZhbGlkYXRpb25FcnJvcnMiLCJCdWxrUHVibGlzaGluZyIsImNsYXNzTmFtZTIiLCJFcnJvckl0ZW1fdnVlXzEiLCJjcml0aWNhbE1lc3NhZ2UiLCJ3YXJuaW5nTWVzc2FnZSIsIm5vRXJyb3JNZXNzYWdlIiwiRXJyb3JJdGVtIiwibW9tZW50XzEiLCJmb3JtYXREYXRlIiwiZGF0ZSIsImZvcm1hdCIsImRhdGVGb3JtYXRfMSIsImRhdGVGb3JtYXQiLCJyb3VuZEZsb2F0IiwibnVtIiwicGFyc2VGbG9hdCIsInRvRml4ZWQiLCJIYXZlTm90QWRkZWRZZXRfdnVlXzEiLCJOb3RZZXQiLCJ0b29sdGlwIiwicmVzdWx0RGF0YSIsImNvbnRlbnQiLCJtb21lbnQiLCJUaXRsZUVsZW1lbnQiLCJNZWFzdXJlIiwiQXNjZW5kaW5nIiwiQWdncmVnYXRpb25TdGF0dXMiLCJEZXNjcmlwdGlvbiIsIlJlZmVyZW5jZSIsIkJhc2VsaW5lIiwiRG9jdW1lbnRMaW5rIiwiUGVyaW9kIiwicmVzdWx0VGl0bGUiLCJpbmRpY2F0b3IiLCJwZXJpb2QiLCJlbGVtZW50IiwibGlua0NsYXNzZXMiLCJpbmRpY2F0b3JEYXRhIiwicGVyaW9kRGF0YSIsInBhcmVudERhdGEiLCJyZXN1bHRfaWQiLCJhY3Rpdml0eVRpdGxlIiwiYWN0aXZpdHlMaW5rIiwicmVzdWx0SWQiLCJyZXN1bHRUaXRsZWQiLCJyZXN1bHRMaW5rIiwiaW5kaWNhdG9yTGluayIsImluZGljYXRvclRpdGxlIiwiRGVsZXRlQWN0aW9uX3Z1ZV8xIiwiRGVsZXRlQWN0aW9uIiwiaW5kaWNhdG9ycyIsImluZGljYXRvcnNEYXRhIiwiaGFuZGxlTmF2aWdhdGUiLCJmZXRjaExpc3RpbmdzIiwic3RhdHVzRGF0YSIsImJhc2VUeXBlIiwiZWxlbWVudFNwYWNpbmciLCJiYXNlbGluZSIsImxvY2F0aW9ucyIsIml0ZW0iLCJyZWZlcmVuY2UiLCJsYXN0TG9jYXRpb24iLCJkaW1lbnNpb25zIiwiZGVzY1R5cGUiLCJkZXNjcmlwdGlvbkRhdGEiLCJhbGlnbm1lbnQiLCJkbERhdGEiLCJtZWFzdXJlVHlwZSIsIm1lYXN1cmVEYXRhIiwicmVmVHlwZSIsInJlZkRhdGEiLCJ0aXRsZVR5cGUiLCJ0aXRsZURhdGEiLCJjb3JlRWxlbWVudHNfMSIsImRyb3Bkb3duIiwiZHJvcGRvd25CdG4iLCJzZWFyY2hCdG5WYWx1ZSIsInNlYXJjaEJ0blRvZ2dsZSIsImVsZW1lbnRJY29ucyIsIm5vdF9jb21wbGV0ZWQiLCJjb3JlIiwiZmlsdGVyZWRFbGVtZW50cyIsInRvTG93ZXJDYXNlIiwianVzdFN0cmluZ3MiLCJhY3Rpdml0eUNvcmVFbGVtZW50cyIsImRyb3Bkb3duRmlsdGVyIiwiY29udGFpbnMiLCJnZXRMaW5rIiwiaGFzX2RhdGEiLCJpbmRleCIsIkVsZW1lbnRTdGF0dXNfdnVlXzEiLCJsYXlvdXQiLCJkZWxldGVBY3Rpdml0eUVsZW1lbnQiLCJkZWxldGVFbGVtZW50Iiwic2Nyb2xsVG8iLCJBY3Rpdml0eURhdGUiLCJDb25kaXRpb25zIiwiQ29udGFjdEluZm8iLCJIdW1hbml0YXJpYW5TY29wZSIsIklhdGlJZGVudGlmaWVyIiwiTGVnYWN5RGF0YSIsIkxvY2F0aW9uIiwiT3RoZXJJZGVudGlmaWVyIiwiUGFydGljaXBhdGluZ09yZyIsIlBsYW5uZWREaXNidXJzZW1lbnQiLCJQb2xpY3lNYXJrZXIiLCJSZWNpcGllbnRDb3VudHJ5IiwiUmVjaXBpZW50UmVnaW9uIiwiUmVsYXRlZEFjdGl2aXR5IiwiUmVwb3J0aW5nT3JnYW5pemF0aW9uIiwiU2VjdG9yIiwiVGFnIiwiVHJhbnNhY3Rpb25zIiwiU3RhdHVzIiwiaXNWaXNpYmxlIiwibW9kZWxWaXNpYmxlIiwidG9nZ2xlTW9kZWwiLCJ0b2FzdG1lc3NhZ2VUeXBlIiwic2hvd0Vycm9ycG9wdXAiLCJkb3dubG9hZEVycm9yIiwiZmlsZW5hbWUiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZGlzcGxheSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCIsImRvd25sb2FkRXJyb3J4bWwiLCJjb3VudEFjdGl2aXRpZXMiLCJxdWVyeVBhcmFtZXRlcnMiLCJhZGRRdWVyeVBhcmFtcyIsImFwaVVybCIsImJsb2IiLCJCbG9iIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiZG93bmxvYWQiLCJoZWFkZXJzIiwiZG93bmxvYWRYbWwiLCJjb25zb2xlIiwibG9nIiwieG1sX2Vycm9yIiwiZG93bmxvYWRDc3YiLCJBZGRBY3Rpdml0eUJ1dHRvbl92dWVfMSIsIkFjdGl2aXR5QnV0dG9uIiwiZGlzbWlzcyIsIkRvd25sb2FkQWN0aXZpdHlCdXR0b25fdnVlXzEiLCJSZWZyZXNoVG9hc3RfdnVlXzEiLCJQdWJsaXNoU2VsZWN0ZWRfdnVlXzEiLCJEb3dubG9hZEFjdGl2aXR5QnV0dG9uIiwiQWRkQWN0aXZpdHlCdXR0b24iLCJSZWZyZXNoVG9hc3RNZXNzYWdlIiwiUHVibGlzaFNlbGVjdGVkIiwic2VsZWN0QWxsVmFsdWUiLCJzZWxlY3RBbGxUb2dnbGUiLCJmcm9tTm93IiwidG9nZ2xlU2VsZWN0QWxsIiwiZGF0dW0iLCJxdWVyeSIsImRpcmVjdGlvbiIsInNvcnRpbmdEaXJlY3Rpb24iLCJzb3J0QnlEYXRlVXJsIiwiVGFyZ2V0VmFsdWUiLCJBY3R1YWxWYWx1ZSIsImluZGljYXRvcklkIiwicGVyaW9kTGluayIsInBlcmlvZHNEYXRhIiwidXRpbHNfMSIsImRsVHlwZSIsImFjdHVhbFZhbHVlIiwiZ2V0TG9jYXRpb24iLCJ0YXJnZXRWYWx1ZSIsIlJlc3VsdEVsZW1lbnRfdnVlXzEiLCJJbmRpY2F0b3JfdnVlXzEiLCJSZXN1bHRFbGVtZW50IiwiSW5kaWNhdG9yIiwiaGFzSW5kaWNhdG9ycyIsInJlc3VsdHNEYXRhIiwiVGl0bGVEZXNjcmlwdGlvbiIsIlJlc3VsdFR5cGUiLCJlbGVtZW50TmFtZSIsImVkaXRVcmwiLCJlbGVtZW50RGF0YSIsInJlc3VsdFR5cGUiLCJyZXN1bHRWb2NhYnVsYXJ5IiwidG9vbFRpcCIsInJldmVyc2UiLCJyZWZlcmVuY2VEYXRhIiwidHlwZURhdGEiLCJ0ZERhdGEiLCJUcmFuc2FjdGlvbkVsZW1lbnRfdnVlXzEiLCJUcmFuc2FjdGlvbkVsZW1lbnQiLCJ0cmFuc2FjdGlvbiIsInRyYW5zYWN0aW9uRGF0YSIsInRyYW5zYWN0aW9uTGluayIsImlzTWFuZGF0b3J5SWNvbiIsInIiLCJBaWRUeXBlIiwiVHJhbnNhY3Rpb25UeXBlIiwiVHJhbnNhY3Rpb25EYXRlIiwiVmFsdWUiLCJQcm92aWRlck9yZ2FuaXphdGlvbiIsIlJlY2VpdmVyT3JnYW5pemF0aW9uIiwiRGlzYnVyc2VtZW50Q2hhbm5lbCIsIkZsb3dUeXBlIiwiRmluYW5jZVR5cGUiLCJUaWVkU3RhdHVzIiwiZ2V0TGFuZ3VhZ2VzIiwiZW50cnkiLCJ0cmFuc2FjdGlvbnNEYXRhIiwiYXREYXRhIiwiY29kZSIsImZpbmFuY2VEYXRhIiwiZmxvd0RhdGEiLCJQb0RhdGEiLCJjb3VudHJ5Iiwic2VjdG9yIiwidHNEYXRhIiwiZmlsZSIsInVwbG9hZEZpbGUiLCJmaWxlcyIsImNvbmZpZyIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiZG93bmxvYWRFeGNlbCIsIm1ldGhvZCIsInJlc3BvbnNlVHlwZSIsIkltcG9ydFBsYWNlaG9sZGVyX3Z1ZV8xIiwiTGlzdEVsZW1lbnRfdnVlXzEiLCJzZWxlY3RlZENvdW50IiwiYWN0aXZpdGllc0xlbmd0aCIsInNlbGVjdEFsbCIsInRpbWVyIiwiY291bnQiLCJ1cGRhdGVTZWxlY3RlZEFjdGl2aXRpZXMiLCJzcGxpY2UiLCJzZWxlY3RBbGxBY3Rpdml0aWVzIiwiaW1wb3J0QWN0aXZpdGllcyIsImZpbGV0eXBlIiwiUGxhY2Vob2xkZXIiLCJMaXN0RWxlbWVudCIsIlNoaW1tZXJMb2FkaW5nX3Z1ZV8xIiwiU2hpbW1lciIsInRvZ2dsZUVycm9yIiwic2VsZWN0RWxlbWVudCIsImNvdW50RXJyb3JzIiwic2VsZWN0ZWREYXRhIiwiSlNPTiIsInBhcnNlIiwiT3JnYW5pc2F0aW9uRWxlbWVudHNfdnVlXzEiLCJPcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbF92dWVfMSIsIk9yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b25fdnVlXzEiLCJjb3JlXzIiLCJPcmdhbmlzYXRpb25FbGVtZW50cyIsIk9yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsIiwiUHVibGlzaFVucHVibGlzaCIsIm1hbmRhdG9yeUNvbXBsZXRlZCIsIl9lIiwib3JnYW5pemF0aW9uUHJvcHMiLCJvcmdhbml6YXRpb25EYXRhIiwicHVibGlzaE1lc3NhZ2UiLCJtYW5kYXRvcnkiLCJvcmdNYW5kYXRvcnlFbGVtZW50cyIsInJlcGxhY2VVbmRlcnNjb3JlIiwic3RyaW5nIiwicmVnZXgiLCJSZXBvcnRpbmdPcmdhbmlzYXRpb24iLCJUb3RhbEJ1ZGdldCIsIlJlcG9ydGluZ09yZ0J1ZGdldCIsIlJlcG9ydGluZ1JlZ2lvbkJ1ZGdldCIsIlJlY2lwaWVudENvdW50cnlCdWRnZXQiLCJUb3RhbEV4cGVuZGl0dXJlIiwiZW1haWwiLCJlbWFpbEVycm9yIiwicmVzZXQiLCJyZXF1ZXN0IiwicmVzcG9uc2VVUkwiLCJjcnlwdG9fanNfMSIsInRva2VuIiwicGFzc3dvcmQiLCJwYXNzd29yZF9jb25maXJtYXRpb24iLCJlbmNyeXB0IiwiaXYiLCJsaWIiLCJXb3JkQXJyYXkiLCJyYW5kb20iLCJzYWx0IiwiaXRlcmF0aW9ucyIsImVuY3J5cHRNZXRob2RMZW5ndGgiLCJoYXNoS2V5IiwiUEJLREYyIiwiaGFzaGVyIiwiYWxnbyIsIlNIQTUxMiIsImtleVNpemUiLCJlbmNyeXB0ZWQiLCJBRVMiLCJtb2RlIiwiQ0JDIiwiZW5jcnlwdGVkU3RyaW5nIiwiZW5jIiwiQmFzZTY0Iiwic3RyaW5naWZ5IiwiY2lwaGVydGV4dCIsIm91dHB1dCIsIkhleCIsIlV0ZjgiLCJmb3JtIiwicHJvY2VzcyIsImVudiIsIk1JWF9FTkNSWVBUSU9OX0tFWSIsInN0b3JlXzEiLCJhY3Rpb25zXzEiLCJkZWZhdWx0Rm9ybSIsImRlZmF1bHRFcnJvciIsInVwZGF0ZVN0b3JlIiwiQWN0aW9uVHlwZXMiLCJVUERBVEVfREVGQVVMVF9WQUxVRVMiLCJTZXR0aW5nRGVmYXVsdEZvcm1fdnVlXzEiLCJTZXR0aW5nUHVibGlzaGluZ0Zvcm1fdnVlXzEiLCJTZXR0aW5nRGVmYXVsdEZvcm0iLCJTZXR0aW5nUHVibGlzaGluZ0Zvcm0iLCJ0YWIiLCJwdWJsaXNoaW5nRm9ybSIsInB1Ymxpc2hpbmdJbmZvIiwicHVibGlzaGluZ0Vycm9yIiwic2V0dGluZ0RhdGEiLCJwdWJsaXNoZXJJbmZvIiwiYWN0aXZpdHlWYWx1ZXMiLCJkZWZhdWx0X3ZhbHVlcyIsInB1Ymxpc2hpbmdfaW5mbyIsImFjdGl2aXR5X2RlZmF1bHRfdmFsdWVzIiwiYXBpX3Rva2VuIiwidG9nZ2xlVGFiIiwic3VibWl0RGVmYXVsdCIsImhpZXJhcmNoaWFsIiwic3VibWl0UHVibGlzaGluZyIsInB1Ymxpc2hlcl92ZXJpZmljYXRpb24iLCJ0b2tlbl92ZXJpZmljYXRpb24iLCJhdXRvVmVyaWZ5IiwiVVBEQVRFX1BVQkxJU0hJTkdfRk9STSIsIlRhYmxlTGlzdF92dWVfMSIsIlRhYmxlTGlzdCIsIm9yZ2FuaXphdGlvbk5hbWUiLCJzd2l0Y2hCYWNrIiwib3JnYW5pc2F0aW9uRGF0YSIsImZldGNoT3JnYW5pc2F0aW9uIiwicHJveHlVc2VyIiwiZGVmYXVsdFNvcnREaXJlY3Rpb24iLCJzb3J0RGlyZWN0aW9uIiwib3JkZXJUeXBlIiwic29ydEJ5Iiwib3JkZXIiLCJFbWFpbFZlcmlmaWNhdGlvbl92dWVfMSIsImVuY3J5cHRpb25fMSIsIkVtYWlsVmVyaWZpY2F0aW9uIiwicHVibGlzaGVyRXhpc3RzIiwidGV4dGFyZWEiLCJwdWJsaXNoZXJfbmFtZSIsInB1Ymxpc2hlcl9pZCIsInJlZ2lzdHJhdGlvbl9hZ2VuY3kiLCJyZWdpc3RyYXRpb25fbnVtYmVyIiwiaWRlbnRpZmllciIsInB1Ymxpc2hlcl90eXBlIiwibGljZW5zZV9pZCIsImltYWdlX3VybCIsImNvbnRhY3RfZW1haWwiLCJ3ZWJzaXRlIiwiYWRkcmVzcyIsInNvdXJjZSIsInJlY29yZF9leGNsdXNpb25zIiwidXNlcm5hbWUiLCJmdWxsX25hbWUiLCJpYXRpRXJyb3IiLCJyZXNpemUiLCJoZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJhZ2VuY2llcyIsInJlZ2lzdHJhdGlvbkFnZW5jeSIsInVuY2F0ZWdvcml6ZWRfMSIsInN0YXJ0c1dpdGgiLCJzb21lIiwiaXNUZXh0RmllbGQiLCJmaWVsZFR5cGUiLCJmaWVsZE5hbWUiLCJjaGVja1N0ZXAiLCJmb3JtU3RlcCIsInBhcnNlSW50IiwicmVnaXN0ZXJGb3JtIiwiaXNfY29tcGxldGUiLCJob3Zlcl90ZXh0IiwiZmllbGRzIiwicGxhY2Vob2xkZXIiLCJoZWxwX3RleHQiLCJvcHRpb25zIiwicHVibGlzaGVyVHlwZSIsImRhdGFMaWNlbnNlIiwidXBkYXRlVmFsaWRhdGlvbkVycm9ycyIsImVycm9yUmVzcG9uc2UiLCJjbGVhblZhbGlkYXRpb25FcnJvcnMiLCJmaWVsZCIsInVwZGF0ZUVycm9ycyIsImV2ZXJ5IiwiY2xlYW5JYXRpRXJyb3JzIiwidmVyaWZ5UHVibGlzaGVyIiwidXBkYXRlU3RlcCIsInZlcmlmeUNvbnRhY3RJbmZvcm1hdGlvbiIsInZlcmlmeUFkZGl0aW9uYWxJbmZvcm1hdGlvbiIsImdldEN1cnJlbnRTdGVwIiwiY3VycmVudF9zdGVwIiwiZ29Ub05leHRGb3JtIiwiZ29Ub1ByZXZpb3VzRm9ybSIsInRyaWdnZXJNb2RlbCIsInNldEl0ZW0iLCJhZ2VuY3kiLCJvcmdhbml6YXRpb25fcmVnaXN0cmF0aW9uX2FnZW5jeSIsIm9yZ2FuaXphdGlvbl9yZWdpc3RyYXRpb25fbm8iLCJpYXRpX29yZ2FuaXphdGlvbmFsX2lkZW50aWZpZXIiLCJjb25maXJtX3Bhc3N3b3JkIiwibG9naW4iLCJOYXZEcm9wZG93bl92dWVfMSIsIk5hdkRyb3Bkb3duIiwiYXV0aCIsInJlbmRlciIsIl93aXRoU2NvcGVJZCIsInB1c2hTY29wZUlkIiwicG9wU2NvcGVJZCIsIl9ob2lzdGVkXzEiLCJfaG9pc3RlZF8yIiwiX2hvaXN0ZWRfMyIsImNyZWF0ZUVsZW1lbnRWTm9kZSIsIl9ob2lzdGVkXzQiLCJfaG9pc3RlZF81IiwiX2hvaXN0ZWRfNiIsIl9ob2lzdGVkXzciLCJfaG9pc3RlZF84IiwiX2hvaXN0ZWRfOSIsIl9ob2lzdGVkXzEwIiwiX2hvaXN0ZWRfMTEiLCJfaG9pc3RlZF8xMiIsIl9ob2lzdGVkXzEzIiwiX2hvaXN0ZWRfMTQiLCJfaG9pc3RlZF8xNSIsIl9ob2lzdGVkXzE2IiwiX2hvaXN0ZWRfMTciLCJfaG9pc3RlZF8xOCIsIl9ob2lzdGVkXzE5IiwiX2hvaXN0ZWRfMjAiLCJfaG9pc3RlZF8yMSIsIl9ob2lzdGVkXzIyIiwiX2hvaXN0ZWRfMjMiLCJfaG9pc3RlZF8yNCIsIl9ob2lzdGVkXzI1IiwiX2hvaXN0ZWRfMjYiLCJfaG9pc3RlZF8yNyIsIl9ob2lzdGVkXzI4IiwiX2hvaXN0ZWRfMjkiLCJfaG9pc3RlZF8zMCIsIl9ob2lzdGVkXzMxIiwiX2hvaXN0ZWRfMzIiLCJfY3R4IiwiX2NhY2hlIiwiJHByb3BzIiwiJHNldHVwIiwiJGRhdGEiLCIkb3B0aW9ucyIsIl9jb21wb25lbnRfc3ZnX3Z1ZSIsInJlc29sdmVDb21wb25lbnQiLCJvcGVuQmxvY2siLCJjcmVhdGVFbGVtZW50QmxvY2siLCJjcmVhdGVCbG9jayIsImNyZWF0ZUNvbW1lbnRWTm9kZSIsIm9uQ2xpY2siLCJjcmVhdGVWTm9kZSIsIkZyYWdtZW50IiwicmVuZGVyTGlzdCIsIm5vcm1hbGl6ZUNsYXNzIiwibmF2X19wb2ludGVyIiwidG9EaXNwbGF5U3RyaW5nIiwiY3JlYXRlVGV4dFZOb2RlIiwiJGV2ZW50Iiwid2l0aERpcmVjdGl2ZXMiLCJvbktleXVwIiwid2l0aEtleXMiLCJ2TW9kZWxUZXh0Iiwib25DbG9zZSIsIm9uQ2xvc2VNb2RhbCIsIm9uVG9hc3QiLCJiYyIsImQiLCJhY3Rpb24iLCJjcmVhdGVTdGF0aWNWTm9kZSIsIl9ob2lzdGVkXzMzIiwiX2hvaXN0ZWRfMzQiLCJfaG9pc3RlZF8zNSIsIl9ob2lzdGVkXzM2IiwiYXMiLCJlbnRlciIsImxlYXZlIiwid2l0aEN0eCIsImlubmVySFRNTCIsIlRlbGVwb3J0IiwidG8iLCJUcmFuc2l0aW9uIiwiYXJncyIsIm5vcm1hbGl6ZVN0eWxlIiwicmVuZGVyU2xvdCIsIiRzbG90cyIsIl9jb21wb25lbnRfcmFkaWFsX3Byb2dyZXNzX2JhciIsImRpYW1ldGVyIiwibSIsIm9uUmVzZXQiLCJzdG9wUHJvcGFnYXRpb24iLCJfY29tcG9uZW50X0J0biIsIl9jb21wb25lbnRfQnJlYWRjcnVtYiIsIl9ob2lzdGVkXzM3IiwiX2NvbXBvbmVudF9Ib3ZlclRleHQiLCJtb2RlbFZhbHVlIiwic2VhcmNoYWJsZSIsInJvbGUiLCJfaG9pc3RlZF8zOCIsIl9ob2lzdGVkXzM5IiwiX2hvaXN0ZWRfNDAiLCJfaG9pc3RlZF80MSIsIl9ob2lzdGVkXzQyIiwiX2hvaXN0ZWRfNDMiLCJfaG9pc3RlZF80NCIsIl9ob2lzdGVkXzQ1IiwiX2hvaXN0ZWRfNDYiLCJfaG9pc3RlZF80NyIsIl9ob2lzdGVkXzQ4IiwiX2hvaXN0ZWRfNDkiLCJfaG9pc3RlZF81MCIsIl9ob2lzdGVkXzUxIiwiX2hvaXN0ZWRfNTIiLCJfaG9pc3RlZF81MyIsIl9ob2lzdGVkXzU0IiwiX2hvaXN0ZWRfNTUiLCJfaG9pc3RlZF81NiIsIl9ob2lzdGVkXzU3IiwiX2hvaXN0ZWRfNTgiLCJfaG9pc3RlZF81OSIsIl9ob2lzdGVkXzYwIiwiX2hvaXN0ZWRfNjEiLCJfaG9pc3RlZF82MiIsIl9ob2lzdGVkXzYzIiwiX2hvaXN0ZWRfNjQiLCJfaG9pc3RlZF82NSIsIl9jb21wb25lbnRfVG9hc3QiLCJfY29tcG9uZW50X0Vycm9yUG9wVXAiLCJfY29tcG9uZW50X0RlbGV0ZUJ1dHRvbiIsIl9jb21wb25lbnRfVW5QdWJsaXNoIiwiX2NvbXBvbmVudF9QdWJsaXNoIiwiX2NvbXBvbmVudF9FcnJvcnMiLCJfY29tcG9uZW50X1ByZXZpb3VzbHlQdWJsaXNoZWQiLCJfY29tcG9uZW50X1Byb2dyZXNzQmFyIiwiX2NvbXBvbmVudF9FbGVtZW50cyIsIl9jb21wb25lbnRfQWN0aXZpdHlFbGVtZW50IiwiX2NvbXBvbmVudF9SZXN1bHQiLCJfZGlyZWN0aXZlX3N0aWNreV9jb21wb25lbnQiLCJyZXNvbHZlRGlyZWN0aXZlIiwiX2RpcmVjdGl2ZV9zbW9vdGhfc2Nyb2xsIiwib25DbG9zZVBvcHVwIiwidW5QdWJsaXNoZWQiLCJzaG93UHVibGlzaGVkIiwicHVibGlzaEVycm9ycyIsImJvdW5kYXJ5IiwiZGlzYWJsZWQiLCJpY29uX3NpemUiLCJfY29tcG9uZW50X0xvYWRlciIsIl9jb21wb25lbnRfUGFnZVRpdGxlIiwiX2NvbXBvbmVudF9FcnJvck1lc3NhZ2UiLCJfY29tcG9uZW50X0VtcHR5QWN0aXZpdHkiLCJfY29tcG9uZW50X1RhYmxlTGF5b3V0IiwiX2NvbXBvbmVudF9QYWdpbmF0aW9uIiwib25TaG93T3JIaWRlIiwib25GZXRjaEFjdGl2aXRpZXMiLCJfY29tcG9uZW50X011bHRpc2VsZWN0IiwiX2NvbXBvbmVudF9CdG5Db21wb25lbnQiLCJfY29tcG9uZW50X01vZGFsIiwiZXJyb3JfX2lucHV0IiwiaWF0aV9pZGVudGlmaWVyX3RleHQiLCJjIiwidk1vZGVsQ2hlY2tib3giLCJhY3QiLCJub19lcnJvcnMiLCJhY3Rpdml0eURhdGUiLCJjb25kaXRpb25fYXR0YWNoZWQiLCJjb25kaXRpb24iLCJjb25kaXRpb25fdHlwZSIsImNvbmRpdGlvblR5cGUiLCJjb250YWN0VHlwZSIsIm9yZ2FuaXNhdGlvbiIsInBlcnNvbl9uYW1lIiwiZGVwYXJ0bWVudCIsImpvYl90aXRsZSIsImVtYWlsX3ZhbHVlIiwidGVsZXBob25lIiwidGVsIiwidyIsIm1haWxpbmdfYWRkcmVzcyIsImFkZHJlc3NfaW5kZXgiLCJkZXNjcmlwdGlvblR5cGUiLCJodW1hbml0YXJpYW5TY29wZVR5cGUiLCJodW1hbml0YXJpYW5TY29wZVZvY2FidWxhcnkiLCJ2b2NhYnVsYXJ5Iiwidm9jYWJ1bGFyeV91cmkiLCJsZWdhY3lfbmFtZSIsImlhdGlfZXF1aXZhbGVudCIsImxvY2F0aW9uX3JlYWNoIiwiZ2VvZ3JhcGhpY0xvY2F0aW9uUmVhY2giLCJqIiwibG9jYXRpb25faWQiLCJnZW9ncmFwaGljVm9jYWJ1bGFyeSIsImFjdGl2aXR5X2Rlc2NyaXB0aW9uIiwiYWRtaW5pc3RyYXRpdmUiLCJsZXZlbCIsInBvaW50Iiwic3JzX25hbWUiLCJwb3MiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsImV4YWN0bmVzcyIsImdlb2dyYXBoaWNFeGFjdG5lc3MiLCJsb2NhdGlvbl9jbGFzcyIsImdlb2dyYXBoaWNMb2NhdGlvbkNsYXNzIiwiZmVhdHVyZV9kZXNpZ25hdGlvbiIsImxvY2F0aW9uVHlwZSIsInJlZmVyZW5jZV90eXBlIiwib3RoZXJJZGVudGlmaWVyVHlwZSIsIm93bmVyX29yZyIsInBhcnRpY2lwYXRpbmdfb3JnIiwib3JnYW5pemF0aW9uX3JvbGUiLCJvcmdhbmlzYXRpb25Sb2xlIiwib3JnYW5pemF0aW9uVHlwZSIsImNyc19jaGFubmVsX2NvZGUiLCJjcnNDaGFubmVsQ29kZSIsImJ1ZGdldFR5cGUiLCJwbGFubmVkX2Rpc2J1cnNlbWVudF90eXBlIiwiYW1vdW50IiwidG9Mb2NhbGVTdHJpbmciLCJjdXJyZW5jeSIsInZhbHVlX2RhdGUiLCJwZXJpb2Rfc3RhcnQiLCJwZXJpb2RfZW5kIiwicHJvdmlkZXJfb3JnIiwicHJvdmlkZXJfYWN0aXZpdHlfaWQiLCJyZWNlaXZlcl9vcmciLCJyZWNlaXZlcl9hY3Rpdml0eV9pZCIsInBvbGljeV9tYXJrZXJfdm9jYWJ1bGFyeSIsInBvbGljeU1hcmtlclZvY2FidWxhcnkiLCJwb2xpY3lfbWFya2VyIiwicG9saWN5TWFya2VyIiwicG9saWN5X21hcmtlcl90ZXh0Iiwic2lnbmlmaWNhbmNlIiwicG9saWN5U2lnbmlmaWNhbmNlIiwiY291bnRyeV9jb2RlIiwicGVyY2VudGFnZSIsInJlZ2lvbl92b2NhYnVsYXJ5IiwicmVnaW9uVm9jYWJ1bGFyeSIsInJlZ2lvbl9jb2RlIiwicmVnaW9uIiwiY3VzdG9tX2NvZGUiLCJyZWxhdGlvbnNoaXBfdHlwZSIsInJlbGF0ZWRBY3Rpdml0eVR5cGUiLCJyZXBvcnRpbmdfb3JnIiwic2Vjb25kYXJ5X3JlcG9ydGVyIiwiX2NvbXBvbmVudF9Ob3RZZXQiLCJiIiwicGVyaW9kcyIsInNlY3Rvcl92b2NhYnVsYXJ5Iiwic2VjdG9yVm9jYWJ1bGFyeSIsInNlY3RvckNvZGUiLCJjYXRlZ29yeV9jb2RlIiwic2VjdG9yQ2F0ZWdvcnkiLCJzZGdfZ29hbCIsInNkZ0dvYWxzIiwic2RnX3RhcmdldCIsInNkZ1RhcmdldCIsInRhZ192b2NhYnVsYXJ5IiwidGFnVm9jYWJ1bGFyeSIsInRhZ190ZXh0IiwiZ29hbHNfdGFnX2NvZGUiLCJ0YXJnZXRzX3RhZ19jb2RlIiwidHJhbnMiLCJ0cmFuc2FjdGlvblR5cGUiLCJ0cmFuc2FjdGlvbl90eXBlIiwidHJhbnNhY3Rpb25fdHlwZV9jb2RlIiwidmFsIiwiX2NvbXBvbmVudF9UaXRsZUVsZW1lbnQiLCJfY29tcG9uZW50X0FzY2VuZGluZyIsIl9jb21wb25lbnRfTWVhc3VyZSIsIl9jb21wb25lbnRfQWdncmVnYXRpb25TdGF0dXMiLCJfY29tcG9uZW50X0Rlc2NyaXB0aW9uIiwiX2NvbXBvbmVudF9SZWZlcmVuY2UiLCJfY29tcG9uZW50X0Jhc2VsaW5lIiwiX2NvbXBvbmVudF9QZXJpb2QiLCJfY29tcG9uZW50X0RvY3VtZW50TGluayIsInJEYXRhIiwicmkiLCJkb2N1bWVudF9saW5rIiwiYXNjZW5kaW5nIiwibWVhc3VyZSIsImluZGljYXRvck1lYXN1cmUiLCJhZ2dyZWdhdGlvbl9zdGF0dXMiLCJzY29wZSIsIl9jb21wb25lbnRfRGVsZXRlQWN0aW9uIiwiYmFzZSIsInllYXIiLCJkaW1lbnNpb24iLCJjb21tZW50IiwiY29tIiwibmEiLCJjYXRlZ29yeSIsImNhdCIsImRvY3VtZW50Q2F0ZWdvcnkiLCJkb2N1bWVudF9kYXRlIiwiaW5kaWNhdG9yVm9jYWJ1bGFyeSIsImluZGljYXRvcl91cmkiLCJ2U2hvdyIsIl9ob2lzdGVkXzY2IiwiX2hvaXN0ZWRfNjciLCJfaG9pc3RlZF82OCIsIl9ob2lzdGVkXzY5IiwiX2hvaXN0ZWRfNzAiLCJfaG9pc3RlZF83MSIsIl9ob2lzdGVkXzcyIiwiX2hvaXN0ZWRfNzMiLCJfaG9pc3RlZF83NCIsIl9ob2lzdGVkXzc1IiwiX2hvaXN0ZWRfNzYiLCJfaG9pc3RlZF83NyIsIl9ob2lzdGVkXzc4IiwiX2hvaXN0ZWRfNzkiLCJfaG9pc3RlZF84MCIsIl9ob2lzdGVkXzgxIiwiX2hvaXN0ZWRfODIiLCJfaG9pc3RlZF84MyIsIl9ob2lzdGVkXzg0IiwiX2hvaXN0ZWRfODUiLCJfaG9pc3RlZF84NiIsIl9ob2lzdGVkXzg3IiwiX2hvaXN0ZWRfODgiLCJfaG9pc3RlZF84OSIsIl9ob2lzdGVkXzkwIiwiX2hvaXN0ZWRfOTEiLCJfaG9pc3RlZF85MiIsIl9ob2lzdGVkXzkzIiwiX2hvaXN0ZWRfOTQiLCJfaG9pc3RlZF85NSIsIl9ob2lzdGVkXzk2IiwiX2hvaXN0ZWRfOTciLCJfaG9pc3RlZF85OCIsIl9ob2lzdGVkXzk5IiwiX2hvaXN0ZWRfMTAwIiwiX2hvaXN0ZWRfMTAxIiwiX2hvaXN0ZWRfMTAyIiwiX2hvaXN0ZWRfMTAzIiwiX2hvaXN0ZWRfMTA0IiwiX2hvaXN0ZWRfMTA1IiwiX2hvaXN0ZWRfMTA2IiwiZGVmYXVsdF9haWRfdHlwZV92b2NhYnVsYXJ5IiwiYWlkVHlwZVZvY2FidWxhcnkiLCJlYXJtYXJraW5nX2NhdGVnb3J5IiwiZWFybWFya2luZ0NhdGVnb3J5IiwiZWFybWFya2luZ19tb2RhbGl0eSIsImVhcm1hcmtpbmdNb2RhbGl0eSIsImNhc2hfYW5kX3ZvdWNoZXJfbW9kYWxpdGllcyIsImNhc2hhbmRWb3VjaGVyTW9kYWxpdGllcyIsImRlZmF1bHRfYWlkX3R5cGUiLCJhaWRUeXBlIiwiY291bnRyeV9idWRnZXRfdm9jYWJ1bGFyeSIsImJ1ZGdldElkZW50aWZpZXJWb2NhYnVsYXJ5IiwiYnVkZ2V0X2l0ZW0iLCJidWRnZXRJZGVudGlmaWVyIiwiYnVkZ2V0X3R5cGUiLCJidWRnZXRfdmFsdWUiLCJidWRnZXRfc3RhdHVzIiwiYnVkZ2V0U3RhdHVzIiwiYWN0aXZpdHlTdGF0dXMiLCJhY3Rpdml0eVNjb3BlIiwiY29sbGFib3JhdGlvblR5cGUiLCJmbG93VHlwZSIsInRpZWRTdGF0dXMiLCJmaW5hbmNlVHlwZSIsIl9jb21wb25lbnRfQ3JlYXRlTW9kYWwiLCJfY29tcG9uZW50X0FjdGl2aXR5QnV0dG9uIiwicmVsIiwidmlld0JveCIsImZpbGwiLCJ4bWxucyIsInN0cm9rZSIsImNvbHNwYW4iLCJ0b3RhbCIsInVwZGF0ZWRfYXQiLCJfY29tcG9uZW50X1RhcmdldFZhbHVlIiwiX2NvbXBvbmVudF9BY3R1YWxWYWx1ZSIsImFjdHVhbCIsInBlIiwidFZhbHVlIiwiZGltIiwiX2NvbXBvbmVudF9SZXN1bHRFbGVtZW50IiwiX2NvbXBvbmVudF9JbmRpY2F0b3IiLCJfY29tcG9uZW50X1RpdGxlRGVzY3JpcHRpb24iLCJfY29tcG9uZW50X1Jlc3VsdFR5cGUiLCJsb2MiLCJsIiwidGFyIiwiX2NvbXBvbmVudF9UcmFuc2FjdGlvbkVsZW1lbnQiLCJfY29tcG9uZW50X0FpZFR5cGUiLCJfY29tcG9uZW50X1RyYW5zYWN0aW9uVHlwZSIsIl9jb21wb25lbnRfVHJhbnNhY3Rpb25EYXRlIiwiX2NvbXBvbmVudF9WYWx1ZSIsIl9jb21wb25lbnRfUHJvdmlkZXJPcmdhbml6YXRpb24iLCJfY29tcG9uZW50X1JlY2VpdmVyT3JnYW5pemF0aW9uIiwiX2NvbXBvbmVudF9EaXNidXJzZW1lbnRDaGFubmVsIiwiX2NvbXBvbmVudF9TZWN0b3IiLCJfY29tcG9uZW50X1JlY2lwaWVudENvdW50cnkiLCJfY29tcG9uZW50X1JlY2lwaWVudFJlZ2lvbiIsIl9jb21wb25lbnRfRmxvd1R5cGUiLCJfY29tcG9uZW50X0ZpbmFuY2VUeXBlIiwiX2NvbXBvbmVudF9UaWVkU3RhdHVzIiwidHJhbnNhY3Rpb25fZGF0ZSIsImNsYXMiLCJhdCIsImFpZF90eXBlX3ZvY2FidWxhcnkiLCJhaWRfdHlwZV9jb2RlIiwiY2FzaEFuZFZvdWNoZXJNb2RhbGl0aWVzIiwiZWFyTWFya2luZ0NhdGVnb3J5IiwiZWFyTWFya2luZ01vZGFsaXR5IiwiZGlzYnVyc2VtZW50X2NoYW5uZWxfY29kZSIsImRpc2J1cnNlbWVudENoYW5uZWwiLCJmaW5hbmNlX3R5cGUiLCJmbG93X3R5cGUiLCJvcmdhbml6YXRpb25faWRlbnRpZmllcl9jb2RlIiwicG8iLCJjb3UiLCJjb3VudHJ5Q29kZSIsInNkIiwicmVnaW9uQ29kZSIsInNlYyIsInVuc2RnR29hbHMiLCJ1bnNkZ1RhcmdldHMiLCJ0aWVkX3N0YXR1c19jb2RlIiwidGllZFN0YXR1c1R5cGUiLCJvblNlbGVjdEVsZW1lbnQiLCJlbGVfZXJyIiwiX2NvbXBvbmVudF9QdWJsaXNoVW5wdWJsaXNoIiwiX2NvbXBvbmVudF9SYWRpYWxQcm9ncmVzc0JhciIsIl9jb21wb25lbnRfT3JnYW5pc2F0aW9uRWxlbWVudHMiLCJfY29tcG9uZW50X09yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsIiwicmVjaXBpZW50X2NvdW50cnkiLCJyZWNpcGllbnRfY291bnRyeV9idWRnZXQiLCJidWRnZXRfbGluZSIsInJlY2lwaWVudF9vcmdfYnVkZ2V0IiwicmVjaXBpZW50X29yZyIsInJlY2lwaWVudF9vcmdfaW5kZXgiLCJuYXJyYXRpdmVfaW5kZXgiLCJyZWNpcGllbnRfcmVnaW9uX2J1ZGdldCIsInJlY2lwaWVudF9yZWdpb24iLCJ0b3RhbF9idWRnZXQiLCJ0b3RhbF9idWRnZXRfc3RhdHVzIiwidG90YWxfZXhwZW5kaXR1cmUiLCJleHBlbnNlX2xpbmUiLCJvbklucHV0IiwiX2NvbXBvbmVudF9TZXR0aW5nUHVibGlzaGluZ0Zvcm0iLCJfY29tcG9uZW50X1NldHRpbmdEZWZhdWx0Rm9ybSIsImFjdGl2ZV9fdGFiIiwib25TdWJtaXRQdWJsaXNoaW5nIiwiaXNWZXJpZmljYXRpb25SZXF1ZXN0ZWQiLCJ0YWdfX2NvcnJlY3QiLCJ0YWdfX2luY29ycmVjdCIsImFsbF9hY3Rpdml0aWVzX2NvdW50IiwiX2NvbXBvbmVudF9FbWFpbFZlcmlmaWNhdGlvbiIsImVycm9yX2tleSIsImZvcm1fX2lucHV0Iiwidk1vZGVsRHluYW1pYyIsInJlZl9mb3IiLCJvbkZvY3VzIiwid2l0aE1vZGlmaWVycyIsInZ1ZV9fc2VsZWN0IiwiX2NvbXBvbmVudF9TdHJvbmciLCJlcnJvcl9pbnB1dCIsIl9jb21wb25lbnRfTmF2RHJvcGRvd24iLCJ2dWUzX3Ntb290aF9zY3JvbGxfMSIsInN2Z192dWUzXzEiLCJXZWJIZWFkZXJfdnVlXzEiLCJXZWJGb290ZXJfdnVlXzEiLCJBZG1pbkZvb3Rlcl92dWVfMSIsIldlbGNvbWVQYWdlX3Z1ZV8xIiwiUmVnaXN0ZXJQYWdlX3Z1ZV8xIiwiQWJvdXRQYWdlX3Z1ZV8xIiwiU3VwcG9ydFBhZ2VfdnVlXzEiLCJJYXRpU3RhbmRhcmRfdnVlXzEiLCJQdWJsaXNoaW5nQ2hlY2tsaXN0X3Z1ZV8xIiwiSWF0aVJlZ2lzdGVyUGFnZV92dWVfMSIsIlJlc3VsdERldGFpbF92dWVfMSIsIlJlc3VsdExpc3RfdnVlXzEiLCJJbmRpY2F0b3JEZXRhaWxfdnVlXzEiLCJJbmRpY2F0b3JMaXN0X3Z1ZV8xIiwiUGVyaW9kc0RldGFpbF92dWVfMSIsIlBlcmlvZHNMaXN0X3Z1ZV8xIiwiVHJhbnNhY3Rpb25MaXN0X3Z1ZV8xIiwiVHJhbnNhY3Rpb25EZXRhaWxfdnVlXzEiLCJEZXNjcmlwdGlvbkZvcm1fdnVlXzEiLCJFbGVtZW50c05vdGVfdnVlXzEiLCJBY3Rpdml0eUluZGV4X3Z1ZV8xIiwiQWRtaW5IZWFkZXJfdnVlXzEiLCJBY3Rpdml0eURldGFpbF92dWVfMSIsIlNpZGViYXJIZWxwQmxvY2tfdnVlXzEiLCJBY3Rpdml0eVVwbG9hZF92dWVfMSIsIkltcG9ydExpc3RfdnVlXzEiLCJTZXR0aW5nUGFnZV92dWVfMSIsIkFjdGl2aXR5RGVmYXVsdFZhbHVlX3Z1ZV8xIiwiUmVzZXRQYWdlX3Z1ZV8xIiwiUGFzc3dvcmRSZWNvdmVyeV92dWVfMSIsIlJlc2V0UGFzc3dvcmRfdnVlXzEiLCJPcmdhbmlzYXRpb25EYXRhX3Z1ZV8xIiwiT3JnYW5pc2F0aW9uTGlzdF92dWVfMSIsIkFkbWluQmFyX3Z1ZV8xIiwiYXBwIiwiY3JlYXRlQXBwIiwiY29tcG9uZW50IiwidXNlIiwibGFzdFNjcm9sbFRvcCIsImFmZml4VHlwZSIsInN0aWNreVNpZGViYXIiLCJlbCIsInBhcmVudFdyYXBwZXIiLCJzdGlja3lFbGVtZW50IiwiZmlyc3RDaGlsZCIsIm9mZnNldEhlaWdodCIsInN0aWNreUN1cnJlbnRUb3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3AiLCJzdGlja3lDdXJyZW50Qm90dG9tIiwiYm90dG9tIiwiZWxXaWR0aCIsIm9mZnNldFdpZHRoIiwiZWxTY3JvbGxMZWZ0IiwibGVmdCIsImVsU2Nyb2xsVG9wIiwiZWxTY3JvbGxCb3R0b20iLCJ2aWV3cG9ydEhlaWdodCIsImlubmVySGVpZ2h0IiwiY3VycmVudFdpbmRvd3NTY3JvbGxQb3NpdGlvbiIsInBhZ2VZT2Zmc2V0IiwidGFyZ2V0U2Nyb2xsUG9zaXRpb24iLCJlbFBhcmVudCIsImVsUGFyZW50Qm90dG9tIiwiaXNTY3JvbGxEb3duIiwiaXNTY3JvbGxVcCIsImhhbmRsZVNjcm9sbERvd24iLCJoYW5kbGVTY3JvbGxVcCIsImZpeFNpZGViYXIiLCJmb290ZXIiLCJnZXRFbGVtZW50QnlJZCIsInJlY3QiLCJjbGllbnRXaWR0aCIsImRpcmVjdGl2ZSIsIm1vdW50ZWQiLCJiaW5kaW5nIiwidW5tb3VudGVkIiwicGFyZW50IiwibW91bnQiLCJmb3JtYXRfZGF0ZSIsImRhdGFfMSIsInZ1ZXhfMSIsIm11dGF0aW9ucyIsIm11dGF0ZVNlbGVjdGVkQWN0aXZpdGllcyIsInBheWxvYWQiLCJhY3Rpb25zIiwiY29tbWl0IiwiYWN0aXZpdHlMaXN0U3RvcmUiLCJjcmVhdGVTdG9yZSIsIm11dGF0ZVVuUHVibGlzaGVkIiwibXV0YXRlU2hvd1B1Ymxpc2hlZCIsIm11dGF0ZVB1Ymxpc2hFcnJvcnMiLCJ1cGRhdGVVblB1Ymxpc2hlZCIsInVwZGF0ZVNob3dQdWJsaXNoZWQiLCJ1cGRhdGVQdWJsaXNoRXJyb3JzIiwiYWN0aXZpdHlEZXRhaWxTdG9yZSIsInN0YXRlXzEiLCJtdXRhdGlvbl8xIiwiTXV0YXRpb25UeXBlcyIsIlVQREFURV9QVUJMSVNIRVJfSU5GTyIsIlVQREFURV9QVUJMSVNISU5HX0VSUk9SIiwiVVBEQVRFX0RFRkFVTFRfRVJST1IiLCJSZXN1bHRfdnVlXzEiLCJJYXRpSWRlbnRpZmllcl92dWVfMSIsIk90aGVySWRlbnRpZmllcl92dWVfMSIsIlRpdGxlX3Z1ZV8xIiwiRGVzY3JpcHRpb25fdnVlXzEiLCJBY3Rpdml0eURhdGVfdnVlXzEiLCJDb250YWN0SW5mb192dWVfMSIsIlBhcnRpY2lwYXRpbmdPcmdfdnVlXzEiLCJSZWNpcGllbnRDb3VudHJ5X3Z1ZV8xIiwiUmVjaXBpZW50UmVnaW9uX3Z1ZV8xIiwiVHJhbnNhY3Rpb25zX3Z1ZV8xIiwiTG9jYXRpb25fdnVlXzEiLCJTZWN0b3JfdnVlXzEiLCJMZWdhY3lEYXRhX3Z1ZV8xIiwiQ29uZGl0aW9uc192dWVfMSIsIlJlbGF0ZWRBY3Rpdml0eV92dWVfMSIsIlBvbGljeU1hcmtlcl92dWVfMSIsIlRhZ192dWVfMSIsIkh1bWFuaXRhcmlhblNjb3BlX3Z1ZV8xIiwiUGxhbm5lZERpc2J1cnNlbWVudF92dWVfMSIsIlJlcG9ydGluZ09yZ2FuaXphdGlvbl92dWVfMSIsIk1lYXN1cmVfdnVlXzEiLCJJbmRpY2F0b3JBc2NlbmRpbmdfdnVlXzEiLCJBZ2dyZWdhdGlvblN0YXR1c192dWVfMSIsIlJlZmVyZW5jZV92dWVfMSIsIkRvY3VtZW50TGlua192dWVfMSIsIkJhc2VsaW5lX3Z1ZV8xIiwiUGVyaW9kX3Z1ZV8xIiwiVGFyZ2V0VmFsdWVfdnVlXzEiLCJBY3R1YWxWYWx1ZV92dWVfMSIsIlRpdGxlRGVzY3JpcHRpb25fdnVlXzEiLCJSZXN1bHRUeXBlX3Z1ZV8xIiwiQWlkVHlwZV92dWVfMSIsIlRyYW5zYWN0aW9uVHlwZV92dWVfMSIsIlRyYW5zYWN0aW9uRGF0ZV92dWVfMSIsIlZhbHVlX3Z1ZV8xIiwiUHJvdmlkZXJPcmdhbml6YXRpb25fdnVlXzEiLCJSZWNlaXZlck9yZ2FuaXphdGlvbl92dWVfMSIsIkRpc2J1cnNlbWVudENoYW5uZWxfdnVlXzEiLCJGbG93VHlwZV92dWVfMSIsIkZpbmFuY2VUeXBlX3Z1ZV8xIiwiVGllZFN0YXR1c192dWVfMSIsIlJlcG9ydGluZ09yZ2FuaXNhdGlvbl92dWVfMSIsIlRvdGFsQnVkZ2V0X3Z1ZV8xIiwiUmVwb3J0aW5nT3JnQnVkZ2V0X3Z1ZV8xIiwiUmVwb3J0aW5nUmVnaW9uQnVkZ2V0X3Z1ZV8xIiwiUmVjaXBpZW50Q291bnRyeUJ1ZGdldF92dWVfMSIsIlRvdGFsRXhwZW5kaXR1cmVfdnVlXzEiLCJTaWduSW4iLCJKb2luTm93IiwicGFnZUNvbnRlbnQiLCJ0b2dnbGVQYWdlIiwiX2NyZWF0ZUVsZW1lbnRCbG9jayIsIl9jcmVhdGVFbGVtZW50Vk5vZGUiLCJfY3JlYXRlVk5vZGUiLCJfY3JlYXRlQmxvY2siLCJfY29tcG9uZW50X1NpZ25JbiIsIl9jb21wb25lbnRfSm9pbk5vdyJdLCJzb3VyY2VSb290IjoiIn0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,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TyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRXIxQixJQUFJLEVBQUU7QUFBUixDQUFsQjtBQUNBLElBQUlzMUIsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxHQUFHO0VBQUUsU0FBTztBQUFULENBQWxCO0FBQ0EsSUFBSUMsV0FBVyxH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QSxJQUFJQyxVQUFVLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBakI7QUFDQSxJQUFJQyxVQUFVLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBakI7QUFDQSxJQUFJQyxVQUFVLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBakI7QUFDQSxJQUFJQyxVQUFVLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBakI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFDZGxxQixNQUFNLEVBQUUsUUFETTtFQUVkeXlDLEdBQUcsRUFBRSxxQkFGUztFQUdkbCtDLElBQUksRUFBRTtBQUhRLENBQWxCO0FBS0EsSUFBSTQxQixXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJQyxXQUFXLEdBQUc7RUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJ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QUFDaG9DO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUM7Ozs7Ozs7Ozs7Ozs7QUNQdkM7Ozs7Ozs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QWUsQ0FBQyx5RkFBTSxhQUFhLHdGQUFNO0FBQzFFO0FBQ0EsSUFBSSxLQUFVLEVBQUUsRUFZZjs7O0FBR0QsaUVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCK0Q7QUFDbEI7QUFDTDs7QUFFdkQsQ0FBdUc7QUFDdkcsaUNBQWlDLHFIQUFlLENBQUMsOEVBQU0sYUFBYSx3RkFBTTtBQUMxRTtBQUNBLElBQUksS0FBVSxFQUFFLEVBWWY7OztBQUdELGlFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCK1E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVo7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUY7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVo7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUg7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQU87Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUY7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBOEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQXBDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQXVCOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FNOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FmOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FGOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7OztBQ0FpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBZDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBbEI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUk7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVg7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQWlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0ExQjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBUjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBWTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBVjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQU07Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVA7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVU7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQWY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQVg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBekU7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQTVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7QUNsSkEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQWRtaW5IZWFkZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9CcmVhZENydW1iLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRGVzY3JpcHRpb25Gb3JtLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRXJyb3JNZXNzYWdlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRXJyb3JQb3BVcC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0hvdmVyVGV4dC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0xvYWRlci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL05hdkRyb3Bkb3duLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUG9wdXBNb2RhbC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9EZWxldGVCdXR0b24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1B1Ymxpc2hCdXR0b24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL0RlbGV0ZUFjdGlvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL0Vycm9yTGlzdHMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9Pcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9TdGlja3lFcnJvcnMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zdGF0dXMvRWxlbWVudFN0YXR1cy52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3N0YXR1cy9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5RGVmYXVsdFZhbHVlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5RGV0YWlsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQ3JlYXRlTW9kYWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0J1bGtQdWJsaXNoaW5nLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL1B1Ymxpc2hTZWxlY3RlZC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvUmVmcmVzaFRvYXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9WYWxpZGF0aW9uRXJyb3JzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0FjdGl2aXR5RGF0ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Db25kaXRpb25zLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0NvbnRhY3RJbmZvLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0Rlc2NyaXB0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0h1bWFuaXRhcmlhblNjb3BlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0lhdGlJZGVudGlmaWVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0xlZ2FjeURhdGEudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvTG9jYXRpb24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvT3RoZXJJZGVudGlmaWVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1BhcnRpY2lwYXRpbmdPcmcudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUGxhbm5lZERpc2J1cnNlbWVudC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Qb2xpY3lNYXJrZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZWNpcGllbnRSZWdpb24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVsYXRlZEFjdGl2aXR5LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZXN1bHQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvU2VjdG9yLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1RhZy52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UaXRsZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UcmFuc2FjdGlvbnMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9JbmRpY2F0b3JEZXRhaWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9JbmRpY2F0b3JMaXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvQWdncmVnYXRpb25TdGF0dXMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9CYXNlbGluZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0Rlc2NyaXB0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvSW5kaWNhdG9yQXNjZW5kaW5nLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvTWVhc3VyZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1BlcmlvZC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1RpdGxlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9BY3Rpdml0eUVsZW1lbnQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvQWRkQWN0aXZpdHlCdXR0b24udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9FbGVtZW50c05vdGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRW1wdHlBY3Rpdml0eS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9QYWdlVGl0bGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvU2lkZWJhckhlbHBCbG9jay52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9UYWJsZUxheW91dC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNEZXRhaWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9QZXJpb2RzTGlzdC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL2VsZW1lbnRzL0FjdHVhbFZhbHVlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BlcmlvZHMvZWxlbWVudHMvVGFyZ2V0VmFsdWUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9SZXN1bHREZXRhaWwudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9SZXN1bHRFbGVtZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0TGlzdC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL0RvY3VtZW50TGluay52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL0luZGljYXRvci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1Jlc3VsdFR5cGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9UaXRsZURlc2NyaXB0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkRldGFpbC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25FbGVtZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkxpc3QudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0FpZFR5cGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0Rlc2NyaXB0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9EaXNidXJzZW1lbnRDaGFubmVsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GaW5hbmNlVHlwZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRmxvd1R5cGUudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1Byb3ZpZGVyT3JnYW5pemF0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvUmVjaXBpZW50UmVnaW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9TZWN0b3IudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1RpZWRTdGF0dXMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1RyYW5zYWN0aW9uRGF0ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVHJhbnNhY3Rpb25UeXBlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9WYWx1ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvQWN0aXZpdHlVcGxvYWQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydExpc3QudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydFBsYWNlaG9sZGVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2ltcG9ydC9MaXN0RWxlbWVudC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL09yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Eb2N1bWVudExpbmsudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlY2lwaWVudENvdW50cnlCdWRnZXQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlcG9ydGluZ09yZ0J1ZGdldC52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZXBvcnRpbmdSZWdpb25CdWRnZXQudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1RvdGFsQnVkZ2V0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9yZXNldC9SZXNldFBhc3N3b3JkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1BhZ2UudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc2V0dGluZy9TZXR0aW5nUHVibGlzaGluZ0Zvcm0udnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9PcmdhbmlzYXRpb25MaXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vY29tcG9uZW50cy9BZG1pbkJhci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zdXBlcmFkbWluL2NvbXBvbmVudHMvVGFibGVMaXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9FbWFpbFZlcmlmaWNhdGlvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvSWF0aVJlZ2lzdGVyUGFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvSWF0aVN0YW5kYXJkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9SZWdpc3RlclBhZ2UudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1N1cHBvcnRQYWdlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9BZG1pbkZvb3Rlci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvSm9pbk5vdy52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvU2lnbkluLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJGb290ZXIudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1dlYkhlYWRlci52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9hcHAudHMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb3NhYmxlL2NvcmVFbGVtZW50cy50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvc2FibGUvZGF0ZUZvcm1hdC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvc2FibGUvZW5jcnlwdGlvbi50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvc2FibGUvdGl0bGUudHMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb3NhYmxlL3V0aWxzLnRzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvc3RvcmUvYWN0aXZpdGllcy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3N0b3JlL2FjdGl2aXRpZXMvc2hvdy50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3N0b3JlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvc3RvcmUvc2V0dGluZy9hY3Rpb25zLnRzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvc3RvcmUvc2V0dGluZy9tdXRhdGlvbi50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3N0b3JlL3NldHRpbmcvc3RhdGUudHMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9JbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvSW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL2VsZW1lbnRzL0luZGV4LnRzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9JbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9JbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9JbmRleC50cyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9BYm91dFBhZ2UudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1dlbGNvbWVQYWdlLnZ1ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvU2hpbW1lckxvYWRpbmcudnVlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUGFzc3dvcmRSZWNvdmVyeS52dWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0FkbWluSGVhZGVyLnZ1ZT85OGRiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9FcnJvck1lc3NhZ2UudnVlPzgwNzUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0hvdmVyVGV4dC52dWU/NDk4MSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZT8yMjBiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZT8wMTgyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9TaGltbWVyTG9hZGluZy52dWU/ZjE5NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvRXJyb3JMaXN0cy52dWU/Y2M2ZiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlP2UyM2UiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1N0aWNreUVycm9ycy52dWU/YmY0ZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlPzM1N2IiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWU/ODAzYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9CdWxrUHVibGlzaGluZy52dWU/MjE4YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlP2RkYzgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9BY3Rpdml0aWVzRWxlbWVudHMudnVlP2UyZjUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWU/OWZkMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWU/M2NmNyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT82NmJlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1JlZ2lzdGVyUGFnZS52dWU/ZmU0YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9TaWduSW4udnVlP2EzZTIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2FwcC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlLyBzeW5jIF5cXC5cXC8uKiQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X2RhdGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9hY3Rpdml0eV9zY29wZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X3N0YXR1cy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2J1ZGdldC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2J1aWxkaW5nLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvY2FwaXRhbF9zcGVuZC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2NvbGxhYm9yYXRpb25fdHlwZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2NvbmRpdGlvbnMuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9jb250YWN0X2luZm8uc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9jb3VudHJ5X2J1ZGdldF9pdGVtcy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2Nycy1hZGQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2FpZF90eXBlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvZGVmYXVsdF9maW5hbmNlX3R5cGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2Zsb3dfdHlwZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2Rlc2NyaXB0aW9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvZG9jdW1lbnRfbGluay5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2h1bWFuaXRhcmlhbl9zY29wZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2lhdGlfaWRlbnRpZmllci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2luZGljYXRvci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2xlZ2FjeV9kYXRhLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvbG9jYXRpb24uc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9vdGhlcl9pZGVudGlmaWVyLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcGFydGljaXBhdGluZ19vcmcuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9wZXJpb2Quc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9wbGFubmVkX2Rpc2J1cnNlbWVudC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3BvbGljeV9tYXJrZXIuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9yZWNpcGllbnRfY291bnRyeS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3JlY2lwaWVudF9yZWdpb24uc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9yZWxhdGVkX2FjdGl2aXR5LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcmVwb3J0aW5nX29yZy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3Jlc3VsdC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3Jlc3VsdHMuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9zZWN0b3Iuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy90YWcuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy90aXRsZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3RyYW5zYWN0aW9ucy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FkZC1tb3JlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWRkLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWxlcnQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hbGlnbi1jZW50ZXIuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hbGlnbi1yaWdodC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FwcHJvdmVkLWNsb3VkLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYXJyb3ctZG93bi5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Fycm93LWxlZnQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hcnJvdy1yaWdodC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Fycm93LXNob3J0LWxlZnQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hc2NlbmRpbmctYXJyb3cuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9iaWxsLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYm94LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYnVkZ2V0LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYnVpbGRpbmcuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jYW5jZWwtY2xvdWQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jaGVjay1jaXJjbGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jaGVja2JveC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2NoZWNrZWQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jaGV2cm9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvY2xvc2Uuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jb3B5cmlnaHQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jb3JlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVmYXVsdC0xLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVmYXVsdC0yLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVsZXRlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVzY2VuZGluZy1hcnJvdy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2RvY3VtZW50LXdyaXRlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZG91YmxlLXRpY2suc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kb3dubG9hZC1maWxlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZG93bmxvYWQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kcm9wZG93bi1hcnJvdy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2VkaXQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9leHRlcm5hbC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2V5ZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2ZvbGRlci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Zvb3Rlci1sb2dvLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZ3JvdXAuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9oZWFkZXItbG9nby5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2hlYWRwaG9uZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2hlbHAuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9oaXN0b3J5LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvaWMtdmVyaWZpY2F0aW9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbGVmdC1hcnJvdy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2xvZ28td2hpdGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9sb2dvLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbG9nb3V0LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbWFpbC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL21vb24uc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9ub3RlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2J1aWxkaW5nLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2Rlc2NyaXB0aW9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2RvY3VtZW50X2xpbmsuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvbmFtZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdfaWRlbnRpZmllci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdhbmlzYXRpb25faWRlbnRpZmllci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdhbml6YXRpb25faWRlbnRpZmllci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZWNpcGllbnRfY291bnRyeV9idWRnZXQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVjaXBpZW50X29yZ19idWRnZXQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVjaXBpZW50X3JlZ2lvbl9idWRnZXQuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVwb3J0aW5nX29yZy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZXBvcnRpbmdfb3JnYW5pc2F0aW9uLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3RpdGxlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3RvdGFsX2J1ZGdldC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy90b3RhbF9leHBlbmRpdHVyZS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3BhbmVsLXNlYXJjaC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3BsdXMuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9wdWJsaXNoLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcHctbG9jay5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3F1ZXN0aW9uLW1hcmsuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9yZWQtY3Jvc3Muc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9yZWQtZG90LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcmVkby5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3JpZ2h0LWFycm93LnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc2VhcmNoLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc2V0dGluZy5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3NoaWVsZC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3NtaWxlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc3Rhci5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3RpY2suc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy90aW1lcy1jaXJjbGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy90d2l0dGVyLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvdXBsb2FkLWZpbGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy91c2VyLXByb2ZpbGUuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy91c2VyLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvd2FybmluZy1hY3Rpdml0eS5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3dhcm5pbmctZmlsbC5zdmciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3dhcm5pbmcuc3ZnIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy95b3V0dWJlLnN2ZyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQWRtaW5IZWFkZXIudnVlP2E5Y2YiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Vycm9yTWVzc2FnZS52dWU/NTg4OSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZT9hMGMzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Mb2FkZXIudnVlP2VjYzIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1BvcHVwTW9kYWwudnVlP2VlMWIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZT85NTBlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9FcnJvckxpc3RzLnZ1ZT9hYjkzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWU/ZDc4MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvU3RpY2t5RXJyb3JzLnZ1ZT83Mjk1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlJbmRleC52dWU/ODgwZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0NyZWF0ZU1vZGFsLnZ1ZT82ZDM5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0J1bGtQdWJsaXNoaW5nLnZ1ZT81NDI3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0Vycm9ySXRlbS52dWU/ZGVlYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/MGE3ZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25EYXRhLnZ1ZT9jODU2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUmVzZXRQYWdlLnZ1ZT84MTIzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlSZWdpc3RlclBhZ2UudnVlPzQ4NDUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUmVnaXN0ZXJQYWdlLnZ1ZT9jN2E1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1NpZ25Jbi52dWU/NDQ3OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQWRtaW5IZWFkZXIudnVlPzNjMmQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0JyZWFkQ3J1bWIudnVlP2FhMWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWU/NmYxMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRGVzY3JpcHRpb25Gb3JtLnZ1ZT8xNDEwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9FcnJvck1lc3NhZ2UudnVlP2UxZDAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Vycm9yUG9wVXAudnVlPzMyZmEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0hvdmVyVGV4dC52dWU/YTJlNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZT80MmI3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9OYXZEcm9wZG93bi52dWU/YWUwYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUG9wdXBNb2RhbC52dWU/ZWQzMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUmFkaWFsUHJvZ3Jlc3NCYXIudnVlPzc0YTciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZT8yNjdiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9UYWJsZVBhZ2luYXRpb24udnVlPzI3YjIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWU/MzkxZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9EZWxldGVCdXR0b24udnVlPzZlNDEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL2J1dHRvbnMvTGluay52dWU/MjQ3YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9QdWJsaXNoQnV0dG9uLnZ1ZT9hOGQ3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWU/NDFhMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvRGVsZXRlQWN0aW9uLnZ1ZT84YzkwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9FcnJvckxpc3RzLnZ1ZT84ODhlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlPzkzNjEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlPzkxN2IiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWU/ZTJmMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlP2ZkYzciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1N0aWNreUVycm9ycy52dWU/YWZjYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc3RhdHVzL0VsZW1lbnRTdGF0dXMudnVlP2RhNTQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3N0YXR1cy9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZT9mODczIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlP2Q0YTkiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eURldGFpbC52dWU/OTQ2NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlPzA0NmQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWU/OGU2ZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9CdWxrUHVibGlzaGluZy52dWU/Nzc0OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlPzAxM2QiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvUHVibGlzaFNlbGVjdGVkLnZ1ZT8zOWRhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL1JlZnJlc2hUb2FzdC52dWU/OTFiYSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9WYWxpZGF0aW9uRXJyb3JzLnZ1ZT8yYmYwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQWN0aXZpdHlEYXRlLnZ1ZT8yZjBiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQ29uZGl0aW9ucy52dWU/YzE4ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0NvbnRhY3RJbmZvLnZ1ZT82MDcyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlPzZiNWEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9IdW1hbml0YXJpYW5TY29wZS52dWU/NTliYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0lhdGlJZGVudGlmaWVyLnZ1ZT8yZDc2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvTGVnYWN5RGF0YS52dWU/YjhkYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0xvY2F0aW9uLnZ1ZT8yYmJjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvT3RoZXJJZGVudGlmaWVyLnZ1ZT83MjNlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUGFydGljaXBhdGluZ09yZy52dWU/ODk4YiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1BsYW5uZWREaXNidXJzZW1lbnQudnVlPzBkYzYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Qb2xpY3lNYXJrZXIudnVlPzhlYjgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZT84MTBmIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVjaXBpZW50UmVnaW9uLnZ1ZT9iYjg4Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVsYXRlZEFjdGl2aXR5LnZ1ZT81ZTk4Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZT8zYmU5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVzdWx0LnZ1ZT8xOGRlIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvU2VjdG9yLnZ1ZT8yMjc5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGFnLnZ1ZT84ZDE3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGl0bGUudnVlP2MzZTAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UcmFuc2FjdGlvbnMudnVlPzUwMjYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL0luZGljYXRvckRldGFpbC52dWU/NDkwNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvSW5kaWNhdG9yTGlzdC52dWU/MDk1OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvQWdncmVnYXRpb25TdGF0dXMudnVlPzQxYjYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0Jhc2VsaW5lLnZ1ZT84MDYwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9EZXNjcmlwdGlvbi52dWU/OTc5ZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZT80ZDg3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9JbmRpY2F0b3JBc2NlbmRpbmcudnVlPzQ2ZDciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL01lYXN1cmUudnVlPzFjNmIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1BlcmlvZC52dWU/MmU3OSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvUmVmZXJlbmNlLnZ1ZT9hYjcxIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9UaXRsZS52dWU/MDEzMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/NzVlMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXR5RWxlbWVudC52dWU/MjE2YSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZT80NzQzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWU/MTEyYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VsZW1lbnRzTm90ZS52dWU/NDZhNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VtcHR5QWN0aXZpdHkudnVlPzU0MWYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9QYWdlVGl0bGUudnVlPzIxMWEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9TaWRlYmFySGVscEJsb2NrLnZ1ZT8zODg2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvVGFibGVMYXlvdXQudnVlPzcwNDYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNEZXRhaWwudnVlP2U2NGMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNMaXN0LnZ1ZT9jMzJjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9lbGVtZW50cy9BY3R1YWxWYWx1ZS52dWU/NGVhNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BlcmlvZHMvZWxlbWVudHMvVGFyZ2V0VmFsdWUudnVlPzJjOTgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL1Jlc3VsdERldGFpbC52dWU/NDdlZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0RWxlbWVudC52dWU/M2VmMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0TGlzdC52dWU/OGIzYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZT83ZDE1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9JbmRpY2F0b3IudnVlPzg1ZTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWU/MjkzMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvUmVzdWx0VHlwZS52dWU/ZjNmNCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvVGl0bGVEZXNjcmlwdGlvbi52dWU/ZTA5YSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkRldGFpbC52dWU/NThmMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkVsZW1lbnQudnVlP2RiNWYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25MaXN0LnZ1ZT8xNTA4Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0FpZFR5cGUudnVlPzMyZjgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlPzE5NWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/ODFkMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GaW5hbmNlVHlwZS52dWU/NGE4NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GbG93VHlwZS52dWU/NzEzNCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9Qcm92aWRlck9yZ2FuaXphdGlvbi52dWU/MzE1MSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/NjJlYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZT8wMTUwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1JlY2lwaWVudFJlZ2lvbi52dWU/ZGY2MyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9TZWN0b3IudnVlP2FiM2YiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVGllZFN0YXR1cy52dWU/NzhkMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9UcmFuc2FjdGlvbkRhdGUudnVlP2U4OWQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVHJhbnNhY3Rpb25UeXBlLnZ1ZT84M2NhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1ZhbHVlLnZ1ZT8xMTg3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0FjdGl2aXR5VXBsb2FkLnZ1ZT9mODc3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydExpc3QudnVlP2ZmOGUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvSW1wb3J0UGxhY2Vob2xkZXIudnVlPzFhNTAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvTGlzdEVsZW1lbnQudnVlP2U2MTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWU/ZDJlNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50cy52dWU/YWE0YSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/Yjg3NSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Eb2N1bWVudExpbmsudnVlPzAwNDQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWU/MzdlZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZXBvcnRpbmdPcmdCdWRnZXQudnVlPzllYWIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZT85ZWE0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlcG9ydGluZ1JlZ2lvbkJ1ZGdldC52dWU/YjEwOCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEJ1ZGdldC52dWU/ZGQyYiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZT83YjM3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUGFzc3dvcmRSZWNvdmVyeS52dWU/OWNiZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWU/ZjFhYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFzc3dvcmQudnVlPzQzNjMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zZXR0aW5nL1NldHRpbmdEZWZhdWx0Rm9ybS52dWU/OTE1YiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1BhZ2UudnVlPzAxMDMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zZXR0aW5nL1NldHRpbmdQdWJsaXNoaW5nRm9ybS52dWU/ZTI0NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vT3JnYW5pc2F0aW9uTGlzdC52dWU/ZTUwNyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vY29tcG9uZW50cy9BZG1pbkJhci52dWU/NjY2MCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3N1cGVyYWRtaW4vY29tcG9uZW50cy9UYWJsZUxpc3QudnVlPzMxMTciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvQWJvdXRQYWdlLnZ1ZT83OGRjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZT9jMGE2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlSZWdpc3RlclBhZ2UudnVlPzIzZTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvSWF0aVN0YW5kYXJkLnZ1ZT82NTJjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1B1Ymxpc2hpbmdDaGVja2xpc3QudnVlPzg2OWYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUmVnaXN0ZXJQYWdlLnZ1ZT8xNWU1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1N1cHBvcnRQYWdlLnZ1ZT8wNThjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1dlbGNvbWVQYWdlLnZ1ZT8wZGViIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL0FkbWluRm9vdGVyLnZ1ZT80MjJiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL0pvaW5Ob3cudnVlPzVhNTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvU2lnbkluLnZ1ZT8wMzVkIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1dlYkZvb3Rlci52dWU/YTdkMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJIZWFkZXIudnVlP2FlYjMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0FkbWluSGVhZGVyLnZ1ZT9kNDgwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9CcmVhZENydW1iLnZ1ZT8xYjI2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlPzUxMjEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Rlc2NyaXB0aW9uRm9ybS52dWU/ZGQxZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRXJyb3JNZXNzYWdlLnZ1ZT9kN2I3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9FcnJvclBvcFVwLnZ1ZT80MjgxIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Ib3ZlclRleHQudnVlPzEyMGUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0xvYWRlci52dWU/ZWU4YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvTmF2RHJvcGRvd24udnVlP2JjZGUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1BvcHVwTW9kYWwudnVlPzM5NDciLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZT8wMWI5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9UYWJsZVBhZ2luYXRpb24udnVlPzZkM2MiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWU/MzVkNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9EZWxldGVCdXR0b24udnVlPzhiMmIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL2J1dHRvbnMvTGluay52dWU/ZmE1ZiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvYnV0dG9ucy9QdWJsaXNoQnV0dG9uLnZ1ZT9hYmUwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWU/MGU4YiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvRGVsZXRlQWN0aW9uLnZ1ZT8xMzM1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9FcnJvckxpc3RzLnZ1ZT8wY2I3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlPzg5NGYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlP2NiMmQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWU/YjI2YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlP2Y3ODMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1N0aWNreUVycm9ycy52dWU/NmU5NiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc3RhdHVzL0VsZW1lbnRTdGF0dXMudnVlP2Y0M2QiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3N0YXR1cy9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZT8yYWVjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlPzY1YzEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eURldGFpbC52dWU/YjFlMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlP2MyNmQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWU/ZjU4OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9CdWxrUHVibGlzaGluZy52dWU/ZjA0NSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlPzUwNjIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvUHVibGlzaFNlbGVjdGVkLnZ1ZT83NzQyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL1JlZnJlc2hUb2FzdC52dWU/Zjk2NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9WYWxpZGF0aW9uRXJyb3JzLnZ1ZT8zYTkyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQWN0aXZpdHlEYXRlLnZ1ZT8zM2I2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvQ29uZGl0aW9ucy52dWU/NTlhNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0NvbnRhY3RJbmZvLnZ1ZT85ZGE2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlPzRiZTIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9IdW1hbml0YXJpYW5TY29wZS52dWU/YzI3MyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0lhdGlJZGVudGlmaWVyLnZ1ZT8yNmUwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvTGVnYWN5RGF0YS52dWU/NzFhNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0xvY2F0aW9uLnZ1ZT8zNDBhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvT3RoZXJJZGVudGlmaWVyLnZ1ZT9hMmM2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUGFydGljaXBhdGluZ09yZy52dWU/NzBjMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1BsYW5uZWREaXNidXJzZW1lbnQudnVlP2ZmNGQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Qb2xpY3lNYXJrZXIudnVlP2RlYjAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZT9kODU3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVjaXBpZW50UmVnaW9uLnZ1ZT9kMzhjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVsYXRlZEFjdGl2aXR5LnZ1ZT8zZGU3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZT9kNWNmIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVzdWx0LnZ1ZT83NGY2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvU2VjdG9yLnZ1ZT80OTZjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGFnLnZ1ZT8wMzE0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGl0bGUudnVlPzgxMDgiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UcmFuc2FjdGlvbnMudnVlPzAxZTAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL0luZGljYXRvckRldGFpbC52dWU/OTcxNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvSW5kaWNhdG9yTGlzdC52dWU/MmNjNyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvQWdncmVnYXRpb25TdGF0dXMudnVlPzAxOGQiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0Jhc2VsaW5lLnZ1ZT8wYzJiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9EZXNjcmlwdGlvbi52dWU/ZmY4ZiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZT80NDI0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9JbmRpY2F0b3JBc2NlbmRpbmcudnVlPzEzYWEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL01lYXN1cmUudnVlP2VhZTYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1BlcmlvZC52dWU/MzhmNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvUmVmZXJlbmNlLnZ1ZT85MjQyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9UaXRsZS52dWU/OWZmMCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/OGM5NCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXR5RWxlbWVudC52dWU/NWM1MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0FkZEFjdGl2aXR5QnV0dG9uLnZ1ZT9jMjBkIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWU/OTQyNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VsZW1lbnRzTm90ZS52dWU/MDYxNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VtcHR5QWN0aXZpdHkudnVlPzI4MWUiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9QYWdlVGl0bGUudnVlPzlkMWYiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9TaWRlYmFySGVscEJsb2NrLnZ1ZT8wZGY0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvVGFibGVMYXlvdXQudnVlPzYzNDAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNEZXRhaWwudnVlPzdhODMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNMaXN0LnZ1ZT82NzQzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9lbGVtZW50cy9BY3R1YWxWYWx1ZS52dWU/MzMwZSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BlcmlvZHMvZWxlbWVudHMvVGFyZ2V0VmFsdWUudnVlPzE2YjAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL1Jlc3VsdERldGFpbC52dWU/MGE5YyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0RWxlbWVudC52dWU/ODUxYSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0TGlzdC52dWU/NmE3MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZT9hY2NkIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9JbmRpY2F0b3IudnVlPzBiNzEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWU/NjNhNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvUmVzdWx0VHlwZS52dWU/MTYzMSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvVGl0bGVEZXNjcmlwdGlvbi52dWU/NWUzMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkRldGFpbC52dWU/MmU1MCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkVsZW1lbnQudnVlPzUzYjEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25MaXN0LnZ1ZT85MjA3Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0FpZFR5cGUudnVlPzM0NzkiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGVzY3JpcHRpb24udnVlPzgzZjMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/MWU1MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GaW5hbmNlVHlwZS52dWU/NWRjMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GbG93VHlwZS52dWU/YjVkNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9Qcm92aWRlck9yZ2FuaXphdGlvbi52dWU/ODgwYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/OWM0NyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZT9jNWFhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1JlY2lwaWVudFJlZ2lvbi52dWU/NGJiNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9TZWN0b3IudnVlPzZmODAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVGllZFN0YXR1cy52dWU/ODI3OCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9UcmFuc2FjdGlvbkRhdGUudnVlPzBiOTkiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVHJhbnNhY3Rpb25UeXBlLnZ1ZT80NTRiIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1ZhbHVlLnZ1ZT84YmY0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0FjdGl2aXR5VXBsb2FkLnZ1ZT9jZjY1Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydExpc3QudnVlPzg1NDAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvSW1wb3J0UGxhY2Vob2xkZXIudnVlPzJhYjIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvTGlzdEVsZW1lbnQudnVlP2M5NjEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vT3JnYW5pc2F0aW9uRGF0YS52dWU/YjMyOSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50cy52dWU/ODc4YiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/YWM0ZiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Eb2N1bWVudExpbmsudnVlPzUzOTEiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWU/N2EwMiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZXBvcnRpbmdPcmdCdWRnZXQudnVlPzZhZjMiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZT8wOTgzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlcG9ydGluZ1JlZ2lvbkJ1ZGdldC52dWU/YTA3OSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEJ1ZGdldC52dWU/NGJhZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZT81MWQyIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUmVzZXRQYWdlLnZ1ZT9lOGIzIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUmVzZXRQYXNzd29yZC52dWU/ZWU0OSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZT84NWU5Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc2V0dGluZy9TZXR0aW5nUGFnZS52dWU/ZjBlMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1B1Ymxpc2hpbmdGb3JtLnZ1ZT8zZjM0Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9PcmdhbmlzYXRpb25MaXN0LnZ1ZT80NDBhIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9jb21wb25lbnRzL0FkbWluQmFyLnZ1ZT80MjRjIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9jb21wb25lbnRzL1RhYmxlTGlzdC52dWU/OWYyZCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9FbWFpbFZlcmlmaWNhdGlvbi52dWU/NWExNiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT83Y2IwIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlTdGFuZGFyZC52dWU/MDZhNCIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT84OGMxIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1JlZ2lzdGVyUGFnZS52dWU/OTg2MyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9TdXBwb3J0UGFnZS52dWU/Y2ZkYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9BZG1pbkZvb3Rlci52dWU/NjhiNSIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9Kb2luTm93LnZ1ZT82NjAxIiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1NpZ25Jbi52dWU/NjNkMyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJGb290ZXIudnVlPzZkZWIiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvV2ViSGVhZGVyLnZ1ZT8wMmY2Iiwid2VicGFjazovLy8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0Fib3V0UGFnZS52dWU/ZDYzYyIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9XZWxjb21lUGFnZS52dWU/YzY2MiIsIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvIHN5bmMgXlxcLlxcLy4qJCIsIndlYnBhY2s6Ly8vaWdub3JlZHwvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy9jcnlwdG8tanN8Y3J5cHRvIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIENyZWF0ZU1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdBZG1pbkhlYWRlcicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdXNlcjogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIG9yZ2FuaXphdGlvbjoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdiA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHYgPT09ICdzdHJpbmcnIHx8IHYgPT09IG51bGw7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHN1cGVyQWRtaW46IHsgdHlwZTogQm9vbGVhbiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIF9iO1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHRyYW5zbGF0aW9uID0gd2luZG93WydnbG9iYWxMYW5nJ107XG4gICAgICAgIHZhciBzaG93VXNlckRyb3Bkb3duID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3RWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgc2hvd1NpZGViYXIgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIucmVmKSgnJyk7XG4gICAgICAgIHZhciB0b2FzdFR5cGUgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBsYW5ndWFnZU5hdkxpQ2xhc3NlczogJ2ZsZXgnLFxuICAgICAgICAgICAgbGFuZ3VhZ2VOYXZBbmNob3JDbGFzc2VzOiAnZmxleCB0ZXh0LXdoaXRlIGl0ZW1zLWNlbnRlciB1cHBlcmNhc2UgbmF2X19wb2ludGVyLWhvdmVyIHB4LTEuNScsXG4gICAgICAgICAgICBtZW51TmF2TGlDbGFzc2VzOiAnZmxleCBweC00IHJlbGF0aXZlJyxcbiAgICAgICAgICAgIG1lbnVOYXZBbmNob3JDbGFzc2VzOiAnZmxleCB0ZXh0LXdoaXRlIGl0ZW1zLWNlbnRlciB1cHBlcmNhc2UgbmF2X19wb2ludGVyLWhvdmVyJyxcbiAgICAgICAgICAgIGxhbmd1YWdlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2U6ICdFTicsXG4gICAgICAgICAgICAgICAgICAgIHBlcm1hbGluazogJyMnLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlOiAnRlInLFxuICAgICAgICAgICAgICAgICAgICBwZXJtYWxpbms6ICcjJyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2U6ICdFUycsXG4gICAgICAgICAgICAgICAgICAgIHBlcm1hbGluazogJyMnLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbWVudXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRyYW5zbGF0aW9uLmFkbWluLmhlYWRlci5hY3Rpdml0eV9kYXRhLFxuICAgICAgICAgICAgICAgICAgICBwZXJtYWxpbms6ICcvYWN0aXZpdGllcycsXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdHJhbnNsYXRpb24uYWRtaW4uaGVhZGVyLm9yZ2FuaXNhdGlvbl9kYXRhLFxuICAgICAgICAgICAgICAgICAgICBwZXJtYWxpbms6ICcvb3JnYW5pc2F0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdHJhbnNsYXRpb24uYWRtaW4uaGVhZGVyLnNldHRpbmdzLFxuICAgICAgICAgICAgICAgICAgICBwZXJtYWxpbms6ICcvc2V0dGluZycsXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRyYW5zbGF0aW9uLmNvbW1vbl9sYW5nLmFkZF9pbXBvcnRfYWN0aXZpdHksXG4gICAgICAgICAgICAgICAgICAgIHBlcm1hbGluazogJyMnLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGxpQ2xhc3MgPSAnYmxvY2sgcC0yLjUgdGV4dC1uLTQwIHRleHQtdGlueSB1cHBlcmNhc2UgbGVhZGluZy1bMS41XSBmb250LWJvbGQgaG92ZXI6IXRleHQtbi01MCBob3ZlcjpiZy1uLTEwJztcbiAgICAgICAgdmFyIF9jID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIG1vZGFsVmFsdWUgPSBfY1swXSwgbW9kYWxUb2dnbGUgPSBfY1sxXTtcbiAgICAgICAgZnVuY3Rpb24gdG9hc3QobWVzc2FnZSwgdHlwZSkge1xuICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRvYXN0VmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlKTsgfSwgMTUwMDApO1xuICAgICAgICAgICAgdG9hc3RNZXNzYWdlLnZhbHVlID0gbWVzc2FnZTtcbiAgICAgICAgICAgIHRvYXN0VHlwZS52YWx1ZSA9IHR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzVG91Y2hEZXZpY2UgPSAoMCwgdnVlXzIuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHwgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzID4gMDtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIFRvZ2dsZU1vZGVsKCkge1xuICAgICAgICAgICAgbW9kYWxUb2dnbGUoKTtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnb3BlbkFkZE1vZGVsJyk7XG4gICAgICAgIH1cbiAgICAgICAgKDAsIHZ1ZV8yLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBzaG93U2lkZWJhci52YWx1ZTsgfSwgZnVuY3Rpb24gKHNpZGViYXIpIHtcbiAgICAgICAgICAgIGlmIChzaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gY2hhbmdlQWN0aXZlTWVudSgpIHtcbiAgICAgICAgICAgIHZhciBwYXRoID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgICAgICAgICAgZGF0YS5tZW51cy5mb3JFYWNoKGZ1bmN0aW9uIChtZW51LCBrZXkpIHtcbiAgICAgICAgICAgICAgICBkYXRhLm1lbnVzW2tleV1bJ2FjdGl2ZSddID0gbWVudS5wZXJtYWxpbmsgPT09IHBhdGggPyB0cnVlIDogZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCdhY3Rpdml0eScpIHx8XG4gICAgICAgICAgICAgICAgcGF0aC5pbmNsdWRlcygncmVzdWx0JykgfHxcbiAgICAgICAgICAgICAgICBwYXRoLmluY2x1ZGVzKCdpbmRpY2F0b3InKSkge1xuICAgICAgICAgICAgICAgIGRhdGEubWVudXNbMF1bJ2FjdGl2ZSddID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCdvcmdhbmlzYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIGRhdGEubWVudXNbMV1bJ2FjdGl2ZSddID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCdpbXBvcnQnKSkge1xuICAgICAgICAgICAgICAgIGRhdGEubWVudXNbM11bJ2FjdGl2ZSddID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBsb2NhbCBzdG9yYWdlIGZvciBwdWJsaXNoaW5nXG4gICAgICAgIHZhciBwYSA9ICgwLCBjb3JlXzEudXNlU3RvcmFnZSkoJ3Z1ZS11c2UtbG9jYWwtc3RvcmFnZScsIHtcbiAgICAgICAgICAgIHB1Ymxpc2hpbmdBY3Rpdml0aWVzOiAoX2IgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHVibGlzaGluZ0FjdGl2aXRpZXMnKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDoge30sXG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBsb2dvdXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGEudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBheGlvc18xLmRlZmF1bHQucG9zdCgnL2xvZ291dCcpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZWFyY2ggZnVuY3Rpb25hbGl0eVxuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIHNlYXJjaFZhbHVlID0gKDAsIHZ1ZV8yLnJlZikoJycpO1xuICAgICAgICB2YXIgY3VycmVudFVSTCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgICAgICBpZiAoY3VycmVudFVSTC5pbmNsdWRlcygnPycpKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKSwgc2VhcmNoID0gdXJsUGFyYW1zLmdldCgncScpO1xuICAgICAgICAgICAgc2VhcmNoVmFsdWUudmFsdWUgPSBzZWFyY2g7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNwaW5uZXIgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBzZWFyY2hGdW5jdGlvbiA9IGZ1bmN0aW9uICh1cmwpIHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIHNwaW5uZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgdmFyIHBhcmFtID0gKF9hID0gc2VhcmNoVmFsdWUudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXBsYWNlKCcjJywgJycpO1xuICAgICAgICAgICAgdmFyIHNvcnRpbmdQYXJhbSA9ICcnO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSAmJiBjdXJyZW50VVJMLmluY2x1ZGVzKCcmJykpIHtcbiAgICAgICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgICAgICAgICAgICAgIHZhciBxdWVyeVN0cmluZ0FyciA9IHF1ZXJ5U3RyaW5nLnNwbGl0KCcmJyk7XG4gICAgICAgICAgICAgICAgc29ydGluZ1BhcmFtID0gJyYnICsgcXVlcnlTdHJpbmdBcnIuc2xpY2UoMSkuam9pbignJicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGhyZWYgPSBwYXJhbSA/IFwiXCIuY29uY2F0KHVybCwgXCI/cT1cIikuY29uY2F0KHBhcmFtKS5jb25jYXQoc29ydGluZ1BhcmFtKSA6ICcvYWN0aXZpdGllcy8nO1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgICAgICB9O1xuICAgICAgICAoMCwgdnVlXzIub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlQWN0aXZlTWVudSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgfSk7XG4gICAgICAgICgwLCB2dWVfMi5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnb3BlbkFkZE1vZGVsJykgPT09ICd0cnVlJyAmJlxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSA9PT0gJy9hY3Rpdml0aWVzJykge1xuICAgICAgICAgICAgICAgIG1vZGFsVmFsdWUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8yLm9uVW5tb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnb3BlbkFkZE1vZGVsJyk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyB0cmFuc2xhdGlvbjogdHJhbnNsYXRpb24sIHNob3dVc2VyRHJvcGRvd246IHNob3dVc2VyRHJvcGRvd24sIHRvYXN0VmlzaWJpbGl0eTogdG9hc3RWaXNpYmlsaXR5LCBzaG93U2lkZWJhcjogc2hvd1NpZGViYXIsIHRvYXN0TWVzc2FnZTogdG9hc3RNZXNzYWdlLCB0b2FzdFR5cGU6IHRvYXN0VHlwZSwgZGF0YTogZGF0YSwgbGlDbGFzczogbGlDbGFzcywgbW9kYWxWYWx1ZTogbW9kYWxWYWx1ZSwgbW9kYWxUb2dnbGU6IG1vZGFsVG9nZ2xlLCB0b2FzdDogdG9hc3QsIGlzVG91Y2hEZXZpY2U6IGlzVG91Y2hEZXZpY2UsIFRvZ2dsZU1vZGVsOiBUb2dnbGVNb2RlbCwgY2hhbmdlQWN0aXZlTWVudTogY2hhbmdlQWN0aXZlTWVudSwgcGE6IHBhLCBsb2dvdXQ6IGxvZ291dCwgc2VhcmNoVmFsdWU6IHNlYXJjaFZhbHVlLCBjdXJyZW50VVJMOiBjdXJyZW50VVJMLCBzcGlubmVyOiBzcGlubmVyLCBzZWFyY2hGdW5jdGlvbjogc2VhcmNoRnVuY3Rpb24sIENyZWF0ZU1vZGFsOiBDcmVhdGVNb2RhbF92dWVfMS5kZWZhdWx0LCBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHRpdGxlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvdGl0bGVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdCcmVhZENydW1iJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgZ2V0QWN0aXZpdHlUaXRsZTogdGl0bGVfMS5kZWZhdWx0LCBicmVhZGNydW1iRGF0YTogYnJlYWRjcnVtYkRhdGEgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0J1dHRvbkNvbXBvbmVudCcsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGljb246IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiBcIlwiLFxuICAgICAgICB9LFxuICAgICAgICBsaW5rOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiBcIlwiLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgYnRuVHlwZSA9ICcnO1xuICAgICAgICBpZiAocHJvcHMudHlwZSA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICAgICAgICAgIGJ0blR5cGUgPSAnc2Vjb25kYXJ5LWJ0biBmb250LWJvbGQnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHByb3BzLnR5cGUgPT09ICdvdXRsaW5lJykge1xuICAgICAgICAgICAgYnRuVHlwZSA9ICdwcmltYXJ5LW91dGxpbmUtYnRuJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwcm9wcy50eXBlID09PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgIGJ0blR5cGUgPSAncHJpbWFyeS1idG4gZm9udC1ib2xkJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGJ0blR5cGUgPSAnZm9udC1ib2xkJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBidG5UeXBlOiBidG5UeXBlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdEZXNjcmlwdGlvbkZvcm0nLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7fSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICByZXR1cm4geyBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMyA9IHJlcXVpcmUoXCJAaGVhZGxlc3N1aS92dWVcIik7XG52YXIgTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL0xvYWRlci52dWVcIikpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdFcnJvck1lc3NhZ2UnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGlzRW1wdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIHNob3cgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBoYXNFcnJvcnMgPSAoMCwgdnVlXzIucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBlcnJvckNvdW50ID0gKDAsIHZ1ZV8yLnJlZikoMCk7XG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzIuaW5qZWN0KShcInRvYXN0RGF0YVwiKTtcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgYWNjb3VudF92ZXJpZmllZDogZmFsc2UsXG4gICAgICAgICAgICBwdWJsaXNoZXJfYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHRfc2V0dGluZzogZmFsc2UsXG4gICAgICAgICAgICBwdWJsaXNoZXJfc2V0dGluZzogZmFsc2UsXG4gICAgICAgICAgICB0b2tlbl9zdGF0dXM6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGlzTG9hZGVyVmlzaWJsZSA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgZnVuY3Rpb24gcmVzZW5kVmVyaWZpY2F0aW9uRW1haWwoKSB7XG4gICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoXCIvdXNlci92ZXJpZmljYXRpb24vZW1haWxcIilcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcmVzLmRhdGEubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHJlcy5kYXRhLnN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSBlcnJvci5kYXRhLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICgwLCB2dWVfMi5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9fYXdhaXRlcihfdGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgLmFsbChbXG4gICAgICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvc2V0dGluZy9zdGF0dXNcIiksXG4gICAgICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvdXNlci92ZXJpZmljYXRpb24vc3RhdHVzXCIpLFxuICAgICAgICAgICAgICAgICAgICBheGlvc18xLmRlZmF1bHQuZ2V0KFwiL29yZ2FuaXNhdGlvbi9zdGF0dXNcIiksXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oYXhpb3NfMS5kZWZhdWx0LnNwcmVhZChmdW5jdGlvbiAoc2V0dGluZ19yZXMsIHVzZXJfcmVzLCBvcmdfcmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBzZXR0aW5nX3Jlcy5kYXRhO1xuICAgICAgICAgICAgICAgICAgICB2YXIgdXNlcl9yZXNwb25zZSA9IHVzZXJfcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIHZhciBvcmdfcmVzcG9uc2UgPSBvcmdfcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS5kZWZhdWx0X3NldHRpbmcgPSAoX2EgPSByZXNwb25zZSA9PT0gbnVsbCB8fCByZXNwb25zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzcG9uc2UuZGF0YSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlZmF1bHRfc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEucHVibGlzaGVyX3NldHRpbmcgPSAoX2IgPSByZXNwb25zZSA9PT0gbnVsbCB8fCByZXNwb25zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzcG9uc2UuZGF0YSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnB1Ymxpc2hlcl9zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS50b2tlbl9zdGF0dXMgPSAoX2MgPSByZXNwb25zZSA9PT0gbnVsbCB8fCByZXNwb25zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzcG9uc2UuZGF0YSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnRva2VuX3N0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLmFjY291bnRfdmVyaWZpZWQgPSB1c2VyX3Jlc3BvbnNlLmRhdGEuYWNjb3VudF92ZXJpZmllZDtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLnB1Ymxpc2hlcl9hY3RpdmUgPSBvcmdfcmVzcG9uc2UuZGF0YS5wdWJsaXNoZXJfYWN0aXZlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBlZEVycm9yID0gW1wiZGVmYXVsdF9zZXR0aW5nXCIsIFwicHVibGlzaGVyX3NldHRpbmdcIiwgXCJ0b2tlbl9zdGF0dXNcIl07XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGVycm9yIGluIGVycm9yRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlcnJvckRhdGFbZXJyb3JdICYmIGdyb3VwZWRFcnJvci5pbmRleE9mKGVycm9yKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50LnZhbHVlICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEoZXJyb3JEYXRhLnB1Ymxpc2hlcl9zZXR0aW5nICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEudG9rZW5fc3RhdHVzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEuZGVmYXVsdF9zZXR0aW5nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudC52YWx1ZSArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3QudmFsdWVzKGVycm9yRGF0YSkuaW5kZXhPZihmYWxzZSkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHNob3c6IHNob3csIGhhc0Vycm9yczogaGFzRXJyb3JzLCBlcnJvckNvdW50OiBlcnJvckNvdW50LCB0b2FzdERhdGE6IHRvYXN0RGF0YSwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIGlzTG9hZGVyVmlzaWJsZTogaXNMb2FkZXJWaXNpYmxlLCByZXNlbmRWZXJpZmljYXRpb25FbWFpbDogcmVzZW5kVmVyaWZpY2F0aW9uRW1haWwsIFRyYW5zaXRpb25Sb290OiB2dWVfMy5UcmFuc2l0aW9uUm9vdCwgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ0Vycm9yUG9wVXAnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgdHlwZTogQXJyYXkgfHwgU3RyaW5nLFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBlbWl0czogWydjbG9zZS1wb3B1cCddLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZSwgZW1pdCA9IF9hLmVtaXQ7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBlbWl0KCdjbG9zZS1wb3B1cCcsICdjbG9zZWQnKTtcbiAgICAgICAgfTtcbiAgICAgICAgKDAsIHZ1ZV8yLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzIub25Vbm1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgZW1pdDogZW1pdCwgcHJvcHM6IHByb3BzLCBjbG9zZTogY2xvc2UgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIHByb3BzOiB7XG4gICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBob3ZlclRleHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB3aWR0aDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJ3ctNjAnLFxuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGxpbms6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICBpY29uU2l6ZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dJYXRpUmVmZXJlbmNlOiB7XG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICByZXR1cm4geyBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnTG9hZGVyQ21wJyxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIHByb3BzOiB7XG4gICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYnRuVGV4dDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJ0bkxpbms6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUG9wdXBNb2RhbCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbW9kYWxBY3RpdmU6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICc4MDknLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZW1pdHM6IFsnY2xvc2UnLCAncmVzZXQnXSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzLCBfYSkge1xuICAgICAgICB2YXIgZW1pdCA9IF9hLmVtaXQ7XG4gICAgICAgICgwLCB2dWVfMS53YXRjaCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gcHJvcHMubW9kYWxBY3RpdmU7IH0sIGZ1bmN0aW9uIChtb2RhbEFjdGl2ZSkge1xuICAgICAgICAgICAgaWYgKG1vZGFsQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICBlbWl0KCdjbG9zZScpO1xuICAgICAgICAgICAgZW1pdCgncmVzZXQnKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHsgY2xvc2U6IGNsb3NlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZTNfcmFkaWFsX3Byb2dyZXNzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInZ1ZTMtcmFkaWFsLXByb2dyZXNzXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFJhZGlhbFByb2dyZXNzQmFyOiB2dWUzX3JhZGlhbF9wcm9ncmVzc18xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBwZXJjZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAwLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgY29tcGxldGVkUGVyY2VudCA9ICgwLCB2dWVfMS5yZWYpKHByb3BzLnBlcmNlbnQpO1xuICAgICAgICB2YXIgdG90YWxQZXJjZW50ID0gKDAsIHZ1ZV8xLnJlZikoMTAwKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBsZXRlZFBlcmNlbnQ6IGNvbXBsZXRlZFBlcmNlbnQsXG4gICAgICAgICAgICB0b3RhbFBlcmNlbnQ6IHRvdGFsUGVyY2VudCxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1BhZ2luYXRpb25Db21wb25lbnQnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBlbWl0czogWydmZXRjaEFjdGl2aXRpZXMnXSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzLCBfYSkge1xuICAgICAgICB2YXIgZW1pdCA9IF9hLmVtaXQ7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBhY3RpdmVfcGFnZSA9ICgwLCB2dWVfMS5yZWYpKDEpO1xuICAgICAgICAoMCwgdnVlXzEud2F0Y2gpKGFjdGl2ZV9wYWdlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBlbWl0KCdmZXRjaEFjdGl2aXRpZXMnLCBhY3RpdmVfcGFnZS52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiB1cGRhdGVBY3RpdmVQYWdlKHBhZ2UpIHtcbiAgICAgICAgICAgIGFjdGl2ZV9wYWdlLnZhbHVlID0gcGFnZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjaGFuZ2VQYWdlKHBhZ2VOdW0pIHtcbiAgICAgICAgICAgIGFjdGl2ZV9wYWdlLnZhbHVlID1cbiAgICAgICAgICAgICAgICBhY3RpdmVfcGFnZS52YWx1ZSA9PT0gcHJvcHMuZGF0YS5sYXN0X3BhZ2UgPyAxIDogcGFnZU51bTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBuZXh0UGFnZSgpIHtcbiAgICAgICAgICAgIGFjdGl2ZV9wYWdlLnZhbHVlID1cbiAgICAgICAgICAgICAgICBhY3RpdmVfcGFnZS52YWx1ZSA9PT0gcHJvcHMuZGF0YS5sYXN0X3BhZ2UgPyAxIDogYWN0aXZlX3BhZ2UudmFsdWUgKyAxO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHByZXZpb3VzUGFnZSgpIHtcbiAgICAgICAgICAgIGFjdGl2ZV9wYWdlLnZhbHVlID1cbiAgICAgICAgICAgICAgICBhY3RpdmVfcGFnZS52YWx1ZSA9PT0gMSA/IHByb3BzLmRhdGEubGFzdF9wYWdlIDogYWN0aXZlX3BhZ2UudmFsdWUgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICBhY3RpdmVfcGFnZTogYWN0aXZlX3BhZ2UsXG4gICAgICAgICAgICB1cGRhdGVBY3RpdmVQYWdlOiB1cGRhdGVBY3RpdmVQYWdlLFxuICAgICAgICAgICAgbmV4dFBhZ2U6IG5leHRQYWdlLFxuICAgICAgICAgICAgcHJldmlvdXNQYWdlOiBwcmV2aW91c1BhZ2UsXG4gICAgICAgICAgICBjaGFuZ2VQYWdlOiBjaGFuZ2VQYWdlLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdUb2FzdE1lc3NhZ2UnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG1lc3NhZ2U6IHsgdHlwZTogU3RyaW5nLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB0eXBlOiB7IHR5cGU6IEJvb2xlYW4sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIHZ1ZV8yLnJlZikoXCJcIik7XG4gICAgICAgIGNsYXNzTmFtZS52YWx1ZSA9IHByb3BzLnR5cGVcbiAgICAgICAgICAgID8gXCJyb3VuZGVkLWxnIGJnLW1pbnQgYm9yZGVyIGJvcmRlci1zcHJpbmctMTAgcHktMyBweC01IGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTEgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbCB0ZXh0LW4tNTBcIlxuICAgICAgICAgICAgOiBcInJvdW5kZWQtbGcgYmctY3JpbXNvbi0xMCBib3JkZXIgYm9yZGVyLWNyaW1zb24tMjAgcHktMyBweC01IGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTEgdGV4dC1zbSBsZWFkaW5nLW5vcm1hbCB0ZXh0LW4tNTBcIjtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgcHJvcHM6IHByb3BzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGNvcmVfMSA9IHJlcXVpcmUoXCJAdnVldXNlL2NvcmVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuLy9jb21wb25lbnRcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgUG9wdXBNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZVwiKSk7XG52YXIgUHJvZ3Jlc3NMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlXCIpKTtcbi8vIFZ1ZXggU3RvcmVcbnZhciBpbmRleF8xID0gcmVxdWlyZShcIlN0b3JlL2FjdGl2aXRpZXMvaW5kZXhcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnRGVsZXRlQnV0dG9uJyxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgc3RvcmUgPSAoMCwgaW5kZXhfMS51c2VTdG9yZSkoKTtcbiAgICAgICAgLy8gdG9nZ2xlIHN0YXRlIGZvciBtb2RhbCBwb3B1cFxuICAgICAgICB2YXIgX2IgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgZGVsZXRlVmFsdWUgPSBfYlswXSwgZGVsZXRlVG9nZ2xlID0gX2JbMV07XG4gICAgICAgIC8vIGRpc3BsYXkvaGlkZSB2YWxpZGF0b3IgbG9hZGVyXG4gICAgICAgIHZhciBsb2FkZXIgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgIHRleHQ6ICdQbGVhc2UgV2FpdCcsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjYWxsIGFwaSBmb3IgdW5wdWJsaXNoaW5nXG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIuaW5qZWN0KSgndG9hc3RNZXNzYWdlJyk7XG4gICAgICAgIHZhciBkZWxldGVGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXIudGV4dCA9ICdEZWxldGluZyc7XG4gICAgICAgICAgICBkZWxldGVWYWx1ZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIGRlbGV0ZUVuZFBvaW50ID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KHN0b3JlLnN0YXRlLnNlbGVjdGVkQWN0aXZpdGllcyk7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHQuZGVsZXRlKGRlbGV0ZUVuZFBvaW50KS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UubWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdG9hc3RNZXNzYWdlLnR5cGUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCcvYWN0aXZpdGllcycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXIudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgc3RvcmU6IHN0b3JlLCBkZWxldGVWYWx1ZTogZGVsZXRlVmFsdWUsIGRlbGV0ZVRvZ2dsZTogZGVsZXRlVG9nZ2xlLCBsb2FkZXI6IGxvYWRlciwgbGFuZ3VhZ2U6IGxhbmd1YWdlLCB0b2FzdE1lc3NhZ2U6IHRvYXN0TWVzc2FnZSwgZGVsZXRlRnVuY3Rpb246IGRlbGV0ZUZ1bmN0aW9uLCBCdG5Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0LCBNb2RhbDogUG9wdXBNb2RhbF92dWVfMS5kZWZhdWx0LCBMb2FkZXI6IFByb2dyZXNzTG9hZGVyX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdMaW5rQnV0dG9uJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGluazoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGljb246IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICdlZGl0JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzaWduOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnaWNvblRleHQnLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgZGVzaWduID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRlc2lnbjtcbiAgICAgICAgdmFyIHN0eWxlVHlwZSA9IGRlc2lnbi52YWx1ZTtcbiAgICAgICAgdmFyIGNsYXNzZXMgPSAnJztcbiAgICAgICAgc3dpdGNoIChzdHlsZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2JnVGV4dCc6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9ICdmbGV4IGl0ZW1zLWNlbnRlciBiZy1uLTEwIHAtMSB0ZXh0LXRpbnkgZm9udC1ib2xkIHVwcGVyY2FzZSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNsYXNzZXMgPVxuICAgICAgICAgICAgICAgICAgICAnZmxleCBpdGVtcy1jZW50ZXIgZm9udC1ib2xkIGxlYWRpbmctbm9ybWFsIHVwcGVyY2FzZSB0ZXh0LXRpbnknO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGNsYXNzZXM6IGNsYXNzZXMgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGNvcmVfMSA9IHJlcXVpcmUoXCJAdnVldXNlL2NvcmVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuLy9jb21wb25lbnRcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgUG9wdXBNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZVwiKSk7XG52YXIgUHJvZ3Jlc3NMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlXCIpKTtcbi8vIFZ1ZXggU3RvcmVcbnZhciBzaG93XzEgPSByZXF1aXJlKFwiU3RvcmUvYWN0aXZpdGllcy9zaG93XCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1B1Ymxpc2hCdXR0b24nLFxuICAgIHByb3BzOiB7XG4gICAgICAgIHR5cGU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAncHJpbWFyeScgfSxcbiAgICAgICAgbGlua2VkVG9JYXRpOiB7IHR5cGU6IEJvb2xlYW4sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIHN0YXR1czogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIGNvcmVDb21wbGV0ZWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgYWN0aXZpdHlJZDogeyB0eXBlOiBOdW1iZXIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgX2IgPSAoMCwgdnVlXzIudG9SZWZzKShwcm9wcyksIGxpbmtlZFRvSWF0aSA9IF9iLmxpbmtlZFRvSWF0aSwgc3RhdHVzID0gX2Iuc3RhdHVzLCBjb3JlQ29tcGxldGVkID0gX2IuY29yZUNvbXBsZXRlZCwgYWN0aXZpdHlJZCA9IF9iLmFjdGl2aXR5SWQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAgR2xvYmFsIFN0YXRlXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgc3RvcmUgPSAoMCwgc2hvd18xLmRldGFpbFN0b3JlKSgpO1xuICAgICAgICAvL2FjdGl2aXR5IGlkXG4gICAgICAgIHZhciBpZCA9IGFjdGl2aXR5SWQudmFsdWU7XG4gICAgICAgIC8vIHRvZ2dsZSBzdGF0ZSBmb3IgbW9kYWwgcG9wdXBcbiAgICAgICAgdmFyIF9jID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIHB1Ymxpc2hWYWx1ZSA9IF9jWzBdLCBwdWJsaXNoVG9nZ2xlID0gX2NbMV07XG4gICAgICAgIC8vIHN0YXRlIGZvciBzdGVwIG9mIHRoZSBmbG93XG4gICAgICAgIHZhciBwdWJsaXNoU3RlcCA9ICgwLCB2dWVfMi5yZWYpKDApO1xuICAgICAgICAvLyBkaXNwbGF5L2hpZGUgdmFsaWRhdG9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICAvLyBzdGF0ZSBmb3IgZmlyc3Qgc3RlcFxuICAgICAgICAvLyBkZXRlcm1pbmUgaWYgY29yZSBlbGVtZW50IGNvbXBsZXRlZCBvciBub3RcbiAgICAgICAgLy8gdHJ1ZSBmb3IgY29tcGxldGVkIGFuZCBmYWxzZSBmb3Igbm90IGNvbXBsZXRlZFxuICAgICAgICB2YXIgY29yZUVsZW1lbnRTdGF0dXMgPSBjb3JlQ29tcGxldGVkLnZhbHVlO1xuICAgICAgICAvLyBEeW5hbWljIHRleHQgZm9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyVGV4dCA9ICgwLCB2dWVfMi5yZWYpKCdQbGVhc2UgV2FpdCcpO1xuICAgICAgICAvLyByZXNldCBzdGVwIHRvIHplcm8gYWZ0ZXIgY2xvc2luZyBtb2RhbFxuICAgICAgICB2YXIgcmVzZXRQdWJsaXNoU3RlcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHB1Ymxpc2hTdGVwLnZhbHVlID0gMDtcbiAgICAgICAgICAgIHB1Ymxpc2hWYWx1ZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICAvLyBjb21wdXRlZCBmdW5jdGlvbiB0byBjaGFuZ2UgY29udGVudCBvZiBtb2RhbFxuICAgICAgICB2YXIgcHVibGlzaFN0YXRlQ2hhbmdlID0gKDAsIHZ1ZV8yLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgcHVibGlzaFN0YXRlID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICAgICAgICBpY29uOiAnJyxcbiAgICAgICAgICAgICAgICBhbGVydFN0YXRlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgdGl0bGUgPSAnJywgZGVzY3JpcHRpb24gPSAnJywgaWNvbiA9ICd0aWNrJztcbiAgICAgICAgICAgIC8vIGRpZmZlcmVudCBjb250ZW50IGZvciBzdGVwIDEgYmFzZWQgb24gY29yZUVsZW1lbnQgc3RhdHVzXG4gICAgICAgICAgICBpZiAoY29yZUVsZW1lbnRTdGF0dXMpIHtcbiAgICAgICAgICAgICAgICB0aXRsZSA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLmNvcmVfY29tcGxldGVkX3RpdGxlO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gbGFuZ3VhZ2UuY29tbW9uX2xhbmcuY29yZV9jb21wbGV0ZWRfZGVzY3JpcHRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aXRsZSA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLmNvcmVfbm90X2NvbXBsZXRlZF90aXRsZTtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLmNvcmVfbm90X2NvbXBsZXRlZF9kZXNjcmlwdGlvbjtcbiAgICAgICAgICAgICAgICBpY29uID0gJ3dhcm5pbmctZmlsbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL2NyZWF0aW5nIGEgc2hvcnRlciB2YXJpYWJsZSBzbyB0aGF0IGJ1aWxkaW5nIGVycm9yIGRlc2NyaXB0aW9uIGZvciBjYXNlIDMgYW5kIDQgYmVjb21lcyBlYXNpcmVcbiAgICAgICAgICAgIHZhciBzID0gbGFuZ3VhZ2UuY29tbW9uX2xhbmcuc3RpY2t5LmNvbW1vbjtcbiAgICAgICAgICAgIHN3aXRjaCAocHVibGlzaFN0ZXAudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAvLyBmaXJzdCBzdGVwXG4gICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUudGl0bGUgPSB0aXRsZTtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5pY29uID0gaWNvbjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmFsZXJ0U3RhdGUgPSBjb3JlRWxlbWVudFN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgLy9zZWNvbmQgc3RlcFxuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLnRpdGxlID0gbGFuZ3VhZ2UuY29tbW9uX2xhbmcuc3RpY2t5LnRpdGxlXzE7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5kZXNjcmlwdGlvbiA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLnN0aWNreS5kZXNjcmlwdGlvbl8xO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuaWNvbiA9IFwic2hpZWxkXCI7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5hbGVydFN0YXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIC8vIGNhc2UgMiBpcyBmb3Igc3VjY2VzcyB2YWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUudGl0bGUgPSBsYW5ndWFnZS5jb21tb25fbGFuZy5zdGlja3kudGl0bGVfMjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmRlc2NyaXB0aW9uID0gbGFuZ3VhZ2UuY29tbW9uX2xhbmcuc3RpY2t5LmRlc2NyaXB0aW9uXzI7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5pY29uID0gXCJ0aWNrXCI7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5hbGVydFN0YXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgLy9jYXNlIDMgaXMgZm9yIHZhbGlkYXRpb24gd2l0aCBjcml0aWNhbCBlcnJvcnNcbiAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS50aXRsZSA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLnN0aWNreS50aXRsZV8zO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuZGVzY3JpcHRpb24gPSBcIjxwPjxiPlwiLmNvbmNhdChlcnIuY3JpdGljYWxOdW1iZXIsIFwiIFwiKS5jb25jYXQocy5jcml0aWNhbCwgXCIgXCIpLmNvbmNhdChzLmVycm9ycywgXCI8L2I+LCA8Yj5cIikuY29uY2F0KGVyci5lcnJvck51bWJlciwgXCIgXCIpLmNvbmNhdChzLmVycm9ycywgXCI8L2I+IFwiKS5jb25jYXQocy5hbmQsIFwiIDxiPlwiKS5jb25jYXQoZXJyLndhcm5pbmdOdW1iZXIsIFwiIFwiKS5jb25jYXQocy53YXJuaW5ncywgXCI8L2I+IFwiKS5jb25jYXQocy53YXJuaW5ncywgXCIuIFwiKS5jb25jYXQocy5jcml0aWNhbCwgXCI8L3A+PHA+XCIpLmNvbmNhdChzLmhhc19hdGxlYXN0X29uZV9jcml0aWNhbF9lcnJvciwgXCI8L3A+PHA+XCIpLmNvbmNhdChzLndlX2hpZ2hseV9yZWNvbW1lbmQsIFwiPC9wPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmljb24gPSBcIndhcm5pbmctZmlsbFwiO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuYWxlcnRTdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAvLyBjYXNlIDQgaXMgZm9yIHZhbGlkYXRpb24gd2l0aG91dCBjcml0aWNhbCBlcnJvcnNcbiAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS50aXRsZSA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLnN0aWNreS50aXRsZV8zO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuZGVzY3JpcHRpb24gPSBcIjxwPjxiPlwiLmNvbmNhdChlcnIuZXJyb3JOdW1iZXIsIFwiICBcIikuY29uY2F0KHMuZXJyb3JzLCBcIjwvYj4gIFwiKS5jb25jYXQocy5hbmQsIFwiIDxiPlwiKS5jb25jYXQoZXJyLndhcm5pbmdOdW1iZXIsIFwiICBcIikuY29uY2F0KHMud2FybmluZ3MsIFwiPC9iPiAgXCIpLmNvbmNhdChzLndlcmVfZm91bmQsIFwiLiAgXCIpLmNvbmNhdChzLnZpZXdfaW5mb3JtYXRpb24sIFwiPC9wPjxwPlwiKS5jb25jYXQocy53ZV9oaWdobHlfcmVjb21tZW5kLCBcIjwvcD5cIik7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5pY29uID0gXCJ3YXJuaW5nLWZpbGxcIjtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmFsZXJ0U3RhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHVibGlzaFN0YXRlO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgZnVuY3Rpb25cbiAgICAgICAgdmFyIHN0ZXBQbHVzT25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKHB1Ymxpc2hTdGVwLnZhbHVlID49IDAgJiYgcHVibGlzaFN0ZXAudmFsdWUgPCA0KSB7XG4gICAgICAgICAgICAgICAgcHVibGlzaFN0ZXAudmFsdWUrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHN0ZXBNaW51c09uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChwdWJsaXNoU3RlcC52YWx1ZSA+IDAgJiYgcHVibGlzaFN0ZXAudmFsdWUgPD0gNCkge1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGVwLnZhbHVlLS07XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIHJlYWN0aXZlIHZhcmlhYmxlIGZvciBlcnJvcnMgbnVtYmVyXG4gICAgICAgIHZhciBlcnIgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGNyaXRpY2FsTnVtYmVyOiAwLFxuICAgICAgICAgICAgZXJyb3JOdW1iZXI6IDAsXG4gICAgICAgICAgICB3YXJuaW5nTnVtYmVyOiAwLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gY2FsbCBhcGkgZm9yIHZhbGlkYXRpb25cbiAgICAgICAgdmFyIHZhbGlkYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGxvYWRlclRleHQudmFsdWUgPSBcIlwiLmNvbmNhdChsYW5ndWFnZS5jb21tb25fbGFuZy52YWxpZGF0aW5nLCBcIiBcIikuY29uY2F0KGxhbmd1YWdlLmNvbW1vbl9sYW5nLmFjdGl2aXR5KTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5wb3N0KFwiL2FjdGl2aXR5L1wiLmNvbmNhdChpZCwgXCIvdmFsaWRhdGVBY3Rpdml0eVwiKSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9IHJlc3BvbnNlLmVycm9ycztcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgndXBkYXRlUHVibGlzaEVycm9ycycsIGVycm9ycyk7XG4gICAgICAgICAgICAgICAgICAgIC8vaWRlbnRpZnkgZXJyb3IgdHlwZXNcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNyaXQgPSByZXNwb25zZS5zdW1tYXJ5LmNyaXRpY2FsO1xuICAgICAgICAgICAgICAgICAgICAoZXJyLmNyaXRpY2FsTnVtYmVyID0gY3JpdCksXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyLmVycm9yTnVtYmVyID0gcmVzcG9uc2Uuc3VtbWFyeS5lcnJvciksXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyLndhcm5pbmdOdW1iZXIgPSByZXNwb25zZS5zdW1tYXJ5Lndhcm5pbmcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3JpdCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGVwLnZhbHVlID0gMztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGVwLnZhbHVlID0gNDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0ZXAudmFsdWUgPSAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gY2FsbCBhcGkgZm9yIHB1Ymxpc2hpbmdcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMi5pbmplY3QpKCdlcnJvckRhdGEnKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNoZWNrIHB1Ymxpc2ggc3RhdHVzXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgY2hlY2tQdWJsaXNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9hY3Rpdml0aWVzL2NoZWNrcy1mb3ItYWN0aXZpdHktcHVibGlzaFwiKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoVmFsdWUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLm1lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEudHlwZSA9IHJlc3BvbnNlLnN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHB1Ymxpc2hGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gXCJcIi5jb25jYXQobGFuZ3VhZ2UuY29tbW9uX2xhbmcucHVibGlzaGluZywgXCIgXCIpLmNvbmNhdChsYW5ndWFnZS5jb21tb25fbGFuZy5hY3Rpdml0eSk7XG4gICAgICAgICAgICByZXNldFB1Ymxpc2hTdGVwKCk7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHQucG9zdChcIi9hY3Rpdml0eS9cIi5jb25jYXQoaWQsIFwiL3B1Ymxpc2hcIikpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVVblB1Ymxpc2hlZCcsIHJlc3BvbnNlLnN1Y2Nlc3MpO1xuICAgICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVTaG93UHVibGlzaGVkJywgIXJlc3BvbnNlLnN1Y2Nlc3MpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvLyBwdWJsaXNoLXJlcHVibGlzaFxuICAgICAgICB2YXIgcHVibGlzaFN0YXR1cyA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgbGlua2VkX3RvX2lhdGk6IGxpbmtlZFRvSWF0aS52YWx1ZSxcbiAgICAgICAgICAgIHN0YXR1czogc3RhdHVzLnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGJ0blRleHQgPSAoMCwgdnVlXzIuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChwdWJsaXNoU3RhdHVzLmxpbmtlZF90b19pYXRpICYmIHB1Ymxpc2hTdGF0dXMuc3RhdHVzID09PSAnZHJhZnQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhbmd1YWdlLmJ1dHRvbl9sYW5nLnJlcHVibGlzaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFwdWJsaXNoU3RhdHVzLmxpbmtlZF90b19pYXRpICYmXG4gICAgICAgICAgICAgICAgcHVibGlzaFN0YXR1cy5zdGF0dXMgPT09ICdkcmFmdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFuZ3VhZ2UuYnV0dG9uX2xhbmcucHVibGlzaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgcHJvcHM6IHByb3BzLCBsaW5rZWRUb0lhdGk6IGxpbmtlZFRvSWF0aSwgc3RhdHVzOiBzdGF0dXMsIGNvcmVDb21wbGV0ZWQ6IGNvcmVDb21wbGV0ZWQsIGFjdGl2aXR5SWQ6IGFjdGl2aXR5SWQsIHN0b3JlOiBzdG9yZSwgaWQ6IGlkLCBwdWJsaXNoVmFsdWU6IHB1Ymxpc2hWYWx1ZSwgcHVibGlzaFRvZ2dsZTogcHVibGlzaFRvZ2dsZSwgcHVibGlzaFN0ZXA6IHB1Ymxpc2hTdGVwLCBsb2FkZXI6IGxvYWRlciwgY29yZUVsZW1lbnRTdGF0dXM6IGNvcmVFbGVtZW50U3RhdHVzLCBsb2FkZXJUZXh0OiBsb2FkZXJUZXh0LCByZXNldFB1Ymxpc2hTdGVwOiByZXNldFB1Ymxpc2hTdGVwLCBwdWJsaXNoU3RhdGVDaGFuZ2U6IHB1Ymxpc2hTdGF0ZUNoYW5nZSwgc3RlcFBsdXNPbmU6IHN0ZXBQbHVzT25lLCBzdGVwTWludXNPbmU6IHN0ZXBNaW51c09uZSwgZXJyOiBlcnIsIHZhbGlkYXRvckZ1bmN0aW9uOiB2YWxpZGF0b3JGdW5jdGlvbiwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIGNoZWNrUHVibGlzaDogY2hlY2tQdWJsaXNoLCBwdWJsaXNoRnVuY3Rpb246IHB1Ymxpc2hGdW5jdGlvbiwgcHVibGlzaFN0YXR1czogcHVibGlzaFN0YXR1cywgYnRuVGV4dDogYnRuVGV4dCwgQnRuQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCwgTW9kYWw6IFBvcHVwTW9kYWxfdnVlXzEuZGVmYXVsdCwgTG9hZGVyOiBQcm9ncmVzc0xvYWRlcl92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vL2NvbXBvbmVudFxudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBQb3B1cE1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCIpKTtcbnZhciBQcm9ncmVzc0xvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWVcIikpO1xuLy8gVnVleCBTdG9yZVxudmFyIHNob3dfMSA9IHJlcXVpcmUoXCJTdG9yZS9hY3Rpdml0aWVzL3Nob3dcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVW5QdWJsaXNoQnV0dG9uJyxcbiAgICBwcm9wczoge1xuICAgICAgICB0eXBlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ3ByaW1hcnknIH0sXG4gICAgICAgIGFjdGl2aXR5SWQ6IHsgdHlwZTogTnVtYmVyLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGFjdGl2aXR5SWQgPSAoMCwgdnVlXzIudG9SZWZzKShwcm9wcykuYWN0aXZpdHlJZDtcbiAgICAgICAgLy8gdG9nZ2xlIHN0YXRlIGZvciBtb2RhbCBwb3B1cFxuICAgICAgICB2YXIgX2IgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgdW5wdWJsaXNoVmFsdWUgPSBfYlswXSwgdW5wdWJsaXNoVG9nZ2xlID0gX2JbMV07XG4gICAgICAgIC8vR2xvYmFsIFN0YXRlXG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBzaG93XzEuZGV0YWlsU3RvcmUpKCk7XG4gICAgICAgIC8vYWN0aXZpdHkgaWRcbiAgICAgICAgdmFyIGlkID0gYWN0aXZpdHlJZC52YWx1ZTtcbiAgICAgICAgLy8gZGlzcGxheS9oaWRlIHZhbGlkYXRvciBsb2FkZXJcbiAgICAgICAgdmFyIGxvYWRlciA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgdGV4dDogbGFuZ3VhZ2UuY29tbW9uX2xhbmcucGxlYXNlX3dhaXQsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjYWxsIGFwaSBmb3IgdW5wdWJsaXNoaW5nXG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIuaW5qZWN0KSgndG9hc3RNZXNzYWdlJyk7XG4gICAgICAgIHZhciB1blB1Ymxpc2hGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXIudGV4dCA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLnVucHVibGlzaGluZztcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5wb3N0KFwiL2FjdGl2aXR5L1wiLmNvbmNhdChpZCwgXCIvdW5wdWJsaXNoXCIpKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UubWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdG9hc3RNZXNzYWdlLnR5cGUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIHVucHVibGlzaFRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVVuUHVibGlzaGVkJywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVNob3dQdWJsaXNoZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVQdWJsaXNoRXJyb3JzJywgW10pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgcHJvcHM6IHByb3BzLCBhY3Rpdml0eUlkOiBhY3Rpdml0eUlkLCB1bnB1Ymxpc2hWYWx1ZTogdW5wdWJsaXNoVmFsdWUsIHVucHVibGlzaFRvZ2dsZTogdW5wdWJsaXNoVG9nZ2xlLCBzdG9yZTogc3RvcmUsIGlkOiBpZCwgbG9hZGVyOiBsb2FkZXIsIHRvYXN0TWVzc2FnZTogdG9hc3RNZXNzYWdlLCB1blB1Ymxpc2hGdW5jdGlvbjogdW5QdWJsaXNoRnVuY3Rpb24sIEJ0bkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsIE1vZGFsOiBQb3B1cE1vZGFsX3Z1ZV8xLmRlZmF1bHQsIExvYWRlcjogUHJvZ3Jlc3NMb2FkZXJfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vL2NvbXBvbmVudFxudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBQb3B1cE1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdEZWxldGVBY3Rpb24nLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGl0ZW1JZDogeyB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBpdGVtVHlwZTogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICAvLyBwcm9wc1xuICAgICAgICAvLyB0b2dnbGUgc3RhdGUgZm9yIG1vZGFsIHBvcHVwXG4gICAgICAgIHZhciBfYiA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBkZWxldGVWYWx1ZSA9IF9iWzBdLCBkZWxldGVUb2dnbGUgPSBfYlsxXTtcbiAgICAgICAgdmFyIGRlbGV0ZUZ1bmN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKHByb3BzLml0ZW1UeXBlID09PSAncmVzdWx0JyB8fCBwcm9wcy5pdGVtVHlwZSA9PT0gJ3RyYW5zYWN0aW9uJykge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5kZWxldGUoXCJcIi5jb25jYXQocHJvcHMuaXRlbVR5cGUsIFwiL1wiKS5jb25jYXQocHJvcHMuaXRlbUlkKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb3BzLml0ZW1UeXBlID09PSAnaW5kaWNhdG9yJykge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5kZWxldGUoXCJcIi5jb25jYXQocHJvcHMuaXRlbVR5cGUsIFwiL1wiKS5jb25jYXQocHJvcHMuaXRlbUlkKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb3BzLml0ZW1UeXBlID09PSAncGVyaW9kJykge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5kZWxldGUoXCJcIi5jb25jYXQocHJvcHMuaXRlbVR5cGUsIFwiL1wiKS5jb25jYXQocHJvcHMuaXRlbUlkKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHByb3BzOiBwcm9wcywgZGVsZXRlVmFsdWU6IGRlbGV0ZVZhbHVlLCBkZWxldGVUb2dnbGU6IGRlbGV0ZVRvZ2dsZSwgZGVsZXRlRnVuY3Rpb246IGRlbGV0ZUZ1bmN0aW9uLCBCdG5Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0LCBNb2RhbDogUG9wdXBNb2RhbF92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG4vL3Byb3BzXG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnRXJyb3JMaXN0cycsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZXJyb3JzOiB7IHR5cGU6IE9iamVjdCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgdHlwZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6IFwiZXJyb3JcIiB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgLy9wcm9wcyBkZXN0cnVjdHVyaW5nXG4gICAgICAgIHZhciBfYiA9ICgwLCB2dWVfMi50b1JlZnMpKHByb3BzKSwgdHlwZSA9IF9iLnR5cGUsIGVycm9ycyA9IF9iLmVycm9ycztcbiAgICAgICAgdmFyIGVycm9yVHlwZSA9ICgwLCB2dWVfMi5yZWYpKFwiXCIpO1xuICAgICAgICAvLyBjb2xvcnMgYmFzZWQgb24gdHlwZSBwcm9wcyB2YWx1ZVxuICAgICAgICB2YXIgYmdDb2xvciA9IFwiXCIsIGljb25Db2xvciA9IFwiXCI7XG4gICAgICAgIHN3aXRjaCAodHlwZS52YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSBcImNyaXRpY2FsXCI6XG4gICAgICAgICAgICAgICAgYmdDb2xvciA9IFwiYmctbGF2ZW5kZXItNjAgYm9yZGVyLWxhdmVuZGVyLTUwXCI7XG4gICAgICAgICAgICAgICAgaWNvbkNvbG9yID0gXCJ0ZXh0LWxhdmVuZGVyLTUwXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwid2FybmluZ3NcIjpcbiAgICAgICAgICAgICAgICBiZ0NvbG9yID0gXCJiZy1lZ2dzaGVsbCBib3JkZXItY2FtZWwtNTBcIjtcbiAgICAgICAgICAgICAgICBpY29uQ29sb3IgPSBcInRleHQtY2FtZWwtNTBcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYmdDb2xvciA9IFwiYmctcm9zZSBib3JkZXItY3JpbXNvbi00MFwiO1xuICAgICAgICAgICAgICAgIGljb25Db2xvciA9IFwidGV4dC1jcmltc29uLTQwXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvZ2dsZSA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGFjY29yZGlvblRvZ2dsZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICB2YXIgY3VycmVudFRhcmdldCA9IGUuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgIHZhciB0YXJnZXQgPSBjdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5lcnJvcnNfX2xpc3RcIik7XG4gICAgICAgICAgICB2YXIgZWxIZWlnaHQgPSAoX2EgPSB0YXJnZXQgPT09IG51bGwgfHwgdGFyZ2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXQucXVlcnlTZWxlY3RvcihcInVsXCIpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgaWYgKHRvZ2dsZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9IFwiaGVpZ2h0OiBcIi5jb25jYXQoZWxIZWlnaHQsIFwicHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJoZWlnaHQ6IFwiLmNvbmNhdChlbEhlaWdodCwgXCJweDtcIik7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSBcImhlaWdodDogYXV0bztcIjtcbiAgICAgICAgICAgICAgICAgICAgfSwgNjAwKTtcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciB1cGRhdGVFcnJvckNvdW50TWVzc2FnZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGVycm9yVHlwZS52YWx1ZSA9XG4gICAgICAgICAgICAgICAgZXJyb3JzLnZhbHVlLmxlbmd0aCArIFwiIFwiICsgdHlwZS52YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHR5cGUudmFsdWUuc2xpY2UoMSk7XG4gICAgICAgIH07XG4gICAgICAgIHVwZGF0ZUVycm9yQ291bnRNZXNzYWdlKCk7XG4gICAgICAgICgwLCB2dWVfMi53YXRjaCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gZXJyb3JzLnZhbHVlOyB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB1cGRhdGVFcnJvckNvdW50TWVzc2FnZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgcHJvcHM6IHByb3BzLCB0eXBlOiB0eXBlLCBlcnJvcnM6IGVycm9ycywgZXJyb3JUeXBlOiBlcnJvclR5cGUsIGJnQ29sb3I6IGJnQ29sb3IsIGljb25Db2xvcjogaWNvbkNvbG9yLCB0b2dnbGU6IHRvZ2dsZSwgYWNjb3JkaW9uVG9nZ2xlOiBhY2NvcmRpb25Ub2dnbGUsIHVwZGF0ZUVycm9yQ291bnRNZXNzYWdlOiB1cGRhdGVFcnJvckNvdW50TWVzc2FnZSB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG4vLyBjb21wb25lbnRzXG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSGF2ZU5vdEFkZGVkWWV0JyxcbiAgICBjb21wb25lbnRzOiB7IEJ0bjogTGlua192dWVfMS5kZWZhdWx0IH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbGluazoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYnRuVGV4dDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbi8vY29tcG9uZW50XG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIFBvcHVwTW9kYWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvUG9wdXBNb2RhbC52dWVcIikpO1xudmFyIFByb2dyZXNzTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1Byb2dyZXNzTG9hZGVyLnZ1ZVwiKSk7XG4vLyBwdWJsaXNoLXJlcHVibGlzaFxuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24nLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIC8vIHRvZ2dsZSBzdGF0ZSBmb3IgbW9kYWwgcG9wdXBcbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIHB1Ymxpc2hWYWx1ZSA9IF9iWzBdLCBwdWJsaXNoVG9nZ2xlID0gX2JbMV07XG4gICAgICAgIHZhciBfYyA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCB1bnB1Ymxpc2hWYWx1ZSA9IF9jWzBdLCB1bnB1Ymxpc2hUb2dnbGUgPSBfY1sxXTtcbiAgICAgICAgLy8gZGlzcGxheS9oaWRlIHZhbGlkYXRvciBsb2FkZXJcbiAgICAgICAgdmFyIGxvYWRlciA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgLy8gc3RhdGUgZm9yIGZpcnN0IHN0ZXBcbiAgICAgICAgLy8gZGV0ZXJtaW5lIGlmIGNvcmUgZWxlbWVudCBjb21wbGV0ZWQgb3Igbm90XG4gICAgICAgIC8vIHRydWUgZm9yIGNvbXBsZXRlZCBhbmQgZmFsc2UgZm9yIG5vdCBjb21wbGV0ZWRcbiAgICAgICAgdmFyIG1hbmRhdG9yeUVsZW1lbnRTdGF0dXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcIm1hbmRhdG9yeUNvbXBsZXRlZFwiKTtcbiAgICAgICAgLy8gRHluYW1pYyB0ZXh0IGZvciBsb2FkZXJcbiAgICAgICAgdmFyIGxvYWRlclRleHQgPSAoMCwgdnVlXzIucmVmKShcIlBsZWFzZSBXYWl0XCIpO1xuICAgICAgICAvLyBjb21wdXRlZCBmdW5jdGlvbiB0byBjaGFuZ2UgY29udGVudCBvZiBtb2RhbFxuICAgICAgICB2YXIgcHVibGlzaFN0YXRlQ2hhbmdlID0gKDAsIHZ1ZV8yLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgcHVibGlzaFN0YXRlID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiXCIsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXG4gICAgICAgICAgICAgICAgaWNvbjogXCJcIixcbiAgICAgICAgICAgICAgICBhbGVydFN0YXRlOiBtYW5kYXRvcnlFbGVtZW50U3RhdHVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBkaWZmZXJlbnQgY29udGVudCBmb3Igc3RlcCAxIGJhc2VkIG9uIGNvcmVFbGVtZW50IHN0YXR1c1xuICAgICAgICAgICAgaWYgKG1hbmRhdG9yeUVsZW1lbnRTdGF0dXMpIHtcbiAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUudGl0bGUgPSBcIkNvcmUgRWxlbWVudHMgQ29tcGxldGVcIjtcbiAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuZGVzY3JpcHRpb24gPVxuICAgICAgICAgICAgICAgICAgICBcIkNvbmdyYXR1bGF0aW9ucyEgQWxsIHRoZSBjb3JlIGVsZW1lbnRzIGFyZSBjb21wbGV0ZS4gQ29udGludWUgdG8gcHVibGlzaCB0aGlzIG9yZ2FuaXphdGlvbi5cIjtcbiAgICAgICAgICAgICAgICBwdWJsaXNoU3RhdGUuaWNvbiA9IFwidGlja1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLnRpdGxlID0gXCJDb3JlIEVsZW1lbnRzIG5vdCBjb21wbGV0ZVwiO1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0ZS5kZXNjcmlwdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgIFwiPHA+VGhlcmUgaXMgbWlzc2luZyBkYXRhIGluIHNvbWUgb2YgdGhlIGNvcmUgZWxlbWVudHMuIFdlIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgY29tcGxldGUgdGhlc2UgZGF0YSBmaWVsZHMgdG8gaGVscCBlbnN1cmUgeW91ciBkYXRhIGlzIHVzZWZ1bC48L3A+XCI7XG4gICAgICAgICAgICAgICAgcHVibGlzaFN0YXRlLmljb24gPSBcIndhcm5pbmctZmlsbFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHB1Ymxpc2hTdGF0ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNhbGwgYXBpIGZvciBwdWJsaXNoaW5nXG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzIuaW5qZWN0KShcInRvYXN0RGF0YVwiKTtcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMi5pbmplY3QpKFwiZXJyb3JEYXRhXCIpO1xuICAgICAgICAvKipcbiAgICAgICAgICogY2hlY2sgcHVibGlzaCBzdGF0dXNcbiAgICAgICAgICovXG4gICAgICAgIHZhciBjaGVja1B1Ymxpc2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHQuZ2V0KFwiL29yZ2FuaXNhdGlvbi9jaGVja3MtZm9yLW9yZ2FuaXNhdGlvbi1wdWJsaXNoXCIpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hWYWx1ZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEubWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS50eXBlID0gcmVzcG9uc2Uuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgcHVibGlzaEZ1bmN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGxvYWRlclRleHQudmFsdWUgPSBcIlB1Ymxpc2hpbmdcIjtcbiAgICAgICAgICAgIHB1Ymxpc2hWYWx1ZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LnBvc3QoXCIvb3JnYW5pc2F0aW9uL3B1Ymxpc2hcIikudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS50eXBlID0gcmVzcG9uc2Uuc3VjY2VzcztcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hTdGF0dXMuaXNfcHVibGlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXR1cy5zdGF0dXMgPSBcInB1Ymxpc2hlZFwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgdW5QdWJsaXNoRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2FkZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgbG9hZGVyVGV4dC52YWx1ZSA9IFwiVW5wdWJsaXNoaW5nXCI7XG4gICAgICAgICAgICB1bnB1Ymxpc2hWYWx1ZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LnBvc3QoXCIvb3JnYW5pc2F0aW9uL3VucHVibGlzaFwiKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaFN0YXR1cy5pc19wdWJsaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHB1Ymxpc2hTdGF0dXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcInB1Ymxpc2hTdGF0dXNcIik7XG4gICAgICAgIHZhciBidG5UZXh0ID0gKDAsIHZ1ZV8yLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAocHVibGlzaFN0YXR1cy5pc19wdWJsaXNoZWQgJiYgcHVibGlzaFN0YXR1cy5zdGF0dXMgPT09IFwiZHJhZnRcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIlJlcHVibGlzaFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiUHVibGlzaFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCBwdWJsaXNoVmFsdWU6IHB1Ymxpc2hWYWx1ZSwgcHVibGlzaFRvZ2dsZTogcHVibGlzaFRvZ2dsZSwgdW5wdWJsaXNoVmFsdWU6IHVucHVibGlzaFZhbHVlLCB1bnB1Ymxpc2hUb2dnbGU6IHVucHVibGlzaFRvZ2dsZSwgbG9hZGVyOiBsb2FkZXIsIG1hbmRhdG9yeUVsZW1lbnRTdGF0dXM6IG1hbmRhdG9yeUVsZW1lbnRTdGF0dXMsIGxvYWRlclRleHQ6IGxvYWRlclRleHQsIHB1Ymxpc2hTdGF0ZUNoYW5nZTogcHVibGlzaFN0YXRlQ2hhbmdlLCB0b2FzdERhdGE6IHRvYXN0RGF0YSwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIGNoZWNrUHVibGlzaDogY2hlY2tQdWJsaXNoLCBwdWJsaXNoRnVuY3Rpb246IHB1Ymxpc2hGdW5jdGlvbiwgdW5QdWJsaXNoRnVuY3Rpb246IHVuUHVibGlzaEZ1bmN0aW9uLCBwdWJsaXNoU3RhdHVzOiBwdWJsaXNoU3RhdHVzLCBidG5UZXh0OiBidG5UZXh0LCBCdG5Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0LCBNb2RhbDogUG9wdXBNb2RhbF92dWVfMS5kZWZhdWx0LCBMb2FkZXI6IFByb2dyZXNzTG9hZGVyX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuLy8gY29tcG9uZW50c1xudmFyIEJyZWFkQ3J1bWJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnJlYWRDcnVtYi52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdQYWdlVGl0bGUnLFxuICAgIGNvbXBvbmVudHM6IHsgQnJlYWRjcnVtYjogQnJlYWRDcnVtYl92dWVfMS5kZWZhdWx0IH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYnJlYWRjcnVtYkRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJhY2tMaW5rOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1Byb2dyZXNzTG9hZGVyJyxcbiAgICBwcm9wczoge1xuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2hhbmdlVGV4dDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICAoMCwgdnVlXzIub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJvdmVyZmxvdy15LWhpZGRlblwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMi5vblVubW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwib3ZlcmZsb3cteS1oaWRkZW5cIik7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0ge307XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbi8vIGNvbXBvbmVudHNcbnZhciBFcnJvckxpc3RzX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL0Vycm9yTGlzdHMudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdTdGlja3lFcnJvcnMnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGVycm9yRGF0YTogeyB0eXBlOiBBcnJheSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIC8vIHRvZ2dsZSBpc3N1ZXNcbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIGVycm9yVmFsdWUgPSBfYlswXSwgZXJyb3JUb2dnbGUgPSBfYlsxXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGxpc3Qgb2YgZXJyb3JzXG4gICAgICAgICAqKi9cbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMi50b1JlZnMpKHByb3BzKS5lcnJvckRhdGE7XG4gICAgICAgIHZhciB0ZW1wRGF0YSA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgICAgIGNyaXRpY2FsOiBbXSxcbiAgICAgICAgICAgIHdhcm5pbmdzOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB1cGRhdGVUZW1wTWVzc2FnZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBlcnJvckRhdGFQcm9wcyA9IGVycm9yRGF0YS52YWx1ZTtcbiAgICAgICAgICAgIGZvciAodmFyIGRhdGEgaW4gdGVtcERhdGEpIHtcbiAgICAgICAgICAgICAgICB0ZW1wRGF0YVtkYXRhXSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBlcnJvckRhdGFQcm9wc18xID0gZXJyb3JEYXRhUHJvcHM7IF9pIDwgZXJyb3JEYXRhUHJvcHNfMS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGVycm9yRGF0YVByb3BzXzFbX2ldO1xuICAgICAgICAgICAgICAgIHZhciBzZXZlcml0eSA9IGRhdGEuc2V2ZXJpdHk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChzZXZlcml0eSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiY3JpdGljYWxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhLmNyaXRpY2FsLnB1c2goZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZXJyb3JcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhLmVycm9ycy5wdXNoKGRhdGEubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIndhcm5pbmdcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhLndhcm5pbmdzLnB1c2goZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdXBkYXRlVGVtcE1lc3NhZ2UoKTtcbiAgICAgICAgKDAsIHZ1ZV8yLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBlcnJvckRhdGEudmFsdWU7IH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHVwZGF0ZVRlbXBNZXNzYWdlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHByb3BzOiBwcm9wcywgZXJyb3JWYWx1ZTogZXJyb3JWYWx1ZSwgZXJyb3JUb2dnbGU6IGVycm9yVG9nZ2xlLCBlcnJvckRhdGE6IGVycm9yRGF0YSwgdGVtcERhdGE6IHRlbXBEYXRhLCB1cGRhdGVUZW1wTWVzc2FnZTogdXBkYXRlVGVtcE1lc3NhZ2UsIEVycm9yTGlzdHM6IEVycm9yTGlzdHNfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ0VsZW1lbnRTdGF0dXMnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHsgdHlwZTogQm9vbGVhbiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8yLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBjb2xvciA9IGRhdGEudmFsdWUgPyAndGV4dC1zcHJpbmctNTAnIDogJ3RleHQtY3JpbXNvbi01MCcsIHRleHQgPSBkYXRhLnZhbHVlID8gbGFuZ3VhZ2UuY29tbW9uX2xhbmcuY29tcGxldGVkIDogbGFuZ3VhZ2UuY29tbW9uX2xhbmcubm90X2NvbXBsZXRlZDtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCBwcm9wczogcHJvcHMsIGRhdGE6IGRhdGEsIGNvbG9yOiBjb2xvciwgdGV4dDogdGV4dCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUHJldmlvdXNseVB1Ymxpc2hlZCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdGV4dDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6IHdpbmRvd1tcImdsb2JhbExhbmdcIl0uY29tbW9uX2xhbmcucHJldmlvdXNseV9wdWJsaXNoZWRfb25faWF0aSB9LFxuICAgICAgICBpY29uOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ2FwcHJvdmVkLWNsb3VkJyB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0ge307XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBtdWx0aXNlbGVjdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAdnVlZm9ybS9tdWx0aXNlbGVjdFwiKSk7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnQWN0aXZpdHlEZWZhdWx0VmFsdWUnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGN1cnJlbmNpZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFuZ3VhZ2VzOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SWQ6IHsgdHlwZTogTnVtYmVyLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBidWRnZXROb3RQcm92aWRlZDoge1xuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBodW1hbml0YXJpYW46IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1snZ2xvYmFsTGFuZyddO1xuICAgICAgICAvKipcbiAgICAgICAgICogUHJvcHNcbiAgICAgICAgICovXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWFjdGl2ZSB2YXJpYWJsZXNcbiAgICAgICAgICovXG4gICAgICAgIHZhciBkZWZhdWx0VmFsdWVzID0gKDAsIHZ1ZV8yLnJlZikoe1xuICAgICAgICAgICAgYnVkZ2V0X25vdF9wcm92aWRlZDogJycsXG4gICAgICAgICAgICBkZWZhdWx0X2N1cnJlbmN5OiAnJyxcbiAgICAgICAgICAgIGRlZmF1bHRfbGFuZ3VhZ2U6ICcnLFxuICAgICAgICAgICAgaGllcmFyY2h5OiAnJyxcbiAgICAgICAgICAgIGh1bWFuaXRhcmlhbjogJycsXG4gICAgICAgIH0pLCBkZWZhdWx0RXJyb3JzID0gKDAsIHZ1ZV8yLnJlZikoe1xuICAgICAgICAgICAgYnVkZ2V0X25vdF9wcm92aWRlZDogW10sXG4gICAgICAgICAgICBkZWZhdWx0X2N1cnJlbmN5OiBbXSxcbiAgICAgICAgICAgIGRlZmF1bHRfbGFuZ3VhZ2U6IFtdLFxuICAgICAgICAgICAgaGllcmFyY2h5OiBbXSxcbiAgICAgICAgICAgIGh1bWFuaXRhcmlhbjogW10sXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZXJyb3JSZXNldCA9IGRlZmF1bHRFcnJvcnMudmFsdWU7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbiBNb3VudGVkXG4gICAgICAgICAqL1xuICAgICAgICAoMCwgdnVlXzIub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSwgZGVmYXVsdERhdGE7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6IHJldHVybiBbNCAvKnlpZWxkKi8sIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvYWN0aXZpdHkvXCIuY29uY2F0KHByb3BzLmFjdGl2aXR5SWQsIFwiL2RlZmF1bHRfdmFsdWVzL2RhdGFcIikpXTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IChfYS5zZW50KCkpLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0RGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZXMudmFsdWUgPSBkZWZhdWx0RGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogUmVmXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgbG9hZGVyVmlzaWJpbGl0eSA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKSwgdG9hc3RWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpLCB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIucmVmKSgnJyksIHRvYXN0VHlwZSA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN1Ym1pdCBmb3JtXG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBzdWJtaXRGb3JtKCkge1xuICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBkZWZhdWx0RXJyb3JzLnZhbHVlID0gZXJyb3JSZXNldDtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wdXQoXCIvYWN0aXZpdHkvXCIuY29uY2F0KHByb3BzLmFjdGl2aXR5SWQsIFwiL2RlZmF1bHRfdmFsdWVzXCIpLCBkZWZhdWx0VmFsdWVzLnZhbHVlKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuICh0b2FzdFZpc2liaWxpdHkudmFsdWUgPSBmYWxzZSk7IH0sIDUwMDApO1xuICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS52YWx1ZSA9IHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRvYXN0VHlwZS52YWx1ZSA9IHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgZGVmYXVsdEVycm9ycy52YWx1ZSA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBkZWZhdWx0RXJyb3JzLnZhbHVlKSwgKF9hID0gZXJyb3IucmVzcG9uc2UuZGF0YSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVycm9ycyk7XG4gICAgICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UudmFsdWUgPSAoX2IgPSBlcnJvci5yZXNwb25zZS5kYXRhKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0b2FzdFR5cGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHByb3BzOiBwcm9wcywgZGVmYXVsdFZhbHVlczogZGVmYXVsdFZhbHVlcywgZGVmYXVsdEVycm9yczogZGVmYXVsdEVycm9ycywgZXJyb3JSZXNldDogZXJyb3JSZXNldCwgbG9hZGVyVmlzaWJpbGl0eTogbG9hZGVyVmlzaWJpbGl0eSwgdG9hc3RWaXNpYmlsaXR5OiB0b2FzdFZpc2liaWxpdHksIHRvYXN0TWVzc2FnZTogdG9hc3RNZXNzYWdlLCB0b2FzdFR5cGU6IHRvYXN0VHlwZSwgc3VibWl0Rm9ybTogc3VibWl0Rm9ybSwgTXVsdGlzZWxlY3Q6IG11bHRpc2VsZWN0XzEuZGVmYXVsdCwgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCwgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xuLy8gY29tcG9uZW50c1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiLi9lbGVtZW50cy9JbmRleFwiKTtcbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG52YXIgUmFkaWFsUHJvZ3Jlc3NCYXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvUmFkaWFsUHJvZ3Jlc3NCYXIudnVlXCIpKTtcbnZhciBQdWJsaXNoQnV0dG9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL2J1dHRvbnMvUHVibGlzaEJ1dHRvbi52dWVcIikpO1xudmFyIFVuUHVibGlzaEJ1dHRvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWVcIikpO1xudmFyIERlbGV0ZUJ1dHRvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0RlbGV0ZUJ1dHRvbi52dWVcIikpO1xudmFyIFN0aWNreUVycm9yc192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9TdGlja3lFcnJvcnMudnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG52YXIgRXJyb3JQb3BVcF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9FcnJvclBvcFVwLnZ1ZVwiKSk7XG4vLyBBY3Rpdml0eSBDb21wb25lbnRzXG52YXIgQWN0aXZpdGllc0VsZW1lbnRzX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJBY3Rpdml0eS9wYXJ0aWFscy9BY3Rpdml0aWVzRWxlbWVudHMudnVlXCIpKTtcbnZhciBBY3Rpdml0eUVsZW1lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkFjdGl2aXR5L3BhcnRpYWxzL0FjdGl2aXR5RWxlbWVudC52dWVcIikpO1xudmFyIFByZXZpb3VzbHlQdWJsaXNoZWRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc3RhdHVzL1ByZXZpb3VzbHlQdWJsaXNoZWQudnVlXCIpKTtcbi8vIFZ1ZXggU3RvcmVcbnZhciBzaG93XzEgPSByZXF1aXJlKFwiU3RvcmUvYWN0aXZpdGllcy9zaG93XCIpO1xudmFyIGluZGV4XzEgPSByZXF1aXJlKFwiU3RvcmUvYWN0aXZpdGllcy9pbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFByb2dyZXNzQmFyOiBSYWRpYWxQcm9ncmVzc0Jhcl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBFbGVtZW50czogQWN0aXZpdGllc0VsZW1lbnRzX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEFjdGl2aXR5RWxlbWVudDogQWN0aXZpdHlFbGVtZW50X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFJlc3VsdDogSW5kZXhfMS5SZXN1bHQsXG4gICAgICAgIFB1Ymxpc2g6IFB1Ymxpc2hCdXR0b25fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgRXJyb3JzOiBTdGlja3lFcnJvcnNfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgVW5QdWJsaXNoOiBVblB1Ymxpc2hCdXR0b25fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgRGVsZXRlQnV0dG9uOiBEZWxldGVCdXR0b25fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUHJldmlvdXNseVB1Ymxpc2hlZDogUHJldmlvdXNseVB1Ymxpc2hlZF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBFcnJvclBvcFVwOiBFcnJvclBvcFVwX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZ3JvdXBzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBwcm9ncmVzczoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvYXN0OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgICB0eXBlOiBBcnJheSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0cmFuc2FjdGlvbnM6IHtcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvcmVDb21wbGV0ZWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgaWF0aVZhbGlkYXRvclJlc3BvbnNlOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIF9hID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLCB0eXBlcyA9IF9hLnR5cGVzLCBjb3JlQ29tcGxldGVkID0gX2EuY29yZUNvbXBsZXRlZDtcbiAgICAgICAgdmFyIHN0b3JlID0gKDAsIHNob3dfMS5kZXRhaWxTdG9yZSkoKTtcbiAgICAgICAgdmFyIGluZGV4U3RvcmUgPSAoMCwgaW5kZXhfMS51c2VTdG9yZSkoKTtcbiAgICAgICAgdmFyIHNob3dTaWRlYmFyID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgcG9zaXRpb25ZID0gKDAsIHZ1ZV8xLnJlZikoMCk7XG4gICAgICAgIHZhciBzY3JlZW5XaWR0aCA9ICgwLCB2dWVfMS5yZWYpKDApO1xuICAgICAgICB2YXIgdG9hc3REYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBlcnJvckRhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgc2hvd1NpZGViYXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb3IgbW9kYWwgcG9wdXAgY29tcGxldGVkXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgX2IgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgZGVsZXRlVmFsdWUgPSBfYlswXSwgZGVsZXRlVG9nZ2xlID0gX2JbMV07XG4gICAgICAgIHZhciBfYyA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBkb3dubG9hZFZhbHVlID0gX2NbMF0sIGRvd25sb2FkVG9nZ2xlID0gX2NbMV07XG4gICAgICAgIHZhciB0b2dnbGVTaWRlYmFyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2hvd1NpZGViYXIudmFsdWUgPSAhc2hvd1NpZGViYXIudmFsdWU7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBoYW5kbGVTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwb3NpdGlvblkudmFsdWUgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGlzdG9wVmlzaWJsZSA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uWS52YWx1ZSA9PT0gMDtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB3aWR0aCA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uVW5tb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2NyZWVuV2lkdGgudmFsdWUgPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNhbGNXaWR0aCk7XG4gICAgICAgICAgICBpZiAocHJvcHMudG9hc3QubWVzc2FnZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcHJvcHMudG9hc3QubWVzc2FnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBjYWxjV2lkdGggPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHNjcmVlbldpZHRoLnZhbHVlID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XG4gICAgICAgICAgICBpZiAoc2NyZWVuV2lkdGgudmFsdWUgPiAxMDI0KSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2hvd1NpZGViYXIudmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBzaG93U2lkZWJhci52YWx1ZTsgfSwgZnVuY3Rpb24gKHNpZGViYXIpIHtcbiAgICAgICAgICAgIGlmIChzaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiB0b2FzdERhdGEudmlzaWJpbGl0eTsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZ25vcmVUb2FzdFVwZGF0ZSgpO1xuICAgICAgICAgICAgfSwgMTAwMDApO1xuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdyb3VwaW5nIGFsbCB0aGUgZGF0YSdzIGZvciBzY3JvbGwgZnVuY3Rpb25cbiAgICAgICAgICpcbiAgICAgICAgICogdGhpcyBkYXRhIGlzIGNyZWF0ZWQgdXNpbmcgcHJvcHMuZWxlbWVudF9ncm91cCBhbmQgcHJvcHMuYWN0aXZpdHlcbiAgICAgICAgICovXG4gICAgICAgIHZhciBfZCA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgZ3JvdXBzID0gX2QuZ3JvdXBzLCBhY3Rpdml0eSA9IF9kLmFjdGl2aXR5LCBlbGVtZW50cyA9IF9kLmVsZW1lbnRzLCBzdGF0dXMgPSBfZC5zdGF0dXMsIHRyYW5zYWN0aW9ucyA9IF9kLnRyYW5zYWN0aW9ucywgZ3JvdXBlZERhdGEgPSBncm91cHMudmFsdWUsIGFjdGl2aXR5UHJvcHMgPSBhY3Rpdml0eS52YWx1ZSwgYWN0aXZpdGllcyA9IGdyb3Vwcy52YWx1ZSwgZWxlbWVudFByb3BzID0gZWxlbWVudHMudmFsdWUsIHN0YXR1c1Byb3BzID0gc3RhdHVzLnZhbHVlLCB0cmFuc2FjdGlvblByb3BzID0gdHJhbnNhY3Rpb25zLnZhbHVlO1xuICAgICAgICB2YXIgcmVzdWx0cyA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5yZXN1bHRzO1xuICAgICAgICBhY3Rpdml0eVByb3BzLnJlc3VsdCA9IHJlc3VsdHMudmFsdWU7XG4gICAgICAgIGFjdGl2aXR5UHJvcHMudHJhbnNhY3Rpb25zID0gdHJhbnNhY3Rpb25Qcm9wcztcbiAgICAgICAgLy8gZ2VuZXJhdGluZyBhdmFpbGFibGUgZWxlbWVudHNcbiAgICAgICAgT2JqZWN0LmtleXMoYWN0aXZpdGllcykubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIHZhciBmbGFnID0gZmFsc2U7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhhY3Rpdml0aWVzW2tleV1bJ2VsZW1lbnRzJ10pLm1hcChmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFjdGl2aXR5UHJvcHNba10gPT09ICdudW1iZXInIHx8XG4gICAgICAgICAgICAgICAgICAgICh0eXBlb2YgYWN0aXZpdHlQcm9wc1trXSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5UHJvcHNba10gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGFjdGl2aXR5UHJvcHNba10pLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZpdGllc1trZXldWydlbGVtZW50cyddW2tdWydjb250ZW50J10gPSBhY3Rpdml0eVByb3BzW2tdO1xuICAgICAgICAgICAgICAgICAgICBhY3Rpdml0aWVzW2tleV1bJ2VsZW1lbnRzJ11ba11bJ2hvdmVyX3RleHQnXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAoX2EgPSBlbGVtZW50UHJvcHNba11bJ2hvdmVyX3RleHQnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGZsYWcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGFjdGl2aXRpZXNba2V5XVtrXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmbGFnID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBhY3Rpdml0aWVzW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBnZW5lcmF0aW5nIGF2YWlsYWJsZSBjYXRlZ29yaWVzIG9mIGVsZW1lbnRzXG4gICAgICAgIE9iamVjdC5rZXlzKGdyb3VwZWREYXRhKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhY3Rpdml0aWVzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBlZERhdGFba2V5XVsnc3RhdHVzJ10gPSAnZW5hYmxlZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBncm91cGVkRGF0YVtrZXldWydzdGF0dXMnXSA9ICdkaXNhYmxlZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogR3JvdXBpbmcgYWxsIGVsZW1lbnRzIGFuZCB0aGVpcnMgY29tcGxldGVkIHN0YXR1c1xuICAgICAgICAgKlxuICAgICAgICAgKiBjb21iaW5pbmcgcHJvcHMuZWxlbWVudHMgYW5kIHByb3BzLnN0YXR1c1xuICAgICAgICAgKlxuICAgICAgICAgKiBAcmV0dXJucyBvYmplY3RcbiAgICAgICAgICovXG4gICAgICAgIE9iamVjdC5rZXlzKGVsZW1lbnRQcm9wcykubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBlbGVtZW50UHJvcHNba2V5XVsnY29tcGxldGVkJ10gPSAoX2EgPSBzdGF0dXNQcm9wc1trZXldKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZTtcbiAgICAgICAgICAgIGVsZW1lbnRQcm9wc1trZXldWydub3RfY29tcGxldGVkJ10gPSAhKChfYiA9IHN0YXR1c1Byb3BzW2tleV0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGZhbHNlKTtcbiAgICAgICAgICAgIGVsZW1lbnRQcm9wc1trZXldWydoYXNfZGF0YSddID0gMDtcbiAgICAgICAgICAgIGlmIChrZXkgaW4gYWN0aXZpdHlQcm9wcykge1xuICAgICAgICAgICAgICAgIGlmICgodHlwZW9mIGFjdGl2aXR5UHJvcHNba2V5XSA9PT0gJ29iamVjdCcgfHxcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGFjdGl2aXR5UHJvcHNba2V5XSA9PT0gJ251bWJlcicpICYmXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5UHJvcHNba2V5XSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoYWN0aXZpdHlQcm9wc1trZXldKS5sZW5ndGggPiAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eVByb3BzW2tleV0udG9TdHJpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFByb3BzW2tleV1bJ2hhc19kYXRhJ10gPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpbmRpbmcgY3VycmVudCBsYW5ndWFnZSAtIGFjdGl2aXR5IHRpdGxlXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgcGFnZVRpdGxlID0gJyc7XG4gICAgICAgIHZhciBmb3VuZCA9IGFjdGl2aXR5UHJvcHMudGl0bGUuZmluZChmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRMYW5ndWFnZSA9ICdlbic7XG4gICAgICAgICAgICByZXR1cm4gZS5sYW5ndWFnZSA9PT0gY3VycmVudExhbmd1YWdlO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY2FsbGJhY2sgaWYgbGFuZ3VhZ2Ugbm90IGF2YWlsYWJsZSBpbiBkYXRhXG4gICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgcGFnZVRpdGxlID0gZm91bmQubmFycmF0aXZlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcGFnZVRpdGxlID0gYWN0aXZpdHlQcm9wcy50aXRsZVswXS5uYXJyYXRpdmU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZm9ybWF0VGl0bGUodGl0bGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aXRsZS5yZXBsYWNlKC9fL2dpLCAnICcpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaWdub3JlVXBkYXRlcyA9ICgwLCBjb3JlXzEud2F0Y2hJZ25vcmFibGUpKHRvYXN0RGF0YSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9LCB7XG4gICAgICAgICAgICBmbHVzaDogJ3N5bmMnLFxuICAgICAgICB9KS5pZ25vcmVVcGRhdGVzO1xuICAgICAgICB2YXIgaWdub3JlVG9hc3RVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZ25vcmVVcGRhdGVzKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9ICcnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBwdWJsaXNoU3RhdHVzID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBsaW5rZWRfdG9faWF0aTogYWN0aXZpdHlQcm9wcy5saW5rZWRfdG9faWF0aSxcbiAgICAgICAgICAgIHN0YXR1czogYWN0aXZpdHlQcm9wcy5zdGF0dXMsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyB2dWUgcHJvdmlkZXNcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCd0eXBlcycsIHR5cGVzLnZhbHVlKTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdjb3JlQ29tcGxldGVkJywgY29yZUNvbXBsZXRlZC52YWx1ZSk7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgndG9hc3RNZXNzYWdlJywgdG9hc3RNZXNzYWdlKTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCd0b2FzdERhdGEnLCB0b2FzdERhdGEpO1xuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ2Vycm9yRGF0YScsIGVycm9yRGF0YSk7XG4gICAgICAgIGluZGV4U3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVNlbGVjdGVkQWN0aXZpdGllcycsIFthY3Rpdml0eS52YWx1ZS5pZF0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogQnJlYWRjcnVtYiBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgYnJlYWRjcnVtYkRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGxhbmd1YWdlLmFjdGl2aXRpZXNfbGFuZy55b3VyX2FjdGl2aXRpZXMsXG4gICAgICAgICAgICAgICAgbGluazogXCIvYWN0aXZpdGllc1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogcGFnZVRpdGxlLFxuICAgICAgICAgICAgICAgIGxpbms6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqICBHbG9iYWwgU3RhdGVcbiAgICAgICAgICovXG4gICAgICAgIHZhciBpYXRpVmFsaWRhdG9yUmVzcG9uc2UgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuaWF0aVZhbGlkYXRvclJlc3BvbnNlO1xuICAgICAgICB2YXIgdmFsaWRhdGlvblJlc3VsdCA9IGlhdGlWYWxpZGF0b3JSZXNwb25zZS52YWx1ZTtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQgJiYgdmFsaWRhdGlvblJlc3VsdC5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVB1Ymxpc2hFcnJvcnMnLCB2YWxpZGF0aW9uUmVzdWx0LmVycm9ycyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHB1Ymxpc2hTdGF0dXMubGlua2VkX3RvX2lhdGkpIHtcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVVblB1Ymxpc2hlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVVuUHVibGlzaGVkJywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKHB1Ymxpc2hTdGF0dXMubGlua2VkX3RvX2lhdGkgJiYgcHVibGlzaFN0YXR1cy5zdGF0dXMgPT09ICdwdWJsaXNoZWQnKSkge1xuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVNob3dQdWJsaXNoZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVTaG93UHVibGlzaGVkJywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBncm91cGVkRGF0YTogZ3JvdXBlZERhdGEsXG4gICAgICAgICAgICBhY3Rpdml0aWVzOiBhY3Rpdml0aWVzLFxuICAgICAgICAgICAgZGVsZXRlVmFsdWU6IGRlbGV0ZVZhbHVlLFxuICAgICAgICAgICAgZGVsZXRlVG9nZ2xlOiBkZWxldGVUb2dnbGUsXG4gICAgICAgICAgICBkb3dubG9hZFZhbHVlOiBkb3dubG9hZFZhbHVlLFxuICAgICAgICAgICAgZG93bmxvYWRUb2dnbGU6IGRvd25sb2FkVG9nZ2xlLFxuICAgICAgICAgICAgdG9hc3REYXRhOiB0b2FzdERhdGEsXG4gICAgICAgICAgICBlbGVtZW50UHJvcHM6IGVsZW1lbnRQcm9wcyxcbiAgICAgICAgICAgIHByb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIGZvcm1hdFRpdGxlOiBmb3JtYXRUaXRsZSxcbiAgICAgICAgICAgIHBhZ2VUaXRsZTogcGFnZVRpdGxlLFxuICAgICAgICAgICAgdG9hc3RNZXNzYWdlOiB0b2FzdE1lc3NhZ2UsXG4gICAgICAgICAgICBwdWJsaXNoU3RhdHVzOiBwdWJsaXNoU3RhdHVzLFxuICAgICAgICAgICAgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhLFxuICAgICAgICAgICAgc3RvcmU6IHN0b3JlLFxuICAgICAgICAgICAgYWN0aXZpdHlQcm9wczogYWN0aXZpdHlQcm9wcyxcbiAgICAgICAgICAgIGVycm9yRGF0YTogZXJyb3JEYXRhLFxuICAgICAgICAgICAgc2hvd1NpZGViYXI6IHNob3dTaWRlYmFyLFxuICAgICAgICAgICAgdG9nZ2xlU2lkZWJhcjogdG9nZ2xlU2lkZWJhcixcbiAgICAgICAgICAgIGlzdG9wVmlzaWJsZTogaXN0b3BWaXNpYmxlLFxuICAgICAgICAgICAgc2NyZWVuV2lkdGg6IHNjcmVlbldpZHRoLFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgRW1wdHlBY3Rpdml0eV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9wYXJ0aWFscy9FbXB0eUFjdGl2aXR5LnZ1ZVwiKSk7XG52YXIgVGFibGVMYXlvdXRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vcGFydGlhbHMvVGFibGVMYXlvdXQudnVlXCIpKTtcbnZhciBUYWJsZVBhZ2luYXRpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZVwiKSk7XG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3BhcnRpYWxzL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBFcnJvck1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvRXJyb3JNZXNzYWdlLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FjdGl2aXR5Q29tcG9uZW50JyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEVtcHR5QWN0aXZpdHk6IEVtcHR5QWN0aXZpdHlfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnZVRpdGxlOiBQYWdlVGl0bGVfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnaW5hdGlvbjogVGFibGVQYWdpbmF0aW9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRhYmxlTGF5b3V0OiBUYWJsZUxheW91dF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBMb2FkZXI6IExvYWRlcl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBFcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZV92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgYWN0aXZpdGllcyA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgaXNMb2FkaW5nID0gKDAsIHZ1ZV8xLnJlZikodHJ1ZSk7XG4gICAgICAgIHZhciBjdXJyZW50VVJMID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIHZhciBlbmRwb2ludCA9ICcnO1xuICAgICAgICB2YXIgc2hvd0VtcHR5VGVtcGxhdGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgICAgICAgdmFyIHF1ZXJ5U3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICAgICAgICAgIGVuZHBvaW50ID0gXCIvYWN0aXZpdGllcy9wYWdlXCIuY29uY2F0KHF1ZXJ5U3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVuZHBvaW50ID0gXCIvYWN0aXZpdGllcy9wYWdlXCI7XG4gICAgICAgICAgICBzaG93RW1wdHlUZW1wbGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy9mb3Igc2Vzc2lvbiBtZXNzYWdlXG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBmb3IgcHVibGlzaCBidXR0b25cbiAgICAgICAgdmFyIHRvYXN0TWVzc2FnZSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChwcm9wcy50b2FzdC5tZXNzYWdlICE9PSAnJykge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS50eXBlID0gcHJvcHMudG9hc3QudHlwZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSBwcm9wcy50b2FzdC5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoZW5kcG9pbnQpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpdml0aWVzLCByZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG93RW1wdHlUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNFbXB0eS52YWx1ZSA9ICFyZXNwb25zZS5kYXRhLmRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pOyB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiB0b2FzdERhdGEudmlzaWJpbGl0eTsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZ25vcmVUb2FzdFVwZGF0ZSgpO1xuICAgICAgICAgICAgfSwgMTAwMDApO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHN0YXRlID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBzaG93QnV0dG9uczogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXNFbXB0eSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIHNob3dPckhpZGUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgaWYgKGRhdGEgPT09IHZvaWQgMCkgeyBkYXRhID0gQXJyYXk7IH1cbiAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5zaG93QnV0dG9ucyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5zaG93QnV0dG9ucyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBmZXRjaEFjdGl2aXRpZXMoYWN0aXZlX3BhZ2UpIHtcbiAgICAgICAgICAgIHZhciBxdWVyeVN0cmluZyA9ICcnO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoJy9hY3Rpdml0aWVzL3BhZ2UvJyArIGFjdGl2ZV9wYWdlICsgcXVlcnlTdHJpbmcpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYWN0aXZpdGllcywgcmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgaXNFbXB0eS52YWx1ZSA9ICFyZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlnbm9yZVVwZGF0ZXMgPSAoMCwgY29yZV8xLndhdGNoSWdub3JhYmxlKSh0b2FzdERhdGEsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSwge1xuICAgICAgICAgICAgZmx1c2g6ICdzeW5jJyxcbiAgICAgICAgfSkuaWdub3JlVXBkYXRlcztcbiAgICAgICAgdmFyIGlnbm9yZVRvYXN0VXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWdub3JlVXBkYXRlcyhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSAnJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvLyBmb3IgcmVmcmVzaCB0b2FzdCBtZXNzYWdlXG4gICAgICAgIC8vIGxldCByZWZyZXNoVG9hc3RNc2cgPSByZWYoZmFsc2UpO1xuICAgICAgICB2YXIgcmVmcmVzaFRvYXN0TXNnID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIHJlZnJlc2hNZXNzYWdlVHlwZTogdHJ1ZSxcbiAgICAgICAgICAgIHJlZnJlc2hNZXNzYWdlOiAnQWN0aXZpdHkgaGFzIGJlZW4gcHVibGlzaGVkIHN1Y2Nlc3NmdWxseSwgcmVmcmVzaCB0byBzZWUgY2hhbmdlcycsXG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogUHJvdmlkZVxuICAgICAgICAgKi9cbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCd0b2FzdE1lc3NhZ2UnLCB0b2FzdE1lc3NhZ2UpO1xuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3RvYXN0RGF0YScsIHRvYXN0RGF0YSk7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgnZXJyb3JEYXRhJywgZXJyb3JEYXRhKTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdyZWZyZXNoVG9hc3RNc2cnLCByZWZyZXNoVG9hc3RNc2cpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWN0aXZpdGllczogYWN0aXZpdGllcyxcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIGlzRW1wdHk6IGlzRW1wdHksXG4gICAgICAgICAgICBpc0xvYWRpbmc6IGlzTG9hZGluZyxcbiAgICAgICAgICAgIHNob3dPckhpZGU6IHNob3dPckhpZGUsXG4gICAgICAgICAgICBmZXRjaEFjdGl2aXRpZXM6IGZldGNoQWN0aXZpdGllcyxcbiAgICAgICAgICAgIHRvYXN0RGF0YTogdG9hc3REYXRhLFxuICAgICAgICAgICAgdG9hc3RNZXNzYWdlOiB0b2FzdE1lc3NhZ2UsXG4gICAgICAgICAgICByZWZyZXNoVG9hc3RNc2c6IHJlZnJlc2hUb2FzdE1zZyxcbiAgICAgICAgICAgIGVycm9yRGF0YTogZXJyb3JEYXRhLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgUG9wdXBNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZVwiKSk7XG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIG11bHRpc2VsZWN0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkB2dWVmb3JtL211bHRpc2VsZWN0XCIpKTtcbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG52YXIgTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jb21wb25lbnRzL0xvYWRlci52dWVcIikpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIE1vZGFsOiBQb3B1cE1vZGFsX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEJ0bkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIE11bHRpc2VsZWN0OiBtdWx0aXNlbGVjdF8xLmRlZmF1bHQsXG4gICAgICAgIExvYWRlcjogTG9hZGVyX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBtb2RhbFZhbHVlOiB7XG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZW1pdHM6IFsnY2xvc2VNb2RhbCcsICd0b2FzdCddLFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBlbWl0ID0gX2EuZW1pdDtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGZvcm1EYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBuYXJyYXRpdmU6ICcnLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6ICcnLFxuICAgICAgICAgICAgYWN0aXZpdHlfaWRlbnRpZmllcjogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBuYXJyYXRpdmU6ICcnLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6ICcnLFxuICAgICAgICAgICAgYWN0aXZpdHlfaWRlbnRpZmllcjogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgbG9hZGVyVmlzaWJpbGl0eSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlcyA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgb3JnYW5pemF0aW9uID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7fSk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9fYXdhaXRlcihfdGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICBheGlvc18xLmRlZmF1bHQuZ2V0KCcvYWN0aXZpdGllcy9jb2RlbGlzdHMnKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obGFuZ3VhZ2VzLCByZXNwb25zZS5kYXRhLmxhbmd1YWdlcyk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3JnYW5pemF0aW9uLCByZXNwb25zZS5kYXRhLm9yZ2FuaXphdGlvbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pOyB9KTtcbiAgICAgICAgZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHtcbiAgICAgICAgICAgIGVtaXQoJ2Nsb3NlTW9kYWwnKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdG9yZUFjdGl2aXR5KCkge1xuICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdCgnL2FjdGl2aXR5JywgZm9ybURhdGEpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBlbWl0KCdjbG9zZU1vZGFsJyk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KHJlc3BvbnNlLmRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSBlcnJvci5yZXNwb25zZS5kYXRhLmVycm9ycztcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEubmFycmF0aXZlID0gZXJyb3JzLm5hcnJhdGl2ZSA/IGVycm9ycy5uYXJyYXRpdmVbMF0gOiAnJztcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEubGFuZ3VhZ2UgPSBlcnJvcnMubGFuZ3VhZ2UgPyBlcnJvcnMubGFuZ3VhZ2VbMF0gOiAnJztcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEuYWN0aXZpdHlfaWRlbnRpZmllciA9IGVycm9ycy5hY3Rpdml0eV9pZGVudGlmaWVyXG4gICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLmFjdGl2aXR5X2lkZW50aWZpZXJbMF1cbiAgICAgICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgZXJyb3JEYXRhOiBlcnJvckRhdGEsXG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5OiBsb2FkZXJWaXNpYmlsaXR5LFxuICAgICAgICAgICAgbGFuZ3VhZ2VzOiBsYW5ndWFnZXMsXG4gICAgICAgICAgICBvcmdhbml6YXRpb246IG9yZ2FuaXphdGlvbixcbiAgICAgICAgICAgIGNsb3NlTW9kYWw6IGNsb3NlTW9kYWwsXG4gICAgICAgICAgICBzdG9yZUFjdGl2aXR5OiBzdG9yZUFjdGl2aXR5LFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdCdWxrUHVibGlzaGluZycsXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHJlZnJlc2hUb2FzdE1zZyA9ICgwLCB2dWVfMi5pbmplY3QpKFwicmVmcmVzaFRvYXN0TXNnXCIpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICAvL2luamVjdFxuICAgICAgICB2YXIgcGFTdG9yYWdlID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJwYVN0b3JhZ2VcIik7XG4gICAgICAgIHZhciBhY3Rpdml0aWVzID0gKDAsIHZ1ZV8yLnJlZikocGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzLmFjdGl2aXRpZXMpLCBjb21wbGV0ZWQgPSAoMCwgdnVlXzIucmVmKShcInByb2Nlc3NpbmdcIik7XG4gICAgICAgIHZhciBoYXNGYWlsZWRBY3Rpdml0aWVzID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgIGlkczogW10sXG4gICAgICAgICAgICBzdGF0dXM6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGludGVydmFsSUQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAgIENvbXBvbmVudCBsaWZlY3ljbGUgLSBvbk1vdW50ZWRcbiAgICAgICAgICovXG4gICAgICAgICgwLCB2dWVfMi5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbXBsZXRlZC52YWx1ZSA9IChfYSA9IHBhU3RvcmFnZS52YWx1ZS5wdWJsaXNoaW5nQWN0aXZpdGllcy5zdGF0dXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwicHJvY2Vzc2luZ1wiO1xuICAgICAgICAgICAgYnVsa1B1Ymxpc2hTdGF0dXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHdhdGNoaW5nIGNoYW5nZSBpbiB2YWx1ZSBvZiBjb21wbGV0ZWRcbiAgICAgICAgKDAsIHZ1ZV8yLndhdGNoKShjb21wbGV0ZWQsIGZ1bmN0aW9uIChuZXdWYWx1ZSkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gXCJjb21wbGV0ZWRcIikge1xuICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSUQpO1xuICAgICAgICAgICAgICAgICAgICAvLyByZXNldHRpbmcgbG9jYWwgc3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAvLyBwYVN0b3JhZ2UudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMgPSB7fSBhcyBwYUVsZW1lbnRzO1xuICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBmb3IgZmFpbGVkIHB1Ymxpc2hcbiAgICAgICAgICAgICAgICAgICAgZmFpbGVkQWN0aXZpdGllcyhwYVN0b3JhZ2UudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMuYWN0aXZpdGllcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCdWxrIFB1Ymxpc2ggRnVuY3Rpb25cbiAgICAgICAgICovXG4gICAgICAgIHZhciBidWxrUHVibGlzaFN0YXR1cyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGludGVydmFsSUQgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIC5nZXQoXCJhY3Rpdml0aWVzL2J1bGstcHVibGlzaC1zdGF0dXM/b3JnYW5pemF0aW9uX2lkPVwiLmNvbmNhdChwYVN0b3JhZ2UudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMub3JnYW5pemF0aW9uX2lkLCBcIiYmdXVpZD1cIikuY29uY2F0KHBhU3RvcmFnZS52YWx1ZS5wdWJsaXNoaW5nQWN0aXZpdGllcy5qb2JfYmF0Y2hfdXVpZCkpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcImRhdGFcIiBpbiByZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdGllcy52YWx1ZSA9IHJlc3BvbnNlLmRhdGEuYWN0aXZpdGllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZC52YWx1ZSA9IHJlc3BvbnNlLmRhdGEuc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2F2aW5nIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhU3RvcmFnZS52YWx1ZS5wdWJsaXNoaW5nQWN0aXZpdGllcy5hY3Rpdml0aWVzID0gcmVzcG9uc2UuZGF0YS5hY3Rpdml0aWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzLnN0YXR1cyA9IHJlc3BvbnNlLmRhdGEuc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzLm1lc3NhZ2UgPSByZXNwb25zZS5kYXRhLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGxldGVkLnZhbHVlID09PSBcImNvbXBsZXRlZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbGVkQWN0aXZpdGllcyhwYVN0b3JhZ2UudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMuYWN0aXZpdGllcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFRvYXN0TXNnLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoVG9hc3RNc2cudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZC52YWx1ZSA9IFwiY29tcGxldGVkXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogTWluaW1pemUgb3IgbWF4aW1pemUgd2luZG93XG4gICAgICAgICAqL1xuICAgICAgICB2YXIgb3BlbiA9ICgwLCB2dWVfMi5yZWYpKHRydWUpO1xuICAgICAgICB2YXIgdG9nZ2xlV2luZG93ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50VGFyZ2V0ID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgdmFyIHRhcmdldCA9IGN1cnJlbnRUYXJnZXQuY2xvc2VzdChcIiNwdWJsaXNoaW5nX2FjdGl2aXRpZXNcIikucXVlcnlTZWxlY3RvcihcIi5idWxrLWFjdGl2aXRpZXNcIik7XG4gICAgICAgICAgICB2YXIgZWxIZWlnaHQgPSAoX2EgPSB0YXJnZXQgPT09IG51bGwgfHwgdGFyZ2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXQucXVlcnlTZWxlY3RvcihcImRpdlwiKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIGlmIChvcGVuLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJoZWlnaHQ6IFwiLmNvbmNhdChlbEhlaWdodCwgXCJweDtcIik7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSBcImhlaWdodDogMHB4OyBvdmVyZmxvdzogaGlkZGVuO1wiO1xuICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBvcGVuLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJoZWlnaHQ6IFwiLmNvbmNhdChlbEhlaWdodCwgXCJweDsgb3ZlcmZsb3c6aGlkZGVuO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9IFwiaGVpZ2h0OiBhdXRvO1wiO1xuICAgICAgICAgICAgICAgICAgICB9LCA2MDApO1xuICAgICAgICAgICAgICAgICAgICBvcGVuLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDbG9zaW5nIHdpbmRvd1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGNsb3NlV2luZG93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzID0ge307XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGdW5jdGlvbiB0byBjb2xsZWN0IGZhaWxlZCBhY3Rpdml0aWVzXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgZmFpbGVkQWN0aXZpdGllcyA9IGZ1bmN0aW9uIChuZXN0ZWRPYmplY3QpIHtcbiAgICAgICAgICAgIHZhciBmYWlsZWRBY3Rpdml0aWVzSUQgPSBbXTtcbiAgICAgICAgICAgIHZhciBhc0FycmF5RGF0YSA9IE9iamVjdC5lbnRyaWVzKG5lc3RlZE9iamVjdCk7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICB2YXIgZmlsdGVyZWQgPSBhc0FycmF5RGF0YS5maWx0ZXIoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IF9hWzBdLCB2YWx1ZSA9IF9hWzFdO1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QudmFsdWVzKHZhbHVlKS5pbmRleE9mKFwiZmFpbGVkXCIpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgZmFpbGVkQWN0aXZpdGllc0lELnB1c2godmFsdWUuYWN0aXZpdHlfaWQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGZhaWxlZEFjdGl2aXRpZXNEYXRhID0gT2JqZWN0LmZyb21FbnRyaWVzKGZpbHRlcmVkKTtcbiAgICAgICAgICAgIGlmIChmYWlsZWRBY3Rpdml0aWVzSUQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGhhc0ZhaWxlZEFjdGl2aXRpZXMuc3RhdHVzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBoYXNGYWlsZWRBY3Rpdml0aWVzLmlkcyA9IGZhaWxlZEFjdGl2aXRpZXNJRDtcbiAgICAgICAgICAgICAgICBoYXNGYWlsZWRBY3Rpdml0aWVzLmRhdGEgPSBmYWlsZWRBY3Rpdml0aWVzRGF0YTtcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9hc3RNc2cucmVmcmVzaE1lc3NhZ2VUeXBlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmVmcmVzaFRvYXN0TXNnLnJlZnJlc2hNZXNzYWdlID0gJ1NvbWUgYWN0aXZpdGllcyBoYXZlIGZhaWxlZCB0byBwdWJsaXNoLiBSZWZyZXNoIHRvIHNlZSBjaGFuZ2VzLic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYXNGYWlsZWRBY3Rpdml0aWVzLnN0YXR1cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGhhc0ZhaWxlZEFjdGl2aXRpZXMuaWRzID0gW107XG4gICAgICAgICAgICAgICAgaGFzRmFpbGVkQWN0aXZpdGllcy5kYXRhID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXRyeSBwdWJsaXNoaW5nIGZhaWxlZCBhY3Rpdml0aWVzXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgcmV0cnlQdWJsaXNoaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgLy9yZXNldCByZXF1aXJlZCBzdGF0ZXNcbiAgICAgICAgICAgIGNvbXBsZXRlZC52YWx1ZSA9IFwicHJvY2Vzc2luZ1wiO1xuICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGhhc0ZhaWxlZEFjdGl2aXRpZXMuZGF0YSkge1xuICAgICAgICAgICAgICAgIGhhc0ZhaWxlZEFjdGl2aXRpZXMuZGF0YVtrZXldLnN0YXR1cyA9IFwicHJvY2Vzc2luZ1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWN0aXZpdGllcy52YWx1ZSA9IGhhc0ZhaWxlZEFjdGl2aXRpZXMuZGF0YTtcbiAgICAgICAgICAgIC8vIGFwaSBlbmRwb2ludCBjYWxsXG4gICAgICAgICAgICB2YXIgZW5kcG9pbnQgPSBcImFjdGl2aXRpZXMvc3RhcnQtYnVsay1wdWJsaXNoP2FjdGl2aXRpZXM9W1wiLmNvbmNhdChoYXNGYWlsZWRBY3Rpdml0aWVzLmlkcywgXCJdXCIpO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChlbmRwb2ludCkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFTdG9yYWdlLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgYnVsa1B1Ymxpc2hTdGF0dXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgcmVmcmVzaFRvYXN0TXNnOiByZWZyZXNoVG9hc3RNc2csIGxhbmd1YWdlOiBsYW5ndWFnZSwgcGFTdG9yYWdlOiBwYVN0b3JhZ2UsIGFjdGl2aXRpZXM6IGFjdGl2aXRpZXMsIGNvbXBsZXRlZDogY29tcGxldGVkLCBoYXNGYWlsZWRBY3Rpdml0aWVzOiBoYXNGYWlsZWRBY3Rpdml0aWVzLCBpbnRlcnZhbElEOiBpbnRlcnZhbElELCBidWxrUHVibGlzaFN0YXR1czogYnVsa1B1Ymxpc2hTdGF0dXMsIG9wZW46IG9wZW4sIHRvZ2dsZVdpbmRvdzogdG9nZ2xlV2luZG93LCBjbG9zZVdpbmRvdzogY2xvc2VXaW5kb3csIGZhaWxlZEFjdGl2aXRpZXM6IGZhaWxlZEFjdGl2aXRpZXMsIHJldHJ5UHVibGlzaGluZzogcmV0cnlQdWJsaXNoaW5nIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnRXJyb3JJdGVtJyxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7IHR5cGU6IE9iamVjdCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgbWVzc2FnZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICcnIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgc2VsZWN0ZWRBY3Rpdml0aWVzID0gKDAsIHZ1ZV8yLmluamVjdCkoJ3NlbGVjdGVkQWN0aXZpdGllcycpO1xuICAgICAgICB2YXIgdG9nZ2xlID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgYWNjb3JkaW9uVG9nZ2xlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50VGFyZ2V0ID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgdmFyIHRhcmdldCA9IGN1cnJlbnRUYXJnZXQuY2xvc2VzdCgnLmFjY29yZGlvbicpLnF1ZXJ5U2VsZWN0b3IoJy5hY2NvcmRpb24tY29udGVudCcpO1xuICAgICAgICAgICAgdmFyIGVsSGVpZ2h0ID0gKF9hID0gdGFyZ2V0ID09PSBudWxsIHx8IHRhcmdldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgaWYgKHRvZ2dsZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9IFwiaGVpZ2h0OiBcIi5jb25jYXQoZWxIZWlnaHQsIFwicHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5jc3NUZXh0ID0gXCJoZWlnaHQ6IFwiLmNvbmNhdChlbEhlaWdodCwgXCJweDtcIik7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSBcImhlaWdodDogYXV0bztcIjtcbiAgICAgICAgICAgICAgICAgICAgfSwgNjAwKTtcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciBlcnJvckNvdW50ID0gZnVuY3Rpb24gKGVycm9ycykge1xuICAgICAgICAgICAgdmFyIGVycm9yQ291bnQgPSAnJztcbiAgICAgICAgICAgIGlmIChlcnJvcnMgPT09IG51bGwgfHwgZXJyb3JzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvcnMud2FybmluZykge1xuICAgICAgICAgICAgICAgIGVycm9yQ291bnQgPSBcIlwiLmNvbmNhdChlcnJvcnMgPT09IG51bGwgfHwgZXJyb3JzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvcnMuZXJyb3IsIFwiIGVycm9ycyBhbmQgXCIpLmNvbmNhdChlcnJvcnMgPT09IG51bGwgfHwgZXJyb3JzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvcnMud2FybmluZywgXCIgd2FybmluZ3NcXG4gICAgIHdlcmUgZm91bmQuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZXJyb3JDb3VudCA9IFwiXCIuY29uY2F0KGVycm9ycyA9PT0gbnVsbCB8fCBlcnJvcnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9ycy5jcml0aWNhbCwgXCIgY3JpdGljYWwgZXJyb3JzIHdlcmUgZm91bmQuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVycm9yQ291bnQ7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgc2VsZWN0ZWRBY3Rpdml0aWVzOiBzZWxlY3RlZEFjdGl2aXRpZXMsIHRvZ2dsZTogdG9nZ2xlLCBhY2NvcmRpb25Ub2dnbGU6IGFjY29yZGlvblRvZ2dsZSwgZXJyb3JDb3VudDogZXJyb3JDb3VudCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGNvcmVfMSA9IHJlcXVpcmUoXCJAdnVldXNlL2NvcmVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuLy9jb21wb25lbnRcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgUG9wdXBNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZVwiKSk7XG52YXIgUHJvZ3Jlc3NMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUHJvZ3Jlc3NMb2FkZXIudnVlXCIpKTtcbnZhciBWYWxpZGF0aW9uRXJyb3JzX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1ZhbGlkYXRpb25FcnJvcnMudnVlXCIpKTtcbnZhciBCdWxrUHVibGlzaGluZ192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9CdWxrUHVibGlzaGluZy52dWVcIikpO1xuLy8gVnVleCBTdG9yZVxudmFyIGluZGV4XzEgPSByZXF1aXJlKFwiU3RvcmUvYWN0aXZpdGllcy9pbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdQdWJsaXNoU2VsZWN0ZWQnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIHR5cGU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAncHJpbWFyeScgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIF9iO1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqICBHbG9iYWwgU3RhdGVcbiAgICAgICAgICovXG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBpbmRleF8xLnVzZVN0b3JlKSgpO1xuICAgICAgICAvLyB0b2dnbGUgc3RhdGUgZm9yIG1vZGFsIHBvcHVwXG4gICAgICAgIHZhciBfYyA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBwdWJsaXNoQWxlcnRWYWx1ZSA9IF9jWzBdLCBwdWJsaXNoQWxlcnRUb2dnbGUgPSBfY1sxXTtcbiAgICAgICAgLy8gc3RhdGUgZm9yIHN0ZXAgb2YgdGhlIGZsb3dcbiAgICAgICAgdmFyIGJ1bGtQdWJsaXNoU3RlcCA9ICgwLCB2dWVfMi5yZWYpKDEpO1xuICAgICAgICAvLyBkaXNwbGF5L2hpZGUgdmFsaWRhdG9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICAvLyBEeW5hbWljIHRleHQgZm9yIGxvYWRlclxuICAgICAgICB2YXIgbG9hZGVyVGV4dCA9ICgwLCB2dWVfMi5yZWYpKGxhbmd1YWdlLmNvbW1vbl9sYW5nLnBsZWFzZV93YWl0KTtcbiAgICAgICAgLy8gcmVzZXQgc3RlcCB0byB6ZXJvIGFmdGVyIGNsb3NpbmcgbW9kYWxcbiAgICAgICAgdmFyIHJlc2V0UHVibGlzaFN0ZXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBidWxrUHVibGlzaFN0ZXAudmFsdWUgPSAxO1xuICAgICAgICAgICAgcHVibGlzaEFsZXJ0VmFsdWUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIHNlbGVjdGVkQWN0aXZpdGllcy52YWx1ZSA9IFtdO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgcG9wVXBXaWR0aENoYW5nZSA9ICgwLCB2dWVfMi5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHdpZHRoID0gKDAsIHZ1ZV8yLnJlZikoJzgyNScpO1xuICAgICAgICAgICAgc3dpdGNoIChidWxrUHVibGlzaFN0ZXAudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoLnZhbHVlID0gJzU4Myc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgd2lkdGgudmFsdWUgPSAnODA5JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB3aWR0aC52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHRvYXN0IHZpc2liaWxpdHlcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMi5pbmplY3QpKCdlcnJvckRhdGEnKTtcbiAgICAgICAgdmFyIGRpc3BsYXlUb2FzdCA9IGZ1bmN0aW9uIChtZXNzYWdlLCB0eXBlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgICAgICBlcnJvckRhdGEudHlwZSA9IHR5cGU7XG4gICAgICAgICAgICBlcnJvckRhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjaGVjayBwdWJsaXNoIHN0YXR1c1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGNoZWNrUHVibGlzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvYWN0aXZpdGllcy9jaGVja3MtZm9yLWFjdGl2aXR5LXB1Ymxpc2hcIikudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaEFsZXJ0VmFsdWUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVRvYXN0KHJlc3BvbnNlLm1lc3NhZ2UsIHJlc3BvbnNlLnN1Y2Nlc3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogVmVyaWZ5IGNvcmUgZWxlbWVudHNcbiAgICAgICAgICovXG4gICAgICAgIHZhciBjb3JlQ29tcGxldGVkQWN0aXZpdGllcyA9ICgwLCB2dWVfMi5yZWYpKFtdKSwgY29yZUluQ29tcGxldGVkQWN0aXZpdGllcyA9ICgwLCB2dWVfMi5yZWYpKFtdKSwgcGVybWFsaW5rID0gXCIvYWN0aXZpdHkvXCI7XG4gICAgICAgIHZhciB2ZXJpZnlDb3JlRWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2FkZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgbG9hZGVyVGV4dC52YWx1ZSA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLnZlcmlmeWluZ19jb3JlX2VsZW1lbnRzO1xuICAgICAgICAgICAgdmFyIGFjdGl2aXRpZXMgPSBzdG9yZS5zdGF0ZS5zZWxlY3RlZEFjdGl2aXRpZXMuam9pbignLCAnKTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5nZXQoXCIvYWN0aXZpdGllcy9jb3JlLWVsZW1lbnRzLWNvbXBsZXRlZD9hY3Rpdml0aWVzPVtcIi5jb25jYXQoYWN0aXZpdGllcywgXCJdXCIpKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBjb3JlQ29tcGxldGVkQWN0aXZpdGllcy52YWx1ZSA9IHJlc3BvbnNlLmRhdGEuY29tcGxldGU7XG4gICAgICAgICAgICAgICAgICAgIGNvcmVJbkNvbXBsZXRlZEFjdGl2aXRpZXMudmFsdWUgPSByZXNwb25zZS5kYXRhLmluY29tcGxldGU7XG4gICAgICAgICAgICAgICAgICAgIGJ1bGtQdWJsaXNoU3RlcC52YWx1ZSA9IDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2FkZXIudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXRQdWJsaXNoU3RlcCgpO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VG9hc3QocmVzcG9uc2UubWVzc2FnZSwgcmVzcG9uc2Uuc3VjY2Vzcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBsb2FkZXIudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCAyMDAwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogVmFsaWRhdGluZyBBY3Rpdml0aWVzXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgdmFsaWRhdGlvbkVycm9ycyA9ICgwLCB2dWVfMi5yZWYpKHt9KTtcbiAgICAgICAgdmFyIHZhbGlkYXRlQWN0aXZpdGllcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gbGFuZ3VhZ2UuY29tbW9uX2xhbmcudmFsaWRhdGluZ19hY3Rpdml0aWVzO1xuICAgICAgICAgICAgdmFyIGFjdGl2aXRpZXMgPSBzdG9yZS5zdGF0ZS5zZWxlY3RlZEFjdGl2aXRpZXMuam9pbignLCAnKTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wb3N0KFwiL2FjdGl2aXRpZXMvdmFsaWRhdGUtYWN0aXZpdGllcz9hY3Rpdml0aWVzPVtcIi5jb25jYXQoYWN0aXZpdGllcywgXCJdXCIpKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBidWxrUHVibGlzaFN0ZXAudmFsdWUgPSAzO1xuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3JzLnZhbHVlID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0UHVibGlzaFN0ZXAoKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVRvYXN0KHJlc3BvbnNlLm1lc3NhZ2UsIHJlc3BvbnNlLnN1Y2Nlc3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJ1bGsgcHVibGlzaGluZyBhY3Rpdml0aWVzXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgc2VsZWN0ZWRBY3Rpdml0aWVzID0gKDAsIHZ1ZV8yLnJlZikoW10pO1xuICAgICAgICAoMCwgdnVlXzIucHJvdmlkZSkoJ3NlbGVjdGVkQWN0aXZpdGllcycsIHNlbGVjdGVkQWN0aXZpdGllcyk7XG4gICAgICAgIC8vIGxvY2FsIHN0b3JhZ2UgZm9yIHB1Ymxpc2hpbmdcbiAgICAgICAgdmFyIHBhID0gKDAsIGNvcmVfMS51c2VTdG9yYWdlKSgndnVlLXVzZS1sb2NhbC1zdG9yYWdlJywge1xuICAgICAgICAgICAgcHVibGlzaGluZ0FjdGl2aXRpZXM6IChfYiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwdWJsaXNoaW5nQWN0aXZpdGllcycpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB7fSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBzdGFydEJ1bGtQdWJsaXNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG9hZGVyLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGxvYWRlclRleHQudmFsdWUgPSBsYW5ndWFnZS5jb21tb25fbGFuZy5zdGFydGluZ190b19wdWJsaXNoO1xuICAgICAgICAgICAgcGEudmFsdWUucHVibGlzaGluZ0FjdGl2aXRpZXMgPSB7fTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5nZXQoXCJhY3Rpdml0aWVzL3N0YXJ0LWJ1bGstcHVibGlzaD9hY3Rpdml0aWVzPVtcIi5jb25jYXQoc2VsZWN0ZWRBY3Rpdml0aWVzLnZhbHVlLCBcIl1cIikpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1bGtQdWJsaXNoU3RlcC52YWx1ZSA9IDE7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hBbGVydFZhbHVlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHBhLnZhbHVlLnB1Ymxpc2hpbmdBY3Rpdml0aWVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgICgwLCB2dWVfMi5wcm92aWRlKSgncGFTdG9yYWdlJywgcGEpO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHN0b3JlOiBzdG9yZSwgcHVibGlzaEFsZXJ0VmFsdWU6IHB1Ymxpc2hBbGVydFZhbHVlLCBwdWJsaXNoQWxlcnRUb2dnbGU6IHB1Ymxpc2hBbGVydFRvZ2dsZSwgYnVsa1B1Ymxpc2hTdGVwOiBidWxrUHVibGlzaFN0ZXAsIGxvYWRlcjogbG9hZGVyLCBsb2FkZXJUZXh0OiBsb2FkZXJUZXh0LCByZXNldFB1Ymxpc2hTdGVwOiByZXNldFB1Ymxpc2hTdGVwLCBwb3BVcFdpZHRoQ2hhbmdlOiBwb3BVcFdpZHRoQ2hhbmdlLCBlcnJvckRhdGE6IGVycm9yRGF0YSwgZGlzcGxheVRvYXN0OiBkaXNwbGF5VG9hc3QsIGNoZWNrUHVibGlzaDogY2hlY2tQdWJsaXNoLCBjb3JlQ29tcGxldGVkQWN0aXZpdGllczogY29yZUNvbXBsZXRlZEFjdGl2aXRpZXMsIGNvcmVJbkNvbXBsZXRlZEFjdGl2aXRpZXM6IGNvcmVJbkNvbXBsZXRlZEFjdGl2aXRpZXMsIHBlcm1hbGluazogcGVybWFsaW5rLCB2ZXJpZnlDb3JlRWxlbWVudHM6IHZlcmlmeUNvcmVFbGVtZW50cywgdmFsaWRhdGlvbkVycm9yczogdmFsaWRhdGlvbkVycm9ycywgdmFsaWRhdGVBY3Rpdml0aWVzOiB2YWxpZGF0ZUFjdGl2aXRpZXMsIHNlbGVjdGVkQWN0aXZpdGllczogc2VsZWN0ZWRBY3Rpdml0aWVzLCBwYTogcGEsIHN0YXJ0QnVsa1B1Ymxpc2g6IHN0YXJ0QnVsa1B1Ymxpc2gsIEJ0bkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsIE1vZGFsOiBQb3B1cE1vZGFsX3Z1ZV8xLmRlZmF1bHQsIExvYWRlcjogUHJvZ3Jlc3NMb2FkZXJfdnVlXzEuZGVmYXVsdCwgVmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9yc192dWVfMS5kZWZhdWx0LCBCdWxrUHVibGlzaGluZzogQnVsa1B1Ymxpc2hpbmdfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1JlZnJlc2hUb2FzdCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbWVzc2FnZTogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIHR5cGU6IHsgdHlwZTogQm9vbGVhbiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBjbGFzc05hbWUgPSAoMCwgdnVlXzIucmVmKSgnJyk7XG4gICAgICAgIGNsYXNzTmFtZS52YWx1ZSA9IHByb3BzLnR5cGVcbiAgICAgICAgICAgID8gJ2JnLW1pbnQgYm9yZGVyLXNwcmluZy0xMCdcbiAgICAgICAgICAgIDogJ2JnLWNyaW1zb24tMTAgYm9yZGVyLWNyaW1zb24tMjAnO1xuICAgICAgICB2YXIgY2xhc3NOYW1lMiA9ICgwLCB2dWVfMi5yZWYpKCcnKTtcbiAgICAgICAgY2xhc3NOYW1lMi52YWx1ZSA9IHByb3BzLnR5cGVcbiAgICAgICAgICAgID8gJ3RleHQtc3ByaW5nLTUwIGhvdmVyOnRleHQtc3ByaW5nLTUwJ1xuICAgICAgICAgICAgOiAndGV4dC1jcmltc29uLTUwIGhvdmVyOnRleHQtY3JpbXNvbi01MCc7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgcHJvcHM6IHByb3BzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgY2xhc3NOYW1lMjogY2xhc3NOYW1lMiB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgRXJyb3JJdGVtX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0Vycm9ySXRlbS52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1ZhbGlkYXRpb25FcnJvcnMnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGNyaXRpY2FsTWVzc2FnZSA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLm1lc3NhZ2UuY3JpdGljYWw7XG4gICAgICAgIHZhciB3YXJuaW5nTWVzc2FnZSA9IGxhbmd1YWdlLmNvbW1vbl9sYW5nLm1lc3NhZ2Uud2FybmluZztcbiAgICAgICAgdmFyIG5vRXJyb3JNZXNzYWdlID0gbGFuZ3VhZ2UuY29tbW9uX2xhbmcubWVzc2FnZS5ub19lcnJvcjtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCBjcml0aWNhbE1lc3NhZ2U6IGNyaXRpY2FsTWVzc2FnZSwgd2FybmluZ01lc3NhZ2U6IHdhcm5pbmdNZXNzYWdlLCBub0Vycm9yTWVzc2FnZTogbm9FcnJvck1lc3NhZ2UsIEVycm9ySXRlbTogRXJyb3JJdGVtX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIG1vbWVudF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJtb21lbnRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBY3Rpdml0eURhdGUnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBtb21lbnRfMS5kZWZhdWx0KShkYXRlKS5mb3JtYXQoJ0xMJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlLCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6IFwiQWN0aXZpdHlDb25kaXRpb25zXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KShcInR5cGVzXCIpO1xuICAgICAgICByZXR1cm4geyB0eXBlczogdHlwZXMsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJBY3Rpdml0eUNvbnRhY3RJbmZvXCIsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbJ2dsb2JhbExhbmcnXTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FjdGl2aXR5RGVzY3JpcHRpb24nLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93WydnbG9iYWxMYW5nJ107XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyB0eXBlczogdHlwZXMsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnSHVtYW5pdGFyaWFuU2NvcGUnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCB0eXBlczogdHlwZXMgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdJYXRpSWRlbnRpZmllcicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBY3Rpdml0eVNlY3RvcicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbJ2dsb2JhbExhbmcnXTtcbiAgICAgICAgcmV0dXJuIHsgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBY3Rpdml0eUxvY2F0aW9uJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1snZ2xvYmFsTGFuZyddO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ090aGVySWRlbnRpZmllcicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93WydnbG9iYWxMYW5nJ107XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcywgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBY3Rpdml0eVBhcnRpY2lwYXRpbmdPcmcnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93WydnbG9iYWxMYW5nJ107XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyB0eXBlczogdHlwZXMsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUGxhbm5lZERpc2J1cnNlbWVudCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgbW9tZW50XzEuZGVmYXVsdCkoZGF0ZSkuZm9ybWF0KFwiTExcIik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgZm9ybWF0RGF0ZTogZm9ybWF0RGF0ZSwgbGFuZ3VhZ2U6IGxhbmd1YWdlLCB0eXBlczogdHlwZXMgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIlBvbGljeU1hcmtlclwiLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBY3Rpdml0eVJlY2lwaWVudENvdW50cnknLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIGZ1bmN0aW9uIHJvdW5kRmxvYXQobnVtKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChudW0pLnRvRml4ZWQoMik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCByb3VuZEZsb2F0OiByb3VuZEZsb2F0LCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1JlY2lwaWVudFJlZ2lvbicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzIuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgZnVuY3Rpb24gcm91bmRGbG9hdChudW0pIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KG51bSkudG9GaXhlZCgyKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHR5cGVzOiB0eXBlcywgcm91bmRGbG9hdDogcm91bmRGbG9hdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdSZWxhdGVkQWN0aXZpdHknLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcywgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1JlcG9ydGluZ09yZ2FuaXphdGlvbicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YTogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcInR5cGVzXCIpO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHR5cGVzOiB0eXBlcyB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG4vL2NvbXBvbmVudHNcbnZhciBMaW5rX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL2J1dHRvbnMvTGluay52dWVcIikpO1xudmFyIEhhdmVOb3RBZGRlZFlldF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlXCIpKTtcbi8vIGNvbXBvc2FibGVcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FjdGl2aXR5UmVzdWx0JyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJ0bjogTGlua192dWVfMS5kZWZhdWx0LFxuICAgICAgICBOb3RZZXQ6IEhhdmVOb3RBZGRlZFlldF92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlZDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZm9ybWF0ID0gJ01NTU0gREQsIFlZWVknO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgcmVzdWx0RGF0YSA9IGRhdGEudmFsdWUuY29udGVudDtcbiAgICAgICAgdmFyIGN1cnJlbnRMYW5ndWFnZSA9ICdlbic7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtb21lbnQ6IG1vbWVudF8xLmRlZmF1bHQsXG4gICAgICAgICAgICBmb3JtYXQ6IGZvcm1hdCxcbiAgICAgICAgICAgIHJlc3VsdERhdGE6IHJlc3VsdERhdGEsXG4gICAgICAgICAgICBnZXRBY3Rpdml0eVRpdGxlOiB0aXRsZV8xLmRlZmF1bHQsXG4gICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZSxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6IFwiQWN0aXZpdHlTZWN0b3JcIixcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIGZ1bmN0aW9uIHJvdW5kRmxvYXQobnVtKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChudW0pLnRvRml4ZWQoMik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgdHlwZXM6IHR5cGVzLCByb3VuZEZsb2F0OiByb3VuZEZsb2F0LCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6IFwiQWN0aXZpdHlUYWdcIixcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcywgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIkFjdGl2aXR5VGl0bGVcIixcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMS5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIHJldHVybiB7IHR5cGVzOiB0eXBlcywgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciBMaW5rX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL2J1dHRvbnMvTGluay52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6IFwiQWN0aXZpdHlUcmFuc2FjdGlvbnNcIixcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJ0bjogTGlua192dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzEuaW5qZWN0KShcInR5cGVzXCIpO1xuICAgICAgICByZXR1cm4geyB0eXBlczogdHlwZXMsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG4vL2NvbXBvbmVudFxudmFyIExpbmtfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvYnV0dG9ucy9MaW5rLnZ1ZVwiKSk7XG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbnZhciBJbmRleF8xID0gcmVxdWlyZShcIi4vZWxlbWVudHMvSW5kZXhcIik7XG4vL2NvbXBvc2FibGVcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSW5kaWNhdG9yRGV0YWlsJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFRpdGxlRWxlbWVudDogSW5kZXhfMS5UaXRsZUVsZW1lbnQsXG4gICAgICAgIE1lYXN1cmU6IEluZGV4XzEuTWVhc3VyZSxcbiAgICAgICAgQXNjZW5kaW5nOiBJbmRleF8xLkFzY2VuZGluZyxcbiAgICAgICAgQWdncmVnYXRpb25TdGF0dXM6IEluZGV4XzEuQWdncmVnYXRpb25TdGF0dXMsXG4gICAgICAgIERlc2NyaXB0aW9uOiBJbmRleF8xLkRlc2NyaXB0aW9uLFxuICAgICAgICBSZWZlcmVuY2U6IEluZGV4XzEuUmVmZXJlbmNlLFxuICAgICAgICBCYXNlbGluZTogSW5kZXhfMS5CYXNlbGluZSxcbiAgICAgICAgRG9jdW1lbnRMaW5rOiBJbmRleF8xLkRvY3VtZW50TGluayxcbiAgICAgICAgUGVyaW9kOiBJbmRleF8xLlBlcmlvZCxcbiAgICAgICAgQnRuOiBMaW5rX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdWx0VGl0bGU6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBpbmRpY2F0b3I6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBwZXJpb2Q6IHtcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGxpbmtDbGFzc2VzID0gJ2ZsZXggaXRlbXMtY2VudGVyIHctZnVsbCBiZy13aGl0ZSByb3VuZGVkIHAtMiB0ZXh0LXNtIHRleHQtbi01MCBmb250LWJvbGQgbGVhZGluZy1ub3JtYWwgbWItMiBzaGFkb3ctZGVmYXVsdCc7XG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLCBpbmRpY2F0b3IgPSBfYS5pbmRpY2F0b3IsIGFjdGl2aXR5ID0gX2EuYWN0aXZpdHksIHBlcmlvZCA9IF9hLnBlcmlvZCwgcmVzdWx0VGl0bGUgPSBfYS5yZXN1bHRUaXRsZTtcbiAgICAgICAgdmFyIHNob3dTaWRlYmFyID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgcG9zaXRpb25ZID0gKDAsIHZ1ZV8xLnJlZikoMCk7XG4gICAgICAgIHZhciBzY3JlZW5XaWR0aCA9ICgwLCB2dWVfMS5yZWYpKDApO1xuICAgICAgICAvL2luZGljYXRvclxuICAgICAgICB2YXIgaW5kaWNhdG9yRGF0YSA9IGluZGljYXRvci52YWx1ZS5pbmRpY2F0b3I7XG4gICAgICAgIHZhciBwZXJpb2REYXRhID0gcGVyaW9kLnZhbHVlO1xuICAgICAgICAvLyB2dWUgcHJvdmlkZXNcbiAgICAgICAgdmFyIHBhcmVudERhdGEgPSB7XG4gICAgICAgICAgICBhY3Rpdml0eTogYWN0aXZpdHkudmFsdWUuaWQsXG4gICAgICAgICAgICByZXN1bHQ6IGluZGljYXRvci52YWx1ZS5yZXN1bHRfaWQsXG4gICAgICAgICAgICBpbmRpY2F0b3I6IGluZGljYXRvci52YWx1ZS5pZCxcbiAgICAgICAgfTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdwYXJlbnREYXRhJywgcGFyZW50RGF0YSk7XG4gICAgICAgIHZhciBhY3Rpdml0eUlkID0gYWN0aXZpdHkudmFsdWUuaWQsIGFjdGl2aXR5VGl0bGUgPSBhY3Rpdml0eS52YWx1ZS50aXRsZSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpLCByZXN1bHRJZCA9IGluZGljYXRvci52YWx1ZS5yZXN1bHRfaWQsIHJlc3VsdFRpdGxlZCA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKHJlc3VsdFRpdGxlLnZhbHVlWzBdLm5hcnJhdGl2ZSwgJ2VuJyksIHJlc3VsdExpbmsgPSBcIlwiLmNvbmNhdChhY3Rpdml0eUxpbmssIFwiL3Jlc3VsdC9cIikuY29uY2F0KHJlc3VsdElkKSwgaW5kaWNhdG9yTGluayA9IFwiL3Jlc3VsdC9cIi5jb25jYXQocmVzdWx0SWQsIFwiL2luZGljYXRvclwiKSwgaW5kaWNhdG9yVGl0bGUgPSAoMCwgdGl0bGVfMS5kZWZhdWx0KShpbmRpY2F0b3JEYXRhLnRpdGxlWzBdLm5hcnJhdGl2ZSwgJ2VuJyk7XG4gICAgICAgIHZhciBjYWxjV2lkdGggPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHNjcmVlbldpZHRoLnZhbHVlID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XG4gICAgICAgICAgICBpZiAoc2NyZWVuV2lkdGgudmFsdWUgPiAxMDI0KSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2hvd1NpZGViYXIudmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5hY3Rpdml0aWVzX2xhbmcueW91cl9hY3Rpdml0aWVzLFxuICAgICAgICAgICAgICAgIGxpbms6IFwiL2FjdGl2aXRpZXNcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICgwLCB0aXRsZV8xLmRlZmF1bHQpKGFjdGl2aXR5VGl0bGUsICdlbicpLFxuICAgICAgICAgICAgICAgIGxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHJlc3VsdFRpdGxlZCxcbiAgICAgICAgICAgICAgICBsaW5rOiByZXN1bHRMaW5rLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogaW5kaWNhdG9yVGl0bGUsXG4gICAgICAgICAgICAgICAgbGluazogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgICB2YXIgaGFuZGxlU2Nyb2xsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcG9zaXRpb25ZLnZhbHVlID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgIH07XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICAgICAgICBpZiAocHJvcHMudG9hc3QubWVzc2FnZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcHJvcHMudG9hc3QubWVzc2FnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBpc3RvcFZpc2libGUgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvblkudmFsdWUgPT09IDA7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzEub25Vbm1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNhbGNXaWR0aCk7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzEud2F0Y2gpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNob3dTaWRlYmFyLnZhbHVlOyB9LCBmdW5jdGlvbiAoc2lkZWJhcikge1xuICAgICAgICAgICAgaWYgKHNpZGViYXIpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGlua0NsYXNzZXM6IGxpbmtDbGFzc2VzLFxuICAgICAgICAgICAgaW5kaWNhdG9yVGl0bGU6IGluZGljYXRvclRpdGxlLFxuICAgICAgICAgICAgaW5kaWNhdG9yRGF0YTogaW5kaWNhdG9yRGF0YSxcbiAgICAgICAgICAgIGFjdGl2aXR5TGluazogYWN0aXZpdHlMaW5rLFxuICAgICAgICAgICAgcmVzdWx0TGluazogcmVzdWx0TGluayxcbiAgICAgICAgICAgIGluZGljYXRvckxpbms6IGluZGljYXRvckxpbmssXG4gICAgICAgICAgICBicmVhZGNydW1iRGF0YTogYnJlYWRjcnVtYkRhdGEsXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIHBlcmlvZERhdGE6IHBlcmlvZERhdGEsXG4gICAgICAgICAgICBzaG93U2lkZWJhcjogc2hvd1NpZGViYXIsXG4gICAgICAgICAgICBpc3RvcFZpc2libGU6IGlzdG9wVmlzaWJsZSxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZVxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuLy8gY29tcG9uZW50c1xudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBUYWJsZVBhZ2luYXRpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZVwiKSk7XG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbnZhciBEZWxldGVBY3Rpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvRGVsZXRlQWN0aW9uLnZ1ZVwiKSk7XG4vLyBjb21wb3NhYmxlXG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xudmFyIHRpdGxlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvdGl0bGVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdJbmRpY2F0b3JMaXN0JyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJ0bjogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2luYXRpb246IFRhYmxlUGFnaW5hdGlvbl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBQYWdlVGl0bGU6IFBhZ2VUaXRsZV92dWVfMS5kZWZhdWx0LFxuICAgICAgICBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIERlbGV0ZUFjdGlvbjogRGVsZXRlQWN0aW9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBhY3Rpdml0eToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHBhcmVudERhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBpbmRpY2F0b3JzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2FzdDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBfYSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgYWN0aXZpdHkgPSBfYS5hY3Rpdml0eSwgcGFyZW50RGF0YSA9IF9hLnBhcmVudERhdGE7XG4gICAgICAgIHZhciBhY3Rpdml0eUlkID0gYWN0aXZpdHkudmFsdWUuaWQsIGFjdGl2aXR5VGl0bGUgPSBhY3Rpdml0eS52YWx1ZS50aXRsZSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpLCByZXN1bHRJZCA9IHBhcmVudERhdGEudmFsdWUucmVzdWx0LmlkLCByZXN1bHRUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKHBhcmVudERhdGEudmFsdWUucmVzdWx0LnRpdGxlLCAnZW4nKSwgcmVzdWx0TGluayA9IFwiXCIuY29uY2F0KGFjdGl2aXR5TGluaywgXCIvcmVzdWx0L1wiKS5jb25jYXQocmVzdWx0SWQpLCBpbmRpY2F0b3JMaW5rID0gXCIvcmVzdWx0L1wiLmNvbmNhdChyZXN1bHRJZCwgXCIvaW5kaWNhdG9yXCIpO1xuICAgICAgICB2YXIgaW5kaWNhdG9yc0RhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHt9KTtcbiAgICAgICAgdmFyIGlzRW1wdHkgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5hY3Rpdml0aWVzX2xhbmcueW91cl9hY3Rpdml0aWVzLFxuICAgICAgICAgICAgICAgIGxpbms6ICcvYWN0aXZpdGllcycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAoMCwgdGl0bGVfMS5kZWZhdWx0KShhY3Rpdml0eVRpdGxlLCAnZW4nKSxcbiAgICAgICAgICAgICAgICBsaW5rOiBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiByZXN1bHRUaXRsZSxcbiAgICAgICAgICAgICAgICBsaW5rOiBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCwgXCIvcmVzdWx0L1wiKS5jb25jYXQocmVzdWx0SWQpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbGFuZ3VhZ2UuY29tbW9uX2xhbmcuaW5kaWNhdG9yX2xpc3QsXG4gICAgICAgICAgICAgICAgbGluazogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9yZXN1bHQvXCIuY29uY2F0KHJlc3VsdElkLCBcIi9pbmRpY2F0b3JzL3BhZ2UvMVwiKSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGluZGljYXRvcnNEYXRhLCByZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgaXNFbXB0eS52YWx1ZSA9IHJlc3BvbnNlLmRhdGEuZGF0YS5sZW5ndGggPyBmYWxzZSA6IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLnRvYXN0Lm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS50eXBlID0gcHJvcHMudG9hc3QudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIDUwMDApO1xuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU5hdmlnYXRlKHBhdGgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcGF0aDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmZXRjaExpc3RpbmdzKGFjdGl2ZV9wYWdlKSB7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAuZ2V0KFwiL3Jlc3VsdC9cIi5jb25jYXQocmVzdWx0SWQsIFwiL2luZGljYXRvcnMvcGFnZS9cIikgKyBhY3RpdmVfcGFnZSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpbmRpY2F0b3JzRGF0YSwgcmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgaXNFbXB0eS52YWx1ZSA9IHJlc3BvbnNlLmRhdGEgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBwcm92aWRlXG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgncGFyZW50SXRlbUlkJywgcmVzdWx0SWQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWN0aXZpdHlJZDogYWN0aXZpdHlJZCxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgaW5kaWNhdG9yc0RhdGE6IGluZGljYXRvcnNEYXRhLFxuICAgICAgICAgICAgZ2V0QWN0aXZpdHlUaXRsZTogdGl0bGVfMS5kZWZhdWx0LFxuICAgICAgICAgICAgZmV0Y2hMaXN0aW5nczogZmV0Y2hMaXN0aW5ncyxcbiAgICAgICAgICAgIHJlc3VsdExpbms6IHJlc3VsdExpbmssXG4gICAgICAgICAgICBpbmRpY2F0b3JMaW5rOiBpbmRpY2F0b3JMaW5rLFxuICAgICAgICAgICAgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhLFxuICAgICAgICAgICAgdG9hc3REYXRhOiB0b2FzdERhdGEsXG4gICAgICAgICAgICByZXN1bHRJZDogcmVzdWx0SWQsXG4gICAgICAgICAgICBoYW5kbGVOYXZpZ2F0ZTogaGFuZGxlTmF2aWdhdGUsXG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdJbmRpY2F0b3JBZ2dyZWdhdGlvblN0YXR1cycsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBzdGF0dXNEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzRGF0YTogc3RhdHVzRGF0YSwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiLi9JbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSW5kaWNhdG9yQmFzZWxpbmUnLFxuICAgIGNvbXBvbmVudHM6IHsgRG9jdW1lbnRMaW5rOiBJbmRleF8xLkRvY3VtZW50TGluayB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJhc2VUeXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGVsZW1lbnRTcGFjaW5nID0gJ21iLTEnO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgYmFzZWxpbmUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgbG9jYXRpb24gPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgdmFyIGxvY2F0aW9ucyA9IFtdO1xuICAgICAgICAgICAgbG9jYXRpb25zID0gZGF0YS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5yZWZlcmVuY2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBsYXN0TG9jYXRpb24gPSBsb2NhdGlvbnMuc2xpY2UoLTEpWzBdO1xuICAgICAgICAgICAgbG9jYXRpb25zID0gbG9jYXRpb25zLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgIGlmIChsb2NhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbnMuam9pbignLCAnKSArICcgJyArICdhbmQnICsgJyAnICsgbGFzdExvY2F0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RMb2NhdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZ1bmN0aW9uIHRvIHJldHVybiBkaW1lbnNpb25zIG9mIGJhc2VsaW5lXG4gICAgICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgZGltZW5zaW9ucyA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICB2YXIgZGltZW5zaW9ucyA9IFtdO1xuICAgICAgICAgICAgZGltZW5zaW9ucyA9IGRhdGEubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IChfYSA9IGl0ZW0ubmFtZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ01pc3NpbmcnLCB2YWx1ZSA9IChfYiA9IGl0ZW0udmFsdWUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICdNaXNzaW5nJztcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJjb2RlIC0gXCIuY29uY2F0KG5hbWUsIFwiLCB2YWx1ZSAtIChcIikuY29uY2F0KHZhbHVlLCBcIilcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBkaW1lbnNpb25zLmpvaW4oJzsgJyk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7IGJhc2VsaW5lOiBiYXNlbGluZSwgbG9jYXRpb246IGxvY2F0aW9uLCBkaW1lbnNpb25zOiBkaW1lbnNpb25zLCBlbGVtZW50U3BhY2luZzogZWxlbWVudFNwYWNpbmcsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSW5kaWNhdG9yRGVzY3JpcHRpb24nLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjVHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBkZXNjcmlwdGlvbkRhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyBkZXNjcmlwdGlvbkRhdGE6IGRlc2NyaXB0aW9uRGF0YSwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuLy9jb21wb3NhYmxlXG52YXIgdGl0bGVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS90aXRsZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0luZGljYXRvckRvY3VtZW50TGluaycsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogQXJyYXksXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGFsaWdubWVudDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJ2NlbnRlcicsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBkbERhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyBkbERhdGE6IGRsRGF0YSwgZ2V0QWN0aXZpdHlUaXRsZTogdGl0bGVfMS5kZWZhdWx0LCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0luZGljYXRvckFzY2VuZGluZycsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHJldHVybiB7IGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdJbmRpY2F0b3JNZWFzdXJlJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbWVhc3VyZVR5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgbWVhc3VyZURhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyBtZWFzdXJlRGF0YTogbWVhc3VyZURhdGEsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSW5kaWNhdG9yUGVyaW9kJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJ0bjogTGlua192dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgaWQgPSAoMCwgdnVlXzEuaW5qZWN0KSgncGFyZW50RGF0YScpO1xuICAgICAgICByZXR1cm4geyBpZDogaWQsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0luZGljYXRvclJlZmVyZW5jZScsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHJlZlR5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgcmVmRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7IHJlZkRhdGE6IHJlZkRhdGEsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnSW5kaWNhdG9yVGl0bGUnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZVR5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgdGl0bGVEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgdGl0bGVEYXRhOiB0aXRsZURhdGEsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbnZhciBjb3JlRWxlbWVudHNfMSA9IHJlcXVpcmUoXCJDb21wb3NhYmxlL2NvcmVFbGVtZW50c1wiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdBY3Rpdml0aWVzRWxlbWVudHMnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUlkOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8yLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBkcm9wZG93biA9ICgwLCB2dWVfMi5yZWYpKCk7XG4gICAgICAgIHZhciBkcm9wZG93bkJ0biA9ICgwLCB2dWVfMi5yZWYpKCk7XG4gICAgICAgIHZhciBfYiA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBzZWFyY2hCdG5WYWx1ZSA9IF9iWzBdLCBzZWFyY2hCdG5Ub2dnbGUgPSBfYlsxXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNlYXJjaCBmdW5jdGlvbmFsaXR5XG4gICAgICAgICAqL1xuICAgICAgICB2YXIgZWxlbWVudHMgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHNlYXJjaDogXCJcIixcbiAgICAgICAgICAgIHN0YXR1czogXCJcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBlbGVtZW50SWNvbnMgPSB7XG4gICAgICAgICAgICBjb21wbGV0ZWQ6IFwiZG91YmxlLXRpY2tcIixcbiAgICAgICAgICAgIG5vdF9jb21wbGV0ZWQ6IFwicmVkLWNyb3NzXCIsXG4gICAgICAgICAgICBjb3JlOiBcImNvcmVcIixcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGFzQXJyYXlEYXRhID0gT2JqZWN0LmVudHJpZXMoZGF0YS52YWx1ZSk7XG4gICAgICAgIHZhciBmaWx0ZXJlZEVsZW1lbnRzID0gKDAsIHZ1ZV8yLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZmlsdGVyZWQgPSBhc0FycmF5RGF0YS5maWx0ZXIoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IF9hWzBdLCB2YWx1ZSA9IF9hWzFdO1xuICAgICAgICAgICAgICAgIGlmICghZWxlbWVudHMuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoZWxlbWVudHMuc2VhcmNoLnRvTG93ZXJDYXNlKCkucmVwbGFjZShcIl9cIiwgXCJcIikucmVwbGFjZShcIi1cIiwgXCJfXCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVtlbGVtZW50cy5zdGF0dXNdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoZWxlbWVudHMuc2VhcmNoLnRvTG93ZXJDYXNlKCkucmVwbGFjZShcIl9cIiwgXCJcIikucmVwbGFjZShcIi1cIiwgXCJfXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGp1c3RTdHJpbmdzID0gT2JqZWN0LmZyb21FbnRyaWVzKGZpbHRlcmVkKTtcbiAgICAgICAgICAgIHJldHVybiBqdXN0U3RyaW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZGRpbmcgY29yZSBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICBPYmplY3Qua2V5cyhkYXRhLnZhbHVlKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgaWYgKCgwLCBjb3JlRWxlbWVudHNfMS5hY3Rpdml0eUNvcmVFbGVtZW50cykoKS5pbmNsdWRlcyhrZXkudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnZhbHVlW2tleV1bXCJjb3JlXCJdID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkcm9wZG93bkZpbHRlciA9IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICBlbGVtZW50cy5zdGF0dXMgPSBzO1xuICAgICAgICAgICAgc2VhcmNoQnRuVG9nZ2xlKCk7XG4gICAgICAgIH07XG4gICAgICAgICgwLCB2dWVfMi5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRyb3Bkb3duQnRuLnZhbHVlLmNvbnRhaW5zKGUudGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAhZHJvcGRvd24udmFsdWUuY29udGFpbnMoZS50YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaEJ0blZhbHVlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaEJ0blRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gZ2V0TGluayhoYXNfZGF0YSwgaW5kZXgpIHtcbiAgICAgICAgICAgIGlmIChoYXNfZGF0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIiNcIi5jb25jYXQoaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaW5kZXggPT0gXCJyZXN1bHRcIiB8fCBpbmRleCA9PSBcInRyYW5zYWN0aW9uc1wiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBpbmRleCA9PSBcInJlc3VsdFwiID8gXCJyZXN1bHRcIiA6IFwidHJhbnNhY3Rpb25cIjtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIvYWN0aXZpdHkvXCIuY29uY2F0KHByb3BzLmFjdGl2aXR5SWQsIFwiL1wiKS5jb25jYXQoZWxlbWVudCwgXCIvY3JlYXRlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwiL2FjdGl2aXR5L1wiLmNvbmNhdChwcm9wcy5hY3Rpdml0eUlkLCBcIi9cIikuY29uY2F0KGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHByb3BzOiBwcm9wcywgZGF0YTogZGF0YSwgZHJvcGRvd246IGRyb3Bkb3duLCBkcm9wZG93bkJ0bjogZHJvcGRvd25CdG4sIHNlYXJjaEJ0blZhbHVlOiBzZWFyY2hCdG5WYWx1ZSwgc2VhcmNoQnRuVG9nZ2xlOiBzZWFyY2hCdG5Ub2dnbGUsIGVsZW1lbnRzOiBlbGVtZW50cywgZWxlbWVudEljb25zOiBlbGVtZW50SWNvbnMsIGFzQXJyYXlEYXRhOiBhc0FycmF5RGF0YSwgZmlsdGVyZWRFbGVtZW50czogZmlsdGVyZWRFbGVtZW50cywgZHJvcGRvd25GaWx0ZXI6IGRyb3Bkb3duRmlsdGVyLCBnZXRMaW5rOiBnZXRMaW5rLCBhY3Rpdml0eUNvcmVFbGVtZW50czogY29yZUVsZW1lbnRzXzEuYWN0aXZpdHlDb3JlRWxlbWVudHMgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIG1vbWVudF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJtb21lbnRcIikpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbnZhciBjb3JlRWxlbWVudHNfMSA9IHJlcXVpcmUoXCJDb21wb3NhYmxlL2NvcmVFbGVtZW50c1wiKTtcbi8vY29tcG9uZW50c1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiQWN0aXZpdHkvZWxlbWVudHMvSW5kZXhcIik7XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbnZhciBFbGVtZW50U3RhdHVzX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3N0YXR1cy9FbGVtZW50U3RhdHVzLnZ1ZVwiKSk7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIikpO1xudmFyIFBvcHVwTW9kYWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvUG9wdXBNb2RhbC52dWVcIikpO1xudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdBY3Rpdml0eUVsZW1lbnQnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUlkOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlZDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIGRlbGV0ZVZhbHVlID0gX2JbMF0sIGRlbGV0ZVRvZ2dsZSA9IF9iWzFdO1xuICAgICAgICB2YXIgdHJhbnNsYXRpb24gPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICAvLyBjYWxsIGFwaSBmb3IgcHVibGlzaGluZ1xuICAgICAgICB2YXIgdG9hc3REYXRhID0gKDAsIHZ1ZV8yLmluamVjdCkoJ3RvYXN0RGF0YScpO1xuICAgICAgICB2YXIgbGF5b3V0ID0gJ2Jhc2lzLWZ1bGwgIGxnOmJhc2lzLTYvMTInO1xuICAgICAgICBpZiAocHJvcHMud2lkdGggPT09ICdmdWxsJykge1xuICAgICAgICAgICAgbGF5b3V0ID0gJ2Jhc2lzLWZ1bGwnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBtb21lbnRfMS5kZWZhdWx0KShkYXRlKS5mb3JtYXQoJ0xMJyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcm91bmRGbG9hdChudW0pIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KG51bSkudG9GaXhlZCgyKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVsZXRlQWN0aXZpdHlFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZGVsZXRlVmFsdWUudmFsdWUgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBkZWxldGVFbGVtZW50KGlkLCBlbGVtZW50KSB7XG4gICAgICAgICAgICBkZWxldGVWYWx1ZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLmRlbGV0ZShcIi9hcGkvYWN0aXZpdHkvXCIuY29uY2F0KGlkLCBcIi9cIikuY29uY2F0KGVsZW1lbnQpKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDMwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICBcIkNvdWxkbid0IGRlbGV0ZSB0aGUgYWN0aXZpdHkgdGl0bGUgZHVlIHRvIHN5c3RlbSBlcnJvci5cIjtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGRlbGV0ZVZhbHVlOiBkZWxldGVWYWx1ZSwgZGVsZXRlVG9nZ2xlOiBkZWxldGVUb2dnbGUsIHRyYW5zbGF0aW9uOiB0cmFuc2xhdGlvbiwgcHJvcHM6IHByb3BzLCB0b2FzdERhdGE6IHRvYXN0RGF0YSwgbGF5b3V0OiBsYXlvdXQsIGZvcm1hdERhdGU6IGZvcm1hdERhdGUsIHJvdW5kRmxvYXQ6IHJvdW5kRmxvYXQsIGRlbGV0ZUFjdGl2aXR5RWxlbWVudDogZGVsZXRlQWN0aXZpdHlFbGVtZW50LCBkZWxldGVFbGVtZW50OiBkZWxldGVFbGVtZW50LCBhY3Rpdml0eUNvcmVFbGVtZW50czogY29yZUVsZW1lbnRzXzEuYWN0aXZpdHlDb3JlRWxlbWVudHMsIEFjdGl2aXR5RGF0ZTogSW5kZXhfMS5BY3Rpdml0eURhdGUsIENvbmRpdGlvbnM6IEluZGV4XzEuQ29uZGl0aW9ucywgQ29udGFjdEluZm86IEluZGV4XzEuQ29udGFjdEluZm8sIERlc2NyaXB0aW9uOiBJbmRleF8xLkRlc2NyaXB0aW9uLCBIdW1hbml0YXJpYW5TY29wZTogSW5kZXhfMS5IdW1hbml0YXJpYW5TY29wZSwgSWF0aUlkZW50aWZpZXI6IEluZGV4XzEuSWF0aUlkZW50aWZpZXIsIExlZ2FjeURhdGE6IEluZGV4XzEuTGVnYWN5RGF0YSwgTG9jYXRpb246IEluZGV4XzEuTG9jYXRpb24sIE90aGVySWRlbnRpZmllcjogSW5kZXhfMS5PdGhlcklkZW50aWZpZXIsIFBhcnRpY2lwYXRpbmdPcmc6IEluZGV4XzEuUGFydGljaXBhdGluZ09yZywgUGxhbm5lZERpc2J1cnNlbWVudDogSW5kZXhfMS5QbGFubmVkRGlzYnVyc2VtZW50LCBQb2xpY3lNYXJrZXI6IEluZGV4XzEuUG9saWN5TWFya2VyLCBSZWNpcGllbnRDb3VudHJ5OiBJbmRleF8xLlJlY2lwaWVudENvdW50cnksIFJlY2lwaWVudFJlZ2lvbjogSW5kZXhfMS5SZWNpcGllbnRSZWdpb24sIFJlbGF0ZWRBY3Rpdml0eTogSW5kZXhfMS5SZWxhdGVkQWN0aXZpdHksIFJlcG9ydGluZ09yZ2FuaXphdGlvbjogSW5kZXhfMS5SZXBvcnRpbmdPcmdhbml6YXRpb24sIFNlY3RvcjogSW5kZXhfMS5TZWN0b3IsIFRhZzogSW5kZXhfMS5UYWcsIFRpdGxlRWxlbWVudDogSW5kZXhfMS5UaXRsZUVsZW1lbnQsIFRyYW5zYWN0aW9uczogSW5kZXhfMS5UcmFuc2FjdGlvbnMsIEJ0bjogTGlua192dWVfMS5kZWZhdWx0LCBTdGF0dXM6IEVsZW1lbnRTdGF0dXNfdnVlXzEuZGVmYXVsdCwgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCwgTW9kYWw6IFBvcHVwTW9kYWxfdnVlXzEuZGVmYXVsdCwgQnRuQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgQ3JlYXRlTW9kYWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL0NyZWF0ZU1vZGFsLnZ1ZVwiKSk7XG52YXIgY29yZV8xID0gcmVxdWlyZShcIkB2dWV1c2UvY29yZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnQWRkQWN0aXZpdHlCdXR0b24nLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgQ3JlYXRlTW9kYWw6IENyZWF0ZU1vZGFsX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgc3RhdGUgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2EgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgbW9kYWxWYWx1ZSA9IF9hWzBdLCBtb2RhbFRvZ2dsZSA9IF9hWzFdO1xuICAgICAgICB2YXIgbW9kZWxWaXNpYmxlID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9nZ2xlTW9kZWwgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIG1vZGVsVmlzaWJsZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgbGlDbGFzcyA9ICdibG9jayBwLTIuNSB0ZXh0LW4tNDAgdGV4dC10aW55IGxlYWRpbmctWzEuNV0gZm9udC1ib2xkIGhvdmVyOnRleHQtbi01MCBob3ZlcjpiZy1uLTEwJztcbiAgICAgICAgdmFyIGRyb3Bkb3duQnRuID0gKDAsIHZ1ZV8xLnJlZikoKTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRyb3Bkb3duQnRuLnZhbHVlLmNvbnRhaW5zKGUudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB0b2dnbGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzdGF0ZS5pc1Zpc2libGUgPSAhc3RhdGUuaXNWaXNpYmxlO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgICAgbGlDbGFzczogbGlDbGFzcyxcbiAgICAgICAgICAgIG1vZGVsVmlzaWJsZTogbW9kZWxWaXNpYmxlLFxuICAgICAgICAgICAgbW9kYWxWYWx1ZTogbW9kYWxWYWx1ZSxcbiAgICAgICAgICAgIHRvZ2dsZTogdG9nZ2xlLFxuICAgICAgICAgICAgbW9kYWxUb2dnbGU6IG1vZGFsVG9nZ2xlLFxuICAgICAgICAgICAgdG9nZ2xlTW9kZWw6IHRvZ2dsZU1vZGVsLFxuICAgICAgICAgICAgZHJvcGRvd25CdG46IGRyb3Bkb3duQnRuLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgaW5kZXhfMSA9IHJlcXVpcmUoXCJTdG9yZS9hY3Rpdml0aWVzL2luZGV4XCIpO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBDcmVhdGVNb2RhbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vQ3JlYXRlTW9kYWwudnVlXCIpKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vY29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbnZhciBQb3B1cE1vZGFsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1BvcHVwTW9kYWwudnVlXCIpKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vKipcbiAqICBHbG9iYWwgU3RhdGVcbiAqL1xudmFyIHN0b3JlID0gKDAsIGluZGV4XzEudXNlU3RvcmUpKCk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0FkZEFjdGl2aXR5QnV0dG9uJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIENyZWF0ZU1vZGFsOiBDcmVhdGVNb2RhbF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIE1vZGFsOiBQb3B1cE1vZGFsX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgc3RhdGUgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2EgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgbW9kYWxWYWx1ZSA9IF9hWzBdLCBtb2RhbFRvZ2dsZSA9IF9hWzFdO1xuICAgICAgICB2YXIgbW9kZWxWaXNpYmxlID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3RWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3RNZXNzYWdlID0gKDAsIHZ1ZV8xLnJlZikoJycpO1xuICAgICAgICB2YXIgdG9hc3RtZXNzYWdlVHlwZSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIHNob3dFcnJvcnBvcHVwID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgbWVzc2FnZSA9ICgwLCB2dWVfMS5yZWYpKCcnKTtcbiAgICAgICAgdmFyIHRvZ2dsZU1vZGVsID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICBtb2RlbFZpc2libGUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGxpQ2xhc3MgPSAnYmxvY2sgcC0yLjUgdGV4dC1uLTQwIHRleHQtdGlueSBsZWFkaW5nLVsxLjVdIGZvbnQtYm9sZCBob3Zlcjp0ZXh0LW4tNTAgaG92ZXI6Ymctbi0xMCc7XG4gICAgICAgIHZhciBkcm9wZG93bkJ0biA9ICgwLCB2dWVfMS5yZWYpKCk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkcm9wZG93bkJ0bi52YWx1ZS5jb250YWlucyhlLnRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBkb3dubG9hZEVycm9yKGZpbGVuYW1lLCB0ZXh0KSB7XG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6dGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04LCcgKyBlbmNvZGVVUklDb21wb25lbnQodGV4dCkpO1xuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgICAgIGVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvZ2dsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHN0YXRlLmlzVmlzaWJsZSA9ICFzdGF0ZS5pc1Zpc2libGU7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBkb3dubG9hZEVycm9yeG1sID0gZnVuY3Rpb24gKGNvdW50QWN0aXZpdGllcykge1xuICAgICAgICAgICAgc2hvd0Vycm9ycG9wdXAudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBxdWVyeVBhcmFtZXRlcnMgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnPycpO1xuICAgICAgICAgICAgdmFyIGFkZFF1ZXJ5UGFyYW1zID0gJyc7XG4gICAgICAgICAgICBpZiAocXVlcnlQYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIGFkZFF1ZXJ5UGFyYW1zID0gJyYnICsgcXVlcnlQYXJhbWV0ZXJzWzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGFwaVVybCA9ICcvYWN0aXZpdGllcy9kb3dubG9hZC14bWwvdHJ1ZT9hY3Rpdml0aWVzPWFsbCcgKyBhZGRRdWVyeVBhcmFtcztcbiAgICAgICAgICAgIGlmIChjb3VudEFjdGl2aXRpZXMgPiAwKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFjdGl2aXRpZXMgPSBzdG9yZS5zdGF0ZS5zZWxlY3RlZEFjdGl2aXRpZXMuam9pbignLCcpO1xuICAgICAgICAgICAgICAgIGFwaVVybCA9IFwiL2FjdGl2aXRpZXMvZG93bmxvYWQteG1sL3RydWU/YWN0aXZpdGllcz1bXCIuY29uY2F0KGFjdGl2aXRpZXMsIFwiXVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoYXBpVXJsKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuc3VjY2VzcyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdFZpc2liaWxpdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdG1lc3NhZ2VUeXBlLnZhbHVlID0gcmVzLmRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiAodG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2UpOyB9LCAxNTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24veG1sJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IHJlcy5oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgZG93bmxvYWRYbWwgPSBmdW5jdGlvbiAoY291bnRBY3Rpdml0aWVzKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlQYXJhbWV0ZXJzID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTtcbiAgICAgICAgICAgIHZhciBhZGRRdWVyeVBhcmFtcyA9ICcnO1xuICAgICAgICAgICAgaWYgKHF1ZXJ5UGFyYW1ldGVycy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICBhZGRRdWVyeVBhcmFtcyA9ICcmJyArIHF1ZXJ5UGFyYW1ldGVyc1sxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhcGlVcmwgPSAnL2FjdGl2aXRpZXMvZG93bmxvYWQteG1sP2FjdGl2aXRpZXM9YWxsJyArIGFkZFF1ZXJ5UGFyYW1zO1xuICAgICAgICAgICAgaWYgKGNvdW50QWN0aXZpdGllcyA+IDApIHtcbiAgICAgICAgICAgICAgICB2YXIgYWN0aXZpdGllcyA9IHN0b3JlLnN0YXRlLnNlbGVjdGVkQWN0aXZpdGllcy5qb2luKCcsJyk7XG4gICAgICAgICAgICAgICAgYXBpVXJsID0gXCIvYWN0aXZpdGllcy9kb3dubG9hZC14bWw/YWN0aXZpdGllcz1bXCIuY29uY2F0KGFjdGl2aXRpZXMsIFwiXVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoYXBpVXJsKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5zdWNjZXNzID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS54bWxfZXJyb3IgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dFcnJvcnBvcHVwLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS52YWx1ZSA9IHJlcy5kYXRhLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2FzdG1lc3NhZ2VUeXBlLnZhbHVlID0gcmVzLmRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRvYXN0VmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlKTsgfSwgMTUwMDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24veG1sJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IHJlcy5oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgZG93bmxvYWRDc3YgPSBmdW5jdGlvbiAoY291bnRBY3Rpdml0aWVzKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlQYXJhbWV0ZXJzID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTtcbiAgICAgICAgICAgIHZhciBhZGRRdWVyeVBhcmFtcyA9ICcnO1xuICAgICAgICAgICAgaWYgKHF1ZXJ5UGFyYW1ldGVycy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICBhZGRRdWVyeVBhcmFtcyA9ICcmJyArIHF1ZXJ5UGFyYW1ldGVyc1sxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhcGlVcmwgPSAnL2FjdGl2aXRpZXMvZG93bmxvYWQtY3N2P2FjdGl2aXRpZXM9YWxsJyArIGFkZFF1ZXJ5UGFyYW1zO1xuICAgICAgICAgICAgaWYgKGNvdW50QWN0aXZpdGllcyA+IDApIHtcbiAgICAgICAgICAgICAgICB2YXIgYWN0aXZpdGllcyA9IHN0b3JlLnN0YXRlLnNlbGVjdGVkQWN0aXZpdGllcy5qb2luKCcsJyk7XG4gICAgICAgICAgICAgICAgYXBpVXJsID0gXCIvYWN0aXZpdGllcy9kb3dubG9hZC1jc3Y/YWN0aXZpdGllcz1bXCIuY29uY2F0KGFjdGl2aXRpZXMsIFwiXVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoYXBpVXJsKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuc3VjY2VzcyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdFZpc2liaWxpdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdG1lc3NhZ2VUeXBlLnZhbHVlID0gcmVzLmRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiAodG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2UpOyB9LCAxNTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vY3N2JyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IHJlcy5oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RvcmU6IHN0b3JlLFxuICAgICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgICAgbGlDbGFzczogbGlDbGFzcyxcbiAgICAgICAgICAgIG1vZGVsVmlzaWJsZTogbW9kZWxWaXNpYmxlLFxuICAgICAgICAgICAgbW9kYWxWYWx1ZTogbW9kYWxWYWx1ZSxcbiAgICAgICAgICAgIHRvZ2dsZTogdG9nZ2xlLFxuICAgICAgICAgICAgbW9kYWxUb2dnbGU6IG1vZGFsVG9nZ2xlLFxuICAgICAgICAgICAgdG9nZ2xlTW9kZWw6IHRvZ2dsZU1vZGVsLFxuICAgICAgICAgICAgZHJvcGRvd25CdG46IGRyb3Bkb3duQnRuLFxuICAgICAgICAgICAgZG93bmxvYWRDc3Y6IGRvd25sb2FkQ3N2LFxuICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5OiB0b2FzdFZpc2liaWxpdHksXG4gICAgICAgICAgICB0b2FzdE1lc3NhZ2U6IHRvYXN0TWVzc2FnZSxcbiAgICAgICAgICAgIHRvYXN0bWVzc2FnZVR5cGU6IHRvYXN0bWVzc2FnZVR5cGUsXG4gICAgICAgICAgICBkb3dubG9hZFhtbDogZG93bmxvYWRYbWwsXG4gICAgICAgICAgICBNb2RhbDogUG9wdXBNb2RhbF92dWVfMS5kZWZhdWx0LFxuICAgICAgICAgICAgc2hvd0Vycm9ycG9wdXA6IHNob3dFcnJvcnBvcHVwLFxuICAgICAgICAgICAgZG93bmxvYWRFcnJvcnhtbDogZG93bmxvYWRFcnJvcnhtbCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBkb3dubG9hZEVycm9yOiBkb3dubG9hZEVycm9yLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uLy4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ0VsZW1lbnROb3RlJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICByZXR1cm4geyBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgQWRkQWN0aXZpdHlCdXR0b25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vQWRkQWN0aXZpdHlCdXR0b24udnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnRW1wdHlBY3Rpdml0eScsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBBY3Rpdml0eUJ1dHRvbjogQWRkQWN0aXZpdHlCdXR0b25fdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1snZ2xvYmFsTGFuZyddO1xuICAgICAgICB2YXIgc3RhdGUgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGRpc21pc3M6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4geyBzdGF0ZTogc3RhdGUsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgRG93bmxvYWRBY3Rpdml0eUJ1dHRvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9Eb3dubG9hZEFjdGl2aXR5QnV0dG9uLnZ1ZVwiKSk7XG52YXIgQWRkQWN0aXZpdHlCdXR0b25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vQWRkQWN0aXZpdHlCdXR0b24udnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG52YXIgUmVmcmVzaFRvYXN0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJBY3Rpdml0eS9idWxrLXB1Ymxpc2gvUmVmcmVzaFRvYXN0LnZ1ZVwiKSk7XG52YXIgUHVibGlzaFNlbGVjdGVkX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJBY3Rpdml0eS9idWxrLXB1Ymxpc2gvUHVibGlzaFNlbGVjdGVkLnZ1ZVwiKSk7XG52YXIgRGVsZXRlQnV0dG9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL2J1dHRvbnMvRGVsZXRlQnV0dG9uLnZ1ZVwiKSk7XG52YXIgRXJyb3JQb3BVcF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9FcnJvclBvcFVwLnZ1ZVwiKSk7XG4vLyBWdWV4IFN0b3JlXG52YXIgaW5kZXhfMSA9IHJlcXVpcmUoXCJTdG9yZS9hY3Rpdml0aWVzL2luZGV4XCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ1BhZ2VUaXRsZScsXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIHN0b3JlID0gKDAsIGluZGV4XzEudXNlU3RvcmUpKCk7XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIuaW5qZWN0KSgndG9hc3REYXRhJyk7XG4gICAgICAgIHZhciBlcnJvckRhdGEgPSAoMCwgdnVlXzIuaW5qZWN0KSgnZXJyb3JEYXRhJyk7XG4gICAgICAgIHZhciByZWZyZXNoVG9hc3RNc2cgPSAoMCwgdnVlXzIuaW5qZWN0KSgncmVmcmVzaFRvYXN0TXNnJyk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgc3RvcmU6IHN0b3JlLCB0b2FzdE1lc3NhZ2U6IHRvYXN0TWVzc2FnZSwgZXJyb3JEYXRhOiBlcnJvckRhdGEsIHJlZnJlc2hUb2FzdE1zZzogcmVmcmVzaFRvYXN0TXNnLCBEb3dubG9hZEFjdGl2aXR5QnV0dG9uOiBEb3dubG9hZEFjdGl2aXR5QnV0dG9uX3Z1ZV8xLmRlZmF1bHQsIEFkZEFjdGl2aXR5QnV0dG9uOiBBZGRBY3Rpdml0eUJ1dHRvbl92dWVfMS5kZWZhdWx0LCBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQsIFJlZnJlc2hUb2FzdE1lc3NhZ2U6IFJlZnJlc2hUb2FzdF92dWVfMS5kZWZhdWx0LCBQdWJsaXNoU2VsZWN0ZWQ6IFB1Ymxpc2hTZWxlY3RlZF92dWVfMS5kZWZhdWx0LCBEZWxldGVCdXR0b246IERlbGV0ZUJ1dHRvbl92dWVfMS5kZWZhdWx0LCBFcnJvclBvcFVwOiBFcnJvclBvcFVwX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdTaWRlYmFySGVscEJsb2NrJyxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIG1vbWVudF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJtb21lbnRcIikpO1xudmFyIGNvcmVfMSA9IHJlcXVpcmUoXCJAdnVldXNlL2NvcmVcIik7XG4vLyBWdWV4IFN0b3JlXG52YXIgaW5kZXhfMSA9IHJlcXVpcmUoXCJTdG9yZS9hY3Rpdml0aWVzL2luZGV4XCIpO1xudmFyIFByZXZpb3VzbHlQdWJsaXNoZWRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc3RhdHVzL1ByZXZpb3VzbHlQdWJsaXNoZWQudnVlXCIpKTtcbnZhciBQdWJsaXNoQnV0dG9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL2J1dHRvbnMvUHVibGlzaEJ1dHRvbi52dWVcIikpO1xudmFyIFVuUHVibGlzaEJ1dHRvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL1VuUHVibGlzaEJ1dHRvbi52dWVcIikpO1xuLy8gaW1wb3J0IFNoaW1tZXIgZnJvbSBcIkNvbXBvbmVudHMvU2hpbW1lckxvYWRpbmcudnVlXCI7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVGFibGVMYXlvdXQnLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIHNlbGVjdEFsbFZhbHVlID0gX2JbMF0sIHNlbGVjdEFsbFRvZ2dsZSA9IF9iWzFdO1xuICAgICAgICB2YXIgc3RvcmUgPSAoMCwgaW5kZXhfMS51c2VTdG9yZSkoKTtcbiAgICAgICAgZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZyb21Ob3coKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b2dnbGVTZWxlY3RBbGwoYWN0aXZpdGllcywgc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgICAgIGlmICghc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgaWRzID0gW107XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgZGF0dW0gaW4gYWN0aXZpdGllcykge1xuICAgICAgICAgICAgICAgICAgICBpZHMucHVzaChhY3Rpdml0aWVzW2RhdHVtXS5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCd1cGRhdGVTZWxlY3RlZEFjdGl2aXRpZXMnLCBpZHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ3VwZGF0ZVNlbGVjdGVkQWN0aXZpdGllcycsIFtdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlbGVjdEFsbFRvZ2dsZSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vU29ydGluZyBieSB1cGRhdGVfYXRcbiAgICAgICAgdmFyIGN1cnJlbnRVUkwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gJycsIGRpcmVjdGlvbiA9ICdhc2MnO1xuICAgICAgICB2YXIgc29ydGluZ0RpcmVjdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT09ICdhc2MnID8gJ2Rlc2NlbmRpbmcnIDogJ2FzY2VuZGluZyc7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBzb3J0QnlEYXRlVXJsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgICAgICAgICAgIHZhciBxdWVyeVN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gsIHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnlTdHJpbmcpO1xuICAgICAgICAgICAgICAgIHF1ZXJ5ID0gKF9hID0gdXJsUGFyYW1zLmdldCgncScpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJztcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSB1cmxQYXJhbXMuZ2V0KCdkaXJlY3Rpb24nKSA9PT0gJ2Rlc2MnID8gJ2FzYycgOiAnZGVzYyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gXCI/cT1cIi5jb25jYXQocXVlcnksIFwiJm9yZGVyQnk9dXBkYXRlZF9hdCZkaXJlY3Rpb249XCIpLmNvbmNhdChkaXJlY3Rpb24pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHNlbGVjdEFsbFZhbHVlOiBzZWxlY3RBbGxWYWx1ZSwgc2VsZWN0QWxsVG9nZ2xlOiBzZWxlY3RBbGxUb2dnbGUsIHN0b3JlOiBzdG9yZSwgZm9ybWF0RGF0ZTogZm9ybWF0RGF0ZSwgdG9nZ2xlU2VsZWN0QWxsOiB0b2dnbGVTZWxlY3RBbGwsIGN1cnJlbnRVUkw6IGN1cnJlbnRVUkwsIHF1ZXJ5OiBxdWVyeSwgZGlyZWN0aW9uOiBkaXJlY3Rpb24sIHNvcnRpbmdEaXJlY3Rpb246IHNvcnRpbmdEaXJlY3Rpb24sIHNvcnRCeURhdGVVcmw6IHNvcnRCeURhdGVVcmwsIFByZXZpb3VzbHlQdWJsaXNoZWQ6IFByZXZpb3VzbHlQdWJsaXNoZWRfdnVlXzEuZGVmYXVsdCwgUHVibGlzaDogUHVibGlzaEJ1dHRvbl92dWVfMS5kZWZhdWx0LCBVblB1Ymxpc2g6IFVuUHVibGlzaEJ1dHRvbl92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbi8vY29tcG9uZW50XG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbnZhciBQYWdlVGl0bGVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiLi9lbGVtZW50cy9JbmRleFwiKTtcbi8vY29tcG9zYWJsZVxudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUGVyaW9kRGV0YWlsJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFRhcmdldFZhbHVlOiBJbmRleF8xLlRhcmdldFZhbHVlLFxuICAgICAgICBBY3R1YWxWYWx1ZTogSW5kZXhfMS5BY3R1YWxWYWx1ZSxcbiAgICAgICAgQnRuOiBMaW5rX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcGFyZW50RGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHBlcmlvZDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGxpbmtDbGFzc2VzID0gJ2ZsZXggaXRlbXMtY2VudGVyIHctZnVsbCBiZy13aGl0ZSByb3VuZGVkIHAtMiB0ZXh0LXNtIHRleHQtbi01MCBmb250LWJvbGQgbGVhZGluZy1ub3JtYWwgbWItMiBzaGFkb3ctZGVmYXVsdCc7XG4gICAgICAgIHZhciBfYSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgcGVyaW9kID0gX2EucGVyaW9kLCBhY3Rpdml0eSA9IF9hLmFjdGl2aXR5LCBwYXJlbnREYXRhID0gX2EucGFyZW50RGF0YSwgdHlwZXMgPSBfYS50eXBlcztcbiAgICAgICAgdmFyIHRvYXN0RGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgc2hvd1NpZGViYXIgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIC8vIHZ1ZSBwcm92aWRlXG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgndHlwZXMnLCB0eXBlcy52YWx1ZSk7XG4gICAgICAgIC8vaW5kaWNhdG9yXG4gICAgICAgIHZhciBwZXJpb2REYXRhID0gcGVyaW9kLnZhbHVlLnBlcmlvZDtcbiAgICAgICAgLy90aXRsZXNcbiAgICAgICAgdmFyIGFjdGl2aXR5SWQgPSBhY3Rpdml0eS52YWx1ZS5pZCwgYWN0aXZpdHlUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKGFjdGl2aXR5LnZhbHVlLnRpdGxlLCAnZW4nKSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpLCByZXN1bHRJZCA9IHBhcmVudERhdGEudmFsdWUucmVzdWx0LmlkLCByZXN1bHRUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKHBhcmVudERhdGEudmFsdWUucmVzdWx0LnRpdGxlLCAnZW4nKSwgcmVzdWx0TGluayA9IFwiXCIuY29uY2F0KGFjdGl2aXR5TGluaywgXCIvcmVzdWx0L1wiKS5jb25jYXQocmVzdWx0SWQpLCBpbmRpY2F0b3JJZCA9IHBhcmVudERhdGEudmFsdWUuaW5kaWNhdG9yLmlkLCBpbmRpY2F0b3JUaXRsZSA9ICgwLCB0aXRsZV8xLmRlZmF1bHQpKHBhcmVudERhdGEudmFsdWUuaW5kaWNhdG9yLnRpdGxlLCAnZW4nKSwgaW5kaWNhdG9yTGluayA9IFwiL3Jlc3VsdC9cIi5jb25jYXQocmVzdWx0SWQsIFwiL2luZGljYXRvci9cIikuY29uY2F0KGluZGljYXRvcklkKSwgcGVyaW9kTGluayA9IFwiL2luZGljYXRvci9cIi5jb25jYXQoaW5kaWNhdG9ySWQsIFwiL3BlcmlvZFwiKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5hY3R0aXZpdGllc19sYW5nLnlvdXJfYWN0aXZpdGllcyxcbiAgICAgICAgICAgICAgICBsaW5rOiBcIi9hY3Rpdml0aWVzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBhY3Rpdml0eVRpdGxlLFxuICAgICAgICAgICAgICAgIGxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHJlc3VsdFRpdGxlLFxuICAgICAgICAgICAgICAgIGxpbms6IHJlc3VsdExpbmssXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBpbmRpY2F0b3JUaXRsZSxcbiAgICAgICAgICAgICAgICBsaW5rOiBpbmRpY2F0b3JMaW5rLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbGFuZ3VhZ2UuY29tbW9uX2xhbmcucGVyaW9kLFxuICAgICAgICAgICAgICAgIGxpbms6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAocHJvcHMudG9hc3QubWVzc2FnZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcHJvcHMudG9hc3QubWVzc2FnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaW5rQ2xhc3NlczogbGlua0NsYXNzZXMsXG4gICAgICAgICAgICBwZXJpb2REYXRhOiBwZXJpb2REYXRhLFxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsXG4gICAgICAgICAgICBicmVhZGNydW1iRGF0YTogYnJlYWRjcnVtYkRhdGEsXG4gICAgICAgICAgICBhY3Rpdml0eUxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIHJlc3VsdExpbms6IHJlc3VsdExpbmssXG4gICAgICAgICAgICBpbmRpY2F0b3JMaW5rOiBpbmRpY2F0b3JMaW5rLFxuICAgICAgICAgICAgcGVyaW9kTGluazogcGVyaW9kTGluayxcbiAgICAgICAgICAgIHRvYXN0RGF0YTogdG9hc3REYXRhLFxuICAgICAgICAgICAgc2hvd1NpZGViYXI6IHNob3dTaWRlYmFyLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuLy8gY29tcG9uZW50c1xudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBUYWJsZVBhZ2luYXRpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZVwiKSk7XG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbnZhciBEZWxldGVBY3Rpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvRGVsZXRlQWN0aW9uLnZ1ZVwiKSk7XG4vLyBjb21wb3NhYmxlXG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xudmFyIHRpdGxlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvdGl0bGVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdQZXJpb2RMaXN0JyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJ0bjogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2luYXRpb246IFRhYmxlUGFnaW5hdGlvbl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBQYWdlVGl0bGU6IFBhZ2VUaXRsZV92dWVfMS5kZWZhdWx0LFxuICAgICAgICBUb2FzdDogVG9hc3RNZXNzYWdlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIERlbGV0ZUFjdGlvbjogRGVsZXRlQWN0aW9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBhY3Rpdml0eToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHBhcmVudERhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBwZXJpb2Q6IHtcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvYXN0OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIF9hID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLCBhY3Rpdml0eSA9IF9hLmFjdGl2aXR5LCBwYXJlbnREYXRhID0gX2EucGFyZW50RGF0YTtcbiAgICAgICAgdmFyIGFjdGl2aXR5SWQgPSBhY3Rpdml0eS52YWx1ZS5pZCwgYWN0aXZpdHlUaXRsZSA9IGFjdGl2aXR5LnZhbHVlLnRpdGxlLCBhY3Rpdml0eUxpbmsgPSBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCksIHJlc3VsdFRpdGxlID0gcGFyZW50RGF0YS52YWx1ZS5yZXN1bHQudGl0bGUsIHJlc3VsdElkID0gcGFyZW50RGF0YS52YWx1ZS5yZXN1bHQuaWQsIHJlc3VsdExpbmsgPSBcIlwiLmNvbmNhdChhY3Rpdml0eUxpbmssIFwiL3Jlc3VsdC9cIikuY29uY2F0KHJlc3VsdElkKSwgaW5kaWNhdG9yVGl0bGUgPSBwYXJlbnREYXRhLnZhbHVlLmluZGljYXRvci50aXRsZSwgaW5kaWNhdG9ySWQgPSBwYXJlbnREYXRhLnZhbHVlLmluZGljYXRvci5pZCwgaW5kaWNhdG9yTGluayA9IFwiL3Jlc3VsdC9cIi5jb25jYXQocmVzdWx0SWQsIFwiL2luZGljYXRvci9cIikuY29uY2F0KGluZGljYXRvcklkKSwgcGVyaW9kTGluayA9IFwiL2luZGljYXRvci9cIi5jb25jYXQoaW5kaWNhdG9ySWQsIFwiL3BlcmlvZFwiKTtcbiAgICAgICAgdmFyIHBlcmlvZHNEYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7fSk7XG4gICAgICAgIHZhciBpc0VtcHR5ID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgdG9hc3REYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCcmVhZGNydW1iIGRhdGFcbiAgICAgICAgICovXG4gICAgICAgIHZhciBicmVhZGNydW1iRGF0YSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbGFuZ3VhZ2UuYWN0aXZpdGllc19sYW5nLnlvdXJfYWN0aXZpdGllcyxcbiAgICAgICAgICAgICAgICBsaW5rOiAnL2FjdGl2aXR5JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICgwLCB0aXRsZV8xLmRlZmF1bHQpKGFjdGl2aXR5VGl0bGUsICdlbicpLFxuICAgICAgICAgICAgICAgIGxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICgwLCB0aXRsZV8xLmRlZmF1bHQpKHJlc3VsdFRpdGxlLCAnZW4nKSxcbiAgICAgICAgICAgICAgICBsaW5rOiByZXN1bHRMaW5rLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogKDAsIHRpdGxlXzEuZGVmYXVsdCkoaW5kaWNhdG9yVGl0bGUsICdlbicpLFxuICAgICAgICAgICAgICAgIGxpbms6IGluZGljYXRvckxpbmssXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5jb21tb25fbGFuZy5wZXJpb2RzX2xpc3QsXG4gICAgICAgICAgICAgICAgbGluazogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9pbmRpY2F0b3IvXCIuY29uY2F0KGluZGljYXRvcklkLCBcIi9wZXJpb2RzL3BhZ2UvMVwiKSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBlcmlvZHNEYXRhLCByZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgaXNFbXB0eS52YWx1ZSA9IHJlc3BvbnNlLmRhdGEuZGF0YS5sZW5ndGggPyBmYWxzZSA6IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLnRvYXN0Lm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS50eXBlID0gcHJvcHMudG9hc3QudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIDUwMDApO1xuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGZldGNoTGlzdGluZ3MoYWN0aXZlX3BhZ2UpIHtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5nZXQoXCIvaW5kaWNhdG9yL1wiLmNvbmNhdChpbmRpY2F0b3JJZCwgXCIvcGVyaW9kcy9wYWdlL1wiKSArIGFjdGl2ZV9wYWdlKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBlcmlvZHNEYXRhLCByZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICBpc0VtcHR5LnZhbHVlID0gcmVzcG9uc2UuZGF0YSA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU5hdmlnYXRlKHBhdGgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcGF0aDtcbiAgICAgICAgfVxuICAgICAgICAvLyBwcm92aWRlXG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgncGFyZW50SXRlbUlkJywgaW5kaWNhdG9ySWQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhLFxuICAgICAgICAgICAgaW5kaWNhdG9yTGluazogaW5kaWNhdG9yTGluayxcbiAgICAgICAgICAgIHBlcmlvZExpbms6IHBlcmlvZExpbmssXG4gICAgICAgICAgICBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCxcbiAgICAgICAgICAgIHBlcmlvZHNEYXRhOiBwZXJpb2RzRGF0YSxcbiAgICAgICAgICAgIGdldEFjdGl2aXR5VGl0bGU6IHRpdGxlXzEuZGVmYXVsdCxcbiAgICAgICAgICAgIGZldGNoTGlzdGluZ3M6IGZldGNoTGlzdGluZ3MsXG4gICAgICAgICAgICBpbmRpY2F0b3JJZDogaW5kaWNhdG9ySWQsXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIGhhbmRsZU5hdmlnYXRlOiBoYW5kbGVOYXZpZ2F0ZSxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZVxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbi8vIGNvbXBvbmVudFxudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiQWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9JbmRleFwiKTtcbi8vY29tcG9zYWJsZVxudmFyIHV0aWxzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvdXRpbHNcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdBY3R1YWxWYWx1ZScsXG4gICAgY29tcG9uZW50czogeyBEb2N1bWVudExpbms6IEluZGV4XzEuRG9jdW1lbnRMaW5rIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIC8vIHZ1ZSBpbmplY3RcbiAgICAgICAgdmFyIGRsVHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICB2YXIgZWxlbWVudFNwYWNpbmcgPSAnbWItMSc7XG4gICAgICAgIHZhciBhY3R1YWxWYWx1ZSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY3R1YWxWYWx1ZTogYWN0dWFsVmFsdWUsXG4gICAgICAgICAgICBlbGVtZW50U3BhY2luZzogZWxlbWVudFNwYWNpbmcsXG4gICAgICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24sXG4gICAgICAgICAgICBnZXRMb2NhdGlvbjogdXRpbHNfMS5kZWZhdWx0LFxuICAgICAgICAgICAgZGxUeXBlOiBkbFR5cGUsXG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuLy8gY29tcG9uZW50XG52YXIgSW5kZXhfMSA9IHJlcXVpcmUoXCJBY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0luZGV4XCIpO1xuLy9jb21wb3NhYmxlXG52YXIgdXRpbHNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS91dGlsc1wiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogXCJUYXJnZXRWYWx1ZVwiLFxuICAgIGNvbXBvbmVudHM6IHsgRG9jdW1lbnRMaW5rOiBJbmRleF8xLkRvY3VtZW50TGluayB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICAvLyB2dWUgaW5qZWN0XG4gICAgICAgIC8vIGNvbnN0IGxhbmd1YWdlVHlwZSA9IGluamVjdCgndHlwZXMnKS5sYW5ndWFnZTtcbiAgICAgICAgdmFyIGRsVHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKFwidHlwZXNcIik7XG4gICAgICAgIHZhciBlbGVtZW50U3BhY2luZyA9IFwibWItMVwiO1xuICAgICAgICB2YXIgdGFyZ2V0VmFsdWUgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFyZ2V0VmFsdWU6IHRhcmdldFZhbHVlLFxuICAgICAgICAgICAgZWxlbWVudFNwYWNpbmc6IGVsZW1lbnRTcGFjaW5nLFxuICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLFxuICAgICAgICAgICAgZ2V0TG9jYXRpb246IHV0aWxzXzEuZGVmYXVsdCxcbiAgICAgICAgICAgIC8vIGxhbmd1YWdlVHlwZSxcbiAgICAgICAgICAgIGRsVHlwZTogZGxUeXBlLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbi8vY29tcG9uZW50XG52YXIgUmVzdWx0RWxlbWVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9SZXN1bHRFbGVtZW50LnZ1ZVwiKSk7XG52YXIgSW5kaWNhdG9yX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJBY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL0luZGljYXRvci52dWVcIikpO1xudmFyIExpbmtfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvYnV0dG9ucy9MaW5rLnZ1ZVwiKSk7XG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbi8vY29tcG9zYWJsZVxudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUmVzdWx0RGV0YWlsJyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFJlc3VsdEVsZW1lbnQ6IFJlc3VsdEVsZW1lbnRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgSW5kaWNhdG9yOiBJbmRpY2F0b3JfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgQnRuOiBMaW5rX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2FzdDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgbGlua0NsYXNzZXMgPSAnZmxleCBpdGVtcy1jZW50ZXIgdy1mdWxsIGJnLXdoaXRlIHJvdW5kZWQgcC0yIHRleHQtc20gdGV4dC1uLTUwIGZvbnQtYm9sZCBsZWFkaW5nLW5vcm1hbCBtYi0yIHNoYWRvdy1kZWZhdWx0JztcbiAgICAgICAgdmFyIHBvc2l0aW9uWSA9ICgwLCB2dWVfMS5yZWYpKDApO1xuICAgICAgICB2YXIgc2hvd1NpZGViYXIgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBzY3JlZW5XaWR0aCA9ICgwLCB2dWVfMS5yZWYpKDApO1xuICAgICAgICB2YXIgX2EgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcyksIHJlc3VsdCA9IF9hLnJlc3VsdCwgYWN0aXZpdHkgPSBfYS5hY3Rpdml0eTtcbiAgICAgICAgdmFyIGhhc0luZGljYXRvcnMgPSByZXN1bHQudmFsdWUuaW5kaWNhdG9ycy5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB2YXIgcmVzdWx0c0RhdGEgPSByZXN1bHQudmFsdWUucmVzdWx0O1xuICAgICAgICB2YXIgYWN0aXZpdHlJZCA9IGFjdGl2aXR5LnZhbHVlLmlkLCBhY3Rpdml0eVRpdGxlID0gYWN0aXZpdHkudmFsdWUudGl0bGUsIGFjdGl2aXR5TGluayA9IFwiL2FjdGl2aXR5L1wiLmNvbmNhdChhY3Rpdml0eUlkKSwgcmVzdWx0VGl0bGUgPSAoMCwgdGl0bGVfMS5kZWZhdWx0KShyZXN1bHRzRGF0YS50aXRsZVswXS5uYXJyYXRpdmUsICdlbicpLCByZXN1bHRMaW5rID0gXCJcIi5jb25jYXQoYWN0aXZpdHlMaW5rLCBcIi9yZXN1bHQvXCIpLmNvbmNhdChyZXN1bHQudmFsdWUuaWQpO1xuICAgICAgICB2YXIgaGFuZGxlU2Nyb2xsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcG9zaXRpb25ZLnZhbHVlID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5hY3Rpdml0aWVzX2xhbmcueW91cl9hY3Rpdml0aWVzLFxuICAgICAgICAgICAgICAgIGxpbms6IFwiL2FjdGl2aXRpZXNcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICgwLCB0aXRsZV8xLmRlZmF1bHQpKGFjdGl2aXR5VGl0bGUsICdlbicpLFxuICAgICAgICAgICAgICAgIGxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHJlc3VsdFRpdGxlLFxuICAgICAgICAgICAgICAgIGxpbms6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgdmFyIGlzdG9wVmlzaWJsZSA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uWS52YWx1ZSA9PT0gMDtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNhbGNXaWR0aCk7XG4gICAgICAgICAgICBpZiAocHJvcHMudG9hc3QubWVzc2FnZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGU7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcHJvcHMudG9hc3QubWVzc2FnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS5vblVubW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgY2FsY1dpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBjYWxjV2lkdGggPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHNjcmVlbldpZHRoLnZhbHVlID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XG4gICAgICAgICAgICBpZiAoc2NyZWVuV2lkdGgudmFsdWUgPiAxMDI0KSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2hvd1NpZGViYXIudmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBzaG93U2lkZWJhci52YWx1ZTsgfSwgZnVuY3Rpb24gKHNpZGViYXIpIHtcbiAgICAgICAgICAgIGlmIChzaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFjdGl2aXR5TGluazogYWN0aXZpdHlMaW5rLFxuICAgICAgICAgICAgcmVzdWx0VGl0bGU6IHJlc3VsdFRpdGxlLFxuICAgICAgICAgICAgcmVzdWx0TGluazogcmVzdWx0TGluayxcbiAgICAgICAgICAgIGxpbmtDbGFzc2VzOiBsaW5rQ2xhc3NlcyxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgaGFzSW5kaWNhdG9yczogaGFzSW5kaWNhdG9ycyxcbiAgICAgICAgICAgIHJlc3VsdHNEYXRhOiByZXN1bHRzRGF0YSxcbiAgICAgICAgICAgIGJyZWFkY3J1bWJEYXRhOiBicmVhZGNydW1iRGF0YSxcbiAgICAgICAgICAgIHRvYXN0RGF0YTogdG9hc3REYXRhLFxuICAgICAgICAgICAgc2hvd1NpZGViYXI6IHNob3dTaWRlYmFyLFxuICAgICAgICAgICAgaXN0b3BWaXNpYmxlOiBpc3RvcFZpc2libGUsXG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2VcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIikpO1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiLi9lbGVtZW50cy9JbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnQWN0aXZpdHlFbGVtZW50JyxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRpdGxlRGVzY3JpcHRpb246IEluZGV4XzEuVGl0bGVEZXNjcmlwdGlvbixcbiAgICAgICAgRG9jdW1lbnRMaW5rOiBJbmRleF8xLkRvY3VtZW50TGluayxcbiAgICAgICAgUmVmZXJlbmNlOiBJbmRleF8xLlJlZmVyZW5jZSxcbiAgICAgICAgUmVzdWx0VHlwZTogSW5kZXhfMS5SZXN1bHRUeXBlLFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50TmFtZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXRVcmw6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB3aWR0aDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgaG92ZXJUZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIF9hID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLCBkYXRhID0gX2EuZGF0YSwgdHlwZXMgPSBfYS50eXBlcywgZWxlbWVudERhdGEgPSBkYXRhLnZhbHVlLCByZXN1bHRUeXBlID0gdHlwZXMudmFsdWUucmVzdWx0VHlwZSwgcmVzdWx0Vm9jYWJ1bGFyeSA9IHR5cGVzLnZhbHVlLnJlc3VsdFZvY2FidWxhcnksIGxhbmd1YWdlID0gdHlwZXMudmFsdWUubGFuZ3VhZ2U7XG4gICAgICAgIHZhciB0cmFuc2xhdGlvbkxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgcmV0dXJuIHsgZWxlbWVudERhdGE6IGVsZW1lbnREYXRhLCByZXN1bHRUeXBlOiByZXN1bHRUeXBlLCByZXN1bHRWb2NhYnVsYXJ5OiByZXN1bHRWb2NhYnVsYXJ5LCBsYW5ndWFnZTogbGFuZ3VhZ2UsIHRyYW5zbGF0aW9uTGFuZ3VhZ2U6IHRyYW5zbGF0aW9uTGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbi8vIGNvbXBvbmVudHNcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgVGFibGVQYWdpbmF0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RhYmxlUGFnaW5hdGlvbi52dWVcIikpO1xudmFyIFBhZ2VUaXRsZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9QYWdlVGl0bGUudnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG52YXIgRGVsZXRlQWN0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL0RlbGV0ZUFjdGlvbi52dWVcIikpO1xuLy8gY29tcG9zYWJsZVxudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnUmVzdWx0c0xpc3QnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgQnRuOiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnaW5hdGlvbjogVGFibGVQYWdpbmF0aW9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgRGVsZXRlQWN0aW9uOiBEZWxldGVBY3Rpb25fdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9hc3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgYWN0aXZpdHkgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuYWN0aXZpdHk7XG4gICAgICAgIHZhciBhY3Rpdml0eUlkID0gYWN0aXZpdHkudmFsdWUuaWQsIGFjdGl2aXR5VGl0bGUgPSBhY3Rpdml0eS52YWx1ZS50aXRsZSwgYWN0aXZpdHlMaW5rID0gXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQpO1xuICAgICAgICB2YXIgdG9hc3REYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciByZXN1bHRzRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgaXNFbXB0eSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5hY3Rpdml0aWVzX2xhbmcueW91cl9hY3Rpdml0aWVzLFxuICAgICAgICAgICAgICAgIGxpbms6ICcvYWN0aXZpdGllcycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAoMCwgdGl0bGVfMS5kZWZhdWx0KShhY3Rpdml0eVRpdGxlLCAnZW4nKSxcbiAgICAgICAgICAgICAgICBsaW5rOiBhY3Rpdml0eUxpbmssXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5jb21tb25fbGFuZy5yZXN1bHRfbGlzdCxcbiAgICAgICAgICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU5hdmlnYXRlKHBhdGgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcGF0aDtcbiAgICAgICAgfVxuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCwgXCIvcmVzdWx0cy9wYWdlLzFcIikpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHRzRGF0YSwgcmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHkudmFsdWUgPSByZXNwb25zZS5kYXRhLmRhdGEubGVuZ3RoID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy50b2FzdC5tZXNzYWdlICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudHlwZSA9IHByb3BzLnRvYXN0LnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLm1lc3NhZ2UgPSBwcm9wcy50b2FzdC5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICBmdW5jdGlvbiBmZXRjaExpc3RpbmdzKGFjdGl2ZV9wYWdlKSB7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAuZ2V0KFwiL2FjdGl2aXR5L1wiLmNvbmNhdChhY3Rpdml0eUlkLCBcIi9yZXN1bHRzL3BhZ2UvXCIpICsgYWN0aXZlX3BhZ2UpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0c0RhdGEsIHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIGlzRW1wdHkudmFsdWUgPSByZXNwb25zZS5kYXRhID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJvdmlkZVxuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3BhcmVudEl0ZW1JZCcsIGFjdGl2aXR5SWQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYnJlYWRjcnVtYkRhdGE6IGJyZWFkY3J1bWJEYXRhLFxuICAgICAgICAgICAgYWN0aXZpdHlMaW5rOiBhY3Rpdml0eUxpbmssXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgcmVzdWx0c0RhdGE6IHJlc3VsdHNEYXRhLFxuICAgICAgICAgICAgZ2V0QWN0aXZpdHlUaXRsZTogdGl0bGVfMS5kZWZhdWx0LFxuICAgICAgICAgICAgZmV0Y2hMaXN0aW5nczogZmV0Y2hMaXN0aW5ncyxcbiAgICAgICAgICAgIGhhbmRsZU5hdmlnYXRlOiBoYW5kbGVOYXZpZ2F0ZSxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZVxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIlJlc3VsdERvY3VtZW50TGlua1wiLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBkbERhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICByZXR1cm4geyBkbERhdGE6IGRsRGF0YSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbi8vY29tcG9zYWJsZVxudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbnZhciB0aXRsZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL3RpdGxlXCIpKTtcbi8vY29tcG9uZW50c1xudmFyIEhhdmVOb3RBZGRlZFlldF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9IYXZlTm90QWRkZWRZZXQudnVlXCIpKTtcbnZhciBMaW5rX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL2J1dHRvbnMvTGluay52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdSZXN1bHRJbmRpY2F0b3InLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgTm90WWV0OiBIYXZlTm90QWRkZWRZZXRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgQnRuOiBMaW5rX3Z1ZV8xLmRlZmF1bHQsXG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbFRpcDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciByZXN1bHQgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykucmVzdWx0O1xuICAgICAgICB2YXIgaW5kaWNhdG9yRGF0YSA9IHJlc3VsdC52YWx1ZS5pbmRpY2F0b3JzLnJldmVyc2UoKTtcbiAgICAgICAgcmV0dXJuIHsgaW5kaWNhdG9yRGF0YTogaW5kaWNhdG9yRGF0YSwgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsIGdldEFjdGl2aXR5VGl0bGU6IHRpdGxlXzEuZGVmYXVsdCwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdSZXN1bHRSZWZlcmVuY2UnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciByZWZlcmVuY2VEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlRGF0YTogcmVmZXJlbmNlRGF0YSwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdSZXN1bHRUeXBlJyxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciB0eXBlRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7IHR5cGVEYXRhOiB0eXBlRGF0YSwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdSZXN1bHRURCcsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIHRkRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7IHRkRGF0YTogdGREYXRhIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuLy9jb21wb25lbnRzXG52YXIgTGlua192dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9idXR0b25zL0xpbmsudnVlXCIpKTtcbnZhciBQYWdlVGl0bGVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvc2VjdGlvbnMvUGFnZVRpdGxlLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xuLy9jb21wb3NhYmxlXG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xudmFyIHRpdGxlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvdGl0bGVcIikpO1xudmFyIFRyYW5zYWN0aW9uRWxlbWVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9UcmFuc2FjdGlvbkVsZW1lbnQudnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnVHJhbnNhY3Rpb25EZXRhaWwnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgVHJhbnNhY3Rpb25FbGVtZW50OiBUcmFuc2FjdGlvbkVsZW1lbnRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgQnRuOiBMaW5rX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIFRvYXN0OiBUb2FzdE1lc3NhZ2VfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNhY3Rpb246IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvYXN0OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBfYSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgYWN0aXZpdHkgPSBfYS5hY3Rpdml0eSwgdHJhbnNhY3Rpb24gPSBfYS50cmFuc2FjdGlvbjtcbiAgICAgICAgdmFyIGxpbmtDbGFzc2VzID0gJ2ZsZXggaXRlbXMtY2VudGVyIHctZnVsbCBiZy13aGl0ZSByb3VuZGVkIHAtMiB0ZXh0LXNtIHRleHQtbi01MCBmb250LWJvbGQgbGVhZGluZy1yZWxheGVkIG1iLTIgc2hhZG93LWRlZmF1bHQnO1xuICAgICAgICB2YXIgc2hvd1NpZGViYXIgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBwb3NpdGlvblkgPSAoMCwgdnVlXzEucmVmKSgwKTtcbiAgICAgICAgdmFyIHNjcmVlbldpZHRoID0gKDAsIHZ1ZV8xLnJlZikoMCk7XG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uWS52YWx1ZSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgaXN0b3BWaXNpYmxlID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gcG9zaXRpb25ZLnZhbHVlID09PSAwO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gdGl0bGVzXG4gICAgICAgIHZhciB0cmFuc2FjdGlvbkRhdGEgPSB0cmFuc2FjdGlvbi52YWx1ZS50cmFuc2FjdGlvbjtcbiAgICAgICAgdmFyIGNhbGNXaWR0aCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgc2NyZWVuV2lkdGgudmFsdWUgPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgIGlmIChzY3JlZW5XaWR0aC52YWx1ZSA+IDEwMjQpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzaG93U2lkZWJhci52YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgYWN0aXZpdHlJZCA9IGFjdGl2aXR5LnZhbHVlLmlkLCBhY3Rpdml0eVRpdGxlID0gKDAsIHRpdGxlXzEuZGVmYXVsdCkoYWN0aXZpdHkudmFsdWUudGl0bGUsICdlbicpLCBhY3Rpdml0eUxpbmsgPSBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCksIHRyYW5zYWN0aW9uTGluayA9IFwiXCIuY29uY2F0KGFjdGl2aXR5TGluaywgXCIvdHJhbnNhY3Rpb24vXCIpLmNvbmNhdCh0cmFuc2FjdGlvbi52YWx1ZS5pZCk7XG4gICAgICAgICgwLCB2dWVfMS5vblVubW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgY2FsY1dpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS53YXRjaCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc2hvd1NpZGViYXIudmFsdWU7IH0sIGZ1bmN0aW9uIChzaWRlYmFyKSB7XG4gICAgICAgICAgICBpZiAoc2lkZWJhcikge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJyZWFkY3J1bWIgZGF0YVxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGJyZWFkY3J1bWJEYXRhID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5hY3Rpdml0aWVzX2xhbmcueW91cl9hY3Rpdml0aWVzLFxuICAgICAgICAgICAgICAgIGxpbms6IFwiL2FjdGl2aXR5XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBhY3Rpdml0eVRpdGxlLFxuICAgICAgICAgICAgICAgIGxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGxhbmd1YWdlLmNvbW1vbl9sYW5nLnRyYW5zYWN0aW9uLFxuICAgICAgICAgICAgICAgIGxpbms6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgICAoMCwgdnVlXzEub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICAgICAgaWYgKHByb3BzLnRvYXN0Lm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBwcm9wcy50b2FzdC50eXBlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXNNYW5kYXRvcnlJY29uID0gZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgIHJldHVybiAoci50b1N0cmluZygpID09PSAndmFsdWUnIHx8XG4gICAgICAgICAgICAgICAgci50b1N0cmluZygpID09PSAndHJhbnNhY3Rpb25fdHlwZScgfHxcbiAgICAgICAgICAgICAgICByLnRvU3RyaW5nKCkgPT09ICd0cmFuc2FjdGlvbl9kYXRlJyk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY3Rpdml0eVRpdGxlOiBhY3Rpdml0eVRpdGxlLFxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsXG4gICAgICAgICAgICB0cmFuc2FjdGlvbkRhdGE6IHRyYW5zYWN0aW9uRGF0YSxcbiAgICAgICAgICAgIGxpbmtDbGFzc2VzOiBsaW5rQ2xhc3NlcyxcbiAgICAgICAgICAgIGJyZWFkY3J1bWJEYXRhOiBicmVhZGNydW1iRGF0YSxcbiAgICAgICAgICAgIGFjdGl2aXR5TGluazogYWN0aXZpdHlMaW5rLFxuICAgICAgICAgICAgdHJhbnNhY3Rpb25MaW5rOiB0cmFuc2FjdGlvbkxpbmssXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIGlzTWFuZGF0b3J5SWNvbjogaXNNYW5kYXRvcnlJY29uLFxuICAgICAgICAgICAgc2hvd1NpZGViYXI6IHNob3dTaWRlYmFyLFxuICAgICAgICAgICAgaXN0b3BWaXNpYmxlOiBpc3RvcFZpc2libGUsXG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIEhvdmVyVGV4dF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi8uLi8uLi8uLi9jb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIikpO1xudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi8uLi8uLi8uLi9jb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xudmFyIEluZGV4XzEgPSByZXF1aXJlKFwiLi9lbGVtZW50cy9JbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIkFjdGl2aXR5RWxlbWVudFwiLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgRGVzY3JpcHRpb246IEluZGV4XzEuRGVzY3JpcHRpb24sXG4gICAgICAgIEFpZFR5cGU6IEluZGV4XzEuQWlkVHlwZSxcbiAgICAgICAgVHJhbnNhY3Rpb25UeXBlOiBJbmRleF8xLlRyYW5zYWN0aW9uVHlwZSxcbiAgICAgICAgVHJhbnNhY3Rpb25EYXRlOiBJbmRleF8xLlRyYW5zYWN0aW9uRGF0ZSxcbiAgICAgICAgVmFsdWU6IEluZGV4XzEuVmFsdWUsXG4gICAgICAgIFByb3ZpZGVyT3JnYW5pemF0aW9uOiBJbmRleF8xLlByb3ZpZGVyT3JnYW5pemF0aW9uLFxuICAgICAgICBSZWNlaXZlck9yZ2FuaXphdGlvbjogSW5kZXhfMS5SZWNlaXZlck9yZ2FuaXphdGlvbixcbiAgICAgICAgRGlzYnVyc2VtZW50Q2hhbm5lbDogSW5kZXhfMS5EaXNidXJzZW1lbnRDaGFubmVsLFxuICAgICAgICBTZWN0b3I6IEluZGV4XzEuU2VjdG9yLFxuICAgICAgICBSZWNpcGllbnRDb3VudHJ5OiBJbmRleF8xLlJlY2lwaWVudENvdW50cnksXG4gICAgICAgIFJlY2lwaWVudFJlZ2lvbjogSW5kZXhfMS5SZWNpcGllbnRSZWdpb24sXG4gICAgICAgIEZsb3dUeXBlOiBJbmRleF8xLkZsb3dUeXBlLFxuICAgICAgICBGaW5hbmNlVHlwZTogSW5kZXhfMS5GaW5hbmNlVHlwZSxcbiAgICAgICAgVGllZFN0YXR1czogSW5kZXhfMS5UaWVkU3RhdHVzLFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50TmFtZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXRVcmw6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB3aWR0aDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogXCJcIixcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBob3ZlclRleHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IFwiXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBfYSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgZGF0YSA9IF9hLmRhdGEsIHR5cGVzID0gX2EudHlwZXMsIGVsZW1lbnREYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKFwidHlwZXNcIiwgdHlwZXMpO1xuICAgICAgICBmdW5jdGlvbiBnZXRMYW5ndWFnZXMobGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiBsYW5ndWFnZS5tYXAoZnVuY3Rpb24gKGVudHJ5KSB7IHJldHVybiBlbnRyeS5sYW5ndWFnZTsgfSkuam9pbihcIiwgXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbGVtZW50RGF0YTogZWxlbWVudERhdGEsXG4gICAgICAgICAgICBnZXRMYW5ndWFnZXM6IGdldExhbmd1YWdlcyxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG4vL2NvbXBvbmVudHNcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgVGFibGVQYWdpbmF0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RhYmxlUGFnaW5hdGlvbi52dWVcIikpO1xudmFyIFBhZ2VUaXRsZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9QYWdlVGl0bGUudnVlXCIpKTtcbnZhciBUb2FzdE1lc3NhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvVG9hc3RNZXNzYWdlLnZ1ZVwiKSk7XG52YXIgRGVsZXRlQWN0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL0RlbGV0ZUFjdGlvbi52dWVcIikpO1xuLy9jb21wb3NhYmxlXG52YXIgZGF0ZUZvcm1hdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xudmFyIHRpdGxlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvdGl0bGVcIikpO1xudmFyIGNvcmVfMSA9IHJlcXVpcmUoXCJAdnVldXNlL2NvcmVcIik7XG4vLyB0b2dnbGUgc3RhdGUgZm9yIG1vZGFsIHBvcHVwXG52YXIgX2EgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgZGVsZXRlVmFsdWUgPSBfYVswXSwgZGVsZXRlVG9nZ2xlID0gX2FbMV07XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uTGlzdCcsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBCdG46IEJ1dHRvbkNvbXBvbmVudF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBQYWdpbmF0aW9uOiBUYWJsZVBhZ2luYXRpb25fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUGFnZVRpdGxlOiBQYWdlVGl0bGVfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0LFxuICAgICAgICBEZWxldGVBY3Rpb246IERlbGV0ZUFjdGlvbl92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0cmFuc2FjdGlvbnM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRvYXN0OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGFjdGl2aXR5ID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmFjdGl2aXR5O1xuICAgICAgICB2YXIgYWN0aXZpdHlJZCA9IGFjdGl2aXR5LnZhbHVlLmlkLCBhY3Rpdml0eVRpdGxlID0gKDAsIHRpdGxlXzEuZGVmYXVsdCkoYWN0aXZpdHkudmFsdWUudGl0bGUsICdlbicpLCBhY3Rpdml0eUxpbmsgPSBcIi9hY3Rpdml0eS9cIi5jb25jYXQoYWN0aXZpdHlJZCk7XG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHRyYW5zYWN0aW9uc0RhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHt9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdC5nZXQoXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQsIFwiL3RyYW5zYWN0aW9ucy9wYWdlLzFcIikpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2FjdGlvbnNEYXRhLCByZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHMudG9hc3QubWVzc2FnZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3REYXRhLnR5cGUgPSBwcm9wcy50b2FzdC50eXBlO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS5tZXNzYWdlID0gcHJvcHMudG9hc3QubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pOyB9KTtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlTmF2aWdhdGUocGF0aCkge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZldGNoTGlzdGluZ3MoYWN0aXZlX3BhZ2UpIHtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5nZXQoXCIvYWN0aXZpdHkvXCIuY29uY2F0KGFjdGl2aXR5SWQsIFwiL3RyYW5zYWN0aW9ucy9wYWdlL1wiKSArIGFjdGl2ZV9wYWdlKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRyYW5zYWN0aW9uc0RhdGEsIHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJvdmlkZVxuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3BhcmVudEl0ZW1JZCcsIGFjdGl2aXR5SWQpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQnJlYWRjcnVtYiBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgYnJlYWRjcnVtYkRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGxhbmd1YWdlLmFjdGl2aXRpZXNfbGFuZy55b3VyX2FjdGl2aXRpZXMsXG4gICAgICAgICAgICAgICAgbGluazogJy9hY3Rpdml0aWVzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGFjdGl2aXR5VGl0bGUsXG4gICAgICAgICAgICAgICAgbGluazogYWN0aXZpdHlMaW5rLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbGFuZ3VhZ2UuY29tbW9uX2xhbmcudHJhbnNhY3Rpb25fbGlzdCxcbiAgICAgICAgICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBicmVhZGNydW1iRGF0YTogYnJlYWRjcnVtYkRhdGEsXG4gICAgICAgICAgICBhY3Rpdml0eUxpbms6IGFjdGl2aXR5TGluayxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXRfMS5kZWZhdWx0LFxuICAgICAgICAgICAgdHJhbnNhY3Rpb25zRGF0YTogdHJhbnNhY3Rpb25zRGF0YSxcbiAgICAgICAgICAgIGdldEFjdGl2aXR5VGl0bGU6IHRpdGxlXzEuZGVmYXVsdCxcbiAgICAgICAgICAgIGZldGNoTGlzdGluZ3M6IGZldGNoTGlzdGluZ3MsXG4gICAgICAgICAgICB0b2FzdERhdGE6IHRvYXN0RGF0YSxcbiAgICAgICAgICAgIGRlbGV0ZVZhbHVlOiBkZWxldGVWYWx1ZSxcbiAgICAgICAgICAgIGRlbGV0ZVRvZ2dsZTogZGVsZXRlVG9nZ2xlLFxuICAgICAgICAgICAgaGFuZGxlTmF2aWdhdGU6IGhhbmRsZU5hdmlnYXRlLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnVHJhbnNhY3Rpb25BaWRUeXBlJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBhdERhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgdHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYXREYXRhOiBhdERhdGEsXG4gICAgICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdUcmFuc2FjdGlvbkRlc2NyaXB0aW9uJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciB0ZERhdGEgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgdHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyB0ZERhdGE6IHRkRGF0YSwgdHlwZTogdHlwZSwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6ICdUcmFuc2FjdGlvbkRpc2J1cnNlbWVudENoYW5uZWwnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGNvZGUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgdHlwZSA9ICgwLCB2dWVfMS5pbmplY3QpKCd0eXBlcycpO1xuICAgICAgICByZXR1cm4geyBjb2RlOiBjb2RlLCB0eXBlOiB0eXBlLCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uRmluYW5jZVR5cGUnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGZpbmFuY2VEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgZmluYW5jZURhdGE6IGZpbmFuY2VEYXRhLCB0eXBlOiB0eXBlLCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uRmxvd1R5cGUnLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIGZsb3dEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgZmxvd0RhdGE6IGZsb3dEYXRhLCB0eXBlOiB0eXBlLCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uUHJvdmlkZXJPcmdhbmlzYXRpb24nLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIFBvRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHZhciB0eXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHJldHVybiB7IFBvRGF0YTogUG9EYXRhLCB0eXBlOiB0eXBlLCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uUmVjZWl2ZXJPcmdhbmlzYXRpb24nLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIFBvRGF0YSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHZhciB0eXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHJldHVybiB7IFBvRGF0YTogUG9EYXRhLCB0eXBlOiB0eXBlLCBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uUmVjaXBpZW50Q291bnRyeScsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgY291bnRyeSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHZhciB0eXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoJ3R5cGVzJyk7XG4gICAgICAgIHJldHVybiB7IGNvdW50cnk6IGNvdW50cnksIHR5cGU6IHR5cGUsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiBcIlRyYW5zYWN0aW9uUmVjaXBpZW50UmVnaW9uXCIsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgY291bnRyeSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHZhciB0eXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgcmV0dXJuIHsgY291bnRyeTogY291bnRyeSwgdHlwZTogdHlwZSwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6IFwiVHJhbnNhY3Rpb25TZWN0b3JcIixcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciB0eXBlID0gKDAsIHZ1ZV8xLmluamVjdCkoXCJ0eXBlc1wiKTtcbiAgICAgICAgdmFyIHNlY3RvciA9IGRhdGEudmFsdWU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWN0b3I6IHNlY3RvcixcbiAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2VcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ1RyYW5zYWN0aW9uVGllZFN0YXR1cycsXG4gICAgY29tcG9uZW50czoge30sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZGF0YSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5kYXRhO1xuICAgICAgICB2YXIgdHNEYXRhID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgdHNEYXRhOiB0c0RhdGEsIHR5cGU6IHR5cGUsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vLi4vLi4vLi4vLi4vY29tcG9zYWJsZS9kYXRlRm9ybWF0XCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnVHJhbnNhY3Rpb25EYXRlJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBkYXRlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgZGF0ZTogZGF0ZSwgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsIGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBuYW1lOiAnVHJhbnNhY3Rpb25UeXBlJyxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmddLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBkYXRhID0gKDAsIHZ1ZV8xLnRvUmVmcykocHJvcHMpLmRhdGE7XG4gICAgICAgIHZhciBjb2RlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHR5cGUgPSAoMCwgdnVlXzEuaW5qZWN0KSgndHlwZXMnKTtcbiAgICAgICAgcmV0dXJuIHsgY29kZTogY29kZSwgdHlwZTogdHlwZSwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGRhdGVGb3JtYXRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi8uLi8uLi8uLi8uLi9jb21wb3NhYmxlL2RhdGVGb3JtYXRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIG5hbWU6IFwiVHJhbnNhY3Rpb25WYWx1ZVwiLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6IFtPYmplY3QsIFN0cmluZ10sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGRhdGEgPSAoMCwgdnVlXzEudG9SZWZzKShwcm9wcykuZGF0YTtcbiAgICAgICAgdmFyIHZhbHVlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlLCBkYXRlRm9ybWF0OiBkYXRlRm9ybWF0XzEuZGVmYXVsdCwgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBCdXR0b25Db21wb25lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiKSk7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIikpO1xudmFyIFByb2dyZXNzTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1Byb2dyZXNzTG9hZGVyLnZ1ZVwiKSk7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ0FjdGl2aXR5VXBsb2FkJyxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgZmlsZSA9ICgwLCB2dWVfMi5yZWYpKCksIGVycm9yID0gKDAsIHZ1ZV8yLnJlZikoJycpLCBsb2FkZXIgPSAoMCwgdnVlXzIucmVmKShmYWxzZSksIGxvYWRlclRleHQgPSAoMCwgdnVlXzIucmVmKSgnUGxlYXNlIFdhaXQnKTtcbiAgICAgICAgZnVuY3Rpb24gdXBsb2FkRmlsZSgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gJ1VwbG9hZGluZyAuY3N2Ly54bWwgZmlsZSc7XG4gICAgICAgICAgICB2YXIgYWN0aXZpdHkgPSBmaWxlLnZhbHVlLmZpbGVzLmxlbmd0aCA/IGZpbGUudmFsdWUuZmlsZXNbMF0gOiAnJztcbiAgICAgICAgICAgIHZhciBjb25maWcgPSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnY29udGVudC10eXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKCdhY3Rpdml0eScsIGFjdGl2aXR5KTtcbiAgICAgICAgICAgIGVycm9yLnZhbHVlID0gJyc7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdCgnL2ltcG9ydCcsIGRhdGEsIGNvbmZpZylcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGlmIChmaWxlLnZhbHVlLmZpbGVzLmxlbmd0aCAmJiAoKF9hID0gcmVzID09PSBudWxsIHx8IHJlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzLmRhdGEpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdWNjZXNzKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9pbXBvcnQvbGlzdCc7XG4gICAgICAgICAgICAgICAgICAgIH0sIDUwMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IudmFsdWUgPSBPYmplY3QudmFsdWVzKHJlcy5kYXRhLmVycm9ycykuam9pbignICcpO1xuICAgICAgICAgICAgICAgICAgICBsb2FkZXIudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IudmFsdWUgPSAnRXJyb3IgaGFzIG9jY3VyZWQgd2hpbGUgdXBsb2FkaW5nIGZpbGUuJztcbiAgICAgICAgICAgICAgICBsb2FkZXIudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGRvd25sb2FkRXhjZWwoKSB7XG4gICAgICAgICAgICAoMCwgYXhpb3NfMS5kZWZhdWx0KSh7XG4gICAgICAgICAgICAgICAgdXJsOiAnaW1wb3J0L2Rvd25sb2FkL2NzdicsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsXG4gICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlLmRhdGFdLCB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9jc3YnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgIGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICAgICAgICAgIGxpbmsuZG93bmxvYWQgPSAnY3N2X3Rlc3QuY3N2JztcbiAgICAgICAgICAgICAgICBsaW5rLmNsaWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIGZpbGU6IGZpbGUsIGVycm9yOiBlcnJvciwgbG9hZGVyOiBsb2FkZXIsIGxvYWRlclRleHQ6IGxvYWRlclRleHQsIHVwbG9hZEZpbGU6IHVwbG9hZEZpbGUsIGRvd25sb2FkRXhjZWw6IGRvd25sb2FkRXhjZWwsIEJ0bkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsIEhvdmVyVGV4dDogSG92ZXJUZXh0X3Z1ZV8xLmRlZmF1bHQsIExvYWRlcjogUHJvZ3Jlc3NMb2FkZXJfdnVlXzEuZGVmYXVsdCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIEJ1dHRvbkNvbXBvbmVudF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9CdXR0b25Db21wb25lbnQudnVlXCIpKTtcbnZhciBQcm9ncmVzc0xvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9zZWN0aW9ucy9Qcm9ncmVzc0xvYWRlci52dWVcIikpO1xudmFyIEltcG9ydFBsYWNlaG9sZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0ltcG9ydFBsYWNlaG9sZGVyLnZ1ZVwiKSk7XG52YXIgTGlzdEVsZW1lbnRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vTGlzdEVsZW1lbnQudnVlXCIpKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnSW1wb3J0TGlzdCcsXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGFjdGl2aXRpZXMgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHt9KTtcbiAgICAgICAgdmFyIHNlbGVjdGVkQWN0aXZpdGllcyA9ICgwLCB2dWVfMi5yZWFjdGl2ZSkoW10pO1xuICAgICAgICB2YXIgc2VsZWN0ZWRDb3VudCA9ICgwLCB2dWVfMi5yZWYpKDApO1xuICAgICAgICB2YXIgYWN0aXZpdGllc0xlbmd0aCA9ICgwLCB2dWVfMi5yZWYpKDApO1xuICAgICAgICB2YXIgbG9hZGVyID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgc2VsZWN0QWxsID0gKDAsIHZ1ZV8yLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgbG9hZGVyVGV4dCA9ICgwLCB2dWVfMi5yZWYpKCdQbGVhc2UgV2FpdCcpO1xuICAgICAgICB2YXIgdGltZXI7XG4gICAgICAgICgwLCB2dWVfMi5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBsb2FkZXJUZXh0LnZhbHVlID0gJ1BsZWFzZSBXYWl0JztcbiAgICAgICAgICAgIHZhciBjb3VudCA9IDA7XG4gICAgICAgICAgICB0aW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgLmdldCgnL2ltcG9ydC9jaGVja19zdGF0dXMnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYWN0aXZpdGllcywgcmVzLmRhdGEuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2aXRpZXNMZW5ndGgudmFsdWUgPSByZXMuZGF0YS5kYXRhLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXIudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuc3RhdHVzID09PSBcImVycm9yXCIgfHwgKCFyZXMuZGF0YS5kYXRhICYmIGNvdW50ID49IDUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9hY3Rpdml0aWVzJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRlci52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvYWN0aXZpdGllcyc7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVNlbGVjdGVkQWN0aXZpdGllcyhhY3Rpdml0eV9pZCkge1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gc2VsZWN0ZWRBY3Rpdml0aWVzLmluZGV4T2YoYWN0aXZpdHlfaWQpO1xuICAgICAgICAgICAgaWYgKGFjdGl2aXRpZXNbYWN0aXZpdHlfaWRdWydlcnJvcnMnXS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEFjdGl2aXRpZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb3VudC52YWx1ZSA9IHNlbGVjdGVkQ291bnQudmFsdWUgLSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBY3Rpdml0aWVzLnB1c2goYWN0aXZpdHlfaWQpO1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENvdW50LnZhbHVlID0gc2VsZWN0ZWRDb3VudC52YWx1ZSArIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNlbGVjdEFsbEFjdGl2aXRpZXMoKSB7XG4gICAgICAgICAgICBzZWxlY3RBbGwudmFsdWUgPSAhc2VsZWN0QWxsLnZhbHVlO1xuICAgICAgICAgICAgc2VsZWN0ZWRDb3VudC52YWx1ZSA9IDA7XG4gICAgICAgICAgICBzZWxlY3RlZEFjdGl2aXRpZXMubGVuZ3RoID0gMDtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGFjdGl2aXRpZXMpLmZvckVhY2goZnVuY3Rpb24gKGFjdGl2aXR5X2lkKSB7XG4gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gc2VsZWN0ZWRBY3Rpdml0aWVzLmluZGV4T2YoYWN0aXZpdHlfaWQpO1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpdml0aWVzW2FjdGl2aXR5X2lkXVsnZXJyb3JzJ10ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RBbGwudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQWN0aXZpdGllcy5wdXNoKGFjdGl2aXR5X2lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ291bnQudmFsdWUgPSBzZWxlY3RlZENvdW50LnZhbHVlICsgMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQWN0aXZpdGllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdEFsbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ291bnQudmFsdWUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGltcG9ydEFjdGl2aXRpZXMoKSB7XG4gICAgICAgICAgICBsb2FkZXIudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgbG9hZGVyVGV4dC52YWx1ZSA9ICdJbXBvcnRpbmcgLmNzdi8ueG1sIGZpbGUnO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdCgnL2ltcG9ydC9hY3Rpdml0eScsIHtcbiAgICAgICAgICAgICAgICBhY3Rpdml0aWVzOiBzZWxlY3RlZEFjdGl2aXRpZXMsXG4gICAgICAgICAgICAgICAgZmlsZXR5cGU6ICdjc3YnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL2FjdGl2aXRpZXMnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9hY3Rpdml0aWVzJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgYWN0aXZpdGllczogYWN0aXZpdGllcywgc2VsZWN0ZWRBY3Rpdml0aWVzOiBzZWxlY3RlZEFjdGl2aXRpZXMsIHNlbGVjdGVkQ291bnQ6IHNlbGVjdGVkQ291bnQsIGFjdGl2aXRpZXNMZW5ndGg6IGFjdGl2aXRpZXNMZW5ndGgsIGxvYWRlcjogbG9hZGVyLCBzZWxlY3RBbGw6IHNlbGVjdEFsbCwgbG9hZGVyVGV4dDogbG9hZGVyVGV4dCwgdGltZXI6IHRpbWVyLCB1cGRhdGVTZWxlY3RlZEFjdGl2aXRpZXM6IHVwZGF0ZVNlbGVjdGVkQWN0aXZpdGllcywgc2VsZWN0QWxsQWN0aXZpdGllczogc2VsZWN0QWxsQWN0aXZpdGllcywgaW1wb3J0QWN0aXZpdGllczogaW1wb3J0QWN0aXZpdGllcywgQnRuQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnRfdnVlXzEuZGVmYXVsdCwgTG9hZGVyOiBQcm9ncmVzc0xvYWRlcl92dWVfMS5kZWZhdWx0LCBQbGFjZWhvbGRlcjogSW1wb3J0UGxhY2Vob2xkZXJfdnVlXzEuZGVmYXVsdCwgTGlzdEVsZW1lbnQ6IExpc3RFbGVtZW50X3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIFNoaW1tZXJMb2FkaW5nX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1NoaW1tZXJMb2FkaW5nLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnSW1wb3J0UGxhY2Vob2xkZXInLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IFNoaW1tZXI6IFNoaW1tZXJMb2FkaW5nX3Z1ZV8xLmRlZmF1bHQgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdMaXN0RWxlbWVudCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdGVkQWN0aXZpdGllczoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBlbWl0czogW1wic2VsZWN0RWxlbWVudFwiXSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2UsIGVtaXQgPSBfYS5lbWl0O1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGFjdGl2ZSA9ICgwLCB2dWVfMi5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGFjdGl2aXRpZXMgPSAoMCwgdnVlXzIucmVhY3RpdmUpKFtdKTtcbiAgICAgICAgZnVuY3Rpb24gdG9nZ2xlRXJyb3IoKSB7XG4gICAgICAgICAgICBhY3RpdmUudmFsdWUgPSAhYWN0aXZlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzZWxlY3RFbGVtZW50ID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgICAgICBlbWl0KFwic2VsZWN0RWxlbWVudFwiLCBpbmRleCk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBjb3VudEVycm9ycyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBjb3VudCA9IDA7XG4gICAgICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBwcm9wcy5hY3Rpdml0eVtcImVycm9yc1wiXSkge1xuICAgICAgICAgICAgICAgIGNvdW50ICs9IE9iamVjdC5rZXlzKHByb3BzLmFjdGl2aXR5W1wiZXJyb3JzXCJdW2luZGV4XSkubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xuICAgICAgICB9O1xuICAgICAgICAoMCwgdnVlXzIud2F0Y2gpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHByb3BzLnNlbGVjdGVkQWN0aXZpdGllczsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHNlbGVjdGVkRGF0YSA9IEpTT04ucGFyc2UocHJvcHMuc2VsZWN0ZWRBY3Rpdml0aWVzKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpdml0aWVzLCBzZWxlY3RlZERhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYWN0aXZpdGllcy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCBwcm9wczogcHJvcHMsIGVtaXQ6IGVtaXQsIGFjdGl2ZTogYWN0aXZlLCBhY3Rpdml0aWVzOiBhY3Rpdml0aWVzLCB0b2dnbGVFcnJvcjogdG9nZ2xlRXJyb3IsIHNlbGVjdEVsZW1lbnQ6IHNlbGVjdEVsZW1lbnQsIGNvdW50RXJyb3JzOiBjb3VudEVycm9ycyB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIikpO1xudmFyIFJhZGlhbFByb2dyZXNzQmFyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jb21wb25lbnRzL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZVwiKSk7XG52YXIgT3JnYW5pc2F0aW9uRWxlbWVudHNfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlXCIpKTtcbnZhciBPcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWVcIikpO1xudmFyIFRvYXN0TWVzc2FnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCIpKTtcbnZhciBPcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlXCIpKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIGNvcmVfMiA9IHJlcXVpcmUoXCJAdnVldXNlL2NvcmVcIik7XG52YXIgRXJyb3JQb3BVcF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9FcnJvclBvcFVwLnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgbmFtZTogJ09yZ2FuaXNhdGlvbkRhdGEnLFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgUmFkaWFsUHJvZ3Jlc3NCYXI6IFJhZGlhbFByb2dyZXNzQmFyX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIE9yZ2FuaXNhdGlvbkVsZW1lbnRzOiBPcmdhbmlzYXRpb25FbGVtZW50c192dWVfMS5kZWZhdWx0LFxuICAgICAgICBPcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbDogT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWxfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0LFxuICAgICAgICBQdWJsaXNoVW5wdWJsaXNoOiBPcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uX3Z1ZV8xLmRlZmF1bHQsXG4gICAgICAgIEVycm9yUG9wVXA6IEVycm9yUG9wVXBfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZ3JvdXBzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3JnYW5pemF0aW9uOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvZ3Jlc3M6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2FzdDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbWFuZGF0b3J5Q29tcGxldGVkOiB7XG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciB0b2FzdERhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGVycm9yRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICAgIHR5cGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgc2hvd1NpZGViYXIgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBzY3JlZW5XaWR0aCA9ICgwLCB2dWVfMS5yZWYpKDApO1xuICAgICAgICB2YXIgX2EgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgcHVibGlzaFZhbHVlID0gX2FbMF0sIHB1Ymxpc2hUb2dnbGUgPSBfYVsxXTtcbiAgICAgICAgdmFyIF9iID0gKDAsIGNvcmVfMS51c2VUb2dnbGUpKCksIHVucHVibGlzaFZhbHVlID0gX2JbMF0sIHVucHVibGlzaFRvZ2dsZSA9IF9iWzFdO1xuICAgICAgICB2YXIgX2MgPSAoMCwgY29yZV8xLnVzZVRvZ2dsZSkoKSwgZGVsZXRlVmFsdWUgPSBfY1swXSwgZGVsZXRlVG9nZ2xlID0gX2NbMV07XG4gICAgICAgIHZhciBfZCA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBkb3dubG9hZFZhbHVlID0gX2RbMF0sIGRvd25sb2FkVG9nZ2xlID0gX2RbMV07XG4gICAgICAgIHZhciBwb3NpdGlvblkgPSAoMCwgdnVlXzEucmVmKSgwKTtcbiAgICAgICAgdmFyIHRvZ2dsZVNpZGViYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzaG93U2lkZWJhci52YWx1ZSA9ICFzaG93U2lkZWJhci52YWx1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uVW5tb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjYWxjV2lkdGgpO1xuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNhbGNXaWR0aCk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgICAgIGlmIChwcm9wcy50b2FzdC5tZXNzYWdlICE9PSAnJykge1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS50eXBlID0gcHJvcHMudG9hc3QudHlwZSA9PT0gJ3N1Y2Nlc3MnID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRvYXN0RGF0YS52aXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9IHByb3BzLnRvYXN0Lm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2FsY1dpZHRoID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBzY3JlZW5XaWR0aC52YWx1ZSA9IGV2ZW50LnRhcmdldC5pbm5lcldpZHRoO1xuICAgICAgICAgICAgaWYgKHNjcmVlbldpZHRoLnZhbHVlID4gMTAyNCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNob3dTaWRlYmFyLnZhbHVlICYmXG4gICAgICAgICAgICAgICAgICAgIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciBoYW5kbGVTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwb3NpdGlvblkudmFsdWUgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGlzdG9wVmlzaWJsZSA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2cocG9zaXRpb25ZLnZhbHVlID09PSAwKTtcbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvblkudmFsdWUgPT09IDA7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaWdub3JlVXBkYXRlcyA9ICgwLCBjb3JlXzIud2F0Y2hJZ25vcmFibGUpKHRvYXN0RGF0YSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9LCB7XG4gICAgICAgICAgICBmbHVzaDogJ3N5bmMnLFxuICAgICAgICB9KS5pZ25vcmVVcGRhdGVzO1xuICAgICAgICAoMCwgdnVlXzEud2F0Y2gpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNob3dTaWRlYmFyLnZhbHVlOyB9LCBmdW5jdGlvbiAoc2lkZWJhcikge1xuICAgICAgICAgICAgaWYgKHNpZGViYXIpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzEud2F0Y2gpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRvYXN0RGF0YS52aXNpYmlsaXR5OyB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEudmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlnbm9yZVRvYXN0VXBkYXRlKCk7XG4gICAgICAgICAgICB9LCAxMDAwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaWdub3JlVG9hc3RVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZ25vcmVVcGRhdGVzKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0b2FzdERhdGEubWVzc2FnZSA9ICcnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHcm91cGluZyBhbGwgdGhlIGRhdGEncyBmb3Igc2Nyb2xsIGZ1bmN0aW9uXG4gICAgICAgICAqXG4gICAgICAgICAqIHRoaXMgZGF0YSBpcyBjcmVhdGVkIHVzaW5nIHByb3BzLmdyb3VwcyBhbmQgcHJvcHMuYWN0aXZpdHlcbiAgICAgICAgICovXG4gICAgICAgIHZhciBfZSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKSwgZ3JvdXBzID0gX2UuZ3JvdXBzLCBvcmdhbml6YXRpb24gPSBfZS5vcmdhbml6YXRpb24sIGVsZW1lbnRzID0gX2UuZWxlbWVudHMsIGdyb3VwZWREYXRhID0gZ3JvdXBzLnZhbHVlLCBvcmdhbml6YXRpb25Qcm9wcyA9IG9yZ2FuaXphdGlvbi52YWx1ZSwgb3JnYW5pemF0aW9uRGF0YSA9IGdyb3Vwcy52YWx1ZSwgZWxlbWVudFByb3BzID0gZWxlbWVudHMudmFsdWU7XG4gICAgICAgIC8vIGdlbmVyYXRpbmcgYXZhaWxhYmxlIGVsZW1lbnRzXG4gICAgICAgIE9iamVjdC5rZXlzKG9yZ2FuaXphdGlvbkRhdGEpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICB2YXIgZmxhZyA9IGZhbHNlO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMob3JnYW5pemF0aW9uRGF0YVtrZXldWydlbGVtZW50cyddKS5tYXAoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICAgICAgICBpZiAob3JnYW5pemF0aW9uUHJvcHNba10gfHwgdHlwZW9mIG9yZ2FuaXphdGlvblByb3BzW2tdID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25EYXRhW2tleV1bJ2VsZW1lbnRzJ11ba11bJ2NvbnRlbnQnXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25Qcm9wc1trXTtcbiAgICAgICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRQcm9wc1trXVsnaGFzX2RhdGEnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgb3JnYW5pemF0aW9uRGF0YVtrZXldW2tdO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50UHJvcHNba11bJ2hhc19kYXRhJ10gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxlbWVudFByb3BzW2tdWydjb3JlJ10gPVxuICAgICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25EYXRhW2tleV1bJ2VsZW1lbnRzJ11ba11bJ21hbmRhdG9yeSddO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRQcm9wc1trXVsnY29tcGxldGVkJ10gPVxuICAgICAgICAgICAgICAgICAgICBrID09PSAnb3JnYW5pc2F0aW9uX2lkZW50aWZpZXInXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG9yZ2FuaXphdGlvblByb3BzWydlbGVtZW50X3N0YXR1cyddWydpZGVudGlmaWVyJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogb3JnYW5pemF0aW9uUHJvcHNbJ2VsZW1lbnRfc3RhdHVzJ11ba107XG4gICAgICAgICAgICAgICAgZWxlbWVudFByb3BzW2tdWydub3RfY29tcGxldGVkJ10gPSAhZWxlbWVudFByb3BzW2tdWydjb21wbGV0ZWQnXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGZsYWcgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG9yZ2FuaXphdGlvbkRhdGFba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGdlbmVyYXRpbmcgYXZhaWxhYmxlIGNhdGVnb3JpZXMgb2YgZWxlbWVudHNcbiAgICAgICAgT2JqZWN0LmtleXMoZ3JvdXBlZERhdGEpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9yZ2FuaXphdGlvbkRhdGEsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBncm91cGVkRGF0YVtrZXldWydzdGF0dXMnXSA9ICdlbmFibGVkJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyb3VwZWREYXRhW2tleV1bJ3N0YXR1cyddID0gJ2Rpc2FibGVkJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBwdWJsaXNoTWVzc2FnZSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICB0eXBlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBwdWJsaXNoU3RhdHVzID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBpc19wdWJsaXNoZWQ6IG9yZ2FuaXphdGlvblByb3BzLmlzX3B1Ymxpc2hlZCxcbiAgICAgICAgICAgIHN0YXR1czogb3JnYW5pemF0aW9uUHJvcHMuc3RhdHVzLFxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdwdWJsaXNoTWVzc2FnZScsIHB1Ymxpc2hNZXNzYWdlKTtcbiAgICAgICAgKDAsIHZ1ZV8xLnByb3ZpZGUpKCdtYW5kYXRvcnlDb21wbGV0ZWQnLCBwcm9wcy5tYW5kYXRvcnlDb21wbGV0ZWQpO1xuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ3RvYXN0RGF0YScsIHRvYXN0RGF0YSk7XG4gICAgICAgICgwLCB2dWVfMS5wcm92aWRlKSgncHVibGlzaFN0YXR1cycsIHB1Ymxpc2hTdGF0dXMpO1xuICAgICAgICAoMCwgdnVlXzEucHJvdmlkZSkoJ2Vycm9yRGF0YScsIGVycm9yRGF0YSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBncm91cGVkRGF0YTogZ3JvdXBlZERhdGEsXG4gICAgICAgICAgICBvcmdhbml6YXRpb25EYXRhOiBvcmdhbml6YXRpb25EYXRhLFxuICAgICAgICAgICAgcHVibGlzaFZhbHVlOiBwdWJsaXNoVmFsdWUsXG4gICAgICAgICAgICBwdWJsaXNoVG9nZ2xlOiBwdWJsaXNoVG9nZ2xlLFxuICAgICAgICAgICAgdW5wdWJsaXNoVmFsdWU6IHVucHVibGlzaFZhbHVlLFxuICAgICAgICAgICAgdW5wdWJsaXNoVG9nZ2xlOiB1bnB1Ymxpc2hUb2dnbGUsXG4gICAgICAgICAgICBkZWxldGVWYWx1ZTogZGVsZXRlVmFsdWUsXG4gICAgICAgICAgICBkZWxldGVUb2dnbGU6IGRlbGV0ZVRvZ2dsZSxcbiAgICAgICAgICAgIGRvd25sb2FkVmFsdWU6IGRvd25sb2FkVmFsdWUsXG4gICAgICAgICAgICBkb3dubG9hZFRvZ2dsZTogZG93bmxvYWRUb2dnbGUsXG4gICAgICAgICAgICBlbGVtZW50UHJvcHM6IGVsZW1lbnRQcm9wcyxcbiAgICAgICAgICAgIHRvYXN0RGF0YTogdG9hc3REYXRhLFxuICAgICAgICAgICAgcHVibGlzaFN0YXR1czogcHVibGlzaFN0YXR1cyxcbiAgICAgICAgICAgIGVycm9yRGF0YTogZXJyb3JEYXRhLFxuICAgICAgICAgICAgdG9nZ2xlU2lkZWJhcjogdG9nZ2xlU2lkZWJhcixcbiAgICAgICAgICAgIHNob3dTaWRlYmFyOiBzaG93U2lkZWJhcixcbiAgICAgICAgICAgIGlzdG9wVmlzaWJsZTogaXN0b3BWaXNpYmxlLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBjb3JlXzEgPSByZXF1aXJlKFwiQHZ1ZXVzZS9jb3JlXCIpO1xudmFyIGNvcmVFbGVtZW50c18xID0gcmVxdWlyZShcIkNvbXBvc2FibGUvY29yZUVsZW1lbnRzXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ09yZ2FuaXNhdGlvbkVsZW1lbnRzJyxcbiAgICBwcm9wczoge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdHVzOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGVkOiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbWFuZGF0b3J5OiB7XG4gICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBfYiA9ICgwLCBjb3JlXzEudXNlVG9nZ2xlKSgpLCBzZWFyY2hCdG5WYWx1ZSA9IF9iWzBdLCBzZWFyY2hCdG5Ub2dnbGUgPSBfYlsxXTtcbiAgICAgICAgdmFyIGRyb3Bkb3duID0gKDAsIHZ1ZV8yLnJlZikoKTtcbiAgICAgICAgdmFyIGRyb3Bkb3duQnRuID0gKDAsIHZ1ZV8yLnJlZikoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNlYXJjaCBmdW5jdGlvbmFsaXR5XG4gICAgICAgICAqL1xuICAgICAgICB2YXIgZWxlbWVudHMgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHNlYXJjaDogXCJcIixcbiAgICAgICAgICAgIHN0YXR1czogXCJcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBlbGVtZW50SWNvbnMgPSB7XG4gICAgICAgICAgICBjb21wbGV0ZWQ6IFwiZG91YmxlLXRpY2tcIixcbiAgICAgICAgICAgIG5vdF9jb21wbGV0ZWQ6IFwicmVkLWNyb3NzXCIsXG4gICAgICAgICAgICBjb3JlOiBcImNvcmVcIixcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGFzQXJyYXlEYXRhID0gT2JqZWN0LmVudHJpZXMocHJvcHMuZGF0YSk7XG4gICAgICAgIHZhciBmaWx0ZXJlZEVsZW1lbnRzID0gKDAsIHZ1ZV8yLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZmlsdGVyZWQgPSBhc0FycmF5RGF0YS5maWx0ZXIoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IF9hWzBdLCB2YWx1ZSA9IF9hWzFdO1xuICAgICAgICAgICAgICAgIGlmICghZWxlbWVudHMuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoZWxlbWVudHMuc2VhcmNoLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXy9nLCBcIiBcIikucmVwbGFjZSgvLS9nLCBcIl9cIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW2VsZW1lbnRzLnN0YXR1c10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhlbGVtZW50cy5zZWFyY2gudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIFwiIFwiKS5yZXBsYWNlKC8tL2csIFwiX1wiKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBqdXN0U3RyaW5ncyA9IE9iamVjdC5mcm9tRW50cmllcyhmaWx0ZXJlZCk7XG4gICAgICAgICAgICByZXR1cm4ganVzdFN0cmluZ3M7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzIub25Nb3VudGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkcm9wZG93bkJ0bi52YWx1ZS5jb250YWlucyhlLnRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWRyb3Bkb3duLnZhbHVlLmNvbnRhaW5zKGUudGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hCdG5WYWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hCdG5Ub2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkcm9wZG93bkZpbHRlciA9IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICBlbGVtZW50cy5zdGF0dXMgPSBzO1xuICAgICAgICAgICAgc2VhcmNoQnRuVG9nZ2xlKCk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgcHJvcHM6IHByb3BzLCBzZWFyY2hCdG5WYWx1ZTogc2VhcmNoQnRuVmFsdWUsIHNlYXJjaEJ0blRvZ2dsZTogc2VhcmNoQnRuVG9nZ2xlLCBkcm9wZG93bjogZHJvcGRvd24sIGRyb3Bkb3duQnRuOiBkcm9wZG93bkJ0biwgZWxlbWVudHM6IGVsZW1lbnRzLCBlbGVtZW50SWNvbnM6IGVsZW1lbnRJY29ucywgYXNBcnJheURhdGE6IGFzQXJyYXlEYXRhLCBmaWx0ZXJlZEVsZW1lbnRzOiBmaWx0ZXJlZEVsZW1lbnRzLCBkcm9wZG93bkZpbHRlcjogZHJvcGRvd25GaWx0ZXIsIG9yZ01hbmRhdG9yeUVsZW1lbnRzOiBjb3JlRWxlbWVudHNfMS5vcmdNYW5kYXRvcnlFbGVtZW50cyB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIEhvdmVyVGV4dF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCIpKTtcbnZhciBjb3JlRWxlbWVudHNfMSA9IHJlcXVpcmUoXCJDb21wb3NhYmxlL2NvcmVFbGVtZW50c1wiKTtcbnZhciBJbmRleF8xID0gcmVxdWlyZShcIk9yZ2FuaXNhdGlvbi9lbGVtZW50cy9JbmRleFwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdPcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCB8fCBBcnJheSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYW5ndWFnZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdDogJ2VuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIHByb3BzID0gX19wcm9wcztcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgLy8gY29uc3Qgc3RhdHVzID0gJyc7XG4gICAgICAgIHZhciBsYXlvdXQgPSAnYmFzaXMtNi8xMic7XG4gICAgICAgIGlmIChwcm9wcy53aWR0aCA9PT0gJ2Z1bGwnKSB7XG4gICAgICAgICAgICBsYXlvdXQgPSAnYmFzaXMtZnVsbCc7XG4gICAgICAgIH1cbiAgICAgICAgKDAsIHZ1ZV8yLnByb3ZpZGUpKCdvcmdUeXBlcycsIHByb3BzLnR5cGVzKTtcbiAgICAgICAgdmFyIHJlcGxhY2VVbmRlcnNjb3JlID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgdmFyIHJlZ2V4ID0gL18vZztcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBzdHJpbmcucmVwbGFjZShyZWdleCwgJy0nKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgcHJvcHM6IHByb3BzLCBsYXlvdXQ6IGxheW91dCwgcmVwbGFjZVVuZGVyc2NvcmU6IHJlcGxhY2VVbmRlcnNjb3JlLCBIb3ZlclRleHQ6IEhvdmVyVGV4dF92dWVfMS5kZWZhdWx0LCBvcmdNYW5kYXRvcnlFbGVtZW50czogY29yZUVsZW1lbnRzXzEub3JnTWFuZGF0b3J5RWxlbWVudHMsIFJlcG9ydGluZ09yZ2FuaXNhdGlvbjogSW5kZXhfMS5SZXBvcnRpbmdPcmdhbmlzYXRpb24sIFRvdGFsQnVkZ2V0OiBJbmRleF8xLlRvdGFsQnVkZ2V0LCBSZXBvcnRpbmdPcmdCdWRnZXQ6IEluZGV4XzEuUmVwb3J0aW5nT3JnQnVkZ2V0LCBSZXBvcnRpbmdSZWdpb25CdWRnZXQ6IEluZGV4XzEuUmVwb3J0aW5nUmVnaW9uQnVkZ2V0LCBSZWNpcGllbnRDb3VudHJ5QnVkZ2V0OiBJbmRleF8xLlJlY2lwaWVudENvdW50cnlCdWRnZXQsIFRvdGFsRXhwZW5kaXR1cmU6IEluZGV4XzEuVG90YWxFeHBlbmRpdHVyZSwgRG9jdW1lbnRMaW5rOiBJbmRleF8xLkRvY3VtZW50TGluayB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIG1vbWVudF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJtb21lbnRcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ0RvY3VtZW50TGluaycsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY29udGVudDogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcIm9yZ1R5cGVzXCIpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlID8gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZvcm1hdChcIkxMXCIpIDogbGFuZ3VhZ2UuY29tbW9uX2xhbmcubWlzc2luZy5kYXRlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUmVjaXBpZW50Q291bnRyeUJ1ZGdldCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY29udGVudDogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcIm9yZ1R5cGVzXCIpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlID8gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZvcm1hdChcIkxMXCIpIDogbGFuZ3VhZ2UuY29tbW9uX2xhbmcubWlzc2luZy5kYXRlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUmVwb3J0aW5nT3JnQnVkZ2V0JyxcbiAgICBwcm9wczoge1xuICAgICAgICBjb250ZW50OiB7IHR5cGU6IE9iamVjdCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMi5pbmplY3QpKFwib3JnVHlwZXNcIik7XG4gICAgICAgIGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUgPyAoMCwgbW9tZW50XzEuZGVmYXVsdCkoZGF0ZSkuZm9ybWF0KFwiTExcIikgOiBsYW5ndWFnZS5jb21tb25fbGFuZy5taXNzaW5nLmRhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCB0eXBlczogdHlwZXMsIGZvcm1hdERhdGU6IGZvcm1hdERhdGUgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdSZXBvcnRpbmdPcmdhbmlzYXRpb24nLFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNvbnRlbnQ6IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIHR5cGVzID0gKDAsIHZ1ZV8yLmluamVjdCkoJ29yZ1R5cGVzJyk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgdHlwZXM6IHR5cGVzIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnUmVwb3J0aW5nUmVnaW9uQnVkZ2V0JyxcbiAgICBwcm9wczoge1xuICAgICAgICBjb250ZW50OiB7IHR5cGU6IE9iamVjdCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciB0eXBlcyA9ICgwLCB2dWVfMi5pbmplY3QpKFwib3JnVHlwZXNcIik7XG4gICAgICAgIGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUgPyAoMCwgbW9tZW50XzEuZGVmYXVsdCkoZGF0ZSkuZm9ybWF0KFwiTExcIikgOiBsYW5ndWFnZS5jb21tb25fbGFuZy5taXNzaW5nLmRhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCB0eXBlczogdHlwZXMsIGZvcm1hdERhdGU6IGZvcm1hdERhdGUgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZV8yID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBtb21lbnRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibW9tZW50XCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdUb3RhbEJ1ZGdldCcsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY29udGVudDogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcIm9yZ1R5cGVzXCIpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlID8gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZvcm1hdChcIkxMXCIpIDogbGFuZ3VhZ2UuY29tbW9uX2xhbmcubWlzc2luZy5kYXRlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgbW9tZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnVG90YWxFeHBlbmRpdHVyZScsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY29udGVudDogeyB0eXBlOiBPYmplY3QsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdHlwZXMgPSAoMCwgdnVlXzIuaW5qZWN0KShcIm9yZ1R5cGVzXCIpO1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlID8gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZvcm1hdChcIkxMXCIpIDogbGFuZ3VhZ2UuY29tbW9uX2xhbmcubWlzc2luZy5kYXRlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgdHlwZXM6IHR5cGVzLCBmb3JtYXREYXRlOiBmb3JtYXREYXRlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uLy4uL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZVwiKSk7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBmb3JtRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgZW1haWw6ICcnLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGVtYWlsRXJyb3IgPSAoMCwgdnVlXzEucmVmKSgnJyk7XG4gICAgICAgIHZhciBsb2FkZXJWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICBmdW5jdGlvbiByZXNldCgpIHtcbiAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoJy9wYXNzd29yZC9lbWFpbCcsIGZvcm1EYXRhKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLnJlcXVlc3QucmVzcG9uc2VVUkwuaW5jbHVkZXMoJ2FjdGl2aXRpZXMnKSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvYWN0aXZpdGllcyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAhcmVzcG9uc2Uuc3VjY2VzcyB8fCAnZXJyb3JzJyBpbiByZXNwb25zZSA/IHJlc3BvbnNlLmVycm9ycyA6IFtdO1xuICAgICAgICAgICAgICAgIGVtYWlsRXJyb3IudmFsdWUgPSBlcnJvcnMuZW1haWwgPyBlcnJvcnMuZW1haWxbMF0gOiAnJztcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvcGFzc3dvcmQvY29uZmlybSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSBlcnJvci5yZXNwb25zZS5kYXRhLmVycm9ycztcbiAgICAgICAgICAgICAgICBlbWFpbEVycm9yLnZhbHVlID0gZXJyb3JzLmVtYWlsID8gZXJyb3JzLmVtYWlsWzBdIDogJyc7XG4gICAgICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZvcm1EYXRhOiBmb3JtRGF0YSxcbiAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHk6IGxvYWRlclZpc2liaWxpdHksXG4gICAgICAgICAgICBlbWFpbEVycm9yOiBlbWFpbEVycm9yLFxuICAgICAgICAgICAgcmVzZXQ6IHJlc2V0LFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgY3J5cHRvX2pzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImNyeXB0by1qc1wiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBMb2FkZXI6IExvYWRlcl92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBsb2FkZXJWaXNpYmlsaXR5ID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICB2YXIgZm9ybURhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGVtYWlsOiBwcm9wcy5lbWFpbCxcbiAgICAgICAgICAgIHRva2VuOiBwcm9wcy50b2tlbixcbiAgICAgICAgICAgIHBhc3N3b3JkOiAnJyxcbiAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBlbWFpbDogJycsXG4gICAgICAgICAgICBwYXNzd29yZDogJycsXG4gICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246ICcnLFxuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gZW5jcnlwdChzdHJpbmcsIGtleSkge1xuICAgICAgICAgICAgdmFyIGl2ID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5saWIuV29yZEFycmF5LnJhbmRvbSgxNik7IC8vIHRoZSByZWFzb24gdG8gYmUgMTYsIHBsZWFzZSByZWFkIG9uIGBlbmNyeXB0TWV0aG9kYCBwcm9wZXJ0eS5cbiAgICAgICAgICAgIHZhciBzYWx0ID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5saWIuV29yZEFycmF5LnJhbmRvbSgyNTYpO1xuICAgICAgICAgICAgdmFyIGl0ZXJhdGlvbnMgPSA5OTk7XG4gICAgICAgICAgICB2YXIgZW5jcnlwdE1ldGhvZExlbmd0aCA9IDI1NiAvIDQ7IC8vIGV4YW1wbGU6IEFFUyBudW1iZXIgaXMgMjU2IC8gNCA9IDY0XG4gICAgICAgICAgICB2YXIgaGFzaEtleSA9IGNyeXB0b19qc18xLmRlZmF1bHQuUEJLREYyKGtleSwgc2FsdCwge1xuICAgICAgICAgICAgICAgIGhhc2hlcjogY3J5cHRvX2pzXzEuZGVmYXVsdC5hbGdvLlNIQTUxMixcbiAgICAgICAgICAgICAgICBrZXlTaXplOiBlbmNyeXB0TWV0aG9kTGVuZ3RoIC8gOCxcbiAgICAgICAgICAgICAgICBpdGVyYXRpb25zOiBpdGVyYXRpb25zLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgZW5jcnlwdGVkID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5BRVMuZW5jcnlwdChzdHJpbmcsIGhhc2hLZXksIHtcbiAgICAgICAgICAgICAgICBtb2RlOiBjcnlwdG9fanNfMS5kZWZhdWx0Lm1vZGUuQ0JDLFxuICAgICAgICAgICAgICAgIGl2OiBpdixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGVuY3J5cHRlZFN0cmluZyA9IGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkJhc2U2NC5zdHJpbmdpZnkoZW5jcnlwdGVkLmNpcGhlcnRleHQpO1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IHtcbiAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0OiBlbmNyeXB0ZWRTdHJpbmcsXG4gICAgICAgICAgICAgICAgaXY6IGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkhleC5zdHJpbmdpZnkoaXYpLFxuICAgICAgICAgICAgICAgIHNhbHQ6IGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLkhleC5zdHJpbmdpZnkoc2FsdCksXG4gICAgICAgICAgICAgICAgaXRlcmF0aW9uczogaXRlcmF0aW9ucyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gY3J5cHRvX2pzXzEuZGVmYXVsdC5lbmMuQmFzZTY0LnN0cmluZ2lmeShjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5VdGY4LnBhcnNlKEpTT04uc3RyaW5naWZ5KG91dHB1dCkpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiByZXNldCgpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBmb3JtID0ge1xuICAgICAgICAgICAgICAgIGVtYWlsOiBmb3JtRGF0YS5lbWFpbCxcbiAgICAgICAgICAgICAgICB0b2tlbjogcHJvcHMudG9rZW4sXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiBlbmNyeXB0KGZvcm1EYXRhLnBhc3N3b3JkX2NvbmZpcm1hdGlvbiwgKF9hID0gcHJvY2Vzcy5lbnYuTUlYX0VOQ1JZUFRJT05fS0VZKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyksXG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6IGVuY3J5cHQoZm9ybURhdGEucGFzc3dvcmQsIChfYiA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJycpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wb3N0KCcvcmVzZXQnLCBmb3JtKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLnJlcXVlc3QucmVzcG9uc2VVUkwuaW5jbHVkZXMoJ2FjdGl2aXRpZXMnKSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvYWN0aXZpdGllcyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAnZXJyb3JzJyBpbiByZXNwb25zZSA/IHJlc3BvbnNlLmVycm9ycyA6IFtdO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZCA9IGVycm9ycy5wYXNzd29yZCA/IGVycm9ycy5wYXNzd29yZFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5lbWFpbCA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24gPSBlcnJvcnMucGFzc3dvcmRfY29uZmlybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnBhc3N3b3JkX2NvbmZpcm1hdGlvblswXVxuICAgICAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9hY3Rpdml0aWVzJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9IGVycm9yLnJlc3BvbnNlLmRhdGEuZXJyb3JzO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZCA9IGVycm9ycy5wYXNzd29yZCA/IGVycm9ycy5wYXNzd29yZFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5lbWFpbCA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6ICcnO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24gPSBlcnJvcnMucGFzc3dvcmRfY29uZmlybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnBhc3N3b3JkX2NvbmZpcm1hdGlvblswXVxuICAgICAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5OiBsb2FkZXJWaXNpYmlsaXR5LFxuICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgZXJyb3JEYXRhOiBlcnJvckRhdGEsXG4gICAgICAgICAgICByZXNldDogcmVzZXQsXG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIG11bHRpc2VsZWN0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkB2dWVmb3JtL211bHRpc2VsZWN0XCIpKTtcbnZhciBzdG9yZV8xID0gcmVxdWlyZShcIi4uLy4uL3N0b3JlXCIpO1xudmFyIGFjdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9zdG9yZS9zZXR0aW5nL2FjdGlvbnNcIik7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLy4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBNdWx0aXNlbGVjdDogbXVsdGlzZWxlY3RfMS5kZWZhdWx0LFxuICAgICAgICBIb3ZlclRleHQ6IEhvdmVyVGV4dF92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY3VycmVuY2llczoge1xuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYW5ndWFnZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgaHVtYW5pdGFyaWFuOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGJ1ZGdldE5vdFByb3ZpZGVkOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBzdG9yZSA9ICgwLCBzdG9yZV8xLnVzZVN0b3JlKSgpO1xuICAgICAgICB2YXIgZGVmYXVsdEZvcm0gPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5zdGF0ZS5kZWZhdWx0Rm9ybTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkZWZhdWx0RXJyb3IgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5zdGF0ZS5kZWZhdWx0RXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiB1cGRhdGVTdG9yZShrZXkpIHtcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnNfMS5BY3Rpb25UeXBlcy5VUERBVEVfREVGQVVMVF9WQUxVRVMsIHtcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZGVmYXVsdEZvcm0udmFsdWVba2V5XSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICBkZWZhdWx0Rm9ybTogZGVmYXVsdEZvcm0sXG4gICAgICAgICAgICBkZWZhdWx0RXJyb3I6IGRlZmF1bHRFcnJvcixcbiAgICAgICAgICAgIHVwZGF0ZVN0b3JlOiB1cGRhdGVTdG9yZSxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZVxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHN0b3JlXzEgPSByZXF1aXJlKFwiLi4vLi4vc3RvcmVcIik7XG52YXIgYWN0aW9uc18xID0gcmVxdWlyZShcIi4uLy4uL3N0b3JlL3NldHRpbmcvYWN0aW9uc1wiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgU2V0dGluZ0RlZmF1bHRGb3JtX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1NldHRpbmdEZWZhdWx0Rm9ybS52dWVcIikpO1xudmFyIFNldHRpbmdQdWJsaXNoaW5nRm9ybV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9TZXR0aW5nUHVibGlzaGluZ0Zvcm0udnVlXCIpKTtcbnZhciBMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uLy4uL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgU2V0dGluZ0RlZmF1bHRGb3JtOiBTZXR0aW5nRGVmYXVsdEZvcm1fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgU2V0dGluZ1B1Ymxpc2hpbmdGb3JtOiBTZXR0aW5nUHVibGlzaGluZ0Zvcm1fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgY3VycmVuY2llczoge1xuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYW5ndWFnZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgaHVtYW5pdGFyaWFuOiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZ2FuaXphdGlvbjoge1xuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBidWRnZXROb3RQcm92aWRlZDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciB0YWIgPSAoMCwgdnVlXzEucmVmKSgncHVibGlzaCcpO1xuICAgICAgICB2YXIgc3RvcmUgPSAoMCwgc3RvcmVfMS51c2VTdG9yZSkoKTtcbiAgICAgICAgdmFyIGxvYWRlclZpc2liaWxpdHkgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciB0b2FzdFZpc2liaWxpdHkgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzEucmVmKSgnJyk7XG4gICAgICAgIHZhciB0b2FzdFR5cGUgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciBwdWJsaXNoaW5nRm9ybSA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc3RvcmUuc3RhdGUucHVibGlzaGluZ0Zvcm07IH0pO1xuICAgICAgICB2YXIgcHVibGlzaGluZ0luZm8gPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0b3JlLnN0YXRlLnB1Ymxpc2hpbmdJbmZvOyB9KTtcbiAgICAgICAgdmFyIHB1Ymxpc2hpbmdFcnJvciA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc3RvcmUuc3RhdGUucHVibGlzaGluZ0Vycm9yOyB9KTtcbiAgICAgICAgdmFyIGRlZmF1bHRGb3JtID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7IHJldHVybiBzdG9yZS5zdGF0ZS5kZWZhdWx0Rm9ybTsgfSk7XG4gICAgICAgIHZhciBkZWZhdWx0RXJyb3IgPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0b3JlLnN0YXRlLmRlZmF1bHRFcnJvcjsgfSk7XG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVN0b3JlKG5hbWUsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnNfMS5BY3Rpb25UeXBlc1tuYW1lXSwge1xuICAgICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9fYXdhaXRlcihfdGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkYXRhLCBzZXR0aW5nRGF0YSwgZGVmYXVsdFZhbHVlcywgcHVibGlzaGVySW5mbywgYWN0aXZpdHlWYWx1ZXMsIGtleSwga2V5LCBrZXk7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6IHJldHVybiBbNCAvKnlpZWxkKi8sIGF4aW9zXzEuZGVmYXVsdC5nZXQoJy9zZXR0aW5nL2RhdGEnKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSAoX2Euc2VudCgpKS5kYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ0RhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ0RhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWVzID0gc2V0dGluZ0RhdGEuZGVmYXVsdF92YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzZXR0aW5nRGF0YS5kZWZhdWx0X3ZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlckluZm8gPSBzZXR0aW5nRGF0YS5wdWJsaXNoaW5nX2luZm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzZXR0aW5nRGF0YS5wdWJsaXNoaW5nX2luZm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eVZhbHVlcyA9IHNldHRpbmdEYXRhLmFjdGl2aXR5X2RlZmF1bHRfdmFsdWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2V0dGluZ0RhdGEuYWN0aXZpdHlfZGVmYXVsdF92YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHVibGlzaGVySW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBwdWJsaXNoZXJJbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSh0eXBlb2YgcHVibGlzaGVySW5mb1trZXldID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1VQREFURV9QVUJMSVNISU5HX0ZPUk0nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnVVBEQVRFX1BVQkxJU0hFUl9JTkZPJywga2V5LCBwdWJsaXNoZXJJbmZvW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwdWJsaXNoZXJJbmZvLmFwaV90b2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RvcmUoJ1VQREFURV9QVUJMSVNIRVJfSU5GTycsICdpc1ZlcmlmaWNhdGlvblJlcXVlc3RlZCcsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0VmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoa2V5IGluIGRlZmF1bHRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfREVGQVVMVF9WQUxVRVMnLCBrZXksIGRlZmF1bHRWYWx1ZXNba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5VmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoa2V5IGluIGFjdGl2aXR5VmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSgnVVBEQVRFX0RFRkFVTFRfVkFMVUVTJywga2V5LCBhY3Rpdml0eVZhbHVlc1trZXldKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7IH0pO1xuICAgICAgICBmdW5jdGlvbiB0b2dnbGVUYWIocGFnZSkge1xuICAgICAgICAgICAgdG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB0YWIudmFsdWUgPSBwYWdlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN1Ym1pdERlZmF1bHQoKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBkYXRhIGluIGRlZmF1bHRFcnJvci52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfREVGQVVMVF9FUlJPUicsIGRhdGEsICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoJy9zZXR0aW5nL3N0b3JlL2RlZmF1bHQnLCBkZWZhdWx0Rm9ybS52YWx1ZSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRvYXN0VmlzaWJpbGl0eS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiAodG9hc3RWaXNpYmlsaXR5LnZhbHVlID0gZmFsc2UpOyB9LCA1MDAwKTtcbiAgICAgICAgICAgICAgICB0b2FzdE1lc3NhZ2UudmFsdWUgPSByZXNwb25zZS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRvYXN0VHlwZS52YWx1ZSA9IHJlc3BvbnNlLnN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RvcmUoJ1VQREFURV9QVUJMSVNIRVJfSU5GTycsIHJlc3BvbnNlLmRhdGEuaGllcmFyY2hpYWwsICcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbG9hZGVyVmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9IGVycm9yLnJlc3BvbnNlLmRhdGEuZXJyb3JzO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGUgaW4gZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfREVGQVVMVF9FUlJPUicsIGUsIGVycm9yc1tlXVswXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN1Ym1pdFB1Ymxpc2hpbmcodXJsKSB7XG4gICAgICAgICAgICBsb2FkZXJWaXNpYmlsaXR5LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZvciAodmFyIGRhdGEgaW4gcHVibGlzaGluZ0Vycm9yLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlU3RvcmUoJ1VQREFURV9QVUJMSVNISU5HX0VSUk9SJywgZGF0YSwgJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QodXJsLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgcHVibGlzaGluZ0luZm8udmFsdWUpLCBwdWJsaXNoaW5nRm9ybS52YWx1ZSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfUFVCTElTSEVSX0lORk8nLCAncHVibGlzaGVyX3ZlcmlmaWNhdGlvbicsIHJlc3BvbnNlLmRhdGEucHVibGlzaGVyX3ZlcmlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfUFVCTElTSEVSX0lORk8nLCAndG9rZW5fdmVyaWZpY2F0aW9uJywgcmVzcG9uc2UuZGF0YS50b2tlbl92ZXJpZmljYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdG9yZSgnVVBEQVRFX1BVQkxJU0hFUl9JTkZPJywgJ2lzVmVyaWZpY2F0aW9uUmVxdWVzdGVkJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0b2FzdFZpc2liaWxpdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRvYXN0VmlzaWJpbGl0eS52YWx1ZSA9IGZhbHNlKTsgfSwgNTAwMCk7XG4gICAgICAgICAgICAgICAgdG9hc3RNZXNzYWdlLnZhbHVlID0gcmVzcG9uc2UubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0b2FzdFR5cGUudmFsdWUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9IGVycm9yLnJlc3BvbnNlLmRhdGEuZXJyb3JzO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGUgaW4gZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0b3JlKCdVUERBVEVfUFVCTElTSElOR19FUlJPUicsIGUsIGVycm9yc1tlXVswXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHkudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN1Ym1pdEZvcm0odXJsKSB7XG4gICAgICAgICAgICBpZiAodXJsID09PSB2b2lkIDApIHsgdXJsID0gJ3NldHRpbmcvdmVyaWZ5JzsgfVxuICAgICAgICAgICAgaWYgKHRhYi52YWx1ZSA9PT0gJ3B1Ymxpc2gnKVxuICAgICAgICAgICAgICAgIHN1Ym1pdFB1Ymxpc2hpbmcodXJsKTtcbiAgICAgICAgICAgIGlmICh0YWIudmFsdWUgPT09ICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICBzdWJtaXREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIHRhYjogdGFiLFxuICAgICAgICAgICAgZGVmYXVsdEVycm9yOiBkZWZhdWx0RXJyb3IsXG4gICAgICAgICAgICBwdWJsaXNoaW5nRXJyb3I6IHB1Ymxpc2hpbmdFcnJvcixcbiAgICAgICAgICAgIHN0b3JlOiBzdG9yZSxcbiAgICAgICAgICAgIGxvYWRlclZpc2liaWxpdHk6IGxvYWRlclZpc2liaWxpdHksXG4gICAgICAgICAgICB0b2FzdFZpc2liaWxpdHk6IHRvYXN0VmlzaWJpbGl0eSxcbiAgICAgICAgICAgIHRvYXN0TWVzc2FnZTogdG9hc3RNZXNzYWdlLFxuICAgICAgICAgICAgdG9hc3RUeXBlOiB0b2FzdFR5cGUsXG4gICAgICAgICAgICB0b2dnbGVUYWI6IHRvZ2dsZVRhYixcbiAgICAgICAgICAgIHN1Ym1pdEZvcm06IHN1Ym1pdEZvcm0sXG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2VcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgc3RvcmVfMSA9IHJlcXVpcmUoXCIuLi8uLi9zdG9yZVwiKTtcbnZhciBhY3Rpb25zXzEgPSByZXF1aXJlKFwiLi4vLi4vc3RvcmUvc2V0dGluZy9hY3Rpb25zXCIpO1xudmFyIEhvdmVyVGV4dF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi8uLi8uLi9jb21wb25lbnRzL0hvdmVyVGV4dC52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIG9yZ2FuaXphdGlvbjoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBlbWl0czogWydzdWJtaXRQdWJsaXNoaW5nJ10sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGVtaXQgPSBfYS5lbWl0O1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgdGFiID0gKDAsIHZ1ZV8xLnJlZikoJ3B1Ymxpc2gnKTtcbiAgICAgICAgdmFyIHN0b3JlID0gKDAsIHN0b3JlXzEudXNlU3RvcmUpKCk7XG4gICAgICAgIHZhciBwdWJsaXNoaW5nRm9ybSA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc3RvcmUuc3RhdGUucHVibGlzaGluZ0Zvcm07IH0pO1xuICAgICAgICB2YXIgcHVibGlzaGluZ0luZm8gPSAoMCwgdnVlXzEuY29tcHV0ZWQpKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0b3JlLnN0YXRlLnB1Ymxpc2hpbmdJbmZvOyB9KTtcbiAgICAgICAgdmFyIHB1Ymxpc2hpbmdFcnJvciA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gc3RvcmUuc3RhdGUucHVibGlzaGluZ0Vycm9yOyB9KTtcbiAgICAgICAgZnVuY3Rpb24gc3VibWl0UHVibGlzaGluZygpIHtcbiAgICAgICAgICAgIGVtaXQoJ3N1Ym1pdFB1Ymxpc2hpbmcnKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBhdXRvVmVyaWZ5KCkge1xuICAgICAgICAgICAgZW1pdCgnc3VibWl0UHVibGlzaGluZycpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVN0b3JlKGtleSkge1xuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2goYWN0aW9uc18xLkFjdGlvblR5cGVzLlVQREFURV9QVUJMSVNISU5HX0ZPUk0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcHVibGlzaGluZ0Zvcm0udmFsdWVba2V5XSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVRhYigpIHtcbiAgICAgICAgICAgIHRhYi52YWx1ZSA9IHRhYi52YWx1ZSA9PT0gJ3B1Ymxpc2gnID8gJ2RlZmF1bHQnIDogJ3B1Ymxpc2gnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YWI6IHRhYixcbiAgICAgICAgICAgIHB1Ymxpc2hpbmdGb3JtOiBwdWJsaXNoaW5nRm9ybSxcbiAgICAgICAgICAgIHB1Ymxpc2hpbmdJbmZvOiBwdWJsaXNoaW5nSW5mbyxcbiAgICAgICAgICAgIHB1Ymxpc2hpbmdFcnJvcjogcHVibGlzaGluZ0Vycm9yLFxuICAgICAgICAgICAgc3RvcmU6IHN0b3JlLFxuICAgICAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICAgICAgc3VibWl0UHVibGlzaGluZzogc3VibWl0UHVibGlzaGluZyxcbiAgICAgICAgICAgIHRvZ2dsZVRhYjogdG9nZ2xlVGFiLFxuICAgICAgICAgICAgdXBkYXRlU3RvcmU6IHVwZGF0ZVN0b3JlLFxuICAgICAgICAgICAgYXV0b1ZlcmlmeTogYXV0b1ZlcmlmeSxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZVxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciB2dWVfMiA9IHJlcXVpcmUoXCJ2dWVcIik7XG4vLyBDb21wb25lbnRzXG52YXIgUGFnZVRpdGxlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1BhZ2VUaXRsZS52dWVcIikpO1xudmFyIFByb2dyZXNzTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL3NlY3Rpb25zL1Byb2dyZXNzTG9hZGVyLnZ1ZVwiKSk7XG52YXIgVG9hc3RNZXNzYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL1RvYXN0TWVzc2FnZS52dWVcIikpO1xudmFyIFRhYmxlTGlzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9jb21wb25lbnRzL1RhYmxlTGlzdC52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIF9fbmFtZTogJ09yZ2FuaXNhdGlvbkxpc3QnLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIC8vIHJlZlxuICAgICAgICB2YXIgbG9hZGVyID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBzdGF0dXM6IGZhbHNlLFxuICAgICAgICAgICAgdGV4dDogbGFuZ3VhZ2UuY29tbW9uX2xhbmcucGxlYXNlX3dhaXQsXG4gICAgICAgIH0pO1xuICAgICAgICAvL0JyZWFkY3J1bWIgZGF0YVxuICAgICAgICB2YXIgYnJlYWRjcnVtYkRhdGEgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGxhbmd1YWdlLmNvbW1vbl9sYW5nLm9yZ2FuaXNhdGlvbnMsXG4gICAgICAgICAgICAgICAgbGluazogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgICB2YXIgdG9hc3RNZXNzYWdlID0gKDAsIHZ1ZV8yLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgdHlwZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHByb3ZpZGVcbiAgICAgICAgKDAsIHZ1ZV8yLnByb3ZpZGUpKCdsb2FkZXInLCBsb2FkZXIpO1xuICAgICAgICAoMCwgdnVlXzIucHJvdmlkZSkoJ3RvYXN0RGF0YScsIHRvYXN0TWVzc2FnZSk7XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSwgbG9hZGVyOiBsb2FkZXIsIGJyZWFkY3J1bWJEYXRhOiBicmVhZGNydW1iRGF0YSwgdG9hc3RNZXNzYWdlOiB0b2FzdE1lc3NhZ2UsIFBhZ2VUaXRsZTogUGFnZVRpdGxlX3Z1ZV8xLmRlZmF1bHQsIExvYWRlcjogUHJvZ3Jlc3NMb2FkZXJfdnVlXzEuZGVmYXVsdCwgVG9hc3Q6IFRvYXN0TWVzc2FnZV92dWVfMS5kZWZhdWx0LCBUYWJsZUxpc3Q6IFRhYmxlTGlzdF92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdBZG1pbkJhcicsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbmFtZTogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIG9yZ2FuaXphdGlvbk5hbWU6IHsgdHlwZTogU3RyaW5nLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN3aXRjaCBCYWNrXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgc3dpdGNoQmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKFwiL2xpc3Qtb3JnYW5pc2F0aW9uc1wiKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCBzd2l0Y2hCYWNrOiBzd2l0Y2hCYWNrIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgfVxufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgdnVlXzIgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIGF4aW9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImF4aW9zXCIpKTtcbnZhciBkYXRlRm9ybWF0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZGF0ZUZvcm1hdFwiKSk7XG52YXIgQnV0dG9uQ29tcG9uZW50X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJDb21wb25lbnRzL0J1dHRvbkNvbXBvbmVudC52dWVcIikpO1xudmFyIFRhYmxlUGFnaW5hdGlvbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9UYWJsZVBhZ2luYXRpb24udnVlXCIpKTtcbi8vIHJlYWN0aXZpdHlcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdUYWJsZUxpc3QnLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIF9iO1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgLy8gaW5qZWN0XG4gICAgICAgIHZhciB0b2FzdE1lc3NhZ2UgPSAoMCwgdnVlXzIuaW5qZWN0KSgndG9hc3REYXRhJyk7XG4gICAgICAgIHZhciBsb2FkZXIgPSAoMCwgdnVlXzIuaW5qZWN0KSgnbG9hZGVyJyk7XG4gICAgICAgIC8vdHlwZWZhY2VcbiAgICAgICAgdmFyIG9yZ2FuaXNhdGlvbkRhdGEgPSAoMCwgdnVlXzIucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgc3RhdHVzOiAnZmV0Y2hpbmcnLFxuICAgICAgICB9KTtcbiAgICAgICAgLy9saWZlY3ljbGVcbiAgICAgICAgKDAsIHZ1ZV8yLm9uTW91bnRlZCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIGZldGNoT3JnYW5pc2F0aW9uKDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGZXRjaGluZyBvcmdhbml6YXRpb24gbGlzdFxuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIGN1cnJlbnRVUkwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgICAgdmFyIGZldGNoT3JnYW5pc2F0aW9uID0gZnVuY3Rpb24gKGFjdGl2ZV9wYWdlKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSAnJztcbiAgICAgICAgICAgIGlmIChjdXJyZW50VVJMLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZW5kcG9pbnQgPSBcIi9saXN0LW9yZ2FuaXNhdGlvbnMvcGFnZS9cIi5jb25jYXQoYWN0aXZlX3BhZ2UpLmNvbmNhdChxdWVyeVN0cmluZyk7XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHQuZ2V0KGVuZHBvaW50KS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JnYW5pc2F0aW9uRGF0YS5zdGF0dXMgPSAnZW1wdHknO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JnYW5pc2F0aW9uRGF0YS5zdGF0dXMgPSAnc3VjY2Vzcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmdhbmlzYXRpb25EYXRhLmRhdGEgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQcm94eSBVc2VyXG4gICAgICAgICAqL1xuICAgICAgICAvLyBkaXNwbGF5L2hpZGUgdmFsaWRhdG9yIGxvYWRlclxuICAgICAgICB2YXIgcHJveHlVc2VyID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgICAgICBsb2FkZXIuc3RhdHVzID0gdHJ1ZTtcbiAgICAgICAgICAgIGxvYWRlci50ZXh0ID0gJ1Byb3h5IExvZ2luJztcbiAgICAgICAgICAgIHZhciBlbmRwb2ludCA9IFwiL3Byb3h5LW9yZ2FuaXNhdGlvbi9cIi5jb25jYXQoaWQpO1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0LmdldChlbmRwb2ludCkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSgnL2FjdGl2aXRpZXMnKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2FkZXIuc3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRvYXN0TWVzc2FnZS5tZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3RNZXNzYWdlLnR5cGUgPSByZXNwb25zZS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogU29ydGluZyBCeSB1cGRhdGUgb25cbiAgICAgICAgICovXG4gICAgICAgIHZhciBxdWVyeSA9ICcnLCBkZWZhdWx0U29ydERpcmVjdGlvbiA9ICdhc2NlbmRpbmcnLCBzb3J0RGlyZWN0aW9uID0gJ2Rlc2MnO1xuICAgICAgICB2YXIgb3JkZXJUeXBlID0gKDAsIHZ1ZV8yLnJlZikoJycpO1xuICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKTtcbiAgICAgICAgb3JkZXJUeXBlLnZhbHVlID0gKF9iID0gdXJsUGFyYW1zLmdldCgnb3JkZXJCeScpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnJztcbiAgICAgICAgdmFyIHNvcnRpbmdEaXJlY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzY2VuZGluZycgOiAnYXNjZW5kaW5nJztcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHNvcnRCeSA9IGZ1bmN0aW9uIChvcmRlcikge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRVUkwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgICAgICAgICAgIHF1ZXJ5ID0gKF9hID0gdXJsUGFyYW1zLmdldCgncScpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJztcbiAgICAgICAgICAgICAgICBzb3J0RGlyZWN0aW9uID0gdXJsUGFyYW1zLmdldCgnZGlyZWN0aW9uJykgPT09ICdkZXNjJyA/ICdhc2MnIDogJ2Rlc2MnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwiP3E9XCIuY29uY2F0KHF1ZXJ5LCBcIiZvcmRlckJ5PVwiKS5jb25jYXQob3JkZXIsIFwiJmRpcmVjdGlvbj1cIikuY29uY2F0KHNvcnREaXJlY3Rpb24pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UsIHRvYXN0TWVzc2FnZTogdG9hc3RNZXNzYWdlLCBsb2FkZXI6IGxvYWRlciwgb3JnYW5pc2F0aW9uRGF0YTogb3JnYW5pc2F0aW9uRGF0YSwgY3VycmVudFVSTDogY3VycmVudFVSTCwgZmV0Y2hPcmdhbmlzYXRpb246IGZldGNoT3JnYW5pc2F0aW9uLCBwcm94eVVzZXI6IHByb3h5VXNlciwgcXVlcnk6IHF1ZXJ5LCBkZWZhdWx0U29ydERpcmVjdGlvbjogZGVmYXVsdFNvcnREaXJlY3Rpb24sIHNvcnREaXJlY3Rpb246IHNvcnREaXJlY3Rpb24sIG9yZGVyVHlwZTogb3JkZXJUeXBlLCBxdWVyeVN0cmluZzogcXVlcnlTdHJpbmcsIHVybFBhcmFtczogdXJsUGFyYW1zLCBzb3J0aW5nRGlyZWN0aW9uOiBzb3J0aW5nRGlyZWN0aW9uLCBzb3J0Qnk6IHNvcnRCeSwgZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdF8xLmRlZmF1bHQsIEJ0bkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50X3Z1ZV8xLmRlZmF1bHQsIFBhZ2luYXRpb246IFRhYmxlUGFnaW5hdGlvbl92dWVfMS5kZWZhdWx0IH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBwcm9wczoge1xuICAgICAgICBlbWFpbDogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICcnIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgIH07XG4gICAgfSxcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgRW1haWxWZXJpZmljYXRpb25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vRW1haWxWZXJpZmljYXRpb24udnVlXCIpKTtcbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vLi4vLi4vY29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCIpKTtcbnZhciBtdWx0aXNlbGVjdF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAdnVlZm9ybS9tdWx0aXNlbGVjdFwiKSk7XG52YXIgTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jb21wb25lbnRzL0xvYWRlci52dWVcIikpO1xudmFyIGVuY3J5cHRpb25fMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9zYWJsZS9lbmNyeXB0aW9uXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEVtYWlsVmVyaWZpY2F0aW9uOiBFbWFpbFZlcmlmaWNhdGlvbl92dWVfMS5kZWZhdWx0LFxuICAgICAgICBIb3ZlclRleHQ6IEhvdmVyVGV4dF92dWVfMS5kZWZhdWx0LFxuICAgICAgICBNdWx0aXNlbGVjdDogbXVsdGlzZWxlY3RfMS5kZWZhdWx0LFxuICAgICAgICBMb2FkZXI6IExvYWRlcl92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgc3RlcCA9ICgwLCB2dWVfMS5yZWYpKDEpO1xuICAgICAgICB2YXIgcHVibGlzaGVyRXhpc3RzID0gKDAsIHZ1ZV8xLnJlZikodHJ1ZSk7XG4gICAgICAgIHZhciBpc0xvYWRlclZpc2libGUgPSAoMCwgdnVlXzEucmVmKShmYWxzZSk7XG4gICAgICAgIHZhciB0ZXh0YXJlYSA9ICgwLCB2dWVfMS5yZWYpKG51bGwpO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICBwdWJsaXNoZXJfbmFtZTogXCJcIixcbiAgICAgICAgICAgIHB1Ymxpc2hlcl9pZDogXCJcIixcbiAgICAgICAgICAgIGNvdW50cnk6IFwiXCIsXG4gICAgICAgICAgICByZWdpc3RyYXRpb25fYWdlbmN5OiBcIlwiLFxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uX251bWJlcjogXCJcIixcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IFwiXCIsXG4gICAgICAgICAgICBwdWJsaXNoZXJfdHlwZTogXCJcIixcbiAgICAgICAgICAgIGxpY2Vuc2VfaWQ6IFwiXCIsXG4gICAgICAgICAgICBpbWFnZV91cmw6IFwiXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICAgICAgICAgIGNvbnRhY3RfZW1haWw6IFwiXCIsXG4gICAgICAgICAgICB3ZWJzaXRlOiBcIlwiLFxuICAgICAgICAgICAgYWRkcmVzczogXCJcIixcbiAgICAgICAgICAgIHNvdXJjZTogXCJcIixcbiAgICAgICAgICAgIHJlY29yZF9leGNsdXNpb25zOiBcIlwiLFxuICAgICAgICAgICAgdXNlcm5hbWU6IFwiXCIsXG4gICAgICAgICAgICBmdWxsX25hbWU6IFwiXCIsXG4gICAgICAgICAgICBlbWFpbDogXCJcIixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBcIlwiLFxuICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiBcIlwiLFxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGlhdGlFcnJvciA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe30pO1xuICAgICAgICB2YXIgZm9ybURhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHB1Ymxpc2hlcl9uYW1lOiBcIlwiLFxuICAgICAgICAgICAgcHVibGlzaGVyX2lkOiBcIlwiLFxuICAgICAgICAgICAgY291bnRyeTogXCJcIixcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hZ2VuY3k6IFwiXCIsXG4gICAgICAgICAgICByZWdpc3RyYXRpb25fbnVtYmVyOiBcIlwiLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogXCJcIixcbiAgICAgICAgICAgIHB1Ymxpc2hlcl90eXBlOiBcIlwiLFxuICAgICAgICAgICAgbGljZW5zZV9pZDogXCJcIixcbiAgICAgICAgICAgIGltYWdlX3VybDogXCJcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxuICAgICAgICAgICAgY29udGFjdF9lbWFpbDogXCJcIixcbiAgICAgICAgICAgIHdlYnNpdGU6IFwiXCIsXG4gICAgICAgICAgICBhZGRyZXNzOiBcIlwiLFxuICAgICAgICAgICAgc291cmNlOiBcIlwiLFxuICAgICAgICAgICAgcmVjb3JkX2V4Y2x1c2lvbnM6IFwiXCIsXG4gICAgICAgICAgICB1c2VybmFtZTogXCJcIixcbiAgICAgICAgICAgIGZ1bGxfbmFtZTogXCJcIixcbiAgICAgICAgICAgIGVtYWlsOiBcIlwiLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IFwiXCIsXG4gICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246IFwiXCIsXG4gICAgICAgICAgICBzdGVwOiBcIjFcIixcbiAgICAgICAgfSk7XG4gICAgICAgICgwLCB2dWVfMS53YXRjaCkoZnVuY3Rpb24gKCkgeyByZXR1cm4gZm9ybURhdGEuY291bnRyeTsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZm9ybURhdGEucmVnaXN0cmF0aW9uX2FnZW5jeSA9IFwiXCI7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiByZXNpemUoZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICBldmVudC50YXJnZXQuc3R5bGUuaGVpZ2h0ID0gXCJcIi5jb25jYXQoZXZlbnQudGFyZ2V0LnNjcm9sbEhlaWdodCwgXCJweFwiKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVnaXN0cmF0aW9uX2FnZW5jeSA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGFnZW5jaWVzID0gcHJvcHMudHlwZXMucmVnaXN0cmF0aW9uQWdlbmN5O1xuICAgICAgICAgICAgaWYgKGZvcm1EYXRhLmNvdW50cnkpIHtcbiAgICAgICAgICAgICAgICB2YXIgdW5jYXRlZ29yaXplZF8xID0gW1wiWElcIiwgXCJYUlwiXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGFnZW5jaWVzKS5maWx0ZXIoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBrZXkgPSBfYVswXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleS5zdGFydHNXaXRoKGZvcm1EYXRhLmNvdW50cnkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmNhdGVnb3JpemVkXzEuc29tZShmdW5jdGlvbiAoaykgeyByZXR1cm4ga2V5LnN0YXJ0c1dpdGgoayk7IH0pO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhZ2VuY2llcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBpc1RleHRGaWVsZCA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChmaWVsZFR5cGUsIGZpZWxkTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoKGZpZWxkVHlwZSA9PT0gXCJ0ZXh0XCIgfHwgZmllbGRUeXBlID09PSBcInBhc3N3b3JkXCIgfHwgZmllbGRUeXBlID09PSBcImVtYWlsXCIpICYmXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZSAhPSBcImlkZW50aWZpZXJcIik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGNoZWNrU3RlcCA9ICgwLCB2dWVfMS5jb21wdXRlZCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChmb3JtU3RlcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChmb3JtU3RlcC50b1N0cmluZygpKSA9PT0gc3RlcC52YWx1ZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogb2JqZWN0IHdpdGggbXVsdGktc3RlcCBmb3JtIGluZm9ybWF0aW9uXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgcmVnaXN0ZXJGb3JtID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICAxOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGVyX2luZm9ybWF0aW9uLmxhYmVsLFxuICAgICAgICAgICAgICAgIGlzX2NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wdWJsaXNoZXJfaW5mb3JtYXRpb24uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wdWJsaXNoZXJfaW5mb3JtYXRpb24uaG92ZXJfdGV4dCxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVyX25hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9uYW1lLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJwdWJsaXNoZXJfbmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGVyX25hbWUucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJwdWJsaXNoZXItbmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9uYW1lLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcImNvbC1zcGFuLTIgbWItNCBsZzptYi0yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlcl9pZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGVyX2lkLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJwdWJsaXNoZXJfaWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9pZC5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInB1Ymxpc2hlci1pZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9pZC5ob3Zlcl90ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY291bnRyeToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuY291bnRyeS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY291bnRyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuY291bnRyeS5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImNvdW50cnlfc2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNlbGVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5jb3VudHJ5LmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBwcm9wcy50eXBlcy5jb3VudHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yIHJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hZ2VuY3k6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLm9yZ19yZWdpc3RyYXRpb25fYWdlbmN5LmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJyZWdpc3RyYXRpb25fYWdlbmN5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5vcmdfcmVnaXN0cmF0aW9uX2FnZW5jeS5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInJlZ2lzdHJhdGlvbi1hZ2VuY3lcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5vcmdfcmVnaXN0cmF0aW9uX2FnZW5jeS5ob3Zlcl90ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZWxlY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHJlZ2lzdHJhdGlvbl9hZ2VuY3ksXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTIgcmVsYXRpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX251bWJlcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucmVnaXN0cmF0aW9uX251bWJlci5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicmVnaXN0cmF0aW9uX251bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucmVnaXN0cmF0aW9uX251bWJlci5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInJlZ2lzdHJhdGlvbi1udW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5yZWdpc3RyYXRpb25fbnVtYmVyLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlwiLmNvbmNhdChsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmZvcl9lZywgXCIgMTIzNDU2XCIpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5pYXRpX29yZ19pZGVudGlmaWVyLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJpZGVudGlmaWVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImlkZW50aWZpZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5pYXRpX29yZ19pZGVudGlmaWVyLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmlhdGlfb3JnX2lkZW50aWZpZXIuaGVscF90ZXh0LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZXJfdHlwZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGVyX3R5cGUubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInB1Ymxpc2hlcl90eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wdWJsaXNoZXJfdHlwZS5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInB1Ymxpc2hlci10eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGVyX3R5cGUuaG92ZXJfdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBwcm9wcy50eXBlcy5wdWJsaXNoZXJUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yIHJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGxpY2Vuc2VfaWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmRhdGFfbGljZW5zZS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibGljZW5zZV9pZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuZGF0YV9saWNlbnNlLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiZGF0YS1saWNlbnNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuZGF0YV9saWNlbnNlLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNlbGVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogcHJvcHMudHlwZXMuZGF0YUxpY2Vuc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTIgcmVsYXRpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wdWJsaXNoZXJfbG9nb191cmwubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImltYWdlX3VybFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiXCIuY29uY2F0KGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuZm9yX2VnLCBcIiBodHRwOi8vbXlsb2dvLmNvbSBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJwdWJsaXNoZXItbG9nby11cmxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGVyX2xvZ29fdXJsLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMiByZWxhdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcub3JnYW5pc2F0aW9uX2Rlc2MubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5vcmdhbmlzYXRpb25fZGVzYy5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIm9yZ2FuaXphdGlvbi1kZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5vcmdhbmlzYXRpb25fZGVzYy5ob3Zlcl90ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0YXJlYVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBjb2wtc3Bhbi0yIGxnOm1iLTIgcmVsYXRpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIDI6IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5jb250YWN0X2luZm8udGl0bGUsXG4gICAgICAgICAgICAgICAgaXNfY29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9pbmZvcm1hdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFjdF9lbWFpbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuY29udGFjdC5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY29udGFjdF9lbWFpbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJjb250YWN0LWVtYWlsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuY29udGFjdC5ob3Zlcl90ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00ICBsZzptYi02XCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLndlYnNpdGUubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIndlYnNpdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlwiLmNvbmNhdChsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmZvcl9lZywgXCIgaHR0cDovL215d2Vic2l0ZS5jb21cIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJ3ZWJzaXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLndlYnNpdGUuaG92ZXJfdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi02XCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmFkZHJlc3MubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmFkZHJlc3MucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJhZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmFkZHJlc3MuaG92ZXJfdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dGFyZWFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgY29sLXNwYW4tMiBsZzptYi02XCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAzOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGluZ19hZGRpdGlvbmFsX2luZm8udGl0bGUsXG4gICAgICAgICAgICAgICAgaXNfY29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hpbmdfYWRkaXRpb25hbF9pbmZvLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnNvdXJjZS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwic291cmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5zb3VyY2UucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJjb250YWN0LWVtYWlsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuc291cmNlLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNlbGVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogcHJvcHMudHlwZXMuc291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi02XCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZF9leGNsdXNpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5yZWNvcmRfZXhjbHVzaW9ucy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicmVjb3JkX2V4Y2x1c2lvbnNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnJlY29yZF9leGNsdXNpb25zLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicmVjb3JkLWV4Y2x1c2lvbnNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucmVjb3JkX2V4Y2x1c2lvbnMuaG92ZXJfdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dGFyZWFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgIGNvbC1zcGFuLTIgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgNDoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmFkbWluaXN0cmF0b3JfaW5mb3JtYXRpb24udGl0bGUsXG4gICAgICAgICAgICAgICAgaXNfY29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmFkbWluaXN0cmF0b3JfaW5mb3JtYXRpb24uaWF0aV9yZWdpc3Rlcl9kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnVzZXJuYW1lLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJ1c2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcudXNlcm5hbWUucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJ1c2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnVzZXJuYW1lLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBmdWxsX25hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmZ1bGxuYW1lLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJmdWxsX25hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmZ1bGxuYW1lLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiZnVsbC1uYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcImNvbC1zdGFydC0xIG1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlbWFpbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuZW1haWxfYWRkcmVzcy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmVtYWlsX2FkZHJlc3MucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJlbWFpbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJlbWFpbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wYXNzd29yZC5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnBhc3N3b3JkLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnBhc3N3b3JkLmhlbHBfdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnBhc3N3b3JkLmNvbmZpcm0sXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInBhc3N3b3JkX2NvbmZpcm1hdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucGFzc3dvcmQucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJwYXNzd29yZC1jb25maXJtYXRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnBhc3N3b3JkLmNvbmZpcm1faGVscCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgNToge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmVtYWlsX3ZlcmlmaWNhdGlvbi50aXRsZSxcbiAgICAgICAgICAgICAgICBpc19jb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuZW1haWxfdmVyaWZpY2F0aW9uLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVcGRhdGUgVmFsaWRhdGlvbiBlcnJvcnMgZnJvbSBhcGkgaW50byBlcnJvckRhdGEgYXJyYXlcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbGlkYXRpb25FcnJvcnMoZXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgY2xlYW5WYWxpZGF0aW9uRXJyb3JzKCk7XG4gICAgICAgICAgICBmb3IgKHZhciBmaWVsZCBpbiBlcnJvckRhdGEpIHtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGFbZmllbGRdID0gZXJyb3JSZXNwb25zZVtmaWVsZF0gPyBlcnJvclJlc3BvbnNlW2ZpZWxkXVswXSA6IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgKiBVcGRhdGUgVmFsaWRhdGlvbiBlcnJvcnMgZnJvbSBhcGkgaW50byBlcnJvckRhdGEgYXJyYXlcbiAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBjbGVhblZhbGlkYXRpb25FcnJvcnMoKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBmaWVsZCBpbiBlcnJvckRhdGEpIHtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGFbZmllbGRdID0gXCJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogVXBkYXRlIElBVEkgYW5kIHN5c3RlbSBFcnJvclxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRXJyb3JzKGVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QudmFsdWVzKGVycm9yRGF0YSkuZXZlcnkoZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PT0gJyc7IH0pIHx8IHN0ZXAudmFsdWUgPT09IDQpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGlhdGlFcnJvciwgdHlwZW9mIChlcnJvclJlc3BvbnNlKSA9PT0gJ3N0cmluZycgPyB7ICdlcnJvcic6IGVycm9yUmVzcG9uc2UgfSA6IGVycm9yUmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhbklhdGlFcnJvcnMoKTtcbiAgICAgICAgICAgICAgICB9LCAzNTAwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2xlYW5JYXRpRXJyb3JzKCkge1xuICAgICAgICAgICAgZm9yICh2YXIgZXJyIGluIGlhdGlFcnJvcikge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpYXRpRXJyb3JbZXJyXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogVmVyaWZpZXMgcHVibGlzaGVyXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiB2ZXJpZnlQdWJsaXNoZXIoKSB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZvcm1EYXRhLmlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChmb3JtRGF0YS5yZWdpc3RyYXRpb25fYWdlbmN5LCBcIi1cIikuY29uY2F0KGZvcm1EYXRhLnJlZ2lzdHJhdGlvbl9udW1iZXIpO1xuICAgICAgICAgICAgZm9ybURhdGEuc3RlcCA9IFwiMVwiO1xuICAgICAgICAgICAgdmFyIGZvcm0gPSB7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICgwLCBlbmNyeXB0aW9uXzEuZGVmYXVsdCkoZm9ybURhdGEucGFzc3dvcmQsIChfYSA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogXCJcIiksXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkX2NvbmZpcm1hdGlvbiwgKF9iID0gcHJvY2Vzcy5lbnYuTUlYX0VOQ1JZUFRJT05fS0VZKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBcIlwiKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdChcIi9pYXRpL3JlZ2lzdGVyL3B1Ymxpc2hlclwiLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZm9ybURhdGEpLCBmb3JtKSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5yZXF1ZXN0LnJlc3BvbnNlVVJMLmluY2x1ZGVzKFwiYWN0aXZpdGllc1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiL2FjdGl2aXRpZXNcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgcHVibGlzaGVyRXhpc3RzLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB2YXIgZXJyb3JzID0gIXJlc3BvbnNlLnN1Y2Nlc3MgfHwgXCJlcnJvcnNcIiBpbiByZXNwb25zZSA/IHJlc3BvbnNlLmVycm9ycyA6IFtdO1xuICAgICAgICAgICAgICAgIHJlZ2lzdGVyRm9ybVtcIjFcIl0uaXNfY29tcGxldGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoXCJwdWJsaXNoZXJfZXJyb3JcIiBpbiByZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZXJFeGlzdHMudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYW5WYWxpZGF0aW9uRXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyRm9ybVtcIjFcIl0uaXNfY29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGVwKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlVmFsaWRhdGlvbkVycm9ycyhlcnJvcnMpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlRXJyb3JzKGVycik7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogU3VibWl0cyByZWdpc3RyYXRpb24gRm9ybVxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gdmVyaWZ5Q29udGFjdEluZm9ybWF0aW9uKCkge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBmb3JtRGF0YS5zdGVwID0gXCIyXCI7XG4gICAgICAgICAgICB2YXIgZm9ybSA9IHtcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogKDAsIGVuY3J5cHRpb25fMS5kZWZhdWx0KShmb3JtRGF0YS5wYXNzd29yZCwgKF9hID0gcHJvY2Vzcy5lbnYuTUlYX0VOQ1JZUFRJT05fS0VZKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBcIlwiKSxcbiAgICAgICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246ICgwLCBlbmNyeXB0aW9uXzEuZGVmYXVsdCkoZm9ybURhdGEucGFzc3dvcmRfY29uZmlybWF0aW9uLCAoX2IgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFwiXCIpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wb3N0KFwiL2lhdGkvcmVnaXN0ZXIvY29udGFjdFwiLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZm9ybURhdGEpLCBmb3JtKSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5yZXF1ZXN0LnJlc3BvbnNlVVJMLmluY2x1ZGVzKFwiYWN0aXZpdGllc1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiL2FjdGl2aXRpZXNcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9ICFyZXNwb25zZS5zdWNjZXNzIHx8IFwiZXJyb3JzXCIgaW4gcmVzcG9uc2UgPyByZXNwb25zZS5lcnJvcnMgOiBbXTtcbiAgICAgICAgICAgICAgICB1cGRhdGVWYWxpZGF0aW9uRXJyb3JzKGVycm9ycyk7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmVnaXN0ZXJGb3JtW1wiMlwiXS5pc19jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFuVmFsaWRhdGlvbkVycm9ycygpO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckZvcm1bXCIyXCJdLmlzX2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RlcCgyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUVycm9ycyhlcnJvcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUVycm9ycyhlcnJvcik7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogU3VibWl0cyByZWdpc3RyYXRpb24gRm9ybVxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gdmVyaWZ5QWRkaXRpb25hbEluZm9ybWF0aW9uKCkge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBmb3JtRGF0YS5zdGVwID0gXCIzXCI7XG4gICAgICAgICAgICB2YXIgZm9ybSA9IHtcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogKDAsIGVuY3J5cHRpb25fMS5kZWZhdWx0KShmb3JtRGF0YS5wYXNzd29yZCwgKF9hID0gcHJvY2Vzcy5lbnYuTUlYX0VOQ1JZUFRJT05fS0VZKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBcIlwiKSxcbiAgICAgICAgICAgICAgICBwYXNzd29yZF9jb25maXJtYXRpb246ICgwLCBlbmNyeXB0aW9uXzEuZGVmYXVsdCkoZm9ybURhdGEucGFzc3dvcmRfY29uZmlybWF0aW9uLCAoX2IgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFwiXCIpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF4aW9zXzEuZGVmYXVsdFxuICAgICAgICAgICAgICAgIC5wb3N0KFwiL2lhdGkvcmVnaXN0ZXIvYWRkaXRpb25hbFwiLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZm9ybURhdGEpLCBmb3JtKSlcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5yZXF1ZXN0LnJlc3BvbnNlVVJMLmluY2x1ZGVzKFwiYWN0aXZpdGllc1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiL2FjdGl2aXRpZXNcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVzLmRhdGE7XG4gICAgICAgICAgICAgICAgdmFyIGVycm9ycyA9ICFyZXNwb25zZS5zdWNjZXNzIHx8IFwiZXJyb3JzXCIgaW4gcmVzcG9uc2UgPyByZXNwb25zZS5lcnJvcnMgOiBbXTtcbiAgICAgICAgICAgICAgICB1cGRhdGVWYWxpZGF0aW9uRXJyb3JzKGVycm9ycyk7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmVnaXN0ZXJGb3JtW1wiM1wiXS5pc19jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFuVmFsaWRhdGlvbkVycm9ycygpO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckZvcm1bXCIzXCJdLmlzX2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RlcCgzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUVycm9ycyhlcnJvcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUVycm9ycyhlcnJvcik7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogU3VibWl0cyByZWdpc3RyYXRpb24gRm9ybVxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gc3VibWl0Rm9ybSgpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgZm9ybURhdGEuc3RlcCA9IFwiNFwiO1xuICAgICAgICAgICAgdmFyIGZvcm0gPSB7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICgwLCBlbmNyeXB0aW9uXzEuZGVmYXVsdCkoZm9ybURhdGEucGFzc3dvcmQsIChfYSA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogXCJcIiksXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkX2NvbmZpcm1hdGlvbiwgKF9iID0gcHJvY2Vzcy5lbnYuTUlYX0VOQ1JZUFRJT05fS0VZKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBcIlwiKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBheGlvc18xLmRlZmF1bHRcbiAgICAgICAgICAgICAgICAucG9zdChcIi9pYXRpL3JlZ2lzdGVyXCIsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBmb3JtRGF0YSksIGZvcm0pKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLnJlcXVlc3QucmVzcG9uc2VVUkwuaW5jbHVkZXMoXCJhY3Rpdml0aWVzXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCIvYWN0aXZpdGllc1wiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICB2YXIgZXJyb3JzID0gIXJlc3BvbnNlLnN1Y2Nlc3MgfHwgXCJlcnJvcnNcIiBpbiByZXNwb25zZSA/IHJlc3BvbnNlLmVycm9ycyA6IFtdO1xuICAgICAgICAgICAgICAgIHVwZGF0ZVZhbGlkYXRpb25FcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICBjbGVhbklhdGlFcnJvcnMoKTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGlhdGlFcnJvciwgZXJyb3JzKTtcbiAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZWdpc3RlckZvcm1bXCI0XCJdLmlzX2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYW5WYWxpZGF0aW9uRXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyRm9ybVtcIjRcIl0uaXNfY29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGVwKDQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUVycm9ycyhlcnJvcik7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRDdXJyZW50U3RlcCgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGVwLnZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlU3RlcChjdXJyZW50X3N0ZXApIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50X3N0ZXAgPT09IHN0ZXAudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzdGVwLnZhbHVlICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNhbGxzIHN1Ym1pdCBmdW5jdGlvbiBiYXNlZCBvbiBjdXJyZW50IHN0ZXAgdmFsdWVcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGdvVG9OZXh0Rm9ybSgpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3RlcC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgdmVyaWZ5UHVibGlzaGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgdmVyaWZ5Q29udGFjdEluZm9ybWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgdmVyaWZ5QWRkaXRpb25hbEluZm9ybWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgc3VibWl0Rm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnb1RvUHJldmlvdXNGb3JtKCkge1xuICAgICAgICAgICAgY2xlYW5JYXRpRXJyb3JzKCk7XG4gICAgICAgICAgICBzdGVwLnZhbHVlIC09IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlZ2lzdGVyRm9ybTogcmVnaXN0ZXJGb3JtLFxuICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgZXJyb3JEYXRhOiBlcnJvckRhdGEsXG4gICAgICAgICAgICBwdWJsaXNoZXJFeGlzdHM6IHB1Ymxpc2hlckV4aXN0cyxcbiAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZTogaXNMb2FkZXJWaXNpYmxlLFxuICAgICAgICAgICAgZ29Ub05leHRGb3JtOiBnb1RvTmV4dEZvcm0sXG4gICAgICAgICAgICBnb1RvUHJldmlvdXNGb3JtOiBnb1RvUHJldmlvdXNGb3JtLFxuICAgICAgICAgICAgZ2V0Q3VycmVudFN0ZXA6IGdldEN1cnJlbnRTdGVwLFxuICAgICAgICAgICAgY2hlY2tTdGVwOiBjaGVja1N0ZXAsXG4gICAgICAgICAgICBpYXRpRXJyb3I6IGlhdGlFcnJvcixcbiAgICAgICAgICAgIGlzVGV4dEZpZWxkOiBpc1RleHRGaWVsZCxcbiAgICAgICAgICAgIHByb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIHN0ZXA6IHN0ZXAsXG4gICAgICAgICAgICByZXNpemU6IHJlc2l6ZSxcbiAgICAgICAgICAgIHRleHRhcmVhOiB0ZXh0YXJlYSxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZSxcbiAgICAgICAgfTtcbiAgICB9LFxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgX19uYW1lOiAnSWF0aVN0YW5kYXJkJyxcbiAgICBzZXR1cDogZnVuY3Rpb24gKF9fcHJvcHMsIF9hKSB7XG4gICAgICAgIHZhciBleHBvc2UgPSBfYS5leHBvc2U7XG4gICAgICAgIGV4cG9zZSgpO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICB2YXIgX19yZXR1cm5lZF9fID0geyBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gX19yZXR1cm5lZF9fO1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgU2ltcGxlU3Bhbl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQ29tcG9uZW50cy9TaW1wbGVTcGFuLnZ1ZVwiKSk7XG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgU2ltcGxlU3BhbjogU2ltcGxlU3Bhbl92dWVfMS5kZWZhdWx0XG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBlbGVtZW50czoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU2ltcGxlU3BhbjogU2ltcGxlU3Bhbl92dWVfMS5kZWZhdWx0LFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbmZ1bmN0aW9uIHRyaWdnZXJNb2RlbCgpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnb3BlbkFkZE1vZGVsJywgJ3RydWUnKTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgYXhpb3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYXhpb3NcIikpO1xudmFyIEVtYWlsVmVyaWZpY2F0aW9uX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZVwiKSk7XG52YXIgSG92ZXJUZXh0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLy4uLy4uL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiKSk7XG52YXIgbXVsdGlzZWxlY3RfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQHZ1ZWZvcm0vbXVsdGlzZWxlY3RcIikpO1xudmFyIExvYWRlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBlbmNyeXB0aW9uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkNvbXBvc2FibGUvZW5jcnlwdGlvblwiKSk7XG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgdnVlXzEuZGVmaW5lQ29tcG9uZW50KSh7XG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBFbWFpbFZlcmlmaWNhdGlvbjogRW1haWxWZXJpZmljYXRpb25fdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgSG92ZXJUZXh0OiBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCxcbiAgICAgICAgTXVsdGlzZWxlY3Q6IG11bHRpc2VsZWN0XzEuZGVmYXVsdCxcbiAgICAgICAgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIGNvdW50cnk6IHtcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYWdlbmN5OiB7XG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDogZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBzdGVwID0gKDAsIHZ1ZV8xLnJlZikoMSk7XG4gICAgICAgIHZhciBwdWJsaXNoZXJFeGlzdHMgPSAoMCwgdnVlXzEucmVmKSh0cnVlKTtcbiAgICAgICAgdmFyIGlzTG9hZGVyVmlzaWJsZSA9ICgwLCB2dWVfMS5yZWYpKGZhbHNlKTtcbiAgICAgICAgdmFyIGFnZW5jeSA9ICgwLCB2dWVfMS50b1JlZnMpKHByb3BzKS5hZ2VuY3k7XG4gICAgICAgIHZhciBlcnJvckRhdGEgPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIHB1Ymxpc2hlcl9uYW1lOiBcIlwiLFxuICAgICAgICAgICAgcHVibGlzaGVyX2lkOiBcIlwiLFxuICAgICAgICAgICAgY291bnRyeTogXCJcIixcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hZ2VuY3k6IFwiXCIsXG4gICAgICAgICAgICByZWdpc3RyYXRpb25fbnVtYmVyOiBcIlwiLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogXCJcIixcbiAgICAgICAgICAgIHVzZXJuYW1lOiBcIlwiLFxuICAgICAgICAgICAgZnVsbF9uYW1lOiBcIlwiLFxuICAgICAgICAgICAgZW1haWw6IFwiXCIsXG4gICAgICAgICAgICBwYXNzd29yZDogXCJcIixcbiAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogXCJcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBmb3JtRGF0YSA9ICgwLCB2dWVfMS5yZWFjdGl2ZSkoe1xuICAgICAgICAgICAgcHVibGlzaGVyX25hbWU6IFwiXCIsXG4gICAgICAgICAgICBwdWJsaXNoZXJfaWQ6IFwiXCIsXG4gICAgICAgICAgICBjb3VudHJ5OiBcIlwiLFxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2FnZW5jeTogXCJcIixcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9udW1iZXI6IFwiXCIsXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBcIlwiLFxuICAgICAgICAgICAgdXNlcm5hbWU6IFwiXCIsXG4gICAgICAgICAgICBmdWxsX25hbWU6IFwiXCIsXG4gICAgICAgICAgICBlbWFpbDogXCJcIixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBcIlwiLFxuICAgICAgICAgICAgcGFzc3dvcmRfY29uZmlybWF0aW9uOiBcIlwiLFxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIHZ1ZV8xLndhdGNoKShmdW5jdGlvbiAoKSB7IHJldHVybiBmb3JtRGF0YS5jb3VudHJ5OyB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5yZWdpc3RyYXRpb25fYWdlbmN5ID0gXCJcIjtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciByZWdpc3RyYXRpb25fYWdlbmN5ID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYWdlbmNpZXMgPSBhZ2VuY3kudmFsdWU7XG4gICAgICAgICAgICBpZiAoZm9ybURhdGEuY291bnRyeSkge1xuICAgICAgICAgICAgICAgIHZhciB1bmNhdGVnb3JpemVkXzEgPSBbXCJYSVwiLCBcIlhSXCJdO1xuICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYWdlbmNpZXMpLmZpbHRlcihmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IF9hWzBdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5LnN0YXJ0c1dpdGgoZm9ybURhdGEuY291bnRyeSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuY2F0ZWdvcml6ZWRfMS5zb21lKGZ1bmN0aW9uIChrKSB7IHJldHVybiBrZXkuc3RhcnRzV2l0aChrKTsgfSk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFnZW5jaWVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGlzVGV4dEZpZWxkID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGZpZWxkVHlwZSwgZmllbGROYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgoZmllbGRUeXBlID09PSBcInRleHRcIiB8fCBmaWVsZFR5cGUgPT09IFwicGFzc3dvcmRcIiB8fCBmaWVsZFR5cGUgPT09IFwiZW1haWxcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lICE9IFwiaWRlbnRpZmllclwiKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2hlY2tTdGVwID0gKDAsIHZ1ZV8xLmNvbXB1dGVkKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGZvcm1TdGVwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGZvcm1TdGVwLnRvU3RyaW5nKCkpID09PSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciByZWdpc3RlckZvcm0gPSAoMCwgdnVlXzEucmVhY3RpdmUpKHtcbiAgICAgICAgICAgIDE6IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wdWJsaXNoZXJfaW5mb3JtYXRpb24ubGFiZWwsXG4gICAgICAgICAgICAgICAgaXNfY29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9pbmZvcm1hdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9pbmZvcm1hdGlvbi5ob3Zlcl90ZXh0LFxuICAgICAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZXJfbmFtZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGVyX25hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInB1Ymxpc2hlcl9uYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wdWJsc2hlcl9uYW1lLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicHVibGlzaGVyLW5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wdWJsc2hlcl9uYW1lLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcImNvbC1zcGFuLTIgbWItNCBsZzptYi0yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlcl9pZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucHVibGlzaGVyX2lkLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJwdWJsaXNoZXJfaWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9pZC5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInB1Ymxpc2hlci1pZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnB1Ymxpc2hlcl9pZC5ob3Zlcl90ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY291bnRyeToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuY291bnRyeS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY291bnRyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuY291bnRyeS5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImNvdW50cnlfc2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNlbGVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5jb3VudHJ5LmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBwcm9wcy5jb3VudHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yIHJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbl9yZWdpc3RyYXRpb25fYWdlbmN5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5vcmdfcmVnaXN0cmF0aW9uX2FnZW5jeS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicmVnaXN0cmF0aW9uX2FnZW5jeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcub3JnX3JlZ2lzdHJhdGlvbl9hZ2VuY3kucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJyZWdpc3RyYXRpb24tYWdlbmN5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcub3JnX3JlZ2lzdHJhdGlvbl9hZ2VuY3kuaG92ZXJfdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiByZWdpc3RyYXRpb25fYWdlbmN5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi0yIHJlbGF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbl9yZWdpc3RyYXRpb25fbm86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLm9yZ19yZWdpc3RyYXRpb25fbm8ubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInJlZ2lzdHJhdGlvbl9udW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLm9yZ19yZWdpc3RyYXRpb25fbm8ucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJyZWdpc3RyYXRpb24tbnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcub3JnX3JlZ2lzdHJhdGlvbl9uby5ob3Zlcl90ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIi5jb25jYXQobGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5mb3JfZWcsIFwiIDEyMzQ1NlwiKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgaWF0aV9vcmdhbml6YXRpb25hbF9pZGVudGlmaWVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5pYXRpX29yZ19pZGVudGlmaWVyLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJpZGVudGlmaWVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImlkZW50aWZpZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5pYXRpX29yZ19pZGVudGlmaWVyLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItNlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0OiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmlhdGlfb3JnX2lkZW50aWZpZXIuaGVscF90ZXh0LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMjoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmFkbWluaXN0cmF0b3JfaW5mb3JtYXRpb24ubGFiZWwsXG4gICAgICAgICAgICAgICAgaXNfY29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmFkbWluaXN0cmF0b3JfaW5mb3JtYXRpb24ucmVnaXN0ZXJfZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5hZG1pbmlzdHJhdG9yX2luZm9ybWF0aW9uLmhvdmVyX3RleHQsXG4gICAgICAgICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy51c2VybmFtZS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwidXNlcm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLnVzZXJuYW1lLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwidXNlcm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy51c2VybmFtZS5ob3Zlcl90ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZnVsbF9uYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5mdWxsbmFtZS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiZnVsbF9uYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5mdWxsbmFtZS5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImZ1bGwtbmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJjb2wtc3RhcnQtMSBtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYW5ndWFnZS5yZWdpc3Rlcl9sYW5nLmVtYWlsX2FkZHJlc3MubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImVtYWlsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5lbWFpbF9hZGRyZXNzLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJfdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm1iLTQgbGc6bWItMlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucGFzc3dvcmQubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wYXNzd29yZC5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVyX3RleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJtYi00IGxnOm1iLTJcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlybV9wYXNzd29yZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcucGFzc3dvcmQuY29uZmlybSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicGFzc3dvcmRfY29uZmlybWF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5wYXNzd29yZC5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInBhc3N3b3JkLWNvbmZpcm1hdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Zlcl90ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibWItNCBsZzptYi02XCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAzOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGxhbmd1YWdlLnJlZ2lzdGVyX2xhbmcuZW1haWxfdmVyaWZpY2F0aW9uLnRpdGxlLFxuICAgICAgICAgICAgICAgIGlzX2NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogbGFuZ3VhZ2UucmVnaXN0ZXJfbGFuZy5lbWFpbF92ZXJpZmljYXRpb24uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gdmVyaWZ5UHVibGlzaGVyKCkge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGlzTG9hZGVyVmlzaWJsZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBmb3JtRGF0YS5pZGVudGlmaWVyID0gXCJcIi5jb25jYXQoZm9ybURhdGEucmVnaXN0cmF0aW9uX2FnZW5jeSwgXCItXCIpLmNvbmNhdChmb3JtRGF0YS5yZWdpc3RyYXRpb25fbnVtYmVyKTtcbiAgICAgICAgICAgIHZhciBmb3JtID0ge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkLCAoX2EgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwiXCIpLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogKDAsIGVuY3J5cHRpb25fMS5kZWZhdWx0KShmb3JtRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24sIChfYiA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogXCJcIiksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoXCIvdmVyaWZ5UHVibGlzaGVyXCIsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBmb3JtRGF0YSksIGZvcm0pKVxuICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLnJlcXVlc3QucmVzcG9uc2VVUkwuaW5jbHVkZXMoXCJhY3Rpdml0aWVzXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCIvYWN0aXZpdGllc1wiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgICBwdWJsaXNoZXJFeGlzdHMudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAhcmVzcG9uc2Uuc3VjY2VzcyB8fCBcImVycm9yc1wiIGluIHJlc3BvbnNlID8gcmVzcG9uc2UuZXJyb3JzIDogW107XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnB1Ymxpc2hlcl9uYW1lID0gZXJyb3JzLnB1Ymxpc2hlcl9uYW1lXG4gICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnB1Ymxpc2hlcl9uYW1lWzBdXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEucHVibGlzaGVyX2lkID0gZXJyb3JzLnB1Ymxpc2hlcl9pZCA/IGVycm9ycy5wdWJsaXNoZXJfaWRbMF0gOiBcIlwiO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5yZWdpc3RyYXRpb25fYWdlbmN5ID0gZXJyb3JzLnJlZ2lzdHJhdGlvbl9hZ2VuY3lcbiAgICAgICAgICAgICAgICAgICAgPyBlcnJvcnMucmVnaXN0cmF0aW9uX2FnZW5jeVswXVxuICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnJlZ2lzdHJhdGlvbl9udW1iZXIgPSBlcnJvcnMucmVnaXN0cmF0aW9uX251bWJlclxuICAgICAgICAgICAgICAgICAgICA/IGVycm9ycy5yZWdpc3RyYXRpb25fbnVtYmVyWzBdXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEuaWRlbnRpZmllciA9IGVycm9ycy5pZGVudGlmaWVyID8gZXJyb3JzLmlkZW50aWZpZXJbMF0gOiBcIlwiO1xuICAgICAgICAgICAgICAgIGlmIChcInB1Ymxpc2hlcl9lcnJvclwiIGluIHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlckV4aXN0cy52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckZvcm1bXCIxXCJdLmlzX2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc3RlcC52YWx1ZSArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpc0xvYWRlclZpc2libGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBmb3JtID0ge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAoMCwgZW5jcnlwdGlvbl8xLmRlZmF1bHQpKGZvcm1EYXRhLnBhc3N3b3JkLCAoX2EgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwiXCIpLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjogKDAsIGVuY3J5cHRpb25fMS5kZWZhdWx0KShmb3JtRGF0YS5wYXNzd29yZF9jb25maXJtYXRpb24sIChfYiA9IHByb2Nlc3MuZW52Lk1JWF9FTkNSWVBUSU9OX0tFWSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogXCJcIiksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgLnBvc3QoXCIvcmVnaXN0ZXJcIiwgX19hc3NpZ24oX19hc3NpZ24oe30sIGZvcm1EYXRhKSwgZm9ybSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIGlmIChyZXMucmVxdWVzdC5yZXNwb25zZVVSTC5pbmNsdWRlcyhcImFjdGl2aXRpZXNcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBcIi9hY3Rpdml0aWVzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcnMgPSAhcmVzcG9uc2Uuc3VjY2VzcyB8fCBcImVycm9yc1wiIGluIHJlc3BvbnNlID8gcmVzcG9uc2UuZXJyb3JzIDogW107XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnVzZXJuYW1lID0gZXJyb3JzLnVzZXJuYW1lID8gZXJyb3JzLnVzZXJuYW1lWzBdIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEuZnVsbF9uYW1lID0gZXJyb3JzLmZ1bGxfbmFtZSA/IGVycm9ycy5mdWxsX25hbWVbMF0gOiBcIlwiO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5lbWFpbCA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6IFwiXCI7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnBhc3N3b3JkID0gZXJyb3JzLnBhc3N3b3JkID8gZXJyb3JzLnBhc3N3b3JkWzBdIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEucGFzc3dvcmRfY29uZmlybWF0aW9uID0gZXJyb3JzLnBhc3N3b3JkX2NvbmZpcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICA/IGVycm9ycy5wYXNzd29yZF9jb25maXJtYXRpb25bMF1cbiAgICAgICAgICAgICAgICAgICAgOiBlcnJvcnMucGFzc3dvcmRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnBhc3N3b3JkWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJGb3JtW1wiMlwiXS5pc19jb21wbGV0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXAudmFsdWUgKz0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB2YXIgZXJyb3JzID0gZXJyb3IucmVzcG9uc2UuZGF0YS5lcnJvcnM7XG4gICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnVzZXJuYW1lID0gZXJyb3JzLnVzZXJuYW1lID8gZXJyb3JzLnVzZXJuYW1lWzBdIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEuZnVsbF9uYW1lID0gZXJyb3JzLmZ1bGxfbmFtZSA/IGVycm9ycy5mdWxsX25hbWVbMF0gOiBcIlwiO1xuICAgICAgICAgICAgICAgIGVycm9yRGF0YS5lbWFpbCA9IGVycm9ycy5lbWFpbCA/IGVycm9ycy5lbWFpbFswXSA6IFwiXCI7XG4gICAgICAgICAgICAgICAgZXJyb3JEYXRhLnBhc3N3b3JkID0gZXJyb3JzLnBhc3N3b3JkID8gZXJyb3JzLnBhc3N3b3JkWzBdIDogXCJcIjtcbiAgICAgICAgICAgICAgICBlcnJvckRhdGEucGFzc3dvcmRfY29uZmlybWF0aW9uID0gZXJyb3JzLnBhc3N3b3JkX2NvbmZpcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICA/IGVycm9ycy5wYXNzd29yZF9jb25maXJtYXRpb25bMF1cbiAgICAgICAgICAgICAgICAgICAgOiBlcnJvcnMucGFzc3dvcmRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3JzLnBhc3N3b3JkWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRDdXJyZW50U3RlcCgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGVwLnZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ29Ub05leHRGb3JtKCkge1xuICAgICAgICAgICAgaWYgKHN0ZXAudmFsdWUgPT09IDEpXG4gICAgICAgICAgICAgICAgdmVyaWZ5UHVibGlzaGVyKCk7XG4gICAgICAgICAgICBpZiAoc3RlcC52YWx1ZSA9PT0gMilcbiAgICAgICAgICAgICAgICBzdWJtaXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ29Ub1ByZXZpb3VzRm9ybSgpIHtcbiAgICAgICAgICAgIHN0ZXAudmFsdWUgLT0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVnaXN0ZXJGb3JtOiByZWdpc3RlckZvcm0sXG4gICAgICAgICAgICBmb3JtRGF0YTogZm9ybURhdGEsXG4gICAgICAgICAgICBlcnJvckRhdGE6IGVycm9yRGF0YSxcbiAgICAgICAgICAgIHB1Ymxpc2hlckV4aXN0czogcHVibGlzaGVyRXhpc3RzLFxuICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlOiBpc0xvYWRlclZpc2libGUsXG4gICAgICAgICAgICBnb1RvTmV4dEZvcm06IGdvVG9OZXh0Rm9ybSxcbiAgICAgICAgICAgIGdvVG9QcmV2aW91c0Zvcm06IGdvVG9QcmV2aW91c0Zvcm0sXG4gICAgICAgICAgICBnZXRDdXJyZW50U3RlcDogZ2V0Q3VycmVudFN0ZXAsXG4gICAgICAgICAgICBjaGVja1N0ZXA6IGNoZWNrU3RlcCxcbiAgICAgICAgICAgIGlzVGV4dEZpZWxkOiBpc1RleHRGaWVsZCxcbiAgICAgICAgICAgIHByb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZVxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdTdXBwb3J0UGFnZScsXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdBZG1pbkZvb3RlcicsXG4gICAgc2V0dXA6IGZ1bmN0aW9uIChfX3Byb3BzLCBfYSkge1xuICAgICAgICB2YXIgZXhwb3NlID0gX2EuZXhwb3NlO1xuICAgICAgICBleHBvc2UoKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIF9fcmV0dXJuZWRfXyA9IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3JldHVybmVkX18sICdfX2lzU2NyaXB0U2V0dXAnLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIF9fcmV0dXJuZWRfXztcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBwcm9wczoge1xuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiBcIlwiLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZVxuICAgICAgICB9O1xuICAgIH1cbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbnZhciBheGlvc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJheGlvc1wiKSk7XG52YXIgY3J5cHRvX2pzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImNyeXB0by1qc1wiKSk7XG52YXIgTG9hZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi8uLi9jb21wb25lbnRzL0xvYWRlci52dWVcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHZ1ZV8xLmRlZmluZUNvbXBvbmVudCkoe1xuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgTG9hZGVyOiBMb2FkZXJfdnVlXzEuZGVmYXVsdCxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgICAgdmFyIGZvcm1EYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB1c2VybmFtZTogJycsXG4gICAgICAgICAgICBwYXNzd29yZDogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZXJyb3JEYXRhID0gKDAsIHZ1ZV8xLnJlYWN0aXZlKSh7XG4gICAgICAgICAgICB1c2VybmFtZTogJycsXG4gICAgICAgICAgICBwYXNzd29yZDogJycsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaXNMb2FkZXJWaXNpYmxlID0gKDAsIHZ1ZV8xLnJlZikoZmFsc2UpO1xuICAgICAgICBmdW5jdGlvbiBlbmNyeXB0KHN0cmluZywga2V5KSB7XG4gICAgICAgICAgICB2YXIgaXYgPSBjcnlwdG9fanNfMS5kZWZhdWx0LmxpYi5Xb3JkQXJyYXkucmFuZG9tKDE2KTsgLy8gdGhlIHJlYXNvbiB0byBiZSAxNiwgcGxlYXNlIHJlYWQgb24gYGVuY3J5cHRNZXRob2RgIHByb3BlcnR5LlxuICAgICAgICAgICAgdmFyIHNhbHQgPSBjcnlwdG9fanNfMS5kZWZhdWx0LmxpYi5Xb3JkQXJyYXkucmFuZG9tKDI1Nik7XG4gICAgICAgICAgICB2YXIgaXRlcmF0aW9ucyA9IDk5OTtcbiAgICAgICAgICAgIHZhciBlbmNyeXB0TWV0aG9kTGVuZ3RoID0gMjU2IC8gNDsgLy8gZXhhbXBsZTogQUVTIG51bWJlciBpcyAyNTYgLyA0ID0gNjRcbiAgICAgICAgICAgIHZhciBoYXNoS2V5ID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5QQktERjIoa2V5LCBzYWx0LCB7XG4gICAgICAgICAgICAgICAgaGFzaGVyOiBjcnlwdG9fanNfMS5kZWZhdWx0LmFsZ28uU0hBNTEyLFxuICAgICAgICAgICAgICAgIGtleVNpemU6IGVuY3J5cHRNZXRob2RMZW5ndGggLyA4LFxuICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IGl0ZXJhdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBlbmNyeXB0ZWQgPSBjcnlwdG9fanNfMS5kZWZhdWx0LkFFUy5lbmNyeXB0KHN0cmluZywgaGFzaEtleSwge1xuICAgICAgICAgICAgICAgIG1vZGU6IGNyeXB0b19qc18xLmRlZmF1bHQubW9kZS5DQkMsXG4gICAgICAgICAgICAgICAgaXY6IGl2LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgZW5jcnlwdGVkU3RyaW5nID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5lbmMuQmFzZTY0LnN0cmluZ2lmeShlbmNyeXB0ZWQuY2lwaGVydGV4dCk7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0ge1xuICAgICAgICAgICAgICAgIGNpcGhlcnRleHQ6IGVuY3J5cHRlZFN0cmluZyxcbiAgICAgICAgICAgICAgICBpdjogY3J5cHRvX2pzXzEuZGVmYXVsdC5lbmMuSGV4LnN0cmluZ2lmeShpdiksXG4gICAgICAgICAgICAgICAgc2FsdDogY3J5cHRvX2pzXzEuZGVmYXVsdC5lbmMuSGV4LnN0cmluZ2lmeShzYWx0KSxcbiAgICAgICAgICAgICAgICBpdGVyYXRpb25zOiBpdGVyYXRpb25zLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5CYXNlNjQuc3RyaW5naWZ5KGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLlV0ZjgucGFyc2UoSlNPTi5zdHJpbmdpZnkob3V0cHV0KSkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGxvZ2luKCkge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBmb3JtO1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2IpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9ybSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lOiBmb3JtRGF0YS51c2VybmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBlbmNyeXB0KGZvcm1EYXRhLnBhc3N3b3JkLCAoX2EgPSBwcm9jZXNzLmVudi5NSVhfRU5DUllQVElPTl9LRVkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYXhpb3NfMS5kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAucG9zdCgnL2xvZ2luJywgZm9ybSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JEYXRhLnVzZXJuYW1lID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEucGFzc3dvcmQgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnYWN0aXZpdGllcyc7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXJyb3JzID0gZXJyb3IucmVzcG9uc2UuZGF0YS5lcnJvcnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRhdGEudXNlcm5hbWUgPSBlcnJvcnMudXNlcm5hbWUgPyBlcnJvcnMudXNlcm5hbWVbMF0gOiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yRGF0YS5wYXNzd29yZCA9IGVycm9ycy5wYXNzd29yZCA/IGVycm9ycy5wYXNzd29yZFswXSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkZXJWaXNpYmxlLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgZXJyb3JEYXRhOiBlcnJvckRhdGEsXG4gICAgICAgICAgICBpc0xvYWRlclZpc2libGU6IGlzTG9hZGVyVmlzaWJsZSxcbiAgICAgICAgICAgIGxvZ2luOiBsb2dpbixcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZVxuICAgICAgICB9O1xuICAgIH0sXG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHZ1ZV8xID0gcmVxdWlyZShcInZ1ZVwiKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBfX25hbWU6ICdXZWJGb290ZXInLFxuICAgIHNldHVwOiBmdW5jdGlvbiAoX19wcm9wcywgX2EpIHtcbiAgICAgICAgdmFyIGV4cG9zZSA9IF9hLmV4cG9zZTtcbiAgICAgICAgZXhwb3NlKCk7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG4gICAgICAgIHZhciBfX3JldHVybmVkX18gPSB7IGxhbmd1YWdlOiBsYW5ndWFnZSB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiBfX3JldHVybmVkX187XG4gICAgfVxufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB2dWVfMSA9IHJlcXVpcmUoXCJ2dWVcIik7XG52YXIgTmF2RHJvcGRvd25fdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uLy4uLy4uL2NvbXBvbmVudHMvTmF2RHJvcGRvd24udnVlXCIpKTtcbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCB2dWVfMS5kZWZpbmVDb21wb25lbnQpKHtcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIE5hdkRyb3Bkb3duOiBOYXZEcm9wZG93bl92dWVfMS5kZWZhdWx0LFxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdGl0bGU6IHsgdHlwZTogU3RyaW5nLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBhdXRoOiB7IHR5cGU6IFN0cmluZywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHNldHVwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICgwLCB2dWVfMS5vbk1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbm8tbmF2Jyk7XG4gICAgICAgIH0pO1xuICAgICAgICAoMCwgdnVlXzEub25Vbm1vdW50ZWQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbm8tbmF2Jyk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3dbXCJnbG9iYWxMYW5nXCJdO1xuICAgICAgICByZXR1cm4geyBsYW5ndWFnZTogbGFuZ3VhZ2UgfTtcbiAgICB9XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBGaXJzdCB3ZSB3aWxsIGxvYWQgYWxsIG9mIHRoaXMgcHJvamVjdCdzIEphdmFTY3JpcHQgZGVwZW5kZW5jaWVzIHdoaWNoXG4gKiBpbmNsdWRlcyBWdWUgYW5kIG90aGVyIGxpYnJhcmllcy4gSXQgaXMgYSBncmVhdCBzdGFydGluZyBwb2ludCB3aGVuXG4gKiBidWlsZGluZyByb2J1c3QsIHBvd2VyZnVsIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgVnVlIGFuZCBMYXJhdmVsLlxuICovXG52YXIgdnVlXzEgPSByZXF1aXJlKFwidnVlXCIpO1xudmFyIHZ1ZTNfc21vb3RoX3Njcm9sbF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJ2dWUzLXNtb290aC1zY3JvbGxcIikpO1xudmFyIHN2Z192dWUzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInN2Zy12dWUzXCIpKTtcbnZhciBXZWJIZWFkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3Mvd2ViL3BhcnRpYWxzL1dlYkhlYWRlci52dWVcIikpO1xudmFyIFdlYkZvb3Rlcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy93ZWIvcGFydGlhbHMvV2ViRm9vdGVyLnZ1ZVwiKSk7XG52YXIgQWRtaW5Gb290ZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3Mvd2ViL3BhcnRpYWxzL0FkbWluRm9vdGVyLnZ1ZVwiKSk7XG52YXIgV2VsY29tZVBhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3Mvd2ViL1dlbGNvbWVQYWdlLnZ1ZVwiKSk7XG52YXIgUmVnaXN0ZXJQYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3dlYi9SZWdpc3RlclBhZ2UudnVlXCIpKTtcbnZhciBBYm91dFBhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3Mvd2ViL0Fib3V0UGFnZS52dWVcIikpO1xudmFyIFN1cHBvcnRQYWdlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3dlYi9TdXBwb3J0UGFnZS52dWVcIikpO1xudmFyIElhdGlTdGFuZGFyZF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy93ZWIvSWF0aVN0YW5kYXJkLnZ1ZVwiKSk7XG52YXIgUHVibGlzaGluZ0NoZWNrbGlzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy93ZWIvUHVibGlzaGluZ0NoZWNrbGlzdC52dWVcIikpO1xudmFyIElhdGlSZWdpc3RlclBhZ2VfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3Mvd2ViL0lhdGlSZWdpc3RlclBhZ2UudnVlXCIpKTtcbi8qKlxuICogVnVlIGNvbXBvbmVudHMgZm9yIEFjdGl2aXRpZXMgTGlzdGluZ1xuICovXG52YXIgUmVzdWx0RGV0YWlsX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvUmVzdWx0RGV0YWlsLnZ1ZVwiKSk7XG52YXIgUmVzdWx0TGlzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL1Jlc3VsdExpc3QudnVlXCIpKTtcbnZhciBJbmRpY2F0b3JEZXRhaWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9JbmRpY2F0b3JEZXRhaWwudnVlXCIpKTtcbnZhciBJbmRpY2F0b3JMaXN0X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvSW5kaWNhdG9yTGlzdC52dWVcIikpO1xudmFyIFBlcmlvZHNEZXRhaWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9QZXJpb2RzRGV0YWlsLnZ1ZVwiKSk7XG52YXIgUGVyaW9kc0xpc3RfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9QZXJpb2RzTGlzdC52dWVcIikpO1xudmFyIFRyYW5zYWN0aW9uTGlzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25MaXN0LnZ1ZVwiKSk7XG52YXIgVHJhbnNhY3Rpb25EZXRhaWxfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL1RyYW5zYWN0aW9uRGV0YWlsLnZ1ZVwiKSk7XG52YXIgRGVzY3JpcHRpb25Gb3JtX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL2NvbXBvbmVudHMvRGVzY3JpcHRpb25Gb3JtLnZ1ZVwiKSk7XG52YXIgRWxlbWVudHNOb3RlX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL0VsZW1lbnRzTm90ZS52dWVcIikpO1xudmFyIEFjdGl2aXR5SW5kZXhfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlJbmRleC52dWVcIikpO1xudmFyIEFkbWluSGVhZGVyX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL2NvbXBvbmVudHMvQWRtaW5IZWFkZXIudnVlXCIpKTtcbnZhciBBY3Rpdml0eURldGFpbF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eURldGFpbC52dWVcIikpO1xudmFyIFNpZGViYXJIZWxwQmxvY2tfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvU2lkZWJhckhlbHBCbG9jay52dWVcIikpO1xudmFyIEFjdGl2aXR5VXBsb2FkX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL2ltcG9ydC9BY3Rpdml0eVVwbG9hZC52dWVcIikpO1xudmFyIEltcG9ydExpc3RfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvaW1wb3J0L0ltcG9ydExpc3QudnVlXCIpKTtcbi8qKlxuICogU2V0dGluZyBwYWdlXG4gKi9cbnZhciBTZXR0aW5nUGFnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9zZXR0aW5nL1NldHRpbmdQYWdlLnZ1ZVwiKSk7XG4vL0FjdGl2aXR5IERlZmF1bHQgVmFsdWVzXG52YXIgQWN0aXZpdHlEZWZhdWx0VmFsdWVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlXCIpKTtcbi8qKlxuICogdnVlIGNvbXBvbmVudCBmb3IgcGFzc3dvcmQgcmVzZXRcbiAqL1xudmFyIFJlc2V0UGFnZV92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9yZXNldC9SZXNldFBhZ2UudnVlXCIpKTtcbnZhciBQYXNzd29yZFJlY292ZXJ5X3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3Jlc2V0L1Bhc3N3b3JkUmVjb3ZlcnkudnVlXCIpKTtcbnZhciBSZXNldFBhc3N3b3JkX3Z1ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFzc3dvcmQudnVlXCIpKTtcbi8qKlxuICogT3JnYW5pc2F0aW9uIGRhdGFcbiAqL1xudmFyIE9yZ2FuaXNhdGlvbkRhdGFfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdmlld3Mvb3JnYW5pc2F0aW9uL09yZ2FuaXNhdGlvbkRhdGEudnVlXCIpKTtcbi8qKlxuICogT3JnYW5pc2F0aW9uIExpc3QgLyBQcm94eVxuICovXG52YXIgT3JnYW5pc2F0aW9uTGlzdF92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9zdXBlcmFkbWluL09yZ2FuaXNhdGlvbkxpc3QudnVlXCIpKTtcbnZhciBBZG1pbkJhcl92dWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi92aWV3cy9zdXBlcmFkbWluL2NvbXBvbmVudHMvQWRtaW5CYXIudnVlXCIpKTtcbi8qKlxuICogQWRkaXRpb25hbCBDb21wb25lbnRzXG4gKi9cbnZhciBIb3ZlclRleHRfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vY29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCIpKTtcbnZhciBQYWdlVGl0bGVfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vY29tcG9uZW50cy9zZWN0aW9ucy9QYWdlVGl0bGUudnVlXCIpKTtcbnZhciBMb2FkZXJfdnVlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vY29tcG9uZW50cy9Mb2FkZXIudnVlXCIpKTtcbnZhciBhcHAgPSAoMCwgdnVlXzEuY3JlYXRlQXBwKSh7fSk7XG4vKipcbiAqIEdsb2JhbCBDb21wb25lbnRzXG4gKi9cbmFwcFxuICAgIC5jb21wb25lbnQoJ1dlYkhlYWRlcicsIFdlYkhlYWRlcl92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1dlYkZvb3RlcicsIFdlYkZvb3Rlcl92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ0FkbWluRm9vdGVyJywgQWRtaW5Gb290ZXJfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdXZWxjb21lU2lnbmluJywgV2VsY29tZVBhZ2VfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdSZWdpc3RlckZvcm0nLCBSZWdpc3RlclBhZ2VfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdJYXRpUmVnaXN0ZXJGb3JtJywgSWF0aVJlZ2lzdGVyUGFnZV92dWVfMS5kZWZhdWx0KTtcbi8qKlxuICogcmVnaXN0ZXJpbmcgd2ViIHBvcnRhbCBwYWdlc1xuICovXG5hcHBcbiAgICAuY29tcG9uZW50KCdBYm91dFBhZ2UnLCBBYm91dFBhZ2VfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdTdXBwb3J0UGFnZScsIFN1cHBvcnRQYWdlX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnSWF0aVN0YW5kYXJkJywgSWF0aVN0YW5kYXJkX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnUHVibGlzaGluZ0NoZWNrbGlzdCcsIFB1Ymxpc2hpbmdDaGVja2xpc3RfdnVlXzEuZGVmYXVsdCk7XG4vKipcbiAqIFJlZ2lzdGVyaW5nIHZ1ZSBjb21wb25lbnQgZm9yIGFjdGl2aXR5IGxpc3RpbmdcbiAqL1xuYXBwXG4gICAgLmNvbXBvbmVudCgnQWN0aXZpdHlUZW1wbGF0ZScsIEFjdGl2aXR5SW5kZXhfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdMb2dnZWRpbkhlYWRlcicsIEFkbWluSGVhZGVyX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnQWN0aXZpdGllc0RldGFpbCcsIEFjdGl2aXR5RGV0YWlsX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnRGVzY3JpcHRpb25Gb3JtJywgRGVzY3JpcHRpb25Gb3JtX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnRWxlbWVudHNOb3RlJywgRWxlbWVudHNOb3RlX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnUmVzdWx0RGV0YWlsJywgUmVzdWx0RGV0YWlsX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnUmVzdWx0TGlzdCcsIFJlc3VsdExpc3RfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdJbmRpY2F0b3JEZXRhaWwnLCBJbmRpY2F0b3JEZXRhaWxfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdJbmRpY2F0b3JMaXN0JywgSW5kaWNhdG9yTGlzdF92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1BlcmlvZHNEZXRhaWwnLCBQZXJpb2RzRGV0YWlsX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnUGVyaW9kc0xpc3QnLCBQZXJpb2RzTGlzdF92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1RyYW5zYWN0aW9uTGlzdCcsIFRyYW5zYWN0aW9uTGlzdF92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1RyYW5zYWN0aW9uRGV0YWlsJywgVHJhbnNhY3Rpb25EZXRhaWxfdnVlXzEuZGVmYXVsdClcbiAgICAuY29tcG9uZW50KCdTaWRlYmFySGVscEJsb2NrJywgU2lkZWJhckhlbHBCbG9ja192dWVfMS5kZWZhdWx0KTtcbi8qXG4gKiBJbXBvcnQgcGFnZVxuICovXG5hcHBcbiAgICAuY29tcG9uZW50KCdBY3Rpdml0eVVwbG9hZCcsIEFjdGl2aXR5VXBsb2FkX3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnSW1wb3J0TGlzdCcsIEltcG9ydExpc3RfdnVlXzEuZGVmYXVsdCk7XG4vKlxuICogU2V0dGluZyBwYWdlXG4gKi9cbmFwcC5jb21wb25lbnQoJ1NldHRpbmdQYWdlJywgU2V0dGluZ1BhZ2VfdnVlXzEuZGVmYXVsdCk7XG5hcHAuY29tcG9uZW50KCdBY3Rpdml0eURlZmF1bHRWYWx1ZXMnLCBBY3Rpdml0eURlZmF1bHRWYWx1ZV92dWVfMS5kZWZhdWx0KTtcbi8qXG5SZWdpc3RlcmluZyB2dWUgY29tcG9uZW50IGZvciBwYXNzd29yZCByZXNldFxuKi9cbmFwcFxuICAgIC5jb21wb25lbnQoJ1Jlc2V0UGFnZScsIFJlc2V0UGFnZV92dWVfMS5kZWZhdWx0KVxuICAgIC5jb21wb25lbnQoJ1Bhc3N3b3JkUmVjb3ZlcnknLCBQYXNzd29yZFJlY292ZXJ5X3Z1ZV8xLmRlZmF1bHQpXG4gICAgLmNvbXBvbmVudCgnUmVzZXRQYXNzd29yZCcsIFJlc2V0UGFzc3dvcmRfdnVlXzEuZGVmYXVsdCk7XG4vKipcbiAqIFJlZ2lzdGVyaW5nIEFkZGl0aW9uYWwgQ29tcG9uZW50c1xuICovXG5hcHAuY29tcG9uZW50KCdIb3ZlclRleHQnLCBIb3ZlclRleHRfdnVlXzEuZGVmYXVsdCk7XG5hcHAuY29tcG9uZW50KCdQYWdlVGl0bGUnLCBQYWdlVGl0bGVfdnVlXzEuZGVmYXVsdCk7XG5hcHAuY29tcG9uZW50KCdMb2FkaW5nU3RhdGUnLCBMb2FkZXJfdnVlXzEuZGVmYXVsdCk7XG4vKipcbiAqIE9yZ2FuaXNhdGlvbiBkYXRhXG4gKi9cbmFwcC5jb21wb25lbnQoJ09yZ2FuaXNhdGlvbkRhdGEnLCBPcmdhbmlzYXRpb25EYXRhX3Z1ZV8xLmRlZmF1bHQpO1xuLyoqXG4gKiBQcm94eVxuICovXG5hcHAuY29tcG9uZW50KCdPcmdhbmlzYXRpb25MaXN0JywgT3JnYW5pc2F0aW9uTGlzdF92dWVfMS5kZWZhdWx0KTtcbmFwcC5jb21wb25lbnQoJ0FkbWluQmFyJywgQWRtaW5CYXJfdnVlXzEuZGVmYXVsdCk7XG4vKipcbiAqIEV4dGVuc2lvbiB0byBpbmxpbmUgU1ZHIGZpbGVzIHdpdGggVnVlLmpzIGFuZCBvcHRpbWl6ZSB0aGVtIGF1dG9tYXRpY2FsbHkgd2l0aCBTVkdPXG4gKi9cbmFwcC51c2Uoc3ZnX3Z1ZTNfMS5kZWZhdWx0KTtcbmFwcC51c2UodnVlM19zbW9vdGhfc2Nyb2xsXzEuZGVmYXVsdCk7XG4vLyBkZXRlY3Qgc2Nyb2xsIHVwIG9yIGRvd25cbnZhciBsYXN0U2Nyb2xsVG9wID0gMCwgYWZmaXhUeXBlID0gJ3N0aWNreS1ub25lJztcbnZhciBzdGlja3lTaWRlYmFyID0gZnVuY3Rpb24gKGVsLCBwYXJlbnRXcmFwcGVyKSB7XG4gICAgLy9zdGlja3kgZWxlbWVudC9jaGlsZCBkYXRhXG4gICAgdmFyIHN0aWNreUVsZW1lbnQgPSBlbC5maXJzdENoaWxkLCBlbEhlaWdodCA9IHN0aWNreUVsZW1lbnQub2Zmc2V0SGVpZ2h0LCBzdGlja3lDdXJyZW50VG9wID0gc3RpY2t5RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsIHN0aWNreUN1cnJlbnRCb3R0b20gPSBzdGlja3lFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbTtcbiAgICAvL3N0aWNreSBlbGVtZW50J3MgcGFyZW50L3dyYXBwZXIgZGF0YVxuICAgIHZhciBlbFdpZHRoID0gZWwub2Zmc2V0V2lkdGgsIGVsU2Nyb2xsTGVmdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQsIGVsU2Nyb2xsVG9wID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLCBlbFNjcm9sbEJvdHRvbSA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSwgdmlld3BvcnRIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgLy8gd2luZG93L2RvY3VtZW50IGRhdGFcbiAgICB2YXIgY3VycmVudFdpbmRvd3NTY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5wYWdlWU9mZnNldCwgdGFyZ2V0U2Nyb2xsUG9zaXRpb24gPSBlbFNjcm9sbEJvdHRvbSArIGN1cnJlbnRXaW5kb3dzU2Nyb2xsUG9zaXRpb24gLSB2aWV3cG9ydEhlaWdodDtcbiAgICAvLyBwYXJlbnQgd3JhcHBlciAvIHN0aWNreSBib3VuZGFyeVxuICAgIHZhciBlbFBhcmVudCA9IHN0aWNreUVsZW1lbnQuY2xvc2VzdChwYXJlbnRXcmFwcGVyKSwgZWxQYXJlbnRCb3R0b20gPSBlbFBhcmVudCA9PT0gbnVsbCB8fCBlbFBhcmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tO1xuICAgIC8vIHNjcm9sbCBiZWhhdmlvdXJcbiAgICB2YXIgaXNTY3JvbGxEb3duID0gY3VycmVudFdpbmRvd3NTY3JvbGxQb3NpdGlvbiA+IGxhc3RTY3JvbGxUb3AgPyB0cnVlIDogZmFsc2U7XG4gICAgdmFyIGlzU2Nyb2xsVXAgPSAhaXNTY3JvbGxEb3duO1xuICAgIGxhc3RTY3JvbGxUb3AgPVxuICAgICAgICBjdXJyZW50V2luZG93c1Njcm9sbFBvc2l0aW9uIDw9IDAgPyAwIDogY3VycmVudFdpbmRvd3NTY3JvbGxQb3NpdGlvbjtcbiAgICBmdW5jdGlvbiBoYW5kbGVTY3JvbGxEb3duKCkge1xuICAgICAgICBzd2l0Y2ggKGFmZml4VHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RpY2t5LXRvcCc6XG4gICAgICAgICAgICAgICAgc3RpY2t5RWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogcmVsYXRpdmU7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgXCIuY29uY2F0KHN0aWNreUN1cnJlbnRUb3AgLSBlbFNjcm9sbFRvcCwgXCJweCwgMCk7XCIpO1xuICAgICAgICAgICAgICAgIGFmZml4VHlwZSA9ICdzdGlja3ktdHJhbnNsYXRlJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0aWNreS1ib3R0b20nOlxuICAgICAgICAgICAgICAgIGlmIChlbFBhcmVudEJvdHRvbSAmJiBlbFBhcmVudEJvdHRvbSA8IHN0aWNreUN1cnJlbnRCb3R0b20pIHtcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5RWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbiA6IGFic29sdXRlOyAgd2lkdGg6MjgwcHg7IGJvdHRvbTogMTZweFwiO1xuICAgICAgICAgICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LWJvdW5kJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGlja3ktdHJhbnNsYXRlJzpcbiAgICAgICAgICAgICAgICBpZiAoc3RpY2t5Q3VycmVudEJvdHRvbSA8PSB2aWV3cG9ydEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiBmaXhlZDsgdG9wOiBhdXRvOyBsZWZ0OiBcIi5jb25jYXQoZWxTY3JvbGxMZWZ0LCBcIjsgYm90dG9tOiAwOyB3aWR0aDogXCIpLmNvbmNhdChlbFdpZHRoLCBcInB4XCIpO1xuICAgICAgICAgICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LWJvdHRvbSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZml4ZWQtdG9wJzpcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogZml4ZWQ7IHRvcDo2MHB4XCI7XG4gICAgICAgICAgICAgICAgYWZmaXhUeXBlID0gJ3N0aWNreS10cmFuc2xhdGUnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RpY2t5LW5vbmUnOlxuICAgICAgICAgICAgICAgIGlmICh0YXJnZXRTY3JvbGxQb3NpdGlvbiA8PSBjdXJyZW50V2luZG93c1Njcm9sbFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3cG9ydEhlaWdodCArIHdpbmRvdy5zY3JvbGxZICsgNDUwID49XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWwuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IHN0aWNreTsgdG9wOjYwcHhcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IGZpeGVkOyB0b3A6IGF1dG87IGxlZnQ6IFwiLmNvbmNhdChlbFNjcm9sbExlZnQsIFwiOyBib3R0b206IDA7IHdpZHRoOiBcIikuY29uY2F0KGVsV2lkdGgsIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LWJvdHRvbSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGlja3ktYm91bmQnOlxuICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZVNjcm9sbFVwKCkge1xuICAgICAgICBzd2l0Y2ggKGFmZml4VHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RpY2t5LXRvcCc6XG4gICAgICAgICAgICAgICAgaWYgKGVsU2Nyb2xsVG9wID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5RWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogcmVsYXRpdmU7ICBcIjtcbiAgICAgICAgICAgICAgICAgICAgYWZmaXhUeXBlID0gJ3N0aWNreS1ub25lJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IGZpeGVkOyB0b3A6IDYwcHg7bGVmdDogXCIuY29uY2F0KGVsU2Nyb2xsTGVmdCwgXCI7IHdpZHRoOiBcIikuY29uY2F0KGVsV2lkdGgsIFwicHggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0aWNreS1ib3R0b20nOlxuICAgICAgICAgICAgICAgIHN0aWNreUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IGF1dG87ICBib3R0b206IDYwcHg7bGVmdDogXCIuY29uY2F0KGVsU2Nyb2xsTGVmdCwgXCI7IHdpZHRoOiBcIikuY29uY2F0KGVsV2lkdGgsIFwicHggXCIpO1xuICAgICAgICAgICAgICAgIGFmZml4VHlwZSA9ICdzdGlja3ktYm91bmQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZml4ZWQtdG9wJzpcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjogZml4ZWQ7IHRvcDo2MHB4XCI7XG4gICAgICAgICAgICAgICAgYWZmaXhUeXBlID0gJ3N0aWNreS10cmFuc2xhdGUnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RpY2t5LXRyYW5zbGF0ZSc6XG4gICAgICAgICAgICAgICAgaWYgKHN0aWNreUN1cnJlbnRUb3AgPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiBmaXhlZDsgdG9wOiA2MHB4OyBsZWZ0OiBcIi5jb25jYXQoZWxTY3JvbGxMZWZ0LCBcIjsgd2lkdGg6IFwiKS5jb25jYXQoZWxXaWR0aCwgXCJweFwiKTtcbiAgICAgICAgICAgICAgICAgICAgYWZmaXhUeXBlID0gJ3N0aWNreS10b3AnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0aWNreS1ub25lJzpcbiAgICAgICAgICAgICAgICAvL25vdGhpbmcgdG8gZG8gaGVyZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RpY2t5LWJvdW5kJzpcbiAgICAgICAgICAgICAgICBpZiAoc3RpY2t5Q3VycmVudFRvcCA+PSAwICYmIGN1cnJlbnRXaW5kb3dzU2Nyb2xsUG9zaXRpb24gIT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOmZpeGVkOyB0b3A6IDA7IGxlZnQ6IFwiLmNvbmNhdChlbFNjcm9sbExlZnQsIFwiOyB3aWR0aDogXCIpLmNvbmNhdChlbFdpZHRoLCBcInB4XCIpO1xuICAgICAgICAgICAgICAgICAgICBhZmZpeFR5cGUgPSAnc3RpY2t5LXRvcCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdGlja3lDdXJyZW50VG9wID49IDAgJiYgY3VycmVudFdpbmRvd3NTY3JvbGxQb3NpdGlvbiA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IFwiIHRvcDogMDsgbGVmdDogXCIuY29uY2F0KGVsU2Nyb2xsTGVmdCwgXCI7IHdpZHRoOiBcIikuY29uY2F0KGVsV2lkdGgsIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgIGFmZml4VHlwZSA9ICdzdGlja3ktdG9wJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVsSGVpZ2h0IDwgdmlld3BvcnRIZWlnaHQpIHtcbiAgICAgICAgZWwuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IHN0aWNreTsgdG9wOjYwcHhcIjtcbiAgICAgICAgc3RpY2t5RWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gXCJcIjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGVsLnN0eWxlLmNzc1RleHQgPSBcImhlaWdodDogXCIuY29uY2F0KGVsSGVpZ2h0LCBcInB4O1wiKTtcbiAgICAgICAgaWYgKGlzU2Nyb2xsRG93biAmJiBjdXJyZW50V2luZG93c1Njcm9sbFBvc2l0aW9uICE9IDApIHtcbiAgICAgICAgICAgIGhhbmRsZVNjcm9sbERvd24oKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1Njcm9sbFVwICYmIGN1cnJlbnRXaW5kb3dzU2Nyb2xsUG9zaXRpb24gIT0gMCkge1xuICAgICAgICAgICAgaGFuZGxlU2Nyb2xsVXAoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiBzdGlja3k7IHRvcDo2MHB4XCI7XG4gICAgICAgICAgICBzdGlja3lFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBcIlwiO1xuICAgICAgICB9XG4gICAgfVxufTtcbnZhciBmaXhTaWRlYmFyID0gZnVuY3Rpb24gKGVsKSB7XG4gICAgdmFyIGZvb3RlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290ZXInKTtcbiAgICB2YXIgcmVjdCA9IGZvb3RlciAmJiBmb290ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdmFyIHByb2dyZXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dyZXNzJyk7XG4gICAgdmFyIHRvcCA9IHByb2dyZXNzICYmIHByb2dyZXNzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGlmIChkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoID4gMTAyNCkge1xuICAgICAgICBpZiAocmVjdCAmJiByZWN0LnRvcCA8PSA4MDApIHtcbiAgICAgICAgICAgIGVsLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiBhdXRvOyAgYm90dG9tOiA2MHB4O3dpZHRoOjI4MHB4IFwiO1xuICAgICAgICAgICAgYWZmaXhUeXBlID0gJ3N0aWNreS1ib3R0b20nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRvcCAmJiB0b3AuYm90dG9tID4gMCkge1xuICAgICAgICAgICAgZWwuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246IGFic29sdXRlOyB0b3A6MTkwcHhcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOiBmaXhlZDsgdG9wOjYwcHhcIjtcbiAgICAgICAgICAgIGFmZml4VHlwZSA9ICdmaXhlZC10b3AnO1xuICAgICAgICB9XG4gICAgfVxufTtcbi8vIGN1c3RvbSBkaXJlY3RpdmVcbmFwcC5kaXJlY3RpdmUoJ3N0aWNreS1jb21wb25lbnQnLCB7XG4gICAgbW91bnRlZDogZnVuY3Rpb24gKGVsLCBiaW5kaW5nKSB7XG4gICAgICAgIHZhciBib3VuZGFyeSA9IChiaW5kaW5nLnZhbHVlIHx8IHt9KS5ib3VuZGFyeTtcbiAgICAgICAgYm91bmRhcnkgPSBib3VuZGFyeSB8fCAnYm9keSc7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7IHJldHVybiBzdGlja3lTaWRlYmFyKGVsLCBib3VuZGFyeSk7IH0pO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgeyByZXR1cm4gZml4U2lkZWJhcihlbCk7IH0pO1xuICAgIH0sXG4gICAgdW5tb3VudGVkOiBmdW5jdGlvbiAoZWwsIGJpbmRpbmcpIHtcbiAgICAgICAgdmFyIHBhcmVudCA9IGJpbmRpbmcudmFsdWUuYm91bmRhcnk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7IHJldHVybiBzdGlja3lTaWRlYmFyKGVsLCBwYXJlbnQpOyB9KTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZpeFNpZGViYXIoZWwpOyB9KTtcbiAgICB9LFxufSk7XG4vKipcbiAqIE5leHQsIHdlIHdpbGwgY3JlYXRlIGEgZnJlc2ggVnVlIGFwcGxpY2F0aW9uIGluc3RhbmNlIGFuZCBhdHRhY2ggaXQgdG9cbiAqIHRoZSBwYWdlLiBUaGVuLCB5b3UgbWF5IGJlZ2luIGFkZGluZyBjb21wb25lbnRzIHRvIHRoaXMgYXBwbGljYXRpb25cbiAqIG9yIGN1c3RvbWl6ZSB0aGUgSmF2YVNjcmlwdCBzY2FmZm9sZGluZyB0byBmaXQgeW91ciB1bmlxdWUgbmVlZHMuXG4gKi9cbmFwcC5tb3VudCgnI2FwcCcpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLm9yZ01hbmRhdG9yeUVsZW1lbnRzID0gZXhwb3J0cy5hY3Rpdml0eUNvcmVFbGVtZW50cyA9IHZvaWQgMDtcbmZ1bmN0aW9uIGFjdGl2aXR5Q29yZUVsZW1lbnRzKCkge1xuICAgIHZhciBlbGVtZW50cyA9IFtcbiAgICAgICAgJ3JlcG9ydGluZ19vcmcnLFxuICAgICAgICAnaWF0aV9pZGVudGlmaWVyJyxcbiAgICAgICAgJ3RpdGxlJyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ3BhcnRpY2lwYXRpbmdfb3JnJyxcbiAgICAgICAgJ2FjdGl2aXR5X3N0YXR1cycsXG4gICAgICAgICdhY3Rpdml0eV9kYXRlJyxcbiAgICAgICAgJ3JlY2lwaWVudF9jb3VudHJ5JyxcbiAgICAgICAgJ3JlY2lwaWVudF9yZWdpb24nLFxuICAgICAgICAnc2VjdG9yJyxcbiAgICAgICAgJ2NvbGxhYm9yYXRpb25fdHlwZScsXG4gICAgICAgICdkZWZhdWx0X2Zsb3dfdHlwZScsXG4gICAgICAgICdkZWZhdWx0X2ZpbmFuY2VfdHlwZScsXG4gICAgICAgICdkZWZhdWx0X2FpZF90eXBlJyxcbiAgICAgICAgJ2J1ZGdldCcsXG4gICAgICAgICd0cmFuc2FjdGlvbnMnLFxuICAgIF07XG4gICAgcmV0dXJuIGVsZW1lbnRzO1xufVxuZXhwb3J0cy5hY3Rpdml0eUNvcmVFbGVtZW50cyA9IGFjdGl2aXR5Q29yZUVsZW1lbnRzO1xuZnVuY3Rpb24gb3JnTWFuZGF0b3J5RWxlbWVudHMoKSB7XG4gICAgdmFyIGVsZW1lbnRzID0gWydyZXBvcnRpbmdfb3JnJywgJ25hbWUnXTtcbiAgICByZXR1cm4gZWxlbWVudHM7XG59XG5leHBvcnRzLm9yZ01hbmRhdG9yeUVsZW1lbnRzID0gb3JnTWFuZGF0b3J5RWxlbWVudHM7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBtb21lbnRfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibW9tZW50XCIpKTtcbmZ1bmN0aW9uIGRhdGVGb3JtYXQoZGF0ZSwgZm9ybWF0KSB7XG4gICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7IGZvcm1hdCA9ICdNTU1NIERELCBZWVlZJzsgfVxuICAgIHZhciBmb3JtYXRfZGF0ZTtcbiAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICBjYXNlICdmcm9tTm93JzpcbiAgICAgICAgICAgIGZvcm1hdF9kYXRlID0gZGF0ZSA/ICgwLCBtb21lbnRfMS5kZWZhdWx0KShkYXRlKS5mcm9tTm93KCkgOiAnJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZm9ybWF0X2RhdGUgPSBkYXRlID8gKDAsIG1vbWVudF8xLmRlZmF1bHQpKGRhdGUpLmZvcm1hdChmb3JtYXQpIDogJyc7XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXRfZGF0ZTtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGRhdGVGb3JtYXQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBjcnlwdG9fanNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiY3J5cHRvLWpzXCIpKTtcbmZ1bmN0aW9uIGVuY3J5cHQoc3RyaW5nLCBrZXkpIHtcbiAgICB2YXIgaXYgPSBjcnlwdG9fanNfMS5kZWZhdWx0LmxpYi5Xb3JkQXJyYXkucmFuZG9tKDE2KTtcbiAgICB2YXIgc2FsdCA9IGNyeXB0b19qc18xLmRlZmF1bHQubGliLldvcmRBcnJheS5yYW5kb20oMjU2KTtcbiAgICB2YXIgaXRlcmF0aW9ucyA9IDk5OTtcbiAgICB2YXIgZW5jcnlwdE1ldGhvZExlbmd0aCA9IDI1NiAvIDQ7XG4gICAgdmFyIGhhc2hLZXkgPSBjcnlwdG9fanNfMS5kZWZhdWx0LlBCS0RGMihrZXksIHNhbHQsIHtcbiAgICAgICAgaGFzaGVyOiBjcnlwdG9fanNfMS5kZWZhdWx0LmFsZ28uU0hBNTEyLFxuICAgICAgICBrZXlTaXplOiBlbmNyeXB0TWV0aG9kTGVuZ3RoIC8gOCxcbiAgICAgICAgaXRlcmF0aW9uczogaXRlcmF0aW9ucyxcbiAgICB9KTtcbiAgICB2YXIgZW5jcnlwdGVkID0gY3J5cHRvX2pzXzEuZGVmYXVsdC5BRVMuZW5jcnlwdChzdHJpbmcsIGhhc2hLZXksIHtcbiAgICAgICAgbW9kZTogY3J5cHRvX2pzXzEuZGVmYXVsdC5tb2RlLkNCQyxcbiAgICAgICAgaXY6IGl2LFxuICAgIH0pO1xuICAgIHZhciBlbmNyeXB0ZWRTdHJpbmcgPSBjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5CYXNlNjQuc3RyaW5naWZ5KGVuY3J5cHRlZC5jaXBoZXJ0ZXh0KTtcbiAgICB2YXIgb3V0cHV0ID0ge1xuICAgICAgICBjaXBoZXJ0ZXh0OiBlbmNyeXB0ZWRTdHJpbmcsXG4gICAgICAgIGl2OiBjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5IZXguc3RyaW5naWZ5KGl2KSxcbiAgICAgICAgc2FsdDogY3J5cHRvX2pzXzEuZGVmYXVsdC5lbmMuSGV4LnN0cmluZ2lmeShzYWx0KSxcbiAgICAgICAgaXRlcmF0aW9uczogaXRlcmF0aW9ucyxcbiAgICB9O1xuICAgIHJldHVybiBjcnlwdG9fanNfMS5kZWZhdWx0LmVuYy5CYXNlNjQuc3RyaW5naWZ5KGNyeXB0b19qc18xLmRlZmF1bHQuZW5jLlV0ZjgucGFyc2UoSlNPTi5zdHJpbmdpZnkob3V0cHV0KSkpO1xufVxuZXhwb3J0cy5kZWZhdWx0ID0gZW5jcnlwdDtcbiIsIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBHZXQgY3VycmVudCBhY3Rpdml0eSB0aXRsZVxuICpcbiAqIEByZXR1cm4gdGl0bGUgdGV4dFxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5mdW5jdGlvbiBnZXRBY3Rpdml0eVRpdGxlKGRhdGEsIGxhbmd1YWdlKSB7XG4gICAgdmFyIHRpdGxlID0gJyc7XG4gICAgLy8gdGl0bGUgcmV0dXJuIGlmIGxhbmd1YWdlIGV4aXN0IGluIGRhdGFcbiAgICBmb3IgKHZhciBfaSA9IDAsIGRhdGFfMSA9IGRhdGE7IF9pIDwgZGF0YV8xLmxlbmd0aDsgX2krKykge1xuICAgICAgICB2YXIgdCA9IGRhdGFfMVtfaV07XG4gICAgICAgIGlmICh0Lmxhbmd1YWdlICYmIHQubGFuZ3VhZ2UgPT09IGxhbmd1YWdlKSB7XG4gICAgICAgICAgICB0aXRsZSA9IHQubmFycmF0aXZlICYmIHQubmFycmF0aXZlICE9PSAnJyA/IHQubmFycmF0aXZlIDogJ1VudGl0bGVkJztcbiAgICAgICAgICAgIHJldHVybiB0aXRsZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBkZWZhdWx0IHRpdGxlIHJldHVybiBpZiBsYW5ndWFnZSBkb2VzIG5vdCBleGlzdHMgaW4gZGF0YVxuICAgIHRpdGxlID0gZGF0YVsnMCddLm5hcnJhdGl2ZSAmJiBkYXRhWycwJ10ubmFycmF0aXZlICE9PSAnJyA/IGRhdGFbJzAnXS5uYXJyYXRpdmUgOiAnVW50aXRsZWQnO1xuICAgIHJldHVybiB0aXRsZTtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGdldEFjdGl2aXR5VGl0bGU7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmZ1bmN0aW9uIGdldExvY2F0aW9uKGRhdGEpIHtcbiAgICB2YXIgbG9jYXRpb25zID0gW107XG4gICAgbG9jYXRpb25zID0gZGF0YS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0ucmVmZXJlbmNlO1xuICAgIH0pO1xuICAgIHZhciBsYXN0TG9jYXRpb24gPSBsb2NhdGlvbnMuc2xpY2UoLTEpWzBdO1xuICAgIGxvY2F0aW9ucyA9IGxvY2F0aW9ucy5zbGljZSgwLCAtMSk7XG4gICAgaWYgKGxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBsb2NhdGlvbnMuam9pbignLCAnKSArICcgJyArICdhbmQnICsgJyAnICsgbGFzdExvY2F0aW9uO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGxhc3RMb2NhdGlvbjtcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRMb2NhdGlvbjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy51c2VTdG9yZSA9IHZvaWQgMDtcbnZhciB2dWV4XzEgPSByZXF1aXJlKFwidnVleFwiKTtcbnZhciBzdGF0ZSA9IHtcbiAgICBzZWxlY3RlZEFjdGl2aXRpZXM6IFtdLFxufTtcbnZhciBtdXRhdGlvbnMgPSB7XG4gICAgbXV0YXRlU2VsZWN0ZWRBY3Rpdml0aWVzOiBmdW5jdGlvbiAoc3RhdGUsIHBheWxvYWQpIHtcbiAgICAgICAgc3RhdGUuc2VsZWN0ZWRBY3Rpdml0aWVzID0gcGF5bG9hZDtcbiAgICB9LFxufTtcbnZhciBhY3Rpb25zID0ge1xuICAgIHVwZGF0ZVNlbGVjdGVkQWN0aXZpdGllczogZnVuY3Rpb24gKF9hLCBwYXlsb2FkKSB7XG4gICAgICAgIHZhciBjb21taXQgPSBfYS5jb21taXQ7XG4gICAgICAgIGNvbW1pdCgnbXV0YXRlU2VsZWN0ZWRBY3Rpdml0aWVzJywgcGF5bG9hZCk7XG4gICAgfSxcbn07XG52YXIgYWN0aXZpdHlMaXN0U3RvcmUgPSAoMCwgdnVleF8xLmNyZWF0ZVN0b3JlKSh7XG4gICAgc3RhdGU6IHN0YXRlLFxuICAgIG11dGF0aW9uczogbXV0YXRpb25zLFxuICAgIGFjdGlvbnM6IGFjdGlvbnMsXG59KTtcbmZ1bmN0aW9uIHVzZVN0b3JlKCkge1xuICAgIHJldHVybiBhY3Rpdml0eUxpc3RTdG9yZTtcbn1cbmV4cG9ydHMudXNlU3RvcmUgPSB1c2VTdG9yZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZXRhaWxTdG9yZSA9IHZvaWQgMDtcbnZhciB2dWV4XzEgPSByZXF1aXJlKFwidnVleFwiKTtcbnZhciBzdGF0ZSA9IHtcbiAgICB1blB1Ymxpc2hlZDogZmFsc2UsXG4gICAgc2hvd1B1Ymxpc2hlZDogZmFsc2UsXG4gICAgcHVibGlzaEVycm9yczogW10sXG59O1xudmFyIG11dGF0aW9ucyA9IHtcbiAgICBtdXRhdGVVblB1Ymxpc2hlZDogZnVuY3Rpb24gKHN0YXRlLCBwYXlsb2FkKSB7XG4gICAgICAgIHN0YXRlLnVuUHVibGlzaGVkID0gcGF5bG9hZDtcbiAgICB9LFxuICAgIG11dGF0ZVNob3dQdWJsaXNoZWQ6IGZ1bmN0aW9uIChzdGF0ZSwgcGF5bG9hZCkge1xuICAgICAgICBzdGF0ZS5zaG93UHVibGlzaGVkID0gcGF5bG9hZDtcbiAgICB9LFxuICAgIG11dGF0ZVB1Ymxpc2hFcnJvcnM6IGZ1bmN0aW9uIChzdGF0ZSwgcGF5bG9hZCkge1xuICAgICAgICBzdGF0ZS5wdWJsaXNoRXJyb3JzID0gcGF5bG9hZDtcbiAgICB9LFxufTtcbnZhciBhY3Rpb25zID0ge1xuICAgIHVwZGF0ZVVuUHVibGlzaGVkOiBmdW5jdGlvbiAoX2EsIHBheWxvYWQpIHtcbiAgICAgICAgdmFyIGNvbW1pdCA9IF9hLmNvbW1pdDtcbiAgICAgICAgY29tbWl0KCdtdXRhdGVVblB1Ymxpc2hlZCcsIHBheWxvYWQpO1xuICAgIH0sXG4gICAgdXBkYXRlU2hvd1B1Ymxpc2hlZDogZnVuY3Rpb24gKF9hLCBwYXlsb2FkKSB7XG4gICAgICAgIHZhciBjb21taXQgPSBfYS5jb21taXQ7XG4gICAgICAgIGNvbW1pdCgnbXV0YXRlU2hvd1B1Ymxpc2hlZCcsIHBheWxvYWQpO1xuICAgIH0sXG4gICAgdXBkYXRlUHVibGlzaEVycm9yczogZnVuY3Rpb24gKF9hLCBwYXlsb2FkKSB7XG4gICAgICAgIHZhciBjb21taXQgPSBfYS5jb21taXQ7XG4gICAgICAgIGNvbW1pdCgnbXV0YXRlUHVibGlzaEVycm9ycycsIHBheWxvYWQpO1xuICAgIH0sXG59O1xudmFyIGFjdGl2aXR5RGV0YWlsU3RvcmUgPSAoMCwgdnVleF8xLmNyZWF0ZVN0b3JlKSh7XG4gICAgc3RhdGU6IHN0YXRlLFxuICAgIG11dGF0aW9uczogbXV0YXRpb25zLFxuICAgIGFjdGlvbnM6IGFjdGlvbnMsXG59KTtcbmZ1bmN0aW9uIGRldGFpbFN0b3JlKCkge1xuICAgIHJldHVybiBhY3Rpdml0eURldGFpbFN0b3JlO1xufVxuZXhwb3J0cy5kZXRhaWxTdG9yZSA9IGRldGFpbFN0b3JlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnVzZVN0b3JlID0gZXhwb3J0cy5zdG9yZSA9IHZvaWQgMDtcbnZhciB2dWV4XzEgPSByZXF1aXJlKFwidnVleFwiKTtcbnZhciBzdGF0ZV8xID0gcmVxdWlyZShcIi4vc2V0dGluZy9zdGF0ZVwiKTtcbnZhciBtdXRhdGlvbl8xID0gcmVxdWlyZShcIi4vc2V0dGluZy9tdXRhdGlvblwiKTtcbnZhciBhY3Rpb25zXzEgPSByZXF1aXJlKFwiLi9zZXR0aW5nL2FjdGlvbnNcIik7XG5leHBvcnRzLnN0b3JlID0gKDAsIHZ1ZXhfMS5jcmVhdGVTdG9yZSkoe1xuICAgIHN0YXRlOiBzdGF0ZV8xLnN0YXRlLFxuICAgIG11dGF0aW9uczogbXV0YXRpb25fMS5tdXRhdGlvbnMsXG4gICAgYWN0aW9uczogYWN0aW9uc18xLmFjdGlvbnMsXG59KTtcbmZ1bmN0aW9uIHVzZVN0b3JlKCkge1xuICAgIHJldHVybiBleHBvcnRzLnN0b3JlO1xufVxuZXhwb3J0cy51c2VTdG9yZSA9IHVzZVN0b3JlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX2E7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmFjdGlvbnMgPSBleHBvcnRzLkFjdGlvblR5cGVzID0gdm9pZCAwO1xudmFyIG11dGF0aW9uXzEgPSByZXF1aXJlKFwiLi9tdXRhdGlvblwiKTtcbnZhciBBY3Rpb25UeXBlcztcbihmdW5jdGlvbiAoQWN0aW9uVHlwZXMpIHtcbiAgICBBY3Rpb25UeXBlc1tcIlVQREFURV9QVUJMSVNISU5HX0ZPUk1cIl0gPSBcIlVQREFURV9QVUJMSVNISU5HX0ZPUk1cIjtcbiAgICBBY3Rpb25UeXBlc1tcIlVQREFURV9QVUJMSVNIRVJfSU5GT1wiXSA9IFwiVVBEQVRFX1BVQkxJU0hFUl9JTkZPXCI7XG4gICAgQWN0aW9uVHlwZXNbXCJVUERBVEVfUFVCTElTSElOR19FUlJPUlwiXSA9IFwiVVBEQVRFX1BVQkxJU0hJTkdfRVJST1JcIjtcbiAgICBBY3Rpb25UeXBlc1tcIlVQREFURV9ERUZBVUxUX1ZBTFVFU1wiXSA9IFwiVVBEQVRFX0RFRkFVTFRfVkFMVUVTXCI7XG4gICAgQWN0aW9uVHlwZXNbXCJVUERBVEVfREVGQVVMVF9FUlJPUlwiXSA9IFwiVVBEQVRFX0RFRkFVTFRfRVJST1JcIjtcbn0pKEFjdGlvblR5cGVzID0gZXhwb3J0cy5BY3Rpb25UeXBlcyB8fCAoZXhwb3J0cy5BY3Rpb25UeXBlcyA9IHt9KSk7XG5leHBvcnRzLmFjdGlvbnMgPSAoX2EgPSB7fSxcbiAgICBfYVtBY3Rpb25UeXBlcy5VUERBVEVfUFVCTElTSElOR19GT1JNXSA9IGZ1bmN0aW9uIChfYSwgcGF5bG9hZCkge1xuICAgICAgICB2YXIgY29tbWl0ID0gX2EuY29tbWl0O1xuICAgICAgICBjb21taXQobXV0YXRpb25fMS5NdXRhdGlvblR5cGVzLlVQREFURV9QVUJMSVNISU5HX0ZPUk0sIHBheWxvYWQpO1xuICAgIH0sXG4gICAgX2FbQWN0aW9uVHlwZXMuVVBEQVRFX1BVQkxJU0hFUl9JTkZPXSA9IGZ1bmN0aW9uIChfYSwgcGF5bG9hZCkge1xuICAgICAgICB2YXIgY29tbWl0ID0gX2EuY29tbWl0O1xuICAgICAgICBjb21taXQobXV0YXRpb25fMS5NdXRhdGlvblR5cGVzLlVQREFURV9QVUJMSVNIRVJfSU5GTywgcGF5bG9hZCk7XG4gICAgfSxcbiAgICBfYVtBY3Rpb25UeXBlcy5VUERBVEVfUFVCTElTSElOR19FUlJPUl0gPSBmdW5jdGlvbiAoX2EsIHBheWxvYWQpIHtcbiAgICAgICAgdmFyIGNvbW1pdCA9IF9hLmNvbW1pdDtcbiAgICAgICAgY29tbWl0KG11dGF0aW9uXzEuTXV0YXRpb25UeXBlcy5VUERBVEVfUFVCTElTSElOR19FUlJPUiwgcGF5bG9hZCk7XG4gICAgfSxcbiAgICBfYVtBY3Rpb25UeXBlcy5VUERBVEVfREVGQVVMVF9WQUxVRVNdID0gZnVuY3Rpb24gKF9hLCBwYXlsb2FkKSB7XG4gICAgICAgIHZhciBjb21taXQgPSBfYS5jb21taXQ7XG4gICAgICAgIGNvbW1pdChtdXRhdGlvbl8xLk11dGF0aW9uVHlwZXMuVVBEQVRFX0RFRkFVTFRfVkFMVUVTLCBwYXlsb2FkKTtcbiAgICB9LFxuICAgIF9hW0FjdGlvblR5cGVzLlVQREFURV9ERUZBVUxUX0VSUk9SXSA9IGZ1bmN0aW9uIChfYSwgcGF5bG9hZCkge1xuICAgICAgICB2YXIgY29tbWl0ID0gX2EuY29tbWl0O1xuICAgICAgICBjb21taXQobXV0YXRpb25fMS5NdXRhdGlvblR5cGVzLlVQREFURV9ERUZBVUxUX0VSUk9SLCBwYXlsb2FkKTtcbiAgICB9LFxuICAgIF9hKTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9hO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5tdXRhdGlvbnMgPSBleHBvcnRzLk11dGF0aW9uVHlwZXMgPSB2b2lkIDA7XG52YXIgTXV0YXRpb25UeXBlcztcbihmdW5jdGlvbiAoTXV0YXRpb25UeXBlcykge1xuICAgIE11dGF0aW9uVHlwZXNbXCJVUERBVEVfUFVCTElTSElOR19GT1JNXCJdID0gXCJVUERBVEVfUFVCTElTSElOR19GT1JNXCI7XG4gICAgTXV0YXRpb25UeXBlc1tcIlVQREFURV9QVUJMSVNIRVJfSU5GT1wiXSA9IFwiVVBEQVRFX1BVQkxJU0hFUl9JTkZPXCI7XG4gICAgTXV0YXRpb25UeXBlc1tcIlVQREFURV9QVUJMSVNISU5HX0VSUk9SXCJdID0gXCJVUERBVEVfUFVCTElTSElOR19FUlJPUlwiO1xuICAgIE11dGF0aW9uVHlwZXNbXCJVUERBVEVfREVGQVVMVF9WQUxVRVNcIl0gPSBcIlVQREFURV9ERUZBVUxUX1ZBTFVFU1wiO1xuICAgIE11dGF0aW9uVHlwZXNbXCJVUERBVEVfREVGQVVMVF9FUlJPUlwiXSA9IFwiVVBEQVRFX0RFRkFVTFRfRVJST1JcIjtcbn0pKE11dGF0aW9uVHlwZXMgPSBleHBvcnRzLk11dGF0aW9uVHlwZXMgfHwgKGV4cG9ydHMuTXV0YXRpb25UeXBlcyA9IHt9KSk7XG5leHBvcnRzLm11dGF0aW9ucyA9IChfYSA9IHt9LFxuICAgIF9hW011dGF0aW9uVHlwZXMuVVBEQVRFX1BVQkxJU0hJTkdfRk9STV0gPSBmdW5jdGlvbiAoc3RhdGUsIHBheWxvYWQpIHtcbiAgICAgICAgc3RhdGUucHVibGlzaGluZ0Zvcm1bcGF5bG9hZC5rZXldID0gcGF5bG9hZC52YWx1ZTtcbiAgICB9LFxuICAgIF9hW011dGF0aW9uVHlwZXMuVVBEQVRFX1BVQkxJU0hFUl9JTkZPXSA9IGZ1bmN0aW9uIChzdGF0ZSwgcGF5bG9hZCkge1xuICAgICAgICBzdGF0ZS5wdWJsaXNoaW5nSW5mb1twYXlsb2FkLmtleV0gPSBwYXlsb2FkLnZhbHVlO1xuICAgIH0sXG4gICAgX2FbTXV0YXRpb25UeXBlcy5VUERBVEVfREVGQVVMVF9WQUxVRVNdID0gZnVuY3Rpb24gKHN0YXRlLCBwYXlsb2FkKSB7XG4gICAgICAgIHN0YXRlLmRlZmF1bHRGb3JtW3BheWxvYWQua2V5XSA9IHBheWxvYWQudmFsdWU7XG4gICAgfSxcbiAgICBfYVtNdXRhdGlvblR5cGVzLlVQREFURV9QVUJMSVNISU5HX0VSUk9SXSA9IGZ1bmN0aW9uIChzdGF0ZSwgcGF5bG9hZCkge1xuICAgICAgICBzdGF0ZS5wdWJsaXNoaW5nRXJyb3JbcGF5bG9hZC5rZXldID0gcGF5bG9hZC52YWx1ZTtcbiAgICB9LFxuICAgIF9hW011dGF0aW9uVHlwZXMuVVBEQVRFX0RFRkFVTFRfRVJST1JdID0gZnVuY3Rpb24gKHN0YXRlLCBwYXlsb2FkKSB7XG4gICAgICAgIHN0YXRlLmRlZmF1bHRFcnJvcltwYXlsb2FkLmtleV0gPSBwYXlsb2FkLnZhbHVlO1xuICAgIH0sXG4gICAgX2EpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnN0YXRlID0gdm9pZCAwO1xuZXhwb3J0cy5zdGF0ZSA9IHtcbiAgICBwdWJsaXNoaW5nRm9ybToge1xuICAgICAgICBwdWJsaXNoZXJfaWQ6ICcnLFxuICAgICAgICBhcGlfdG9rZW46ICcnLFxuICAgIH0sXG4gICAgcHVibGlzaGluZ0luZm86IHtcbiAgICAgICAgcHVibGlzaGVyX3ZlcmlmaWNhdGlvbjogZmFsc2UsXG4gICAgICAgIHRva2VuX3ZlcmlmaWNhdGlvbjogZmFsc2UsXG4gICAgICAgIGlzVmVyaWZpY2F0aW9uUmVxdWVzdGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIGRlZmF1bHRGb3JtOiB7XG4gICAgICAgIGRlZmF1bHRfY3VycmVuY3k6ICcnLFxuICAgICAgICBkZWZhdWx0X2xhbmd1YWdlOiAnJyxcbiAgICAgICAgaGllcmFyY2h5OiAnJyxcbiAgICAgICAgaHVtYW5pdGFyaWFuOiAnJyxcbiAgICAgICAgYnVkZ2V0X25vdF9wcm92aWRlZDogJydcbiAgICB9LFxuICAgIHB1Ymxpc2hpbmdFcnJvcjoge1xuICAgICAgICBhcGlfdG9rZW46ICcnLFxuICAgIH0sXG4gICAgZGVmYXVsdEVycm9yOiB7XG4gICAgICAgIGRlZmF1bHRfY3VycmVuY3k6ICcnLFxuICAgICAgICBkZWZhdWx0X2xhbmd1YWdlOiAnJyxcbiAgICAgICAgaGllcmFyY2h5OiAnJyxcbiAgICAgICAgaHVtYW5pdGFyaWFuOiAnJyxcbiAgICAgICAgYnVkZ2V0X25vdF9wcm92aWRlZDogJydcbiAgICB9LFxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZXBvcnRpbmdPcmdhbml6YXRpb24gPSBleHBvcnRzLlBsYW5uZWREaXNidXJzZW1lbnQgPSBleHBvcnRzLkh1bWFuaXRhcmlhblNjb3BlID0gZXhwb3J0cy5UYWcgPSBleHBvcnRzLlBvbGljeU1hcmtlciA9IGV4cG9ydHMuUmVsYXRlZEFjdGl2aXR5ID0gZXhwb3J0cy5Db25kaXRpb25zID0gZXhwb3J0cy5MZWdhY3lEYXRhID0gZXhwb3J0cy5TZWN0b3IgPSBleHBvcnRzLkxvY2F0aW9uID0gZXhwb3J0cy5UcmFuc2FjdGlvbnMgPSBleHBvcnRzLlJlY2lwaWVudFJlZ2lvbiA9IGV4cG9ydHMuUmVjaXBpZW50Q291bnRyeSA9IGV4cG9ydHMuUGFydGljaXBhdGluZ09yZyA9IGV4cG9ydHMuQ29udGFjdEluZm8gPSBleHBvcnRzLkFjdGl2aXR5RGF0ZSA9IGV4cG9ydHMuRGVzY3JpcHRpb24gPSBleHBvcnRzLlRpdGxlRWxlbWVudCA9IGV4cG9ydHMuT3RoZXJJZGVudGlmaWVyID0gZXhwb3J0cy5JYXRpSWRlbnRpZmllciA9IGV4cG9ydHMuUmVzdWx0ID0gdm9pZCAwO1xuLy8gUHJveHkgZXhwb3J0IGFsbCByZWxhdGVkIGNvbXBvbmVudHMuXG52YXIgUmVzdWx0X3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVzdWx0LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlc3VsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFJlc3VsdF92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBJYXRpSWRlbnRpZmllcl92dWVfMSA9IHJlcXVpcmUoXCIuL0lhdGlJZGVudGlmaWVyLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIklhdGlJZGVudGlmaWVyXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoSWF0aUlkZW50aWZpZXJfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgT3RoZXJJZGVudGlmaWVyX3Z1ZV8xID0gcmVxdWlyZShcIi4vT3RoZXJJZGVudGlmaWVyLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk90aGVySWRlbnRpZmllclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KE90aGVySWRlbnRpZmllcl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBUaXRsZV92dWVfMSA9IHJlcXVpcmUoXCIuL1RpdGxlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRpdGxlRWxlbWVudFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRpdGxlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIERlc2NyaXB0aW9uX3Z1ZV8xID0gcmVxdWlyZShcIi4vRGVzY3JpcHRpb24udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGVzY3JpcHRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChEZXNjcmlwdGlvbl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBBY3Rpdml0eURhdGVfdnVlXzEgPSByZXF1aXJlKFwiLi9BY3Rpdml0eURhdGUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQWN0aXZpdHlEYXRlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoQWN0aXZpdHlEYXRlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIENvbnRhY3RJbmZvX3Z1ZV8xID0gcmVxdWlyZShcIi4vQ29udGFjdEluZm8udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ29udGFjdEluZm9cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChDb250YWN0SW5mb192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBQYXJ0aWNpcGF0aW5nT3JnX3Z1ZV8xID0gcmVxdWlyZShcIi4vUGFydGljaXBhdGluZ09yZy52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJQYXJ0aWNpcGF0aW5nT3JnXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUGFydGljaXBhdGluZ09yZ192dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWNpcGllbnRDb3VudHJ5X3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVjaXBpZW50Q291bnRyeS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWNpcGllbnRDb3VudHJ5XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVjaXBpZW50Q291bnRyeV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWNpcGllbnRSZWdpb25fdnVlXzEgPSByZXF1aXJlKFwiLi9SZWNpcGllbnRSZWdpb24udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVjaXBpZW50UmVnaW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVjaXBpZW50UmVnaW9uX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFRyYW5zYWN0aW9uc192dWVfMSA9IHJlcXVpcmUoXCIuL1RyYW5zYWN0aW9ucy52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUcmFuc2FjdGlvbnNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChUcmFuc2FjdGlvbnNfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgTG9jYXRpb25fdnVlXzEgPSByZXF1aXJlKFwiLi9Mb2NhdGlvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJMb2NhdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KExvY2F0aW9uX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFNlY3Rvcl92dWVfMSA9IHJlcXVpcmUoXCIuL1NlY3Rvci52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJTZWN0b3JcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChTZWN0b3JfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgTGVnYWN5RGF0YV92dWVfMSA9IHJlcXVpcmUoXCIuL0xlZ2FjeURhdGEudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTGVnYWN5RGF0YVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KExlZ2FjeURhdGFfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgQ29uZGl0aW9uc192dWVfMSA9IHJlcXVpcmUoXCIuL0NvbmRpdGlvbnMudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ29uZGl0aW9uc1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KENvbmRpdGlvbnNfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgUmVsYXRlZEFjdGl2aXR5X3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVsYXRlZEFjdGl2aXR5LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlbGF0ZWRBY3Rpdml0eVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFJlbGF0ZWRBY3Rpdml0eV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBQb2xpY3lNYXJrZXJfdnVlXzEgPSByZXF1aXJlKFwiLi9Qb2xpY3lNYXJrZXIudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUG9saWN5TWFya2VyXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUG9saWN5TWFya2VyX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFRhZ192dWVfMSA9IHJlcXVpcmUoXCIuL1RhZy52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUYWdcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChUYWdfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgSHVtYW5pdGFyaWFuU2NvcGVfdnVlXzEgPSByZXF1aXJlKFwiLi9IdW1hbml0YXJpYW5TY29wZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJIdW1hbml0YXJpYW5TY29wZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KEh1bWFuaXRhcmlhblNjb3BlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFBsYW5uZWREaXNidXJzZW1lbnRfdnVlXzEgPSByZXF1aXJlKFwiLi9QbGFubmVkRGlzYnVyc2VtZW50LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBsYW5uZWREaXNidXJzZW1lbnRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChQbGFubmVkRGlzYnVyc2VtZW50X3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlcG9ydGluZ09yZ2FuaXphdGlvbl92dWVfMSA9IHJlcXVpcmUoXCIuL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZXBvcnRpbmdPcmdhbml6YXRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZXBvcnRpbmdPcmdhbml6YXRpb25fdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUGVyaW9kID0gZXhwb3J0cy5CYXNlbGluZSA9IGV4cG9ydHMuRG9jdW1lbnRMaW5rID0gZXhwb3J0cy5SZWZlcmVuY2UgPSBleHBvcnRzLkRlc2NyaXB0aW9uID0gZXhwb3J0cy5BZ2dyZWdhdGlvblN0YXR1cyA9IGV4cG9ydHMuQXNjZW5kaW5nID0gZXhwb3J0cy5NZWFzdXJlID0gZXhwb3J0cy5UaXRsZUVsZW1lbnQgPSB2b2lkIDA7XG4vLyBQcm94eSBleHBvcnQgYWxsIHJlbGF0ZWQgY29tcG9uZW50cy5cbnZhciBUaXRsZV92dWVfMSA9IHJlcXVpcmUoXCIuL1RpdGxlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRpdGxlRWxlbWVudFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRpdGxlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIE1lYXN1cmVfdnVlXzEgPSByZXF1aXJlKFwiLi9NZWFzdXJlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk1lYXN1cmVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChNZWFzdXJlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIEluZGljYXRvckFzY2VuZGluZ192dWVfMSA9IHJlcXVpcmUoXCIuL0luZGljYXRvckFzY2VuZGluZy52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBc2NlbmRpbmdcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChJbmRpY2F0b3JBc2NlbmRpbmdfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgQWdncmVnYXRpb25TdGF0dXNfdnVlXzEgPSByZXF1aXJlKFwiLi9BZ2dyZWdhdGlvblN0YXR1cy52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBZ2dyZWdhdGlvblN0YXR1c1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KEFnZ3JlZ2F0aW9uU3RhdHVzX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIERlc2NyaXB0aW9uX3Z1ZV8xID0gcmVxdWlyZShcIi4vRGVzY3JpcHRpb24udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGVzY3JpcHRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChEZXNjcmlwdGlvbl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWZlcmVuY2VfdnVlXzEgPSByZXF1aXJlKFwiLi9SZWZlcmVuY2UudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVmZXJlbmNlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVmZXJlbmNlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIERvY3VtZW50TGlua192dWVfMSA9IHJlcXVpcmUoXCIuL0RvY3VtZW50TGluay52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEb2N1bWVudExpbmtcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChEb2N1bWVudExpbmtfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgQmFzZWxpbmVfdnVlXzEgPSByZXF1aXJlKFwiLi9CYXNlbGluZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCYXNlbGluZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KEJhc2VsaW5lX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFBlcmlvZF92dWVfMSA9IHJlcXVpcmUoXCIuL1BlcmlvZC52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJQZXJpb2RcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChQZXJpb2RfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWN0dWFsVmFsdWUgPSBleHBvcnRzLlRhcmdldFZhbHVlID0gdm9pZCAwO1xudmFyIFRhcmdldFZhbHVlX3Z1ZV8xID0gcmVxdWlyZShcIi4vVGFyZ2V0VmFsdWUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVGFyZ2V0VmFsdWVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChUYXJnZXRWYWx1ZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBBY3R1YWxWYWx1ZV92dWVfMSA9IHJlcXVpcmUoXCIuL0FjdHVhbFZhbHVlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkFjdHVhbFZhbHVlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoQWN0dWFsVmFsdWVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuSW5kaWNhdG9yID0gZXhwb3J0cy5SZXN1bHRUeXBlID0gZXhwb3J0cy5SZWZlcmVuY2UgPSBleHBvcnRzLkRvY3VtZW50TGluayA9IGV4cG9ydHMuVGl0bGVEZXNjcmlwdGlvbiA9IHZvaWQgMDtcbi8vIFByb3h5IGV4cG9ydCBhbGwgcmVsYXRlZCBjb21wb25lbnRzLlxudmFyIFRpdGxlRGVzY3JpcHRpb25fdnVlXzEgPSByZXF1aXJlKFwiLi9UaXRsZURlc2NyaXB0aW9uLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRpdGxlRGVzY3JpcHRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChUaXRsZURlc2NyaXB0aW9uX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIERvY3VtZW50TGlua192dWVfMSA9IHJlcXVpcmUoXCIuL0RvY3VtZW50TGluay52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEb2N1bWVudExpbmtcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChEb2N1bWVudExpbmtfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgUmVmZXJlbmNlX3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVmZXJlbmNlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlZmVyZW5jZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFJlZmVyZW5jZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZXN1bHRUeXBlX3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVzdWx0VHlwZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZXN1bHRUeXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVzdWx0VHlwZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBJbmRpY2F0b3JfdnVlXzEgPSByZXF1aXJlKFwiLi9JbmRpY2F0b3IudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSW5kaWNhdG9yXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoSW5kaWNhdG9yX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRpZWRTdGF0dXMgPSBleHBvcnRzLkZpbmFuY2VUeXBlID0gZXhwb3J0cy5GbG93VHlwZSA9IGV4cG9ydHMuUmVjaXBpZW50UmVnaW9uID0gZXhwb3J0cy5SZWNpcGllbnRDb3VudHJ5ID0gZXhwb3J0cy5TZWN0b3IgPSBleHBvcnRzLkRpc2J1cnNlbWVudENoYW5uZWwgPSBleHBvcnRzLlJlY2VpdmVyT3JnYW5pemF0aW9uID0gZXhwb3J0cy5Qcm92aWRlck9yZ2FuaXphdGlvbiA9IGV4cG9ydHMuVmFsdWUgPSBleHBvcnRzLlRyYW5zYWN0aW9uRGF0ZSA9IGV4cG9ydHMuVHJhbnNhY3Rpb25UeXBlID0gZXhwb3J0cy5BaWRUeXBlID0gZXhwb3J0cy5EZXNjcmlwdGlvbiA9IHZvaWQgMDtcbi8vIFByb3h5IGV4cG9ydCBhbGwgcmVsYXRlZCBjb21wb25lbnRzLlxudmFyIERlc2NyaXB0aW9uX3Z1ZV8xID0gcmVxdWlyZShcIi4vRGVzY3JpcHRpb24udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGVzY3JpcHRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChEZXNjcmlwdGlvbl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBBaWRUeXBlX3Z1ZV8xID0gcmVxdWlyZShcIi4vQWlkVHlwZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBaWRUeXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoQWlkVHlwZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBUcmFuc2FjdGlvblR5cGVfdnVlXzEgPSByZXF1aXJlKFwiLi9UcmFuc2FjdGlvblR5cGUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVHJhbnNhY3Rpb25UeXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoVHJhbnNhY3Rpb25UeXBlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFRyYW5zYWN0aW9uRGF0ZV92dWVfMSA9IHJlcXVpcmUoXCIuL1RyYW5zYWN0aW9uRGF0ZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUcmFuc2FjdGlvbkRhdGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChUcmFuc2FjdGlvbkRhdGVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgVmFsdWVfdnVlXzEgPSByZXF1aXJlKFwiLi9WYWx1ZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJWYWx1ZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFZhbHVlX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFByb3ZpZGVyT3JnYW5pemF0aW9uX3Z1ZV8xID0gcmVxdWlyZShcIi4vUHJvdmlkZXJPcmdhbml6YXRpb24udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUHJvdmlkZXJPcmdhbml6YXRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChQcm92aWRlck9yZ2FuaXphdGlvbl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWNlaXZlck9yZ2FuaXphdGlvbl92dWVfMSA9IHJlcXVpcmUoXCIuL1JlY2VpdmVyT3JnYW5pemF0aW9uLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlY2VpdmVyT3JnYW5pemF0aW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVjZWl2ZXJPcmdhbml6YXRpb25fdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgRGlzYnVyc2VtZW50Q2hhbm5lbF92dWVfMSA9IHJlcXVpcmUoXCIuL0Rpc2J1cnNlbWVudENoYW5uZWwudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGlzYnVyc2VtZW50Q2hhbm5lbFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KERpc2J1cnNlbWVudENoYW5uZWxfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgU2VjdG9yX3Z1ZV8xID0gcmVxdWlyZShcIi4vU2VjdG9yLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlNlY3RvclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFNlY3Rvcl92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWNpcGllbnRDb3VudHJ5X3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVjaXBpZW50Q291bnRyeS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWNpcGllbnRDb3VudHJ5XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVjaXBpZW50Q291bnRyeV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWNpcGllbnRSZWdpb25fdnVlXzEgPSByZXF1aXJlKFwiLi9SZWNpcGllbnRSZWdpb24udnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVjaXBpZW50UmVnaW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVjaXBpZW50UmVnaW9uX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIEZsb3dUeXBlX3Z1ZV8xID0gcmVxdWlyZShcIi4vRmxvd1R5cGUudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRmxvd1R5cGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChGbG93VHlwZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBGaW5hbmNlVHlwZV92dWVfMSA9IHJlcXVpcmUoXCIuL0ZpbmFuY2VUeXBlLnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkZpbmFuY2VUeXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoRmluYW5jZVR5cGVfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgVGllZFN0YXR1c192dWVfMSA9IHJlcXVpcmUoXCIuL1RpZWRTdGF0dXMudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVGllZFN0YXR1c1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRpZWRTdGF0dXNfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRG9jdW1lbnRMaW5rID0gZXhwb3J0cy5Ub3RhbEV4cGVuZGl0dXJlID0gZXhwb3J0cy5SZWNpcGllbnRDb3VudHJ5QnVkZ2V0ID0gZXhwb3J0cy5SZXBvcnRpbmdSZWdpb25CdWRnZXQgPSBleHBvcnRzLlJlcG9ydGluZ09yZ0J1ZGdldCA9IGV4cG9ydHMuVG90YWxCdWRnZXQgPSBleHBvcnRzLlJlcG9ydGluZ09yZ2FuaXNhdGlvbiA9IHZvaWQgMDtcbi8vIFByb3h5IGV4cG9ydCBhbGwgcmVsYXRlZCBjb21wb25lbnRzLlxudmFyIFJlcG9ydGluZ09yZ2FuaXNhdGlvbl92dWVfMSA9IHJlcXVpcmUoXCIuL1JlcG9ydGluZ09yZ2FuaXNhdGlvbi52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZXBvcnRpbmdPcmdhbmlzYXRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZXBvcnRpbmdPcmdhbmlzYXRpb25fdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgVG90YWxCdWRnZXRfdnVlXzEgPSByZXF1aXJlKFwiLi9Ub3RhbEJ1ZGdldC52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUb3RhbEJ1ZGdldFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFRvdGFsQnVkZ2V0X3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xudmFyIFJlcG9ydGluZ09yZ0J1ZGdldF92dWVfMSA9IHJlcXVpcmUoXCIuL1JlcG9ydGluZ09yZ0J1ZGdldC52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZXBvcnRpbmdPcmdCdWRnZXRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9faW1wb3J0RGVmYXVsdChSZXBvcnRpbmdPcmdCdWRnZXRfdnVlXzEpLmRlZmF1bHQ7IH0gfSk7XG52YXIgUmVwb3J0aW5nUmVnaW9uQnVkZ2V0X3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVwb3J0aW5nUmVnaW9uQnVkZ2V0LnZ1ZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlcG9ydGluZ1JlZ2lvbkJ1ZGdldFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX19pbXBvcnREZWZhdWx0KFJlcG9ydGluZ1JlZ2lvbkJ1ZGdldF92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBSZWNpcGllbnRDb3VudHJ5QnVkZ2V0X3Z1ZV8xID0gcmVxdWlyZShcIi4vUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWNpcGllbnRDb3VudHJ5QnVkZ2V0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoUmVjaXBpZW50Q291bnRyeUJ1ZGdldF92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBUb3RhbEV4cGVuZGl0dXJlX3Z1ZV8xID0gcmVxdWlyZShcIi4vVG90YWxFeHBlbmRpdHVyZS52dWVcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUb3RhbEV4cGVuZGl0dXJlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoVG90YWxFeHBlbmRpdHVyZV92dWVfMSkuZGVmYXVsdDsgfSB9KTtcbnZhciBEb2N1bWVudExpbmtfdnVlXzEgPSByZXF1aXJlKFwiLi9Eb2N1bWVudExpbmsudnVlXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRG9jdW1lbnRMaW5rXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQoRG9jdW1lbnRMaW5rX3Z1ZV8xKS5kZWZhdWx0OyB9IH0pO1xuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic21vb3RoIC1tYi03IGJnLVsjZTVlNWU1XSBweC01IHB5LTcgc206cHgtMTAgc206cHktMTQgbWQ6LW1iLTIwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm14LWF1dG8gbWF4LXctWzcwMHB4XVwiPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJyb3VuZGVkIGJnLXdoaXRlIHB5LTQgc2hhZG93LXRleHRib3ggc206cHktOFwiPlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInB5LTQgcHgtNiBzbTpweS02IHNtOnB4LTEyXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwibXktMiB0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1ibHVlY29yYWxcIj5cbiAgICAgICAgICAgIHt7IGxhbmd1YWdlLmFib3V0LndoYXRfaXNfaWF0aV9wdWJsaXNoZXJfaGVhZGVyIH19XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8cCBjbGFzcz1cIm10LTQgdGV4dC1iYXNlXCI+XG4gICAgICAgICAgICB7eyBsYW5ndWFnZS5hYm91dC53aGF0X2lzX2lhdGlfcHVibGlzaGVyX2Rlc2NyaXB0aW9uLm9uZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInB5LTQgcHgtNiBzbTpweS02IHNtOnB4LTEyXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwibXktMiB0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1ibHVlY29yYWxcIj5cbiAgICAgICAgICAgIHt7IGxhbmd1YWdlLmFib3V0LnVzZV9pYXRpX3B1Ymxpc2hlcl90b19oZWFkZXIgfX1cbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDx1bCBjbGFzcz1cIm10LTQgbWwtNCBsaXN0LWRpc2MgdGV4dC1iYXNlIHRleHQtYmx1ZWNvcmFsXCI+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJsYWNrXCJcbiAgICAgICAgICAgICAgPnt7IGxhbmd1YWdlLmFib3V0LnVzZV9pYXRpX3B1Ymxpc2hlcl90b19kZXNjcmlwdGlvbi5vbmUubGlzdF9pdGVtcy5vbmUgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICA+e3sgbGFuZ3VhZ2UuYWJvdXQudXNlX2lhdGlfcHVibGlzaGVyX3RvX2Rlc2NyaXB0aW9uLm9uZS5saXN0X2l0ZW1zLnR3byB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1iYXNlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgICAgID57eyBsYW5ndWFnZS5hYm91dC51c2VfaWF0aV9wdWJsaXNoZXJfdG9fZGVzY3JpcHRpb24ub25lLmxpc3RfaXRlbXMudGhyZWUgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICA+e3sgbGFuZ3VhZ2UuYWJvdXQudXNlX2lhdGlfcHVibGlzaGVyX3RvX2Rlc2NyaXB0aW9uLm9uZS5saXN0X2l0ZW1zLmZvdXIgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICA+e3sgbGFuZ3VhZ2UuYWJvdXQudXNlX2lhdGlfcHVibGlzaGVyX3RvX2Rlc2NyaXB0aW9uLm9uZS5saXN0X2l0ZW1zLmZpdmUgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxwIGNsYXNzPVwibXQtNCB0ZXh0LWJhc2VcIj5cbiAgICAgICAgICAgIHt7IGxhbmd1YWdlLmFib3V0LnVzZV9pYXRpX3B1Ymxpc2hlcl90b19kZXNjcmlwdGlvbi50d28gfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtdC00IHRleHQtYmFzZVwiPlxuICAgICAgICAgICAgPHNwYW4gdi1odG1sPWxhbmd1YWdlLmFib3V0LnVzZV9pYXRpX3B1Ymxpc2hlcl90b19kZXNjcmlwdGlvbi50aHJlZT48L3NwYW4+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICAgIDxhcnRpY2xlIGNsYXNzPVwib3VuZGVkIHB5LTQgcHgtNiBzbTpweS02IHNtOnB4LTEyXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwibXktMiB0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1ibHVlY29yYWxcIj5cbiAgICAgICAgICAgIHt7IGxhbmd1YWdlLmFib3V0LmRldmVsb3BtZW50X29mX2lhdGlfaGVhZGVyIH19XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8cCBjbGFzcz1cIm10LTQgdGV4dC1iYXNlXCI+XG4gICAgICAgICAgICA8c3BhbiB2LWh0bWw9bGFuZ3VhZ2UuYWJvdXQuZGV2ZWxvcG1lbnRfb2ZfaWF0aV9kZXNjcmlwdGlvbi5vbmU+PC9zcGFuPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0IGxhbmc9XCJ0c1wiPjwvc2NyaXB0PlxuPHNjcmlwdD5cbmltcG9ydCB7ZGVmaW5lQ29tcG9uZW50fSBmcm9tIFwidnVlXCI7XG5cbiAgZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29tcG9uZW50KHtcbiAgICBzZXR1cCgpIHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlID0gd2luZG93W1wiZ2xvYmFsTGFuZ1wiXTtcbiAgICAgIHJldHVybiB7bGFuZ3VhZ2V9O1xuICAgIH1cbn0pO1xuPC9zY3JpcHQ+XG4iLCI8dGVtcGxhdGU+XG4gIDxzZWN0aW9uIGNsYXNzPVwibWFpbiBtdC0xMCBzbTpteC0xMCB4bDpteC0yNCB4bDpweC0xXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtYWluX19jb250YWluZXIgcm91bmRlZC1sZyBiZy1ibHVlY29yYWwgcGItOCBzbTptYi0xMCBtZDptYi0yMCBtZDpmbGV4IG1kOmJnLW5vbmUgbWQ6cGItMFwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxlZnQgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctYmx1ZWNvcmFsIHB4LTMgcHQtNSBwYi03MiB0ZXh0LXdoaXRlIHNtOnJvdW5kZWQtci1sZyBzbTpyb3VuZGVkLWwtbGcgc206cHgtNSBzbTpwdC0xMCBtZDpiYXNpcy0yLzQgbWQ6cm91bmRlZC1yLW5vbmUgbWQ6cGItMTYgbGc6cHQtNDQgbGc6cGItNDQgeGw6cHgtMjRcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdF9fY29udGFpbmVyIHJvdW5kZWQtbGcgcC01IHNtOnAtMTBcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxlZnRfX3RpdGxlIGZvbnQtYm9sZFwiPnt7IGxhbmd1YWdlLmhvbWUuaWF0aV9wdWJsaXNoaW5nX3Rvb2xfaGVhZGVyIH19PC9zcGFuPlxuICAgICAgICAgIDxwIGNsYXNzPVwicHQtMiBzbTpwdC02IHNtOnBiLThcIj5cbiAgICAgICAgICAgIHt7IGxhbmd1YWdlLmhvbWUuaWF0aV9wdWJsaXNoaW5nX3Rvb2xfc2VjdGlvbi53ZWxjb21lX3RleHQgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggZmxleC13cmFwXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgcGFnZUNvbnRlbnQgPT09IFwiSm9pbiBOb3dcIlxuICAgICAgICAgICAgICAgICAgPyBsYW5ndWFnZS5ob21lLmlhdGlfcHVibGlzaGluZ190b29sX3NlY3Rpb24uaGF2ZW50X3JlZ2lzdGVyZWRfbGFiZWxcbiAgICAgICAgICAgICAgICAgIDogbGFuZ3VhZ2UuaG9tZS5pYXRpX3B1Ymxpc2hpbmdfdG9vbF9zZWN0aW9uLmFscmVhZHlfaGF2ZV9hY2NvdW50X2xhYmVsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTEgYm9yZGVyLWItMiBib3JkZXItYi10cmFuc3BhcmVudCB0ZXh0LWJhc2UgdGV4dC10dXJxdW9pc2UgaG92ZXI6Ym9yZGVyLWItMiBob3Zlcjpib3JkZXItYi10dXJxdW9pc2VcIlxuICAgICAgICAgICAgICAgIEBjbGljaz1cInRvZ2dsZVBhZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgcGFnZUNvbnRlbnQgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxTaWduSW4gdi1pZj1cInBhZ2VDb250ZW50ID09PSAnSm9pbiBOb3cnXCIgOm1lc3NhZ2U9XCJtZXNzYWdlXCIgLz5cbiAgICAgIDxKb2luTm93IHYtZWxzZSAvPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IHsgZGVmaW5lQ29tcG9uZW50LCByZWYgfSBmcm9tICd2dWUnO1xuaW1wb3J0IFNpZ25JbiBmcm9tICcuL3BhcnRpYWxzL1NpZ25Jbi52dWUnO1xuaW1wb3J0IEpvaW5Ob3cgZnJvbSAnLi9wYXJ0aWFscy9Kb2luTm93LnZ1ZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbXBvbmVudCh7XG4gIGNvbXBvbmVudHM6IHtcbiAgICBKb2luTm93LFxuICAgIFNpZ25JbixcbiAgfSxcbiAgcHJvcHM6IHtcbiAgICBwYWdlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIG1lc3NhZ2U6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIHNldHVwKHByb3BzKSB7XG4gICAgY29uc3QgcGFnZUNvbnRlbnQgPSByZWYocHJvcHMucGFnZSA9PT0gJ3NpZ25pbicgPyAnSm9pbiBOb3cnIDogJ1NpZ24gSW4nKTtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHdpbmRvd1tcImdsb2JhbExhbmdcIl07XG5cbiAgICBmdW5jdGlvbiB0b2dnbGVQYWdlKCkge1xuICAgICAgcGFnZUNvbnRlbnQudmFsdWUgPVxuICAgICAgICBwYWdlQ29udGVudC52YWx1ZSA9PT0gJ0pvaW4gTm93JyA/ICdTaWduIEluJyA6ICdKb2luIE5vdyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VDb250ZW50LFxuICAgICAgdG9nZ2xlUGFnZSxcbiAgICAgIGxhbmd1YWdlXG4gICAgfTtcbiAgfSxcbn0pO1xuPC9zY3JpcHQ+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJzaGltbWVyX19ibG9ja1wiIHN0eWxlPVwibWF4LXdpZHRoOiA1MTVweFwiPjwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuLnNoaW1tZXJfX2Jsb2NrIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24tbmFtZTogcGxhY2VIb2xkZXJTaGltbWVyO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIGFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZWRlZGVkIDE0LjM2JSwgI2Q3ZDZkNiA1Ni4yOSUsICNlZGVkZWQgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMjQ0cHggMTA0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxOXB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAzcHggNnB4IDNweCAwcHg7XG59XG5cbkBrZXlmcmFtZXMgcGxhY2VIb2xkZXJTaGltbWVyIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMCUgLSAzMDBweCkgMDtcbiAgfVxuXG4gIDIwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygwJSAtIDMwMHB4KSAwO1xuICB9XG5cbiAgODAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgKyAzMDBweCkgMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSArIDMwMHB4KSAwO1xuICB9XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwibXQtMTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmVzZXQgdGV4dC1jZW50ZXJcIj5cbiAgICAgIDxoMj57eyBsYW5ndWFnZS5wYXNzd29yZF9yZWNvdmVyeS5wYXNzd29yZF9yZWNvdmVyeV9oZWFkZXIgfX08L2gyPlxuICAgICAgPHAgY2xhc3M9XCJtYi01XCI+XG4gICAgICAgIHt7IGxhbmd1YWdlLnBhc3N3b3JkX3JlY292ZXJ5LnlvdXJfZW1haWxfaGFzX2JlZW5fc2VudF93aXRoX2xhYmVsIH19XG4gICAgICA8L3A+XG4gICAgICA8c3ZnLXZ1ZSBjbGFzcz1cInZlcmlmaWNhdGlvbiBtLWF1dG9cIiBpY29uPVwiaWMtdmVyaWZpY2F0aW9uXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuYWN0aXZpdHlfX2hlYWRlcltkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIHRvcDogMHB4O1xcbiAgei1pbmRleDogMTAwO1xcbn1cXG4uYWN0aXZpdHlfX2hlYWRlciBuYXZbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uYWN0aXZpdHlfX2hlYWRlciBuYXYgYVtkYXRhLXYtNmZlNTkwNTVdOmhvdmVyIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuLmFjdGl2aXR5X19oZWFkZXIgbmF2IHVsW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzc1cHgpIHtcXG4uYWN0aXZpdHlfX2hlYWRlciAuYWRkLWJ0bltkYXRhLXYtNmZlNTkwNTVdIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG59XFxufVxcbi5hY3Rpdml0eV9faGVhZGVyIC51c2VyLW5hdltkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4udG9hc3RbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiA1MCU7XFxuICB6LWluZGV4OiA1MDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd25bZGF0YS12LTZmZTU5MDU1XSB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMC43NXJlbTtcXG4gIHotaW5kZXg6IDIwO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS13aGl0ZSksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbiAgb3BhY2l0eTogMDtcXG4gIC0tdHctc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMHB4IDRweCA0MHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5wcm9maWxlX19kcm9wZG93bltkYXRhLXYtNmZlNTkwNTVdIHtcXG4gICAgcmlnaHQ6IDIuNXJlbTtcXG59XFxufVxcbi5wcm9maWxlX19kcm9wZG93bltkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHRvcDogNTBweDtcXG4gIHdpZHRoOiAyNjVweDtcXG4gIGJveC1zaGFkb3c6IDRweCA0cHggNDBweCByZ2JhKDAsIDUwLCA3NiwgMC4yKTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcXG4ucHJvZmlsZV9fZHJvcGRvd25bZGF0YS12LTZmZTU5MDU1XSB7XFxuICAgIHdpZHRoOiAyMjBweDtcXG59XFxufVxcbi5wcm9maWxlX19kcm9wZG93biBsaVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24gbGlbZGF0YS12LTZmZTU5MDU1XSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS14LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMC43NXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMC43NXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpKTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duIGxpW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgcGFkZGluZzogMC43NXJlbTtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnByb2ZpbGVfX2Ryb3Bkb3duIGxpW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgICBwYWRkaW5nOiAxcmVtO1xcbn1cXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duIGxpIGFbZGF0YS12LTZmZTU5MDU1XTpob3ZlciB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24gbGkgLnVzZXItcHJvZmlsZVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIGZvbnQtc2l6ZTogMjZweDtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duIC5kcm9wZG93bl9fbGlzdFtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tbi0xMCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duIC5kcm9wZG93bl9fbGlzdFtkYXRhLXYtNmZlNTkwNTVdOmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tbi0yMCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tYmx1ZWNvcmFsKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbi5wcm9maWxlX19kcm9wZG93biAuZHJvcGRvd25fX2xpc3QgYVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24tLXRvdWNoW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcmlnaHQ6IDEuMjVyZW07XFxuICB6LWluZGV4OiAyMDtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwpLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG4gIC0tdHctc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMHB4IDRweCA0MHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XFxuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxuICB0b3A6IDUwcHg7XFxuICB3aWR0aDogMjY1cHg7XFxuICBib3gtc2hhZG93OiA0cHggNHB4IDQwcHggcmdiYSgwLCA1MCwgNzYsIDAuMik7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaFtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gICAgd2lkdGg6IDIyMHB4O1xcbn1cXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCBsaVtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24tLXRvdWNoIGxpW2RhdGEtdi02ZmU1OTA1NV0gPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAuNzVyZW0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKTtcXG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAuNzVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSk7XFxufVxcbi5wcm9maWxlX19kcm9wZG93bi0tdG91Y2ggbGlbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBwYWRkaW5nOiAwLjc1cmVtO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4ucHJvZmlsZV9fZHJvcGRvd24tLXRvdWNoIGxpW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgICBwYWRkaW5nOiAxcmVtO1xcbn1cXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCBsaSBhW2RhdGEtdi02ZmU1OTA1NV06aG92ZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwpLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCBsaSAudXNlci1wcm9maWxlW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgZm9udC1zaXplOiAyNnB4O1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24tLXRvdWNoIC5kcm9wZG93bl9fbGlzdFtkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tbi0xMCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCAuZHJvcGRvd25fX2xpc3RbZGF0YS12LTZmZTU5MDU1XTpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLW4tMjApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24tLXRvdWNoIC5kcm9wZG93bl9fbGlzdCBhW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XFxufVxcbi5kcm9wZG93bi1idG46aG92ZXIgLnByb2ZpbGVfX2Ryb3Bkb3duW2RhdGEtdi02ZmU1OTA1NV0sIFxcbi5kcm9wZG93bi1idG46YWN0aXZlIC5wcm9maWxlX19kcm9wZG93bltkYXRhLXYtNmZlNTkwNTVdIHtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICBvcGFjaXR5OiAxO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xcbn1cXG4uZHJvcGRvd24tYnRuOmhvdmVyIC5kcm9wZG93bl9fYXJyb3dbZGF0YS12LTZmZTU5MDU1XSxcXG4uZHJvcGRvd24tYnRuOmFjdGl2ZSAuZHJvcGRvd25fX2Fycm93W2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG59XFxuLmFkZC1pbXBvcnRbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5hZGQtaW1wb3J0LWRyb3Bkb3duW2RhdGEtdi02ZmU1OTA1NV0ge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLmFkZC1pbXBvcnQ6aG92ZXIgLmFkZC1pbXBvcnQtZHJvcGRvd25bZGF0YS12LTZmZTU5MDU1XSB7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgb3BhY2l0eTogMTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG59XFxuLnNwaW5uZXJbZGF0YS12LTZmZTU5MDU1XSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDAuNzVyZW07XFxuICByaWdodDogMS43NXJlbTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4tNmZlNTkwNTUge1xcbnRvIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG59XFxufVxcbkBrZXlmcmFtZXMgc3Bpbi02ZmU1OTA1NSB7XFxudG8ge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbn1cXG59XFxuLnNwaW5uZXJbZGF0YS12LTZmZTU5MDU1XSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogc3Bpbi02ZmU1OTA1NSAxcyBsaW5lYXIgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi02ZmU1OTA1NSAxcyBsaW5lYXIgaW5maW5pdGU7XFxuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1uLTEwKSwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDAuMDU7XFxuICB3aWR0aDogMTVweDtcXG4gIGhlaWdodDogMTVweDtcXG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQWRtaW5IZWFkZXIudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUNBO0VBQ0UsZUFBQTtFQUNBLFlBQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtBQUFGO0FBRUU7RUFDRSxhQUFBO0FBQUo7QUFHTTtFQUFBLG9CQUFBO0VBQUEsaURBQUE7QUFBQTtBQUdBO0VBQUEsYUFBQTtBQUFBO0FBSUY7QUFERjtJQUVJLGFBQUE7QUFESjtBQUNGO0FBSUk7RUFBQSxhQUFBO0VBQUEsbUJBQUE7QUFBQTtBQUlGO0VBQUEsa0JBQUE7RUFBQSxTQUFBO0VBQUEsV0FBQTtFQUNBLGdDQUFBO0FBREE7QUFJQTtFQUFBLGtCQUFBO0VBQUEsa0JBQUE7RUFBQSxjQUFBO0VBQUEsV0FBQTtFQUFBLGtCQUFBO0VBQUEsMERBQUE7RUFBQSxnQkFBQTtFQUFBLG1CQUFBO0VBQUEsb0JBQUE7RUFBQSxvQkFBQTtFQUFBLHFEQUFBO0VBQUEsVUFBQTtFQUFBLDRDQUFBO0VBQUEsd0RBQUE7RUFBQSx1R0FBQTtFQUFBLDBCQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEsYUFBQTtBQUFBO0FBQUE7QUFERjtFQUVFLFNBQUE7RUFDQSxZQUFBO0VBQ0EsNkNBQUE7QUFBRjtBQUVFO0FBTkY7SUFPSSxZQUFBO0FBQ0Y7QUFDRjtBQUVJO0VBQUEsYUFBQTtFQUFBLG1CQUFBO0FBQUE7QUFBQTtFQUFBLHVCQUFBO0VBQUEsdURBQUE7RUFBQSxnRUFBQTtBQUFBO0FBQUE7RUFBQSxnQkFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLGFBQUE7QUFBQTtBQUFBO0FBRUU7RUFBQSxvQkFBQTtFQUFBLHFEQUFBO0FBQUE7QUFFRjtFQUNFLGVBQUE7QUFFTjtBQUVJO0VBQUEsa0JBQUE7RUFBQSx5REFBQTtBQUFBO0FBQUE7RUFBQSxrQkFBQTtFQUFBLHlEQUFBO0VBQUEsb0JBQUE7RUFBQSxxREFBQTtBQUFBO0FBRUU7RUFBQSwwQkFBQTtBQUFBO0FBS0o7RUFBQSxrQkFBQTtFQUFBLGNBQUE7RUFBQSxXQUFBO0VBQUEsa0JBQUE7RUFBQSwwREFBQTtFQUFBLGdCQUFBO0VBQUEsbUJBQUE7RUFBQSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEscURBQUE7RUFBQSw0Q0FBQTtFQUFBLHdEQUFBO0VBQUEsdUdBQUE7RUFBQSwwQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsNkNBQUE7QUFIQTtBQUtBO0FBTkY7SUFPSSxZQUFBO0FBRUY7QUFDRjtBQUNJO0VBQUEsYUFBQTtFQUFBLG1CQUFBO0FBQUE7QUFBQTtFQUFBLHVCQUFBO0VBQUEsdURBQUE7RUFBQSxnRUFBQTtBQUFBO0FBQUE7RUFBQSxnQkFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLGFBQUE7QUFBQTtBQUFBO0FBRUU7RUFBQSxvQkFBQTtFQUFBLHFEQUFBO0FBQUE7QUFFRjtFQUNFLGVBQUE7QUFHTjtBQUNJO0VBQUEsa0JBQUE7RUFBQSx5REFBQTtBQUFBO0FBQUE7RUFBQSxrQkFBQTtFQUFBLHlEQUFBO0VBQUEsb0JBQUE7RUFBQSxxREFBQTtBQUFBO0FBRUU7RUFBQSwwQkFBQTtBQUFBO0FBT0Y7O0VBQUEsbUJBQUE7RUFBQSxVQUFBO0VBQ0EsMkJBQUE7QUFEQTtBQUdGOztFQUNFLHlCQUFBO0FBRUo7QUFDQTtFQUNFLGVBQUE7QUFFRjtBQUFBO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0FBR0Y7QUFEQTtFQUNFLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBO0FBSUY7QUFBRTtFQUFBLGtCQUFBO0VBQUEsWUFBQTtFQUFBLGNBQUE7RUFBQSxxQkFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLHlCQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSx5QkFBQTtBQUFBO0FBQUE7QUFBQTtFQUFBLG1EQUFBO1VBQUEsMkNBQUE7RUFBQSxxQkFBQTtFQUFBLGlCQUFBO0VBQUEseURBQUE7RUFBQSx5QkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsdUJBQUE7QUFIQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4uYWN0aXZpdHlfX2hlYWRlciB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB3aWR0aDogMTAwdnc7XFxuICB0b3A6IDBweDtcXG4gIHotaW5kZXg6IDEwMDtcXG5cXG4gIG5hdiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuXFxuICAgIGE6aG92ZXIge1xcbiAgICAgIEBhcHBseSB0ZXh0LXdoaXRlO1xcbiAgICB9XFxuICAgIHVsIHtcXG4gICAgICBAYXBwbHkgZmxleDtcXG4gICAgfVxcbiAgfVxcbiAgLmFkZC1idG4ge1xcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNzVweCkge1xcbiAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIH1cXG4gIH1cXG4gIC51c2VyLW5hdiB7XFxuICAgIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlcjtcXG4gIH1cXG59XFxuLnRvYXN0IHtcXG4gIEBhcHBseSBhYnNvbHV0ZSAgbGVmdC0yLzQgei01MDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4ucHJvZmlsZV9fZHJvcGRvd24ge1xcbiAgQGFwcGx5IGludmlzaWJsZSBhYnNvbHV0ZSByaWdodC0zIHotMjAgYmctd2hpdGUgdGV4dC1sZWZ0IHRleHQtc20gdGV4dC1ibHVlY29yYWwgb3BhY2l0eS0wIHNoYWRvdy1kcm9wZG93biBkdXJhdGlvbi0zMDAgc206cmlnaHQtMTA7XFxuICB0b3A6IDUwcHg7XFxuICB3aWR0aDogMjY1cHg7XFxuICBib3gtc2hhZG93OiA0cHggNHB4IDQwcHggcmdiYSgwLCA1MCwgNzYsIDAuMik7XFxuXFxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xcbiAgICB3aWR0aDogMjIwcHg7XFxuICB9XFxuXFxuICBsaSB7XFxuICAgIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTMgcC0zIHNtOnAtNDtcXG4gICAgYTpob3ZlciB7XFxuICAgICAgQGFwcGx5IHRleHQtYmx1ZWNvcmFsO1xcbiAgICB9XFxuICAgIC51c2VyLXByb2ZpbGUge1xcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcXG4gICAgfVxcbiAgfVxcbiAgLmRyb3Bkb3duX19saXN0IHtcXG4gICAgQGFwcGx5IGJnLW4tMTAgaG92ZXI6Ymctbi0yMCBob3Zlcjp0ZXh0LWJsdWVjb3JhbDtcXG4gICAgYSB7XFxuICAgICAgQGFwcGx5IGNhcGl0YWxpemU7XFxuICAgIH1cXG4gIH1cXG59XFxuLnByb2ZpbGVfX2Ryb3Bkb3duLS10b3VjaCB7XFxuICBAYXBwbHkgYWJzb2x1dGUgIHJpZ2h0LTUgei0yMCBiZy13aGl0ZSB0ZXh0LWxlZnQgdGV4dC1zbSB0ZXh0LWJsdWVjb3JhbCBzaGFkb3ctZHJvcGRvd24gIGR1cmF0aW9uLTMwMDtcXG4gIHRvcDogNTBweDtcXG4gIHdpZHRoOiAyNjVweDtcXG4gIGJveC1zaGFkb3c6IDRweCA0cHggNDBweCByZ2JhKDAsIDUwLCA3NiwgMC4yKTtcXG5cXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XFxuICAgIHdpZHRoOiAyMjBweDtcXG4gIH1cXG5cXG4gIGxpIHtcXG4gICAgQGFwcGx5IGZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMyBwLTMgc206cC00O1xcbiAgICBhOmhvdmVyIHtcXG4gICAgICBAYXBwbHkgdGV4dC1ibHVlY29yYWw7XFxuICAgIH1cXG4gICAgLnVzZXItcHJvZmlsZSB7XFxuICAgICAgZm9udC1zaXplOiAyNnB4O1xcbiAgICB9XFxuICB9XFxuICAuZHJvcGRvd25fX2xpc3Qge1xcbiAgICBAYXBwbHkgYmctbi0xMCBob3ZlcjpiZy1uLTIwIGhvdmVyOnRleHQtYmx1ZWNvcmFsO1xcbiAgICBhIHtcXG4gICAgICBAYXBwbHkgY2FwaXRhbGl6ZTtcXG4gICAgfVxcbiAgfVxcbn1cXG4uZHJvcGRvd24tYnRuOmhvdmVyLFxcbi5kcm9wZG93bi1idG46YWN0aXZlIHtcXG4gIC5wcm9maWxlX19kcm9wZG93biB7XFxuICAgIEBhcHBseSB2aXNpYmxlIG9wYWNpdHktMTAwO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XFxuICB9XFxuICAuZHJvcGRvd25fX2Fycm93IHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG4gIH1cXG59XFxuLmFkZC1pbXBvcnQge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4uYWRkLWltcG9ydC1kcm9wZG93biB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uYWRkLWltcG9ydDpob3ZlciAuYWRkLWltcG9ydC1kcm9wZG93biB7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgb3BhY2l0eTogMTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG59XFxuXFxuLnNwaW5uZXIge1xcbiAgQGFwcGx5IGFic29sdXRlIHRvcC0zIHJpZ2h0LTcgaW5saW5lLWJsb2NrIGFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLW4tMTAgYm9yZGVyLW9wYWNpdHktNTtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgaGVpZ2h0OiAxNXB4O1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5hbGVydFtkYXRhLXYtYjc3YjExZDRdIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWNhbWVsLTEwKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgcGFkZGluZzogMXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjYyNTtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi01MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpXFxufVxcbi5hbGVydF9fY29udGFpbmVyW2RhdGEtdi1iNzdiMTFkNF0ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBsaW5lLWhlaWdodDogMS41cmVtXFxufVxcbi5hbGVydF9fY29udGVudFtkYXRhLXYtYjc3YjExZDRdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyXFxufVxcbi5hbGVydF9fY29udGVudFtkYXRhLXYtYjc3YjExZDRdID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi1yaWdodDogY2FsYygxcmVtICogdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7XFxuICBtYXJnaW4tbGVmdDogY2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpXFxufVxcbi5hbGVydF9fY29udGVudCBzcGFuW2RhdGEtdi1iNzdiMTFkNF0ge1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi01MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpXFxufVxcbi5hbGVydF9fbWVzc2FnZVtkYXRhLXYtYjc3YjExZDRdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyXFxufVxcbi5hbGVydF9fbWVzc2FnZVtkYXRhLXYtYjc3YjExZDRdID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi1yaWdodDogY2FsYygwLjI1cmVtICogdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7XFxuICBtYXJnaW4tbGVmdDogY2FsYygwLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpXFxufVxcbi50ZXh0LXNob3dbZGF0YS12LWI3N2IxMWQ0XSB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxcbn1cXG4udGV4dC1zaG93W2RhdGEtdi1iNzdiMTFkNF0gPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcXG4gIC0tdHctc3BhY2UteC1yZXZlcnNlOiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDAuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMC41cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpXFxufVxcbi50ZXh0LXNob3dbZGF0YS12LWI3N2IxMWQ0XSB7XFxuICBvcGFjaXR5OiAwO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTBweCwgMzBweClcXG59XFxuLnRleHQtaGlkZVtkYXRhLXYtYjc3YjExZDRdIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtLXR3LXRyYW5zbGF0ZS15OiAtMHB4O1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxuICBhbGlnbi1pdGVtczogY2VudGVyXFxufVxcbi50ZXh0LWhpZGVbZGF0YS12LWI3N2IxMWQ0XSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS14LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMC41cmVtICogdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7XFxuICBtYXJnaW4tbGVmdDogY2FsYygwLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSlcXG59XFxuLnRleHQtaGlkZVtkYXRhLXYtYjc3YjExZDRdIHtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zXFxufVxcbi5ib3JkZXItaGlkZVtkYXRhLXYtYjc3YjExZDRdOjpiZWZvcmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMHB4O1xcbiAgdG9wOiAwcHg7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1zYWxtb24tNTApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG4gIHdpZHRoOiAycHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSlcXG59XFxuLmJvcmRlci1zaG93W2RhdGEtdi1iNzdiMTFkNF06OmJlZm9yZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwcHg7XFxuICB0b3A6IDBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXNhbG1vbi01MCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgd2lkdGg6IDJweDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRXJyb3JNZXNzYWdlLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLHNCQUFBO0VBQUEsa0JBQUE7RUFBQSw2REFBQTtFQUFBLGFBQUE7RUFBQSxxQkFBQTtFQUFBLG1CQUFBO0VBQUEsb0JBQUE7RUFBQSxrQkFBQTtFQUFBLG9CQUFBO0VBQUE7QUFBQTtBQUdFO0VBQUEsYUFBQTtFQUFBLHNCQUFBO0VBQUE7QUFBQTtBQUdBO0VBQUEsYUFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBLHVCQUFBO0VBQUEsb0RBQUE7RUFBQTtBQUFBO0FBR0U7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0JBQUE7RUFBQSxvQkFBQTtFQUFBO0FBQUE7QUFJRjtFQUFBLGFBQUE7RUFBQTtBQUFBO0FBQUE7RUFBQSx1QkFBQTtFQUFBLHVEQUFBO0VBQUE7QUFBQTtBQUlGO0VBQUEsa0JBQUE7RUFBQSxhQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUEsdUJBQUE7RUFBQSxzREFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBLFVBQUE7RUFBQSwwQkFBQTtFQUNBO0FBREE7QUFJQTtFQUFBLGFBQUE7RUFBQSxzQkFBQTtFQUFBLCtMQUFBO0VBQUE7QUFBQTtBQUFBO0VBQUEsdUJBQUE7RUFBQSxzREFBQTtFQUFBO0FBQUE7QUFBQTtFQUFBO0FBQUE7QUFHQTtFQUFBLGtCQUFBO0VBQUEsU0FBQTtFQUFBLFFBQUE7RUFBQSxzQkFBQTtFQUFBLGtCQUFBO0VBQUEsOERBQUE7RUFBQSwwQkFBQTtFQUFBLHNEQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0E7QUFKQTtBQU9BO0VBQUEsa0JBQUE7RUFBQSxTQUFBO0VBQUEsUUFBQTtFQUFBLHNCQUFBO0VBQUEsa0JBQUE7RUFBQSw4REFBQTtFQUFBLDBCQUFBO0VBQUEsc0RBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQTtBQUpBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbi5hbGVydCB7XFxuICBAYXBwbHkgcm91bmRlZCBiZy1jYW1lbC0xMCBwLTQgcHItNiB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW4tNTA7XFxuXFxuICAmX19jb250YWluZXIge1xcbiAgICBAYXBwbHkgZmxleCBmbGV4LWNvbCBsZWFkaW5nLTY7XFxuICB9XFxuICAmX19jb250ZW50IHtcXG4gICAgQGFwcGx5IGZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNDtcXG5cXG4gICAgc3BhbiB7XFxuICAgICAgQGFwcGx5IHRleHQtc20gZm9udC1ib2xkIHRleHQtbi01MDtcXG4gICAgfVxcbiAgfVxcbiAgJl9fbWVzc2FnZSB7XFxuICAgIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTE7XFxuICB9XFxufVxcbi50ZXh0LXNob3cge1xcbiAgQGFwcGx5IGludmlzaWJsZSBmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTIgb3BhY2l0eS0wIGR1cmF0aW9uLTMwMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MHB4LCAzMHB4KTtcXG59XFxuLnRleHQtaGlkZSB7XFxuICBAYXBwbHkgZmxleCAtdHJhbnNsYXRlLXktMCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIGR1cmF0aW9uLTMwMDtcXG59XFxuLmJvcmRlci1oaWRlOjpiZWZvcmUge1xcbiAgQGFwcGx5IGFic29sdXRlIGxlZnQtMCB0b3AtMCByb3VuZGVkIGJnLXNhbG1vbi01MCBkdXJhdGlvbi0zMDAgZWFzZS1vdXQ7XFxuICB3aWR0aDogMnB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xcbn1cXG4uYm9yZGVyLXNob3c6OmJlZm9yZSB7XFxuICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0wIHRvcC0wIHJvdW5kZWQgYmctc2FsbW9uLTUwIGR1cmF0aW9uLTMwMCBlYXNlLW91dDtcXG4gIHdpZHRoOiAycHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5oZWxwIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmhlbHBfX3RleHQge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAxcmVtO1xcbiAgei1pbmRleDogMjA7XFxufVxcbi5oZWxwX190ZXh0ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi10b3A6IGNhbGMoMC4zNzVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XFxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDAuMzc1cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XFxufVxcbi5oZWxwX190ZXh0IHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWVnZ3NoZWxsKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgcGFkZGluZzogMXJlbTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICBsaW5lLWhlaWdodDogMXJlbTtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi00MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbiAgb3BhY2l0eTogMDtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XFxuICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xcbn1cXG4uaGVscF9fdGV4dCBwIGEge1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuLmhlbHA6aG92ZXIgLmhlbHBfX3RleHQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCA1cHgpO1xcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcXG4uaGVscDpob3ZlciAuaGVscF9fdGV4dCB7XFxuICAgIHdpZHRoOiAyMDBweDtcXG59XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Ib3ZlclRleHQudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUVFO0VBQUEsa0JBQUE7QUFBQTtBQUdFO0VBQUEsa0JBQUE7RUFBQSxrQkFBQTtFQUFBLFNBQUE7RUFBQSxXQUFBO0FBQUE7QUFBQTtFQUFBLHVCQUFBO0VBQUEsZ0VBQUE7RUFBQSx5REFBQTtBQUFBO0FBQUE7RUFBQSxzQkFBQTtFQUFBLGtCQUFBO0VBQUEsNkRBQUE7RUFBQSxhQUFBO0VBQUEsZ0JBQUE7RUFBQSxrQkFBQTtFQUFBLGlCQUFBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtFQUFBLFVBQUE7RUFBQSwwQkFBQTtFQUNBLDZCQUFBO0VBQ0EsMkNBQUE7QUFGQTtBQUlBO0VBQ0UsZ0JBQUE7QUFBTjtBQU1FO0VBQ0UsOEJBQUE7RUFDQSxtQkFBQTtFQUNBLFVBQUE7QUFISjtBQUlJO0FBSkY7SUFLSSxZQUFBO0FBREo7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4uaGVscCB7XFxuICBAYXBwbHkgcmVsYXRpdmU7XFxuXFxuICAmX190ZXh0IHtcXG4gICAgQGFwcGx5IGludmlzaWJsZSBhYnNvbHV0ZSB0b3AtNCB6LTIwIHNwYWNlLXktMS41IHJvdW5kZWQgYmctZWdnc2hlbGwgcC00IHRleHQtbGVmdCB0ZXh0LXhzIHRleHQtbi00MCBvcGFjaXR5LTAgZHVyYXRpb24tMjAwO1xcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcXG4gICAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYigwIDAgMCAvIDEwJSk7XFxuXFxuICAgIHAgYSB7XFxuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgfVxcbiAgfVxcbn1cXG5cXG4uaGVscDpob3ZlciB7XFxuICAuaGVscF9fdGV4dCB7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgNXB4KTtcXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xcbiAgICAgIHdpZHRoOiAyMDBweDtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIub3ZlcmxheSB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBsZWZ0OiAwcHg7XFxuICB0b3A6IDBweDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1ibGFjayksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIG9wYWNpdHk6IDAuNztcXG4gIHotaW5kZXg6IDEwMFxcbn1cXG4ub3ZlcmxheV9faW5uZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMHB4O1xcbiAgdG9wOiAwcHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJVxcbn1cXG4ub3ZlcmxheV9fY29udGVudCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiA1MCU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpXFxufVxcbi5vdmVybGF5X19jb250ZW50IC5zcGlubmVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XFxudG8ge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpXFxufVxcbn1cXG5Aa2V5ZnJhbWVzIHNwaW4ge1xcbnRvIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKVxcbn1cXG59XFxuLm92ZXJsYXlfX2NvbnRlbnQgLnNwaW5uZXIge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xcbiAgYm9yZGVyLXdpZHRoOiAycHg7XFxuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbi0xMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAwLjA1O1xcbiAgd2lkdGg6IDc1cHg7XFxuICBoZWlnaHQ6IDc1cHg7XFxuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvTG9hZGVyLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLGVBQUE7RUFBQSxTQUFBO0VBQUEsUUFBQTtFQUFBLFlBQUE7RUFBQSxXQUFBO0VBQUEsa0JBQUE7RUFBQSwwREFBQTtFQUNBLFlBQUE7RUFDQTtBQUZBO0FBS0U7RUFBQSxrQkFBQTtFQUFBLFNBQUE7RUFBQSxRQUFBO0VBQUEsWUFBQTtFQUFBO0FBQUE7QUFJQTtFQUFBLGtCQUFBO0VBQUEsU0FBQTtFQUFBLFFBQUE7RUFDQTtBQURBO0FBSUU7RUFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQTtBQUFBO0FBQUE7QUFBQTtFQUFBLDBDQUFBO1VBQUEsa0NBQUE7RUFBQSxxQkFBQTtFQUFBLGlCQUFBO0VBQUEseURBQUE7RUFBQSx5QkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0E7QUFIQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4ub3ZlcmxheSB7XFxuICBAYXBwbHkgZml4ZWQgbGVmdC0wIHRvcC0wIGgtZnVsbCB3LWZ1bGwgYmctYmxhY2s7XFxuICBvcGFjaXR5OiAwLjc7XFxuICB6LWluZGV4OiAxMDA7XFxuXFxuICAmX19pbm5lciB7XFxuICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgaC1mdWxsIHctZnVsbDtcXG4gIH1cXG5cXG4gICZfX2NvbnRlbnQge1xcbiAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC0yLzQgdG9wLTIvNDtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuXFxuICAgIC5zcGlubmVyIHtcXG4gICAgICBAYXBwbHkgaW5saW5lLWJsb2NrIGFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLW4tMTAgYm9yZGVyLW9wYWNpdHktNTtcXG4gICAgICB3aWR0aDogNzVweDtcXG4gICAgICBoZWlnaHQ6IDc1cHg7XFxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLm1vZGFsLWFuaW1hdGlvbi1lbnRlci1hY3RpdmVbZGF0YS12LTVhMmJkYTU4XSxcXG4ubW9kYWwtYW5pbWF0aW9uLWxlYXZlLWFjdGl2ZVtkYXRhLXYtNWEyYmRhNThdIHtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBjdWJpYy1iZXppZXIoMC41MiwgMC4wMiwgMC4xOSwgMS4wMik7XFxufVxcbi5tb2RhbC1hbmltYXRpb24tZW50ZXItZnJvbVtkYXRhLXYtNWEyYmRhNThdLFxcbi5tb2RhbC1hbmltYXRpb24tbGVhdmUtdG9bZGF0YS12LTVhMmJkYTU4XSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ubW9kYWwtYW5pbWF0aW9uLWlubmVyLWVudGVyLWFjdGl2ZVtkYXRhLXYtNWEyYmRhNThdIHtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGN1YmljLWJlemllcigwLjUyLCAwLjAyLCAwLjE5LCAxLjAyKSAwLjE1cztcXG59XFxuLm1vZGFsLWFuaW1hdGlvbi1pbm5lci1sZWF2ZS1hY3RpdmVbZGF0YS12LTVhMmJkYTU4XSB7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBjdWJpYy1iZXppZXIoMC41MiwgMC4wMiwgMC4xOSwgMS4wMik7XFxufVxcbi5tb2RhbC1hbmltYXRpb24taW5uZXItZW50ZXItZnJvbVtkYXRhLXYtNWEyYmRhNThdIHtcXG4gIG9wYWNpdHk6IDA7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxufVxcbi5tb2RhbC1hbmltYXRpb24taW5uZXItbGVhdmUtdG9bZGF0YS12LTVhMmJkYTU4XSB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Qb3B1cE1vZGFsLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFDQTs7RUFFRSw2REFBQTtBQUFGO0FBR0E7O0VBRUUsVUFBQTtBQUFGO0FBR0E7RUFDRSwrREFBQTtBQUFGO0FBR0E7RUFDRSx5REFBQTtBQUFGO0FBR0E7RUFDRSxVQUFBO0VBQ0EscUJBQUE7QUFBRjtBQUdBO0VBQ0UscUJBQUE7QUFBRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4ubW9kYWwtYW5pbWF0aW9uLWVudGVyLWFjdGl2ZSxcXG4ubW9kYWwtYW5pbWF0aW9uLWxlYXZlLWFjdGl2ZSB7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgY3ViaWMtYmV6aWVyKDAuNTIsIDAuMDIsIDAuMTksIDEuMDIpO1xcbn1cXG5cXG4ubW9kYWwtYW5pbWF0aW9uLWVudGVyLWZyb20sXFxuLm1vZGFsLWFuaW1hdGlvbi1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG5cXG4ubW9kYWwtYW5pbWF0aW9uLWlubmVyLWVudGVyLWFjdGl2ZSB7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBjdWJpYy1iZXppZXIoMC41MiwgMC4wMiwgMC4xOSwgMS4wMikgMC4xNXM7XFxufVxcblxcbi5tb2RhbC1hbmltYXRpb24taW5uZXItbGVhdmUtYWN0aXZlIHtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGN1YmljLWJlemllcigwLjUyLCAwLjAyLCAwLjE5LCAxLjAyKTtcXG59XFxuXFxuLm1vZGFsLWFuaW1hdGlvbi1pbm5lci1lbnRlci1mcm9tIHtcXG4gIG9wYWNpdHk6IDA7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxufVxcblxcbi5tb2RhbC1hbmltYXRpb24taW5uZXItbGVhdmUtdG8ge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuc2hpbW1lcl9fYmxvY2tbZGF0YS12LTc0MzU2MTcyXSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcGxhY2VIb2xkZXJTaGltbWVyLTc0MzU2MTcyO1xcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogcGxhY2VIb2xkZXJTaGltbWVyLTc0MzU2MTcyO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XFxuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuNXM7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZWRlZGVkIDE0LjM2JSwgI2Q3ZDZkNiA1Ni4yOSUsICNlZGVkZWQgMTAwJSk7XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1zaXplOiAyNDRweCAxMDRweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMTlweDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1hcmdpbjogM3B4IDZweCAzcHggMHB4O1xcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcGxhY2VIb2xkZXJTaGltbWVyLTc0MzU2MTcyIHtcXG4wJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMCUgLSAzMDBweCkgMDtcXG59XFxuMjAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygwJSAtIDMwMHB4KSAwO1xcbn1cXG44MCUge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgKyAzMDBweCkgMDtcXG59XFxuMTAwJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSArIDMwMHB4KSAwO1xcbn1cXG59XFxuQGtleWZyYW1lcyBwbGFjZUhvbGRlclNoaW1tZXItNzQzNTYxNzIge1xcbjAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygwJSAtIDMwMHB4KSAwO1xcbn1cXG4yMCUge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDAlIC0gMzAwcHgpIDA7XFxufVxcbjgwJSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSArIDMwMHB4KSAwO1xcbn1cXG4xMDAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlICsgMzAwcHgpIDA7XFxufVxcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvU2hpbW1lckxvYWRpbmcudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUNBO0VBQ0UsOEJBQUE7VUFBQSxzQkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7RUFDQSwyQ0FBQTtVQUFBLG1DQUFBO0VBQ0EsbURBQUE7VUFBQSwyQ0FBQTtFQUNBLHlDQUFBO1VBQUEsaUNBQUE7RUFDQSw2QkFBQTtVQUFBLHFCQUFBO0VBQ0EseUJBQUE7RUFDQSxzRkFBQTtFQUNBLDRCQUFBO0VBQ0EsNEJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSx1QkFBQTtBQUFGO0FBR0E7QUFDRTtJQUNFLHVDQUFBO0FBQUY7QUFHQTtJQUNFLHVDQUFBO0FBREY7QUFJQTtJQUNFLHlDQUFBO0FBRkY7QUFLQTtJQUNFLHlDQUFBO0FBSEY7QUFDRjtBQVpBO0FBQ0U7SUFDRSx1Q0FBQTtBQUFGO0FBR0E7SUFDRSx1Q0FBQTtBQURGO0FBSUE7SUFDRSx5Q0FBQTtBQUZGO0FBS0E7SUFDRSx5Q0FBQTtBQUhGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLnNoaW1tZXJfX2Jsb2NrIHtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XFxuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgYW5pbWF0aW9uLW5hbWU6IHBsYWNlSG9sZGVyU2hpbW1lcjtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcXG4gIGFuaW1hdGlvbi1kZWxheTogMC41cztcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNlZGVkZWQgMTQuMzYlLCAjZDdkNmQ2IDU2LjI5JSwgI2VkZWRlZCAxMDAlKTtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDI0NHB4IDEwNHB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxOXB4O1xcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWFyZ2luOiAzcHggNnB4IDNweCAwcHg7XFxufVxcblxcbkBrZXlmcmFtZXMgcGxhY2VIb2xkZXJTaGltbWVyIHtcXG4gIDAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygwJSAtIDMwMHB4KSAwO1xcbiAgfVxcblxcbiAgMjAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygwJSAtIDMwMHB4KSAwO1xcbiAgfVxcblxcbiAgODAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlICsgMzAwcHgpIDA7XFxuICB9XFxuXFxuICAxMDAlIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlICsgMzAwcHgpIDA7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5lcnJvcnNbZGF0YS12LWY2N2M3ZTcyXSB7XFxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAycHhcXG59XFxuLmVycm9yc19faGVhZFtkYXRhLXYtZjY3YzdlNzJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBwYWRkaW5nOiAxcmVtXFxufVxcbi5lcnJvcnNfX2hlYWQtLXRpdGxlW2RhdGEtdi1mNjdjN2U3Ml0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWdyb3c6IDE7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS42MjVcXG59XFxuLmVycm9yc19fbGlzdFtkYXRhLXYtZjY3YzdlNzJdIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcXG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcXG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXNcXG59XFxuLmVycm9yc19fbGlzdCB1bFtkYXRhLXYtZjY3YzdlNzJdIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbVxcbn1cXG4uZXJyb3JzX19saXN0IGxpW2RhdGEtdi1mNjdjN2U3Ml0ge1xcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XFxuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS41XFxufVxcbi5lcnJvcnNfX2xpc3QgbGlbZGF0YS12LWY2N2M3ZTcyXTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xcbiAgICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbi0yMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSlcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL0Vycm9yTGlzdHMudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUVFO0lBQUE7QUFBQTtBQUVFO0lBQUEsYUFBQTtJQUFBLDhCQUFBO0lBQUE7QUFBQTtBQUdFO0lBQUEsYUFBQTtJQUFBLFlBQUE7SUFBQSxtQkFBQTtJQUFBLG1CQUFBO0lBQUEsb0JBQUE7SUFBQTtBQUFBO0FBS0Y7SUFBQSxXQUFBO0lBQUEsZ0JBQUE7SUFBQSxrQkFBQTtJQUFBLG1CQUFBO0lBQUEsd0JBQUE7SUFBQSx3REFBQTtJQUFBO0FBQUE7QUFFRTtJQUFBLG9CQUFBO0lBQUE7QUFBQTtBQUdBO0lBQUEsaUJBQUE7SUFBQSxvQkFBQTtJQUFBLG1CQUFBO0lBQUEsb0JBQUE7SUFBQTtBQUFBO0FBR0E7SUFBQSx3QkFBQTtJQUFBLHNCQUFBO0lBQUE7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4uZXJyb3JzIHtcXG4gIEBhcHBseSBib3JkZXItbC0yO1xcbiAgJl9faGVhZCB7XFxuICAgIEBhcHBseSBmbGV4IGp1c3RpZnktYmV0d2VlbiBwLTQ7XFxuXFxuICAgICYtLXRpdGxlIHtcXG4gICAgICBAYXBwbHkgZmxleCBncm93IGl0ZW1zLWNlbnRlciB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJl9fbGlzdCB7XFxuICAgIEBhcHBseSBoLTAgb3ZlcmZsb3ctaGlkZGVuIHB4LTQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNTAwO1xcbiAgICB1bCB7XFxuICAgICAgQGFwcGx5IHB4LTY7XFxuICAgIH1cXG4gICAgbGkge1xcbiAgICAgIEBhcHBseSBweS00IHRleHQtc20gbGVhZGluZy1ub3JtYWw7XFxuICAgIH1cXG4gICAgbGk6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgICAgQGFwcGx5IGJvcmRlci1iIGJvcmRlci1uLTIwO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5wcm9ncmVzc19iYXJbZGF0YS12LTVjMzJiZjBjXSB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBsZWZ0OiAwcHg7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXdoaXRlKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgdG9wOiAwO1xcbiAgei1pbmRleDogOTk5O1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG59XFxuLnByb2dyZXNzX2Jhcl9fd3JhcHBlcltkYXRhLXYtNWMzMmJmMGNdIHtcXG4gIHdpZHRoOiAyNTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGM0O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnByb2dyZXNzX2Jhcl9fdmlld2VyW2RhdGEtdi01YzMyYmYwY10ge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1zcHJpbmctNTApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBoZWlnaHQ6IDRweDtcXG4gIHRyYW5zZm9ybTogc2NhbGVYKDApO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xcbn1cXG4ucHJvZ3Jlc3NfYmFyLmFuaW1hdGUtbG9hZGVyIC5wcm9ncmVzc19iYXJfX3ZpZXdlcltkYXRhLXYtNWMzMmJmMGNdIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBGaWxsQW5pbWF0aW9uLTVjMzJiZjBjIDZzIGN1YmljLWJlemllcigwLjAxLCAxLjA2LCAwLjcxLCAxKSBmb3J3YXJkcztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBGaWxsQW5pbWF0aW9uLTVjMzJiZjBjIDZzIGN1YmljLWJlemllcigwLjAxLCAxLjA2LCAwLjcxLCAxKSBmb3J3YXJkcztcXG59XFxuLnByb2dyZXNzX2Jhci5hbmltYXRlLWxvYWRlciAucHJvZ3Jlc3NfYmFyX19zdGF0ZVtkYXRhLXYtNWMzMmJmMGNdOjpiZWZvcmUge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogVGV4dENoYW5nZS01YzMyYmYwYyA2cyBjdWJpYy1iZXppZXIoMC4wMSwgMS4wNiwgMC43MSwgMSkgZm9yd2FyZHM7XFxuICAgICAgICAgIGFuaW1hdGlvbjogVGV4dENoYW5nZS01YzMyYmYwYyA2cyBjdWJpYy1iZXppZXIoMC4wMSwgMS4wNiwgMC43MSwgMSkgZm9yd2FyZHM7XFxufVxcbi5wcm9ncmVzc19iYXJfX2NvbnRlbnRbZGF0YS12LTVjMzJiZjBjXSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuLnByb2dyZXNzX2Jhcl9fc3RhdGVbZGF0YS12LTVjMzJiZjBjXSB7XFxuICBtYXJnaW4tdG9wOiAxLjVyZW07XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxuICBmb250LXdlaWdodDogNzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tYmx1ZWNvcmFsLTUwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBGaWxsQW5pbWF0aW9uLTVjMzJiZjBjIHtcXG4wJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDI4KTtcXG59XFxuMTAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wMjgpO1xcbn1cXG4yMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjAyOCk7XFxufVxcbjI1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMjQpO1xcbn1cXG4zNSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjI0KTtcXG59XFxuNDUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4yNCk7XFxufVxcbjUwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNjI0KTtcXG59XFxuNjAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC42MjQpO1xcbn1cXG43MCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjYyNCk7XFxufVxcbjc1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOTI4KTtcXG59XFxuODUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC45MjgpO1xcbn1cXG45NSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjkyOCk7XFxufVxcbjEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG59XFxufVxcbkBrZXlmcmFtZXMgRmlsbEFuaW1hdGlvbi01YzMyYmYwYyB7XFxuMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjAyOCk7XFxufVxcbjEwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMDI4KTtcXG59XFxuMjAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wMjgpO1xcbn1cXG4yNSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjI0KTtcXG59XFxuMzUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4yNCk7XFxufVxcbjQ1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMjQpO1xcbn1cXG41MCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjYyNCk7XFxufVxcbjYwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNjI0KTtcXG59XFxuNzAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC42MjQpO1xcbn1cXG43NSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjkyOCk7XFxufVxcbjg1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOTI4KTtcXG59XFxuOTUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC45MjgpO1xcbn1cXG4xMDAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XFxufVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgVGV4dENoYW5nZS01YzMyYmYwYyB7XFxuMCUge1xcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtc3RhcnQpO1xcbn1cXG45NSUge1xcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtc3RhcnQpO1xcbn1cXG4xMDAlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWVuZCk7XFxufVxcbn1cXG5Aa2V5ZnJhbWVzIFRleHRDaGFuZ2UtNWMzMmJmMGMge1xcbjAlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTtcXG59XFxuOTUlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTtcXG59XFxuMTAwJSB7XFxuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1lbmQpO1xcbn1cXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1Byb2dyZXNzTG9hZGVyLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLGVBQUE7RUFBQSxTQUFBO0VBQUEsYUFBQTtFQUFBLFdBQUE7RUFBQSxtQkFBQTtFQUFBLHVCQUFBO0VBQUEsa0JBQUE7RUFBQSwwREFBQTtFQUNBLE1BQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtBQUhBO0FBTUU7RUFBQSxZQUFBO0VBQUEsbUJBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0FBRkE7QUFNQTtFQUFBLGtCQUFBO0VBQUEsOERBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtFQUNBLHFCQUFBO0FBSkE7QUFPRjtFQUNFLHVGQUFBO1VBQUEsK0VBQUE7QUFGSjtBQUtFO0VBQ0UsV0FBQTtFQUNBLG9GQUFBO1VBQUEsNEVBQUE7QUFISjtBQU9JO0VBQUEsYUFBQTtFQUFBLHNCQUFBO0FBQUE7QUFJQTtFQUFBLGtCQUFBO0VBQUEsa0JBQUE7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0JBQUE7RUFBQSxnQkFBQTtFQUFBLG9CQUFBO0VBQUEsd0RBQUE7QUFBQTtBQUlKO0FBQ0U7SUFDRSx3QkFBQTtBQU5GO0FBUUE7SUFDRSx3QkFBQTtBQU5GO0FBUUE7SUFDRSx3QkFBQTtBQU5GO0FBU0E7SUFDRSx1QkFBQTtBQVBGO0FBU0E7SUFDRSx1QkFBQTtBQVBGO0FBU0E7SUFDRSx1QkFBQTtBQVBGO0FBVUE7SUFDRSx3QkFBQTtBQVJGO0FBV0E7SUFDRSx3QkFBQTtBQVRGO0FBWUE7SUFDRSx3QkFBQTtBQVZGO0FBYUE7SUFDRSx3QkFBQTtBQVhGO0FBY0E7SUFDRSx3QkFBQTtBQVpGO0FBZUE7SUFDRSx3QkFBQTtBQWJGO0FBZ0JBO0lBQ0Usb0JBQUE7QUFkRjtBQUNGO0FBakNBO0FBQ0U7SUFDRSx3QkFBQTtBQU5GO0FBUUE7SUFDRSx3QkFBQTtBQU5GO0FBUUE7SUFDRSx3QkFBQTtBQU5GO0FBU0E7SUFDRSx1QkFBQTtBQVBGO0FBU0E7SUFDRSx1QkFBQTtBQVBGO0FBU0E7SUFDRSx1QkFBQTtBQVBGO0FBVUE7SUFDRSx3QkFBQTtBQVJGO0FBV0E7SUFDRSx3QkFBQTtBQVRGO0FBWUE7SUFDRSx3QkFBQTtBQVZGO0FBYUE7SUFDRSx3QkFBQTtBQVhGO0FBY0E7SUFDRSx3QkFBQTtBQVpGO0FBZUE7SUFDRSx3QkFBQTtBQWJGO0FBZ0JBO0lBQ0Usb0JBQUE7QUFkRjtBQUNGO0FBaUJBO0FBQ0U7SUFDRSx5QkFBQTtBQWZGO0FBa0JBO0lBQ0UseUJBQUE7QUFoQkY7QUFtQkE7SUFDRSx1QkFBQTtBQWpCRjtBQUNGO0FBTUE7QUFDRTtJQUNFLHlCQUFBO0FBZkY7QUFrQkE7SUFDRSx5QkFBQTtBQWhCRjtBQW1CQTtJQUNFLHVCQUFBO0FBakJGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLnByb2dyZXNzX2JhciB7XFxuICBAYXBwbHkgZml4ZWQgbGVmdC0wIGZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy13aGl0ZTtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIGhlaWdodDogMTAwdmg7XFxuXFxuICAmX193cmFwcGVyIHtcXG4gICAgQGFwcGx5IHctWzI1MHB4XSBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC0yeGw7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNjNGM0YzQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxuXFxuICAmX192aWV3ZXIge1xcbiAgICBAYXBwbHkgYmctc3ByaW5nLTUwO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIGhlaWdodDogNHB4O1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xcbiAgfVxcblxcbiAgJi5hbmltYXRlLWxvYWRlciAmX192aWV3ZXIge1xcbiAgICBhbmltYXRpb246IEZpbGxBbmltYXRpb24gNnMgY3ViaWMtYmV6aWVyKDAuMDEsIDEuMDYsIDAuNzEsIDEpIGZvcndhcmRzO1xcbiAgfVxcblxcbiAgJi5hbmltYXRlLWxvYWRlciAmX19zdGF0ZTo6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgIGFuaW1hdGlvbjogVGV4dENoYW5nZSA2cyBjdWJpYy1iZXppZXIoMC4wMSwgMS4wNiwgMC43MSwgMSkgZm9yd2FyZHM7XFxuICB9XFxuXFxuICAmX19jb250ZW50IHtcXG4gICAgQGFwcGx5IGZsZXggZmxleC1jb2w7XFxuICB9XFxuXFxuICAmX19zdGF0ZSB7XFxuICAgIEBhcHBseSBtdC02IHRleHQtY2VudGVyIHRleHQtc20gZm9udC1ib2xkIGxlYWRpbmctbm9ybWFsIHRleHQtYmx1ZS01MDtcXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBGaWxsQW5pbWF0aW9uIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wMjgpO1xcbiAgfVxcbiAgMTAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wMjgpO1xcbiAgfVxcbiAgMjAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wMjgpO1xcbiAgfVxcblxcbiAgMjUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4yNCk7XFxuICB9XFxuICAzNSUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjI0KTtcXG4gIH1cXG4gIDQ1JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuMjQpO1xcbiAgfVxcblxcbiAgNTAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC42MjQpO1xcbiAgfVxcblxcbiAgNjAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC42MjQpO1xcbiAgfVxcblxcbiAgNzAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC42MjQpO1xcbiAgfVxcblxcbiAgNzUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC45MjgpO1xcbiAgfVxcblxcbiAgODUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC45MjgpO1xcbiAgfVxcblxcbiAgOTUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC45MjgpO1xcbiAgfVxcblxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xcbiAgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIFRleHRDaGFuZ2Uge1xcbiAgMCUge1xcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtc3RhcnQpO1xcbiAgfVxcblxcbiAgOTUlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTtcXG4gIH1cXG5cXG4gIDEwMCUge1xcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtZW5kKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLnZhbGlkYXRpb25bZGF0YS12LTFlMzhkMTBlXSB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjVyZW07XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjVyZW07XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XFxuICBib3gtc2hhZG93OiAwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpXFxufVxcbi52YWxpZGF0aW9uX19lcnJvckhlYWRbZGF0YS12LTFlMzhkMTBlXSB7XFxuICB3aWR0aDogMjEycHg7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLWNyaW1zb24tMjApLCB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1jcmltc29uLTEwKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgYm94LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKVxcbn1cXG4udmFsaWRhdGlvbl9fZXJyb3JzW2RhdGEtdi0xZTM4ZDEwZV0ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwcHg7XFxuICByaWdodDogMHB4O1xcbiAgei1pbmRleDogMTA7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgd2lkdGg6IDQyNHB4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLXdoaXRlKSwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweClcXG59XFxuLnZhbGlkYXRpb25fX2hlYWRpbmdbZGF0YS12LTFlMzhkMTBlXSB7XFxuICBwYWRkaW5nLWxlZnQ6IDFyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xcbiAgcGFkZGluZy10b3A6IDAuNzVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbVxcbn1cXG4udmFsaWRhdGlvbl9fZXJyb3JzLWxpc3RbZGF0YS12LTFlMzhkMTBlXSB7XFxuICBmbGV4LWdyb3c6IDE7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcXG4gIHBhZGRpbmctdG9wOiAwLjc1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW1cXG59XFxuLnZhbGlkYXRpb25fX3RvZ2dsZVtkYXRhLXYtMWUzOGQxMGVdIHtcXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbC01MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpXFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9TdGlja3lFcnJvcnMudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUVFO0VBQUEsOEJBQUE7RUFBQSxpQ0FBQTtFQUFBLGlCQUFBO0VBQUEsd0JBQUE7RUFBQSx3REFBQTtFQUFBLDBCQUFBO0VBQ0E7QUFEQTtBQUlFO0VBQUEsWUFBQTtFQUFBLHNCQUFBO0VBQUEsK0RBQUE7RUFBQSxrQkFBQTtFQUFBLCtEQUFBO0VBQ0E7QUFEQTtBQUtBO0VBQUEsa0JBQUE7RUFBQSxRQUFBO0VBQUEsVUFBQTtFQUFBLFdBQUE7RUFBQSxhQUFBO0VBQUEsWUFBQTtFQUFBLHNCQUFBO0VBQUEsZ0JBQUE7RUFBQSxzQkFBQTtFQUFBLDBEQUFBO0VBQUEsa0JBQUE7RUFBQSwwREFBQTtFQUNBO0FBREE7QUFLQTtFQUFBLGtCQUFBO0VBQUEsbUJBQUE7RUFBQSxvQkFBQTtFQUFBO0FBQUE7QUFJQTtFQUFBLFlBQUE7RUFBQSxnQkFBQTtFQUFBLGtCQUFBO0VBQUEsbUJBQUE7RUFBQSxvQkFBQTtFQUFBO0FBQUE7QUFJQTtFQUFBLGtCQUFBO0VBQUEsaUJBQUE7RUFBQSx5QkFBQTtFQUFBLGdCQUFBO0VBQUEsb0JBQUE7RUFBQTtBQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbi52YWxpZGF0aW9uIHtcXG4gIEBhcHBseSByb3VuZGVkLXRsLWxnIHJvdW5kZWQtYmwtbGcgYm9yZGVyIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMDtcXG4gIGJveC1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxuXFxuICAmX19lcnJvckhlYWQge1xcbiAgICBAYXBwbHkgdy1bMjEycHhdIGJvcmRlci1jcmltc29uLTIwIGJnLWNyaW1zb24tMTA7XFxuICAgIGJveC1zaGFkb3c6IDBweCA0cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxuICB9XFxuXFxuICAmX19lcnJvcnMge1xcbiAgICBAYXBwbHkgYWJzb2x1dGUgdG9wLTAgcmlnaHQtMCB6LTEwIGZsZXggdy1bNDI0cHhdIGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBib3JkZXItd2hpdGUgYmctd2hpdGU7XFxuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcXG4gIH1cXG5cXG4gICZfX2hlYWRpbmcge1xcbiAgICBAYXBwbHkgcHgtNCBweS0zO1xcbiAgfVxcblxcbiAgJl9fZXJyb3JzLWxpc3Qge1xcbiAgICBAYXBwbHkgZ3JvdyBvdmVyZmxvdy15LWF1dG8gcHgtNCBweS0zO1xcbiAgfVxcblxcbiAgJl9fdG9nZ2xlIHtcXG4gICAgQGFwcGx5IHRleHQteHMgdXBwZXJjYXNlIGxlYWRpbmctbm9ybWFsIHRleHQtYmx1ZS01MDtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLnBhZ2UtaGVpZ2h0IHtcXG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9BY3Rpdml0eUluZGV4LnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFDQTtFQUNFLDhCQUFBO0FBQUZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuLnBhZ2UtaGVpZ2h0IHtcXG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmZvcm0tZ3JvdXBbZGF0YS12LWM3Y2EyOGI4XSB7XFxuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbi0yMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICBwYWRkaW5nOiAxLjI1cmVtO1xcbn1cXG4uZm9ybS1ncm91cFtkYXRhLXYtYzdjYTI4YjhdOmxhc3QtY2hpbGQge1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG59XFxuLmZvcm0tZ3JvdXAgLmZvcm1fX2NvbnRlbnRbZGF0YS12LWM3Y2EyOGI4XSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgZ2FwOiAyNXB4O1xcbn1cXG4uZm9ybS1ncm91cCAuZm9ybV9fY29udGVudCAubGFiZWwtZmllbGRbZGF0YS12LWM3Y2EyOGI4XSB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG59XFxuLmZvcm0tZ3JvdXAtdGl0bGUtY29udGFpbmVyW2RhdGEtdi1jN2NhMjhiOF0ge1xcbiAgbWFyZ2luLWJvdHRvbTogMC4zNzVyZW07XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZm9ybS1ncm91cC10aXRsZS1jb250YWluZXJbZGF0YS12LWM3Y2EyOGI4XSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xcbiAgLS10dy1zcGFjZS14LXJldmVyc2U6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoMC4yNXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMC4yNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpKTtcXG59XFxuLmZvcm0tZ3JvdXAtdGl0bGVbZGF0YS12LWM3Y2EyOGI4XSB7XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICBsaW5lLWhlaWdodDogMXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0NyZWF0ZU1vZGFsLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLHFCQUFBO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFQUFBLHlEQUFBO0VBQUEsZ0JBQUE7QUFBQTtBQUVBO0VBQ0UsZ0JBQUE7QUFBSjtBQUdFO0VBQ0UsYUFBQTtFQUNBLFNBQUE7QUFESjtBQUlNO0VBQUEscUJBQUE7RUFBQSxhQUFBO0VBQUEsbUJBQUE7RUFBQSw4QkFBQTtBQUFBO0FBS0o7RUFBQSx1QkFBQTtFQUFBLGFBQUE7QUFBQTtBQUFBO0VBQUEsdUJBQUE7RUFBQSx1REFBQTtFQUFBLGdFQUFBO0FBQUE7QUFHQTtFQUFBLGtCQUFBO0VBQUEsaUJBQUE7RUFBQSxnQkFBQTtFQUFBLG9CQUFBO0VBQUEscURBQUE7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4uZm9ybS1ncm91cCB7XFxuICBAYXBwbHkgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLW4tMjAgcC01O1xcblxcbiAgJjpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIH1cXG5cXG4gIC5mb3JtX19jb250ZW50IHtcXG4gICAgbWFyZ2luLXRvcDogMDtcXG4gICAgZ2FwOiAyNXB4O1xcblxcbiAgICAubGFiZWwtZmllbGQge1xcbiAgICAgIEBhcHBseSBtYi0yIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbjtcXG4gICAgfVxcbiAgfVxcbn1cXG4uZm9ybS1ncm91cC10aXRsZS1jb250YWluZXIge1xcbiAgQGFwcGx5IG1iLTEuNSBmbGV4IHNwYWNlLXgtMTtcXG59XFxuLmZvcm0tZ3JvdXAtdGl0bGUge1xcbiAgQGFwcGx5IHRleHQteHMgZm9udC1ib2xkIHRleHQtYmx1ZWNvcmFsO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIubWludXNbZGF0YS12LWQwYjgwMmRhXSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgaGVpZ2h0OiAwLjc1cmVtO1xcbiAgd2lkdGg6IDAuNzVyZW07XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4ubWludXNbZGF0YS12LWQwYjgwMmRhXTpiZWZvcmUge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGhlaWdodDogMC4xMjVyZW07XFxuICB3aWR0aDogMC43NXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbC01MCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG59XFxuI3B1Ymxpc2hpbmdfYWN0aXZpdGllc1tkYXRhLXYtZDBiODAyZGFdIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIGJvdHRvbTogMHB4O1xcbiAgcmlnaHQ6IDBweDtcXG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSk7XFxufVxcbi5yb2xsaW5nW2RhdGEtdi1kMGI4MDJkYV0ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbi1kMGI4MDJkYSB7XFxudG8ge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbn1cXG59XFxuQGtleWZyYW1lcyBzcGluLWQwYjgwMmRhIHtcXG50byB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxufVxcbn1cXG4ucm9sbGluZ1tkYXRhLXYtZDBiODAyZGFdIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluLWQwYjgwMmRhIDFzIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBzcGluLWQwYjgwMmRhIDFzIGxpbmVhciBpbmZpbml0ZTtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcXG4gIGJvcmRlci13aWR0aDogMnB4O1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1uLTIwKSwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTtcXG4gIHdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcbi5jcm9zc1tkYXRhLXYtZDBiODAyZGFdIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xcbiAgaGVpZ2h0OiAwLjc1cmVtO1xcbiAgd2lkdGg6IDAuNzVyZW07XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4uY3Jvc3NbZGF0YS12LWQwYjgwMmRhXTpiZWZvcmUsIC5jcm9zc1tkYXRhLXYtZDBiODAyZGFdOmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogNTAlO1xcbiAgdG9wOiAwcHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGhlaWdodDogMC43NXJlbTtcXG4gIHdpZHRoOiAwLjEyNXJlbTtcXG4gIC0tdHctdHJhbnNsYXRlLXg6IC01MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJsdWVjb3JhbC01MCksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG59XFxuLmNyb3NzW2RhdGEtdi1kMGI4MDJkYV06YmVmb3JlIHtcXG4gIC0tdHctcm90YXRlOiA0NWRlZztcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xcbn1cXG4uY3Jvc3NbZGF0YS12LWQwYjgwMmRhXTphZnRlciB7XFxuICAtLXR3LXJvdGF0ZTogLTQ1ZGVnO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XFxufVxcbi5hY3Rpdml0eS10aXRsZVtkYXRhLXYtZDBiODAyZGFdIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0J1bGtQdWJsaXNoaW5nLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLGFBQUE7RUFBQSxlQUFBO0VBQUEsY0FBQTtFQUFBLG1CQUFBO0FBQUE7QUFDQTtFQUNFLFdBQUE7RUFDQSxjQUFBO0VBQUEsZ0JBQUE7RUFBQSxjQUFBO0VBQUEsc0JBQUE7RUFBQSxrQkFBQTtFQUFBLGlFQUFBO0FBQ0o7QUFJRTtFQUFBLGVBQUE7RUFBQSxXQUFBO0VBQUEsVUFBQTtFQUNBLG9EQUFBO0FBREE7QUFLQTtFQUFBLHFCQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEseUJBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLHlCQUFBO0FBQUE7QUFBQTtBQUFBO0VBQUEsbURBQUE7VUFBQSwyQ0FBQTtFQUFBLHFCQUFBO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFQUFBLHlEQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtBQUhBO0FBT0E7RUFBQSxrQkFBQTtFQUFBLG9CQUFBO0VBQUEsZUFBQTtFQUFBLGNBQUE7RUFBQSxnQkFBQTtBQUFBO0FBRUE7RUFFRSxXQUFBO0VBQ0Esa0JBQUE7RUFBQSxTQUFBO0VBQUEsUUFBQTtFQUFBLGNBQUE7RUFBQSxlQUFBO0VBQUEsZUFBQTtFQUFBLHNCQUFBO0VBQUEsK0xBQUE7RUFBQSxzQkFBQTtFQUFBLGtCQUFBO0VBQUEsaUVBQUE7QUFESjtBQUtJO0VBQUEsa0JBQUE7RUFBQSwrTEFBQTtBQUFBO0FBSUE7RUFBQSxtQkFBQTtFQUFBLCtMQUFBO0FBQUE7QUFJSjtFQUNFLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBQUpGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbi5taW51cyB7XFxuICBAYXBwbHkgZmxleCBoLTMgdy0zIGl0ZW1zLWNlbnRlcjtcXG4gICY6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgIEBhcHBseSBibG9jayBoLTAuNSB3LTMgcm91bmRlZC14bCBiZy1ibHVlLTUwO1xcbiAgfVxcbn1cXG5cXG4jcHVibGlzaGluZ19hY3Rpdml0aWVzIHtcXG4gIEBhcHBseSBmaXhlZCBib3R0b20tMCByaWdodC0wO1xcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggNHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpKTtcXG59XFxuXFxuLnJvbGxpbmcge1xcbiAgQGFwcGx5IGlubGluZS1ibG9jayBhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci1uLTIwO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcXG59XFxuXFxuLmNyb3NzIHtcXG4gIEBhcHBseSByZWxhdGl2ZSBtbC01IGgtMyB3LTMgb3ZlcmZsb3ctaGlkZGVuO1xcblxcbiAgJjpiZWZvcmUsXFxuICAmOmFmdGVyIHtcXG4gICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgIEBhcHBseSBhYnNvbHV0ZSBsZWZ0LTEvMiB0b3AtMCBibG9jayBoLTMgdy0wLjUgLXRyYW5zbGF0ZS14LTEvMiByb3VuZGVkLXhsIGJnLWJsdWUtNTA7XFxuICB9XFxuXFxuICAmOmJlZm9yZSB7XFxuICAgIEBhcHBseSByb3RhdGUtNDU7XFxuICB9XFxuXFxuICAmOmFmdGVyIHtcXG4gICAgQGFwcGx5IC1yb3RhdGUtNDU7XFxuICB9XFxufVxcblxcbi5hY3Rpdml0eS10aXRsZSB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuYWNjb3JkaW9uLWNvbnRlbnRbZGF0YS12LTA2M2NiZDg2XSB7XFxuICBoZWlnaHQ6IDBweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xcbn1cXG4uYWNjb3JkaW9uLWNvbnRlbnQgZGl2W2RhdGEtdi0wNjNjYmQ4Nl0ge1xcbiAgbWFyZ2luLXRvcDogMXJlbTtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tbi0yMCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xcbn1cXG4uYWN0aXZpdHktdGl0bGVbZGF0YS12LTA2M2NiZDg2XSB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9FcnJvckl0ZW0udnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUVFO0VBQUEsV0FBQTtFQUFBLGdCQUFBO0VBQUEsd0JBQUE7RUFBQSx3REFBQTtFQUFBLDBCQUFBO0FBQUE7QUFFRTtFQUFBLGdCQUFBO0VBQUEscUJBQUE7RUFBQSxzQkFBQTtFQUFBLHlEQUFBO0VBQUEsb0JBQUE7RUFBQSx1QkFBQTtBQUFBO0FBSUo7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7QUFBRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xcbiAgQGFwcGx5IGgtMCBvdmVyZmxvdy1oaWRkZW4gdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNTAwO1xcbiAgZGl2IHtcXG4gICAgQGFwcGx5IG10LTQgYm9yZGVyLXQgYm9yZGVyLW4tMjAgcHktMztcXG4gIH1cXG59XFxuXFxuLmFjdGl2aXR5LXRpdGxlIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5hY3Rpdml0aWVzIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmFjdGl2aXRpZXMgLmVsZW1lbnRzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDBweCA4cHggOHB4IDBweDtcXG4gIHdpZHRoOiAxMjVweDtcXG4gIG1pbi1oZWlnaHQ6IDE3NHB4O1xcbn1cXG4uYWN0aXZpdGllcyAuZWxlbWVudHNfX3BhbmVsIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcXG4gIHBhZGRpbmc6IDFyZW07XFxuICAtLXR3LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDBweCA0cHggNDBweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcXG59XFxuLmFjdGl2aXRpZXMgLmVsZW1lbnRzX19wYW5lbCAucGFuZWxfX2lucHV0OmZvY3VzLCBcXG4uYWN0aXZpdGllcyAuZWxlbWVudHNfX3BhbmVsIC5wYW5lbF9fc2VhcmNoOmZvY3VzIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi00MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG4uYWN0aXZpdGllcyAuaG92ZXJfX3RleHQge1xcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XFxufVxcbi5hY3Rpdml0aWVzIC5idXR0b25fX2Ryb3Bkb3duIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAwcHg7XFxuICB0b3A6IDEwMCU7XFxuICB6LWluZGV4OiAxMDtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICAtLXR3LXNoYWRvdzogMHB4IDRweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDBweCA0cHggNDBweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcXG4gIG1pbi13aWR0aDogMTUwcHg7XFxufVxcbi5hY3Rpdml0aWVzIC5idXR0b25fX2Ryb3Bkb3duIGxpIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBwYWRkaW5nLXRvcDogMC4zNzVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC4zNzVyZW07XFxuICBwYWRkaW5nLWxlZnQ6IDAuODc1cmVtO1xcbiAgcGFkZGluZy1yaWdodDogMC44NzVyZW07XFxufVxcbi5hY3Rpdml0aWVzIC5idXR0b25fX2Ryb3Bkb3duIGxpOmhvdmVyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxufVxcbi5hY3Rpdml0aWVzIC5idXR0b25fX2Ryb3Bkb3duIGxpIHN2ZyB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvQWN0aXZpdGllc0VsZW1lbnRzLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFDQTtFQUNFLGtCQUFBO0FBQUY7QUFDRTtFQUNFLDhCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0FBQ0o7QUFHSTtFQUFBLHFCQUFBO0VBQUEsYUFBQTtFQUFBLDRDQUFBO0VBQUEsd0RBQUE7RUFBQSx1R0FBQTtBQUFBO0FBSUU7O0VBQUEsb0JBQUE7RUFBQSxnREFBQTtBQUFBO0FBS0Y7RUFBQSxvQkFBQTtBQUFBO0FBR0E7RUFBQSxrQkFBQTtFQUFBLFVBQUE7RUFBQSxTQUFBO0VBQUEsV0FBQTtFQUFBLGdCQUFBO0VBQUEsNENBQUE7RUFBQSx3REFBQTtFQUFBLHVHQUFBO0VBQ0EsZ0JBQUE7QUFEQTtBQUlFO0VBQUEsYUFBQTtFQUFBLHFCQUFBO0VBQUEsd0JBQUE7RUFBQSxzQkFBQTtFQUFBLHVCQUFBO0FBQUE7QUFBQTtFQUFBLGtCQUFBO0VBQUEsMERBQUE7QUFBQTtBQUdFO0VBQUEscUJBQUE7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4uYWN0aXZpdGllcyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAuZWxlbWVudHMge1xcbiAgICBib3JkZXItcmFkaXVzOiAwcHggOHB4IDhweCAwcHg7XFxuICAgIHdpZHRoOiAxMjVweDtcXG4gICAgbWluLWhlaWdodDogMTc0cHg7XFxuICB9XFxuXFxuICAuZWxlbWVudHNfX3BhbmVsIHtcXG4gICAgQGFwcGx5IHJvdW5kZWQtbGcgcC00IHNoYWRvdy1kcm9wZG93bjtcXG5cXG4gICAgLnBhbmVsX19pbnB1dDpmb2N1cyxcXG4gICAgLnBhbmVsX19zZWFyY2g6Zm9jdXMge1xcbiAgICAgIEBhcHBseSB0ZXh0LW4tNDA7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5ob3Zlcl9fdGV4dCB7XFxuICAgIEBhcHBseSBtbC0xO1xcbiAgfVxcbiAgLmJ1dHRvbl9fZHJvcGRvd24ge1xcbiAgICBAYXBwbHkgYWJzb2x1dGUgcmlnaHQtMCB0b3AtZnVsbCB6LTEwIHRleHQtbGVmdCBzaGFkb3ctZHJvcGRvd247XFxuICAgIG1pbi13aWR0aDogMTUwcHg7XFxuXFxuICAgIGxpIHtcXG4gICAgICBAYXBwbHkgZmxleCBweS0xLjUgcHgtMy41IGhvdmVyOmJnLXdoaXRlO1xcblxcbiAgICAgIHN2ZyB7XFxuICAgICAgICBAYXBwbHkgbXItMTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLm1hbmRhdG9yeTo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB3aWR0aDogMC41cHg7XFxuICBoZWlnaHQ6IDE0MHB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwLjI1cmVtO1xcbiAgcmlnaHQ6IC0xLjVyZW07XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLW4tMjApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxufVxcbi5lbGVtZW50IHtcXG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XFxuICBtYXJnaW4tbGVmdDogMC41cmVtO1xcbn1cXG4uZWxlbWVudF9faW5uZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxuLmVsZW1lbnRfX2lubmVyID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XFxuICAtLXR3LXNwYWNlLXgtcmV2ZXJzZTogMDtcXG4gIG1hcmdpbi1yaWdodDogY2FsYygwLjYyNXJlbSAqIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO1xcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMC42MjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSk7XFxufVxcbi5lbGVtZW50X19ub3RlcyB7XFxuICBoZWlnaHQ6IDFyZW07XFxuICB3aWR0aDogMnJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxufVxcbi5lbGVtZW50X19zZWFyY2gge1xcbiAgbWFyZ2luLXRvcDogMXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICBoZWlnaHQ6IDIuNXJlbTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1uLTMwKSwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcXG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTQwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxuICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBvdXRsaW5lLW9mZnNldDogMnB4O1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxufVxcbi5lbGVtZW50X19zZWFyY2g6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTMwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xcbn1cXG4uZWxlbWVudF9fc2VhcmNoOjpwbGFjZWhvbGRlciB7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tMzApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XFxufVxcbi5lbGVtZW50X19zZWFyY2g6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTQwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbi5lbGVtZW50X19zZWFyY2g6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi00MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG4udGFiX19saW5rcyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XFxufVxcbi50YWJfX2xpbmtzOjphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogMHB4O1xcbiAgbGVmdDogMHB4O1xcbiAgaGVpZ2h0OiAwLjI1cmVtO1xcbiAgd2lkdGg6IDEwMCU7XFxuICAtLXR3LXNjYWxlLXg6IDA7XFxuICAtLXR3LXNjYWxlLXk6IDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tYmx1ZWNvcmFsKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XFxufVxcbi50YWJfX2xpbmtzOmhvdmVyOjphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICAtLXR3LXNjYWxlLXg6IDE7XFxuICAtLXR3LXNjYWxlLXk6IDE7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcXG59XFxuLnRhYl9fbGlua3MtLWFjdGl2ZSB7XFxuICBmb250LXdlaWdodDogNzAwO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwpLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuLnRhYl9fbGlua3MtLWFjdGl2ZTo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IDBweDtcXG4gIGxlZnQ6IDBweDtcXG4gIGhlaWdodDogMC4yNXJlbTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1ibHVlY29yYWwpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcXG59XFxuLnNlcGFyYXRvciB7XFxuICBtYXJnaW4tbGVmdDogMXJlbTtcXG4gIG1hcmdpbi1yaWdodDogMXJlbTtcXG59XFxuLmxhc3Qge1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTMwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL09yZ2FuaXNhdGlvbkRhdGEudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUNBO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFBQSxZQUFBO0VBQUEsY0FBQTtFQUFBLGtCQUFBO0VBQUEseURBQUE7QUFBRjtBQUlFO0VBQUEsc0JBQUE7RUFBQSxtQkFBQTtBQUFBO0FBR0U7RUFBQSxhQUFBO0FBQUE7QUFBQTtFQUFBLHVCQUFBO0VBQUEsd0RBQUE7RUFBQSxpRUFBQTtBQUFBO0FBSUE7RUFBQSxZQUFBO0VBQUEsV0FBQTtFQUFBLHVCQUFBO0VBQUEsaUJBQUE7QUFBQTtBQUtGO0VBQUEsZ0JBQUE7RUFBQSxtQkFBQTtFQUFBLGNBQUE7RUFBQSxXQUFBO0VBQUEsc0JBQUE7RUFBQSxpQkFBQTtFQUFBLHNCQUFBO0VBQUEseURBQUE7RUFBQSxrQkFBQTtFQUFBLDBEQUFBO0VBQUEsb0JBQUE7RUFBQSx1QkFBQTtFQUFBLHNCQUFBO0VBQUEsb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGdEQUFBO0VBQUEsOEJBQUE7RUFBQSxtQkFBQTtFQUFBLDBCQUFBO0FBQUE7QUFHRTtFQUFBLG1CQUFBO0VBQUEsb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGdEQUFBO0VBQUEsMEJBQUE7RUFDQSx1QkFBQTtBQURBO0FBQUE7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtFQUFBLDBCQUFBO0VBQ0EsdUJBQUE7QUFEQTtBQUtBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtBQUFBO0FBQUE7RUFBQSxvQkFBQTtFQUFBLGdEQUFBO0FBQUE7QUFLRjtFQUFBLGtCQUFBO0VBQUEsZUFBQTtFQUFBLG9CQUFBO0VBQUEscUJBQUE7RUFBQSxzQkFBQTtBQUFBO0FBRUE7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFBQSxXQUFBO0VBQUEsU0FBQTtFQUFBLGVBQUE7RUFBQSxXQUFBO0VBQUEsZUFBQTtFQUFBLGVBQUE7RUFBQSwrTEFBQTtFQUFBLGtCQUFBO0VBQUEsOERBQUE7RUFBQSwwQkFBQTtBQUpKO0FBT0U7RUFDRSxXQUFBO0VBQ0EsbUJBQUE7RUFBQSxlQUFBO0VBQUEsZUFBQTtFQUFBLCtMQUFBO0FBTEo7QUFTSTtFQUFBLGdCQUFBO0VBQUEsb0JBQUE7RUFBQSxxREFBQTtBQUFBO0FBSUo7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFBQSxXQUFBO0VBQUEsU0FBQTtFQUFBLGVBQUE7RUFBQSxXQUFBO0VBQUEsa0JBQUE7RUFBQSw4REFBQTtFQUFBLDBCQUFBO0FBUEY7QUFXRTtFQUFBLGlCQUFBO0VBQUEsa0JBQUE7QUFBQTtBQUlBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtBQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbi5tYW5kYXRvcnk6OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgd2lkdGg6IDAuNXB4O1xcbiAgaGVpZ2h0OiAxNDBweDtcXG4gIEBhcHBseSBhYnNvbHV0ZSB0b3AtMSAtcmlnaHQtNiBiZy1uLTIwO1xcbn1cXG5cXG4uZWxlbWVudCB7XFxuICBAYXBwbHkgbWItMyBtbC0yO1xcblxcbiAgJl9faW5uZXIge1xcbiAgICBAYXBwbHkgZmxleCBzcGFjZS14LTIuNTtcXG4gIH1cXG5cXG4gICZfX25vdGVzIHtcXG4gICAgQGFwcGx5IGgtNCB3LTggcm91bmRlZC1zbSBib3JkZXI7XFxuICB9XFxufVxcblxcbi5lbGVtZW50X19zZWFyY2gge1xcbiAgQGFwcGx5IG15LTQgaC0xMCB3LWZ1bGwgcm91bmRlZCBib3JkZXIgYm9yZGVyLW4tMzAgYmctd2hpdGUgcHktMyBwci0zIHBsLTEwIHRleHQtbi00MCBvdXRsaW5lLW5vbmUgZHVyYXRpb24tMzAwO1xcblxcbiAgJjo6cGxhY2Vob2xkZXIge1xcbiAgICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tMzAgZHVyYXRpb24tMzAwO1xcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcXG4gIH1cXG5cXG4gICY6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcXG4gICAgQGFwcGx5IHRleHQtbi00MDtcXG4gIH1cXG59XFxuXFxuLnRhYl9fbGlua3Mge1xcbiAgQGFwcGx5IHJlbGF0aXZlIGN1cnNvci1wb2ludGVyIHB4LTIgcGItNjtcXG5cXG4gICY6OmFmdGVyIHtcXG4gICAgY29udGVudDogJyc7XFxuICAgIEBhcHBseSBhYnNvbHV0ZSBib3R0b20tMCBsZWZ0LTAgaC0xIHctZnVsbCBzY2FsZS0wIGJnLWJsdWVjb3JhbCBkdXJhdGlvbi0zMDA7XFxuICB9XFxuXFxuICAmOmhvdmVyOjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBAYXBwbHkgdmlzaWJsZSBzY2FsZS0xMDA7XFxuICB9XFxuXFxuICAmLS1hY3RpdmUge1xcbiAgICBAYXBwbHkgZm9udC1ib2xkIHRleHQtYmx1ZWNvcmFsO1xcbiAgfVxcbn1cXG5cXG4udGFiX19saW5rcy0tYWN0aXZlOjphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIEBhcHBseSBhYnNvbHV0ZSBib3R0b20tMCBsZWZ0LTAgaC0xIHctZnVsbCBiZy1ibHVlY29yYWwgZHVyYXRpb24tMzAwO1xcbn1cXG5cXG4uc2VwYXJhdG9yIHtcXG4gIEBhcHBseSBteC00O1xcbn1cXG5cXG4ubGFzdCB7XFxuICBAYXBwbHkgdGV4dC1uLTMwO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIucmVzZXQge1xcbiAgYm94LXNoYWRvdzogMHB4IDIwcHggNDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XFxuICBtYXJnaW4tbGVmdDogMC43NXJlbTtcXG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0td2hpdGUpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBwYWRkaW5nOiAxLjI1cmVtO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0NDBweCkge1xcbi5yZXNldCB7XFxuICAgIHBhZGRpbmc6IDIuNXJlbTtcXG59XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnJlc2V0IHtcXG4gICAgd2lkdGg6IDU4M3B4O1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBhZGRpbmc6IDZyZW07XFxufVxcbn1cXG4ucmVzZXRfX2NvbnRlbnQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5yZXNldF9fY29udGVudCAuaW5wdXQge1xcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xcbiAgcGFkZGluZy10b3A6IDEuMjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcXG59XFxuLnJlc2V0X19jb250ZW50IC5sb2NrLWljb24ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMS41cmVtO1xcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xcbiAgdG9wOiA0N3B4O1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbi5yZXNldF9fY29udGVudCAubG9jay1pY29uIHtcXG4gICAgdG9wOiA1MHB4O1xcbiAgICBmb250LXNpemU6IDIwcHg7XFxufVxcbn1cXG4ucmVzZXRfX2NvbnRlbnQgLm1haWwtaWNvbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAxLjVyZW07XFxuICB0b3A6IDQ3cHg7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnJlc2V0X19jb250ZW50IC5tYWlsLWljb24ge1xcbiAgICB0b3A6IDUxcHg7XFxufVxcbn1cXG4ucmVzZXQgaDIge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYmEodmFyKC0tbi01MCksIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4ucmVzZXQgaDIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XFxufVxcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbi5yZXNldCBoMiB7XFxuICAgIGZvbnQtc2l6ZTogNDBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDYwcHg7XFxufVxcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0NDBweCkge1xcbi5yZXNldCBoMiB7XFxuICAgIGZvbnQtc2l6ZTogMzJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7XFxufVxcbn1cXG4ucmVzZXQgcCB7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNDApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnJlc2V0IHAge1xcbiAgICBmb250LXNpemU6IDFyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XFxufVxcbn1cXG4ucmVzZXQgLnJlc2V0LWJ0biB7XFxuICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICBsaW5lLWhlaWdodDogMXJlbTtcXG4gIHBhZGRpbmc6IDE0cHg7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnJlc2V0IC5yZXNldC1idG4ge1xcbiAgICBwYWRkaW5nOiAxOHB4IDk0cHg7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG59XFxufVxcbi5yZXNldCAudmVyaWZpY2F0aW9uIHtcXG4gIGZvbnQtc2l6ZTogMTUwcHg7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnJlc2V0IC52ZXJpZmljYXRpb24ge1xcbiAgICBmb250LXNpemU6IDE5MHB4O1xcbn1cXG59XFxuLnJlc2V0X19wYXNzd29yZCB7XFxuICBoZWlnaHQ6IDYxMHB4O1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Jlc2V0UGFnZS52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQ0E7RUFXRSxrREFBQTtFQUNBLG9CQUFBO0VBQUEscUJBQUE7RUFBQSxxQkFBQTtFQUFBLGtCQUFBO0VBQUEsMERBQUE7RUFBQSxnQkFBQTtBQVZGO0FBREU7QUFDRTtJQUFBLGVBQUE7QUFBQTtBQUtKO0FBRkU7QUFMRjtJQU1JLFlBQUE7SUFDQSxZQUFBO0lBRUEsYUFBQTtBQUlGO0FBQ0Y7QUFDSTtFQUFBLGtCQUFBO0VBQUEsYUFBQTtFQUFBLHNCQUFBO0FBQUE7QUFHRTtFQUFBLGtCQUFBO0VBQUEscUJBQUE7RUFBQSxvQkFBQTtFQUFBLHVCQUFBO0FBQUE7QUFJQTtFQUFBLGtCQUFBO0VBQUEsWUFBQTtFQUFBLG1CQUFBO0VBQUEsb0JBQUE7RUFDQSxTQUFBO0FBREE7QUFHQTtBQUpGO0lBS0ksU0FBQTtJQUNBLGVBQUE7QUFFTjtBQUNGO0FBRU07RUFBQSxrQkFBQTtFQUFBLFlBQUE7RUFDQSxTQUFBO0FBREE7QUFHQTtBQUpGO0lBS0ksU0FBQTtBQUVOO0FBQ0Y7QUFXSTtFQUFBLGVBQUE7RUFBQSxnQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxxQkFBQTtBQUFBO0FBQUE7QUFUQTtBQUNFO0lBQUEsZUFBQTtJQUNBLGlCQUFBO0FBREE7QUFNTjtBQUZJO0FBQ0U7SUFBQSxlQUFBO0lBQ0EsaUJBQUE7QUFEQTtBQU9OO0FBREk7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLGVBQUE7SUFBQSxtQkFBQTtBQUFBO0FBQUE7QUFHQTtFQUFBLG1CQUFBO0VBQUEsV0FBQTtFQUFBLGtCQUFBO0VBQUEsaUJBQUE7RUFDQSxhQUFBO0FBREE7QUFHQTtBQUpGO0lBS0ksa0JBQUE7SUFDQSxlQUFBO0FBS0o7QUFDRjtBQUhFO0VBQ0UsZ0JBQUE7QUFLSjtBQUhJO0FBSEY7SUFJSSxnQkFBQTtBQU1KO0FBQ0Y7QUFIQTtFQUNFLGFBQUE7QUFNRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4ucmVzZXQge1xcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDQwcHgpIHtcXG4gICAgQGFwcGx5IHAtMTA7XFxuICB9XFxuXFxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbiAgICB3aWR0aDogNTgzcHg7XFxuICAgIG1hcmdpbjogYXV0bztcXG5cXG4gICAgQGFwcGx5IHAtMjQ7XFxuICB9XFxuICBib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG4gIEBhcHBseSBteC0zIHJvdW5kZWQtbGcgYmctd2hpdGUgcC01O1xcblxcbiAgJl9fY29udGVudCB7XFxuICAgIEBhcHBseSByZWxhdGl2ZSBmbGV4IGZsZXgtY29sO1xcblxcbiAgICAuaW5wdXQge1xcbiAgICAgIEBhcHBseSBteS0yIHB5LTU7XFxuICAgIH1cXG5cXG4gICAgLmxvY2staWNvbiB7XFxuICAgICAgQGFwcGx5IGFic29sdXRlIGxlZnQtNiB0ZXh0LWxnO1xcbiAgICAgIHRvcDogNDdweDtcXG5cXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbiAgICAgICAgdG9wOiA1MHB4O1xcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAubWFpbC1pY29uIHtcXG4gICAgICBAYXBwbHkgYWJzb2x1dGUgbGVmdC02O1xcbiAgICAgIHRvcDogNDdweDtcXG5cXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbiAgICAgICAgdG9wOiA1MXB4O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcbiAgaDIge1xcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbiAgICAgIEBhcHBseSB0ZXh0LWhlYWRpbmctMztcXG4gICAgICBsaW5lLWhlaWdodDogNjBweDtcXG4gICAgfVxcblxcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0NDBweCkge1xcbiAgICAgIEBhcHBseSB0ZXh0LWhlYWRpbmctNDtcXG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcXG4gICAgfVxcbiAgICBAYXBwbHkgdGV4dC1oZWFkaW5nLTUgZm9udC1ib2xkIHRleHQtbi01MCBzbTptYi0yO1xcbiAgfVxcbiAgcCB7XFxuICAgIEBhcHBseSB0ZXh0LXNtIHRleHQtbi00MCBzbTp0ZXh0LWJhc2U7XFxuICB9XFxuICAucmVzZXQtYnRuIHtcXG4gICAgQGFwcGx5IG10LTMgdy1mdWxsIHRleHQteHM7XFxuICAgIHBhZGRpbmc6IDE0cHg7XFxuXFxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuICAgICAgcGFkZGluZzogMThweCA5NHB4O1xcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgfVxcbiAgfVxcbiAgLnZlcmlmaWNhdGlvbiB7XFxuICAgIGZvbnQtc2l6ZTogMTUwcHg7XFxuXFxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuICAgICAgZm9udC1zaXplOiAxOTBweDtcXG4gICAgfVxcbiAgfVxcbn1cXG4ucmVzZXRfX3Bhc3N3b3JkIHtcXG4gIGhlaWdodDogNjEwcHg7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5sYWJlbCB7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTUwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIge1xcbiAgbWF4LXdpZHRoOiA4NjVweDtcXG4gIG1hcmdpbjogYXV0bztcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuLnNlY3Rpb25fX2NvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogMTIwNnB4O1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5mZWVkYmFjayB7XFxuICAgIHdpZHRoOiA3MDJweDtcXG59XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLmZlZWRiYWNrIHAge1xcbiAgbGluZS1oZWlnaHQ6IDIycHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3dyYXBwZXIge1xcbiAgYm94LXNoYWRvdzogMHB4IDIwcHggNDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3dyYXBwZXIgLnZlcmlmaWNhdGlvbiB7XFxuICBmb250LXNpemU6IDE5MHB4O1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSB7XFxuICBtYXJnaW4tdG9wOiAxLjc1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMS43NXJlbTtcXG4gIG1hcmdpbi1sZWZ0OiAwLjc1cmVtO1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3RpdGxlIHtcXG4gICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcXG59XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcXG4gICAgbWFyZ2luLXRvcDogMy41cmVtO1xcbn1cXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDQwcHgpIHtcXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSB7XFxuICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xcbn1cXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fdGl0bGUgcCB7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XFxuICBjb2xvcjogcmdiYSh2YXIoLS1uLTQwKSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3RpdGxlIHAge1xcbiAgICBmb250LXNpemU6IDFyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XFxufVxcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5yZWdpc3Rlcl9fc2lkZWJhciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWVnZ3NoZWxsKSwgdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbiAgcGFkZGluZzogOTZweCAzMnB4IDQwcHg7XFxuICB3aWR0aDogMzQ0cHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnJlZ2lzdGVyX19zaWRlYmFyIHVsIHtcXG4gIHdpZHRoOiAyNTNweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAucmVnaXN0ZXJfX3NpZGViYXIgdWw6OmJlZm9yZSB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHdpZHRoOiA0cHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLW4tMjApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwcHg7XFxuICB0b3A6IDBweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAucmVnaXN0ZXJfX3NpZGViYXIgLmRldGFpbCB7XFxuICBtYXJnaW4tbGVmdDogNDVweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAucmVnaXN0ZXJfX3NpZGViYXIgLmxpc3RfX2FjdGl2ZTo6YWZ0ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogLTFweDtcXG4gIHdpZHRoOiA2cHg7XFxuICBoZWlnaHQ6IDg1cHg7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXR1cnF1b2lzZSksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgei1pbmRleDogNTtcXG59XFxuLmZvcm0ge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS13aGl0ZSksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHBhZGRpbmc6IDEuMjVyZW07XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5mb3JtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XFxuICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcXG4gICAgcGFkZGluZy10b3A6IDIuNXJlbTtcXG4gICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcXG59XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcXG4uZm9ybSB7XFxuICAgIHBhZGRpbmctbGVmdDogNXJlbTtcXG4gICAgcGFkZGluZy1yaWdodDogNXJlbTtcXG59XFxufVxcbi5mb3JtIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcXG4gIHdpZHRoOiA4NjJweDtcXG59XFxuLmZvcm1fX2NvbnRhaW5lciB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSh2YXIoLS1uLTEwKSwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTtcXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XFxufVxcbi5mb3JtX19jb250YWluZXIgLmVycm9yX19pbnB1dCB7XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tY3JpbXNvbi01MCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxufVxcbi5mb3JtX19jb250ZW50IHtcXG4gIG1hcmdpbi10b3A6IDI0cHg7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xcbi5mb3JtX19jb250ZW50IHtcXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcXG4gICAgZ2FwOiAxNnB4O1xcbn1cXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvSWF0aVJlZ2lzdGVyUGFnZS52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUU7RUFBQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0JBQUE7RUFBQSxvQkFBQTtFQUFBLGdEQUFBO0FBQUE7QUFJQTtFQUlFLGdCQUFBO0VBQ0EsWUFBQTtBQUpKO0FBQUk7QUFERjtJQUVJLGlCQUFBO0FBR0o7QUFFRTtJQUVJLFlBQUE7QUFDTjtBQUpGO0FBTU07RUFDRSxpQkFBQTtBQUNSO0FBR0k7RUFDRSxrREFBQTtBQUROO0FBR007RUFDRSxnQkFBQTtBQURSO0FBVU07RUFBQSxtQkFBQTtFQUFBLHNCQUFBO0VBQUEsb0JBQUE7RUFBQSxxQkFBQTtFQUFBLGtCQUFBO0VBQUEsb0JBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxtQkFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEscUJBQUE7SUFBQSxrQkFBQTtBQUFBO0FBQUE7QUFKQTtBQUNFO0lBQUEsb0JBQUE7QUFBQTtBQUNSO0FBSU07RUFDRSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFBQSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7QUFGUjtBQUVRO0FBQUE7SUFBQSxlQUFBO0lBQUEsbUJBQUE7QUFBQTtBQUFBO0FBS0Y7RUFBQSxrQkFBQTtFQUFBLDZEQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0FBRkE7QUFJQTtFQUNFLFlBQUE7QUFKUjtBQU9NO0VBQ0UsV0FBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFBQSx5REFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtBQUxSO0FBUU07RUFDRSxpQkFBQTtBQU5SO0FBU007RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUFBLDhEQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQVBSO0FBY0U7RUFBQSxrQkFBQTtFQUFBLDBEQUFBO0VBQUEsZ0JBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxvQkFBQTtJQUFBLHFCQUFBO0lBQUEsbUJBQUE7SUFBQSxzQkFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBQUEsa0JBQUE7SUFBQSxtQkFBQTtBQUFBO0FBQUE7QUFERjtFQUVFLDJCQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBVkY7QUFhSTtFQUFBLHdCQUFBO0VBQUEsc0JBQUE7RUFBQSxnRUFBQTtFQUNBLG1CQUFBO0FBREE7QUFJRTtFQUFBLGlCQUFBO0VBQUEsc0JBQUE7RUFBQSwrREFBQTtBQUFBO0FBSUo7RUFDRSxnQkFBQTtBQVpKO0FBZ0JBO0FBQ0U7SUFDRSxhQUFBO0lBQ0EscUNBQUE7SUFDQSxTQUFBO0FBYkY7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJcXG4ubGFiZWwge1xcbiAgQGFwcGx5IHRleHQtc20gZm9udC1ub3JtYWwgdGV4dC1uLTUwO1xcbn1cXG5cXG4uc2VjdGlvbiB7XFxuICAmX19jb250YWluZXIge1xcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHtcXG4gICAgICBtYXgtd2lkdGg6IDEyMDZweDtcXG4gICAgfVxcbiAgICBtYXgtd2lkdGg6IDg2NXB4O1xcbiAgICBtYXJnaW46IGF1dG87XFxuXFxuICAgIC5mZWVkYmFjayB7XFxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XFxuICAgICAgICB3aWR0aDogNzAycHg7XFxuICAgICAgfVxcblxcbiAgICAgIHAge1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5zZWN0aW9uX193cmFwcGVyIHtcXG4gICAgICBib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG5cXG4gICAgICAudmVyaWZpY2F0aW9uIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMTkwcHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5zZWN0aW9uX190aXRsZSB7XFxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDQwcHgpIHtcXG4gICAgICAgIEBhcHBseSBsZWFkaW5nLTk7XFxuICAgICAgfVxcblxcbiAgICAgIEBhcHBseSBteS03IG14LTMgdGV4dC1jZW50ZXIgbGVhZGluZy03IHNtOmxlYWRpbmctMTAgbGc6bWItMTAgbGc6bXQtMTQ7XFxuXFxuICAgICAgcCB7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICAgICAgQGFwcGx5IHRleHQtc20gdGV4dC1uLTQwIHNtOnRleHQtYmFzZTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnJlZ2lzdGVyX19zaWRlYmFyIHtcXG4gICAgICBAYXBwbHkgYmctZWdnc2hlbGw7XFxuICAgICAgcGFkZGluZzogOTZweCAzMnB4IDQwcHg7XFxuICAgICAgd2lkdGg6IDM0NHB4O1xcblxcbiAgICAgIHVsIHtcXG4gICAgICAgIHdpZHRoOiAyNTNweDtcXG4gICAgICB9XFxuXFxuICAgICAgdWw6OmJlZm9yZSB7XFxuICAgICAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgICAgIHdpZHRoOiA0cHg7XFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICBAYXBwbHkgYmctbi0yMDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIGxlZnQ6IDBweDtcXG4gICAgICAgIHRvcDogMHB4O1xcbiAgICAgIH1cXG5cXG4gICAgICAuZGV0YWlsIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xcbiAgICAgIH1cXG5cXG4gICAgICAubGlzdF9fYWN0aXZlOjphZnRlciB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IDA7XFxuICAgICAgICBsZWZ0OiAtMXB4O1xcbiAgICAgICAgd2lkdGg6IDZweDtcXG4gICAgICAgIGhlaWdodDogODVweDtcXG4gICAgICAgIEBhcHBseSBiZy10dXJxdW9pc2U7XFxuICAgICAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgICAgIHotaW5kZXg6IDU7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxufVxcblxcbi5mb3JtIHtcXG4gIEBhcHBseSBiZy13aGl0ZSBwLTUgc206cHgtMTAgc206cHktMTAgbGc6cHgtMjA7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxuICB3aWR0aDogODYycHg7XFxuXFxuICAmX19jb250YWluZXIge1xcbiAgICBAYXBwbHkgYm9yZGVyLWItMiBib3JkZXItYi1uLTEwO1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xcblxcbiAgICAuZXJyb3JfX2lucHV0IHtcXG4gICAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1jcmltc29uLTUwO1xcbiAgICB9XFxuICB9XFxuXFxuICAmX19jb250ZW50IHtcXG4gICAgbWFyZ2luLXRvcDogMjRweDtcXG4gIH1cXG59XFxuXFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuICAuZm9ybV9fY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XFxuICAgIGdhcDogMTZweDtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmxhYmVsIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNTApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciB7XFxuICBtYXgtd2lkdGg6IDg2NXB4O1xcbiAgbWFyZ2luOiBhdXRvO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHtcXG4uc2VjdGlvbl9fY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiAxMjA2cHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLmZlZWRiYWNrIHtcXG4gICAgd2lkdGg6IDcwMnB4O1xcbn1cXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuZmVlZGJhY2sgcCB7XFxuICBsaW5lLWhlaWdodDogMjJweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fd3JhcHBlciB7XFxuICBib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fd3JhcHBlciAudmVyaWZpY2F0aW9uIHtcXG4gIGZvbnQtc2l6ZTogMTkwcHg7XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3RpdGxlIHtcXG4gIG1hcmdpbi10b3A6IDEuNzVyZW07XFxuICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtO1xcbiAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07XFxuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBsaW5lLWhlaWdodDogMS43NXJlbTtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fdGl0bGUge1xcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xcbn1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3RpdGxlIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAzLjVyZW07XFxufVxcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0NDBweCkge1xcbi5zZWN0aW9uX19jb250YWluZXIgLnNlY3Rpb25fX3RpdGxlIHtcXG4gICAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XFxufVxcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5zZWN0aW9uX190aXRsZSBwIHtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2JhKHZhcigtLW4tNDApLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAuc2VjdGlvbl9fdGl0bGUgcCB7XFxuICAgIGZvbnQtc2l6ZTogMXJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcXG59XFxufVxcbi5zZWN0aW9uX19jb250YWluZXIgLnJlZ2lzdGVyX19zaWRlYmFyIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tZWdnc2hlbGwpLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBwYWRkaW5nOiA5NnB4IDMycHggNDBweDtcXG4gIHdpZHRoOiAzNDRweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAucmVnaXN0ZXJfX3NpZGViYXIgdWwge1xcbiAgd2lkdGg6IDI1M3B4O1xcbn1cXG4uc2VjdGlvbl9fY29udGFpbmVyIC5yZWdpc3Rlcl9fc2lkZWJhciB1bDo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgd2lkdGg6IDRweDtcXG4gIGhlaWdodDogMTc1cHg7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLW4tMjApLCB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwcHg7XFxuICB0b3A6IDBweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAucmVnaXN0ZXJfX3NpZGViYXIgLmRldGFpbCB7XFxuICBtYXJnaW4tbGVmdDogNDVweDtcXG59XFxuLnNlY3Rpb25fX2NvbnRhaW5lciAucmVnaXN0ZXJfX3NpZGViYXIgLmxpc3RfX2FjdGl2ZTo6YWZ0ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogLTFweDtcXG4gIHdpZHRoOiA2cHg7XFxuICBoZWlnaHQ6IDg1cHg7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLXR1cnF1b2lzZSksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgei1pbmRleDogNTtcXG59XFxuLmZvcm0ge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS13aGl0ZSksIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcXG4gIHBhZGRpbmc6IDEuMjVyZW07XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcbi5mb3JtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XFxuICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcXG4gICAgcGFkZGluZy10b3A6IDIuNXJlbTtcXG4gICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcXG59XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcXG4uZm9ybSB7XFxuICAgIHBhZGRpbmctbGVmdDogNXJlbTtcXG4gICAgcGFkZGluZy1yaWdodDogNXJlbTtcXG59XFxufVxcbi5mb3JtIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcXG4gIHdpZHRoOiA4NjJweDtcXG59XFxuLmZvcm1fX2NvbnRhaW5lciB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSh2YXIoLS1uLTEwKSwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTtcXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XFxufVxcbi5mb3JtX19jb250YWluZXIgLmVycm9yX19pbnB1dCB7XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tY3JpbXNvbi01MCksIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7XFxufVxcbi5mb3JtX19jb250ZW50IHtcXG4gIG1hcmdpbi10b3A6IDI0cHg7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xcbi5mb3JtX19jb250ZW50IHtcXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcXG4gICAgZ2FwOiAxNnB4O1xcbn1cXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUmVnaXN0ZXJQYWdlLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFFRTtFQUFBLG1CQUFBO0VBQUEsb0JBQUE7RUFBQSxnQkFBQTtFQUFBLG9CQUFBO0VBQUEsZ0RBQUE7QUFBQTtBQUlBO0VBSUUsZ0JBQUE7RUFDQSxZQUFBO0FBSko7QUFBSTtBQURGO0lBRUksaUJBQUE7QUFHSjtBQUVFO0lBRUksWUFBQTtBQUNOO0FBSkY7QUFNTTtFQUNFLGlCQUFBO0FBQ1I7QUFHSTtFQUNFLGtEQUFBO0FBRE47QUFHTTtFQUNFLGdCQUFBO0FBRFI7QUFVTTtFQUFBLG1CQUFBO0VBQUEsc0JBQUE7RUFBQSxvQkFBQTtFQUFBLHFCQUFBO0VBQUEsa0JBQUE7RUFBQSxvQkFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLG1CQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxxQkFBQTtJQUFBLGtCQUFBO0FBQUE7QUFBQTtBQUpBO0FBQ0U7SUFBQSxvQkFBQTtBQUFBO0FBQ1I7QUFJTTtFQUNFLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUFBLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxnREFBQTtBQUZSO0FBRVE7QUFBQTtJQUFBLGVBQUE7SUFBQSxtQkFBQTtBQUFBO0FBQUE7QUFLRjtFQUFBLGtCQUFBO0VBQUEsNkRBQUE7RUFDQSx1QkFBQTtFQUNBLFlBQUE7QUFGQTtBQUlBO0VBQ0UsWUFBQTtBQUpSO0FBT007RUFDRSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUFBLHlEQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0FBTFI7QUFRTTtFQUNFLGlCQUFBO0FBTlI7QUFTTTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFVBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQUEsOERBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0FBUFI7QUFjRTtFQUFBLGtCQUFBO0VBQUEsMERBQUE7RUFBQSxnQkFBQTtBQUFBO0FBQUE7QUFBQTtJQUFBLG9CQUFBO0lBQUEscUJBQUE7SUFBQSxtQkFBQTtJQUFBLHNCQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFBQSxrQkFBQTtJQUFBLG1CQUFBO0FBQUE7QUFBQTtBQURGO0VBRUUsMkJBQUE7RUFDQSw4QkFBQTtFQUNBLFlBQUE7QUFWRjtBQWFJO0VBQUEsd0JBQUE7RUFBQSxzQkFBQTtFQUFBLGdFQUFBO0VBQ0EsbUJBQUE7QUFEQTtBQUlFO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFQUFBLCtEQUFBO0FBQUE7QUFJSjtFQUNFLGdCQUFBO0FBWko7QUFnQkE7QUFDRTtJQUNFLGFBQUE7SUFDQSxxQ0FBQTtJQUNBLFNBQUE7QUFiRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIlxcbi5sYWJlbCB7XFxuICBAYXBwbHkgdGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LW4tNTA7XFxufVxcblxcbi5zZWN0aW9uIHtcXG4gICZfX2NvbnRhaW5lciB7XFxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyODBweCkge1xcbiAgICAgIG1heC13aWR0aDogMTIwNnB4O1xcbiAgICB9XFxuICAgIG1heC13aWR0aDogODY1cHg7XFxuICAgIG1hcmdpbjogYXV0bztcXG5cXG4gICAgLmZlZWRiYWNrIHtcXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHtcXG4gICAgICAgIHdpZHRoOiA3MDJweDtcXG4gICAgICB9XFxuXFxuICAgICAgcCB7XFxuICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnNlY3Rpb25fX3dyYXBwZXIge1xcbiAgICAgIGJveC1zaGFkb3c6IDBweCAyMHB4IDQwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xcblxcbiAgICAgIC52ZXJpZmljYXRpb24ge1xcbiAgICAgICAgZm9udC1zaXplOiAxOTBweDtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnNlY3Rpb25fX3RpdGxlIHtcXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0NDBweCkge1xcbiAgICAgICAgQGFwcGx5IGxlYWRpbmctOTtcXG4gICAgICB9XFxuXFxuICAgICAgQGFwcGx5IG15LTcgbXgtMyB0ZXh0LWNlbnRlciBsZWFkaW5nLTcgc206bGVhZGluZy0xMCBsZzptYi0xMCBsZzptdC0xNDtcXG5cXG4gICAgICBwIHtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBAYXBwbHkgdGV4dC1zbSB0ZXh0LW4tNDAgc206dGV4dC1iYXNlO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAucmVnaXN0ZXJfX3NpZGViYXIge1xcbiAgICAgIEBhcHBseSBiZy1lZ2dzaGVsbDtcXG4gICAgICBwYWRkaW5nOiA5NnB4IDMycHggNDBweDtcXG4gICAgICB3aWR0aDogMzQ0cHg7XFxuXFxuICAgICAgdWwge1xcbiAgICAgICAgd2lkdGg6IDI1M3B4O1xcbiAgICAgIH1cXG5cXG4gICAgICB1bDo6YmVmb3JlIHtcXG4gICAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICAgICAgd2lkdGg6IDRweDtcXG4gICAgICAgIGhlaWdodDogMTc1cHg7XFxuICAgICAgICBAYXBwbHkgYmctbi0yMDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIGxlZnQ6IDBweDtcXG4gICAgICAgIHRvcDogMHB4O1xcbiAgICAgIH1cXG5cXG4gICAgICAuZGV0YWlsIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xcbiAgICAgIH1cXG5cXG4gICAgICAubGlzdF9fYWN0aXZlOjphZnRlciB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IDA7XFxuICAgICAgICBsZWZ0OiAtMXB4O1xcbiAgICAgICAgd2lkdGg6IDZweDtcXG4gICAgICAgIGhlaWdodDogODVweDtcXG4gICAgICAgIEBhcHBseSBiZy10dXJxdW9pc2U7XFxuICAgICAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgICAgIHotaW5kZXg6IDU7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxufVxcblxcbi5mb3JtIHtcXG4gIEBhcHBseSBiZy13aGl0ZSBwLTUgc206cHgtMTAgc206cHktMTAgbGc6cHgtMjA7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxuICB3aWR0aDogODYycHg7XFxuXFxuICAmX19jb250YWluZXIge1xcbiAgICBAYXBwbHkgYm9yZGVyLWItMiBib3JkZXItYi1uLTEwO1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xcblxcbiAgICAuZXJyb3JfX2lucHV0IHtcXG4gICAgICBAYXBwbHkgYm9yZGVyIGJvcmRlci1jcmltc29uLTUwO1xcbiAgICB9XFxuICB9XFxuXFxuICAmX19jb250ZW50IHtcXG4gICAgbWFyZ2luLXRvcDogMjRweDtcXG4gIH1cXG59XFxuXFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuICAuZm9ybV9fY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XFxuICAgIGdhcDogMTZweDtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiI2J0bltkYXRhLXYtYTE4NjFmM2VdIHtcXG4gIHBhZGRpbmc6IDEzcHggMDtcXG59XFxuI2J0biBzdmdbZGF0YS12LWExODYxZjNlXSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMS43NXJlbTtcXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDJyZW07XFxuICB0cmFuc2l0aW9uOiAwLjRzO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xcbiNidG5bZGF0YS12LWExODYxZjNlXSB7XFxuICAgIHBhZGRpbmc6IDE4cHggMDtcXG59XFxufVxcbi51c2VybmFtZVtkYXRhLXYtYTE4NjFmM2VdIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcXG59XFxuLnBhc3N3b3JkW2RhdGEtdi1hMTg2MWYzZV0ge1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xcbn1cXG5sYWJlbFtkYXRhLXYtYTE4NjFmM2VdIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3Jlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1NpZ25Jbi52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQ0E7RUFDRSxlQUFBO0FBQUY7QUFHSTtFQUFBLGtCQUFBO0VBQUEsY0FBQTtFQUFBLGlCQUFBO0VBQUEsaUJBQUE7RUFDQSxnQkFBQTtBQURBO0FBSUo7QUFDRTtJQUNFLGVBQUE7QUFBRjtBQUNGO0FBR0U7RUFBQSxxQkFBQTtBQUFBO0FBR0E7RUFBQSxxQkFBQTtBQUFBO0FBR0E7RUFBQSxxQkFBQTtFQUFBLGdCQUFBO0FBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuI2J0biB7XFxuICBwYWRkaW5nOiAxM3B4IDA7XFxuXFxuICBzdmcge1xcbiAgICBAYXBwbHkgYWJzb2x1dGUgcmlnaHQtNyB0ZXh0LTJ4bDtcXG4gICAgdHJhbnNpdGlvbjogMC40cztcXG4gIH1cXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcXG4gICNidG4ge1xcbiAgICBwYWRkaW5nOiAxOHB4IDA7XFxuICB9XFxufVxcbi51c2VybmFtZSB7XFxuICBAYXBwbHkgbWItMjtcXG59XFxuLnBhc3N3b3JkIHtcXG4gIEBhcHBseSBtYi0yO1xcbn1cXG5sYWJlbCB7XFxuICBAYXBwbHkgbWItMiBmb250LWJvbGQ7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiLCJ2YXIgbWFwID0ge1xuXHRcIi4vYWZcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FmLmpzXCIsXG5cdFwiLi9hZi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYWYuanNcIixcblx0XCIuL2FyXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci5qc1wiLFxuXHRcIi4vYXItZHpcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWR6LmpzXCIsXG5cdFwiLi9hci1kei5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItZHouanNcIixcblx0XCIuL2FyLWt3XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1rdy5qc1wiLFxuXHRcIi4vYXIta3cuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWt3LmpzXCIsXG5cdFwiLi9hci1seVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbHkuanNcIixcblx0XCIuL2FyLWx5LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1seS5qc1wiLFxuXHRcIi4vYXItbWFcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLW1hLmpzXCIsXG5cdFwiLi9hci1tYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbWEuanNcIixcblx0XCIuL2FyLXNhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1zYS5qc1wiLFxuXHRcIi4vYXItc2EuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLXNhLmpzXCIsXG5cdFwiLi9hci10blwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItdG4uanNcIixcblx0XCIuL2FyLXRuLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci10bi5qc1wiLFxuXHRcIi4vYXIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLmpzXCIsXG5cdFwiLi9helwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXouanNcIixcblx0XCIuL2F6LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hei5qc1wiLFxuXHRcIi4vYmVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JlLmpzXCIsXG5cdFwiLi9iZS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmUuanNcIixcblx0XCIuL2JnXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9iZy5qc1wiLFxuXHRcIi4vYmcuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JnLmpzXCIsXG5cdFwiLi9ibVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm0uanNcIixcblx0XCIuL2JtLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ibS5qc1wiLFxuXHRcIi4vYm5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JuLmpzXCIsXG5cdFwiLi9ibi1iZFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm4tYmQuanNcIixcblx0XCIuL2JuLWJkLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ibi1iZC5qc1wiLFxuXHRcIi4vYm4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JuLmpzXCIsXG5cdFwiLi9ib1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm8uanNcIixcblx0XCIuL2JvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9iby5qc1wiLFxuXHRcIi4vYnJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JyLmpzXCIsXG5cdFwiLi9ici5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnIuanNcIixcblx0XCIuL2JzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9icy5qc1wiLFxuXHRcIi4vYnMuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JzLmpzXCIsXG5cdFwiLi9jYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY2EuanNcIixcblx0XCIuL2NhLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jYS5qc1wiLFxuXHRcIi4vY3NcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2NzLmpzXCIsXG5cdFwiLi9jcy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3MuanNcIixcblx0XCIuL2N2XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jdi5qc1wiLFxuXHRcIi4vY3YuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2N2LmpzXCIsXG5cdFwiLi9jeVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3kuanNcIixcblx0XCIuL2N5LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jeS5qc1wiLFxuXHRcIi4vZGFcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RhLmpzXCIsXG5cdFwiLi9kYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGEuanNcIixcblx0XCIuL2RlXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kZS5qc1wiLFxuXHRcIi4vZGUtYXRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLWF0LmpzXCIsXG5cdFwiLi9kZS1hdC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtYXQuanNcIixcblx0XCIuL2RlLWNoXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kZS1jaC5qc1wiLFxuXHRcIi4vZGUtY2guanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLWNoLmpzXCIsXG5cdFwiLi9kZS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUuanNcIixcblx0XCIuL2R2XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kdi5qc1wiLFxuXHRcIi4vZHYuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2R2LmpzXCIsXG5cdFwiLi9lbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZWwuanNcIixcblx0XCIuL2VsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbC5qc1wiLFxuXHRcIi4vZW4tYXVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWF1LmpzXCIsXG5cdFwiLi9lbi1hdS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tYXUuanNcIixcblx0XCIuL2VuLWNhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1jYS5qc1wiLFxuXHRcIi4vZW4tY2EuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWNhLmpzXCIsXG5cdFwiLi9lbi1nYlwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tZ2IuanNcIixcblx0XCIuL2VuLWdiLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1nYi5qc1wiLFxuXHRcIi4vZW4taWVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWllLmpzXCIsXG5cdFwiLi9lbi1pZS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWUuanNcIixcblx0XCIuL2VuLWlsXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1pbC5qc1wiLFxuXHRcIi4vZW4taWwuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWlsLmpzXCIsXG5cdFwiLi9lbi1pblwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taW4uanNcIixcblx0XCIuL2VuLWluLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1pbi5qc1wiLFxuXHRcIi4vZW4tbnpcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLW56LmpzXCIsXG5cdFwiLi9lbi1uei5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tbnouanNcIixcblx0XCIuL2VuLXNnXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1zZy5qc1wiLFxuXHRcIi4vZW4tc2cuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLXNnLmpzXCIsXG5cdFwiLi9lb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW8uanNcIixcblx0XCIuL2VvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lby5qc1wiLFxuXHRcIi4vZXNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLmpzXCIsXG5cdFwiLi9lcy1kb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtZG8uanNcIixcblx0XCIuL2VzLWRvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy1kby5qc1wiLFxuXHRcIi4vZXMtbXhcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLW14LmpzXCIsXG5cdFwiLi9lcy1teC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtbXguanNcIixcblx0XCIuL2VzLXVzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy11cy5qc1wiLFxuXHRcIi4vZXMtdXMuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLXVzLmpzXCIsXG5cdFwiLi9lcy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMuanNcIixcblx0XCIuL2V0XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ldC5qc1wiLFxuXHRcIi4vZXQuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2V0LmpzXCIsXG5cdFwiLi9ldVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXUuanNcIixcblx0XCIuL2V1LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ldS5qc1wiLFxuXHRcIi4vZmFcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZhLmpzXCIsXG5cdFwiLi9mYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmEuanNcIixcblx0XCIuL2ZpXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9maS5qc1wiLFxuXHRcIi4vZmkuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZpLmpzXCIsXG5cdFwiLi9maWxcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZpbC5qc1wiLFxuXHRcIi4vZmlsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9maWwuanNcIixcblx0XCIuL2ZvXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mby5qc1wiLFxuXHRcIi4vZm8uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZvLmpzXCIsXG5cdFwiLi9mclwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnIuanNcIixcblx0XCIuL2ZyLWNhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci1jYS5qc1wiLFxuXHRcIi4vZnItY2EuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNhLmpzXCIsXG5cdFwiLi9mci1jaFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnItY2guanNcIixcblx0XCIuL2ZyLWNoLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci1jaC5qc1wiLFxuXHRcIi4vZnIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLmpzXCIsXG5cdFwiLi9meVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnkuanNcIixcblx0XCIuL2Z5LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9meS5qc1wiLFxuXHRcIi4vZ2FcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dhLmpzXCIsXG5cdFwiLi9nYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ2EuanNcIixcblx0XCIuL2dkXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nZC5qc1wiLFxuXHRcIi4vZ2QuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dkLmpzXCIsXG5cdFwiLi9nbFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ2wuanNcIixcblx0XCIuL2dsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nbC5qc1wiLFxuXHRcIi4vZ29tLWRldmFcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1kZXZhLmpzXCIsXG5cdFwiLi9nb20tZGV2YS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ29tLWRldmEuanNcIixcblx0XCIuL2dvbS1sYXRuXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nb20tbGF0bi5qc1wiLFxuXHRcIi4vZ29tLWxhdG4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1sYXRuLmpzXCIsXG5cdFwiLi9ndVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ3UuanNcIixcblx0XCIuL2d1LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ndS5qc1wiLFxuXHRcIi4vaGVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hlLmpzXCIsXG5cdFwiLi9oZS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaGUuanNcIixcblx0XCIuL2hpXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oaS5qc1wiLFxuXHRcIi4vaGkuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hpLmpzXCIsXG5cdFwiLi9oclwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaHIuanNcIixcblx0XCIuL2hyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oci5qc1wiLFxuXHRcIi4vaHVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h1LmpzXCIsXG5cdFwiLi9odS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaHUuanNcIixcblx0XCIuL2h5LWFtXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oeS1hbS5qc1wiLFxuXHRcIi4vaHktYW0uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h5LWFtLmpzXCIsXG5cdFwiLi9pZFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaWQuanNcIixcblx0XCIuL2lkLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pZC5qc1wiLFxuXHRcIi4vaXNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lzLmpzXCIsXG5cdFwiLi9pcy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaXMuanNcIixcblx0XCIuL2l0XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pdC5qc1wiLFxuXHRcIi4vaXQtY2hcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LWNoLmpzXCIsXG5cdFwiLi9pdC1jaC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaXQtY2guanNcIixcblx0XCIuL2l0LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pdC5qc1wiLFxuXHRcIi4vamFcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2phLmpzXCIsXG5cdFwiLi9qYS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvamEuanNcIixcblx0XCIuL2p2XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9qdi5qc1wiLFxuXHRcIi4vanYuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2p2LmpzXCIsXG5cdFwiLi9rYVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva2EuanNcIixcblx0XCIuL2thLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rYS5qc1wiLFxuXHRcIi4va2tcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2trLmpzXCIsXG5cdFwiLi9ray5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva2suanNcIixcblx0XCIuL2ttXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rbS5qc1wiLFxuXHRcIi4va20uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ttLmpzXCIsXG5cdFwiLi9rblwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva24uanNcIixcblx0XCIuL2tuLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rbi5qc1wiLFxuXHRcIi4va29cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tvLmpzXCIsXG5cdFwiLi9rby5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva28uanNcIixcblx0XCIuL2t1XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rdS5qc1wiLFxuXHRcIi4va3UuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t1LmpzXCIsXG5cdFwiLi9reVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva3kuanNcIixcblx0XCIuL2t5LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9reS5qc1wiLFxuXHRcIi4vbGJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xiLmpzXCIsXG5cdFwiLi9sYi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbGIuanNcIixcblx0XCIuL2xvXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sby5qc1wiLFxuXHRcIi4vbG8uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xvLmpzXCIsXG5cdFwiLi9sdFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbHQuanNcIixcblx0XCIuL2x0LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sdC5qc1wiLFxuXHRcIi4vbHZcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x2LmpzXCIsXG5cdFwiLi9sdi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbHYuanNcIixcblx0XCIuL21lXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tZS5qc1wiLFxuXHRcIi4vbWUuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21lLmpzXCIsXG5cdFwiLi9taVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWkuanNcIixcblx0XCIuL21pLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9taS5qc1wiLFxuXHRcIi4vbWtcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21rLmpzXCIsXG5cdFwiLi9tay5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWsuanNcIixcblx0XCIuL21sXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tbC5qc1wiLFxuXHRcIi4vbWwuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21sLmpzXCIsXG5cdFwiLi9tblwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbW4uanNcIixcblx0XCIuL21uLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tbi5qc1wiLFxuXHRcIi4vbXJcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21yLmpzXCIsXG5cdFwiLi9tci5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXIuanNcIixcblx0XCIuL21zXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tcy5qc1wiLFxuXHRcIi4vbXMtbXlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLW15LmpzXCIsXG5cdFwiLi9tcy1teS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXMtbXkuanNcIixcblx0XCIuL21zLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tcy5qc1wiLFxuXHRcIi4vbXRcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL210LmpzXCIsXG5cdFwiLi9tdC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXQuanNcIixcblx0XCIuL215XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9teS5qc1wiLFxuXHRcIi4vbXkuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL215LmpzXCIsXG5cdFwiLi9uYlwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmIuanNcIixcblx0XCIuL25iLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9uYi5qc1wiLFxuXHRcIi4vbmVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25lLmpzXCIsXG5cdFwiLi9uZS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmUuanNcIixcblx0XCIuL25sXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubC5qc1wiLFxuXHRcIi4vbmwtYmVcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLWJlLmpzXCIsXG5cdFwiLi9ubC1iZS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmwtYmUuanNcIixcblx0XCIuL25sLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubC5qc1wiLFxuXHRcIi4vbm5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25uLmpzXCIsXG5cdFwiLi9ubi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbm4uanNcIixcblx0XCIuL29jLWxuY1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvb2MtbG5jLmpzXCIsXG5cdFwiLi9vYy1sbmMuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL29jLWxuYy5qc1wiLFxuXHRcIi4vcGEtaW5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3BhLWluLmpzXCIsXG5cdFwiLi9wYS1pbi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcGEtaW4uanNcIixcblx0XCIuL3BsXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wbC5qc1wiLFxuXHRcIi4vcGwuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3BsLmpzXCIsXG5cdFwiLi9wdFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcHQuanNcIixcblx0XCIuL3B0LWJyXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC1ici5qc1wiLFxuXHRcIi4vcHQtYnIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3B0LWJyLmpzXCIsXG5cdFwiLi9wdC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcHQuanNcIixcblx0XCIuL3JvXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9yby5qc1wiLFxuXHRcIi4vcm8uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3JvLmpzXCIsXG5cdFwiLi9ydVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcnUuanNcIixcblx0XCIuL3J1LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ydS5qc1wiLFxuXHRcIi4vc2RcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NkLmpzXCIsXG5cdFwiLi9zZC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2QuanNcIixcblx0XCIuL3NlXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZS5qc1wiLFxuXHRcIi4vc2UuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NlLmpzXCIsXG5cdFwiLi9zaVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2kuanNcIixcblx0XCIuL3NpLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zaS5qc1wiLFxuXHRcIi4vc2tcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NrLmpzXCIsXG5cdFwiLi9zay5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2suanNcIixcblx0XCIuL3NsXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zbC5qc1wiLFxuXHRcIi4vc2wuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NsLmpzXCIsXG5cdFwiLi9zcVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3EuanNcIixcblx0XCIuL3NxLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zcS5qc1wiLFxuXHRcIi4vc3JcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NyLmpzXCIsXG5cdFwiLi9zci1jeXJsXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci1jeXJsLmpzXCIsXG5cdFwiLi9zci1jeXJsLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci1jeXJsLmpzXCIsXG5cdFwiLi9zci5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3IuanNcIixcblx0XCIuL3NzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zcy5qc1wiLFxuXHRcIi4vc3MuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NzLmpzXCIsXG5cdFwiLi9zdlwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3YuanNcIixcblx0XCIuL3N2LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zdi5qc1wiLFxuXHRcIi4vc3dcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N3LmpzXCIsXG5cdFwiLi9zdy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3cuanNcIixcblx0XCIuL3RhXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90YS5qc1wiLFxuXHRcIi4vdGEuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RhLmpzXCIsXG5cdFwiLi90ZVwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGUuanNcIixcblx0XCIuL3RlLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ZS5qc1wiLFxuXHRcIi4vdGV0XCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ZXQuanNcIixcblx0XCIuL3RldC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGV0LmpzXCIsXG5cdFwiLi90Z1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGcuanNcIixcblx0XCIuL3RnLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90Zy5qc1wiLFxuXHRcIi4vdGhcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RoLmpzXCIsXG5cdFwiLi90aC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGguanNcIixcblx0XCIuL3RrXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ay5qc1wiLFxuXHRcIi4vdGsuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RrLmpzXCIsXG5cdFwiLi90bC1waFwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGwtcGguanNcIixcblx0XCIuL3RsLXBoLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bC1waC5qc1wiLFxuXHRcIi4vdGxoXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bGguanNcIixcblx0XCIuL3RsaC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGxoLmpzXCIsXG5cdFwiLi90clwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHIuanNcIixcblx0XCIuL3RyLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ci5qc1wiLFxuXHRcIi4vdHpsXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90emwuanNcIixcblx0XCIuL3R6bC5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHpsLmpzXCIsXG5cdFwiLi90em1cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS5qc1wiLFxuXHRcIi4vdHptLWxhdG5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS1sYXRuLmpzXCIsXG5cdFwiLi90em0tbGF0bi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHptLWxhdG4uanNcIixcblx0XCIuL3R6bS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHptLmpzXCIsXG5cdFwiLi91Zy1jblwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdWctY24uanNcIixcblx0XCIuL3VnLWNuLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91Zy1jbi5qc1wiLFxuXHRcIi4vdWtcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3VrLmpzXCIsXG5cdFwiLi91ay5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdWsuanNcIixcblx0XCIuL3VyXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ci5qc1wiLFxuXHRcIi4vdXIuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3VyLmpzXCIsXG5cdFwiLi91elwiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXouanNcIixcblx0XCIuL3V6LWxhdG5cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3V6LWxhdG4uanNcIixcblx0XCIuL3V6LWxhdG4uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3V6LWxhdG4uanNcIixcblx0XCIuL3V6LmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei5qc1wiLFxuXHRcIi4vdmlcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3ZpLmpzXCIsXG5cdFwiLi92aS5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdmkuanNcIixcblx0XCIuL3gtcHNldWRvXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS94LXBzZXVkby5qc1wiLFxuXHRcIi4veC1wc2V1ZG8uanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3gtcHNldWRvLmpzXCIsXG5cdFwiLi95b1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUveW8uanNcIixcblx0XCIuL3lvLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS95by5qc1wiLFxuXHRcIi4vemgtY25cIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWNuLmpzXCIsXG5cdFwiLi96aC1jbi5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvemgtY24uanNcIixcblx0XCIuL3poLWhrXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1oay5qc1wiLFxuXHRcIi4vemgtaGsuanNcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWhrLmpzXCIsXG5cdFwiLi96aC1tb1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvemgtbW8uanNcIixcblx0XCIuL3poLW1vLmpzXCI6IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1tby5qc1wiLFxuXHRcIi4vemgtdHdcIjogXCIuL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLXR3LmpzXCIsXG5cdFwiLi96aC10dy5qc1wiOiBcIi4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvemgtdHcuanNcIlxufTtcblxuXG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dChyZXEpIHtcblx0dmFyIGlkID0gd2VicGFja0NvbnRleHRSZXNvbHZlKHJlcSk7XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKGlkKTtcbn1cbmZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpIHtcblx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhtYXAsIHJlcSkpIHtcblx0XHR2YXIgZSA9IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIgKyByZXEgKyBcIidcIik7XG5cdFx0ZS5jb2RlID0gJ01PRFVMRV9OT1RfRk9VTkQnO1xuXHRcdHRocm93IGU7XG5cdH1cblx0cmV0dXJuIG1hcFtyZXFdO1xufVxud2VicGFja0NvbnRleHQua2V5cyA9IGZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0S2V5cygpIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKG1hcCk7XG59O1xud2VicGFja0NvbnRleHQucmVzb2x2ZSA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZTtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0NvbnRleHQ7XG53ZWJwYWNrQ29udGV4dC5pZCA9IFwiLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZSBzeW5jIHJlY3Vyc2l2ZSBeXFxcXC5cXFxcLy4qJFwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEyLjY2NyAyLjY2NmgtMS4zMzNWMkEuNjY2LjY2NiAwIDEgMCAxMCAydi42NjZINlYyYS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2LjY2NkgzLjMzNGEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmg5LjMzM2EyIDIgMCAwIDAgMi0ydi04YTIgMiAwIDAgMC0yLTJabS42NjcgMTBhLjY2Ni42NjYgMCAwIDEtLjY2Ny42NjdIMy4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ni0uNjY3VjhoMTAuNjY2djQuNjY2Wm0wLTZIMi42Njd2LTJBLjY2Ny42NjcgMCAwIDEgMy4zMzQgNGgxLjMzM3YuNjY2YS42NjcuNjY3IDAgMCAwIDEuMzMzIDBWNGg0di42NjZhLjY2Ny42NjcgMCAxIDAgMS4zMzQgMFY0aDEuMzMzYS42NjcuNjY3IDAgMCAxIC42NjcuNjY2djJaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xNCAxMy4zMzNIMi42NjdWMTJoMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0aC0yVjkuMzMzaDQuNjY3YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNIMi42NjdWNi42NjZIMTBhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM0gyLjY2N1Y0aDEwYS42NjcuNjY3IDAgMSAwIDAtMS4zMzRoLTEwVjJhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYxMmEuNjY3LjY2NyAwIDAgMCAuNjY2LjY2NmgxMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOCA0YS42NjcuNjY3IDAgMCAwLS42NjcuNjY2djYuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzM0IDBWNC42NjZBLjY2Ny42NjcgMCAwIDAgOCA0Wk00LjY2NyA4QS42NjcuNjY3IDAgMCAwIDQgOC42NjZ2Mi42NjdhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY4LjY2NkEuNjY3LjY2NyAwIDAgMCA0LjY2NyA4Wm02LjY2Ny0xLjMzNGEuNjY3LjY2NyAwIDAgMC0uNjY3LjY2N3Y0YS42NjcuNjY3IDAgMCAwIDEuMzMzIDB2LTRhLjY2Ny42NjcgMCAwIDAtLjY2Ni0uNjY3Wm0xLjMzMy01LjMzM0gzLjMzM2EyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJoOS4zMzRhMiAyIDAgMCAwIDItMlYzLjMzM2EyIDIgMCAwIDAtMi0yWm0uNjY3IDExLjMzM2EuNjY2LjY2NiAwIDAgMS0uNjY3LjY2N0gzLjMzM2EuNjY2LjY2NiAwIDAgMS0uNjY2LS42NjdWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3aDkuMzMzYS42NjcuNjY3IDAgMCAxIC42NjcuNjY3djkuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNS4zMzQgNy4zMzRoNS4zMzNhLjY2Ny42NjcgMCAwIDAgLjUxMy0uMjQ3LjY2Ni42NjYgMCAwIDAgLjE1NC0uNTUzTDEwLjY2NyAzLjJBLjY2Ny42NjcgMCAwIDAgMTAgMi42NjdINmEuNjY3LjY2NyAwIDAgMC0uNjY2LjUzM2wtLjY2NyAzLjMzNGEuNjY3LjY2NyAwIDAgMCAuMTQuNTUzLjY2Ny42NjcgMCAwIDAgLjUyNy4yNDdaTTYuNTQ3IDRoMi45MDdsLjQgMkg2LjE0N2wuNC0yWm04LjEyIDUuMkEuNjY3LjY2NyAwIDAgMCAxNCA4LjY2N2gtNGEuNjY3LjY2NyAwIDAgMC0uNjY2LjUzM2wtLjY2NyAzLjMzNGEuNjY3LjY2NyAwIDAgMCAuMTQuNTUzLjY2Ni42NjYgMCAwIDAgLjUyNy4yNDdoNS4zMzNhLjY2Ny42NjcgMCAwIDAgLjUxMy0uMjQ3LjY2Ni42NjYgMCAwIDAgLjE1NC0uNTUzTDE0LjY2NyA5LjJabS00LjUyIDIuOC40LTJoMi45MDZsLjQgMmgtMy43MDZaTTYgOC42NjhIMmEuNjY3LjY2NyAwIDAgMC0uNjY2LjUzM2wtLjY2NyAzLjMzNGEuNjY3LjY2NyAwIDAgMCAuMTQuNTUzLjY2Ni42NjYgMCAwIDAgLjUyNy4yNDdoNS4zMzNhLjY2Ny42NjcgMCAwIDAgLjUxMy0uMjQ3LjY2Ni42NjYgMCAwIDAgLjE1NC0uNTUzTDYuNjY3IDkuMkEuNjY3LjY2NyAwIDAgMCA2IDguNjY3Wm0tMy44NTMgMy4zMzQuNC0yaDIuOTA3bC40IDJIMi4xNDdaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk05LjMzNCA1LjMzM0gxMEEuNjY3LjY2NyAwIDAgMCAxMCA0aC0uNjY2YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNabTAgMi42NjdIMTBhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNGgtLjY2NmEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0Wk02IDUuMzMzaC42NjdhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM0g2YS42NjcuNjY3IDAgMSAwIDAgMS4zMzNaTTYgOGguNjY3YS42NjcuNjY3IDAgMSAwIDAtMS4zMzRINkEuNjY3LjY2NyAwIDAgMCA2IDhabTggNS4zMzNoLS42NjZWMmEuNjY2LjY2NiAwIDAgMC0uNjY3LS42NjdIMy4zMzNBLjY2Ny42NjcgMCAwIDAgMi42NjcgMnYxMS4zMzNIMmEuNjY2LjY2NiAwIDEgMCAwIDEuMzMzaDEyYS42NjcuNjY3IDAgMCAwIDAtMS4zMzNabS01LjMzMyAwSDcuMzM0di0yLjY2N2gxLjMzM3YyLjY2N1ptMy4zMzMgMGgtMlYxMGEuNjY3LjY2NyAwIDAgMC0uNjY2LS42NjdINi42NjdBLjY2Ny42NjcgMCAwIDAgNiAxMHYzLjMzM0g0VjIuNjY2aDh2MTAuNjY3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNy4zMzQgNkgxMGEuNjY3LjY2NyAwIDEgMCAwLTEuMzMzSDguNjY3VjRhLjY2Ny42NjcgMCAxIDAtMS4zMzMgMHYuNjY3YTIgMiAwIDAgMCAwIDRoMS4zMzNhLjY2Ny42NjcgMCAwIDEgMCAxLjMzM0g2YS42NjcuNjY3IDAgMCAwIDAgMS4zMzRoMS4zMzRWMTJhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMHYtLjY2NmEyIDIgMCAwIDAgMC00SDcuMzM0YS42NjcuNjY3IDAgMCAxIDAtMS4zMzRaTTggLjY2N2E3LjMzMyA3LjMzMyAwIDEgMCAwIDE0LjY2N0E3LjMzMyA3LjMzMyAwIDAgMCA4IC42NjdaTTggMTRBNiA2IDAgMSAxIDggMmE2IDYgMCAwIDEgMCAxMlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEzLjEyIDQuNTg3YTIuOTMzIDIuOTMzIDAgMCAwLTIuMjA2LS4yMTMgMi45MTMgMi45MTMgMCAwIDAtNS44MiAwIDIuOTg3IDIuOTg3IDAgMCAwLTIuMjA3LjE5M0EyLjkxMyAyLjkxMyAwIDAgMCAzLjI5NCA5LjlhMi45MzMgMi45MzMgMCAwIDAtLjUzNCAxLjY2N2MuMDAzLjE2OC4wMTkuMzM1LjA0Ny41YTIuODkzIDIuODkzIDAgMCAwIDIuODYgMi40MmMuMTQyLjAxLjI4NS4wMS40MjcgMEEyLjk0NyAyLjk0NyAwIDAgMCA4IDEzLjMzNGEyLjk0NyAyLjk0NyAwIDAgMCAxLjkwNyAxLjEyNmMuMTQyLjAxLjI4NS4wMS40MjcgMGEyLjkwNyAyLjkwNyAwIDAgMCAyLjM3My00LjU4IDIuOTA3IDIuOTA3IDAgMCAwIC40MTMtNS4zMzN2LjA0Wk02Ljg5NCAzLjI5NGExLjYgMS42IDAgMCAxIDIuMjEzIDAgMS42MiAxLjYyIDAgMCAxIC4zNDcgMS43NzNsLS4xNzQuMzkzLS40NC4zODdBMi43MTMgMi43MTMgMCAwIDAgOCA1LjdjLS4zNyAwLS43MzUuMDc4LTEuMDczLjIyN2wtLjM3My0uODZhMS41OTMgMS41OTMgMCAwIDEgLjM0LTEuNzczWm0tNC4wNjcgNC41NkExLjU4IDEuNTggMCAwIDEgNS4yOTQgNmwuMzI2LjI4Ny4yMzQuNTMzYTIuNjEzIDIuNjEzIDAgMCAwLS41MiAxLjU0NyAxLjkgMS45IDAgMCAwIDAgLjNoLS4zNjdsLS41Ni4wNTNhMS41OCAxLjU4IDAgMCAxLTEuNTgtLjg2NlptNC40IDQuMDUzYTEuNTg3IDEuNTg3IDAgMCAxLTMuMTA3LS4wNTMgMi4wNDcgMi4wNDcgMCAwIDEgMC0uMjggMS41NTMgMS41NTMgMCAwIDEgLjc4LTEuMzM0bC4zNC0uMjQuNjA3LS4wNjZjLjM4Mi41MzIuOTQ3LjkwNCAxLjU4NyAxLjA0NmwtLjIwNy45MjdaTTggOS43YTEuMzMzIDEuMzMzIDAgMSAxIDAtMi42NjZBMS4zMzMgMS4zMzMgMCAwIDEgOCA5LjdabTMuODggMi4xNDdhMS41NzMgMS41NzMgMCAwIDEtMS43ODYgMS4yOTMgMS41OTMgMS41OTMgMCAwIDEtMS4zMzQtMS4yMzNsLS4wOTMtLjQuMTQtLjYxM2EyLjY2NyAyLjY2NyAwIDAgMCAxLjQ2Ny0xLjE3NGwuMzMzLjJoLjA2bC40NC4yNmExLjU4NyAxLjU4NyAwIDAgMSAuNzczIDEuNjY3Wm0xLjI5NC00YTEuNTk0IDEuNTk0IDAgMCAxLTEuNDIuODg3aC0uMTZsLS40MjctLjA2Ny0uNS0uMjczYzAtLjY0OS0uMjM4LTEuMjc0LS42NjctMS43NmwuMjg3LS4yNDcuNDItLjM4N2ExLjU4IDEuNTggMCAwIDEgMi40NjcgMS44OHYtLjAzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEzLjMzNCA1Ljk2YS44OC44OCAwIDAgMC0uMDQtLjE4di0uMDZhLjcxNi43MTYgMCAwIDAtLjEyNy0uMTg3bC00LTRhLjcxMy43MTMgMCAwIDAtLjE4Ny0uMTI3aC0uMDZhLjU4Ny41ODcgMCAwIDAtLjIyLS4wNzNINC42NjdhMiAyIDAgMCAwLTIgMnY5LjMzM2EyIDIgMCAwIDAgMiAyaDYuNjY3YTIgMiAwIDAgMCAyLTJWNS45NlptLTQtMi4zNTQgMS43MjYgMS43MjdIMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ni0uNjY3di0xLjA2Wk0xMiAxMi42NjZhLjY2Ny42NjcgMCAwIDEtLjY2Ni42NjdINC42NjdBLjY2Ni42NjYgMCAwIDEgNCAxMi42NjZWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3SDh2MmEyIDIgMCAwIDAgMiAyaDJ2NlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEyLjk2IDguNjY2Yy0uMTQ3IDAtLjMtLjA0Ni0uNDQ3LS4wOGE2LjI5IDYuMjkgMCAwIDEtLjg3My0uMjYgMS4zMzMgMS4zMzMgMCAwIDAtMS42NTMuNjY3bC0uMTQ3LjNBOC4xMiA4LjEyIDAgMCAxIDguMDY3IDcuOTZhOC4xMiA4LjEyIDAgMCAxLTEuMzM0LTEuNzc0TDcuMDEzIDZhMS4zMzMgMS4zMzMgMCAwIDAgLjY2Ny0xLjY1NCA2Ljg4NyA2Ljg4NyAwIDAgMS0uMjYtLjg3M2MtLjAzMy0uMTQ3LS4wNi0uMy0uMDgtLjQ1M2EyIDIgMCAwIDAtMi0xLjY2aC0yYTIgMiAwIDAgMC0yIDIuMjczIDEyLjY2NyAxMi42NjcgMCAwIDAgMTEuMDEzIDEwLjk3M2guMjU0YTIgMiAwIDAgMCAxLjgyNy0xLjE4NSAyIDIgMCAwIDAgLjE3My0uODIxdi0yYTIgMiAwIDAgMC0xLjY0Ny0xLjkzNFptLjMzMyA0YS42NjYuNjY2IDAgMCAxLS40ODIuNjQxLjcwNy43MDcgMCAwIDEtLjI5LjAyNkExMS4zMzMgMTEuMzMzIDAgMCAxIDIuNzEyIDMuNDhhLjcyNy43MjcgMCAwIDEgLjE2Ny0uNTQ3LjY2Ny42NjcgMCAwIDEgLjUtLjIyN2gyYS42NjcuNjY3IDAgMCAxIC42NjcuNTI3IDcuNDE0IDcuNDE0IDAgMCAwIC40MDcgMS41NzNsLS45MzQuNDM0YS42NjcuNjY3IDAgMCAwLS4zMjcuODg2IDkuNjYgOS42NiAwIDAgMCA0LjY2NyA0LjY2Ny42NjYuNjY2IDAgMCAwIC41MDcgMCAuNjY1LjY2NSAwIDAgMCAuMzgtLjM0N2wuNDEzLS45MzNjLjM0NS4xMjMuNjk3LjIyNiAxLjA1My4zMDcuMTc4LjA0LjM1OC4wNzMuNTQuMWEuNjY3LjY2NyAwIDAgMSAuNTI3LjY2NmwuMDEzIDIuMDhaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xNC4xNDYgOGEyIDIgMCAwIDAgLjUyLTEuMzMzIDIgMiAwIDAgMC0yLTJIOS4yMTNBMiAyIDAgMCAwIDcuMzMzIDJoLTRhMiAyIDAgMCAwLTIgMiAyIDIgMCAwIDAgLjUyIDEuMzMzIDIgMiAwIDAgMCAwIDIuNjY3IDIgMiAwIDAgMCAwIDIuNjY3QTIgMiAwIDAgMCAxLjMzMyAxMmEyIDIgMCAwIDAgMiAyaDkuMzMzYTIgMiAwIDAgMCAxLjQ4LTMuMzMzIDIgMiAwIDAgMCAwLTIuNjY3Wm0tNi44MTMgNC42NjdoLTRhLjY2Ny42NjcgMCAwIDEgMC0xLjMzNGg0YS42NjcuNjY3IDAgMCAxIDAgMS4zMzRabTAtMi42NjdoLTRhLjY2Ny42NjcgMCAwIDEgMC0xLjMzM2g0YS42NjcuNjY3IDAgMCAxIDAgMS4zMzNabTAtMi42NjdoLTRhLjY2Ny42NjcgMCAxIDEgMC0xLjMzM2g0YS42NjcuNjY3IDAgMCAxIDAgMS4zMzNabTAtMi42NjZoLTRhLjY2Ny42NjcgMCAwIDEgMC0xLjMzNGg0YS42NjcuNjY3IDAgMSAxIDAgMS4zMzRabTUuNzkzIDcuODA2YS42Mi42MiAwIDAgMS0uNDYuMTk0SDkuMjEzYy4xNi0uNDMuMTYtLjkwNCAwLTEuMzM0aDMuNDUzYS42NjcuNjY3IDAgMCAxIC42NjcuNjY3LjY2Ni42NjYgMCAwIDEtLjIwNy40NzNabTAtMi42NjZhLjYyLjYyIDAgMCAxLS40Ni4xOTNIOS4yMTNjLjE2LS40My4xNi0uOTAzIDAtMS4zMzNoMy40NTNhLjY2Ni42NjYgMCAwIDEgLjY2Ny42NjYuNjY2LjY2NiAwIDAgMS0uMjA3LjQ3NFptMC0yLjY2N2EuNjIuNjIgMCAwIDEtLjQ2LjE5M0g5LjIxM2MuMTYtLjQzLjE2LS45MDMgMC0xLjMzM2gzLjQ1M2EuNjY2LjY2NiAwIDAgMSAuNjY3LjY2Ny42NjYuNjY2IDAgMCAxLS4yMDcuNDczWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOS4zMzMgNS4zMzNIMTBBLjY2Ny42NjcgMCAxIDAgMTAgNGgtLjY2N2EuNjY3LjY2NyAwIDAgMCAwIDEuMzMzWm0wIDIuNjY3SDEwYS42NjcuNjY3IDAgMSAwIDAtMS4zMzRoLS42NjdhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNFpNNiA1LjMzM2guNjY2YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNINmEuNjY3LjY2NyAwIDEgMCAwIDEuMzMzWk02IDhoLjY2NmEuNjY3LjY2NyAwIDEgMCAwLTEuMzM0SDZBLjY2Ny42NjcgMCAwIDAgNiA4Wm04IDUuMzMzaC0uNjY3VjJhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3SDMuMzMzQS42NjcuNjY3IDAgMCAwIDIuNjY2IDJ2MTEuMzMzSDJhLjY2Ni42NjYgMCAxIDAgMCAxLjMzM2gxMmEuNjY3LjY2NyAwIDEgMCAwLTEuMzMzWm0tNS4zMzQgMEg3LjMzM3YtMi42NjdoMS4zMzN2Mi42NjdabTMuMzM0IDBoLTJWMTBhLjY2Ny42NjcgMCAwIDAtLjY2Ny0uNjY3SDYuNjY2QS42NjcuNjY3IDAgMCAwIDYgMTB2My4zMzNINFYyLjY2Nmg4djEwLjY2N1pcXFwiIGZpbGw9XFxcIiNBNkI1QkFcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMy4zMzQuNjY3SDIuNjY3YTIgMiAwIDAgMC0yIDJ2MTAuNjY3YTIgMiAwIDAgMCAyIDJoMTAuNjY3YTIgMiAwIDAgMCAyLTJWMi42NjdhMiAyIDAgMCAwLTItMlpNNS4zMzQgMTRIMi42NjdBLjY2Ny42NjcgMCAwIDEgMiAxMy4zMzR2LS43ODdhMiAyIDAgMCAwIC42NjcuMTJoMi42NjdWMTRabTAtMi42NjZIMi42NjdBLjY2Ny42NjcgMCAwIDEgMiAxMC42NjdWOS44OGEyIDIgMCAwIDAgLjY2Ny4xMmgyLjY2N3YxLjMzNFptMC0yLjY2N0gyLjY2N0EuNjY3LjY2NyAwIDAgMSAyIDhWMi42NjdBLjY2Ny42NjcgMCAwIDEgMi42NjcgMmgyLjY2N3Y2LjY2N1ptNCA1LjMzM0g2LjY2N3YtNGgyLjY2N3Y0Wm0wLTUuMzMzSDYuNjY3VjJoMi42Njd2Ni42NjdaTTE0IDEzLjMzNGEuNjY3LjY2NyAwIDAgMS0uNjY2LjY2NmgtMi42Njd2LTEuMzMzaDIuNjY3YTIgMiAwIDAgMCAuNjY2LS4xMnYuNzg3Wm0wLTIuNjY3YS42NjcuNjY3IDAgMCAxLS42NjYuNjY3aC0yLjY2N1YxMGgyLjY2N0EyIDIgMCAwIDAgMTQgOS44OHYuNzg3Wk0xNCA4YS42NjcuNjY3IDAgMCAxLS42NjYuNjY3aC0yLjY2N1YyaDIuNjY3YS42NjcuNjY3IDAgMCAxIC42NjYuNjY3VjhabS0yLTMuMzMzYS42NjcuNjY3IDAgMSAwIDAgMS4zMzQuNjY3LjY2NyAwIDAgMCAwLTEuMzM0Wk00IDZhLjY2Ny42NjcgMCAxIDAgMC0xLjMzM0EuNjY3LjY2NyAwIDAgMCA0IDZaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk00IDcuMzMzYS42NjcuNjY3IDAgMSAwIDAgMS4zMzMuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWm04IDBhLjY2Ny42NjcgMCAxIDAgMCAxLjMzNC42NjcuNjY3IDAgMCAwIDAtMS4zMzRabTEuMzM0LTRIMi42NjdhMiAyIDAgMCAwLTIgMnY1LjMzM2EyIDIgMCAwIDAgMiAyaDEwLjY2N2EyIDIgMCAwIDAgMi0yVjUuMzMzYTIgMiAwIDAgMC0yLTJaTTE0IDEwLjY2NmEuNjY3LjY2NyAwIDAgMS0uNjY2LjY2N0gyLjY2N0EuNjY2LjY2NiAwIDAgMSAyIDEwLjY2NlY1LjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LS42NjdoMTAuNjY3YS42NjcuNjY3IDAgMCAxIC42NjYuNjY3djUuMzMzWk04IDZhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm0wIDIuNjY2YS42NjcuNjY3IDAgMSAxIDAtMS4zMzMuNjY3LjY2NyAwIDAgMSAwIDEuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTEuMzMzIDRhLjY2Ny42NjcgMCAwIDAtLjY2Ny42NjZ2NS4wNkw1LjE0IDQuMTkzYS42Ny42NyAwIDAgMC0uOTQ3Ljk0N2w1LjUzMyA1LjUyNmgtNS4wNmEuNjY3LjY2NyAwIDEgMCAwIDEuMzM0aDYuNjY3YS42NjcuNjY3IDAgMCAwIC42NjctLjY2N1Y0LjY2NkEuNjY2LjY2NiAwIDAgMCAxMS4zMzMgNFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTYgNi42NjZoLjY2N2EuNjY3LjY2NyAwIDAgMCAwLTEuMzMzSDZhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1pNNiA4YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNEEuNjY3LjY2NyAwIDAgMCAxMCA4SDZabTcuMzMzLTIuMDRhLjg4Ljg4IDAgMCAwLS4wNC0uMTh2LS4wNmEuNzE0LjcxNCAwIDAgMC0uMTI3LS4xODdsLTQtNGEuNzEzLjcxMyAwIDAgMC0uMTg2LS4xMjcuMjEzLjIxMyAwIDAgMC0uMDYgMCAuNTg3LjU4NyAwIDAgMC0uMjItLjA3M0g0LjY2N2EyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJoNi42NjZhMiAyIDAgMCAwIDItMlY1Ljk2Wm0tNC0yLjM1NCAxLjcyNyAxLjcyN0gxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LS42Njd2LTEuMDZaTTEyIDEyLjY2NmEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0LjY2NkEuNjY2LjY2NiAwIDAgMSA0IDEyLjY2NlYzLjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LS42NjdIOHYyYTIgMiAwIDAgMCAyIDJoMnY2Wm0tMi0ySDZBLjY2Ny42NjcgMCAwIDAgNiAxMmg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIm02LjY2NiAxMS43LTEuMTggMS4xNDdhMS42NSAxLjY1IDAgMCAxLTIuMzMzLTIuMzMzTDYuMTggNy40OGExLjY0IDEuNjQgMCAwIDEgMi4yNi0uMDZsLjA4LjA2N2EuNjY3LjY2NyAwIDAgMCAuOTMzLS45NTMgMS44MzYgMS44MzYgMCAwIDAtLjEyLS4xNCAyLjk3MyAyLjk3MyAwIDAgMC00LjA2LjE0NkwyLjIwNiA5LjU3NGEyLjk4NyAyLjk4NyAwIDAgMCA0LjIyIDQuMjJsMS4xNTQtMS4xMjdhLjY2Ny42NjcgMCAwIDAtLjkxNC0uOTY3Wm03LjEyNy05LjQ5M2EyLjk5MyAyLjk5MyAwIDAgMC00LjIyIDBMOC40MiAzLjMzNGEuNjY3LjY2NyAwIDAgMCAuOTEzLjk2NmwxLjE1My0xLjE0NmExLjY1IDEuNjUgMCAwIDEgMi4zMzQgMi4zMzNMOS43OTMgOC41MmExLjY0IDEuNjQgMCAwIDEtMi4yNi4wNmwtLjA4LS4wNjZhLjY2Ny42NjcgMCAwIDAtLjkzMy45NTMgMi45OCAyLjk4IDAgMCAwIDQuMjEzLS4wMDdsMy4wMzMtMy4wMzNhMi45OTMgMi45OTMgMCAwIDAgLjAyNy00LjIyWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOS4zMzMgNy4zMzRoLS42NjZ2LS42NjdhLjY2Ny42NjcgMCAxIDAtMS4zMzQgMHYuNjY3aC0uNjY2YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoLjY2NnYuNjY3YS42NjcuNjY3IDAgMCAwIDEuMzM0IDB2LS42NjdoLjY2NmEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWm00LjEwNy00QTQuMTk0IDQuMTk0IDAgMCAwIDggMi45NGE0LjE4IDQuMTggMCAwIDAtNS40NCA2LjMybDQgNC4wMzRhMiAyIDAgMCAwIDIuODI3IDBsNC00LjAzNGE0LjE4IDQuMTggMCAwIDAgLjA1My01LjkyNlptLS45NCA0Ljk3My00IDRhLjY2Ni42NjYgMCAwIDEtLjk0NyAwbC00LTRhMi44NiAyLjg2IDAgMCAxIDAtNCAyLjg0NyAyLjg0NyAwIDAgMSA0IDAgLjY2Ny42NjcgMCAwIDAgLjk0NyAwIDIuODQ3IDIuODQ3IDAgMCAxIDQgMCAyLjg2IDIuODYgMCAwIDEgMCA0LjAxM3YtLjAxM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTMuMzMzIDUuMzMzaDkuMzM0YS42NjcuNjY3IDAgMSAwIDAtMS4zMzNIMy4zMzNhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1ptMTAuNjY3IDJIMmEuNjY3LjY2NyAwIDEgMCAwIDEuMzM0aDEyYS42NjcuNjY3IDAgMCAwIDAtMS4zMzRabS0xLjMzMyAzLjMzNEgzLjMzM2EuNjY3LjY2NyAwIDEgMCAwIDEuMzMzaDkuMzM0YS42NjYuNjY2IDAgMSAwIDAtMS4zMzNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMC42NjcgOS4zMzNINS4zMzNhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM2g1LjMzNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWm0wLTIuNjY3aC00YS42NjcuNjY3IDAgMCAwIDAgMS4zMzRoNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0Wm0yLjY2Ni00aC0yVjJBLjY2Ny42NjcgMCAxIDAgMTAgMnYuNjY2SDguNjY3VjJhLjY2Ny42NjcgMCAxIDAtMS4zMzQgMHYuNjY2SDZWMmEuNjY3LjY2NyAwIDAgMC0xLjMzMyAwdi42NjZoLTJBLjY2Ny42NjcgMCAwIDAgMiAzLjMzM3Y5LjMzM2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzLjMzM2EuNjY2LjY2NiAwIDAgMC0uNjY3LS42NjdabS0uNjY2IDEwYS42NjcuNjY3IDAgMCAxLS42NjcuNjY3SDRhLjY2Ni42NjYgMCAwIDEtLjY2Ny0uNjY3VjRoMS4zMzR2LjY2NmEuNjY3LjY2NyAwIDEgMCAxLjMzMyAwVjRoMS4zMzN2LjY2NmEuNjY3LjY2NyAwIDAgMCAxLjMzNCAwVjRIMTB2LjY2NmEuNjY2LjY2NiAwIDEgMCAxLjMzMyAwVjRoMS4zMzR2OC42NjZaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMy4wODcgMi40MzNhLjY2Ny42NjcgMCAwIDAtLjU2LS4xMzMgNS4zMzMgNS4zMzMgMCAwIDEtNC4xNDctLjg0Ny42NjcuNjY3IDAgMCAwLS43NiAwIDUuMzMzIDUuMzMzIDAgMCAxLTQuMTQ2Ljg0Ny42NjcuNjY3IDAgMCAwLS44MDcuNjUzVjcuOTJhNiA2IDAgMCAwIDIuNTEzIDQuODg2bDIuNDM0IDEuNzM0YS42NjcuNjY3IDAgMCAwIC43NzMgMGwyLjQzMy0xLjczNGE2IDYgMCAwIDAgMi41MTQtNC44ODZWMi45NTNhLjY2Ny42NjcgMCAwIDAtLjI0Ny0uNTJaTTEyIDcuOTJhNC42NjYgNC42NjYgMCAwIDEtMS45NTMgMy44TDggMTMuMThsLTIuMDQ2LTEuNDZBNC42NjcgNC42NjcgMCAwIDEgNCA3Ljkydi00LjJhNi42NjcgNi42NjcgMCAwIDAgNC0uOTI3IDYuNjY3IDYuNjY3IDAgMCAwIDQgLjkyN3Y0LjJaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk03LjMzMyA3LjkzM3YzLjRhLjY2Ny42NjcgMCAxIDAgMS4zMzQgMHYtMy40YTMuMzMzIDMuMzMzIDAgMSAwLTEuMzM0IDBaTTggMi42NjdhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00Wm0yLjgwNyA2Ljk0NmEuNjgxLjY4MSAwIDAgMC0uMjggMS4zMzRjMS41MTMuMyAyLjE0Ljg0IDIuMTQgMS4wNTMgMCAuMzg3LTEuNjM0IDEuMzMzLTQuNjY3IDEuMzMzUzMuMzMzIDEyLjM4NyAzLjMzMyAxMmMwLS4yMTMuNjI3LS43NTMgMi4xNC0xLjA4YS42ODEuNjgxIDAgMCAwLS4yOC0xLjMzM0MzLjE2NyAxMC4wNTMgMiAxMC45MjcgMiAxMmMwIDEuNzUzIDMuMDIgMi42NjcgNiAyLjY2N3M2LS45MTQgNi0yLjY2N2MwLTEuMDczLTEuMTY3LTEuOTQ3LTMuMTkzLTIuMzg3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMiAzLjMzM2gxMmMuNCAwIC42NjctLjI2Ni42NjctLjY2NlMxNC40IDIgMTQgMkgyYy0uNCAwLS42NjcuMjY3LS42NjcuNjY3cy4yNjcuNjY2LjY2Ny42NjZabTEyIDkuMzM0SDcuMzMzYy0uNCAwLS42NjYuMjY2LS42NjYuNjY2cy4yNjcuNjY3LjY2Ny42NjdIMTRjLjQgMCAuNjY3LS4yNjcuNjY3LS42NjdzLS4yNjctLjY2Ni0uNjY3LS42NjZabTAtNS4zMzRIMmMtLjQgMC0uNjY3LjI2Ny0uNjY3LjY2N3MuMjY3LjY2Ny42NjcuNjY3aDEyYy40IDAgLjY2Ny0uMjY3LjY2Ny0uNjY3UzE0LjQgNy4zMzMgMTQgNy4zMzNaTTE0IDEwSDJjLS40IDAtLjY2Ny4yNjctLjY2Ny42NjdzLjI2Ny42NjYuNjY3LjY2NmgxMmMuNCAwIC42NjctLjI2Ni42NjctLjY2NlMxNC40IDEwIDE0IDEwWm0wLTUuMzMzSDJjLS40IDAtLjY2Ny4yNjYtLjY2Ny42NjZTMS42IDYgMiA2aDEyYy40IDAgLjY2Ny0uMjY3LjY2Ny0uNjY3UzE0LjQgNC42NjcgMTQgNC42NjdaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIm0xMy4zMzMgNS4zMzMtNC0zLjUwNmEyIDIgMCAwIDAtMi42NjYgMGwtNCAzLjUwNkEyIDIgMCAwIDAgMiA2Ljg0djUuODI3YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjYuODMzYTIgMiAwIDAgMC0uNjY3LTEuNVptLTQgOEg2LjY2N1YxMGEuNjY3LjY2NyAwIDAgMSAuNjY2LS42NjdoMS4zMzRhLjY2Ny42NjcgMCAwIDEgLjY2Ni42Njd2My4zMzNabTMuMzM0LS42NjZhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjZoLTEuMzMzVjEwYTIgMiAwIDAgMC0yLTJINy4zMzNhMiAyIDAgMCAwLTIgMnYzLjMzM0g0YS42NjcuNjY3IDAgMCAxLS42NjctLjY2NlY2LjgzM2EuNjY3LjY2NyAwIDAgMSAuMjI3LS41bDQtMy41YS42NjcuNjY3IDAgMCAxIC44OCAwbDQgMy41YS42NjcuNjY3IDAgMCAxIC4yMjcuNXY1LjgzNFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEwLjY2NyA5LjMzM0g1LjMzM2EuNjY3LjY2NyAwIDAgMCAwIDEuMzMzaDUuMzM0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNabTAtMi42NjdoLTRhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNGg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRabTIuNjY2LTRoLTJWMkEuNjY3LjY2NyAwIDEgMCAxMCAydi42NjZIOC42NjdWMmEuNjY3LjY2NyAwIDEgMC0xLjMzNCAwdi42NjZINlYyYS42NjcuNjY3IDAgMCAwLTEuMzMzIDB2LjY2NmgtMkEuNjY3LjY2NyAwIDAgMCAyIDMuMzMzdjkuMzMzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMuMzMzYS42NjYuNjY2IDAgMCAwLS42NjctLjY2N1ptLS42NjYgMTBhLjY2Ny42NjcgMCAwIDEtLjY2Ny42NjdINGEuNjY2LjY2NiAwIDAgMS0uNjY3LS42NjdWNGgxLjMzNHYuNjY2YS42NjcuNjY3IDAgMSAwIDEuMzMzIDBWNGgxLjMzM3YuNjY2YS42NjcuNjY3IDAgMCAwIDEuMzM0IDBWNEgxMHYuNjY2YS42NjYuNjY2IDAgMSAwIDEuMzMzIDBWNGgxLjMzNHY4LjY2NlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTggOC41YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptMCAyLjY2NmEuNjY3LjY2NyAwIDEgMSAwLTEuMzM0LjY2Ny42NjcgMCAwIDEgMCAxLjMzNFptLS40NzMtNC4xOTNjLjA2My4wNi4xMzguMTA4LjIyLjE0YS42MjcuNjI3IDAgMCAwIC41MDcgMCAuNjY3LjY2NyAwIDAgMCAuMjItLjE0TDEwIDUuNDczYS42ODguNjg4IDAgMSAwLS45NzMtLjk3M2wtLjM2LjM5M1YyLjVhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYyLjM5M2wtLjM2LS4zOTNBLjY4OC42ODggMCAwIDAgNiA1LjQ3M2wxLjUyNyAxLjVabTUuMTQgMy41MjdhLjY2Ni42NjYgMCAxIDAtMS4zMzIgMCAuNjY2LjY2NiAwIDAgMCAxLjMzMiAwWm0uNjY3LTQuNjY3aC0yYS42NjYuNjY2IDAgMSAwIDAgMS4zMzNoMmEuNjY3LjY2NyAwIDAgMSAuNjY2LjY2N3Y1LjMzM2EuNjY3LjY2NyAwIDAgMS0uNjY2LjY2N0gyLjY2N0EuNjY2LjY2NiAwIDAgMSAyIDEzLjE2NlY3LjgzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LS42NjdoMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzaC0yYTIgMiAwIDAgMC0yIDJ2NS4zMzNhMiAyIDAgMCAwIDIgMmgxMC42NjdhMiAyIDAgMCAwIDItMlY3LjgzM2EyIDIgMCAwIDAtMi0yWm0tMTAgNC42NjdhLjY2Ny42NjcgMCAxIDAgMS4zMzQgMCAuNjY3LjY2NyAwIDAgMC0xLjMzNCAwWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNiA2LjY2NmguNjY3YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNINmEuNjY3LjY2NyAwIDAgMCAwIDEuMzMzWk0xMCA4SDZhLjY2Ny42NjcgMCAxIDAgMCAxLjMzM2g0QS42NjcuNjY3IDAgMSAwIDEwIDhabTAgMi42NjZINkEuNjY3LjY2NyAwIDAgMCA2IDEyaDRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNFptMy4xNCAyLjg2YTEuMDg1IDEuMDg1IDAgMCAwLS4xLS4wOC41MDcuNTA3IDAgMCAwLS4xMi0uMDZsLS4xMi0uMDUzYS42NjcuNjY3IDAgMCAwLS4zODYuMDQuNTk5LjU5OSAwIDAgMC0uMzYuMzZBLjU2LjU2IDAgMCAwIDEyIDE0YS42NjguNjY4IDAgMSAwIDEuMjgtLjI1NC43NjYuNzY2IDAgMCAwLS4xNC0uMjJabS4xOTQtNy41NjZhLjg4Ljg4IDAgMCAwLS4wNC0uMTh2LS4wNmEuNzE2LjcxNiAwIDAgMC0uMTI3LS4xODdsLTQtNGEuNzEzLjcxMyAwIDAgMC0uMTg3LS4xMjcuMjEzLjIxMyAwIDAgMC0uMDYgMCAuNTg3LjU4NyAwIDAgMC0uMjItLjA3M0g0LjY2N2EyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJIMTBhLjY2Ny42NjcgMCAxIDAgMC0xLjMzM0g0LjY2N0EuNjY2LjY2NiAwIDAgMSA0IDEyLjY2NlYzLjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LS42NjdIOHYyYTIgMiAwIDAgMCAyIDJoMlY4YS42NjcuNjY3IDAgMCAwIDEuMzM0IDBWNS45NlpNMTAgNS4zMzNhLjY2Ny42NjcgMCAwIDEtLjY2Ni0uNjY3di0xLjA2bDEuNzI2IDEuNzI3SDEwWk0xMi42NjcgMTBhLjY2Ny42NjcgMCAwIDAtLjY2Ny42NjZWMTJhLjY2Ny42NjcgMCAwIDAgMS4zMzQgMHYtMS4zMzRhLjY2Ny42NjcgMCAwIDAtLjY2Ny0uNjY2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJtMTQuMjEzIDMuMzY3LTQtMS4zMzNoLS4wNDZhLjQ2Ni40NjYgMCAwIDAtLjA5NCAwaC0uMjg2TDYgMy4zMzRsLTMuNzg3LTEuM2EuNjY3LjY2NyAwIDAgMC0uNi4wOTMuNjY3LjY2NyAwIDAgMC0uMjguNTRWMTJhLjY2Ni42NjYgMCAwIDAgLjQ1NC42MzNsNCAxLjMzNGEuNjY3LjY2NyAwIDAgMCAuNDEzIDBMMTAgMTIuN2wzLjc4NyAxLjNjLjA3LjAxLjE0Mi4wMS4yMTMgMGEuNjI2LjYyNiAwIDAgMCAuMzg3LS4xMjcuNjY2LjY2NiAwIDAgMCAuMjgtLjU0VjRhLjY2Ny42NjcgMCAwIDAtLjQ1NC0uNjMzWm0tOC44OCA5LjA0LTIuNjY2LS44ODdWMy41OTRsMi42NjcuODg2djcuOTI3Wm00LS44ODctMi42NjYuODg3VjQuNDhsMi42NjctLjg4NnY3LjkyNlptNCAuODg3LTIuNjY2LS44ODdWMy41OTRsMi42NjcuODg2djcuOTI3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTMuNjQgNi40MmE1LjY2NiA1LjY2NiAwIDAgMC04Ljc3My00LjE4QTUuNzA3IDUuNzA3IDAgMCAwIDIuMzYgNi40MiA1LjY0IDUuNjQgMCAwIDAgNCAxMC45NzNsMy41MzMgMy41NGEuNjY2LjY2NiAwIDAgMCAuOTQ3IDBsMy41Mi0zLjU0YTUuNjM4IDUuNjM4IDAgMCAwIDEuNjQtNC41NTNabS0yLjU3MyAzLjYxM0w4IDEzLjFsLTMuMDY3LTMuMDY3YTQuMzI3IDQuMzI3IDAgMCAxLTEuMjQ2LTMuNDggNC4zOCA0LjM4IDAgMCAxIDEuOTI2LTMuMjJBNC4zMTMgNC4zMTMgMCAwIDEgMTEuNzEgNC43MmMuMzM0LjU1NS41NCAxLjE3Ni42MDQgMS44MmE0LjMyNiA0LjMyNiAwIDAgMS0xLjI0NiAzLjQ5M1pNOCA0YTMgMyAwIDEgMCAzIDMgMy4wMDcgMy4wMDcgMCAwIDAtMy0zWm0wIDQuNjY2YTEuNjY3IDEuNjY3IDAgMSAxIDAtMy4zMzMgMS42NjcgMS42NjcgMCAwIDEgMCAzLjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTQuNjY3IDEwLjY2NmExIDEgMCAwIDAgMS0xIC41MTQuNTE0IDAgMCAwIDAtLjFsMS44Ni0xLjg2aC4zMDZMOC45MDcgOC43OHYuMDUzYTEgMSAwIDEgMCAyIDBWOC43OGwyLjQyNi0yLjQ0N2ExIDEgMCAxIDAtMS0xIC41MjIuNTIyIDAgMCAwIDAgLjFMOS45MjcgNy44NEg5LjgyTDguNjY3IDYuNjY2YTEgMSAwIDAgMC0yIDBsLTIgMmExIDEgMCAwIDAgMCAyWm05IDIuNjY3SDIuMzMzVjJBLjY2Ny42NjcgMCAxIDAgMSAydjEyYS42NjcuNjY3IDAgMCAwIC42NjcuNjY2aDEyYS42NjcuNjY3IDAgMCAwIDAtMS4zMzNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTIgMTVcXFwiPjxwYXRoIGQ9XFxcIm02LjE0IDEwLjc0Mi4wMi4wNTguMDA3LjAxdi4wMzZhLjA2LjA2IDAgMCAxLS4wMDYuMDI3bC0uMDEuMDIyLS4wMDguMDIxYS4xLjEgMCAwIDEtLjA2LjA2bC0uMDIyLjAwOC0uMDIxLjAxYS4wNi4wNiAwIDAgMS0uMDI3LjAwNmgtLjAwNmEuMTY2LjE2NiAwIDAgMS0uMTA2LS4wNC4yNjYuMjY2IDAgMCAxLS4wNC0uMDY2bC0uMDA0LS4wMS0uMDA1LS4wMWEuMDYuMDYgMCAwIDEtLjAwNS0uMDI4di0uMDIzbC0uMDAxLS4wMjMtLjAwMS0uMDE4LjAwMy0uMDA3LjAxMi0uMDMzYS41NzYuNTc2IDAgMCAxIC4wMjMtLjAzLjE2Ni4xNjYgMCAwIDEgLjA0NC0uMDI2bC4wMTQtLjAwNWEuMTY3LjE2NyAwIDAgMSAuMDk2LS4wMWwuMDk0LS40OTEtLjA5NC40OWEuMTY2LjE2NiAwIDAgMSAuMDc3LjAzOGMuMDA5LjAxLjAxOC4wMjIuMDI2LjAzNFptLjY5My05LjMzNSAzLjk2MyAzLjk2My4wMjMuMDdhLjM3LjM3IDAgMCAxIC4wMTQuMDU0djYuNjczYTEuNSAxLjUgMCAwIDEtMS41IDEuNUgyLjY2N2ExLjUgMS41IDAgMCAxLTEuMDYxLS40NGwtLjM0OC4zNDguMzQ4LS4zNDhhMS41IDEuNSAwIDAgMS0uNDQtMS4wNlYyLjgzM2ExLjUgMS41IDAgMCAxIDEuNS0xLjVoMy45OWwuMDE1LjAwNy4xMTYuMDY3aC4wNDZabS44NTQgMS4zNDZMNi44MzMgMS45djIuMjY3QTEuMTY3IDEuMTY3IDAgMCAwIDggNS4zMzNoMi4yNjdsLS44NTMtLjg1My0xLjcyNy0xLjcyN1pNNi41IDIuMTY3di0uNUgyLjY2N0ExLjE2NyAxLjE2NyAwIDAgMCAxLjUgMi44MzN2OS4zMzRhMS4xNjcgMS4xNjcgMCAwIDAgMS4xNjcgMS4xNjZoNi42NjZhMS4xNjcgMS4xNjcgMCAwIDAgMS4xNjctMS4xNjZ2LTYuNUg4YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMlptLS42MTggNS4yMTVhLjE2Ny4xNjcgMCAwIDEgLjI4NS4xMTh2MS4zMzNhLjE2Ny4xNjcgMCAwIDEtLjMzNCAwVjcuNWMwLS4wNDQuMDE4LS4wODcuMDUtLjExOFpcXFwiIGZpbGw9XFxcIkN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJDdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMy4wODcgMi40MzNhLjY2Ny42NjcgMCAwIDAtLjU2LS4xMzMgNS4zMzMgNS4zMzMgMCAwIDEtNC4xNDctLjg0Ny42NjcuNjY3IDAgMCAwLS43NiAwIDUuMzMzIDUuMzMzIDAgMCAxLTQuMTQ2Ljg0Ny42NjcuNjY3IDAgMCAwLS44MDcuNjUzVjcuOTJhNiA2IDAgMCAwIDIuNTEzIDQuODg2bDIuNDM0IDEuNzM0YS42NjcuNjY3IDAgMCAwIC43NzMgMGwyLjQzMy0xLjczNGE2IDYgMCAwIDAgMi41MTQtNC44ODZWMi45NTNhLjY2Ny42NjcgMCAwIDAtLjI0Ny0uNTJaTTEyIDcuOTJhNC42NjYgNC42NjYgMCAwIDEtMS45NTMgMy44TDggMTMuMThsLTIuMDQ2LTEuNDZBNC42NjcgNC42NjcgMCAwIDEgNCA3Ljkydi00LjJhNi42NjcgNi42NjcgMCAwIDAgNC0uOTI3IDYuNjY3IDYuNjY3IDAgMCAwIDQgLjkyN3Y0LjJaTTkuMDI3IDYuMzkzbC0xLjc5MyAxLjgtLjU5NC0uNmEuNjcuNjcgMCAwIDAtLjk0Ni45NDdMNi43NiA5LjYwNmEuNjY3LjY2NyAwIDAgMCAuOTQ3IDBMMTAgNy4zMzNhLjY3LjY3IDAgMSAwLS45NDYtLjk0N2wtLjAyNy4wMDdaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDIwIDIwXFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0zLjYzNCAxNy45YS41LjUgMCAwIDEtLjUyNC4wNDdsLS4xNDkuMjk3LjE0OS0uMjk3YS41LjUgMCAwIDEtLjIwMi0uMTg0bC0uMjgzLjE3NC4yODMtLjE3NGEuNS41IDAgMCAxLS4wNzUtLjI2M3YtMTVhLjUuNSAwIDAgMSAuNS0uNWgxMy4zMzRhLjUuNSAwIDAgMSAuNS41djE0Ljk5OWEuNS41IDAgMCAxLS4yNzUuNDQ1aC0uMDAxYS41LjUgMCAwIDEtLjUyNS0uMDQ1bC0xLjcyNC0xLjI5LS4yLS4xNS0uMi4xNS0xLjcxNyAxLjI5MWEuNS41IDAgMCAxLS42IDBMMTAuMiAxNi42MDhsLS4yLS4xNS0uMi4xNUw4LjA3NSAxNy45YS41LjUgMCAwIDEtLjYgMGwtMS43MTYtMS4yOTEtLjItLjE1LS4yLjE1LTEuNzI1IDEuMjlabTEyLTEuOC41MzMuMzk5VjNIMy44MzN2MTMuNDk5bC41MzMtLjM5OS44OTItLjY2NmEuNS41IDAgMCAxIC42IDBsMS43MTcgMS4yOS4yLjE1MS4yLS4xNUw5LjcgMTUuNDMzYS41LjUgMCAwIDEgLjYgMGwxLjcyNSAxLjI5Mi4yLjE1LjItLjE1IDEuNzE3LTEuMjkyYS41LjUgMCAwIDEgLjYgMGwuODkyLjY2N1ptLTIuMy05Ljc2N2gtNWEuNS41IDAgMCAxIDAtMWg1YS41LjUgMCAwIDEgMCAxWm0wIDMuMzM0SDYuNjY2YS41LjUgMCAwIDEgMC0xaDYuNjY2YS41LjUgMCAwIDEgMCAxWm0wIDMuMzMzSDYuNjY2YS41LjUgMCAwIDEgMC0xaDYuNjY2YS41LjUgMCAxIDEgMCAxWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOCA3LjJhMS4zMzMgMS4zMzMgMCAxIDAgMC0yLjY2N0ExLjMzMyAxLjMzMyAwIDAgMCA4IDcuMlptLS40NzMgNC42MDZhLjY2Ni42NjYgMCAwIDAgLjk0NiAwTDExLjIgOS4wNzNhNC41MjcgNC41MjcgMCAxIDAtNi40IDBsMi43MjcgMi43MzNaTTQuODIgNS41NmEzLjIwNyAzLjIwNyAwIDAgMSAxLjQyLTIuMzY3IDMuMjA3IDMuMjA3IDAgMCAxIDMuNTIgMCAzLjIxMyAzLjIxMyAwIDAgMSAuNSA0Ljk0TDggMTAuMzkzbC0yLjI2LTIuMjZhMy4xOCAzLjE4IDAgMCAxLS45Mi0yLjU3M1ptNy44NDYgNy43NzNIMy4zMzNhLjY2Ny42NjcgMCAxIDAgMCAxLjMzM2g5LjMzNGEuNjY2LjY2NiAwIDEgMCAwLTEuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNC42NjYgNGEuNjY3LjY2NyAwIDEgMCAwIDEuMzMzLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptOS44MDcgMy44NTMtNi4zMi02LjMwN2EuNjY3LjY2NyAwIDAgMC0uNDg3LS4yMTNoLTRhLjY2Ny42NjcgMCAwIDAtLjQ3My4xOTNsLTEuNjY3IDEuNjZhLjY2Ny42NjcgMCAwIDAtLjE5My40NzR2NGEuNy43IDAgMCAwIC4xOTMuNDczbDYuMzI3IDYuMzMzYS43LjcgMCAwIDAgLjQ3My4xOTQuNjY2LjY2NiAwIDAgMCAuNDc0LS4xOTRsNS42NzMtNS42NzNhLjY2Ny42NjcgMCAwIDAgMC0uOTRaTTguMzI2IDEzLjA2bC01LjY2LTUuNjY3di0zLjQ2bDEuMjY3LTEuMjY3aDMuNDUzbDUuNjY3IDUuNjYtNC43MjcgNC43MzRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMC42NjcgOS4zMzNINS4zMzNhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM2g1LjMzNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWm0wLTIuNjY3aC00YS42NjcuNjY3IDAgMCAwIDAgMS4zMzRoNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0Wm0yLjY2Ni00aC0yVjJBLjY2Ny42NjcgMCAxIDAgMTAgMnYuNjY2SDguNjY3VjJhLjY2Ny42NjcgMCAxIDAtMS4zMzQgMHYuNjY2SDZWMmEuNjY3LjY2NyAwIDAgMC0xLjMzMyAwdi42NjZoLTJBLjY2Ny42NjcgMCAwIDAgMiAzLjMzM3Y5LjMzM2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzLjMzM2EuNjY2LjY2NiAwIDAgMC0uNjY3LS42NjdabS0uNjY2IDEwYS42NjcuNjY3IDAgMCAxLS42NjcuNjY3SDRhLjY2Ni42NjYgMCAwIDEtLjY2Ny0uNjY3VjRoMS4zMzR2LjY2NmEuNjY3LjY2NyAwIDEgMCAxLjMzMyAwVjRoMS4zMzN2LjY2NmEuNjY3LjY2NyAwIDAgMCAxLjMzNCAwVjRIMTB2LjY2NmEuNjY2LjY2NiAwIDEgMCAxLjMzMyAwVjRoMS4zMzR2OC42NjZaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk02LjY2NyA1LjMzM2g0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNoLTRhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1pNNS4zMzMgOGg1LjMzNGEuNjY3LjY2NyAwIDAgMCAwLTEuMzM0SDUuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzRabTAgMi42NjZoNS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM0g1LjMzM2EuNjY3LjY2NyAwIDAgMCAwIDEuMzMzWm04LTkuMzMzSDIuNjY3QS42NjcuNjY3IDAgMCAwIDIgMnYxMmEuNjY3LjY2NyAwIDAgMCAxLjA2Ny41MzNsMS4zOC0xLjAzMyAxLjM3MyAxLjAzM2EuNjY2LjY2NiAwIDAgMCAuOCAwTDggMTMuNWwxLjM4IDEuMDMzYS42NjYuNjY2IDAgMCAwIC44IDBsMS4zNzMtMS4wMzMgMS4zOCAxLjAzM0EuNjY3LjY2NyAwIDAgMCAxNCAxNFYyYS42NjYuNjY2IDAgMCAwLS42NjctLjY2N1ptLS42NjYgMTEuMzMzLS43MTQtLjUzM2EuNjY3LjY2NyAwIDAgMC0uOCAwTDkuNzggMTMuMTY2IDguNCAxMi4xMzNhLjY2Ny42NjcgMCAwIDAtLjggMGwtMS4zOCAxLjAzMy0xLjM3My0xLjAzM2EuNjY3LjY2NyAwIDAgMC0uOCAwbC0uNzE0LjUzM3YtMTBoOS4zMzR2MTBaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE4IDE4XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxyZWN0IHdpZHRoPVxcXCIxOFxcXCIgaGVpZ2h0PVxcXCIxOFxcXCIgcng9XFxcIjlcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjxwYXRoIGQ9XFxcIk0yIDlhNyA3IDAgMSAxIDE0IDBBNyA3IDAgMSAxIDIgOVpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4wODMgOC40MTZoLTMuNXYtMy41YS41ODMuNTgzIDAgMCAwLTEuMTY3IDB2My41aC0zLjVhLjU4My41ODMgMCAwIDAgMCAxLjE2N2gzLjV2My41YS41ODMuNTgzIDAgMCAwIDEuMTY3IDB2LTMuNWgzLjVhLjU4My41ODMgMCAwIDAgMC0xLjE2N1pcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE3IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMi45MzUgNy4zMzNoLTR2LTRhLjY2Ny42NjcgMCAxIDAtMS4zMzMgMHY0aC00YS42NjcuNjY3IDAgMCAwIDAgMS4zMzRoNHY0YS42NjcuNjY3IDAgMSAwIDEuMzM0IDB2LTRoNGEuNjY3LjY2NyAwIDEgMCAwLTEuMzM0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAyMSAyMFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTAuNDY0IDEuNjY3QzUuODggMS42NjcgMi4xMyA1LjQxNyAyLjEzIDEwYzAgNC41ODQgMy43NSA4LjMzNCA4LjMzMyA4LjMzNHM4LjMzMy0zLjc1IDguMzMzLTguMzM0YzAtNC41ODMtMy43NS04LjMzMy04LjMzMy04LjMzM1ptMCAxMi41Yy0uNSAwLS44MzMtLjMzMy0uODMzLS44MzMgMC0uNS4zMzMtLjgzNC44MzMtLjgzNC41IDAgLjgzMy4zMzQuODMzLjgzNCAwIC41LS4zMzMuODMzLS44MzMuODMzWk0xMS4yOTcgMTBjMCAuNS0uMzMzLjgzNC0uODMzLjgzNC0uNSAwLS44MzMtLjMzNC0uODMzLS44MzRWNi42NjdjMC0uNS4zMzMtLjgzMy44MzMtLjgzMy41IDAgLjgzMy4zMzMuODMzLjgzM1YxMFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTMuMzMzIDUuMzMzaDkuMzM0YS42NjcuNjY3IDAgMSAwIDAtMS4zMzNIMy4zMzNhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1ptMTAuNjY3IDJIMmEuNjY3LjY2NyAwIDEgMCAwIDEuMzM0aDEyYS42NjcuNjY3IDAgMCAwIDAtMS4zMzRabS0xLjMzMyAzLjMzNEgzLjMzM2EuNjY3LjY2NyAwIDEgMCAwIDEuMzMzaDkuMzM0YS42NjYuNjY2IDAgMSAwIDAtMS4zMzNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0yIDMuMzMzaDEyYy40IDAgLjY2Ny0uMjY2LjY2Ny0uNjY2UzE0LjQgMiAxNCAySDJjLS40IDAtLjY2Ny4yNjctLjY2Ny42NjdzLjI2Ny42NjYuNjY3LjY2NlptMTIgOS4zMzRINy4zMzNjLS40IDAtLjY2Ni4yNjYtLjY2Ni42NjZzLjI2Ny42NjcuNjY3LjY2N0gxNGMuNCAwIC42NjctLjI2Ny42NjctLjY2N3MtLjI2Ny0uNjY2LS42NjctLjY2NlptMC01LjMzNEgyYy0uNCAwLS42NjcuMjY3LS42NjcuNjY3cy4yNjcuNjY3LjY2Ny42NjdoMTJjLjQgMCAuNjY3LS4yNjcuNjY3LS42NjdTMTQuNCA3LjMzMyAxNCA3LjMzM1pNMTQgMTBIMmMtLjQgMC0uNjY3LjI2Ny0uNjY3LjY2N3MuMjY3LjY2Ni42NjcuNjY2aDEyYy40IDAgLjY2Ny0uMjY2LjY2Ny0uNjY2UzE0LjQgMTAgMTQgMTBabTAtNS4zMzNIMmMtLjQgMC0uNjY3LjI2Ni0uNjY3LjY2NlMxLjYgNiAyIDZoMTJjLjQgMCAuNjY3LS4yNjcuNjY3LS42NjdTMTQuNCA0LjY2NyAxNCA0LjY2N1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJtOS41MjcgOS40Ni0yLjE5NCAyLjE5NC0uODYtLjg2YS42NjguNjY4IDAgMSAwLS45NDYuOTRsMS4zMzMgMS4zMzNhLjY2Ni42NjYgMCAwIDAgLjk0NyAwbDIuNjY2LTIuNjY3YS42NjcuNjY3IDAgMSAwLS45NDYtLjk0Wm0yLjc1My0zLjkxM2E0LjY2NyA0LjY2NyAwIDAgMC04LjkwNyAxLjI2NyAyLjY2NyAyLjY2NyAwIDAgMC0uMjUzIDUuMS42NjguNjY4IDAgMSAwIC40MjctMS4yNDcgMS4zMzMgMS4zMzMgMCAwIDEtLjg4LTEuMjY3QTEuMzMzIDEuMzMzIDAgMCAxIDQgOC4wNjdhLjY2Ny42NjcgMCAwIDAgLjY2Ny0uNjY3IDMuMzMzIDMuMzMzIDAgMCAxIDYuNDg2LTEuMDY2LjY2OC42NjggMCAwIDAgLjUyLjQ0IDIgMiAwIDAgMSAuMTYgMy44OTNBLjY3Mi42NzIgMCAxIDAgMTIgMTJoLjE2N2EzLjMzMyAzLjMzMyAwIDAgMCAuMTEzLTYuNDEzdi0uMDRaXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAyMCAyMFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTQuMTY3IDcuNjRhLjgzNC44MzQgMCAwIDAtMS4xNzUgMEwxMCAxMC41OSA3LjA1IDcuNjRhLjgzMy44MzMgMCAxIDAtMS4xNzUgMS4xODRsMy41MzQgMy41MzNhLjgzMy44MzMgMCAwIDAgMS4xODMgMGwzLjU3NS0zLjUzM2EuODMzLjgzMyAwIDAgMCAwLTEuMTgzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCA4IDEyXFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk04IDEuMDU0IDYuODA1IDAgMCA2bDYuODA1IDZMOCAxMC45NDcgMi4zOSA2IDggMS4wNTRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDggMTJcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTAgMS4wNTQgMS4xOTUgMCA4IDZsLTYuODA1IDZMMCAxMC45NDcgNS42MSA2IDAgMS4wNTRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTYgMThcXFwiPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIgZD1cXFwiTTQuMzExIDcuNDMgMy43NCA4aDEwLjkyNmExIDEgMCAwIDEgMCAySDMuNzRsLjU3MS41NjkgNC40IDQuMzg3YS45OTkuOTk5IDAgMCAxIDAgMS40MmwtLjAwMS4wMDJhMS4wMDEgMS4wMDEgMCAwIDEtMS40MiAwaC0uMDAxTC42MjUgOS43MTJhMSAxIDAgMCAxLS4yMDgtLjMyN0wuNDE1IDkuMzhhMSAxIDAgMCAxIDAtLjc2bC4wMDItLjAwN2ExIDEgMCAwIDEgLjIwOC0uMzI3bDYuNjY0LTYuNjY0QTEuMDA1IDEuMDA1IDAgMSAxIDguNzEgMy4wNDRMNC4zMSA3LjQzWlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNyAxNlxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJNNS45NTUgMTAuMzMzaDQuNjdsLTIuMzM2IDIuMjUzLTIuMzM0LTIuMjUzWm0xLjg0NCAzLjE5NGMuMjcuMjYuNzA0LjI2Ljk3NCAwbDMuMTctMy4wNmMuNDM2LS40MTQuMTMyLTEuMTM0LS40ODMtMS4xMzRINS4xMjZjLS42MTUgMC0uOTI2LjcyLS40OSAxLjE0bDMuMTYzIDMuMDUzWm0tMi42OC02Ljg2aDYuMzQxYy42MTUgMCAuOTI2LS43Mi40OS0xLjE0bC0zLjE3LTMuMDZhLjcwNi43MDYgMCAwIDAtLjk3NCAwbC0zLjE3IDMuMDZjLS40MzYuNDItLjEzMiAxLjE0LjQ4MyAxLjE0WlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMjAgMjBcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTMuNjM0IDE3LjlhLjUuNSAwIDAgMS0uNTI0LjA0N2wtLjE0OS4yOTcuMTQ5LS4yOTdhLjUuNSAwIDAgMS0uMjAyLS4xODRsLS4yODMuMTc0LjI4My0uMTc0YS41LjUgMCAwIDEtLjA3NS0uMjYzdi0xNWEuNS41IDAgMCAxIC41LS41aDEzLjMzNGEuNS41IDAgMCAxIC41LjV2MTQuOTk5YS41LjUgMCAwIDEtLjI3NS40NDVoLS4wMDFhLjUuNSAwIDAgMS0uNTI1LS4wNDVsLTEuNzI0LTEuMjktLjItLjE1LS4yLjE1LTEuNzE3IDEuMjkxYS41LjUgMCAwIDEtLjYgMEwxMC4yIDE2LjYwOGwtLjItLjE1LS4yLjE1TDguMDc1IDE3LjlhLjUuNSAwIDAgMS0uNiAwbC0xLjcxNi0xLjI5MS0uMi0uMTUtLjIuMTUtMS43MjUgMS4yOVptMTItMS44LjUzMy4zOTlWM0gzLjgzM3YxMy40OTlsLjUzMy0uMzk5Ljg5Mi0uNjY2YS41LjUgMCAwIDEgLjYgMGwxLjcxNyAxLjI5LjIuMTUxLjItLjE1TDkuNyAxNS40MzNhLjUuNSAwIDAgMSAuNiAwbDEuNzI1IDEuMjkyLjIuMTUuMi0uMTUgMS43MTctMS4yOTJhLjUuNSAwIDAgMSAuNiAwbC44OTIuNjY3Wm0tMi4zLTkuNzY3aC01YS41LjUgMCAwIDEgMC0xaDVhLjUuNSAwIDAgMSAwIDFabTAgMy4zMzRINi42NjZhLjUuNSAwIDAgMSAwLTFoNi42NjZhLjUuNSAwIDAgMSAwIDFabTAgMy4zMzNINi42NjZhLjUuNSAwIDAgMSAwLTFoNi42NjZhLjUuNSAwIDEgMSAwIDFaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2Utd2lkdGg9XFxcIi42NjdcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xMy42NDcgNC45MTNWNC44NmwtLjA0LS4xYS40NjYuNDY2IDAgMCAwLS4wNDctLjA2LjYyMy42MjMgMCAwIDAtLjA2LS4wOGwtLjA2LS4wNDctLjEwNy0uMDUzLTUtMy4wODdhLjY2Ny42NjcgMCAwIDAtLjcwNiAwTDIuNjY3IDQuNTJsLS4wNi4wNTMtLjA2LjA0N2EuNjI3LjYyNyAwIDAgMC0uMDYuMDguNDczLjQ3MyAwIDAgMC0uMDQ3LjA2bC0uMDQuMXYuMDUzYS43NjcuNzY3IDAgMCAwIDAgLjE3NHY1LjgyNmEuNjY3LjY2NyAwIDAgMCAuMzEzLjU2N2w1IDMuMDg3Yy4wMzEuMDE5LjA2NS4wMzIuMS4wNGguMDU0YS41NzQuNTc0IDAgMCAwIC4zNDYgMGguMDU0YS4zMTQuMzE0IDAgMCAwIC4xLS4wNGw0Ljk2Ni0zLjA4N2EuNjY4LjY2OCAwIDAgMCAuMzE0LS41NjdWNS4wODdhLjc2MS43NjEgMCAwIDAgMC0uMTc0Wm0tNi4zMTQgNy44OTRMMy42NjcgMTAuNTRWNi4yODdsMy42NjYgMi4yNnY0LjI2Wk04IDcuMzkzIDQuMjY3IDUuMDg3IDggMi43ODdsMy43MzMgMi4zTDggNy4zOTNabTQuMzMzIDMuMTQ3LTMuNjY2IDIuMjY3di00LjI2bDMuNjY2LTIuMjZ2NC4yNTNaXFxcIiBmaWxsPVxcXCIjQTY2RUU5XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNS4zMzQgNy4zMzRoNS4zMzNhLjY2Ny42NjcgMCAwIDAgLjUxMy0uMjQ3LjY2Ni42NjYgMCAwIDAgLjE1NC0uNTUzTDEwLjY2NyAzLjJBLjY2Ny42NjcgMCAwIDAgMTAgMi42NjdINmEuNjY3LjY2NyAwIDAgMC0uNjY2LjUzM2wtLjY2NyAzLjMzNGEuNjY3LjY2NyAwIDAgMCAuMTQuNTUzLjY2Ny42NjcgMCAwIDAgLjUyNy4yNDdaTTYuNTQ3IDRoMi45MDdsLjQgMkg2LjE0N2wuNC0yWm04LjEyIDUuMkEuNjY3LjY2NyAwIDAgMCAxNCA4LjY2N2gtNGEuNjY3LjY2NyAwIDAgMC0uNjY2LjUzM2wtLjY2NyAzLjMzNGEuNjY3LjY2NyAwIDAgMCAuMTQuNTUzLjY2Ni42NjYgMCAwIDAgLjUyNy4yNDdoNS4zMzNhLjY2Ny42NjcgMCAwIDAgLjUxMy0uMjQ3LjY2Ni42NjYgMCAwIDAgLjE1NC0uNTUzTDE0LjY2NyA5LjJabS00LjUyIDIuOC40LTJoMi45MDZsLjQgMmgtMy43MDZaTTYgOC42NjhIMmEuNjY3LjY2NyAwIDAgMC0uNjY2LjUzM2wtLjY2NyAzLjMzNGEuNjY3LjY2NyAwIDAgMCAuMTQuNTUzLjY2Ni42NjYgMCAwIDAgLjUyNy4yNDdoNS4zMzNhLjY2Ny42NjcgMCAwIDAgLjUxMy0uMjQ3LjY2Ni42NjYgMCAwIDAgLjE1NC0uNTUzTDYuNjY3IDkuMkEuNjY3LjY2NyAwIDAgMCA2IDguNjY3Wm0tMy44NTMgMy4zMzQuNC0yaDIuOTA3bC40IDJIMi4xNDdaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk05LjMzNCA1LjMzM0gxMEEuNjY3LjY2NyAwIDAgMCAxMCA0aC0uNjY2YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNabTAgMi42NjdIMTBhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNGgtLjY2NmEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0Wk02IDUuMzMzaC42NjdhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM0g2YS42NjcuNjY3IDAgMSAwIDAgMS4zMzNaTTYgOGguNjY3YS42NjcuNjY3IDAgMSAwIDAtMS4zMzRINkEuNjY3LjY2NyAwIDAgMCA2IDhabTggNS4zMzNoLS42NjZWMmEuNjY2LjY2NiAwIDAgMC0uNjY3LS42NjdIMy4zMzNBLjY2Ny42NjcgMCAwIDAgMi42NjcgMnYxMS4zMzNIMmEuNjY2LjY2NiAwIDEgMCAwIDEuMzMzaDEyYS42NjcuNjY3IDAgMCAwIDAtMS4zMzNabS01LjMzMyAwSDcuMzM0di0yLjY2N2gxLjMzM3YyLjY2N1ptMy4zMzMgMGgtMlYxMGEuNjY3LjY2NyAwIDAgMC0uNjY2LS42NjdINi42NjdBLjY2Ny42NjcgMCAwIDAgNiAxMHYzLjMzM0g0VjIuNjY2aDh2MTAuNjY3WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgdmlld0JveD1cXFwiMCAwIDE3IDE2XFxcIj48cGF0aCBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJtMTIuMzIyIDUuNjguMDkyLjIxMi4yMjEuMDY3YTIuODM0IDIuODM0IDAgMCAxLS4wOTQgNS40NS4xNjguMTY4IDAgMCAxLS4wODMtLjMyNWwuMDA4LS4wMDJhMi41IDIuNSAwIDAgMC0uMi00Ljg2NmwtLjAwOC0uMDAyYS4xNjcuMTY3IDAgMCAxLS4xMy0uMTEybC0uMDAyLS4wMDRhMy44MzQgMy44MzQgMCAwIDAtNy40NiAxLjIzNS4xNjcuMTY3IDAgMCAxLS4xNjYuMTY3IDEuODMzIDEuODMzIDAgMSAwIDAgMy42NjcuMTY3LjE2NyAwIDAgMSAwIC4zMzNoLS4wMDFhMi4xNjcgMi4xNjcgMCAwIDEtLjUxLTQuMjczbC4zMzYtLjA4LjA0NC0uMzQyYTQuMTY3IDQuMTY3IDAgMCAxIDcuOTUzLTEuMTI1Wm0tMi4zNyA0LjE5OS4wMDIuMDAzYS4xNjcuMTY3IDAgMCAxIDAgLjIzN2wtLjg2Ni44Ni0uMzU4LjM1NS4zNTguMzU0Ljg2Ni44NmEuMTY3LjE2NyAwIDAgMSAwIC4yMzdsLS4wMDIuMDAzYS4xNjYuMTY2IDAgMCAxLS4xODMuMDM3LjE2Ni4xNjYgMCAwIDEtLjA1NC0uMDM3bC0uODYtLjg2Ny0uMzU1LS4zNTctLjM1NS4zNTctLjg2Ljg2N2EuMTY2LjE2NiAwIDAgMS0uMTgzLjAzNy4xNjYuMTY2IDAgMCAxLS4wNTQtLjAzN2wtLjAwMy0uMDAzYS4xNjcuMTY3IDAgMCAxIDAtLjIzNmwuODY3LS44Ni4zNTgtLjM1NS0uMzU4LS4zNTUtLjg2NS0uODU5YS4xNy4xNyAwIDAgMSAuMjQtLjI0bC44NTguODY2LjM1NS4zNTcuMzU1LS4zNTcuODYtLjg2N2EuMTY3LjE2NyAwIDAgMSAuMjM3IDBaXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDE0IDE0XFxcIj48cGF0aCBkPVxcXCJNNyAuMzMyYy0zLjY2NyAwLTYuNjY3IDMtNi42NjcgNi42NjcgMCAzLjY2NiAzIDYuNjY2IDYuNjY3IDYuNjY2IDMuNjY2IDAgNi42NjYtMyA2LjY2Ni02LjY2NiAwLTMuNjY3LTMtNi42NjctNi42NjYtNi42NjdabTIuOCA1LjUzMy0zLjIgMy4yYS42NDQuNjQ0IDAgMCAxLS45MzQgMEw0LjIgNy42YS42NDQuNjQ0IDAgMCAxIDAtLjkzNC42NDQuNjQ0IDAgMCAxIC45MzMgMGwxIDEgMi43MzMtMi43MzNhLjY0NC42NDQgMCAwIDEgLjkzNCAwIC42NDUuNjQ1IDAgMCAxIDAgLjkzM1pcXFwiIGZpbGw9XFxcIiMxNzk5N0JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjAgMjBcXFwiPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIGQ9XFxcIk0xNy4xNjcgMy4zMzR2LS41aC0xMXYxMWgxMXYtMTAuNVpNOC4yMDQgOC43NWwuNDYzLS40NjYgMS4zNyAxLjM3Ni4zNTUuMzU3LjM1NC0uMzU3IDMuOTItMy45NS40NjMuNDY1LTQuNzM3IDQuNzhMOC4yMDQgOC43NVptLTUuMzcgNy45MTZ2LjVIMTQuNXYuNjY3SDMuMzMzYy0uNjQgMC0xLjE2Ni0uNTI2LTEuMTY2LTEuMTY3VjUuNWguNjY2djExLjE2N1ptMy44MzMtMTQuNWgxMGMuNjQgMCAxLjE2Ni41MjYgMS4xNjYgMS4xNjd2MTBjMCAuNjQtLjUyNiAxLjE2Ni0xLjE2NiAxLjE2NmgtMTBjLS42NCAwLTEuMTY3LS41MjYtMS4xNjctMS4xNjZ2LTEwYzAtLjY0LjUyNi0xLjE2NyAxLjE2Ny0xLjE2N1pcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTIgMTBcXFwiPjxwYXRoIGQ9XFxcIm0uNzUgNS4yNSAzLjUgMy41IDctNy41XFxcIiBzdHJva2U9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZS13aWR0aD1cXFwiMS41XFxcIiBzdHJva2UtbGluZWNhcD1cXFwicm91bmRcXFwiIHN0cm9rZS1saW5lam9pbj1cXFwicm91bmRcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLWxpbmVjYXA9XFxcInJvdW5kXFxcIiBzdHJva2UtbGluZWpvaW49XFxcInJvdW5kXFxcIiBzdHJva2Utd2lkdGg9XFxcIjJcXFwiIGNsYXNzPVxcXCJjaGV2cm9uX3N2Z19fZmVhdGhlciBjaGV2cm9uX3N2Z19fZmVhdGhlci1jaGV2cm9ucy1yaWdodFxcXCIgdmlld0JveD1cXFwiMCAwIDI0IDI0XFxcIj48cGF0aCBkPVxcXCJtMTMgMTcgNS01LTUtNU02IDE3bDUtNS01LTVcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE4IDE5XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk05IDIuNDM0Yy00LjEyNSAwLTcuNSAzLjM3NS03LjUgNy41czMuMzc1IDcuNSA3LjUgNy41IDcuNS0zLjM3NSA3LjUtNy41LTMuMzc1LTcuNS03LjUtNy41Wm0yLjc3NSA5LjIyNWMuMy4zLjMuNzUgMCAxLjA1LS4zLjMtLjc1LjMtMS4wNSAwTDkgMTAuOTg0bC0xLjcyNSAxLjcyNWMtLjMuMy0uNzUuMy0xLjA1IDAtLjMtLjMtLjMtLjc1IDAtMS4wNUw3Ljk1IDkuOTM0IDYuMjI1IDguMjA5Yy0uMy0uMy0uMy0uNzUgMC0xLjA1LjMtLjMuNzUtLjMgMS4wNSAwTDkgOC44ODRsMS43MjUtMS43MjVjLjMtLjMuNzUtLjMgMS4wNSAwIC4zLjMuMy43NSAwIDEuMDVMMTAuMDUgOS45MzRsMS43MjUgMS43MjVaXFxcIiBmaWxsPVxcXCIjRTM0RDVCXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIj48cGF0aCBkPVxcXCJNOC43NSA1LjQ1N2gtMS41QTEuMDgzIDEuMDgzIDAgMCAwIDYuMTY3IDYuNTR2M2ExLjA4MyAxLjA4MyAwIDAgMCAxLjA4MyAxLjA4M2gxLjVBMS4wODQgMS4wODQgMCAwIDAgOS44MzMgOS41NGEuNDE3LjQxNyAwIDAgMSAuODM0IDAgMS45MTcgMS45MTcgMCAwIDEtMS45MTcgMS45MTdoLTEuNUExLjkxNiAxLjkxNiAwIDAgMSA1LjMzMyA5LjU0di0zQTEuOTE3IDEuOTE3IDAgMCAxIDcuMjUgNC42MjNoMS41YTEuOTE3IDEuOTE3IDAgMCAxIDEuOTE3IDEuOTE3LjQxNi40MTYgMCAxIDEtLjgzNCAwQTEuMDgzIDEuMDgzIDAgMCAwIDguNzUgNS40NTdaTTQuMDE4IDIuMDhBNy4xNjcgNy4xNjcgMCAxIDEgMTEuOTgyIDE0IDcuMTY3IDcuMTY3IDAgMCAxIDQuMDE4IDIuMDhabS40NjMgMTEuMjI1QTYuMzM0IDYuMzM0IDAgMSAwIDExLjUyIDIuNzc0YTYuMzM0IDYuMzM0IDAgMCAwLTcuMDQgMTAuNTMyWlxcXCIgZmlsbD1cXFwiI0E2QjVCQVxcXCIgc3Ryb2tlPVxcXCIjQTZCNUJBXFxcIiBzdHJva2Utd2lkdGg9XFxcIi42NjdcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE0IDE0XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk05LjkxNyA0LjA4M2E0LjUxNSA0LjUxNSAwIDEgMC01LjgzNCA1LjgzNCA0LjUxNSA0LjUxNSAwIDEgMCA1LjgzNC01LjgzNFptLS45MzQuOTM0YTMuNDUzIDMuNDUzIDAgMCAxLS4wMyAxLjQ0N0w3LjUzMiA1LjA1MWMuMjU2LS4wNjEuNTE4LS4wOTMuNzgxLS4wOTQuMjI0IDAgLjQ0Ni4wMjIuNjY1LjA2NGwuMDA2LS4wMDVabS0uNTQ4IDIuNTY2YTMuNSAzLjUgMCAwIDEtLjg1Mi44NTJMNS41NjUgNi40MTdhMy41IDMuNSAwIDAgMSAuODUyLS44NTJsMi4wMTggMi4wMThabS00LjY2Ny44NTJhMy4zNTQgMy4zNTQgMCAxIDEgNC42NjctNC42NjdoLS4xNDZhNC41MjcgNC41MjcgMCAwIDAtNC40OTcgNC41NDRjMCAuMDQ3LjAwNS4xLjAwNS4xNDZsLS4wMjktLjAyM1ptMS4yMjUuNTE5YTMuNTcgMy41NyAwIDAgMS0uMDY0LS42NjVjLjAwMS0uMjYzLjAzMy0uNTI2LjA5My0uNzgyTDYuNDQgOC45MjVjLS4yNTYuMDYtLjUxOS4wOTItLjc4Mi4wOTNhMy41NyAzLjU3IDAgMCAxLS42MzYtLjA0bC0uMDI5LS4wMjRabTMuMzIgMi43MTJhMy4zNjUgMy4zNjUgMCAwIDEtMi43NzEtMS40NjRoLjE0NWE0LjUyNyA0LjUyNyAwIDAgMCA0LjUyMS00LjUxNXYtLjE0NWEzLjM1NCAzLjM1NCAwIDAgMS0xLjg5NiA2LjEyNFpcXFwiIGZpbGw9XFxcIiNGNEI3ODRcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgNTIgNTJcXFwiPjxjaXJjbGUgY3g9XFxcIjI2XFxcIiBjeT1cXFwiMjZcXFwiIHI9XFxcIjI1LjI1XFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIxLjVcXFwiLz48cGF0aCBkPVxcXCJNMzcuNCAzNy44MmMtLjA1MS0uNjA5LS4wNS01LjM4My0uMDM2LTguMzE4YS42LjYgMCAwIDAtLjU5OC0uNjA0aC0uMDAzYS42LjYgMCAwIDAtLjYuNTk4YzAgLjAyMi0uMDEgMi4xMi0uMDEgNC4yMDQuMDAyIDIuMTEyLjAwNCAzLjIyNC4wMjkgMy44MzRsLTkuODQ5IDIuOTYzYS41OTcuNTk3IDAgMCAwIC4wNTQtLjI0OHYtNy44OTdhLjYuNiAwIDEgMC0xLjIwMiAwdjcuODk3YzAgLjA1NS4wMDkuMTA4LjAyMi4xNTlsLTkuNTYtMi45MDgtLjAwOC03LjlhLjYuNiAwIDAgMC0uNi0uNjAxaC0uMDAxYS42LjYgMCAwIDAtLjYuNmwuMDA3IDguMzQ3YS42LjYgMCAwIDAgLjQyNS41NzRsMTAuODY4IDMuMzA0YS41OTIuNTkyIDAgMCAwIC4zNDggMGwxMC45MDMtMy4yOGEuNi42IDAgMCAwIC40MS0uNzI0Wm0tLjQ3Mi0uNDRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiIzE4QUNCMlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuM1xcXCIvPjxwYXRoIGQ9XFxcIm00MC4wNCAyMy43NDYtMy4zNjUtMS45MDItLjAxMy0uMDA2YTEyLjAwNCAxMi4wMDQgMCAwIDAtMi4zMzEtMy4yNTkuNi42IDAgMSAwLS44NDcuODUyIDEwLjc3OCAxMC43NzggMCAwIDEgMi42MjQgNC4yMTdsLTEuNTgyLjQzM2MtMS4yNTgtMy42MzMtNC43MzMtNi4xMzItOC42MTMtNi4xMzJhOS4xMTUgOS4xMTUgMCAwIDAtNC41NzIgMS4yMjguNjAxLjYwMSAwIDAgMCAuNjAzIDEuMDM5IDcuOTA4IDcuOTA4IDAgMCAxIDMuOTY5LTEuMDY2IDcuOTUgNy45NSAwIDAgMSA3LjQ1IDUuMjVsLTEuNTgzLjQzM2E2LjMxMiA2LjMxMiAwIDAgMC01Ljg2Ny00LjA0NyA2LjI5NSA2LjI5NSAwIDAgMC01Ljg3OSA0LjA3NWwtMS41ODYtLjQyNWE3Ljk0IDcuOTQgMCAwIDEgMS44NzEtMi45Ny42LjYgMCAxIDAtLjg1LS44NDkgOS4xNDggOS4xNDggMCAwIDAtMi4xODQgMy41MDZsLTEuNTgzLS40MjVjLjEwMi0uMzEuMjE4LS42MTMuMzQ2LS45MDlhLjYwNy42MDcgMCAwIDAgLjE3Mi0uMzc2IDEwLjc3NiAxMC43NzYgMCAwIDEgOS42OTMtNi4xYzEuODkgMCAzLjc0OS40OTcgNS4zNzUgMS40MzlhLjYwMS42MDEgMCAwIDAgLjYwMi0xLjA0IDExLjk0OSAxMS45NDkgMCAwIDAtNS45NzctMS42IDExLjk4IDExLjk4IDAgMCAwLTEwLjgxNCA2Ljg2bC0zLjEzOSAxLjc3NGEuNi42IDAgMCAwIC4zNTggMS4xMmwxLjMyLS4xMzYtMS40NzMgMS44N2EuNTk5LjU5OSAwIDAgMCAuMzAxLjk0N2wxMS4zNjEgMy4zNzhhLjYwMS42MDEgMCAwIDAgLjY5MS0uMjc0bDEuNDA5LTIuNDE4IDEuMzEgMi4xNzdhLjYuNiAwIDAgMCAuNjczLjI3bDExLjQ0Ny0zLjEyOWEuNjAyLjYwMiAwIDAgMCAuMzEzLS45NTFsLTEuNDg3LTEuODg5IDEuNDk5LjE1NmEuNi42IDAgMCAwIC4zNTgtMS4xMlptLTE0LjEyNy0xLjc1OGE1LjEwNCA1LjEwNCAwIDAgMSA0LjcwMiAzLjE2NWwtNC43MDMgMS4yODgtNC43MS0xLjI2NWE1LjA5IDUuMDkgMCAwIDEgNC43MTEtMy4xODhabS0yLjE5NiA3LjY1Mi0xMC4wNjEtMi45OTIgMS40Ni0xLjg1NUwyNSAyNy40MzlsLTEuMjgyIDIuMjAxWm00LjMxNS0uMjQtMS4xODQtMS45NjQgOS44Ny0yLjY0MyAxLjQ0OCAxLjgzOC0xMC4xMzQgMi43N1ptLTYuNDQ3LTE1Ljk3YS42MDEuNjAxIDAgMCAwIDEuMTU1LS4zM2wtLjgtMi44MDNhLjYwMS42MDEgMCAwIDAtMS4xNTYuMzNsLjgwMSAyLjgwNFptNy43NTUuNDc5YS42MDEuNjAxIDAgMCAwIC43NDItLjQxMmwuOC0yLjgwNGEuNi42IDAgMSAwLTEuMTU1LS4zM2wtLjggMi44MDRhLjYuNiAwIDAgMCAuNDEyLjc0MlptNi41NyAzLjY3N2EuNjAxLjYwMSAwIDAgMCAuNDItLjE3bDIuMDUzLTIuMDAzYS42LjYgMCAxIDAtLjgzOS0uODZsLTIuMDUyIDIuMDAyYS42LjYgMCAwIDAgLjQxOSAxLjAzWm0tMjAuNTQtLjIyMWEuNjAyLjYwMiAwIDAgMCAuODQtLjg2bC0yLjAwMy0xLjk1MmEuNi42IDAgMSAwLS44MzguODZsMi4wMDEgMS45NTJaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiIzE4QUNCMlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuM1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCA1MiA1MlxcXCI+PGNpcmNsZSBjeD1cXFwiMjZcXFwiIGN5PVxcXCIyNlxcXCIgcj1cXFwiMjUuMjVcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuNVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44NzEgMTcuMjA4QTEwLjE2NyAxMC4xNjcgMCAwIDEgMjYgMTUuODIzYTEwLjExIDEwLjExIDAgMCAxIDcuMTk2IDIuOTguNTY2LjU2NiAwIDAgMCAuODA0IDBBLjU3LjU3IDAgMCAwIDM0IDE4YTExLjI0IDExLjI0IDAgMCAwLTgtMy4zMTNjLTIuMDA4IDAtMy45OC41MzItNS43MDMgMS41NGEuNTY4LjU2OCAwIDEgMCAuNTc0Ljk4MlpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCIjMThBQ0IyXFxcIiBzdHJva2Utd2lkdGg9XFxcIi4zXFxcIi8+PHBhdGggZD1cXFwiTTI2IDEyYy0zLjc4IDAtNy4zMjEgMS40ODItOS45NzQgNC4xNzVhLjU3LjU3IDAgMCAwIC44MS43OThBMTIuNzcgMTIuNzcgMCAwIDEgMjYgMTMuMTM3YzcuMDkyIDAgMTIuODYzIDUuNzcgMTIuODYzIDEyLjg2MyAwIDIuMTg0LS41NDggNC4yNDQtMS41MTMgNi4wNDdsLTEuNzctMi43MDdhNC4zODEgNC4zODEgMCAwIDAgMS43MzQtMy40OSA0LjM5MiA0LjM5MiAwIDAgMC00LjM4OC00LjM4OCA0LjM0IDQuMzQgMCAwIDAtMi4zODkuNzA3IDUuOTMgNS45MyAwIDAgMC05LjEyMy4wNiA0LjM3NyA0LjM3NyAwIDAgMC0yLjQ3OS0uNzY3IDQuMzkyIDQuMzkyIDAgMCAwLTQuMzg3IDQuMzg3YzAgMS40MTUuNjc0IDIuNjc0IDEuNzE2IDMuNDc3bC0xLjYzNSAyLjY4MWExMi44NiAxMi44NiAwIDAgMSAuMjA0LTEyLjM5My41NjkuNTY5IDAgMSAwLS45ODctLjU2NUExNCAxNCAwIDAgMCAxMiAyNmMwIDUuMDk1IDIuNzM2IDkuNTY0IDYuODE3IDEyLjAxM2EuNTY2LjU2NiAwIDAgMCAuMzI1LjE4OUExMy45MTEgMTMuOTExIDAgMCAwIDI2IDQwYzcuNzE5IDAgMTQtNi4yOCAxNC0xNHMtNi4yODEtMTQtMTQtMTRabTYuOTI1IDEwLjU5OWEzLjI1MyAzLjI1MyAwIDAgMSAzLjI1IDMuMjUgMy4yNTMgMy4yNTMgMCAwIDEtMy4yNSAzLjI1Yy0uNTc2IDAtMS4xMjctLjE1LTEuNjE4LS40MzRBNS45MDYgNS45MDYgMCAwIDAgMzEuOTQgMjZhNS45MDMgNS45MDMgMCAwIDAtLjc1Ny0yLjg5NiAzLjIxNyAzLjIxNyAwIDAgMSAxLjc0LS41MDVaTTI2IDIxLjE5NkE0LjgxIDQuODEgMCAwIDEgMzAuODAzIDI2IDQuODEgNC44MSAwIDAgMSAyNiAzMC44MDQgNC44MSA0LjgxIDAgMCAxIDIxLjE5NSAyNiA0LjgxIDQuODEgMCAwIDEgMjYgMjEuMTk2Wm0tMTAuMzE2IDQuNjUzYTMuMjUzIDMuMjUzIDAgMCAxIDUuMDkyLTIuNjc4QTUuOTA1IDUuOTA1IDAgMCAwIDIwLjA1OCAyNmMwIC45MzMuMjE3IDEuODE2LjYwMSAyLjYwM2EzLjI1MyAzLjI1MyAwIDAgMS00Ljk3Ni0yLjc1NFptMy4zODEgMTAuOTgxYTEyLjk2MiAxMi45NjIgMCAwIDEtMy43NzktMy43MTlsMS45NTktMy4yMTNjLjUyLjIxOCAxLjA5LjMzOSAxLjY4OS4zMzkuODMyIDAgMS42MjctLjIzIDIuMzIxLS42NjVhNiA2IDAgMCAwIDEuMyAxLjI2NWwtMy40OSA1Ljk5M1pNMjYgMzguODY0Yy0yLjE0NiAwLTQuMTctLjUzLTUuOTUxLTEuNDYzbDMuNDktNS45OTVhNS45IDUuOSAwIDAgMCAyLjQ2LjUzNWMuODYxIDAgMS42OC0uMTg1IDIuNDE4LS41MTZsMy40OTUgNS45OTdBMTIuNzg0IDEyLjc4NCAwIDAgMSAyNiAzOC44NjRabTYuODk3LTIuMDEtMy40OS01Ljk5Yy40OS0uMzQ1LjkyNi0uNzYyIDEuMjkyLTEuMjM1YTQuMzQ5IDQuMzQ5IDAgMCAwIDIuMjI2LjYwN2MuNTkgMCAxLjE1Mi0uMTE4IDEuNjY2LS4zM2wyLjExIDMuMjI0YTEyLjk3MyAxMi45NzMgMCAwIDEtMy44MDQgMy43MjNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiIzE4QUNCMlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuM1xcXCIvPjxwYXRoIGQ9XFxcIk0yNiAyOS44MDNhMy44MjMgMy44MjMgMCAwIDAgMy4wNDgtMS41MjguNTY5LjU2OSAwIDAgMC0uOTEtLjY4IDIuNjY4IDIuNjY4IDAgMCAxLTQuMzM3LS4wODYuNTY5LjU2OSAwIDAgMC0uOTM4LjY0M0EzLjgwNCAzLjgwNCAwIDAgMCAyNiAyOS44MDNaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiIzE4QUNCMlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuM1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxMiAxNFxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgZD1cXFwiTTguMTY3IDN2LjVoMy4xNjZhLjE2Ny4xNjcgMCAwIDEgMCAuMzMzaC0xLjE2NnY3LjgzM2ExLjUgMS41IDAgMCAxLTEuNSAxLjVIMy4zMzNhMS41IDEuNSAwIDAgMS0xLjA2LS40MzlsLS4zNTQuMzU0LjM1NC0uMzU0YTEuNSAxLjUgMCAwIDEtLjQ0LTEuMDZWMy44MzJILjY2N2EuMTY3LjE2NyAwIDEgMSAwLS4zMzNoMy4xNjZWMi4zMzNhMS41IDEuNSAwIDAgMSAxLjUtMS41aDEuMzM0YTEuNSAxLjUgMCAwIDEgMS41IDEuNVYzWm0tLjgzNC41aC41VjIuMzMzYTEuMTY3IDEuMTY3IDAgMCAwLTEuMTY2LTEuMTY3SDUuMzMzYTEuMTY3IDEuMTY3IDAgMCAwLTEuMTY2IDEuMTY3VjMuNWgzLjE2NlptLTQuNjY2LjMzM2gtLjV2Ny44MzNhMS4xNjcgMS4xNjcgMCAwIDAgMS4xNjYgMS4xNjdoNS4zMzRhMS4xNjcgMS4xNjcgMCAwIDAgMS4xNjYtMS4xNjdWMy44MzNIMi42NjdabTIuMTE4IDYuNjE4YS4xNjcuMTY3IDAgMCAxLS4yODUtLjExOHYtNGEuMTY3LjE2NyAwIDEgMSAuMzMzIDB2NGEuMTY3LjE2NyAwIDAgMS0uMDQ4LjExOFptMi42NjYgMGEuMTY3LjE2NyAwIDAgMS0uMjg0LS4xMTh2LTRhLjE2Ny4xNjcgMCAwIDEgLjMzMyAwdjRhLjE2Ny4xNjcgMCAwIDEtLjA0OS4xMThaXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgdmlld0JveD1cXFwiMCAwIDE3IDE2XFxcIj48cGF0aCBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIGQ9XFxcIk0xMC42MjQgNS42NjdoLTQuNjdMOC4yOSAzLjQxNGwyLjMzNSAyLjI1M1pNOC43OCAyLjQ3NGEuNzA2LjcwNiAwIDAgMC0uOTc0IDBsLTMuMTcgMy4wNmMtLjQzNi40MTMtLjEzMiAxLjEzMy40ODMgMS4xMzNoNi4zMzRjLjYxNSAwIC45MjYtLjcyLjQ5LTEuMTRMOC43OCAyLjQ3NFptMi42OCA2Ljg2SDUuMTE5Yy0uNjE1IDAtLjkyNi43Mi0uNDkgMS4xNGwzLjE3IDMuMDZjLjI3LjI2LjcwNC4yNi45NzQgMGwzLjE3LTMuMDZjLjQzNi0uNDIuMTMyLTEuMTQtLjQ4My0xLjE0WlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJtMTMuODA3IDExLjE0LTEuNjE0LTEuNjE0YS42NjYuNjY2IDAgMCAwLS45NDYgMEw4Ljg2IDExLjkxM2EuNjY3LjY2NyAwIDAgMC0uMTkzLjQ3M1YxNGEuNjY3LjY2NyAwIDAgMCAuNjY2LjY2NmgxLjYxNGEuNjY4LjY2OCAwIDAgMCAuNDczLS4xOTNsMi4zODctMi4zODdhLjY2Ny42NjcgMCAwIDAgMC0uOTQ2Wm0tMy4xNCAyLjE5M0gxMHYtLjY2N2wxLjcyLTEuNzIuNjY3LjY2Ny0xLjcyIDEuNzJabS00IDBINGEuNjY2LjY2NiAwIDAgMS0uNjY3LS42NjdWMy4zMzNBLjY2Ny42NjcgMCAwIDEgNCAyLjY2NmgzLjMzM3YyYTIgMiAwIDAgMCAyIDJoMnYuNjY3YS42NjcuNjY3IDAgMCAwIDEuMzM0IDBWNS45NmEuODguODggMCAwIDAtLjA0LS4xOHYtLjA2YS43MTQuNzE0IDAgMCAwLS4xMjctLjE4N2wtNC00YS43MTMuNzEzIDAgMCAwLS4xODctLjEyNy4yMTMuMjEzIDAgMCAwLS4wNiAwbC0uMjEzLS4wNzNINGEyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJoMi42NjdhLjY2Ny42NjcgMCAxIDAgMC0xLjMzM1ptMi05LjcyNyAxLjcyNiAxLjcyN2gtMS4wNmEuNjY3LjY2NyAwIDAgMS0uNjY2LS42Njd2LTEuMDZaTTUuMzMzIDkuMzMzaDRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM2gtNGEuNjY3LjY2NyAwIDEgMCAwIDEuMzMzWm0wLTIuNjY3SDZhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM2gtLjY2N2EuNjY3LjY2NyAwIDAgMCAwIDEuMzMzWm0xLjMzNCA0SDUuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzRoMS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNFpcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE0IDE0XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxnIGNsaXAtcGF0aD1cXFwidXJsKCNkb3VibGUtdGlja19zdmdfX2EpXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiPjxwYXRoIGQ9XFxcIk05Ljg0NSAzLjcwNmEuNjQ3LjY0NyAwIDAgMC0uOTQ3IDBsLTUuMDcgNS4xNEwxLjczMyA2LjcyYS42NDcuNjQ3IDAgMCAwLS45NDcgMCAuNjY5LjY2OSAwIDAgMCAwIC45NmwyLjU3IDIuNjA0YS42MS42MSAwIDAgMCAuNDcyLjIwNi42MS42MSAwIDAgMCAuNDc0LS4yMDZsNS41NDMtNS42MmEuNjY5LjY2OSAwIDAgMCAwLS45NlpcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjMyIDMuMzZhMS4yMzQgMS4yMzQgMCAwIDAtMS43ODMgMEw3LjE5NyA4LjA3OGwtMS42NzctMS43YTEuMjM0IDEuMjM0IDAgMCAwLTEuNzgzIDAgMS4yNTYgMS4yNTYgMCAwIDAgMCAxLjc4NGwyLjU3IDIuNjA0Yy4xMDEuMTAzLjIyNy4yMDUuMzg3LjI3Ny4xNjQuMDc0LjMzMy4xMDQuNTAzLjEwNC4xNzEgMCAuMzQtLjAzLjUwNC0uMTA0LjE2LS4wNzIuMjg2LS4xNzQuMzg4LS4yNzdsNS41NDMtNS42MmExLjI1NiAxLjI1NiAwIDAgMCAwLTEuNzg0WlxcXCIgc3Ryb2tlPVxcXCIjZmZmXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuMTc1XFxcIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD1cXFwiZG91YmxlLXRpY2tfc3ZnX19hXFxcIj48cGF0aCBmaWxsPVxcXCIjZmZmXFxcIiBkPVxcXCJNMCAwaDE0djE0SDB6XFxcIi8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIj48cGF0aCBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJtMTIuNzk2IDUuODcuMDIzLjA3YS4zMDUuMzA1IDAgMCAxIC4wMTQuMDU0djYuNjcyYTEuNSAxLjUgMCAwIDEtMS41IDEuNUg0LjY2N2ExLjUgMS41IDAgMCAxLTEuNS0xLjVWMy4zMzNhMS41IDEuNSAwIDAgMSAxLjUtMS41aDMuOTc4YS4yMzMuMjMzIDAgMCAxIC4wMzMuMDE0bC4xMS4wNmguMDQ1bDMuOTYzIDMuOTYyWm0tMy4xMS0yLjYxNy0uODUzLS44NTR2Mi4yNjdBMS4xNjcgMS4xNjcgMCAwIDAgMTAgNS44MzNoMi4yNjdsLS44NTMtLjg1NC0xLjcyNy0xLjcyNlpNOC41IDIuNjY2di0uNUg0LjY2N0ExLjE2NyAxLjE2NyAwIDAgMCAzLjUgMy4zMzN2OS4zMzNhMS4xNjcgMS4xNjcgMCAwIDAgMS4xNjcgMS4xNjdoNi42NjZhMS4xNjcgMS4xNjcgMCAwIDAgMS4xNjctMS4xNjd2LTYuNUgxMGExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTJabS0uMzMzIDcuMDZ2MS4yMzdsLjg2LS44OS4xODktLjE5NWEuMTcuMTcgMCAwIDEgLjIzNy4yNDJsLTEuMzI4IDEuMzI4YS4xNjcuMTY3IDAgMCAxLS4wNTIuMDMybC0uMDExLjAwNC0uMDEuMDA1YS4xMjcuMTI3IDAgMCAxLS4xMDMgMGwtLjAxLS4wMDUtLjAxMi0uMDA0YS4xNjcuMTY3IDAgMCAxLS4wNTItLjAzMmwtMS4zMjgtMS4zMjlhLjE3LjE3IDAgMCAxIC4yMzctLjI0MWwuMTkuMTk2Ljg2Ljg4OVY4YS4xNjcuMTY3IDAgMCAxIC4zMzMgMHYxLjcyNlpcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIm0yLjYyNiAxMy4zNzQuMjM2LS4yMzYtLjIzNi4yMzZhMSAxIDAgMCAwIC43MDcuMjkzaDkuMzM0YTEgMSAwIDAgMCAuNzA3LS4yOTNsLS4yMzYtLjIzNi4yMzYuMjM2YTEgMSAwIDAgMCAuMjkzLS43MDdWMTBhLjMzMy4zMzMgMCAwIDEgLjU2OS0uMjM2bC4yMzUtLjIzNS0uMjM1LjIzNWEuMzMzLjMzMyAwIDAgMSAuMDk3LjIzNnYyLjY2N2ExLjY2NyAxLjY2NyAwIDAgMS0xLjY2NiAxLjY2NkgzLjMzM2ExLjY2NyAxLjY2NyAwIDAgMS0xLjY2Ni0xLjY2NlYxMGMwLS4wODguMDM1LS4xNzMuMDk3LS4yMzZMMS41MyA5LjUzbC4yMzUuMjM1YS4zMzMuMzMzIDAgMCAxIC40NzIgMGwuMjM1LS4yMzUtLjIzNS4yMzVhLjMzMy4zMzMgMCAwIDEgLjA5Ny4yMzZ2Mi42NjdhMSAxIDAgMCAwIC4yOTMuNzA3Wm01LjI1NS0zLjA2Ni0uMDA3LS4wMDMtLjAwNy0uMDAyYS4zMzMuMzMzIDAgMCAxLS4xMDgtLjA2OEw1LjA5NiA3LjU3YS4zMzYuMzM2IDAgMCAxIC4zNjYtLjU0OGwuMTI4LS4zMDgtLjEyOC4zMDhjLjA0LjAxNy4wNzguMDQxLjEwOS4wNzJMNy4wOTcgOC42M2wuNTcuNTcyVjJhLjMzMy4zMzMgMCAxIDEgLjY2NiAwdjcuMjAxbC41Ny0uNTcyIDEuNTI2LTEuNTMzYS4zMzYuMzM2IDAgMCAxIC40NzUuNDc1bC0yLjY2MyAyLjY2NGEuMzMzLjMzMyAwIDAgMS0uMTA4LjA2OGwtLjAwNy4wMDItLjAwNy4wMDNhLjI5Mi4yOTIgMCAwIDEtLjIzOCAwWlxcXCIgZmlsbD1cXFwiY3VycmVudGNvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRjb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDEwIDZcXFwiPjxwYXRoIGQ9XFxcIk04LjkzMi44NzhhLjUuNSAwIDAgMSAwIC43MUw1LjM1NyA1LjEyMWwtLjAwMi4wMDNhLjUuNSAwIDAgMS0uNzEgMHYtLjAwMUwxLjExIDEuNTg5YS41LjUgMCAwIDEgMC0uNzFWLjg3N2EuNS41IDAgMCAxIC43MDUgMGwyLjk1IDIuOTUuMjMzLjIzMy4yMzYtLjIzMkw4LjIyNi44NzlWLjg3OGEuNS41IDAgMCAxIC43MDYgMFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTcgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTMuNzE4IDEyaDIuODI3YS42NjYuNjY2IDAgMCAwIC40NzMtLjE5NGw0LjYxNC00LjYyIDEuODkzLTEuODUzYS42NjguNjY4IDAgMCAwIDAtLjk0N2wtMi44MjctMi44NmEuNjY3LjY2NyAwIDAgMC0uOTQ2IDBsLTEuODggMS44ODctNC42MjcgNC42MmEuNjY3LjY2NyAwIDAgMC0uMTkzLjQ3M3YyLjgyN2EuNjY3LjY2NyAwIDAgMCAuNjY2LjY2N1ptNi41MDctOS4wNiAxLjg4NyAxLjg4Ni0uOTQ3Ljk0Ny0xLjg4Ny0xLjg4Ny45NDctLjk0NlptLTUuODQgNS44NCAzLjk1My0zLjk1NCAxLjg4NyAxLjg4Ny0zLjk1MyAzLjk1M0g0LjM4NVY4Ljc4Wm0xMCA0LjU1M2gtMTJhLjY2Ny42NjcgMCAxIDAgMCAxLjMzM2gxMmEuNjY2LjY2NiAwIDEgMCAwLTEuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNyAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTIuNzUxIDcuMjEzYS43MzIuNzMyIDAgMCAwLS41LjE5NS42NDcuNjQ3IDAgMCAwLS4yMDguNDcydjQuNzg2YS42NDcuNjQ3IDAgMCAxLS4yMDcuNDcyLjczMS43MzEgMCAwIDEtLjUwMS4xOTVIMy41NDNhLjczMS43MzEgMCAwIDEtLjUtLjE5NS42NDcuNjQ3IDAgMCAxLS4yMDgtLjQ3MlY1LjMzM2MwLS4xNzcuMDc0LS4zNDYuMjA3LS40NzFhLjczMS43MzEgMCAwIDEgLjUwMS0uMTk2aDUuMDg2Yy4xODggMCAuMzY4LS4wNy41LS4xOTVBLjY0Ny42NDcgMCAwIDAgOS4zMzggNGEuNjQ3LjY0NyAwIDAgMC0uMjA3LS40NzIuNzMxLjczMSAwIDAgMC0uNTAxLS4xOTVIMy41NDNjLS41NjQgMC0xLjEwNC4yMS0xLjUwMy41ODZhMS45NDIgMS45NDIgMCAwIDAtLjYyMiAxLjQxNHY3LjMzM2MwIC41My4yMjQgMS4wNC42MjIgMS40MTUuMzk5LjM3NS45NC41ODUgMS41MDMuNTg1aDcuNzkyYy41NjMgMCAxLjEwNC0uMjEgMS41MDItLjU4NS4zOTktLjM3NS42MjMtLjg4NC42MjMtMS40MTVWNy44OGEuNjQ3LjY0NyAwIDAgMC0uMjA4LS40NzIuNzMyLjczMiAwIDAgMC0uNS0uMTk1Wm0yLjc3Ny01LjQ2N2EuNjkuNjkgMCAwIDAtLjM4My0uMzYuNzQ3Ljc0NyAwIDAgMC0uMjY5LS4wNTNoLTQuMjVhLjczMi43MzIgMCAwIDAtLjUuMTk1LjY0Ny42NDcgMCAwIDAtLjIwOC40NzJjMCAuMTc2LjA3NS4zNDYuMjA3LjQ3MWEuNzMyLjczMiAwIDAgMCAuNTAxLjE5NWgyLjU0M2wtNy4yOTYgNi44NmEuNjY2LjY2NiAwIDAgMC0uMTU1LjIxNy42MzMuNjMzIDAgMCAwIC4xNTUuNzMuNzQ2Ljc0NiAwIDAgMCAxLjAwNiAwbDcuMjg5LTYuODY3VjZjMCAuMTc2LjA3NS4zNDYuMjA3LjQ3MWEuNzMyLjczMiAwIDAgMCAuNTAxLjE5NWMuMTg4IDAgLjM2OC0uMDcuNTAxLS4xOTVBLjY0Ny42NDcgMCAwIDAgMTUuNTg1IDZWMmEuNjMzLjYzMyAwIDAgMC0uMDU3LS4yNTRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE3XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xNC42MTMgNy45OEMxMy4yNjcgNC44NTMgMTAuNzMzIDIuOTEzIDggMi45MTNjLTIuNzMzIDAtNS4yNjcgMS45NC02LjYxMyA1LjA2N2EuNjY3LjY2NyAwIDAgMCAwIC41MzNDMi43MzMgMTEuNjQgNS4yNjcgMTMuNTggOCAxMy41OGMyLjczMyAwIDUuMjY3LTEuOTQgNi42MTMtNS4wNjdhLjY2Ny42NjcgMCAwIDAgMC0uNTMzWk04IDEyLjI0NmMtMi4xMTMgMC00LjExMy0xLjUyNi01LjI2Ny00IDEuMTU0LTIuNDczIDMuMTU0LTQgNS4yNjctNCAyLjExMyAwIDQuMTEzIDEuNTI3IDUuMjY3IDQtMS4xNTQgMi40NzQtMy4xNTQgNC01LjI2NyA0Wk04IDUuNThhMi42NjcgMi42NjcgMCAxIDAgMCA1LjMzM0EyLjY2NyAyLjY2NyAwIDAgMCA4IDUuNThabTAgNGExLjMzMyAxLjMzMyAwIDEgMSAwLTIuNjY3QTEuMzMzIDEuMzMzIDAgMCAxIDggOS41OFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTUwIDE1MFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48Y2lyY2xlIGN4PVxcXCI3NVxcXCIgY3k9XFxcIjc1XFxcIiByPVxcXCI3NVxcXCIgZmlsbD1cXFwidXJsKCNmb2xkZXJfc3ZnX19hKVxcXCIvPjxwYXRoIGQ9XFxcIk00NS41NDggNTQuMjJjMC0yLjM4IDAtMy41Ny40Ny00LjQ3NWE0LjE3OCA0LjE3OCAwIDAgMSAxLjc4Mi0xLjc4MWMuOTA2LS40NyAyLjA5NS0uNDcgNC40NzUtLjQ3aDE3LjU1N2MxLjAxMiAwIDEuNTE4IDAgMS45OTUuMTEzLjQwNi4wOTYuNzk1LjI1MyAxLjE1NC40NjUuNDIzLjI1Ljc4OC42IDEuNTE3IDEuMzAybC40My40MTZjLjczLjcwMiAxLjA5NCAxLjA1MyAxLjUxNyAxLjMwMi4zNi4yMTIuNzQ4LjM2OSAxLjE1NC40NjUuNDc3LjExNC45ODMuMTE0IDEuOTk2LjExNGgxNy43MThjMi4zNzkgMCAzLjU2OCAwIDQuNDc0LjQ3YTQuMTgyIDQuMTgyIDAgMCAxIDEuNzgyIDEuNzgyYy40Ny45MDYuNDcgMi4wOTUuNDcgNC40NzR2NDAuMDQ2YzAgMS4xOSAwIDEuNzg0LS4yMzUgMi4yMzdhMi4wODMgMi4wODMgMCAwIDEtLjg5MS44OTFjLS40NTMuMjM1LTEuMDQ4LjIzNS0yLjIzNy4yMzVINTEuNjAyYy0yLjE0MSAwLTMuMjEyIDAtNC4wMjctLjQyM2EzLjc2MyAzLjc2MyAwIDAgMS0xLjYwNC0xLjYwNGMtLjQyMy0uODE1LS40MjMtMS44ODUtLjQyMy00LjAyN1Y1NC4yMlpcXFwiIGZpbGw9XFxcInVybCgjZm9sZGVyX3N2Z19fYilcXFwiLz48cGF0aCBkPVxcXCJNNjYuNjU2IDYyLjMxMWgzOC41MzFjMS42NzIgMCAyLjkwNCAwIDMuODMuMTMzLjkyLjEzMyAxLjQ5OS4zOSAxLjg5NC44NzcuMzk0LjQ4Ni41MjggMS4xMDYuNDY3IDIuMDM0LS4wNjEuOTMzLS4zMTQgMi4xNC0uNjU4IDMuNzc1bC01Ljg5NCAyNy45OTJjLS4yMzUgMS4xMTctLjQwOCAxLjkzOC0uNjIxIDIuNTYyLS4yMTEuNjE5LS40NTUgMS4wMjMtLjgxOSAxLjMxOC0uMzYzLjI5NS0uODA4LjQ1LTEuNDU4LjUyOS0uNjU0LjA4LTEuNDkzLjA4MS0yLjYzNC4wODFINTAuMTU3Yy45Mi0xLjEwMSAxLjQyMi0yLjI0NSAxLjkxNy0zLjg2MS4yMjUtLjczNC40NS0xLjU2OC43MTItMi41NDJsLjE2OC0uNjIyYy4zMzctMS4yNDguNzQyLTIuNzE0IDEuMjgtNC40NzQgMS41NTItNS4wNiA1LjEwNS0xNy4yNDMgNi45ODgtMjMuNzIyLjI5Ny0xLjAyMS41MTUtMS43Ny43NTUtMi4zMzkuMjM4LS41NjMuNDktLjkzLjg0Mi0xLjE5NC4zNTItLjI2NS43NzQtLjQwNCAxLjM4Mi0uNDc1LjYxMi0uMDcyIDEuMzkyLS4wNzIgMi40NTUtLjA3MlpcXFwiIGZpbGw9XFxcIiNCOURERkZcXFwiIHN0cm9rZT1cXFwidXJsKCNmb2xkZXJfc3ZnX19jKVxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuMzlcXFwiLz48cGF0aCBkPVxcXCJNNjYuNjU2IDYyLjMxMWgzOC41MzFjMS42NzIgMCAyLjkwNCAwIDMuODMuMTMzLjkyLjEzMyAxLjQ5OS4zOSAxLjg5NC44NzcuMzk0LjQ4Ni41MjggMS4xMDYuNDY3IDIuMDM0LS4wNjEuOTMzLS4zMTQgMi4xNC0uNjU4IDMuNzc1bC01Ljg5NCAyNy45OTJjLS4yMzUgMS4xMTctLjQwOCAxLjkzOC0uNjIxIDIuNTYyLS4yMTEuNjE5LS40NTUgMS4wMjMtLjgxOSAxLjMxOC0uMzYzLjI5NS0uODA4LjQ1LTEuNDU4LjUyOS0uNjU0LjA4LTEuNDkzLjA4MS0yLjYzNC4wODFINTAuMTU3Yy45Mi0xLjEwMSAxLjQyMi0yLjI0NSAxLjkxNy0zLjg2MS4yMjUtLjczNC40NS0xLjU2OC43MTItMi41NDJsLjE2OC0uNjIyYy4zMzctMS4yNDguNzQyLTIuNzE0IDEuMjgtNC40NzQgMS41NTItNS4wNiA1LjEwNS0xNy4yNDMgNi45ODgtMjMuNzIyLjI5Ny0xLjAyMS41MTUtMS43Ny43NTUtMi4zMzkuMjM4LS41NjMuNDktLjkzLjg0Mi0xLjE5NC4zNTItLjI2NS43NzQtLjQwNCAxLjM4Mi0uNDc1LjYxMi0uMDcyIDEuMzkyLS4wNzIgMi40NTUtLjA3MlpcXFwiIGZpbGw9XFxcInVybCgjZm9sZGVyX3N2Z19fZClcXFwiIGZpbGwtb3BhY2l0eT1cXFwiLjhcXFwiIHN0cm9rZT1cXFwidXJsKCNmb2xkZXJfc3ZnX19lKVxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuMzlcXFwiLz48cGF0aCBkPVxcXCJNNTUuOTkzIDUxLjgyOGg4LjM1NmExLjkzMyAxLjkzMyAwIDAgMSAwIDMuODY2aC04LjM1NmExLjkzMyAxLjkzMyAwIDEgMSAwLTMuODY2WlxcXCIgZmlsbD1cXFwidXJsKCNmb2xkZXJfc3ZnX19mKVxcXCIgZmlsbC1vcGFjaXR5PVxcXCIuOVxcXCIgc3Ryb2tlPVxcXCJ1cmwoI2ZvbGRlcl9zdmdfX2cpXFxcIiBzdHJva2Utd2lkdGg9XFxcIi4zMTJcXFwiLz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZvbGRlcl9zdmdfX2FcXFwiIHgxPVxcXCI3NVxcXCIgeTE9XFxcIjBcXFwiIHgyPVxcXCI3NVxcXCIgeTI9XFxcIjE1MFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiNFM0VDRkFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNEQUU3RkZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZm9sZGVyX3N2Z19fYlxcXCIgeDE9XFxcIjYyLjQyXFxcIiB5MT1cXFwiNTkuMzc0XFxcIiB4Mj1cXFwiMTA2LjU1NFxcXCIgeTI9XFxcIjc1LjcxOVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiM3RkMwRkJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM0MDg4RjRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZm9sZGVyX3N2Z19fY1xcXCIgeDE9XFxcIjQ2LjU5M1xcXCIgeTE9XFxcIjY0Ljk1MVxcXCIgeDI9XFxcIjY4Ljc0NlxcXCIgeTI9XFxcIjExOC4zNzJcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIuNzY2XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZm9sZGVyX3N2Z19fZFxcXCIgeDE9XFxcIjEwOC41XFxcIiB5MT1cXFwiOThcXFwiIHgyPVxcXCI0MVxcXCIgeTI9XFxcIjk5LjVcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjQjRENEY3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIuMTI4XFxcIiBzdG9wLWNvbG9yPVxcXCIjOEJCREZCXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIuMjYyXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTFDMkZCXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIuNzU5XFxcIiBzdG9wLWNvbG9yPVxcXCIjOUZDRkZEXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOUVDRUZEXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZvbGRlcl9zdmdfX2VcXFwiIHgxPVxcXCI0Ni41OTNcXFwiIHkxPVxcXCI2NC45NTFcXFwiIHgyPVxcXCI2OC43NDZcXFwiIHkyPVxcXCIxMTguMzcyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjc2NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZvbGRlcl9zdmdfX2ZcXFwiIHgxPVxcXCI1Mi45NTJcXFwiIHkxPVxcXCI1MS4zOTNcXFwiIHgyPVxcXCI3MC4xMDZcXFwiIHkyPVxcXCI1Ni40NjFcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZm9sZGVyX3N2Z19fZ1xcXCIgeDE9XFxcIjUxLjc4MlxcXCIgeTE9XFxcIjUyLjU2MlxcXCIgeDI9XFxcIjYwLjE3MVxcXCIgeTI9XFxcIjU1Ljg1XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI2NiA2M1xcXCI+PHBhdGggZD1cXFwiTS44MyA1OC45MVYyOC43aDguNzI1djMwLjIxSC44M1ptMzUuMDE3LTIuOTNjLTEuOTgzIDIuNDE2LTQuODM1IDMuNzc3LTguNjE1IDMuNzc3LTYuMDc2IDAtMTAuOTcxLTMuNzc4LTEwLjk3MS05LjYwMyAwLTUuNzYzIDQuODk4LTguNjEgMTEuNzc3LTguOTg1IDUuMjctLjMxIDYuOTQzLS44NjggNi45NDMtMi42NjMgMC0xLjczNi0xLjYxMS0yLjkxMy00LjQ2My0yLjkxMy0zLjQ3IDAtNC45NiAxLjczNi01LjE0NSAzLjU5NGgtOC40OTRjLjQzNC02LjYyOCA1LjM5Mi0xMS4yMTQgMTMuNzAxLTExLjIxNCA4LjEyMiAwIDEzLjMzIDQuMzk4IDEzLjMzIDEyLjYzN3YxOC40NjNoLTcuMjU0bC0uODA5LTMuMDk0Wm0tMTAuNzg2LTYuMTk1YzAgMS43MzYgMS41NSAyLjc4OCA0LjAzIDIuNzg4IDMuMzQ4IDAgNi4wMTItMS44NTggNi4wMTItNS42MzhWNDUuODJzLTEuNjExLjc0My00Ljk2LjkzYy0zLjY1OC4xODUtNS4wODIgMS4zNjItNS4wODIgMy4wMzVabTM4LjMwNyA5LjQxNmMtNi42MzIgMC0xMC40NzctMy44NC0xMC40NzctMTAuNTMzVjM2LjgzNmgtNS4wODN2LTguMTE3aDUuMDgzdi00LjQ2MWw4LjgwMi03LjQzNFYyOC43Mmg3LjYyNnY4LjExN2gtNy42MjZWNDcuNDNjMCAyLjkxMiAxLjkyMiAzLjU5MyAzLjcyIDMuNTkzYTkuNTM5IDkuNTM5IDAgMCAwIDMuNzIxLS44MDV2Ny45OTJjMCAuMDAyLTIuMzU1Ljk5Mi01Ljc2Ni45OTJaTS4wOCAxOS42MzRjMC0yLjg1IDIuMjMtNS4xNDIgNS4wODItNS4xNDJhNS4xMyA1LjEzIDAgMCAxIDUuMTQ1IDUuMTQyYzAgMi43ODgtMi4yOTMgNS4wOC01LjE0NSA1LjA4YTUuMDYzIDUuMDYzIDAgMCAxLTUuMDgyLTUuMDhaTTc1LjgwOSA1OC45MVYyOC43aDguNzI2djMwLjIxaC04LjcyNlptMjAuMTU0LTM5LjIwMmMwLTEuNC0uMTktMi43Ni0uNTM3LTQuMDUzYTE1LjUxIDE1LjUxIDAgMCAwLTEuNTY5LTMuNzcyIDE1LjY2NSAxNS42NjUgMCAwIDAtMi40ODktMy4yNDEgMTUuNzMyIDE1LjczMiAwIDAgMC03LjAxOC00LjA1IDE1LjY1OCAxNS42NTggMCAwIDAtNC4wNTItLjUzM2gtLjAwNmExNS43NSAxNS43NSAwIDAgMC00LjA0OS41M2MtMS4zNC4zNTctMi42MDUuODg4LTMuNzc3IDEuNTY1QTE1LjY3IDE1LjY3IDAgMCAwIDY5LjIyIDguNjRhMTUuNzcgMTUuNzcgMCAwIDAtMi40OTIgMy4yNDIgMTUuNjQ4IDE1LjY0OCAwIDAgMC0xLjU3MiAzLjc3NGwyLjI0Mi42MDJhMTMuNDI3IDEzLjQyNyAwIDAgMSAzLjQ2Mi01Ljk3OCAxMy40MjYgMTMuNDI2IDAgMCAxIDUuOTg0LTMuNDUgMTMuNDI2IDEzLjQyNiAwIDAgMSAzLjQ0OC0uNDVoLjAwNmMxLjE5NSAwIDIuMzUuMTU4IDMuNDU0LjQ1M2ExMy40MTIgMTMuNDEyIDAgMCAxIDUuOTggMy40NDljLjgxOS44MiAxLjUzMSAxLjc1IDIuMTE5IDIuNzZhMTMuMyAxMy4zIDAgMCAxIDEuNzkzIDYuNjY0di4wMTJhMTMuMzggMTMuMzggMCAwIDEtLjQ1MSAzLjQ0MyAxMy4yMTcgMTMuMjE3IDAgMCAxLTEuMzM0IDMuMjE5bDIuMDEgMS4xNmExNS41MzkgMTUuNTM5IDAgMCAwIDEuNTY2LTMuNzc4IDE1LjcgMTUuNyAwIDAgMCAuNTMtNC4wNDFsLS4wMDItLjAxMlpcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAwLjAyMyAxOS43MDhhMTkuNjU1IDE5LjY1NSAwIDAgMC0yLjY0NC05Ljg1NSAxOS44MSAxOS44MSAwIDAgMC03LjIyLTcuMjEzQTE5LjYxMiAxOS42MTIgMCAwIDAgODUuNDAzLjY3IDE5LjgxIDE5LjgxIDAgMCAwIDgwLjI5OCAwaC0uMDA2Yy0xLjc2NSAwLTMuNDczLjIzMy01LjEwMi42NjZhMTkuNTEzIDE5LjUxMyAwIDAgMC00Ljc1OSAxLjk2OSAxOS44MjQgMTkuODI0IDAgMCAwLTQuMDg2IDMuMTM0bDEuMjMxIDEuMjNhMTguMTA2IDE4LjEwNiAwIDAgMSAzLjcyNi0yLjg1NSAxNy44MDMgMTcuODAzIDAgMCAxIDQuMzQtMS43OTMgMTguMDg0IDE4LjA4NCAwIDAgMSA0LjY0OC0uNjA3aC4wMDVhMTcuOTUgMTcuOTUgMCAwIDEgMTIuNzEzIDUuMjYxIDE3LjkzMyAxNy45MzMgMCAwIDEgNS4yNzMgMTIuNzAzdi4wMTFhMTguMDMgMTguMDMgMCAwIDEtLjYwNyA0LjY0MyAxNy42NzUgMTcuNjc1IDAgMCAxLTEuNzk3IDQuMzM3IDE4LjAyMyAxOC4wMjMgMCAwIDEtMi44NTcgMy43MjNsMS4yMzEgMS4yMzFhMTkuNzQzIDE5Ljc0MyAwIDAgMCAzLjEzNi00LjA4NCAxOS42IDE5LjYgMCAwIDAgMS45Ny00Ljc1NmMuNDM0LTEuNjI1LjY2Ni0zLjMzMi42NjYtNS4wOTR2LS4wMVpcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNOTAuOTQ1IDE2Ljg1NWExMC45NDggMTAuOTQ4IDAgMCAwLTEuMTA0LTIuNjU1IDExLjE1NSAxMS4xNTUgMCAwIDAtMS43NS0yLjI4IDExLjA0OCAxMS4wNDggMCAwIDAtMi4yODItMS43NDdBMTAuOTY0IDEwLjk2NCAwIDAgMCA4MC4zIDguNjk1aC0uMDA2Yy0uOTg3IDAtMS45NC4xMy0yLjg0OS4zNzJhMTAuOTEgMTAuOTEgMCAwIDAtMi42NiAxLjEgMTAuOTk0IDEwLjk5NCAwIDAgMC00LjAzNyA0LjAyNyAxMSAxMSAwIDAgMC0xLjQ4NCA1LjUxdi4wMTJhMTAuOTI0IDEwLjkyNCAwIDAgMCAxLjQ3NiA1LjUwNWwzLjAxMy0xLjczOGE3LjUzNSA3LjUzNSAwIDAgMS0xLjAxLTMuNzd2LS4wMWE3LjU1MyA3LjU1MyAwIDAgMSA3LjU0OC03LjUzM2guMDA2YTcuNTI0IDcuNTI0IDAgMCAxIDMuNzY5IDEuMDEyIDcuNTUgNy41NSAwIDAgMSAzLjUxMyA0LjU3MmMuMTY3LjYyLjI1OCAxLjI3Ni4yNTggMS45NTFoMy40NzljLjAwMy0uOTg0LS4xMjgtMS45NC0uMzcyLTIuODVaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwiTTg3LjU4NSAxNy43NjVhNy41NDIgNy41NDIgMCAwIDAtMS45NTUtMy4zOGwtMS42NCAxLjYzOWE1LjI2NCA1LjI2NCAwIDAgMSAxLjM1NCAyLjM0MyA1LjE4NCA1LjE4NCAwIDAgMSAwIDIuNzA1IDUuMjM5IDUuMjM5IDAgMCAxLTMuNjk4IDMuNjk1IDUuMTk1IDUuMTk1IDAgMCAxLTIuNzA3IDAgNS4yOTYgNS4yOTYgMCAwIDEtMS4yNi0uNTIxbC0xLjE2IDIuMDA4YTcuNTI4IDcuNTI4IDAgMCAwIDMuNzc0IDEuMDFjLjY3NyAwIDEuMzMtLjA5MSAxLjk1NC0uMjU2YTcuNTUzIDcuNTUzIDAgMCAwIDQuNTg0LTMuNTE3IDcuNTQ0IDcuNTQ0IDAgMCAwIDEuMDEzLTMuNzcxIDcuNSA3LjUgMCAwIDAtLjI1OS0xLjk1NVpcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiLz48cGF0aCBkPVxcXCJNOTEuODUzIDEzLjA0NmExMy40MzUgMTMuNDM1IDAgMCAwLTIuMTItMi43NjUgMTMuMzQzIDEzLjM0MyAwIDAgMC0yLjc2Ni0yLjExOCAxMy4yODcgMTMuMjg3IDAgMCAwLTYuNjc1LTEuNzljLTEuMTk3IDAtMi4zNTIuMTU5LTMuNDU2LjQ1NC0xLjE0MS4zMDMtMi4yMi43NTctMy4yMTggMS4zMzZhMTMuNDM2IDEzLjQzNiAwIDAgMC0yLjc2NyAyLjExOCAxMy4zMzQgMTMuMzM0IDAgMCAwLTIuMTIgMi43NjUgMTMuMjcyIDEzLjI3MiAwIDAgMC0xLjc5IDYuNjdoMi4zMmMwLS45ODYuMTMxLTEuOTQyLjM3NS0yLjg1MmExMS4wODggMTEuMDg4IDAgMCAxIDIuODU1LTQuOTQgMTEuMDAyIDExLjAwMiAwIDAgMSAyLjI4NC0xLjc1IDExLjAzIDExLjAzIDAgMCAxIDIuNjYtMS4xMDQgMTEuMDIgMTEuMDIgMCAwIDEgMi44NTQtLjM3NGMuOTg4IDAgMS45NDQuMTMgMi44NTUuMzc0YTExLjA5OSAxMS4wOTkgMCAwIDEgNC45NDMgMi44NTMgMTAuOTkgMTAuOTkgMCAwIDEgMS43NTEgMi4yODNjLjQ3Ny44MjYuODUyIDEuNzE2IDEuMTA0IDIuNjU4bDIuMjQyLS42MDJhMTMuMTk0IDEzLjE5NCAwIDAgMC0xLjMzLTMuMjE2WlxcXCIgZmlsbD1cXFwiIzE1NTM2NlxcXCIvPjxwYXRoIGQ9XFxcIk05Ny42NzQgMTUuMDYzYTE3Ljc5MSAxNy43OTEgMCAwIDAtMS44LTQuMzM2IDE4LjA0MyAxOC4wNDMgMCAwIDAtNi41ODYtNi41ODMgMTcuOTMgMTcuOTMgMCAwIDAtOC45OTYtMi40MDhjLTEuNjEyIDAtMy4xNzIuMjEzLTQuNjU3LjYxYTE3LjgxNyAxNy44MTcgMCAwIDAtNC4zMzkgMS43OTggMTguMDMyIDE4LjAzMiAwIDAgMC02LjU4NiA2LjU4M2wyLjAxMiAxLjE2M2ExNS42NzYgMTUuNjc2IDAgMCAxIDIuNDg5LTMuMjQ1Yy45NjUtLjk2NCAyLjA1Ny0xLjggMy4yNDYtMi40ODdhMTUuNzA2IDE1LjcwNiAwIDAgMSAzLjc3Ny0xLjU2OSAxNS42OCAxNS42OCAwIDAgMSA4LjExIDBjMS4zNC4zNTggMi42MDYuODkxIDMuNzc4IDEuNTY5YTE1LjY4NSAxNS42ODUgMCAwIDEgMy4yNDYgMi40ODcgMTUuNjc2IDE1LjY3NiAwIDAgMSAyLjQ4OSAzLjI0NSAxNS42ODQgMTUuNjg0IDAgMCAxIDEuNTY5IDMuNzc0IDE1LjY1NCAxNS42NTQgMCAwIDEgMCA4LjEwNmwyLjI0NS42MDFjLjM5Ny0xLjQ4My42MS0zLjA0My42MS00LjY1NGExNy44NzUgMTcuODc1IDAgMCAwLS42MDgtNC42NTRaXFxcIiBmaWxsPVxcXCIjMTU1MzY2XFxcIi8+PHBhdGggZD1cXFwiTTgwLjI5MyAyNC45NDRjMi44ODggMCA1LjIzLTIuMzQgNS4yMy01LjIyN2E1LjIyOSA1LjIyOSAwIDAgMC01LjIzLTUuMjI3IDUuMjI4IDUuMjI4IDAgMCAwLTUuMjMgNS4yMjcgNS4yMjggNS4yMjggMCAwIDAgNS4yMyA1LjIyN1ptMjAuNjE1IDE1LjQzNlYyOS41NDNoMi4zMDRWNDAuMzhoLTIuMzA0Wm02LjYxOC0zLjc4N3YzLjc4N2gtMi4xOTZ2LTcuNTc2aDIuMTY1di41MjVhMi41MzkgMi41MzkgMCAwIDEgMS43OTMtLjcxMmMxLjg1NiAwIDMuMDc5IDEuMjA2IDMuMDc5IDMuMzU1djQuNDA1aC0yLjE5NnYtNC4yMzVjMC0uODAyLS4zNzItMS40ODMtMS4yNTQtMS40ODMtMS4wMzMuMDAzLTEuMzkxLjc3NC0xLjM5MSAxLjkzNFptOS42NjYgMy44MTdjLTEuNjU1IDAtMi42MTQtLjk1OC0yLjYxNC0yLjYyOHYtMi45NTNoLTEuMjY4di0yLjAyNWgxLjI2OHYtMS4xMTFsMi4xOTYtMS44NTV2Mi45N2gxLjkwMnYyLjAyNGgtMS45MDJ2Mi42NDNjMCAuNzI3LjQ4Ljg5Ny45MjguODk3LjUxMSAwIC45MjgtLjIwMi45MjgtLjIwMnYxLjk5NHMtLjU4Ny4yNDctMS40MzguMjQ3Wm0xMC4xOTMtMy4yM2gtNS4zNTJjLjEyNS43NzUuNzU3IDEuMzYyIDEuNyAxLjM2Mi42MzUgMCAxLjAwNC0uMjY0IDEuMjM3LS42NWgyLjM2N2MtLjUxMSAxLjY0LTEuNjg2IDIuNjYtMy41NzMgMi42Ni0yLjE5NyAwLTMuOTU5LTEuNTMtMy45NTktMy45MSAwLTIuMjg5IDEuNjA5LTQuMDE5IDMuODM3LTQuMDE5IDIuNDg5IDAgMy43NTcgMS45NjMgMy43NTcgMy45ODggMCAuMTk4LS4wMTQuNTctLjAxNC41N1ptLTMuNzE1LTIuNjI4Yy0uODM0IDAtMS4zOTMuNTEtMS41MzIgMS4xNmgyLjk0Yy0uMDQ2LS42NjQtLjYxOS0xLjE2LTEuNDA4LTEuMTZabTEwLjIzOS0xLjMxNXYyLjE2NHMtLjU3My0uNTg3LTEuNDM5LS41ODdjLS42NjQgMC0xLjQwNy4zNTQtMS40MDcgMS40Njl2NC4wOTVoLTIuMTk3di03LjU3NWgyLjE2NXYuNjM1Yy0uMDE0IDAgLjQzNS0uNzQzIDEuNTE2LS43NDMuOTI4IDAgMS4zNjIuNTQyIDEuMzYyLjU0MlptMy40MDMgMy4zNTZ2My43ODdoLTIuMTk3di03LjU3NmgyLjE2NXYuNTI1YTIuNTQzIDIuNTQzIDAgMCAxIDEuNzk0LS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNiAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTd2LTQuMjM1YzAtLjgwMi0uMzcxLTEuNDgzLTEuMjU0LTEuNDgzLTEuMDM2LjAwMy0xLjM5Ljc3NC0xLjM5IDEuOTM0Wm0xMS4xNjYgMy4wMTVjLS40OTYuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTUgMC0yLjczOC0uOTQ1LTIuNzM4LTIuMzk3IDAtMS40MzggMS4yMi0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMy0uNzI2LS44NjUgMC0xLjIzNy40MzQtMS4yODUuODk2aC0yLjEyYy4xMDgtMS42NTMgMS4zNDUtMi43OTkgMy40Mi0yLjc5OSAyLjAyNiAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA2aC0xLjgxMWwtLjE5OS0uNzc1Wm0tMi42OTMtMS41NDVjMCAuNDM0LjM4Ni42OTQgMS4wMDUuNjk0LjgzNCAwIDEuNTAxLS40NjIgMS41MDEtMS40MDZ2LS4yNzhzLS40MDMuMTg0LTEuMjM3LjIzMmMtLjkxNC4wNDYtMS4yNjkuMzQtMS4yNjkuNzU4Wm05LjU1OCAyLjM0N2MtMS42NTUgMC0yLjYxNC0uOTU4LTIuNjE0LTIuNjI4di0yLjk1M2gtMS4yNjl2LTIuMDI1aDEuMjY5di0xLjExMWwyLjE5Ni0xLjg1NXYyLjk3aDEuOTAydjIuMDI0aC0xLjkwMnYyLjY0M2MwIC43MjcuNDguODk3LjkyOC44OTcuNTExIDAgLjkyOC0uMjAyLjkyOC0uMjAydjEuOTk0cy0uNTkuMjQ3LTEuNDM4LjI0N1ptMi45NTEtOS43NTNjMC0uNzEyLjU1Ni0xLjI4MiAxLjI2OC0xLjI4Mi43MTMgMCAxLjI4Ni41NzMgMS4yODYgMS4yODIgMCAuNjk1LS41NzMgMS4yNjgtMS4yODYgMS4yNjhhMS4yNjQgMS4yNjQgMCAwIDEtMS4yNjgtMS4yNjhabS4xNyA5LjcyMnYtNy41NzVoMi4xOTd2Ny41NzVoLTIuMTk3Wm0zLjc4OS0zLjc4NmMwLTIuMjcyIDEuNzQ4LTMuOTc0IDQuMDM4LTMuOTc0czQuMDM1IDEuNzAyIDQuMDM1IDMuOTc0YzAgMi4yNzEtMS43NDggMy45NTYtNC4wMzUgMy45NTYtMi4yOSAwLTQuMDM4LTEuNjg1LTQuMDM4LTMuOTU2Wm0yLjI0NSAwYzAgMS4xMTEuNzU3IDEuOTE3IDEuNzkzIDEuOTE3czEuNzk0LS44MDMgMS43OTQtMS45MTdjMC0xLjExMi0uNzU4LTEuOTE4LTEuNzk0LTEuOTE4cy0xLjc5My44MDMtMS43OTMgMS45MThabTkuNTQgMHYzLjc4N2gtMi4xOTZ2LTcuNTc2aDIuMTY1di41MjVhMi41NCAyLjU0IDAgMCAxIDEuNzkzLS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNiAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTZ2LTQuMjM1YzAtLjgwMi0uMzcyLTEuNDgzLTEuMjU0LTEuNDgzLTEuMDM2LjAwMy0xLjM5MS43NzQtMS4zOTEgMS45MzRabTExLjE2NyAzLjAxNWMtLjQ5Ny42MDQtMS4yMDYuOTQ1LTIuMTUxLjk0NS0xLjUxNiAwLTIuNzM5LS45NDUtMi43MzktMi4zOTcgMC0xLjQzOCAxLjIyMS0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMi0uNzI2LS44NjYgMC0xLjIzNy40MzQtMS4yODYuODk2aC0yLjExOWMuMTA3LTEuNjUzIDEuMzQ1LTIuNzk5IDMuNDE5LTIuNzk5IDIuMDI2IDAgMy4zMjYgMS4wOTggMy4zMjYgMy4xNTR2NC42MDZoLTEuODFsLS4xOTktLjc3NVptLTIuNjkzLTEuNTQ1YzAgLjQzNC4zODYuNjk0IDEuMDA0LjY5NC44MzUgMCAxLjUwMi0uNDYyIDEuNTAyLTEuNDA2di0uMjc4cy0uNDAzLjE4NC0xLjIzOC4yMzJjLS45MTEuMDQ2LTEuMjY4LjM0LTEuMjY4Ljc1OFptNi41MjQgMi4zMTdWMjkuNTQzaDIuMTk2VjQwLjM4aC0yLjE5NlptMTQuMDg5LTEwLjgzNyA0LjI0IDEwLjgzN2gtMi4zODFsLS44NjYtMi4xMzNoLTQuMTkxbC0uODUxIDIuMTMzaC0yLjM4MWw0LjIzOS0xMC44MzdoMi4xOTFabS0xLjA5OCAzLjEyMy0xLjM0NSAzLjUzOWgyLjY5bC0xLjM0NS0zLjU0Wm02LjM4NS0yLjAwOWMwLS43MTIuNTU2LTEuMjgyIDEuMjY5LTEuMjgyLjcxMiAwIDEuMjg1LjU3MyAxLjI4NSAxLjI4MiAwIC42OTUtLjU3MyAxLjI2OC0xLjI4NSAxLjI2OGExLjI2NCAxLjI2NCAwIDAgMS0xLjI2OS0xLjI2OFptLjE3IDkuNzIydi03LjU3NWgyLjE5N3Y3LjU3NWgtMi4xOTdabTMuNzg5LTMuNzg2YzAtMi4zOTYgMS43MTYtMy45NzMgMy44MTktMy45NzMuODY2IDAgMS41OTIuMzIzIDEuOTgxLjY2NHYtMy43NDFoMi4xOTZWNDAuMzhoLTIuMTY1di0uNTQyYy0uNC4zODYtMS4xNi43MTItMi4wMDkuNzEyLTIuMTA2IDAtMy44MjItMS41MTUtMy44MjItMy45NTZabTUuODMxIDBjMC0xLjE3NC0uNzcyLTEuOTgtMS43OTMtMS45OC0xLjAyMiAwLTEuNzk0LjgwMy0xLjc5NCAxLjk4IDAgMS4xNzUuNzcyIDEuOTggMS43OTQgMS45OCAxLjAyMSAwIDEuNzkzLS44MDUgMS43OTMtMS45OFpNMTAwLjE5NiA0OC4wOWg4LjUyMnYyLjExOGgtMy4xMXY4LjcxOWgtMi4zMDR2LTguNzE5aC0zLjExMVY0OC4wOWguMDAzWm0xMy44ODggMy42OTJ2Mi4xNjRzLS41NzMtLjU4Ny0xLjQzOS0uNTg3Yy0uNjY0IDAtMS40MDcuMzU0LTEuNDA3IDEuNDY5djQuMDk1aC0yLjE5NnYtNy41NzVoMi4xNjV2LjYzNWMtLjAxNCAwIC40MzQtLjc0MyAxLjUxNS0uNzQzLjkzMS4wMDMgMS4zNjIuNTQyIDEuMzYyLjU0MlptNS44OTEgNi4zNzFjLS40OTYuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTUgMC0yLjczOC0uOTQ1LTIuNzM4LTIuMzk3IDAtMS40MzggMS4yMi0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMi0uNzI2LS44NjYgMC0xLjIzOC40MzQtMS4yODYuODk2aC0yLjEyYy4xMDgtMS42NTMgMS4zNDUtMi43OTkgMy40Mi0yLjc5OSAyLjAyNiAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA1aC0xLjgxMWwtLjE5OS0uNzc0Wm0tMi42OS0xLjU0NWMwIC40MzQuMzg2LjY5NSAxLjAwNS42OTUuODM0IDAgMS41MDEtLjQ2MyAxLjUwMS0xLjQwN3YtLjI3OHMtLjQwMy4xODQtMS4yMzcuMjMyYy0uOTE0LjA0Ni0xLjI2OS4zNC0xLjI2OS43NThabTguNzIxLTEuNDd2My43ODdoLTIuMTk3di03LjU3NmgyLjE2NXYuNTI1YTIuNTQgMi41NCAwIDAgMSAxLjc5NC0uNzEyYzEuODU2IDAgMy4wNzkgMS4yMDUgMy4wNzkgMy4zNTV2NC40MDVoLTIuMTk3di00LjIzNWMwLS44MDItLjM3MS0xLjQ4My0xLjI1NC0xLjQ4My0xLjAzMy4wMDMtMS4zOS43NzQtMS4zOSAxLjkzNFptMTAuNzk1IDEuNjA3YzAtLjIzMi0uMTM5LS40MTYtLjc0NC0uNTQxbC0xLjE0My0uMjMzYy0xLjcxNy0uMzQtMi40NDQtMS4xNi0yLjQ0NC0yLjI4OCAwLTEuMzMgMS4wMDUtMi41MTkgMy4wOTQtMi41MTkgMi4xMDIgMCAzLjA0NyAxLjE3NCAzLjIwMSAyLjQ5aC0yLjA4OWMtLjEyNS0uNDE3LS40OC0uNjY0LTEuMTI5LS42NjQtLjYxOSAwLS45Ni4yMTYtLjk2LjUyNSAwIC4yMzMuMTg1LjM3Mi43NTguNDhsMS4xNDQuMjMyYzEuNjIzLjMyMyAyLjQyOSAxLjA4MyAyLjQyOSAyLjM4IDAgMS40NjktMS4wNjcgMi40OS0zLjE4NyAyLjQ5LTIuMTY1IDAtMy4zMjYtMS4wMjEtMy41NDItMi41OThoMi4yMTRjLjEyNS41MjQuNTExLjgwMiAxLjMyOC44MDIuNzQ2IDAgMS4wNy0uMjE1IDEuMDctLjU1NlptMTEuNTUyLTEuNjA4YzAgMi4zOTctMS43MTcgMy45NTctMy44MTkgMy45NTctLjg2NiAwLTEuNTkyLS4zMS0xLjk4MS0uNjV2My40NzdoLTIuMTk3VjUxLjM0OGgyLjE2NnYuNTQyYy40MDMtLjM4NiAxLjE2LS43MjYgMi4wMTItLjcyNiAyLjEwMiAwIDMuODE5IDEuNTE3IDMuODE5IDMuOTczWm0tNS44MzEgMGMwIDEuMTc1Ljc3NCAxLjk4IDEuNzkzIDEuOTggMS4wMjIgMCAxLjc5NC0uODAzIDEuNzk0LTEuOTggMC0xLjE3NC0uNzcyLTEuOTgtMS43OTQtMS45OC0xLjAxOS4wMDQtMS43OTMuODA2LTEuNzkzIDEuOThabTExLjg3OSAzLjAxNmMtLjQ5Ny42MDQtMS4yMDYuOTQ1LTIuMTUxLjk0NS0xLjUxNiAwLTIuNzM5LS45NDUtMi43MzktMi4zOTcgMC0xLjQzOCAxLjIyLTIuMTUgMi45MzctMi4yNCAxLjMxNC0uMDc3IDEuNzM0LS4yMTYgMS43MzQtLjY2NCAwLS40MzQtLjQwMy0uNzI2LTEuMTEyLS43MjYtLjg2NiAwLTEuMjM3LjQzNC0xLjI4Ni44OTZoLTIuMTJjLjEwOC0xLjY1MyAxLjM0Ni0yLjc5OSAzLjQyLTIuNzk5IDIuMDI2IDAgMy4zMjYgMS4wOTggMy4zMjYgMy4xNTR2NC42MDVoLTEuODExbC0uMTk4LS43NzRabS0yLjY5My0xLjU0NWMwIC40MzQuMzg2LjY5NSAxLjAwNC42OTUuODM1IDAgMS41MDEtLjQ2MyAxLjUwMS0xLjQwN3YtLjI3OHMtLjQwMy4xODQtMS4yMzcuMjMyYy0uOTExLjA0Ni0xLjI2OC4zNC0xLjI2OC43NThabTExLjU2Ni00LjgyNnYyLjE2NHMtLjU3My0uNTg3LTEuNDM5LS41ODdjLS42NjQgMC0xLjQwNy4zNTQtMS40MDcgMS40Njl2NC4wOTVoLTIuMTk3di03LjU3NWgyLjE2NnYuNjM1Yy0uMDE1IDAgLjQzNC0uNzQzIDEuNTE1LS43NDMuOTI4LjAwMyAxLjM2Mi41NDIgMS4zNjIuNTQyWm04LjQyOCAzLjk0NGgtNS4zNTJjLjEyNS43NzQuNzU4IDEuMzYgMS43MDMgMS4zNi42MzYgMCAxLjAwNS0uMjYzIDEuMjM3LS42NDloMi4zNjdjLS41MTEgMS42NC0xLjY4NiAyLjY2LTMuNTczIDIuNjYtMi4xOTYgMC0zLjk1OS0xLjUzLTMuOTU5LTMuOTEgMC0yLjI4OSAxLjYxLTQuMDE5IDMuODM3LTQuMDE5IDIuNDg5IDAgMy43NTcgMS45NjMgMy43NTcgMy45ODggMCAuMi0uMDE3LjU3LS4wMTcuNTdabS0zLjcxMS0yLjYyN2MtLjgzNSAwLTEuMzk0LjUxLTEuNTMzIDEuMTZoMi45NGMtLjA0NS0uNjY2LS42MTktMS4xNi0xLjQwNy0xLjE2Wm03LjM5MiAyLjAzOXYzLjc4N2gtMi4xOTZ2LTcuNTc2aDIuMTY1di41MjVhMi41MzggMi41MzggMCAwIDEgMS43OTMtLjcxMmMxLjg1NiAwIDMuMDc5IDEuMjA1IDMuMDc5IDMuMzU1djQuNDA1aC0yLjE5NnYtNC4yMzVjMC0uODAyLS4zNzItMS40ODMtMS4yNTQtMS40ODMtMS4wMzYuMDAzLTEuMzkxLjc3NC0xLjM5MSAxLjkzNFptMTEuNTY3LjgzN2gyLjQxMmMtLjM1NyAxLjg0LTEuNzQ4IDMuMTIzLTMuNzkxIDMuMTIzLTIuMjkgMC0zLjk5LTEuNjg1LTMuOTktMy45NTcgMC0yLjI3MSAxLjcwMy0zLjk3MyAzLjk5LTMuOTczIDEuOTk1IDAgMy4zODggMS4yMzYgMy42NjYgMy4wMjloLTIuNDE1Yy0uMTctLjU3My0uNjY0LS45NTktMS4zMjgtLjk1OS0uOTI4IDAtMS42NzEuNzg5LTEuNjcxIDEuOSAwIDEuMTEyLjc0MyAxLjkgMS43MDMgMS45LjcxMi4wMDQgMS4yNC0uNDE2IDEuNDI0LTEuMDYzWm01LjEwMiA2LjAyN2MtLjk5IDAtMS40ODQtLjI2NC0xLjQ4NC0uMjY0di0yLjAxcy40NDguMjMyLjkyOC4yMzJjLjQ5NiAwIDEuMTQzLS4xODQgMS4yOTktMS4wMzVsLTIuOTU0LTcuNTc1aDIuNDQ0bDEuNzE3IDQuNjk5IDEuNzQ4LTQuN2gyLjM0OWwtMy4wNzkgNy43Yy0uODAzIDIuMDI2LTEuNDUzIDIuOTUzLTIuOTY4IDIuOTUzWm0xMS41OTgtMy4wNzVWNDguMDloMi4zMDV2MTAuODM3aC0yLjMwNVptNi42MTgtMy43ODl2My43ODdoLTIuMTk3di03LjU3NmgyLjE2NnYuNTI1YTIuNTM4IDIuNTM4IDAgMCAxIDEuNzkzLS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNSAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTZ2LTQuMjM1YzAtLjgwMi0uMzcyLTEuNDgzLTEuMjU1LTEuNDgzLTEuMDMzLjAwMy0xLjM5Ljc3NC0xLjM5IDEuOTM0Wm02LjU0MS01LjkzNmMwLS43MTIuNTU2LTEuMjgyIDEuMjY4LTEuMjgyczEuMjg2LjU3MyAxLjI4NiAxLjI4MmExLjI4IDEuMjggMCAwIDEtMS4yODYgMS4yNjggMS4yNjQgMS4yNjQgMCAwIDEtMS4yNjgtMS4yNjhabS4xNyA5LjcyNXYtNy41NzVoMi4xOTZ2Ny41NzVoLTIuMTk2Wm03LjI1NC4wMjljLTEuNjU1IDAtMi42MTQtLjk1OS0yLjYxNC0yLjYzdi0yLjk1MmgtMS4yNjhWNTEuMzVoMS4yNjh2LTEuMTExbDIuMTk2LTEuODU1djIuOTdoMS45MDJ2Mi4wMjRoLTEuOTAydjIuNjQzYzAgLjcyNi40OC44OTcuOTI4Ljg5Ny41MTEgMCAuOTI4LS4yMDIuOTI4LS4yMDJ2MS45OTRzLS41ODcuMjQ3LTEuNDM4LjI0N1ptMi45NTQtOS43NTRjMC0uNzEyLjU1Ni0xLjI4MiAxLjI2OC0xLjI4MnMxLjI4Ni41NzMgMS4yODYgMS4yODJhMS4yOCAxLjI4IDAgMCAxLTEuMjg2IDEuMjY4IDEuMjY0IDEuMjY0IDAgMCAxLTEuMjY4LTEuMjY4Wm0uMTcgOS43MjV2LTcuNTc1aDIuMTk2djcuNTc1aC0yLjE5NlptOC43NTQtLjc3NGMtLjQ5Ni42MDQtMS4yMDYuOTQ1LTIuMTUxLjk0NS0xLjUxNSAwLTIuNzM4LS45NDUtMi43MzgtMi4zOTcgMC0xLjQzOCAxLjIyLTIuMTUgMi45MzctMi4yNCAxLjMxNC0uMDc3IDEuNzM0LS4yMTYgMS43MzQtLjY2NCAwLS40MzQtLjQwMy0uNzI2LTEuMTEzLS43MjYtLjg2NSAwLTEuMjM3LjQzNC0xLjI4NS44OTZoLTIuMTJjLjEwOC0xLjY1MyAxLjM0NS0yLjc5OSAzLjQxOS0yLjc5OSAyLjAyNyAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA1aC0xLjgxbC0uMTk5LS43NzRabS0yLjY5My0xLjU0NWMwIC40MzQuMzg2LjY5NSAxLjAwNS42OTUuODM0IDAgMS41MDEtLjQ2MyAxLjUwMS0xLjQwN3YtLjI3OHMtLjQwMy4xODQtMS4yMzcuMjMyYy0uOTE0LjA0Ni0xLjI2OS4zNC0xLjI2OS43NThabTkuNTU4IDIuMzQ4Yy0xLjY1NSAwLTIuNjE0LS45NTktMi42MTQtMi42M3YtMi45NTJoLTEuMjY4VjUxLjM1aDEuMjY4di0xLjExMWwyLjE5Ny0xLjg1NXYyLjk3aDEuOTAxdjIuMDI0aC0xLjkwMXYyLjY0M2MwIC43MjYuNDc5Ljg5Ny45MjguODk3LjUxIDAgLjkyOC0uMjAyLjkyOC0uMjAydjEuOTk0cy0uNTg4LjI0Ny0xLjQzOS4yNDdabTIuOTUxLTkuNzU0YzAtLjcxMi41NTYtMS4yODIgMS4yNjktMS4yODIuNzEyIDAgMS4yODUuNTczIDEuMjg1IDEuMjgyIDAgLjY5NS0uNTczIDEuMjY4LTEuMjg1IDEuMjY4YTEuMjY0IDEuMjY0IDAgMCAxLTEuMjY5LTEuMjY4Wm0uMTcgOS43MjV2LTcuNTc1aDIuMTk3djcuNTc1aC0yLjE5N1ptMTAuOTgzLTcuNTc1LTIuNjkxIDcuNTc1aC0yLjI1OGwtMi42OTEtNy41NzVoMi4zMzZsMS40ODQgNC42ODUgMS40ODQtNC42ODVoMi4zMzZabTcuOTggNC4zNzRoLTUuMzUyYy4xMjUuNzc0Ljc1NyAxLjM2IDEuNzAyIDEuMzYuNjM2IDAgMS4wMDUtLjI2MyAxLjIzOC0uNjQ5aDIuMzY2Yy0uNTEgMS42NC0xLjY4NSAyLjY2LTMuNTcyIDIuNjYtMi4xOTcgMC0zLjk1OS0xLjUzLTMuOTU5LTMuOTEgMC0yLjI4OSAxLjYwOS00LjAxOSAzLjgzNy00LjAxOSAyLjQ4OCAwIDMuNzYgMS45NjMgMy43NiAzLjk4OC0uMDA2LjItLjAyLjU3LS4wMi41N1ptLTMuNzEyLTIuNjI3Yy0uODM0IDAtMS4zOTMuNTEtMS41MzIgMS4xNmgyLjk0Yy0uMDQ5LS42NjYtLjYxOS0xLjE2LTEuNDA4LTEuMTZaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDk1MCAyOTJcXFwiPjxnIG9wYWNpdHk9XFxcIi4zXFxcIj48cGF0aCBvcGFjaXR5PVxcXCIuNFxcXCIgZD1cXFwiTTM5My4zODMgNTM3LjU5MmEyMTMuMDU4IDIxMy4wNTggMCAwIDEtNTUuMTMzLTcuMjQ4Yy0xOC4xOTYtNC44Ni0zNS40MTktMTIuMDktNTEuMzQ3LTIxLjMxNi0xNi4xNjYtOS4zNDUtMzEuMDAzLTIwLjcwMy00NC4xMTctMzMuODE3LTEzLjExMy0xMy4xMTMtMjQuNDcxLTI3Ljk2Ny0zMy44MTYtNDQuMTE2YTIxMS44MjYgMjExLjgyNiAwIDAgMS0yMS4zMTctNTEuMzQ3IDIxMi45MDYgMjEyLjkwNiAwIDAgMS03LjI0Ny01NS4xMzMgMjEzLjA5IDIxMy4wOSAwIDAgMSA3LjI0Ny01NS4xMzNjNC44NjEtMTguMTk2IDEyLjA5MS0zNS40MiAyMS4zMTctNTEuMzQ4bDU2LjY4NSAzMi43MjVhMTQ3LjIwMyAxNDcuMjAzIDAgMCAwLTE0Ljc2OCAzNS41NzMgMTQ3LjUzMSAxNDcuNTMxIDAgMCAwLTUuMDE0IDM4LjE4MyAxNDcuNTMgMTQ3LjUzIDAgMCAwIDUuMDE0IDM4LjE4MiAxNDYuNTI3IDE0Ni41MjcgMCAwIDAgMTQuNzY4IDM1LjU3M2M2LjQ4IDExLjE4NyAxNC4zNDEgMjEuNDcgMjMuNDMxIDMwLjU1OSA5LjA4OSA5LjA4OSAxOS4zNzIgMTYuOTUxIDMwLjU1OSAyMy40MzFhMTQ3LjIwMyAxNDcuMjAzIDAgMCAwIDM1LjU3MyAxNC43NjggMTQ3LjYyNyAxNDcuNjI3IDAgMCAwIDM4LjE4MiA1LjAxNGMxMy4yIDAgMjYuMDA2LTEuNzU3IDM4LjE4Mi01LjAxNGExNDYuNDk0IDE0Ni40OTQgMCAwIDAgMzUuNTczLTE0Ljc2OGMxMS4xODctNi40OCAyMS40Ny0xNC4zNDIgMzAuNTYtMjMuNDMxbDQ2LjI4MiA0Ni4yODJjLTEzLjExNCAxMy4xMTQtMjcuOTY3IDI0LjQ3Mi00NC4xMTcgMzMuODE3YTIxMS43NSAyMTEuNzUgMCAwIDEtNTEuMzQ3IDIxLjMxNiAyMTMuMjggMjEzLjI4IDAgMCAxLTU1LjE1IDcuMjQ4Wk01ODEuNjY4IDY1MC43NGMyOC41ODEtMTYuNTI0IDU0LjgyNi0zNi42MTMgNzguMDE4LTU5LjgwNSAyMy4xOTItMjMuMTkzIDQzLjI4MS00OS40NTUgNTkuODA2LTc4LjAxOSAxNi4zMDMtMjguMTcyIDI5LjA3NS01OC42MjkgMzcuNjg3LTkwLjgwOGEzNzYuNTkyIDM3Ni41OTIgMCAwIDAgMTIuODA3LTk3LjQ3NiAzNzcuMjMgMzc3LjIzIDAgMCAwLTEyLjgwNy05Ny40NzdjLTguNTk1LTMyLjE3OS0yMS4zODQtNjIuNjM2LTM3LjY4Ny05MC44MDgtMTYuNTQyLTI4LjU4MS0zNi42MTQtNTQuODI2LTU5LjgwNi03OC4wMTgtMjMuMTkyLTIzLjE5My00OS40NTQtNDMuMjgxLTc4LjAxOC01OS44MDYtMjguMTcyLTE2LjMwMy01OC42MjktMjkuMDkzLTkwLjgwOS0zNy42ODdhMzc2LjU5MiAzNzYuNTkyIDAgMCAwLTk3LjQ3Ni0xMi44MDd2NjUuNDVjMjcuODY1IDAgNTQuODQzIDMuNzE3IDgwLjU0MyAxMC41OSAyNi41ODUgNy4xMTEgNTEuNzM5IDE3LjY2NyA3NS4wMTcgMzEuMTM5IDIzLjYwMSAxMy42NiA0NS4zMSAzMC4yNTIgNjQuNDYxIDQ5LjQyIDE5LjE2NyAxOS4xNjggMzUuNzYgNDAuODYgNDkuNDIgNjQuNDYxIDEzLjQ3MiAyMy4yNzggMjQuMDI4IDQ4LjQzMSAzMS4xMzkgNzUuMDE3YTMxMS4yNjYgMzExLjI2NiAwIDAgMSAxMC41OSA4MC41NDNjMCAyNy44NjUtMy43MTcgNTQuODQzLTEwLjU5IDgwLjU0Mi03LjExMSAyNi41ODYtMTcuNjY3IDUxLjczOS0zMS4xMzkgNzUuMDE3LTEzLjY2IDIzLjYwMi0zMC4yNTMgNDUuMzEtNDkuNDIgNjQuNDYxLTE5LjE1MSAxOS4xNTEtNDAuODYgMzUuNzYxLTY0LjQ2MSA0OS40Mi0yMy4yNzggMTMuNDcyLTQ4LjQzMiAyNC4wMjgtNzUuMDE3IDMxLjEzOWwxNi45MzMgNjMuMjM0YzMyLjE5Ny04LjY0NiA2Mi42MzctMjEuNDE5IDkwLjgwOS0zNy43MjJabS01Ni45MDcgMTY0LjE4OGE1MDQuMzEyIDUwNC4zMTIgMCAwIDAgMTIyLjQyNS01MC43MzMgNTEwLjQgNTEwLjQgMCAwIDAgMTA1LjA4Mi04MC43MTNBNTA5LjIyNiA1MDkuMjI2IDAgMCAwIDgzMi45ODEgNTc4LjRhNTA0LjczIDUwNC43MyAwIDAgMCA1MC43MzMtMTIyLjQyNWMxMS4yMDQtNDEuOTE2IDE3LjIwNy04NS45NDggMTcuMjA3LTEzMS4zNzcgMC00NS40NDctNi4wMDMtODkuNDc5LTE3LjIwNy0xMzEuMzc4YTUwNC4zNDMgNTA0LjM0MyAwIDAgMC01MC43MzMtMTIyLjQyNUM4MTAuNzA5IDMyLjI4OCA3ODMuNTA5LTMuMDMgNzUyLjI2OC0zNC4yODdBNTA5LjIxNyA1MDkuMjE3IDAgMCAwIDY0Ny4xODYtMTE1bC0zMi43OTMgNTYuNzg3YzMzLjU0MyAxOS40MDcgNjQuMzU5IDQyLjk5MSA5MS41OTIgNzAuMjA4IDI3LjIxNyAyNy4yMTcgNTAuODAyIDU4LjA1IDcwLjIwOSA5MS41NzYgMTkuMTMzIDMzLjA2NiAzNC4xNCA2OC44MSA0NC4yMzYgMTA2LjU4MiA5Ljc1NCAzNi41MTEgMTUuMDQxIDc0Ljg0NyAxNS4wNDEgMTE0LjQyOCAwIDM5LjU4LTUuMjcgNzcuOTE2LTE1LjA0MSAxMTQuNDI2LTEwLjA5NiAzNy43NzMtMjUuMTAzIDczLjUxNy00NC4yMzYgMTA2LjU4My0xOS40MDcgMzMuNTQ0LTQyLjk5MiA2NC4zNTktNzAuMjA5IDkxLjU3Ni0yNy4yMTYgMjcuMjE3LTU4LjA0OSA1MC44MDEtOTEuNTkyIDcwLjIwOC0zMy4wNjYgMTkuMTM0LTY4LjgxIDM0LjE0LTEwNi41ODMgNDQuMjM2LTM2LjUxMSA5Ljc1NC03NC44NDYgMTUuMDQxLTExNC40MjcgMTUuMDQxLTM5LjU4IDAtNzcuOTE2LTUuMjg3LTExNC40MjctMTUuMDQxbC0xNi45NTEgNjMuMjg0YzQxLjkgMTEuMjA0IDg1LjkzMSAxNy4yMDcgMTMxLjM3OCAxNy4yMDcgNDUuNDQ3LjAzNCA4OS40NzgtNS45NjkgMTMxLjM3OC0xNy4xNzNaXFxcIiBmaWxsPVxcXCJ1cmwoI2dyb3VwX3N2Z19fYSlcXFwiLz48cGF0aCBkPVxcXCJNMzkzLjM4MyA3NjYuNjg2YTQ0Mi40ODkgNDQyLjQ4OSAwIDAgMS0xMTQuMTAzLTE0LjkzOGMtMzcuNzczLTEwLjA2Mi03My41MTYtMjUuMDUyLTEwNi41OTktNDQuMTUxbDMyLjcyNS01Ni42ODVjMjguMTg5IDE2LjI2OSA1OC42NDYgMjkuMDI0IDkwLjgyNSAzNy42MDJhMzc3LjEyNiAzNzcuMTI2IDAgMCAwIDk3LjE1MiAxMi43MjJoLjMwN2EzNzYuOTU4IDM3Ni45NTggMCAwIDAgOTcuNDI1LTEyLjg3NWMzMi4xNDYtOC42MTIgNjIuNTY4LTIxLjQwMiA5MC43MjMtMzcuNzA1IDI4LjU0Ny0xNi41MjQgNTQuNzc1LTM2LjYxMyA3Ny45MzMtNTkuNzg4IDIzLjE1OS0yMy4xNzYgNDMuMjMtNDkuNDA0IDU5Ljc1NS03Ny45NTEgMTYuMjg2LTI4LjE1NCAyOS4wNTktNTguNTYgMzcuNjctOTAuNzIzYTM3Ni41NzUgMzc2LjU3NSAwIDAgMCAxMi44MjQtOTcuMzl2LS4xODhjMC0zMy42MjktNC40NjctNjYuMjAxLTEyLjczOC05Ny4yMzctOC41NzgtMzIuMTYzLTIxLjMzNC02Mi42MDMtMzcuNjAzLTkwLjc3NS0xNi41MDctMjguNTgxLTM2LjU2Mi01NC44NDMtNTkuNzItNzguMDM1LTIzLjE3NS0yMy4yMS00OS40MDMtNDMuMzMyLTc3Ljk1LTU5Ljg5MS0yOC4xNzItMTYuMzM3LTU4LjYxMi0yOS4xNDQtOTAuNzc0LTM3Ljc3M2wxNi45MzMtNjMuMjMzYzM3Ljc3MyAxMC4xMyA3My41IDI1LjE1MyAxMDYuNTY2IDQ0LjMyMSAzMy41MjcgMTkuNDI0IDY0LjMwOCA0My4wNDIgOTEuNTA3IDcwLjI3NiAyNy4xODMgMjcuMjM0IDUwLjc1MSA1OC4wNjcgNzAuMTIzIDkxLjYxIDE5LjEgMzMuMDY2IDM0LjA3MiA2OC43OTMgNDQuMTUxIDEwNi41NjZhNDQyLjI4IDQ0Mi4yOCAwIDAgMSAxNC45NzMgMTE0LjE3MXYuMTg4YTQ0Mi43ODQgNDQyLjc4NCAwIDAgMS0xNS4wNTggMTE0LjM0MWMtMTAuMDk2IDM3LjczOS0yNS4wODYgNzMuNDQ4LTQ0LjIxOSAxMDYuNDk3LTE5LjM5IDMzLjUxLTQyLjk1NyA2NC4zMDgtNzAuMTQgOTEuNTI1LTI3LjIgMjcuMi01Ny45ODEgNTAuNzg0LTkxLjQ5MSA3MC4xOTEtMzMuMDMyIDE5LjEzNC02OC43NTggMzQuMTQxLTEwNi40OTcgNDQuMjUzYTQ0Mi4wNTIgNDQyLjA1MiAwIDAgMS0xMTQuMzU5IDE1LjA5MmMtLjEzNi0uMDE3LS4yMzgtLjAxNy0uMzQxLS4wMTdabS4zMDcgMTE0LjU0N2M0OS44MTMtLjAzNSA5OC4wOS02LjYzNCAxNDQuMDMyLTE4LjkyOWE1NTMuMzE2IDU1My4zMTYgMCAwIDAgMTM0LjE3NC01NS42NjIgNTU3Ljg4NyA1NTcuODg3IDAgMCAwIDExNS4xNDMtODguNTA2IDU1OC45MzggNTU4LjkzOCAwIDAgMCA4OC40NTUtMTE1LjE3OCA1NTIuODYzIDU1Mi44NjMgMCAwIDAgNTUuNjExLTEzNC4xNzRDOTQzLjQgNDIyLjg0MiA5NDkuOTgzIDM3NC41ODIgOTUwIDMyNC43ODZ2LS4xODdjMC00OS43NDQtNi41NjYtOTcuOTU0LTE4LjgxLTE0My44NDRhNTUzLjQ1NCA1NTMuNDU0IDAgMCAwLTU1LjU0Mi0xMzQuMjQzQzg1MS4yNDUgNC4yNzIgODIxLjQ1My0zNC40NTYgNzg3LjIxLTY4Ljc1bC0zNC43MiAzNC43MmE1MDguOTA4IDUwOC45MDggMCAwIDEgODAuNjI3IDEwNS4wOTkgNTA0LjQ2NSA1MDQuNDY1IDAgMCAxIDUwLjYzMSAxMjIuMzkxYzExLjE1MyA0MS44MzEgMTcuMTM5IDg1Ljc3NyAxNy4xMzkgMTMxLjEzOXYuMTg3Yy0uMDE3IDQ1LjQxMy02LjAyIDg5LjQxLTE3LjIyNCAxMzEuMjkzYTUwNC45MDIgNTA0LjkwMiAwIDAgMS01MC42OTkgMTIyLjMyMyA1MDkuNzE1IDUwOS43MTUgMCAwIDEtODAuNjYyIDEwNS4wMTMgNTA5LjI3OCA1MDkuMjc4IDAgMCAxLTEwNC45OTYgODAuNjk2IDUwNC4zMiA1MDQuMzIgMCAwIDEtMTIyLjMyMyA1MC43NWMtNDEuODgzIDExLjIyMS04NS44OTcgMTcuMjQxLTEzMS4zMjcgMTcuMjc1aC0uMzA3Yy00NS4zMjcgMC04OS4yMzktNS45NjgtMTMxLjA1NC0xNy4xMjFhNTA0Ljg5OSA1MDQuODk5IDAgMCAxLTEyMi40NDItNTAuNjMxQTUwOS4yODQgNTA5LjI4NCAwIDAgMSAzNC43MiA2ODMuNzIyTDAgNzE4LjQ0M2E1NTkuMjIyIDU1OS4yMjIgMCAwIDAgMTE1LjI5NyA4OC40NzIgNTUzLjU2MyA1NTMuNTYzIDAgMCAwIDEzNC4yOTQgNTUuNTQyYzQ1Ljg1NiAxMi4yMjcgOTQuMDMxIDE4Ljc3NiAxNDMuNzU4IDE4Ljc3NmguMzQxWm04MC40NzQtMjU2LjEwNmEzMDkuMjggMzA5LjI4IDAgMCAwIDc0LjkzMi0zMS4xNTZjMjMuNTY4LTEzLjY1OSA0NS4yNDItMzAuMjUyIDY0LjM3Ni00OS4zODYgMTkuMTM0LTE5LjE1MSAzNS43MDktNDAuODA4IDQ5LjM1Mi02NC4zOTMgMTMuNDU1LTIzLjI0MyAyNC4wMTEtNDguMzggMzEuMTA1LTc0LjkzMWEzMTEuMzk2IDMxMS4zOTYgMCAwIDAgMTAuNjA3LTgwLjQ1N3YtLjE4OGMwLTI3Ljc4LTMuNjgzLTU0LjY3My0xMC41MDUtODAuMjg3LTcuMDc3LTI2LjU2OC0xNy42MTYtNTEuNzIyLTMxLjA1NC03NS0xMy42MjUtMjMuNjE4LTMwLjIwMS00NS4zMS00OS4zMzQtNjQuNDc4LTE5LjEzNC0xOS4xODUtNDAuODA5LTM1LjgxMS02NC4zOTMtNDkuNDg4LTIzLjI2MS0xMy40OS00OC40MTQtMjQuMDgtNzUtMzEuMjI1YTMxMS40NTEgMzExLjQ1MSAwIDAgMC04MC41Ni0xMC42NzVoLS4zMDdhMzEwLjk5NyAzMTAuOTk3IDAgMCAwLTgwLjMwMyAxMC41MjJjLTI2LjYyIDcuMDk0LTUxLjgwOCAxNy42NS03NS4xMiAzMS4xMjJsNDkuMDk3IDg1LjAyN2EyMTEuNjc4IDIxMS42NzggMCAwIDEgNTEuNDMyLTIxLjI5OSAyMTMuMzE0IDIxMy4zMTQgMCAwIDEgNTQuODk0LTcuMThoLjMwN2EyMTMuMiAyMTMuMiAwIDAgMSA1NS4xNSA3LjMzMyAyMTEuMjQ1IDIxMS4yNDUgMCAwIDEgNTEuMzMxIDIxLjQwMmMxNi4xMzIgOS4zNzkgMzAuOTUxIDIwLjc3MSA0NC4wNDggMzMuOTAyIDEzLjA4IDEzLjEzMSAyNC40MiAyNy45ODQgMzMuNzQ4IDQ0LjEzNGEyMTEuNDA4IDIxMS40MDggMCAwIDEgMjEuMjMxIDUxLjMzIDIxMy4yNzYgMjEzLjI3NiAwIDAgMSA3LjE4IDU0Ljg3N3YuMTg4YTIxMi45MTEgMjEyLjkxMSAwIDAgMS03LjI2NSA1NS4wM2MtNC44NiAxOC4xNjItMTIuMDkxIDM1LjM1Mi0yMS4yODIgNTEuMjYyLTkuMzI4IDE2LjEzMy0yMC42NjkgMzAuOTUyLTMzLjc2NiA0NC4wNDktMTMuMDc5IDEzLjA5Ni0yNy44OTkgMjQuNDU0LTQ0LjAzMSAzMy43OTktMTUuOTExIDkuMjI2LTMzLjEgMTYuNDU2LTUxLjI2MiAyMS4zMzRhMjEyLjQ5NSAyMTIuNDk1IDAgMCAxLTU1LjA2NSA3LjI5OHY5OC4xNzZhMzEyLjA5IDMxMi4wOSAwIDAgMCA4MC40NTctMTAuNjQyWm02Ni43NDctMzAwLjUxMWMwLTgxLjQ4LTY2LjA0Ny0xNDcuNTI3LTE0Ny41MjgtMTQ3LjUyNy04MS40OCAwLTE0Ny41MjcgNjYuMDQ3LTE0Ny41MjcgMTQ3LjUyNyAwIDgxLjQ4IDY2LjA0NyAxNDcuNTI3IDE0Ny41MjcgMTQ3LjUyNyA4MS40ODEgMCAxNDcuNTI4LTY2LjA2NCAxNDcuNTI4LTE0Ny41MjdaXFxcIiBmaWxsPVxcXCJ1cmwoI2dyb3VwX3N2Z19fYilcXFwiLz48L2c+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJncm91cF9zdmdfX2FcXFwiIHgxPVxcXCIxMjcuODk1XFxcIiB5MT1cXFwiNTgyLjY0N1xcXCIgeDI9XFxcIjg3OC4zNDJcXFwiIHkyPVxcXCIxNDkuMzc3XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIuNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdyb3VwX3N2Z19fYlxcXCIgeDE9XFxcIi0xMS4wNzFcXFwiIHkxPVxcXCI2OTkuMTkzXFxcIiB4Mj1cXFwiOTM2LjU4OVxcXCIgeTI9XFxcIjE1Mi4wNjFcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIi42XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgOTM0IDIyMFxcXCI+PGcgZmlsbD1cXFwibm9uZVxcXCI+PHBhdGggZmlsbD1cXFwiIzE4NTU2OFxcXCIgZD1cXFwiTTIuNiAyMDguN1YxMDIuMmgzMC44djEwNi41ek0xMjYgMTk4LjRjLTcgOC41LTE3IDEzLjMtMzAuNCAxMy4zLTIxLjQgMC0zOC43LTEzLjMtMzguNy0zMy45IDAtMjAuMyAxNy4zLTMwLjQgNDEuNS0zMS43IDE4LjYtMS4xIDI0LjUtMy4xIDI0LjUtOS40IDAtNi4xLTUuNy0xMC4zLTE1LjctMTAuMy0xMi4yIDAtMTcuNSA2LjEtMTguMSAxMi43SDU5LjJjMS41LTIzLjQgMTktMzkuNSA0OC4zLTM5LjUgMjguNiAwIDQ3IDE1LjUgNDcgNDQuNnY2NS4xaC0yNS42bC0yLjktMTAuOXptLTM4LTIxLjljMCA2LjEgNS41IDkuOCAxNC4yIDkuOCAxMS44IDAgMjEuMi02LjYgMjEuMi0xOS45di0zLjlzLTUuNyAyLjYtMTcuNSAzLjNjLTEyLjguNy0xNy45IDQuOC0xNy45IDEwLjd6bTEzNSAzMy4yYy0yMy40IDAtMzYuOS0xMy41LTM2LjktMzcuMXYtNDEuN2gtMTcuOXYtMjguNmgxNy45Vjg2LjVsMzEtMjYuMnY0MS45SDI0NHYyOC42aC0yNi45djM3LjRjMCAxMC4zIDYuOCAxMi43IDEzLjEgMTIuNyA3LjIgMCAxMy4xLTIuOCAxMy4xLTIuOHYyOC4ycy04LjMgMy40LTIwLjMgMy40ek0wIDcwLjJjMC0xMCA3LjktMTguMSAxNy45LTE4LjEgMTAgMCAxOC4xIDguMSAxOC4xIDE4LjEgMCA5LjgtOC4xIDE3LjktMTguMSAxNy45LTEwIDAtMTcuOS04LTE3LjktMTcuOXptMjY2LjkgMTM4LjVWMTAyLjJoMzAuOHYxMDYuNXpcXFwiLz48ZyB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyMjcpXFxcIj48cGF0aCBmaWxsPVxcXCIjMTg1NTY4XFxcIiBkPVxcXCJNMTEwLjkgNzAuNWMwLTQuOS0uNy05LjctMS45LTE0LjMtMS4zLTQuNy0zLjEtOS4yLTUuNS0xMy4zLTIuNC00LjItNS40LTgtOC44LTExLjQtMy40LTMuNC03LjItNi4zLTExLjQtOC44LTQuMS0yLjQtOC42LTQuMy0xMy4zLTUuNS00LjYtMS4yLTkuMy0xLjktMTQuMy0xLjktNC45IDAtOS43LjctMTQuMyAxLjktNC43IDEuMy05LjIgMy4xLTEzLjMgNS41LTQuMiAyLjQtOCA1LjQtMTEuNCA4LjgtMy40IDMuNC02LjQgNy4yLTguOCAxMS40LTIuNCA0LjEtNC4zIDguNi01LjUgMTMuM2w3LjkgMi4xYzEuMS00IDIuNy03LjggNC43LTExLjMgMi4xLTMuNiA0LjYtNi44IDcuNS05LjcgMi45LTIuOSA2LjItNS40IDkuNy03LjUgMy41LTIgNy4zLTMuNiAxMS4zLTQuNyAzLjktMSA3LjktMS42IDEyLjEtMS42IDQuMiAwIDguMy42IDEyLjIgMS42IDQgMS4xIDcuOCAyLjcgMTEuMyA0LjcgMy42IDIuMSA2LjggNC42IDkuNyA3LjUgMi45IDIuOSA1LjQgNi4yIDcuNSA5LjcgMiAzLjUgMy42IDcuMyA0LjcgMTEuMyAxIDMuOSAxLjYgOCAxLjYgMTIuMiAwIDQuMi0uNiA4LjMtMS42IDEyLjEtMS4xIDQtMi43IDcuOC00LjcgMTEuM2w3LjEgNC4xYzIuNC00LjEgNC4zLTguNiA1LjUtMTMuMyAxLjMtNC41IDItOS4yIDItMTQuMlpcXFwiLz48cGF0aCBmaWxsPVxcXCIjMTg1NTY4XFxcIiBkPVxcXCJNMTI1LjIgNzAuNWMwLTYuMi0uOC0xMi4zLTIuNC0xOC0xLjYtNS45LTMuOS0xMS42LTctMTYuOC0zLjEtNS4zLTYuOC0xMC4xLTExLjEtMTQuNC00LjMtNC4zLTkuMS04LTE0LjQtMTEuMS01LjItMy0xMC44LTUuNC0xNi44LTYuOUM2Ny44IDEuOCA2MS43LjkgNTUuNS45Yy02LjIgMC0xMi4yLjgtMTggMi4zLTUuOSAxLjYtMTEuNiAzLjktMTYuOCA2LjktNS4zIDMtMTAuMSA2LjgtMTQuNCAxMWw0LjMgNC4zYzMuOS0zLjkgOC4zLTcuMyAxMy4xLTEwLjEgNC43LTIuNyA5LjktNC45IDE1LjMtNi4zIDUuMi0xLjQgMTAuNy0yLjEgMTYuNC0yLjEgNS43IDAgMTEuMi44IDE2LjQgMi4yIDUuNCAxLjQgMTAuNSAzLjYgMTUuMyA2LjNhNjQuNDY2IDY0LjQ2NiAwIDAgMSAyMy4yIDIzLjJjMi43IDQuNyA0LjkgOS45IDYuMyAxNS4zIDEuNCA1LjIgMi4yIDEwLjcgMi4yIDE2LjQgMCA1LjctLjcgMTEuMS0yLjEgMTYuNC0xLjQgNS40LTMuNiAxMC42LTYuMyAxNS4zLTIuOCA0LjgtNi4yIDkuMi0xMC4xIDEzLjFsNC4zIDQuM2M0LjMtNC4zIDgtOS4xIDExLjEtMTQuNCAzLTUuMiA1LjQtMTAuOCA2LjktMTYuOCAxLjgtNS40IDIuNi0xMS41IDIuNi0xNy43WlxcXCIvPjxwYXRoIGZpbGw9XFxcIiMxODU1NjhcXFwiIGQ9XFxcIk05My4yIDYwLjRjLS45LTMuMy0yLjItNi41LTMuOS05LjQtMS43LTIuOS0zLjgtNS43LTYuMi04LTIuNC0yLjQtNS4xLTQuNS04LTYuMi0yLjktMS43LTYtMy05LjQtMy45LTMuMi0uOS02LjYtMS4zLTEwLTEuMy0zLjUgMC02LjguNS0xMCAxLjMtMy4zLjktNi41IDIuMi05LjQgMy45LTIuOSAxLjctNS43IDMuOC04LjEgNi4yLTIuNCAyLjQtNC41IDUuMS02LjIgOC0xLjcgMi45LTMgNi0zLjkgOS40LS45IDMuMi0xLjMgNi42LTEuMyAxMC4xcy41IDYuOCAxLjMgMTBjLjkgMy4zIDIuMiA2LjUgMy45IDkuNGwxMC42LTYuMWMtMS4yLTItMi4xLTQuMS0yLjctNi40LS42LTIuMi0uOS00LjUtLjktNi45IDAtMi40LjMtNC43LjktNi45LjYtMi4zIDEuNS00LjQgMi43LTYuNCAxLjItMiAyLjYtMy45IDQuMi01LjVzMy41LTMuMSA1LjUtNC4yIDQuMS0yIDYuNC0yLjdjMi4yLS42IDQuNS0uOSA2LjktLjkgMi40IDAgNC43LjMgNi45LjkgMi4zLjYgNC40IDEuNSA2LjQgMi43IDIgMS4yIDMuOSAyLjYgNS41IDQuMnMzLjEgMy41IDQuMiA1LjVjMS4yIDIgMi4xIDQuMSAyLjcgNi40LjYgMi4yLjkgNC41LjkgNi45aDEyLjNjMC0zLjUtLjQtNi45LTEuMy0xMC4xWlxcXCIvPjxnIGZpbGw9XFxcIiNBN0VCRUZcXFwiPjxwYXRoIGQ9XFxcIk04MS40IDYzLjZjLS42LTIuMy0xLjUtNC40LTIuNy02LjQtMS4yLTItMi42LTMuOS00LjItNS41bC01LjggNS44YzEuMSAxLjEgMi4xIDIuNCAyLjkgMy44LjggMS40IDEuNCAyLjkgMS44IDQuNC40IDEuNS42IDMuMS42IDQuOCAwIDEuNy0uMiAzLjItLjYgNC44LS40IDEuNi0xIDMuMS0xLjggNC40LS44IDEuNC0xLjggMi43LTIuOSAzLjgtMS4xIDEuMS0yLjQgMi4xLTMuOCAyLjktMS40LjgtMi45IDEuNC00LjQgMS44LTEuNS40LTMuMS42LTQuOC42LTEuNyAwLTMuMi0uMi00LjgtLjYtMS42LS40LTMuMS0xLTQuNC0xLjhsLTQuMSA3LjFjMiAxLjIgNC4xIDIuMSA2LjQgMi43IDIuMi42IDQuNS45IDYuOS45IDIuNCAwIDQuNy0uMyA2LjktLjkgMi4zLS42IDQuNC0xLjUgNi40LTIuNyAyLTEuMiAzLjktMi42IDUuNS00LjJzMy4xLTMuNSA0LjItNS41YzEuMi0yIDIuMS00LjEgMi43LTYuNC42LTIuMi45LTQuNS45LTYuOSAwLTIuNC0uMy00LjctLjktNi45WlxcXCIvPjxwYXRoIGQ9XFxcIk05Ni40IDQ3Yy0yLjEtMy42LTQuNi02LjgtNy41LTkuNy0yLjktMi45LTYuMi01LjQtOS43LTcuNS0zLjUtMi03LjMtMy42LTExLjMtNC43LTMuOS0xLTgtMS42LTEyLjItMS42LTQuMiAwLTguMy42LTEyLjIgMS42LTQgMS4xLTcuOCAyLjctMTEuMyA0LjctMy42IDIuMS02LjggNC42LTkuNyA3LjUtMi45IDIuOS01LjQgNi4yLTcuNSA5LjctMiAzLjUtMy42IDcuMy00LjcgMTEuMy0xIDMuOS0xLjYgOC0xLjYgMTIuMmg4LjJjMC0zLjUuNS02LjkgMS4zLTEwLjEuOS0zLjMgMi4yLTYuNSAzLjktOS40IDEuNy0yLjkgMy44LTUuNyA2LjItOC4xIDIuNC0yLjQgNS4xLTQuNSA4LjEtNi4yIDIuOS0xLjcgNi4xLTMgOS40LTMuOSAzLjItLjkgNi42LTEuMyAxMC4xLTEuM3M2LjkuNSAxMC4xIDEuM2MzLjMuOSA2LjUgMi4yIDkuNCAzLjkgMi45IDEuNyA1LjcgMy44IDguMSA2LjIgMi40IDIuNCA0LjUgNS4xIDYuMiA4LjEgMS43IDIuOSAzIDYuMSAzLjkgOS40bDcuOS0yLjFjLTEuNS00LTMuMS03LjgtNS4xLTExLjNaXFxcIi8+PHBhdGggZD1cXFwiTTExNi45IDU0LjFjLTEuNC01LjQtMy42LTEwLjUtNi4zLTE1LjNhNjQuNDY2IDY0LjQ2NiAwIDAgMC0yMy4yLTIzLjJjLTQuNy0yLjctOS45LTQuOS0xNS4zLTYuMy01LjItMS40LTEwLjctMi4xLTE2LjQtMi4xLTUuNyAwLTExLjIuOC0xNi40IDIuMS01LjQgMS40LTEwLjUgMy42LTE1LjMgNi4zQTY0LjQ2NiA2NC40NjYgMCAwIDAgLjggMzguOGw3LjEgNC4xYzIuNC00LjIgNS40LTggOC44LTExLjQgMy40LTMuNCA3LjMtNi4zIDExLjQtOC44IDQuMS0yLjQgOC42LTQuMyAxMy4zLTUuNSA0LjYtMS4yIDkuMy0xLjkgMTQuMy0xLjlzOS43LjcgMTQuMyAxLjljNC43IDEuMyA5LjIgMy4xIDEzLjMgNS41IDQuMiAyLjQgOCA1LjQgMTEuNCA4LjggMy40IDMuNCA2LjMgNy4zIDguOCAxMS40IDIuNCA0LjEgNC4zIDguNiA1LjUgMTMuMyAxLjIgNC42IDEuOSA5LjMgMS45IDE0LjMgMCA0LjktLjcgOS43LTEuOSAxNC4zbDcuOSAyLjFjMS40LTUuMiAyLjEtMTAuNyAyLjEtMTYuNC4xLTUuNi0uNy0xMS4xLTIuMS0xNi40WlxcXCIvPjwvZz48Y2lyY2xlIGN4PVxcXCI1NS43XFxcIiBjeT1cXFwiNzAuNVxcXCIgcj1cXFwiMTguNFxcXCIgZmlsbD1cXFwiIzE4NTU2OFxcXCIvPjwvZz48cGF0aCBkPVxcXCJNMzU1LjMgMTQzLjR2LTM4LjJoOC4xdjM4LjJ6bTIzLjMtMTMuNHYxMy40aC03Ljd2LTI2LjdoNy42djEuOWMxLjUtMS40IDMuNi0yLjUgNi4zLTIuNSA2LjUgMCAxMC44IDQuMyAxMC44IDExLjh2MTUuNUgzODh2LTE0LjljMC0yLjgtMS4zLTUuMi00LjQtNS4yLTMuNy0uMS01IDIuNi01IDYuN3ptMzQuMSAxMy41Yy01LjggMC05LjItMy40LTkuMi05LjN2LTEwLjRIMzk5di03LjFoNC41di0zLjlsNy43LTYuNXYxMC41aDYuN3Y3LjFoLTYuN3Y5LjNjMCAyLjYgMS43IDMuMiAzLjMgMy4yIDEuOCAwIDMuMy0uNyAzLjMtLjd2N2MwLS4xLTIuMS44LTUuMS44em0zNS45LTExLjRoLTE4LjljLjQgMi43IDIuNyA0LjggNiA0LjggMi4yIDAgMy41LS45IDQuNC0yLjNoOC4zYy0xLjggNS44LTUuOSA5LjQtMTIuNiA5LjQtNy43IDAtMTQtNS40LTE0LTEzLjggMC04LjEgNS43LTE0LjIgMTMuNS0xNC4yIDguOCAwIDEzLjIgNi45IDEzLjIgMTQuMS4yLjcuMSAyIC4xIDJ6bS0xMy4xLTkuM2MtMi45IDAtNC45IDEuOC01LjQgNC4xaDEwLjRjLS4yLTIuMy0yLjItNC4xLTUtNC4xem0zNi4xLTQuNnY3LjZzLTItMi4xLTUuMS0yLjFjLTIuMyAwLTUgMS4zLTUgNS4ydjE0LjRoLTcuN3YtMjYuN2g3LjZ2Mi4yYy0uMSAwIDEuNS0yLjYgNS4zLTIuNiAzLjQuMSA0LjkgMiA0LjkgMnptMTIgMTEuOHYxMy40aC03Ljd2LTI2LjdoNy42djEuOWMxLjUtMS40IDMuNi0yLjUgNi4zLTIuNSA2LjUgMCAxMC44IDQuMyAxMC44IDExLjh2MTUuNWgtNy43di0xNC45YzAtMi44LTEuMy01LjItNC40LTUuMi0zLjctLjEtNC45IDIuNi00LjkgNi43em0zOS4zIDEwLjdjLTEuNyAyLjEtNC4zIDMuMy03LjYgMy4zLTUuMyAwLTkuNi0zLjMtOS42LTguNCAwLTUuMSA0LjMtNy42IDEwLjQtNy45IDQuNi0uMyA2LjEtLjggNi4xLTIuMyAwLTEuNS0xLjQtMi42LTMuOS0yLjYtMy4xIDAtNC40IDEuNS00LjUgMy4yaC03LjVjLjQtNS44IDQuNy05LjkgMTItOS45IDcuMSAwIDExLjcgMy45IDExLjcgMTEuMXYxNi4yaC02LjRsLS43LTIuN3ptLTkuNC01LjVjMCAxLjUgMS40IDIuNSAzLjUgMi41IDIuOSAwIDUuMy0xLjYgNS4zLTV2LTFzLTEuNC43LTQuNC44Yy0zLjIuMi00LjQgMS4yLTQuNCAyLjd6bTMzLjYgOC4zYy01LjggMC05LjItMy40LTkuMi05LjN2LTEwLjRoLTQuNXYtNy4xaDQuNXYtMy45bDcuNy02LjV2MTAuNWg2Ljd2Ny4xaC02Ljd2OS4zYzAgMi42IDEuNyAzLjIgMy4zIDMuMiAxLjggMCAzLjMtLjcgMy4zLS43djdjMC0uMS0yLjEuOC01LjEuOHptMTAuNC0zNC40YzAtMi41IDItNC41IDQuNS00LjVzNC41IDIgNC41IDQuNS0yIDQuNS00LjUgNC41LTQuNS0yLjEtNC41LTQuNXptLjYgMzQuM3YtMjYuN2g3Ljd2MjYuN2gtNy43em0xMy40LTEzLjRjMC04IDYuMi0xNCAxNC4yLTE0IDguMSAwIDE0LjIgNiAxNC4yIDE0cy02LjIgMTQtMTQuMiAxNGMtOC4xIDAtMTQuMi02LTE0LjItMTR6bTcuOSAwYzAgMy45IDIuNyA2LjggNi4zIDYuOCAzLjcgMCA2LjMtMi44IDYuMy02LjggMC0zLjktMi43LTYuOC02LjMtNi44LTMuNi4xLTYuMyAyLjktNi4zIDYuOHptMzMuNiAwdjEzLjRoLTcuN3YtMjYuN2g3LjZ2MS45YzEuNS0xLjQgMy42LTIuNSA2LjMtMi41IDYuNSAwIDEwLjggNC4zIDEwLjggMTEuOHYxNS41aC03Ljd2LTE0LjljMC0yLjgtMS4zLTUuMi00LjQtNS4yLTMuNi0uMS00LjkgMi42LTQuOSA2Ljd6bTM5LjQgMTAuN2MtMS43IDIuMS00LjMgMy4zLTcuNiAzLjMtNS4zIDAtOS42LTMuMy05LjYtOC40IDAtNS4xIDQuMy03LjYgMTAuNC03LjkgNC42LS4zIDYuMS0uOCA2LjEtMi4zIDAtMS41LTEuNC0yLjYtMy45LTIuNi0zLjEgMC00LjQgMS41LTQuNSAzLjJoLTcuNWMuNC01LjggNC43LTkuOSAxMi05LjkgNy4xIDAgMTEuNyAzLjkgMTEuNyAxMS4xdjE2LjJoLTYuNGwtLjctMi43em0tOS41LTUuNWMwIDEuNSAxLjQgMi41IDMuNSAyLjUgMi45IDAgNS4zLTEuNiA1LjMtNXYtMXMtMS40LjctNC40LjhjLTMuMi4yLTQuNCAxLjItNC40IDIuN3ptMjMgOC4ydi0zOC4yaDcuN3YzOC4yem00OS42LTM4LjIgMTQuOSAzOC4ySDcyMmwtMy4xLTcuNWgtMTQuOGwtMyA3LjVoLTguNGwxNC45LTM4LjJoNy45em0tMy45IDExLTQuNyAxMi41aDkuNWwtNC44LTEyLjV6bTIyLjUtNy4xYzAtMi41IDItNC41IDQuNS00LjVzNC41IDIgNC41IDQuNS0yIDQuNS00LjUgNC41LTQuNS0yLjEtNC41LTQuNXptLjYgMzQuM3YtMjYuN2g3Ljd2MjYuN2gtNy43em0xMy40LTEzLjRjMC04LjQgNi4xLTE0IDEzLjUtMTQgMy4xIDAgNS42IDEuMSA3IDIuM3YtMTMuMmg3Ljd2MzguMmgtNy42di0xLjljLTEuNCAxLjQtNC4xIDIuNS03LjEgMi41LTcuNS4xLTEzLjUtNS4zLTEzLjUtMTMuOXptMjAuNSAwYzAtNC4xLTIuNy03LTYuMy03LTMuNiAwLTYuMyAyLjgtNi4zIDcgMCA0LjEgMi43IDcgNi4zIDcgMy42IDAgNi4zLTIuOCA2LjMtN3ptLTQxNS44IDQwLjZoMzB2Ny41aC0xMXYzMC43aC04LjFWMTc4aC0xMXYtNy40em00OC45IDEzdjcuNnMtMi0yLjEtNS4xLTIuMWMtMi4zIDAtNSAxLjMtNSA1LjJ2MTQuNEgzODRWMTgyaDcuNnYyLjJjLS4xIDAgMS41LTIuNiA1LjMtMi42IDMuMy4xIDQuOCAyIDQuOCAyem0yMC44IDIyLjRjLTEuNyAyLjEtNC4zIDMuMy03LjYgMy4zLTUuMyAwLTkuNi0zLjMtOS42LTguNCAwLTUuMSA0LjMtNy42IDEwLjQtNy45IDQuNi0uMyA2LjEtLjggNi4xLTIuMyAwLTEuNS0xLjQtMi42LTMuOS0yLjYtMy4xIDAtNC40IDEuNS00LjUgMy4yaC03LjVjLjQtNS44IDQuNy05LjkgMTItOS45IDcuMSAwIDExLjcgMy45IDExLjcgMTEuMXYxNi4yaC02LjRsLS43LTIuN3ptLTkuNS01LjRjMCAxLjUgMS40IDIuNSAzLjUgMi41IDIuOSAwIDUuMy0xLjYgNS4zLTV2LTFzLTEuNC43LTQuNC44Yy0zLjEuMi00LjQgMS4yLTQuNCAyLjd6bTMwLjgtNS4ydjEzLjRINDM2di0yNi43aDcuNnYxLjljMS41LTEuNCAzLjYtMi41IDYuMy0yLjUgNi41IDAgMTAuOCA0LjMgMTAuOCAxMS44djE1LjVINDUzdi0xNC45YzAtMi44LTEuMy01LjItNC40LTUuMi0zLjYtLjEtNC44IDIuNi00LjggNi43em0zOCA1LjdjMC0uOC0uNS0xLjUtMi42LTEuOWwtNC0uOGMtNi4xLTEuMi04LjYtNC4xLTguNi04LjEgMC00LjcgMy41LTguOSAxMC45LTguOXMxMC43IDQuMSAxMS4zIDguOGgtNy40Yy0uNC0xLjUtMS43LTIuMy00LTIuMy0yLjIgMC0zLjQuOC0zLjQgMS45IDAgLjguNyAxLjMgMi43IDEuN2w0IC44YzUuNyAxLjEgOC42IDMuOCA4LjYgOC40IDAgNS4yLTMuOCA4LjgtMTEuMiA4LjgtNy42IDAtMTEuNy0zLjYtMTIuNS05LjJoNy44Yy40IDEuOSAxLjggMi44IDQuNyAyLjggMi41LS4xIDMuNy0uOCAzLjctMnptNDAuNy01LjdjMCA4LjQtNi4xIDE0LTEzLjUgMTQtMy4xIDAtNS42LTEuMS03LTIuM3YxMi4zaC03Ljd2LTM3LjNoNy42djEuOWMxLjQtMS40IDQuMS0yLjYgNy4xLTIuNiA3LjUgMCAxMy41IDUuNCAxMy41IDE0em0tMjAuNSAwYzAgNC4xIDIuNyA3IDYuMyA3IDMuNiAwIDYuMy0yLjggNi4zLTcgMC00LjEtMi43LTctNi4zLTctMy42IDAtNi4zIDIuOS02LjMgN3ptNDEuOCAxMC42Yy0xLjcgMi4xLTQuMyAzLjMtNy42IDMuMy01LjMgMC05LjYtMy4zLTkuNi04LjQgMC01LjEgNC4zLTcuNiAxMC40LTcuOSA0LjYtLjMgNi4xLS44IDYuMS0yLjMgMC0xLjUtMS40LTIuNi0zLjktMi42LTMuMSAwLTQuNCAxLjUtNC41IDMuMmgtNy41Yy40LTUuOCA0LjctOS45IDEyLTkuOSA3LjEgMCAxMS43IDMuOSAxMS43IDExLjF2MTYuMmgtNi40bC0uNy0yLjd6bS05LjUtNS40YzAgMS41IDEuNCAyLjUgMy41IDIuNSAyLjkgMCA1LjMtMS42IDUuMy01di0xcy0xLjQuNy00LjQuOGMtMy4xLjItNC40IDEuMi00LjQgMi43em00MC44LTE3djcuNnMtMi0yLjEtNS4xLTIuMWMtMi4zIDAtNSAxLjMtNSA1LjJ2MTQuNGgtNy43VjE4Mmg3LjZ2Mi4yYy0uMSAwIDEuNS0yLjYgNS4zLTIuNiAzLjQuMSA0LjkgMiA0LjkgMnptMjkuNyAxMy45aC0xOC45Yy40IDIuNyAyLjcgNC44IDYgNC44IDIuMiAwIDMuNS0uOSA0LjQtMi4zaDguM2MtMS44IDUuOC01LjkgOS40LTEyLjYgOS40LTcuNyAwLTE0LTUuNC0xNC0xMy44IDAtOC4xIDUuNy0xNC4yIDEzLjUtMTQuMiA4LjggMCAxMy4yIDYuOSAxMy4yIDE0LjEuMS43LjEgMiAuMSAyem0tMTMuMS05LjNjLTIuOSAwLTQuOSAxLjgtNS40IDQuMWgxMC40Yy0uMi0yLjMtMi4yLTQuMS01LTQuMXptMjYuMSA3LjJ2MTMuNEg2MTB2LTI2LjdoNy42djEuOWMxLjUtMS40IDMuNi0yLjUgNi4zLTIuNSA2LjUgMCAxMC44IDQuMyAxMC44IDExLjh2MTUuNUg2Mjd2LTE0LjljMC0yLjgtMS4zLTUuMi00LjQtNS4yLTMuNi0uMS00LjggMi42LTQuOCA2Ljd6bTQwLjcgM2g4LjVjLTEuMyA2LjUtNi4yIDExLTEzLjQgMTEtOC4xIDAtMTQuMS01LjktMTQuMS0xNCAwLTggNi0xNCAxNC4xLTE0IDcgMCAxMS45IDQuNCAxMi45IDEwLjdINjU4Yy0uNi0yLTIuMy0zLjQtNC43LTMuNC0zLjMgMC01LjkgMi44LTUuOSA2LjcgMCAzLjkgMi42IDYuNyA2IDYuNyAyLjYgMCA0LjUtMS40IDUuMS0zLjd6bTE4IDIxLjJjLTMuNSAwLTUuMi0uOS01LjItLjl2LTcuMXMxLjYuOCAzLjMuOGMxLjcgMCA0LS43IDQuNi0zLjdMNjY4LjggMTgyaDguNmw2LjEgMTYuNiA2LjItMTYuNmg4LjNsLTExIDI3LjJjLTIuOSA3LjEtNS4yIDEwLjQtMTAuNSAxMC40em00MC45LTEwLjh2LTM4LjJoOC4xdjM4LjJ6bTIzLjMtMTMuNHYxMy40SDczM3YtMjYuN2g3LjZ2MS45YzEuNS0xLjQgMy42LTIuNSA2LjMtMi41IDYuNSAwIDEwLjggNC4zIDEwLjggMTEuOHYxNS41SDc1MHYtMTQuOWMwLTIuOC0xLjMtNS4yLTQuNC01LjItMy43LS4xLTQuOSAyLjYtNC45IDYuN3ptMjMtMjAuOWMwLTIuNSAyLTQuNSA0LjUtNC41czQuNSAyIDQuNSA0LjUtMiA0LjUtNC41IDQuNS00LjUtMi4xLTQuNS00LjV6bS42IDM0LjN2LTI2LjdoNy43djI2LjdoLTcuN3ptMjUuNi4xYy01LjggMC05LjItMy40LTkuMi05LjN2LTEwLjRoLTQuNXYtNy4xaDQuNXYtMy45bDcuNy02LjV2MTAuNWg2Ljd2Ny4xaC02Ljd2OS4zYzAgMi42IDEuNyAzLjIgMy4zIDMuMiAxLjggMCAzLjMtLjcgMy4zLS43djdjMC0uMS0yLjEuOC01LjEuOHptMTAuNC0zNC40YzAtMi41IDItNC41IDQuNS00LjVzNC41IDIgNC41IDQuNS0yIDQuNS00LjUgNC41LTQuNS0yLjEtNC41LTQuNXptLjYgMzQuM3YtMjYuN2g3Ljd2MjYuN2gtNy43em0zMC44LTIuOGMtMS43IDIuMS00LjMgMy4zLTcuNiAzLjMtNS4zIDAtOS42LTMuMy05LjYtOC40IDAtNS4xIDQuMy03LjYgMTAuNC03LjkgNC42LS4zIDYuMS0uOCA2LjEtMi4zIDAtMS41LTEuNC0yLjYtMy45LTIuNi0zLjEgMC00LjQgMS41LTQuNSAzLjJoLTcuNWMuNC01LjggNC43LTkuOSAxMi05LjkgNy4xIDAgMTEuNyAzLjkgMTEuNyAxMS4xdjE2LjJoLTYuNGwtLjctMi43em0tOS40LTUuNGMwIDEuNSAxLjQgMi41IDMuNSAyLjUgMi45IDAgNS4zLTEuNiA1LjMtNXYtMXMtMS40LjctNC40LjhjLTMuMi4yLTQuNCAxLjItNC40IDIuN3ptMzMuNiA4LjNjLTUuOCAwLTkuMi0zLjQtOS4yLTkuM3YtMTAuNGgtNC41di03LjFoNC41di0zLjlsNy43LTYuNXYxMC41aDYuN3Y3LjFoLTYuN3Y5LjNjMCAyLjYgMS43IDMuMiAzLjMgMy4yIDEuOCAwIDMuMy0uNyAzLjMtLjd2N2MwLS4xLTIuMS44LTUuMS44em0xMC40LTM0LjRjMC0yLjUgMi00LjUgNC41LTQuNXM0LjUgMiA0LjUgNC41LTIgNC41LTQuNSA0LjUtNC41LTIuMS00LjUtNC41em0uNiAzNC4zdi0yNi43aDcuN3YyNi43aC03Ljd6bTM4LjctMjYuNy05LjUgMjYuN2gtOGwtOS41LTI2LjdoOC4ybDUuMiAxNi41IDUuMi0xNi41em0yOC4yIDE1LjRoLTE4LjljLjQgMi43IDIuNyA0LjggNiA0LjggMi4yIDAgMy41LS45IDQuNC0yLjNoOC4zYy0xLjggNS44LTUuOSA5LjQtMTIuNiA5LjQtNy43IDAtMTQtNS40LTE0LTEzLjggMC04LjEgNS43LTE0LjIgMTMuNS0xNC4yIDguOCAwIDEzLjIgNi45IDEzLjIgMTQuMS4xLjcuMSAyIC4xIDJabS0xMy4xLTkuM2MtMi45IDAtNC45IDEuOC01LjQgNC4xaDEwLjRjLS4yLTIuMy0yLjItNC4xLTUtNC4xWlxcXCIgZmlsbD1cXFwiIzE4NTU2OFxcXCIvPjwvZz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjUgMjRcXFwiPjxwYXRoIGQ9XFxcIk0yMC44MzQgMTEuMjNWOC45NTdhOC4zMzMgOC4zMzMgMCAwIDAtMTYuNjY3IDB2Mi4yNzFhMy4xMjUgMy4xMjUgMCAwIDAtMi4wODMgMi45Mzh2Mi4wODNhMy4xMjUgMy4xMjUgMCAwIDAgMy4xMjQgMy4xMjVoMy4xMjZhMS4wNDEgMS4wNDEgMCAwIDAgMS4wNDEtMS4wNDJ2LTYuMjVhMS4wNDIgMS4wNDIgMCAwIDAtMS4wNDEtMS4wNDFINi4yNVY4Ljk1OGE2LjI1IDYuMjUgMCAxIDEgMTIuNSAwdjIuMDg0aC0yLjA4M2ExLjA0MSAxLjA0MSAwIDAgMC0xLjA0MiAxLjA0MXY2LjI1YTEuMDQxIDEuMDQxIDAgMCAwIDEuMDQyIDEuMDQyaDMuMTI1YTMuMTI1IDMuMTI1IDAgMCAwIDMuMTI1LTMuMTI1di0yLjA4M2EzLjEyNSAzLjEyNSAwIDAgMC0yLjA4NC0yLjkzOFpNNy4yOTIgMTMuMTI0djQuMTY3SDUuMjA5YTEuMDQyIDEuMDQyIDAgMCAxLTEuMDQyLTEuMDQydi0yLjA4M2ExLjA0MiAxLjA0MiAwIDAgMSAxLjA0Mi0xLjA0MmgyLjA4M1ptMTMuNTQyIDMuMTI1YTEuMDQyIDEuMDQyIDAgMCAxLTEuMDQyIDEuMDQyaC0yLjA4NHYtNC4xNjdoMi4wODRhMS4wNDIgMS4wNDIgMCAwIDEgMS4wNDEgMS4wNDJ2Mi4wODNaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE4LjM4NCAyMS42MTZBNC42MyA0LjYzIDAgMCAxIDE1LjEyIDIzbC0uMDEtMS4xNThhMy40NzIgMy40NzIgMCAwIDAgMy40NDUtMy41bDEuMTU3LS4wMDlhNC42MyA0LjYzIDAgMCAxLTEuMzMgMy4yODRaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIiBzdHJva2U9XFxcIiNmZmZcXFwiIHN0cm9rZS13aWR0aD1cXFwiMS4wNDJcXFwiLz48cmVjdCB4PVxcXCIxMS4yNVxcXCIgeT1cXFwiMjAuNDE2XFxcIiB3aWR0aD1cXFwiNC42ODhcXFwiIGhlaWdodD1cXFwiMy4xMjVcXFwiIHJ4PVxcXCIxLjU2M1xcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNSAxNFxcXCI+PHBhdGggZD1cXFwiTTcuMzg1IDQuNjY3YTEuMSAxLjEgMCAwIDAtLjUxOC4xMjhjLS4xNi4wODUtLjI5NS4yMDktLjM5LjM2MmwtLjAwNC4wMDYtLjAwMy4wMDdhLjM0Ni4zNDYgMCAwIDEtLjA5My4xMDUuNDM4LjQzOCAwIDAgMS0uNDU1LjAzMy4zNy4zNyAwIDAgMS0uMTEzLS4wOTMuMzEzLjMxMyAwIDAgMS0uMDYtLjExNy4yODcuMjg3IDAgMCAxLS4wMDUtLjEyNGwtLjMyOS0uMDU4LjMyOS4wNThhLjMwNS4zMDUgMCAwIDEgLjA0OS0uMTJsLjAwNC0uMDA1LjAwNC0uMDA2YTEuNzUgMS43NSAwIDAgMSAuNjYzLS42MTUgMS45MiAxLjkyIDAgMCAxIDIuMDkyLjE3NmMuMzI0LjI1Ni41MzcuNjA1LjYwNy45ODUuMDcuMzc4LS4wMDUuNzctLjIxNSAxLjEwNS0uMjExLjMzNy0uNTQ2LjYtLjk1Mi43MzdsLS4yMjcuMDc2di4zNmEuMzEuMzEgMCAwIDEtLjEwNC4yMjcuNDE0LjQxNCAwIDAgMS0uMjguMTA2Yy0uMTEgMC0uMjEtLjA0LS4yODEtLjEwNkEuMzEuMzEgMCAwIDEgNyA3LjY2N1Y3YS4zMS4zMSAwIDAgMSAuMTA0LS4yMjcuNDE0LjQxNCAwIDAgMSAuMjgtLjEwNmMuMjcyIDAgLjUzNi0uMS43MzUtLjI4NWEuOTc3Ljk3NyAwIDAgMCAuMzE3LS43MTUuOTc3Ljk3NyAwIDAgMC0uMzE3LS43MTYgMS4wOCAxLjA4IDAgMCAwLS43MzQtLjI4NFptMCAwVjV2LS4zMzNabS0uMzY5IDQuOTA2LjAxMi0uMDIxLjAwOS0uMDIzYS4xNi4xNiAwIDAgMSAuMDItLjAzNy43MzYuNzM2IDAgMCAxIC4wNS0uMDYuMzkxLjM5MSAwIDAgMSAuMTIyLS4wNzQuNDMzLjQzMyAwIDAgMSAuMzExIDBsLjEyLS4zMS0uMTIuMzFhLjM5LjM5IDAgMCAxIC4xMjcuMDc5Yy4wMzQuMDMyLjA2LjA3LjA3Ny4xMDhhLjMuMyAwIDAgMSAuMDI1LjEydi4wMTVhLjI5LjI5IDAgMCAxLS4wMi4xMTguMjYzLjI2MyAwIDAgMS0uMDY3LjA5OGwuMjI3LjI0NC0uMjI3LS4yNDRhLjMyMS4zMjEgMCAwIDEtLjExNi4wNjhsLS4wMS4wMDMtLjAxLjAwNWEuMzg2LjM4NiAwIDAgMS0uMjkzIDBsLS4wMS0uMDA1LS4wMS0uMDAzYS4zMjEuMzIxIDAgMCAxLS4xMTctLjA2OGwtLjIyNy4yNDQuMjI3LS4yNDRhLjI2My4yNjMgMCAwIDEtLjA2Ny0uMDk3bC0uMDA2LS4wMTUtLjAwNy0uMDE1YS4xOTMuMTkzIDAgMCAxLS4wMjItLjA5M1Y5LjY0YS41MS41MSAwIDAgMS0uMDAyLS4wNTcuMDc4LjA3OCAwIDAgMSAuMDA0LS4wMVpNMy41NzIgMS43NEE3LjI0NSA3LjI0NSAwIDAgMSA3LjM4NS42NjdjLjkwMiAwIDEuNzk1LjE2NSAyLjYyNy40ODUuODMzLjMyIDEuNTg4Ljc4OSAyLjIyMiAxLjM3OGE2LjMyMyA2LjMyMyAwIDAgMSAxLjQ4IDIuMDU1Yy4zNDEuNzY2LjUxNyAxLjU4Ny41MTcgMi40MTVhNiA2IDAgMCAxLTEuMTQ3IDMuNTEgNi43NiA2Ljc2IDAgMCAxLTMuMDcyIDIuMzM4IDcuMzYyIDcuMzYyIDAgMCAxLTMuOTY4LjM2MyA3LjAzMyA3LjAzMyAwIDAgMS0zLjUxLTEuNzQxQTYuMjAxIDYuMjAxIDAgMCAxIC42NyA4LjIzYTUuODkyIDUuODkyIDAgMCAxIC4zODctMy42NDVBNi40NjcgNi40NjcgMCAwIDEgMy41NzIgMS43NFptLjQ0NiA5Ljk3OGE2LjM5IDYuMzkgMCAwIDAgMy4zNjcuOTQ5YzEuNjA0IDAgMy4xNDYtLjU5MiA0LjI4OC0xLjY1MkMxMi44MTUgOS45NTUgMTMuNDYgOC41MTEgMTMuNDYgN2E1LjQgNS40IDAgMCAwLTEuMDMtMy4xNTggNi4wMDcgNi4wMDcgMCAwIDAtMi43MjktMi4wOCA2LjQ4OCA2LjQ4OCAwIDAgMC0zLjQ5OC0uMzIgNi4yMjYgNi4yMjYgMCAwIDAtMy4xMDggMS41NDIgNS41NiA1LjU2IDAgMCAwLTEuNjcgMi45MDYgNS4zMTQgNS4zMTQgMCAwIDAgLjM0OCAzLjI4NyA1Ljc3MyA1Ljc3MyAwIDAgMCAyLjI0NCAyLjU0WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIj48cGF0aCBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIGQ9XFxcIk0xMS4zMzMgMi4yYy0yLjYtMS40NjctNS44LTEtNy45MzMgMVYyYzAtLjQtLjI2Ny0uNjY3LS42NjctLjY2N1MyLjA2NyAxLjYgMi4wNjcgMnYzYzAgLjQuMjY2LjY2Ni42NjYuNjY2aDNjLjQgMCAuNjY3LS4yNjYuNjY3LS42NjZzLS4yNjctLjY2Ny0uNjY3LS42NjdoLTEuNmMxLTEuMDY3IDIuNC0xLjY2NyAzLjg2Ny0xLjY2NyAyLjkzMyAwIDUuMzMzIDIuNCA1LjMzMyA1LjMzNCAwIDIuOTMzLTIuNCA1LjMzMy01LjMzMyA1LjMzMy0yLjkzMyAwLTUuMzMzLTIuNC01LjMzMy01LjMzMyAwLS40LS4yNjctLjY2Ny0uNjY3LS42NjdTMS4zMzMgNy42IDEuMzMzIDhjMCAzLjY2NiAzIDYuNjY2IDYuNjY3IDYuNjY2IDIuNCAwIDQuNi0xLjI2NiA1LjgtMy4zMzMgMS44LTMuMi43MzMtNy4yNjctMi40NjctOS4xMzNaTTggNS4zMzNjLS40IDAtLjY2Ny4yNjctLjY2Ny42Njd2MmMwIC40LjI2Ny42NjYuNjY3LjY2NmgxLjMzM2MuNCAwIC42NjctLjI2Ni42NjctLjY2NnMtLjI2Ny0uNjY3LS42NjctLjY2N2gtLjY2NlY2YzAtLjQtLjI2Ny0uNjY3LS42NjctLjY2N1pcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE5MCAxOTBcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PGNpcmNsZSBjeD1cXFwiOTVcXFwiIGN5PVxcXCI5NVxcXCIgcj1cXFwiODVcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCI5NVxcXCIgY3k9XFxcIjk1XFxcIiByPVxcXCI5NVxcXCIgZmlsbD1cXFwiI0NERjhGQVxcXCIvPjxwYXRoIGQ9XFxcIk01MS4xNzIgNzkuNjM2YzAtMS44NDggMC0yLjc3Mi4yNDItMy42MjJhNi4zMzEgNi4zMzEgMCAwIDEgLjk4MS0yLjAwN2MuNTIzLS43MTMgMS4yNTItMS4yOCAyLjcxLTIuNDE2bDM0LjExNi0yNi41MzdjLjkyOC0uNzIzIDEuMzkyLTEuMDg0IDEuOS0xLjM0OWE2LjMyOSA2LjMyOSAwIDAgMSAyLjA0Ny0uNjU1Yy41NjctLjA4IDEuMTU1LS4wNTYgMi4zMy0uMDA4IDEuMDI3LjA0MiAxLjU0LjA2MyAyLjAzMy4xNjMuNjIyLjEyNiAxLjIyLjM0NCAxLjc3Ny42NDguNDQyLjI0MS44NDguNTU1IDEuNjYxIDEuMTg0bDM0LjY4OCAyNi44MjRjMS40NjcgMS4xMzQgMi4yIDEuNzAyIDIuNzI2IDIuNDE2LjQ0Ni42MDYuNzggMS4yODguOTg3IDIuMDEyLjI0NC44NTIuMjQ0IDEuNzguMjQ0IDMuNjM0djUyLjEwMWMwIDEuODAyIDAgMi43MDQtLjM1NiAzLjM5YTMuMTY3IDMuMTY3IDAgMCAxLTEuMzUgMS4zNDljLS42ODYuMzU3LTEuNTg3LjM1Ny0zLjM5LjM1N0g2MC4zNDVjLTMuMjQ1IDAtNC44NjcgMC02LjEwMi0uNjQyYTUuNjk3IDUuNjk3IDAgMCAxLTIuNDMtMi40MjljLS42NDEtMS4yMzUtLjY0MS0yLjg1Ny0uNjQxLTYuMTAyVjc5LjYzNlpcXFwiIGZpbGw9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19fYSlcXFwiLz48cGF0aCBkPVxcXCJNNTkuNzc1IDcxLjkyNGMxLjI4NiAwIDEuODkuMDAyIDIuNDYuMTE0Ljc0LjE0NiAxLjQ0Ni40MjkgMi4wODEuODM0LjQ5LjMxMy45MjguNzMgMS44NTggMS42MThsMjYuNzYgMjUuNTYyYTUuMzYgNS4zNiAwIDAgMSAuMDEyIDcuNzM4bC0yNi4xMzQgMjUuMTEzYy0xLjgzMiAxLjc2LTIuNjkzIDIuNTgxLTMuNzY2IDMuMDEzLTEuMDcyLjQzMS0yLjI2Mi40MzYtNC44MDIuNDM2aC0uNzQyYy0xLjUgMC0yLjU5NiAwLTMuNDM0LS4xMTMtLjgyOS0uMTExLTEuMzYxLS4zMjgtMS43Ni0uNzI3LS40LS40LS42MTYtLjkzMi0uNzI4LTEuNzYxLS4xMTItLjgzOC0uMTEzLTEuOTMzLS4xMTMtMy40MzRWODAuMjMyYzAtMS4zNTggMC0yLjM2Mi4wNTYtMy4xNi4wNTUtLjc5NC4xNjQtMS4zNjMuMzcyLTEuODUzYTUuNDAyIDUuNDAyIDAgMCAxIDIuODY3LTIuODY3Yy40OS0uMjA4IDEuMDU4LS4zMTcgMS44NTMtLjM3Mi43OTgtLjA1NiAxLjgwMi0uMDU2IDMuMTYtLjA1NlpcXFwiIGZpbGw9XFxcIiNCOURERkZcXFwiIGZpbGwtb3BhY2l0eT1cXFwiLjZcXFwiIHN0cm9rZT1cXFwidXJsKCNpYy12ZXJpZmljYXRpb25fc3ZnX19iKVxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNTkxXFxcIi8+PHBhdGggZD1cXFwiTTEzMS43OCA3MS45MjRjLTEuMjg2IDAtMS44OS4wMDItMi40NjEuMTE0YTYuMDQxIDYuMDQxIDAgMCAwLTIuMDgxLjgzNGMtLjQ5LjMxMy0uOTI3LjczLTEuODU3IDEuNjE4bC0yNi43NiAyNS41NjJhNS4zNiA1LjM2IDAgMCAwLS4wMTIgNy43MzhsMjYuMTM0IDI1LjExM2MxLjgzMiAxLjc2IDIuNjkzIDIuNTgxIDMuNzY1IDMuMDEzIDEuMDczLjQzMSAyLjI2My40MzYgNC44MDMuNDM2aC43NDJjMS41IDAgMi41OTYgMCAzLjQzMy0uMTEzLjgzLS4xMTEgMS4zNjItLjMyOCAxLjc2MS0uNzI3LjQtLjQuNjE2LS45MzIuNzI3LTEuNzYxLjExMy0uODM4LjExNC0xLjkzMy4xMTQtMy40MzRWODAuMjMyYzAtMS4zNTggMC0yLjM2Mi0uMDU2LTMuMTYtLjA1NS0uNzk0LS4xNjUtMS4zNjMtLjM3Mi0xLjg1M2E1LjQwMiA1LjQwMiAwIDAgMC0yLjg2OC0yLjg2N2MtLjQ4OS0uMjA4LTEuMDU4LS4zMTctMS44NTMtLjM3Mi0uNzk3LS4wNTYtMS44MDEtLjA1Ni0zLjE1OS0uMDU2WlxcXCIgZmlsbD1cXFwiI0I5RERGRlxcXCIgZmlsbC1vcGFjaXR5PVxcXCIuNlxcXCIgc3Ryb2tlPVxcXCJ1cmwoI2ljLXZlcmlmaWNhdGlvbl9zdmdfX2MpXFxcIiBzdHJva2Utd2lkdGg9XFxcIi41OTFcXFwiLz48cGF0aCBkPVxcXCJNNTAuNzEgMTI5LjQ2NWMwLTEuMzEuMDAyLTEuOTI1LjExNS0yLjQ5N2E2LjAzNiA2LjAzNiAwIDAgMSAxLjM4Mi0yLjgwOGMuMzg0LS40MzkuODctLjgxNSAxLjkwOS0xLjYxNWwzNS4yNzMtMjcuMTY4Yy45NTYtLjczNiAxLjQwNC0xLjA4IDEuODkzLTEuMzNhNi4wMzQgNi4wMzQgMCAwIDEgMS44OTItLjYwMmMuNTQzLS4wNzcgMS4xMDktLjA1NSAyLjMxNC0uMDA2IDEuMDUuMDQzIDEuNTQ0LjA2NCAyLjAxNi4xNmE2LjAzNCA2LjAzNCAwIDAgMSAxLjY0LjU5NWMuNDI1LjIyNy44MTcuNTI3IDEuNjUzIDEuMTY2bDM0LjU1MyAyNi40NTFjMi4zNDkgMS43OTggMy40NDUgMi42NDUgNC4wNTggMy44MjQuMDM4LjA3My4wNzUuMTQ3LjExLjIyMi41NjMgMS4yMDMuNTcgMi41ODkuNTcgNS41NDcgMCAxLjQzMS0uMDAxIDIuNDc2LS4xMDQgMy4yNzgtLjEwMi43OTUtLjMgMS4zMDktLjY2NiAxLjcwMmEyLjczNSAyLjczNSAwIDAgMS0uMTQzLjE0MmMtLjM5My4zNjYtLjkwNy41NjUtMS43MDIuNjY3LS44MDIuMTAzLTEuODQ3LjEwNC0zLjI3OC4xMDRINTguNTQyYy0yLjI4NiAwLTMuMzU0LS4wMDQtNC4yMDUtLjNhNS40MDMgNS40MDMgMCAwIDEtMy4zMjYtMy4zMjdjLS4yOTYtLjg1LS4zLTEuOTE4LS4zLTQuMjA1WlxcXCIgZmlsbD1cXFwiI0I5RERGRlxcXCIgc3Ryb2tlPVxcXCJ1cmwoI2ljLXZlcmlmaWNhdGlvbl9zdmdfX2QpXFxcIiBzdHJva2Utd2lkdGg9XFxcIi41OTFcXFwiLz48cGF0aCBkPVxcXCJNNTAuNzEgMTI5LjQ2NWMwLTEuMzEuMDAyLTEuOTI1LjExNS0yLjQ5N2E2LjAzNiA2LjAzNiAwIDAgMSAxLjM4Mi0yLjgwOGMuMzg0LS40MzkuODctLjgxNSAxLjkwOS0xLjYxNWwzNS4yNzMtMjcuMTY4Yy45NTYtLjczNiAxLjQwNC0xLjA4IDEuODkzLTEuMzNhNi4wMzQgNi4wMzQgMCAwIDEgMS44OTItLjYwMmMuNTQzLS4wNzcgMS4xMDktLjA1NSAyLjMxNC0uMDA2IDEuMDUuMDQzIDEuNTQ0LjA2NCAyLjAxNi4xNmE2LjAzNCA2LjAzNCAwIDAgMSAxLjY0LjU5NWMuNDI1LjIyNy44MTcuNTI3IDEuNjUzIDEuMTY2bDM0LjU1MyAyNi40NTFjMi4zNDkgMS43OTggMy40NDUgMi42NDUgNC4wNTggMy44MjRsLjI2Mi0uMTM3LS4yNjIuMTM3Yy4wMzguMDczLjA3NS4xNDcuMTEuMjIybC4yNjctLjEyNS0uMjY3LjEyNWMuNTYzIDEuMjAzLjU3IDIuNTg5LjU3IDUuNTQ3IDAgMS40MzEtLjAwMSAyLjQ3Ni0uMTA0IDMuMjc4LS4xMDIuNzk1LS4zIDEuMzA5LS42NjYgMS43MDJhMy4yMTQgMy4yMTQgMCAwIDEtLjE0My4xNDNjLS4zOTMuMzY1LS45MDcuNTY0LTEuNzAyLjY2Ni0uODAyLjEwMy0xLjg0Ny4xMDQtMy4yNzguMTA0SDU4LjU0MmMtMi4yODYgMC0zLjM1NC0uMDA0LTQuMjA1LS4zYTUuNDAzIDUuNDAzIDAgMCAxLTMuMzI2LTMuMzI3Yy0uMjk2LS44NS0uMy0xLjkxOC0uMy00LjIwNVpcXFwiIGZpbGw9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19fZSlcXFwiIHN0cm9rZT1cXFwidXJsKCNpYy12ZXJpZmljYXRpb25fc3ZnX19mKVxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNTkxXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTMzLjczM1xcXCIgY3k9XFxcIjEzMi4yMTNcXFwiIHI9XFxcIjIxLjIxM1xcXCIgZmlsbD1cXFwiI0YxRjdGOVxcXCIvPjxtYXNrIGlkPVxcXCJpYy12ZXJpZmljYXRpb25fc3ZnX19pXFxcIiBmaWxsPVxcXCIjZmZmXFxcIj48cGF0aCBmaWxsLXJ1bGU9XFxcImV2ZW5vZGRcXFwiIGNsaXAtcnVsZT1cXFwiZXZlbm9kZFxcXCIgZD1cXFwiTTE0Ni41NDEgMTI3LjM2NGEzLjAwMSAzLjAwMSAwIDAgMC00LjI0My00LjI0M2wtMTIuMTMxIDEyLjEzMS00LjI4My00LjI4M2EzIDMgMCAxIDAtNC4yNDMgNC4yNDNsNi4zNjQgNi4zNjRhMy4wMDEgMy4wMDEgMCAwIDAgMy40Ni41NjRjLjMzOS0uMTQ2LjY1Ny0uMzU3LjkzNC0uNjM0bDE0LjE0Mi0xNC4xNDJaXFxcIi8+PC9tYXNrPjxwYXRoIGZpbGwtcnVsZT1cXFwiZXZlbm9kZFxcXCIgY2xpcC1ydWxlPVxcXCJldmVub2RkXFxcIiBkPVxcXCJNMTQ2LjU0MSAxMjcuMzY0YTMuMDAxIDMuMDAxIDAgMCAwLTQuMjQzLTQuMjQzbC0xMi4xMzEgMTIuMTMxLTQuMjgzLTQuMjgzYTMgMyAwIDEgMC00LjI0MyA0LjI0M2w2LjM2NCA2LjM2NGEzLjAwMSAzLjAwMSAwIDAgMCAzLjQ2LjU2NGMuMzM5LS4xNDYuNjU3LS4zNTcuOTM0LS42MzRsMTQuMTQyLTE0LjE0MlpcXFwiIGZpbGw9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19fZylcXFwiIGZpbGwtb3BhY2l0eT1cXFwiLjlcXFwiLz48cGF0aCBkPVxcXCJtMTQ2LjU0MSAxMjMuMTIxLS4xNzMuMTczLjE3My0uMTczWm0wIDQuMjQzLS4xNzMtLjE3NC4xNzMuMTc0Wm0tNC4yNDMtNC4yNDMtLjE3My0uMTczLjE3My4xNzNabS0xMi4xMzEgMTIuMTMxLS4xNzMuMTczLjE3My4xNzQuMTczLS4xNzQtLjE3My0uMTczWm0tNC4yODMtNC4yODMuMTczLS4xNzMtLjE3My4xNzNabS00LjI0MyA0LjI0My4xNzQtLjE3NC0uMTc0LjE3NFptNi4zNjQgNi4zNjQtLjE3My4xNzMuMTczLS4xNzNabTMuNDYuNTY0LS4wOTctLjIyNS0uMDEyLjAwNi4xMDkuMjE5Wm0uOTM0LS42MzQtLjE3NC0uMTc0LjE3NC4xNzRabTEzLjk2OS0xOC4yMTJhMi43NTYgMi43NTYgMCAwIDEgMCAzLjg5NmwuMzQ2LjM0N2EzLjI0NSAzLjI0NSAwIDAgMCAwLTQuNTg5bC0uMzQ2LjM0NlptLTMuODk3IDBhMi43NTYgMi43NTYgMCAwIDEgMy44OTcgMGwuMzQ2LS4zNDZhMy4yNDMgMy4yNDMgMCAwIDAtNC41ODkgMGwuMzQ2LjM0NlptLTEyLjEzMSAxMi4xMzEgMTIuMTMxLTEyLjEzMS0uMzQ2LS4zNDYtMTIuMTMxIDEyLjEzMS4zNDYuMzQ2Wm0tNC42MjktNC4yODMgNC4yODMgNC4yODMuMzQ2LS4zNDYtNC4yODMtNC4yODMtLjM0Ni4zNDZabS0zLjg5NiAwYTIuNzU1IDIuNzU1IDAgMCAxIDMuODk2IDBsLjM0Ni0uMzQ2YTMuMjQzIDMuMjQzIDAgMCAwLTQuNTg5IDBsLjM0Ny4zNDZabTAgMy44OTZhMi43NTUgMi43NTUgMCAwIDEgMC0zLjg5NmwtLjM0Ny0uMzQ2YTMuMjQ1IDMuMjQ1IDAgMCAwIDAgNC41ODlsLjM0Ny0uMzQ3Wm02LjM2NCA2LjM2NC02LjM2NC02LjM2NC0uMzQ3LjM0NyA2LjM2NCA2LjM2NC4zNDctLjM0N1ptMy4xNzcuNTE5YTIuNzU1IDIuNzU1IDAgMCAxLTMuMTc3LS41MTlsLS4zNDcuMzQ3YTMuMjQ0IDMuMjQ0IDAgMCAwIDMuNzQyLjYxbC0uMjE4LS40MzhabS44NjktLjU4OWEyLjczNSAyLjczNSAwIDAgMS0uODU3LjU4M2wuMTk0LjQ1YTMuMjM3IDMuMjM3IDAgMCAwIDEuMDEtLjY4NmwtLjM0Ny0uMzQ3Wm0xNC4xNDMtMTQuMTQyLTE0LjE0MyAxNC4xNDIuMzQ3LjM0NyAxNC4xNDItMTQuMTQyLS4zNDYtLjM0N1pcXFwiIGZpbGw9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19faClcXFwiIG1hc2s9XFxcInVybCgjaWMtdmVyaWZpY2F0aW9uX3N2Z19faSlcXFwiLz48bWFzayBpZD1cXFwiaWMtdmVyaWZpY2F0aW9uX3N2Z19fbFxcXCIgZmlsbD1cXFwiI2ZmZlxcXCI+PHBhdGggZmlsbC1ydWxlPVxcXCJldmVub2RkXFxcIiBjbGlwLXJ1bGU9XFxcImV2ZW5vZGRcXFwiIGQ9XFxcIk0xNDYuNTQxIDEyNy4zNjRhMy4wMDEgMy4wMDEgMCAwIDAtNC4yNDMtNC4yNDNsLTEyLjEzMSAxMi4xMzEtNC4yODMtNC4yODNhMyAzIDAgMSAwLTQuMjQzIDQuMjQzbDYuMzY0IDYuMzY0YTMuMDAxIDMuMDAxIDAgMCAwIDMuNDYuNTY0Yy4zMzktLjE0Ni42NTctLjM1Ny45MzQtLjYzNGwxNC4xNDItMTQuMTQyWlxcXCIvPjwvbWFzaz48cGF0aCBmaWxsLXJ1bGU9XFxcImV2ZW5vZGRcXFwiIGNsaXAtcnVsZT1cXFwiZXZlbm9kZFxcXCIgZD1cXFwiTTE0Ni41NDEgMTI3LjM2NGEzLjAwMSAzLjAwMSAwIDAgMC00LjI0My00LjI0M2wtMTIuMTMxIDEyLjEzMS00LjI4My00LjI4M2EzIDMgMCAxIDAtNC4yNDMgNC4yNDNsNi4zNjQgNi4zNjRhMy4wMDEgMy4wMDEgMCAwIDAgMy40Ni41NjRjLjMzOS0uMTQ2LjY1Ny0uMzU3LjkzNC0uNjM0bDE0LjE0Mi0xNC4xNDJaXFxcIiBmaWxsPVxcXCJ1cmwoI2ljLXZlcmlmaWNhdGlvbl9zdmdfX2opXFxcIiBmaWxsLW9wYWNpdHk9XFxcIi43NVxcXCIvPjxwYXRoIGQ9XFxcIm0xNDYuNTQxIDEyMy4xMjEtLjE3My4xNzMuMTczLS4xNzNabTAgNC4yNDMtLjE3My0uMTc0LjE3My4xNzRabS00LjI0My00LjI0My0uMTczLS4xNzMuMTczLjE3M1ptLTEyLjEzMSAxMi4xMzEtLjE3My4xNzMuMTczLjE3NC4xNzMtLjE3NC0uMTczLS4xNzNabS00LjI4My00LjI4My4xNzMtLjE3My0uMTczLjE3M1ptLTQuMjQzIDQuMjQzLjE3NC0uMTc0LS4xNzQuMTc0Wm02LjM2NCA2LjM2NC0uMTczLjE3My4xNzMtLjE3M1ptMy40Ni41NjQtLjA5Ny0uMjI1LS4wMTIuMDA2LjEwOS4yMTlabS45MzQtLjYzNC0uMTc0LS4xNzQuMTc0LjE3NFptMTMuOTY5LTE4LjIxMmEyLjc1NiAyLjc1NiAwIDAgMSAwIDMuODk2bC4zNDYuMzQ3YTMuMjQ1IDMuMjQ1IDAgMCAwIDAtNC41ODlsLS4zNDYuMzQ2Wm0tMy44OTcgMGEyLjc1NiAyLjc1NiAwIDAgMSAzLjg5NyAwbC4zNDYtLjM0NmEzLjI0MyAzLjI0MyAwIDAgMC00LjU4OSAwbC4zNDYuMzQ2Wm0tMTIuMTMxIDEyLjEzMSAxMi4xMzEtMTIuMTMxLS4zNDYtLjM0Ni0xMi4xMzEgMTIuMTMxLjM0Ni4zNDZabS00LjYyOS00LjI4MyA0LjI4MyA0LjI4My4zNDYtLjM0Ni00LjI4My00LjI4My0uMzQ2LjM0NlptLTMuODk2IDBhMi43NTUgMi43NTUgMCAwIDEgMy44OTYgMGwuMzQ2LS4zNDZhMy4yNDMgMy4yNDMgMCAwIDAtNC41ODkgMGwuMzQ3LjM0NlptMCAzLjg5NmEyLjc1NSAyLjc1NSAwIDAgMSAwLTMuODk2bC0uMzQ3LS4zNDZhMy4yNDUgMy4yNDUgMCAwIDAgMCA0LjU4OWwuMzQ3LS4zNDdabTYuMzY0IDYuMzY0LTYuMzY0LTYuMzY0LS4zNDcuMzQ3IDYuMzY0IDYuMzY0LjM0Ny0uMzQ3Wm0zLjE3Ny41MTlhMi43NTUgMi43NTUgMCAwIDEtMy4xNzctLjUxOWwtLjM0Ny4zNDdhMy4yNDQgMy4yNDQgMCAwIDAgMy43NDIuNjFsLS4yMTgtLjQzOFptLjg2OS0uNTg5YTIuNzM1IDIuNzM1IDAgMCAxLS44NTcuNTgzbC4xOTQuNDVhMy4yMzcgMy4yMzcgMCAwIDAgMS4wMS0uNjg2bC0uMzQ3LS4zNDdabTE0LjE0My0xNC4xNDItMTQuMTQzIDE0LjE0Mi4zNDcuMzQ3IDE0LjE0Mi0xNC4xNDItLjM0Ni0uMzQ3WlxcXCIgZmlsbD1cXFwidXJsKCNpYy12ZXJpZmljYXRpb25fc3ZnX19rKVxcXCIgZmlsbC1vcGFjaXR5PVxcXCIuMVxcXCIgbWFzaz1cXFwidXJsKCNpYy12ZXJpZmljYXRpb25fc3ZnX19sKVxcXCIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaWMtdmVyaWZpY2F0aW9uX3N2Z19fYVxcXCIgeDE9XFxcIjc2LjY4NFxcXCIgeTE9XFxcIjg2LjU2OFxcXCIgeDI9XFxcIjE0My40MTdcXFwiIHkyPVxcXCIxMTEuMjgzXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiIzdGQzBGQlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzQwODhGNFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpYy12ZXJpZmljYXRpb25fc3ZnX19iXFxcIiB4MT1cXFwiOTEuODg5XFxcIiB5MT1cXFwiNjguMzc4XFxcIiB4Mj1cXFwiMzQuMDA4XFxcIiB5Mj1cXFwiOTMuOTM3XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjc2NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2NcXFwiIHgxPVxcXCI5OS42NjVcXFwiIHkxPVxcXCI2OC4zNzhcXFwiIHgyPVxcXCIxNTcuNTQ3XFxcIiB5Mj1cXFwiOTMuOTM3XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjc2NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2RcXFwiIHgxPVxcXCI0NS45MTdcXFwiIHkxPVxcXCI5Ni4xODVcXFwiIHgyPVxcXCI2Ni41NjlcXFwiIHkyPVxcXCIxNTkuODIyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjc2NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2VcXFwiIHgxPVxcXCI5NS40XFxcIiB5MT1cXFwiOTNcXFwiIHgyPVxcXCI5NS40XFxcIiB5Mj1cXFwiMTM3LjU5MlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiNBN0QyRkRcXFwiIHN0b3Atb3BhY2l0eT1cXFwiLjI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTdDOEZDXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2ZcXFwiIHgxPVxcXCI0NS45MTdcXFwiIHkxPVxcXCI5Ni4xODVcXFwiIHgyPVxcXCI2Ni41NjlcXFwiIHkyPVxcXCIxNTkuODIyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiLjc2NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2dcXFwiIHgxPVxcXCIxNTAuMzQzXFxcIiB5MT1cXFwiMTI0LjEyOFxcXCIgeDI9XFxcIjExNy4zMjJcXFwiIHkyPVxcXCIxMzcuMzk1XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agc3RvcC1jb2xvcj1cXFwiIzE3OTk3QlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzE3OTk3QlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImljLXZlcmlmaWNhdGlvbl9zdmdfX2hcXFwiIHgxPVxcXCIxNTAuODcxXFxcIiB5MT1cXFwiMTIxLjIyNVxcXCIgeDI9XFxcIjEzNC4wMzVcXFwiIHkyPVxcXCIxMjUuODlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjMTc5OTdCXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTc5OTdCXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaWMtdmVyaWZpY2F0aW9uX3N2Z19falxcXCIgeDE9XFxcIjE1MC4zNDNcXFwiIHkxPVxcXCIxMjQuMTI4XFxcIiB4Mj1cXFwiMTE3LjMyMlxcXCIgeTI9XFxcIjEzNy4zOTVcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBzdG9wLWNvbG9yPVxcXCIjMTc5OTdCXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzk5N0JcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaWMtdmVyaWZpY2F0aW9uX3N2Z19fa1xcXCIgeDE9XFxcIjE1MC44NzFcXFwiIHkxPVxcXCIxMjEuMjI1XFxcIiB4Mj1cXFwiMTM0LjAzNVxcXCIgeTI9XFxcIjEyNS44OVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIHN0b3AtY29sb3I9XFxcIiMxNzk5N0JcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzE3OTk3QlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAxOFxcXCI+PHBhdGggZD1cXFwiTTQuMzExIDcuNDMgMy43NCA4aDEwLjkyNmExIDEgMCAxIDEgMCAySDMuNzRsLjU3MS41NyA0LjQgNC4zODZhMSAxIDAgMCAxIDAgMS40MmwtLjAwMS4wMDNhMSAxIDAgMCAxLTEuNDIgMGwtLjAwMS0uMDAxTC42MjUgOS43MTRhMSAxIDAgMCAxLS4yMDgtLjMyOEwuNDE1IDkuMzhhMSAxIDAgMCAxIDAtLjc2bC4wMDItLjAwNmExIDEgMCAwIDEgLjIwOC0uMzI4bDYuNjY0LTYuNjY0LS4yMzYtLjIzNS4yMzYuMjM1QTEuMDA1IDEuMDA1IDAgMSAxIDguNzEgMy4wNDRsLTQuNCA0LjM4N1pcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZT1cXFwiIzE1NTM2NlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI2NiA2M1xcXCI+PHBhdGggZD1cXFwiTS44MyA1OC45MVYyOC43aDguNzI1djMwLjIxSC44M1ptMzUuMDE3LTIuOTNjLTEuOTgzIDIuNDE2LTQuODM1IDMuNzc3LTguNjE1IDMuNzc3LTYuMDc2IDAtMTAuOTcxLTMuNzc4LTEwLjk3MS05LjYwMyAwLTUuNzYzIDQuODk4LTguNjEgMTEuNzc3LTguOTg1IDUuMjctLjMxIDYuOTQzLS44NjggNi45NDMtMi42NjMgMC0xLjczNi0xLjYxMS0yLjkxMy00LjQ2My0yLjkxMy0zLjQ3IDAtNC45NiAxLjczNi01LjE0NSAzLjU5NGgtOC40OTRjLjQzNC02LjYyOCA1LjM5Mi0xMS4yMTQgMTMuNzAxLTExLjIxNCA4LjEyMiAwIDEzLjMzIDQuMzk4IDEzLjMzIDEyLjYzN3YxOC40NjNoLTcuMjU0bC0uODA5LTMuMDk0Wm0tMTAuNzg2LTYuMTk1YzAgMS43MzYgMS41NSAyLjc4OCA0LjAzIDIuNzg4IDMuMzQ4IDAgNi4wMTItMS44NTggNi4wMTItNS42MzhWNDUuODJzLTEuNjExLjc0My00Ljk2LjkzYy0zLjY1OC4xODUtNS4wODIgMS4zNjItNS4wODIgMy4wMzVabTM4LjMwNyA5LjQxNmMtNi42MzIgMC0xMC40NzctMy44NC0xMC40NzctMTAuNTMzVjM2LjgzNmgtNS4wODN2LTguMTE3aDUuMDgzdi00LjQ2MWw4LjgwMi03LjQzNFYyOC43Mmg3LjYyNnY4LjExN2gtNy42MjZWNDcuNDNjMCAyLjkxMiAxLjkyMiAzLjU5MyAzLjcyIDMuNTkzYTkuNTM5IDkuNTM5IDAgMCAwIDMuNzIxLS44MDV2Ny45OTJjMCAuMDAyLTIuMzU1Ljk5Mi01Ljc2Ni45OTJaTS4wOCAxOS42MzRjMC0yLjg1IDIuMjMtNS4xNDIgNS4wODItNS4xNDJhNS4xMyA1LjEzIDAgMCAxIDUuMTQ1IDUuMTQyYzAgMi43ODgtMi4yOTMgNS4wOC01LjE0NSA1LjA4YTUuMDYzIDUuMDYzIDAgMCAxLTUuMDgyLTUuMDhaTTc1LjgwOSA1OC45MVYyOC43aDguNzI2djMwLjIxaC04LjcyNlptMjAuMTU0LTM5LjIwMmMwLTEuNC0uMTktMi43Ni0uNTM3LTQuMDUzYTE1LjUxIDE1LjUxIDAgMCAwLTEuNTY5LTMuNzcyIDE1LjY2NSAxNS42NjUgMCAwIDAtMi40ODktMy4yNDEgMTUuNzMyIDE1LjczMiAwIDAgMC03LjAxOC00LjA1IDE1LjY1OCAxNS42NTggMCAwIDAtNC4wNTItLjUzM2gtLjAwNmExNS43NSAxNS43NSAwIDAgMC00LjA0OS41M2MtMS4zNC4zNTctMi42MDUuODg4LTMuNzc3IDEuNTY1QTE1LjY3IDE1LjY3IDAgMCAwIDY5LjIyIDguNjRhMTUuNzcgMTUuNzcgMCAwIDAtMi40OTIgMy4yNDIgMTUuNjQ4IDE1LjY0OCAwIDAgMC0xLjU3MiAzLjc3NGwyLjI0Mi42MDJhMTMuNDI3IDEzLjQyNyAwIDAgMSAzLjQ2Mi01Ljk3OCAxMy40MjYgMTMuNDI2IDAgMCAxIDUuOTg0LTMuNDUgMTMuNDI2IDEzLjQyNiAwIDAgMSAzLjQ0OC0uNDVoLjAwNmMxLjE5NSAwIDIuMzUuMTU4IDMuNDU0LjQ1M2ExMy40MTIgMTMuNDEyIDAgMCAxIDUuOTggMy40NDljLjgxOS44MiAxLjUzMSAxLjc1IDIuMTE5IDIuNzZhMTMuMyAxMy4zIDAgMCAxIDEuNzkzIDYuNjY0di4wMTJhMTMuMzggMTMuMzggMCAwIDEtLjQ1MSAzLjQ0MyAxMy4yMTcgMTMuMjE3IDAgMCAxLTEuMzM0IDMuMjE5bDIuMDEgMS4xNmExNS41MzkgMTUuNTM5IDAgMCAwIDEuNTY2LTMuNzc4IDE1LjcgMTUuNyAwIDAgMCAuNTMtNC4wNDFsLS4wMDItLjAxMlpcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAwLjAyMyAxOS43MDhhMTkuNjU1IDE5LjY1NSAwIDAgMC0yLjY0NC05Ljg1NSAxOS44MSAxOS44MSAwIDAgMC03LjIyLTcuMjEzQTE5LjYxMiAxOS42MTIgMCAwIDAgODUuNDAzLjY3IDE5LjgxIDE5LjgxIDAgMCAwIDgwLjI5OCAwaC0uMDA2Yy0xLjc2NSAwLTMuNDczLjIzMy01LjEwMi42NjZhMTkuNTEzIDE5LjUxMyAwIDAgMC00Ljc1OSAxLjk2OSAxOS44MjQgMTkuODI0IDAgMCAwLTQuMDg2IDMuMTM0bDEuMjMxIDEuMjNhMTguMTA2IDE4LjEwNiAwIDAgMSAzLjcyNi0yLjg1NSAxNy44MDMgMTcuODAzIDAgMCAxIDQuMzQtMS43OTMgMTguMDg0IDE4LjA4NCAwIDAgMSA0LjY0OC0uNjA3aC4wMDVhMTcuOTUgMTcuOTUgMCAwIDEgMTIuNzEzIDUuMjYxIDE3LjkzMyAxNy45MzMgMCAwIDEgNS4yNzMgMTIuNzAzdi4wMTFhMTguMDMgMTguMDMgMCAwIDEtLjYwNyA0LjY0MyAxNy42NzUgMTcuNjc1IDAgMCAxLTEuNzk3IDQuMzM3IDE4LjAyMyAxOC4wMjMgMCAwIDEtMi44NTcgMy43MjNsMS4yMzEgMS4yMzFhMTkuNzQzIDE5Ljc0MyAwIDAgMCAzLjEzNi00LjA4NCAxOS42IDE5LjYgMCAwIDAgMS45Ny00Ljc1NmMuNDM0LTEuNjI1LjY2Ni0zLjMzMi42NjYtNS4wOTR2LS4wMVpcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNOTAuOTQ1IDE2Ljg1NWExMC45NDggMTAuOTQ4IDAgMCAwLTEuMTA0LTIuNjU1IDExLjE1NSAxMS4xNTUgMCAwIDAtMS43NS0yLjI4IDExLjA0OCAxMS4wNDggMCAwIDAtMi4yODItMS43NDdBMTAuOTY0IDEwLjk2NCAwIDAgMCA4MC4zIDguNjk1aC0uMDA2Yy0uOTg3IDAtMS45NC4xMy0yLjg0OS4zNzJhMTAuOTEgMTAuOTEgMCAwIDAtMi42NiAxLjEgMTAuOTk0IDEwLjk5NCAwIDAgMC00LjAzNyA0LjAyNyAxMSAxMSAwIDAgMC0xLjQ4NCA1LjUxdi4wMTJhMTAuOTI0IDEwLjkyNCAwIDAgMCAxLjQ3NiA1LjUwNWwzLjAxMy0xLjczOGE3LjUzNSA3LjUzNSAwIDAgMS0xLjAxLTMuNzd2LS4wMWE3LjU1MyA3LjU1MyAwIDAgMSA3LjU0OC03LjUzM2guMDA2YTcuNTI0IDcuNTI0IDAgMCAxIDMuNzY5IDEuMDEyIDcuNTUgNy41NSAwIDAgMSAzLjUxMyA0LjU3MmMuMTY3LjYyLjI1OCAxLjI3Ni4yNTggMS45NTFoMy40NzljLjAwMy0uOTg0LS4xMjgtMS45NC0uMzcyLTIuODVaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwiTTg3LjU4NSAxNy43NjVhNy41NDIgNy41NDIgMCAwIDAtMS45NTUtMy4zOGwtMS42NCAxLjYzOWE1LjI2NCA1LjI2NCAwIDAgMSAxLjM1NCAyLjM0MyA1LjE4NCA1LjE4NCAwIDAgMSAwIDIuNzA1IDUuMjM5IDUuMjM5IDAgMCAxLTMuNjk4IDMuNjk1IDUuMTk1IDUuMTk1IDAgMCAxLTIuNzA3IDAgNS4yOTYgNS4yOTYgMCAwIDEtMS4yNi0uNTIxbC0xLjE2IDIuMDA4YTcuNTI4IDcuNTI4IDAgMCAwIDMuNzc0IDEuMDFjLjY3NyAwIDEuMzMtLjA5MSAxLjk1NC0uMjU2YTcuNTUzIDcuNTUzIDAgMCAwIDQuNTg0LTMuNTE3IDcuNTQ0IDcuNTQ0IDAgMCAwIDEuMDEzLTMuNzcxIDcuNSA3LjUgMCAwIDAtLjI1OS0xLjk1NVpcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiLz48cGF0aCBkPVxcXCJNOTEuODUzIDEzLjA0NmExMy40MzUgMTMuNDM1IDAgMCAwLTIuMTItMi43NjUgMTMuMzQzIDEzLjM0MyAwIDAgMC0yLjc2Ni0yLjExOCAxMy4yODcgMTMuMjg3IDAgMCAwLTYuNjc1LTEuNzljLTEuMTk3IDAtMi4zNTIuMTU5LTMuNDU2LjQ1NC0xLjE0MS4zMDMtMi4yMi43NTctMy4yMTggMS4zMzZhMTMuNDM2IDEzLjQzNiAwIDAgMC0yLjc2NyAyLjExOCAxMy4zMzQgMTMuMzM0IDAgMCAwLTIuMTIgMi43NjUgMTMuMjcyIDEzLjI3MiAwIDAgMC0xLjc5IDYuNjdoMi4zMmMwLS45ODYuMTMxLTEuOTQyLjM3NS0yLjg1MmExMS4wODggMTEuMDg4IDAgMCAxIDIuODU1LTQuOTQgMTEuMDAyIDExLjAwMiAwIDAgMSAyLjI4NC0xLjc1IDExLjAzIDExLjAzIDAgMCAxIDIuNjYtMS4xMDQgMTEuMDIgMTEuMDIgMCAwIDEgMi44NTQtLjM3NGMuOTg4IDAgMS45NDQuMTMgMi44NTUuMzc0YTExLjA5OSAxMS4wOTkgMCAwIDEgNC45NDMgMi44NTMgMTAuOTkgMTAuOTkgMCAwIDEgMS43NTEgMi4yODNjLjQ3Ny44MjYuODUyIDEuNzE2IDEuMTA0IDIuNjU4bDIuMjQyLS42MDJhMTMuMTk0IDEzLjE5NCAwIDAgMC0xLjMzLTMuMjE2WlxcXCIgZmlsbD1cXFwiIzE1NTM2NlxcXCIvPjxwYXRoIGQ9XFxcIk05Ny42NzQgMTUuMDYzYTE3Ljc5MSAxNy43OTEgMCAwIDAtMS44LTQuMzM2IDE4LjA0MyAxOC4wNDMgMCAwIDAtNi41ODYtNi41ODMgMTcuOTMgMTcuOTMgMCAwIDAtOC45OTYtMi40MDhjLTEuNjEyIDAtMy4xNzIuMjEzLTQuNjU3LjYxYTE3LjgxNyAxNy44MTcgMCAwIDAtNC4zMzkgMS43OTggMTguMDMyIDE4LjAzMiAwIDAgMC02LjU4NiA2LjU4M2wyLjAxMiAxLjE2M2ExNS42NzYgMTUuNjc2IDAgMCAxIDIuNDg5LTMuMjQ1Yy45NjUtLjk2NCAyLjA1Ny0xLjggMy4yNDYtMi40ODdhMTUuNzA2IDE1LjcwNiAwIDAgMSAzLjc3Ny0xLjU2OSAxNS42OCAxNS42OCAwIDAgMSA4LjExIDBjMS4zNC4zNTggMi42MDYuODkxIDMuNzc4IDEuNTY5YTE1LjY4NSAxNS42ODUgMCAwIDEgMy4yNDYgMi40ODcgMTUuNjc2IDE1LjY3NiAwIDAgMSAyLjQ4OSAzLjI0NSAxNS42ODQgMTUuNjg0IDAgMCAxIDEuNTY5IDMuNzc0IDE1LjY1NCAxNS42NTQgMCAwIDEgMCA4LjEwNmwyLjI0NS42MDFjLjM5Ny0xLjQ4My42MS0zLjA0My42MS00LjY1NGExNy44NzUgMTcuODc1IDAgMCAwLS42MDgtNC42NTRaXFxcIiBmaWxsPVxcXCIjMTU1MzY2XFxcIi8+PHBhdGggZD1cXFwiTTgwLjI5MyAyNC45NDRjMi44ODggMCA1LjIzLTIuMzQgNS4yMy01LjIyN2E1LjIyOSA1LjIyOSAwIDAgMC01LjIzLTUuMjI3IDUuMjI4IDUuMjI4IDAgMCAwLTUuMjMgNS4yMjcgNS4yMjggNS4yMjggMCAwIDAgNS4yMyA1LjIyN1ptMjAuNjE1IDE1LjQzNlYyOS41NDNoMi4zMDRWNDAuMzhoLTIuMzA0Wm02LjYxOC0zLjc4N3YzLjc4N2gtMi4xOTZ2LTcuNTc2aDIuMTY1di41MjVhMi41MzkgMi41MzkgMCAwIDEgMS43OTMtLjcxMmMxLjg1NiAwIDMuMDc5IDEuMjA2IDMuMDc5IDMuMzU1djQuNDA1aC0yLjE5NnYtNC4yMzVjMC0uODAyLS4zNzItMS40ODMtMS4yNTQtMS40ODMtMS4wMzMuMDAzLTEuMzkxLjc3NC0xLjM5MSAxLjkzNFptOS42NjYgMy44MTdjLTEuNjU1IDAtMi42MTQtLjk1OC0yLjYxNC0yLjYyOHYtMi45NTNoLTEuMjY4di0yLjAyNWgxLjI2OHYtMS4xMTFsMi4xOTYtMS44NTV2Mi45N2gxLjkwMnYyLjAyNGgtMS45MDJ2Mi42NDNjMCAuNzI3LjQ4Ljg5Ny45MjguODk3LjUxMSAwIC45MjgtLjIwMi45MjgtLjIwMnYxLjk5NHMtLjU4Ny4yNDctMS40MzguMjQ3Wm0xMC4xOTMtMy4yM2gtNS4zNTJjLjEyNS43NzUuNzU3IDEuMzYyIDEuNyAxLjM2Mi42MzUgMCAxLjAwNC0uMjY0IDEuMjM3LS42NWgyLjM2N2MtLjUxMSAxLjY0LTEuNjg2IDIuNjYtMy41NzMgMi42Ni0yLjE5NyAwLTMuOTU5LTEuNTMtMy45NTktMy45MSAwLTIuMjg5IDEuNjA5LTQuMDE5IDMuODM3LTQuMDE5IDIuNDg5IDAgMy43NTcgMS45NjMgMy43NTcgMy45ODggMCAuMTk4LS4wMTQuNTctLjAxNC41N1ptLTMuNzE1LTIuNjI4Yy0uODM0IDAtMS4zOTMuNTEtMS41MzIgMS4xNmgyLjk0Yy0uMDQ2LS42NjQtLjYxOS0xLjE2LTEuNDA4LTEuMTZabTEwLjIzOS0xLjMxNXYyLjE2NHMtLjU3My0uNTg3LTEuNDM5LS41ODdjLS42NjQgMC0xLjQwNy4zNTQtMS40MDcgMS40Njl2NC4wOTVoLTIuMTk3di03LjU3NWgyLjE2NXYuNjM1Yy0uMDE0IDAgLjQzNS0uNzQzIDEuNTE2LS43NDMuOTI4IDAgMS4zNjIuNTQyIDEuMzYyLjU0MlptMy40MDMgMy4zNTZ2My43ODdoLTIuMTk3di03LjU3NmgyLjE2NXYuNTI1YTIuNTQzIDIuNTQzIDAgMCAxIDEuNzk0LS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNiAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTd2LTQuMjM1YzAtLjgwMi0uMzcxLTEuNDgzLTEuMjU0LTEuNDgzLTEuMDM2LjAwMy0xLjM5Ljc3NC0xLjM5IDEuOTM0Wm0xMS4xNjYgMy4wMTVjLS40OTYuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTUgMC0yLjczOC0uOTQ1LTIuNzM4LTIuMzk3IDAtMS40MzggMS4yMi0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMy0uNzI2LS44NjUgMC0xLjIzNy40MzQtMS4yODUuODk2aC0yLjEyYy4xMDgtMS42NTMgMS4zNDUtMi43OTkgMy40Mi0yLjc5OSAyLjAyNiAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA2aC0xLjgxMWwtLjE5OS0uNzc1Wm0tMi42OTMtMS41NDVjMCAuNDM0LjM4Ni42OTQgMS4wMDUuNjk0LjgzNCAwIDEuNTAxLS40NjIgMS41MDEtMS40MDZ2LS4yNzhzLS40MDMuMTg0LTEuMjM3LjIzMmMtLjkxNC4wNDYtMS4yNjkuMzQtMS4yNjkuNzU4Wm05LjU1OCAyLjM0N2MtMS42NTUgMC0yLjYxNC0uOTU4LTIuNjE0LTIuNjI4di0yLjk1M2gtMS4yNjl2LTIuMDI1aDEuMjY5di0xLjExMWwyLjE5Ni0xLjg1NXYyLjk3aDEuOTAydjIuMDI0aC0xLjkwMnYyLjY0M2MwIC43MjcuNDguODk3LjkyOC44OTcuNTExIDAgLjkyOC0uMjAyLjkyOC0uMjAydjEuOTk0cy0uNTkuMjQ3LTEuNDM4LjI0N1ptMi45NTEtOS43NTNjMC0uNzEyLjU1Ni0xLjI4MiAxLjI2OC0xLjI4Mi43MTMgMCAxLjI4Ni41NzMgMS4yODYgMS4yODIgMCAuNjk1LS41NzMgMS4yNjgtMS4yODYgMS4yNjhhMS4yNjQgMS4yNjQgMCAwIDEtMS4yNjgtMS4yNjhabS4xNyA5LjcyMnYtNy41NzVoMi4xOTd2Ny41NzVoLTIuMTk3Wm0zLjc4OS0zLjc4NmMwLTIuMjcyIDEuNzQ4LTMuOTc0IDQuMDM4LTMuOTc0czQuMDM1IDEuNzAyIDQuMDM1IDMuOTc0YzAgMi4yNzEtMS43NDggMy45NTYtNC4wMzUgMy45NTYtMi4yOSAwLTQuMDM4LTEuNjg1LTQuMDM4LTMuOTU2Wm0yLjI0NSAwYzAgMS4xMTEuNzU3IDEuOTE3IDEuNzkzIDEuOTE3czEuNzk0LS44MDMgMS43OTQtMS45MTdjMC0xLjExMi0uNzU4LTEuOTE4LTEuNzk0LTEuOTE4cy0xLjc5My44MDMtMS43OTMgMS45MThabTkuNTQgMHYzLjc4N2gtMi4xOTZ2LTcuNTc2aDIuMTY1di41MjVhMi41NCAyLjU0IDAgMCAxIDEuNzkzLS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNiAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTZ2LTQuMjM1YzAtLjgwMi0uMzcyLTEuNDgzLTEuMjU0LTEuNDgzLTEuMDM2LjAwMy0xLjM5MS43NzQtMS4zOTEgMS45MzRabTExLjE2NyAzLjAxNWMtLjQ5Ny42MDQtMS4yMDYuOTQ1LTIuMTUxLjk0NS0xLjUxNiAwLTIuNzM5LS45NDUtMi43MzktMi4zOTcgMC0xLjQzOCAxLjIyMS0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMi0uNzI2LS44NjYgMC0xLjIzNy40MzQtMS4yODYuODk2aC0yLjExOWMuMTA3LTEuNjUzIDEuMzQ1LTIuNzk5IDMuNDE5LTIuNzk5IDIuMDI2IDAgMy4zMjYgMS4wOTggMy4zMjYgMy4xNTR2NC42MDZoLTEuODFsLS4xOTktLjc3NVptLTIuNjkzLTEuNTQ1YzAgLjQzNC4zODYuNjk0IDEuMDA0LjY5NC44MzUgMCAxLjUwMi0uNDYyIDEuNTAyLTEuNDA2di0uMjc4cy0uNDAzLjE4NC0xLjIzOC4yMzJjLS45MTEuMDQ2LTEuMjY4LjM0LTEuMjY4Ljc1OFptNi41MjQgMi4zMTdWMjkuNTQzaDIuMTk2VjQwLjM4aC0yLjE5NlptMTQuMDg5LTEwLjgzNyA0LjI0IDEwLjgzN2gtMi4zODFsLS44NjYtMi4xMzNoLTQuMTkxbC0uODUxIDIuMTMzaC0yLjM4MWw0LjIzOS0xMC44MzdoMi4xOTFabS0xLjA5OCAzLjEyMy0xLjM0NSAzLjUzOWgyLjY5bC0xLjM0NS0zLjU0Wm02LjM4NS0yLjAwOWMwLS43MTIuNTU2LTEuMjgyIDEuMjY5LTEuMjgyLjcxMiAwIDEuMjg1LjU3MyAxLjI4NSAxLjI4MiAwIC42OTUtLjU3MyAxLjI2OC0xLjI4NSAxLjI2OGExLjI2NCAxLjI2NCAwIDAgMS0xLjI2OS0xLjI2OFptLjE3IDkuNzIydi03LjU3NWgyLjE5N3Y3LjU3NWgtMi4xOTdabTMuNzg5LTMuNzg2YzAtMi4zOTYgMS43MTYtMy45NzMgMy44MTktMy45NzMuODY2IDAgMS41OTIuMzIzIDEuOTgxLjY2NHYtMy43NDFoMi4xOTZWNDAuMzhoLTIuMTY1di0uNTQyYy0uNC4zODYtMS4xNi43MTItMi4wMDkuNzEyLTIuMTA2IDAtMy44MjItMS41MTUtMy44MjItMy45NTZabTUuODMxIDBjMC0xLjE3NC0uNzcyLTEuOTgtMS43OTMtMS45OC0xLjAyMiAwLTEuNzk0LjgwMy0xLjc5NCAxLjk4IDAgMS4xNzUuNzcyIDEuOTggMS43OTQgMS45OCAxLjAyMSAwIDEuNzkzLS44MDUgMS43OTMtMS45OFpNMTAwLjE5NiA0OC4wOWg4LjUyMnYyLjExOGgtMy4xMXY4LjcxOWgtMi4zMDR2LTguNzE5aC0zLjExMVY0OC4wOWguMDAzWm0xMy44ODggMy42OTJ2Mi4xNjRzLS41NzMtLjU4Ny0xLjQzOS0uNTg3Yy0uNjY0IDAtMS40MDcuMzU0LTEuNDA3IDEuNDY5djQuMDk1aC0yLjE5NnYtNy41NzVoMi4xNjV2LjYzNWMtLjAxNCAwIC40MzQtLjc0MyAxLjUxNS0uNzQzLjkzMS4wMDMgMS4zNjIuNTQyIDEuMzYyLjU0MlptNS44OTEgNi4zNzFjLS40OTYuNjA0LTEuMjA2Ljk0NS0yLjE1MS45NDUtMS41MTUgMC0yLjczOC0uOTQ1LTIuNzM4LTIuMzk3IDAtMS40MzggMS4yMi0yLjE1IDIuOTM3LTIuMjQgMS4zMTQtLjA3NyAxLjczNC0uMjE2IDEuNzM0LS42NjQgMC0uNDM0LS40MDMtLjcyNi0xLjExMi0uNzI2LS44NjYgMC0xLjIzOC40MzQtMS4yODYuODk2aC0yLjEyYy4xMDgtMS42NTMgMS4zNDUtMi43OTkgMy40Mi0yLjc5OSAyLjAyNiAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA1aC0xLjgxMWwtLjE5OS0uNzc0Wm0tMi42OS0xLjU0NWMwIC40MzQuMzg2LjY5NSAxLjAwNS42OTUuODM0IDAgMS41MDEtLjQ2MyAxLjUwMS0xLjQwN3YtLjI3OHMtLjQwMy4xODQtMS4yMzcuMjMyYy0uOTE0LjA0Ni0xLjI2OS4zNC0xLjI2OS43NThabTguNzIxLTEuNDd2My43ODdoLTIuMTk3di03LjU3NmgyLjE2NXYuNTI1YTIuNTQgMi41NCAwIDAgMSAxLjc5NC0uNzEyYzEuODU2IDAgMy4wNzkgMS4yMDUgMy4wNzkgMy4zNTV2NC40MDVoLTIuMTk3di00LjIzNWMwLS44MDItLjM3MS0xLjQ4My0xLjI1NC0xLjQ4My0xLjAzMy4wMDMtMS4zOS43NzQtMS4zOSAxLjkzNFptMTAuNzk1IDEuNjA3YzAtLjIzMi0uMTM5LS40MTYtLjc0NC0uNTQxbC0xLjE0My0uMjMzYy0xLjcxNy0uMzQtMi40NDQtMS4xNi0yLjQ0NC0yLjI4OCAwLTEuMzMgMS4wMDUtMi41MTkgMy4wOTQtMi41MTkgMi4xMDIgMCAzLjA0NyAxLjE3NCAzLjIwMSAyLjQ5aC0yLjA4OWMtLjEyNS0uNDE3LS40OC0uNjY0LTEuMTI5LS42NjQtLjYxOSAwLS45Ni4yMTYtLjk2LjUyNSAwIC4yMzMuMTg1LjM3Mi43NTguNDhsMS4xNDQuMjMyYzEuNjIzLjMyMyAyLjQyOSAxLjA4MyAyLjQyOSAyLjM4IDAgMS40NjktMS4wNjcgMi40OS0zLjE4NyAyLjQ5LTIuMTY1IDAtMy4zMjYtMS4wMjEtMy41NDItMi41OThoMi4yMTRjLjEyNS41MjQuNTExLjgwMiAxLjMyOC44MDIuNzQ2IDAgMS4wNy0uMjE1IDEuMDctLjU1NlptMTEuNTUyLTEuNjA4YzAgMi4zOTctMS43MTcgMy45NTctMy44MTkgMy45NTctLjg2NiAwLTEuNTkyLS4zMS0xLjk4MS0uNjV2My40NzdoLTIuMTk3VjUxLjM0OGgyLjE2NnYuNTQyYy40MDMtLjM4NiAxLjE2LS43MjYgMi4wMTItLjcyNiAyLjEwMiAwIDMuODE5IDEuNTE3IDMuODE5IDMuOTczWm0tNS44MzEgMGMwIDEuMTc1Ljc3NCAxLjk4IDEuNzkzIDEuOTggMS4wMjIgMCAxLjc5NC0uODAzIDEuNzk0LTEuOTggMC0xLjE3NC0uNzcyLTEuOTgtMS43OTQtMS45OC0xLjAxOS4wMDQtMS43OTMuODA2LTEuNzkzIDEuOThabTExLjg3OSAzLjAxNmMtLjQ5Ny42MDQtMS4yMDYuOTQ1LTIuMTUxLjk0NS0xLjUxNiAwLTIuNzM5LS45NDUtMi43MzktMi4zOTcgMC0xLjQzOCAxLjIyLTIuMTUgMi45MzctMi4yNCAxLjMxNC0uMDc3IDEuNzM0LS4yMTYgMS43MzQtLjY2NCAwLS40MzQtLjQwMy0uNzI2LTEuMTEyLS43MjYtLjg2NiAwLTEuMjM3LjQzNC0xLjI4Ni44OTZoLTIuMTJjLjEwOC0xLjY1MyAxLjM0Ni0yLjc5OSAzLjQyLTIuNzk5IDIuMDI2IDAgMy4zMjYgMS4wOTggMy4zMjYgMy4xNTR2NC42MDVoLTEuODExbC0uMTk4LS43NzRabS0yLjY5My0xLjU0NWMwIC40MzQuMzg2LjY5NSAxLjAwNC42OTUuODM1IDAgMS41MDEtLjQ2MyAxLjUwMS0xLjQwN3YtLjI3OHMtLjQwMy4xODQtMS4yMzcuMjMyYy0uOTExLjA0Ni0xLjI2OC4zNC0xLjI2OC43NThabTExLjU2Ni00LjgyNnYyLjE2NHMtLjU3My0uNTg3LTEuNDM5LS41ODdjLS42NjQgMC0xLjQwNy4zNTQtMS40MDcgMS40Njl2NC4wOTVoLTIuMTk3di03LjU3NWgyLjE2NnYuNjM1Yy0uMDE1IDAgLjQzNC0uNzQzIDEuNTE1LS43NDMuOTI4LjAwMyAxLjM2Mi41NDIgMS4zNjIuNTQyWm04LjQyOCAzLjk0NGgtNS4zNTJjLjEyNS43NzQuNzU4IDEuMzYgMS43MDMgMS4zNi42MzYgMCAxLjAwNS0uMjYzIDEuMjM3LS42NDloMi4zNjdjLS41MTEgMS42NC0xLjY4NiAyLjY2LTMuNTczIDIuNjYtMi4xOTYgMC0zLjk1OS0xLjUzLTMuOTU5LTMuOTEgMC0yLjI4OSAxLjYxLTQuMDE5IDMuODM3LTQuMDE5IDIuNDg5IDAgMy43NTcgMS45NjMgMy43NTcgMy45ODggMCAuMi0uMDE3LjU3LS4wMTcuNTdabS0zLjcxMS0yLjYyN2MtLjgzNSAwLTEuMzk0LjUxLTEuNTMzIDEuMTZoMi45NGMtLjA0NS0uNjY2LS42MTktMS4xNi0xLjQwNy0xLjE2Wm03LjM5MiAyLjAzOXYzLjc4N2gtMi4xOTZ2LTcuNTc2aDIuMTY1di41MjVhMi41MzggMi41MzggMCAwIDEgMS43OTMtLjcxMmMxLjg1NiAwIDMuMDc5IDEuMjA1IDMuMDc5IDMuMzU1djQuNDA1aC0yLjE5NnYtNC4yMzVjMC0uODAyLS4zNzItMS40ODMtMS4yNTQtMS40ODMtMS4wMzYuMDAzLTEuMzkxLjc3NC0xLjM5MSAxLjkzNFptMTEuNTY3LjgzN2gyLjQxMmMtLjM1NyAxLjg0LTEuNzQ4IDMuMTIzLTMuNzkxIDMuMTIzLTIuMjkgMC0zLjk5LTEuNjg1LTMuOTktMy45NTcgMC0yLjI3MSAxLjcwMy0zLjk3MyAzLjk5LTMuOTczIDEuOTk1IDAgMy4zODggMS4yMzYgMy42NjYgMy4wMjloLTIuNDE1Yy0uMTctLjU3My0uNjY0LS45NTktMS4zMjgtLjk1OS0uOTI4IDAtMS42NzEuNzg5LTEuNjcxIDEuOSAwIDEuMTEyLjc0MyAxLjkgMS43MDMgMS45LjcxMi4wMDQgMS4yNC0uNDE2IDEuNDI0LTEuMDYzWm01LjEwMiA2LjAyN2MtLjk5IDAtMS40ODQtLjI2NC0xLjQ4NC0uMjY0di0yLjAxcy40NDguMjMyLjkyOC4yMzJjLjQ5NiAwIDEuMTQzLS4xODQgMS4yOTktMS4wMzVsLTIuOTU0LTcuNTc1aDIuNDQ0bDEuNzE3IDQuNjk5IDEuNzQ4LTQuN2gyLjM0OWwtMy4wNzkgNy43Yy0uODAzIDIuMDI2LTEuNDUzIDIuOTUzLTIuOTY4IDIuOTUzWm0xMS41OTgtMy4wNzVWNDguMDloMi4zMDV2MTAuODM3aC0yLjMwNVptNi42MTgtMy43ODl2My43ODdoLTIuMTk3di03LjU3NmgyLjE2NnYuNTI1YTIuNTM4IDIuNTM4IDAgMCAxIDEuNzkzLS43MTJjMS44NTYgMCAzLjA3OSAxLjIwNSAzLjA3OSAzLjM1NXY0LjQwNWgtMi4xOTZ2LTQuMjM1YzAtLjgwMi0uMzcyLTEuNDgzLTEuMjU1LTEuNDgzLTEuMDMzLjAwMy0xLjM5Ljc3NC0xLjM5IDEuOTM0Wm02LjU0MS01LjkzNmMwLS43MTIuNTU2LTEuMjgyIDEuMjY4LTEuMjgyczEuMjg2LjU3MyAxLjI4NiAxLjI4MmExLjI4IDEuMjggMCAwIDEtMS4yODYgMS4yNjggMS4yNjQgMS4yNjQgMCAwIDEtMS4yNjgtMS4yNjhabS4xNyA5LjcyNXYtNy41NzVoMi4xOTZ2Ny41NzVoLTIuMTk2Wm03LjI1NC4wMjljLTEuNjU1IDAtMi42MTQtLjk1OS0yLjYxNC0yLjYzdi0yLjk1MmgtMS4yNjhWNTEuMzVoMS4yNjh2LTEuMTExbDIuMTk2LTEuODU1djIuOTdoMS45MDJ2Mi4wMjRoLTEuOTAydjIuNjQzYzAgLjcyNi40OC44OTcuOTI4Ljg5Ny41MTEgMCAuOTI4LS4yMDIuOTI4LS4yMDJ2MS45OTRzLS41ODcuMjQ3LTEuNDM4LjI0N1ptMi45NTQtOS43NTRjMC0uNzEyLjU1Ni0xLjI4MiAxLjI2OC0xLjI4MnMxLjI4Ni41NzMgMS4yODYgMS4yODJhMS4yOCAxLjI4IDAgMCAxLTEuMjg2IDEuMjY4IDEuMjY0IDEuMjY0IDAgMCAxLTEuMjY4LTEuMjY4Wm0uMTcgOS43MjV2LTcuNTc1aDIuMTk2djcuNTc1aC0yLjE5NlptOC43NTQtLjc3NGMtLjQ5Ni42MDQtMS4yMDYuOTQ1LTIuMTUxLjk0NS0xLjUxNSAwLTIuNzM4LS45NDUtMi43MzgtMi4zOTcgMC0xLjQzOCAxLjIyLTIuMTUgMi45MzctMi4yNCAxLjMxNC0uMDc3IDEuNzM0LS4yMTYgMS43MzQtLjY2NCAwLS40MzQtLjQwMy0uNzI2LTEuMTEzLS43MjYtLjg2NSAwLTEuMjM3LjQzNC0xLjI4NS44OTZoLTIuMTJjLjEwOC0xLjY1MyAxLjM0NS0yLjc5OSAzLjQxOS0yLjc5OSAyLjAyNyAwIDMuMzI2IDEuMDk4IDMuMzI2IDMuMTU0djQuNjA1aC0xLjgxbC0uMTk5LS43NzRabS0yLjY5My0xLjU0NWMwIC40MzQuMzg2LjY5NSAxLjAwNS42OTUuODM0IDAgMS41MDEtLjQ2MyAxLjUwMS0xLjQwN3YtLjI3OHMtLjQwMy4xODQtMS4yMzcuMjMyYy0uOTE0LjA0Ni0xLjI2OS4zNC0xLjI2OS43NThabTkuNTU4IDIuMzQ4Yy0xLjY1NSAwLTIuNjE0LS45NTktMi42MTQtMi42M3YtMi45NTJoLTEuMjY4VjUxLjM1aDEuMjY4di0xLjExMWwyLjE5Ny0xLjg1NXYyLjk3aDEuOTAxdjIuMDI0aC0xLjkwMXYyLjY0M2MwIC43MjYuNDc5Ljg5Ny45MjguODk3LjUxIDAgLjkyOC0uMjAyLjkyOC0uMjAydjEuOTk0cy0uNTg4LjI0Ny0xLjQzOS4yNDdabTIuOTUxLTkuNzU0YzAtLjcxMi41NTYtMS4yODIgMS4yNjktMS4yODIuNzEyIDAgMS4yODUuNTczIDEuMjg1IDEuMjgyIDAgLjY5NS0uNTczIDEuMjY4LTEuMjg1IDEuMjY4YTEuMjY0IDEuMjY0IDAgMCAxLTEuMjY5LTEuMjY4Wm0uMTcgOS43MjV2LTcuNTc1aDIuMTk3djcuNTc1aC0yLjE5N1ptMTAuOTgzLTcuNTc1LTIuNjkxIDcuNTc1aC0yLjI1OGwtMi42OTEtNy41NzVoMi4zMzZsMS40ODQgNC42ODUgMS40ODQtNC42ODVoMi4zMzZabTcuOTggNC4zNzRoLTUuMzUyYy4xMjUuNzc0Ljc1NyAxLjM2IDEuNzAyIDEuMzYuNjM2IDAgMS4wMDUtLjI2MyAxLjIzOC0uNjQ5aDIuMzY2Yy0uNTEgMS42NC0xLjY4NSAyLjY2LTMuNTcyIDIuNjYtMi4xOTcgMC0zLjk1OS0xLjUzLTMuOTU5LTMuOTEgMC0yLjI4OSAxLjYwOS00LjAxOSAzLjgzNy00LjAxOSAyLjQ4OCAwIDMuNzYgMS45NjMgMy43NiAzLjk4OC0uMDA2LjItLjAyLjU3LS4wMi41N1ptLTMuNzEyLTIuNjI3Yy0uODM0IDAtMS4zOTMuNTEtMS41MzIgMS4xNmgyLjk0Yy0uMDQ5LS42NjYtLjYxOS0xLjE2LTEuNDA4LTEuMTZaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxMjIgMzZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgeG1sbnM6eGxpbms9XFxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcXFwiPjxwYXRoIGQ9XFxcIk00NC4wMTkgMjdWMTYuOTc5aDMuMjQ3YzEuMjMgMCAyLjAzMi4wNSAyLjQwNi4xNS41NzQuMTUgMS4wNTUuNDc4IDEuNDQyLjk4NC4zODguNTAyLjU4MSAxLjE1MS41ODEgMS45NDggMCAuNjE2LS4xMTEgMS4xMzMtLjMzNSAxLjU1Mi0uMjIzLjQyLS41MDguNzUtLjg1NC45OTItLjM0Mi4yMzYtLjY5LjM5NC0xLjA0Ni40NzEtLjQ4My4wOTYtMS4xODMuMTQ0LTIuMDk5LjE0NGgtMS4zMTlWMjdoLTIuMDIzWm0yLjAyMy04LjMyNnYyLjg0NGgxLjEwN2MuNzk4IDAgMS4zMzEtLjA1MyAxLjYtLjE1OGExLjMzMyAxLjMzMyAwIDAgMCAuODYxLTEuMjcxYzAtLjM2NS0uMTA3LS42NjUtLjMyLS45MDJhMS4zOTkgMS4zOTkgMCAwIDAtLjgxNC0uNDQ1Yy0uMjQyLS4wNDUtLjcyNy0uMDY4LTEuNDU2LS4wNjhoLS45NzhabTcuMDItMS42OTVoMi4wMjR2NS40MjdjMCAuODYyLjAyNSAxLjQyLjA3NSAxLjY3NS4wODcuNDEuMjkyLjc0LjYxNi45OTEuMzI4LjI0Ni43NzQuMzcgMS4zNC4zNy41NzQgMCAxLjAwNy0uMTE3IDEuMjk4LS4zNS4yOTItLjIzNi40NjctLjUyNi41MjctLjg2Ny4wNTktLjM0Mi4wODktLjkxLjA4OS0xLjcwM1YxNi45OGgyLjAyM3Y1LjI2M2MwIDEuMjAzLS4wNTUgMi4wNTMtLjE2NCAyLjU1LS4xMS40OTctLjMxMi45MTYtLjYwOCAxLjI1OC0uMjkyLjM0Mi0uNjg0LjYxNS0xLjE3Ni44Mi0uNDkyLjItMS4xMzUuMy0xLjkyOC4zLS45NTcgMC0xLjY4NC0uMTA5LTIuMTgtLjMyNy0uNDkzLS4yMjQtLjg4My0uNTEtMS4xNy0uODYyYTIuNzg4IDIuNzg4IDAgMCAxLS41NjctMS4xMTRjLS4xMzItLjU3NC0uMTk4LTEuNDIyLS4xOTgtMi41NDN2LTUuMzQ2Wm05Ljg1OCAwaDQuMDA2Yy43OTMgMCAxLjM4My4wMzQgMS43Ny4xMDIuMzkzLjA2NC43NDEuMiAxLjA0Ny40MS4zMS4yMS41NjcuNDkuNzcyLjg0MS4yMDUuMzQ2LjMwOC43MzYuMzA4IDEuMTY5IDAgLjQ3LS4xMjguOS0uMzgzIDEuMjkyYTIuMzMgMi4zMyAwIDAgMS0xLjAyNS44ODJjLjYxLjE3NyAxLjA4LjQ4IDEuNDA4LjkwOS4zMjguNDI4LjQ5Mi45MzIuNDkyIDEuNTEgMCAuNDU2LS4xMDcuOS0uMzIxIDEuMzM0LS4yMS40MjgtLjUuNzcyLS44NjggMS4wMzItLjM2NS4yNTUtLjgxNi40MTItMS4zNTQuNDcyLS4zMzcuMDM2LTEuMTUuMDU5LTIuNDQuMDY4SDYyLjkyVjE2Ljk3OVptMi4wMjQgMS42Njh2Mi4zMTdoMS4zMjZjLjc4OCAwIDEuMjc4LS4wMTEgMS40Ny0uMDM0LjM0Ni0uMDQxLjYxNy0uMTYuODEzLS4zNTYuMi0uMi4zMDEtLjQ2Mi4zMDEtLjc4NiAwLS4zMS0uMDg3LS41Ni0uMjYtLjc1Mi0uMTY4LS4xOTYtLjQyMS0uMzE0LS43NTgtLjM1NS0uMjAxLS4wMjMtLjc3OC0uMDM1LTEuNzMtLjAzNWgtMS4xNjJabTAgMy45ODV2Mi42OGgxLjg3M2MuNzMgMCAxLjE5Mi0uMDIxIDEuMzg4LS4wNjIuMy0uMDU1LjU0NC0uMTg3LjczMS0uMzk2LjE5MS0uMjE1LjI4Ny0uNS4yODctLjg1NSAwLS4zLS4wNzMtLjU1Ni0uMjE5LS43NjZhMS4yMzcgMS4yMzcgMCAwIDAtLjYzNS0uNDU4Yy0uMjc0LS4wOTUtLjg3LS4xNDMtMS43OTEtLjE0M2gtMS42MzRaTTcyLjgwNSAyN3YtOS45NGgyLjAyNHY4LjI1Mmg1LjAzMVYyN2gtNy4wNTVabTguMTYzIDBWMTYuOTc5aDIuMDIzVjI3aC0yLjAyM1ptMy4xNjUtMy4yNiAxLjk2OS0uMTkyYy4xMTguNjYuMzU4IDEuMTQ2LjcxOCAxLjQ1Ni4zNjQuMzEuODU0LjQ2NSAxLjQ3LjQ2NS42NTEgMCAxLjE0MS0uMTM3IDEuNDctLjQxLjMzMi0uMjc4LjQ5OC0uNjAyLjQ5OC0uOTcxYS44OS44OSAwIDAgMC0uMjEyLS42MDJjLS4xMzYtLjE2OC0uMzc4LS4zMTQtLjcyNC0uNDM3LS4yMzctLjA4Mi0uNzc3LS4yMjgtMS42Mi0uNDM4LTEuMDg1LS4yNjktMS44NDYtLjU5OS0yLjI4NC0uOTktLjYxNS0uNTUyLS45MjItMS4yMjQtLjkyMi0yLjAxNyAwLS41MS4xNDMtLjk4Ny40My0xLjQzLjI5Mi0uNDQ2LjcwOS0uNzg1IDEuMjUxLTEuMDE4LjU0Ny0uMjMyIDEuMjA2LS4zNDggMS45NzYtLjM0OCAxLjI1NyAwIDIuMjAzLjI3NSAyLjgzNy44MjcuNjM4LjU1MS45NzMgMS4yODcgMS4wMDUgMi4yMDhsLTIuMDI0LjA4OWMtLjA4Ny0uNTE1LS4yNzMtLjg4NC0uNTYtMS4xMDgtLjI4My0uMjI4LS43MS0uMzQyLTEuMjc5LS4zNDItLjU4OCAwLTEuMDQ4LjEyMS0xLjM4LjM2M2EuNzMuNzMgMCAwIDAtLjMyMi42MjJjMCAuMjM3LjEuNDQuMy42MDguMjU2LjIxNC44NzYuNDM4IDEuODYuNjcuOTg1LjIzMiAxLjcxMi40NzQgMi4xOC43MjUuNDc1LjI0Ni44NDQuNTg1IDEuMTA4IDEuMDE4LjI3LjQyOS40MDQuOTYuNDA0IDEuNTkzIDAgLjU3NC0uMTYgMS4xMTItLjQ3OSAxLjYxMy0uMzE5LjUwMi0uNzcuODc1LTEuMzUzIDEuMTIxLS41ODQuMjQyLTEuMzEuMzYzLTIuMTgxLjM2My0xLjI2NyAwLTIuMjQtLjI5Mi0yLjkxOS0uODc1LS42NzktLjU4OC0xLjA4NS0xLjQ0My0xLjIxNy0yLjU2NFpNOTMuNzExIDI3VjE2Ljk3OWgyLjAyM3YzLjk0NEg5OS43di0zLjk0NGgyLjAyM1YyN2gtMi4wMjN2LTQuMzgyaC0zLjk2NVYyN2gtMi4wMjNabTkuODMgMFYxNi45NzloNy40MzF2MS42OTVoLTUuNDA4djIuMjIxaDUuMDMydjEuNjg5aC01LjAzMnYyLjcyN2g1LjU5OVYyN2gtNy42MjJabTkuMDY1IDBWMTYuOTc5aDQuMjU4YzEuMDcxIDAgMS44NDguMDkgMi4zMzIuMjczYTIuMjggMi4yOCAwIDAgMSAxLjE2OC45NTdjLjI5Mi40Ni40MzguOTg3LjQzOCAxLjU4IDAgLjc1MS0uMjIxIDEuMzczLS42NjMgMS44NjUtLjQ0Mi40ODgtMS4xMDMuNzk2LTEuOTgzLjkyMy40MzguMjU1Ljc5OC41MzYgMS4wODEuODQxLjI4Ny4zMDUuNjcyLjg0OCAxLjE1NSAxLjYyN0wxMjEuNjE1IDI3aC0yLjQxOWwtMS40NjMtMi4xOGMtLjUyLS43OC0uODc1LTEuMjctMS4wNjctMS40N2ExLjUwMyAxLjUwMyAwIDAgMC0uNjA4LS40MTdjLS4yMTQtLjA3OC0uNTU0LS4xMTctMS4wMTktLjExN2gtLjQxVjI3aC0yLjAyM1ptMi4wMjMtNS43ODNoMS40OTdjLjk3MSAwIDEuNTc3LS4wNDEgMS44MTktLjEyMy4yNDEtLjA4Mi40My0uMjI0LjU2Ny0uNDI0LjEzNy0uMi4yMDUtLjQ1MS4yMDUtLjc1MiAwLS4zMzctLjA5MS0uNjA4LS4yNzMtLjgxMy0uMTc4LS4yMS0uNDMxLS4zNDItLjc1OS0uMzk3LS4xNjQtLjAyMy0uNjU2LS4wMzQtMS40NzctLjAzNGgtMS41Nzl2Mi41NDNaXFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZmlsbD1cXFwidXJsKCNsb2dvX3N2Z19fYSlcXFwiIGQ9XFxcIk0wIDBoNDF2MzZIMHpcXFwiLz48ZGVmcz48cGF0dGVybiBpZD1cXFwibG9nb19zdmdfX2FcXFwiIHBhdHRlcm5Db250ZW50VW5pdHM9XFxcIm9iamVjdEJvdW5kaW5nQm94XFxcIiB3aWR0aD1cXFwiMVxcXCIgaGVpZ2h0PVxcXCIxXFxcIj48dXNlIHhsaW5rOmhyZWY9XFxcIiNsb2dvX3N2Z19fYlxcXCIgdHJhbnNmb3JtPVxcXCJtYXRyaXgoLjAwMDkzIDAgMCAuMDAxMDYgLS4xMjIgLS4wMDcpXFxcIi8+PC9wYXR0ZXJuPjxpbWFnZSBpZD1cXFwibG9nb19zdmdfX2JcXFwiIHdpZHRoPVxcXCIyMjM1XFxcIiBoZWlnaHQ9XFxcIjk1OVxcXCIgeGxpbms6aHJlZj1cXFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUNMc0FBQU8vQ0FZQUFBQXRLbGFrQUFBQUNYQklXWE1BQUNFM0FBQWhOd0V6V0o5NkFBQWdBRWxFUVZSNDJ1emRQWWhkNlowbThPY2RPakRzRFdwaFlDb3diRFd1b0lPQnZnM09YR0Fwc3BMRjNiU1NpVlJpY2FUQXJVaFIwMm9jS2VxZVFKR0RMa1dUcUxITUp0V1JOU0REQkF0ekd5YVlvSXhyWVlKYUdKZ2FxSVVKQnQ0TjNsdXJzdHdmK3JqM1BlZmMrL3RCY1V0cSs1NnY5MVNwZEI0OS93UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEb29EZ0ZBQUFBTUU2MTFwMGs4ei83WWI2VXA4NE9BQUFBQU50SzJBVUFBQUJXck5hNmwyUnYrY3Q1a3AzbDUvL3R5dTluK2Z2ek5lekMweGQrdlVqeTc4dlBUNWNmU2JJb3BaeTdZZ0FBQUFCTWliQUxBQUFBdktKYTYyV0E1ZHJ5dDM2NmZMMGFiSm1TMCtYSGVaS3ZsNitMSktlbGxGTlhIQUFBQUlBeEVYWUJBQUNBYjNCbGhOQThyWkZsbnRiS3NyZUZwMk9SRm9ENSt5eURNVVlwQVFBQUFEQVVZUmNBQUFDMjNyS3BaUzh0MFBMVFRMZWhwYmZUdENETTEybWprelRCQUFBQUFMQjJ3aTRBQUFCc2xXVmp5N1VJdHF6TGVWcnc1VElBc3lpbG5Ec3RBQUFBQUt5S3NBc0FBQUFiYmRuYWNobHN1WmJ0SEVNMHRFV3VCR0MwdndBQUFBRHdKb1JkQUFBQTJDaTExcjIwVU12UGw2OWFXOGJuTkMzODh0dTA4SXZtRndBQUFBQmVtckFMQUFBQWszWmxMTkZsdUdYUFdabWN5K2FYMzVaU25qb2RBQUFBQUh3WFlSY0FBQUFtWjluZThuNmVCMXpZSE9kNTN2cnlST3NMQUFBQUFDOFNkZ0VBQUdBU2FxM3pKTGZTUWk1N3pzaldXQ1I1bEJaOE9YVTZBQUFBQUJCMkFRQUFZTFFFWEhpQjRBc0FBQUFBd2k0QUFBQ01pNEFMTDBud0JRQUFBR0JMQ2JzQUFBQXd1RnJyWGxxNDVaY1JjT0hWUGMzejRNdTUwd0VBQUFDdzJZUmRBQUFBR0V5dDlUREp6OU9DTHJBS1Iwa2VsVktlT2hVQUFBQUFtMG5ZQlFBQWdLNldMUzYvVEhLWVpNY1pZVTFPMDlwZWpvdzVBZ0FBQU5nc3dpNEFBQUIwc1d4eHVaWGttck5CWjBmUjlnSUFBQUN3TVlSZEFBQUFXSnRsaTh0aFdwT0xGaGVHZHByazB5UlBTaW5uVGdjQUFBREFOQW03QUFBQXNISzExbXRwTFM2SHpnWWpkSjdXOXZLM1Jod0JBQUFBVEkrd0N3QUFBQ3RUYTMwL3JjWGxtclB4VWhiZjhIc25TZjd2Szd6SGo1TE1Ydmk5V1pKOXAvZWxITVdJSXdBQUFJQkpFWFlCQUFEZ2pkVmFENU44a21SdnkwL0ZSVnBZSlVtK1hyNmVMVCt5L0c4WEErelg3dklqYVNHWVdaTC9rdWVCbUxsVm5LZEpQaFY2QVFBQUFCZy9ZUmNBQUFCZTI1YUdYQzdESzVjTkxJdjhhY2hseXVaNTNncnpWMmtCbWN0d3pMWjRtdGIwY3VRT0J3QUFBQmduWVJjQUFBQmVTYTExSjhsSGFlT0tkamI0VUM4RExDZEovcEFXY0ZsczZXVy9ETURzcDQxTjJzM210OEdjcGpXOUhMbnJBUUFBQU1aRjJBVUFBSUNYVm11OW44ME51U3pTUmc5ZEJsek9YUEh2ZFRVQU04L3pzVWliNURSQ0x3QUFBQUNqSXV3Q0FBREE5OXJBY1VXWExTMS9XTDZldU1vck0xOStYQVpnTm1VRTBpTEozVkxLVTVjWUFBQUFZRmpDTGdBQUFIeXJEUXE1WENSNWx0YmNzb2pXbHA3MjAwSXY3Mll6d2k5UDA1cGVucnEwQUFBQUFNTVFkZ0VBQU9EUDFGcXZwWVZjcmszNE1CWkpmaC9OTFdOejJmenlrMHg3N05HVHRLYVhVNWNVQUFBQW9DOWhGd0FBQVA2L1d1dGVraTh5elpETDVXaWl5NERMaFNzNmVyTWtCMm5CbDZtMnZueWUxdlJ5N25JQ0FBQUE5Q0hzQWdBQVFHcXRPMmxOTGg5TmJOZlAwc1lUZlJYdExadmdNdmh5a0drRlg4N1RBaStmdTRRQUFBQUE2eWZzQWdBQXNPVnFyUitsQlYxMkpyTExBaTdiWVlyQmw5TWt0MHNwVDEwK0FBQUFnUFVSZGdFQUFOaFN0ZFpyU1Q1TEd4OHpkaGRKamlQZ3NxMm1Gbng1a3VSdUtlWFVwUU1BQUFCWVBXRVhBQUNBTGJNY1dmUlprc01KN081eGt0K25OYm5BTEMzdzhyT01QNlIxbnVSdlN5bjNYVFlBQUFDQTFSSjJBUUFBMkNLMTFzTzBvTXVZUnhhZHBEVzRIS2MxdXNBMzJVMXlJeTM0c2p2aS9WeWt0Ync4ZGNrQUFBQUFWa1BZQlFBQVlBdlVXdmVTZkpIazJvaDM4empKbHpHbWlGZDMyZlp5TU9KOS9EekpwNldVYzVjTEFBQUE0TTBJdXdBQUFHeTRXdXRIU1Q3Sk9OdGN6dElDTGxwY1dJWGRKQittTmI3TVJyaC81MGx1bDFLZXVGUUFBQUFBcjAvWUJRQUFZRVBWV3VkcGJTN3pFZTdlSWkzazhzeVZZZzFtYVMwdnR6TE9FVWRQMGtJdldsNEFBQUFBWG9Pd0N3QUF3QWFxdGQ1UGEzTVpHNk9LNk8wZ3JlMWxiS0V2TFM4QUFBQUFyMG5ZQlFBQVlJUFVXdmZTMmx5dWpXelhqcE04U2h0YkJFT1lwNFZlRGthMlgxcGVBQUFBQUY2UnNBc0FBTUNHcUxWK2xOYm1zak9TWGJwSWEzRjV2UHdjeG1BM2JielJqUkh0MDJsYTRPV3B5d01BQUFEdy9ZUmRBQUFBSnE3V3VwUFc1dkwrU0haSnlJVXBHR1BvNWZOU3lsMlhCZ0FBQU9DN0Nic0FBQUJNV0szMVdwTGZaQnh0TGtJdVROSFlRaStMSkIrVVVrNWRHZ0FBQUlCdkp1d0NBQUF3VWJYVysybGppOGJnT01uRENMa3dYYnRKN2lXWmoyQmZ6cFBjTGFVY3VTd0FBQUFBZjA3WUJRQUFZR0pxclh0cGJTNWplQ2gvbk9SUmtqTlhoZzB4VDJ0NkdjUDlkWlFXZWpsM1dRQUFBQUNlRTNZQkFBQ1lrQkdOTFZxa2hWd1dyc3JhekpMc2Y4ODFZSDBPa3R4SmEzd1orbDY3WFVweHZRRUFBQUNXaEYwQUFBQW1ZaVJqaTg3U3hoVTljMFZleXRYQXl0V21rSGV2Zkw2YjFRWXFUdktuNDZTK1hyNWVMUDliSWlqektnNlRmTGk4bGtNNVR3dThQSEU1QUFBQUFJUmRBQUFBUnEvV3VwUFc1bkp0d04yNFNQSmwybGdWL3RSK1doQmludVMvTEgrOTZnREx1bHdHWTc3Tzh6RE1XWXlsZXRFc3JlWGx4c0Q3OFhrcDVhN0xBUUFBQUd3N1lSY0FBSUFScTdYTzA0SXVld1B1eHJPME5wZHREMEJjQmxqbVNYNjAvSHgvZzQ5M3Niem1mMGdMd2J6WUdMT041bW1obHlHdis5TWtINVJTem4yRkJBQUFBTGFWc0FzQUFNQkkxVm9QazN5V1pHZWdYVGhMOGlEYk9mTG1jdnpRWmJCbG5tSEgySXpGV1ZybzVldmw2N2FPUTdxWjVOYUFhK0kwTGZCaUhCVUFBQUN3bFlSZEFBQUFScWpXZWovSkp3UHV3cU5zMThpaXl6RkU3eTVmOTYzQ2w3WklDNzhzc2wzdEw3TWs5NUljRExUOTh5UjNTeWxIbGlBQUFBQ3diWVJkQUFBQVJxVFd1cFBXNW5JNDBDNHMwa1lXbld6NHFSWnVXZThhdWd5L2JFUHp5RHd0OUxJNzBQWS9MYVhjdCt3QUFBQ0FiU0xzQWdBQU1CTExvTXZ2MGg2ZTkzYVIxdWJ5ZUlOUDhXNWFDOGRQQmpySDIrZ2lMZkR5K3lUUHNybXRMN08wc1VZM0I5citVU25sdHVVR0FBQUFiQXRoRndBQWdCR290YzdUZ2k0N0EyeCtrZVJCa3JNTlBMWDdTWDZXRm5MWnRkSUdkNUxrcTdUZ3l5YXV0eUZiWGhaSnJwZFN6aTB6QUFBQVlOTUp1d0FBQUF5czFub3R5Vy9TUCtpeXFXMHVBaTdUc0tuQmx5RmJYaFpKYnBkU0ZwWVhBQUFBc01tRVhRQUFBQVpVYXoxTThzVUFtejVKOG5FMkoyU3dtK1REQ0xoTTFXWHc1VGliTStwb251UlhhZUdYbnM3VEdsNEVYZ0FBQUlDTkpld0NBQUF3a0ZyclIwaytHMkRUajVJY2JjQXBuS1dGV3o1TWEzTmhNenhMOHZ1MDRNc21yTkY3eTNYYTAzbGF3OHNUeXdrQUFBRFlSTUl1QUFBQUE2aTFmcEhrc1BObXo1SThTQnQxTW1YenRERkZONnlralhhUkZuajVNdE52SUxxUjVFNzZ0N3pjTHFVY1dVb0FBQURBcGhGMkFRQUE2R3lnb011enRLRExWRWZFWExhNDNJb3hSZHRva2VkampxWnFQNjNscFhjTGtjQUxBQUFBc0hHRVhRQUFBRHFwdGU2a2pTMDY3THpwaDBrZVQvUzA3YWFOS2JxUi9xMFlqTTlaV3VqbGNhWVozSnFsTmJ6MGJpWDZ0SlJ5My9JQkFBQUFOb1d3Q3dBQVFBZkxvTXZ2MGtidzlIS1c1T01rSnhNOFpmTzBrTXVCMWNNM3VFaHJLM3FVYVk0NEdtS3MwVkVwNWJhbEF3QUFBR3dDWVJjQUFJQTFHeWpvTXRXeFJRZHBJWmU1bGNOTE9rNXJlMWxNYkwrSEdHc2s4QUlBQUFCc0JHRVhBQUNBTlJvbzZQSW95ZEhFVHRXTkpMZlN4aGJCNjFnczEvNlVRaSt6dE1CTHp3WWpnUmNBQUFCZzhvUmRBQUFBMW1TQW9NdEZXcHZMc3dtZEppRVhWbTJLb1pmRDVYM1FpOEFMQUFBQU1HbkNMZ0FBQUd2U09leHlraFowT1puSTZUbEljaWRDTHF6UDFFSXZCMmt0TDdOTzJ4TjRBUUFBQUNaTDJBVUFBR0NOT2dWZUZraytUbXQyR2J0NVdvUEYzT3FnaytPMDBNdlpCUFoxUDhtdjBpOEVKdkFDQUFBQVRKS3dDd0FBd0pxdE9mQnluTmJvTW5hN2FhMFZRaTRNNVhGYTZHWHNvYkJaa3MvU2dpODlDTHdBQUFBQWt5UHNBZ0FBME1HYUFpOFAweDdnajlrc3JjbmxwbFhBQ0Z3aytUTEowUVQyOVY2U0c1MjJKZkFDQUFBQVRJcXdDd0FBUUNjckRMeGNwQVZkamtkK3lEZlRnaTR6VjUrUk9WdmVRODlHdnArSHkzdW9oODlMS1hjdERRQUFBR0FLaEYwQUFBQTZXa0hnNVNMSjNTUW5JejdNZVpJNzZUZUdCVjdYSW0wTTJObUk5L0ZHV3N0TEQ3ZExLVWVXQlFBQUFEQjJ3aTRBQUFDZHZVSGc1U3pKeHhsdjBHV1dGbks1NFNxL2xwTzBNTlByMm84V25kZjFLT01lYlhTUUZuanBjWDBGWGdBQUFJRFJFM1lCQUFBWXdHc0VYazdTR2wwdVJucElOOUtDTHNJV2Yrb2l6ME1zZjFqKzN1S0YvN1l1bDJ0cmx1Y3RPKysrOE45NDdpeXQ1V1V4MHYzYlQvSlpCRjRBQUFBQWhGMEFBQUNHOGdxQmx6RUhYWGJUR2llMlBUeHh0dno0K3Nybmk1SHY4MlVJWmovSlgxMzVmTnNEUzQvVG1sN0dlTC8xQ3J5Y0o3bGVTbGtFQUFBQVlJU0VYUUFBQUFiMEVvR1hNUWRkYmlhNWxlMExSMXdHV2Y2d3ZENmJGZ2k0RE1ITWsveG8rYnFOMTNpc0xTLzdhUUd6L1RWdlIrQUZBQUFBR0MxaEZ3QUFnSUY5UitEbE9NbkRqQy9vc20xdExwZUJscStYcnhkYnVFeDNsOWY3M2VYcjdwWWM5MWhiWG1acERTL3JEcnljSm5tdmxITHVLelVBQUFBd0pzSXVBQUFBSS9BTmdaZmp0R2FKc2RtR05oZmhsdSszVGVHWHNiYTg5QXE4TE5JYVhnUmVBQUFBZ05FUWRnRUFBQmlKSzRHWHk0ZnJZekpMYTNNNTJORFQveXd0M1BKc2VmNTVOWmRqajM2VzlZY3Zodkk0cldscGJQZGxqOERMVVNubHRtVU9BQUFBaklXd0N3QUF3RWpVV3QvS09NTWs4eVMveW1hMXVWemtUd011Mmx0VzU3TDE1U2ZadkhEVVNaS1BNNjVBVksvQXkrZWxsTHVXTndBQUFEQUd3aTRBQUFBanNBeTZ6RE8rUU1saDJ0aWlUZkVzeVZmTFY5WnZsaFo0K1RDYjAvaHlrZGJ3Y2p5eTg5d2o4SEs3bEhKa1dRTUFBQUJERTNZQkFBQVkyRWlETHIwZW52ZHdrdVRMYUhBWjJtNlNHMm1qam5ZMzRIaU8wMEl2RjF0MHo1NG51VjVLV1ZqT0FBQUF3SkNFWFFBQUFBWldhLzNySkg4NW9sM2FoTEZGRjJsaGhDOHpycEV6UEY5alAwc0x2MHpaMk1ZYTlRcTh2RjFLT2JlTUFRQUFnS0VJdXdBQUFBeW8xdnBPeHRWeWNUUEpuUW1mMHNzV2wyT3JheEptYVlHWER6UGR0cGVMSkE4eW50RlkrMm1CbDNXRzFSYWxsUGNzWHdBQUFHQW93aTRBQUFBREdWblFaWmJrWHBLRGlaN080eVJmSlRGZVpib08wa0l2ODRudS82TWtSeVBabHg2Qmw2TlN5bTNMRmdBQUFCaUNzQXNBQU1BQWFxMzdTWDQ0a3QzWlRSdGJ0RCt4MDJoVTBXYmFUd3U5VEhIRTBiTzBscGVMa1p6SGRRZGVicGRTaml4WkFBQUFvRGRoRndBQWdNNXFyYnRKM2huSjd2UjRJTDVxRjJrQmw4Y1pSNmlBOWRoTmNpdlRDNzJjSlBrNDR3aGd6WmYzOTdxY0o3bGVTdEdvQkFBQUFIUWw3QUlBQU5EUnlJSXVOOUpHRjAyRmtNdDJtbUxvNVNMSjNiVGd5NmJmNTZkSjNpdWxuRnVxQUFBQVFDL0NMZ0FBQUozVVdtZEpmanlTM1RsTUN4Qk1nWkFMeWZSQ0x4ZEpIcWFOMmhyYXpTUjMxdmorVDBvcEgxaWlBQUFBUUMvQ0xnQUFBQjBzZ3k3ekpHK05ZSGZ1WlRxQmdjZEpIa1hJaGVkMjA0SWJCeFBaM3djWlIrQmwzZmY5M1ZMSzU1WW5BQUFBMElPd0N3QUF3SnJWV3Q5S0M3ck1CdDZWV1pKZkxmZGw3STdUUWk1blZoRGZZcDdXOURLVjlmeGdCUHZ4MlJyUDEzbVM2NldVaGFVSkFBQUFySnV3Q3dBQXdKclZXbitjY1FSZFBrdXlQL0xUZFpJMitzVURjMTdXamJUUXkrN0k5M01NZ1pkMWZ4MVlwQVZlemkxTEFBQUFZSjJFWFFBQUFOYW8xdnBPaG44SVA0V2d5MFZheU9YWXF1RTExL2pOdE5ETG1CMHYxL21RWTduMmwxOFAxaFhBKzd5VWN0ZVNCQUFBQU5aSjJBVUFBR0JOYXEyN1NkNFplRGYyMDBZWGpibjE0bkhheUtJTHE0WTN0SnZrWHNZOTJ1Z2t5ZDJCMS9zOExmQ3lMaCtVVXA1WWpnQUFBTUM2Q0xzQUFBQ3NRYTExSjhNL2NGOTNnOE9iTXJLSWRibVI1TTdJMS83UWdaZWJ5M08wRHVkSjNqYk9DQUFBQUZpWHYzQUtBQUFBVnF2VytvTWtmejN3Ym93OTZQSW95UzhpNk1KNkhDZjVteVRQUnJwL1k3Zy9IMmQ5WThOMmtueGhHUUlBQUFEcm90a0ZBQUJneFdxdFA4NndEN0hISEhRNVNmSmcrUW85SEtTTk5ocnIvVEJrdzh0cytiVmlmMDN2Zjd1VWNtUUpBZ0FBQUtzbTdBSUFBTEJDdGRaM2t1d091QXRqRHJvOFNuSzA1VXRrZC9reHkvT0F3WSt1WEsrcnYvOHFyamJrbkNYNVB5Lzgva21HSFprenRGbGE0T1ZnaFBzMmRPQmxOOG12MS9RMTR6ekplNldVVTk4ZEFBQUFnRlVTZGdFQUFGaVJXdXR1a25jRzNJV3hCbDNPa255YzdXcHptZWQ1c09YZHZINklaZFVXYWFHS1B5eXZ4OW1XWFpleHRyd01IWGc1U1BLck5iMzMwMUxLZGQ4aEFBQUFnRlVTZGdFQUFGaUJXdXNzTGVEdzFrQzdzTTUyaGpkeG5PUmhOcnRWWkgvNThlNlZ6NmRta1JhNCtNUHk4N01Odmw2N2FZR1grY2oyYStqQXk1MGtOOWYwM3NZWkFRQUFBQ3NsN0FJQUFQQ0dhcTF2cFQwNEh5cG9Na3RyZEJsVHlPSWlMZVJ5dklHWGZIOTV2ZDhkK0xxdjAxbGE2T1hyYkc3NDVUREpyWkh0MDdPMEZxU2gvSHBOWDBmT2s3eGRTam4zSFFNQUFBQllCV0VYQUFDQU4xUnIzVS95dzRFMlA4YWd5MG1TQjltYzhUaXp0REV2N3k1ZloxdTR6Qy9ETDc5UEMyUnNpbm5hK0o0eFhkUGo1ZjB6aEhVMlJEMHBwWHpnT3dZQUFBQ3dDc0l1QUFBQWI2RFcrcGRKL25xZ3pZOHg2TElwWTR0MjA0SXRQOHMweHhLdDI3TThENzVNL1ZxUDlUNGFLdkJ5a0JZQVdvY1BTaWxQM0Q0QUFBREFteEoyQVFBQWVFMjExaDhrK1hHU3R3YmFoWHRKYm96b2xEekl0TWNXelpiblU4RGwxV3hLOEdWczk5UERKSTgzN0Z5Y0publBPQ01BQUFEZ1RRbTdBQUFBdktaYTZ6ekp6a0NiSDlPRCtZc2tkelBkc1VVM2t2d2tyZEdDTjFzSHo1SjhsVGJ5YUtwcjRkNkk5bWVvQU5rc2JaelI3aHJlKzlOU3luMjNDd0FBQVBBbWhGMEFBQUJlUTYzMWh4bXUvV05NRCtSUGtueWM1R3hpbDNBM3lZZkxjem16b2xmdUxNbVhhVUdOcWJXOTdLZU5OUnJMdXZoRmhnbVM3YWNGWHRiaHZWTEt3bTBDQUFBQXZDNWhGd0FBZ0ZkVWE1MGxtV2VZOFVVSFNYNDFrbFB4TEsxNVlrcGhobmxheUVXTFN6L0hTUjVsV29HbzNlVjlOb1p4VmtNMkp4MG11YldHOTMxYVNybnUxZ0FBQUFCZWw3QUxBQURBSzZxMS9qakR0RDZNcVhIaU9DM29NaFUzMGg3YTcxckJnMW1raFY2bTB1Z3hXOTV2WXdpOG5LUUZYb1lJbHYxNlRlZmdkaW5seUcwQkFBQUF2QTVoRndBQWdGZFFhOTFMc2pmQXBtZHBENTNIRU5aNG1PVHhCQzdYTEszQlJjaGxYQlpKdmtvTFRFM0J2YlN3MU5DZXBZME02MjFkNDR4TzA4WVpuYnNsQUFBQWdGY2w3QUlBQVBDU2x1T0xmanpRNWo5TEc4RXp0QWVaUmtqaE1HMWMwY3pLSGEyenRLYVhLYXluc1FSZUhxZUZ6WWE0bjlZeHp1alRVc3A5dHdJQUFBRHdxb1JkQUFBQVhsS3RkWjVrWjRCTjMwbHljK0REdjBoN3lENzJZSUp4UmRNemxmRkdONWYzNHRDR0NweXRhNXpSMjZXVVU3Y0JBQUFBOENxRVhRQUFBRjVDcmZXSFdjK0QzdTl6STYxVllrZ1hTZTRtT1JueEpUcElDeUlJdVV6WElpMVFOZVoxdHMzMzR6eXRZV3JWamtvcHR5MS9BQUFBNEZVSXV3QUFBSHlQV3VzUDBzWVh2ZFY1MC90cEQ1ZUhITVV6OXFETGZscklaVzZsYm96anROREx4VWozYnd5Qmw1UGxmZG43SEsyclplcDZLZVdwcFE4QUFBQzhMR0VYQUFDQTcxRnIvZXNrZjlsNXM3TzBvTXYrZ0ljKzVxRExMRzFjMFUwcmRDTmRwSTAyZWp6Uy9SdEQ0T1Zaa284SHVPOStuZFUzS0QwdHBWeTM3QUVBQUlDWDlSZE9BUUFBd0xlcnRlNmtmOUFsYVEwS2dpN2Y3Q0RKMzBYUVpaUE5sdmZBcnpQTzFwN2pKQTlHY0IvY0hPRHJ3c00xdk8rMVd1djdsajBBQUFEd3NqUzdBQUFBZkl0YTYxdHA0NHQrMEhuVFE3ZEdqRFhvc3JzOEwwWVdiWi9IYVUwdll4dHROSWFHbDE4TWNLOSt0b2I3OExTVThyYWxEZ0FBQUx3TXpTNEFBQURmN29mcEgzVFpUV3UwR01wWWd5NDNNOTZXRDdiMytvK2g0ZVZlV2hOT1QrczQ1cjFhNjZHbERnQUFBTHdNelM0QUFBRGZvTmI2ZzdSV2w3YzZiL3JYR1haODBkMGtpeEZkQ20wdXZHaU1MUzlETjd3OHpuckdDMzJYd3lTM1Z2eWUybDBBQUFDQWw2TFpCUUFBNEp2OU1QMkRMb2NaTnVqeUlPTUt1aHhFbXd0LzdyTGxaWDlFKzNTOC9CanluQngwM3ViakpHY3Jmay90TGdBQUFNQkwwZXdDQUFEd0xXcXR1MmtQMUh1RVh1WkpQaHZ3Y0I5azJJZjFWODNTUmpuZHNBcjVIbytTSEkxb2YrNE51RzR2a3Z4TitqYmVyS1BSUnJzTEFBQUE4TDAwdXdBQUFIeUxVc3Baa245SWNycm1UYzB5L0FpVXNRUmQ5dE5DUDRJdXZJeGJ5L1V5RzhuK0RObU9OTVRYa2VNMUhLOTJGd0FBQU9CN0Nic0FBQUI4aDFMS2Y1WlNUdE5DTC8rNnBzM2NTckk3MENFZUozazRrdE45SXkyNHNHL2w4UXJtU2Y1dVJPdm00eVFuQTIzN0lQM0hHVDFhdzN0K1lsa0RBQUFBMzBYWUJRQUE0Q1dVVXY2amxQSlBhUzBHLzdIQ3Q1NG51VG5RWVoxa1BFR1hlOHVQbWRYR2E1Z2wrWFhHMFFoMGtSWjR1Ump3WHVwNUh5MlNQRnZ4ZTJwM0FRQUFBTDVUY1FvQUFBQmVYYTMxaDBuMmtyejFCbTl6K1lCK2lGYVhzeVMveUhBUDVLK2VBMjB1ck5KeDJqaWhvZTB2Nys4aFBFc0wzUFN5bTlhdXMwcW5wWlMzTFdjQUFBRGdtMmgyQVFBQWVBMmxsSDlKRzIzMEwyL3dOamN6VE5CbDZPYUpTNWRoQUVFWFZ1bkdjbDBOM1JKMGt1RkNONzNIR1oybGhZeFdTYnNMQUFBQThLMkVYUUFBQUY1VEtlVS9TeWtuU2Y1WGt2TlgvTC92SjdrMTBLNC9USHNRUDZSNVdxUExycFhFR3V4bkhJMUJ4MGtlRDdUdE8ra2IrSG0waHZmOHhGSUdBQUFBdm9td0N3QUF3QnNxcFZ5VVVoWkovaW5KZjd6ay8rM09RTHY3T0t0dllIaFZOOUtDQ0RPcmh6VWFTK0RsWVpMRkFOdmRUZDlBM1ZsV0gzalpxN1crYnlrREFBQUFMeEoyQVFBQVdKRlN5citXVXY0aHlXbVMvL3lPLytuTnRHYVQzaFpwRDk2SGREUEpQYXVGVG1acGdaZURnZmRqcUxGaE45TTM3UE40RGNmNVM4c1lBQUFBZUpHd0N3QUF3SXFWVWs2VC9FTmEwOEdMWmhsbWZORkYyZ1AzSWQzTGNJMDJiSzlaa2wrbE5Rb041U0xKM1lHMmZhZnpjWDY1NHZlOFZtdTlaaGtEQUFBQVZ3bTdBQUFBckVFcDVUOUxLZitjMXFaeWZ1VS8zY2t3NDN1R2FwYTRkQy9EaGcxZzZEVjRrbUdhbGVhZGozc2Q3UzYzTEY4QUFBRGdLbUVYQUFDQU5TcWxuSmRTRmtuK09XU0c5c0FBQUNBQVNVUkJWTWtQTTh6RDlrZHBvWnVoQ0xvd0ZrT3Z4Y2NEM1lzOVEzYnJhSGM1ckxYdVdiNEFBQURBSldFWEFBQ0FEa29wWjBuK3h3Q2JYaVE1R3ZEUUJWMFltNkhYNUJBdFM3TWtOenR1Ny9FYTN2UFEwZ1VBQUFBdUNic0FBQUIwVUdzOVRIS3Q4Mll2a2p3WThMQUZYUmlySWRmbVVQZmxyU1M3SFkveGVNWHYrVXZMRmdBQUFMZ2s3QUlBQU5ESEp3TnM4MkdTczRHT1Y5Q0ZzUnR5alQ3TGV0cFB2cytkanR0NnRPTDMyMW1HQmdFQUFBRHlsbE1BQUFDd1hyWFcrMG4yT20vMldWYmZyUEN5RGlQbzhyS2VKamxQOHZXVlgxODZMNlVzdm1OZFhidnl5NTBrOCtYblAzM2gxM3k3ZTh2WEllNlZSMGtPMHE5dEpjdnR6ZFBHbTYzYjJmSzhydkpyd1M4ejdGZzJBQUFBWUNTS1V3QUFBTEErdGRhZEpIOU1DeC8wY3BIa2I1YXZ2ZDNJOHdBQno1Mm1CUXkrVGd1MExFb3A1eDNXMzE1YXVHR2U1TjIwVVZvN0xzZWYzUzkzazV3TXNPMTVrczg2YjNPeFBONGU5cFA4ZXNYditkNTNoY0FBQUFDQTdTRHNBZ0FBc0ViTFZwZmVJNHcrVG10MjZVM1E1YmxGV3FqbDc1TTg3UkZzZVlVMXVaY1dldm5wOG5YUDVSbzA4SElueWMzTzI3eWJQdTB1U1F2enJMSmw2S2lVY3R1U0JRQUFnTzBtN0FJQUFMQW1BN1c2UEVzTHUvUzJuL1pRZTdiRmwveEprdCttaFZ0T0o3Uk81Mm1obDF2Wjd0RkhaMGwra2Y2TlNMTzA5cE9lNDR4T2xzZmF3MEdTWDYzdy9jNlR2RDJtQUJrQUFBRFEzMTg0QlFBQUFHdnpVZnFQTDNvNHdISHVabnVETGsrUzNFN3lYMHNwSDVSU2pxWVVkRW1TVXNxaWxQSjVLZVc5SkcrbmIrdkhtRnl1NDk0dWtqem92TTM5dENhbUhwNmxCWWxXWlNmSis3NjlBQUFBd0hZVGRnRUFBRmlEWmF2TEx6dHY5bEZXKzFENVpjelNXaHUyS2VoeW11VFR0SGFKeTRETFJyUk1sRkpPcndSZjNrdnllVnFUeHJiWXp6Q2p1QmJwUDNyc1ZzZHRmVG5oZlFjQUFBQkdTTmdGQUFCZ1BYcTN1cHdrZVR6QWNkNUpDd2hzZzZkSlBpaWx2RjFLdVQrMUJwZFh0V3g4dVp2VzluSTdMZVN6RFc0a3VUbkFkaCttN3dpbDNmUnJkemxlOGJGZHE3WHUrVFlEQUFBQTIwdllCUUFBWU1VR2FuVVpZbnpSemZSN1dENmtvN1FXbCt1bGxDZmJ0cDVMS2VmTDlwcTNrMXhQQy8xc3VqdEo1cDIzZVpiV3p0UlRyNGFVaTZ5K3VlYlFkeHNBQUFEWVhzSXVBQUFBcTllNzFlVTRiUXhLVC9PMFFNQW1PMG9MdWR6ZTlCYVhsMVZLZVZwS3VaN3RDTDBNTVo3cmNmcU9JdHROdjFDUFVVWUFBQURBeWdpN0FBQUFyTkFBclM0WDZkL3FNa3NMQW15cW93aTVmS2N0Q2IwTXRjNGZkTjVlcjlESXlmSmpWZlpxclhOM0l3QUFBR3duWVJjQUFJRFY2dDNxOG1WYTRLV25JUm92ZW5pYTVMcVF5OHU3RW5xNW5XUVR6OWs4L2NmbExOSzNxV21lNmJhNy9OSmRDQUFBQU50SjJBVUFBR0MxZW83V09FdHJJZW5wTVAwZWpQZHludVIyS2VWNktlV3BKZnpxU2lsSFNkNUw4dW1HM3RPOTEzenZkcGNQTzIzbldWWWJ6bnZmM1FjQUFBRGJTZGdGQUFCZ1JXcXRoMG4yT203eVVlZEQzRS9mTUU4UFIya2ppNDZzNERkVFNqa3ZwZHhQOG5ZMmI3VFJ2ZlJ0TXpwTGN0eHhld2RKZGp0czV5SXQ4TElxTzdWV2dSY0FBQURZUXNJdUFBQUFxOU56cEVidmgrR3p0QWYrbStJMHowY1duVnU2cTFOS09WMk9OcnFiMXBxekNYWUhXUDhQMDNkRVdhOGcyMWNyZnIrZnUrc0FBQUJnK3dpN0FBQUFyRUN0OVZyNmpqcnBQZWJrVmxxenl5WTRTdktla1VYclZVcjVQRzIwMGFhYzU0UGxSeThYU2I3c2ZIdzkybXNXYVdHOVZkSHNBZ0FBQUZ0STJBVUFBR0ExZW83M1dTdy9lcGtudWJrQjErZzh5UWZhWFBxNTB2THk2WVljVXU5eFJvL1RyOTFsbHVSR3AyMFpaUVFBQUFDOEVXRVhBQUNBTjFScjNVdHkySEdUanpvZjRpYU1MMXFrdGJrOHNXTDdLNlhjVDNJOTB4OXIxSHVjVis5Mmx3ODdiV2ZWeDJTVUVRQUFBR3daWVJjQUFJQTNkOWh4VzcxYlhRNlQ3RTc4K2h3bHVWNUtPYlZVaDdNY0cvVjI1L1c3RGdmcE83S3NaN3ZMYnFkak8wdHlzc0wzdStZT0F3QUFnTzBpN0FJQUFQRG1lbzR3NnRucXN0djUyTmJocnJGRjQxRktPUytsdkpjV1FKcXludU9NZXJlNy9LelRkcjVhNFh2dDFWcm43akFBQUFEWUhzSXVBQUFBYjZEVytuNlN2VTZiNjkzcU11WHhSZWRKUGlpbGZHNlZqazhwNVhhU3V4TStoTjBrTnp0dXIyZTd5NDMwQ2ZJOFcvSDczWEpuQVFBQXdQWVFkZ0VBQUhnelBSK3dmdFZ4VzcxSHRhelNlZHJZb2llVzUzZ3RnMGkzSjM3djl4cnhkWkhrdU9PeDNlaXdEYU9NQUFBQWdOY203QUlBQVBDYWFxMDdTZDd2dExtejlIdllQVXR5WjZLWDVUTG9zckJDeDYrVWNwVGtnK1YxbTZLZTdVYzlSeGw5MkdrN3F3end6V3V0ZSs0cUFBQUEyQTdDTGdBQUFLL3ZzT08ySG5YYzFzMzBhNnhZcFVXU3R3VmRwbVhad0hNOTB3eTh6Tk92QWFsbjRHMDN5WDZIN2F4NmxORTFkeFFBQUFCc0IyRVhBQUNBMTlkcmhORkZWdjlRK052TTBxL1ZZWlVXYVkwdTU1Ymw5Q3dEU3JlWGEzMXFlcllnOVd4MytWbUhiWnd0UDFibDUrNG1BQUFBMkE1dk9RWHdhcGExeUZjL0xyMmJaT2ZLcnhkSi92M0tyNThtU1NubHFiTUlBTEF4Znk3czFlaHduSDRoZ0R0cGdaY3AyWWlneTVXZk5YWmVXRnN2L3F4eG11Ui92M0Q4NTBrV1V6MEh0ZFozbHNkd044bG5FMXVEKzBsdXBFL3J5c255ZXZmNDJuTWp5Y01PMjNtVzFpYTFDdGQ4ZHdJQUFJRHRVSndDK0hhMTFubmFYNWE5bTlYV1U1K24vUVhsM3k5Zm4vb1hxQUFBay91ejR2MGtuM1RhM045a3RlMEgzMlkzeWQ5TjdGS2Nwd1ZkRmhOYlAxZC8xdGpMNmg3U1gvNnNzVWp5OWZKbmpkT1JuNHQzOHFkanMrWnBnWmNwT1Z2ZXB6M2NTSEt2MDdZK3p2cGJwVlo5dmQ4enlnd0FBQUEybjdBTFhGRnIzVW55ZmxyMThiWDg2YitlWExkRld2dkxiN1cvQUFCTTRzK09mOHlmTnYydHk3TzBCODQ5M0V0N2tENFZrd202RFB5enh1bVZueldlak95OHZCaDB1ZFF6MExFcUQ5S24zU1ZKL21mNnROOGNMNDlyU3NmemFTbmx2dTlTQUFBQXNObUVYZGg2TC95bDgvc2oyYTN6SkUrUy9LMS9rUVlBTU1vL1E4NlQvR09uemZWb1ZraW0yZW95NmdhSGtmNnNrZVhQR28rR0RyNThSOURsMHMyMHNWcFQwYlBkNVU1V04vcm51MXdrK2U4ZHRyUEtvTjNUVXNwMTM2a0FBQUJncy8yRlU4QzJxclhPYTYxZkpQbGpraTh5cnI5ODNrbHltT1FmYTYxL3JMVit0UHlMY2dBQXhxSFhueDNQMGlmb2tpUzNKbllOYm84MTZITGxaNDEvRytIUEdwZnI5emUxMW4rcnRYNVdhOTBiNEJ4OVg5QWxTUjZuWDFQS0t1eW1YelBTbDUyMk0wdHkwR0U3WDYvd3ZhNzVGZ1VBQUFDYlQ5aUZyVk5ydlZaci9WM2F2OFE5VE4vNjhOZXhsemEvL0krMTF2dEQvRVUwQUFCLzV1ZWR0dE1yNk5MeklmMHFmRjVLT1JyaHp4cnZ2L0N6eHRqdEpQbG8rYlBHRjdYV2E1M08wOHNFWFM0OVNCdjVPaFc5UW1ObkhjL0xUenBzWTdIaU5YWXRBQUFBd0VZVGRtRnJYQW01L0M3VC9KZGVPMGsrU2Z1TDZNODB2UUFBRFBibnlyMGs4MDZiNjlYZU1LVldsNmVsbExzai9GbmpqMGwrayttMlNod20rVjJ0OVhmTE1WM3JPbGV2RW5TNTlIRmF1R01LZWdiSHZ1cTBuUjdOTG1kSlRsYjRmbE85RHdFQUFJQ1hKT3pDeHF1MTd0VmFmNVBwaGx5K3llVy92cnp2Q2dNQWROZHJKTTFKK2p6Z24yVTZyUzduU1Q0WTBjOGFWd1AxZXh1eXZxK2xqVlA5WXRXdGtxOFpkRW1TaTdUQXkxVDBDbzg5VzU2YkhsOGo5anRzWjVYdExqLzFyUW9BQUFBMm03QUxHMjBaQnZuSDlIc2cwZE5Pa2s5cXJYOVUwUXdBLzQrOXV3ZVI1TXpUUmYrOGc0eUJJOWdjV0RneUZpYWJsWEU4bGVCNlowSFoxbzZuYXM0NjExSzJjYTFycU50YWErbHVqclZXdDR5MXE5cTYxOWhEbCtBYWM2ek9CaTJNc2RBbEdHT01YcFFEWS9RQndlWkNINUFoZUs4UlVlcFNUWDlVVlVaRVJtYitmdEQwaktUS3lQaEh2Rkh4OGNUL2hVRU5OWVhSVUYxZC9tNkxhbitybExJYXdYWEdwTlo2bE4wSzFGODBUeE42dWQ5UnphNGJkRG56SXNrL2JVbnRQc293M1o5ZVpiaXB6djUyZ0dWODIrRm51VVlHQUFDQUhTZnN3azZxdFI3VVdwK25tZlpuMTZmN21hWnBOMjVxSXdDQS9zOHpKeG51SWVwUUQ3SC8yNWFVLzBFcFpUR0NmZUF3eVhkcHdpQzc3aXhnLzN5ZHFZMDZDTHFjK2VkMDIvMmpUME4xZC9tWGdaWXpSSGpudE9PeGVoQUFBQUJnWndtN3NITnFyWGZTZEhQWnR4dGJkOUs4ZVRtekZ3QUE5R2FvYzYyaHBpZjVUWm9wU3NidXRKUnlmOFBYR1pOMmV0UW4yZjFBL1VVSHVXYVhsdzZETG1mK1lhQ3gwVVhOUHRxaFk4WEhBNnpQcXpRZGZMYnRlQTBBQUFCc2dMQUxPK1BjemVlSGUxeUdhWm91TC9mdEVRQUF2UmhxQ3FPaHVqVnNRMWVYVlpKYkc3N1dPTWp1VG85NkZmZHFyVTh2MjFHeWg2QkwwZ1FpL25GTDZqWFUrQnFxQzlTMmRYZjV4SzhzQUFBQTJGM0NMdXlFOXViejA3ajVmT1plcmZXSmFZMEFBRG8zRzJnNVF6eTgvcmo5TTNaZmxWS1dHN3pXbUtjSnVrenQvaitOZ2UvZU4wVk1UMEdYOCtQam15Mm8xVzhHV3M1UTRiZ2h3aVBmYnVIeEdnQUFBTmdBWVJlMjNybWdpL200Zis0d1RaY1hnUmNBZ0k2VVVtNGt1Wm5rVWJydFFIRGVVTk9TYkVOWGw0MU9YMVJyZlpqa3lKNy9aeVpwcGpXYXY2VnVmUVpkenZ4VHhqK2QwWWNaSnZBeTFESGpiNFlZOHgxKzF0VDFNQUFBQU93dVlSZTIycm0zTE4zQWVyT0RYT0t0U3dBQUxxK1VzaWlsM0MybGZKcmtWMm1tMkRsT3N1eG9FZDhPdENwL3N3WGx2cnZCYTQyakpIZnM4ZTkwVkd1OWM2RnVRd1Jka3VSbGtzZGJVS08vSFdnNVEzUzYrVEQ5ZDRONjFXN2JMcStKQVFBQWdCMGs3TUxXYW9NdTNySjh2MG1hRGk5dThnRUFkS3lVc2lxbG5KUlNicmRkWDI0a3VaM2tKTW5xbWg4N3hFUHIzNlI1Y0QxbXg2V1V4UWF1TXlhMTF1ZEo1dmJ3UzNuWUJvT0dETHFjK2Vja0wwWmVuNE9CYXZMdGdPdlR0eTY3dTh3TVVRQUFBTmhOd2k1c0pVR1hLeE40QVFBWVFDbGxXVW81THFYY0txWDhLc21uU1I0a1dWenlJMTZrMjY0R2IvTmZSMTdLVlRiUTFhV2Q4c1FVcVZjM3I3VSt5YkJCbHpQL3RBWDFHYUtMMGpjRHJjc25BeXpqMzdicyt3SUFBQUFiSU96QzFoRjB1VGFCRndDQWdaVlNUa3NwOTBzcE4wc3BKYzJVUjQveTlzNEZwd044clE4ei9pbU12aXFscklaY29LREwyZzZUL1AwR2xuczYwTGhaeDM4YllCbXZCcXJERU9PankyNDlVME1UQUFBQWRwT3dDMXVsRFdvOFZJbHJPd3U4VEpVQ0FHQjQ3WlJIZDBzcG55YjVWWm9wajQ2VExOdi81RjhHK0JwakQ3b3Mwd1NDaG5ZVVFaZDEvU2FibWY3cEgwZGVsNCtTZkR6QWNvYVl5dWpEOU4vQnA4dlFqakVOQUFBQU8wclloYTNSQmpTZXBnbHNjSDJUSkUvYU4xY0JBTmlRVXNxcW5mTG9kaW5sUnBvcGo0Ym96REQyS1l3ZWJLQ3J5MUdhemlTczc0czBvWmNodlV6eTI1SFg1Vzk3L3Z4Vmt2OTNvSFhacXU0dXRkYVpZUWtBQUFDN1I5aUZyZEFHTTU1RTBLVXJCMjA5QVFBWWoxY0RMR1BzVXhndFN5bkhBMTlyM01sbXVwSHNzci9QOEIwMUhtL0JOVmpYeDRzL0pmbDlrbS9hS2ROK215YjAwcmUvSG1BWnBqSUNBQUFBM2tuWWhXM3hNTm9QZDIxV2E3MnZEQUFBb3pGRXNIdnNVeGc5R0hKaGJjY0gwNlQyNDcrbi8rbHV6aHQ3ZDVlUDE2ekhqKzA2L2lISjcwb3AvMXBLZVZGSytiNlU4dU81LzI0eHdMb01jVzMrdnpyOHJLbmhDQUFBQUx0SDJJWFJxN1hPNDAzTHZ0elQwaGtBWUJUbnZCK2s2YnJTdHpGUFliUWFzcXRMTzAycWJvZjkrVEJONEdWSVkrL3VjdFd3MmZkcE9wejhheW5sbTFMS0gwb3BMMHNwUDd6alo1NE5zQjRmRDdDTUxxZDArOHh3QkFBQWdOMGo3TUtvdFRlZ3ZXblpyeWZ0TkZFQUFHek9VT2RqWSs2VytOWEF5enVLYVZMNzluR1MvM3ZBNWIxTXR5R0pybjN5bm4vL0tza3l5V2twWlZGSytYMHA1VStsbEt0TWNiYllrV09KYVl3QUFBQ0FkeEoyWWV6Y2dPN2ZwSzB6QUFDYlBTZnIyMEdHNlI1elhZK0dXbEE3bmVmTWJqZUl2OHV3SWFzeGQzZTUyTm5saHlSL1N2TDdKTiswVXhNdFN5bXI2eTZnbERKVTJLZnY3aTZ2Mmo5ZG1CcUdBQUFBc0h1RVhSaXRkdnFpbVVvTTRyRFdlcWdNQU1DSXpnVVBhcTM3Tk1YTUVDR1VNWGQxT1Y3bkFmOFY5NjFwa250RzJhRCtQc01GclU3VGRIZ1pxNE1rZjBqeXUxTEs3MG9wTDBvcDM1ZFNmdXh3R1lzQjF1TS9EN0NNRngyTyt3UERFQUFBQUhhTHNBdWoxRTZyWS9xaVlUMDBuUkVBTUpKendYbVNwOW12RG45RHJPc25JMTcvSWJ0eDZHbzR2SS9TZEhnWnl2OFljUzErWFVwNVdVcjVvY2RsUEJ0Z1BUNGVZQmxkVG1Ya1doY0FBQUIyakxBTFkzVXZia1lOYlpya2pqSUFBSnRVYTcyVFBadktzdFk2Vk1lTHNYWTJXSlpTRmdQVmVoN2RJemZsaXpTaGx5SDhkc1IxR0dML0cySXFveUdPSi85N3krb09BQUFBREVqWWhkRnAyNG9MWFd6R3ZiYitBQUNiT0E4OHluNTI5OXYzS1l5K0dtai8wajF5OC81K29PVzhTdkxOU0d0d01FQkh6ZE9CMXVXakxWcVB2ekQ4QUFBQVlMY0l1ekJHOTVSQS9RR0EvVkZybmRSYW55ZVo3MmtKOWozc2NqTFFjdTVFOThoTk94aHdYL3lmSTY5RGIwb3B5eVNyQWRhajc3RExxejA1QmdJQUFBRFhJT3pDcUxSZFJlWXFzVkZ6M1YwQWdBSFAvdzZTUE0xK1A0Z2NJdXp5eVVqWC9iUjlNTi8zZmpaSjhxVVJOd3BmRExTY2I5SnRXS0pMc3lIRzFnREw2UHU0L2NKd0FRQUFBTjVHMklXeDBWWEVkZ0FBOWtTdGRSWkJsMlNZYmlNZmozVGRIdyswSEYxZHhtUEk3aTVqbmNyb3N3R1dNVVRZNVQ4TnNJeVhIWDNPek5BREFBQ0EzU0xzd21qbzZqSXF1cnNBQUgyZis4M1RCRjBtZTE2SFh3NndtSTh6VFBlWTZ6Z1pvTWE2dW96UFVOMWR2aDNwK2c4Ujl2bmpRTWVXdnIwMFhBQUFBSUEzRVhaaFRPWktZSHNBQUx1djF2b3d5WkZLSkVtR0NMdDhOTkoxSDJRS28vYThWbGVYY1JtcXU4dFlPN3RNQm5pNVlJak9Ma01jV3pxYmlxcnRKZ1lBQUFEc0NHRVh4dVFMSlJnVmI3OENBSjJxdFU1cXJVL1NUQ2xEWTUrbk1GbzRyOTFyZnp2QU1sNWxtTkRIZGZRZDl0bVZzTXUvR1NvQUFBREFtd2k3TUFxMTFzTWtVNVVZbFVrN3ZRQUFRQmZuZTVNMDB4WWRxc2JQZkREQU1qNFo2YnAvN1RwanIvMG13MHl2dFpkVEdaVlNWa2xXQTZ6SFIxdTB6emtXQUFBQXdBNFJkbUVzUGxjQzJ3VUEyRTIxMW9NazMyV1lhVXUyelJBUCswZjVNTHFVc25BK3UvZCtNOEF5eHRyWjVaTWRXZmVQdG1nZHBvWWNBQUFBN0E1aEY4YkNHNzRqM1M3dFc5Z0FBTmZTZG9wN21tR202OWxHUTNSMkdXUFlaVEhBdmpkSk1yZUxqZG9RVXhtTk5ld3lIV0FaT3JzQUFBQUFPMHZZaFkxclc0dDcrREZlZ2tnQXdIWFA4KzRrT1hLdTkwNTlkM1laYXplZFo4NWpTZkp4aGdsTGpESHdNc1RZSEdJS3A3NjMzOHNPUCtzVFF3NEFBQUIyaDdBTFkvQ1pFdGcrQU1CdXFiVWVKWG1vRXUrczBSQmRYVDRjNmVvUEVUNHdoZEYyK0pzQmx2SHRTSThCMDU0WHNkcUIvYVBMc0l2Z0pRQUFBT3dRWVJmR3dCdVh0ZzhBc0NOcXJaTmE2L09ZUHVZeWhnaWlmRHpTZFI4aTdES3ppMjJGL3pyQU1sNk1kTjJuT3pET2RFc0JBQUFBTmtMWWhZMXEzMlNicXNTb1RXcXRCOG9BQUZ6aTNPNGd5Zk9NZCtxY2ZmU2ZSdmlkVnFXVVpjLzc0aXk2T0d5TElZNFhMMGU2N3E2Rmg5MStqZ2tBQUFDd1E0UmQyRFFQUXJiRFRBa0FnSGRwd3dWUDQrSHRWUXp4NEhXTW5WMTBkV0hvNjhLOTdPeFNTbG5zeVA3eGNrdjJNd0FBQUdCQXdpNXMybWRLWURzQkFOdXQxanBQRTNUeDFqeVhNVVRZeGZucmRqbllrZjN1cXY3Q3RnTUFBQUM0bmcrVWdBMXpZOHgyQWdDMldLMzFLTWxjSlp6SFhjRi9PSC9sZ2s4R1dNWXI0eE1BQUFCZ2QranN3cWE1dWJjZHBrb0FBSnhYYTUzVVdwOUUwR1VkKzlvSlo5SHp2am1OTGtQYlpvanB0djdOZU50YUx3d1JBQUFBNENKaEZ6YW0xanFKbTlEYnRMMW1xZ0FBdE9jRjB6VFRGaDJxeHFoOXVLZnJMVkMvbmZ0cTMvdXJ6aTdiZTZ6NTN4Mysvbko4QUFBQWdCMGg3TUltdWNtMFhRU1RBSUN6QjRYUG5jdHRoWS9IK0tWS0tRdlhHV3hnZngxamQ1Q0piYWZtQUFBQXdQVUl1N0JKYmpKdEZ3OE5BR0RQMVZybmFUcTZPSTlqekg2dEJGdnBZeVhveFVvSkFBQUFnRjBrN01JbUNVOEFBR3lKV3V2OUpFY1JkT25TUHRaeU9jQXlwbmF0cmRUM1ZEZ3Y5clN1MzlxMUFBQUFnRjBrN0FKYzFpZEtBQUQ3cWRaNmxPU2VTdENCNVFETEVNamFUdis1NTg5L05kTGpxNWRBQUFBQUFLN2hBeVVBTHNsREF3RFlNN1hXU1pwcGl6eU0zVTRIMXBzdDhwSHJMTjdpbFJJQUFBQUFGK25zd2licEZBSUFNRkp0dDRIbkVSd0FZTE5lS0FFQUFBQndrYkFMbStRTk5nQ0FFYXExenRKMGRKbXFCckJEWGlvQkFBQUF3RzRRZGdFQUFINVNhNTJuQ2JvSUp0T0hsUkt3UWNJdUFBQUFBRHZpQXlVQUFBQ1NwTlo2bEdTdUV2VG9XeVZnZzM2ZjhRV3VCTUFBQUFBQXJrSFlCUUFBOWx5dGRaTGtTWktaYWd5bmxMTG9lYnZhbnZCei8xQktXU29EQUFBQXdQWXpqUkdiNUEwMkFJQU5xN1ZPMDB4Yk5GTU5CdkNKRWdBQUFBQUE2eEoyWVpPME1BY0EyS0JhNjBHUzUwa09WSU9CVEpTQURmcEJDUUFBQUFCMmc3QUxjRmxMSlFDQTNWRnJuYWNKdWdnZkFQdEMyQVVBQUFCZ1J3aTdBSmYxUnlVQWdOMVFhNzJmNUVnbGR0N0tlZ003UVBjeEFBQUE0TThJdTdCSkN5VUFBQmhPclhWU2F6MUtjazgxOXNLcDlXYUxtT1lXQUFBQWdFdjdRQW5ZSUc5Y2JwZUZFZ0RBOXFxMVRwSThqVGZrMlN6N0g1djBveElBQUFBQTdBYWRYZGlZVW9vM0xyZUxjQklBYktsYTYwR1M1eEUwWVBNbUF5emptVEp2cFJjRFhJTysyc082Zm1iWEFnQUFBSGFSc0F1YnRsU0M3U0NjQkFEYnFkWjZtS2FqeTFRMUdNaysyWGZnUlVoN083MVNBdHNPQUFBQTRMS0VYZGcwQVlydHNGQUNBTmcrdGRaNWtpY1pwcHNHSTFOS0dlczVYTjhkaGx4anVEWjhFNEdNL3J6WW91KzZ0TGtBQUFCZ053aTdzR25mS3NGVzhNQUFBTFpNcmZVb3laRktNRUo5aDYrY3UyNmZsd01zNDBmamJXdjlkVmNmVkVwWkdtNEFBQUN3RzRSZDJMU0ZFbXlGWjBvQUFOdWgxanFwdFQ1Tk1sY05NczRwZlhydDdGSktXVVgzaG0welJFQnBYenU3SE96QU9ueG9pQUFBQUFBWENidXdVU051cmM3UDJVNEFzQVZxcmRNa1Q1UE1WSVBXR0x1Yy9OcjVLeGY4MndETCtFR1plMkY2S0FBQUFHQWpoRjBZZzRVU2pOcHArM1lzQURCaXRkYURKTSt6RzIveHM5dUcyRWRObDdwbDF4d0RMR1B2UWhsdEFMSnZMK3krQUFBQXdDWUl1ekFHWHl2QnFDMlVBQURHcmRZNlR4TjBtYWdHRjR4eE9zb2h3aTRuTnYzV2VKVmhBaFA3MklGa3VpUHI4YkZyV3dBQUFPQWlZUmZHd0kzb2NYdXNCQUF3WHJYV2gwbU9WSUl0MjI5N0RieVVVcFpKbGlxOUZiNFpZQmsvbEZKK1ZPcGV2QnhnR1I4cU13QUFBSENSc0FzYjE5NklQbFdKVVZxV1Vtd2JBQmloV3V1azFucVU1STVxOEE2TGtYNHYzVjA0TThTVVU2LzJ0TGF6QVpieHYrekNBQUFBd0NZSXV6QVd1b2ZZTGdEQUpkVmFKMG1lSnBtckJ1K3hHdW4zK3N5NUxLMGhPcnU4VXVhdDlYR0huK1ZGRGdBQUFOZ2h3aTZNaGJjdXgrbFlDUUJnWE5ycFg3N0xNSjB4MkhJajd0STNHMmpkbC9hQ1VmdHRoZ21pclBhMHZrT0V5dm8reG5RNWhkRi9HSElBQUFDd080UmRHSVYyS2lPQmwzRlp0TnNGQUJpSld1dGhtbzR1RTlYZ0NzWVllSm5XV3FjRExNYzF4cmo5eTBEWG0vc2FkdG1GM3hVZkdpWUFBQURBbXdpN01DWmZLWUh0QVFDOFdhMzFUcEluRVhUaDZwWWovVjR6NTdSNzdXV0dtY0pvdGNjMUhxSUQySXVlUDcvTGFZd1doaDBBQUFEc0RtRVhScU9Vc29nMjQyT3hMS1Y0Q3hZQVJxTFdlcFRrb1Vwd1RkK085SHYxUHNWSzI2bHdZUmNZcGY4NTBISyszOVBmRzlPQkZ2WEtyZ3dBQUFCc2dyQUxZL05BQ1d3SEFLQlJhNTNVV3A4bW1hc0dhMWlNOUhzZE9yZmRhLzg4MEhMMnRiUExkSUJsdkJoZ0daOTArRmxMd3c0QUFBQjJoN0FMbzFKS09ZNGJVSnUyYkxjREFMQkJ0ZGFESkU4enpGUXY3TGJUa1g2dlNidWY5MzJOc1hDTk1UcS96VEFkUVg0b3BleHI1NUVoZm5kc1ZXM2JUazhBQUFEQWpoQjJZWXk4ZWJsWmQ1VUFBRGJyWE5EbFFEVllWeWxsbGZHR1BiNXdqYkdYSGcrMG5PLzN1TWEvSG1BWlEweVIxdFh2d1pWaEJ3QUFBTHRGMklYUmFidUtMRlJpSXhhbGxCTmxBSUROcWJYT2t6eFBNbEVOdWp6UEcrbjNHbVFxSXgwa1IrVzNTVjRPdEt5WGUxem5BL1g5bVZORER3QUFBSGFMc0F0ajVjM0x6ZERWQlFBMnFOYjZNTW1SU3RDRGIwZjZ2YVpEVEdYVXVtMDMyTGhYR2E2cnl6NVBZWlRzUnRpbHkzWFEyUVVBQUFCMmpMQUxvMVJLV1NRNVZvbEJQU3FsZU5zTkFEYWcxanFwdFI0bHVhTWE5R1F4NHUvMjVZRFhHQXU3d2tiOWp3elhEV1J2cHpDcXRjNEdXdFNMbmovL3d3NC82MXZERHdBQUFIYUxzQXRqZGpmZXZocktNcnJwQU1CRzFGb25TWjRtbWFzR2ZXbER6V005dHo1c3g4RlExeGhzeHNzay96emc4djYweDdVZXFxdEwzNTF6UHU3d3M5eGJBQUFBZ0IwajdNSm9sVkpXMFdwOEtMZmJlZ01BQTJxbmIva3V3enlZaE1WSXY5Y2t5ZUZBMXhpbkVmTGVsSDlLLytHSU02dFN5Zzk3WE90UEJsakdFQjE2L3JyRHo5TEZGQUFBQUhhTXNBdWpWa281aWVtTSt2YWdiZWtPQUF5bzFqcFAwOUZsb2hvTTVObUl2OXVYQXk3clVack9oZ3pubS9iUFVGN3VlYjJIQ0ZBT01TM1FSeDErbGpFUEFBQUFPMGJZaFcxd045N0M2c3VpbEhKZkdRQmdXTFhXTzBtT0l1akNzRTVHL04wT2FxMnpJUmJVZGpTOFpYY1l6S3NrL3pqZzhuNG9wZXh0MktXZEVteUlzTXVMQVpieGNZZmpmbWtvQWdBQXdHNFJkbUgwemsxblpKcWRicm5KRHdBYlVHczlTdkpRSmRqQWVmVXk0KzV1OE1XQXRUQ2QwWEQrSWNOTlg1VG82akliYURsOWgxMCs3dkN6Rm9ZaEFBQUE3QjVoRjdaQ2V6UDZ0a3AwWnBYa1poc2tBZ0FHVUd1ZDFGcWZKNW1yQmhzMDV1NHU4MXJyZE1CcmpQdnhFTHh2anpOc2w4NGZrL3hwejJ2KzJRRExlSlgrUTBXbU1BSUFBQURlU2RpRnJWRktPWW5BUzFkdXR3RWlBR0FBdGRhREpFOHp6TlFTOEM1ZmovejczUnQ0ZWJmaVFYaGZUcE1jRDd6TVA1VlNmdHp6dXM4R1dNWldUV0dVNUkrR0l3QUFBT3dlWVJlMlNpbmxPTVBmTU4wMXQ5dmdFQUF3Z0ZyckxJSXVqT2Q4ZXBGeFR3ODZkSGVYczZrOWRUenMxb3MwMHhjTmFlKzd1dFJhSndQOXJ2bDJnR1Y4MHVGbmVkRURBQUFBZHBDd0MxdW5sSEk3QWkvWGRic05EQUVBQTZpMXp0TUVYU2Fxd1lpTVBmZzhhSGNYVTZaMjdsV1NmMnovSHBLdUxzTjBkVW1HNmV6UzVUUkd3aTRBQUFDd2c0UmQyRW9DTDljaTZBSUFBNnExUGt4eXBCS00wTmluTWhxMHUwdDdmV0hLMUc2OFNuSTN3NFFoenR2N3JpNnR6d1phVHQvaGtRL1RZZGlsbExLMGF3QUFBTUR1RVhaaGF3bThYSW1nQ3dBTXBOWTZxYlUrU1hKSE5SanBlZlJKK3N4YnZnQUFJQUJKUkVGVXhqOXR6OE1OMU9VNEFpL3IyRlRRSmRIVjVjemhBTXQ0a2Y2NzluUTVGZFBDYmdFQUFBQzdTZGlGcmRZR1h1NnF4RnV0a3R3VWRBR0FZZFJhSjJtbUxUcFVEVVp1N09lSGg3WFdnNkVYS3ZCeWJac011dndRWFYzU2RrT2FEckNvSWFZRStuakx2aThBQUFDd0FjSXViTDFTeXFNME42UlhxdkV6eXpSQmw0VlNBRUQvMmdmejM2WGJOOUtoTDQrMzREeDJJdytwQlY2dWJKTkJseVI1b2F0TGt1RkNsdDhPc0l4UHR1ejdBZ0FBQUJzZzdNSk9hRzlJMzB4elk1emtKTW1ubTNwQUFBRDdwdFk2VDlQUlphSWFiTW41OCtrSXo1MVhTZTZXVW01c09yQjlMdkFpVVA5dW13NjZyRW9wMzlzTVNaSXZCbHFPemk0QUFBREFLQWk3c0RQYUcvYWZwZ2w2N0xPN3BaUmJwUlEzNWdGZ0FMWFdPMG1PSXVqQzl2bHFSTi9sVVpJYmJkZkdzVnhmSEtjSjFEdXZmck1YU2Y3UGJDN29raVIvc0JsK21rTHZZS0J0L3FyblpYeWM1TU9PN3hNQUFBQUFPMGpZaFoxU1NsbVZVbTVsUDkvQ1BFM1R6ZVdSUFFFQWhsRnJQVXJ5VUNYWVVzY2orQTZMOWh6MjdoakQydTJEOGh2UkhlS2kzNmJwNlBKcWc5OWhXVXI1d2FaSU10d1VSdjlma3QrbENSbDluNlNQNmFPNkRPMHM3Qm9BQUFDd3U0UmQyRW50VzVqNzB1VmxsZVJCS2NXMFJRQXdrRnJycE5iNlBNbGNOZGppYytaVk5oZDRXU2E1VlVxNU9mWnoyRFpRLzJtYTdqUDc3bFdTZjJ6L2JETG84cXFVc3JRNWZ2TDVRTXQ1VmtyNW9aVHlzcFR5KzFMS04wbit0UjNQWFlYVi9yckQ3K3Y2R0FBQUFIWllVUUoyWGEzMU1NMGIxOU1kWEwyVE5OTVdMVzFwQUJqczNPSWd5Wk1kUGJjWW0wVXA1YVl5OUw0L1B4OXdrYXNrWDVWUzdtOXB2V1pwcGkzYngvSC9Jc2svSkhrNWd1L3lyNldVVjBid1QxTVkvZnNReXlxbGxFdDhuNzlNTTYzZkpOZWJqdWovU2ZKUlIxLzVWaW5seEY0Q0FBQUF1MGxuRjNaZUtlV2tsSElqVFp2dFhabmFhSkhrWmlubGxxQUxBQXluZmREOU5JSXU3TTY1OG1tR20rcmpPTTJVUmZlM3VGNkxOQjBrOTZuTHk2c2tqNVA4WHhsSDBPV0ZvTXZQRERXRjBja2x4OGozcFpRWHBaUi9UZkpObWltUFhpYTV6SlJUSDZXN29FdWlzd3NBQUFEc05HRVg5a1lwNVZHU0cwa2VaSHRETDRzMElaZWI3WTEyQUdBZ3RkWjVtcURMUkRYWU1ZOEhPb2U5dlF0QjdYWmFvN3RKYm1iM0g2Wi9reWJrY2p5UzcvTjlLZVZQaHV6UGZEblFjcjYreGxqNXNaM3k2QStsbE44bCtWMmFEa0hmSi9ueERUOXkwT0gzWFhveEJBQUFBSGFiYVl6WVcrMERxeS9UN1EyMXZoeW5hZmZ1elRRQTJOeTV3OU1rTTVVWWxHbU1odHUvdjB2M0hZdVdTUjZVVW81M3RHWWZKUGsvMG5UVytDTGRkcVRZdEJkSi9pbmpDdlA4a0diNm9oK04ySi8yd1dtUzd3WmEzSTJ1d3lQdEZFem4vL3ozSkgvVDFUVjBLZVcydlFRQUFBQjIxd2RLd0w1cWI3b2YxMW9QMG9SZURqT3VON1ZQazN5VjVLU1VzckxGQUFEbzBZTWtSeDEvM3FNZFA0LzlxeVMvVFBMYk5CMVEvaTdKMzJhN1F5OHYwM1Q2K2UwSXY5dnZCVjMrekh5b2E5TSt1cVMweDRkVjhsTjRyTXNYVVo3WlBRQUFBR0MzNmV3QzU5UmFENU44bGliNE10M0FWMWlrYVE5OW91VXlBSXp1UEVGbmx3MmNHK25zTXRqK1BVblRJV0xkOFBkSmtydTdmaTViYS8xbG1xNHViM3FCNURmWnZrNHZwMmxDTG1QdEpQbUhVc3BMSS9YUDlzTStPaks5eWQxMld1QSsxK1VneWZNT1AvSlRuVkVCQUFCZ3QrbnNBdWVVVWs3UzNxQnZXMExQMG9SZkR0TDlkRWVyTkRlVG42VjVrTE93QlFBQTJOQjU4S3JXK2xXU2U5ZjhpTk0wRDhUMzVaeDIrbzdyNmQrMmZ3N1NkSHI1elVqWDRWWDdQZjlIbW80dVkvVW5RWmMvMTc2b01SMW9jU2NETEdQVzViVzJvQXNBQUFEc1BwMWQ0QXJhdDgwbWVYMGo3cE5jN3UzWDB5VC9rV1RaL2prMU5SRUFiTjE1Z000dXc5UFpaZGg5L0RyZFhWWnBRaTdIZTFhbnF3VGhQMHp5TjBuK2EvdjNKcjFLTStYU3Y3Ui9qOTNMVXNvZmpNNDM3b2RQMG5RazdkdHBLZVhUTGZzZGUxeEt1VzB2QVFBQWdOMm1zd3Rjd2JtM3d4YXFBUURBanAzclhyVzd5Nk1rRC9Zd3hQM3hGZi83c3c0cXYyMy8vOStrQ2MwZlhPT3pydU0weWJkcHdpMHZ0cWpPcjdicyt3Nm03VUo2T05EaUhnK3dQdWRmS09uQ00zc0pBQUFBN0Q1aEZ3QUFBSklrcFpUN3RkWXY4dTdwVVJaSmJwZFNsdnRXbjFyclIyazZ0YXpqbS95OHE4cFo2T1UvdDM5LzFQNjVxaGRwQWlMZnBwbVc2RVcyTnl6eUtrMUhrUitOeWplYUQ3aXNJYVl3NmpxNHM3Q0xBQUFBd080VGRnRUFBT0M4QjBtTzN2RFBsMmxDTG90OUxFcXQ5WVAwMDRubHRQM3pKdStiTG1rWHU1OEl1cnpmbHdNdDUzU2dVTnRuSFg3V2NoK0RlQUFBQUxDUGhGMEFBQUQ0U1NubHVOWjZMNis3dTZ5U2ZGVkt1Yi9ucGZtckRWeERuKzVaalFWZDNxUFdPazh5R1doeGp3ZGFUcGVkWFU3c0pRQUFBTEFmZnFFRUFBQUFYSEM3L2ZzNHlZMTlEN3JVV24rWmQwL3R4UG9FWFM3bnl3R1hkVHpBMkRwTXQrR2RaM1lSQUFBQTJBODZ1d0FBQVBBenBaUkZyZldHNlVCKzhyRVM5RXJRNVJKcXJiTzhmMnFycnB5VVVsWURMT2Z6am85ZE9yc0FBQURBbmhCMkFRQUE0TThJdWpScXJaTWtmNmtTdlZrbCtiMmd5NlhjRzNCWnBqQUNBQUFBUmszWUJRQUFBTjd1dnloQmIxNldVdjZnRE8vWGRuV1pEYlM0NVJBZFVucVl3dWhyZXdvQUFBRHNEMkVYQUFBQWVJTmE2MThsK2FWSzlPSkZLZVZQeW5CcFh3NjRyS0c2dW56ZThlY3Q3Q1lBQUFDd1A0UmRBQUFBNElKYTZ3ZEpwaXJSdVIvVFRGdTBVb3BMNzR2VGREdmR6L3NjRDdTY0x0ZnAxTlJyQUFBQXNGK0VYUUFBQU9EUFRWMHpkKzVWbXFETEQwcHhKUThIWE5iSkVLR1JIcVl3ZW13M0FRQUFnUDNpeGgwQUFBQ2NVMnY5WlpLL1VvbE8vYW1VOGtJWnJyd3Z6akpzVjVldkJscE8xMU1ZbmRoYkFBQUFZTDhJdXdBQUFNRFAvUmNsNk13UFNmNWcycUpydXpmZ3NwYWxsRVhmQzZtMVRwTE1PL3hJVXhnQkFBREFIaEoyQVFBQWdGYXQ5Uy9UN2ZRcSsreGxraGVsbEIrVjRscjc0aXpKYk1CRlBoaG9PVjEzcWpHRkVRQUFBT3doWVJjQUFBQjQ3V01sV0p0dUx0MFlzcXZMS3NOTkJmUmx4NTluQ2lNQUFBRFlROEl1QUFBQWtLVFdPazN5UzVWWXl6TEpuM1J6V1h0Zm5HZllyaTVmRFJGT2FzZllRWWNmYVFvakFBQUEyRlBDTGdBQUFOQll0WDlNWTNSMTM2ZVpzdWdIcFZoUHJYV1NZYnU2Sk1tamdaYlRkVmNYVXhnQkFBREFuaEoyQVFBQWdDUnRaNHZUV3V0SFNhYlI1ZVV5VmttV3BpenExTkJocStNQnQ5Kzg0ODh6aFJFQUFBRHNxVjhvQVFBQUFMeFdTbmxaU3ZsZGtqOGswYW5relZacHBwQTVGWFRwZlA5Ykp2azB5WU8yem4xN01NUjZ0Vk16ZFJua1daakNDQUFBQVBhWHNBc0FBQUM4d1lYUXl5c1ZTU0xrTXRTK3R5cWwzRThUZXVtemU4bnhnSUdSTHpyK1BGTVlBUUFBd0I0clNnQUFBTzlYYTMyYVpLWVNnMXFVVW00cUF5TTZEa3lTZk5UKzJTYy9KdmsrelhSRk90MXNadCtiSlhtWTVLRGpqNzR4Uk5pbDFqcE44bDJISDdscXY3dkFGUUFBQU95cEQ1UUFBQUFBM3E5OXNMNnF0Uzd6T3ZUeXl4MWU1VmRKL3BUaysxTEtqL2FBamU1N2l5U2Z0bE1CUFV3MzB3RU4yZFhsWHNlZmR5TG9BZ0FBQVB0Tlp4Y0FBTGdFblYwMlFtY1h0dUhZOEdHYTBNdGZaamVDTHo4a2VabmtwUzR1bzkzbkprbnVaUDBBeVZCZFhTWnB1cnBNT3Z6WW0yMEFDQUFBQU5oVE9yc0FBQURBTlpWU1hpVjVrZVRGdWVETEpNbUhXN1FhcXpUVEZIMHY0TElWKzl3cXlmMWE2M0dTbzF3dmlEbGtWNWM3NlRib3NoUjBBUUFBQUlSZEFBQUFvQVBuZ2krcHRmNHl6UVArcytETG1NSXZxelJURksyU3JFeFJ0TFg3MnpMSnpWcnJMRTNvWlhxRkgzOHc0RmY5b3VQUCs4cldCd0FBQUlSZEFBQUFvR050aDVTWDdaL1VXajlJRTNpWnBKbnU2Q3dNMDdkVm1xbUpYaVY1MVhZRlliZjJ0VVdTRzdYV3M2bU4zcmRmUFJpcXEwdXRkWjZyaFhBdTQ5aFdCd0FBQUlvU0FBREErOVZhbitaNlUwVndmWXRTeWsxbFlNZVBMV2ZCbDdNd1RQSTZESE5acjVLY2RXYzVDN084MHJGbEwvZW5TWktIU2VaditVOVdTVzRNRlhxcXRYNlhic011eDZXVTI3WTBBQUFBb0xNTEFBQUFiRWpiQWVhSDl2OStyeUtzdVQrdGt0eXV0WDZWSnZReXUvQ2ZmRFZnMEdXVzdydTZQTGFWQVFBQWdDVDVoUklBQUFBQTdJNVN5bW5iR2V0V2ttWDdqNWVsbFBzRGZvMTdIWC9lYVR0bEV3QUFBSURPTGdBQUFBQzdxSlJ5a3VTazFuby95ZWxReTIyN3VzdzYvdGl2YkZFQUFBRGdqTEFMQUFBQXdBNGJ1S05MMG4xWGwxVXA1ZGlXQkFBQUFNNll4Z2dBQUFDQVR1anFBZ0FBQUF4QjJBVUFBQUNBcnR6cjRUTWZLU3NBQUFCd25yQUxBQUFBQUd2cnFhdkxjU2xscGJvQUFBREFlUjhvQVFCY1hYc2ovOHhCa3NtRi8rU3pqaGU1VFBMSEMvOXNjZjdmbDFLV3Rnd0FBQnZVUjFlWEI4b0tBQUFBWENUc0FnRG4xRnFuU2M3LytZczBZWmFrKzdkVTEzWHZ3bmMvKzUrblNWYnRuMi9idjArVHJFb3BwN1l5QUFBOW5FZlAwazlYbDZYcUFnQUFBQmNKdXdDd2QycXRrelFCbG9Na3YyNy9uclovZHNIQnVmOTllR0hkazlmaGwyV2FiakdMNkF3REFNQjYrdWpxOGxoWkFRQUFnRGNSZGdGZ3A5VmF6MEl0bitSMXdHV3k1MldaNU9kdjNkNXJhNVcwd1pjMEhXRk9TeWtMZXhFQUFPODU1NTZuKzY0dUMrZWlBQUFBd05zSXV3Q3dNOW9waUdaNUhXeVpxY3FWelM3VU5HbTZ3SndtZVpZbUFHTXFKQUFBenV1anE4c0RaUVVBQUFEZVJ0Z0ZnSzNWZG0yWkpmbXMvWHVpS3IwNDY0Z3piK3UrU3RNQjVsbWFOMjZGWHdBQTl2ZWMvSDY2bnc1VVZ4Y0FBQURnbllSZEFOZ2E1enEzZkI3aGxrMmFKRGxzLzV5RlgwN3lPdnl5VkNJQWdMMDRQNThrK2JLSGo5YlZCWUJOLzQ2YnBnbHp6dEpNOTd3VXhBUUFHQmRoRjhaOFFYRVFEN0tIdE5LZGdaRWVDMlpwd2kySDZmNk5VYm94U2RQMVpkNXVzOU0wblY4ZU82NEFNTEx6aWttYWJtVU1aeWtJdTlQdTlYRGR2ckd1TGgwY0kwNUxLU3U3QmNCV255OGV0ci9mRHQ3dzc4NWU5cm5yZU04ZWo1SFpkWDlXWUF5QXJoVWxZTVFuVFUvVEpPY1p4cUtVY2xNWkdNbjRQOHpyZ0l2UTIzWmJwdTM2VWtvNVVZNjlHY1AzMDl3Y0JEYnZRU25sdmpMOGRIeWFKWG1xRXZaQk9obFBCMG1lOS9EUk56Y1lkbG4zR0hIVFF4eUFyZjI5TmtseWxMYUw3WHVza3R4Mm40TTlIU3YxdWo5YlN2Rk1Fb0JPL1VJSkFCakpoZEpocmZWSmU4SDBKRTJYRUVHWDdUZE5jaWZKazFycnY5ZGFIN1lQUmdBQTJHNFBlL2pNaGJBSWw3aDJuS29DR1BjOWVKTExCVjJTNW43VmsvWmxMUUFBTmtUWUJZQ05xYlhPYXExSHRkWi96OVZ1S3JDZEptbUNMODlycmQvVld1KzdVUTBBc0pYbjhZZnBweFByWGRYbFBmdmUvVFNkRjREOStwM3p2T2RsM0wvbTc3VWo5elVBQURaSDJBV0FRZFZhcDIzSTRiczBMY0xuMGNGbEgwM1RUSFB6WGEzMWFhMTFyaVFBQUZ0eFBqOUpQMTFkamtzcHB5ck0yL2E3V3V0UlRKVUoremIyNzZSNU9XclM0ekltU2I2ODVvOVBISmNBQURaSDJBV0FRWnhOVTVUa3UvWkd3RlJWYU0zU3ZBMzE3N3E5QUFDTVhsL244ZytVbHJkY1MwN3kra1VKWUgvRy9sSDZDVmRlTk05NllScGRpZ0VBTmtUWUJZRGV0Ry9mblhWeE1VMFI3M1AyUnRSMzdmUldNeVVCQUJqVitmMUJtbWtwdS9hb2xMSlVZZDZ5enoxUGNxQWFzRGZqZmxKckhUTGc5dG1hUHo5eC93SUFZRE9FWFFEb1hEdFYwVkYwY2VINjVrbWV0bE1jQ1VrQkFJekRVUStmdVlxdUxyejV1dkl3VFVjWDE1T3dQK1Arb0IzM3N3RVgyOFVVU1FKNUFBQWJJT3dDUUdkcXJiTnpJWmQ1ZXB4VG1iMHhTL0trMXZwZHJYV3VIQUFBR3p2WHY1TitIdVo5VlVwWnFUQnYyTitldUthRXZScjNzelJCbDIwTWpqaFdBUUJzZ0xBTEFHdHJReTVQWXg1MStqTk5jaVQwQWdDd2tmUDlhWnFPalYxYmxsTHVxekFYOXJlakpBOVZBdlpxM00vVDNGUGExdERJcWEwSUFEQThZUmNBcnUxQ3lHV21JZ3hnbXRlaEYvc2NBTUF3anRMUEE4aTdTc3U1Njh0SmUzMDVWdzNZcTdIL01QMU1rM2RacHlQNURBQUFya2pZQllBcnE3Vk9oVnpZc0dtU3A3WFdwMEl2QUFDOW52dmY2ZW1jZjFGS09WRmgydjNzd1BVbDdOMjRuOVJhbnlTNXMrR3Y4dldhUDM5YVNsbmFvZ0FBd3hOMkFlRFMycERMVVpMdjRpWWs0ekJMRTNvNWF0dnJBd0RRNGZsLytwbStLRWx1cXpEdGZuWVdkRGxRRGRpYmNUOXB4LzNocHI5TEtXV1JaTEhHUnp5d1JRRUFOa1BZQllEM2F0KzJ1Wi9rZWJTVVpwem1TWjYzK3lrQUFOM29hL3FpQjk2Q3A3M1duTGZYbVJQVmdMMFo5d2RwWHFJYVU4RHRicExWTlg3dVdKY3lBSURORVhZQjRKMXFyWWRwYmo3ZWl4dVFqTnNreWIxYTYzZW1OZ0lBV1BzNjRINzY2ZWE0VFBKSWhhbTFQa3dUcUFMMlo5elAwM1IwR2RYOXBWTEthYTRlZUZtMFB3TUF3SVlJdXdEd1J1MlVSVStUUEVreVZSRzJ5RFN2cHpZUzBBSUF1UHExd0VINm03N29iaWxscGNwN3Y0L05rdHhSQ2RnN2ZYVU1XMXNwNVRqSnpieC9TcU5WbWc1bE4vMCtBd0RZckErVUFJQ0wycmM0djR4T0xteTNlWkxEV3V0dGJZVUJBQzU5TFRCSmY5MDJUcHlYQVRCV2JZZVhtMjBnNy9QOGZLcWxWWkpuYWFZdUVuSUJBQmdCWVJjQWZ0Syt3WG1VY2MyYkRPdVlKSGxTYXoxSmN0c05LUUNBOTNyWTAvWEFLcVo3QUdBTGxGSVdlWCtIRndBQU5zdzBSZ0FrK2FtYnkvTUl1ckNiRHBNOGI5L09BZ0RnemRjRWgybTY0L1hoUVNsbHFjb0FBQUJBRjRSZEFQWmNyZldnMXZvOHlUM1ZZTWROa3p4dGcxMEFBUHo4dW1DYS9xWXZXcFJTSHFreUFBQUEwQlZoRjRBOVZtdWRKM2thM1Z6WUwvZHFyYy9iQnpvQUFEU2VwSmtDc2crbUx3SUFBQUE2OVlFU0FPeWZXdXNrelZ1Ymg2ckJuanBJTTYzUnJYWXViZ0NBZmI0K09FcC9BZmdIcFpSVFZkN0lOZCtzM2E2ZjVNK0RUTXNrZjB4eW11VFVGRk9kMXY2Z3JmczB5YS9idnk4NlRmSWZ1MWIvZHI4N2Z5eFpqVzM4dDl0bjFtNmJOeDMzbmlWWnRkdGxzUVUxbjdicmNaRGtMOTV4TEQrL3p5MGRsM2ZxZUhPMkQ3enRlSE4ydkYrMisvWHBqdFZnZG01TVgxei9WWkp2dDJuZEwvd09lZGVZZnRiK3ZXakh0Ti9qQU93bFlSZUEvYndRZnZLV0MyRFlKNU0wMHhyZDFWWWZBTmpqNjRONWtubFBIMzlhU3JtdnlwZmFCdGU1UGx1V1VvNHZmTlpoa2k5eXhSY2JhcTNMSkNkSnZ1cmlnZGtsMXVuWGEzejg5QnBUa3g3MytTQ3dyZnZuYmQwdjB5RnA5b2I2TDVJOEhpSmdzY2JVcm0vYjU5NjY3clhXdE92MmRic2RWcGY4anRNMWprMC8yOTduUHV1TFM0eTEyWVh2ZnBMazY0dnJQWUpqeG1kWDJOL2V0TSt0em0yWGs4dHVsL2Q4cjluRjVXeDR2MTFjZGp5dGNSenUvZmh5NFh0TzJ1MytlVnZyeVRVK28vTnQzL2YrY2ZGY29yMjMrZVVseDhEaGhYVS9HZXBZZTQxdGVwWGYzV2UxdkhmaDk4alhwWlFUWjFjQTdJdWlCSXhWcmZWcG54ZEl2UEVDOEtZeTdQeTRtaWQ1bVA3YWs4TzJPazV5ZDZpYlBIdHdyTG1mOW9ZTHNIRVBQR2orMmZGcGxtWUtSK3lENUtlSFJVOTd1ajVZSmZsMG05NDA3dUFZY2ZNNkQ4L1d1UC94MDNWOCs5MlAwczFMRFl0MjdDN1dxT1hZN3VuYzdQckJadnVBOGs2YUI2NWRqcUZsa3E5eWhXRElOYjU3dmU2K3NlWSt0MnJYN2RINzFtM044WGl6bExKb3Q5RzlkanQxY1V5NzFIZnZhWnROMjMxdDNzTXhlOVZlRTY4VmRodmhkZUNsejBIV1BHYmQ3RHM0Y1M3Y01lL2g0OCtDam4ydnc3WDNqMUpLT1RjT0hxYWJUdFhMZGg4NTN1QTV4eGM5YmRObGtzZDlIYS9XK0IzeTA3WUVnSzc4UWdrQTlrT3Q5V0dhRzFHQ0x2RG41bW02dkJnZkFNQytYQjlNMG5SODdPdjg1NEdXK3NOc3gvWmE3Mm02Njk0NWE4K05Iem8vZm12Tjd5ZjVMczJEMjY1ck5FM3pNUGQ1KzhMS1dPOHZYR2VmT3d1ZlBHMGYzdmY1SFdkSm5xZWJvTXY1Ny82OC9leWh4L2gzN2JyME1TYlBnbHZmcmRIMWgzNjIvN1FONGp4UGYxM1lEdHN4K1hUSWZmc2F0WmkzZGVocVN2WnBrcU4ydmFjRGI5TW43VEcwcjIwNmJZOVgzNDMxOXdnQWRFWFlCV0QzTDR3bjdZWHhIZFdBZHpwSWMrUHlRQ2tBZ0QzUTU5U21DOU5FRG1LUzVtRlpYOWQ2ZHpKQUtHSExycTluYVI2MjloRnl1V2lhMXc5aUp5T3F3VkVIKzl4WlY2bStmSkZ1QTJBWHQ4dlRJVUloUFFSMkx1TmVyZFYxOGViSDJmbVEwMnlneGM3YWZmdG9iRUhIOXJqVDF3dDhzd3dVTHF5MTNrbTNnWjNMbkNjYzFWcWZDSzhDc0t1RVhRQjIrK0w0N0FiU1REWGdVcVp4UXg4QTJQM3JoSWM5WGlPc2t0eFM1VUVjdEgvNlhvYno0L3cwQlVkZkFZcDNtYVY1TzM4TTIyQ1c3am9SOVBuZ2RUNUFMZTYxRCtENzJ0L21HOXJmalB2Tkgydk83dVZ0NnFXMWVYdk1tWTJvTEgyUDZiTlF5THpIN1hxVXpVMHRmOWE5WjJxRUFiQnJoRjBBZHYvaTJNMEp1SnBKZXhOZ3JoUUF3QTVlSjh6VDd3TzAyNldVbFVydjVQbnh3UjZQbTZNMDNWdzJ1UTJldTBZWm5Ya2ZnWmQyT3grTllOenI4TEtaMzlGanVKZTNyL2RGZWdtOHRNZUpUZGZ5ckp1eERpOEE3QlJoRjREZHZqaDJBUVBYMC90YlBRQUFHN2hPbUtYZkI2aVBTaWtuS3IyejU4ZDdPUTNDU0I1U25uR05Najd6THJmSlNJSXU1K253TXR5eDVtemJqK2s0ZTlSbkI2T1JPdXB5bngvWjc1Q3pFSlA3eFFEc0RHRVhBQmZId051NW1Rd0E3TXAxd2tHU0p6MHU0alRKQTVYZWFkTTBVekRzMDdnWjAwUEs4OWNvd2dmajhyQ0w2VUhhN1RxMllNRmtoTjlwRjQ4MTh4SFhlYjZIZ1pkT3dwMjExanNqL0IxeWtNMTJLZ09BVGdtN0FMZzRCdDVONEFVQTJQYnJoTE9IbFgwRjRsY3hmZEcrbUxjZGd2WmgzTnpQK0I1U252Rm0vcmgwRlFoNU10TDFPMmpIQS8wY2F3NHovbnQ1OHoyN0x6TE5tbE0rdGdHNHNRWkU3K3pMNzNJQWRwK3dDOER1WEJ6UEkrZ0NmUkY0QVFDMjlUcGhrbWFLMHo0N1Fkd3RwWnlxOXQ2NHR3ZmpaamJ5OVp4a3ZNR0lmVFZiNStGeEd5YVpqbmo5dmhTdzZ1VllNOFp1UG05enRHY0JpWFgzK2JGdlY5MWRBTmdKd2k0QXUzRngvRENDTHRBM2dSY0FZQnM5VEw5QmwrTlN5ckV5NzVYWkxqL3diQjl1UHRtUzdlRDZaRnp1cmJIUGZUbnlkWnRrelU0WHZORzJUVVArWkk5Q1Q5ZmU1OXZma1dQL1BUblQzUVdBWFNEc0FyRGwycHRiYmpqQU1JN2FGc01BQU50d3JYQ1VmcWRoT1UxeVY2WDMwaGM3dkc3M3NqMFBueC9xdGpFcXMzYnFrcXM2M0pKOTdndWJ1TlBmMGZmVGJ4aTFENU9NZDJxZU1lM3oyekpXdmpRU0FkaDJIeWdCd0ZaZkdNK2pvd3NNN2FqV3V0U3FId0FZK2JYQ3cvUWJkRmtsdVZWS1dhbjJYanBNY25zSHg4MDAzYjVNY3ByazYvWi9MOU5NVS9NWGFkNzQ3K0loOTFubmdmdDJ5VkdOalVkWC9Ka3VIaml2a3B3a2VkYnVhK2NkSlBrazY0ZHFwclhXV1NsbFlUTjNjcXpaMXFEQnZOYjZlRS8yZ3l2djgyMEFzWXZ6citXNU1YM3hYR3QyYmt5dmRieXF0VTZjeXdHd3pZUmRBTGIzd25nZVFSZlloRW1TcDdYV213SXZBTUNJcnhYNjd2NTR1NVN5Vk8xUk9rM3l1UDE3V1VwWnRsTVZUTk84YlQ3cjRweTQxbnBZU2puWnNkcmQ2K2h6SHFTWjRtdjVqbkU2YlpjM1gzTlpYMGJZNVRMT3dpQmZKMW1WVWhidE5wZ20rYnpkRGwxMFYva2lWd2k3dEEvR0R6clkzeDY5NDRIMW9sM1czVFJkT2RiWjV6NC8renpXUHRaMDJjMW4yVzZYaTJHbmFWNkhJcVlkZi85Tjd3ZkxDMlA2dE5aNmNHRk1kK0dxKy95NnYyTlhTZTYrWjRySXhibmZJMC9XUEliTTJqb0N3RllTZGdIWVFvSXVzSEdUTkhOVmYrb05HQUJnRDY4Vkh1eGd5R0VYbkhYYldWejhGK2YrMlhFYmZEbksrZzgrUDh2Ykg1RGR6YnNmNUI3aytsTmhYR2Y2ck5OTGpKMXAxbjg0ZXBvbUNQYmU1YlZCbU51MTFzZHBIbFplOThIM3BOWTZmOCtEMGI2ZEQxZ2xyN3ZZVE52OVpKWnVIN1JmMVhHYWg4ZXJOMnlEWlpKRnJmVkJtZ2Y0NndZRkQ2N1lLV0cyNXZJK3ZleExHTzEzdWwxcnpScjcrc0Y3NnJ4NHo4OC9YV05kYjE3eHYxK085UGQwRjhlYTgrdjQ0QkxqLzI1NzdMK1hiZ0tQc3cxMytibGJTbm4waG4zOHREME9uYlJqK3FpRDliM3F6MysyNXZhOGVka3djUnRtdmRtT3Erc0dYdDcxdXh3QVJrL1lCV0RMdEc4cENMckE1azNUM0ZENFZDa0FnSkZjSzh3SHVGWTRLYVhjViszUldTVzVjWmtIN0cxSGkwK1RQTTk2QVlTRGR5emo5RDM3NmxycjJ0TUQxblduZ3poTjg1RHlTbUg0ZG51Y1BheThidURsOHpSQmc2R2Rwbm5vL0tidHNXei9QbTYzK1dHYUxqU3pnYi9qR3grS3YyRTdyTklFQXY2WTZ3ZXh6bytOeGJyajZKTHJkcDF1bzNkei9iREY3QjAxWE9ZOUFaTjF4djRPVFpzejcraHpIcFZTN2w2eGZvdGE2NTBPOXZHazZXSzBpVzF5NnpLQjIzWi92RmxyZmJMbThmMmc1Ly8rNHJvdHJ6Z3VWbTNYcHFjRHJSOEFqTW92bEFCZ2U3UkJsNmNxQWFOeFVHc1ZQZ01BeG5DdE1FLy9RWmZUSkxkVmU1U3VGTEk0Ni9DdzVqSm5PMWJETDlmNDJWV3VFWFE1dHoydTA2M212TU4yT3B3aEhaZFNQcjFzQUtHVWNsSkt1ZG11NTFEZE1VOHVFM1M1OEQwZlpmMEgrRmQ1ZUh6ZExoQ3JxNjdiaGZGLzdYVnNPNU53ZlY5MDhCbTNyeEowZWNNKzNzWHY4dmtHamp2WDZTeDNPMnQyK1dtNzR2UXgvaThlcjA2dnVVM1hPV1laendCc05XRVhnQzNSWGtDdTA5b1k2TWU4ZlRNS0FHQlQxd3J6OUI5ME9ac2l4eFNPNDNOOG5RZGs3Y094WStYNzZlSDlkSTJQdUx2dTJHaW5JVm11OFJHSEE1WnNVVXE1ZmMzMWZKU21PK2JwQU4venVnR2lkWU1BUTl5M09kbmdkNXc2YWx6N1dIUFFRZjBlckR0dFdmdnpYUVJlaGp6dUxLL1RXYTQ5Tmo4WWNMeGNkMnc5MjlCdWFUd0RzTlZNWXdTd1BaNjZBSUhSZWxoclhWejNMUndBZ0RWOU9jQXlibDYxdFQ2RCtXcU5uLzA2YTB5cFVXdWQ3Y2pVSXVzOHNGMnQrK0Q1bk1kSjdsM3paei9MY09HbHRSNlN0OGVTdnFlRFBiN3VNYXVVc3F5MW51YjZIUnF1MHEzbGJxNzNjSHk1eHJnOWlLbEx0dkZZa3lTblhVMGxXRW81cnJWK3Z1WjNHdks0czg3dnVwTTBVemRkTjRoeWtNc0h6RzVlZDl1dU1hYTlnQVhBM2hKMkFkZ0M3VFFwYmtUQXVEMnR0ZDd3dGpNQXNBRTMwNFRqKzdwbXVDM1VPMXJMZGJaTktlV2sxcXFLMTU5S0prbE9yempGeGJ1c2N5MHhHNmhXeDFzU2ZQdTZnNS92L1Q3TWtNZld0bVB3UE5jUFZMSFpZMDJ5M25SbmIvdThkY0l1c3dGcmQ3TEdPRnZWV2hjWm9CUE5rQUhRdGl1Wk1RM0FYaE4yQVJpNXRpWDVYQ1ZnOU02bUdydXBGQURBa05xSE9IMEZYaDUwMkxXQzdwMTA4Qm1MRFB2QWNveldHVGV6a2RSdk90Qnl2dDZTYmJybzRPZTM5Z0Z5RzJ3NWFLOVREOUtFTFBaOW5JL0JPdHRnMFhXUW91MWlkSnpyMzNlYzFscW5Bd1RnVGp0WXhyY1pkdHFscnNmMHREM09uLzNwYkV6dlVKYzJBUGFRc0F2QXVDOWtEcEljcVFSc2pWbXQ5WDVYYllVQkFDNnJwOERMc2ZPYTBmdTJnODlZS3VOdVRCbFl5SVNRQUFBZ0FFbEVRVlE4MEFQTGJlanl0T3lnNCtacXhOdjViQnFpYVpKZm45dC9KOUVWT0NQZmJ1dDQzTk5YVzJzNnUzYi82L3YzeUhJa245SGJzVHV2dzJtZjVQVjBTOU9ZMGg0QTNrbllCV0M4RnpwblhTS0E3WEt2MW5xaTFUOEFNTFNPQXkrTFVzcHRWUjI5WlFlZjhjYzl2L1lXRHJqYWNXYTVEK09pbEhJNmxpbSsybzRPaDBrK2orNHMyMnl5N3UvbG5zYjB1dFBaSGZUMTNjN1pxV0JuKzN2bmkzWTgreDBFQUd2NGhSSUFqTlpScFBkaFd6MXBBMnNBQUlOcXV4bmN6SHJkRjA2VDNGTE5yYkJTZ3JYdDBubjd6T2JjblhGUmE1M1hXcDhtK1M3SlE5dDM2MDNYMmFkN0Rwb3RIRU43SDgrVFd1dWRXdXQzU1o0bnVSTkJGd0JZbTdBTHdEZ3ZnTzVraStlUkJUTE5Gcy92RGdCc3R6VURMNmRKYm5Zd0JRakRiR3ZkQk9IUGZidk5YNzdXT21zZmlCOUZ3R1hYN2hOYzE3NGY2eGRiUHFibmVSMWFteG9LQU5BZFlSZUE4VjBBSGJRWFA4QjJ1OVBPdXd3QU1MaHJCbDVXU1c0SnVnQnNScTMxWVpxcDZLYXF3WUFFSi9zWno1TzJPOU5SZE1BQmdGNEl1d0NNejVFU3dPNk1aOU1aQVFDYmNzWEF5eXBOUjVlbHlnRU1xMzBvZmphMUNRek5mWXZ1eC9SQm1tNHVNOVVBZ1A0SXV3Q002MExvZnN6WENydGtHamNyQVlBTnVtVGc1U3pvNHMxdWdNMTRHdmVEZUx1K3d5aFRKZTVPclhYYWpta2hJZ0RvbWJBTHdIZ3VoQTZTM0ZNSjJEbjMydkVOQUxBUjd3bThDTG9BYkZBN2RaRnJ4dDIzenUvWnZ2ZVBxYzNUcVNjUmRBR0FRUWk3QUl5SDZZdGdkejFVQWdCZ2s5NFNlQkYwQWRpZ1d1c3N3M1lEWFNZNVRuS2krb05icmJtdkhQUzBEMDZ5WHRobGFkUCtySjczTTJ4NDdUVEpvNndYcGdLQXJmV0JFZ0RzNVlVUU1LeFpyWFZlU2psV0NnQmdVMG9wcTFycnpieWVMdU91b0F2R1JWblVXcS83NDh0U3lnMVZaQTFkZC9oZDVuWDRZSlhrMi9aL0w1S2N0c0hIcy90UWg4by9xSFYvMzM2UmZnSU5oeDNzYzd6MlpRLzd6ZXBjcmYvWS92L1RDMlA2cWRJRHNJK0VYUUEyckozSDlVdVZnSjEzcjlaNmNuWWpBZ0JnRTg0RlhtYWxGRy8yUTJPVjYwMDVNYTIxSGdpTmNSM3QvYUJaQi92dWNaS3ZTeWtMVlIzOTc5L3JIbXVTSnBSeXQ0ZXY5c1dhNjJXL2V6Mm01MWwvK3FKbG1zNUxqLzF1QVlEM000MFJ3T1k5akhsY1lSOU1NMng3YWdDQU55cWxyQVJkNEdmV2VhRG81Uld1YTkyT0dpZEpicFJTN2w0amNQQ0o4bS9FWW8yZm5iWmhpczYwMDJqTk5uVHMzRVdmcmZuekQwb3BaMlA2cXJXZEtqOEErMGpZQldDRDJvdEtiV05oZjN6WnpvY05BQUJjejdTSHozeTJ4cy9PMnc0ZGNGWHJCRTRXcFpSYmEzUU8zYnA5ZGtmRzJiTTFmLzVoVi9jVTJzODVXdk5qRm9ieHo4elcrTmtIcFpUN2EyeEx2NGNBMkV1bU1RTFlyQ01sZ0wweVNkUE42YlpTQUFEQXRVeHJyYk9PcDg0NFNYSnZqWjkva3VUVGRiNUErN0J5clU2UTEzMVF5dWIyNVRWKzl1NGErOW8weWNFVzFtdWVaTnYzOFpQMm5zQjFUWkk4WGZkNDAzcVk5UU1Tend6anpzYjBvelYrMW91VUFPd3RZUmVBRGFtMTNvblVQZXlqZWEzMVFTbGxxUlFBQU95cDFaby9meThkZGhRb3BaeldXcGRyWEtNZjFGcVBTaW5yaE5xUHN0NER5OU5zZnhDQUsreXphNDZmYmZSbHJmWFJHdDFzeHJEZGxyWFcwNndYTmpxb3RSNGx1WHZkV3JRL1AxOXpkWmFtUk96TVlzMzkrcDRTQXJDdlRHTUVzQUh0RzFzdVJHQi9HZjhBQU95dE5SL1VKOG1zMXZya2ZkT2ExRm9QMjRlNmwvRjR6ZTgwcjdVK3ZjNVVLKzEzWFBmTi9NZjJyUDF4M1NsOTJ1bTA1eHY4Nm9zMWZuYVM1R203RHU5YXg0TmE2OE5hNjFpNzEzelZ3V2ZNMjFvY1hIVy9xYlUrN1dnZmNNenB6c0VheHdJdlV3S3cxM1IyQWRpTU8rMUZPckNmZEhjQkFJRDFIQ1k1ckxVdTh1ZFRhWHlXNXVIaDJYWDNaVHF1SEdmOVVQb3N5Zk5hNjFkSjN0dUJvbjFvL3pEZFRDbHpiSmZZcjJ2S1hMR1RUeHVNZUxMbDYzMlFKdVJ4bWlZNDh4L24vdDBuN2IrZnR2Ly82NUd1dzlsVVJwTU9hdkc4MW5xYzVLdDNoUWpiYmY5bHVnMDZPZVowWjNLZDZmbHFyZk9zTnkwV0FHdzlZUmVBZ2JWZFhiNVVDZGg3OTNLNW0rNEFBTENMRm1uQ0lldWFkZkU1N2ZRaXgxbi9ZZkJaSjlkNzU0STR5L1pQMGp5Zy9uV2FzTTYwbzFvZWIvUFVMbHp2ZXJMV3VpeWxIRi9tUDI2N1A5ekw1bCs4ZXRiUnVEOUlOeUd4d1pWU1ZtMGdycXVPci9NMEw5UXMwMHhuOXUyNWYzY3hBTlNWWXkvdmRPNUpyZlhtWlRxZm5lc1lma2ZaQU5oM3dpNEF3eHZEelFWZzgzUjNBUUJnbjUybW00ZmVYWHFRYmpzZnpBWmF4d2QycDYyMGJ2RGpxTmI2UlpxdUhpY1gvMlhieldPVzVvV3I2WWpHL2Q0cnBkeHZ0MTJYMjJYYS9qbnMrZXV2a3R5MUZkOW9zY2FZbnVSMXA1N0hiK3J5MG5ZRCs3ejlQZVhlTWdBaytZVVNBQXlublZOWjZoNDRjMDhKQUFEWVU4L0c5b1hhSVBxMkJVZDBXTmhlWFFRL1ptazZRdFJhNjcvWFdwKzJmOWNrejlOTWNUSWQwVG92YlBhZmJHdW4xd2M2U2ZVNnB1ZHBwdXA2MDVoK211YStzcUFMQUxTRVhRQ0dOVmNDNEp6RHR2MHNBQURzbGJZVHhSZ2ZtRDdLOW5TZjBHRmh1eTA2L3J4Sm12RExaTVRqZnBYa3hLWlAyczRkajdadG55MmxQTEwxM3VyeHZvMXBBTmcwWVJlQWdiUVB0TDlVQ2VDY1NYUjdBZ0JnZngyUDdRdTFEK052WjV4Qm5JdHU2N0N3dmRwdGQ3eUhxLzdZMXYvSmcyeFh1TzZXVGZiT01YMmFaS2tTQURBY1lSZUE0V2d6Q2J6SkYwb0FBTUNlK2lvakRKVzBEeXpIM2pIbHVPMk93M1o3c0c4cjNPNjNwemI5VDRHbm14bC91RzZWNUtad25URU5BR01qN0FJd0hGMWRnRGVaMWxybnlnQUF3TDRwcFN6VEJGN0crTjJPMDNSNEdhTnRDT053K1RHd2o5UEMySDlmN3dOakQ3eWNCVjBFbEM3L3UwT3RBR0Fnd2k0QUEyZ2ZaT3ZxQXJ5TjdpNEFBT3lsVXNyOWpQVEI0RWdETDZmUllXSFhiTk5VTmwyTnJVWDJNK1R6dG5xY3BnbThMRWYyMVFSZHJtZGJwc0lEZ0swbjdBSXdqSHRLQUx6RHJOWTZWUVlBQVBiVXpZdzc4SElyNDNod0tlaXlnOXJ0dVltSDQ0c05yL2ZkSk1mMmdKL3FjWnJrMHhFZEM4K09ONEl1MTl1V20raGV0RkI5QVBhTnNBdEF6MnF0c3lSVGxRRGV3MVJuQUFEc3BYUFRlSXcxOEhLU3pUK0VQb21neXk2UGdiUE9Ia050MytOU3lzYW56aW1sM0k3QXk4K09oYVdVVDlOMCs5bWtSeEYwV1hkYkhtZll6bUMzTTk2cDl3Q2dOOEl1QVAwelBRbHdHWE1sQUFCZ1g1MEx2RHdhNmZkYnRnK2g3MmJZZ01BcXlkMVN5aTFCbDUwZkE2ZEpicVQvVU5XRE5tU1NOQ0dxVGEvMzdRMk1xN0h2Qy9mVEJPd1dBeTk2bVNia2N0ZnhwcFB0ZU54dXgyWFB2eU51bDFLT1N5bkxqRzhxTEFEb2xiQUxRSTlxclpONGdBMWN6cVRXZXFnTUFBRHNxN2Fyd2QwMER3ZTdlZ2kvNnZnN1Brb1RTSGlRL2gvT0h5ZTUwUzZUL1JrRG4vYTBmeTNUQkJudW4vdG56MGF5M21majZyakQ5VjV0K2I1dzJuYmZ1WlgrQTFETE5JR0pHNldVaFpIWTdYWnNmNmYxY1J4ZkpQbTBEZFdjLzJjQXNEZUVYUUQ2TlZjQzRBbytWd0lBQVBaZCs1RDNWcHFIMzNkejlZZDNwMmtlTE40cXBmeXFoKyszYWdNRFo5K3Z5d2ZSeXpSQmh4dWxsTnU2Syt6dEdEamJ2N29JdlN6VGRITjVVNUJoTWFKMVhyVmRYbTZrbVk3bDVJcnJ2a3dUbHJtZDVGZTdNZ1ZQS2VXa0RVRGRUTGRob0xRMXZ0WHVHOGRHWHEvNzl0MjhEblN0NnpSTk9PbG0yODNsdkdjcURzQmUvWjVWQXNhcTF2bzB5VXdsQnJObzN4YWcyLzM0dXlSVGxRQ3U0RmZiZmtPNzFuby95VDJiRWtiaHdZVzNkL2Y5M0d5VzVLbEsyQWZoTGNlSVNaS0ROVDdpOURybmNiWFdneVNUNnl5d2l6ZndhNjNUTmE1YlQ0YzhkejFYcTR2ZitUVE5BK0RWcGg1d3QzV2NKZm1zL2Z1eU5WMjEzLzlaa3BNaHZuLzcrekNiMnVjR0dJL0xOendBSHJKT25lK0hiUmZRejl1YVhLWXVwKzJmcjBzcEp4MnY1OURqL215OFg5d25sdTJmdGZmTGRZN0RROWZqM1A3d1dWdVBxMnkveGJuanpXSkQyM0VqTlI3RE1lWENkem04NHUrTDAzYjdQWDdYOGVXYTYzbWwrbTdEN3hBQTlvZXdDNk1sN0RJNFlaZnU5K0dESk05VllxK2MzV0E5VGZJZjUyNGt2UGNpOGkwWGltZi83Qy9hQzlWMWI3NnpIVzV2K3h0VndpNHdLb0lHZi83N1Z0akZQZ2d3NUgyQmR6MUFQOVc1aFRYT2FkN0l3K1M5M0IvZWQ3K28wN0FHZzI2LzFhNTBLUUtBUG55Z0JBQzkrVUlKZHRZeVRhRGwyelJobHJWdkdyemxadFRpTFJmQjB6UnZmY3lTL0RwWGUydVE4ZnM4M2JTMUJRQUFOc2dEU25yY3R4YXF3TG45WVpVUlRVbUY3UWNBUXhGMkFlalBvUkxzakxOV29ZTzNlWDNMUmZBeVRlRG1wd3ZoOWkyUVdab1dxSWNSZnRucVkwZXRkZUlOVHdBQUFBQUFnRGNUZGdIb1FUdDM3bFFsdHRwSlhzK1p2aHo3bDIyREVTZnRuN3R0OTVmRE5CMkdUSDIwZlE2anV3c0FBQUFBQU1BYi9VSUpBSHJ4dVJKc3BXV1N1MGx1bEZKdWxWSWViZXVjeHFXVVpmdjlQMDF5SThtakpEcUZPSVlBQUFBQUFBQnNQV0VYZ0g3TWxHQ3JIQ2U1V1VxNXNjMEJsN2RwZ3k5M1N5bS9Tbkk3VGFnSHh4QUFBQUFBQUlDdEpPd0MwTEZhNjBGTVliUXRqdE4wY2JsZFNsbnN3d3FYVW81TEtUY2k5REoyazFyclRCa0FBQUFBQUFEK25MQUxRUGUrVUlMUk84bnJrTXR5SHd0d0x2UnlONlkzR2l0VEdRRUFBQUFBQUx5QnNBdEE5MlpLTUZxbmFhWXJ1cld2SVplTFNpbVBrbnlhSmdDRVl3a0FBQUFBQU1Eb0Nic0FkS2pXT2sxeW9CS2o5S0NVOHVtK1RGZDBGYVdVWlNubFZwb3VMNHpIUVh0TUFRQUFBQUFBNEJ4aEY0QnV6WlJnZEpaSlBpMmwzRmVLZHp2WDVjVzBSbzRwQUFBQUFBQUFveVhzQXRDdHo1UmdWRTdTQkYxT2xlSnkybHJkU0RQbEU0NHBBQUFBQUFBQW95UHNBdEN0UXlVWWpRZWxsRnVsRkYxS3JxaXQyYzBJdkl6QlRBa0FBQUFBQUFCKzdnTWxBT2hHcmZVZ3lVUWxSdUYyS2VWWUdhNnZsTEtxdGQ1TThqVEpnWXBzekxUV09pMmxMTGZzZXg4bldlemc5bmhvUEF6dU5NbGRaVmpMVWdrQUFBQUFnRjBqN0FMUW5aa1NqSUtnUzBmYXdNdnROSUVYUWE3Tk9jaVdQYXh1d3puTFhkc1F0VmFkb29hM0txVXNsQUVBQUFBQWdQTk1Zd1RRblUrVVlPTUVYVHBXU2psTmNsc2xOdW96SlFBQUFBQUFBSGhOMkFXZ096TWwyS2k3Z2k3OUtLV2NKSG1rRWh0ajJod0FBQUFBQUlCemhGMEFPbEJyblNTWnFzVEdISmZ5LzdOM3IxZE9KTWtDZ0NQMzdQL1ZXckFhQzZheEFHRUJqUVdvTFlDMmdNWUNHQXRhV0VCakFSb0xSbU1CV2d0VzE0SzRQNVJhTkN6UWtySWtsYVR2TzZjUFR6MHFNaXZya1ZHUlJUTEdmcjJOQ0V1NEhNZElDQUFBQUFBQUFMNlM3QUxRalpFUUhNMnNsR0tablQwcnBTd2k0bFlramlNelZYY0JBQUFBQUFDb0pMc0FkTU5FOUhFc0l1S0ZNQnhHWFNacUxoTEdHQUFBQUFBQWdHT1M3QUxRalYrRjRDamVsbExtd25EWW1BdUJNUVlBQUFBQUFPQ1lKTHNBZEVQVmhjT2JsbExlQzhQQlBjU3lvZzdHR0FBQUFBQUFnS09RN0FMUUtETUhFVEVVaVlPN0ZZTERLNlVzWXBud3dtRkpkZ0VBQUFBQUFLZ2t1d0MwTXdsOWVKTlN5a3dZanVhVEVCemNvQ2JXQVFBQUFBQUFYRHpKTGdEdEpMc2MzbHNoT0txcEVCaHJBQUFBQUFBQWprV3lDMEE3MVJZT2ExSkttUXZEOGRTbGpGVFdPVHpKTGdBQUFBQUFBQ0haQmFBTFQ0WGdvSDRUZ2w2WUM4SEJTYXdEQUFBQUFBQUl5UzRBWFRBQmZUaXpVb3FLSXYzd3B4QWNuTVE2QUFBQUFBQ0FrT3dDMEFWTGl4eU9xaTVjTW9sMUFBQUFBQUFBSWRrRm9FbG1tbncrckFjaDZBMFZkZzVQWWgwQUFBQUFBRUJJZGdGb1pmTDVjS2FsbElVdzlJYTJPQUlKZGdBQUFBQUFBSkpkQUZxWmVENmNUMElBRXV3QUFBQUFBQUFrdXdDME1mRjhPRk1oNkpXaEVBQUFBQUFBQUhBTWtsMEFPQW1sbEprbzlNcFFDSTVpSkFRQUFBQUFBTUNsayt3QzBPWmZRbkFRVXlIb25YOElBUUFBQUFBQUFNY2cyUVdnelZBSURrSlZsLzZ4aE5keFNMQURBQUFBQUFBdW5tUVhBRTdCL3dsQjc0eUU0Q2lHUWdBQUFBQUFBRnc2eVM0QWJZWkNjQkJUSWVpUHpMd1dCUUFBQUFBQUFJN2w3MElBME9SR0NBN0NNa2I5OGx3SWptWW9CQUFBQUFBQXdLV1Q3QUxRb0pReUZRVXVTV1lPSW1Jc0VrY3pGQUlBQUFBQUFPRFNXY1lJQU5qR2F5RUFBQUFBQUFEZ21DUzdBQUFieWN5cmlIZ2pFZ0FBQUFBQUFCeVRaQmNBNEZGMSthSjdrZWhGV3d4RkFRQUFBQUFBdUdTU1hRQ0FUYnlMaUN0aDZJV2hFQUFBQUFBQUFKZE1zZ3NBOEZPWmVSOFJZNUVBQUFBQUFBQ2dEeVM3QUFEZmxaa0RpUzRBQUFBQUFBRDB6ZCtGQUFENFZtWmVSY1I5V0xvSUFBQUFBQUNBbmxIWkJRRDRpOHk4aTRnL1FxSUxBQUFBQUFBQVBhU3lDd0FRRVJHWk9ZNklOeEV4RkEwQUFBQUFBQUQ2U3JJTEFGdzRTUzRuUnpzQkFOQ1hhNGxoUkZ4SHhLOXI1Nm16aVBnekloNUtLUXRSQWdBQVlCOGt1d0RBQmNyTXE0aDRHUkhqaUJpSXlFa1pDZ0VBd0VtZGU0OGJ6dUdtcFpScEQ3ZHBFTXVFK2RmZitlZFIvZlZkWnY1V1NyblRsaEVSTVNtbHpNOXNtMDVGTDJNUEFBQzBrZXdDQUJlaUpyaU1ZcG5rY2lVaUFBQ3c5M1B3UVVTOGk5MFR6SjlHeExTSDIvUjVnMnVLUVVTOHljeW5FZkhpVEtxOHZJeXZ5VHpibWtiRS9NeTI2VlQwTmZZQUFFQUR5UzRBY0ticVRlaFJMRytRWDRlS0lBQUFjR2pYMFZaSmNaU1p3NzVVcGRnaTBlVXYyeEFSSHlQaW1lNEFBQUJBVnlTN0FNQ1p5TXhoTEc4ay8xcC9WYjBGQUFDTzYyVUg3L0VxSW01N3NqMnZkN3pPR0dYbXVKUXkwU1VBQUFEb2dtUVhBRGhCbVRtS1phV1dZU3dydDF4RjJ4T2pBQUJBdCtmc3craG1lWmh4OUNEWnBWWjFlZFh3Rm04aVlxSm5BQUFBMEFYSkxnRFFVL1htK0RDK0pySThqYThKTGdBQVFMKzk2dWg5QnBsNVhVcDVPUEwydEM3Sk5Nek1VU2xscW1zQUFBRFFTcklMQUJ4SnJjNFM4VFdCNVY5cnZ4K0tFQUFBbkxSeGgrLzFNaUtPbmV6U3hUWEtLQ0ttdWdZQUFBQ3RKTHNBUUljeWMzMDVvZlhmUDYyL0RtSzNOZTRCQUlEVHVTNFlSN2ZMakY1bjVyQ1VNai9pWmozVnNnQUFBUFNGWkJjQStNYmE4a0VyMy83NVg5LzhlU1JxQUFEQW11ZDdlTTl4Uk53SkxRQUFBRWgyQWVETWZaTzRNbHI3cC9XbkV0Zi9Ed0FBUU9zMXlQVWUzdnBsSERmWjVmZVE2QThBQUVCUFNIWUI0S1JsNWlqK3VqVFFLb2xsSkRvQUFNQVJqUGYwdnNQTXZDNmxQQnhwdTJZZHZNZUQ3Z0VBQUVBWEpMc0EwSHVaZVJYTHlpdFg4WFVKb2F0WUpya0FBQUQweWNzOXZ2ZnpPRkxDU0NubElUTVhEZGRoODFMS1RQY0FBQUNnQzVKZEFPaU56RnhWYUJuRk1xbmxLcjVXYkFFQUFPajdOYzExN0hlSjFIRm0zcFpTRmtmYXhMY1I4VzdIMTk3cUlRQUFBSFJGc2dzQVIvRk5Zc3V2OWZkRGtRRUFBRTdZeXdOOHhqZ2kzaDlqNDBvcDd6UHphVVJjYi9uU3lSR1hYd0lBQU9BTVNYWUI0Q0F5Y3hqTHhKYW5vV0lMQUFCd2Z0YzhnOWcrQ1dRWHIrSkl5UzdWVGYxMTAyMTlYMHBSMWFXL3VsNWFhdEI0dlQrdlAxMWFhR1lBQURnL2tsMEEySXR2a2x0R29Xb0xBQUJ3M3NZSCtweGhabDZWVW1iSDJNaTZoTktMekJ4SHhKdWZYT3ROSStKdEtXV3FhL1JYMTRsSW1UbUtpTThOYi9HaGxIS25aUUFBZ01kSWRnR2dNM1Y5K2xWSjY2R0lBQUFBRitUVmdUL3I1cGdiVzBxWlJNUWtNMWZMMHc3cVB5MGlZbnFzWkJ3QUFBQXVnMlFYQUhaV3E3ZXNKN2dBQUFCYzRyWFJLQTZiOEgrZG1iZTF5c3BSMWFRV2lTMEFBQUFjbEdRWEFMYXlsdUR5TXRyVzRRWUFBRGdYTHcvOGVZTjZYVFlSZWdBQUFDNlJaQmNBSGlYQkJRQUE0SWZYUzZ2RWswTjdGWkpkQUFBQXVGQ1NYUUQ0cnJVYnRpOWp1ZjQ2QUFBQS8rczZscFZXRHUwcU02L3FNa0lBQUFCd1VTUzdBUEFYZGEzNWx4RXhGZzBBQUlCSHZXcDQ3U0xhRW1WZVJvUmtsNTlmMzQ0aTR0ZUlHTWFQSzVYTzY4L3ZFVEV0cFV4Rmp5MzYyTlYzOXVOWlJNeEtLZk1EZnBlcjcvVDNuNDB2c3pvRy9WNS9QeTJsTEU2MEhhNGo0bW5kNXRFRysvbXNsUExROHpGckVJOC9mRGF0Mi9SbmJiL1pDYmJkVlN5VFJuK3Q3VGZjb0wrZXhEaGRIeVJjalJGUGE1dGVQWEpPTUR2MU5sM2I5aC90ajlPNkR5NE8vSjJHYS92WDFTTmo1R3E4bUszMXVaTWNIOWYyczVlUGJIZnZ4OGdOOXJIaFQ4YVFWZDliSDBlY1E4TVprT3dDd09yRWNCekxtN1JERVFFQUFOam9XbW8xYWJDcmgxamVwTi8xT213Y0ViY0gzTjV4TENkTGRuRjdpRW1GT3VuOVBMYXJ1RE9zUDZPSWVKT1ppOW8ydjVrSU9hdjk5Zk9PTDUyVlVtN1gzbWNZRVc4MjZXT1pPYXY5YUxMSE1lalZqdVBJYXV3YXJiM2ZOQ0krUk1URHZpWjJ1eHBINnIyczEvVzlobHZ1NTlHWC9YenRvYk5kcW9TTnZubXYxVFo5NkRvWnBQYTFkenUrL01QNlBsRDNvZkVXYmZkdGYzMlRtYXRqNktkOTdWODd4bW13dG0zYm5oOE12dE9tODdWK091L2grUGh0MjQ3cW1QU3o1UjNmckk4MysyeS9odlpZSHk5ZXI0L24reHdmZXpaR1JpeVh5L3pRcCtTeXhuMXN0WDlkNzJQTXJQMy9UZVBiN09WOHVYRU0vNTl6SVFBMlBNRktEdW16WG5lUis5a3dNKzh6OHo5MkFUZ1pkMFl2NXliT1QyRDNtMDkySzhjdDZIaGN1Vy9jUjBhWiticnhQY1lIM042N2xtM2Q4M2NiWithWGZaeVAxQW1DMXZQQjBZWHNFNk8rSGpkYXowa3pjNUNaNzNaOGp5OWQ5b0VhNTMxZW4veW43dStEUG80amRYLy9UOGY3K2ZBSSs4bysyL0R6SHZwYzAzNWQ5Nkg3VStxdk85eGp6Vk5wMDQ3R3gvVzIvZGg2bkQyUjl0aHJmK3Rvakx6ZXd4aDVkZVR6aTMzdlkxOWF6Nm5yZnRBYTkvczl4ZTlkNC9jYUIvVFUzNFFBNENKdnlJNHk4Mk5FZklsbEp2UkFWQUFBQUxaMjNmRGFlWDJLdExWTS9NdExib0I2ZmZzbEl1NWpQNVZLUnhIeGgrUzl5MVluTlQ5SGZjSi9COE9JK056QlJOcXdKdDk4anNlWHVHa3hpT1hUNlY5cXRhUytHTlQ3V2ZmUjdiMnNVZDNXdTBQMHBib04rMjdEVWUxekg0K1pCTEsyM2RmeDlUN2tQdnZyK0FqYmRyZkhiZnRlbTc3clE1dXViZjlWM2Y3cnh1MjY2bWovMm5kN3JQZTMxOUV2ZzVvczhYRVBZK1JSem9WV1NYSUgyTWVHRVhHZm1YL3NtbFJXSy82MG50ZnY2NWpiRXJzdXRndjJScklMd0FWWlBUVlNMNml2UlFRQUFHRG42NnR4dEUway9CWVJVWmNsYUxtQlBEcDBSWUtleEgrUW1lL3E5ZTBodHY5TjdIZGltdjVhSmJwMDhWVDdmVU9mSDBmRUh3ZnVoNE9JK0xpdko4MTNqTjgrNzJlOTJXZHlTQWRKQWJ1NGp1V2svREdyTXJ5TTdpZmZmOVJmNzJzVmlyMG5nOVRrc3oraWZkbVNiYjJPWmVMQlZRLzJ5WC9WOFhIUVFkdTk2MkQvT21SN0RDTGkzYUg2MnhaajVIalBZK1RCdG5mUFNYSS9jaFhMNUt1N2x2UDdsbjdWZFpKcGZiK1dOdHZyMGwzUVNySUx3QVg0SnNsbEpDSUFBQUROV2l1cXJDZTRmR3A4cjFjWGRvMTdGVzFWTm1BYlY5Rk5va3RMbjcrUDdxdVpiR05jbjNZLzlvVHVJVDcvT3BZVG5ZT08yM0ExYmcyT0ZMZGpMa015UFBEbmpXTFBDVDVyaVJYSGpPbm5IaVM4aktNSEZjUFhrZ0dIUi9qNHZmZTNubzJSbzMyTWtkKzA1NzRxMUd4anA4U2VVc29zSXVaSHZzYm8rdjErQytneHlTNEFaMHlTQ3dBQXdGNnV0WWFOMTFnUHRhSkxSRVNVVWlheExCRytxK3NMaXYxcXd2aEtUK1JDK3Z5K245VGYxRlVzSng0dndWVTBWT0g1eWJoMXpLU0FZeWU4SEdONy85akhza1k5YWM5TGJOTWZ0Y2U3THZkWGJiSHhHUGw1VCsyNXFxYldoK1BlS0haTDdHbE5Ecm51S3Btb3ZrL0xkY0tzSnZCQWIwbDJBVGpQay93clNTNEFBQUI3MDFwSjVYdVZYQ1lON3pmc3V1UjVYNjkxb3g4VGpIQ29Qdjg2K2pIaHR6S3FFOHVYNExwaEdZdjFOaHpFY2FzVHJGc3RTM1ZKWStoOWx3a3ZOZG0xVDhlaFZaTEZSUjRYYXpMZzY1NjF4Y1VrdkhSOVBGaExkT2xUREs5MjJNY21IWHh1VitmMXJlT2ZxaTcwbm1RWGdQTTZ3VitWK0R2MEdzNEFBQUNYWk56dzJrV3Q1UEt0RDQzZjZlVTVCN3lIRTR5dzd6NC9pb2crSnBhOHJ0L3RFcnpwWU9MNlRSeG5hWlVmR2NieHEyQWMybjJIQ1FoOVNWeGFON2pBTmwwdFhUVHVZVnRjVXZKUlo4ZURuaWE2ckd4VnlhYVVzb2oyaEpldWxpaHR1VDVZeEYrWFhZVmVrdXdDY0Q0bitIY1I4YVdISi9rQUFBRG5kTzExSFcwVFhkKzlhVnhMaExlVUNiK3VDU0huR1BNK1ZVYUFRN24zM1hwaDU0U2pPaWEvN3VFMlhWOVF3dEpLY3dKQ3ZmZmExNm9kMTVkUTRXMnRMVVk5SG9kVzV5ekd5TzJQSzMydWlyTnRKWnRQSFh6ZXNIRS91V3FNNlVOTjNJRmVrK3dDY0FZbjk1bjVSeXlmRkhIakR3QUFZTDlhSzZqOHJCeDRhM1dYOFpuRy9FMzBld0lFT2xVckZneDcvQldIWFM0TjAzT2poc1NRTnowZlZ5OUpVd0pDVFpSNTFmTnR2SWdseHRZU1lQcytidHhkeUw1MTFYbzhxTEU2aFdTdGpTdlpsRkllSW1KKzVQUDZmVjZ6UUc5SWRnRTQ0UlA3bWszYzEvSitBQUFBNTNZZE5veTJtL0d6V3NIbFJ5YU5YL0hsR2NaOEZQMnNqQUQ3OU1aMzdKVmRreHo2UEhrN090ZHFZSTlzODNqSDE3Nk8vajlrT0x5UWlqM3Y0alFlK0h4MVFmdll6dWVmdGZySW14UHJmNXM2OWhLbCs3eG1nZDZRN0FKd2d1cUZ5eC9oaGg4QUFNQWhqUnRmLzlPYjNyVlUrS1RoL2M5eG91dGV0K09TMUtWSWhoMi83U3dpcGhIUjVYSUV3d3RhQ21mclplSnFiQVlkdE52YmlMaU5pR2YxNTIwOVRzdzcySzVYRjdpTHZkdHhPYU91azBrWGRaK2NkL3krTDgrNThlcCtOVDZScnp1SXkwa0tiRW1lTzdXS1JOdFVzcGswZnRiT3g5a096aVZVZGVGay9GMElBRTdxaEg1MWtpekpCUUFBNFBCYUo1RW1HL3lmVDlFMmtmTXlsaE5vNTNBTlBJN3VKLzFYRTR4L3J2M2RQeUppRktxbWNoN2pUTlErL2lFaXBxV1UrWGYycmV1SWVCN3RrOGJQZXpiZXJIK1hVY2Z2ZlIwUjc3ZjQveTJmUDR1SUY5OXJ1L1Z0ckdOa1M1V0xVWS9hYmxaLy9yMzJkNy9XNzlobEZZOUJMTytyM20xeExCcDFjQ3hhSmJOKytGNjFoRnJkWWhUTEJLU1d6eHBIeE0wWmo0OWRKWThzSXVLaG5uUE5WMjFTMjJGWXg3YnJEdnJlT0RQZi9tQmZ2dlF4Y2pXR2pVNjBIejU2VGw5S21XZm1RN1JWV05uMXZQNTVCL3NIbkFTVlhRQk9SRDNaVnMwRkFBRGdPTmRrclU5SVB0VEtMVDlWU25tSXRpZTl4enMrdGQ1SFhUNFJQWTJJWjZXVWY1WlNYcFJTN3RaK2Jrc3BUeUxpbDFoV1RWam84ZXpRdjZiUlRaV0dVY05yRjdGTWtuaFdTcG44YUlLMWxQSlFTcm1KaUNleFRERFlWUitXNlpsRXhKT3k5R3p0cDBURWkrZ3VHZWZwbHYvLzF4MC9aMTdIcWtmN1VpbGxVc2V0WGNlc3F5TWZMeFoxelAybGxQS2tsSEx6emRqOG9wVHl6MWhXdEpsMitMbmJWclI1M2tFZi9hVWVhMlkvYU10WktlVjlLZVdYYUt3RzBiT0tTNHUxOFhIUndYWjFzVzJyUG5kVHg4TFpOKzJ3R2g5WDV3UjlPcGZaeHhqWlZWTEQ4eVBIWmg3TFpKdG5aVTF0eDV1T3g1QnRLcTU4YXZ5czZ4MzJsVUcwSmJOdWRNMENmU0haQmZmZjFSZ0FBQ0FBU1VSQlZPQUVaT2JyV0NhNkRFVURBQURnS0ZvbnV6NXM4WDliSng3R1ozQWRQT3JvR25nUnk0bVBaNldVNmMvK1l5bGxYa3E1aStYRWlDZGErWmw1TEplVytlV2JDY1JmNnVUYXMxaE91aTIyN1BkWHNYc2xnVlZmMzdqdjFrbmVsaW9Rd3lNbVM4eGpPWUY3ODVNRWdvZFN5clBvcHRMRmFNdi92MnRjdHBwa3JQLzNSY04ySGF1aTFVUGRmKzRlUyt3cHBVeHJPejZMYnBJUkIxc3NROUlhbzBudG85dTBhZXZFL0NpT2ExNzN1VjlxZ3VscWZQeG5SUHl6OXRmSkR1L2J1dXpXb280WmR4c21IeS9xT1VGcnZ6dFdFdkxxbVBEWUdQbWl0bGZydnJWVnYrdHd5YjVGUk56VzQrL3R0K2Q2OWR4dXNqYUd6RHVLNzhzTjkrZEpZMnkzSGE4aTJoTlJMV0hFU1pIc0F0QmptVG5Jekk5eGVtdFhBZ0FBbk5XMVdiUWxrQ3kybVlDTzlwdk1yODRnN0YwczVUS0w1V1RiZEpzWDFRbXVGN0ZNWm9CdnZhMlRhdTkvVWpsbFdrcTVqZTJyQmJWTXF2LzJvd25OUi9yN0xOcVN1NDZSTExHYXhKMXR1STJUYUU5NEdXVG04QURiTnRxaERhZTFEYWM3L0F5T3RBKzkyTFp5UU4zT1g2S3RHdEhLODMyMlNUV3ZpU3M3N2M4TjIvWnJITWQ2MHNGM0swdlY0K3VxY3NvL1k4UEtLZlU4N1BwUVk4WjMrbDNyK0hGOWhMWjR0dW41VHgwam04OTV0cXdxMU1WNTNyeHU1L3N0MnZKSlIyUElObTA2T2VCNDFYb2RNTnRsUDRGamt1d0MwRlAxYVo3UDBZK1NzQUFBQUpkczNQajZ5VGIvdVU0UXRkeG9IdFpyeWxQV2VpMjhtdWpaK1duYU9ubnlYdmRuelUxOTBuL1RQclRZc2xyUXNPRzd0ZlRWUDF2R215TzF3M3pML1hrUzdSV2JEckd0VjVuNWNkdkVtcG84OG15SG4wTlhzWHEvelQ3MHZYMHF1cW53Y3IxSnRZM0dpaHd0Q1N2VGh0Y2VzNHJJKzIzYXN2YUZUWklQeGgyTUdiT0dmdmNRYlFrTHp3L2NIcmZiYm04ZEl5ZU5uN3ZSdU5WQjh0S3F6ejNaWVR0WFk4aTg4Zk1IV3lUM3RDYXhYMjg2RnRWalIxUGlyRk05VHMzZmhRQ2dmK3FKMHNjalhad0FBQUR3VjYyVlVuN2I4VFgzamQvNTVoU0RYYStKVzYrSFg3UWt1cXlVVW01cjR0RElibkR4M3RmSndGMzYwU0lpWG1UbVk1Vjc1N0hiSlBlOHNiLy9xK0cxd3dPM3c3UWhRZU50dEUyd2pxSXRDV0ZUMTdHYzNIeUlaU0xTTkpaUDJ5OU9mQjlhVlR4cUhaY1htZmtpbGc4SlJtTjdQbXpRdjNkdDgybmpkOXZWTVpKZDMrNmFURkpLbVdYbXMwZjJ6YWRIR2pPK1BTOGJOK3pUaHpMZjlWaFZ4OGh4dzJjUER4aVBuUk9hNnhoeUc4djVsOVl4WkxyQjU4MHpjOXE0WDQ5anM2VFdsbXVXUlZqR2t4TWsyUVdnWitvYWpQY2lBUUFBMEl0cnRLdG9tOHlkYlZ1Qm9IcUk1WksydXlaOVhHZm03WWxPam80YVh6L1pkdW1pUjl4RXhCZDd3MFZieEliTGJmek1ZeFA5SFQxWnYrMFlONHIycWdtSDlLRWgvclBNbk1WaGtnRm1IWXhsMS9YblRXMnJXWDNmUCt1eFpYcGkrMUZuUzhPVlVxYVpPV25zdTAvamtZbmRtc0R4N01ENzVHRFY1anM2OU1PVDgyMHF1dndnem90SHhyN3JZNHdaM3hrLzVydWVFMmJtNkVENzdHOE4yemh2SENQL3NjVysxK0p0NjFJN3BaU0hsdmFzZnQyeUg3WWNFMTdHWnNrdUxmdkt3eGtrVlhLQkpMc0E5RWg5d3VlMVNBQUFBUFRHTWFxNnJKNDZmWWpkSi9KV0plSW5KeGp6NWttUUxyOU1uZnlaeEdrbEJOQ3RzNXNBcWtrdUwwK3dYN2MrZFQ2Tnd5UzcvTG1IOTd4YS8rNlpHYkZNZmxrbHdFeGJKNEQzYUxLSDc5WmFoZUtxWi92a3NCNjNYOFZ4bGdmcnhUSDNCMk5WaTE4ejg2NEhjUnJGWVNwRHRZNlJueHIyamFzdFlyR3JSWFMzeE9TenhuMXRzV1c3dENTeFgyWG04R2NKOUhWZmFka2VTeGh4a2lTN0FQVG5ndVkrM0RnREFBRG8wM1hhS21Ha1JjdWt3NGZHNjhSWGNackpMaTBUa0E4N1Z0SjV6Q2ZYN0JmdDB3bU9YVmZmN0ZPRFdDNVhOSXpUWFphcmk2VjgvdDN3Mm0yV2U1b2VjTHhjVDRDWjE4LyswTFBLTDUzdlF6VVI4YUhoT0QwNjhINjUyZytqL25vVnkwb1lxd3B5d3hQZEwvZmR6MXJqMHBjSFMvOTFnTTlZZEhBT2RJaUV1WlkyN1N6NXRNWnFmb2pHN3lDSmZYVmUvN01LV1M4Ymo2OTlUWmFFbjVMc0F0Q1BteEFTWFFBQUFQcm5PdHFXQTVpMDNKQ3Z5elRNWS9kSmdVZWZBdTJwbHBqL3ZvOHZWTXZkTCtMd3kwUFFEOU0rZnFuNkZQY29sa3NwRE9KMGsxZzIxY1ZZMWpLWnQvRllYQk14cGtkb2syRXM3ekdPNi9IanQ5WmpVVmRqNko3ZSt2ZG9UMHJ0Y3A5Y0pSLzlHcWVmeExKeFh6OUFuejRIaDlpT0xwSVZGbnZlUjFySHhFOG4zQWQraTdZNW9PdjRRYkpMQnduNnFycHdzaVM3QUJ6L0lraWlDd0FBUUQrMUxtSDA3dzV1NnMraWJZTGtzYWRBKzNhTmZOVkJ2UFpsRnVlZlRNQjM5R1VKbzdYSnJPZlJvd24rQS9yenhMN3YyeU9QR2NOWUxwdnhKak52U3ltVEkzMlBhVi9mT3pOSHJSVnc2bkhyVlczcjRZWHRrOU1EZk1iVE00blZJZnJHMlZmbTJHUGkzQ0crK3l3elo3RjdCY1BoVDhhc2xnVDlSYlF2ZndWSEk5a0Y0SWdrdWdBQUFQVDJldTB2UzBQczZFMzlPYVp4bkZDeVN6UldUdG56c2gyU1hUaldlRFNJNVZJY3IwSjFvWk5ScTNPMUxMUFQ1Ymg2bjVrdkkrTEZFWkszWm51TThTd3pqN1ZmanVzeGZxaTNzNEZEOUpQL080RTR0SnhIemMrZ0gzeG92TDU0R2Q5UE1tdFp3dWloTDBtOXNJdS9DUUhBY1VoMEFRQUE2TFdYWjdJZGd6b2hSN3YvRXdJT0xUTmZSOFNYV0U2cVMzUTVQVGZSbjJvTG80ajQwa0VGcllzZU96UHpLalAvaUlqN2tPZ0NoelEvZzIyWU5MNysranRqMGpEYWtvZ3NZY1JKayt3Q2NKeUxJb2t1QUFBQS9YWk8xMnd2TlNlY2xzd2NaT2JuV0M1REk4bmxSTlduNVo5RmZ4SmVCaEh4K1FnSkwrZXlYNDRqNG85b3Ivd0dYTzR4WWRJeWhuOG5pYjNsbW1WV1NwbHBHVTZaWkJlQXcxOFV2UXVKTGdBQUFIMitiaHZIZVUwdWorcFRuOEJwakVHRGlQZ2NsczA2Q3oxTmVMbXYvWXpOOTh2N1dGWnpBV2p4b2ZIMXo3LzVjMHRTdTZvdW5EekpMZ0NIdlNnYXgzS05aUUFBQVByckhDdWhqRFVyOU45YW9vdktFV2VrbExJb3BUeUppTGM5K1VwWGNiaDdsUDg0Zy8xeTdEZ0tSemM4aytQQk5OcVdaTHBlSmJIWEtsMjd4bVVSRVErNkZhZE9zZ3ZBNFM2S1JpSDdId0FBb08vWGJzTTR6Mm9LTHkray9mYVpJUERVSHNJQnZBbUpMbWVybEhJWEViOUUyeklXWFhsMW9Pb3VlK3ZQaDFpT3FYNkdlN3JRalduRGE0ZG5GSWZXNmk3WHEzRzg0VDBlYXVVeE9HbC9Gd0tBL2FzM1N6K0tCQUFBUU8rOU90UHRHbWJtZFNtbDEwOXdsbEttbWRueUZxUFkzMUloRWhEWXEzci82RkRWTm1iMTUvZFlQdDN0dnRYaHhybDVSTnhrNXR0WVZndDVHY2VaeEIzVXozKy81OCs1NnV0NzF3b0xqM2wzb1BhWXIrMlQwNGo0dzk3eTM3anNhaElSL3hiQ3N6cE85djVjZG91KythYmg5Uy9yMkgzZDhCNldNT0lzU0hZQjJQOEoyS0RlTUxBT0xnQUFRUDlkbi9HMnZZelRLRmUrYUxpR2ZocDdtTGpOekd2WDlSekFtdzdmYXhyTGlmUC9XL3R6Uk1TOEpsdXM5KytSMEI5ZWJZZTdpTGlyMVVPdTZ4aDJ5UFo0R2Z0UGRobnNjWUw2ZWVPeDVyR3gvNnJEOXBqWGZmTFArdWZaNmp0OEwrbW1NZkh6bkxRa3F5eHFOU1g2WTliQlBuL3l5UzZsbEhsbVBqUmNkMXhsNXJ1R2M5TlpLV1dtTzNJT0pMc0E3Tis3OFBRWEFBQkE3OVdFaHVFWmIrSjFaZzYvbmVqdW9WbnNQcm00cjIxOGJnL2hFUHRvQi92T2I2V1V5WmF2azhoMVpIWFNjYloyUEJyRjhuN2lyL1hYZmQxYnZNck13UUdXc3VoOGdycFdRcnB1M0Y4ZTAxcnRiUkhMNmdtVEV6ajI5dm1jb0dWTXZSWENYbzExaTh5Y041eHZYMmZtYlZkalZtWithVHozZjl1UVVQV2hjUXhycVFTbnFndG40MjlDQUxBLzlVYnBXQ1FBQUFCT3dzc0wyTVpUcUZ6VCtxUnBsOVV4VmhPcXJ1M1pxNXJjMEpKME1pbWxQTmtoMFNYQ1ExcTlVMHFabGxMZWwxSnVhcnVXaUhnV3k0bjdTWFM3WE5zaDJuOWN4OUl1dFk3MW04UncxUGorVDBvcGQ5c211dFJLNGJTZkV3eFZydXFsYWNOckI5SFJjbisxYnd5UDFUOXJ0YXZGRWVLL2lET29qZ01ya2wwQTlxUmV3TjJMQkFBQXdNbGN3MTFmd0thK09vSHYrSHZqNjhkMTZZbXV1TGJuRUVZTnI1MldVbTRhWHYrcjhQZmZ0d2t3RWZGTFJOekVjbm1jRm9kS3JPaHNMSzFqL1BnQXg1cGh3L3ZmTkZSekdlbngvKzMzODhZKy9rNFV6KzQ4NzAxSDUzbGRKRWRQRzE4L09VTDhIdzVRelFzT3hqSkdBUHU5Z0pPRkR3QUFjQnJHRjdLZHc4d2NsVkttUGY2T1hYeTNqNW41cFBWbWZtYmVoVWxIK3U5RFF4OGZ4R1VrK2gxRXJmSzg2eVRzZEp1eHVTWUJUQ0ppa3BuM0RjZXhxempNVS82anpMeHJXUEpqdmM5K2JQMHl0YXJDeno2blpleWYxcVdwZG1YcHZMOTZpTjJyZVZ4bDVuMWpRbUJrNXNmR3NmSnRhOTgvcy9ac1RYNXJPcy9yNlB4dTFrSFN5Ry9SVWFXYUxUOFR6b1prRjREOVhOaStEamZEQUFBQVRzbkxDOXZXYVYrL1hDbGxrWmtQMFRhcE5JeUl6NW41ckdFaVpCd2RMNGtFUC9Hdmh0Zk9HMTZyajNmcnFpR20vMm9ZbTIvak5KSTIzMlRtZk1mbHRsYUpMcCtqZmVtUjNpN2hZZW04Ny9vUWJRa0I0OHlNWFJOZTZyMys2M1B0Y3lkK25uZXpiV0paaCtkM0h6cUl4VHd6cDNHNHVhUlpZeUllOUk1a0Y0RDlYSkM0VWNBbG1MajRCZ0RnVEs3alJ0RStjVFk5NEZjZXhPNlZBeUtXa3o2M1BTOWgvaW5hSjVhdUl1S1BPaEV5M2FJL0RHSzU3SUhySFU3RjFTNWpVQjM3WGd0ZnAxb21FY2VaK1hhWHBXL3E1UEdweE9nK001OUd4RmJIb2RwZjd6czRYa2QwTUVuOWlKMitZMWRWYTg1TktXV1dtZlBHdGgvWCsvWmJMUzlWSzRDMDN1dWZTekQ0N2o3WXhYbmU1enB1dnQ5dy8zclQ0WEZ2MG1Fc1JnZUt1Nm91bkIzSkxnRGRleGVXTCtKOHplb0orS1RlU0JrTENRQUFaNkMxcXN1a3RUeitOdXJOK2krTjE1N2ppSGpmMXdZcHBVd3k4MDIwVDJvT1l6a1JNb21JMzM0MjJWVGpPbzdsUklqcmVnN3QzdzJ2ZlpXWmt4MFNCMHlxZDIvYStQcVB1MVNrYWwxeTV3aHhHa2ZFZFdhK3JjZlF4VSsyN1NvaVhrVjNDWWp6eDVZd3Fsb1NRb2VaK1hxVENmaHZqa0dmb3kyWjlaeTlqZmFsYjBZUjhhV2VFM3o0V1NMc1d2V1BZUWZmWFlMQi81N25QWFNRd0JUMWZPMWRacjZLWmZXY1Q5KzJheDBmbjljeHBLdnp1MGxYU2VQMW5QY1FjMHFMVUdHSU15VFpCYUJEOWNUSk9zZWNtMVdDeThNdVR4Y0JBRURQcitOV0NRNHRQaHp5TzYrVmYyLzUzaStqeDhrdWEzSHRxbkxxT0paUGRjOWpPYkg3YldMQjA3QWNNYWRyR011a3JoZVBYYmV2VlNRZUM5dmV4dWRaN0o2d3NIVkZxZzRTbDQ1VjVXdFZSZXRkWGNiajkyLysvVjkxWEI1Mi9MbHZOMnpMV1dPMW5IZDE2WnhOS2s2TXd3T1VqM25vTUVhcmM0S0lyOGxlODdXKzF1WDV3Q0s2cXdCeWJycElZRm8vRHI2T2lOY0hxbkwxZGcvOWU5L0g1WWVlVjNXRW5VaDJBZWpXdlJCd0JoYjFRdTlUUkV3bHVBQUFjT2JHamErZmI3TkVUb2QrYS96dVY1bDUxZk95K3U5am1aUXo3UEE5aDJHU24zNmFSbHR5MTFVc0t4WTh4REpwNE50OWV4UVJ2NGFIdEE3aFE3UlY1eGpHTW5scEhzc0owRDlqT1JHL2JyV2MzZlBHejRxZUhBZEdjWmlFdzNrcFpiTE4vMjg4QnEwcVRueUkvNjJnTTR4bG91VjFTSExacEo4dU12TTJ1ci8vdnU5Kzk1c0VneCsyNmFUdUg2ZFd6V2l5aC92bHJlZjFtMzRHbkIzSkxnQWR5Y3pYMGYyVEJuQW8wMWplREh1d2hpd0FBQmZtVmVQcmozTGp1RDV4UG8yMlNacFhFWEhUMTRaWm05aXkxQXBucjVReTdlaHA5T3VRMEhKc2sraG1PYlJoTENzVjdOT2xMV214N1RGdkd1MFQwTVBhSDk3WU5ackh5VWxtdm96VHFjUTJqLzVYMGV2RFB2bkhDWDNmUlhSZjFXVjFYdDlTRmV3eE0vZjhPVmQvRXdLQWRyWHN0UXNXVHNVOGxqY3piaVBpU1ZsNlZrcTVjOUlMQU1DRlhjdGRSZnREQzVNamJrTHI4a25YOVhxMnQwb3BEM0Y1azdGY0xuMzlETlFxRHBNVCticWZMcWhwM3U5UWllMkRIdDA3dDNHOHBiZTIvcTZxdWp3NlhzNWlEOGtqZS9SMmoxWFE5NWxBcjZvTFowdXlDMEEzWG9keWsvVFRQSlkzeTk1R3hMT0krR2NwNVpkU3lvdFN5bnZKTFFBQVhMaldxaTZUWTA1aTFLVVlXajUvRUtkUkFlSW1UbWRpQzFxWWpEb2ZiMDlnM0Zwc3VhVFBLZHRwUXIwbXg4eDE1LzZvOXpKdlQrQ3JQdFNFWFI1djA3czRqV1RQaDFMS1BpdjE3Q3NHaTVCTXl4bVQ3QUxRcUQ0Rjkwb2tPTEo1TEV1cnZxOFhmTTlxeFpaVllzdGRLV1hxYVFJQUFQakx0Vnhyb2tjZm5vaWZOTDcrWmQvYnFsN0hQQXNKTDV5NU9yRStGWW16YU10RjlIaVp1T3J0aFRUSElpSnVHdTZKdmRXamU3ZC9UYUxmeXdQTlRtRC83NXViR3JlTGJkTTlWZ1Y3TUNmQU9aUHNBdEJPVlJjT2VWSTlyUmR6cTBvdFQ5YVNXcDZWVW01cnhaYXBjQUVBd0U5ZE4xN0x6WHZ5eEc1ckpZaFJaZzc3M2xqMVNXNFRSMXlDV3lFNEQvVVlNZW5wMTV2dHVVSkJYeXhpK1VEWXJLRWRKeUVKclkvNzEyMVA5Ni9XNUtwTGJjOVZZdk9zcDIzNjRrQnR1bytsMDFTTjQ2ejlYUWdBbXFucVF1dko4bXp0OTMvVzM4L3JUMGhjQVFDQVhsN0xmZWpEUnBSUzVwazVqWWhSWXl4NlA4RmVTbm5JekdjUjhURThkTUtaS3FYTU12TW1JdTVGNHl6YTh5WXpJeUxHUGZwYWk0aDRjUUhoYjA1MFdmTWlJcjQ0OXZSeS8xckU4bUhVYyt0emw5aWVpM3FlOXpraXJucnl0ZWF4VEhTWkh5Z0cwOHljUjhTd283ZWM2WStjTzhrdUFBMHljK3dpaDdXTG1kbmFTZkMvdi9QMy96MXBGUzRBQURqcXRkd3cybStpVDNxMFNSK2lMZGxsSENkU1RhSk9BcXdTWG9aNk0rZW9sRExKektkeDJBU0o5N0dzZUdXLzZyNDkrNVR3c3BxTW41OTUyR2ZSNFFUMU41UHdnd051dzZlSWVHTXYrbW5iM0dibW54SHhMbzU3bjE2aVMwZjdXa1E4eWN6N0hveVpzOXFtaDY3UzgxdnR6MTI5RjV3MXlTNEFiVnhzWEpaWkxCTlovb3l2bFZmbUYzQ0RBQUFBemsxclZaZUhQbDBIMUlueGxrbWVRV2FPNjFJTnZWY3JYenlKWmVXTDZ3Tis5Q0k4OE1MaCt2bE5adjQ3RG5QdjZYMmRNQjVFdnlxUWFNOXV6V0s1dk1xNVQ4YS9qNGkzWFU5UTEyUFBvUkplWnJGYzBtVVk3ajl2ZWg0MGkyV0N3T2dJWDJFYWgxdm01cExHekUvMVhPOFk1MTV2U3lsM1I5cjhoK2dtMldWUjN3dk8ydCtFQUdBM21Ua0tUN3VjczJsRXZJM2xtdkJQeXRLVFVzcUxVc3BkS1dWU1NwbEtkQUVBZ0pNMGJuejloeDV1MDZUeDljOVBxUUZMS1l0U3lvdFlMaTJ4Nyt1eVJiMDI5SFFzaCs3bmQ3V1BML2JadDBzcHE4cE92NHY2M3R2elNTenZPUjNhK3poZTFZbHAvZng5bTlkdHZOMVgwa0dOM3k5N2JzT0h1aDJMK25rU0tEWnNtMUxLczNxOFBsVE1GaEZ4VzBwNUp0RmxMMjM2VVBlMzl3ZjgyR2tzNXdMdWpyamQ4K2dtU2VWQnYrUVNTSFlCMk4xTElUZ2JxeXpuMi9pYTJQSnNMYWxGK1VrQUFEZ1RIU3hITzY4MzMvdW1OUkhqdWk3dmRGSktLUStsbEY5aU9iazEzOE5IVENMaWwxT3Blc1A1MmVOazN6U1c5MERXKzdZbndQZmZucXNKK1dkeG1LU1gxUmgyZTh4Sno1cFF0YTlFbjNrc2s3WitPY1RTNFRVSjVka2VqanZ6V0ZZSCtiWkN5TlNlczFYN1RPcVllUnY3UzRaZHhQSWh5VjlLS2U5RmZlLzcyMjF0MDBuc0w1RnBWZm1xTDB0UmRaRllMMG1iaXlEWkJXQUh5cnFlaFZrc2J4UTlLYVg4czE1SXZwZllBZ0FBWjYrMWdra2ZxN3AwOVJUbzlhazJhbjFRNFpkWVZzR1lSTnRreUR5K1RtTGRlQ3FXSHZUdjljbSt0OUUyZ1R1SlpkV0laOTlXcTYxOTNYMlJ3N1RwdENaTVBJbmwvYWt1NHo2TDVVVC9hZ3liOTJTYloydmIzRHBPTDliNjhsRVNFdGVPT3pmUmxwQXlpNitWcGI5M0hGZHhhYmN4ODMySDV3VXIwOXBXdjlTSEpKMGZIUEE4dDVSeVU0K0ROOUZOY3VZOHZzNFBQT2xUWW5NZEMxckc3cGw1RGk1bWZCQUMraW96UDhkeDFsZThWS3NMTERicm4rTllyaGZKYVpuSDhzYjB4UEpEbmUwTEtRb0hkOHcxWTUyYk9EZHhmc0twNzhlamlQZ3NFbzVid0VXTis2T0krRFdXMVh5dTR2dFZmYWF4bkFUN3ZaNS9tQnpnRlByM1ZlM2ZUMnUvL3Q2MXlpcDVaYmJXdjAzTzlyZE5oM1djdXRwZzNGcHYzMFZFL0ZsL3Y1YzJianlQL3VGMTNUZmo5R3I3ZjdTZDg3cWR2UnluNjhPUjEzVmJyaHh6ZWoxdXJ2cmI2aWQrMEU1UjIybHYreGJOKzl6Vk4rZDZveC84OTNuOW1VWEV2MDloMzh2TS84VHUxU2h2VkNYa1V2eGRDQUIyWWdtajB6S0ppQStIS0dWNmdSZUlBQUFBdlZTdkFWMEhjcTc5ZTVYRVlnbU44Mm5UZVN3bll4OHVhSnZQWnB5dWlSQVRQZmtreGszT1o1ODd5M085ekx5TzNSTmRGbUZaUWk2SVpCZUE3VTgwaHVISi9sT3dpT1c2bEtxNDdNOUFDQUFBQUFBQW9ET3ZHbDc3b0FvUmwwU3lDOEQycm9XZzExWkpMdStkMUFFQUFBQUFBS2NnTThmUjlyRDFiNkxJSlpIc0FyQzlwMExRVzVPSWVLdVN5OEVNaFFBQUFBQUFBTnJVUkpmN2hyZVkxdVc2NEdMOFRRZ0F0anJaR0lUS0xuMDBqNGhucFpRYmlTNEhOUlFDQUFBQUFBRDRxOHk4eTh6N3pMeDY1UDhOTS9NKzJoSmRJaUkraURxWFJtVVhnTzJNaEtCM0poRnhhOG1pby9pSEVBQUFBQUFBd0hlTkkyS2NtWXVJbUViRW4ydi85bzlZempsZGRmQTU4MUxLUkxpNU5KSmRBTFpqQ2FOK3VYRUNkMVJYUWdBWVp3QUFBQURncDFhckJ1eHI1WUMzUXN3bGt1d0NzSjJSRVBUQ0lpSmVsRkttUW5GVVF5RUFEbkFqQUFBQUFBRDRQbFZkdUZoL0V3S0F6V1RtSUR4aDNnZUxpSGdtMGFVWGhrSUFIT2o0Q3dBQUFBRDhMMVZkdUZpU1hRQTJOeEtDWG5oV1Nwa0p3M0ZscHYwQk9CU0pwZ0FBQUFEd3YxUjE0YUpKZGdIWW5NbTI0N3VSNk5JYlF5RUFqRGNBQUFBQWNEUTNRc0Fsayt3Q3NMbW5RbkJVNzJVbzJ4K0FpL1NyRUFBQUFBREFYenlVVXFiQ3dDV1Q3QUt3T1pWZGptY2UxcDIwUHdER0d3QUFBQUJnSHFxNmdHUVhnRTFrNWlBaUJpSnhORGVsbElVdzlHcC9NUGtNSE1wSUNBQUFBQURndjE2WU13SEpMZ0NiTXJGL1BGT2wrSHBuSkFUQUlXV21jUWNBQUFBQWxnOEh6NFFCSkxzQWJFcXl5L0ZZdnFoL25nc0JjR0FqSVFBQUFBRGd3dDJVVWliQ0FFdVNYUUEyWXdtajQ1aXA2dEpMSXlFQURreVNIUUFBQUFDWGFoRVJ6eVM2d0Y5SmRnSFl6Rk1oT0lyZmhLQmZNdk1xSW9ZaUFSellWV1lhZXdBQUFBQTRGZk9PM3VkOVJQeml3V0Q0WDVKZEFPaXpCeUhvblpkQ0FCekpXQWdBQUFBQU9BVzFDc3N2RVhFYnk3bU8rUll2bjlYWC9WSkt1UzJsTEVRVS90ZmZoUUJnSTFkQ2NIQXpKM0M5TkJZQzRFaGVSc1NkTUFBQUFCeFdyU1pRUkFKZzYvRnpIc3ZLTE85WGY1ZVpvN1gvc3ZyOUlwWUpMcUdDQzJ4T3NndkFaZ1pDY0hCTzZIb21NNi90QzF3NENYakhOY3pNc2JXSkFRQUFBRGhWM3lTelRFVUVkbWNaSTRCSFpLYkovZVA0VXdoNnh4SkdHSmN3RGdFQUFBQUFjSFNTWFFBZVp3bWo0NWdMUVg5azVqQWlya1VDT0xKUlpvNkZBUUFBQUFEZ3NrbDJBYUN2WmtMUUsyK0VBREFlQVFBQUFBRFFCNUpkQU9pbFVzcENGUHFoTHVVMUZnbWdKNGFaZVNjTUFBQUFBQUNYUzdJTEFQQ1kxMElBRVJFaENhOC8zbVNtWlFZQkFBQUFBQzZVWkJlQXg0MkVnRXVWbWNPd1pBaXNXRjZ0WHo3V3lsTUFBQUFBQUZ3WXlTNEF3TTlJZEFINmFoZ1JINFVCQUFBQUFPRHlTSFlCQUw0ck0wY1JNUllKb01kR21Ya3ZEQUFBQUFBQWwwV3lDd0M5bEpsWG9uQjA3NFFBdmlxbFRFV2hsOFlTWGdBQUFBQUFMb3RrRndENmFpQUV4NU9aZHhFaDRRZzRGZVBNdk05TXg0N2xHRDdJektGSUFBQUFBQURuU3JJTEFIMDFFb0xqcUZWMTNvZ0VmTmRDQ0hwckhCR2ZMem5KSXpPSHRjck5sN0FNSFFBQUFBQnd4aVM3QU5CWHZ3ckI0ZFdxQ0pZRGdSK2JDVUd2WFVYRUg1bDVmVW5qZG1hT00vTnpmRTF5VWVFR0FBQUFBRGhyZnhjQ0FIcHFKQVJIOFM0c1h3U2N0a0ZFZk16TWg0aTRMYVhNejNFamEwTFA4NGk0RHNrdEFBQUFBTUNGVWRrRjRIRnpJVGlLUVYxT2h3UEp6TmRoMlF0NHpPOUNjREt1SStKTFp0N1ZxbFduUGtZUE12TTZNKzh6OHo4UjhURlVjUUVBQUFBQUxwUmtGNERIellYZ2FGNEp3V0hVQ2dIdlJBSTRRMjlpbWZSeW41bkRFeHVicnpMemRWMmlTSUlMQUFBQUFFQWwyUVdBUHJzK2g2ZngrNjVXMExrWENkaklWQWhPMGlDV1NTSmZNdk56Wm83N2VIeFpTMjc1V0t1My9CSExSTVNSSmdRQUFBQUErT3J2UWdCQWp3MGk0blZFM0FuRmZ0UkVsOCtoU2dCc2FpRUVKMjlVZis0emN4WVJueUppV2txWkhuajhIVVhFTUNKK2pZaXJrTkFDQUFBQUFMQXh5UzRBanpPeGVWeXZNdk45S1VVN2RFeWlDMnl2bERMTFRJRTRIMWYxNTAxdDExbjkrWGY5ZFJFUnMxMk9RWFdNSGRTZnE0ajRSLzExV0g4QUFBQUFBTmlSWkJlQVI1allQRHJWWGZaQW9nczBtWWRraFhPMVNuNzVkc3hjYi92NUQxNDcxQzhBQUFBQUFBNURzZ3NBcCtCTlpqNlVVbVpDMFM0enJ5UGlQaVM2d0s3bUlhbmhVZzIxUFFBQUFBREE4ZjFOQ0FBMk1oZUNvN3ZQVE1rWmpUSnpIQkVmUTZJTHRQaGRDQUFBQUFBQTRIZ2t1d0JzWmk0RVIzY1ZFZStFWVRlWk9jak0rMWhXZEFFY0V3QUFBQUFBNEdSWnhnaGdNM01oNklWeFprWXA1VVlvTnBlWlY3Rk1jcmtTRGVpRUpkVUFBQUFBQU9DSVZIWUIyTXkvaGFBM3hwbjVXaGcyVTJQMU9TUzZRR2RLS1pKZEFBQUFBQURnaUNTN0FHeG1MZ1M5OHE0dXljTVBaT1pWWm42TzVkSlBBeEdCemsyRkFBQUFBQUFBamtPeUM4Qm01a0xRTytQTS9KaVpFam5XWk9ZZ00rOGk0bytJR0lrSTdJM3FMZ0FBQUFBQWNDU1NYUUEyVUVxWmlrSXZYVWZFSDVrNUVvcUl6QnhIeEplSWVDTWFzSGQvQ2dFQUFBQUFBQnlIWkJlQXpjMkZvSmVHRWZFNU05OWRhcFdYekJ4bjVwZUl1QTlMRnNHaFRJVUFBQUFBQUFDT1E3SUx3T1lzV2RGdnJ5UGlTNjF1Y3ZaV3l4V3RKYmtNZFFFNG5GTEtQQ0lXSWdFQTBIUmRzMXFlZHQxLzZ0K05MelFtbzdyOS8va21McDlydkR6Z2NMNzd3YmR0ZnJIN0FRQUFiRUt5QzhEbUxGblJmNE9JdU0vTXMwMTZxVGMrN3lQaVA3RmNybWlvMmVGb3BrSUFBR2QzcnQxaUpJb2J4L29xTS8rSVplTCs5WGV1NjY3cnRkMGZtWGwxSVRFWlpPYm5pUGhjdC8vYnBKWlJqWmVsZk05M1AvaTJ6VmY3d1pkTDJROEFBR0Fia2wwQU5qY1ZncE14aks4M2hPNHljM2pLRzFOdmdMMnJWVncrUjhSWUUwTXYvQzRFQUFEYlg5L1U2NXBOSnUrdllybHM3ZFVGeE9STExCTmFOcm5lL2F6aXgwWHRCOE5ZSmpsZGl4d0FBSHdsMlFWZ2M1WXhPajNEV0ZZLytiSXEvM3NxSlovclU2V3JCSmMvWXJsTTAxQ1RRcTlNaFFBQVlLdnJuRUVzSi9pM3VTNGJ4REs1WTNpazcvejZBSlZVN3JlTVNjVHlBUS9WUHZiVDV1LzIyZVoxUC9pNFk1dTdMd0FBQUpWa0Y0QU5sVklXSWVIbGxGM0g4Z2JpZjJvcDdMdStsSDZ1NWFwSDlUdDl6c3lNNVExZ0NTN1E3K1BDTENMbUlnRUFzTEYzc2YwRWY5VFh2RG5DdGRwOS9jNzcvSXk3Mkt5NngvZmNrbkhiMlFBQUhrcEpSRUZVNjFLZFg1dC9yTmZpKzdUcmtzUURiUTRBQUYvOVhRZ0F0aktMM1c5QzBSOVg5ZWZOTXE4a1p2WG56L3JydkpReTM4Y0gxd1NiUWYzOFgrdXZRMDBDSjJzYWxoWURBTmprV21qUWVONDB6c3kzKzdwVys4NTMzWFNKbVZZdlc2NXRNM05VU3BucVlhZlI1aDNzQjZQTXZLcUo5d0FBY05Fa3V3QnM1L2N3cVhtT1Zza3YvMVdUWU9ieHRXckRMQ0wrYjh2M2ZWcC9IWVFrS1RoWG54d1hBQUEyY3QzUmU3emY1NWVzU3dQZEgrSWFybjdXc1BGdG5vZmxOYnRvaDIyWDE5clZxSVBQdVE2Vmh3RUFRTElMd0pZZVFzbllTektNcnpjZVI4SUJmTWRVQ0FBQU5yNithdld2Zlg3QldvbnpZeHdtNlNHaW00UWFEMWEwdGZrNGRsOWU2MWp0OWF1V0F3Q0FpTDhKQWNEbVNpbUw4UFFNQUg4OUxqeUlCQURBUWV3dHNhTW1QUnlxdXNmS1VKTWVUMmEranVVRFRZTVQrK29EclFjQUFKSmRBSFl4RlFJQTFud1NBZ0NBZzVqdjQwMHo4MTBjcDRyclFwTWVSMmJleDdLaUN3QUFjS0lrdXdCczc0TVFBTEJtS2dRQUFJL3FJckhqMzExK29jd2NaT2JIaUhoOXBKaDBVVGwycm10dDNlWi9STVQ0U0YraGkvYjZYVXNDQUlCa0Y0Q3RsVkptNGVrckFMNGVGK1loNFFVQTRERVBQWG1QaUZnbVBjUnkyYUxySTU1SFRxUDkvb0xFaDgzYi9LcTIrZFdKN3dldVBRQUFJQ1M3QU96cVFRZ0FXS1BxRndEQVQzU1FJRHl0RDU4MHEwa1BYK0s0U1E4ckxmY1g1cVdVaWQ2MVVadVA0dmlKTGxGS1dVVEVwTEhOcDFvVUFBQWt1d0RzNnBNUUFMQkdFaVFBd09OdWovVGEvOHJNY1N5VEhnWTlpc25pbURFNWR6MXM4N2NOYlg2alJRRUFZRW15QzhBT1Npa1BZU2tqQUw0ZUZ4WWg0UVVBNExGenBsbnNObGwvMDBWVmw4eDhIUkgzMFora2g5VjU1TFBZL2g3RCszcHZncCszK2J2YTVuM2FEK1lOKzhGVXF3SUF3SkprRjREZFRZUUFnRFdXTWdJQWVFUmRkdWRGYkpiY3NZaUlGMTBzMVZNVFhkNzFOQ2F6V0NhOHpEZU15VTBwUlZXWHg5djhYVVM4N21tYlA4VG1TVTZyTnA5b1ZRQUErRXF5QzhEdVRHb0M4Ri8xaHZWY0pBQUFOanB2K2lXV3k3bDg3L3hwWHYvdGx3NnJsd3g2SHBOWlJEeUo1ZEpFc3gvRTVIMUVQSkgwc0xHcm5yZjVkSXY5UUpzREFNQTMvaTRFQUxzcHBjd3ljeFk5djNrQ3dFRjlpSWczd2dBQThPZzE5U0lpN2lMaUxqTUhhOWZXcy9wdmx4cVQ5eEh4L3B1WXpPdlNOOWdQQUFDQVNySUxRSnZmb21kclB3TndWSk9RN0FJQXNKVTZxVDhWQ1RIUjV0b2NBQUEyWlJramdEWVBzZG42eWdCY2dQckU3VVFrQUFBQUFBQmdmeVM3QURTb1Q5MU1SQUtBTlIrRUFBQUFBQUFBOXNjeVJnRHRmb3VJMThJQVFFUkVLV1dhbWRPSUdJa0dBSEJNbVhrVkVZT0lHTmFmaUloWkxDdVVMa29wTTFGaWgzNDFpSWlyK3NmMTMwZXNMY05UU3BtS0ZqM3V4NnZydGZYeGNWSEh5SWlJZWEzY0NRQkFUMGwyQVdoVVNwbG41aVFpeHFJQlFQVTJKTHNBQUJ0WVMwaloxbmVUVlRKekhCSFA2N25JNEpIUGpsZ21KL3dlRVEvN1RuN0p6R0Y4blZUZTFrOG5udGNtcm4va1h3MWYvYXJHYXB0N0JkTU5ZL0p0c2tobk1lbTRqMTVIeE5QNlhYL1dyOTU4MDcvbXNVd2UrQlFSMHk2Lzd3WnRQdWhwbSs5bFAyanNTejhjVTQ0d3RtMFZ6eTMyczFVZkhtMGEvOHhjSmI4Y1pJd0VBR0E3a2wwQXV2RWhKTHNBVU5YcUx2UFkvU1kyQUhBNTNzVnVTYkxUaUhnVzhkK0ozTmNSOFNxMm4xd2UxWjgzbVRtTGlOOUtLWk05YmVzNDFwSWh0dlEySXU1Kzh1K2Y5OXhHVzU4U2J2ai9yaHErKzJNeDJWbE55QmhIeE12R2M5cGgvYm11N3p1TmlBOGQ5YkZUYmZPOTdBZWxsRVZtZm96ZEUwem1FZkZMaHpIOG8rRzFuWHlYbWhEMU1uYS9aemY0Wm95Y3g3TEM4NlF1YlE0QXdCSDlUUWdBMnRXblRhWWlBY0NhdDBJQUFPeGJuY3o5STVhVDU0UEd0N3VLaVB2TS9MSkIxUXpPc3o4Tk12TStJcjdVUGpYcytDTkdhMzNzV3NRNzk5RHcybUd0eHRKRlA3bys0blpFWm80eTgzTXNFNkxHSGNaM0dNdEVxQytaZVZjVERRRUFPQkxKTGdEZE1ha0p3SC9WcDFXVnVRWUE5aVl6WDhkeU1uZlk4VnNQSStKelpyNFQ1WXZxVCtOWUpybU1EL0J4dzRqNG1KbWZKUXgwNmxQajYxOTI5RDJlTjc3K3R4Mzc4S0JXdC9rYysxMVdkaERMWkxBL0pBWUNBQnlQWkJlQWpxanVBc0IzM0FvQkFMQW5vOWh0cVpWdHZKYU1jUDdXcXJuY1IzdDFvRjM2OFpldUtvcGN1bExLUTBTMExLL1RWYldkbHZlWmxWTG1PL1RqNjFnbWF4MnlZdEF3SkFZQ0FCeU5aQmVBYnQwSUFRQXJFaUVCZ0RNd2l1Vmtyb1NYTTFUYnRldWxYclkxcUgxTXdrczNKZzJ2SFdibXNMRlBYVWRiMHRTSEhUN3pkVVI4ak1NbmE2Mjh6c3lQeGtrQWdNT1M3QUxRb2Zya3lVUWtBRmhqbVRzQTROUmR4ZjZyeUhCZ2E0a3VmVWd5a2ZEU25RK05yMit0ak5LNmhOSERsdjM0dmlmajAzVklEQVFBT0NqSkxnRGRleHR0SldNQk9DTzF1c3RFSkFDQUV6ZXUxUk00SCsraUg0a3VLNE9JVUIyai9mcGpGaEh6aHJkNDJmZ1ZSZzJ2ZmRobUNhT2E2REx1VWZpdllya2NHQUFBQnlEWkJhQmo5YUw4TjVFQVlNMXRTSVFFQUU3Zkc0a0k1NkV1TlRQdTRWY2JSc1FiTGRTc3BickwxYTVMR2RYS1BNT0d6LzYweFdlTmU5cUhyek5USlN3QWdBT1E3QUt3QjZXVXUyaDdpZ2FBOHpvdUxNSnlSZ0RBNlJ1RTVZeE9YazFZNm5QMWlkZTdKbHZ3WDVQRzErKzZsRkZyVlppSERmdncxUW4wNFd2ZEVBQmd2eVM3QU96UGpSQUFzRkpLZVI4Uk01RUFBRTdjV0NMQ3lYc2R5OFNsUGxQZHBlM2FZOTU0N2ZGMHg5ZTFKSGc4MUljRWZxb21hMzA4Z1dhNFZ3a0xBR0MvSkxzQTdFa3BaUm9iUHBFQ3dNV1FDQWtBbklPeEVKeTBWNmZReHlSVk5XdFp5dWg2MjBTTkRwWXcydlQ3dm1uOG5FTVpoS1F0QUlDOWt1d0NzRjgzRWJFUUJnQWlJa29wczdDY0VRQncrbDRLd1duS3pIRjBWOVZsRnN2bGN0NnUvVXlqdS9zZ2xvRnBNemx3L0VjTm43VW9wVHhzMEgrSHNheE0xS1Y1N2JmVGp2dHZoQ1c1QUFEMjZ1OUNBTEEvcFpSRlp0N0VhWlJYQmVBd3g0YTd6SHdlRVZlaUFRRHN5U3lXazdiL3QvWjNUNk50TW5yZE1ET3ZhaUl2cCtWNTQrc1hFZkZiUkx6LzJaSXptVG1LWlZXTFVlTjNmYS9KZHI3dVdHVG1RK3llTlBROHRrdVlhVW1DMjdReWNsZVZVcWF4ckNUejNhV1RhcFdhbDdHc1l0V2FIUFltVlBnRUFOZ0x5UzRBZTFaS2VXaTh1UURBK2JtSmlEK0VBUURvMkNRaTNwWlM1dC83eDdvc3ladm9wakxDS0paSk5YM3hXUFc4bG1TZlNVVDgrMHo2eUtqaHRiT0llUGF6SkplVnVyVHpORFB2WS9kbHIwYU5iZjR5ZGwvdTVsemEvRlBzZmo5cTQ5ZlY2aVV0eWZ3Zk52eU1jV004RmhGeDgxZ1ZtWnJJTjh2TXR4RnhIMjMzOU1hWmVidkpmZ01Bd0hZa3V3QWN4azI5NkI4S0JRQ2xsRmxtM2tiRU85RUFBTHE2N2l5bFRCNDVCMWxFeEcxbS9obkxDZHdXVDZOSFZUZEtLWGMvKy9mTXZJdmRFejArMU9TTmsxYXJWZXhhcFdJUkd5YTZmTk11TjdYS3kzREg3eno2VWV3M2FQT25zZnQ5bUxObzgxaFdUTGx2NkRQWG15d3ZGRzNKSVBNTlkvMnFNUmFyUGp6Ym92OHVJdUpGWTlKVzFOZXFVZ1FBMExHL0NRSEEvdFdMWXlWTEFWZy9OcnlQemN0MUF3RDh6TzFqaVM3Zm5JZE1JdUsyOFRNdHlYaDZobzE5Yk5mS0ZCK085SjFkY3l6YmJOTHdGcHN1ZTNXSUpZeGFFbXEyVG5UNUpvNDMwVmJKNnFYZUNBRFFQY2t1QUFkU24xSjVLeElBckxtSmlMa3dBQUFOcGpXSmR0dHIxUGVONXlGRG9UODVMUWxLeDByUzFzL2FmV3A0N2FNSkpuVjV0SDB2WWRSYUxmbnRyb2t1YTFvU0JLOXFuQUFBNkpCbGpBQU9xSlJ5bDVtL1J0dlRLQUNjejNGaGtaa3ZJdUp6N0Y1U0hnQzRiTDgxdlBadHRDMXhjdFhCQkRLSE05M3hkWXVHcWk0Unl5V3ZPTjQxeDBObUxuYTgzaGhzc0pSUjZ4SkdtNHdoTHhzLzQzMEhjWnhtNWl4MlQreTVqcllxT3dBQWZFT3lDOERoM2NUeWFSUWxud0dJVXNvc00yK2pZYUlKQUxoWWkwY21vUi96MEhnT0lsbjN0TTQ3cDdGN3dzdE9Ndk11SWtZTmJ5RlJwaHNQRVRIZThiWFA0K2VWZlo0M2ZLOU5rL1g2VXBYb1U4TjMrVlUzQkFEb2xtUVhnQU9yVC9IZmhLZjRBZmg2YkpqVXlsK3ZSUU1BMk1LMGcrdlRsa29GOEJkMXFaWlJMSk5VcnNNeVJIM3hXK3llN0RKNnBMMWJLcnM4dEg2SFRWNmJtWjg3aW1OTGZ6Yk9BZ0IwVExJTHdCSFVwL2h2SXVLamFIREdKckg3elRTNHhHUERiYjFaYkw4QkFEYjFad2Z2c1JCR0hwT1p3MWhPOUEvaXI1UDIvNHF2Q1FBamtlcnR0Y1lzTStleFc3TEc4Q2RMbHJVa3VzeEtLZk1OK2w1cmtraGZra3pzSHdBQUhaUHNBbkFrZGMza203QnNCZWRwRmhHM3NieVJOaElPMk5odExHL0dldW9QQU5qRXRJUDMrTjA1Tyt1K3FjNXlwWCtjallmWXZaTGt5M3FkLzYyV1phWTJYY0pvY0U3N1ZpbEZnaUVBUUVmK0pnUUF4MU5LbVVURWU1SGd6TXdqNGxtOWdmTkpPR0NyNDhJaUlwN0Y5MjhrQXdEQTNtVG1kV1oraklqL3hMSVM3ZXVRNkhKT1BqUzg5bnJMdjkvRUlaWXc2aHNQTlFBQWRFaXlDOENSbFZKdVk3bmNDNXlEUlVTOFdIdFNhU29rc1BWeFFjSUxBTEFwNXdzMHEwa3VYMktaNEhJdEltZDduVEZyR0RPRzN5NG5sSm5Yc1h2VmxRY1ZUZ0FBYUNYWkJhQUhTaWszSWVHRjA3ZUlaVVdYMlZyZm50Vy9CN1k3TGtoNEFRQTJQV2VBbldUbUlETS94ekxKWlNnaUY2R2x1c3ZvbXo4L2IzZ3ZWV0FCQUdnbTJRV2dKMnJDeTROSWNNSmVyQ2U2ckprS0RleDBYSkR3QWdEQVh0UXFIVi9DTWtXWHB1VyswOHR2L3J4ckZhQkZ1UDhGQUVBSEpMc0E5TXRObU5Ua1JQdHVLV1g2ZzMvN1hYaGdOeEplQUFEb1drMTArUnk3TDBIRDZWNWZ6R1AzQjFLdU1uTzQxb2NzWVFRQXdGRkpkZ0hva2JWSnpZbG9jRUp1U2lrLzY3TlRJWUpPamcwU1hnQUFhSktaZzVEb2N1bGFsakphVlhONTJmQWVsakFDQUtBVGtsMEFlcWFVc3FoTEdrMUVneFB3V0tKTDFLV05QTFVGamNlR1dDYThURVVEQUlBRzkzSDRSQmRKMi8zU3hWSkdPeTloVkVxeGhCRUFBSjM0dXhBQTlGTXA1U1l6SXlMR29rRlBQWnJvc3VaQlg0Ym00OElpSXA1bDVyMzlDUUNBYldYbUtIWlBVdGpVTkpZUE8vd1p5eVNYYVVTc2xrMmlKOWNWbWZtd1kxKzRxdjFvdU9QSFQzYnNVMjhhK3VQYkhvVmY0aGNBUUlja3V3RDBXRTE0V1VURWE5R2dSeGF4VEhUWjVtbXMzOFBrUEhSNWJQZ3pJdDZKQmdBQVczalYwZnM4eERLWlpSckxTaDAvbmNDdkQvTFFMNTlpOThTbis0YlAzV1VKcFpaS3NjTlN5bFJ6QXdDY0o4c1lBZlJjS2VVMkltNUVncDVZUk1Tekhjb09UNFVPT2owMnZJL2xza2FXQ0FNQTJML0JtV3hIYTFXWHR4SHh6MUxLaTFMS1hTbGwrbGlpQzcyOW5wZzBYRXNNZDN6ZGZKZiswdGpIaHJVU0RRQUFaMGl5QzhBSnFEY2hUR3B5Ykt0RWwxMXVUczBqWWk2RTBPbXhZUm9SVDBJcGJBQ0FmYnM2OVEzb1lNTC9waWE0N0hKZlluU0NJUnRlUUw5K09QRG5mV2g0N2JUaHRXOENBSUN6WkJramdCTlJTcGxtNXJOWWxvdTlFaEVPYkJiTFJKZVdoS3RwV01vSXVqNDJ6Q1BpU1dhK0MwdmVBUURzeTY5bnNBMHQ5eEVtOVNHY1M0cmYwNGlZbkhtLy9uVGdhL1NXZVA0ZXV5ZE5qVEp6M05pSEl6TUhqZnRSV0ZJSkFLQmJrbDBBVGtncFpiYVc4SEl0SWh6SVF5eWY0bXV0TFBSN1NIYUJmUjBmYmpQejkzcDhHSWdJQUVDbnJqUHo2c1NYN0drNVIveDkxeGRtNWpDT2QvK2lKVUZpbkpsdmEzTDV1VjVEUEdUbVBBNVR4V2JXR011SGFLdlE4aTR6WjQzN2NPdTl1SWV3eERNQVFLY3NZd1J3WWtvcGkxTEtpNGk0RlEwTzRHMWRqNzJMSmJRZWhCUDJlbng0aUloZjdHc0FBSHZ4T1RNZnJlcVFtWVBNOUhES1YrOU8rTHQvck1rNm03VDVxVmJnUGRTMVE4c1NSbEdUVk9ZTmJ6R28rL0JvbHhkbjVsMjBKMjE5TWh3QUFIUkxzZ3ZBaVNxbHZJK0lKNDBYKy9Bamk0aDRVVXE1NjdEUExtSzVIQkt3djJQREtpSHlSZDJQQVFCWWFyMFdHVVRFSDVsNW41blhxeVNJekJ4bTVpZ3pYMmZteDRqNFQwUzhPclBZUGQzbFJaazVqdE91U250VjIveGRiZU5WbTEvVlA5OWw1dWZhNXFlNm5SOE85RGxkSk5YODFzRSsvTG51dzhNTisvQWdNKytqcmFwTTFHc3pEeVVBQUhSTXNndkFDYXRQdGp4eHdVekhaaEh4ckZhSjZOcFVlT0VneDRkVmxaZUphQUFBUkVSM2ljRGppUGdZRVY4eU15UGlTMFI4am1VRmszT3Q2REt1aVNzYnk4eDNzVnoyNVppNnVQNGNSTVRyMnNhck52K2ovdmxON0w1TVVsK3VHMW9ycG16aW9hUGxvQ1lkN2NmajJwYjNtVG4rTnZHbEpyaU1haC8rRXQwc3gvelFVY1ZjQUFEV1NIWUJPSEdlNHFkamsxZ211dXlyQXN2dlFnd0hQVDdjUk1TelVGVUpBSEJ1Tkwzd0VMUnUvMzJ0WkRMNDBYK29TUUxqelB3U3l3U1JZM01PdkpsOVYzZjUxTkUrdklqMjZpN3J4ckZNeVBxU2EySlpxZWR6N2NPRGpqN3JyVzRHQU5BOXlTNEFaNkkreGY4a1ZNNWdONnRsaTI3Mi9MU1IvZ21IUHo1TVN5bFBJdUkySkVVQ0FKZnRrcTlINWgyOHg1dUkrRTltZnE1TCs5elZuM2RyeS9uY1I4U3dKK2ZCaTdEMDh5WW1lMzcvTHF2R3ZqL0JOcDEwVk5rR0FJQnZTSFlCT0NPbGxIa3A1Vm1vOHNKMnBoSHh5NTZXTGZxMmp5N0MwM1Z3ckdQRSsxZ3ViZlRXTVFJQXVGQ2ZMblhENjJSN1Y5ZGlvMWhXdlhoVGYxNUhmNWZ6c2V6ellmdkd0eVpkUGxCVDMrdjJoTUo3YXQ4WEFPQ2tTSFlCT0VNMWFlR1gyUC9UT1p5MlJVVGNsbEtlSFhqdDZLblF3OUdPRDR0U3lsMDlScndYRVFEZ3dsejZOZktIQzl6bTMzVDdvL2FOemhQTTZqMnZVN21XZVh2Zyt5MEFBQmRGc2d2QW1hb1RtamNSOFN4VTB1Qi9QY1N5bXNzeGJoQjlFbjdveFRIaU5sUjZBUUF1N0J3b0xqdmhaWEpwNTMyMWFzbFU3OStvYjNSdHNhOEtzdlZhcHUvM3VoNk9kTThGQU9CaVNIWUJPSE9sbEdrcDVVbEUzSVRKVEpaclc3OG9wYnc0MXRORnBaU3Bab0RlSENQbWE1VmUzdFl4Z3RObnlUZ0ErTEdMVGZTdDE0Q1hXT25rUnJmZnFHOTBuWml5N3lXayt2eHcxMXkvQXdEWVA4a3VBQmVpbERJSlQvQmZza1Z0K3lmN2VySnFTMU5OQXIwNlJpeEtLWGVsbEY5aWVWTldvc1JwbXNReW9mR2ZQUm5yQWFDUDV6M3ppTGk5NE8yL3U3Unp2ZHJtYi9YK1IzVmRoZlhEbnR0MUVmMU1lRm5VYzNMMzNnQUE5a3l5QzhBRldVMW14akxwUlNuVnl6R0paWkxMWFk5dXR2eXVXYUMzeDRwSnJRajJKQzZ3MVAwSmVvaGxndEkvU3lrM2tsd0FZTFB6bmJqczVZeGVIT2tjYjNIRU5yKzc4RGJmOUx5eXF6YWFINktxYXc4VFhoWVI4YXlVNHVFQkFJQURrT3dDOFAvdDNkRnhHa2NBQnVEL1p2SWVwNExJRlZpdVFGSUZqaXB3cUNCREIzWUZjUW1vQTZXRGN3Zm5EbEFGd1JWY0huYlBNTEZrR1lIZ1RuemZEQU1qalJEc0x0emUzcis3SjZpR1h1WXBvWmVGRW5teDJwU1F5NnpPWkJ2YmF3UEdmYXpvNnZmSGJ5bGhDaUdLY1ZqVlkvZDFTc0RsdWdhVWhKSUFZTHUrenV4VXo0ZnIrZUZWRGhzK21ZM2dQSEN1VC92RGRySFByWXh1RC9tNmExai8ySk82dXBReEdFRVhBSUFERVhZQk9HRk4weXpyQUovdGpWNldObVVtMFdobkU5VVpYdG9iVE9kNHNXaWE1anFKNE12eHZ0ZUhyZWkrcmVBaTRBSUFPL2R4WmpuUjdXM3F1ZUpWa3VVei82dGhTNWRGanJ6Q1p3MUZYTWRLdHoreXI2Mk1ibzVRdi9NRHRlbjdmRW9aaDFscVFnQUFoeVBzQXNBUWV2bVFkZWpGeWZrMHRWbUhYTnFKdkY1Z1dzZUwxVDNCbDBXRTEvYXRTeGt3SDFadnVhcGIwWmtsQ2dENzc5OThTTm0rc1QzQjk5N1Y5LzVjNFkrdW5xUGVqdWtjY0NNVTRaejArN0xaeDFaRzNiSDZyWFVzNUcwT042RnJXZHY0WEJBZEFPRHdoRjBBMkJ3VVdOV0xhYTh6amlXRytUbUxKSzhuRkhJWmZGWjFNUGxqeG1KanE2TmhVTm14WXp1cnJGZHV1VW9KdDd5dEErWldid0dBdy9ScnVxWnBybXAvWnBHblh5UmZwZ1JINWhQcjArMDcvTEZLTXE5OW1tNnpuRE9Ta0hUVE5HMnQ4NnNkNjN3SUtTOWUwRWRpMTFVY2IwYlFwaitrVE9pYTUza21kSFZKWmszVHZKN1lPQXdBd0l2eWl5SUE0SUhCZ1VXU1JkLzM1MG4rU3ZKSGtsZEtaalNXS1FOSW55WjhJYlJWamZDaWpodGR5cUJ2a3FUdis4c2tsMGt1a3B3N2hpUXBGMUdHY3ZxU0k4NTZCZURCUHZiSEhmLytLVzV5M0NCNGU4RDMzQjdwZFc3VG41a2xtZFZ6NGN2YWg3bDQ0RSs2SkYvcmErdWVlRzYyUzd0cjkvamUyeVJ0My9kbkcyTUFaMXMrelcyU2YrcDR3a1BtV3o3djhwbnJ2SzNsT0t2OTEvTkg2dnp6UnRrL3RjNUgvVG1vN2ZGdWg3OGZ4WmFudFc0K0pmbFVQOC92NjJmNi9JbFAyYVZzODNTckR3OEFNQTZOSWdEZ1ovVjkvMmVTZHltRFhoekhiWktialdXZ3A5Nm0vbzBMNE52NldHZXB3ZFErNzJjcEE4dm5LUmNQenJMOUJaUXBhVk11enR3Tmo1dW1XV29KQU1CRSsyKy81dnVRd0xmZ2g5VXRtRmpidnN3NjJQVDdQZWNsUXo5K2xSSnEwcjRCQUVaSTJBV0Fwd3dLbktVRVh0N242VE5pK0hsZHltelAyNWQyb2JUdis3KzFvYTNkUERKVEVxYjJQWENaZGZEbFRjcUE4eFJXZ2xsdTNPNDJIbmUySGdJQUFBQUFlRjdDTGdEc1pDUDQ4aTVsT1ZqMlk1bjFLaTZXeHdWTzlSZ3poRjZHQUV4eS82emlYWTgvdy9aQ200WnRDWWJ2NU9Yd2MyRVdBQUFBQUlEakVuWUJZRy82dm4rVkVueTVxUGUycDlsT20vWCt6MHZGQVFBQUFBQUFBTjhUZGdIZzJkUVorWmV4NnN0RGxsa0hYRm9yQlFBQUFBQUFBTURqaEYwQU9KaU44TXRGeWhZVVp5ZFdCRjFLdU9WTFNyaGxxVlVBQUFBQUFBREFkb1JkQURpYXV1M1JFSUI1a3hKK09YOGhiNjlOV2JubFM1S3VhWnBXalFNQUFBQUFBTUR1aEYwQUdKMjZBc3haU3ZEbDkvcDR1STFKbDJSVjc3K21CbHlzMkFJQUFBQUFBQURQUjlnRmdFblpXQTBtOWY1VmZUeUVZalp0L3Y0eHkzcjcvOC91N3ZsOTF6VE5TbTBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjSHIrQTNMQmQ0YXc4VXlMQUFBQUFFbEZUa1N1UW1DQ1xcXCIvPjwvZGVmcz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTIgMTRcXFwiPjxwYXRoIGQ9XFxcIk0uNjY3IDdhLjY2Ny42NjcgMCAwIDAgLjY2Ni42NjZoNS4wNkw0Ljg2IDkuMTkzYS42NjcuNjY3IDAgMCAwIC4yMTcgMS4wOTMuNjY4LjY2OCAwIDAgMCAuNzMtLjE0NmwyLjY2Ni0yLjY2N2EuNjY3LjY2NyAwIDAgMCAuMTQtLjIyLjY2Ny42NjcgMCAwIDAgMC0uNTA3LjY2Ny42NjcgMCAwIDAtLjE0LS4yMkw1LjgwNyAzLjg2YS42Ny42NyAwIDAgMC0uOTQ3Ljk0NmwxLjUzMyAxLjUyN2gtNS4wNkEuNjY3LjY2NyAwIDAgMCAuNjY3IDdaTTkuMzMzLjMzM0gyLjY2N2EyIDIgMCAwIDAtMiAydjJhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMHYtMmEuNjY3LjY2NyAwIDAgMSAuNjY3LS42NjdoNi42NjZhLjY2Ny42NjcgMCAwIDEgLjY2Ny42Njd2OS4zMzNhLjY2Ni42NjYgMCAwIDEtLjY2Ny42NjdIMi42NjdBLjY2Ni42NjYgMCAwIDEgMiAxMS42NjZ2LTJhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYyYTIgMiAwIDAgMCAyIDJoNi42NjZhMiAyIDAgMCAwIDItMlYyLjMzM2EyIDIgMCAwIDAtMi0yWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDIwIDE2XFxcIj48cGF0aCBkPVxcXCJNMTcgMEgzYTMgMyAwIDAgMC0zIDN2MTBhMyAzIDAgMCAwIDMgM2gxNGEzIDMgMCAwIDAgMy0zVjNhMyAzIDAgMCAwLTMtM1ptLS40MSAyLTUuODggNS44OGExIDEgMCAwIDEtMS40MiAwTDMuNDEgMmgxMy4xOFpNMTggMTNhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTFWMy40MWw1Ljg4IDUuODhhMyAzIDAgMCAwIDQuMjQgMEwxOCAzLjQxVjEzWlxcXCIgZmlsbD1cXFwiIzE1NTM2NlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTUgMTRcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTEyLjg0NiA3LjU4M2EuNTgzLjU4MyAwIDAgMC0uNjEyLS4wODIgNC42OTYgNC42OTYgMCAwIDEtMS45NjYuNDI2QTQuNzU0IDQuNzU0IDAgMCAxIDUuNTIgMy4yMDJhNS4wMSA1LjAxIDAgMCAxIC4xNDUtMS4xNjYuNTgzLjU4MyAwIDAgMC0uNzc1LS42NiA1LjkxNSA1LjkxNSAwIDEgMCA4LjE2NiA2LjgyLjU4My41ODMgMCAwIDAtLjIxLS42MTNabS01LjU0MSAzLjkwM2E0Ljc0OCA0Ljc0OCAwIDAgMS0yLjk1Mi04LjQ0MXYuMTU3YTUuOTIgNS45MiAwIDAgMCA3LjE0IDUuNzg3IDQuNzMxIDQuNzMxIDAgMCAxLTQuMTg4IDIuNTJ2LS4wMjNaXFxcIiBmaWxsPVxcXCIjQTY2RUU5XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTAuNjY3IDkuMzMzSDUuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptMC0yLjY2N2gtNGEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNFptMi42NjYtNGgtMlYyQS42NjcuNjY3IDAgMSAwIDEwIDJ2LjY2Nkg4LjY2N1YyYS42NjcuNjY3IDAgMSAwLTEuMzM0IDB2LjY2Nkg2VjJhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYuNjY2aC0yQS42NjcuNjY3IDAgMCAwIDIgMy4zMzN2OS4zMzNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMy4zMzNhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3Wm0tLjY2NiAxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0YS42NjYuNjY2IDAgMCAxLS42NjctLjY2N1Y0aDEuMzM0di42NjZhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY0aDEuMzMzdi42NjZhLjY2Ny42NjcgMCAwIDAgMS4zMzQgMFY0SDEwdi42NjZhLjY2Ni42NjYgMCAxIDAgMS4zMzMgMFY0aDEuMzM0djguNjY2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOS4zMzQgNS4zMzNIMTBBLjY2Ny42NjcgMCAwIDAgMTAgNGgtLjY2NmEuNjY3LjY2NyAwIDAgMCAwIDEuMzMzWm0wIDIuNjY3SDEwYS42NjcuNjY3IDAgMCAwIDAtMS4zMzRoLS42NjZhLjY2Ny42NjcgMCAwIDAgMCAxLjMzNFpNNiA1LjMzM2guNjY3YS42NjcuNjY3IDAgMCAwIDAtMS4zMzNINmEuNjY3LjY2NyAwIDEgMCAwIDEuMzMzWk02IDhoLjY2N2EuNjY3LjY2NyAwIDEgMCAwLTEuMzM0SDZBLjY2Ny42NjcgMCAwIDAgNiA4Wm04IDUuMzMzaC0uNjY2VjJhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3SDMuMzMzQS42NjcuNjY3IDAgMCAwIDIuNjY3IDJ2MTEuMzMzSDJhLjY2Ni42NjYgMCAxIDAgMCAxLjMzM2gxMmEuNjY3LjY2NyAwIDAgMCAwLTEuMzMzWm0tNS4zMzMgMEg3LjMzNHYtMi42NjdoMS4zMzN2Mi42NjdabTMuMzMzIDBoLTJWMTBhLjY2Ny42NjcgMCAwIDAtLjY2Ni0uNjY3SDYuNjY3QS42NjcuNjY3IDAgMCAwIDYgMTB2My4zMzNINFYyLjY2Nmg4djEwLjY2N1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTYgNi42NjZoLjY2N2EuNjY3LjY2NyAwIDAgMCAwLTEuMzMzSDZhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1pNNiA4YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNEEuNjY3LjY2NyAwIDAgMCAxMCA4SDZabTcuMzMzLTIuMDRhLjg4Ljg4IDAgMCAwLS4wNC0uMTh2LS4wNmEuNzE0LjcxNCAwIDAgMC0uMTI3LS4xODdsLTQtNGEuNzEzLjcxMyAwIDAgMC0uMTg2LS4xMjcuMjEzLjIxMyAwIDAgMC0uMDYgMCAuNTg3LjU4NyAwIDAgMC0uMjItLjA3M0g0LjY2N2EyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJoNi42NjZhMiAyIDAgMCAwIDItMlY1Ljk2Wm0tNC0yLjM1NCAxLjcyNyAxLjcyN0gxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LS42Njd2LTEuMDZaTTEyIDEyLjY2NmEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0LjY2NkEuNjY2LjY2NiAwIDAgMSA0IDEyLjY2NlYzLjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LS42NjdIOHYyYTIgMiAwIDAgMCAyIDJoMnY2Wm0tMi0ySDZBLjY2Ny42NjcgMCAwIDAgNiAxMmg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTQgMTVcXFwiPjxwYXRoIGQ9XFxcIm0xMS43OSA2Ljg5Ni4wNTYuNDM3SDEzYS4xNjYuMTY2IDAgMCAxIC4xMTguMjg1bC4zNTMuMzUzLS4zNTMtLjM1M2EuMTY2LjE2NiAwIDAgMS0uMTE4LjA0OWgtMS4xNTRsLS4wNTUuNDM3YTQuODMzIDQuODMzIDAgMCAxLTQuMTg3IDQuMTg3bC0uNDM3LjA1NVYxMy41YS4xNjcuMTY3IDAgMCAxLS4wNS4xMThsLjM1NC4zNTMtLjM1My0uMzUzYS4xNjcuMTY3IDAgMCAxLS4yODUtLjExOHYtMS4xNTNsLS40MzctLjA1NkE0LjgzMyA0LjgzMyAwIDAgMSAyLjIxIDguMTA0bC0uMDU1LS40MzdIMWEuMTY3LjE2NyAwIDEgMSAwLS4zMzRoMS4xNTNsLjA1Ni0uNDM3QTQuODMzIDQuODMzIDAgMCAxIDYuMzk2IDIuNzFsLjQzNy0uMDU1VjEuNWEuMTY3LjE2NyAwIDAgMSAuMzM0IDB2MS4xNTNsLjQzNy4wNTZhNC44MzQgNC44MzQgMCAwIDEgNC4xODcgNC4xODdabS0uMzU3IDEuMzU0LjEtLjU4M2gtMS4yYS4xNjYuMTY2IDAgMSAxIDAtLjMzNGgxLjE5OWwtLjEtLjU4M0E0LjUgNC41IDAgMCAwIDcuNzUgMy4wNjdsLS41ODMtLjF2MS4yYS4xNjcuMTY3IDAgMCAxLS4wNS4xMThsLjMwNC4zMDMtLjMwMy0uMzAzYS4xNjcuMTY3IDAgMCAxLS4yODUtLjExOFYyLjk2OGwtLjU4My4xQTQuNSA0LjUgMCAwIDAgMi41NjcgNi43NWwtLjEuNTgzaDEuMmEuMTY3LjE2NyAwIDAgMSAuMTE4LjI4NWwuMzAzLjMwMy0uMzA0LS4zMDNhLjE2Ny4xNjcgMCAwIDEtLjExNy4wNDlIMi40NjhsLjEuNTgzYTQuNSA0LjUgMCAwIDAgMy42ODIgMy42ODNsLjU4My4xdi0xLjJhLjE2Ni4xNjYgMCAxIDEgLjMzNCAwdjEuMTk5bC41ODMtLjFhNC41IDQuNSAwIDAgMCAzLjY4My0zLjY4MlptLTQuNTI2LS44ODlhLjE2Ny4xNjcgMCAxIDEgLjE4Ni4yNzguMTY3LjE2NyAwIDAgMS0uMTg2LS4yNzhaXFxcIiBmaWxsPVxcXCJDdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiQ3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTAuNjY3IDkuMzMzSDUuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptMC0yLjY2N2gtNGEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNFptMi42NjYtNGgtMlYyQS42NjcuNjY3IDAgMSAwIDEwIDJ2LjY2Nkg4LjY2N1YyYS42NjcuNjY3IDAgMSAwLTEuMzM0IDB2LjY2Nkg2VjJhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYuNjY2aC0yQS42NjcuNjY3IDAgMCAwIDIgMy4zMzN2OS4zMzNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMy4zMzNhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3Wm0tLjY2NiAxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0YS42NjYuNjY2IDAgMCAxLS42NjctLjY2N1Y0aDEuMzM0di42NjZhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY0aDEuMzMzdi42NjZhLjY2Ny42NjcgMCAwIDAgMS4zMzQgMFY0SDEwdi42NjZhLjY2Ni42NjYgMCAxIDAgMS4zMzMgMFY0aDEuMzM0djguNjY2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOCA0YS42NjcuNjY3IDAgMCAwLS42NjcuNjY2djYuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzM0IDBWNC42NjZBLjY2Ny42NjcgMCAwIDAgOCA0Wk00LjY2NyA4QS42NjcuNjY3IDAgMCAwIDQgOC42NjZ2Mi42NjdhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY4LjY2NkEuNjY3LjY2NyAwIDAgMCA0LjY2NyA4Wm02LjY2Ny0xLjMzNGEuNjY3LjY2NyAwIDAgMC0uNjY3LjY2N3Y0YS42NjcuNjY3IDAgMCAwIDEuMzMzIDB2LTRhLjY2Ny42NjcgMCAwIDAtLjY2Ni0uNjY3Wm0xLjMzMy01LjMzM0gzLjMzM2EyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJoOS4zMzRhMiAyIDAgMCAwIDItMlYzLjMzM2EyIDIgMCAwIDAtMi0yWm0uNjY3IDExLjMzM2EuNjY2LjY2NiAwIDAgMS0uNjY3LjY2N0gzLjMzM2EuNjY2LjY2NiAwIDAgMS0uNjY2LS42NjdWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3aDkuMzMzYS42NjcuNjY3IDAgMCAxIC42NjcuNjY3djkuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOCA0YS42NjcuNjY3IDAgMCAwLS42NjcuNjY2djYuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzM0IDBWNC42NjZBLjY2Ny42NjcgMCAwIDAgOCA0Wk00LjY2NyA4QS42NjcuNjY3IDAgMCAwIDQgOC42NjZ2Mi42NjdhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY4LjY2NkEuNjY3LjY2NyAwIDAgMCA0LjY2NyA4Wm02LjY2Ny0xLjMzNGEuNjY3LjY2NyAwIDAgMC0uNjY3LjY2N3Y0YS42NjcuNjY3IDAgMCAwIDEuMzMzIDB2LTRhLjY2Ny42NjcgMCAwIDAtLjY2Ni0uNjY3Wm0xLjMzMy01LjMzM0gzLjMzM2EyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJoOS4zMzRhMiAyIDAgMCAwIDItMlYzLjMzM2EyIDIgMCAwIDAtMi0yWm0uNjY3IDExLjMzM2EuNjY2LjY2NiAwIDAgMS0uNjY3LjY2N0gzLjMzM2EuNjY2LjY2NiAwIDAgMS0uNjY2LS42NjdWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3aDkuMzMzYS42NjcuNjY3IDAgMCAxIC42NjcuNjY3djkuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOCA0YS42NjcuNjY3IDAgMCAwLS42NjcuNjY2djYuNjY3YS42NjcuNjY3IDAgMSAwIDEuMzM0IDBWNC42NjZBLjY2Ny42NjcgMCAwIDAgOCA0Wk00LjY2NyA4QS42NjcuNjY3IDAgMCAwIDQgOC42NjZ2Mi42NjdhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY4LjY2NkEuNjY3LjY2NyAwIDAgMCA0LjY2NyA4Wm02LjY2Ny0xLjMzNGEuNjY3LjY2NyAwIDAgMC0uNjY3LjY2N3Y0YS42NjcuNjY3IDAgMCAwIDEuMzMzIDB2LTRhLjY2Ny42NjcgMCAwIDAtLjY2Ni0uNjY3Wm0xLjMzMy01LjMzM0gzLjMzM2EyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJoOS4zMzRhMiAyIDAgMCAwIDItMlYzLjMzM2EyIDIgMCAwIDAtMi0yWm0uNjY3IDExLjMzM2EuNjY2LjY2NiAwIDAgMS0uNjY3LjY2N0gzLjMzM2EuNjY2LjY2NiAwIDAgMS0uNjY2LS42NjdWMy4zMzNhLjY2Ny42NjcgMCAwIDEgLjY2Ny0uNjY3aDkuMzMzYS42NjcuNjY3IDAgMCAxIC42NjcuNjY3djkuMzMzWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNNC42NjcgMTAuNjY2YTEgMSAwIDAgMCAxLTEgLjUxNC41MTQgMCAwIDAgMC0uMWwxLjg2LTEuODZoLjMwNkw4LjkwNyA4Ljc4di4wNTNhMSAxIDAgMSAwIDIgMFY4Ljc4bDIuNDI2LTIuNDQ3YTEgMSAwIDEgMC0xLTEgLjUyMi41MjIgMCAwIDAgMCAuMUw5LjkyNyA3Ljg0SDkuODJMOC42NjcgNi42NjZhMSAxIDAgMCAwLTIgMGwtMiAyYTEgMSAwIDAgMCAwIDJabTkgMi42NjdIMi4zMzNWMkEuNjY3LjY2NyAwIDEgMCAxIDJ2MTJhLjY2Ny42NjcgMCAwIDAgLjY2Ny42NjZoMTJhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBhdGggZD1cXFwiTTYgNi42NjZoLjY2N2EuNjY3LjY2NyAwIDAgMCAwLTEuMzMzSDZhLjY2Ny42NjcgMCAwIDAgMCAxLjMzM1pNNiA4YS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNEEuNjY3LjY2NyAwIDAgMCAxMCA4SDZabTcuMzMzLTIuMDRhLjg4Ljg4IDAgMCAwLS4wNC0uMTh2LS4wNmEuNzE0LjcxNCAwIDAgMC0uMTI3LS4xODdsLTQtNGEuNzEzLjcxMyAwIDAgMC0uMTg2LS4xMjcuMjEzLjIxMyAwIDAgMC0uMDYgMCAuNTg3LjU4NyAwIDAgMC0uMjItLjA3M0g0LjY2N2EyIDIgMCAwIDAtMiAydjkuMzMzYTIgMiAwIDAgMCAyIDJoNi42NjZhMiAyIDAgMCAwIDItMlY1Ljk2Wm0tNC0yLjM1NCAxLjcyNyAxLjcyN0gxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LS42Njd2LTEuMDZaTTEyIDEyLjY2NmEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0LjY2NkEuNjY2LjY2NiAwIDAgMSA0IDEyLjY2NlYzLjMzM2EuNjY3LjY2NyAwIDAgMSAuNjY3LS42NjdIOHYyYTIgMiAwIDAgMCAyIDJoMnY2Wm0tMi0ySDZBLjY2Ny42NjcgMCAwIDAgNiAxMmg0YS42NjcuNjY3IDAgMCAwIDAtMS4zMzRaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjQgMjRcXFwiPjxwYXRoIGQ9XFxcIk0xMiAxNGExIDEgMCAxIDAtMS0xIDEgMSAwIDAgMCAxIDFabTUgMGExIDEgMCAxIDAtMS0xIDEgMSAwIDAgMCAxIDFabS01IDRhMSAxIDAgMSAwLTEtMSAxIDEgMCAwIDAgMSAxWm01IDBhMSAxIDAgMSAwLTEtMSAxIDEgMCAwIDAgMSAxWk03IDE0YTEgMSAwIDEgMC0xLTEgMSAxIDAgMCAwIDEgMVpNMTkgNGgtMVYzYTEgMSAwIDAgMC0yIDB2MUg4VjNhMSAxIDAgMCAwLTIgMHYxSDVhMyAzIDAgMCAwLTMgM3YxMmEzIDMgMCAwIDAgMyAzaDE0YTMgMyAwIDAgMCAzLTNWN2EzIDMgMCAwIDAtMy0zWm0xIDE1YTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xdi05aDE2Wm0wLTExSDRWN2ExIDEgMCAwIDEgMS0xaDE0YTEgMSAwIDAgMSAxIDFaTTcgMThhMSAxIDAgMSAwLTEtMSAxIDEgMCAwIDAgMSAxWlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDEyIDE1XFxcIj48cGF0aCBkPVxcXCJtNi4xNCAxMC43NDIuMDIuMDU4LjAwNy4wMXYuMDM2YS4wNi4wNiAwIDAgMS0uMDA2LjAyN2wtLjAxLjAyMi0uMDA4LjAyMWEuMS4xIDAgMCAxLS4wNi4wNmwtLjAyMi4wMDgtLjAyMS4wMWEuMDYuMDYgMCAwIDEtLjAyNy4wMDZoLS4wMDZhLjE2Ni4xNjYgMCAwIDEtLjEwNi0uMDQuMjY2LjI2NiAwIDAgMS0uMDQtLjA2NmwtLjAwNC0uMDEtLjAwNS0uMDFhLjA2LjA2IDAgMCAxLS4wMDUtLjAyOHYtLjAyM2wtLjAwMS0uMDIzLS4wMDEtLjAxOC4wMDMtLjAwNy4wMTItLjAzM2EuNTc2LjU3NiAwIDAgMSAuMDIzLS4wMy4xNjYuMTY2IDAgMCAxIC4wNDQtLjAyNmwuMDE0LS4wMDVhLjE2Ny4xNjcgMCAwIDEgLjA5Ni0uMDFsLjA5NC0uNDkxLS4wOTQuNDlhLjE2Ni4xNjYgMCAwIDEgLjA3Ny4wMzhjLjAwOS4wMS4wMTguMDIyLjAyNi4wMzRabS42OTMtOS4zMzUgMy45NjMgMy45NjMuMDIzLjA3YS4zNy4zNyAwIDAgMSAuMDE0LjA1NHY2LjY3M2ExLjUgMS41IDAgMCAxLTEuNSAxLjVIMi42NjdhMS41IDEuNSAwIDAgMS0xLjA2MS0uNDRsLS4zNDguMzQ4LjM0OC0uMzQ4YTEuNSAxLjUgMCAwIDEtLjQ0LTEuMDZWMi44MzNhMS41IDEuNSAwIDAgMSAxLjUtMS41aDMuOTlsLjAxNS4wMDcuMTE2LjA2N2guMDQ2Wm0uODU0IDEuMzQ2TDYuODMzIDEuOXYyLjI2N0ExLjE2NyAxLjE2NyAwIDAgMCA4IDUuMzMzaDIuMjY3bC0uODUzLS44NTMtMS43MjctMS43MjdaTTYuNSAyLjE2N3YtLjVIMi42NjdBMS4xNjcgMS4xNjcgMCAwIDAgMS41IDIuODMzdjkuMzM0YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3IDEuMTY2aDYuNjY2YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3LTEuMTY2di02LjVIOGExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTJabS0uNjE4IDUuMjE1YS4xNjcuMTY3IDAgMCAxIC4yODUuMTE4djEuMzMzYS4xNjcuMTY3IDAgMCAxLS4zMzQgMFY3LjVjMC0uMDQ0LjAxOC0uMDg3LjA1LS4xMThaXFxcIiBmaWxsPVxcXCJDdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiQ3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDEyIDE1XFxcIj48cGF0aCBkPVxcXCJtNi4xNCAxMC43NDIuMDIuMDU4LjAwNy4wMXYuMDM2YS4wNi4wNiAwIDAgMS0uMDA2LjAyN2wtLjAxLjAyMi0uMDA4LjAyMWEuMS4xIDAgMCAxLS4wNi4wNmwtLjAyMi4wMDgtLjAyMS4wMWEuMDYuMDYgMCAwIDEtLjAyNy4wMDZoLS4wMDZhLjE2Ni4xNjYgMCAwIDEtLjEwNi0uMDQuMjY2LjI2NiAwIDAgMS0uMDQtLjA2NmwtLjAwNC0uMDEtLjAwNS0uMDFhLjA2LjA2IDAgMCAxLS4wMDUtLjAyOHYtLjAyM2wtLjAwMS0uMDIzLS4wMDEtLjAxOC4wMDMtLjAwNy4wMTItLjAzM2EuNTc2LjU3NiAwIDAgMSAuMDIzLS4wMy4xNjYuMTY2IDAgMCAxIC4wNDQtLjAyNmwuMDE0LS4wMDVhLjE2Ny4xNjcgMCAwIDEgLjA5Ni0uMDFsLjA5NC0uNDkxLS4wOTQuNDlhLjE2Ni4xNjYgMCAwIDEgLjA3Ny4wMzhjLjAwOS4wMS4wMTguMDIyLjAyNi4wMzRabS42OTMtOS4zMzUgMy45NjMgMy45NjMuMDIzLjA3YS4zNy4zNyAwIDAgMSAuMDE0LjA1NHY2LjY3M2ExLjUgMS41IDAgMCAxLTEuNSAxLjVIMi42NjdhMS41IDEuNSAwIDAgMS0xLjA2MS0uNDRsLS4zNDguMzQ4LjM0OC0uMzQ4YTEuNSAxLjUgMCAwIDEtLjQ0LTEuMDZWMi44MzNhMS41IDEuNSAwIDAgMSAxLjUtMS41aDMuOTlsLjAxNS4wMDcuMTE2LjA2N2guMDQ2Wm0uODU0IDEuMzQ2TDYuODMzIDEuOXYyLjI2N0ExLjE2NyAxLjE2NyAwIDAgMCA4IDUuMzMzaDIuMjY3bC0uODUzLS44NTMtMS43MjctMS43MjdaTTYuNSAyLjE2N3YtLjVIMi42NjdBMS4xNjcgMS4xNjcgMCAwIDAgMS41IDIuODMzdjkuMzM0YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3IDEuMTY2aDYuNjY2YTEuMTY3IDEuMTY3IDAgMCAwIDEuMTY3LTEuMTY2di02LjVIOGExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTJabS0uNjE4IDUuMjE1YS4xNjcuMTY3IDAgMCAxIC4yODUuMTE4djEuMzMzYS4xNjcuMTY3IDAgMCAxLS4zMzQgMFY3LjVjMC0uMDQ0LjAxOC0uMDg3LjA1LS4xMThaXFxcIiBmaWxsPVxcXCJDdXJyZW50Q29sb3JcXFwiIHN0cm9rZT1cXFwiQ3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTAuNjY3IDkuMzMzSDUuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptMC0yLjY2N2gtNGEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNFptMi42NjYtNGgtMlYyQS42NjcuNjY3IDAgMSAwIDEwIDJ2LjY2Nkg4LjY2N1YyYS42NjcuNjY3IDAgMSAwLTEuMzM0IDB2LjY2Nkg2VjJhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYuNjY2aC0yQS42NjcuNjY3IDAgMCAwIDIgMy4zMzN2OS4zMzNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMy4zMzNhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3Wm0tLjY2NiAxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0YS42NjYuNjY2IDAgMCAxLS42NjctLjY2N1Y0aDEuMzM0di42NjZhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY0aDEuMzMzdi42NjZhLjY2Ny42NjcgMCAwIDAgMS4zMzQgMFY0SDEwdi42NjZhLjY2Ni42NjYgMCAxIDAgMS4zMzMgMFY0aDEuMzM0djguNjY2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTAuNjY3IDkuMzMzSDUuMzMzYS42NjcuNjY3IDAgMCAwIDAgMS4zMzNoNS4zMzRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzM1ptMC0yLjY2N2gtNGEuNjY3LjY2NyAwIDAgMCAwIDEuMzM0aDRhLjY2Ny42NjcgMCAwIDAgMC0xLjMzNFptMi42NjYtNGgtMlYyQS42NjcuNjY3IDAgMSAwIDEwIDJ2LjY2Nkg4LjY2N1YyYS42NjcuNjY3IDAgMSAwLTEuMzM0IDB2LjY2Nkg2VjJhLjY2Ny42NjcgMCAwIDAtMS4zMzMgMHYuNjY2aC0yQS42NjcuNjY3IDAgMCAwIDIgMy4zMzN2OS4zMzNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMy4zMzNhLjY2Ni42NjYgMCAwIDAtLjY2Ny0uNjY3Wm0tLjY2NiAxMGEuNjY3LjY2NyAwIDAgMS0uNjY3LjY2N0g0YS42NjYuNjY2IDAgMCAxLS42NjctLjY2N1Y0aDEuMzM0di42NjZhLjY2Ny42NjcgMCAxIDAgMS4zMzMgMFY0aDEuMzMzdi42NjZhLjY2Ny42NjcgMCAwIDAgMS4zMzQgMFY0SDEwdi42NjZhLjY2Ni42NjYgMCAxIDAgMS4zMzMgMFY0aDEuMzM0djguNjY2WlxcXCIgZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTIuOTYgOC42NjZjLS4xNDcgMC0uMy0uMDQ2LS40NDctLjA4YTYuMjkgNi4yOSAwIDAgMS0uODczLS4yNiAxLjMzMyAxLjMzMyAwIDAgMC0xLjY1My42NjdsLS4xNDcuM0E4LjEyIDguMTIgMCAwIDEgOC4wNjcgNy45NmE4LjEyIDguMTIgMCAwIDEtMS4zMzQtMS43NzRMNy4wMTMgNmExLjMzMyAxLjMzMyAwIDAgMCAuNjY3LTEuNjU0IDYuODg3IDYuODg3IDAgMCAxLS4yNi0uODczYy0uMDMzLS4xNDctLjA2LS4zLS4wOC0uNDUzYTIgMiAwIDAgMC0yLTEuNjZoLTJhMiAyIDAgMCAwLTIgMi4yNzMgMTIuNjY3IDEyLjY2NyAwIDAgMCAxMS4wMTMgMTAuOTczaC4yNTRhMiAyIDAgMCAwIDEuODI3LTEuMTg1IDIgMiAwIDAgMCAuMTczLS44MjF2LTJhMiAyIDAgMCAwLTEuNjQ3LTEuOTM0Wm0uMzMzIDRhLjY2Ni42NjYgMCAwIDEtLjQ4Mi42NDEuNzA3LjcwNyAwIDAgMS0uMjkuMDI2QTExLjMzMyAxMS4zMzMgMCAwIDEgMi43MTIgMy40OGEuNzI3LjcyNyAwIDAgMSAuMTY3LS41NDcuNjY3LjY2NyAwIDAgMSAuNS0uMjI3aDJhLjY2Ny42NjcgMCAwIDEgLjY2Ny41MjcgNy40MTQgNy40MTQgMCAwIDAgLjQwNyAxLjU3M2wtLjkzNC40MzRhLjY2Ny42NjcgMCAwIDAtLjMyNy44ODYgOS42NiA5LjY2IDAgMCAwIDQuNjY3IDQuNjY3LjY2Ni42NjYgMCAwIDAgLjUwNyAwIC42NjUuNjY1IDAgMCAwIC4zOC0uMzQ3bC40MTMtLjkzM2MuMzQ1LjEyMy42OTcuMjI2IDEuMDUzLjMwNy4xNzguMDQuMzU4LjA3My41NC4xYS42NjcuNjY3IDAgMCAxIC41MjcuNjY2bC4wMTMgMi4wOFpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNSAxNVxcXCI+PHBhdGggZD1cXFwiTTEwLjkxNyA5LjY2NmgtLjY1OWwtLjIzMy0uMjI1YTUuNDE3IDUuNDE3IDAgMCAwIDEuMjMzLTQuNDVDMTAuODY3IDIuNjc1IDguOTMzLjgyNSA2LjYuNTQxQTUuNDIgNS40MiAwIDAgMCAuNTQyIDYuNmMuMjgzIDIuMzMzIDIuMTMzIDQuMjY2IDQuNDUgNC42NThhNS40MTcgNS40MTcgMCAwIDAgNC40NS0xLjIzM2wuMjI1LjIzM3YuNjU4bDMuNTQxIDMuNTQyYS44OC44OCAwIDAgMCAxLjI0MiAwIC44OC44OCAwIDAgMCAwLTEuMjQybC0zLjUzMy0zLjU1Wm0tNSAwYTMuNzQ1IDMuNzQ1IDAgMCAxLTMuNzUtMy43NSAzLjc0NSAzLjc0NSAwIDAgMSAzLjc1LTMuNzUgMy43NDUgMy43NDUgMCAwIDEgMy43NSAzLjc1IDMuNzQ1IDMuNzQ1IDAgMCAxLTMuNzUgMy43NVpcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCI+PHBhdGggZmlsbD1cXFwiI2ZmZlxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIGQ9XFxcIk04LjE2NyA3LjMzNHYuNWg0LjVhLjE2Ny4xNjcgMCAxIDEgMCAuMzMzaC00LjV2NC41YS4xNjYuMTY2IDAgMSAxLS4zMzQgMHYtNC41aC00LjVhLjE2Ny4xNjcgMCAwIDEgMC0uMzMzaDQuNXYtNC41YS4xNjcuMTY3IDAgMSAxIC4zMzQgMHY0WlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNyAxNlxcXCI+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIiBkPVxcXCJNOC4xNjcgMy42di0uODA1bC0uNTcuNTY5LS44NjYuODY3YS4zMTIuMzEyIDAgMCAxLS40NjIgMCAuMzEyLjMxMiAwIDAgMSAwLS40NjJsMi0yLS4yMzQtLjIzNS4yMzQuMjM1YS4zMTIuMzEyIDAgMCAxIC40NjIgMGwuMjMzLS4yMzQtLjIzMy4yMzQgMiAyYS4zMTIuMzEyIDAgMCAxIDAgLjQ2Mi4zNjguMzY4IDAgMCAxLS4xMDguMDguMjkyLjI5MiAwIDAgMS0uMTIzLjAyMi4yOTIuMjkyIDAgMCAxLS4xMjMtLjAyMS4zNjguMzY4IDAgMCAxLS4xMDgtLjA4MWwtLjg2Ny0uODY3LS41NjktLjU3djguNTM5YzAgLjEyNC0uMDQuMjAyLS4wODUuMjQ4LS4wNDYuMDQ1LS4xMjQuMDg1LS4yNDguMDg1cy0uMjAyLS4wNC0uMjQ4LS4wODVjLS4wNDUtLjA0Ni0uMDg1LS4xMjQtLjA4NS0uMjQ4VjMuNlptMyAyLjczM0gxMi41Yy45NSAwIDEuNjY3LjcxNyAxLjY2NyAxLjY2N3Y0LjY2NmMwIC45NS0uNzE4IDEuNjY3LTEuNjY3IDEuNjY3aC04Yy0uOTUgMC0xLjY2Ny0uNzE3LTEuNjY3LTEuNjY3VjhjMC0uOTUuNzE4LTEuNjY3IDEuNjY3LTEuNjY3aDEuMzMzYy4xMjUgMCAuMjAyLjA0LjI0OC4wODYuMDQ2LjA0NS4wODYuMTIzLjA4Ni4yNDcgMCAuMTI1LS4wNC4yMDItLjA4Ni4yNDgtLjA0Ni4wNDYtLjEyMy4wODYtLjI0OC4wODZINC41YTEgMSAwIDAgMC0uNzE5LjI4QTEgMSAwIDAgMCAzLjUgOHY0LjY2NmExIDEgMCAwIDAgLjI4MS43MiAxIDEgMCAwIDAgLjcxOS4yOGg4YTEgMSAwIDAgMCAuNzE5LS4yOCAxIDEgMCAwIDAgLjI4MS0uNzJWOGExIDEgMCAwIDAtLjI4MS0uNzJBMSAxIDAgMCAwIDEyLjUgN2gtMS4zMzNjLS4xMjUgMC0uMjAyLS4wNC0uMjQ4LS4wODYtLjA0Ni0uMDQ2LS4wODYtLjEyMy0uMDg2LS4yNDggMC0uMTI0LjA0LS4yMDIuMDg2LS4yNDcuMDQ2LS4wNDYuMTIzLS4wODYuMjQ4LS4wODZaXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDE2IDIwXFxcIj48cGF0aCBkPVxcXCJNMTIuNjY3IDd2LjMzM0gxM0EyLjY2NyAyLjY2NyAwIDAgMSAxNS42NjcgMTB2N0EyLjY2NyAyLjY2NyAwIDAgMSAxMyAxOS42NjdIM0EyLjY2NyAyLjY2NyAwIDAgMSAuMzMzIDE3di03QTIuNjY3IDIuNjY3IDAgMCAxIDMgNy4zMzNoLjMzM1Y1YTQuNjY3IDQuNjY3IDAgMCAxIDkuMzM0IDB2MlpNMTEgNy4zMzNoLjMzM1Y1YTMuMzMzIDMuMzMzIDAgMCAwLTYuNjY2IDB2Mi4zMzNIMTFabTIuOTQzIDEwLjYxYy4yNS0uMjUuMzktLjU5LjM5LS45NDN2LTdBMS4zMzMgMS4zMzMgMCAwIDAgMTMgOC42NjdIM0ExLjMzMyAxLjMzMyAwIDAgMCAxLjY2NyAxMHY3QTEuMzMzIDEuMzMzIDAgMCAwIDMgMTguMzMzaDEwYy4zNTQgMCAuNjkzLS4xNC45NDMtLjM5WlxcXCIgZmlsbD1cXFwiIzE1NTM2NlxcXCIgc3Ryb2tlPVxcXCIjMTU1MzY2XFxcIiBzdHJva2Utd2lkdGg9XFxcIi42NjdcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiBmaWxsPVxcXCJub25lXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTUgMTRcXFwiPjxwYXRoIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlPVxcXCJjdXJyZW50Q29sb3JcXFwiIHN0cm9rZS13aWR0aD1cXFwiLjY2N1xcXCIgZD1cXFwiTTcuNSA0LjY2NmExIDEgMCAwIDAtLjg2OS41bC0uMDA2LjAxMmEuMzMzLjMzMyAwIDAgMS0uMjAzLjE2NmwuMDkzLjMyLS4wOTMtLjMyYS4zMzMuMzMzIDAgMCAxLS4zNi0uMTJsLS4yNjYuMi4yNjctLjJhLjMzMy4zMzMgMCAwIDEtLjAxNS0uMzc5bC4wMDQtLjAwNi4wMDMtLjAwNkExLjY2NyAxLjY2NyAwIDAgMSA3LjUgNGExLjY2NyAxLjY2NyAwIDAgMSAuNTU0IDMuMjMzbC0uMjIuMDh2LjM1M2EuMzMzLjMzMyAwIDEgMS0uNjY2IDBWN2EuMzMzLjMzMyAwIDAgMSAuMzMzLS4zMzQgMSAxIDAgMCAwIDAtMlptMCAwVjVsLjAwMS0uMzM0Wm0tLjMxNiA0Ljg5OC4wMS0uMDIuMDA4LS4wMjNhLjE3My4xNzMgMCAwIDEgLjAyLS4wMzkgMS4yIDEuMiAwIDAgMSAuMDQ2LS4wNi4zMzMuMzMzIDAgMCAxIC4xMDQtLjA2N2wtLjEyOC0uMzA4LjEyOC4zMDhhLjMzMy4zMzMgMCAwIDEgLjM2NS4wNzMuMzMzLjMzMyAwIDAgMSAuMDk2LjIzNnYuMDE1YS4zMzMuMzMzIDAgMCAxLS4wMi4xMjZ2LjAwMWEuMjY3LjI2NyAwIDAgMS0uMDYyLjA5OGwuMjM2LjIzNi0uMjM2LS4yMzZhLjI2Ny4yNjcgMCAwIDEtLjA5OC4wNjJsLS4wMS4wMDQtLjAxMS4wMDVhLjI5My4yOTMgMCAwIDEtLjIzNyAwbC0uMDEtLjAwNS0uMDEyLS4wMDRhLjI2Ny4yNjcgMCAwIDEtLjA5Ny0uMDYybC0uMjM2LjIzNi4yMzYtLjIzNmEuMjY3LjI2NyAwIDAgMS0uMDYzLS4wOThsLS4wMDUtLjAxNC0uMDA3LS4wMTVhLjIyNy4yMjcgMCAwIDEtLjAyMS0uMTAydi0uMDMzYS41NzMuNTczIDAgMCAxLS4wMDItLjA2NC4wOTQuMDk0IDAgMCAxIC4wMDYtLjAxNFpNMy45OCAxLjczNGE2LjMzMyA2LjMzMyAwIDEgMSA3LjAzOCAxMC41MzJBNi4zMzMgNi4zMzMgMCAwIDEgMy45OCAxLjczNFptLjM3IDkuOTc3YTUuNjY2IDUuNjY2IDAgMSAwIDYuMjk3LTkuNDIyIDUuNjY2IDUuNjY2IDAgMCAwLTYuMjk2IDkuNDIyWlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNCAxNFxcXCI+PHBhdGggZmlsbD1cXFwicmVkXFxcIiBkPVxcXCJtOC40MSA3IDQuMy00LjI5YTEuMDA0IDEuMDA0IDAgMCAwLTEuNDItMS40Mkw3IDUuNTlsLTQuMjktNC4zYTEuMDA0IDEuMDA0IDAgMSAwLTEuNDIgMS40Mkw1LjU5IDdsLTQuMyA0LjI5YS45OTkuOTk5IDAgMCAwIDAgMS40MiAxIDEgMCAwIDAgMS40MiAwTDcgOC40MWw0LjI5IDQuM2ExLjAwMSAxLjAwMSAwIDAgMCAxLjYzOS0uMzI1IDEgMSAwIDAgMC0uMjItMS4wOTVMOC40MSA3WlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCA2IDZcXFwiPjxjaXJjbGUgY3g9XFxcIjNcXFwiIGN5PVxcXCIzXFxcIiByPVxcXCIzXFxcIiBmaWxsPVxcXCIjRkY3MjY0XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNMTMuOTk5IDcuMzMzYy0uNCAwLS42NjcuMjY3LS42NjcuNjY3IDAgMS45MzMtMSAzLjY2Ni0yLjY2NyA0LjYtMi41MzMgMS40NjYtNS44LjYtNy4yNjYtMS45MzQtMS40NjctMi41MzMtLjYtNS44IDEuOTMzLTcuMjY2YTUuMzM4IDUuMzM4IDAgMCAxIDYuNTMzLjkzM2gtMS42Yy0uNCAwLS42NjYuMjY3LS42NjYuNjY3cy4yNjYuNjY2LjY2Ni42NjZoM2MuNCAwIC42NjctLjI2Ni42NjctLjY2NlYyYzAtLjQtLjI2Ny0uNjY3LS42NjctLjY2N1MxMi42IDEuNiAxMi42IDJ2MS4yYy0xLjI2Ny0xLjItMi44NjctMS44NjctNC42LTEuODY3LTMuNjY3IDAtNi42NjcgMy02LjY2NyA2LjY2NyAwIDMuNjY2IDMgNi42NjYgNi42NjcgNi42NjYgMy42NjYgMCA2LjY2Ni0zIDYuNjY2LTYuNjY2IDAtLjQtLjI2Ni0uNjY3LS42NjYtLjY2N1pcXFwiIGZpbGw9XFxcImN1cnJlbnRDb2xvclxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyNCAyNFxcXCI+PHBhdGggZD1cXFwiTTMgMTJoMThtLTUtNSA1IDUtNSA1XFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIyXFxcIiBzdHJva2UtbGluZWNhcD1cXFwicm91bmRcXFwiIHN0cm9rZS1saW5lam9pbj1cXFwicm91bmRcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTYgMTZcXFwiPjxwYXRoIGQ9XFxcIm0xMC4xNjUgOS42NjIuMTYzLjE2NC4yMS0uMDk2YTEuNzIgMS43MiAwIDAgMSAxLjg5NS4zMTRsMS4zNzYgMS40MDkuMjM4LS4yMzMtLjIzMy4yMzhhMS42NjUgMS42NjUgMCAwIDEgMCAyLjM4NGwtLjAwMy4wMDJhMS42NjcgMS42NjcgMCAwIDEtMi4zNTUgMGwtMS40MTItMS40MTJhMS42NjcgMS42NjcgMCAwIDEtLjI5My0xLjkybC4xMS0uMjE2LS4xNzItLjE3Mi0uNTkzLS41OTMtLjIwNC0uMjA0LS4yMzEuMTczYTQuMzMzIDQuMzMzIDAgMSAxIC44NzItLjg3M2wtLjE3My4yMzEuMjA1LjIwNC42LjZabTIuODUzIDMuODk4YTEgMSAwIDAgMCAuNTQzLS41NDIuOTk5Ljk5OSAwIDAgMC0uMjE5LTEuMDk0bC0xLjQxMi0xLjQxMmExIDEgMCAwIDAtMS42MzcuMzIzIDEgMSAwIDAgMCAuMjE5IDEuMDk1bDEuNDEyIDEuNDExdi4wMDFhLjk5OS45OTkgMCAwIDAgMS4wOTQuMjE4Wk02Ljc1MiA5LjYzYTMuNjY3IDMuNjY3IDAgMSAwLTEuNDI0LTcuMTk0QTMuNjY3IDMuNjY3IDAgMCAwIDYuNzUyIDkuNjNaXFxcIiBmaWxsPVxcXCIjQTZCNUJBXFxcIiBzdHJva2U9XFxcImN1cnJlbnRDb2xvclxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJtMTQuMjEyIDYuMzY2LTEuMjYtLjQyLjU5My0xLjE4NkEuNjY3LjY2NyAwIDAgMCAxMy40MiA0bC0xLjQyLTEuNDJhLjY2Ny42NjcgMCAwIDAtLjc2Ny0uMTI3bC0xLjE4Ny41OTMtLjQyLTEuMjZBLjY2Ny42NjcgMCAwIDAgOSAxLjMzM2gtMmEuNjY3LjY2NyAwIDAgMC0uNjM0LjQ1M2wtLjQyIDEuMjYtMS4xODYtLjU5M2EuNjY3LjY2NyAwIDAgMC0uNzYuMTI3TDIuNTc5IDRhLjY2Ny42NjcgMCAwIDAtLjEyNy43NjZsLjU5MyAxLjE4Ny0xLjI2LjQyQS42NjcuNjY3IDAgMCAwIDEuMzMyIDd2MmEuNjY3LjY2NyAwIDAgMCAuNDUzLjYzM2wxLjI2LjQyLS41OTMgMS4xODdhLjY2Ny42NjcgMCAwIDAgLjEyNy43NmwxLjQyIDEuNDJhLjY2Ny42NjcgMCAwIDAgLjc2Ni4xMjZsMS4xODctLjU5My40MiAxLjI2YS42NjcuNjY3IDAgMCAwIC42MzMuNDUzaDJhLjY2Ny42NjcgMCAwIDAgLjYzNC0uNDUzbC40Mi0xLjI2IDEuMTg2LjU5M0EuNjY2LjY2NiAwIDAgMCAxMiAxMy40MmwxLjQyLTEuNDJhLjY2Ny42NjcgMCAwIDAgLjEyNi0uNzY3bC0uNTkzLTEuMTg3IDEuMjYtLjQyQS42NjcuNjY3IDAgMCAwIDE0LjY2NSA5VjdhLjY2Ny42NjcgMCAwIDAtLjQ1My0uNjM0Wm0tLjg4IDIuMTU0LS44LjI2NmExLjMzNCAxLjMzNCAwIDAgMC0uNzczIDEuODhsLjM4Ljc2LS43MzQuNzM0LS43NC0uNGExLjMzNSAxLjMzNSAwIDAgMC0xLjg2Ljc3M2wtLjI2Ni44aC0xLjA2bC0uMjY3LS44YTEuMzMzIDEuMzMzIDAgMCAwLTEuODgtLjc3M2wtLjc2LjM4LS43MzMtLjczNC40LS43NGExLjMzMyAxLjMzMyAwIDAgMC0uNzc0LTEuODhsLS44LS4yNjZWNy40OGwuOC0uMjY3YTEuMzMzIDEuMzMzIDAgMCAwIC43NzQtMS44OGwtLjM4LS43NC43MzMtLjczMy43NC4zOGExLjMzMyAxLjMzMyAwIDAgMCAxLjg4LS43NzRsLjI2Ny0uOGgxLjA0bC4yNjYuOGExLjMzMyAxLjMzMyAwIDAgMCAxLjg4Ljc3NGwuNzYtLjM4LjczNC43MzMtLjQuNzRhMS4zMzMgMS4zMzMgMCAwIDAgLjc3MyAxLjg2bC44LjI2N3YxLjA2Wk03Ljk5OSA1LjMzM2EyLjY2NyAyLjY2NyAwIDEgMCAwIDUuMzMzIDIuNjY3IDIuNjY3IDAgMCAwIDAtNS4zMzNabTAgNGExLjMzMyAxLjMzMyAwIDEgMSAwLTIuNjY3IDEuMzMzIDEuMzMzIDAgMCAxIDAgMi42NjdaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE4IDE4XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xNC43MjMgMi43MzhhLjc1Ljc1IDAgMCAwLS42My0uMTUgNiA2IDAgMCAxLTQuNjY1LS45NTMuNzUuNzUgMCAwIDAtLjg1NiAwIDYgNiAwIDAgMS00LjY2NC45NTMuNzUuNzUgMCAwIDAtLjkwOC43MzVWOC45MWE2Ljc1IDYuNzUgMCAwIDAgMi44MjcgNS40OThsMi43MzggMS45NWEuNzUuNzUgMCAwIDAgLjg3IDBsMi43MzctMS45NUE2Ljc1IDYuNzUgMCAwIDAgMTUgOC45MVYzLjMyM2EuNzQ5Ljc0OSAwIDAgMC0uMjc3LS41ODVaTTEzLjUgOC45MWE1LjI0OSA1LjI0OSAwIDAgMS0yLjE5NyA0LjI3NUw5IDE0LjgyOGwtMi4zMDMtMS42NDNBNS4yNSA1LjI1IDAgMCAxIDQuNSA4LjkxVjQuMTg1QTcuNSA3LjUgMCAwIDAgOSAzLjE0M2E3LjUgNy41IDAgMCAwIDQuNSAxLjA0MlY4LjkxWm0tMy4zNDUtMS43MTdMOC4xMzcgOS4yMThsLS42NjctLjY3NWEuNzUzLjc1MyAwIDEgMC0xLjA2NSAxLjA2NWwxLjIgMS4yYS43NS43NSAwIDAgMCAxLjA2NSAwbDIuNTgtMi41NThhLjc1My43NTMgMCAwIDAtMS4wNjUtMS4wNjVsLS4wMy4wMDhaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xNC4yNzMgNS43Njd2LS4wNGE2LjY2NyA2LjY2NyAwIDAgMC0xMi41Mi0uMDQuNTY3LjU2NyAwIDAgMC0uMDUzLjE2IDYuNjY3IDYuNjY3IDAgMSAwIDEyLjU3My0uMDhaTTggMi42NjdhNS4zMzMgNS4zMzMgMCAwIDEgNC42MTMgMi42NjZoLS44YTIgMiAwIDAgMC0zLjA4LjE0N0EyLjExMyAyLjExMyAwIDAgMCA4IDUuMzMzYy0uMjUxLjAwNS0uNS4wNTUtLjczMy4xNDdhMiAyIDAgMCAwLTMuMDgtLjE0N2gtLjhBNS4zMzMgNS4zMzMgMCAwIDEgOCAyLjY2N1ptMyA0YS42NjcuNjY3IDAgMSAxLTEuMzM0IDAgLjY2Ny42NjcgMCAwIDEgMS4zMzQgMFptLTQuNjY3IDBhLjY2Ny42NjcgMCAxIDEtMS4zMzMgMCAuNjY3LjY2NyAwIDAgMSAxLjMzMyAwWk04IDEzLjMzM0E1LjMzMyA1LjMzMyAwIDAgMSAyLjY2NyA4Yy4wMDMtLjQ1LjA2LS44OTguMTczLTEuMzMzaC44MjdhMiAyIDAgMCAwIDQgLjEyLjY2Ny42NjcgMCAwIDEgLjY2NiAwIDIgMiAwIDEgMCA0LS4xMmguODI3Yy4xMTIuNDM1LjE3Ljg4My4xNzMgMS4zMzNBNS4zMzQgNS4zMzQgMCAwIDEgOCAxMy4zMzNabTEuNTczLTMuODQ2YTIuNTA3IDIuNTA3IDAgMCAxLTMuMTQ2IDAgLjY2Ny42NjcgMCAwIDAtLjg1NCAxLjAyNiAzLjc4NyAzLjc4NyAwIDAgMCA0Ljg1NCAwIC42NjguNjY4IDAgMCAwLS44NTQtMS4wMjZaXFxcIiBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE3IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk0xNC44OSA2LjQ0N0EuNjY2LjY2NiAwIDAgMCAxNC4zMTYgNmwtMy43OTMtLjU1M0w4LjgyMyAyYS42NjcuNjY3IDAgMCAwLTEuMiAwbC0xLjcgMy40NEwyLjEzIDZhLjY2Ny42NjcgMCAwIDAtLjU0LjQ1My42NjcuNjY3IDAgMCAwIC4xNjYuNjY3TDQuNTEgOS43ODdsLS42NjcgMy43ODZhLjY2Ny42NjcgMCAwIDAgLjk2Ny43MTRsMy40MTMtMS43OCAzLjQgMS43ODZjLjA5NC4wNTMuMi4wOC4zMDcuMDhhLjY2Ny42NjcgMCAwIDAgLjYyNC0uNDIuNjY2LjY2NiAwIDAgMCAuMDM2LS4zNzNsLS42NjctMy43ODcgMi43NTMtMi42NjZhLjY2Ny42NjcgMCAwIDAgLjIxNC0uNjhabS00LjEgMi42NjZhLjY2Ni42NjYgMCAwIDAtLjE5NC41OTRsLjQ4IDIuNzkzLTIuNTA2LTEuMzMzYS42NjYuNjY2IDAgMCAwLS42MjcgMEw1LjQzNiAxMi41bC40OC0yLjc5M2EuNjY3LjY2NyAwIDAgMC0uMTkzLS41OTRsLTItMiAyLjgwNy0uNDA2YS42NjcuNjY3IDAgMCAwIC41MDYtLjM2N0w4LjIyMyAzLjhsMS4yNTMgMi41NDdhLjY2Ny42NjcgMCAwIDAgLjUwNy4zNjZsMi44MDcuNDA3LTIgMS45OTNaXFxcIiBmaWxsPVxcXCIjMDZEQkU0XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgZmlsbD1cXFwibm9uZVxcXCIgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIj48cGF0aCBmaWxsPVxcXCIjZmZmXFxcIiBkPVxcXCJNNi44NzUgMTAuNzI5YS42NjUuNjY1IDAgMCAxLS40NzEtLjE5Nkw0LjUyOSA4LjY1OGEuNjY3LjY2NyAwIDAgMSAuOTQyLS45NDJsMS40MDQgMS40MDMgMy42NTQtMy42NTNhLjY2Ny42NjcgMCAwIDEgLjk0Mi45NDJsLTQuMTI1IDQuMTI1YS42NjQuNjY0IDAgMCAxLS40NzEuMTk2WlxcXCIgb3BhY2l0eT1cXFwiLjk5XFxcIi8+PHBhdGggZmlsbD1cXFwiY3VycmVudENvbG9yXFxcIiBkPVxcXCJNOCAxLjMzM0E2LjY2NyA2LjY2NyAwIDEgMCAxNC42NjcgOCA2LjY3NCA2LjY3NCAwIDAgMCA4IDEuMzMzWm0zLjQ3MSA1LjA3Ni00LjEyNSA0LjEyNWEuNjY3LjY2NyAwIDAgMS0uOTQyIDBMNC41MjkgOC42NTlhLjY2Ny42NjcgMCAwIDEgLjk0Mi0uOTQzbDEuNDA0IDEuNDAzIDMuNjU0LTMuNjUzYS42NjcuNjY3IDAgMCAxIC45NDIuOTQzWlxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxNCAxNFxcXCI+PHBhdGggZD1cXFwiTTcgLjMzMmMtMy42NjcgMC02LjY2NyAzLTYuNjY3IDYuNjY3IDAgMy42NjYgMyA2LjY2NiA2LjY2NyA2LjY2NiAzLjY2NiAwIDYuNjY2LTMgNi42NjYtNi42NjYgMC0zLjY2Ny0zLTYuNjY3LTYuNjY2LTYuNjY3Wm0yLjQ2NiA4LjJhLjY0NC42NDQgMCAwIDEgMCAuOTMzLjY0NC42NDQgMCAwIDEtLjkzMyAwTDcgNy45MzIgNS40NjYgOS40NjVhLjY0NC42NDQgMCAwIDEtLjkzMyAwIC42NDQuNjQ0IDAgMCAxIDAtLjkzM2wxLjUzMy0xLjUzMy0xLjUzMy0xLjUzNGEuNjQ0LjY0NCAwIDAgMSAwLS45MzMuNjQ0LjY0NCAwIDAgMSAuOTMzIDBMNyA2LjA2NWwxLjUzMy0xLjUzM2EuNjQ0LjY0NCAwIDAgMSAuOTMzIDAgLjY0NC42NDQgMCAwIDEgMCAuOTMzTDcuOTMzIDdsMS41MzMgMS41MzNaXFxcIiBmaWxsPVxcXCIjRDEwMDFFXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDMyIDMyXFxcIj48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNlxcXCIgZmlsbD1cXFwiI0YxRjdGOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC43MDIgMTcuNjlhMi43NDkgMi43NDkgMCAwIDAgMi4zNSAxLjQxMWwuOTMzLjAxOC0uNzM0LjU3OGE2LjQ5OCA2LjQ5OCAwIDAgMS0zLjQwMSAxLjM2MiA4LjM0MiA4LjM0MiAwIDAgMCAzLjM2Ny43MDVoLjAwNGE4LjM1OCA4LjM1OCAwIDAgMCA4LjQ0Ni04LjQyNHYtLjU2OGwuMTM0LS4xYy4yNjMtLjE5Ni41MS0uNDE0LjczNy0uNjVMMTAuNzAyIDE3LjY5Wm0wIDBoLjA1MmMuMzExLS4wMDMuNjItLjA1LjkxOC0uMTQxbC0uMDMyLS42NDZhMi43NDEgMi43NDEgMCAwIDEtMi4xNTgtMi4xNzdjLjMyMi4xMS42Ni4xNzIgMS4wMDQuMTgybDEuMTU2LjAzMS0uOTYyLS42NDJhMi43MzQgMi43MzQgMCAwIDEtMS4yMTctMi4yOGMwLS4zMjMuMDU2LS42NDIuMTY0LS45NDNhOS4wNjQgOS4wNjQgMCAwIDAgNi4yMzYgMi45NDFsLjQ0NS4wMjMtLjEwNC0uNDM0YTIuNzQyIDIuNzQyIDAgMCAxIDQuNjgtMi41bC4xMjguMTM2LjE4My0uMDM2Yy4zODQtLjA3Ni43Ni0uMTg2IDEuMTIyLS4zMjlhMi43NjMgMi43NjMgMCAwIDEtLjc1OC42NjhMMTAuNzAyIDE3LjY5WlxcXCIgZmlsbD1cXFwiIzE1NTM2NlxcXCIgc3Ryb2tlPVxcXCIjMTU1MzY2XFxcIiBzdHJva2Utd2lkdGg9XFxcIi42NjdcXFwiLz48L3N2Zz5cIjsiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgdmlld0JveD1cXFwiMCAwIDE2IDE2XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk05LjI3IDkuNDkxYS4xNjcuMTY3IDAgMCAxLS4wNTQtLjAzNWwtLjE5LS4xOTctLjg2LS44ODl2Mi45NjNhLjE2Ny4xNjcgMCAwIDEtLjMzMyAwVjguMzdsLS44Ni44OS0uMTg5LjE5NWEuMTcuMTcgMCAwIDEtLjIzNy0uMjQxbDEuMzI4LTEuMzI5YS4xNjYuMTY2IDAgMCAxIC4wNTItLjAzMmwuMDEtLjAwNGEuMTY3LjE2NyAwIDAgMSAuMTI2IDBsLjAxLjAwNGEuMTU2LjE1NiAwIDAgMSAuMDUyLjAzMmwxLjMyOCAxLjMyOS4wMDIuMDAxYS4xNjcuMTY3IDAgMCAxIC4wMzYuMTgybC40NjIuMTkzLS40NjItLjE5M2EuMTY3LjE2NyAwIDAgMS0uMDM2LjA1NWwtLjAwMy4wMDNhLjE2Ny4xNjcgMCAwIDEtLjE4My4wMzZabS0uNDM3LTcuNTg0IDMuOTYzIDMuOTYzLjAyMy4wN2EuMzMuMzMgMCAwIDEgLjAxNC4wNTR2Ni42NzNhMS41IDEuNSAwIDAgMS0xLjUgMS41SDQuNjY3YTEuNSAxLjUgMCAwIDEtMS4wNjEtLjQ0bC0uMzQ4LjM0OC4zNDgtLjM0OGExLjUgMS41IDAgMCAxLS40NC0xLjA2VjMuMzMzYTEuNSAxLjUgMCAwIDEgMS41LTEuNWgzLjk4YS4yMzMuMjMzIDAgMCAxIC4wMzIuMDE1bC4xMS4wNTloLjA0NVptLjg1NCAxLjM0Nkw4LjgzMyAyLjR2Mi4yNjdBMS4xNjcgMS4xNjcgMCAwIDAgMTAgNS44MzNoMi4yNjdsLS44NTMtLjg1My0xLjcyNy0xLjcyN1pNOC41IDIuNjY3di0uNUg0LjY2N0ExLjE2NyAxLjE2NyAwIDAgMCAzLjUgMy4zMzN2OS4zMzRhMS4xNjcgMS4xNjcgMCAwIDAgMS4xNjcgMS4xNjZoNi42NjZhMS4xNjcgMS4xNjcgMCAwIDAgMS4xNjctMS4xNjZ2LTYuNUgxMGExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTJaXFxcIiBmaWxsPVxcXCJjdXJyZW50Y29sb3JcXFwiIHN0cm9rZT1cXFwiY3VycmVudGNvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIHZpZXdCb3g9XFxcIjAgMCAxNiAxNlxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJtMy44MzcgMTEuNjQzLS4xMjguMzE0LjI0My4yMzVBNS44MzMgNS44MzMgMCAwIDAgOCAxMy44MzNoLjAwMmE1LjgzMyA1LjgzMyAwIDAgMCA0LjA0Ny0xLjY0bC4yNDMtLjIzNi0uMTI5LS4zMTRhNC41IDQuNSAwIDAgMC04LjMyNSAwWm04LjMzOC0uNzI0LjQzLjczNi40MzMtLjczNkE1Ljc4IDUuNzggMCAwIDAgMTMuODMzIDggNS44MzMgNS44MzMgMCAwIDAgMi4xNjcgOGE1Ljc4IDUuNzggMCAwIDAgLjc5NSAyLjkybC40MzIuNzM2LjQzLS43MzdhNC44MzMgNC44MzMgMCAwIDEgMi4zNjMtMi4wNDJsLjY1NS0uMjY1LS40NjctLjUzYTIuMTY3IDIuMTY3IDAgMSAxIDMuMjUgMGwtLjQ2Ny41My42NTUuMjY1YTQuODMzIDQuODMzIDAgMCAxIDIuMzYyIDIuMDQyWk00LjYzNSAyLjg0YzEtLjY1NSAyLjE3LTEuMDA1IDMuMzY1LTEuMDA3YTYuMTY2IDYuMTY2IDAgMCAxIDQuNTMyIDEwLjMzNSA2LjE2NyA2LjE2NyAwIDAgMS05LjA2NCAwQTYuMTY3IDYuMTY3IDAgMCAxIDQuNjM1IDIuODRabTEuODQgMi44MDhhMS44MzMgMS44MzMgMCAxIDAgMy4wNSAyLjAzNyAxLjgzMyAxLjgzMyAwIDAgMC0zLjA1LTIuMDM3WlxcXCIgZmlsbD1cXFwidHJhbnNwYXJlbnRcXFwiIHN0cm9rZT1cXFwiY3VycmVudENvbG9yXFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDIwIDIyXFxcIj48cGF0aCBkPVxcXCJtMTMuNTA0IDExLjQ0OC0uNDU1LjM1OC41MzguMjE0YTkuNjY3IDkuNjY3IDAgMCAxIDYuMDQyIDcuOTE2LjY2Ny42NjcgMCAwIDEtLjU3LjczaC0uMDkxYS42NjcuNjY3IDAgMCAxLS42NjctLjU5MyA4LjMzMyA4LjMzMyAwIDAgMC0xNi41NjIgMEEuNjczLjY3MyAwIDAgMSAuNCAxOS45MjZhOS42NjcgOS42NjcgMCAwIDEgNi4wMTMtNy45MDdsLjUzNi0uMjE0LS40NTQtLjM1N2E1LjY2NyA1LjY2NyAwIDEgMSA3LjAwOCAwWm0tNS45MTEtLjg0NWE0LjMzNCA0LjMzNCAwIDEgMCA0LjgxNS03LjIwNyA0LjMzNCA0LjMzNCAwIDAgMC00LjgxNSA3LjIwN1pcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZT1cXFwiIzE1NTM2NlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiZXhwb3J0IGRlZmF1bHQgXCI8c3ZnIGZpbGw9XFxcIm5vbmVcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDIwIDE4XFxcIj48cGF0aCBkPVxcXCJtMTguOTE3IDEzLjU4My02Ljc1LTExLjY2NkMxMS41Ljc1IDkuOTE3LjMzMyA4Ljc1IDFjLS40MTcuMjUtLjc1LjU4My0uOTE3LjkxN2wtNi43NSAxMS42NjZDLjQxNyAxNC43NS44MzMgMTYuMzMzIDIgMTdjLjQxNy4yNS44MzMuMzMzIDEuMjUuMzMzaDEzLjQxN2MxLjQxNiAwIDIuNS0xLjE2NiAyLjUtMi41LjA4My0uNS0uMDg0LS45MTYtLjI1LTEuMjVaTTEwIDE0Yy0uNSAwLS44MzMtLjMzMy0uODMzLS44MzMgMC0uNS4zMzMtLjgzNC44MzMtLjgzNC41IDAgLjgzMy4zMzQuODMzLjgzNCAwIC41LS4zMzMuODMzLS44MzMuODMzWm0uODMzLTQuMTY3YzAgLjUtLjMzMy44MzQtLjgzMy44MzQtLjUgMC0uODMzLS4zMzQtLjgzMy0uODM0VjYuNWMwLS41LjMzMy0uODMzLjgzMy0uODMzLjUgMCAuODMzLjMzMy44MzMuODMzdjMuMzMzWlxcXCIgZmlsbD1cXFwiI0ZGNzI2NFxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHZpZXdCb3g9XFxcIjAgMCAxOCAxOVxcXCI+PGcgY2xpcC1wYXRoPVxcXCJ1cmwoI3dhcm5pbmctZmlsbF9zdmdfX2EpXFxcIj48cGF0aCBmaWxsPVxcXCJjdXJyZW50Q29sb3JcXFwiIGQ9XFxcIm0xNy4wMiAxMy45OTItNi4wNzMtMTAuNWMtLjYtMS4wNS0yLjAyNS0xLjQyNS0zLjA3NC0uODI1LS4zNzUuMjI1LS42NzUuNTI1LS44MjUuODI1bC02LjA3MyAxMC41Yy0uNiAxLjA1LS4yMjUgMi40NzUuODI0IDMuMDc1LjM3NS4yMjUuNzUuMyAxLjEyNS4zaDEyLjA3MWMxLjI3NSAwIDIuMjUtMS4wNSAyLjI1LTIuMjUuMDc1LS40NS0uMDc1LS44MjUtLjIyNS0xLjEyNVptLTguMDIzLjM3NWMtLjQ1IDAtLjc1LS4zLS43NS0uNzVzLjMtLjc1Ljc1LS43NS43NS4zLjc1Ljc1LS4zLjc1LS43NS43NVptLjc1LTMuNzVjMCAuNDUtLjMuNzUtLjc1Ljc1cy0uNzUtLjMtLjc1LS43NXYtM2MwLS40NS4zLS43NS43NS0uNzVzLjc1LjMuNzUuNzV2M1pcXFwiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPVxcXCJ3YXJuaW5nLWZpbGxfc3ZnX19hXFxcIj48cGF0aCBmaWxsPVxcXCIjZmZmXFxcIiBkPVxcXCJNMCAwaDE3Ljk5NXYxOEgwelxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMCAuODY3KVxcXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyMyAyMVxcXCI+PHBhdGggZD1cXFwiTTExLjg4NyAxNWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabTEwLjY3IDEuNDctOC4wNS0xNGEzIDMgMCAwIDAtNS4yNCAwbC04IDE0QTMgMyAwIDAgMCAzLjgyNyAyMWgxNi4xMmEzIDMgMCAwIDAgMi42MS00LjUzWm0tMS43MyAyYTEgMSAwIDAgMS0uODguNTFIMy44MjdhMSAxIDAgMCAxLS44OC0uNTEgMSAxIDAgMCAxIDAtMWw4LTE0YTEgMSAwIDAgMSAxLjc4IDBsOC4wNSAxNGExIDEgMCAwIDEgLjA1IDEuMDJ2LS4wMlpNMTEuODg3IDdhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAyIDBWOGExIDEgMCAwIDAtMS0xWlxcXCIgZmlsbD1cXFwiI0QxMDAxRVxcXCIvPjwvc3ZnPlwiOyIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAzMiAzMlxcXCI+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTZcXFwiIGZpbGw9XFxcIiNGMUY3RjlcXFwiLz48cGF0aCBkPVxcXCJNMjMuOTE3IDE0LjI3di4wMTJjMCAuNDYyIDAgMi45NzctLjAzIDMuMzgxdi4wMjhhNy42IDcuNiAwIDAgMS0uMzc0IDIuNDQzdi4wMDFhMS41MzUgMS41MzUgMCAwIDEtLjM3NS42MTUgMS44MjcgMS44MjcgMCAwIDEtLjk1NS40OTFjLTIuNzAyLjIwOC00Ljk5LjI0NS03LjYwMy4yMDhoLS4wMTJhMzMuNTYyIDMzLjU2MiAwIDAgMS00LjgxNy0uMjQ0IDEuODExIDEuODExIDAgMCAxLS45MjctLjQ4NSAyLjAyMiAyLjAyMiAwIDAgMS0uNDUtLjg2OGwtLjAwMS0uMDA2YTYuODI4IDYuODI4IDAgMCAxLS4yMTUtMS40M3YtLjAwOWEzNS44ODcgMzUuODg3IDAgMCAxIC4wMDMtNC44NTdjLjAzNy0uNDQyLjA3NC0uODg4LjE3NS0xLjI5OC4xMDQtLjQyNC4yNy0uNzc1LjU0LTEuMDI1bC4wMDMtLjAwM2MuMjUzLS4yNC41Ny0uNDAxLjkxMS0uNDY2YTU4LjUyNyA1OC41MjcgMCAwIDEgNi4yMDQtLjIyM2guMDEyYTU4LjQyNiA1OC40MjYgMCAwIDEgNi4yMjYuMjNjLjQxLjA3OC43ODIuMjkgMS4wNTYuNjA1LjQ0Ny45LjY2NCAxLjg5Ni42MjkgMi45Wm0tOS45NDUgMy44Njd2LjU2bC40OTItLjI2N2E5OC45NyA5OC45NyAwIDAgMSAyLjI2NC0xLjE3NWwuMDYzLS4wMzJhNzAuNDUgNzAuNDUgMCAwIDAgMi4xMTYtMS4xMDRsLjU0LS4zLS41NDctLjI4Ny00LjQ0LTIuMzMyLS40ODgtLjI1N3Y1LjE5NFpcXFwiIGZpbGw9XFxcIiMxNTUzNjZcXFwiIHN0cm9rZT1cXFwiIzE1NTM2NlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIuNjY3XFxcIi8+PC9zdmc+XCI7IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FkbWluSGVhZGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0xJmlkPTZmZTU5MDU1Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FcnJvck1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Yjc3YjExZDQmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0hvdmVyVGV4dC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01NTM4ZDdlMiZsYW5nPXNjc3NcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTG9hZGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPThlMzZmOGVjJmxhbmc9c2Nzc1wiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Qb3B1cE1vZGFsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTVhMmJkYTU4Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TaGltbWVyTG9hZGluZy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03NDM1NjE3MiZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JMaXN0cy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1mNjdjN2U3MiZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUHJvZ3Jlc3NMb2FkZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWMzMmJmMGMmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1N0aWNreUVycm9ycy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xZTM4ZDEwZSZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlJbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0wYTU3MWZkNiZsYW5nPXNjc3NcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQ3JlYXRlTW9kYWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YzdjYTI4YjgmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0J1bGtQdWJsaXNoaW5nLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWQwYjgwMmRhJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FcnJvckl0ZW0udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MDYzY2JkODYmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01YTQwZmNmNCZsYW5nPXNjc3NcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3JnYW5pc2F0aW9uRGF0YS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00YWRhNWYzNiZsYW5nPXNjc3NcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzZXRQYWdlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM2Yjc2NGJiJmxhbmc9c2Nzc1wiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0xJmlkPTE3ZTYzMmE2Jmxhbmc9c2Nzc1wiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzJdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbM10hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTEmaWQ9NTIyNjYyMDAmbGFuZz1zY3NzXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMTMudXNlWzFdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3Qvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC0xMy51c2VbMl0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTEzLnVzZVszXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NpZ25Jbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMTg2MWYzZSZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9BZG1pbkhlYWRlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmZlNTkwNTUmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FkbWluSGVhZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FkbWluSGVhZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IFwiQHZ1ZWZvcm0vbXVsdGlzZWxlY3QvdGhlbWVzL2RlZmF1bHQuY3NzP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmbGFuZz1jc3NcIlxuaW1wb3J0IFwiLi9BZG1pbkhlYWRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MSZpZD02ZmU1OTA1NSZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fc2NvcGVJZCcsXCJkYXRhLXYtNmZlNTkwNTVcIl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0FkbWluSGVhZGVyLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI2ZmU1OTA1NVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzZmZTU5MDU1JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNmZlNTkwNTUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FkbWluSGVhZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02ZmU1OTA1NSZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzZmZTU5MDU1JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9CcmVhZENydW1iLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02NWQwZTNkYSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQnJlYWRDcnVtYi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQnJlYWRDcnVtYi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQnJlYWRDcnVtYi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNjVkMGUzZGFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc2NWQwZTNkYScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzY1ZDBlM2RhJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9CcmVhZENydW1iLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02NWQwZTNkYSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzY1ZDBlM2RhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9CdXR0b25Db21wb25lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTlmZjVhOGY4JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9CdXR0b25Db21wb25lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0J1dHRvbkNvbXBvbmVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvQnV0dG9uQ29tcG9uZW50LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI5ZmY1YThmOFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzlmZjVhOGY4JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnOWZmNWE4ZjgnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0J1dHRvbkNvbXBvbmVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OWZmNWE4ZjgmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc5ZmY1YThmOCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRGVzY3JpcHRpb25Gb3JtLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02ZWJmNDFmOSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRGVzY3JpcHRpb25Gb3JtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9EZXNjcmlwdGlvbkZvcm0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Rlc2NyaXB0aW9uRm9ybS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNmViZjQxZjlcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc2ZWJmNDFmOScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzZlYmY0MWY5JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9EZXNjcmlwdGlvbkZvcm0udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZlYmY0MWY5JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNmViZjQxZjknLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0Vycm9yTWVzc2FnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Yjc3YjExZDQmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Vycm9yTWVzc2FnZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9FcnJvck1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgXCIuL0Vycm9yTWVzc2FnZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iNzdiMTFkNCZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fc2NvcGVJZCcsXCJkYXRhLXYtYjc3YjExZDRcIl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0Vycm9yTWVzc2FnZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYjc3YjExZDRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdiNzdiMTFkNCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2I3N2IxMWQ0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FcnJvck1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWI3N2IxMWQ0JnNjb3BlZD10cnVlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYjc3YjExZDQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0Vycm9yUG9wVXAudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBmMWQ4YjFiJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9FcnJvclBvcFVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Vycm9yUG9wVXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvRXJyb3JQb3BVcC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMGYxZDhiMWJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwZjFkOGIxYicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzBmMWQ4YjFiJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FcnJvclBvcFVwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wZjFkOGIxYiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzBmMWQ4YjFiJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Ib3ZlclRleHQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU1MzhkN2UyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Ib3ZlclRleHQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0hvdmVyVGV4dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgXCIuL0hvdmVyVGV4dC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01NTM4ZDdlMiZsYW5nPXNjc3NcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvSG92ZXJUZXh0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1NTM4ZDdlMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzU1MzhkN2UyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNTUzOGQ3ZTInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0hvdmVyVGV4dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTUzOGQ3ZTImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1NTM4ZDdlMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vTG9hZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04ZTM2ZjhlYyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTG9hZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Mb2FkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9Mb2FkZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OGUzNmY4ZWMmbGFuZz1zY3NzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL0xvYWRlci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiOGUzNmY4ZWNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc4ZTM2ZjhlYycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzhlMzZmOGVjJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Mb2FkZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPThlMzZmOGVjJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignOGUzNmY4ZWMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL05hdkRyb3Bkb3duLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yNjE5YTdlZCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTmF2RHJvcGRvd24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL05hdkRyb3Bkb3duLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9OYXZEcm9wZG93bi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMjYxOWE3ZWRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcyNjE5YTdlZCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzI2MTlhN2VkJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9OYXZEcm9wZG93bi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjYxOWE3ZWQmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyNjE5YTdlZCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUG9wdXBNb2RhbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWEyYmRhNTgmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1BvcHVwTW9kYWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1BvcHVwTW9kYWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9Qb3B1cE1vZGFsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTVhMmJkYTU4Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19zY29wZUlkJyxcImRhdGEtdi01YTJiZGE1OFwiXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUG9wdXBNb2RhbC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNWEyYmRhNThcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1YTJiZGE1OCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzVhMmJkYTU4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Qb3B1cE1vZGFsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01YTJiZGE1OCZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzVhMmJkYTU4JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SYWRpYWxQcm9ncmVzc0Jhci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MTU3MzhlNjAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JhZGlhbFByb2dyZXNzQmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SYWRpYWxQcm9ncmVzc0Jhci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvUmFkaWFsUHJvZ3Jlc3NCYXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjE1NzM4ZTYwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMTU3MzhlNjAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcxNTczOGU2MCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmFkaWFsUHJvZ3Jlc3NCYXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTE1NzM4ZTYwJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMTU3MzhlNjAnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1NoaW1tZXJMb2FkaW5nLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03NDM1NjE3MiZzY29wZWQ9dHJ1ZVwiXG5jb25zdCBzY3JpcHQgPSB7fVxuXG5pbXBvcnQgXCIuL1NoaW1tZXJMb2FkaW5nLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTc0MzU2MTcyJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19zY29wZUlkJyxcImRhdGEtdi03NDM1NjE3MlwiXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvU2hpbW1lckxvYWRpbmcudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjc0MzU2MTcyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNzQzNTYxNzInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3NDM1NjE3MicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU2hpbW1lckxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc0MzU2MTcyJnNjb3BlZD10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzc0MzU2MTcyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UYWJsZVBhZ2luYXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPThjOTdhNWJlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UYWJsZVBhZ2luYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RhYmxlUGFnaW5hdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvVGFibGVQYWdpbmF0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI4Yzk3YTViZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzhjOTdhNWJlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnOGM5N2E1YmUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RhYmxlUGFnaW5hdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OGM5N2E1YmUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc4Yzk3YTViZScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVG9hc3RNZXNzYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMDFkOGNkMiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVG9hc3RNZXNzYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RvYXN0TWVzc2FnZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9Ub2FzdE1lc3NhZ2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImQwMWQ4Y2QyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZDAxZDhjZDInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdkMDFkOGNkMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVG9hc3RNZXNzYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMDFkOGNkMiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2QwMWQ4Y2QyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9EZWxldGVCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWE5M2Q4NDdjJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9EZWxldGVCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRGVsZXRlQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL2J1dHRvbnMvRGVsZXRlQnV0dG9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJhOTNkODQ3Y1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2E5M2Q4NDdjJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnYTkzZDg0N2MnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0RlbGV0ZUJ1dHRvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YTkzZDg0N2MmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdhOTNkODQ3YycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vTGluay52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YmZlNjUxMDImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0xpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0xpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL2J1dHRvbnMvTGluay52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYmZlNjUxMDJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdiZmU2NTEwMicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2JmZTY1MTAyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9MaW5rLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1iZmU2NTEwMiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2JmZTY1MTAyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lY2M1MDgyOCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL2J1dHRvbnMvUHVibGlzaEJ1dHRvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZWNjNTA4MjhcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdlY2M1MDgyOCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2VjYzUwODI4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9QdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lY2M1MDgyOCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2VjYzUwODI4JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9VblB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ1OWMzMTkzJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9VblB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVW5QdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL2J1dHRvbnMvVW5QdWJsaXNoQnV0dG9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0NTljMzE5M1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzQ1OWMzMTkzJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNDU5YzMxOTMnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1VuUHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDU5YzMxOTMmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0NTljMzE5MycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRGVsZXRlQWN0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01NmJjZThjYSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRGVsZXRlQWN0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0RlbGV0ZUFjdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9EZWxldGVBY3Rpb24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjU2YmNlOGNhXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNTZiY2U4Y2EnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1NmJjZThjYScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRGVsZXRlQWN0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01NmJjZThjYSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzU2YmNlOGNhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9FcnJvckxpc3RzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1mNjdjN2U3MiZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRXJyb3JMaXN0cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9FcnJvckxpc3RzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9FcnJvckxpc3RzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWY2N2M3ZTcyJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19zY29wZUlkJyxcImRhdGEtdi1mNjdjN2U3MlwiXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvRXJyb3JMaXN0cy52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZjY3YzdlNzJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdmNjdjN2U3MicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2Y2N2M3ZTcyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FcnJvckxpc3RzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1mNjdjN2U3MiZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2Y2N2M3ZTcyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9IYXZlTm90QWRkZWRZZXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM5MjVlZjQ5JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9IYXZlTm90QWRkZWRZZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0hhdmVOb3RBZGRlZFlldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvSGF2ZU5vdEFkZGVkWWV0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIzOTI1ZWY0OVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzM5MjVlZjQ5JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMzkyNWVmNDknLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0hhdmVOb3RBZGRlZFlldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzkyNWVmNDkmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCczOTI1ZWY0OScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vT3JnYW5pemF0aW9uUHVibGlzaFVucHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MmZiOGY0MDYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vT3JnYW5pemF0aW9uUHVibGlzaFVucHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9Pcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyZmI4ZjQwNlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzJmYjhmNDA2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMmZiOGY0MDYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL09yZ2FuaXphdGlvblB1Ymxpc2hVbnB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTJmYjhmNDA2JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMmZiOGY0MDYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1BhZ2VUaXRsZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWI1NGUwOWYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1BhZ2VUaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGFnZVRpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9QYWdlVGl0bGUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjFiNTRlMDlmXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMWI1NGUwOWYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcxYjU0ZTA5ZicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUGFnZVRpdGxlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xYjU0ZTA5ZiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzFiNTRlMDlmJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Qcm9ncmVzc0xvYWRlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWMzMmJmMGMmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1Byb2dyZXNzTG9hZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1Byb2dyZXNzTG9hZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9Qcm9ncmVzc0xvYWRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01YzMyYmYwYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fc2NvcGVJZCcsXCJkYXRhLXYtNWMzMmJmMGNcIl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1Byb2dyZXNzTG9hZGVyLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1YzMyYmYwY1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzVjMzJiZjBjJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNWMzMmJmMGMnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Byb2dyZXNzTG9hZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01YzMyYmYwYyZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzVjMzJiZjBjJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TdGlja3lFcnJvcnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFlMzhkMTBlJnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TdGlja3lFcnJvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vU3RpY2t5RXJyb3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9TdGlja3lFcnJvcnMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MWUzOGQxMGUmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX3Njb3BlSWQnLFwiZGF0YS12LTFlMzhkMTBlXCJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9TdGlja3lFcnJvcnMudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjFlMzhkMTBlXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMWUzOGQxMGUnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcxZTM4ZDEwZScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU3RpY2t5RXJyb3JzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xZTM4ZDEwZSZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzFlMzhkMTBlJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9FbGVtZW50U3RhdHVzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xZWI4ZGViMCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRWxlbWVudFN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9FbGVtZW50U3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy9jb21wb25lbnRzL3N0YXR1cy9FbGVtZW50U3RhdHVzLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxZWI4ZGViMFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzFlYjhkZWIwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMWViOGRlYjAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0VsZW1lbnRTdGF0dXMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFlYjhkZWIwJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMWViOGRlYjAnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1ByZXZpb3VzbHlQdWJsaXNoZWQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFmMmY5YWI4JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1ByZXZpb3VzbHlQdWJsaXNoZWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL2NvbXBvbmVudHMvc3RhdHVzL1ByZXZpb3VzbHlQdWJsaXNoZWQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjFmMmY5YWI4XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMWYyZjlhYjgnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcxZjJmOWFiOCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUHJldmlvdXNseVB1Ymxpc2hlZC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWYyZjlhYjgmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcxZjJmOWFiOCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIzZWUzNzVjJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9BY3Rpdml0eURlZmF1bHRWYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BY3Rpdml0eURlZmF1bHRWYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjIzZWUzNzVjXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjNlZTM3NWMnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyM2VlMzc1YycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIzZWUzNzVjJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMjNlZTM3NWMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FjdGl2aXR5RGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ZTQwMmIwNiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWN0aXZpdHlEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FjdGl2aXR5RGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvQWN0aXZpdHlEZXRhaWwudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjRlNDAyYjA2XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNGU0MDJiMDYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc0ZTQwMmIwNicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWN0aXZpdHlEZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRlNDAyYjA2JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNGU0MDJiMDYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FjdGl2aXR5SW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBhNTcxZmQ2JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9BY3Rpdml0eUluZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BY3Rpdml0eUluZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vQWN0aXZpdHlJbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0wYTU3MWZkNiZsYW5nPXNjc3NcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L0FjdGl2aXR5SW5kZXgudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjBhNTcxZmQ2XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMGE1NzFmZDYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwYTU3MWZkNicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWN0aXZpdHlJbmRleC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGE1NzFmZDYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwYTU3MWZkNicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQ3JlYXRlTW9kYWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWM3Y2EyOGI4JnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DcmVhdGVNb2RhbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQ3JlYXRlTW9kYWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9DcmVhdGVNb2RhbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1jN2NhMjhiOCZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fc2NvcGVJZCcsXCJkYXRhLXYtYzdjYTI4YjhcIl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9DcmVhdGVNb2RhbC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYzdjYTI4YjhcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdjN2NhMjhiOCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2M3Y2EyOGI4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9DcmVhdGVNb2RhbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YzdjYTI4Yjgmc2NvcGVkPXRydWUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdjN2NhMjhiOCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQnVsa1B1Ymxpc2hpbmcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQwYjgwMmRhJnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9CdWxrUHVibGlzaGluZy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9CdWxrUHVibGlzaGluZy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vQnVsa1B1Ymxpc2hpbmcudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZDBiODAyZGEmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX3Njb3BlSWQnLFwiZGF0YS12LWQwYjgwMmRhXCJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0J1bGtQdWJsaXNoaW5nLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJkMGI4MDJkYVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2QwYjgwMmRhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZDBiODAyZGEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0J1bGtQdWJsaXNoaW5nLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMGI4MDJkYSZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2QwYjgwMmRhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9FcnJvckl0ZW0udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA2M2NiZDg2JnNjb3BlZD10cnVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9FcnJvckl0ZW0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRXJyb3JJdGVtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9FcnJvckl0ZW0udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MDYzY2JkODYmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX3Njb3BlSWQnLFwiZGF0YS12LTA2M2NiZDg2XCJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL0Vycm9ySXRlbS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMDYzY2JkODZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwNjNjYmQ4NicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzA2M2NiZDg2JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FcnJvckl0ZW0udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA2M2NiZDg2JnNjb3BlZD10cnVlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMDYzY2JkODYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1B1Ymxpc2hTZWxlY3RlZC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9M2ZiMWUxY2MmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1B1Ymxpc2hTZWxlY3RlZC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QdWJsaXNoU2VsZWN0ZWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2J1bGstcHVibGlzaC9QdWJsaXNoU2VsZWN0ZWQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjNmYjFlMWNjXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnM2ZiMWUxY2MnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCczZmIxZTFjYycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUHVibGlzaFNlbGVjdGVkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zZmIxZTFjYyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzNmYjFlMWNjJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZWZyZXNoVG9hc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQwMTE4OTdhJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZWZyZXNoVG9hc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVmcmVzaFRvYXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9idWxrLXB1Ymxpc2gvUmVmcmVzaFRvYXN0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0MDExODk3YVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzQwMTE4OTdhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNDAxMTg5N2EnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlZnJlc2hUb2FzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDAxMTg5N2EmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0MDExODk3YScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVmFsaWRhdGlvbkVycm9ycy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjU3NWQzYjImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1ZhbGlkYXRpb25FcnJvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVmFsaWRhdGlvbkVycm9ycy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvYnVsay1wdWJsaXNoL1ZhbGlkYXRpb25FcnJvcnMudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjI1NzVkM2IyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjU3NWQzYjInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyNTc1ZDNiMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVmFsaWRhdGlvbkVycm9ycy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjU3NWQzYjImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyNTc1ZDNiMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWN0aXZpdHlEYXRlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wMTM4ZWE4OCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWN0aXZpdHlEYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BY3Rpdml0eURhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9BY3Rpdml0eURhdGUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjAxMzhlYTg4XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMDEzOGVhODgnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwMTM4ZWE4OCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWN0aXZpdHlEYXRlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wMTM4ZWE4OCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzAxMzhlYTg4JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Db25kaXRpb25zLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1iYWZiMjViYSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQ29uZGl0aW9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQ29uZGl0aW9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0NvbmRpdGlvbnMudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImJhZmIyNWJhXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnYmFmYjI1YmEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdiYWZiMjViYScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQ29uZGl0aW9ucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YmFmYjI1YmEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdiYWZiMjViYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQ29udGFjdEluZm8udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI5YTdkMzEzJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Db250YWN0SW5mby52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQ29udGFjdEluZm8udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9Db250YWN0SW5mby52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMjlhN2QzMTNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcyOWE3ZDMxMycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzI5YTdkMzEzJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Db250YWN0SW5mby52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjlhN2QzMTMmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyOWE3ZDMxMycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWM3ZDc5OWJlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9EZXNjcmlwdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYzdkNzk5YmVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdjN2Q3OTliZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2M3ZDc5OWJlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YzdkNzk5YmUmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdjN2Q3OTliZScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSHVtYW5pdGFyaWFuU2NvcGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWNkZmI3NDY4JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9IdW1hbml0YXJpYW5TY29wZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9IdW1hbml0YXJpYW5TY29wZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvSHVtYW5pdGFyaWFuU2NvcGUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImNkZmI3NDY4XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnY2RmYjc0NjgnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdjZGZiNzQ2OCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vSHVtYW5pdGFyaWFuU2NvcGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWNkZmI3NDY4JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignY2RmYjc0NjgnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0lhdGlJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MjYxYWZmZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSWF0aUlkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0lhdGlJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvSWF0aUlkZW50aWZpZXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjUyNjFhZmZlXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNTI2MWFmZmUnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1MjYxYWZmZScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vSWF0aUlkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUyNjFhZmZlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNTI2MWFmZmUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0xlZ2FjeURhdGEudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWNiM2U0ODA0JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9MZWdhY3lEYXRhLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9MZWdhY3lEYXRhLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvTGVnYWN5RGF0YS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiY2IzZTQ4MDRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdjYjNlNDgwNCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2NiM2U0ODA0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9MZWdhY3lEYXRhLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jYjNlNDgwNCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2NiM2U0ODA0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Mb2NhdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MTJjMmU4NjAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0xvY2F0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Mb2NhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL0xvY2F0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxMmMyZTg2MFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzEyYzJlODYwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMTJjMmU4NjAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0xvY2F0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xMmMyZTg2MCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzEyYzJlODYwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9PdGhlcklkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc4YjY0NDA0JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9PdGhlcklkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL090aGVySWRlbnRpZmllci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL090aGVySWRlbnRpZmllci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNzhiNjQ0MDRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3OGI2NDQwNCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzc4YjY0NDA0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9PdGhlcklkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc4YjY0NDA0JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNzhiNjQ0MDQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1BhcnRpY2lwYXRpbmdPcmcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTdkNGRhYjc0JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QYXJ0aWNpcGF0aW5nT3JnLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QYXJ0aWNpcGF0aW5nT3JnLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUGFydGljaXBhdGluZ09yZy52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiN2Q0ZGFiNzRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3ZDRkYWI3NCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzdkNGRhYjc0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9QYXJ0aWNpcGF0aW5nT3JnLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZDRkYWI3NCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzdkNGRhYjc0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QbGFubmVkRGlzYnVyc2VtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wMTcyYzJhYyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUGxhbm5lZERpc2J1cnNlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QbGFubmVkRGlzYnVyc2VtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9QbGFubmVkRGlzYnVyc2VtZW50LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIwMTcyYzJhY1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzAxNzJjMmFjJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMDE3MmMyYWMnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1BsYW5uZWREaXNidXJzZW1lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTAxNzJjMmFjJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMDE3MmMyYWMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1BvbGljeU1hcmtlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YmQ5ODg4OTImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1BvbGljeU1hcmtlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUG9saWN5TWFya2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUG9saWN5TWFya2VyLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJiZDk4ODg5MlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2JkOTg4ODkyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnYmQ5ODg4OTInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1BvbGljeU1hcmtlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YmQ5ODg4OTImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdiZDk4ODg5MicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVjaXBpZW50Q291bnRyeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2YxOGJlMzAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlY2lwaWVudENvdW50cnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlY2lwaWVudENvdW50cnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3ZjE4YmUzMFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzdmMThiZTMwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnN2YxOGJlMzAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlY2lwaWVudENvdW50cnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTdmMThiZTMwJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignN2YxOGJlMzAnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlY2lwaWVudFJlZ2lvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZWJkNjYyZGMmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlY2lwaWVudFJlZ2lvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1JlY2lwaWVudFJlZ2lvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZWJkNjYyZGNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdlYmQ2NjJkYycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2ViZDY2MmRjJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWViZDY2MmRjJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignZWJkNjYyZGMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlbGF0ZWRBY3Rpdml0eS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MmNhMDRjMDImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlbGF0ZWRBY3Rpdml0eS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVsYXRlZEFjdGl2aXR5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVsYXRlZEFjdGl2aXR5LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyY2EwNGMwMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzJjYTA0YzAyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMmNhMDRjMDInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlbGF0ZWRBY3Rpdml0eS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MmNhMDRjMDImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyY2EwNGMwMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00MzhiMGFlNiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0MzhiMGFlNlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzQzOGIwYWU2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNDM4YjBhZTYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlcG9ydGluZ09yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDM4YjBhZTYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0MzhiMGFlNicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVzdWx0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yNzdjYjRmMCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVzdWx0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXN1bHQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9SZXN1bHQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjI3N2NiNGYwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjc3Y2I0ZjAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyNzdjYjRmMCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVzdWx0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yNzdjYjRmMCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzI3N2NiNGYwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTMyOTQ2ODUxJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1NlY3Rvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2VsZW1lbnRzL1NlY3Rvci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMzI5NDY4NTFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCczMjk0Njg1MScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzMyOTQ2ODUxJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTMyOTQ2ODUxJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMzI5NDY4NTEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RhZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDExOTY2ODImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RhZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVGFnLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvZWxlbWVudHMvVGFnLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIwMTE5NjY4MlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzAxMTk2NjgyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMDExOTY2ODInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RhZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDExOTY2ODImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwMTE5NjY4MicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ3NGE3MTNkJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UaXRsZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDc0YTcxM2RcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0NzRhNzEzZCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQ3NGE3MTNkJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UaXRsZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDc0YTcxM2QmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0NzRhNzEzZCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVHJhbnNhY3Rpb25zLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYjhhZmYwMCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVHJhbnNhY3Rpb25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UcmFuc2FjdGlvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9lbGVtZW50cy9UcmFuc2FjdGlvbnMudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjJiOGFmZjAwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMmI4YWZmMDAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyYjhhZmYwMCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVHJhbnNhY3Rpb25zLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYjhhZmYwMCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzJiOGFmZjAwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9JbmRpY2F0b3JEZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTVmZjE3NzcyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9JbmRpY2F0b3JEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0luZGljYXRvckRldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvSW5kaWNhdG9yRGV0YWlsLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1ZmYxNzc3MlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzVmZjE3NzcyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNWZmMTc3NzInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0luZGljYXRvckRldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWZmMTc3NzImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1ZmYxNzc3MicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSW5kaWNhdG9yTGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmY3OGNmN2YmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0luZGljYXRvckxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0luZGljYXRvckxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL0luZGljYXRvckxpc3QudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjZmNzhjZjdmXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNmY3OGNmN2YnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc2Zjc4Y2Y3ZicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vSW5kaWNhdG9yTGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmY3OGNmN2YmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc2Zjc4Y2Y3ZicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWdncmVnYXRpb25TdGF0dXMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWRkNzYzZTRjJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9BZ2dyZWdhdGlvblN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWdncmVnYXRpb25TdGF0dXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0FnZ3JlZ2F0aW9uU3RhdHVzLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJkZDc2M2U0Y1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2RkNzYzZTRjJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZGQ3NjNlNGMnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FnZ3JlZ2F0aW9uU3RhdHVzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kZDc2M2U0YyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2RkNzYzZTRjJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9CYXNlbGluZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmFhNmQwNjImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Jhc2VsaW5lLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9CYXNlbGluZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvQmFzZWxpbmUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjZhYTZkMDYyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNmFhNmQwNjInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc2YWE2ZDA2MicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQmFzZWxpbmUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZhYTZkMDYyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNmFhNmQwNjInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03NzViNjFlMiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9EZXNjcmlwdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNzc1YjYxZTJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3NzViNjFlMicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzc3NWI2MWUyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Nzc1YjYxZTImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc3NzViNjFlMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zY2IyNjAzZiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL0RvY3VtZW50TGluay52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiM2NiMjYwM2ZcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCczY2IyNjAzZicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzNjYjI2MDNmJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTNjYjI2MDNmJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignM2NiMjYwM2YnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0luZGljYXRvckFzY2VuZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZjdlZDZhZGEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0luZGljYXRvckFzY2VuZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vSW5kaWNhdG9yQXNjZW5kaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9JbmRpY2F0b3JBc2NlbmRpbmcudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImY3ZWQ2YWRhXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZjdlZDZhZGEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdmN2VkNmFkYScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vSW5kaWNhdG9yQXNjZW5kaW5nLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1mN2VkNmFkYSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2Y3ZWQ2YWRhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9NZWFzdXJlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03YTY0ZDk0NCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTWVhc3VyZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vTWVhc3VyZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvTWVhc3VyZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiN2E2NGQ5NDRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3YTY0ZDk0NCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzdhNjRkOTQ0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9NZWFzdXJlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03YTY0ZDk0NCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzdhNjRkOTQ0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QZXJpb2QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU4MTY4NDZhJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QZXJpb2QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1BlcmlvZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L2luZGljYXRvcnMvZWxlbWVudHMvUGVyaW9kLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1ODE2ODQ2YVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzU4MTY4NDZhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNTgxNjg0NmEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1BlcmlvZC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTgxNjg0NmEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1ODE2ODQ2YScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ODVhNGQ5ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZWZlcmVuY2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9pbmRpY2F0b3JzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDg1YTRkOWVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0ODVhNGQ5ZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQ4NWE0ZDllJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWZlcmVuY2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ4NWE0ZDllJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDg1YTRkOWUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RpdGxlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04ZjZmZjY4NCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvaW5kaWNhdG9ycy9lbGVtZW50cy9UaXRsZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiOGY2ZmY2ODRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc4ZjZmZjY4NCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzhmNmZmNjg0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UaXRsZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OGY2ZmY2ODQmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc4ZjZmZjY4NCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWN0aXZpdGllc0VsZW1lbnRzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01YTQwZmNmNCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWN0aXZpdGllc0VsZW1lbnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vQWN0aXZpdGllc0VsZW1lbnRzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTVhNDBmY2Y0Jmxhbmc9c2Nzc1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvQWN0aXZpdGllc0VsZW1lbnRzLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1YTQwZmNmNFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzVhNDBmY2Y0JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNWE0MGZjZjQnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWE0MGZjZjQmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1YTQwZmNmNCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWN0aXZpdHlFbGVtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZjVkNjBhNiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWN0aXZpdHlFbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FjdGl2aXR5RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvQWN0aXZpdHlFbGVtZW50LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI3ZjVkNjBhNlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzdmNWQ2MGE2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnN2Y1ZDYwYTYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FjdGl2aXR5RWxlbWVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2Y1ZDYwYTYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc3ZjVkNjBhNicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWRkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1MGUxNzNjJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9BZGRBY3Rpdml0eUJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWRkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9BZGRBY3Rpdml0eUJ1dHRvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMDUwZTE3M2NcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwNTBlMTczYycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzA1MGUxNzNjJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BZGRBY3Rpdml0eUJ1dHRvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDUwZTE3M2MmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwNTBlMTczYycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjYxZTZmOGUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Rvd25sb2FkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Rvd25sb2FkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9Eb3dubG9hZEFjdGl2aXR5QnV0dG9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI2NjFlNmY4ZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzY2MWU2ZjhlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNjYxZTZmOGUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0Rvd25sb2FkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTY2MWU2ZjhlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNjYxZTZmOGUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0VsZW1lbnRzTm90ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWJjMDQxZjkmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0VsZW1lbnRzTm90ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRWxlbWVudHNOb3RlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvRWxlbWVudHNOb3RlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1YmMwNDFmOVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzViYzA0MWY5JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNWJjMDQxZjknLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0VsZW1lbnRzTm90ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWJjMDQxZjkmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1YmMwNDFmOScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vRW1wdHlBY3Rpdml0eS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OWFlZjk2ODgmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0VtcHR5QWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0VtcHR5QWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9FbXB0eUFjdGl2aXR5LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI5YWVmOTY4OFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzlhZWY5Njg4JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnOWFlZjk2ODgnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0VtcHR5QWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTlhZWY5Njg4JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignOWFlZjk2ODgnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1BhZ2VUaXRsZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzU4OWU4NmUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1BhZ2VUaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BhcnRpYWxzL1BhZ2VUaXRsZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNzU4OWU4NmVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3NTg5ZTg2ZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzc1ODllODZlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc1ODllODZlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNzU4OWU4NmUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1NpZGViYXJIZWxwQmxvY2sudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWZlZjI2YTgwJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TaWRlYmFySGVscEJsb2NrLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9TaWRlYmFySGVscEJsb2NrLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGFydGlhbHMvU2lkZWJhckhlbHBCbG9jay52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZmVmMjZhODBcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdmZWYyNmE4MCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2ZlZjI2YTgwJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9TaWRlYmFySGVscEJsb2NrLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1mZWYyNmE4MCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2ZlZjI2YTgwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UYWJsZUxheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWQ4NGExZDgmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1RhYmxlTGF5b3V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RhYmxlTGF5b3V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wYXJ0aWFscy9UYWJsZUxheW91dC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNWQ4NGExZDhcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc1ZDg0YTFkOCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzVkODRhMWQ4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UYWJsZUxheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWQ4NGExZDgmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1ZDg0YTFkOCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUGVyaW9kc0RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzJlM2I1OTkmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1BlcmlvZHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1BlcmlvZHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNEZXRhaWwudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjcyZTNiNTk5XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNzJlM2I1OTknLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3MmUzYjU5OScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUGVyaW9kc0RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzJlM2I1OTkmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc3MmUzYjU5OScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUGVyaW9kc0xpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQzM2IyOTM0JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QZXJpb2RzTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGVyaW9kc0xpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9wZXJpb2RzL1BlcmlvZHNMaXN0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJkMzNiMjkzNFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2QzM2IyOTM0JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZDMzYjI5MzQnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1BlcmlvZHNMaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMzNiMjkzNCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2QzM2IyOTM0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9BY3R1YWxWYWx1ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzlhODhmYzUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FjdHVhbFZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BY3R1YWxWYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3BlcmlvZHMvZWxlbWVudHMvQWN0dWFsVmFsdWUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjc5YTg4ZmM1XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNzlhODhmYzUnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3OWE4OGZjNScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWN0dWFsVmFsdWUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc5YTg4ZmM1JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNzlhODhmYzUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RhcmdldFZhbHVlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wZTU3MWIyMiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVGFyZ2V0VmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RhcmdldFZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcGVyaW9kcy9lbGVtZW50cy9UYXJnZXRWYWx1ZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMGU1NzFiMjJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwZTU3MWIyMicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzBlNTcxYjIyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9UYXJnZXRWYWx1ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGU1NzFiMjImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwZTU3MWIyMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVzdWx0RGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02YzIwZjE3OCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVzdWx0RGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXN1bHREZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL1Jlc3VsdERldGFpbC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNmMyMGYxNzhcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc2YzIwZjE3OCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzZjMjBmMTc4JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXN1bHREZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZjMjBmMTc4JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNmMyMGYxNzgnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1Jlc3VsdEVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTE4ZmU0MjE5JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZXN1bHRFbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXN1bHRFbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9SZXN1bHRFbGVtZW50LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIxOGZlNDIxOVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzE4ZmU0MjE5JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMThmZTQyMTknLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Jlc3VsdEVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTE4ZmU0MjE5JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMThmZTQyMTknLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1Jlc3VsdExpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWFhMDZhODVlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZXN1bHRMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXN1bHRMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9SZXN1bHRMaXN0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJhYTA2YTg1ZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2FhMDZhODVlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnYWEwNmE4NWUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Jlc3VsdExpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWFhMDZhODVlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYWEwNmE4NWUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGUyZTgzMDcmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9Eb2N1bWVudExpbmsudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjBlMmU4MzA3XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMGUyZTgzMDcnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcwZTJlODMwNycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wZTJlODMwNyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzBlMmU4MzA3JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9JbmRpY2F0b3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRjMmU2ODJkJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9JbmRpY2F0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0luZGljYXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3Jlc3VsdHMvZWxlbWVudHMvSW5kaWNhdG9yLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0YzJlNjgyZFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzRjMmU2ODJkJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNGMyZTY4MmQnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0luZGljYXRvci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGMyZTY4MmQmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0YzJlNjgyZCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04MWMyMjkyZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZWZlcmVuY2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS9yZXN1bHRzL2VsZW1lbnRzL1JlZmVyZW5jZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiODFjMjI5MmVcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc4MWMyMjkyZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzgxYzIyOTJlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWZlcmVuY2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgxYzIyOTJlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignODFjMjI5MmUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1Jlc3VsdFR5cGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTNjMjFjNDZlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZXN1bHRUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXN1bHRUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9SZXN1bHRUeXBlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIzYzIxYzQ2ZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzNjMjFjNDZlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnM2MyMWM0NmUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Jlc3VsdFR5cGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTNjMjFjNDZlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignM2MyMWM0NmUnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RpdGxlRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQxMmZlZDU0JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UaXRsZURlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UaXRsZURlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvcmVzdWx0cy9lbGVtZW50cy9UaXRsZURlc2NyaXB0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJkMTJmZWQ1NFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2QxMmZlZDU0JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZDEyZmVkNTQnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RpdGxlRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQxMmZlZDU0JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignZDEyZmVkNTQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RyYW5zYWN0aW9uRGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wN2MwNmMxMiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVHJhbnNhY3Rpb25EZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RyYW5zYWN0aW9uRGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL1RyYW5zYWN0aW9uRGV0YWlsLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIwN2MwNmMxMlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzA3YzA2YzEyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMDdjMDZjMTInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RyYW5zYWN0aW9uRGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wN2MwNmMxMiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzA3YzA2YzEyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UcmFuc2FjdGlvbkVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQ1NmMxMWVhJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UcmFuc2FjdGlvbkVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RyYW5zYWN0aW9uRWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkVsZW1lbnQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImQ1NmMxMWVhXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZDU2YzExZWEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdkNTZjMTFlYScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVHJhbnNhY3Rpb25FbGVtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kNTZjMTFlYSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2Q1NmMxMWVhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UcmFuc2FjdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWNjODcyN2MyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UcmFuc2FjdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RyYW5zYWN0aW9uTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9UcmFuc2FjdGlvbkxpc3QudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImNjODcyN2MyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnY2M4NzI3YzInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdjYzg3MjdjMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVHJhbnNhY3Rpb25MaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jYzg3MjdjMiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2NjODcyN2MyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9BaWRUeXBlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kZjk2Yzk2YSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWlkVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWlkVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9BaWRUeXBlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJkZjk2Yzk2YVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2RmOTZjOTZhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZGY5NmM5NmEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FpZFR5cGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWRmOTZjOTZhJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignZGY5NmM5NmEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yMmE4YTczMSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0Rlc2NyaXB0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyMmE4YTczMVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzIyYThhNzMxJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMjJhOGE3MzEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yMmE4YTczMSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzIyYThhNzMxJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9EaXNidXJzZW1lbnRDaGFubmVsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1jNzg1MzA1MiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRGlzYnVyc2VtZW50Q2hhbm5lbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9EaXNidXJzZW1lbnRDaGFubmVsLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJjNzg1MzA1MlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2M3ODUzMDUyJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnYzc4NTMwNTInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0Rpc2J1cnNlbWVudENoYW5uZWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWM3ODUzMDUyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYzc4NTMwNTInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0ZpbmFuY2VUeXBlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNWM3YzUyZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRmluYW5jZVR5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0ZpbmFuY2VUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL0ZpbmFuY2VUeXBlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJlNWM3YzUyZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2U1YzdjNTJlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZTVjN2M1MmUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0ZpbmFuY2VUeXBlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNWM3YzUyZSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2U1YzdjNTJlJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9GbG93VHlwZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGU0MDZhYTMmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Zsb3dUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9GbG93VHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9GbG93VHlwZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMGU0MDZhYTNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwZTQwNmFhMycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzBlNDA2YWEzJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9GbG93VHlwZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGU0MDZhYTMmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwZTQwNmFhMycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUHJvdmlkZXJPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM1ZWY2ODVmJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Qcm92aWRlck9yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUHJvdmlkZXJPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvUHJvdmlkZXJPcmdhbml6YXRpb24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjM1ZWY2ODVmXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMzVlZjY4NWYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCczNWVmNjg1ZicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUHJvdmlkZXJPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM1ZWY2ODVmJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMzVlZjY4NWYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlY2VpdmVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04YTA4ZGY0NiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVjZWl2ZXJPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlY2VpdmVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1JlY2VpdmVyT3JnYW5pemF0aW9uLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI4YTA4ZGY0NlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzhhMDhkZjQ2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnOGEwOGRmNDYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlY2VpdmVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD04YTA4ZGY0NiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzhhMDhkZjQ2JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00M2Q1MzZkOCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVjaXBpZW50Q291bnRyeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVjaXBpZW50Q291bnRyeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2FjdGl2aXR5L3RyYW5zYWN0aW9ucy9lbGVtZW50cy9SZWNpcGllbnRDb3VudHJ5LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0M2Q1MzZkOFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzQzZDUzNmQ4JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNDNkNTM2ZDgnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlY2lwaWVudENvdW50cnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQzZDUzNmQ4JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDNkNTM2ZDgnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlY2lwaWVudFJlZ2lvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGEzMGJhYTImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlY2lwaWVudFJlZ2lvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVjaXBpZW50UmVnaW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1JlY2lwaWVudFJlZ2lvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMGEzMGJhYTJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwYTMwYmFhMicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzBhMzBiYWEyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTBhMzBiYWEyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMGEzMGJhYTInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1NlY3Rvci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGVlYmFhNDEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NlY3Rvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2VjdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1NlY3Rvci52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNGVlYmFhNDFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0ZWViYWE0MScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzRlZWJhYTQxJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRlZWJhYTQxJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNGVlYmFhNDEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1RpZWRTdGF0dXMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU3MDg5ODQxJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UaWVkU3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UaWVkU3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvYWN0aXZpdHkvdHJhbnNhY3Rpb25zL2VsZW1lbnRzL1RpZWRTdGF0dXMudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjU3MDg5ODQxXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNTcwODk4NDEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1NzA4OTg0MScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVGllZFN0YXR1cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTcwODk4NDEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1NzA4OTg0MScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVHJhbnNhY3Rpb25EYXRlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02MTJmY2M2MSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVHJhbnNhY3Rpb25EYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UcmFuc2FjdGlvbkRhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVHJhbnNhY3Rpb25EYXRlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI2MTJmY2M2MVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzYxMmZjYzYxJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNjEyZmNjNjEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RyYW5zYWN0aW9uRGF0ZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjEyZmNjNjEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc2MTJmY2M2MScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVHJhbnNhY3Rpb25UeXBlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02M2Y2NzQyNiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVHJhbnNhY3Rpb25UeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9UcmFuc2FjdGlvblR5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVHJhbnNhY3Rpb25UeXBlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI2M2Y2NzQyNlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzYzZjY3NDI2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNjNmNjc0MjYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RyYW5zYWN0aW9uVHlwZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjNmNjc0MjYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc2M2Y2NzQyNicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVmFsdWUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTE2OTcyODM0JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9WYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9hY3Rpdml0eS90cmFuc2FjdGlvbnMvZWxlbWVudHMvVmFsdWUudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjE2OTcyODM0XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMTY5NzI4MzQnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcxNjk3MjgzNCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vVmFsdWUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTE2OTcyODM0JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMTY5NzI4MzQnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0FjdGl2aXR5VXBsb2FkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wZWQ1ZmRkMiZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQWN0aXZpdHlVcGxvYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWN0aXZpdHlVcGxvYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL2ltcG9ydC9BY3Rpdml0eVVwbG9hZC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMGVkNWZkZDJcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcwZWQ1ZmRkMicsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzBlZDVmZGQyJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BY3Rpdml0eVVwbG9hZC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGVkNWZkZDImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwZWQ1ZmRkMicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSW1wb3J0TGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDBkNzg3MGEmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0ltcG9ydExpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vSW1wb3J0TGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydExpc3QudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjQwZDc4NzBhXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNDBkNzg3MGEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc0MGQ3ODcwYScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vSW1wb3J0TGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDBkNzg3MGEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0MGQ3ODcwYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSW1wb3J0UGxhY2Vob2xkZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTVkMTQ4ZDM3JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9JbXBvcnRQbGFjZWhvbGRlci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9JbXBvcnRQbGFjZWhvbGRlci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvaW1wb3J0L0ltcG9ydFBsYWNlaG9sZGVyLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1ZDE0OGQzN1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzVkMTQ4ZDM3JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNWQxNDhkMzcnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0ltcG9ydFBsYWNlaG9sZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01ZDE0OGQzNyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzVkMTQ4ZDM3JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9MaXN0RWxlbWVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OWE2MDg0MzImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0xpc3RFbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0xpc3RFbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9pbXBvcnQvTGlzdEVsZW1lbnQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjlhNjA4NDMyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnOWE2MDg0MzInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc5YTYwODQzMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vTGlzdEVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTlhNjA4NDMyJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignOWE2MDg0MzInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL09yZ2FuaXNhdGlvbkRhdGEudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRhZGE1ZjM2JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9PcmdhbmlzYXRpb25EYXRhLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9PcmdhbmlzYXRpb25EYXRhLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vT3JnYW5pc2F0aW9uRGF0YS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00YWRhNWYzNiZsYW5nPXNjc3NcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25EYXRhLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0YWRhNWYzNlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzRhZGE1ZjM2JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNGFkYTVmMzYnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL09yZ2FuaXNhdGlvbkRhdGEudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRhZGE1ZjM2JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNGFkYTVmMzYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL09yZ2FuaXNhdGlvbkVsZW1lbnRzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NTRlYTgwMyZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9PcmdhbmlzYXRpb25FbGVtZW50cy52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDU0ZWE4MDNcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0NTRlYTgwMycsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQ1NGVhODAzJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9PcmdhbmlzYXRpb25FbGVtZW50cy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDU0ZWE4MDMmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc0NTRlYTgwMycsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI4MzllMDk4JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL09yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIyODM5ZTA5OFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzI4MzllMDk4JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMjgzOWUwOTgnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL09yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yODM5ZTA5OCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzI4MzllMDk4JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWVmNmQzMTJhJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvRG9jdW1lbnRMaW5rLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJlZjZkMzEyYVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2VmNmQzMTJhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZWY2ZDMxMmEnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZWY2ZDMxMmEmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdlZjZkMzEyYScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Y2JlODc2ZDAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlY2lwaWVudENvdW50cnlCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlY2lwaWVudENvdW50cnlCdWRnZXQudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImNiZTg3NmQwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnY2JlODc2ZDAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdjYmU4NzZkMCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVjaXBpZW50Q291bnRyeUJ1ZGdldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Y2JlODc2ZDAmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdjYmU4NzZkMCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVwb3J0aW5nT3JnQnVkZ2V0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yNDY3ZDJmMSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVwb3J0aW5nT3JnQnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1JlcG9ydGluZ09yZ0J1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1JlcG9ydGluZ09yZ0J1ZGdldC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiMjQ2N2QyZjFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCcyNDY3ZDJmMScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzI0NjdkMmYxJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9SZXBvcnRpbmdPcmdCdWRnZXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI0NjdkMmYxJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignMjQ2N2QyZjEnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1JlcG9ydGluZ09yZ2FuaXNhdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Njk5OWFlZTImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1JlcG9ydGluZ09yZ2FuaXNhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZXBvcnRpbmdPcmdhbmlzYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL29yZ2FuaXNhdGlvbi9lbGVtZW50cy9SZXBvcnRpbmdPcmdhbmlzYXRpb24udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjY5OTlhZWUyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNjk5OWFlZTInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc2OTk5YWVlMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02OTk5YWVlMiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzY5OTlhZWUyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9SZXBvcnRpbmdSZWdpb25CdWRnZXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTg1YzlkYzNlJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9SZXBvcnRpbmdSZWdpb25CdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVwb3J0aW5nUmVnaW9uQnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvUmVwb3J0aW5nUmVnaW9uQnVkZ2V0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI4NWM5ZGMzZVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzg1YzlkYzNlJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnODVjOWRjM2UnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlcG9ydGluZ1JlZ2lvbkJ1ZGdldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ODVjOWRjM2UmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc4NWM5ZGMzZScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vVG90YWxCdWRnZXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQzYzBkMzNhJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Ub3RhbEJ1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Ub3RhbEJ1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvb3JnYW5pc2F0aW9uL2VsZW1lbnRzL1RvdGFsQnVkZ2V0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCJkM2MwZDMzYVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJ2QzYzBkMzNhJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnZDNjMGQzM2EnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RvdGFsQnVkZ2V0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kM2MwZDMzYSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2QzYzBkMzNhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NjU1Zjk1MSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vVG90YWxFeHBlbmRpdHVyZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9vcmdhbmlzYXRpb24vZWxlbWVudHMvVG90YWxFeHBlbmRpdHVyZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiNDY1NWY5NTFcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc0NjU1Zjk1MScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzQ2NTVmOTUxJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9Ub3RhbEV4cGVuZGl0dXJlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NjU1Zjk1MSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzQ2NTVmOTUxJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9QYXNzd29yZFJlY292ZXJ5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03MDM4NWRhM1wiXG5jb25zdCBzY3JpcHQgPSB7fVxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3Jlc2V0L1Bhc3N3b3JkUmVjb3ZlcnkudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjcwMzg1ZGEzXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNzAzODVkYTMnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3MDM4NWRhMycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUGFzc3dvcmRSZWNvdmVyeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzAzODVkYTNcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNzAzODVkYTMnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1Jlc2V0UGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzZiNzY0YmImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1Jlc2V0UGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vUmVzZXRQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBcIi4vUmVzZXRQYWdlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM2Yjc2NGJiJmxhbmc9c2Nzc1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3MvcmVzZXQvUmVzZXRQYWdlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIzNmI3NjRiYlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzM2Yjc2NGJiJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMzZiNzY0YmInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Jlc2V0UGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzZiNzY0YmImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCczNmI3NjRiYicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVzZXRQYXNzd29yZC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDViNDJjYzcmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1Jlc2V0UGFzc3dvcmQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1Jlc2V0UGFzc3dvcmQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9yZXNldC9SZXNldFBhc3N3b3JkLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0NWI0MmNjN1wiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzQ1YjQyY2M3JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNDViNDJjYzcnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1Jlc2V0UGFzc3dvcmQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ1YjQyY2M3JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNDViNDJjYzcnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1NldHRpbmdEZWZhdWx0Rm9ybS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGQ4NjQ2NjcmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NldHRpbmdEZWZhdWx0Rm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc2V0dGluZy9TZXR0aW5nRGVmYXVsdEZvcm0udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjRkODY0NjY3XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNGQ4NjQ2NjcnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc0ZDg2NDY2NycsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ZDg2NDY2NyZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzRkODY0NjY3JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9TZXR0aW5nUGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ODFhN2ZkODYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NldHRpbmdQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9TZXR0aW5nUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3NldHRpbmcvU2V0dGluZ1BhZ2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjgxYTdmZDg2XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnODFhN2ZkODYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc4MWE3ZmQ4NicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU2V0dGluZ1BhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgxYTdmZDg2JnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignODFhN2ZkODYnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1NldHRpbmdQdWJsaXNoaW5nRm9ybS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjMwNzczMDUmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NldHRpbmdQdWJsaXNoaW5nRm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2V0dGluZ1B1Ymxpc2hpbmdGb3JtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc2V0dGluZy9TZXR0aW5nUHVibGlzaGluZ0Zvcm0udnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjYzMDc3MzA1XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNjMwNzczMDUnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc2MzA3NzMwNScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vU2V0dGluZ1B1Ymxpc2hpbmdGb3JtLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02MzA3NzMwNSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzYzMDc3MzA1JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9PcmdhbmlzYXRpb25MaXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03NWI5OTA2MCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vT3JnYW5pc2F0aW9uTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9PcmdhbmlzYXRpb25MaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zdXBlcmFkbWluL09yZ2FuaXNhdGlvbkxpc3QudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjc1Yjk5MDYwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNzViOTkwNjAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc3NWI5OTA2MCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vT3JnYW5pc2F0aW9uTGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzViOTkwNjAmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc3NWI5OTA2MCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWRtaW5CYXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ1OTRhY2Q1JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9BZG1pbkJhci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9BZG1pbkJhci52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvc3VwZXJhZG1pbi9jb21wb25lbnRzL0FkbWluQmFyLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI0NTk0YWNkNVwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzQ1OTRhY2Q1JywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNDU5NGFjZDUnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FkbWluQmFyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NTk0YWNkNSZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzQ1OTRhY2Q1JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9UYWJsZUxpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1YjI2MzRiJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UYWJsZUxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIlxuZXhwb3J0ICogZnJvbSBcIi4vVGFibGVMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy9zdXBlcmFkbWluL2NvbXBvbmVudHMvVGFibGVMaXN0LnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCIwNWIyNjM0YlwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzA1YjI2MzRiJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnMDViMjYzNGInLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1RhYmxlTGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MDViMjYzNGImdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcwNWIyNjM0YicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vQWJvdXRQYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZDlmYTkwNFwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Fib3V0UGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQWJvdXRQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0Fib3V0UGFnZS52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiN2Q5ZmE5MDRcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3ZDlmYTkwNCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzdkOWZhOTA0JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BYm91dFBhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTdkOWZhOTA0XCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzdkOWZhOTA0JywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9FbWFpbFZlcmlmaWNhdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2NkYTVjMTkmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9FbWFpbFZlcmlmaWNhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9FbWFpbFZlcmlmaWNhdGlvbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiN2NkYTVjMTlcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCc3Y2RhNWMxOScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJzdjZGE1YzE5JywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FbWFpbFZlcmlmaWNhdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2NkYTVjMTkmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc3Y2RhNWMxOScsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSWF0aVJlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MTdlNjMyYTYmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0lhdGlSZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0lhdGlSZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IFwiQHZ1ZWZvcm0vbXVsdGlzZWxlY3QvdGhlbWVzL2RlZmF1bHQuY3NzP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmbGFuZz1jc3NcIlxuaW1wb3J0IFwiLi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0xJmlkPTE3ZTYzMmE2Jmxhbmc9c2Nzc1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlSZWdpc3RlclBhZ2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjE3ZTYzMmE2XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMTdlNjMyYTYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcxN2U2MzJhNicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vSWF0aVJlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MTdlNjMyYTYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcxN2U2MzJhNicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vSWF0aVN0YW5kYXJkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNjg0OTRkMCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vSWF0aVN0YW5kYXJkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10cyZzZXR1cD10cnVlXCJcbmV4cG9ydCAqIGZyb20gXCIuL0lhdGlTdGFuZGFyZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHMmc2V0dXA9dHJ1ZVwiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL0lhdGlTdGFuZGFyZC52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiZTY4NDk0ZDBcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdlNjg0OTRkMCcsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2U2ODQ5NGQwJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9JYXRpU3RhbmRhcmQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWU2ODQ5NGQwJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignZTY4NDk0ZDAnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1B1Ymxpc2hpbmdDaGVja2xpc3QudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWRjYTY5Mzk2JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1B1Ymxpc2hpbmdDaGVja2xpc3QudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImRjYTY5Mzk2XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZGNhNjkzOTYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdkY2E2OTM5NicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUHVibGlzaGluZ0NoZWNrbGlzdC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZGNhNjkzOTYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCdkY2E2OTM5NicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MjI2NjIwMCZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9SZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IFwiQHZ1ZWZvcm0vbXVsdGlzZWxlY3QvdGhlbWVzL2RlZmF1bHQuY3NzP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmbGFuZz1jc3NcIlxuaW1wb3J0IFwiLi9SZWdpc3RlclBhZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTEmaWQ9NTIyNjYyMDAmbGFuZz1zY3NzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvUmVnaXN0ZXJQYWdlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1MjI2NjIwMFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzUyMjY2MjAwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNTIyNjYyMDAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1JlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTIyNjYyMDAmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCc1MjI2NjIwMCcsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vU3VwcG9ydFBhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU2ZmZmOTgwJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9TdXBwb3J0UGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHMmc2V0dXA9dHJ1ZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9TdXBwb3J0UGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHMmc2V0dXA9dHJ1ZVwiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL1N1cHBvcnRQYWdlLnZ1ZVwiXV0pXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICBfX2V4cG9ydHNfXy5fX2htcklkID0gXCI1NmZmZjk4MFwiXG4gIGNvbnN0IGFwaSA9IF9fVlVFX0hNUl9SVU5USU1FX19cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIWFwaS5jcmVhdGVSZWNvcmQoJzU2ZmZmOTgwJywgX19leHBvcnRzX18pKSB7XG4gICAgYXBpLnJlbG9hZCgnNTZmZmY5ODAnLCBfX2V4cG9ydHNfXylcbiAgfVxuICBcbiAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1N1cHBvcnRQYWdlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01NmZmZjk4MCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzU2ZmZmOTgwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9XZWxjb21lUGFnZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZWFlNDQ4NWFcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9XZWxjb21lUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIlxuZXhwb3J0ICogZnJvbSBcIi4vV2VsY29tZVBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvV2VsY29tZVBhZ2UudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcImVhZTQ0ODVhXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnZWFlNDQ4NWEnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCdlYWU0NDg1YScsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vV2VsY29tZVBhZ2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWVhZTQ0ODVhXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJ2VhZTQ0ODVhJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9BZG1pbkZvb3Rlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTVmOWI0YmImdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FkbWluRm9vdGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10cyZzZXR1cD10cnVlXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FkbWluRm9vdGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10cyZzZXR1cD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX2ZpbGUnLFwicmVzb3VyY2VzL2Fzc2V0cy9qcy92aWV3cy93ZWIvcGFydGlhbHMvQWRtaW5Gb290ZXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjU1ZjliNGJiXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnNTVmOWI0YmInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCc1NWY5YjRiYicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQWRtaW5Gb290ZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU1ZjliNGJiJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignNTVmOWI0YmInLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL0pvaW5Ob3cudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI2OWY1MDg2JnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Kb2luTm93LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Kb2luTm93LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5cbmltcG9ydCBleHBvcnRDb21wb25lbnQgZnJvbSBcIi9ob21lL21vbWlrL1lJL2lhdGlwdWJsaXNoZXIvbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanNcIlxuY29uc3QgX19leHBvcnRzX18gPSAvKiNfX1BVUkVfXyovZXhwb3J0Q29tcG9uZW50KHNjcmlwdCwgW1sncmVuZGVyJyxyZW5kZXJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL0pvaW5Ob3cudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjI2OWY1MDg2XCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjY5ZjUwODYnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyNjlmNTA4NicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vSm9pbk5vdy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjY5ZjUwODYmdHM9dHJ1ZVwiLCAoKSA9PiB7XG4gICAgYXBpLnJlcmVuZGVyKCcyNjlmNTA4NicsIHJlbmRlcilcbiAgfSlcblxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IF9fZXhwb3J0c19fIiwiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIi4vU2lnbkluLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMTg2MWYzZSZzY29wZWQ9dHJ1ZSZ0cz10cnVlXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2lnbkluLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9TaWduSW4udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcblxuaW1wb3J0IFwiLi9TaWduSW4udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YTE4NjFmM2UmbGFuZz1zY3NzJnNjb3BlZD10cnVlXCJcblxuaW1wb3J0IGV4cG9ydENvbXBvbmVudCBmcm9tIFwiL2hvbWUvbW9taWsvWUkvaWF0aXB1Ymxpc2hlci9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2V4cG9ydEhlbHBlci5qc1wiXG5jb25zdCBfX2V4cG9ydHNfXyA9IC8qI19fUFVSRV9fKi9leHBvcnRDb21wb25lbnQoc2NyaXB0LCBbWydyZW5kZXInLHJlbmRlcl0sWydfX3Njb3BlSWQnLFwiZGF0YS12LWExODYxZjNlXCJdLFsnX19maWxlJyxcInJlc291cmNlcy9hc3NldHMvanMvdmlld3Mvd2ViL3BhcnRpYWxzL1NpZ25Jbi52dWVcIl1dKVxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgX19leHBvcnRzX18uX19obXJJZCA9IFwiYTE4NjFmM2VcIlxuICBjb25zdCBhcGkgPSBfX1ZVRV9ITVJfUlVOVElNRV9fXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFhcGkuY3JlYXRlUmVjb3JkKCdhMTg2MWYzZScsIF9fZXhwb3J0c19fKSkge1xuICAgIGFwaS5yZWxvYWQoJ2ExODYxZjNlJywgX19leHBvcnRzX18pXG4gIH1cbiAgXG4gIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9TaWduSW4udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWExODYxZjNlJnNjb3BlZD10cnVlJnRzPXRydWVcIiwgKCkgPT4ge1xuICAgIGFwaS5yZXJlbmRlcignYTE4NjFmM2UnLCByZW5kZXIpXG4gIH0pXG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBfX2V4cG9ydHNfXyIsImltcG9ydCB7IHJlbmRlciB9IGZyb20gXCIuL1dlYkZvb3Rlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjBkMTA2ODAmdHM9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1dlYkZvb3Rlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHMmc2V0dXA9dHJ1ZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9XZWJGb290ZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzJnNldHVwPXRydWVcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJGb290ZXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjIwZDEwNjgwXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMjBkMTA2ODAnLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcyMGQxMDY4MCcsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vV2ViRm9vdGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yMGQxMDY4MCZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzIwZDEwNjgwJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiLi9XZWJIZWFkZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTEwYzllMGIyJnRzPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9XZWJIZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1dlYkhlYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIlxuXG5pbXBvcnQgZXhwb3J0Q29tcG9uZW50IGZyb20gXCIvaG9tZS9tb21pay9ZSS9pYXRpcHVibGlzaGVyL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvZXhwb3J0SGVscGVyLmpzXCJcbmNvbnN0IF9fZXhwb3J0c19fID0gLyojX19QVVJFX18qL2V4cG9ydENvbXBvbmVudChzY3JpcHQsIFtbJ3JlbmRlcicscmVuZGVyXSxbJ19fZmlsZScsXCJyZXNvdXJjZXMvYXNzZXRzL2pzL3ZpZXdzL3dlYi9wYXJ0aWFscy9XZWJIZWFkZXIudnVlXCJdXSlcbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIF9fZXhwb3J0c19fLl9faG1ySWQgPSBcIjEwYzllMGIyXCJcbiAgY29uc3QgYXBpID0gX19WVUVfSE1SX1JVTlRJTUVfX1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghYXBpLmNyZWF0ZVJlY29yZCgnMTBjOWUwYjInLCBfX2V4cG9ydHNfXykpIHtcbiAgICBhcGkucmVsb2FkKCcxMGM5ZTBiMicsIF9fZXhwb3J0c19fKVxuICB9XG4gIFxuICBtb2R1bGUuaG90LmFjY2VwdChcIi4vV2ViSGVhZGVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xMGM5ZTBiMiZ0cz10cnVlXCIsICgpID0+IHtcbiAgICBhcGkucmVyZW5kZXIoJzEwYzllMGIyJywgcmVuZGVyKVxuICB9KVxuXG59XG5cblxuZXhwb3J0IGRlZmF1bHQgX19leHBvcnRzX18iLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWRtaW5IZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWRtaW5IZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9CcmVhZENydW1iLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9CcmVhZENydW1iLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0J1dHRvbkNvbXBvbmVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQnV0dG9uQ29tcG9uZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Rlc2NyaXB0aW9uRm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVzY3JpcHRpb25Gb3JtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Vycm9yTWVzc2FnZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FcnJvck1lc3NhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FcnJvclBvcFVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Vycm9yUG9wVXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Ib3ZlclRleHQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0hvdmVyVGV4dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Mb2FkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0xvYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9OYXZEcm9wZG93bi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTmF2RHJvcGRvd24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUG9wdXBNb2RhbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUG9wdXBNb2RhbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SYWRpYWxQcm9ncmVzc0Jhci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmFkaWFsUHJvZ3Jlc3NCYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGFibGVQYWdpbmF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UYWJsZVBhZ2luYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVG9hc3RNZXNzYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RvYXN0TWVzc2FnZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0RlbGV0ZUJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EZWxldGVCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9MaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9MaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1B1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1VuUHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9VblB1Ymxpc2hCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EZWxldGVBY3Rpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVsZXRlQWN0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JMaXN0cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FcnJvckxpc3RzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSGF2ZU5vdEFkZGVkWWV0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9IYXZlTm90QWRkZWRZZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3JnYW5pemF0aW9uUHVibGlzaFVucHVibGlzaEJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Pcmdhbml6YXRpb25QdWJsaXNoVW5wdWJsaXNoQnV0dG9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGFnZVRpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUHJvZ3Jlc3NMb2FkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUHJvZ3Jlc3NMb2FkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TdGlja3lFcnJvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU3RpY2t5RXJyb3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRWxlbWVudFN0YXR1cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FbGVtZW50U3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUHJldmlvdXNseVB1Ymxpc2hlZC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QcmV2aW91c2x5UHVibGlzaGVkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlEZWZhdWx0VmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0eURldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlEZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlJbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdHlJbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9DcmVhdGVNb2RhbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQ3JlYXRlTW9kYWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQnVsa1B1Ymxpc2hpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQnVsa1B1Ymxpc2hpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FcnJvckl0ZW0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRXJyb3JJdGVtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUHVibGlzaFNlbGVjdGVkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1B1Ymxpc2hTZWxlY3RlZC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlZnJlc2hUb2FzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWZyZXNoVG9hc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9WYWxpZGF0aW9uRXJyb3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1ZhbGlkYXRpb25FcnJvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0eURhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5RGF0ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Db25kaXRpb25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Db25kaXRpb25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0NvbnRhY3RJbmZvLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Db250YWN0SW5mby52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSHVtYW5pdGFyaWFuU2NvcGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSHVtYW5pdGFyaWFuU2NvcGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JYXRpSWRlbnRpZmllci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSWF0aUlkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTGVnYWN5RGF0YS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTGVnYWN5RGF0YS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Mb2NhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTG9jYXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3RoZXJJZGVudGlmaWVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9PdGhlcklkZW50aWZpZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGFydGljaXBhdGluZ09yZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGFydGljaXBhdGluZ09yZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QbGFubmVkRGlzYnVyc2VtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BsYW5uZWREaXNidXJzZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Qb2xpY3lNYXJrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BvbGljeU1hcmtlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlY2lwaWVudFJlZ2lvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRSZWdpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWxhdGVkQWN0aXZpdHkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlbGF0ZWRBY3Rpdml0eS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXBvcnRpbmdPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVwb3J0aW5nT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzdWx0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXN1bHQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2VjdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TZWN0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGFnLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UYWcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RpdGxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RyYW5zYWN0aW9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVHJhbnNhY3Rpb25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0luZGljYXRvckRldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW5kaWNhdG9yRGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0luZGljYXRvckxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0luZGljYXRvckxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWdncmVnYXRpb25TdGF0dXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FnZ3JlZ2F0aW9uU3RhdHVzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Jhc2VsaW5lLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9CYXNlbGluZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRGVzY3JpcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW5kaWNhdG9yQXNjZW5kaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JbmRpY2F0b3JBc2NlbmRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTWVhc3VyZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vTWVhc3VyZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QZXJpb2QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BlcmlvZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWZlcmVuY2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlZmVyZW5jZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0aXZpdGllc0VsZW1lbnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXRpZXNFbGVtZW50cy52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BY3Rpdml0eUVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BZGRBY3Rpdml0eUJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWRkQWN0aXZpdHlCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRG93bmxvYWRBY3Rpdml0eUJ1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FbGVtZW50c05vdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0VsZW1lbnRzTm90ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FbXB0eUFjdGl2aXR5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FbXB0eUFjdGl2aXR5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1BhZ2VUaXRsZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QYWdlVGl0bGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TaWRlYmFySGVscEJsb2NrLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TaWRlYmFySGVscEJsb2NrLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RhYmxlTGF5b3V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RhYmxlTGF5b3V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGVyaW9kc0RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGVyaW9kc0RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QZXJpb2RzTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUGVyaW9kc0xpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWN0dWFsVmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdHVhbFZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RhcmdldFZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UYXJnZXRWYWx1ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXN1bHREZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc3VsdERldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXN1bHRFbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXN1bHRFbGVtZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc3VsdExpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc3VsdExpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRG9jdW1lbnRMaW5rLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW5kaWNhdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JbmRpY2F0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVmZXJlbmNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWZlcmVuY2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzdWx0VHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzdWx0VHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UaXRsZURlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UaXRsZURlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RyYW5zYWN0aW9uRGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvbkRldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvbkVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RyYW5zYWN0aW9uRWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RyYW5zYWN0aW9uTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BaWRUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BaWRUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Rlc2NyaXB0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EZXNjcmlwdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EaXNidXJzZW1lbnRDaGFubmVsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9EaXNidXJzZW1lbnRDaGFubmVsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0ZpbmFuY2VUeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9GaW5hbmNlVHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9GbG93VHlwZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vRmxvd1R5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUHJvdmlkZXJPcmdhbml6YXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Byb3ZpZGVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlY2VpdmVyT3JnYW5pemF0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNlaXZlck9yZ2FuaXphdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRDb3VudHJ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlY2lwaWVudFJlZ2lvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVjaXBpZW50UmVnaW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NlY3Rvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2VjdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RpZWRTdGF0dXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RpZWRTdGF0dXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVHJhbnNhY3Rpb25EYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvbkRhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVHJhbnNhY3Rpb25UeXBlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9UcmFuc2FjdGlvblR5cGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVmFsdWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1ZhbHVlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5VXBsb2FkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FjdGl2aXR5VXBsb2FkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW1wb3J0TGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JbXBvcnRMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW1wb3J0UGxhY2Vob2xkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vSW1wb3J0UGxhY2Vob2xkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9MaXN0RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9MaXN0RWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL09yZ2FuaXNhdGlvbkRhdGEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL09yZ2FuaXNhdGlvbkRhdGEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3JnYW5pc2F0aW9uRWxlbWVudHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9PcmdhbmlzYXRpb25FbGVtZW50c0RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0RvY3VtZW50TGluay52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Eb2N1bWVudExpbmsudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZWNpcGllbnRDb3VudHJ5QnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlY2lwaWVudENvdW50cnlCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXBvcnRpbmdPcmdCdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVwb3J0aW5nT3JnQnVkZ2V0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVwb3J0aW5nT3JnYW5pc2F0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlcG9ydGluZ09yZ2FuaXNhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlcG9ydGluZ1JlZ2lvbkJ1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9SZXBvcnRpbmdSZWdpb25CdWRnZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Ub3RhbEJ1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Ub3RhbEJ1ZGdldC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RvdGFsRXhwZW5kaXR1cmUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVG90YWxFeHBlbmRpdHVyZS52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc2V0UGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVzZXRQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc2V0UGFzc3dvcmQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1Jlc2V0UGFzc3dvcmQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2V0dGluZ0RlZmF1bHRGb3JtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9TZXR0aW5nRGVmYXVsdEZvcm0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2V0dGluZ1BhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NldHRpbmdQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NldHRpbmdQdWJsaXNoaW5nRm9ybS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2V0dGluZ1B1Ymxpc2hpbmdGb3JtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL09yZ2FuaXNhdGlvbkxpc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZzZXR1cD10cnVlJmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vT3JnYW5pc2F0aW9uTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FkbWluQmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0FkbWluQmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vVGFibGVMaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1RhYmxlTGlzdC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0VtYWlsVmVyaWZpY2F0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9FbWFpbFZlcmlmaWNhdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JYXRpUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0lhdGlTdGFuZGFyZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHMmc2V0dXA9dHJ1ZVwiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9JYXRpU3RhbmRhcmQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzJnNldHVwPXRydWVcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9QdWJsaXNoaW5nQ2hlY2tsaXN0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1JlZ2lzdGVyUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vUmVnaXN0ZXJQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1N1cHBvcnRQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10cyZzZXR1cD10cnVlXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1N1cHBvcnRQYWdlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10cyZzZXR1cD10cnVlXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWRtaW5Gb290ZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzJnNldHVwPXRydWVcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vQWRtaW5Gb290ZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzJnNldHVwPXRydWVcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Kb2luTm93LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9Kb2luTm93LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1NpZ25Jbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC02IS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vU2lnbkluLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz10c1wiIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1dlYkZvb3Rlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHMmc2V0dXA9dHJ1ZVwiOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9XZWJGb290ZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzJnNldHVwPXRydWVcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTYhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9XZWJIZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPXRzXCI7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTUudXNlWzBdIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90cy1sb2FkZXIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNiEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL1dlYkhlYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9dHNcIiIsImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC01LnVzZVswXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL0Fib3V0UGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9BYm91dFBhZ2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9XZWxjb21lUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIjsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNS51c2VbMF0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9XZWxjb21lUGFnZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIiIsInZhciBtYXAgPSB7XG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9hY3Rpdml0eV9kYXRlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X2RhdGUuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9hY3Rpdml0eV9zY29wZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9hY3Rpdml0eV9zY29wZS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2FjdGl2aXR5X3N0YXR1cy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9hY3Rpdml0eV9zdGF0dXMuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9idWRnZXQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvYnVkZ2V0LnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvYnVpbGRpbmcuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvYnVpbGRpbmcuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9jYXBpdGFsX3NwZW5kLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2NhcGl0YWxfc3BlbmQuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9jb2xsYWJvcmF0aW9uX3R5cGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvY29sbGFib3JhdGlvbl90eXBlLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvY29uZGl0aW9ucy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9jb25kaXRpb25zLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvY29udGFjdF9pbmZvLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2NvbnRhY3RfaW5mby5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2NvdW50cnlfYnVkZ2V0X2l0ZW1zLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2NvdW50cnlfYnVkZ2V0X2l0ZW1zLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvY3JzLWFkZC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9jcnMtYWRkLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvZGVmYXVsdF9haWRfdHlwZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2FpZF90eXBlLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvZGVmYXVsdF9maW5hbmNlX3R5cGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvZGVmYXVsdF9maW5hbmNlX3R5cGUuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2Zsb3dfdHlwZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9kZWZhdWx0X2Zsb3dfdHlwZS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2Rlc2NyaXB0aW9uLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2Rlc2NyaXB0aW9uLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvZG9jdW1lbnRfbGluay5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9kb2N1bWVudF9saW5rLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvaHVtYW5pdGFyaWFuX3Njb3BlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL2h1bWFuaXRhcmlhbl9zY29wZS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL2lhdGlfaWRlbnRpZmllci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9pYXRpX2lkZW50aWZpZXIuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9pbmRpY2F0b3Iuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvaW5kaWNhdG9yLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvbGVnYWN5X2RhdGEuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvbGVnYWN5X2RhdGEuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9sb2NhdGlvbi5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9sb2NhdGlvbi5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL290aGVyX2lkZW50aWZpZXIuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvb3RoZXJfaWRlbnRpZmllci5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3BhcnRpY2lwYXRpbmdfb3JnLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3BhcnRpY2lwYXRpbmdfb3JnLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvcGVyaW9kLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3BlcmlvZC5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3BsYW5uZWRfZGlzYnVyc2VtZW50LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3BsYW5uZWRfZGlzYnVyc2VtZW50LnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvcG9saWN5X21hcmtlci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9wb2xpY3lfbWFya2VyLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvcmVjaXBpZW50X2NvdW50cnkuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcmVjaXBpZW50X2NvdW50cnkuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9yZWNpcGllbnRfcmVnaW9uLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3JlY2lwaWVudF9yZWdpb24uc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9yZWxhdGVkX2FjdGl2aXR5LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3JlbGF0ZWRfYWN0aXZpdHkuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9yZXBvcnRpbmdfb3JnLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3JlcG9ydGluZ19vcmcuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy9yZXN1bHQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYWN0aXZpdHktZWxlbWVudHMvcmVzdWx0LnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvcmVzdWx0cy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy9yZXN1bHRzLnN2Z1wiLFxuXHRcIi4vYWN0aXZpdHktZWxlbWVudHMvc2VjdG9yLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FjdGl2aXR5LWVsZW1lbnRzL3NlY3Rvci5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3RhZy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy90YWcuc3ZnXCIsXG5cdFwiLi9hY3Rpdml0eS1lbGVtZW50cy90aXRsZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy90aXRsZS5zdmdcIixcblx0XCIuL2FjdGl2aXR5LWVsZW1lbnRzL3RyYW5zYWN0aW9ucy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hY3Rpdml0eS1lbGVtZW50cy90cmFuc2FjdGlvbnMuc3ZnXCIsXG5cdFwiLi9hZGQtbW9yZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hZGQtbW9yZS5zdmdcIixcblx0XCIuL2FkZC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hZGQuc3ZnXCIsXG5cdFwiLi9hbGVydC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hbGVydC5zdmdcIixcblx0XCIuL2FsaWduLWNlbnRlci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hbGlnbi1jZW50ZXIuc3ZnXCIsXG5cdFwiLi9hbGlnbi1yaWdodC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hbGlnbi1yaWdodC5zdmdcIixcblx0XCIuL2FwcHJvdmVkLWNsb3VkLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2FwcHJvdmVkLWNsb3VkLnN2Z1wiLFxuXHRcIi4vYXJyb3ctZG93bi5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hcnJvdy1kb3duLnN2Z1wiLFxuXHRcIi4vYXJyb3ctbGVmdC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9hcnJvdy1sZWZ0LnN2Z1wiLFxuXHRcIi4vYXJyb3ctcmlnaHQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYXJyb3ctcmlnaHQuc3ZnXCIsXG5cdFwiLi9hcnJvdy1zaG9ydC1sZWZ0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Fycm93LXNob3J0LWxlZnQuc3ZnXCIsXG5cdFwiLi9hc2NlbmRpbmctYXJyb3cuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvYXNjZW5kaW5nLWFycm93LnN2Z1wiLFxuXHRcIi4vYmlsbC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9iaWxsLnN2Z1wiLFxuXHRcIi4vYm94LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2JveC5zdmdcIixcblx0XCIuL2J1ZGdldC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9idWRnZXQuc3ZnXCIsXG5cdFwiLi9idWlsZGluZy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9idWlsZGluZy5zdmdcIixcblx0XCIuL2NhbmNlbC1jbG91ZC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jYW5jZWwtY2xvdWQuc3ZnXCIsXG5cdFwiLi9jaGVjay1jaXJjbGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvY2hlY2stY2lyY2xlLnN2Z1wiLFxuXHRcIi4vY2hlY2tib3guc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvY2hlY2tib3guc3ZnXCIsXG5cdFwiLi9jaGVja2VkLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2NoZWNrZWQuc3ZnXCIsXG5cdFwiLi9jaGV2cm9uLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2NoZXZyb24uc3ZnXCIsXG5cdFwiLi9jbG9zZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jbG9zZS5zdmdcIixcblx0XCIuL2NvcHlyaWdodC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9jb3B5cmlnaHQuc3ZnXCIsXG5cdFwiLi9jb3JlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2NvcmUuc3ZnXCIsXG5cdFwiLi9kZWZhdWx0LTEuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZGVmYXVsdC0xLnN2Z1wiLFxuXHRcIi4vZGVmYXVsdC0yLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2RlZmF1bHQtMi5zdmdcIixcblx0XCIuL2RlbGV0ZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kZWxldGUuc3ZnXCIsXG5cdFwiLi9kZXNjZW5kaW5nLWFycm93LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2Rlc2NlbmRpbmctYXJyb3cuc3ZnXCIsXG5cdFwiLi9kb2N1bWVudC13cml0ZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kb2N1bWVudC13cml0ZS5zdmdcIixcblx0XCIuL2RvdWJsZS10aWNrLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2RvdWJsZS10aWNrLnN2Z1wiLFxuXHRcIi4vZG93bmxvYWQtZmlsZS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kb3dubG9hZC1maWxlLnN2Z1wiLFxuXHRcIi4vZG93bmxvYWQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZG93bmxvYWQuc3ZnXCIsXG5cdFwiLi9kcm9wZG93bi1hcnJvdy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9kcm9wZG93bi1hcnJvdy5zdmdcIixcblx0XCIuL2VkaXQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvZWRpdC5zdmdcIixcblx0XCIuL2V4dGVybmFsLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2V4dGVybmFsLnN2Z1wiLFxuXHRcIi4vZXllLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2V5ZS5zdmdcIixcblx0XCIuL2ZvbGRlci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9mb2xkZXIuc3ZnXCIsXG5cdFwiLi9mb290ZXItbG9nby5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9mb290ZXItbG9nby5zdmdcIixcblx0XCIuL2dyb3VwLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2dyb3VwLnN2Z1wiLFxuXHRcIi4vaGVhZGVyLWxvZ28uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvaGVhZGVyLWxvZ28uc3ZnXCIsXG5cdFwiLi9oZWFkcGhvbmUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvaGVhZHBob25lLnN2Z1wiLFxuXHRcIi4vaGVscC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9oZWxwLnN2Z1wiLFxuXHRcIi4vaGlzdG9yeS5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9oaXN0b3J5LnN2Z1wiLFxuXHRcIi4vaWMtdmVyaWZpY2F0aW9uLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL2ljLXZlcmlmaWNhdGlvbi5zdmdcIixcblx0XCIuL2xlZnQtYXJyb3cuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbGVmdC1hcnJvdy5zdmdcIixcblx0XCIuL2xvZ28td2hpdGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbG9nby13aGl0ZS5zdmdcIixcblx0XCIuL2xvZ28uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvbG9nby5zdmdcIixcblx0XCIuL2xvZ291dC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9sb2dvdXQuc3ZnXCIsXG5cdFwiLi9tYWlsLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL21haWwuc3ZnXCIsXG5cdFwiLi9tb29uLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL21vb24uc3ZnXCIsXG5cdFwiLi9ub3RlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL25vdGUuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvYnVpbGRpbmcuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2J1aWxkaW5nLnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL2Rlc2NyaXB0aW9uLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9kZXNjcmlwdGlvbi5zdmdcIixcblx0XCIuL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9kb2N1bWVudF9saW5rLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9kb2N1bWVudF9saW5rLnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL25hbWUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL25hbWUuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvb3JnX2lkZW50aWZpZXIuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL29yZ19pZGVudGlmaWVyLnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL29yZ2FuaXNhdGlvbl9pZGVudGlmaWVyLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdhbmlzYXRpb25faWRlbnRpZmllci5zdmdcIixcblx0XCIuL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9vcmdhbml6YXRpb25faWRlbnRpZmllci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvb3JnYW5pemF0aW9uX2lkZW50aWZpZXIuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVjaXBpZW50X2NvdW50cnlfYnVkZ2V0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZWNpcGllbnRfY291bnRyeV9idWRnZXQuc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvcmVjaXBpZW50X29yZ19idWRnZXQuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3JlY2lwaWVudF9vcmdfYnVkZ2V0LnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3JlY2lwaWVudF9yZWdpb25fYnVkZ2V0LnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZWNpcGllbnRfcmVnaW9uX2J1ZGdldC5zdmdcIixcblx0XCIuL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZXBvcnRpbmdfb3JnLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy9yZXBvcnRpbmdfb3JnLnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3JlcG9ydGluZ19vcmdhbmlzYXRpb24uc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3JlcG9ydGluZ19vcmdhbmlzYXRpb24uc3ZnXCIsXG5cdFwiLi9vcmdhbmlzYXRpb24tZWxlbWVudHMvdGl0bGUuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3RpdGxlLnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3RvdGFsX2J1ZGdldC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9vcmdhbmlzYXRpb24tZWxlbWVudHMvdG90YWxfYnVkZ2V0LnN2Z1wiLFxuXHRcIi4vb3JnYW5pc2F0aW9uLWVsZW1lbnRzL3RvdGFsX2V4cGVuZGl0dXJlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL29yZ2FuaXNhdGlvbi1lbGVtZW50cy90b3RhbF9leHBlbmRpdHVyZS5zdmdcIixcblx0XCIuL3BhbmVsLXNlYXJjaC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9wYW5lbC1zZWFyY2guc3ZnXCIsXG5cdFwiLi9wbHVzLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3BsdXMuc3ZnXCIsXG5cdFwiLi9wdWJsaXNoLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3B1Ymxpc2guc3ZnXCIsXG5cdFwiLi9wdy1sb2NrLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3B3LWxvY2suc3ZnXCIsXG5cdFwiLi9xdWVzdGlvbi1tYXJrLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3F1ZXN0aW9uLW1hcmsuc3ZnXCIsXG5cdFwiLi9yZWQtY3Jvc3Muc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcmVkLWNyb3NzLnN2Z1wiLFxuXHRcIi4vcmVkLWRvdC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9yZWQtZG90LnN2Z1wiLFxuXHRcIi4vcmVkby5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9yZWRvLnN2Z1wiLFxuXHRcIi4vcmlnaHQtYXJyb3cuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvcmlnaHQtYXJyb3cuc3ZnXCIsXG5cdFwiLi9zZWFyY2guc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvc2VhcmNoLnN2Z1wiLFxuXHRcIi4vc2V0dGluZy5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9zZXR0aW5nLnN2Z1wiLFxuXHRcIi4vc2hpZWxkLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3NoaWVsZC5zdmdcIixcblx0XCIuL3NtaWxlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3NtaWxlLnN2Z1wiLFxuXHRcIi4vc3Rhci5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy9zdGFyLnN2Z1wiLFxuXHRcIi4vdGljay5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy90aWNrLnN2Z1wiLFxuXHRcIi4vdGltZXMtY2lyY2xlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3RpbWVzLWNpcmNsZS5zdmdcIixcblx0XCIuL3R3aXR0ZXIuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvdHdpdHRlci5zdmdcIixcblx0XCIuL3VwbG9hZC1maWxlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3VwbG9hZC1maWxlLnN2Z1wiLFxuXHRcIi4vdXNlci1wcm9maWxlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3VzZXItcHJvZmlsZS5zdmdcIixcblx0XCIuL3VzZXIuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvdXNlci5zdmdcIixcblx0XCIuL3dhcm5pbmctYWN0aXZpdHkuc3ZnXCI6IFwiLi9yZXNvdXJjZXMvYXNzZXRzL2ltYWdlcy9zdmcvd2FybmluZy1hY3Rpdml0eS5zdmdcIixcblx0XCIuL3dhcm5pbmctZmlsbC5zdmdcIjogXCIuL3Jlc291cmNlcy9hc3NldHMvaW1hZ2VzL3N2Zy93YXJuaW5nLWZpbGwuc3ZnXCIsXG5cdFwiLi93YXJuaW5nLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3dhcm5pbmcuc3ZnXCIsXG5cdFwiLi95b3V0dWJlLnN2Z1wiOiBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnL3lvdXR1YmUuc3ZnXCJcbn07XG5cblxuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHZhciBpZCA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpO1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhpZCk7XG59XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8obWFwLCByZXEpKSB7XG5cdFx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRcdGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblx0XHR0aHJvdyBlO1xuXHR9XG5cdHJldHVybiBtYXBbcmVxXTtcbn1cbndlYnBhY2tDb250ZXh0LmtleXMgPSBmdW5jdGlvbiB3ZWJwYWNrQ29udGV4dEtleXMoKSB7XG5cdHJldHVybiBPYmplY3Qua2V5cyhtYXApO1xufTtcbndlYnBhY2tDb250ZXh0LnJlc29sdmUgPSB3ZWJwYWNrQ29udGV4dFJlc29sdmU7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tDb250ZXh0O1xud2VicGFja0NvbnRleHQuaWQgPSBcIi4vcmVzb3VyY2VzL2Fzc2V0cy9pbWFnZXMvc3ZnIHN5bmMgcmVjdXJzaXZlIF5cXFxcLlxcXFwvLiokXCI7IiwiLyogKGlnbm9yZWQpICovIl0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fZ2VuZXJhdG9yIiwiYm9keSIsIl8iLCJsYWJlbCIsInNlbnQiLCJ0IiwidHJ5cyIsIm9wcyIsImYiLCJ5IiwiZyIsInZlcmIiLCJTeW1ib2wiLCJpdGVyYXRvciIsIm4iLCJ2Iiwib3AiLCJUeXBlRXJyb3IiLCJjYWxsIiwicG9wIiwibGVuZ3RoIiwicHVzaCIsIl9faW1wb3J0RGVmYXVsdCIsIm1vZCIsIl9fZXNNb2R1bGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2dWVfMSIsInJlcXVpcmUiLCJ2dWVfMiIsImF4aW9zXzEiLCJjb3JlXzEiLCJDcmVhdGVNb2RhbF92dWVfMSIsIlRvYXN0TWVzc2FnZV92dWVfMSIsImRlZmluZUNvbXBvbmVudCIsIl9fbmFtZSIsInByb3BzIiwidXNlciIsInR5cGUiLCJyZXF1aXJlZCIsIm9yZ2FuaXphdGlvbiIsInZhbGlkYXRvciIsInN1cGVyQWRtaW4iLCJCb29sZWFuIiwic2V0dXAiLCJfX3Byb3BzIiwiX2EiLCJfdGhpcyIsIl9iIiwiZXhwb3NlIiwidHJhbnNsYXRpb24iLCJ3aW5kb3ciLCJzaG93VXNlckRyb3Bkb3duIiwicmVmIiwidG9hc3RWaXNpYmlsaXR5Iiwic2hvd1NpZGViYXIiLCJ0b2FzdE1lc3NhZ2UiLCJ0b2FzdFR5cGUiLCJkYXRhIiwicmVhY3RpdmUiLCJsYW5ndWFnZU5hdkxpQ2xhc3NlcyIsImxhbmd1YWdlTmF2QW5jaG9yQ2xhc3NlcyIsIm1lbnVOYXZMaUNsYXNzZXMiLCJtZW51TmF2QW5jaG9yQ2xhc3NlcyIsImxhbmd1YWdlcyIsImxhbmd1YWdlIiwicGVybWFsaW5rIiwiYWN0aXZlIiwibWVudXMiLCJuYW1lIiwiYWRtaW4iLCJoZWFkZXIiLCJhY3Rpdml0eV9kYXRhIiwib3JnYW5pc2F0aW9uX2RhdGEiLCJzZXR0aW5ncyIsImNvbW1vbl9sYW5nIiwiYWRkX2ltcG9ydF9hY3Rpdml0eSIsImxpQ2xhc3MiLCJfYyIsInVzZVRvZ2dsZSIsIm1vZGFsVmFsdWUiLCJtb2RhbFRvZ2dsZSIsInRvYXN0IiwibWVzc2FnZSIsInNldFRpbWVvdXQiLCJpc1RvdWNoRGV2aWNlIiwiY29tcHV0ZWQiLCJuYXZpZ2F0b3IiLCJtYXhUb3VjaFBvaW50cyIsIlRvZ2dsZU1vZGVsIiwibG9jYWxTdG9yYWdlIiwicmVtb3ZlSXRlbSIsIndhdGNoIiwic2lkZWJhciIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iiwic3R5bGUiLCJvdmVyZmxvdyIsImNoYW5nZUFjdGl2ZU1lbnUiLCJwYXRoIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImZvckVhY2giLCJtZW51Iiwia2V5IiwiaW5jbHVkZXMiLCJwYSIsInVzZVN0b3JhZ2UiLCJwdWJsaXNoaW5nQWN0aXZpdGllcyIsImdldEl0ZW0iLCJsb2dvdXQiLCJwb3N0IiwicmVzIiwic3RhdHVzIiwiaHJlZiIsInNlYXJjaFZhbHVlIiwiY3VycmVudFVSTCIsInF1ZXJ5U3RyaW5nIiwic2VhcmNoIiwidXJsUGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiZ2V0Iiwic3Bpbm5lciIsInNlYXJjaEZ1bmN0aW9uIiwidXJsIiwicGFyYW0iLCJyZXBsYWNlIiwic29ydGluZ1BhcmFtIiwicXVlcnlTdHJpbmdBcnIiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsImNvbmNhdCIsIm9uTW91bnRlZCIsIm9uVW5tb3VudGVkIiwiX19yZXR1cm5lZF9fIiwiQ3JlYXRlTW9kYWwiLCJUb2FzdCIsImVudW1lcmFibGUiLCJ0aXRsZV8xIiwiY29tcG9uZW50cyIsInRvUmVmcyIsImJyZWFkY3J1bWJEYXRhIiwiZ2V0QWN0aXZpdHlUaXRsZSIsInRleHQiLCJTdHJpbmciLCJpY29uIiwibGluayIsImJ0blR5cGUiLCJ2dWVfMyIsIkxvYWRlcl92dWVfMSIsImlzRW1wdHkiLCJzaG93IiwiaGFzRXJyb3JzIiwiZXJyb3JDb3VudCIsInRvYXN0RGF0YSIsImluamVjdCIsImVycm9yRGF0YSIsImFjY291bnRfdmVyaWZpZWQiLCJwdWJsaXNoZXJfYWN0aXZlIiwiZGVmYXVsdF9zZXR0aW5nIiwicHVibGlzaGVyX3NldHRpbmciLCJ0b2tlbl9zdGF0dXMiLCJpc0xvYWRlclZpc2libGUiLCJyZXNlbmRWZXJpZmljYXRpb25FbWFpbCIsInZpc2liaWxpdHkiLCJzdWNjZXNzIiwiZXJyb3IiLCJhbGwiLCJzcHJlYWQiLCJzZXR0aW5nX3JlcyIsInVzZXJfcmVzIiwib3JnX3JlcyIsInJlc3BvbnNlIiwidXNlcl9yZXNwb25zZSIsIm9yZ19yZXNwb25zZSIsImRlZmF1bHRfc3RhdHVzIiwicHVibGlzaGVyX3N0YXR1cyIsImdyb3VwZWRFcnJvciIsImluZGV4T2YiLCJ2YWx1ZXMiLCJUcmFuc2l0aW9uUm9vdCIsIkxvYWRlciIsIkFycmF5IiwidGl0bGUiLCJlbWl0cyIsImVtaXQiLCJjbG9zZSIsImhvdmVyVGV4dCIsIndpZHRoIiwicG9zaXRpb24iLCJpY29uU2l6ZSIsInNob3dJYXRpUmVmZXJlbmNlIiwiYnRuVGV4dCIsImJ0bkxpbmsiLCJtb2RhbEFjdGl2ZSIsInZ1ZTNfcmFkaWFsX3Byb2dyZXNzXzEiLCJSYWRpYWxQcm9ncmVzc0JhciIsInBlcmNlbnQiLCJOdW1iZXIiLCJjb21wbGV0ZWRQZXJjZW50IiwidG90YWxQZXJjZW50IiwiYWN0aXZlX3BhZ2UiLCJ1cGRhdGVBY3RpdmVQYWdlIiwicGFnZSIsImNoYW5nZVBhZ2UiLCJwYWdlTnVtIiwibGFzdF9wYWdlIiwibmV4dFBhZ2UiLCJwcmV2aW91c1BhZ2UiLCJjbGFzc05hbWUiLCJCdXR0b25Db21wb25lbnRfdnVlXzEiLCJQb3B1cE1vZGFsX3Z1ZV8xIiwiUHJvZ3Jlc3NMb2FkZXJfdnVlXzEiLCJpbmRleF8xIiwic3RvcmUiLCJ1c2VTdG9yZSIsImRlbGV0ZVZhbHVlIiwiZGVsZXRlVG9nZ2xlIiwibG9hZGVyIiwiZGVsZXRlRnVuY3Rpb24iLCJkZWxldGVFbmRQb2ludCIsInN0YXRlIiwic2VsZWN0ZWRBY3Rpdml0aWVzIiwicmVsb2FkIiwiQnRuQ29tcG9uZW50IiwiTW9kYWwiLCJkZXNpZ24iLCJzdHlsZVR5cGUiLCJjbGFzc2VzIiwic2hvd18xIiwibGlua2VkVG9JYXRpIiwiY29yZUNvbXBsZXRlZCIsImFjdGl2aXR5SWQiLCJkZXRhaWxTdG9yZSIsImlkIiwicHVibGlzaFZhbHVlIiwicHVibGlzaFRvZ2dsZSIsInB1Ymxpc2hTdGVwIiwiY29yZUVsZW1lbnRTdGF0dXMiLCJsb2FkZXJUZXh0IiwicmVzZXRQdWJsaXNoU3RlcCIsInB1Ymxpc2hTdGF0ZUNoYW5nZSIsInB1Ymxpc2hTdGF0ZSIsImRlc2NyaXB0aW9uIiwiYWxlcnRTdGF0ZSIsImNvcmVfY29tcGxldGVkX3RpdGxlIiwiY29yZV9jb21wbGV0ZWRfZGVzY3JpcHRpb24iLCJjb3JlX25vdF9jb21wbGV0ZWRfdGl0bGUiLCJjb3JlX25vdF9jb21wbGV0ZWRfZGVzY3JpcHRpb24iLCJzIiwic3RpY2t5IiwiY29tbW9uIiwiZGVzY3JpcHRpb25fMSIsInRpdGxlXzIiLCJkZXNjcmlwdGlvbl8yIiwidGl0bGVfMyIsImVyciIsImNyaXRpY2FsTnVtYmVyIiwiY3JpdGljYWwiLCJlcnJvcnMiLCJlcnJvck51bWJlciIsImFuZCIsIndhcm5pbmdOdW1iZXIiLCJ3YXJuaW5ncyIsImhhc19hdGxlYXN0X29uZV9jcml0aWNhbF9lcnJvciIsIndlX2hpZ2hseV9yZWNvbW1lbmQiLCJ3ZXJlX2ZvdW5kIiwidmlld19pbmZvcm1hdGlvbiIsInN0ZXBQbHVzT25lIiwic3RlcE1pbnVzT25lIiwidmFsaWRhdG9yRnVuY3Rpb24iLCJ2YWxpZGF0aW5nIiwiYWN0aXZpdHkiLCJkaXNwYXRjaCIsImNyaXQiLCJzdW1tYXJ5Iiwid2FybmluZyIsImNoZWNrUHVibGlzaCIsInB1Ymxpc2hGdW5jdGlvbiIsInB1Ymxpc2hpbmciLCJwdWJsaXNoU3RhdHVzIiwibGlua2VkX3RvX2lhdGkiLCJidXR0b25fbGFuZyIsInJlcHVibGlzaCIsInB1Ymxpc2giLCJ1bnB1Ymxpc2hWYWx1ZSIsInVucHVibGlzaFRvZ2dsZSIsInBsZWFzZV93YWl0IiwidW5QdWJsaXNoRnVuY3Rpb24iLCJ1bnB1Ymxpc2hpbmciLCJpdGVtSWQiLCJpdGVtVHlwZSIsImVycm9yVHlwZSIsImJnQ29sb3IiLCJpY29uQ29sb3IiLCJ0b2dnbGUiLCJhY2NvcmRpb25Ub2dnbGUiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJlbEhlaWdodCIsImNsaWVudEhlaWdodCIsImNzc1RleHQiLCJ1cGRhdGVFcnJvckNvdW50TWVzc2FnZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwiTGlua192dWVfMSIsIkJ0biIsIm1hbmRhdG9yeUVsZW1lbnRTdGF0dXMiLCJpc19wdWJsaXNoZWQiLCJCcmVhZENydW1iX3Z1ZV8xIiwiQnJlYWRjcnVtYiIsImJhY2tMaW5rIiwiY2hhbmdlVGV4dCIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsIkVycm9yTGlzdHNfdnVlXzEiLCJlcnJvclZhbHVlIiwiZXJyb3JUb2dnbGUiLCJ0ZW1wRGF0YSIsInVwZGF0ZVRlbXBNZXNzYWdlIiwiZXJyb3JEYXRhUHJvcHMiLCJfaSIsImVycm9yRGF0YVByb3BzXzEiLCJzZXZlcml0eSIsIkVycm9yTGlzdHMiLCJjb2xvciIsImNvbXBsZXRlZCIsIm5vdF9jb21wbGV0ZWQiLCJwcmV2aW91c2x5X3B1Ymxpc2hlZF9vbl9pYXRpIiwiX19hc3NpZ24iLCJhc3NpZ24iLCJpIiwiYXJndW1lbnRzIiwicCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwibXVsdGlzZWxlY3RfMSIsImN1cnJlbmNpZXMiLCJidWRnZXROb3RQcm92aWRlZCIsImh1bWFuaXRhcmlhbiIsImRlZmF1bHRWYWx1ZXMiLCJidWRnZXRfbm90X3Byb3ZpZGVkIiwiZGVmYXVsdF9jdXJyZW5jeSIsImRlZmF1bHRfbGFuZ3VhZ2UiLCJoaWVyYXJjaHkiLCJkZWZhdWx0RXJyb3JzIiwiZXJyb3JSZXNldCIsImRlZmF1bHREYXRhIiwibG9hZGVyVmlzaWJpbGl0eSIsInN1Ym1pdEZvcm0iLCJwdXQiLCJNdWx0aXNlbGVjdCIsIkluZGV4XzEiLCJIb3ZlclRleHRfdnVlXzEiLCJSYWRpYWxQcm9ncmVzc0Jhcl92dWVfMSIsIlB1Ymxpc2hCdXR0b25fdnVlXzEiLCJVblB1Ymxpc2hCdXR0b25fdnVlXzEiLCJEZWxldGVCdXR0b25fdnVlXzEiLCJTdGlja3lFcnJvcnNfdnVlXzEiLCJFcnJvclBvcFVwX3Z1ZV8xIiwiQWN0aXZpdGllc0VsZW1lbnRzX3Z1ZV8xIiwiQWN0aXZpdHlFbGVtZW50X3Z1ZV8xIiwiUHJldmlvdXNseVB1Ymxpc2hlZF92dWVfMSIsIkhvdmVyVGV4dCIsIlByb2dyZXNzQmFyIiwiRWxlbWVudHMiLCJBY3Rpdml0eUVsZW1lbnQiLCJSZXN1bHQiLCJQdWJsaXNoIiwiRXJyb3JzIiwiVW5QdWJsaXNoIiwiRGVsZXRlQnV0dG9uIiwiUHJldmlvdXNseVB1Ymxpc2hlZCIsIkVycm9yUG9wVXAiLCJlbGVtZW50cyIsImdyb3VwcyIsInByb2dyZXNzIiwidHlwZXMiLCJyZXN1bHRzIiwidHJhbnNhY3Rpb25zIiwiaWF0aVZhbGlkYXRvclJlc3BvbnNlIiwiaW5kZXhTdG9yZSIsInBvc2l0aW9uWSIsInNjcmVlbldpZHRoIiwiZG93bmxvYWRWYWx1ZSIsImRvd25sb2FkVG9nZ2xlIiwidG9nZ2xlU2lkZWJhciIsImhhbmRsZVNjcm9sbCIsInNjcm9sbFkiLCJpc3RvcFZpc2libGUiLCJpbm5lcldpZHRoIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNhbGNXaWR0aCIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsImlnbm9yZVRvYXN0VXBkYXRlIiwiX2QiLCJncm91cGVkRGF0YSIsImFjdGl2aXR5UHJvcHMiLCJhY3Rpdml0aWVzIiwiZWxlbWVudFByb3BzIiwic3RhdHVzUHJvcHMiLCJ0cmFuc2FjdGlvblByb3BzIiwia2V5cyIsIm1hcCIsImZsYWciLCJrIiwidG9TdHJpbmciLCJwYWdlVGl0bGUiLCJmb3VuZCIsImZpbmQiLCJjdXJyZW50TGFuZ3VhZ2UiLCJuYXJyYXRpdmUiLCJmb3JtYXRUaXRsZSIsImlnbm9yZVVwZGF0ZXMiLCJ3YXRjaElnbm9yYWJsZSIsInVuZGVmaW5lZCIsImZsdXNoIiwicHJvdmlkZSIsImFjdGl2aXRpZXNfbGFuZyIsInlvdXJfYWN0aXZpdGllcyIsInZhbGlkYXRpb25SZXN1bHQiLCJFbXB0eUFjdGl2aXR5X3Z1ZV8xIiwiVGFibGVMYXlvdXRfdnVlXzEiLCJUYWJsZVBhZ2luYXRpb25fdnVlXzEiLCJQYWdlVGl0bGVfdnVlXzEiLCJFcnJvck1lc3NhZ2VfdnVlXzEiLCJFbXB0eUFjdGl2aXR5IiwiUGFnZVRpdGxlIiwiUGFnaW5hdGlvbiIsIlRhYmxlTGF5b3V0IiwiRXJyb3JNZXNzYWdlIiwiaXNMb2FkaW5nIiwiZW5kcG9pbnQiLCJzaG93RW1wdHlUZW1wbGF0ZSIsInNob3dCdXR0b25zIiwic2hvd09ySGlkZSIsImZldGNoQWN0aXZpdGllcyIsInJlZnJlc2hUb2FzdE1zZyIsInJlZnJlc2hNZXNzYWdlVHlwZSIsInJlZnJlc2hNZXNzYWdlIiwiZm9ybURhdGEiLCJhY3Rpdml0eV9pZGVudGlmaWVyIiwiY2xvc2VNb2RhbCIsInN0b3JlQWN0aXZpdHkiLCJwYVN0b3JhZ2UiLCJoYXNGYWlsZWRBY3Rpdml0aWVzIiwiaWRzIiwiaW50ZXJ2YWxJRCIsImJ1bGtQdWJsaXNoU3RhdHVzIiwibmV3VmFsdWUiLCJjbGVhckludGVydmFsIiwiZmFpbGVkQWN0aXZpdGllcyIsInNldEludGVydmFsIiwib3JnYW5pemF0aW9uX2lkIiwiam9iX2JhdGNoX3V1aWQiLCJvcGVuIiwidG9nZ2xlV2luZG93IiwiY2xvc2VzdCIsImNsb3NlV2luZG93IiwibmVzdGVkT2JqZWN0IiwiZmFpbGVkQWN0aXZpdGllc0lEIiwiYXNBcnJheURhdGEiLCJlbnRyaWVzIiwiZmlsdGVyZWQiLCJmaWx0ZXIiLCJhY3Rpdml0eV9pZCIsImZhaWxlZEFjdGl2aXRpZXNEYXRhIiwiZnJvbUVudHJpZXMiLCJyZXRyeVB1Ymxpc2hpbmciLCJWYWxpZGF0aW9uRXJyb3JzX3Z1ZV8xIiwiQnVsa1B1Ymxpc2hpbmdfdnVlXzEiLCJwdWJsaXNoQWxlcnRWYWx1ZSIsInB1Ymxpc2hBbGVydFRvZ2dsZSIsImJ1bGtQdWJsaXNoU3RlcCIsInBvcFVwV2lkdGhDaGFuZ2UiLCJkaXNwbGF5VG9hc3QiLCJjb3JlQ29tcGxldGVkQWN0aXZpdGllcyIsImNvcmVJbkNvbXBsZXRlZEFjdGl2aXRpZXMiLCJ2ZXJpZnlDb3JlRWxlbWVudHMiLCJ2ZXJpZnlpbmdfY29yZV9lbGVtZW50cyIsImNvbXBsZXRlIiwiaW5jb21wbGV0ZSIsInZhbGlkYXRpb25FcnJvcnMiLCJ2YWxpZGF0ZUFjdGl2aXRpZXMiLCJ2YWxpZGF0aW5nX2FjdGl2aXRpZXMiLCJzdGFydEJ1bGtQdWJsaXNoIiwic3RhcnRpbmdfdG9fcHVibGlzaCIsIlZhbGlkYXRpb25FcnJvcnMiLCJCdWxrUHVibGlzaGluZyIsImNsYXNzTmFtZTIiLCJFcnJvckl0ZW1fdnVlXzEiLCJjcml0aWNhbE1lc3NhZ2UiLCJ3YXJuaW5nTWVzc2FnZSIsIm5vRXJyb3JNZXNzYWdlIiwibm9fZXJyb3IiLCJFcnJvckl0ZW0iLCJtb21lbnRfMSIsImZvcm1hdERhdGUiLCJkYXRlIiwiZm9ybWF0IiwiZGF0ZUZvcm1hdF8xIiwiZGF0ZUZvcm1hdCIsInJvdW5kRmxvYXQiLCJudW0iLCJwYXJzZUZsb2F0IiwidG9GaXhlZCIsIkhhdmVOb3RBZGRlZFlldF92dWVfMSIsIk5vdFlldCIsInRvb2x0aXAiLCJyZXN1bHREYXRhIiwiY29udGVudCIsIm1vbWVudCIsIlRpdGxlRWxlbWVudCIsIk1lYXN1cmUiLCJBc2NlbmRpbmciLCJBZ2dyZWdhdGlvblN0YXR1cyIsIkRlc2NyaXB0aW9uIiwiUmVmZXJlbmNlIiwiQmFzZWxpbmUiLCJEb2N1bWVudExpbmsiLCJQZXJpb2QiLCJyZXN1bHRUaXRsZSIsImluZGljYXRvciIsInBlcmlvZCIsImVsZW1lbnQiLCJsaW5rQ2xhc3NlcyIsImluZGljYXRvckRhdGEiLCJwZXJpb2REYXRhIiwicGFyZW50RGF0YSIsInJlc3VsdF9pZCIsImFjdGl2aXR5VGl0bGUiLCJhY3Rpdml0eUxpbmsiLCJyZXN1bHRJZCIsInJlc3VsdFRpdGxlZCIsInJlc3VsdExpbmsiLCJpbmRpY2F0b3JMaW5rIiwiaW5kaWNhdG9yVGl0bGUiLCJEZWxldGVBY3Rpb25fdnVlXzEiLCJEZWxldGVBY3Rpb24iLCJpbmRpY2F0b3JzIiwiaW5kaWNhdG9yc0RhdGEiLCJpbmRpY2F0b3JfbGlzdCIsImhhbmRsZU5hdmlnYXRlIiwiZmV0Y2hMaXN0aW5ncyIsInN0YXR1c0RhdGEiLCJiYXNlVHlwZSIsImVsZW1lbnRTcGFjaW5nIiwiYmFzZWxpbmUiLCJsb2NhdGlvbnMiLCJpdGVtIiwicmVmZXJlbmNlIiwibGFzdExvY2F0aW9uIiwiZGltZW5zaW9ucyIsImRlc2NUeXBlIiwiZGVzY3JpcHRpb25EYXRhIiwiYWxpZ25tZW50IiwiZGxEYXRhIiwibWVhc3VyZVR5cGUiLCJtZWFzdXJlRGF0YSIsInJlZlR5cGUiLCJyZWZEYXRhIiwidGl0bGVUeXBlIiwidGl0bGVEYXRhIiwiY29yZUVsZW1lbnRzXzEiLCJkcm9wZG93biIsImRyb3Bkb3duQnRuIiwic2VhcmNoQnRuVmFsdWUiLCJzZWFyY2hCdG5Ub2dnbGUiLCJlbGVtZW50SWNvbnMiLCJjb3JlIiwiZmlsdGVyZWRFbGVtZW50cyIsInRvTG93ZXJDYXNlIiwianVzdFN0cmluZ3MiLCJhY3Rpdml0eUNvcmVFbGVtZW50cyIsImRyb3Bkb3duRmlsdGVyIiwiY29udGFpbnMiLCJnZXRMaW5rIiwiaGFzX2RhdGEiLCJpbmRleCIsIkVsZW1lbnRTdGF0dXNfdnVlXzEiLCJsYXlvdXQiLCJkZWxldGVBY3Rpdml0eUVsZW1lbnQiLCJkZWxldGVFbGVtZW50Iiwic2Nyb2xsVG8iLCJBY3Rpdml0eURhdGUiLCJDb25kaXRpb25zIiwiQ29udGFjdEluZm8iLCJIdW1hbml0YXJpYW5TY29wZSIsIklhdGlJZGVudGlmaWVyIiwiTGVnYWN5RGF0YSIsIkxvY2F0aW9uIiwiT3RoZXJJZGVudGlmaWVyIiwiUGFydGljaXBhdGluZ09yZyIsIlBsYW5uZWREaXNidXJzZW1lbnQiLCJQb2xpY3lNYXJrZXIiLCJSZWNpcGllbnRDb3VudHJ5IiwiUmVjaXBpZW50UmVnaW9uIiwiUmVsYXRlZEFjdGl2aXR5IiwiUmVwb3J0aW5nT3JnYW5pemF0aW9uIiwiU2VjdG9yIiwiVGFnIiwiVHJhbnNhY3Rpb25zIiwiU3RhdHVzIiwiaXNWaXNpYmxlIiwibW9kZWxWaXNpYmxlIiwidG9nZ2xlTW9kZWwiLCJ0b2FzdG1lc3NhZ2VUeXBlIiwic2hvd0Vycm9ycG9wdXAiLCJkb3dubG9hZEVycm9yIiwiZmlsZW5hbWUiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZGlzcGxheSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCIsImRvd25sb2FkRXJyb3J4bWwiLCJjb3VudEFjdGl2aXRpZXMiLCJxdWVyeVBhcmFtZXRlcnMiLCJhZGRRdWVyeVBhcmFtcyIsImFwaVVybCIsImJsb2IiLCJCbG9iIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiZG93bmxvYWQiLCJoZWFkZXJzIiwiZG93bmxvYWRYbWwiLCJjb25zb2xlIiwibG9nIiwieG1sX2Vycm9yIiwiZG93bmxvYWRDc3YiLCJBZGRBY3Rpdml0eUJ1dHRvbl92dWVfMSIsIkFjdGl2aXR5QnV0dG9uIiwiZGlzbWlzcyIsIkRvd25sb2FkQWN0aXZpdHlCdXR0b25fdnVlXzEiLCJSZWZyZXNoVG9hc3RfdnVlXzEiLCJQdWJsaXNoU2VsZWN0ZWRfdnVlXzEiLCJEb3dubG9hZEFjdGl2aXR5QnV0dG9uIiwiQWRkQWN0aXZpdHlCdXR0b24iLCJSZWZyZXNoVG9hc3RNZXNzYWdlIiwiUHVibGlzaFNlbGVjdGVkIiwic2VsZWN0QWxsVmFsdWUiLCJzZWxlY3RBbGxUb2dnbGUiLCJmcm9tTm93IiwidG9nZ2xlU2VsZWN0QWxsIiwiZGF0dW0iLCJxdWVyeSIsImRpcmVjdGlvbiIsInNvcnRpbmdEaXJlY3Rpb24iLCJzb3J0QnlEYXRlVXJsIiwiVGFyZ2V0VmFsdWUiLCJBY3R1YWxWYWx1ZSIsImluZGljYXRvcklkIiwicGVyaW9kTGluayIsImFjdHRpdml0aWVzX2xhbmciLCJwZXJpb2RzRGF0YSIsInBlcmlvZHNfbGlzdCIsInV0aWxzXzEiLCJkbFR5cGUiLCJhY3R1YWxWYWx1ZSIsImdldExvY2F0aW9uIiwidGFyZ2V0VmFsdWUiLCJSZXN1bHRFbGVtZW50X3Z1ZV8xIiwiSW5kaWNhdG9yX3Z1ZV8xIiwiUmVzdWx0RWxlbWVudCIsIkluZGljYXRvciIsImhhc0luZGljYXRvcnMiLCJyZXN1bHRzRGF0YSIsIlRpdGxlRGVzY3JpcHRpb24iLCJSZXN1bHRUeXBlIiwiZWxlbWVudE5hbWUiLCJlZGl0VXJsIiwiZWxlbWVudERhdGEiLCJyZXN1bHRUeXBlIiwicmVzdWx0Vm9jYWJ1bGFyeSIsInRyYW5zbGF0aW9uTGFuZ3VhZ2UiLCJyZXN1bHRfbGlzdCIsInRvb2xUaXAiLCJyZXZlcnNlIiwicmVmZXJlbmNlRGF0YSIsInR5cGVEYXRhIiwidGREYXRhIiwiVHJhbnNhY3Rpb25FbGVtZW50X3Z1ZV8xIiwiVHJhbnNhY3Rpb25FbGVtZW50IiwidHJhbnNhY3Rpb24iLCJ0cmFuc2FjdGlvbkRhdGEiLCJ0cmFuc2FjdGlvbkxpbmsiLCJpc01hbmRhdG9yeUljb24iLCJyIiwiQWlkVHlwZSIsIlRyYW5zYWN0aW9uVHlwZSIsIlRyYW5zYWN0aW9uRGF0ZSIsIlZhbHVlIiwiUHJvdmlkZXJPcmdhbml6YXRpb24iLCJSZWNlaXZlck9yZ2FuaXphdGlvbiIsIkRpc2J1cnNlbWVudENoYW5uZWwiLCJGbG93VHlwZSIsIkZpbmFuY2VUeXBlIiwiVGllZFN0YXR1cyIsImdldExhbmd1YWdlcyIsImVudHJ5IiwidHJhbnNhY3Rpb25zRGF0YSIsInRyYW5zYWN0aW9uX2xpc3QiLCJhdERhdGEiLCJjb2RlIiwiZmluYW5jZURhdGEiLCJmbG93RGF0YSIsIlBvRGF0YSIsImNvdW50cnkiLCJzZWN0b3IiLCJ0c0RhdGEiLCJmaWxlIiwidXBsb2FkRmlsZSIsImZpbGVzIiwiY29uZmlnIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJkb3dubG9hZEV4Y2VsIiwibWV0aG9kIiwicmVzcG9uc2VUeXBlIiwiSW1wb3J0UGxhY2Vob2xkZXJfdnVlXzEiLCJMaXN0RWxlbWVudF92dWVfMSIsInNlbGVjdGVkQ291bnQiLCJhY3Rpdml0aWVzTGVuZ3RoIiwic2VsZWN0QWxsIiwidGltZXIiLCJjb3VudCIsInVwZGF0ZVNlbGVjdGVkQWN0aXZpdGllcyIsInNwbGljZSIsInNlbGVjdEFsbEFjdGl2aXRpZXMiLCJpbXBvcnRBY3Rpdml0aWVzIiwiZmlsZXR5cGUiLCJQbGFjZWhvbGRlciIsIkxpc3RFbGVtZW50IiwiU2hpbW1lckxvYWRpbmdfdnVlXzEiLCJTaGltbWVyIiwidG9nZ2xlRXJyb3IiLCJzZWxlY3RFbGVtZW50IiwiY291bnRFcnJvcnMiLCJzZWxlY3RlZERhdGEiLCJKU09OIiwicGFyc2UiLCJPcmdhbmlzYXRpb25FbGVtZW50c192dWVfMSIsIk9yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsX3Z1ZV8xIiwiT3JnYW5pemF0aW9uUHVibGlzaFVucHVibGlzaEJ1dHRvbl92dWVfMSIsImNvcmVfMiIsIk9yZ2FuaXNhdGlvbkVsZW1lbnRzIiwiT3JnYW5pc2F0aW9uRWxlbWVudHNEZXRhaWwiLCJQdWJsaXNoVW5wdWJsaXNoIiwibWFuZGF0b3J5Q29tcGxldGVkIiwiX2UiLCJvcmdhbml6YXRpb25Qcm9wcyIsIm9yZ2FuaXphdGlvbkRhdGEiLCJwdWJsaXNoTWVzc2FnZSIsIm1hbmRhdG9yeSIsIm9yZ01hbmRhdG9yeUVsZW1lbnRzIiwicmVwbGFjZVVuZGVyc2NvcmUiLCJzdHJpbmciLCJyZWdleCIsIlJlcG9ydGluZ09yZ2FuaXNhdGlvbiIsIlRvdGFsQnVkZ2V0IiwiUmVwb3J0aW5nT3JnQnVkZ2V0IiwiUmVwb3J0aW5nUmVnaW9uQnVkZ2V0IiwiUmVjaXBpZW50Q291bnRyeUJ1ZGdldCIsIlRvdGFsRXhwZW5kaXR1cmUiLCJtaXNzaW5nIiwiZW1haWwiLCJlbWFpbEVycm9yIiwicmVzZXQiLCJyZXF1ZXN0IiwicmVzcG9uc2VVUkwiLCJjcnlwdG9fanNfMSIsInRva2VuIiwicGFzc3dvcmQiLCJwYXNzd29yZF9jb25maXJtYXRpb24iLCJlbmNyeXB0IiwiaXYiLCJsaWIiLCJXb3JkQXJyYXkiLCJyYW5kb20iLCJzYWx0IiwiaXRlcmF0aW9ucyIsImVuY3J5cHRNZXRob2RMZW5ndGgiLCJoYXNoS2V5IiwiUEJLREYyIiwiaGFzaGVyIiwiYWxnbyIsIlNIQTUxMiIsImtleVNpemUiLCJlbmNyeXB0ZWQiLCJBRVMiLCJtb2RlIiwiQ0JDIiwiZW5jcnlwdGVkU3RyaW5nIiwiZW5jIiwiQmFzZTY0Iiwic3RyaW5naWZ5IiwiY2lwaGVydGV4dCIsIm91dHB1dCIsIkhleCIsIlV0ZjgiLCJmb3JtIiwicHJvY2VzcyIsImVudiIsIk1JWF9FTkNSWVBUSU9OX0tFWSIsInN0b3JlXzEiLCJhY3Rpb25zXzEiLCJkZWZhdWx0Rm9ybSIsImRlZmF1bHRFcnJvciIsInVwZGF0ZVN0b3JlIiwiQWN0aW9uVHlwZXMiLCJVUERBVEVfREVGQVVMVF9WQUxVRVMiLCJTZXR0aW5nRGVmYXVsdEZvcm1fdnVlXzEiLCJTZXR0aW5nUHVibGlzaGluZ0Zvcm1fdnVlXzEiLCJTZXR0aW5nRGVmYXVsdEZvcm0iLCJTZXR0aW5nUHVibGlzaGluZ0Zvcm0iLCJ0YWIiLCJwdWJsaXNoaW5nRm9ybSIsInB1Ymxpc2hpbmdJbmZvIiwicHVibGlzaGluZ0Vycm9yIiwic2V0dGluZ0RhdGEiLCJwdWJsaXNoZXJJbmZvIiwiYWN0aXZpdHlWYWx1ZXMiLCJkZWZhdWx0X3ZhbHVlcyIsInB1Ymxpc2hpbmdfaW5mbyIsImFjdGl2aXR5X2RlZmF1bHRfdmFsdWVzIiwiYXBpX3Rva2VuIiwidG9nZ2xlVGFiIiwic3VibWl0RGVmYXVsdCIsImhpZXJhcmNoaWFsIiwic3VibWl0UHVibGlzaGluZyIsInB1Ymxpc2hlcl92ZXJpZmljYXRpb24iLCJ0b2tlbl92ZXJpZmljYXRpb24iLCJhdXRvVmVyaWZ5IiwiVVBEQVRFX1BVQkxJU0hJTkdfRk9STSIsIlRhYmxlTGlzdF92dWVfMSIsIm9yZ2FuaXNhdGlvbnMiLCJUYWJsZUxpc3QiLCJvcmdhbml6YXRpb25OYW1lIiwic3dpdGNoQmFjayIsIm9yZ2FuaXNhdGlvbkRhdGEiLCJmZXRjaE9yZ2FuaXNhdGlvbiIsInByb3h5VXNlciIsImRlZmF1bHRTb3J0RGlyZWN0aW9uIiwic29ydERpcmVjdGlvbiIsIm9yZGVyVHlwZSIsInNvcnRCeSIsIm9yZGVyIiwiRW1haWxWZXJpZmljYXRpb25fdnVlXzEiLCJlbmNyeXB0aW9uXzEiLCJFbWFpbFZlcmlmaWNhdGlvbiIsInB1Ymxpc2hlckV4aXN0cyIsInRleHRhcmVhIiwicHVibGlzaGVyX25hbWUiLCJwdWJsaXNoZXJfaWQiLCJyZWdpc3RyYXRpb25fYWdlbmN5IiwicmVnaXN0cmF0aW9uX251bWJlciIsImlkZW50aWZpZXIiLCJwdWJsaXNoZXJfdHlwZSIsImxpY2Vuc2VfaWQiLCJpbWFnZV91cmwiLCJjb250YWN0X2VtYWlsIiwid2Vic2l0ZSIsImFkZHJlc3MiLCJzb3VyY2UiLCJyZWNvcmRfZXhjbHVzaW9ucyIsInVzZXJuYW1lIiwiZnVsbF9uYW1lIiwiaWF0aUVycm9yIiwicmVzaXplIiwiaGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwiYWdlbmNpZXMiLCJyZWdpc3RyYXRpb25BZ2VuY3kiLCJ1bmNhdGVnb3JpemVkXzEiLCJzdGFydHNXaXRoIiwic29tZSIsImlzVGV4dEZpZWxkIiwiZmllbGRUeXBlIiwiZmllbGROYW1lIiwiY2hlY2tTdGVwIiwiZm9ybVN0ZXAiLCJwYXJzZUludCIsInJlZ2lzdGVyRm9ybSIsInJlZ2lzdGVyX2xhbmciLCJwdWJsaXNoZXJfaW5mb3JtYXRpb24iLCJpc19jb21wbGV0ZSIsImhvdmVyX3RleHQiLCJmaWVsZHMiLCJwbGFjZWhvbGRlciIsImhlbHBfdGV4dCIsIm9wdGlvbnMiLCJvcmdfcmVnaXN0cmF0aW9uX2FnZW5jeSIsImZvcl9lZyIsImlhdGlfb3JnX2lkZW50aWZpZXIiLCJwdWJsaXNoZXJUeXBlIiwiZGF0YV9saWNlbnNlIiwiZGF0YUxpY2Vuc2UiLCJwdWJsaXNoZXJfbG9nb191cmwiLCJvcmdhbmlzYXRpb25fZGVzYyIsImNvbnRhY3RfaW5mbyIsImNvbnRhY3QiLCJwdWJsaXNoaW5nX2FkZGl0aW9uYWxfaW5mbyIsImFkbWluaXN0cmF0b3JfaW5mb3JtYXRpb24iLCJpYXRpX3JlZ2lzdGVyX2Rlc2NyaXB0aW9uIiwiZnVsbG5hbWUiLCJlbWFpbF9hZGRyZXNzIiwiY29uZmlybSIsImNvbmZpcm1faGVscCIsImVtYWlsX3ZlcmlmaWNhdGlvbiIsInVwZGF0ZVZhbGlkYXRpb25FcnJvcnMiLCJlcnJvclJlc3BvbnNlIiwiY2xlYW5WYWxpZGF0aW9uRXJyb3JzIiwiZmllbGQiLCJ1cGRhdGVFcnJvcnMiLCJldmVyeSIsImNsZWFuSWF0aUVycm9ycyIsInZlcmlmeVB1Ymxpc2hlciIsInVwZGF0ZVN0ZXAiLCJ2ZXJpZnlDb250YWN0SW5mb3JtYXRpb24iLCJ2ZXJpZnlBZGRpdGlvbmFsSW5mb3JtYXRpb24iLCJnZXRDdXJyZW50U3RlcCIsImN1cnJlbnRfc3RlcCIsImdvVG9OZXh0Rm9ybSIsImdvVG9QcmV2aW91c0Zvcm0iLCJTaW1wbGVTcGFuX3Z1ZV8xIiwiU2ltcGxlU3BhbiIsInRyaWdnZXJNb2RlbCIsInNldEl0ZW0iLCJhZ2VuY3kiLCJwdWJsc2hlcl9uYW1lIiwib3JnYW5pemF0aW9uX3JlZ2lzdHJhdGlvbl9hZ2VuY3kiLCJvcmdhbml6YXRpb25fcmVnaXN0cmF0aW9uX25vIiwib3JnX3JlZ2lzdHJhdGlvbl9ubyIsImlhdGlfb3JnYW5pemF0aW9uYWxfaWRlbnRpZmllciIsInJlZ2lzdGVyX2Rlc2NyaXB0aW9uIiwiY29uZmlybV9wYXNzd29yZCIsImxvZ2luIiwiTmF2RHJvcGRvd25fdnVlXzEiLCJOYXZEcm9wZG93biIsImF1dGgiLCJyZW5kZXIiLCJfd2l0aFNjb3BlSWQiLCJwdXNoU2NvcGVJZCIsInBvcFNjb3BlSWQiLCJfaG9pc3RlZF8xIiwiX2hvaXN0ZWRfMiIsIl9ob2lzdGVkXzMiLCJjcmVhdGVFbGVtZW50Vk5vZGUiLCJfaG9pc3RlZF80IiwiX2hvaXN0ZWRfNSIsIl9ob2lzdGVkXzYiLCJfaG9pc3RlZF83IiwiX2hvaXN0ZWRfOCIsIl9ob2lzdGVkXzkiLCJfaG9pc3RlZF8xMCIsIl9ob2lzdGVkXzExIiwiX2hvaXN0ZWRfMTIiLCJfaG9pc3RlZF8xMyIsIl9ob2lzdGVkXzE0IiwiX2hvaXN0ZWRfMTUiLCJfaG9pc3RlZF8xNiIsIl9ob2lzdGVkXzE3IiwiX2hvaXN0ZWRfMTgiLCJfaG9pc3RlZF8xOSIsIl9ob2lzdGVkXzIwIiwiX2hvaXN0ZWRfMjEiLCJfaG9pc3RlZF8yMiIsIl9ob2lzdGVkXzIzIiwiX2hvaXN0ZWRfMjQiLCJfaG9pc3RlZF8yNSIsIl9ob2lzdGVkXzI2IiwiX2hvaXN0ZWRfMjciLCJfaG9pc3RlZF8yOCIsIl9ob2lzdGVkXzI5IiwiX2hvaXN0ZWRfMzAiLCJfaG9pc3RlZF8zMSIsIl9ob2lzdGVkXzMyIiwiX2hvaXN0ZWRfMzMiLCJfaG9pc3RlZF8zNCIsIl9jdHgiLCJfY2FjaGUiLCIkcHJvcHMiLCIkc2V0dXAiLCIkZGF0YSIsIiRvcHRpb25zIiwiX2NvbXBvbmVudF9zdmdfdnVlIiwicmVzb2x2ZUNvbXBvbmVudCIsIm9wZW5CbG9jayIsImNyZWF0ZUVsZW1lbnRCbG9jayIsImNyZWF0ZUJsb2NrIiwiY3JlYXRlQ29tbWVudFZOb2RlIiwib25DbGljayIsImNyZWF0ZVZOb2RlIiwiRnJhZ21lbnQiLCJyZW5kZXJMaXN0Iiwibm9ybWFsaXplQ2xhc3MiLCJuYXZfX3BvaW50ZXIiLCJ0b0Rpc3BsYXlTdHJpbmciLCIkZXZlbnQiLCJhZGRfYWN0aXZpdHlfbWFudWFsbHkiLCJpbXBvcnRfYWN0aXZpdGllcyIsIndpdGhEaXJlY3RpdmVzIiwic2VhcmNoX2FjdGl2aXR5Iiwib25LZXl1cCIsIndpdGhLZXlzIiwidk1vZGVsVGV4dCIsInNlYXJjaF9vcmdhbmlzYXRpb24iLCJ5b3VyX3Byb2ZpbGUiLCJvbkNsb3NlIiwib25DbG9zZU1vZGFsIiwib25Ub2FzdCIsImJjIiwiZCIsImFjdGlvbiIsInRhYmluZGV4IiwiY29scyIsInJvd3MiLCJjcmVhdGVUZXh0Vk5vZGUiLCJjcmVhdGVTdGF0aWNWTm9kZSIsIl9ob2lzdGVkXzM1IiwiX2hvaXN0ZWRfMzYiLCJjb21tb29uX2xhbmciLCJzZWxlY3RfYV92YWx1ZSIsImdlbmVyYWwiLCJvYmplY3RpdmVzIiwidGFyZ2V0X2dyb3VwcyIsIm90aGVyIiwiYWRkX25hcnJhdGl2ZV9pbl9vdGhlcl9sYW5nIiwiYWRkX2FkZGl0aW9uYWxfZGVzY3JpcHRpb24iLCJhY2NvdW50X25vdF92ZXJpZmllZCIsImNvbXBsZXRlX3lvdXJfc2V0dXAiLCJwdWJsaXNoZXJfaXNfaW5hY3RpdmUiLCJhcyIsImVudGVyIiwibGVhdmUiLCJ3aXRoQ3R4IiwiYWNjb3VudF9ub3RfdmVyaWZpZWRfZGVzY3JpcHRpb24iLCJjb21wbGV0ZV95b3VyX3NldHVwX2Rlc2NyaXB0aW9uIiwidXBkYXRlX3JlZ2lzdHJ5X2luZm9ybWF0aW9uIiwiYXBpX2tleV9wdWJfaWQiLCJlbnRlcl9jb3JyZWN0X2FwaV90b2tlbiIsInVwZGF0ZV9kZWZhdWx0X3ZhbHVlcyIsInB1Ymxpc2hlcl9pc19ub3RfYWN0aXZlIiwiaWF0aV9zdGFuZGFyZF9yZWZlcmVuY2UiLCJpbm5lckhUTUwiLCJsZWFybl9tb3JlIiwiVGVsZXBvcnQiLCJ0byIsIlRyYW5zaXRpb24iLCJhcmdzIiwibm9ybWFsaXplU3R5bGUiLCJyZW5kZXJTbG90IiwiJHNsb3RzIiwiX2NvbXBvbmVudF9yYWRpYWxfcHJvZ3Jlc3NfYmFyIiwiZGlhbWV0ZXIiLCJwcmV2IiwibSIsImRlbGV0ZV9zb21ldGhpbmciLCJkZWxldGVfY29uZmlybWF0aW9uIiwiZ29fYmFjayIsIm9uUmVzZXQiLCJjb250aW51ZV9hbnl3YXkiLCJhZGRfc29tZXRoaW5nIiwicHVibGlzaF9hbnl3YXkiLCJmaXhfaXNzdWVzIiwidW5wdWJsaXNoIiwidW5wdWJsaXNoX2NvbmZpcm1hdGlvbiIsInN0b3BQcm9wYWdhdGlvbiIsImRlbGV0ZV9yZXN1bHQiLCJkZWxldGVfaW5kaWNhdG9yIiwiZGVsZXRlX3BlcmlvZCIsImRlbGV0ZV90cmFuc2FjdGlvbiIsImRlbGV0ZV9jb25maW1fZGVmYXVsdCIsInJlbGF0ZWRfaW5kaWNhdG9yX3BlcmlvZF9kZWxldGVkIiwicmVsYXRlZF9wZXJpb2RfZGVsZXRlZCIsImRlbGV0ZV9jb25maXJtX2RlZmF1bHQiLCJtb2R1bGUiLCJfY29tcG9uZW50X0J0biIsIm9yZ2FuaXNhdGlvbiIsIl9jb21wb25lbnRfQnJlYWRjcnVtYiIsImlzc3Vlc19mb3VuZCIsImlzc3Vlc19mb3VuZF9pbl9pYXRpX3ZhbGlkYXRvciIsImhpZGUiLCJfaG9pc3RlZF8zNyIsIl9ob2lzdGVkXzM4IiwiX2NvbXBvbmVudF9Ib3ZlclRleHQiLCJhY3Rpdml0eV9kZWZhdWx0X2xhbmciLCJvdmVycmlkZV9kZWZhdWx0X3ZhbHVlcyIsImN1cnJlbmN5IiwiaG92ZXJfaGVhZGVyIiwibW9kZWxWYWx1ZSIsInNlYXJjaGFibGUiLCJyb2xlIiwiY2FuY2VsX2xhYmVsIiwic2F2ZV9kZWZhdWx0X3ZhbHVlc19sYWJlbCIsIl9ob2lzdGVkXzM5IiwiX2hvaXN0ZWRfNDAiLCJfaG9pc3RlZF80MSIsIl9ob2lzdGVkXzQyIiwiX2hvaXN0ZWRfNDMiLCJfaG9pc3RlZF80NCIsIl9ob2lzdGVkXzQ1IiwiX2hvaXN0ZWRfNDYiLCJfaG9pc3RlZF80NyIsIl9ob2lzdGVkXzQ4IiwiX2hvaXN0ZWRfNDkiLCJfaG9pc3RlZF81MCIsIl9ob2lzdGVkXzUxIiwiX2hvaXN0ZWRfNTIiLCJfaG9pc3RlZF81MyIsIl9ob2lzdGVkXzU0IiwiX2hvaXN0ZWRfNTUiLCJfaG9pc3RlZF81NiIsIl9ob2lzdGVkXzU3IiwiX2NvbXBvbmVudF9Ub2FzdCIsIl9jb21wb25lbnRfRXJyb3JQb3BVcCIsIl9jb21wb25lbnRfRGVsZXRlQnV0dG9uIiwiX2NvbXBvbmVudF9VblB1Ymxpc2giLCJfY29tcG9uZW50X1B1Ymxpc2giLCJfY29tcG9uZW50X0Vycm9ycyIsIl9jb21wb25lbnRfUHJldmlvdXNseVB1Ymxpc2hlZCIsIl9jb21wb25lbnRfUHJvZ3Jlc3NCYXIiLCJfY29tcG9uZW50X0VsZW1lbnRzIiwiX2NvbXBvbmVudF9BY3Rpdml0eUVsZW1lbnQiLCJfY29tcG9uZW50X1Jlc3VsdCIsIl9kaXJlY3RpdmVfc3RpY2t5X2NvbXBvbmVudCIsInJlc29sdmVEaXJlY3RpdmUiLCJfZGlyZWN0aXZlX3Ntb290aF9zY3JvbGwiLCJhY3Rpdml0eV9sYW5nIiwieW91cl9hY3Rpdml0aWVzX2xhYmVsIiwidW50aXRsZWQiLCJhY3Rpdml0eV9jb3VsZF9ub3RfYmVfcHVibGlzaGVkIiwib25DbG9zZVBvcHVwIiwidW5QdWJsaXNoZWQiLCJzaG93UHVibGlzaGVkIiwicHVibGlzaEVycm9ycyIsInB1Ymxpc2hpbmdfcHJvZ3Jlc3MiLCJjYW5ub3RfcHVibGlzaF9hY3Rpdml0eV91bnRpbF9tYW5kYXRvcnkiLCJjb21wbGV0ZV9hbGxfY29yZV9sYWJlbCIsImVhY2hfZWxlbWVudF9yZXByZXNlbnRzIiwiY29yZV9lbGVtZW50c19pbmNsdWRlIiwiYm91bmRhcnkiLCJ0aGVfaWF0aV9zdGFuZGFyZF9jb250YWluc193aWRlIiwidWNfb3ZlcnJpZGVfdGhpc19hY3Rpdml0eV9sYWJlbCIsImRpc2FibGVkIiwiaWNvbl9zaXplIiwiX2NvbXBvbmVudF9Mb2FkZXIiLCJfY29tcG9uZW50X1BhZ2VUaXRsZSIsIl9jb21wb25lbnRfRXJyb3JNZXNzYWdlIiwiX2NvbXBvbmVudF9FbXB0eUFjdGl2aXR5IiwiX2NvbXBvbmVudF9UYWJsZUxheW91dCIsIl9jb21wb25lbnRfUGFnaW5hdGlvbiIsIm9uU2hvd09ySGlkZSIsIm9uRmV0Y2hBY3Rpdml0aWVzIiwiX2NvbXBvbmVudF9NdWx0aXNlbGVjdCIsIl9jb21wb25lbnRfQnRuQ29tcG9uZW50IiwiX2NvbXBvbmVudF9Nb2RhbCIsImFkZF9hX3RpdHRsZV9hbmRfaWRlbnRpZmllcl9sYWJlbCIsImVsX2NvbW1vbl9sYW5nIiwiZWxlbWVudHNfbGFuZyIsImVycm9yX19pbnB1dCIsInR5cGVfbmFycmF0aXZlX2hlcmUiLCJhX2NvZGVfc3BlY2lmeWluZ190ZXh0X2xpbmtfNSIsInNlbGVjdF9sYW5ndWFnZSIsInlvdXJfZGVmYXVsdF9sYW5ndWFnZV9hc3N1bWVkX25vX3RoYXQiLCJpYXRpX2lkZW50aWZpZXIiLCJhY2l0aXZpdHlfaWRlbnRpZmllciIsInR5cGVfYWN0aXZpdHlfaWRlbnRpZmllcl9oZXJlIiwic2hvcnRlcl9oZWxwX3RleHQiLCJpYXRpX2lkZW50aWZpZXJfdGV4dCIsInRoaXNfaXNfYXV0b2dlbmVyYXRlZCIsImNhbmNlbCIsInNhdmUiLCJhY3Rpdml0aWVzX25vY2FzZSIsInJldHJ5IiwiYyIsInNob3dfbW9yZSIsInZNb2RlbENoZWNrYm94Iiwidmlld19lcnJvcnNfb3Jfd2FybmluZyIsInB1Ymxpc2hpbmdfYWxlcnQiLCJhY3Rpdml0aWVzX2FscmVhZHlfcHVibGlzaGVkX3dpbGxfbm90IiwiY2hhbmdlc19tYWRlX3RvX3B1Ymxpc2hlZF93aWxsX2JlX3JlcHVibGlzaGVkIiwiYWN0Iiwibm9fYWN0aXZpdGllc19mb3VuZCIsInJlZnJlc2giLCJjcml0aWNhbF9lcnJvcl9mb3VuZCIsImVycm9yc19hbmRfd2FybmluZ3NfZm91bmQiLCJub19lcnJvcnMiLCJhY3Rpdml0eURhdGUiLCJzb21ldGhpbmciLCJuYXR0YXRpdmUiLCJjb25kaXRpb25fYXR0YWNoZWQiLCJhdHRhY2hlZCIsIm5vIiwieWVzIiwiY29uZGl0aW9uIiwiY29uZGl0aW9uX3R5cGUiLCJjb25kaXRpb25UeXBlIiwiY29uZGl0aW9uc19ub3RfYXR0YWNoZWQiLCJjb250YWN0VHlwZSIsInBlcnNvbl9uYW1lIiwiZGVwYXJ0bWVudCIsImpvYl90aXRsZSIsImVtYWlsX3ZhbHVlIiwidGVsZXBob25lIiwidGVsIiwidyIsIm1haWxpbmdfYWRkcmVzcyIsImFkZHJlc3NfaW5kZXgiLCJub3RfYXZhaWxhYmxlIiwiZGVzY3JpcHRpb25UeXBlIiwiaHVtYW5pdGFyaWFuU2NvcGVUeXBlIiwidm9jYWJ1bGFyeSIsImh1bWFuaXRhcmlhblNjb3BlVm9jYWJ1bGFyeSIsInZvY2FidWxhcnlfdXJpIiwibGVnYWN5X25hbWUiLCJpYXRpX2VxdWl2YWxlbnQiLCJsb2NhdGlvbl9yZWFjaCIsImdlb2dyYXBoaWNMb2NhdGlvblJlYWNoIiwiaiIsInJlZmVybmVjZSIsImxvY2F0aW9uX2lkIiwiZ2VvZ3JhcGhpY1ZvY2FidWxhcnkiLCJhY3Rpdml0eV9kZXNjcmlwdGlvbiIsImFkbWluaXN0cmF0aXZlIiwibGV2ZWwiLCJwb2ludCIsInNyc19uYW1lIiwicG9zIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJleGFjdG5lc3MiLCJnZW9ncmFwaGljRXhhY3RuZXNzIiwibG9jYXRpb25fY2xhc3MiLCJnZW9ncmFwaGljTG9jYXRpb25DbGFzcyIsImZlYXR1cmVfZGVzaWduYXRpb24iLCJwcm9wZXJfY2xhc3MiLCJsb2NhdGlvblR5cGUiLCJyZWZlcmVuY2VfdHlwZSIsIm90aGVySWRlbnRpZmllclR5cGUiLCJvd25lcl9vcmciLCJvd25lcl9vcmdhbmlzYXRpb25fcmVmZXJlbmNlIiwib3duZXJfb3JnYW5pc2F0aW9uX25hcnJhdGl2ZSIsInBhcnRpY2lwYXRpbmdfb3JnIiwib3JnYW5pemF0aW9uX3JvbGUiLCJvcmdhbmlzYXRpb25Sb2xlIiwibWlzc2luZ19sYW5nIiwib3JnYW5pc2F0aW9uX3JvbGUiLCJvcmdhbmlzYXRpb25fbmFtZSIsIm9yZ2FuaXNhdGlvbl90eXBlIiwib3JnYW5pemF0aW9uVHlwZSIsImNyc19jaGFubmVsX2NvZGUiLCJjcnNDaGFubmVsQ29kZSIsImJ1ZGdldFR5cGUiLCJwbGFubmVkX2Rpc2J1cnNlbWVudF90eXBlIiwidmFsdWVfYW1vdW50IiwiYW1vdW50IiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZV9kYXRlIiwicGVyaW9kX3N0YXJ0IiwicGVyaW9kX2VuZCIsInByb3ZpZGVyX29yZyIsInByb3ZpZGVyIiwib3JnIiwicHJvdmlkZXJfYWN0aXZpdHlfaWQiLCJyZWNlaXZlcl9vcmciLCJyZWNlaXZlciIsInJlY2VpdmVyX2FjdGl2aXR5X2lkIiwicG9saWN5X21hcmtlcl92b2NhYnVsYXJ5IiwicG9saWN5TWFya2VyVm9jYWJ1bGFyeSIsInBvbGljeV9tYXJrZXIiLCJwb2xpY3lNYXJrZXIiLCJwb2xpY3lfbWFya2VyX3RleHQiLCJzaWduaWZpY2FuY2UiLCJwb2xpY3lTaWduaWZpY2FuY2UiLCJjb3VudHJ5X2NvZGUiLCJwZXJjZW50YWdlIiwicmVnaW9uX3ZvY2FidWxhcnkiLCJyZWdpb25Wb2NhYnVsYXJ5IiwicmVnaW9uX2NvZGUiLCJyZWdpb24iLCJjdXN0b21fY29kZSIsInJlbGF0aW9uc2hpcF90eXBlIiwicmVsYXRlZEFjdGl2aXR5VHlwZSIsInJlcG9ydGluZ19vcmciLCJyZWZlcmVuY2VzIiwic2Vjb25kYXJ5X3JlcG9ydGVyIiwiX2NvbXBvbmVudF9Ob3RZZXQiLCJuZXdfcmVzdWx0Iiwic2hvd19zb21ldGhpbmciLCJmdWxsX3Jlc3VsdF9saXN0Iiwidmlld19zb21ldGhpbmciLCJlZGl0X3NvbWV0aGluZyIsInJlc3VsdF90eXBlIiwibm90X3lldF9hZGRlZF9wZXJpb2QiLCJub3RfeWV0X2FkZGVkX3BlcmlvZF9idG4iLCJuZXdfaW5kaWNhdG9yIiwiZnVsbF9pbmRpY2F0b3IiLCJiIiwicGVyaW9kcyIsImVkaXQiLCJidXR0b25zIiwic2hvd19mdWxsX3BlcmlvZCIsInNlY3Rvcl92b2NhYnVsYXJ5Iiwic2VjdG9yVm9jYWJ1bGFyeSIsInNlY3RvckNvZGUiLCJjYXRlZ29yeV9jb2RlIiwic2VjdG9yQ2F0ZWdvcnkiLCJzZGdfZ29hbCIsInNkZ0dvYWxzIiwic2RnX3RhcmdldCIsInNkZ1RhcmdldCIsImNvbW1vbl9sYW5ndWFnZSIsInRhZ192b2NhYnVsYXJ5IiwidGFnVm9jYWJ1bGFyeSIsInRhZ190ZXh0IiwiZ29hbHNfdGFnX2NvZGUiLCJ0YXJnZXRzX3RhZ19jb2RlIiwidHJhbnMiLCJ0cmFuc2FjdGlvblR5cGUiLCJ0cmFuc2FjdGlvbl90eXBlIiwidHJhbnNhY3Rpb25fdHlwZV9jb2RlIiwidmFsIiwiX2NvbXBvbmVudF9UaXRsZUVsZW1lbnQiLCJfY29tcG9uZW50X0FzY2VuZGluZyIsIl9jb21wb25lbnRfTWVhc3VyZSIsIl9jb21wb25lbnRfQWdncmVnYXRpb25TdGF0dXMiLCJfY29tcG9uZW50X0Rlc2NyaXB0aW9uIiwiX2NvbXBvbmVudF9SZWZlcmVuY2UiLCJfY29tcG9uZW50X0Jhc2VsaW5lIiwiX2NvbXBvbmVudF9QZXJpb2QiLCJfY29tcG9uZW50X0RvY3VtZW50TGluayIsImluZGljYXRvcl9kZXRhaWwiLCJyRGF0YSIsInJpIiwicGVyaW9kX25vY2FzZSIsImRvY3VtZW50X2xpbmsiLCJhc2NlbmRpbmciLCJtZWFzdXJlIiwiaW5kaWNhdG9yTWVhc3VyZSIsImFnZ3JlZ2F0aW9uX3N0YXR1cyIsInNjb3BlIiwiX2NvbXBvbmVudF9EZWxldGVBY3Rpb24iLCJpbmRpY2F0b3JfbGluayIsImJhc2UiLCJ5ZWFyIiwiZGltZW5zaW9uIiwiY29tbWVudCIsImNvbSIsImRlZnVhbHQiLCJuYSIsImNhdGVnb3J5IiwiY2F0IiwiZG9jdW1lbnRDYXRlZ29yeSIsImRvY3VtZW50X2RhdGUiLCJpbmRpY2F0b3JWb2NhYnVsYXJ5IiwiaW5kaWNhdG9yX3VyaSIsImFsbF9lbGVtZW50cyIsInZTaG93IiwiX2hvaXN0ZWRfNTgiLCJfaG9pc3RlZF81OSIsIl9ob2lzdGVkXzYwIiwiX2hvaXN0ZWRfNjEiLCJfaG9pc3RlZF82MiIsIl9ob2lzdGVkXzYzIiwiX2hvaXN0ZWRfNjQiLCJfaG9pc3RlZF82NSIsIl9ob2lzdGVkXzY2IiwiX2hvaXN0ZWRfNjciLCJfaG9pc3RlZF82OCIsIl9ob2lzdGVkXzY5IiwiX2hvaXN0ZWRfNzAiLCJfaG9pc3RlZF83MSIsIl9ob2lzdGVkXzcyIiwiX2hvaXN0ZWRfNzMiLCJfaG9pc3RlZF83NCIsIl9ob2lzdGVkXzc1IiwiX2hvaXN0ZWRfNzYiLCJfaG9pc3RlZF83NyIsIl9ob2lzdGVkXzc4IiwiX2hvaXN0ZWRfNzkiLCJfaG9pc3RlZF84MCIsIl9ob2lzdGVkXzgxIiwiX2hvaXN0ZWRfODIiLCJfaG9pc3RlZF84MyIsIl9ob2lzdGVkXzg0IiwiX2hvaXN0ZWRfODUiLCJfaG9pc3RlZF84NiIsIl9ob2lzdGVkXzg3IiwiX2hvaXN0ZWRfODgiLCJfaG9pc3RlZF84OSIsIl9ob2lzdGVkXzkwIiwiX2hvaXN0ZWRfOTEiLCJfaG9pc3RlZF85MiIsIl9ob2lzdGVkXzkzIiwiX2hvaXN0ZWRfOTQiLCJmdWxsX3RyYW5zYWN0aW9uIiwiZGVmYXVsdF9haWRfdHlwZV92b2NhYnVsYXJ5IiwiYWlkVHlwZVZvY2FidWxhcnkiLCJlYXJtYXJraW5nX2NhdGVnb3J5IiwiZWFybWFya2luZ0NhdGVnb3J5IiwiZWFybWFya2luZ19tb2RhbGl0eSIsImVhcm1hcmtpbmdNb2RhbGl0eSIsImNhc2hfYW5kX3ZvdWNoZXJfbW9kYWxpdGllcyIsImNhc2hhbmRWb3VjaGVyTW9kYWxpdGllcyIsImRlZmF1bHRfYWlkX3R5cGUiLCJhaWRUeXBlIiwiY291bnRyeV9idWRnZXRfdm9jYWJ1bGFyeSIsImJ1ZGdldElkZW50aWZpZXJWb2NhYnVsYXJ5IiwiYnVkZ2V0X2l0ZW0iLCJidWRnZXRJZGVudGlmaWVyIiwiYnVkZ2V0X3R5cGUiLCJidWRnZXRfdmFsdWUiLCJidWRnZXRfc3RhdHVzIiwiYnVkZ2V0U3RhdHVzIiwiYWN0aXZpdHlTdGF0dXMiLCJhY3Rpdml0eVNjb3BlIiwiY29sbGFib3JhdGlvblR5cGUiLCJmbG93VHlwZSIsInRpZWRTdGF0dXMiLCJmaW5hbmNlVHlwZSIsIm5vX2NvbnRlbnQiLCJfY29tcG9uZW50X0NyZWF0ZU1vZGFsIiwiYWRkX2FjdGl2aXR5IiwiZG93bmxvYWRfYWxsIiwiZG93bmxvYWRfc29tZXRoaW5nIiwiY3N2IiwieG1sIiwiZG93bmxvYWRfeG1sX2NvbmZpcm1hdGlvbiIsImVycm9yX21lc3NhZ2UiLCJhbnl3YXkiLCJub3RlIiwiY29yZV9lbGVtZW50cyIsIm1hbmRhdG9yeV9zdWJfZWxlbWVudHMiLCJyZWNvbW1lbmRlZF9zdWJfZWxlbWVudHMiLCJfY29tcG9uZW50X0FjdGl2aXR5QnV0dG9uIiwibm9fYWN0aXZpdHlfaGFzX2JlZW5fYWRkZWRfbGFiZWwiLCJjbGlja19vbl9idXR0b25fdG9fYWRkX25ld19sYWJlbCIsIndoYXRfaXNfYWN0aXZpdHkiLCJvbmUiLCJ2aWV3Qm94IiwiZmlsbCIsInhtbG5zIiwic3Ryb2tlIiwiY29sc3BhbiIsImFjdGl2aXR5X3RpdGxlIiwidXBkYXRlZF9vbiIsInRvdGFsIiwidXBkYXRlZF9hdCIsInN0YXR1c19sYWJlbHMiLCJzZWxlY3QiLCJhY3Rpdml0aWVzX25vdF9mb3VuZCIsIl9jb21wb25lbnRfVGFyZ2V0VmFsdWUiLCJfY29tcG9uZW50X0FjdHVhbFZhbHVlIiwicGVyaW9kX2RldGFpbCIsImFjdHVhbCIsIndpZGVsZXRoIiwic3RhcnRfZGF0ZSIsImVuZF9kYXRlIiwicGUiLCJ0VmFsdWUiLCJhY3R1YWxfdmFsdWUiLCJ1cHBlcl9jYXNlIiwibG9jYXRpb25fcmVmZXJlbmNlIiwiZGltIiwidGFyZ2V0X3ZhbHVlIiwiX2NvbXBvbmVudF9SZXN1bHRFbGVtZW50IiwiX2NvbXBvbmVudF9JbmRpY2F0b3IiLCJyZXN1bHRfZGV0YWlsIiwiaW5kaWNhdG9yX25vY2FzZSIsImFkZF9pbmRpY2F0b3Jfbm9jYXNlIiwibm90X3lldF9hZGRlZF9pbmRpY2F0b3IiLCJfY29tcG9uZW50X1RpdGxlRGVzY3JpcHRpb24iLCJfY29tcG9uZW50X1Jlc3VsdFR5cGUiLCJ0cmFuc2xhdGlvbmxhbmd1YWdlIiwiaW5kaWNhdG9yX3RpdGxlIiwibGFudWdhZ2UiLCJkb2N1bWVudHMiLCJsb2MiLCJsIiwidGFyIiwiX2NvbXBvbmVudF9UcmFuc2FjdGlvbkVsZW1lbnQiLCJ0cmFuc2FjdGlvbl9kZXRhaWwiLCJfY29tcG9uZW50X0FpZFR5cGUiLCJfY29tcG9uZW50X1RyYW5zYWN0aW9uVHlwZSIsIl9jb21wb25lbnRfVHJhbnNhY3Rpb25EYXRlIiwiX2NvbXBvbmVudF9WYWx1ZSIsIl9jb21wb25lbnRfUHJvdmlkZXJPcmdhbml6YXRpb24iLCJfY29tcG9uZW50X1JlY2VpdmVyT3JnYW5pemF0aW9uIiwiX2NvbXBvbmVudF9EaXNidXJzZW1lbnRDaGFubmVsIiwiX2NvbXBvbmVudF9TZWN0b3IiLCJfY29tcG9uZW50X1JlY2lwaWVudENvdW50cnkiLCJfY29tcG9uZW50X1JlY2lwaWVudFJlZ2lvbiIsIl9jb21wb25lbnRfRmxvd1R5cGUiLCJfY29tcG9uZW50X0ZpbmFuY2VUeXBlIiwiX2NvbXBvbmVudF9UaWVkU3RhdHVzIiwiaW50ZXJuYWwiLCJ0cmFuc2FjdGlvbl9kYXRlIiwiY2xhcyIsImF0IiwiYWlkX3R5cGVfdm9jYWJ1bGFyeSIsImFpZF90eXBlX2NvZGUiLCJjYXNoQW5kVm91Y2hlck1vZGFsaXRpZXMiLCJlYXJNYXJraW5nQ2F0ZWdvcnkiLCJlYXJNYXJraW5nTW9kYWxpdHkiLCJkaXNidXJzZW1lbnRfY2hhbm5lbF9jb2RlIiwiZGlzYnVyc2VtZW50Q2hhbm5lbCIsImZpbmFuY2VfdHlwZSIsImZsb3dfdHlwZSIsIm9yZ2FuaXNlcl9pZGVudGlmaWVyX2NvZGUiLCJvcmdhbml6YXRpb25faWRlbnRpZmllcl9jb2RlIiwicG8iLCJjb3UiLCJjb3VudHJ5Q29kZSIsInNkIiwicmVnaW9uQ29kZSIsInNlYyIsInVuc2RnR29hbHMiLCJ1bnNkZ1RhcmdldHMiLCJ0aWVkX3N0YXR1c19jb2RlIiwidGllZFN0YXR1c1R5cGUiLCJ0aWVkX3N0YXR1cyIsImltcG9ydF9hY3Rpdml0eSIsInVwbG9hZF9maWxlIiwiZG93bmxvYWRfY3N2X3RlbXBsYXRlIiwiZG93bmxvYWRfY3N2X3RlbXBsYXRlX2Rlc2NyaXB0aW9uIiwiaW1wb3J0X2FjdGl2aXkiLCJhY3Rpdml0aWVzX3dpdGhfZXJyb3IiLCJvblNlbGVjdEVsZW1lbnQiLCJlcnJvcnNfbm9jYXNlIiwiZWxlX2VyciIsImV4aXN0aW5nIiwiX2NvbXBvbmVudF9QdWJsaXNoVW5wdWJsaXNoIiwiX2NvbXBvbmVudF9SYWRpYWxQcm9ncmVzc0JhciIsIl9jb21wb25lbnRfT3JnYW5pc2F0aW9uRWxlbWVudHMiLCJfY29tcG9uZW50X09yZ2FuaXNhdGlvbkVsZW1lbnRzRGV0YWlsIiwib3JnX2xhbmciLCJ5b3VyX29yZyIsIm9yZ19jb3VsZF9ub3RfYmVfcHVibGlzaGVkIiwiZmlsbF9tYW5kYXRvcnlfZmllbGRzIiwicmVjaXBpZW50X2NvdW50cnkiLCJyZWNpcGllbnRfY291bnRyeV9idWRnZXQiLCJidWRnZXRfbGluZSIsImJ1ZGdldF9hbW91bnQiLCJyZWNpcGllbnRfb3JnX2J1ZGdldCIsInJlY2lwaWVudF9vcmciLCJyZWNpcGllbnRfb3JnX2luZGV4IiwibmFycmF0aXZlX2luZGV4IiwiYnVkZ2V0IiwicmVjaXBpZW50X3JlZ2lvbl9idWRnZXQiLCJyZWNpcGllbnRfcmVnaW9uIiwidG90YWxfYnVkZ2V0IiwidG90YWxfYnVkZ2V0X3N0YXR1cyIsImJ1ZGdldF9sYW5nIiwidG90YWxfZXhwZW5kaXR1cmUiLCJleHBlbmRpdHVyZV9hbW91bnQiLCJleHBlbnNlX2xpbmUiLCJwYXNzd29yZF9yZWNvdmVyeSIsInBhc3N3b3JkX3JlY292ZXJ5X2hlYWRlciIsInBhc3N3b3JkX3JlY292ZXJ5X2Rlc2NyaXB0aW9uIiwiZW1haWxfbGFiZWwiLCJlbWFpbF9wbGFjZWhvbGRlciIsInNlbmRfcGFzc3dvcmRfcmVzZXQiLCJyZXNldF9wYXNzd29yZCIsImVudGVyX25ld19wYXNzd29yZCIsIm5ld19wYXNzd29yZCIsImVudGVyX25ld19wYXNzd29yZF9wbGFjZWhvbGRlciIsInJlcGVhdF9wYXNzd29yZCIsInJlZW50ZXJfcGFzc3dvcmRfcGxhY2Vob2xkZXIiLCJzZXR0aW5nc19sYW5nIiwiZGVmYXVsdF9mb3JfYWxsX2RhdGFfbGFiZWwiLCJkZWZhdWx0X2Zvcl9hY3Rpdml0eV9sYWJlbCIsImRlZmF1bHRfaGllcmFyY2h5Iiwib25JbnB1dCIsIl9jb21wb25lbnRfU2V0dGluZ1B1Ymxpc2hpbmdGb3JtIiwiX2NvbXBvbmVudF9TZXR0aW5nRGVmYXVsdEZvcm0iLCJzZXR0aW5nc19sYWJlbCIsImFjdGl2ZV9fdGFiIiwicHVibGlzaGluZ19zZXR0aW5nc19sYWJlbCIsImRlZmF1bHRfdmFsdWVzX2xhYmVsIiwib25TdWJtaXRQdWJsaXNoaW5nIiwic2F2ZV9wdWJsaXNoaW5nX3NldHRpbmdzIiwic2F2ZV9kZWZhdWx0X3ZhbHVlcyIsInJlZ2lzdHJ5X2luZm9ybWF0aW9uIiwiaXNWZXJpZmljYXRpb25SZXF1ZXN0ZWQiLCJ0YWdfX2NvcnJlY3QiLCJ0YWdfX2luY29ycmVjdCIsImNvcnJlY3RfbGFiZWwiLCJpbmNvcnJlY3RfbGFiZWwiLCJ1Y192ZXJpZnkiLCJsb2dnZWRfaW5fYXMiLCJzd2l0Y2hfYmFjayIsInVwZGF0ZV9vbiIsImZldGNoaW5nX2RhdGEiLCJhbGxfYWN0aXZpdGllc19jb3VudCIsInByb3h5IiwidmVyaWZ5X3lvdXJfYWNjb3VudCIsImNsaWNrX2FuZF9hY3RpdmF0ZSIsImdldF9zdGFydGVkIiwiX2NvbXBvbmVudF9FbWFpbFZlcmlmaWNhdGlvbiIsImNyZWF0ZV9pYXRpX3B1Ymxpc2hlcl9oZWFkZXIiLCJjcmVhdGVfaWF0aV9wdWJsaXNoZXJfc3ViaGVhZGVyIiwiZXJyb3Jfa2V5IiwiZm9ybV9faW5wdXQiLCJ2TW9kZWxEeW5hbWljIiwicmVmX2ZvciIsIm9uRm9jdXMiLCJ3aXRoTW9kaWZpZXJzIiwidnVlX19zZWxlY3QiLCJhbHJlYWR5X2hhdmVfYWNjb3VudCIsInNpZ25faW4iLCJuZXh0X3N0ZXAiLCJyZWwiLCJpYXRpX3N0YW5kYXJkIiwiaWF0aV9zdGFuZGFyZF9kZXNjcmlwdGlvbiIsIm9yZ2FuaXNhdGlvbl9kYXRhX2hlYWRlciIsIm9yZ2FuaXNhdGlvbl9kYXRhX2Rlc2NyaXB0aW9uIiwibGlzdF9pdGVtcyIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJhY3Rpdml0eV9kYXRhX2hlYWRlciIsImFjdGl2aXR5X2RhdGFfZGVzY3JpcHRpb24iLCJzaXgiLCJzZXZlbiIsInB1Ymxpc2hpbmdfZGF0YV9laXRoZXJfaGVhZGVyIiwicHVibGlzaGluZ19kYXRhX2VpdGhlcl9kZXNjcmlwdGlvbiIsImRvd25sb2FkX3BkZl9oZWFkZXIiLCJkb3dubG9hZF9wZGZfZGVzY3JpcHRpb24iLCJpYXRpX3N0YW5kYXJkX3JlZmVyZW5jZV9oZWFkZXIiLCJpYXRpX3N0YW5kYXJkX3JlZmVyZW5jZV9kZXNjcmlwdGlvbiIsIl9jb21wb25lbnRfU2ltcGxlU3BhbiIsInB1Ymxpc2hpbmdfY2hlY2tsaXN0Iiwib3JnYW5pc2F0aW9uc191c2luZ19pYXRpX2xhYmVsIiwicmVnaXN0ZXJfYV9wdWJsaXNoZXJfaGVhZGVyIiwicmVnaXN0ZXJfYV9wdWJsaXNoZXJfZGVzY3JpcHRpb24iLCJwdWJsaXNoX3lvdXJfb3JnYW5pc2F0aW9uX2hlYWRlciIsInB1Ymxpc2hfeW91cl9vcmdhbmlzYXRpb25fZGVzY3JpcHRpb24iLCJwdWJsaXNoX3lvdXJfYWN0aXZpdHlfaGVhZGVyIiwicHVibGlzaF95b3VyX2FjdGl2aXR5X2Rlc2NyaXB0aW9uIiwidW5kZXJzdGFuZF9mdXJ0aGVyX2RhdGFfaGVhZGVyIiwidW5kZXJzdGFuZF9mdXJ0aGVyX2RhdGFfZGVzY3JpcHRpb24iLCJydW5fYXV0b21hdGljX2NoZWNrc19oZWFkZXIiLCJydW5fYXV0b21hdGljX2NoZWNrc19kZXNjcmlwdGlvbiIsInB1Ymxpc2hfeW91cl9kYXRhX2hlYWRlciIsInB1Ymxpc2hfeW91cl9kYXRhX2Rlc2NyaXB0aW9uIiwiYWNjZXNzX3lvdXJfZGF0YV9oZWFkZXIiLCJhY2Nlc3NfeW91cl9kYXRhX2Rlc2NyaXB0aW9uIiwidXBkYXRlX2FuZF9pbXByb3ZlX2hlYWRlciIsInVwZGF0ZV9hbmRfaW1wcm92ZV9kZXNjcmlwdGlvbiIsInVwZGF0ZV9hbmRfaW1wb3J2ZV9kZXNjcmlwdGlvbiIsImluZm9ybWF0aW9uX2RvZXNudF9tYXRjaF9yZWdpc3RyeSIsImlmX3lvdV9hcmVfYWNjb3VudF9ob2xkZXIiLCJpYXRpX3JlZ2lzdHJ5IiwibWFrZV9zdXJlX3lvdXIiLCJvcmdhbmlzYXRpb25faWQiLCJtYXRjaF95b3VyX2lhdGlfcmVnaXN0cnlfaW5mbyIsImZvcl9tb3JlX2RldGFpbHMiLCJvdXRfb2YiLCJ3ZWJfbGFuZyIsInN1cHBvcnQiLCJzdXBwb3J0X2Rlc2NyaXB0aW9uIiwiaWF0aV9wdWJsaXNoZXIiLCJmb290ZXIiLCJkYXNoYm9hcmQiLCJhYm91dCIsInBhcnRfb2ZfaWF0aV91bmlmaWVkX2xhYmVsIiwiY29kZV9saWNlbnNlZF91bmRlcl9sYWJlbCIsImRvY3VtZW50YXRpb25fbGljZW5zZWRfdW5kZXJfbGFiZWwiLCJhbnlfcXVlc3Rpb25zX2NvbnRhY3RfbGFiZWwiLCJjb3B5cmlnaHRfbGFiZWwiLCJqb2luX25vdyIsImhvbWUiLCJqb2luX25vd19zZWN0aW9uIiwidG9fYmVnaW5fdGV4dCIsIm5ld190b19pYXRpX2xhYmVsIiwibmV3X3RvX2lhdGlfdGV4dCIsIm15X29yZ2FuaXNhdGlvbl9oYXNfcmVnaXN0ZXJlZF9sYWJlbCIsIm15X29yZ2FuaXNhdGlvbl9oYXNfcmVnaXN0ZXJlZF90ZXh0Iiwibm90X3N1cmVfd2hpY2hfb25lX2xhYmVsIiwiY29udGFjdF9zdXBwb3J0X2xhYmVsIiwic2lnbl9pbl9zZWN0aW9uIiwid2VsY29tZV9iYWNrX2xhYmVsIiwidXNlcm5hbWVfbGFiZWwiLCJlcnJvcl9pbnB1dCIsInBhc3N3b3JkX2xhYmVsIiwicGFzc3dvcmRfcGxhY2Vob2xkZXIiLCJmb3Jnb3RfcGFzc3dvcmRfbGFiZWwiLCJfY29tcG9uZW50X05hdkRyb3Bkb3duIiwiYWJvdXRfaG92ZXJfdGV4dCIsInB1Ymxpc2hpbmdfY2hlY2tsaXN0X2hvdmVyX3RleHQiLCJyZWFkX21vcmUiLCJpYXRpX3N0YW5kYXJkX2hvdmVyX3RleHQiLCJzZWVfYWxsX2RhdGFfZmllbGRzIiwic3VwcG9ydF9ob3Zlcl90ZXh0IiwiZ29fdG9fZGFzaGJvYXJkIiwidnVlM19zbW9vdGhfc2Nyb2xsXzEiLCJzdmdfdnVlM18xIiwiV2ViSGVhZGVyX3Z1ZV8xIiwiV2ViRm9vdGVyX3Z1ZV8xIiwiQWRtaW5Gb290ZXJfdnVlXzEiLCJXZWxjb21lUGFnZV92dWVfMSIsIlJlZ2lzdGVyUGFnZV92dWVfMSIsIkFib3V0UGFnZV92dWVfMSIsIlN1cHBvcnRQYWdlX3Z1ZV8xIiwiSWF0aVN0YW5kYXJkX3Z1ZV8xIiwiUHVibGlzaGluZ0NoZWNrbGlzdF92dWVfMSIsIklhdGlSZWdpc3RlclBhZ2VfdnVlXzEiLCJSZXN1bHREZXRhaWxfdnVlXzEiLCJSZXN1bHRMaXN0X3Z1ZV8xIiwiSW5kaWNhdG9yRGV0YWlsX3Z1ZV8xIiwiSW5kaWNhdG9yTGlzdF92dWVfMSIsIlBlcmlvZHNEZXRhaWxfdnVlXzEiLCJQZXJpb2RzTGlzdF92dWVfMSIsIlRyYW5zYWN0aW9uTGlzdF92dWVfMSIsIlRyYW5zYWN0aW9uRGV0YWlsX3Z1ZV8xIiwiRGVzY3JpcHRpb25Gb3JtX3Z1ZV8xIiwiRWxlbWVudHNOb3RlX3Z1ZV8xIiwiQWN0aXZpdHlJbmRleF92dWVfMSIsIkFkbWluSGVhZGVyX3Z1ZV8xIiwiQWN0aXZpdHlEZXRhaWxfdnVlXzEiLCJTaWRlYmFySGVscEJsb2NrX3Z1ZV8xIiwiQWN0aXZpdHlVcGxvYWRfdnVlXzEiLCJJbXBvcnRMaXN0X3Z1ZV8xIiwiU2V0dGluZ1BhZ2VfdnVlXzEiLCJBY3Rpdml0eURlZmF1bHRWYWx1ZV92dWVfMSIsIlJlc2V0UGFnZV92dWVfMSIsIlBhc3N3b3JkUmVjb3ZlcnlfdnVlXzEiLCJSZXNldFBhc3N3b3JkX3Z1ZV8xIiwiT3JnYW5pc2F0aW9uRGF0YV92dWVfMSIsIk9yZ2FuaXNhdGlvbkxpc3RfdnVlXzEiLCJBZG1pbkJhcl92dWVfMSIsImFwcCIsImNyZWF0ZUFwcCIsImNvbXBvbmVudCIsInVzZSIsImxhc3RTY3JvbGxUb3AiLCJhZmZpeFR5cGUiLCJzdGlja3lTaWRlYmFyIiwiZWwiLCJwYXJlbnRXcmFwcGVyIiwic3RpY2t5RWxlbWVudCIsImZpcnN0Q2hpbGQiLCJvZmZzZXRIZWlnaHQiLCJzdGlja3lDdXJyZW50VG9wIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwic3RpY2t5Q3VycmVudEJvdHRvbSIsImJvdHRvbSIsImVsV2lkdGgiLCJvZmZzZXRXaWR0aCIsImVsU2Nyb2xsTGVmdCIsImxlZnQiLCJlbFNjcm9sbFRvcCIsImVsU2Nyb2xsQm90dG9tIiwidmlld3BvcnRIZWlnaHQiLCJpbm5lckhlaWdodCIsImN1cnJlbnRXaW5kb3dzU2Nyb2xsUG9zaXRpb24iLCJwYWdlWU9mZnNldCIsInRhcmdldFNjcm9sbFBvc2l0aW9uIiwiZWxQYXJlbnQiLCJlbFBhcmVudEJvdHRvbSIsImlzU2Nyb2xsRG93biIsImlzU2Nyb2xsVXAiLCJoYW5kbGVTY3JvbGxEb3duIiwiaGFuZGxlU2Nyb2xsVXAiLCJmaXhTaWRlYmFyIiwiZ2V0RWxlbWVudEJ5SWQiLCJyZWN0IiwiY2xpZW50V2lkdGgiLCJkaXJlY3RpdmUiLCJtb3VudGVkIiwiYmluZGluZyIsInVubW91bnRlZCIsInBhcmVudCIsIm1vdW50IiwiZm9ybWF0X2RhdGUiLCJkYXRhXzEiLCJ2dWV4XzEiLCJtdXRhdGlvbnMiLCJtdXRhdGVTZWxlY3RlZEFjdGl2aXRpZXMiLCJwYXlsb2FkIiwiYWN0aW9ucyIsImNvbW1pdCIsImFjdGl2aXR5TGlzdFN0b3JlIiwiY3JlYXRlU3RvcmUiLCJtdXRhdGVVblB1Ymxpc2hlZCIsIm11dGF0ZVNob3dQdWJsaXNoZWQiLCJtdXRhdGVQdWJsaXNoRXJyb3JzIiwidXBkYXRlVW5QdWJsaXNoZWQiLCJ1cGRhdGVTaG93UHVibGlzaGVkIiwidXBkYXRlUHVibGlzaEVycm9ycyIsImFjdGl2aXR5RGV0YWlsU3RvcmUiLCJzdGF0ZV8xIiwibXV0YXRpb25fMSIsIk11dGF0aW9uVHlwZXMiLCJVUERBVEVfUFVCTElTSEVSX0lORk8iLCJVUERBVEVfUFVCTElTSElOR19FUlJPUiIsIlVQREFURV9ERUZBVUxUX0VSUk9SIiwiUmVzdWx0X3Z1ZV8xIiwiSWF0aUlkZW50aWZpZXJfdnVlXzEiLCJPdGhlcklkZW50aWZpZXJfdnVlXzEiLCJUaXRsZV92dWVfMSIsIkRlc2NyaXB0aW9uX3Z1ZV8xIiwiQWN0aXZpdHlEYXRlX3Z1ZV8xIiwiQ29udGFjdEluZm9fdnVlXzEiLCJQYXJ0aWNpcGF0aW5nT3JnX3Z1ZV8xIiwiUmVjaXBpZW50Q291bnRyeV92dWVfMSIsIlJlY2lwaWVudFJlZ2lvbl92dWVfMSIsIlRyYW5zYWN0aW9uc192dWVfMSIsIkxvY2F0aW9uX3Z1ZV8xIiwiU2VjdG9yX3Z1ZV8xIiwiTGVnYWN5RGF0YV92dWVfMSIsIkNvbmRpdGlvbnNfdnVlXzEiLCJSZWxhdGVkQWN0aXZpdHlfdnVlXzEiLCJQb2xpY3lNYXJrZXJfdnVlXzEiLCJUYWdfdnVlXzEiLCJIdW1hbml0YXJpYW5TY29wZV92dWVfMSIsIlBsYW5uZWREaXNidXJzZW1lbnRfdnVlXzEiLCJSZXBvcnRpbmdPcmdhbml6YXRpb25fdnVlXzEiLCJNZWFzdXJlX3Z1ZV8xIiwiSW5kaWNhdG9yQXNjZW5kaW5nX3Z1ZV8xIiwiQWdncmVnYXRpb25TdGF0dXNfdnVlXzEiLCJSZWZlcmVuY2VfdnVlXzEiLCJEb2N1bWVudExpbmtfdnVlXzEiLCJCYXNlbGluZV92dWVfMSIsIlBlcmlvZF92dWVfMSIsIlRhcmdldFZhbHVlX3Z1ZV8xIiwiQWN0dWFsVmFsdWVfdnVlXzEiLCJUaXRsZURlc2NyaXB0aW9uX3Z1ZV8xIiwiUmVzdWx0VHlwZV92dWVfMSIsIkFpZFR5cGVfdnVlXzEiLCJUcmFuc2FjdGlvblR5cGVfdnVlXzEiLCJUcmFuc2FjdGlvbkRhdGVfdnVlXzEiLCJWYWx1ZV92dWVfMSIsIlByb3ZpZGVyT3JnYW5pemF0aW9uX3Z1ZV8xIiwiUmVjZWl2ZXJPcmdhbml6YXRpb25fdnVlXzEiLCJEaXNidXJzZW1lbnRDaGFubmVsX3Z1ZV8xIiwiRmxvd1R5cGVfdnVlXzEiLCJGaW5hbmNlVHlwZV92dWVfMSIsIlRpZWRTdGF0dXNfdnVlXzEiLCJSZXBvcnRpbmdPcmdhbmlzYXRpb25fdnVlXzEiLCJUb3RhbEJ1ZGdldF92dWVfMSIsIlJlcG9ydGluZ09yZ0J1ZGdldF92dWVfMSIsIlJlcG9ydGluZ1JlZ2lvbkJ1ZGdldF92dWVfMSIsIlJlY2lwaWVudENvdW50cnlCdWRnZXRfdnVlXzEiLCJUb3RhbEV4cGVuZGl0dXJlX3Z1ZV8xIiwiU2lnbkluIiwiSm9pbk5vdyIsInBhZ2VDb250ZW50IiwidG9nZ2xlUGFnZSIsIl9jcmVhdGVFbGVtZW50QmxvY2siLCJfY3JlYXRlRWxlbWVudFZOb2RlIiwiX3RvRGlzcGxheVN0cmluZyIsInlvdXJfZW1haWxfaGFzX2JlZW5fc2VudF93aXRoX2xhYmVsIiwiX2NyZWF0ZVZOb2RlIiwid2hhdF9pc19pYXRpX3B1Ymxpc2hlcl9oZWFkZXIiLCJ3aGF0X2lzX2lhdGlfcHVibGlzaGVyX2Rlc2NyaXB0aW9uIiwidXNlX2lhdGlfcHVibGlzaGVyX3RvX2hlYWRlciIsInVzZV9pYXRpX3B1Ymxpc2hlcl90b19kZXNjcmlwdGlvbiIsImRldmVsb3BtZW50X29mX2lhdGlfaGVhZGVyIiwiZGV2ZWxvcG1lbnRfb2ZfaWF0aV9kZXNjcmlwdGlvbiIsImlhdGlfcHVibGlzaGluZ190b29sX2hlYWRlciIsImlhdGlfcHVibGlzaGluZ190b29sX3NlY3Rpb24iLCJ3ZWxjb21lX3RleHQiLCJoYXZlbnRfcmVnaXN0ZXJlZF9sYWJlbCIsImFscmVhZHlfaGF2ZV9hY2NvdW50X2xhYmVsIiwiX2NyZWF0ZUJsb2NrIiwiX2NvbXBvbmVudF9TaWduSW4iLCJfY29tcG9uZW50X0pvaW5Ob3ciXSwic291cmNlUm9vdCI6IiJ9
\ No newline at end of file
diff --git a/public/js/vendor.js b/public/js/vendor.js
index eb7b12fdbd..c1a31fe372 100644
--- a/public/js/vendor.js
+++ b/public/js/vendor.js
@@ -83386,4 +83386,4 @@ exports.install = function(){}
/***/ })
}]);
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxRUFBcUUsc0RBQVM7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGlCQUFpQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiw2Q0FBSTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixLQUFxQztBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksb0RBQU87QUFDbkIsNEJBQTRCLGlCQUFpQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGtCQUFrQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsb0RBQU87QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbURBQU07QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxLQUFxQztBQUM5QztBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0JBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLEtBQXFDO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHNCQUFzQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksdUJBQXVCO0FBQ25DLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx1Q0FBdUM7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsdUJBQXVCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCxpREFBSTtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksTUFBTTtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxPQUFPO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7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QUFDQTtBQUNBLEtBQUssSUFBcUM7QUFDMUMsSUFBSSwwREFBYTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLG1EQUFNO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsYUFBYTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixhQUFhO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxnQkFBZ0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDhNQUE4TTtBQUMxTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG9EQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWcyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDbnNQbitCO0FBQzNWO0FBQ3VQOztBQUV6UjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsS0FBSztBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsUUFBUTtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0JBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsY0FBYyxHQUFHLE9BQU87QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0JBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsc0JBQXNCO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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Q0E7O0FBRUE7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakIsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0MsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7O0FBRUE7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEIsMENBQUs7QUFDL0I7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVCxPQUFPOztBQUVQLEtBQUssSUFBSSxlQUFlO0FBQ3hCOztBQUVBOztBQUVBO0FBQ0EsNERBQTRELFdBQVc7QUFDdkU7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLEVBQUUsMENBQUs7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVILEVBQUUsMENBQUs7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLElBQUksWUFBWTs7QUFFbkIsRUFBRSwwQ0FBSztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSCxFQUFFLDBDQUFLOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksRUFBRSwyQ0FBTTs7QUFFWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLGtCQUFrQiw2Q0FBUTtBQUMxQjtBQUNBLEdBQUc7O0FBRUgsaUJBQWlCLDZDQUFRO0FBQ3pCO0FBQ0EsR0FBRzs7QUFFSCx5QkFBeUIsNkNBQVE7QUFDakM7QUFDQSxHQUFHOztBQUVILHlCQUF5Qiw2Q0FBUTtBQUNqQztBQUNBLEdBQUc7O0FBRUgsdUJBQXVCLDZDQUFRO0FBQy9CO0FBQ0EsR0FBRzs7QUFFSCxvQkFBb0IsNkNBQVE7QUFDNUI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBLG9CQUFvQiw2Q0FBUTtBQUM1QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7QUFFSCxvQkFBb0IsNkNBQVE7QUFDNUI7QUFDQSxHQUFHO0FBQ0g7QUFDQSx5Q0FBeUMsNkNBQVE7QUFDakQ7QUFDQSxHQUFHOztBQUVILHdDQUF3Qyw2Q0FBUTtBQUNoRDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0Esd0NBQXdDLDZDQUFRO0FBQ2hEO0FBQ0E7QUFDQSxHQUFHOztBQUVILHFDQUFxQyw2Q0FBUTtBQUM3QztBQUNBLEdBQUc7O0FBRUgscUNBQXFDLDZDQUFRO0FBQzdDO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsSUFBSSw2Q0FBUTtBQUNaO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxJQUFJLDZDQUFRO0FBQ1o7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsRUFBRSwwQ0FBSztBQUNQO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVILEVBQUUsMENBQUs7QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTSw2Q0FBUTtBQUNkO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRzs7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QUNBOztBQUVBLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQixPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQixPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVLDhDQUFTLElBQUksdURBQWtCO0FBQ3pDO0FBQ0E7QUFDQSxXQUFXLG1EQUFjO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsSUFBSSx1REFBa0I7QUFDdEI7QUFDQSxTQUFTLDhDQUFTLElBQUksdURBQWtCLFVBQVUsK0NBQVU7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsa0RBQWE7QUFDMUQ7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFRLHVEQUFrQjtBQUMxQixJQUFJLHVEQUFrQjtBQUN0QjtBQUNBLFNBQVMsOENBQVMsSUFBSSx1REFBa0I7QUFDeEM7QUFDQSxpQkFBaUIsbURBQWM7QUFDL0IsU0FBUztBQUNULFdBQVcsOENBQVMsUUFBUSx1REFBa0IsQ0FBQyx5Q0FBUSxRQUFRLCtDQUFVO0FBQ3pFLG1CQUFtQiwrQ0FBVTtBQUM3QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsZUFBZSw4Q0FBUyxJQUFJLHVEQUFrQjtBQUM5Qyx1QkFBdUIsbURBQWM7QUFDckM7QUFDQSxlQUFlO0FBQ2YsZ0JBQWdCLG9EQUFlLENBQUMsb0RBQWU7QUFDL0M7QUFDQSxxQkFBcUIsOENBQVMsSUFBSSx1REFBa0I7QUFDcEQ7QUFDQSw2QkFBNkIsbURBQWM7QUFDM0M7QUFDQSxxQkFBcUI7QUFDckIsc0JBQXNCLHVEQUFrQjtBQUN4QywrQkFBK0IsbURBQWM7QUFDN0MsdUJBQXVCO0FBQ3ZCO0FBQ0Esb0JBQW9CLHVEQUFrQjtBQUN0QztBQUNBO0FBQ0EsV0FBVztBQUNYLFVBQVUsdURBQWtCO0FBQzVCLG1CQUFtQixtREFBYztBQUNqQztBQUNBLFdBQVc7QUFDWCxZQUFZLHVEQUFrQjtBQUM5QixZQUFZLHVEQUFrQjtBQUM5QixxQkFBcUIsbURBQWM7QUFDbkMsYUFBYSxFQUFFLG9EQUFlO0FBQzlCLFlBQVksdURBQWtCO0FBQzlCO0FBQ0EsaUJBQWlCLDhDQUFTLElBQUksdURBQWtCLFVBQVUsK0NBQVU7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsa0RBQWE7QUFDbEU7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixnQkFBZ0IsdURBQWtCO0FBQ2xDO0FBQ0E7QUFDQSxRQUFRLHVEQUFrQjtBQUMxQixJQUFJLHVEQUFrQjtBQUN0QjtBQUNBLFFBQVEsK0NBQVU7QUFDbEI7QUFDQTtBQUNBLFNBQVM7QUFDVCxVQUFVLHVEQUFrQjtBQUM1QixtQkFBbUIsbURBQWM7QUFDakMsV0FBVztBQUNYLFlBQVksdURBQWtCO0FBQzlCLHFCQUFxQixtREFBYztBQUNuQztBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsUUFBUSx1REFBa0I7QUFDMUIsSUFBSSx1REFBa0I7QUFDdEI7QUFDQSxRQUFRLCtDQUFVO0FBQ2xCO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsVUFBVSx1REFBa0I7QUFDNUIsbUJBQW1CLG1EQUFjO0FBQ2pDO0FBQ0EsV0FBVztBQUNYO0FBQ0EsUUFBUSx1REFBa0I7QUFDMUIsSUFBSSx1REFBa0I7QUFDdEI7QUFDQSxRQUFRLCtDQUFVLCtCQUErQixRQUFRO0FBQ3pELFVBQVUsdURBQWtCO0FBQzVCLG1CQUFtQixtREFBYztBQUNqQyxXQUFXLEVBQUUsb0RBQWU7QUFDNUI7QUFDQSxRQUFRLHVEQUFrQjtBQUMxQixJQUFJLHVEQUFrQjtBQUN0QjtBQUNBLFFBQVEsK0NBQVUsMkJBQTJCLFFBQVE7QUFDckQsVUFBVSx1REFBa0I7QUFDNUIsbUJBQW1CLG1EQUFjO0FBQ2pDLFdBQVc7QUFDWDtBQUNBLFFBQVEsdURBQWtCO0FBQzFCLElBQUksdURBQWtCO0FBQ3RCO0FBQ0EsUUFBUSwrQ0FBVTtBQUNsQjtBQUNBO0FBQ0EsU0FBUztBQUNULFVBQVUsdURBQWtCO0FBQzVCLG1CQUFtQixtREFBYztBQUNqQztBQUNBLFdBQVc7QUFDWCxZQUFZLHVEQUFrQjtBQUM5QixxQkFBcUIsbURBQWM7QUFDbkMsYUFBYTtBQUNiO0FBQ0E7QUFDQSxRQUFRLHVEQUFrQjtBQUMxQixJQUFJLHVEQUFrQjtBQUN0QjtBQUNBLFFBQVEsK0NBQVUseUJBQXlCLFFBQVE7QUFDbkQsVUFBVSx1REFBa0I7QUFDNUIsbUJBQW1CLG1EQUFjO0FBQ2pDO0FBQ0EsV0FBVztBQUNYO0FBQ0EsUUFBUSx1REFBa0I7QUFDMUIsSUFBSSx1REFBa0I7QUFDdEIsSUFBSSx1REFBa0I7QUFDdEIsYUFBYSxtREFBYztBQUMzQjtBQUNBLEtBQUs7QUFDTCxNQUFNLCtDQUFVLDhCQUE4QixrQkFBa0I7QUFDaEUsTUFBTSx1REFBa0I7QUFDeEIsZUFBZSxtREFBYztBQUM3QjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsYUFBYSw4Q0FBUyxRQUFRLHVEQUFrQixDQUFDLHlDQUFRLElBQUksUUFBUSxFQUFFLCtDQUFVO0FBQ2pGLHNCQUFzQiw4Q0FBUyxJQUFJLHVEQUFrQjtBQUNyRCx1QkFBdUIsbURBQWM7QUFDckM7QUFDQSxlQUFlO0FBQ2YsZ0JBQWdCLHVEQUFrQjtBQUNsQyx5QkFBeUIsbURBQWM7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsa0JBQWtCLCtDQUFVO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixvQkFBb0IsdURBQWtCO0FBQ3RDO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQWtCO0FBQ2xDLHlCQUF5QixtREFBYztBQUN2QztBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLG1CQUFtQiw4Q0FBUyxRQUFRLHVEQUFrQixDQUFDLHlDQUFRLFFBQVEsK0NBQVU7QUFDakYsNEJBQTRCLDhDQUFTLElBQUksdURBQWtCO0FBQzNELDZCQUE2QixtREFBYztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLHNCQUFzQiwrQ0FBVTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2Qix3QkFBd0IsdURBQWtCO0FBQzFDO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBLGFBQWE7QUFDYixhQUFhLDhDQUFTLFFBQVEsdURBQWtCLENBQUMseUNBQVEsSUFBSSxRQUFRLEVBQUUsK0NBQVU7QUFDakYsc0JBQXNCLDhDQUFTLElBQUksdURBQWtCO0FBQ3JEO0FBQ0E7QUFDQSx1QkFBdUIsbURBQWM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmLGdCQUFnQiwrQ0FBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixrQkFBa0IsdURBQWtCO0FBQ3BDO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFVBQVUsK0NBQVUsNkJBQTZCLFFBQVE7QUFDekQsWUFBWSx1REFBa0I7QUFDOUIscUJBQXFCLG1EQUFjO0FBQ25DO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsVUFBVSx1REFBa0I7QUFDNUI7QUFDQSxVQUFVLCtDQUFVLDZCQUE2QixRQUFRO0FBQ3pELFlBQVksdURBQWtCO0FBQzlCLHFCQUFxQixtREFBYztBQUNuQztBQUNBLGFBQWE7QUFDYjtBQUNBLFVBQVUsdURBQWtCO0FBQzVCO0FBQ0EsV0FBVyw4Q0FBUyxJQUFJLHVEQUFrQjtBQUMxQztBQUNBLG1CQUFtQixtREFBYztBQUNqQztBQUNBLFdBQVc7QUFDWCxZQUFZLCtDQUFVLDRCQUE0QjtBQUNsRCxjQUFjLHVEQUFrQjtBQUNoQyx1QkFBdUIsbURBQWM7QUFDckMsZUFBZTtBQUNmO0FBQ0E7QUFDQSxVQUFVLHVEQUFrQjtBQUM1QixNQUFNLCtDQUFVLDZCQUE2QixrQkFBa0I7QUFDL0Q7QUFDQSxJQUFJLHVEQUFrQjtBQUN0QjtBQUNBLFNBQVMsOENBQVMsSUFBSSx1REFBa0I7QUFDeEM7QUFDQSxpQkFBaUIsbURBQWM7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULFFBQVEsdURBQWtCO0FBQzFCLElBQUksdURBQWtCO0FBQ3RCO0FBQ0EsU0FBUyw4Q0FBUyxJQUFJLHVEQUFrQixDQUFDLHlDQUFRLElBQUksUUFBUTtBQUM3RDtBQUNBLGVBQWUsOENBQVMsSUFBSSx1REFBa0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2YsZUFBZSw4Q0FBUyxRQUFRLHVEQUFrQixDQUFDLHlDQUFRLElBQUksUUFBUSxFQUFFLCtDQUFVO0FBQ25GLHdCQUF3Qiw4Q0FBUyxJQUFJLHVEQUFrQjtBQUN2RDtBQUNBLDJCQUEyQixZQUFZO0FBQ3ZDO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsZUFBZTtBQUNmO0FBQ0EsUUFBUSx1REFBa0I7QUFDMUIsSUFBSSx1REFBa0I7QUFDdEIsSUFBSSx1REFBa0I7QUFDdEIsYUFBYSxtREFBYztBQUMzQixLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUU2Qjs7Ozs7Ozs7Ozs7QUM3akY3Qiw0RkFBdUM7Ozs7Ozs7Ozs7O0FDQTFCOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTtBQUNoQyxhQUFhLG1CQUFPLENBQUMsaUVBQWtCO0FBQ3ZDLGNBQWMsbUJBQU8sQ0FBQyx5RUFBc0I7QUFDNUMsZUFBZSxtQkFBTyxDQUFDLDJFQUF1QjtBQUM5QyxvQkFBb0IsbUJBQU8sQ0FBQyw2RUFBdUI7QUFDbkQsbUJBQW1CLG1CQUFPLENBQUMsbUZBQTJCO0FBQ3RELHNCQUFzQixtQkFBTyxDQUFDLHlGQUE4QjtBQUM1RCxrQkFBa0IsbUJBQU8sQ0FBQyx5RUFBcUI7QUFDL0MsZUFBZSxtQkFBTyxDQUFDLHlEQUFhO0FBQ3BDLGFBQWEsbUJBQU8sQ0FBQyxtRUFBa0I7O0FBRXZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkNBQTZDO0FBQzdDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOzs7Ozs7Ozs7Ozs7QUNuTmE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLGtEQUFTO0FBQzdCLFdBQVcsbUJBQU8sQ0FBQyxnRUFBZ0I7QUFDbkMsWUFBWSxtQkFBTyxDQUFDLDREQUFjO0FBQ2xDLGtCQUFrQixtQkFBTyxDQUFDLHdFQUFvQjtBQUM5QyxlQUFlLG1CQUFPLENBQUMsd0RBQVk7O0FBRW5DO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLGtFQUFpQjtBQUN4QyxvQkFBb0IsbUJBQU8sQ0FBQyw0RUFBc0I7QUFDbEQsaUJBQWlCLG1CQUFPLENBQUMsc0VBQW1CO0FBQzVDLGdCQUFnQix1RkFBNkI7O0FBRTdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLG9FQUFrQjs7QUFFekM7QUFDQSxxQkFBcUIsbUJBQU8sQ0FBQyxnRkFBd0I7O0FBRXJEOztBQUVBO0FBQ0EseUJBQXNCOzs7Ozs7Ozs7Ozs7QUN4RFQ7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOzs7Ozs7Ozs7Ozs7QUNsQmE7O0FBRWIsYUFBYSxtQkFBTyxDQUFDLDJEQUFVOztBQUUvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGdCQUFnQixPQUFPO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7QUN0SGE7O0FBRWI7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNKYTs7QUFFYixZQUFZLG1CQUFPLENBQUMscURBQVk7QUFDaEMsZUFBZSxtQkFBTyxDQUFDLHlFQUFxQjtBQUM1Qyx5QkFBeUIsbUJBQU8sQ0FBQyxpRkFBc0I7QUFDdkQsc0JBQXNCLG1CQUFPLENBQUMsMkVBQW1CO0FBQ2pELGtCQUFrQixtQkFBTyxDQUFDLG1FQUFlO0FBQ3pDLGdCQUFnQixtQkFBTyxDQUFDLDJFQUFzQjs7QUFFOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRDtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLEtBQUs7QUFDTDtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLENBQUM7O0FBRUQ7Ozs7Ozs7Ozs7OztBQzFKYTs7QUFFYixZQUFZLG1CQUFPLENBQUMscURBQVk7O0FBRWhDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxVQUFVO0FBQ3JCO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBOzs7Ozs7Ozs7Ozs7QUNyRGE7O0FBRWIsb0JBQW9CLG1CQUFPLENBQUMsbUZBQTBCO0FBQ3RELGtCQUFrQixtQkFBTyxDQUFDLCtFQUF3Qjs7QUFFbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNuQmE7O0FBRWIsbUJBQW1CLG1CQUFPLENBQUMscUVBQWdCOztBQUUzQztBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNqQmE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZO0FBQ2hDLG9CQUFvQixtQkFBTyxDQUFDLHVFQUFpQjtBQUM3QyxlQUFlLG1CQUFPLENBQUMsdUVBQW9CO0FBQzNDLGVBQWUsbUJBQU8sQ0FBQyx5REFBYTtBQUNwQyxhQUFhLG1CQUFPLENBQUMsbUVBQWtCOztBQUV2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0IsdUNBQXVDO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDs7Ozs7Ozs7Ozs7O0FDdEZhOztBQUViO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUMxQ2E7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLG1EQUFVOztBQUU5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDJCQUEyQjtBQUMzQixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOzs7Ozs7Ozs7Ozs7QUNsR2E7O0FBRWIsa0JBQWtCLG1CQUFPLENBQUMsbUVBQWU7O0FBRXpDO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUN4QmE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZO0FBQ2hDLGVBQWUsbUJBQU8sQ0FBQywyREFBZTs7QUFFdEM7QUFDQTtBQUNBO0FBQ0EsV0FBVyxlQUFlO0FBQzFCLFdBQVcsT0FBTztBQUNsQixXQUFXLGdCQUFnQjtBQUMzQixhQUFhLEdBQUc7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOzs7Ozs7Ozs7Ozs7O0FDckJhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxrREFBUztBQUM3QiwwQkFBMEIsbUJBQU8sQ0FBQyw4RkFBK0I7QUFDakUsbUJBQW1CLG1CQUFPLENBQUMsMEVBQXFCOztBQUVoRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsbUJBQU8sQ0FBQyxnRUFBZ0I7QUFDdEMsSUFBSSxnQkFBZ0IsT0FBTyxtREFBbUQsT0FBTztBQUNyRjtBQUNBLGNBQWMsbUJBQU8sQ0FBQyxpRUFBaUI7QUFDdkM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3RUFBd0U7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDs7Ozs7Ozs7Ozs7QUNySUE7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ0ZhOztBQUViO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDVmE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ3JFYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ2JhOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTs7QUFFaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLDJDQUEyQztBQUMzQyxTQUFTOztBQUVUO0FBQ0EsNERBQTRELHdCQUF3QjtBQUNwRjtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxnQ0FBZ0MsY0FBYztBQUM5QztBQUNBO0FBQ0EsS0FBSztBQUNMOzs7Ozs7Ozs7Ozs7QUNwRGE7O0FBRWI7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDYmE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZOztBQUVoQztBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ1phOztBQUViLFlBQVksbUJBQU8sQ0FBQyxxREFBWTs7QUFFaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBYyxRQUFRO0FBQ3RCLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsUUFBUTtBQUN0QixnQkFBZ0IsU0FBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7Ozs7Ozs7Ozs7OztBQ25FYTs7QUFFYixZQUFZLG1CQUFPLENBQUMsbURBQVU7O0FBRTlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7Ozs7Ozs7Ozs7O0FDWGE7O0FBRWIsWUFBWSxtQkFBTyxDQUFDLHFEQUFZOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCOztBQUVsQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOzs7Ozs7Ozs7Ozs7QUNwRGE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQzFCYTs7QUFFYixjQUFjLHdGQUE4Qjs7QUFFNUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBLFdBQVcsbUJBQW1CO0FBQzlCLFdBQVcsU0FBUztBQUNwQixXQUFXLFNBQVM7QUFDcEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxVQUFVO0FBQ3JCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNqRmE7O0FBRWIsV0FBVyxtQkFBTyxDQUFDLGdFQUFnQjs7QUFFbkM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6QixXQUFXLFVBQVU7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9DQUFvQyxPQUFPO0FBQzNDO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixTQUFTLEdBQUcsU0FBUztBQUM1Qyw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDRCQUE0QjtBQUM1QixNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBLHdDQUF3QyxPQUFPO0FBQy9DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUM1VkEsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsNERBQWMsR0FBRyxtQkFBTyxDQUFDLDhDQUFPLEdBQUcsbUJBQU8sQ0FBQyxvREFBVSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0k7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFNBQVM7QUFDbEM7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFNBQVM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQ0FBaUMsZ0JBQWdCO0FBQ2pEO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxvQ0FBb0MsbUJBQW1CO0FBQ3ZEOztBQUVBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsaUNBQWlDLGlCQUFpQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjs7QUFFQSxDQUFDOzs7Ozs7Ozs7O0FDek9ELENBQUM7QUFDRCxLQUFLLElBQTJCO0FBQ2hDO0FBQ0EscUNBQXFDLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLG9EQUFVO0FBQzFFO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFFBQVE7QUFDM0IsbUJBQW1CLFFBQVE7QUFDM0IsbUJBQW1CLFFBQVE7QUFDM0IsbUJBQW1CLFFBQVE7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixXQUFXO0FBQ2xDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFdBQVc7QUFDL0Isb0JBQW9CLFFBQVE7QUFDNUI7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0VBQStFLGlCQUFpQjtBQUNoRztBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtFQUErRSxpQkFBaUI7QUFDaEc7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QixvQkFBb0IsV0FBVztBQUMvQixvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQSx5R0FBeUcsaUJBQWlCO0FBQzFIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0EscUJBQXFCLFdBQVc7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBLHFCQUFxQixXQUFXO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTs7QUFFVjs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCOztBQUV0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFFBQVE7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUIsb0JBQW9CLE9BQU87QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QixvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCLG9CQUFvQixPQUFPO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixPQUFPO0FBQy9CLHdCQUF3QixRQUFRO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixPQUFPO0FBQy9CLHdCQUF3QixRQUFRO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLGVBQWU7QUFDNUM7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLG1CQUFtQjtBQUNoRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFdBQVc7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFFBQVE7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixNQUFNO0FBQzdCLHVCQUF1QixTQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixXQUFXO0FBQzlCLG1CQUFtQixXQUFXO0FBQzlCLG1CQUFtQixXQUFXO0FBQzlCLG1CQUFtQixXQUFXO0FBQzlCLG1CQUFtQixRQUFRO0FBQzNCLG1CQUFtQixNQUFNO0FBQ3pCLG1CQUFtQixTQUFTO0FBQzVCLG1CQUFtQixRQUFRO0FBQzNCLG1CQUFtQixRQUFRO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixjQUFjO0FBQ2xDO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQSxxQkFBcUIsY0FBYztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBDQUEwQyxvQ0FBb0M7QUFDOUU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixXQUFXO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUIsb0JBQW9CLGtCQUFrQjtBQUN0QyxvQkFBb0IsV0FBVztBQUMvQixvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixjQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtIQUFrSCxRQUFRO0FBQzFILGtIQUFrSCx5Q0FBeUM7QUFDM0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QixvQkFBb0IscUJBQXFCO0FBQ3pDLG9CQUFvQixXQUFXO0FBQy9CLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0EscUJBQXFCLFdBQVc7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVIQUF1SCx5Q0FBeUM7QUFDaEssb0hBQW9ILHlDQUF5QztBQUM3SjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHFCQUFxQjtBQUN6QyxvQkFBb0IsV0FBVztBQUMvQjtBQUNBLHFCQUFxQixjQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QixvQkFBb0IsUUFBUTtBQUM1QixvQkFBb0IsUUFBUTtBQUM1QixvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0EscUJBQXFCLGNBQWM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx1Q0FBdUMsMkJBQTJCOztBQUVsRTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwQ0FBMEMsOEJBQThCO0FBQ3hFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixLQUFLO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUIsb0JBQW9CLGtCQUFrQjtBQUN0QyxvQkFBb0IsUUFBUTtBQUM1QixvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixjQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBIQUEwSCxpQ0FBaUM7QUFDM0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUIsb0JBQW9CLHFCQUFxQjtBQUN6QyxvQkFBb0IsUUFBUTtBQUM1QixvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixXQUFXO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrSEFBK0gsaUNBQWlDO0FBQ2hLLDRIQUE0SCxpQ0FBaUM7QUFDN0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLEVBQUU7OztBQUdGLENBQUM7Ozs7Ozs7Ozs7QUN6M0JELENBQUM7QUFDRCxLQUFLLElBQTJCO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkIscUJBQU0sb0JBQW9CLHFCQUFNO0FBQzNELGtCQUFrQixxQkFBTTtBQUN4Qjs7QUFFQTtBQUNBLG9CQUFvQixVQUFjO0FBQ2xDO0FBQ0Esc0JBQXNCLG1CQUFPLENBQUMscUJBQVE7QUFDdEMsV0FBVztBQUNYOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFFBQVE7QUFDaEM7QUFDQSx5QkFBeUIsUUFBUTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsY0FBYzs7QUFFZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixRQUFRO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYzs7QUFFZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsY0FBYzs7QUFFZDtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsUUFBUTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYzs7QUFFZDtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsUUFBUTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixPQUFPO0FBQzFCLG1CQUFtQixRQUFRO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQixvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsU0FBUztBQUM3QjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFdBQVc7QUFDL0I7QUFDQSxxQkFBcUIsV0FBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLGtCQUFrQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQSxpQ0FBaUMsa0JBQWtCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsV0FBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixXQUFXO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw2QkFBNkIsWUFBWTtBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFdBQVc7QUFDL0I7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkIsY0FBYztBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQSxxQkFBcUIsV0FBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLGtCQUFrQjtBQUMvQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLGNBQWM7QUFDM0M7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixXQUFXO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkIscUJBQXFCO0FBQ2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFdBQVc7QUFDL0I7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixXQUFXO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixRQUFRO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFNBQVM7QUFDN0I7QUFDQSxxQkFBcUIsV0FBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0NBQXNDLHNCQUFzQjtBQUM1RDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixRQUFRO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQSxxQkFBcUIsV0FBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQSxxQkFBcUIsVUFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixVQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOzs7QUFHRjs7QUFFQSxDQUFDOzs7Ozs7Ozs7O0FDdHlCRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRO0FBQ3JEO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkIsY0FBYztBQUMzQztBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsaUNBQWlDLHNDQUFzQztBQUN2RTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0EscUJBQXFCLFdBQVc7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxQ0FBcUMsZ0JBQWdCO0FBQ3JEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsVUFBVTs7QUFFVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixxQkFBcUI7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjs7QUFFQSxDQUFDOzs7Ozs7Ozs7O0FDdklELENBQUM7QUFDRCxLQUFLLElBQTJCO0FBQ2hDO0FBQ0EscUNBQXFDLG1CQUFPLENBQUMsZ0RBQVE7QUFDckQ7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0Esb0JBQW9CLFNBQVM7QUFDN0I7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLGNBQWM7QUFDM0M7QUFDQTtBQUNBOztBQUVBOztBQUVBLGlDQUFpQyxzQ0FBc0M7QUFDdkU7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLG9CQUFvQixTQUFTO0FBQzdCO0FBQ0EscUJBQXFCLFdBQVc7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQ0FBaUMsZ0JBQWdCO0FBQ2pEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLHFCQUFxQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7O0FBRUEsQ0FBQzs7Ozs7Ozs7OztBQzNJRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRO0FBQ3JEO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZCQUE2QixjQUFjO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQSxxQkFBcUIsV0FBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLG9CQUFvQjtBQUNqRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLGNBQWM7QUFDM0M7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixXQUFXO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkIsb0JBQW9CO0FBQ2pEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUNwSkQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLGdEQUFRO0FBQzNGO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsUUFBUTtBQUMvQix1QkFBdUIsUUFBUTtBQUMvQix1QkFBdUIsUUFBUTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCxZQUFZO0FBQ3BFLHdEQUF3RCw4QkFBOEI7QUFDdEY7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isa0JBQWtCO0FBQ3RDLG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQSxxQkFBcUIsV0FBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlDQUFpQyxnQkFBZ0I7QUFDakQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDLGdCQUFnQixrQkFBa0I7QUFDbEMsZ0JBQWdCLFFBQVE7QUFDeEI7QUFDQSxpQkFBaUIsV0FBVztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3REFBd0QsWUFBWTtBQUNwRSx3REFBd0QsOEJBQThCO0FBQ3RGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7O0FBRUEsQ0FBQzs7Ozs7Ozs7OztBQ3JJRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRLEdBQUcsbUJBQU8sQ0FBQyw4REFBZTtBQUMvRTtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixjQUFjO0FBQ2xDO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBLHFCQUFxQixjQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyx3QkFBd0I7QUFDbEU7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUNqRUQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUTtBQUNyRDtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCLG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLHFCQUFxQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQSxxQkFBcUIsTUFBTTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBLHFCQUFxQixXQUFXO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sRUFBRTs7O0FBR0YsQ0FBQzs7Ozs7Ozs7OztBQzlJRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRLEdBQUcsbUJBQU8sQ0FBQyx3REFBWSxHQUFHLG1CQUFPLENBQUMsc0VBQW1CLEdBQUcsbUJBQU8sQ0FBQywwREFBYSxHQUFHLG1CQUFPLENBQUMsNERBQWMsR0FBRyxtQkFBTyxDQUFDLGtFQUFpQixHQUFHLG1CQUFPLENBQUMsOENBQU8sR0FBRyxtQkFBTyxDQUFDLGdEQUFRLEdBQUcsbUJBQU8sQ0FBQyxvREFBVSxHQUFHLG1CQUFPLENBQUMsb0RBQVUsR0FBRyxtQkFBTyxDQUFDLG9EQUFVLEdBQUcsbUJBQU8sQ0FBQyxvREFBVSxHQUFHLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLDBEQUFhLEdBQUcsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsb0RBQVUsR0FBRyxtQkFBTyxDQUFDLG9EQUFVLEdBQUcsbUJBQU8sQ0FBQyw4REFBZSxHQUFHLG1CQUFPLENBQUMsd0RBQVksR0FBRyxtQkFBTyxDQUFDLHdEQUFZLEdBQUcsbUJBQU8sQ0FBQyx3RUFBb0IsR0FBRyxtQkFBTyxDQUFDLHdEQUFZLEdBQUcsbUJBQU8sQ0FBQyx3REFBWSxHQUFHLG1CQUFPLENBQUMsZ0VBQWdCLEdBQUcsbUJBQU8sQ0FBQyxnRUFBZ0IsR0FBRyxtQkFBTyxDQUFDLGdFQUFnQixHQUFHLG1CQUFPLENBQUMsc0VBQW1CLEdBQUcsbUJBQU8sQ0FBQyxrRUFBaUIsR0FBRyxtQkFBTyxDQUFDLDREQUFjLEdBQUcsbUJBQU8sQ0FBQyw4Q0FBTyxHQUFHLG1CQUFPLENBQUMsMERBQWEsR0FBRyxtQkFBTyxDQUFDLDhDQUFPLEdBQUcsbUJBQU8sQ0FBQyxvREFBVSxHQUFHLG1CQUFPLENBQUMsa0VBQWlCO0FBQzl6QjtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7O0FBRUEsQ0FBQzs7Ozs7Ozs7OztBQ2pCRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRO0FBQ3JEO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkIsMEJBQTBCO0FBQ3ZEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUMzRUQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUTtBQUNyRDtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EseUJBQXlCLFFBQVE7QUFDakM7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0EsNkJBQTZCLFFBQVE7QUFDckM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQSxpQkFBaUIsV0FBVztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQyxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0EsaUJBQWlCLFdBQVc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUMzUUQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0U7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsZUFBZTtBQUN4QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOzs7QUFHRjs7QUFFQSxDQUFDOzs7Ozs7Ozs7O0FDL0VELENBQUM7QUFDRCxLQUFLLElBQTJCO0FBQ2hDO0FBQ0EscUNBQXFDLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLDhEQUFlO0FBQy9FO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EseUNBQXlDO0FBQ3pDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLGVBQWU7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjs7QUFFQTtBQUNBLEVBQUU7Ozs7O0FBS0Y7O0FBRUEsQ0FBQzs7Ozs7Ozs7OztBQ25IRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRLEdBQUcsbUJBQU8sQ0FBQyw4REFBZTtBQUMvRTtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLGVBQWU7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjs7QUFFQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUN6REQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0U7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUN2Q0QsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0U7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLGVBQWU7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjs7QUFFQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUNyREQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0U7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUNoREQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0U7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUMzQ0QsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0U7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUEsQ0FBQzs7Ozs7Ozs7OztBQ3ZDRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRLEdBQUcsbUJBQU8sQ0FBQyw4REFBZTtBQUMvRTtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBOzs7QUFHQTs7QUFFQSxDQUFDOzs7Ozs7Ozs7O0FDN0JELENBQUM7QUFDRCxLQUFLLElBQTJCO0FBQ2hDO0FBQ0EscUNBQXFDLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLDhEQUFlO0FBQy9FO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EseUNBQXlDLFFBQVE7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUM5Q0QsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLGdEQUFRO0FBQzNGO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsUUFBUTtBQUMvQix1QkFBdUIsUUFBUTtBQUMvQix1QkFBdUIsUUFBUTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCxZQUFZO0FBQ3BFLHdEQUF3RCw4QkFBOEI7QUFDdEY7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isa0JBQWtCO0FBQ3RDLG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQSxxQkFBcUIsV0FBVztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQ0FBaUMsZ0JBQWdCO0FBQ2pEO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHFDQUFxQyxzQkFBc0I7QUFDM0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEMsZ0JBQWdCLGtCQUFrQjtBQUNsQyxnQkFBZ0IsUUFBUTtBQUN4QjtBQUNBLGlCQUFpQixXQUFXO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCxZQUFZO0FBQ3BFLHdEQUF3RCw4QkFBOEI7QUFDdEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjs7QUFFQSxDQUFDOzs7Ozs7Ozs7O0FDaEpELENBQUM7QUFDRCxLQUFLLElBQTJCO0FBQ2hDO0FBQ0EscUNBQXFDLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLDREQUFjLEdBQUcsbUJBQU8sQ0FBQyw4Q0FBTyxHQUFHLG1CQUFPLENBQUMsb0RBQVUsR0FBRyxtQkFBTyxDQUFDLDhEQUFlO0FBQy9JO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsT0FBTztBQUNwQztBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxpQ0FBaUMsT0FBTztBQUN4QztBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7O0FBRUE7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLE9BQU87QUFDaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixPQUFPO0FBQ2hDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUM3TEQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsNERBQWMsR0FBRyxtQkFBTyxDQUFDLDhDQUFPLEdBQUcsbUJBQU8sQ0FBQyxvREFBVSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0k7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsT0FBTztBQUNwQztBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxpQ0FBaUMsT0FBTztBQUN4QztBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7O0FBRUE7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLE9BQU87QUFDaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixPQUFPO0FBQ2hDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUMvTEQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsNERBQWMsR0FBRyxtQkFBTyxDQUFDLDhDQUFPLEdBQUcsbUJBQU8sQ0FBQyxvREFBVSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0k7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZCQUE2QixTQUFTO0FBQ3RDO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0MsU0FBUztBQUM3QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBLFVBQVU7O0FBRVY7O0FBRUE7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHlCQUF5QixPQUFPO0FBQ2hDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsUUFBUTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7O0FBRUE7QUFDQSx5Q0FBeUMsT0FBTztBQUNoRDtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUMxSUQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUTtBQUNyRDtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLG1kQUFtZCwrQkFBK0I7QUFDbGY7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWOztBQUVBO0FBQ0EsNkJBQTZCLFFBQVE7QUFDckM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLFFBQVE7QUFDckM7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0EsbUJBQW1CLE1BQU07QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0EsbUJBQW1CLE1BQU07QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQSxpQkFBaUIsV0FBVztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQyxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0EsaUJBQWlCLFdBQVc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUMxUUQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUTtBQUNyRDtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZCQUE2QixRQUFRO0FBQ3JDO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0EsaUJBQWlCLFdBQVc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEMsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBLGlCQUFpQixXQUFXO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjs7QUFFQSxDQUFDOzs7Ozs7Ozs7O0FDckpELENBQUM7QUFDRCxLQUFLLElBQTJCO0FBQ2hDO0FBQ0EscUNBQXFDLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLG9EQUFVO0FBQzFFO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBLGlCQUFpQixXQUFXO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQSxpQkFBaUIsV0FBVztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7O0FBRUEsQ0FBQzs7Ozs7Ozs7OztBQy9FRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRO0FBQ3JEO0FBQ0EsTUFBTSxFQU9KO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsaUJBQWlCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZCQUE2QixRQUFRO0FBQ3JDO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBLGlCQUFpQixXQUFXO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQSxpQkFBaUIsV0FBVztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7O0FBRUEsQ0FBQzs7Ozs7Ozs7OztBQ3RNRCxDQUFDO0FBQ0QsS0FBSyxJQUEyQjtBQUNoQztBQUNBLHFDQUFxQyxtQkFBTyxDQUFDLGdEQUFRLEdBQUcsbUJBQU8sQ0FBQyx3REFBWTtBQUM1RTtBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFFBQVE7QUFDakM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixPQUFPO0FBQ2hDLDZCQUE2QixPQUFPO0FBQ3BDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EseUJBQXlCLFFBQVE7QUFDakM7QUFDQTs7QUFFQSw2QkFBNkIsT0FBTztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixRQUFRO0FBQ2pDO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFFBQVE7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0EsNkJBQTZCLFFBQVE7QUFDckM7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIscUJBQXFCO0FBQ2xEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlDQUFpQyxZQUFZO0FBQzdDO0FBQ0EsaUNBQWlDLE9BQU87QUFDeEM7QUFDQTtBQUNBLHFDQUFxQyxPQUFPO0FBQzVDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsT0FBTztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxPQUFPO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5Q0FBeUMsZ0JBQWdCO0FBQ3pEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUNBQWlDLE9BQU87QUFDeEMscUNBQXFDLE9BQU87QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkIsdUJBQXVCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLFFBQVE7QUFDckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0EsaUJBQWlCLFdBQVc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEMsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBLGlCQUFpQixXQUFXO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjs7QUFFQSxDQUFDOzs7Ozs7Ozs7O0FDclVELENBQUM7QUFDRCxLQUFLLElBQTJCO0FBQ2hDO0FBQ0EscUNBQXFDLG1CQUFPLENBQUMsZ0RBQVEsR0FBRyxtQkFBTyxDQUFDLHdEQUFZLEdBQUcsbUJBQU8sQ0FBQyxvREFBVTtBQUNqRztBQUNBLE1BQU0sRUFPSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQSxpQkFBaUIsV0FBVztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQyxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0EsaUJBQWlCLFdBQVc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUNsRkQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsd0RBQVk7QUFDNUU7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFFBQVE7QUFDakM7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZCQUE2QixRQUFRO0FBQ3JDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7O0FBRVY7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQSxpQkFBaUIsV0FBVztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQyxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0EsaUJBQWlCLFdBQVc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOztBQUVBLENBQUM7Ozs7Ozs7Ozs7QUNyVUQsQ0FBQztBQUNELEtBQUssSUFBMkI7QUFDaEM7QUFDQSxxQ0FBcUMsbUJBQU8sQ0FBQyxnREFBUSxHQUFHLG1CQUFPLENBQUMsNERBQWMsR0FBRyxtQkFBTyxDQUFDLDhDQUFPLEdBQUcsbUJBQU8sQ0FBQyxvREFBVSxHQUFHLG1CQUFPLENBQUMsOERBQWU7QUFDL0k7QUFDQSxNQUFNLEVBT0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZCQUE2QixRQUFRO0FBQ3JDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUNBQW1DLGNBQWM7QUFDakQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsaUNBQWlDLFFBQVE7QUFDekM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsT0FBTztBQUN4QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLFFBQVE7QUFDckM7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNB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O0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7Ozs7Ozs7Ozs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxNQUFNLEtBQTBCOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7OztBQUdBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7OztBQUdBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixFQUFFOztBQUVGO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBUyxZQUFZOztBQUVyQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUYsb0JBQW9COztBQUVwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRiw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBLG1CQUFtQixpQ0FBaUM7QUFDcEQsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFlBQVk7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVUsU0FBUztBQUNuQjtBQUNBOztBQUVBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVUsWUFBWTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsWUFBWTtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLFNBQVM7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esa0NBQWtDLElBQUk7QUFDdEM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsMkJBQTJCO0FBQzNCOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBOztBQUVBLGdCQUFnQixJQUFJOztBQUVwQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSwwQ0FBMEMsSUFBSTtBQUM5QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRixVQUFVOztBQUVWO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxhQUFhLDBCQUEwQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxVQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsV0FBVyxTQUFTO0FBQ3BCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsU0FBUyw2QkFBNkI7QUFDakQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQSxXQUFXLGlCQUFpQjtBQUM1QixhQUFhLHdCQUF3QjtBQUNyQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLGdCQUFnQjtBQUMzQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxnQkFBZ0I7QUFDM0IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFdBQVc7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLGVBQWU7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQSxpQ0FBaUMsTUFBTTtBQUN2QztBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUEsZUFBZTs7QUFFZixTQUFTOztBQUVUO0FBQ0EsU0FBUyxnQ0FBZ0M7QUFDekMsU0FBUyxtQkFBbUI7QUFDNUIsU0FBUyxxQ0FBcUM7QUFDOUMsU0FBUztBQUNULEVBQUU7O0FBRUY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixHQUFHOztBQUVIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsOERBQThEOztBQUU5RDtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFFBQVE7O0FBRVI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsK0RBQStEOztBQUUvRDtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DOztBQUVuQztBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSw2REFBNkQ7O0FBRTdEO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQzs7QUFFMUM7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTtBQUNBO0FBQ0EsUUFBUTs7QUFFUjtBQUNBOztBQUVBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsU0FBUztBQUNsQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBUyxTQUFTO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKLFNBQVMsU0FBUztBQUNsQjtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsaURBQWlEO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtEQUFrRDtBQUNsRCxXQUFXLDRDQUE0QztBQUN2RDtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsaUJBQWlCO0FBQzVCO0FBQ0EsV0FBVyxTQUFTO0FBQ3BCLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7O0FBRUEsRUFBRTs7OztBQUlGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBLFNBQVMsR0FBRztBQUNaO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7OztBQUdBOzs7O0FBSUE7O0FBRUE7O0FBRUE7QUFDQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBOztBQUVBLGVBQWUsU0FBUztBQUN4QjtBQUNBOztBQUVBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxNQUFNO0FBQ047O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLDJCQUEyQix3QkFBd0I7O0FBRW5EO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBLDJDQUEyQztBQUMzQyxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1COztBQUVuQjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGNBQWM7QUFDekI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSx5Q0FBeUMscUNBQXFDO0FBQzlFLHFDQUFxQyxzQ0FBc0M7QUFDM0UscUNBQXFDLHFDQUFxQztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULFFBQVE7QUFDUjtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsWUFBWTs7QUFFWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxXQUFXOztBQUVYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTs7QUFFWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUNBQXFDO0FBQ3JDLHNDQUFzQztBQUN0QyxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7Ozs7QUFLQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxXQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFLQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixhQUFhO0FBQ3JDLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLFNBQVM7QUFDN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0gsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7QUFDSjtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osRUFBRTtBQUNGO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7OztBQUdBOztBQUVBOzs7O0FBSUE7QUFDQTtBQUNBLEdBQUc7QUFDSCxlQUFlOztBQUVmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQUFTLGdCQUFnQjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0IsZ0JBQWdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7O0FBRUE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7O0FBRUEsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVMsT0FBTztBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0Esc0JBQXNCOztBQUV0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBUyxPQUFPO0FBQ2hCOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFdBQVc7O0FBRVg7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSw0Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsZUFBZSxzQkFBc0I7QUFDckM7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsZ0VBQWdFO0FBQ2hFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVyxjQUFjOztBQUV6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLG1CQUFtQjtBQUNyQzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLHVDQUF1QztBQUNsRTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsdURBQXVEO0FBQy9FOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxJQUFJO0FBQ0osRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sK0NBQStDO0FBQ3JEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVDQUF1QztBQUN2QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxlQUFlLG9DQUFvQztBQUNuRDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsRUFBRTs7O0FBR0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLDRDQUE0QyxPQUFPO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsOEJBQThCOztBQUU5QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FB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Q0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSw4REFBOEQ7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBUyxPQUFPOztBQUVoQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUEsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsZUFBZTtBQUNsQztBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjs7QUFFakI7QUFDQTs7QUFFQSxXQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxZQUFZLFNBQVM7QUFDckI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTs7QUFFWjtBQUNBO0FBQ0E7QUFDQSxTQUFTLE9BQU87QUFDaEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLGdCQUFnQjtBQUN6Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsa0RBQWtELDBCQUEwQjtBQUM1RTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFdBQVcsZ0JBQWdCO0FBQzNCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7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QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7OztBQUtGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7Ozs7QUFLRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQix1QkFBdUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQix1QkFBdUI7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGlCQUFpQix1QkFBdUI7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osRUFBRTs7QUFFRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7Ozs7O0FBS0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSxrQ0FBa0M7QUFDbEM7QUFDQTs7QUFFQSxLQUFLO0FBQ0w7O0FBRUEsS0FBSztBQUNMO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7OztBQUtGOzs7QUFHQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUNBQXVDO0FBQ3ZDO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEtBQUs7QUFDaEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsRUFBRTs7QUFFRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixvQ0FBb0M7O0FBRXBEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQSxjQUFjOztBQUVkOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUosR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSixHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkLE1BQU07QUFDTjs7QUFFQSxZQUFZO0FBQ1osSUFBSTtBQUNKO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7O0FBRWhCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7O0FBRWhCLHFEQUFxRDtBQUNyRDs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxtQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxVQUFVO0FBQ1Y7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQjtBQUNqQixTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1EOztBQUVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLDJCQUEyQjs7QUFFM0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGtDQUFrQzs7QUFFbEM7QUFDQSxzQkFBc0I7QUFDdEIsMkJBQTJCOztBQUUzQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUk7QUFDSixFQUFFOztBQUVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSixFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7O0FBRUEsb0RBQW9EO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx1QkFBdUI7QUFDbkMsWUFBWSx3QkFBd0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7Ozs7O0FBS0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEMsY0FBYyx1Q0FBdUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7Ozs7QUFLRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBLEVBQUU7Ozs7O0FBS0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKOztBQUVBO0FBQ0E7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOzs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EscURBQXFEO0FBQ3JEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjs7QUFFcEI7QUFDQTs7QUFFQTtBQUNBOztBQUVBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBLEVBQUU7O0FBRUY7QUFDQSxlQUFlLHFEQUFxRDtBQUNwRTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBLGVBQWUsa0NBQWtDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRztBQUNILEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7OztBQUtGOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBLEVBQUU7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBQUssSUFBMEM7QUFDL0MsQ0FBQyxpQ0FBa0IsRUFBRSxtQ0FBRTtBQUN2QjtBQUNBLEVBQUU7QUFBQSxrR0FBRTtBQUNKOzs7OztBQUtBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS0E7QUFDQSxFQUFFOzs7Ozs7Ozs7OztBQzVwVkY7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2YsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7Ozs7Ozs7Ozs7O0FDakZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUN0S0Q7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUNqRUQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Es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QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ2pFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNU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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7Ozs7Ozs7Ozs7O0FDN0REO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQzNJRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUNqSUQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLElBQUk7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUN0SUQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQzlMRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUN6RUQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxvQ0FBb0MsSUFBSTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQzVHRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQy9ERDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ3pGRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ3RGRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUN4RkQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7Ozs7Ozs7Ozs7O0FDcEdEO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsZ0NBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RDtBQUN6RDtBQUNBLDBEQUEwRDtBQUMxRDtBQUNBLGFBQWE7QUFDYjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckMsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxvQ0FBb0MsSUFBSTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7Ozs7Ozs7Ozs7O0FDcEhEO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUM5RUQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxvQ0FBb0MsSUFBSTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7Ozs7Ozs7Ozs7O0FDMUVEO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUM5RUQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxvQ0FBb0MsSUFBSTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQzlFRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUMxRUQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxvQ0FBb0MsSUFBSTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQzlFRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7Ozs7Ozs7Ozs7O0FDOUVEO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUM5RUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUM5RUQ7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ3RIRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ3hIRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ3hIRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ3hIRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUN4RkQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUMzRUQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUMzSEQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUN0SUQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUNwRUQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsb0NBQW9DLElBQUk7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ25FRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ2hGRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFDekIsQ0FBQyw0QkFBNEI7O0FBRTdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ2xMRDtBQUNBO0FBQ0E7O0FBRUEsQ0FBQztBQUNELEdBQUcsS0FDb0MsV0FBVyxtQkFBTyxDQUFDLGtEQUFXO0FBQ3JFLEdBQUcsQ0FDc0I7QUFD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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxT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QyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7Ozs7Ozs7Ozs7O0FDOUVEO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNk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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ3BIRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Es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NEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVCxvQ0FBb0MsSUFBSTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ2pMRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUEsQ0FBQzs7Ozs7Ozs7Ozs7QUM1RkQ7QUFDQTtBQUNBOztBQUVBLENBQUM7QUFDRCxHQUFHLEtBQ29DLFdBQVcsbUJBQU8sQ0FBQyxrREFBVztBQUNyRSxHQUFHLENBQ3NCO0FBQ3pCLENBQUMsNEJBQTRCOztBQUU3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLOztBQUVMOztBQUVBLENBQUM7Ozs7Ozs7Ozs7O0FDaEVEO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQzdERDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0QsR0FBRyxLQUNvQyxXQUFXLG1CQUFPLENBQUMsa0RBQVc7QUFDckUsR0FBRyxDQUNzQjtBQUN6QixDQUFDLDRCQUE0Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0JBQXdCLFNBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx3QkFBd0IseUJBQXlCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsWUFBWTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hELHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLElBQUk7QUFDeEI7QUFDQTs7QUFFQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx3R0FBd0csSUFBSSx3QkFBd0IsSUFBSSx1REFBdUQsSUFBSTtBQUNuTSxxRUFBcUUsSUFBSTtBQUN6RSw0QkFBNEI7QUFDNUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMkNBQTJDLFlBQVk7QUFDdkQ7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFlBQVk7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNENBQTRDLElBQUk7O0FBRWhEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsa0NBQWtDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isb0JBQW9CO0FBQzVDO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHFCQUFxQixFQUFFO0FBQ3ZCLHFCQUFxQixFQUFFO0FBQ3ZCLDBCQUEwQixFQUFFO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixJQUFJO0FBQzVCLHdCQUF3QixJQUFJO0FBQzVCLDZCQUE2QixJQUFJO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLElBQUk7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLE1BQU0sd0VBQXdFLE1BQU0sbUJBQW1CLE1BQU0scUJBQXFCLE1BQU0sRUFBRSxJQUFJO0FBQ2pLOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4Q0FBOEM7QUFDOUM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsY0FBYztBQUNsQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGlCQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsUUFBUTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3QkFBd0IsT0FBTztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLE9BQU87QUFDM0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE9BQU87QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0I7QUFDcEIsMkJBQTJCO0FBQzNCOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixVQUFVO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFFBQWE7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLCtCQUErQjtBQUNuRDtBQUNBOztBQUVBO0FBQ0EsZUFBZSxPQUFPO0FBQ3RCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsY0FBYztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxtQ0FBbUMsaUJBQWlCO0FBQ3BEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isb0JBQW9CO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixTQUFTO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCO0FBQ2xCOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLDRHQUE0RztBQUM1RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsdUJBQXVCO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxzQkFBc0I7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msc0JBQXNCO0FBQzFEO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsT0FBTztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHFDQUFxQyxPQUFPO0FBQzVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsT0FBTztBQUM1QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxPQUFPO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE9BQU87QUFDNUM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxPQUFPO0FBQzVDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxxQ0FBcUMsT0FBTztBQUM1QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHNCQUFzQixtQkFBbUI7QUFDekM7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLG9DQUFvQyxJQUFJO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxDQUFDOzs7Ozs7Ozs7OztBQ3BqTEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixzQkFBc0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHNDQUFzQzs7QUFFdEM7QUFDQTtBQUNBOztBQUVBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7Ozs7Ozs7Ozs7O0FDdkw3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxNQUFNLElBQTBDO0FBQ2hEO0FBQ0EsSUFBSSxpQ0FBTyxDQUFDLHlFQUFRLENBQUMsb0NBQUUsT0FBTztBQUFBO0FBQUE7QUFBQSxrR0FBQztBQUMvQixJQUFJLEtBQUssRUFxQk47QUFDSCxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxlQUFlO0FBQ3RCLFdBQVcsV0FBVyxPQUFPO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsbUJBQW1CO0FBQ25CLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixlQUFlLFFBQVE7QUFDdkI7QUFDQSxpQkFBaUIsUUFBUTtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHdCQUF3QixpQkFBaUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHVDQUF1QyxPQUFPO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxPQUFPO0FBQ3REOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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Q0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSxvQkFBb0IseUJBQXlCO0FBQzdDOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVAsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQSxzQkFBc0IsMEJBQTBCO0FBQ2hEOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLGdDQUFnQztBQUNoQyxRQUFRO0FBQ1I7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFVBQVU7QUFDVixrQ0FBa0M7QUFDbEM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLE1BQU07QUFDcEIsY0FBYyxPQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsTUFBTTtBQUNwQixjQUFjLE9BQU87QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUEsb0JBQW9CLGlCQUFpQjtBQUNyQzs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLGlCQUFpQjtBQUNyQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSw2QkFBNkI7QUFDN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkJBQTJCO0FBQzNCOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSx3QkFBd0IsaUJBQWlCO0FBQ3pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBLHNCQUFzQix3QkFBd0I7QUFDOUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLHNCQUFzQixzQkFBc0I7QUFDNUM7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQkFBc0I7QUFDdEI7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHNCQUFzQjtBQUN0Qjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7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RUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxrQ0FBa0MsUUFBUTtBQUMxQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsNEJBQTRCLEdBQUcsUUFBUTs7QUFFdkM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBLG9CQUFvQixpQkFBaUI7QUFDckM7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0JBQStCOztBQUUvQjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUEsb0JBQW9CLDZCQUE2QjtBQUNqRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7O0FBRXJDO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBOztBQUVBLG9CQUFvQixzQkFBc0I7QUFDMUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxvQkFBb0Isc0JBQXNCO0FBQzFDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx1QkFBdUIsZ0NBQWdDO0FBQ3ZEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQzs7QUFFQTtBQUNBLGdDQUFnQzs7QUFFaEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGdDQUFnQzs7QUFFaEMsd0NBQXdDLE9BQU87QUFDL0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsK0JBQStCO0FBQy9COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVO0FBQ1YsMkNBQTJDOztBQUUzQztBQUNBLFVBQVU7QUFDViwyQ0FBMkM7O0FBRTNDO0FBQ0EsVUFBVTtBQUNWLDZDQUE2Qzs7QUFFN0M7QUFDQSxVQUFVO0FBQ1YseUNBQXlDOztBQUV6QztBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnQ0FBZ0M7QUFDaEMsTUFBTTtBQUNOLCtCQUErQjtBQUMvQjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxzQkFBc0IsaUNBQWlDO0FBQ3ZEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsNEJBQTRCO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDRCQUE0QixxQkFBcUI7QUFDakQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLE1BQU07QUFDcEIsY0FBYyxPQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsTUFBTTtBQUNwQixjQUFjLE9BQU87QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEJBQTRCO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlEQUFpRDs7QUFFakQ7QUFDQSxTQUFTOztBQUVUO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQSxPQUFPOztBQUVQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxXQUFXLEdBQUc7QUFDZCxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNB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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YscURBQXFELG9CQUFvQjtBQUN6RSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFVBQVU7QUFDVjtBQUNBO0FBQ0EsK0RBQStELDBCQUEwQjtBQUN6RixVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLGlCQUFpQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQyxVQUFVLCtDQUErQztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBLElBQUk7QUFD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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUEsMENBQTBDO0FBQzFDO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBK0Q7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRCxJQUFJO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsSUFBSTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUZBQW1GLGdCQUFnQjtBQUNuRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUEsMERBQTBEO0FBQzFELFVBQVUseUJBQXlCO0FBQ25DO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrRkFBa0YsNkRBQTZEO0FBQy9JO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxjQUFjO0FBQ2pELFVBQVUsK0JBQStCO0FBQ3pDO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDQSx1REFBdUQ7QUFDdkQ7QUFDQTtBQUNBLHdDQUF3QyxtQkFBbUI7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLElBQUk7QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsZUFBZTtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQ0FBa0Msb0NBQW9DLElBQUk7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTix3Q0FBd0MsbUJBQW1C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dC9jb21waWxlci1jb3JlLmVzbS1idW5kbGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AdnVlL2NvbXBpbGVyLWRvbS9kaXN0L2NvbXBpbGVyLWRvbS5lc20tYnVuZGxlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHZ1ZS9kZXZ0b29scy1hcGkvbGliL2VzbS9jb25zdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHZ1ZS9kZXZ0b29scy1hcGkvbGliL2VzbS9lbnYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B2dWUvZGV2dG9vbHMtYXBpL2xpYi9lc20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B2dWUvZGV2dG9vbHMtYXBpL2xpYi9lc20vcHJveHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B2dWUvZGV2dG9vbHMtYXBpL2xpYi9lc20vdGltZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHZ1ZS9yZWFjdGl2aXR5L2Rpc3QvcmVhY3Rpdml0eS5lc20tYnVuZGxlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHZ1ZS9ydW50aW1lLWNvcmUvZGlzdC9ydW50aW1lLWNvcmUuZXNtLWJ1bmRsZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B2dWUvcnVudGltZS1kb20vZGlzdC9ydW50aW1lLWRvbS5lc20tYnVuZGxlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHZ1ZS9zaGFyZWQvZGlzdC9zaGFyZWQuZXNtLWJ1bmRsZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B2dWVmb3JtL211bHRpc2VsZWN0L2Rpc3QvbXVsdGlzZWxlY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYWRhcHRlcnMveGhyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYXhpb3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvQ2FuY2VsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbFRva2VuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL2lzQ2FuY2VsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9BeGlvcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvSW50ZXJjZXB0b3JNYW5hZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9idWlsZEZ1bGxQYXRoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9jcmVhdGVFcnJvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9lbmhhbmNlRXJyb3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL21lcmdlQ29uZmlnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9zZXR0bGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL3RyYW5zZm9ybURhdGEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9kZWZhdWx0cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2Vudi9kYXRhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9iaW5kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9idWlsZFVSTC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY29tYmluZVVSTHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2Nvb2tpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2lzQWJzb2x1dGVVUkwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2lzQXhpb3NFcnJvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNVUkxTYW1lT3JpZ2luLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9ub3JtYWxpemVIZWFkZXJOYW1lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wYXJzZUhlYWRlcnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3NwcmVhZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdmFsaWRhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9hZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9jaXBoZXItY29yZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL2NvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9lbmMtYmFzZTY0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvZW5jLWJhc2U2NHVybC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL2VuYy11dGYxNi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL2V2cGtkZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL2Zvcm1hdC1oZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9obWFjLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9saWItdHlwZWRhcnJheXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9tZDUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9tb2RlLWNmYi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL21vZGUtY3RyLWdsYWRtYW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9tb2RlLWN0ci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL21vZGUtZWNiLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvbW9kZS1vZmIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9wYWQtYW5zaXg5MjMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9wYWQtaXNvMTAxMjYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9wYWQtaXNvOTc5NzEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9wYWQtbm9wYWRkaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvcGFkLXplcm9wYWRkaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvcGJrZGYyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvcmFiYml0LWxlZ2FjeS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL3JhYmJpdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL3JjNC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL3JpcGVtZDE2MC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3J5cHRvLWpzL3NoYTEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9zaGEyMjQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9zaGEyNTYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyeXB0by1qcy9zaGEzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvc2hhMzg0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvc2hhNTEyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMvdHJpcGxlZGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcnlwdG8tanMveDY0LWNvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B2dWVmb3JtL211bHRpc2VsZWN0L3RoZW1lcy9kZWZhdWx0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnkvZGlzdC9qcXVlcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYWYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItZHouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIta3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbWEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItc2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItdG4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm4tYmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3kuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZHYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tYXUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tY2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tZ2IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tbnouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tc2cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtZG8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtbXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtdXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2Z5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1kZXZhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1sYXRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2d1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h5LWFtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2phLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2p2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2thLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2trLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ttLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xiLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21pLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21rLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLW15LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL210LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL215LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25iLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLWJlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL29jLWxuYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wYS1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC1ici5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9yby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ydS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zaS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zcS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci1jeXJsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90Zy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bC1waC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHpsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS1sYXRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91Zy1jbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei1sYXRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3V6LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3ZpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3gtcHNldWRvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3lvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWNuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWhrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLW1vLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLXR3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tb21lbnQvbW9tZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NlbGVjdDIvZGlzdC9qcy9zZWxlY3QyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AdnVlZm9ybS9tdWx0aXNlbGVjdC90aGVtZXMvZGVmYXVsdC5jc3M/MmRiOSIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3N2Zy12dWUzL2Rpc3Qvc3ZnLXZ1ZS5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9leHBvcnRIZWxwZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B2dWVmb3JtL211bHRpc2VsZWN0L3RoZW1lcy9kZWZhdWx0LmNzcz9lMjRkIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy92dWUvZGlzdC92dWUuZXNtLWJ1bmRsZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Z1ZTMtcmFkaWFsLXByb2dyZXNzL2Rpc3QvUmFkaWFsUHJvZ3Jlc3NCYXIuZXNtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy92dWUzLXNtb290aC1zY3JvbGwvZGlzdC92dWUtc21vb3RoLXNjcm9sbC5taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Z1ZXgvZGlzdC92dWV4LmVzbS1idW5kbGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AaGVhZGxlc3N1aS92dWUvZGlzdC9oZWFkbGVzc3VpLmRldi5janMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BoZWFkbGVzc3VpL3Z1ZS9kaXN0L2luZGV4LmNqcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHZ1ZXVzZS9jb3JlL2luZGV4LmNqcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHZ1ZXVzZS9jb3JlL25vZGVfbW9kdWxlcy9AdnVldXNlL3NoYXJlZC9pbmRleC5janMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0B2dWV1c2UvY29yZS9ub2RlX21vZHVsZXMvdnVlLWRlbWkvbGliL2luZGV4LmNqcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZywgaHlwaGVuYXRlLCBOT09QLCBleHRlbmQsIGlzT2JqZWN0LCBOTywgaXNBcnJheSwgbWFrZU1hcCwgaXNTeW1ib2wsIEVNUFRZX09CSiwgY2FwaXRhbGl6ZSwgY2FtZWxpemUgYXMgY2FtZWxpemUkMSwgUGF0Y2hGbGFnTmFtZXMsIHNsb3RGbGFnc1RleHQsIGlzT24sIGlzQnVpbHRJbkRpcmVjdGl2ZSwgaXNSZXNlcnZlZFByb3AsIHRvSGFuZGxlcktleSB9IGZyb20gJ0B2dWUvc2hhcmVkJztcbmV4cG9ydCB7IGdlbmVyYXRlQ29kZUZyYW1lIH0gZnJvbSAnQHZ1ZS9zaGFyZWQnO1xuXG5mdW5jdGlvbiBkZWZhdWx0T25FcnJvcihlcnJvcikge1xyXG4gICAgdGhyb3cgZXJyb3I7XHJcbn1cclxuZnVuY3Rpb24gZGVmYXVsdE9uV2Fybihtc2cpIHtcclxuICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBjb25zb2xlLndhcm4oYFtWdWUgd2Fybl0gJHttc2cubWVzc2FnZX1gKTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVDb21waWxlckVycm9yKGNvZGUsIGxvYywgbWVzc2FnZXMsIGFkZGl0aW9uYWxNZXNzYWdlKSB7XHJcbiAgICBjb25zdCBtc2cgPSAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgfHwgIXRydWVcclxuICAgICAgICA/IChtZXNzYWdlcyB8fCBlcnJvck1lc3NhZ2VzKVtjb2RlXSArIChhZGRpdGlvbmFsTWVzc2FnZSB8fCBgYClcclxuICAgICAgICA6IGNvZGU7XHJcbiAgICBjb25zdCBlcnJvciA9IG5ldyBTeW50YXhFcnJvcihTdHJpbmcobXNnKSk7XHJcbiAgICBlcnJvci5jb2RlID0gY29kZTtcclxuICAgIGVycm9yLmxvYyA9IGxvYztcclxuICAgIHJldHVybiBlcnJvcjtcclxufVxyXG5jb25zdCBlcnJvck1lc3NhZ2VzID0ge1xyXG4gICAgLy8gcGFyc2UgZXJyb3JzXHJcbiAgICBbMCAvKiBFcnJvckNvZGVzLkFCUlVQVF9DTE9TSU5HX09GX0VNUFRZX0NPTU1FTlQgKi9dOiAnSWxsZWdhbCBjb21tZW50LicsXHJcbiAgICBbMSAvKiBFcnJvckNvZGVzLkNEQVRBX0lOX0hUTUxfQ09OVEVOVCAqL106ICdDREFUQSBzZWN0aW9uIGlzIGFsbG93ZWQgb25seSBpbiBYTUwgY29udGV4dC4nLFxyXG4gICAgWzIgLyogRXJyb3JDb2Rlcy5EVVBMSUNBVEVfQVRUUklCVVRFICovXTogJ0R1cGxpY2F0ZSBhdHRyaWJ1dGUuJyxcclxuICAgIFszIC8qIEVycm9yQ29kZXMuRU5EX1RBR19XSVRIX0FUVFJJQlVURVMgKi9dOiAnRW5kIHRhZyBjYW5ub3QgaGF2ZSBhdHRyaWJ1dGVzLicsXHJcbiAgICBbNCAvKiBFcnJvckNvZGVzLkVORF9UQUdfV0lUSF9UUkFJTElOR19TT0xJRFVTICovXTogXCJJbGxlZ2FsICcvJyBpbiB0YWdzLlwiLFxyXG4gICAgWzUgLyogRXJyb3JDb2Rlcy5FT0ZfQkVGT1JFX1RBR19OQU1FICovXTogJ1VuZXhwZWN0ZWQgRU9GIGluIHRhZy4nLFxyXG4gICAgWzYgLyogRXJyb3JDb2Rlcy5FT0ZfSU5fQ0RBVEEgKi9dOiAnVW5leHBlY3RlZCBFT0YgaW4gQ0RBVEEgc2VjdGlvbi4nLFxyXG4gICAgWzcgLyogRXJyb3JDb2Rlcy5FT0ZfSU5fQ09NTUVOVCAqL106ICdVbmV4cGVjdGVkIEVPRiBpbiBjb21tZW50LicsXHJcbiAgICBbOCAvKiBFcnJvckNvZGVzLkVPRl9JTl9TQ1JJUFRfSFRNTF9DT01NRU5UX0xJS0VfVEVYVCAqL106ICdVbmV4cGVjdGVkIEVPRiBpbiBzY3JpcHQuJyxcclxuICAgIFs5IC8qIEVycm9yQ29kZXMuRU9GX0lOX1RBRyAqL106ICdVbmV4cGVjdGVkIEVPRiBpbiB0YWcuJyxcclxuICAgIFsxMCAvKiBFcnJvckNvZGVzLklOQ09SUkVDVExZX0NMT1NFRF9DT01NRU5UICovXTogJ0luY29ycmVjdGx5IGNsb3NlZCBjb21tZW50LicsXHJcbiAgICBbMTEgLyogRXJyb3JDb2Rlcy5JTkNPUlJFQ1RMWV9PUEVORURfQ09NTUVOVCAqL106ICdJbmNvcnJlY3RseSBvcGVuZWQgY29tbWVudC4nLFxyXG4gICAgWzEyIC8qIEVycm9yQ29kZXMuSU5WQUxJRF9GSVJTVF9DSEFSQUNURVJfT0ZfVEFHX05BTUUgKi9dOiBcIklsbGVnYWwgdGFnIG5hbWUuIFVzZSAnJmx0OycgdG8gcHJpbnQgJzwnLlwiLFxyXG4gICAgWzEzIC8qIEVycm9yQ29kZXMuTUlTU0lOR19BVFRSSUJVVEVfVkFMVUUgKi9dOiAnQXR0cmlidXRlIHZhbHVlIHdhcyBleHBlY3RlZC4nLFxyXG4gICAgWzE0IC8qIEVycm9yQ29kZXMuTUlTU0lOR19FTkRfVEFHX05BTUUgKi9dOiAnRW5kIHRhZyBuYW1lIHdhcyBleHBlY3RlZC4nLFxyXG4gICAgWzE1IC8qIEVycm9yQ29kZXMuTUlTU0lOR19XSElURVNQQUNFX0JFVFdFRU5fQVRUUklCVVRFUyAqL106ICdXaGl0ZXNwYWNlIHdhcyBleHBlY3RlZC4nLFxyXG4gICAgWzE2IC8qIEVycm9yQ29kZXMuTkVTVEVEX0NPTU1FTlQgKi9dOiBcIlVuZXhwZWN0ZWQgJzwhLS0nIGluIGNvbW1lbnQuXCIsXHJcbiAgICBbMTcgLyogRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0NIQVJBQ1RFUl9JTl9BVFRSSUJVVEVfTkFNRSAqL106ICdBdHRyaWJ1dGUgbmFtZSBjYW5ub3QgY29udGFpbiBVKzAwMjIgKFwiKSwgVSswMDI3IChcXCcpLCBhbmQgVSswMDNDICg8KS4nLFxyXG4gICAgWzE4IC8qIEVycm9yQ29kZXMuVU5FWFBFQ1RFRF9DSEFSQUNURVJfSU5fVU5RVU9URURfQVRUUklCVVRFX1ZBTFVFICovXTogJ1VucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSBjYW5ub3QgY29udGFpbiBVKzAwMjIgKFwiKSwgVSswMDI3IChcXCcpLCBVKzAwM0MgKDwpLCBVKzAwM0QgKD0pLCBhbmQgVSswMDYwIChgKS4nLFxyXG4gICAgWzE5IC8qIEVycm9yQ29kZXMuVU5FWFBFQ1RFRF9FUVVBTFNfU0lHTl9CRUZPUkVfQVRUUklCVVRFX05BTUUgKi9dOiBcIkF0dHJpYnV0ZSBuYW1lIGNhbm5vdCBzdGFydCB3aXRoICc9Jy5cIixcclxuICAgIFsyMSAvKiBFcnJvckNvZGVzLlVORVhQRUNURURfUVVFU1RJT05fTUFSS19JTlNURUFEX09GX1RBR19OQU1FICovXTogXCInPD8nIGlzIGFsbG93ZWQgb25seSBpbiBYTUwgY29udGV4dC5cIixcclxuICAgIFsyMCAvKiBFcnJvckNvZGVzLlVORVhQRUNURURfTlVMTF9DSEFSQUNURVIgKi9dOiBgVW5leHBlY3RlZCBudWxsIGNoYXJhY3Rlci5gLFxyXG4gICAgWzIyIC8qIEVycm9yQ29kZXMuVU5FWFBFQ1RFRF9TT0xJRFVTX0lOX1RBRyAqL106IFwiSWxsZWdhbCAnLycgaW4gdGFncy5cIixcclxuICAgIC8vIFZ1ZS1zcGVjaWZpYyBwYXJzZSBlcnJvcnNcclxuICAgIFsyMyAvKiBFcnJvckNvZGVzLlhfSU5WQUxJRF9FTkRfVEFHICovXTogJ0ludmFsaWQgZW5kIHRhZy4nLFxyXG4gICAgWzI0IC8qIEVycm9yQ29kZXMuWF9NSVNTSU5HX0VORF9UQUcgKi9dOiAnRWxlbWVudCBpcyBtaXNzaW5nIGVuZCB0YWcuJyxcclxuICAgIFsyNSAvKiBFcnJvckNvZGVzLlhfTUlTU0lOR19JTlRFUlBPTEFUSU9OX0VORCAqL106ICdJbnRlcnBvbGF0aW9uIGVuZCBzaWduIHdhcyBub3QgZm91bmQuJyxcclxuICAgIFsyNyAvKiBFcnJvckNvZGVzLlhfTUlTU0lOR19EWU5BTUlDX0RJUkVDVElWRV9BUkdVTUVOVF9FTkQgKi9dOiAnRW5kIGJyYWNrZXQgZm9yIGR5bmFtaWMgZGlyZWN0aXZlIGFyZ3VtZW50IHdhcyBub3QgZm91bmQuICcgK1xyXG4gICAgICAgICdOb3RlIHRoYXQgZHluYW1pYyBkaXJlY3RpdmUgYXJndW1lbnQgY2Fubm90IGNvbnRhaW4gc3BhY2VzLicsXHJcbiAgICBbMjYgLyogRXJyb3JDb2Rlcy5YX01JU1NJTkdfRElSRUNUSVZFX05BTUUgKi9dOiAnTGVnYWwgZGlyZWN0aXZlIG5hbWUgd2FzIGV4cGVjdGVkLicsXHJcbiAgICAvLyB0cmFuc2Zvcm0gZXJyb3JzXHJcbiAgICBbMjggLyogRXJyb3JDb2Rlcy5YX1ZfSUZfTk9fRVhQUkVTU0lPTiAqL106IGB2LWlmL3YtZWxzZS1pZiBpcyBtaXNzaW5nIGV4cHJlc3Npb24uYCxcclxuICAgIFsyOSAvKiBFcnJvckNvZGVzLlhfVl9JRl9TQU1FX0tFWSAqL106IGB2LWlmL2Vsc2UgYnJhbmNoZXMgbXVzdCB1c2UgdW5pcXVlIGtleXMuYCxcclxuICAgIFszMCAvKiBFcnJvckNvZGVzLlhfVl9FTFNFX05PX0FESkFDRU5UX0lGICovXTogYHYtZWxzZS92LWVsc2UtaWYgaGFzIG5vIGFkamFjZW50IHYtaWYgb3Igdi1lbHNlLWlmLmAsXHJcbiAgICBbMzEgLyogRXJyb3JDb2Rlcy5YX1ZfRk9SX05PX0VYUFJFU1NJT04gKi9dOiBgdi1mb3IgaXMgbWlzc2luZyBleHByZXNzaW9uLmAsXHJcbiAgICBbMzIgLyogRXJyb3JDb2Rlcy5YX1ZfRk9SX01BTEZPUk1FRF9FWFBSRVNTSU9OICovXTogYHYtZm9yIGhhcyBpbnZhbGlkIGV4cHJlc3Npb24uYCxcclxuICAgIFszMyAvKiBFcnJvckNvZGVzLlhfVl9GT1JfVEVNUExBVEVfS0VZX1BMQUNFTUVOVCAqL106IGA8dGVtcGxhdGUgdi1mb3I+IGtleSBzaG91bGQgYmUgcGxhY2VkIG9uIHRoZSA8dGVtcGxhdGU+IHRhZy5gLFxyXG4gICAgWzM0IC8qIEVycm9yQ29kZXMuWF9WX0JJTkRfTk9fRVhQUkVTU0lPTiAqL106IGB2LWJpbmQgaXMgbWlzc2luZyBleHByZXNzaW9uLmAsXHJcbiAgICBbMzUgLyogRXJyb3JDb2Rlcy5YX1ZfT05fTk9fRVhQUkVTU0lPTiAqL106IGB2LW9uIGlzIG1pc3NpbmcgZXhwcmVzc2lvbi5gLFxyXG4gICAgWzM2IC8qIEVycm9yQ29kZXMuWF9WX1NMT1RfVU5FWFBFQ1RFRF9ESVJFQ1RJVkVfT05fU0xPVF9PVVRMRVQgKi9dOiBgVW5leHBlY3RlZCBjdXN0b20gZGlyZWN0aXZlIG9uIDxzbG90PiBvdXRsZXQuYCxcclxuICAgIFszNyAvKiBFcnJvckNvZGVzLlhfVl9TTE9UX01JWEVEX1NMT1RfVVNBR0UgKi9dOiBgTWl4ZWQgdi1zbG90IHVzYWdlIG9uIGJvdGggdGhlIGNvbXBvbmVudCBhbmQgbmVzdGVkIDx0ZW1wbGF0ZT4uYCArXHJcbiAgICAgICAgYFdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIG5hbWVkIHNsb3RzLCBhbGwgc2xvdHMgc2hvdWxkIHVzZSA8dGVtcGxhdGU+IGAgK1xyXG4gICAgICAgIGBzeW50YXggdG8gYXZvaWQgc2NvcGUgYW1iaWd1aXR5LmAsXHJcbiAgICBbMzggLyogRXJyb3JDb2Rlcy5YX1ZfU0xPVF9EVVBMSUNBVEVfU0xPVF9OQU1FUyAqL106IGBEdXBsaWNhdGUgc2xvdCBuYW1lcyBmb3VuZC4gYCxcclxuICAgIFszOSAvKiBFcnJvckNvZGVzLlhfVl9TTE9UX0VYVFJBTkVPVVNfREVGQVVMVF9TTE9UX0NISUxEUkVOICovXTogYEV4dHJhbmVvdXMgY2hpbGRyZW4gZm91bmQgd2hlbiBjb21wb25lbnQgYWxyZWFkeSBoYXMgZXhwbGljaXRseSBuYW1lZCBgICtcclxuICAgICAgICBgZGVmYXVsdCBzbG90LiBUaGVzZSBjaGlsZHJlbiB3aWxsIGJlIGlnbm9yZWQuYCxcclxuICAgIFs0MCAvKiBFcnJvckNvZGVzLlhfVl9TTE9UX01JU1BMQUNFRCAqL106IGB2LXNsb3QgY2FuIG9ubHkgYmUgdXNlZCBvbiBjb21wb25lbnRzIG9yIDx0ZW1wbGF0ZT4gdGFncy5gLFxyXG4gICAgWzQxIC8qIEVycm9yQ29kZXMuWF9WX01PREVMX05PX0VYUFJFU1NJT04gKi9dOiBgdi1tb2RlbCBpcyBtaXNzaW5nIGV4cHJlc3Npb24uYCxcclxuICAgIFs0MiAvKiBFcnJvckNvZGVzLlhfVl9NT0RFTF9NQUxGT1JNRURfRVhQUkVTU0lPTiAqL106IGB2LW1vZGVsIHZhbHVlIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IG1lbWJlciBleHByZXNzaW9uLmAsXHJcbiAgICBbNDMgLyogRXJyb3JDb2Rlcy5YX1ZfTU9ERUxfT05fU0NPUEVfVkFSSUFCTEUgKi9dOiBgdi1tb2RlbCBjYW5ub3QgYmUgdXNlZCBvbiB2LWZvciBvciB2LXNsb3Qgc2NvcGUgdmFyaWFibGVzIGJlY2F1c2UgdGhleSBhcmUgbm90IHdyaXRhYmxlLmAsXHJcbiAgICBbNDQgLyogRXJyb3JDb2Rlcy5YX0lOVkFMSURfRVhQUkVTU0lPTiAqL106IGBFcnJvciBwYXJzaW5nIEphdmFTY3JpcHQgZXhwcmVzc2lvbjogYCxcclxuICAgIFs0NSAvKiBFcnJvckNvZGVzLlhfS0VFUF9BTElWRV9JTlZBTElEX0NISUxEUkVOICovXTogYDxLZWVwQWxpdmU+IGV4cGVjdHMgZXhhY3RseSBvbmUgY2hpbGQgY29tcG9uZW50LmAsXHJcbiAgICAvLyBnZW5lcmljIGVycm9yc1xyXG4gICAgWzQ2IC8qIEVycm9yQ29kZXMuWF9QUkVGSVhfSURfTk9UX1NVUFBPUlRFRCAqL106IGBcInByZWZpeElkZW50aWZpZXJzXCIgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBidWlsZCBvZiBjb21waWxlci5gLFxyXG4gICAgWzQ3IC8qIEVycm9yQ29kZXMuWF9NT0RVTEVfTU9ERV9OT1RfU1VQUE9SVEVEICovXTogYEVTIG1vZHVsZSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBidWlsZCBvZiBjb21waWxlci5gLFxyXG4gICAgWzQ4IC8qIEVycm9yQ29kZXMuWF9DQUNIRV9IQU5ETEVSX05PVF9TVVBQT1JURUQgKi9dOiBgXCJjYWNoZUhhbmRsZXJzXCIgb3B0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIHdoZW4gdGhlIFwicHJlZml4SWRlbnRpZmllcnNcIiBvcHRpb24gaXMgZW5hYmxlZC5gLFxyXG4gICAgWzQ5IC8qIEVycm9yQ29kZXMuWF9TQ09QRV9JRF9OT1RfU1VQUE9SVEVEICovXTogYFwic2NvcGVJZFwiIG9wdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCBpbiBtb2R1bGUgbW9kZS5gLFxyXG4gICAgLy8ganVzdCB0byBmdWxmaWxsIHR5cGVzXHJcbiAgICBbNTAgLyogRXJyb3JDb2Rlcy5fX0VYVEVORF9QT0lOVF9fICovXTogYGBcclxufTtcblxuY29uc3QgRlJBR01FTlQgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYEZyYWdtZW50YCA6IGBgKTtcclxuY29uc3QgVEVMRVBPUlQgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYFRlbGVwb3J0YCA6IGBgKTtcclxuY29uc3QgU1VTUEVOU0UgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYFN1c3BlbnNlYCA6IGBgKTtcclxuY29uc3QgS0VFUF9BTElWRSA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgS2VlcEFsaXZlYCA6IGBgKTtcclxuY29uc3QgQkFTRV9UUkFOU0lUSU9OID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGBCYXNlVHJhbnNpdGlvbmAgOiBgYCk7XHJcbmNvbnN0IE9QRU5fQkxPQ0sgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYG9wZW5CbG9ja2AgOiBgYCk7XHJcbmNvbnN0IENSRUFURV9CTE9DSyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgY3JlYXRlQmxvY2tgIDogYGApO1xyXG5jb25zdCBDUkVBVEVfRUxFTUVOVF9CTE9DSyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgY3JlYXRlRWxlbWVudEJsb2NrYCA6IGBgKTtcclxuY29uc3QgQ1JFQVRFX1ZOT0RFID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGBjcmVhdGVWTm9kZWAgOiBgYCk7XHJcbmNvbnN0IENSRUFURV9FTEVNRU5UX1ZOT0RFID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGBjcmVhdGVFbGVtZW50Vk5vZGVgIDogYGApO1xyXG5jb25zdCBDUkVBVEVfQ09NTUVOVCA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgY3JlYXRlQ29tbWVudFZOb2RlYCA6IGBgKTtcclxuY29uc3QgQ1JFQVRFX1RFWFQgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYGNyZWF0ZVRleHRWTm9kZWAgOiBgYCk7XHJcbmNvbnN0IENSRUFURV9TVEFUSUMgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYGNyZWF0ZVN0YXRpY1ZOb2RlYCA6IGBgKTtcclxuY29uc3QgUkVTT0xWRV9DT01QT05FTlQgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHJlc29sdmVDb21wb25lbnRgIDogYGApO1xyXG5jb25zdCBSRVNPTFZFX0RZTkFNSUNfQ09NUE9ORU5UID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGByZXNvbHZlRHluYW1pY0NvbXBvbmVudGAgOiBgYCk7XHJcbmNvbnN0IFJFU09MVkVfRElSRUNUSVZFID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGByZXNvbHZlRGlyZWN0aXZlYCA6IGBgKTtcclxuY29uc3QgUkVTT0xWRV9GSUxURVIgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHJlc29sdmVGaWx0ZXJgIDogYGApO1xyXG5jb25zdCBXSVRIX0RJUkVDVElWRVMgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHdpdGhEaXJlY3RpdmVzYCA6IGBgKTtcclxuY29uc3QgUkVOREVSX0xJU1QgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHJlbmRlckxpc3RgIDogYGApO1xyXG5jb25zdCBSRU5ERVJfU0xPVCA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgcmVuZGVyU2xvdGAgOiBgYCk7XHJcbmNvbnN0IENSRUFURV9TTE9UUyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgY3JlYXRlU2xvdHNgIDogYGApO1xyXG5jb25zdCBUT19ESVNQTEFZX1NUUklORyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgdG9EaXNwbGF5U3RyaW5nYCA6IGBgKTtcclxuY29uc3QgTUVSR0VfUFJPUFMgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYG1lcmdlUHJvcHNgIDogYGApO1xyXG5jb25zdCBOT1JNQUxJWkVfQ0xBU1MgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYG5vcm1hbGl6ZUNsYXNzYCA6IGBgKTtcclxuY29uc3QgTk9STUFMSVpFX1NUWUxFID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGBub3JtYWxpemVTdHlsZWAgOiBgYCk7XHJcbmNvbnN0IE5PUk1BTElaRV9QUk9QUyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgbm9ybWFsaXplUHJvcHNgIDogYGApO1xyXG5jb25zdCBHVUFSRF9SRUFDVElWRV9QUk9QUyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgZ3VhcmRSZWFjdGl2ZVByb3BzYCA6IGBgKTtcclxuY29uc3QgVE9fSEFORExFUlMgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHRvSGFuZGxlcnNgIDogYGApO1xyXG5jb25zdCBDQU1FTElaRSA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgY2FtZWxpemVgIDogYGApO1xyXG5jb25zdCBDQVBJVEFMSVpFID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGBjYXBpdGFsaXplYCA6IGBgKTtcclxuY29uc3QgVE9fSEFORExFUl9LRVkgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHRvSGFuZGxlcktleWAgOiBgYCk7XHJcbmNvbnN0IFNFVF9CTE9DS19UUkFDS0lORyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgc2V0QmxvY2tUcmFja2luZ2AgOiBgYCk7XHJcbmNvbnN0IFBVU0hfU0NPUEVfSUQgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHB1c2hTY29wZUlkYCA6IGBgKTtcclxuY29uc3QgUE9QX1NDT1BFX0lEID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGBwb3BTY29wZUlkYCA6IGBgKTtcclxuY29uc3QgV0lUSF9DVFggPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHdpdGhDdHhgIDogYGApO1xyXG5jb25zdCBVTlJFRiA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgdW5yZWZgIDogYGApO1xyXG5jb25zdCBJU19SRUYgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYGlzUmVmYCA6IGBgKTtcclxuY29uc3QgV0lUSF9NRU1PID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGB3aXRoTWVtb2AgOiBgYCk7XHJcbmNvbnN0IElTX01FTU9fU0FNRSA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgaXNNZW1vU2FtZWAgOiBgYCk7XHJcbi8vIE5hbWUgbWFwcGluZyBmb3IgcnVudGltZSBoZWxwZXJzIHRoYXQgbmVlZCB0byBiZSBpbXBvcnRlZCBmcm9tICd2dWUnIGluXHJcbi8vIGdlbmVyYXRlZCBjb2RlLiBNYWtlIHN1cmUgdGhlc2UgYXJlIGNvcnJlY3RseSBleHBvcnRlZCBpbiB0aGUgcnVudGltZSFcclxuLy8gVXNpbmcgYGFueWAgaGVyZSBiZWNhdXNlIFRTIGRvZXNuJ3QgYWxsb3cgc3ltYm9scyBhcyBpbmRleCB0eXBlLlxyXG5jb25zdCBoZWxwZXJOYW1lTWFwID0ge1xyXG4gICAgW0ZSQUdNRU5UXTogYEZyYWdtZW50YCxcclxuICAgIFtURUxFUE9SVF06IGBUZWxlcG9ydGAsXHJcbiAgICBbU1VTUEVOU0VdOiBgU3VzcGVuc2VgLFxyXG4gICAgW0tFRVBfQUxJVkVdOiBgS2VlcEFsaXZlYCxcclxuICAgIFtCQVNFX1RSQU5TSVRJT05dOiBgQmFzZVRyYW5zaXRpb25gLFxyXG4gICAgW09QRU5fQkxPQ0tdOiBgb3BlbkJsb2NrYCxcclxuICAgIFtDUkVBVEVfQkxPQ0tdOiBgY3JlYXRlQmxvY2tgLFxyXG4gICAgW0NSRUFURV9FTEVNRU5UX0JMT0NLXTogYGNyZWF0ZUVsZW1lbnRCbG9ja2AsXHJcbiAgICBbQ1JFQVRFX1ZOT0RFXTogYGNyZWF0ZVZOb2RlYCxcclxuICAgIFtDUkVBVEVfRUxFTUVOVF9WTk9ERV06IGBjcmVhdGVFbGVtZW50Vk5vZGVgLFxyXG4gICAgW0NSRUFURV9DT01NRU5UXTogYGNyZWF0ZUNvbW1lbnRWTm9kZWAsXHJcbiAgICBbQ1JFQVRFX1RFWFRdOiBgY3JlYXRlVGV4dFZOb2RlYCxcclxuICAgIFtDUkVBVEVfU1RBVElDXTogYGNyZWF0ZVN0YXRpY1ZOb2RlYCxcclxuICAgIFtSRVNPTFZFX0NPTVBPTkVOVF06IGByZXNvbHZlQ29tcG9uZW50YCxcclxuICAgIFtSRVNPTFZFX0RZTkFNSUNfQ09NUE9ORU5UXTogYHJlc29sdmVEeW5hbWljQ29tcG9uZW50YCxcclxuICAgIFtSRVNPTFZFX0RJUkVDVElWRV06IGByZXNvbHZlRGlyZWN0aXZlYCxcclxuICAgIFtSRVNPTFZFX0ZJTFRFUl06IGByZXNvbHZlRmlsdGVyYCxcclxuICAgIFtXSVRIX0RJUkVDVElWRVNdOiBgd2l0aERpcmVjdGl2ZXNgLFxyXG4gICAgW1JFTkRFUl9MSVNUXTogYHJlbmRlckxpc3RgLFxyXG4gICAgW1JFTkRFUl9TTE9UXTogYHJlbmRlclNsb3RgLFxyXG4gICAgW0NSRUFURV9TTE9UU106IGBjcmVhdGVTbG90c2AsXHJcbiAgICBbVE9fRElTUExBWV9TVFJJTkddOiBgdG9EaXNwbGF5U3RyaW5nYCxcclxuICAgIFtNRVJHRV9QUk9QU106IGBtZXJnZVByb3BzYCxcclxuICAgIFtOT1JNQUxJWkVfQ0xBU1NdOiBgbm9ybWFsaXplQ2xhc3NgLFxyXG4gICAgW05PUk1BTElaRV9TVFlMRV06IGBub3JtYWxpemVTdHlsZWAsXHJcbiAgICBbTk9STUFMSVpFX1BST1BTXTogYG5vcm1hbGl6ZVByb3BzYCxcclxuICAgIFtHVUFSRF9SRUFDVElWRV9QUk9QU106IGBndWFyZFJlYWN0aXZlUHJvcHNgLFxyXG4gICAgW1RPX0hBTkRMRVJTXTogYHRvSGFuZGxlcnNgLFxyXG4gICAgW0NBTUVMSVpFXTogYGNhbWVsaXplYCxcclxuICAgIFtDQVBJVEFMSVpFXTogYGNhcGl0YWxpemVgLFxyXG4gICAgW1RPX0hBTkRMRVJfS0VZXTogYHRvSGFuZGxlcktleWAsXHJcbiAgICBbU0VUX0JMT0NLX1RSQUNLSU5HXTogYHNldEJsb2NrVHJhY2tpbmdgLFxyXG4gICAgW1BVU0hfU0NPUEVfSURdOiBgcHVzaFNjb3BlSWRgLFxyXG4gICAgW1BPUF9TQ09QRV9JRF06IGBwb3BTY29wZUlkYCxcclxuICAgIFtXSVRIX0NUWF06IGB3aXRoQ3R4YCxcclxuICAgIFtVTlJFRl06IGB1bnJlZmAsXHJcbiAgICBbSVNfUkVGXTogYGlzUmVmYCxcclxuICAgIFtXSVRIX01FTU9dOiBgd2l0aE1lbW9gLFxyXG4gICAgW0lTX01FTU9fU0FNRV06IGBpc01lbW9TYW1lYFxyXG59O1xyXG5mdW5jdGlvbiByZWdpc3RlclJ1bnRpbWVIZWxwZXJzKGhlbHBlcnMpIHtcclxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaGVscGVycykuZm9yRWFjaChzID0+IHtcclxuICAgICAgICBoZWxwZXJOYW1lTWFwW3NdID0gaGVscGVyc1tzXTtcclxuICAgIH0pO1xyXG59XG5cbi8vIEFTVCBVdGlsaXRpZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFNvbWUgZXhwcmVzc2lvbnMsIGUuZy4gc2VxdWVuY2UgYW5kIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zLCBhcmUgbmV2ZXJcclxuLy8gYXNzb2NpYXRlZCB3aXRoIHRlbXBsYXRlIG5vZGVzLCBzbyB0aGVpciBzb3VyY2UgbG9jYXRpb25zIGFyZSBqdXN0IGEgc3R1Yi5cclxuLy8gQ29udGFpbmVyIHR5cGVzIGxpa2UgQ29tcG91bmRFeHByZXNzaW9uIGFsc28gZG9uJ3QgbmVlZCBhIHJlYWwgbG9jYXRpb24uXHJcbmNvbnN0IGxvY1N0dWIgPSB7XHJcbiAgICBzb3VyY2U6ICcnLFxyXG4gICAgc3RhcnQ6IHsgbGluZTogMSwgY29sdW1uOiAxLCBvZmZzZXQ6IDAgfSxcclxuICAgIGVuZDogeyBsaW5lOiAxLCBjb2x1bW46IDEsIG9mZnNldDogMCB9XHJcbn07XHJcbmZ1bmN0aW9uIGNyZWF0ZVJvb3QoY2hpbGRyZW4sIGxvYyA9IGxvY1N0dWIpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogMCAvKiBOb2RlVHlwZXMuUk9PVCAqLyxcclxuICAgICAgICBjaGlsZHJlbixcclxuICAgICAgICBoZWxwZXJzOiBbXSxcclxuICAgICAgICBjb21wb25lbnRzOiBbXSxcclxuICAgICAgICBkaXJlY3RpdmVzOiBbXSxcclxuICAgICAgICBob2lzdHM6IFtdLFxyXG4gICAgICAgIGltcG9ydHM6IFtdLFxyXG4gICAgICAgIGNhY2hlZDogMCxcclxuICAgICAgICB0ZW1wczogMCxcclxuICAgICAgICBjb2RlZ2VuTm9kZTogdW5kZWZpbmVkLFxyXG4gICAgICAgIGxvY1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVWTm9kZUNhbGwoY29udGV4dCwgdGFnLCBwcm9wcywgY2hpbGRyZW4sIHBhdGNoRmxhZywgZHluYW1pY1Byb3BzLCBkaXJlY3RpdmVzLCBpc0Jsb2NrID0gZmFsc2UsIGRpc2FibGVUcmFja2luZyA9IGZhbHNlLCBpc0NvbXBvbmVudCA9IGZhbHNlLCBsb2MgPSBsb2NTdHViKSB7XHJcbiAgICBpZiAoY29udGV4dCkge1xyXG4gICAgICAgIGlmIChpc0Jsb2NrKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuaGVscGVyKE9QRU5fQkxPQ0spO1xyXG4gICAgICAgICAgICBjb250ZXh0LmhlbHBlcihnZXRWTm9kZUJsb2NrSGVscGVyKGNvbnRleHQuaW5TU1IsIGlzQ29tcG9uZW50KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0LmhlbHBlcihnZXRWTm9kZUhlbHBlcihjb250ZXh0LmluU1NSLCBpc0NvbXBvbmVudCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlyZWN0aXZlcykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmhlbHBlcihXSVRIX0RJUkVDVElWRVMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogMTMgLyogTm9kZVR5cGVzLlZOT0RFX0NBTEwgKi8sXHJcbiAgICAgICAgdGFnLFxyXG4gICAgICAgIHByb3BzLFxyXG4gICAgICAgIGNoaWxkcmVuLFxyXG4gICAgICAgIHBhdGNoRmxhZyxcclxuICAgICAgICBkeW5hbWljUHJvcHMsXHJcbiAgICAgICAgZGlyZWN0aXZlcyxcclxuICAgICAgICBpc0Jsb2NrLFxyXG4gICAgICAgIGRpc2FibGVUcmFja2luZyxcclxuICAgICAgICBpc0NvbXBvbmVudCxcclxuICAgICAgICBsb2NcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlQXJyYXlFeHByZXNzaW9uKGVsZW1lbnRzLCBsb2MgPSBsb2NTdHViKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDE3IC8qIE5vZGVUeXBlcy5KU19BUlJBWV9FWFBSRVNTSU9OICovLFxyXG4gICAgICAgIGxvYyxcclxuICAgICAgICBlbGVtZW50c1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVPYmplY3RFeHByZXNzaW9uKHByb3BlcnRpZXMsIGxvYyA9IGxvY1N0dWIpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogMTUgLyogTm9kZVR5cGVzLkpTX09CSkVDVF9FWFBSRVNTSU9OICovLFxyXG4gICAgICAgIGxvYyxcclxuICAgICAgICBwcm9wZXJ0aWVzXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZU9iamVjdFByb3BlcnR5KGtleSwgdmFsdWUpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogMTYgLyogTm9kZVR5cGVzLkpTX1BST1BFUlRZICovLFxyXG4gICAgICAgIGxvYzogbG9jU3R1YixcclxuICAgICAgICBrZXk6IGlzU3RyaW5nKGtleSkgPyBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKGtleSwgdHJ1ZSkgOiBrZXksXHJcbiAgICAgICAgdmFsdWVcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihjb250ZW50LCBpc1N0YXRpYyA9IGZhbHNlLCBsb2MgPSBsb2NTdHViLCBjb25zdFR5cGUgPSAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovLFxyXG4gICAgICAgIGxvYyxcclxuICAgICAgICBjb250ZW50LFxyXG4gICAgICAgIGlzU3RhdGljLFxyXG4gICAgICAgIGNvbnN0VHlwZTogaXNTdGF0aWMgPyAzIC8qIENvbnN0YW50VHlwZXMuQ0FOX1NUUklOR0lGWSAqLyA6IGNvbnN0VHlwZVxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVJbnRlcnBvbGF0aW9uKGNvbnRlbnQsIGxvYykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiA1IC8qIE5vZGVUeXBlcy5JTlRFUlBPTEFUSU9OICovLFxyXG4gICAgICAgIGxvYyxcclxuICAgICAgICBjb250ZW50OiBpc1N0cmluZyhjb250ZW50KVxyXG4gICAgICAgICAgICA/IGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oY29udGVudCwgZmFsc2UsIGxvYylcclxuICAgICAgICAgICAgOiBjb250ZW50XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUNvbXBvdW5kRXhwcmVzc2lvbihjaGlsZHJlbiwgbG9jID0gbG9jU3R1Yikge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiA4IC8qIE5vZGVUeXBlcy5DT01QT1VORF9FWFBSRVNTSU9OICovLFxyXG4gICAgICAgIGxvYyxcclxuICAgICAgICBjaGlsZHJlblxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVDYWxsRXhwcmVzc2lvbihjYWxsZWUsIGFyZ3MgPSBbXSwgbG9jID0gbG9jU3R1Yikge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiAxNCAvKiBOb2RlVHlwZXMuSlNfQ0FMTF9FWFBSRVNTSU9OICovLFxyXG4gICAgICAgIGxvYyxcclxuICAgICAgICBjYWxsZWUsXHJcbiAgICAgICAgYXJndW1lbnRzOiBhcmdzXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUZ1bmN0aW9uRXhwcmVzc2lvbihwYXJhbXMsIHJldHVybnMgPSB1bmRlZmluZWQsIG5ld2xpbmUgPSBmYWxzZSwgaXNTbG90ID0gZmFsc2UsIGxvYyA9IGxvY1N0dWIpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogMTggLyogTm9kZVR5cGVzLkpTX0ZVTkNUSU9OX0VYUFJFU1NJT04gKi8sXHJcbiAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgIHJldHVybnMsXHJcbiAgICAgICAgbmV3bGluZSxcclxuICAgICAgICBpc1Nsb3QsXHJcbiAgICAgICAgbG9jXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUNvbmRpdGlvbmFsRXhwcmVzc2lvbih0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGUsIG5ld2xpbmUgPSB0cnVlKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDE5IC8qIE5vZGVUeXBlcy5KU19DT05ESVRJT05BTF9FWFBSRVNTSU9OICovLFxyXG4gICAgICAgIHRlc3QsXHJcbiAgICAgICAgY29uc2VxdWVudCxcclxuICAgICAgICBhbHRlcm5hdGUsXHJcbiAgICAgICAgbmV3bGluZSxcclxuICAgICAgICBsb2M6IGxvY1N0dWJcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlQ2FjaGVFeHByZXNzaW9uKGluZGV4LCB2YWx1ZSwgaXNWTm9kZSA9IGZhbHNlKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDIwIC8qIE5vZGVUeXBlcy5KU19DQUNIRV9FWFBSRVNTSU9OICovLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIHZhbHVlLFxyXG4gICAgICAgIGlzVk5vZGUsXHJcbiAgICAgICAgbG9jOiBsb2NTdHViXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUJsb2NrU3RhdGVtZW50KGJvZHkpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogMjEgLyogTm9kZVR5cGVzLkpTX0JMT0NLX1NUQVRFTUVOVCAqLyxcclxuICAgICAgICBib2R5LFxyXG4gICAgICAgIGxvYzogbG9jU3R1YlxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVUZW1wbGF0ZUxpdGVyYWwoZWxlbWVudHMpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogMjIgLyogTm9kZVR5cGVzLkpTX1RFTVBMQVRFX0xJVEVSQUwgKi8sXHJcbiAgICAgICAgZWxlbWVudHMsXHJcbiAgICAgICAgbG9jOiBsb2NTdHViXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUlmU3RhdGVtZW50KHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiAyMyAvKiBOb2RlVHlwZXMuSlNfSUZfU1RBVEVNRU5UICovLFxyXG4gICAgICAgIHRlc3QsXHJcbiAgICAgICAgY29uc2VxdWVudCxcclxuICAgICAgICBhbHRlcm5hdGUsXHJcbiAgICAgICAgbG9jOiBsb2NTdHViXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUFzc2lnbm1lbnRFeHByZXNzaW9uKGxlZnQsIHJpZ2h0KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDI0IC8qIE5vZGVUeXBlcy5KU19BU1NJR05NRU5UX0VYUFJFU1NJT04gKi8sXHJcbiAgICAgICAgbGVmdCxcclxuICAgICAgICByaWdodCxcclxuICAgICAgICBsb2M6IGxvY1N0dWJcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlU2VxdWVuY2VFeHByZXNzaW9uKGV4cHJlc3Npb25zKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDI1IC8qIE5vZGVUeXBlcy5KU19TRVFVRU5DRV9FWFBSRVNTSU9OICovLFxyXG4gICAgICAgIGV4cHJlc3Npb25zLFxyXG4gICAgICAgIGxvYzogbG9jU3R1YlxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVSZXR1cm5TdGF0ZW1lbnQocmV0dXJucykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiAyNiAvKiBOb2RlVHlwZXMuSlNfUkVUVVJOX1NUQVRFTUVOVCAqLyxcclxuICAgICAgICByZXR1cm5zLFxyXG4gICAgICAgIGxvYzogbG9jU3R1YlxyXG4gICAgfTtcclxufVxuXG5jb25zdCBpc1N0YXRpY0V4cCA9IChwKSA9PiBwLnR5cGUgPT09IDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovICYmIHAuaXNTdGF0aWM7XHJcbmNvbnN0IGlzQnVpbHRJblR5cGUgPSAodGFnLCBleHBlY3RlZCkgPT4gdGFnID09PSBleHBlY3RlZCB8fCB0YWcgPT09IGh5cGhlbmF0ZShleHBlY3RlZCk7XHJcbmZ1bmN0aW9uIGlzQ29yZUNvbXBvbmVudCh0YWcpIHtcclxuICAgIGlmIChpc0J1aWx0SW5UeXBlKHRhZywgJ1RlbGVwb3J0JykpIHtcclxuICAgICAgICByZXR1cm4gVEVMRVBPUlQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc0J1aWx0SW5UeXBlKHRhZywgJ1N1c3BlbnNlJykpIHtcclxuICAgICAgICByZXR1cm4gU1VTUEVOU0U7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc0J1aWx0SW5UeXBlKHRhZywgJ0tlZXBBbGl2ZScpKSB7XHJcbiAgICAgICAgcmV0dXJuIEtFRVBfQUxJVkU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc0J1aWx0SW5UeXBlKHRhZywgJ0Jhc2VUcmFuc2l0aW9uJykpIHtcclxuICAgICAgICByZXR1cm4gQkFTRV9UUkFOU0lUSU9OO1xyXG4gICAgfVxyXG59XHJcbmNvbnN0IG5vbklkZW50aWZpZXJSRSA9IC9eXFxkfFteXFwkXFx3XS87XHJcbmNvbnN0IGlzU2ltcGxlSWRlbnRpZmllciA9IChuYW1lKSA9PiAhbm9uSWRlbnRpZmllclJFLnRlc3QobmFtZSk7XHJcbmNvbnN0IHZhbGlkRmlyc3RJZGVudENoYXJSRSA9IC9bQS1aYS16XyRcXHhBMC1cXHVGRkZGXS87XHJcbmNvbnN0IHZhbGlkSWRlbnRDaGFyUkUgPSAvW1xcLlxcP1xcdyRcXHhBMC1cXHVGRkZGXS87XHJcbmNvbnN0IHdoaXRlc3BhY2VSRSA9IC9cXHMrWy5bXVxccyp8XFxzKlsuW11cXHMrL2c7XHJcbi8qKlxyXG4gKiBTaW1wbGUgbGV4ZXIgdG8gY2hlY2sgaWYgYW4gZXhwcmVzc2lvbiBpcyBhIG1lbWJlciBleHByZXNzaW9uLiBUaGlzIGlzXHJcbiAqIGxheCBhbmQgb25seSBjaGVja3MgdmFsaWRpdHkgYXQgdGhlIHJvb3QgbGV2ZWwgKGkuZS4gZG9lcyBub3QgdmFsaWRhdGUgZXhwc1xyXG4gKiBpbnNpZGUgc3F1YXJlIGJyYWNrZXRzKSwgYnV0IGl0J3Mgb2sgc2luY2UgdGhlc2UgYXJlIG9ubHkgdXNlZCBvbiB0ZW1wbGF0ZVxyXG4gKiBleHByZXNzaW9ucyBhbmQgZmFsc2UgcG9zaXRpdmVzIGFyZSBpbnZhbGlkIGV4cHJlc3Npb25zIGluIHRoZSBmaXJzdCBwbGFjZS5cclxuICovXHJcbmNvbnN0IGlzTWVtYmVyRXhwcmVzc2lvbkJyb3dzZXIgPSAocGF0aCkgPT4ge1xyXG4gICAgLy8gcmVtb3ZlIHdoaXRlc3BhY2VzIGFyb3VuZCAuIG9yIFsgZmlyc3RcclxuICAgIHBhdGggPSBwYXRoLnRyaW0oKS5yZXBsYWNlKHdoaXRlc3BhY2VSRSwgcyA9PiBzLnRyaW0oKSk7XHJcbiAgICBsZXQgc3RhdGUgPSAwIC8qIE1lbWJlckV4cExleFN0YXRlLmluTWVtYmVyRXhwICovO1xyXG4gICAgbGV0IHN0YXRlU3RhY2sgPSBbXTtcclxuICAgIGxldCBjdXJyZW50T3BlbkJyYWNrZXRDb3VudCA9IDA7XHJcbiAgICBsZXQgY3VycmVudE9wZW5QYXJlbnNDb3VudCA9IDA7XHJcbiAgICBsZXQgY3VycmVudFN0cmluZ1R5cGUgPSBudWxsO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgY2hhciA9IHBhdGguY2hhckF0KGkpO1xyXG4gICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICAgICAgY2FzZSAwIC8qIE1lbWJlckV4cExleFN0YXRlLmluTWVtYmVyRXhwICovOlxyXG4gICAgICAgICAgICAgICAgaWYgKGNoYXIgPT09ICdbJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlU3RhY2sucHVzaChzdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAxIC8qIE1lbWJlckV4cExleFN0YXRlLmluQnJhY2tldHMgKi87XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE9wZW5CcmFja2V0Q291bnQrKztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT09ICcoJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlU3RhY2sucHVzaChzdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAyIC8qIE1lbWJlckV4cExleFN0YXRlLmluUGFyZW5zICovO1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRPcGVuUGFyZW5zQ291bnQrKztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCEoaSA9PT0gMCA/IHZhbGlkRmlyc3RJZGVudENoYXJSRSA6IHZhbGlkSWRlbnRDaGFyUkUpLnRlc3QoY2hhcikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAxIC8qIE1lbWJlckV4cExleFN0YXRlLmluQnJhY2tldHMgKi86XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hhciA9PT0gYCdgIHx8IGNoYXIgPT09IGBcImAgfHwgY2hhciA9PT0gJ2AnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdGVTdGFjay5wdXNoKHN0YXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDMgLyogTWVtYmVyRXhwTGV4U3RhdGUuaW5TdHJpbmcgKi87XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0cmluZ1R5cGUgPSBjaGFyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hhciA9PT0gYFtgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE9wZW5CcmFja2V0Q291bnQrKztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT09IGBdYCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghLS1jdXJyZW50T3BlbkJyYWNrZXRDb3VudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHN0YXRlU3RhY2sucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMiAvKiBNZW1iZXJFeHBMZXhTdGF0ZS5pblBhcmVucyAqLzpcclxuICAgICAgICAgICAgICAgIGlmIChjaGFyID09PSBgJ2AgfHwgY2hhciA9PT0gYFwiYCB8fCBjaGFyID09PSAnYCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0ZVN0YWNrLnB1c2goc3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gMyAvKiBNZW1iZXJFeHBMZXhTdGF0ZS5pblN0cmluZyAqLztcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RyaW5nVHlwZSA9IGNoYXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaGFyID09PSBgKGApIHtcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50T3BlblBhcmVuc0NvdW50Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaGFyID09PSBgKWApIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZXhwIGVuZHMgYXMgYSBjYWxsIHRoZW4gaXQgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHZhbGlkXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IHBhdGgubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghLS1jdXJyZW50T3BlblBhcmVuc0NvdW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhdGVTdGFjay5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAzIC8qIE1lbWJlckV4cExleFN0YXRlLmluU3RyaW5nICovOlxyXG4gICAgICAgICAgICAgICAgaWYgKGNoYXIgPT09IGN1cnJlbnRTdHJpbmdUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZVN0YWNrLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdHJpbmdUeXBlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAhY3VycmVudE9wZW5CcmFja2V0Q291bnQgJiYgIWN1cnJlbnRPcGVuUGFyZW5zQ291bnQ7XHJcbn07XHJcbmNvbnN0IGlzTWVtYmVyRXhwcmVzc2lvbk5vZGUgPSBOT09QXHJcbiAgICA7XHJcbmNvbnN0IGlzTWVtYmVyRXhwcmVzc2lvbiA9IGlzTWVtYmVyRXhwcmVzc2lvbkJyb3dzZXJcclxuICAgIDtcclxuZnVuY3Rpb24gZ2V0SW5uZXJSYW5nZShsb2MsIG9mZnNldCwgbGVuZ3RoKSB7XHJcbiAgICBjb25zdCBzb3VyY2UgPSBsb2Muc291cmNlLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgbGVuZ3RoKTtcclxuICAgIGNvbnN0IG5ld0xvYyA9IHtcclxuICAgICAgICBzb3VyY2UsXHJcbiAgICAgICAgc3RhcnQ6IGFkdmFuY2VQb3NpdGlvbldpdGhDbG9uZShsb2Muc3RhcnQsIGxvYy5zb3VyY2UsIG9mZnNldCksXHJcbiAgICAgICAgZW5kOiBsb2MuZW5kXHJcbiAgICB9O1xyXG4gICAgaWYgKGxlbmd0aCAhPSBudWxsKSB7XHJcbiAgICAgICAgbmV3TG9jLmVuZCA9IGFkdmFuY2VQb3NpdGlvbldpdGhDbG9uZShsb2Muc3RhcnQsIGxvYy5zb3VyY2UsIG9mZnNldCArIGxlbmd0aCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3TG9jO1xyXG59XHJcbmZ1bmN0aW9uIGFkdmFuY2VQb3NpdGlvbldpdGhDbG9uZShwb3MsIHNvdXJjZSwgbnVtYmVyT2ZDaGFyYWN0ZXJzID0gc291cmNlLmxlbmd0aCkge1xyXG4gICAgcmV0dXJuIGFkdmFuY2VQb3NpdGlvbldpdGhNdXRhdGlvbihleHRlbmQoe30sIHBvcyksIHNvdXJjZSwgbnVtYmVyT2ZDaGFyYWN0ZXJzKTtcclxufVxyXG4vLyBhZHZhbmNlIGJ5IG11dGF0aW9uIHdpdGhvdXQgY2xvbmluZyAoZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMpLCBzaW5jZSB0aGlzXHJcbi8vIGdldHMgY2FsbGVkIGEgbG90IGluIHRoZSBwYXJzZXJcclxuZnVuY3Rpb24gYWR2YW5jZVBvc2l0aW9uV2l0aE11dGF0aW9uKHBvcywgc291cmNlLCBudW1iZXJPZkNoYXJhY3RlcnMgPSBzb3VyY2UubGVuZ3RoKSB7XHJcbiAgICBsZXQgbGluZXNDb3VudCA9IDA7XHJcbiAgICBsZXQgbGFzdE5ld0xpbmVQb3MgPSAtMTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFyYWN0ZXJzOyBpKyspIHtcclxuICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQoaSkgPT09IDEwIC8qIG5ld2xpbmUgY2hhciBjb2RlICovKSB7XHJcbiAgICAgICAgICAgIGxpbmVzQ291bnQrKztcclxuICAgICAgICAgICAgbGFzdE5ld0xpbmVQb3MgPSBpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHBvcy5vZmZzZXQgKz0gbnVtYmVyT2ZDaGFyYWN0ZXJzO1xyXG4gICAgcG9zLmxpbmUgKz0gbGluZXNDb3VudDtcclxuICAgIHBvcy5jb2x1bW4gPVxyXG4gICAgICAgIGxhc3ROZXdMaW5lUG9zID09PSAtMVxyXG4gICAgICAgICAgICA/IHBvcy5jb2x1bW4gKyBudW1iZXJPZkNoYXJhY3RlcnNcclxuICAgICAgICAgICAgOiBudW1iZXJPZkNoYXJhY3RlcnMgLSBsYXN0TmV3TGluZVBvcztcclxuICAgIHJldHVybiBwb3M7XHJcbn1cclxuZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbiwgbXNnKSB7XHJcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cclxuICAgIGlmICghY29uZGl0aW9uKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyB8fCBgdW5leHBlY3RlZCBjb21waWxlciBjb25kaXRpb25gKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBmaW5kRGlyKG5vZGUsIG5hbWUsIGFsbG93RW1wdHkgPSBmYWxzZSkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLnByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgcCA9IG5vZGUucHJvcHNbaV07XHJcbiAgICAgICAgaWYgKHAudHlwZSA9PT0gNyAvKiBOb2RlVHlwZXMuRElSRUNUSVZFICovICYmXHJcbiAgICAgICAgICAgIChhbGxvd0VtcHR5IHx8IHAuZXhwKSAmJlxyXG4gICAgICAgICAgICAoaXNTdHJpbmcobmFtZSkgPyBwLm5hbWUgPT09IG5hbWUgOiBuYW1lLnRlc3QocC5uYW1lKSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGZpbmRQcm9wKG5vZGUsIG5hbWUsIGR5bmFtaWNPbmx5ID0gZmFsc2UsIGFsbG93RW1wdHkgPSBmYWxzZSkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLnByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgcCA9IG5vZGUucHJvcHNbaV07XHJcbiAgICAgICAgaWYgKHAudHlwZSA9PT0gNiAvKiBOb2RlVHlwZXMuQVRUUklCVVRFICovKSB7XHJcbiAgICAgICAgICAgIGlmIChkeW5hbWljT25seSlcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAocC5uYW1lID09PSBuYW1lICYmIChwLnZhbHVlIHx8IGFsbG93RW1wdHkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChwLm5hbWUgPT09ICdiaW5kJyAmJlxyXG4gICAgICAgICAgICAocC5leHAgfHwgYWxsb3dFbXB0eSkgJiZcclxuICAgICAgICAgICAgaXNTdGF0aWNBcmdPZihwLmFyZywgbmFtZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGlzU3RhdGljQXJnT2YoYXJnLCBuYW1lKSB7XHJcbiAgICByZXR1cm4gISEoYXJnICYmIGlzU3RhdGljRXhwKGFyZykgJiYgYXJnLmNvbnRlbnQgPT09IG5hbWUpO1xyXG59XHJcbmZ1bmN0aW9uIGhhc0R5bmFtaWNLZXlWQmluZChub2RlKSB7XHJcbiAgICByZXR1cm4gbm9kZS5wcm9wcy5zb21lKHAgPT4gcC50eXBlID09PSA3IC8qIE5vZGVUeXBlcy5ESVJFQ1RJVkUgKi8gJiZcclxuICAgICAgICBwLm5hbWUgPT09ICdiaW5kJyAmJlxyXG4gICAgICAgICghcC5hcmcgfHwgLy8gdi1iaW5kPVwib2JqXCJcclxuICAgICAgICAgICAgcC5hcmcudHlwZSAhPT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8gfHwgLy8gdi1iaW5kOltfY3R4LmZvb11cclxuICAgICAgICAgICAgIXAuYXJnLmlzU3RhdGljKSAvLyB2LWJpbmQ6W2Zvb11cclxuICAgICk7XHJcbn1cclxuZnVuY3Rpb24gaXNUZXh0KG5vZGUpIHtcclxuICAgIHJldHVybiBub2RlLnR5cGUgPT09IDUgLyogTm9kZVR5cGVzLklOVEVSUE9MQVRJT04gKi8gfHwgbm9kZS50eXBlID09PSAyIC8qIE5vZGVUeXBlcy5URVhUICovO1xyXG59XHJcbmZ1bmN0aW9uIGlzVlNsb3QocCkge1xyXG4gICAgcmV0dXJuIHAudHlwZSA9PT0gNyAvKiBOb2RlVHlwZXMuRElSRUNUSVZFICovICYmIHAubmFtZSA9PT0gJ3Nsb3QnO1xyXG59XHJcbmZ1bmN0aW9uIGlzVGVtcGxhdGVOb2RlKG5vZGUpIHtcclxuICAgIHJldHVybiAobm9kZS50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovICYmIG5vZGUudGFnVHlwZSA9PT0gMyAvKiBFbGVtZW50VHlwZXMuVEVNUExBVEUgKi8pO1xyXG59XHJcbmZ1bmN0aW9uIGlzU2xvdE91dGxldChub2RlKSB7XHJcbiAgICByZXR1cm4gbm9kZS50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovICYmIG5vZGUudGFnVHlwZSA9PT0gMiAvKiBFbGVtZW50VHlwZXMuU0xPVCAqLztcclxufVxyXG5mdW5jdGlvbiBnZXRWTm9kZUhlbHBlcihzc3IsIGlzQ29tcG9uZW50KSB7XHJcbiAgICByZXR1cm4gc3NyIHx8IGlzQ29tcG9uZW50ID8gQ1JFQVRFX1ZOT0RFIDogQ1JFQVRFX0VMRU1FTlRfVk5PREU7XHJcbn1cclxuZnVuY3Rpb24gZ2V0Vk5vZGVCbG9ja0hlbHBlcihzc3IsIGlzQ29tcG9uZW50KSB7XHJcbiAgICByZXR1cm4gc3NyIHx8IGlzQ29tcG9uZW50ID8gQ1JFQVRFX0JMT0NLIDogQ1JFQVRFX0VMRU1FTlRfQkxPQ0s7XHJcbn1cclxuY29uc3QgcHJvcHNIZWxwZXJTZXQgPSBuZXcgU2V0KFtOT1JNQUxJWkVfUFJPUFMsIEdVQVJEX1JFQUNUSVZFX1BST1BTXSk7XHJcbmZ1bmN0aW9uIGdldFVubm9ybWFsaXplZFByb3BzKHByb3BzLCBjYWxsUGF0aCA9IFtdKSB7XHJcbiAgICBpZiAocHJvcHMgJiZcclxuICAgICAgICAhaXNTdHJpbmcocHJvcHMpICYmXHJcbiAgICAgICAgcHJvcHMudHlwZSA9PT0gMTQgLyogTm9kZVR5cGVzLkpTX0NBTExfRVhQUkVTU0lPTiAqLykge1xyXG4gICAgICAgIGNvbnN0IGNhbGxlZSA9IHByb3BzLmNhbGxlZTtcclxuICAgICAgICBpZiAoIWlzU3RyaW5nKGNhbGxlZSkgJiYgcHJvcHNIZWxwZXJTZXQuaGFzKGNhbGxlZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGdldFVubm9ybWFsaXplZFByb3BzKHByb3BzLmFyZ3VtZW50c1swXSwgY2FsbFBhdGguY29uY2F0KHByb3BzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFtwcm9wcywgY2FsbFBhdGhdO1xyXG59XHJcbmZ1bmN0aW9uIGluamVjdFByb3Aobm9kZSwgcHJvcCwgY29udGV4dCkge1xyXG4gICAgbGV0IHByb3BzV2l0aEluamVjdGlvbjtcclxuICAgIC8qKlxyXG4gICAgICogMS4gbWVyZ2VQcm9wcyguLi4pXHJcbiAgICAgKiAyLiB0b0hhbmRsZXJzKC4uLilcclxuICAgICAqIDMuIG5vcm1hbGl6ZVByb3BzKC4uLilcclxuICAgICAqIDQuIG5vcm1hbGl6ZVByb3BzKGd1YXJkUmVhY3RpdmVQcm9wcyguLi4pKVxyXG4gICAgICpcclxuICAgICAqIHdlIG5lZWQgdG8gZ2V0IHRoZSByZWFsIHByb3BzIGJlZm9yZSBub3JtYWxpemF0aW9uXHJcbiAgICAgKi9cclxuICAgIGxldCBwcm9wcyA9IG5vZGUudHlwZSA9PT0gMTMgLyogTm9kZVR5cGVzLlZOT0RFX0NBTEwgKi8gPyBub2RlLnByb3BzIDogbm9kZS5hcmd1bWVudHNbMl07XHJcbiAgICBsZXQgY2FsbFBhdGggPSBbXTtcclxuICAgIGxldCBwYXJlbnRDYWxsO1xyXG4gICAgaWYgKHByb3BzICYmXHJcbiAgICAgICAgIWlzU3RyaW5nKHByb3BzKSAmJlxyXG4gICAgICAgIHByb3BzLnR5cGUgPT09IDE0IC8qIE5vZGVUeXBlcy5KU19DQUxMX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICBjb25zdCByZXQgPSBnZXRVbm5vcm1hbGl6ZWRQcm9wcyhwcm9wcyk7XHJcbiAgICAgICAgcHJvcHMgPSByZXRbMF07XHJcbiAgICAgICAgY2FsbFBhdGggPSByZXRbMV07XHJcbiAgICAgICAgcGFyZW50Q2FsbCA9IGNhbGxQYXRoW2NhbGxQYXRoLmxlbmd0aCAtIDFdO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzID09IG51bGwgfHwgaXNTdHJpbmcocHJvcHMpKSB7XHJcbiAgICAgICAgcHJvcHNXaXRoSW5qZWN0aW9uID0gY3JlYXRlT2JqZWN0RXhwcmVzc2lvbihbcHJvcF0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAocHJvcHMudHlwZSA9PT0gMTQgLyogTm9kZVR5cGVzLkpTX0NBTExfRVhQUkVTU0lPTiAqLykge1xyXG4gICAgICAgIC8vIG1lcmdlZCBwcm9wcy4uLiBhZGQgb3Vyc1xyXG4gICAgICAgIC8vIG9ubHkgaW5qZWN0IGtleSB0byBvYmplY3QgbGl0ZXJhbCBpZiBpdCdzIHRoZSBmaXJzdCBhcmd1bWVudCBzbyB0aGF0XHJcbiAgICAgICAgLy8gaWYgZG9lc24ndCBvdmVycmlkZSB1c2VyIHByb3ZpZGVkIGtleXNcclxuICAgICAgICBjb25zdCBmaXJzdCA9IHByb3BzLmFyZ3VtZW50c1swXTtcclxuICAgICAgICBpZiAoIWlzU3RyaW5nKGZpcnN0KSAmJiBmaXJzdC50eXBlID09PSAxNSAvKiBOb2RlVHlwZXMuSlNfT0JKRUNUX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICAgICAgZmlyc3QucHJvcGVydGllcy51bnNoaWZ0KHByb3ApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHByb3BzLmNhbGxlZSA9PT0gVE9fSEFORExFUlMpIHtcclxuICAgICAgICAgICAgICAgIC8vICMyMzY2XHJcbiAgICAgICAgICAgICAgICBwcm9wc1dpdGhJbmplY3Rpb24gPSBjcmVhdGVDYWxsRXhwcmVzc2lvbihjb250ZXh0LmhlbHBlcihNRVJHRV9QUk9QUyksIFtcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVPYmplY3RFeHByZXNzaW9uKFtwcm9wXSksXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcHNcclxuICAgICAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcHJvcHMuYXJndW1lbnRzLnVuc2hpZnQoY3JlYXRlT2JqZWN0RXhwcmVzc2lvbihbcHJvcF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAhcHJvcHNXaXRoSW5qZWN0aW9uICYmIChwcm9wc1dpdGhJbmplY3Rpb24gPSBwcm9wcyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChwcm9wcy50eXBlID09PSAxNSAvKiBOb2RlVHlwZXMuSlNfT0JKRUNUX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICBsZXQgYWxyZWFkeUV4aXN0cyA9IGZhbHNlO1xyXG4gICAgICAgIC8vIGNoZWNrIGV4aXN0aW5nIGtleSB0byBhdm9pZCBvdmVycmlkaW5nIHVzZXIgcHJvdmlkZWQga2V5c1xyXG4gICAgICAgIGlmIChwcm9wLmtleS50eXBlID09PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLykge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wS2V5TmFtZSA9IHByb3Aua2V5LmNvbnRlbnQ7XHJcbiAgICAgICAgICAgIGFscmVhZHlFeGlzdHMgPSBwcm9wcy5wcm9wZXJ0aWVzLnNvbWUocCA9PiBwLmtleS50eXBlID09PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLyAmJlxyXG4gICAgICAgICAgICAgICAgcC5rZXkuY29udGVudCA9PT0gcHJvcEtleU5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFscmVhZHlFeGlzdHMpIHtcclxuICAgICAgICAgICAgcHJvcHMucHJvcGVydGllcy51bnNoaWZ0KHByb3ApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwcm9wc1dpdGhJbmplY3Rpb24gPSBwcm9wcztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIHNpbmdsZSB2LWJpbmQgd2l0aCBleHByZXNzaW9uLCByZXR1cm4gYSBtZXJnZWQgcmVwbGFjZW1lbnRcclxuICAgICAgICBwcm9wc1dpdGhJbmplY3Rpb24gPSBjcmVhdGVDYWxsRXhwcmVzc2lvbihjb250ZXh0LmhlbHBlcihNRVJHRV9QUk9QUyksIFtcclxuICAgICAgICAgICAgY3JlYXRlT2JqZWN0RXhwcmVzc2lvbihbcHJvcF0pLFxyXG4gICAgICAgICAgICBwcm9wc1xyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIC8vIGluIHRoZSBjYXNlIG9mIG5lc3RlZCBoZWxwZXIgY2FsbCwgZS5nLiBgbm9ybWFsaXplUHJvcHMoZ3VhcmRSZWFjdGl2ZVByb3BzKHByb3BzKSlgLFxyXG4gICAgICAgIC8vIGl0IHdpbGwgYmUgcmV3cml0dGVuIGFzIGBub3JtYWxpemVQcm9wcyhtZXJnZVByb3BzKHsga2V5OiAwIH0sIHByb3BzKSlgLFxyXG4gICAgICAgIC8vIHRoZSBgZ3VhcmRSZWFjdGl2ZVByb3BzYCB3aWxsIG5vIGxvbmdlciBiZSBuZWVkZWRcclxuICAgICAgICBpZiAocGFyZW50Q2FsbCAmJiBwYXJlbnRDYWxsLmNhbGxlZSA9PT0gR1VBUkRfUkVBQ1RJVkVfUFJPUFMpIHtcclxuICAgICAgICAgICAgcGFyZW50Q2FsbCA9IGNhbGxQYXRoW2NhbGxQYXRoLmxlbmd0aCAtIDJdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChub2RlLnR5cGUgPT09IDEzIC8qIE5vZGVUeXBlcy5WTk9ERV9DQUxMICovKSB7XHJcbiAgICAgICAgaWYgKHBhcmVudENhbGwpIHtcclxuICAgICAgICAgICAgcGFyZW50Q2FsbC5hcmd1bWVudHNbMF0gPSBwcm9wc1dpdGhJbmplY3Rpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBub2RlLnByb3BzID0gcHJvcHNXaXRoSW5qZWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChwYXJlbnRDYWxsKSB7XHJcbiAgICAgICAgICAgIHBhcmVudENhbGwuYXJndW1lbnRzWzBdID0gcHJvcHNXaXRoSW5qZWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbm9kZS5hcmd1bWVudHNbMl0gPSBwcm9wc1dpdGhJbmplY3Rpb247XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHRvVmFsaWRBc3NldElkKG5hbWUsIHR5cGUpIHtcclxuICAgIC8vIHNlZSBpc3N1ZSM0NDIyLCB3ZSBuZWVkIGFkZGluZyBpZGVudGlmaWVyIG9uIHZhbGlkQXNzZXRJZCBpZiB2YXJpYWJsZSBgbmFtZWAgaGFzIHNwZWNpZmljIGNoYXJhY3RlclxyXG4gICAgcmV0dXJuIGBfJHt0eXBlfV8ke25hbWUucmVwbGFjZSgvW15cXHddL2csIChzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHNlYXJjaFZhbHVlID09PSAnLScgPyAnXycgOiBuYW1lLmNoYXJDb2RlQXQocmVwbGFjZVZhbHVlKS50b1N0cmluZygpO1xyXG4gICAgfSl9YDtcclxufVxyXG4vLyBDaGVjayBpZiBhIG5vZGUgY29udGFpbnMgZXhwcmVzc2lvbnMgdGhhdCByZWZlcmVuY2UgY3VycmVudCBjb250ZXh0IHNjb3BlIGlkc1xyXG5mdW5jdGlvbiBoYXNTY29wZVJlZihub2RlLCBpZHMpIHtcclxuICAgIGlmICghbm9kZSB8fCBPYmplY3Qua2V5cyhpZHMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHN3aXRjaCAobm9kZS50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovOlxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUucHJvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHAgPSBub2RlLnByb3BzW2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKHAudHlwZSA9PT0gNyAvKiBOb2RlVHlwZXMuRElSRUNUSVZFICovICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKGhhc1Njb3BlUmVmKHAuYXJnLCBpZHMpIHx8IGhhc1Njb3BlUmVmKHAuZXhwLCBpZHMpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuLnNvbWUoYyA9PiBoYXNTY29wZVJlZihjLCBpZHMpKTtcclxuICAgICAgICBjYXNlIDExIC8qIE5vZGVUeXBlcy5GT1IgKi86XHJcbiAgICAgICAgICAgIGlmIChoYXNTY29wZVJlZihub2RlLnNvdXJjZSwgaWRzKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW4uc29tZShjID0+IGhhc1Njb3BlUmVmKGMsIGlkcykpO1xyXG4gICAgICAgIGNhc2UgOSAvKiBOb2RlVHlwZXMuSUYgKi86XHJcbiAgICAgICAgICAgIHJldHVybiBub2RlLmJyYW5jaGVzLnNvbWUoYiA9PiBoYXNTY29wZVJlZihiLCBpZHMpKTtcclxuICAgICAgICBjYXNlIDEwIC8qIE5vZGVUeXBlcy5JRl9CUkFOQ0ggKi86XHJcbiAgICAgICAgICAgIGlmIChoYXNTY29wZVJlZihub2RlLmNvbmRpdGlvbiwgaWRzKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW4uc29tZShjID0+IGhhc1Njb3BlUmVmKGMsIGlkcykpO1xyXG4gICAgICAgIGNhc2UgNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi86XHJcbiAgICAgICAgICAgIHJldHVybiAoIW5vZGUuaXNTdGF0aWMgJiZcclxuICAgICAgICAgICAgICAgIGlzU2ltcGxlSWRlbnRpZmllcihub2RlLmNvbnRlbnQpICYmXHJcbiAgICAgICAgICAgICAgICAhIWlkc1tub2RlLmNvbnRlbnRdKTtcclxuICAgICAgICBjYXNlIDggLyogTm9kZVR5cGVzLkNPTVBPVU5EX0VYUFJFU1NJT04gKi86XHJcbiAgICAgICAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuLnNvbWUoYyA9PiBpc09iamVjdChjKSAmJiBoYXNTY29wZVJlZihjLCBpZHMpKTtcclxuICAgICAgICBjYXNlIDUgLyogTm9kZVR5cGVzLklOVEVSUE9MQVRJT04gKi86XHJcbiAgICAgICAgY2FzZSAxMiAvKiBOb2RlVHlwZXMuVEVYVF9DQUxMICovOlxyXG4gICAgICAgICAgICByZXR1cm4gaGFzU2NvcGVSZWYobm9kZS5jb250ZW50LCBpZHMpO1xyXG4gICAgICAgIGNhc2UgMiAvKiBOb2RlVHlwZXMuVEVYVCAqLzpcclxuICAgICAgICBjYXNlIDMgLyogTm9kZVR5cGVzLkNPTU1FTlQgKi86XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSA7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBnZXRNZW1vZWRWTm9kZUNhbGwobm9kZSkge1xyXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gMTQgLyogTm9kZVR5cGVzLkpTX0NBTExfRVhQUkVTU0lPTiAqLyAmJiBub2RlLmNhbGxlZSA9PT0gV0lUSF9NRU1PKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGUuYXJndW1lbnRzWzFdLnJldHVybnM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbm9kZTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBtYWtlQmxvY2sobm9kZSwgeyBoZWxwZXIsIHJlbW92ZUhlbHBlciwgaW5TU1IgfSkge1xyXG4gICAgaWYgKCFub2RlLmlzQmxvY2spIHtcclxuICAgICAgICBub2RlLmlzQmxvY2sgPSB0cnVlO1xyXG4gICAgICAgIHJlbW92ZUhlbHBlcihnZXRWTm9kZUhlbHBlcihpblNTUiwgbm9kZS5pc0NvbXBvbmVudCkpO1xyXG4gICAgICAgIGhlbHBlcihPUEVOX0JMT0NLKTtcclxuICAgICAgICBoZWxwZXIoZ2V0Vk5vZGVCbG9ja0hlbHBlcihpblNTUiwgbm9kZS5pc0NvbXBvbmVudCkpO1xyXG4gICAgfVxyXG59XG5cbmNvbnN0IGRlcHJlY2F0aW9uRGF0YSA9IHtcclxuICAgIFtcIkNPTVBJTEVSX0lTX09OX0VMRU1FTlRcIiAvKiBDb21waWxlckRlcHJlY2F0aW9uVHlwZXMuQ09NUElMRVJfSVNfT05fRUxFTUVOVCAqL106IHtcclxuICAgICAgICBtZXNzYWdlOiBgUGxhdGZvcm0tbmF0aXZlIGVsZW1lbnRzIHdpdGggXCJpc1wiIHByb3Agd2lsbCBubyBsb25nZXIgYmUgYCArXHJcbiAgICAgICAgICAgIGB0cmVhdGVkIGFzIGNvbXBvbmVudHMgaW4gVnVlIDMgdW5sZXNzIHRoZSBcImlzXCIgdmFsdWUgaXMgZXhwbGljaXRseSBgICtcclxuICAgICAgICAgICAgYHByZWZpeGVkIHdpdGggXCJ2dWU6XCIuYCxcclxuICAgICAgICBsaW5rOiBgaHR0cHM6Ly92My1taWdyYXRpb24udnVlanMub3JnL2JyZWFraW5nLWNoYW5nZXMvY3VzdG9tLWVsZW1lbnRzLWludGVyb3AuaHRtbGBcclxuICAgIH0sXHJcbiAgICBbXCJDT01QSUxFUl9WX0JJTkRfU1lOQ1wiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9WX0JJTkRfU1lOQyAqL106IHtcclxuICAgICAgICBtZXNzYWdlOiBrZXkgPT4gYC5zeW5jIG1vZGlmaWVyIGZvciB2LWJpbmQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHYtbW9kZWwgd2l0aCBgICtcclxuICAgICAgICAgICAgYGFyZ3VtZW50IGluc3RlYWQuIFxcYHYtYmluZDoke2tleX0uc3luY1xcYCBzaG91bGQgYmUgY2hhbmdlZCB0byBgICtcclxuICAgICAgICAgICAgYFxcYHYtbW9kZWw6JHtrZXl9XFxgLmAsXHJcbiAgICAgICAgbGluazogYGh0dHBzOi8vdjMtbWlncmF0aW9uLnZ1ZWpzLm9yZy9icmVha2luZy1jaGFuZ2VzL3YtbW9kZWwuaHRtbGBcclxuICAgIH0sXHJcbiAgICBbXCJDT01QSUxFUl9WX0JJTkRfUFJPUFwiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9WX0JJTkRfUFJPUCAqL106IHtcclxuICAgICAgICBtZXNzYWdlOiBgLnByb3AgbW9kaWZpZXIgZm9yIHYtYmluZCBoYXMgYmVlbiByZW1vdmVkIGFuZCBubyBsb25nZXIgbmVjZXNzYXJ5LiBgICtcclxuICAgICAgICAgICAgYFZ1ZSAzIHdpbGwgYXV0b21hdGljYWxseSBzZXQgYSBiaW5kaW5nIGFzIERPTSBwcm9wZXJ0eSB3aGVuIGFwcHJvcHJpYXRlLmBcclxuICAgIH0sXHJcbiAgICBbXCJDT01QSUxFUl9WX0JJTkRfT0JKRUNUX09SREVSXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX1ZfQklORF9PQkpFQ1RfT1JERVIgKi9dOiB7XHJcbiAgICAgICAgbWVzc2FnZTogYHYtYmluZD1cIm9ialwiIHVzYWdlIGlzIG5vdyBvcmRlciBzZW5zaXRpdmUgYW5kIGJlaGF2ZXMgbGlrZSBKYXZhU2NyaXB0IGAgK1xyXG4gICAgICAgICAgICBgb2JqZWN0IHNwcmVhZDogaXQgd2lsbCBub3cgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIG5vbi1tZXJnZWFibGUgYXR0cmlidXRlIGAgK1xyXG4gICAgICAgICAgICBgdGhhdCBhcHBlYXJzIGJlZm9yZSB2LWJpbmQgaW4gdGhlIGNhc2Ugb2YgY29uZmxpY3QuIGAgK1xyXG4gICAgICAgICAgICBgVG8gcmV0YWluIDIueCBiZWhhdmlvciwgbW92ZSB2LWJpbmQgdG8gbWFrZSBpdCB0aGUgZmlyc3QgYXR0cmlidXRlLiBgICtcclxuICAgICAgICAgICAgYFlvdSBjYW4gYWxzbyBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgaWYgdGhlIHVzYWdlIGlzIGludGVuZGVkLmAsXHJcbiAgICAgICAgbGluazogYGh0dHBzOi8vdjMtbWlncmF0aW9uLnZ1ZWpzLm9yZy9icmVha2luZy1jaGFuZ2VzL3YtYmluZC5odG1sYFxyXG4gICAgfSxcclxuICAgIFtcIkNPTVBJTEVSX1ZfT05fTkFUSVZFXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX1ZfT05fTkFUSVZFICovXToge1xyXG4gICAgICAgIG1lc3NhZ2U6IGAubmF0aXZlIG1vZGlmaWVyIGZvciB2LW9uIGhhcyBiZWVuIHJlbW92ZWQgYXMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS5gLFxyXG4gICAgICAgIGxpbms6IGBodHRwczovL3YzLW1pZ3JhdGlvbi52dWVqcy5vcmcvYnJlYWtpbmctY2hhbmdlcy92LW9uLW5hdGl2ZS1tb2RpZmllci1yZW1vdmVkLmh0bWxgXHJcbiAgICB9LFxyXG4gICAgW1wiQ09NUElMRVJfVl9JRl9WX0ZPUl9QUkVDRURFTkNFXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX1ZfSUZfVl9GT1JfUFJFQ0VERU5DRSAqL106IHtcclxuICAgICAgICBtZXNzYWdlOiBgdi1pZiAvIHYtZm9yIHByZWNlZGVuY2Ugd2hlbiB1c2VkIG9uIHRoZSBzYW1lIGVsZW1lbnQgaGFzIGNoYW5nZWQgYCArXHJcbiAgICAgICAgICAgIGBpbiBWdWUgMzogdi1pZiBub3cgdGFrZXMgaGlnaGVyIHByZWNlZGVuY2UgYW5kIHdpbGwgbm8gbG9uZ2VyIGhhdmUgYCArXHJcbiAgICAgICAgICAgIGBhY2Nlc3MgdG8gdi1mb3Igc2NvcGUgdmFyaWFibGVzLiBJdCBpcyBiZXN0IHRvIGF2b2lkIHRoZSBhbWJpZ3VpdHkgYCArXHJcbiAgICAgICAgICAgIGB3aXRoIDx0ZW1wbGF0ZT4gdGFncyBvciB1c2UgYSBjb21wdXRlZCBwcm9wZXJ0eSB0aGF0IGZpbHRlcnMgdi1mb3IgYCArXHJcbiAgICAgICAgICAgIGBkYXRhIHNvdXJjZS5gLFxyXG4gICAgICAgIGxpbms6IGBodHRwczovL3YzLW1pZ3JhdGlvbi52dWVqcy5vcmcvYnJlYWtpbmctY2hhbmdlcy92LWlmLXYtZm9yLmh0bWxgXHJcbiAgICB9LFxyXG4gICAgW1wiQ09NUElMRVJfTkFUSVZFX1RFTVBMQVRFXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX05BVElWRV9URU1QTEFURSAqL106IHtcclxuICAgICAgICBtZXNzYWdlOiBgPHRlbXBsYXRlPiB3aXRoIG5vIHNwZWNpYWwgZGlyZWN0aXZlcyB3aWxsIHJlbmRlciBhcyBhIG5hdGl2ZSB0ZW1wbGF0ZSBgICtcclxuICAgICAgICAgICAgYGVsZW1lbnQgaW5zdGVhZCBvZiBpdHMgaW5uZXIgY29udGVudCBpbiBWdWUgMy5gXHJcbiAgICB9LFxyXG4gICAgW1wiQ09NUElMRVJfSU5MSU5FX1RFTVBMQVRFXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX0lOTElORV9URU1QTEFURSAqL106IHtcclxuICAgICAgICBtZXNzYWdlOiBgXCJpbmxpbmUtdGVtcGxhdGVcIiBoYXMgYmVlbiByZW1vdmVkIGluIFZ1ZSAzLmAsXHJcbiAgICAgICAgbGluazogYGh0dHBzOi8vdjMtbWlncmF0aW9uLnZ1ZWpzLm9yZy9icmVha2luZy1jaGFuZ2VzL2lubGluZS10ZW1wbGF0ZS1hdHRyaWJ1dGUuaHRtbGBcclxuICAgIH0sXHJcbiAgICBbXCJDT01QSUxFUl9GSUxURVJcIiAvKiBDb21waWxlckRlcHJlY2F0aW9uVHlwZXMuQ09NUElMRVJfRklMVEVSUyAqL106IHtcclxuICAgICAgICBtZXNzYWdlOiBgZmlsdGVycyBoYXZlIGJlZW4gcmVtb3ZlZCBpbiBWdWUgMy4gYCArXHJcbiAgICAgICAgICAgIGBUaGUgXCJ8XCIgc3ltYm9sIHdpbGwgYmUgdHJlYXRlZCBhcyBuYXRpdmUgSmF2YVNjcmlwdCBiaXR3aXNlIE9SIG9wZXJhdG9yLiBgICtcclxuICAgICAgICAgICAgYFVzZSBtZXRob2QgY2FsbHMgb3IgY29tcHV0ZWQgcHJvcGVydGllcyBpbnN0ZWFkLmAsXHJcbiAgICAgICAgbGluazogYGh0dHBzOi8vdjMtbWlncmF0aW9uLnZ1ZWpzLm9yZy9icmVha2luZy1jaGFuZ2VzL2ZpbHRlcnMuaHRtbGBcclxuICAgIH1cclxufTtcclxuZnVuY3Rpb24gZ2V0Q29tcGF0VmFsdWUoa2V5LCBjb250ZXh0KSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjb250ZXh0Lm9wdGlvbnNcclxuICAgICAgICA/IGNvbnRleHQub3B0aW9ucy5jb21wYXRDb25maWdcclxuICAgICAgICA6IGNvbnRleHQuY29tcGF0Q29uZmlnO1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb25maWcgJiYgY29uZmlnW2tleV07XHJcbiAgICBpZiAoa2V5ID09PSAnTU9ERScpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgfHwgMzsgLy8gY29tcGlsZXIgZGVmYXVsdHMgdG8gdjMgYmVoYXZpb3JcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBpc0NvbXBhdEVuYWJsZWQoa2V5LCBjb250ZXh0KSB7XHJcbiAgICBjb25zdCBtb2RlID0gZ2V0Q29tcGF0VmFsdWUoJ01PREUnLCBjb250ZXh0KTtcclxuICAgIGNvbnN0IHZhbHVlID0gZ2V0Q29tcGF0VmFsdWUoa2V5LCBjb250ZXh0KTtcclxuICAgIC8vIGluIHYzIG1vZGUsIG9ubHkgZW5hYmxlIGlmIGV4cGxpY2l0bHkgc2V0IHRvIHRydWVcclxuICAgIC8vIG90aGVyd2lzZSBlbmFibGUgZm9yIGFueSBub24tZmFsc2UgdmFsdWVcclxuICAgIHJldHVybiBtb2RlID09PSAzID8gdmFsdWUgPT09IHRydWUgOiB2YWx1ZSAhPT0gZmFsc2U7XHJcbn1cclxuZnVuY3Rpb24gY2hlY2tDb21wYXRFbmFibGVkKGtleSwgY29udGV4dCwgbG9jLCAuLi5hcmdzKSB7XHJcbiAgICBjb25zdCBlbmFibGVkID0gaXNDb21wYXRFbmFibGVkKGtleSwgY29udGV4dCk7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGVuYWJsZWQpIHtcclxuICAgICAgICB3YXJuRGVwcmVjYXRpb24oa2V5LCBjb250ZXh0LCBsb2MsIC4uLmFyZ3MpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVuYWJsZWQ7XHJcbn1cclxuZnVuY3Rpb24gd2FybkRlcHJlY2F0aW9uKGtleSwgY29udGV4dCwgbG9jLCAuLi5hcmdzKSB7XHJcbiAgICBjb25zdCB2YWwgPSBnZXRDb21wYXRWYWx1ZShrZXksIGNvbnRleHQpO1xyXG4gICAgaWYgKHZhbCA9PT0gJ3N1cHByZXNzLXdhcm5pbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBtZXNzYWdlLCBsaW5rIH0gPSBkZXByZWNhdGlvbkRhdGFba2V5XTtcclxuICAgIGNvbnN0IG1zZyA9IGAoZGVwcmVjYXRpb24gJHtrZXl9KSAke3R5cGVvZiBtZXNzYWdlID09PSAnZnVuY3Rpb24nID8gbWVzc2FnZSguLi5hcmdzKSA6IG1lc3NhZ2V9JHtsaW5rID8gYFxcbiAgRGV0YWlsczogJHtsaW5rfWAgOiBgYH1gO1xyXG4gICAgY29uc3QgZXJyID0gbmV3IFN5bnRheEVycm9yKG1zZyk7XHJcbiAgICBlcnIuY29kZSA9IGtleTtcclxuICAgIGlmIChsb2MpXHJcbiAgICAgICAgZXJyLmxvYyA9IGxvYztcclxuICAgIGNvbnRleHQub25XYXJuKGVycik7XHJcbn1cblxuLy8gVGhlIGRlZmF1bHQgZGVjb2RlciBvbmx5IHByb3ZpZGVzIGVzY2FwZXMgZm9yIGNoYXJhY3RlcnMgcmVzZXJ2ZWQgYXMgcGFydCBvZlxyXG4vLyB0aGUgdGVtcGxhdGUgc3ludGF4LCBhbmQgaXMgb25seSB1c2VkIGlmIHRoZSBjdXN0b20gcmVuZGVyZXIgZGlkIG5vdCBwcm92aWRlXHJcbi8vIGEgcGxhdGZvcm0tc3BlY2lmaWMgZGVjb2Rlci5cclxuY29uc3QgZGVjb2RlUkUgPSAvJihndHxsdHxhbXB8YXBvc3xxdW90KTsvZztcclxuY29uc3QgZGVjb2RlTWFwID0ge1xyXG4gICAgZ3Q6ICc+JyxcclxuICAgIGx0OiAnPCcsXHJcbiAgICBhbXA6ICcmJyxcclxuICAgIGFwb3M6IFwiJ1wiLFxyXG4gICAgcXVvdDogJ1wiJ1xyXG59O1xyXG5jb25zdCBkZWZhdWx0UGFyc2VyT3B0aW9ucyA9IHtcclxuICAgIGRlbGltaXRlcnM6IFtge3tgLCBgfX1gXSxcclxuICAgIGdldE5hbWVzcGFjZTogKCkgPT4gMCAvKiBOYW1lc3BhY2VzLkhUTUwgKi8sXHJcbiAgICBnZXRUZXh0TW9kZTogKCkgPT4gMCAvKiBUZXh0TW9kZXMuREFUQSAqLyxcclxuICAgIGlzVm9pZFRhZzogTk8sXHJcbiAgICBpc1ByZVRhZzogTk8sXHJcbiAgICBpc0N1c3RvbUVsZW1lbnQ6IE5PLFxyXG4gICAgZGVjb2RlRW50aXRpZXM6IChyYXdUZXh0KSA9PiByYXdUZXh0LnJlcGxhY2UoZGVjb2RlUkUsIChfLCBwMSkgPT4gZGVjb2RlTWFwW3AxXSksXHJcbiAgICBvbkVycm9yOiBkZWZhdWx0T25FcnJvcixcclxuICAgIG9uV2FybjogZGVmYXVsdE9uV2FybixcclxuICAgIGNvbW1lbnRzOiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylcclxufTtcclxuZnVuY3Rpb24gYmFzZVBhcnNlKGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgY29uc3QgY29udGV4dCA9IGNyZWF0ZVBhcnNlckNvbnRleHQoY29udGVudCwgb3B0aW9ucyk7XHJcbiAgICBjb25zdCBzdGFydCA9IGdldEN1cnNvcihjb250ZXh0KTtcclxuICAgIHJldHVybiBjcmVhdGVSb290KHBhcnNlQ2hpbGRyZW4oY29udGV4dCwgMCAvKiBUZXh0TW9kZXMuREFUQSAqLywgW10pLCBnZXRTZWxlY3Rpb24oY29udGV4dCwgc3RhcnQpKTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVQYXJzZXJDb250ZXh0KGNvbnRlbnQsIHJhd09wdGlvbnMpIHtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSBleHRlbmQoe30sIGRlZmF1bHRQYXJzZXJPcHRpb25zKTtcclxuICAgIGxldCBrZXk7XHJcbiAgICBmb3IgKGtleSBpbiByYXdPcHRpb25zKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIG9wdGlvbnNba2V5XSA9XHJcbiAgICAgICAgICAgIHJhd09wdGlvbnNba2V5XSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgICA/IGRlZmF1bHRQYXJzZXJPcHRpb25zW2tleV1cclxuICAgICAgICAgICAgICAgIDogcmF3T3B0aW9uc1trZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBvcHRpb25zLFxyXG4gICAgICAgIGNvbHVtbjogMSxcclxuICAgICAgICBsaW5lOiAxLFxyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBvcmlnaW5hbFNvdXJjZTogY29udGVudCxcclxuICAgICAgICBzb3VyY2U6IGNvbnRlbnQsXHJcbiAgICAgICAgaW5QcmU6IGZhbHNlLFxyXG4gICAgICAgIGluVlByZTogZmFsc2UsXHJcbiAgICAgICAgb25XYXJuOiBvcHRpb25zLm9uV2FyblxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBwYXJzZUNoaWxkcmVuKGNvbnRleHQsIG1vZGUsIGFuY2VzdG9ycykge1xyXG4gICAgY29uc3QgcGFyZW50ID0gbGFzdChhbmNlc3RvcnMpO1xyXG4gICAgY29uc3QgbnMgPSBwYXJlbnQgPyBwYXJlbnQubnMgOiAwIC8qIE5hbWVzcGFjZXMuSFRNTCAqLztcclxuICAgIGNvbnN0IG5vZGVzID0gW107XHJcbiAgICB3aGlsZSAoIWlzRW5kKGNvbnRleHQsIG1vZGUsIGFuY2VzdG9ycykpIHtcclxuICAgICAgICBjb25zdCBzID0gY29udGV4dC5zb3VyY2U7XHJcbiAgICAgICAgbGV0IG5vZGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKG1vZGUgPT09IDAgLyogVGV4dE1vZGVzLkRBVEEgKi8gfHwgbW9kZSA9PT0gMSAvKiBUZXh0TW9kZXMuUkNEQVRBICovKSB7XHJcbiAgICAgICAgICAgIGlmICghY29udGV4dC5pblZQcmUgJiYgc3RhcnRzV2l0aChzLCBjb250ZXh0Lm9wdGlvbnMuZGVsaW1pdGVyc1swXSkpIHtcclxuICAgICAgICAgICAgICAgIC8vICd7eydcclxuICAgICAgICAgICAgICAgIG5vZGUgPSBwYXJzZUludGVycG9sYXRpb24oY29udGV4dCwgbW9kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAobW9kZSA9PT0gMCAvKiBUZXh0TW9kZXMuREFUQSAqLyAmJiBzWzBdID09PSAnPCcpIHtcclxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCN0YWctb3Blbi1zdGF0ZVxyXG4gICAgICAgICAgICAgICAgaWYgKHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW1pdEVycm9yKGNvbnRleHQsIDUgLyogRXJyb3JDb2Rlcy5FT0ZfQkVGT1JFX1RBR19OQU1FICovLCAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNbMV0gPT09ICchJykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNtYXJrdXAtZGVjbGFyYXRpb24tb3Blbi1zdGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydHNXaXRoKHMsICc8IS0tJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHBhcnNlQ29tbWVudChjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RhcnRzV2l0aChzLCAnPCFET0NUWVBFJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIERPQ1RZUEUgYnkgYSBsaW1pdGF0aW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlID0gcGFyc2VCb2d1c0NvbW1lbnQoY29udGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXJ0c1dpdGgocywgJzwhW0NEQVRBWycpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChucyAhPT0gMCAvKiBOYW1lc3BhY2VzLkhUTUwgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBwYXJzZUNEQVRBKGNvbnRleHQsIGFuY2VzdG9ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXJyb3IoY29udGV4dCwgMSAvKiBFcnJvckNvZGVzLkNEQVRBX0lOX0hUTUxfQ09OVEVOVCAqLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlID0gcGFyc2VCb2d1c0NvbW1lbnQoY29udGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAxMSAvKiBFcnJvckNvZGVzLklOQ09SUkVDVExZX09QRU5FRF9DT01NRU5UICovKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHBhcnNlQm9ndXNDb21tZW50KGNvbnRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNbMV0gPT09ICcvJykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNlbmQtdGFnLW9wZW4tc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICBpZiAocy5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEVycm9yKGNvbnRleHQsIDUgLyogRXJyb3JDb2Rlcy5FT0ZfQkVGT1JFX1RBR19OQU1FICovLCAyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoc1syXSA9PT0gJz4nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAxNCAvKiBFcnJvckNvZGVzLk1JU1NJTkdfRU5EX1RBR19OQU1FICovLCAyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZUJ5KGNvbnRleHQsIDMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoL1thLXpdL2kudGVzdChzWzJdKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXJyb3IoY29udGV4dCwgMjMgLyogRXJyb3JDb2Rlcy5YX0lOVkFMSURfRU5EX1RBRyAqLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlVGFnKGNvbnRleHQsIDEgLyogVGFnVHlwZS5FbmQgKi8sIHBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEVycm9yKGNvbnRleHQsIDEyIC8qIEVycm9yQ29kZXMuSU5WQUxJRF9GSVJTVF9DSEFSQUNURVJfT0ZfVEFHX05BTUUgKi8sIDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlID0gcGFyc2VCb2d1c0NvbW1lbnQoY29udGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoL1thLXpdL2kudGVzdChzWzFdKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUgPSBwYXJzZUVsZW1lbnQoY29udGV4dCwgYW5jZXN0b3JzKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyAyLnggPHRlbXBsYXRlPiB3aXRoIG5vIGRpcmVjdGl2ZSBjb21wYXRcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDb21wYXRFbmFibGVkKFwiQ09NUElMRVJfTkFUSVZFX1RFTVBMQVRFXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX05BVElWRV9URU1QTEFURSAqLywgY29udGV4dCkgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnRhZyA9PT0gJ3RlbXBsYXRlJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhbm9kZS5wcm9wcy5zb21lKHAgPT4gcC50eXBlID09PSA3IC8qIE5vZGVUeXBlcy5ESVJFQ1RJVkUgKi8gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU3BlY2lhbFRlbXBsYXRlRGlyZWN0aXZlKHAubmFtZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybkRlcHJlY2F0aW9uKFwiQ09NUElMRVJfTkFUSVZFX1RFTVBMQVRFXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX05BVElWRV9URU1QTEFURSAqLywgY29udGV4dCwgbm9kZS5sb2MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzWzFdID09PSAnPycpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbWl0RXJyb3IoY29udGV4dCwgMjEgLyogRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX1FVRVNUSU9OX01BUktfSU5TVEVBRF9PRl9UQUdfTkFNRSAqLywgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHBhcnNlQm9ndXNDb21tZW50KGNvbnRleHQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW1pdEVycm9yKGNvbnRleHQsIDEyIC8qIEVycm9yQ29kZXMuSU5WQUxJRF9GSVJTVF9DSEFSQUNURVJfT0ZfVEFHX05BTUUgKi8sIDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghbm9kZSkge1xyXG4gICAgICAgICAgICBub2RlID0gcGFyc2VUZXh0KGNvbnRleHQsIG1vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNBcnJheShub2RlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHB1c2hOb2RlKG5vZGVzLCBub2RlW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcHVzaE5vZGUobm9kZXMsIG5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIFdoaXRlc3BhY2UgaGFuZGxpbmcgc3RyYXRlZ3kgbGlrZSB2MlxyXG4gICAgbGV0IHJlbW92ZWRXaGl0ZXNwYWNlID0gZmFsc2U7XHJcbiAgICBpZiAobW9kZSAhPT0gMiAvKiBUZXh0TW9kZXMuUkFXVEVYVCAqLyAmJiBtb2RlICE9PSAxIC8qIFRleHRNb2Rlcy5SQ0RBVEEgKi8pIHtcclxuICAgICAgICBjb25zdCBzaG91bGRDb25kZW5zZSA9IGNvbnRleHQub3B0aW9ucy53aGl0ZXNwYWNlICE9PSAncHJlc2VydmUnO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2ldO1xyXG4gICAgICAgICAgICBpZiAoIWNvbnRleHQuaW5QcmUgJiYgbm9kZS50eXBlID09PSAyIC8qIE5vZGVUeXBlcy5URVhUICovKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIS9bXlxcdFxcclxcblxcZiBdLy50ZXN0KG5vZGUuY29udGVudCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gbm9kZXNbaSAtIDFdO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSBub2Rlc1tpICsgMV07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGlmOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIC0gdGhlIHdoaXRlc3BhY2UgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZSwgb3I6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gLSAoY29uZGVuc2UgbW9kZSkgdGhlIHdoaXRlc3BhY2UgaXMgYWRqYWNlbnQgdG8gYSBjb21tZW50LCBvcjpcclxuICAgICAgICAgICAgICAgICAgICAvLyAtIChjb25kZW5zZSBtb2RlKSB0aGUgd2hpdGVzcGFjZSBpcyBiZXR3ZWVuIHR3byBlbGVtZW50cyBBTkQgY29udGFpbnMgbmV3bGluZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJldiB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhbmV4dCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkQ29uZGVuc2UgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcmV2LnR5cGUgPT09IDMgLyogTm9kZVR5cGVzLkNPTU1FTlQgKi8gfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0LnR5cGUgPT09IDMgLyogTm9kZVR5cGVzLkNPTU1FTlQgKi8gfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJldi50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvW1xcclxcbl0vLnRlc3Qobm9kZS5jb250ZW50KSkpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVkV2hpdGVzcGFjZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVzW2ldID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgdGhlIHdoaXRlc3BhY2UgaXMgY29uZGVuc2VkIGludG8gYSBzaW5nbGUgc3BhY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5jb250ZW50ID0gJyAnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNob3VsZENvbmRlbnNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaW4gY29uZGVuc2UgbW9kZSwgY29uc2VjdXRpdmUgd2hpdGVzcGFjZXMgaW4gdGV4dCBhcmUgY29uZGVuc2VkXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZG93biB0byBhIHNpbmdsZSBzcGFjZS5cclxuICAgICAgICAgICAgICAgICAgICBub2RlLmNvbnRlbnQgPSBub2RlLmNvbnRlbnQucmVwbGFjZSgvW1xcdFxcclxcblxcZiBdKy9nLCAnICcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIFJlbW92ZSBjb21tZW50IG5vZGVzIGlmIGRlc2lyZWQgYnkgY29uZmlndXJhdGlvbi5cclxuICAgICAgICAgICAgZWxzZSBpZiAobm9kZS50eXBlID09PSAzIC8qIE5vZGVUeXBlcy5DT01NRU5UICovICYmICFjb250ZXh0Lm9wdGlvbnMuY29tbWVudHMpIHtcclxuICAgICAgICAgICAgICAgIHJlbW92ZWRXaGl0ZXNwYWNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGVzW2ldID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29udGV4dC5pblByZSAmJiBwYXJlbnQgJiYgY29udGV4dC5vcHRpb25zLmlzUHJlVGFnKHBhcmVudC50YWcpKSB7XHJcbiAgICAgICAgICAgIC8vIHJlbW92ZSBsZWFkaW5nIG5ld2xpbmUgcGVyIGh0bWwgc3BlY1xyXG4gICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9ncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLXByZS1lbGVtZW50XHJcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0ID0gbm9kZXNbMF07XHJcbiAgICAgICAgICAgIGlmIChmaXJzdCAmJiBmaXJzdC50eXBlID09PSAyIC8qIE5vZGVUeXBlcy5URVhUICovKSB7XHJcbiAgICAgICAgICAgICAgICBmaXJzdC5jb250ZW50ID0gZmlyc3QuY29udGVudC5yZXBsYWNlKC9eXFxyP1xcbi8sICcnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZW1vdmVkV2hpdGVzcGFjZSA/IG5vZGVzLmZpbHRlcihCb29sZWFuKSA6IG5vZGVzO1xyXG59XHJcbmZ1bmN0aW9uIHB1c2hOb2RlKG5vZGVzLCBub2RlKSB7XHJcbiAgICBpZiAobm9kZS50eXBlID09PSAyIC8qIE5vZGVUeXBlcy5URVhUICovKSB7XHJcbiAgICAgICAgY29uc3QgcHJldiA9IGxhc3Qobm9kZXMpO1xyXG4gICAgICAgIC8vIE1lcmdlIGlmIGJvdGggdGhpcyBhbmQgdGhlIHByZXZpb3VzIG5vZGUgYXJlIHRleHQgYW5kIHRob3NlIGFyZVxyXG4gICAgICAgIC8vIGNvbnNlY3V0aXZlLiBUaGlzIGhhcHBlbnMgZm9yIGNhc2VzIGxpa2UgXCJhIDwgYlwiLlxyXG4gICAgICAgIGlmIChwcmV2ICYmXHJcbiAgICAgICAgICAgIHByZXYudHlwZSA9PT0gMiAvKiBOb2RlVHlwZXMuVEVYVCAqLyAmJlxyXG4gICAgICAgICAgICBwcmV2LmxvYy5lbmQub2Zmc2V0ID09PSBub2RlLmxvYy5zdGFydC5vZmZzZXQpIHtcclxuICAgICAgICAgICAgcHJldi5jb250ZW50ICs9IG5vZGUuY29udGVudDtcclxuICAgICAgICAgICAgcHJldi5sb2MuZW5kID0gbm9kZS5sb2MuZW5kO1xyXG4gICAgICAgICAgICBwcmV2LmxvYy5zb3VyY2UgKz0gbm9kZS5sb2Muc291cmNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbm9kZXMucHVzaChub2RlKTtcclxufVxyXG5mdW5jdGlvbiBwYXJzZUNEQVRBKGNvbnRleHQsIGFuY2VzdG9ycykge1xyXG4gICAgYWR2YW5jZUJ5KGNvbnRleHQsIDkpO1xyXG4gICAgY29uc3Qgbm9kZXMgPSBwYXJzZUNoaWxkcmVuKGNvbnRleHQsIDMgLyogVGV4dE1vZGVzLkNEQVRBICovLCBhbmNlc3RvcnMpO1xyXG4gICAgaWYgKGNvbnRleHQuc291cmNlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCA2IC8qIEVycm9yQ29kZXMuRU9GX0lOX0NEQVRBICovKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGFkdmFuY2VCeShjb250ZXh0LCAzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBub2RlcztcclxufVxyXG5mdW5jdGlvbiBwYXJzZUNvbW1lbnQoY29udGV4dCkge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBnZXRDdXJzb3IoY29udGV4dCk7XHJcbiAgICBsZXQgY29udGVudDtcclxuICAgIC8vIFJlZ3VsYXIgY29tbWVudC5cclxuICAgIGNvbnN0IG1hdGNoID0gLy0tKFxcISk/Pi8uZXhlYyhjb250ZXh0LnNvdXJjZSk7XHJcbiAgICBpZiAoIW1hdGNoKSB7XHJcbiAgICAgICAgY29udGVudCA9IGNvbnRleHQuc291cmNlLnNsaWNlKDQpO1xyXG4gICAgICAgIGFkdmFuY2VCeShjb250ZXh0LCBjb250ZXh0LnNvdXJjZS5sZW5ndGgpO1xyXG4gICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCA3IC8qIEVycm9yQ29kZXMuRU9GX0lOX0NPTU1FTlQgKi8pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKG1hdGNoLmluZGV4IDw9IDMpIHtcclxuICAgICAgICAgICAgZW1pdEVycm9yKGNvbnRleHQsIDAgLyogRXJyb3JDb2Rlcy5BQlJVUFRfQ0xPU0lOR19PRl9FTVBUWV9DT01NRU5UICovKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1hdGNoWzFdKSB7XHJcbiAgICAgICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAxMCAvKiBFcnJvckNvZGVzLklOQ09SUkVDVExZX0NMT1NFRF9DT01NRU5UICovKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGVudCA9IGNvbnRleHQuc291cmNlLnNsaWNlKDQsIG1hdGNoLmluZGV4KTtcclxuICAgICAgICAvLyBBZHZhbmNpbmcgd2l0aCByZXBvcnRpbmcgbmVzdGVkIGNvbW1lbnRzLlxyXG4gICAgICAgIGNvbnN0IHMgPSBjb250ZXh0LnNvdXJjZS5zbGljZSgwLCBtYXRjaC5pbmRleCk7XHJcbiAgICAgICAgbGV0IHByZXZJbmRleCA9IDEsIG5lc3RlZEluZGV4ID0gMDtcclxuICAgICAgICB3aGlsZSAoKG5lc3RlZEluZGV4ID0gcy5pbmRleE9mKCc8IS0tJywgcHJldkluZGV4KSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGFkdmFuY2VCeShjb250ZXh0LCBuZXN0ZWRJbmRleCAtIHByZXZJbmRleCArIDEpO1xyXG4gICAgICAgICAgICBpZiAobmVzdGVkSW5kZXggKyA0IDwgcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAxNiAvKiBFcnJvckNvZGVzLk5FU1RFRF9DT01NRU5UICovKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwcmV2SW5kZXggPSBuZXN0ZWRJbmRleCArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFkdmFuY2VCeShjb250ZXh0LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCAtIHByZXZJbmRleCArIDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiAzIC8qIE5vZGVUeXBlcy5DT01NRU5UICovLFxyXG4gICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgbG9jOiBnZXRTZWxlY3Rpb24oY29udGV4dCwgc3RhcnQpXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIHBhcnNlQm9ndXNDb21tZW50KGNvbnRleHQpIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Q3Vyc29yKGNvbnRleHQpO1xyXG4gICAgY29uc3QgY29udGVudFN0YXJ0ID0gY29udGV4dC5zb3VyY2VbMV0gPT09ICc/JyA/IDEgOiAyO1xyXG4gICAgbGV0IGNvbnRlbnQ7XHJcbiAgICBjb25zdCBjbG9zZUluZGV4ID0gY29udGV4dC5zb3VyY2UuaW5kZXhPZignPicpO1xyXG4gICAgaWYgKGNsb3NlSW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgY29udGVudCA9IGNvbnRleHQuc291cmNlLnNsaWNlKGNvbnRlbnRTdGFydCk7XHJcbiAgICAgICAgYWR2YW5jZUJ5KGNvbnRleHQsIGNvbnRleHQuc291cmNlLmxlbmd0aCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb250ZW50ID0gY29udGV4dC5zb3VyY2Uuc2xpY2UoY29udGVudFN0YXJ0LCBjbG9zZUluZGV4KTtcclxuICAgICAgICBhZHZhbmNlQnkoY29udGV4dCwgY2xvc2VJbmRleCArIDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiAzIC8qIE5vZGVUeXBlcy5DT01NRU5UICovLFxyXG4gICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgbG9jOiBnZXRTZWxlY3Rpb24oY29udGV4dCwgc3RhcnQpXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIHBhcnNlRWxlbWVudChjb250ZXh0LCBhbmNlc3RvcnMpIHtcclxuICAgIC8vIFN0YXJ0IHRhZy5cclxuICAgIGNvbnN0IHdhc0luUHJlID0gY29udGV4dC5pblByZTtcclxuICAgIGNvbnN0IHdhc0luVlByZSA9IGNvbnRleHQuaW5WUHJlO1xyXG4gICAgY29uc3QgcGFyZW50ID0gbGFzdChhbmNlc3RvcnMpO1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHBhcnNlVGFnKGNvbnRleHQsIDAgLyogVGFnVHlwZS5TdGFydCAqLywgcGFyZW50KTtcclxuICAgIGNvbnN0IGlzUHJlQm91bmRhcnkgPSBjb250ZXh0LmluUHJlICYmICF3YXNJblByZTtcclxuICAgIGNvbnN0IGlzVlByZUJvdW5kYXJ5ID0gY29udGV4dC5pblZQcmUgJiYgIXdhc0luVlByZTtcclxuICAgIGlmIChlbGVtZW50LmlzU2VsZkNsb3NpbmcgfHwgY29udGV4dC5vcHRpb25zLmlzVm9pZFRhZyhlbGVtZW50LnRhZykpIHtcclxuICAgICAgICAvLyAjNDAzMCBzZWxmLWNsb3NpbmcgPHByZT4gdGFnXHJcbiAgICAgICAgaWYgKGlzUHJlQm91bmRhcnkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5pblByZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNWUHJlQm91bmRhcnkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5pblZQcmUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICAvLyBDaGlsZHJlbi5cclxuICAgIGFuY2VzdG9ycy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgY29uc3QgbW9kZSA9IGNvbnRleHQub3B0aW9ucy5nZXRUZXh0TW9kZShlbGVtZW50LCBwYXJlbnQpO1xyXG4gICAgY29uc3QgY2hpbGRyZW4gPSBwYXJzZUNoaWxkcmVuKGNvbnRleHQsIG1vZGUsIGFuY2VzdG9ycyk7XHJcbiAgICBhbmNlc3RvcnMucG9wKCk7XHJcbiAgICAvLyAyLnggaW5saW5lLXRlbXBsYXRlIGNvbXBhdFxyXG4gICAge1xyXG4gICAgICAgIGNvbnN0IGlubGluZVRlbXBsYXRlUHJvcCA9IGVsZW1lbnQucHJvcHMuZmluZChwID0+IHAudHlwZSA9PT0gNiAvKiBOb2RlVHlwZXMuQVRUUklCVVRFICovICYmIHAubmFtZSA9PT0gJ2lubGluZS10ZW1wbGF0ZScpO1xyXG4gICAgICAgIGlmIChpbmxpbmVUZW1wbGF0ZVByb3AgJiZcclxuICAgICAgICAgICAgY2hlY2tDb21wYXRFbmFibGVkKFwiQ09NUElMRVJfSU5MSU5FX1RFTVBMQVRFXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX0lOTElORV9URU1QTEFURSAqLywgY29udGV4dCwgaW5saW5lVGVtcGxhdGVQcm9wLmxvYykpIHtcclxuICAgICAgICAgICAgY29uc3QgbG9jID0gZ2V0U2VsZWN0aW9uKGNvbnRleHQsIGVsZW1lbnQubG9jLmVuZCk7XHJcbiAgICAgICAgICAgIGlubGluZVRlbXBsYXRlUHJvcC52YWx1ZSA9IHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IDIgLyogTm9kZVR5cGVzLlRFWFQgKi8sXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBsb2Muc291cmNlLFxyXG4gICAgICAgICAgICAgICAgbG9jXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxlbWVudC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xyXG4gICAgLy8gRW5kIHRhZy5cclxuICAgIGlmIChzdGFydHNXaXRoRW5kVGFnT3Blbihjb250ZXh0LnNvdXJjZSwgZWxlbWVudC50YWcpKSB7XHJcbiAgICAgICAgcGFyc2VUYWcoY29udGV4dCwgMSAvKiBUYWdUeXBlLkVuZCAqLywgcGFyZW50KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAyNCAvKiBFcnJvckNvZGVzLlhfTUlTU0lOR19FTkRfVEFHICovLCAwLCBlbGVtZW50LmxvYy5zdGFydCk7XHJcbiAgICAgICAgaWYgKGNvbnRleHQuc291cmNlLmxlbmd0aCA9PT0gMCAmJiBlbGVtZW50LnRhZy50b0xvd2VyQ2FzZSgpID09PSAnc2NyaXB0Jykge1xyXG4gICAgICAgICAgICBjb25zdCBmaXJzdCA9IGNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICBpZiAoZmlyc3QgJiYgc3RhcnRzV2l0aChmaXJzdC5sb2Muc291cmNlLCAnPCEtLScpKSB7XHJcbiAgICAgICAgICAgICAgICBlbWl0RXJyb3IoY29udGV4dCwgOCAvKiBFcnJvckNvZGVzLkVPRl9JTl9TQ1JJUFRfSFRNTF9DT01NRU5UX0xJS0VfVEVYVCAqLyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbGVtZW50LmxvYyA9IGdldFNlbGVjdGlvbihjb250ZXh0LCBlbGVtZW50LmxvYy5zdGFydCk7XHJcbiAgICBpZiAoaXNQcmVCb3VuZGFyeSkge1xyXG4gICAgICAgIGNvbnRleHQuaW5QcmUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChpc1ZQcmVCb3VuZGFyeSkge1xyXG4gICAgICAgIGNvbnRleHQuaW5WUHJlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxufVxyXG5jb25zdCBpc1NwZWNpYWxUZW1wbGF0ZURpcmVjdGl2ZSA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcChgaWYsZWxzZSxlbHNlLWlmLGZvcixzbG90YCk7XHJcbmZ1bmN0aW9uIHBhcnNlVGFnKGNvbnRleHQsIHR5cGUsIHBhcmVudCkge1xyXG4gICAgLy8gVGFnIG9wZW4uXHJcbiAgICBjb25zdCBzdGFydCA9IGdldEN1cnNvcihjb250ZXh0KTtcclxuICAgIGNvbnN0IG1hdGNoID0gL148XFwvPyhbYS16XVteXFx0XFxyXFxuXFxmIC8+XSopL2kuZXhlYyhjb250ZXh0LnNvdXJjZSk7XHJcbiAgICBjb25zdCB0YWcgPSBtYXRjaFsxXTtcclxuICAgIGNvbnN0IG5zID0gY29udGV4dC5vcHRpb25zLmdldE5hbWVzcGFjZSh0YWcsIHBhcmVudCk7XHJcbiAgICBhZHZhbmNlQnkoY29udGV4dCwgbWF0Y2hbMF0ubGVuZ3RoKTtcclxuICAgIGFkdmFuY2VTcGFjZXMoY29udGV4dCk7XHJcbiAgICAvLyBzYXZlIGN1cnJlbnQgc3RhdGUgaW4gY2FzZSB3ZSBuZWVkIHRvIHJlLXBhcnNlIGF0dHJpYnV0ZXMgd2l0aCB2LXByZVxyXG4gICAgY29uc3QgY3Vyc29yID0gZ2V0Q3Vyc29yKGNvbnRleHQpO1xyXG4gICAgY29uc3QgY3VycmVudFNvdXJjZSA9IGNvbnRleHQuc291cmNlO1xyXG4gICAgLy8gY2hlY2sgPHByZT4gdGFnXHJcbiAgICBpZiAoY29udGV4dC5vcHRpb25zLmlzUHJlVGFnKHRhZykpIHtcclxuICAgICAgICBjb250ZXh0LmluUHJlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIEF0dHJpYnV0ZXMuXHJcbiAgICBsZXQgcHJvcHMgPSBwYXJzZUF0dHJpYnV0ZXMoY29udGV4dCwgdHlwZSk7XHJcbiAgICAvLyBjaGVjayB2LXByZVxyXG4gICAgaWYgKHR5cGUgPT09IDAgLyogVGFnVHlwZS5TdGFydCAqLyAmJlxyXG4gICAgICAgICFjb250ZXh0LmluVlByZSAmJlxyXG4gICAgICAgIHByb3BzLnNvbWUocCA9PiBwLnR5cGUgPT09IDcgLyogTm9kZVR5cGVzLkRJUkVDVElWRSAqLyAmJiBwLm5hbWUgPT09ICdwcmUnKSkge1xyXG4gICAgICAgIGNvbnRleHQuaW5WUHJlID0gdHJ1ZTtcclxuICAgICAgICAvLyByZXNldCBjb250ZXh0XHJcbiAgICAgICAgZXh0ZW5kKGNvbnRleHQsIGN1cnNvcik7XHJcbiAgICAgICAgY29udGV4dC5zb3VyY2UgPSBjdXJyZW50U291cmNlO1xyXG4gICAgICAgIC8vIHJlLXBhcnNlIGF0dHJzIGFuZCBmaWx0ZXIgb3V0IHYtcHJlIGl0c2VsZlxyXG4gICAgICAgIHByb3BzID0gcGFyc2VBdHRyaWJ1dGVzKGNvbnRleHQsIHR5cGUpLmZpbHRlcihwID0+IHAubmFtZSAhPT0gJ3YtcHJlJyk7XHJcbiAgICB9XHJcbiAgICAvLyBUYWcgY2xvc2UuXHJcbiAgICBsZXQgaXNTZWxmQ2xvc2luZyA9IGZhbHNlO1xyXG4gICAgaWYgKGNvbnRleHQuc291cmNlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCA5IC8qIEVycm9yQ29kZXMuRU9GX0lOX1RBRyAqLyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBpc1NlbGZDbG9zaW5nID0gc3RhcnRzV2l0aChjb250ZXh0LnNvdXJjZSwgJy8+Jyk7XHJcbiAgICAgICAgaWYgKHR5cGUgPT09IDEgLyogVGFnVHlwZS5FbmQgKi8gJiYgaXNTZWxmQ2xvc2luZykge1xyXG4gICAgICAgICAgICBlbWl0RXJyb3IoY29udGV4dCwgNCAvKiBFcnJvckNvZGVzLkVORF9UQUdfV0lUSF9UUkFJTElOR19TT0xJRFVTICovKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYWR2YW5jZUJ5KGNvbnRleHQsIGlzU2VsZkNsb3NpbmcgPyAyIDogMSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PT0gMSAvKiBUYWdUeXBlLkVuZCAqLykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIDIueCBkZXByZWNhdGlvbiBjaGVja3NcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICBpc0NvbXBhdEVuYWJsZWQoXCJDT01QSUxFUl9WX0lGX1ZfRk9SX1BSRUNFREVOQ0VcIiAvKiBDb21waWxlckRlcHJlY2F0aW9uVHlwZXMuQ09NUElMRVJfVl9JRl9WX0ZPUl9QUkVDRURFTkNFICovLCBjb250ZXh0KSkge1xyXG4gICAgICAgIGxldCBoYXNJZiA9IGZhbHNlO1xyXG4gICAgICAgIGxldCBoYXNGb3IgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHAgPSBwcm9wc1tpXTtcclxuICAgICAgICAgICAgaWYgKHAudHlwZSA9PT0gNyAvKiBOb2RlVHlwZXMuRElSRUNUSVZFICovKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocC5uYW1lID09PSAnaWYnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFzSWYgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocC5uYW1lID09PSAnZm9yJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGhhc0ZvciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGhhc0lmICYmIGhhc0Zvcikge1xyXG4gICAgICAgICAgICAgICAgd2FybkRlcHJlY2F0aW9uKFwiQ09NUElMRVJfVl9JRl9WX0ZPUl9QUkVDRURFTkNFXCIgLyogQ29tcGlsZXJEZXByZWNhdGlvblR5cGVzLkNPTVBJTEVSX1ZfSUZfVl9GT1JfUFJFQ0VERU5DRSAqLywgY29udGV4dCwgZ2V0U2VsZWN0aW9uKGNvbnRleHQsIHN0YXJ0KSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCB0YWdUeXBlID0gMCAvKiBFbGVtZW50VHlwZXMuRUxFTUVOVCAqLztcclxuICAgIGlmICghY29udGV4dC5pblZQcmUpIHtcclxuICAgICAgICBpZiAodGFnID09PSAnc2xvdCcpIHtcclxuICAgICAgICAgICAgdGFnVHlwZSA9IDIgLyogRWxlbWVudFR5cGVzLlNMT1QgKi87XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRhZyA9PT0gJ3RlbXBsYXRlJykge1xyXG4gICAgICAgICAgICBpZiAocHJvcHMuc29tZShwID0+IHAudHlwZSA9PT0gNyAvKiBOb2RlVHlwZXMuRElSRUNUSVZFICovICYmIGlzU3BlY2lhbFRlbXBsYXRlRGlyZWN0aXZlKHAubmFtZSkpKSB7XHJcbiAgICAgICAgICAgICAgICB0YWdUeXBlID0gMyAvKiBFbGVtZW50VHlwZXMuVEVNUExBVEUgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXNDb21wb25lbnQodGFnLCBwcm9wcywgY29udGV4dCkpIHtcclxuICAgICAgICAgICAgdGFnVHlwZSA9IDEgLyogRWxlbWVudFR5cGVzLkNPTVBPTkVOVCAqLztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDEgLyogTm9kZVR5cGVzLkVMRU1FTlQgKi8sXHJcbiAgICAgICAgbnMsXHJcbiAgICAgICAgdGFnLFxyXG4gICAgICAgIHRhZ1R5cGUsXHJcbiAgICAgICAgcHJvcHMsXHJcbiAgICAgICAgaXNTZWxmQ2xvc2luZyxcclxuICAgICAgICBjaGlsZHJlbjogW10sXHJcbiAgICAgICAgbG9jOiBnZXRTZWxlY3Rpb24oY29udGV4dCwgc3RhcnQpLFxyXG4gICAgICAgIGNvZGVnZW5Ob2RlOiB1bmRlZmluZWQgLy8gdG8gYmUgY3JlYXRlZCBkdXJpbmcgdHJhbnNmb3JtIHBoYXNlXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGlzQ29tcG9uZW50KHRhZywgcHJvcHMsIGNvbnRleHQpIHtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnM7XHJcbiAgICBpZiAob3B0aW9ucy5pc0N1c3RvbUVsZW1lbnQodGFnKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh0YWcgPT09ICdjb21wb25lbnQnIHx8XHJcbiAgICAgICAgL15bQS1aXS8udGVzdCh0YWcpIHx8XHJcbiAgICAgICAgaXNDb3JlQ29tcG9uZW50KHRhZykgfHxcclxuICAgICAgICAob3B0aW9ucy5pc0J1aWx0SW5Db21wb25lbnQgJiYgb3B0aW9ucy5pc0J1aWx0SW5Db21wb25lbnQodGFnKSkgfHxcclxuICAgICAgICAob3B0aW9ucy5pc05hdGl2ZVRhZyAmJiAhb3B0aW9ucy5pc05hdGl2ZVRhZyh0YWcpKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gYXQgdGhpcyBwb2ludCB0aGUgdGFnIHNob3VsZCBiZSBhIG5hdGl2ZSB0YWcsIGJ1dCBjaGVjayBmb3IgcG90ZW50aWFsIFwiaXNcIlxyXG4gICAgLy8gY2FzdGluZ1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHAgPSBwcm9wc1tpXTtcclxuICAgICAgICBpZiAocC50eXBlID09PSA2IC8qIE5vZGVUeXBlcy5BVFRSSUJVVEUgKi8pIHtcclxuICAgICAgICAgICAgaWYgKHAubmFtZSA9PT0gJ2lzJyAmJiBwLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocC52YWx1ZS5jb250ZW50LnN0YXJ0c1dpdGgoJ3Z1ZTonKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2tDb21wYXRFbmFibGVkKFwiQ09NUElMRVJfSVNfT05fRUxFTUVOVFwiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9JU19PTl9FTEVNRU5UICovLCBjb250ZXh0LCBwLmxvYykpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gZGlyZWN0aXZlXHJcbiAgICAgICAgICAgIC8vIHYtaXMgKFRPRE8gRGVwcmVjYXRlKVxyXG4gICAgICAgICAgICBpZiAocC5uYW1lID09PSAnaXMnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgICAgLy8gOmlzIG9uIHBsYWluIGVsZW1lbnQgLSBvbmx5IHRyZWF0IGFzIGNvbXBvbmVudCBpbiBjb21wYXQgbW9kZVxyXG4gICAgICAgICAgICBwLm5hbWUgPT09ICdiaW5kJyAmJlxyXG4gICAgICAgICAgICAgICAgaXNTdGF0aWNBcmdPZihwLmFyZywgJ2lzJykgJiZcclxuICAgICAgICAgICAgICAgIHRydWUgJiZcclxuICAgICAgICAgICAgICAgIGNoZWNrQ29tcGF0RW5hYmxlZChcIkNPTVBJTEVSX0lTX09OX0VMRU1FTlRcIiAvKiBDb21waWxlckRlcHJlY2F0aW9uVHlwZXMuQ09NUElMRVJfSVNfT05fRUxFTUVOVCAqLywgY29udGV4dCwgcC5sb2MpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBwYXJzZUF0dHJpYnV0ZXMoY29udGV4dCwgdHlwZSkge1xyXG4gICAgY29uc3QgcHJvcHMgPSBbXTtcclxuICAgIGNvbnN0IGF0dHJpYnV0ZU5hbWVzID0gbmV3IFNldCgpO1xyXG4gICAgd2hpbGUgKGNvbnRleHQuc291cmNlLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAhc3RhcnRzV2l0aChjb250ZXh0LnNvdXJjZSwgJz4nKSAmJlxyXG4gICAgICAgICFzdGFydHNXaXRoKGNvbnRleHQuc291cmNlLCAnLz4nKSkge1xyXG4gICAgICAgIGlmIChzdGFydHNXaXRoKGNvbnRleHQuc291cmNlLCAnLycpKSB7XHJcbiAgICAgICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAyMiAvKiBFcnJvckNvZGVzLlVORVhQRUNURURfU09MSURVU19JTl9UQUcgKi8pO1xyXG4gICAgICAgICAgICBhZHZhbmNlQnkoY29udGV4dCwgMSk7XHJcbiAgICAgICAgICAgIGFkdmFuY2VTcGFjZXMoY29udGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZSA9PT0gMSAvKiBUYWdUeXBlLkVuZCAqLykge1xyXG4gICAgICAgICAgICBlbWl0RXJyb3IoY29udGV4dCwgMyAvKiBFcnJvckNvZGVzLkVORF9UQUdfV0lUSF9BVFRSSUJVVEVTICovKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYXR0ciA9IHBhcnNlQXR0cmlidXRlKGNvbnRleHQsIGF0dHJpYnV0ZU5hbWVzKTtcclxuICAgICAgICAvLyBUcmltIHdoaXRlc3BhY2UgYmV0d2VlbiBjbGFzc1xyXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92dWVqcy9jb3JlL2lzc3Vlcy80MjUxXHJcbiAgICAgICAgaWYgKGF0dHIudHlwZSA9PT0gNiAvKiBOb2RlVHlwZXMuQVRUUklCVVRFICovICYmXHJcbiAgICAgICAgICAgIGF0dHIudmFsdWUgJiZcclxuICAgICAgICAgICAgYXR0ci5uYW1lID09PSAnY2xhc3MnKSB7XHJcbiAgICAgICAgICAgIGF0dHIudmFsdWUuY29udGVudCA9IGF0dHIudmFsdWUuY29udGVudC5yZXBsYWNlKC9cXHMrL2csICcgJykudHJpbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZSA9PT0gMCAvKiBUYWdUeXBlLlN0YXJ0ICovKSB7XHJcbiAgICAgICAgICAgIHByb3BzLnB1c2goYXR0cik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgvXlteXFx0XFxyXFxuXFxmIC8+XS8udGVzdChjb250ZXh0LnNvdXJjZSkpIHtcclxuICAgICAgICAgICAgZW1pdEVycm9yKGNvbnRleHQsIDE1IC8qIEVycm9yQ29kZXMuTUlTU0lOR19XSElURVNQQUNFX0JFVFdFRU5fQVRUUklCVVRFUyAqLyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFkdmFuY2VTcGFjZXMoY29udGV4dCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJvcHM7XHJcbn1cclxuZnVuY3Rpb24gcGFyc2VBdHRyaWJ1dGUoY29udGV4dCwgbmFtZVNldCkge1xyXG4gICAgLy8gTmFtZS5cclxuICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Q3Vyc29yKGNvbnRleHQpO1xyXG4gICAgY29uc3QgbWF0Y2ggPSAvXlteXFx0XFxyXFxuXFxmIC8+XVteXFx0XFxyXFxuXFxmIC8+PV0qLy5leGVjKGNvbnRleHQuc291cmNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSBtYXRjaFswXTtcclxuICAgIGlmIChuYW1lU2V0LmhhcyhuYW1lKSkge1xyXG4gICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAyIC8qIEVycm9yQ29kZXMuRFVQTElDQVRFX0FUVFJJQlVURSAqLyk7XHJcbiAgICB9XHJcbiAgICBuYW1lU2V0LmFkZChuYW1lKTtcclxuICAgIGlmIChuYW1lWzBdID09PSAnPScpIHtcclxuICAgICAgICBlbWl0RXJyb3IoY29udGV4dCwgMTkgLyogRXJyb3JDb2Rlcy5VTkVYUEVDVEVEX0VRVUFMU19TSUdOX0JFRk9SRV9BVFRSSUJVVEVfTkFNRSAqLyk7XHJcbiAgICB9XHJcbiAgICB7XHJcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC9bXCInPF0vZztcclxuICAgICAgICBsZXQgbTtcclxuICAgICAgICB3aGlsZSAoKG0gPSBwYXR0ZXJuLmV4ZWMobmFtZSkpKSB7XHJcbiAgICAgICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAxNyAvKiBFcnJvckNvZGVzLlVORVhQRUNURURfQ0hBUkFDVEVSX0lOX0FUVFJJQlVURV9OQU1FICovLCBtLmluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhZHZhbmNlQnkoY29udGV4dCwgbmFtZS5sZW5ndGgpO1xyXG4gICAgLy8gVmFsdWVcclxuICAgIGxldCB2YWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIGlmICgvXltcXHRcXHJcXG5cXGYgXSo9Ly50ZXN0KGNvbnRleHQuc291cmNlKSkge1xyXG4gICAgICAgIGFkdmFuY2VTcGFjZXMoY29udGV4dCk7XHJcbiAgICAgICAgYWR2YW5jZUJ5KGNvbnRleHQsIDEpO1xyXG4gICAgICAgIGFkdmFuY2VTcGFjZXMoY29udGV4dCk7XHJcbiAgICAgICAgdmFsdWUgPSBwYXJzZUF0dHJpYnV0ZVZhbHVlKGNvbnRleHQpO1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgZW1pdEVycm9yKGNvbnRleHQsIDEzIC8qIEVycm9yQ29kZXMuTUlTU0lOR19BVFRSSUJVVEVfVkFMVUUgKi8pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGxvYyA9IGdldFNlbGVjdGlvbihjb250ZXh0LCBzdGFydCk7XHJcbiAgICBpZiAoIWNvbnRleHQuaW5WUHJlICYmIC9eKHYtW0EtWmEtejAtOS1dfDp8XFwufEB8IykvLnRlc3QobmFtZSkpIHtcclxuICAgICAgICBjb25zdCBtYXRjaCA9IC8oPzpedi0oW2EtejAtOS1dKykpPyg/Oig/Ojp8XlxcLnxeQHxeIykoXFxbW15cXF1dK1xcXXxbXlxcLl0rKSk/KC4rKT8kL2kuZXhlYyhuYW1lKTtcclxuICAgICAgICBsZXQgaXNQcm9wU2hvcnRoYW5kID0gc3RhcnRzV2l0aChuYW1lLCAnLicpO1xyXG4gICAgICAgIGxldCBkaXJOYW1lID0gbWF0Y2hbMV0gfHxcclxuICAgICAgICAgICAgKGlzUHJvcFNob3J0aGFuZCB8fCBzdGFydHNXaXRoKG5hbWUsICc6JylcclxuICAgICAgICAgICAgICAgID8gJ2JpbmQnXHJcbiAgICAgICAgICAgICAgICA6IHN0YXJ0c1dpdGgobmFtZSwgJ0AnKVxyXG4gICAgICAgICAgICAgICAgICAgID8gJ29uJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogJ3Nsb3QnKTtcclxuICAgICAgICBsZXQgYXJnO1xyXG4gICAgICAgIGlmIChtYXRjaFsyXSkge1xyXG4gICAgICAgICAgICBjb25zdCBpc1Nsb3QgPSBkaXJOYW1lID09PSAnc2xvdCc7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gbmFtZS5sYXN0SW5kZXhPZihtYXRjaFsyXSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvYyA9IGdldFNlbGVjdGlvbihjb250ZXh0LCBnZXROZXdQb3NpdGlvbihjb250ZXh0LCBzdGFydCwgc3RhcnRPZmZzZXQpLCBnZXROZXdQb3NpdGlvbihjb250ZXh0LCBzdGFydCwgc3RhcnRPZmZzZXQgKyBtYXRjaFsyXS5sZW5ndGggKyAoKGlzU2xvdCAmJiBtYXRjaFszXSkgfHwgJycpLmxlbmd0aCkpO1xyXG4gICAgICAgICAgICBsZXQgY29udGVudCA9IG1hdGNoWzJdO1xyXG4gICAgICAgICAgICBsZXQgaXNTdGF0aWMgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoY29udGVudC5zdGFydHNXaXRoKCdbJykpIHtcclxuICAgICAgICAgICAgICAgIGlzU3RhdGljID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRlbnQuZW5kc1dpdGgoJ10nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAyNyAvKiBFcnJvckNvZGVzLlhfTUlTU0lOR19EWU5BTUlDX0RJUkVDVElWRV9BUkdVTUVOVF9FTkQgKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LnNsaWNlKDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuc2xpY2UoMSwgY29udGVudC5sZW5ndGggLSAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpc1Nsb3QpIHtcclxuICAgICAgICAgICAgICAgIC8vICMxMjQxIHNwZWNpYWwgY2FzZSBmb3Igdi1zbG90OiB2dWV0aWZ5IHJlbGllcyBleHRlbnNpdmVseSBvbiBzbG90XHJcbiAgICAgICAgICAgICAgICAvLyBuYW1lcyBjb250YWluaW5nIGRvdHMuIHYtc2xvdCBkb2Vzbid0IGhhdmUgYW55IG1vZGlmaWVycyBhbmQgVnVlIDIueFxyXG4gICAgICAgICAgICAgICAgLy8gc3VwcG9ydHMgc3VjaCB1c2FnZSBzbyB3ZSBhcmUga2VlcGluZyBpdCBjb25zaXN0ZW50IHdpdGggMi54LlxyXG4gICAgICAgICAgICAgICAgY29udGVudCArPSBtYXRjaFszXSB8fCAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhcmcgPSB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLyxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICBpc1N0YXRpYyxcclxuICAgICAgICAgICAgICAgIGNvbnN0VHlwZTogaXNTdGF0aWNcclxuICAgICAgICAgICAgICAgICAgICA/IDMgLyogQ29uc3RhbnRUeXBlcy5DQU5fU1RSSU5HSUZZICovXHJcbiAgICAgICAgICAgICAgICAgICAgOiAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovLFxyXG4gICAgICAgICAgICAgICAgbG9jXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5pc1F1b3RlZCkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUxvYyA9IHZhbHVlLmxvYztcclxuICAgICAgICAgICAgdmFsdWVMb2Muc3RhcnQub2Zmc2V0Kys7XHJcbiAgICAgICAgICAgIHZhbHVlTG9jLnN0YXJ0LmNvbHVtbisrO1xyXG4gICAgICAgICAgICB2YWx1ZUxvYy5lbmQgPSBhZHZhbmNlUG9zaXRpb25XaXRoQ2xvbmUodmFsdWVMb2Muc3RhcnQsIHZhbHVlLmNvbnRlbnQpO1xyXG4gICAgICAgICAgICB2YWx1ZUxvYy5zb3VyY2UgPSB2YWx1ZUxvYy5zb3VyY2Uuc2xpY2UoMSwgLTEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtb2RpZmllcnMgPSBtYXRjaFszXSA/IG1hdGNoWzNdLnNsaWNlKDEpLnNwbGl0KCcuJykgOiBbXTtcclxuICAgICAgICBpZiAoaXNQcm9wU2hvcnRoYW5kKVxyXG4gICAgICAgICAgICBtb2RpZmllcnMucHVzaCgncHJvcCcpO1xyXG4gICAgICAgIC8vIDIueCBjb21wYXQgdi1iaW5kOmZvby5zeW5jIC0+IHYtbW9kZWw6Zm9vXHJcbiAgICAgICAgaWYgKGRpck5hbWUgPT09ICdiaW5kJyAmJiBhcmcpIHtcclxuICAgICAgICAgICAgaWYgKG1vZGlmaWVycy5pbmNsdWRlcygnc3luYycpICYmXHJcbiAgICAgICAgICAgICAgICBjaGVja0NvbXBhdEVuYWJsZWQoXCJDT01QSUxFUl9WX0JJTkRfU1lOQ1wiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9WX0JJTkRfU1lOQyAqLywgY29udGV4dCwgbG9jLCBhcmcubG9jLnNvdXJjZSkpIHtcclxuICAgICAgICAgICAgICAgIGRpck5hbWUgPSAnbW9kZWwnO1xyXG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzLnNwbGljZShtb2RpZmllcnMuaW5kZXhPZignc3luYycpLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIG1vZGlmaWVycy5pbmNsdWRlcygncHJvcCcpKSB7XHJcbiAgICAgICAgICAgICAgICBjaGVja0NvbXBhdEVuYWJsZWQoXCJDT01QSUxFUl9WX0JJTkRfUFJPUFwiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9WX0JJTkRfUFJPUCAqLywgY29udGV4dCwgbG9jKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0eXBlOiA3IC8qIE5vZGVUeXBlcy5ESVJFQ1RJVkUgKi8sXHJcbiAgICAgICAgICAgIG5hbWU6IGRpck5hbWUsXHJcbiAgICAgICAgICAgIGV4cDogdmFsdWUgJiYge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8sXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiB2YWx1ZS5jb250ZW50LFxyXG4gICAgICAgICAgICAgICAgaXNTdGF0aWM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgLy8gVHJlYXQgYXMgbm9uLWNvbnN0YW50IGJ5IGRlZmF1bHQuIFRoaXMgY2FuIGJlIHBvdGVudGlhbGx5IHNldCB0b1xyXG4gICAgICAgICAgICAgICAgLy8gb3RoZXIgdmFsdWVzIGJ5IGB0cmFuc2Zvcm1FeHByZXNzaW9uYCB0byBtYWtlIGl0IGVsaWdpYmxlIGZvciBob2lzdGluZy5cclxuICAgICAgICAgICAgICAgIGNvbnN0VHlwZTogMCAvKiBDb25zdGFudFR5cGVzLk5PVF9DT05TVEFOVCAqLyxcclxuICAgICAgICAgICAgICAgIGxvYzogdmFsdWUubG9jXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGFyZyxcclxuICAgICAgICAgICAgbW9kaWZpZXJzLFxyXG4gICAgICAgICAgICBsb2NcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgLy8gbWlzc2luZyBkaXJlY3RpdmUgbmFtZSBvciBpbGxlZ2FsIGRpcmVjdGl2ZSBuYW1lXHJcbiAgICBpZiAoIWNvbnRleHQuaW5WUHJlICYmIHN0YXJ0c1dpdGgobmFtZSwgJ3YtJykpIHtcclxuICAgICAgICBlbWl0RXJyb3IoY29udGV4dCwgMjYgLyogRXJyb3JDb2Rlcy5YX01JU1NJTkdfRElSRUNUSVZFX05BTUUgKi8pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiA2IC8qIE5vZGVUeXBlcy5BVFRSSUJVVEUgKi8sXHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICB2YWx1ZTogdmFsdWUgJiYge1xyXG4gICAgICAgICAgICB0eXBlOiAyIC8qIE5vZGVUeXBlcy5URVhUICovLFxyXG4gICAgICAgICAgICBjb250ZW50OiB2YWx1ZS5jb250ZW50LFxyXG4gICAgICAgICAgICBsb2M6IHZhbHVlLmxvY1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbG9jXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIHBhcnNlQXR0cmlidXRlVmFsdWUoY29udGV4dCkge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBnZXRDdXJzb3IoY29udGV4dCk7XHJcbiAgICBsZXQgY29udGVudDtcclxuICAgIGNvbnN0IHF1b3RlID0gY29udGV4dC5zb3VyY2VbMF07XHJcbiAgICBjb25zdCBpc1F1b3RlZCA9IHF1b3RlID09PSBgXCJgIHx8IHF1b3RlID09PSBgJ2A7XHJcbiAgICBpZiAoaXNRdW90ZWQpIHtcclxuICAgICAgICAvLyBRdW90ZWQgdmFsdWUuXHJcbiAgICAgICAgYWR2YW5jZUJ5KGNvbnRleHQsIDEpO1xyXG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gY29udGV4dC5zb3VyY2UuaW5kZXhPZihxdW90ZSk7XHJcbiAgICAgICAgaWYgKGVuZEluZGV4ID09PSAtMSkge1xyXG4gICAgICAgICAgICBjb250ZW50ID0gcGFyc2VUZXh0RGF0YShjb250ZXh0LCBjb250ZXh0LnNvdXJjZS5sZW5ndGgsIDQgLyogVGV4dE1vZGVzLkFUVFJJQlVURV9WQUxVRSAqLyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZW50ID0gcGFyc2VUZXh0RGF0YShjb250ZXh0LCBlbmRJbmRleCwgNCAvKiBUZXh0TW9kZXMuQVRUUklCVVRFX1ZBTFVFICovKTtcclxuICAgICAgICAgICAgYWR2YW5jZUJ5KGNvbnRleHQsIDEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIFVucXVvdGVkXHJcbiAgICAgICAgY29uc3QgbWF0Y2ggPSAvXlteXFx0XFxyXFxuXFxmID5dKy8uZXhlYyhjb250ZXh0LnNvdXJjZSk7XHJcbiAgICAgICAgaWYgKCFtYXRjaCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB1bmV4cGVjdGVkQ2hhcnMgPSAvW1wiJzw9YF0vZztcclxuICAgICAgICBsZXQgbTtcclxuICAgICAgICB3aGlsZSAoKG0gPSB1bmV4cGVjdGVkQ2hhcnMuZXhlYyhtYXRjaFswXSkpKSB7XHJcbiAgICAgICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAxOCAvKiBFcnJvckNvZGVzLlVORVhQRUNURURfQ0hBUkFDVEVSX0lOX1VOUVVPVEVEX0FUVFJJQlVURV9WQUxVRSAqLywgbS5pbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRlbnQgPSBwYXJzZVRleHREYXRhKGNvbnRleHQsIG1hdGNoWzBdLmxlbmd0aCwgNCAvKiBUZXh0TW9kZXMuQVRUUklCVVRFX1ZBTFVFICovKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IGNvbnRlbnQsIGlzUXVvdGVkLCBsb2M6IGdldFNlbGVjdGlvbihjb250ZXh0LCBzdGFydCkgfTtcclxufVxyXG5mdW5jdGlvbiBwYXJzZUludGVycG9sYXRpb24oY29udGV4dCwgbW9kZSkge1xyXG4gICAgY29uc3QgW29wZW4sIGNsb3NlXSA9IGNvbnRleHQub3B0aW9ucy5kZWxpbWl0ZXJzO1xyXG4gICAgY29uc3QgY2xvc2VJbmRleCA9IGNvbnRleHQuc291cmNlLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcclxuICAgIGlmIChjbG9zZUluZGV4ID09PSAtMSkge1xyXG4gICAgICAgIGVtaXRFcnJvcihjb250ZXh0LCAyNSAvKiBFcnJvckNvZGVzLlhfTUlTU0lOR19JTlRFUlBPTEFUSU9OX0VORCAqLyk7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGNvbnN0IHN0YXJ0ID0gZ2V0Q3Vyc29yKGNvbnRleHQpO1xyXG4gICAgYWR2YW5jZUJ5KGNvbnRleHQsIG9wZW4ubGVuZ3RoKTtcclxuICAgIGNvbnN0IGlubmVyU3RhcnQgPSBnZXRDdXJzb3IoY29udGV4dCk7XHJcbiAgICBjb25zdCBpbm5lckVuZCA9IGdldEN1cnNvcihjb250ZXh0KTtcclxuICAgIGNvbnN0IHJhd0NvbnRlbnRMZW5ndGggPSBjbG9zZUluZGV4IC0gb3Blbi5sZW5ndGg7XHJcbiAgICBjb25zdCByYXdDb250ZW50ID0gY29udGV4dC5zb3VyY2Uuc2xpY2UoMCwgcmF3Q29udGVudExlbmd0aCk7XHJcbiAgICBjb25zdCBwcmVUcmltQ29udGVudCA9IHBhcnNlVGV4dERhdGEoY29udGV4dCwgcmF3Q29udGVudExlbmd0aCwgbW9kZSk7XHJcbiAgICBjb25zdCBjb250ZW50ID0gcHJlVHJpbUNvbnRlbnQudHJpbSgpO1xyXG4gICAgY29uc3Qgc3RhcnRPZmZzZXQgPSBwcmVUcmltQ29udGVudC5pbmRleE9mKGNvbnRlbnQpO1xyXG4gICAgaWYgKHN0YXJ0T2Zmc2V0ID4gMCkge1xyXG4gICAgICAgIGFkdmFuY2VQb3NpdGlvbldpdGhNdXRhdGlvbihpbm5lclN0YXJ0LCByYXdDb250ZW50LCBzdGFydE9mZnNldCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbmRPZmZzZXQgPSByYXdDb250ZW50TGVuZ3RoIC0gKHByZVRyaW1Db250ZW50Lmxlbmd0aCAtIGNvbnRlbnQubGVuZ3RoIC0gc3RhcnRPZmZzZXQpO1xyXG4gICAgYWR2YW5jZVBvc2l0aW9uV2l0aE11dGF0aW9uKGlubmVyRW5kLCByYXdDb250ZW50LCBlbmRPZmZzZXQpO1xyXG4gICAgYWR2YW5jZUJ5KGNvbnRleHQsIGNsb3NlLmxlbmd0aCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDUgLyogTm9kZVR5cGVzLklOVEVSUE9MQVRJT04gKi8sXHJcbiAgICAgICAgY29udGVudDoge1xyXG4gICAgICAgICAgICB0eXBlOiA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLyxcclxuICAgICAgICAgICAgaXNTdGF0aWM6IGZhbHNlLFxyXG4gICAgICAgICAgICAvLyBTZXQgYGlzQ29uc3RhbnRgIHRvIGZhbHNlIGJ5IGRlZmF1bHQgYW5kIHdpbGwgZGVjaWRlIGluIHRyYW5zZm9ybUV4cHJlc3Npb25cclxuICAgICAgICAgICAgY29uc3RUeXBlOiAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovLFxyXG4gICAgICAgICAgICBjb250ZW50LFxyXG4gICAgICAgICAgICBsb2M6IGdldFNlbGVjdGlvbihjb250ZXh0LCBpbm5lclN0YXJ0LCBpbm5lckVuZClcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxvYzogZ2V0U2VsZWN0aW9uKGNvbnRleHQsIHN0YXJ0KVxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBwYXJzZVRleHQoY29udGV4dCwgbW9kZSkge1xyXG4gICAgY29uc3QgZW5kVG9rZW5zID0gbW9kZSA9PT0gMyAvKiBUZXh0TW9kZXMuQ0RBVEEgKi8gPyBbJ11dPiddIDogWyc8JywgY29udGV4dC5vcHRpb25zLmRlbGltaXRlcnNbMF1dO1xyXG4gICAgbGV0IGVuZEluZGV4ID0gY29udGV4dC5zb3VyY2UubGVuZ3RoO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbmRUb2tlbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IGNvbnRleHQuc291cmNlLmluZGV4T2YoZW5kVG9rZW5zW2ldLCAxKTtcclxuICAgICAgICBpZiAoaW5kZXggIT09IC0xICYmIGVuZEluZGV4ID4gaW5kZXgpIHtcclxuICAgICAgICAgICAgZW5kSW5kZXggPSBpbmRleDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzdGFydCA9IGdldEN1cnNvcihjb250ZXh0KTtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSBwYXJzZVRleHREYXRhKGNvbnRleHQsIGVuZEluZGV4LCBtb2RlKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogMiAvKiBOb2RlVHlwZXMuVEVYVCAqLyxcclxuICAgICAgICBjb250ZW50LFxyXG4gICAgICAgIGxvYzogZ2V0U2VsZWN0aW9uKGNvbnRleHQsIHN0YXJ0KVxyXG4gICAgfTtcclxufVxyXG4vKipcclxuICogR2V0IHRleHQgZGF0YSB3aXRoIGEgZ2l2ZW4gbGVuZ3RoIGZyb20gdGhlIGN1cnJlbnQgbG9jYXRpb24uXHJcbiAqIFRoaXMgdHJhbnNsYXRlcyBIVE1MIGVudGl0aWVzIGluIHRoZSB0ZXh0IGRhdGEuXHJcbiAqL1xyXG5mdW5jdGlvbiBwYXJzZVRleHREYXRhKGNvbnRleHQsIGxlbmd0aCwgbW9kZSkge1xyXG4gICAgY29uc3QgcmF3VGV4dCA9IGNvbnRleHQuc291cmNlLnNsaWNlKDAsIGxlbmd0aCk7XHJcbiAgICBhZHZhbmNlQnkoY29udGV4dCwgbGVuZ3RoKTtcclxuICAgIGlmIChtb2RlID09PSAyIC8qIFRleHRNb2Rlcy5SQVdURVhUICovIHx8XHJcbiAgICAgICAgbW9kZSA9PT0gMyAvKiBUZXh0TW9kZXMuQ0RBVEEgKi8gfHxcclxuICAgICAgICAhcmF3VGV4dC5pbmNsdWRlcygnJicpKSB7XHJcbiAgICAgICAgcmV0dXJuIHJhd1RleHQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICAvLyBEQVRBIG9yIFJDREFUQSBjb250YWluaW5nIFwiJlwiXCIuIEVudGl0eSBkZWNvZGluZyByZXF1aXJlZC5cclxuICAgICAgICByZXR1cm4gY29udGV4dC5vcHRpb25zLmRlY29kZUVudGl0aWVzKHJhd1RleHQsIG1vZGUgPT09IDQgLyogVGV4dE1vZGVzLkFUVFJJQlVURV9WQUxVRSAqLyk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gZ2V0Q3Vyc29yKGNvbnRleHQpIHtcclxuICAgIGNvbnN0IHsgY29sdW1uLCBsaW5lLCBvZmZzZXQgfSA9IGNvbnRleHQ7XHJcbiAgICByZXR1cm4geyBjb2x1bW4sIGxpbmUsIG9mZnNldCB9O1xyXG59XHJcbmZ1bmN0aW9uIGdldFNlbGVjdGlvbihjb250ZXh0LCBzdGFydCwgZW5kKSB7XHJcbiAgICBlbmQgPSBlbmQgfHwgZ2V0Q3Vyc29yKGNvbnRleHQpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBzdGFydCxcclxuICAgICAgICBlbmQsXHJcbiAgICAgICAgc291cmNlOiBjb250ZXh0Lm9yaWdpbmFsU291cmNlLnNsaWNlKHN0YXJ0Lm9mZnNldCwgZW5kLm9mZnNldClcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gbGFzdCh4cykge1xyXG4gICAgcmV0dXJuIHhzW3hzLmxlbmd0aCAtIDFdO1xyXG59XHJcbmZ1bmN0aW9uIHN0YXJ0c1dpdGgoc291cmNlLCBzZWFyY2hTdHJpbmcpIHtcclxuICAgIHJldHVybiBzb3VyY2Uuc3RhcnRzV2l0aChzZWFyY2hTdHJpbmcpO1xyXG59XHJcbmZ1bmN0aW9uIGFkdmFuY2VCeShjb250ZXh0LCBudW1iZXJPZkNoYXJhY3RlcnMpIHtcclxuICAgIGNvbnN0IHsgc291cmNlIH0gPSBjb250ZXh0O1xyXG4gICAgYWR2YW5jZVBvc2l0aW9uV2l0aE11dGF0aW9uKGNvbnRleHQsIHNvdXJjZSwgbnVtYmVyT2ZDaGFyYWN0ZXJzKTtcclxuICAgIGNvbnRleHQuc291cmNlID0gc291cmNlLnNsaWNlKG51bWJlck9mQ2hhcmFjdGVycyk7XHJcbn1cclxuZnVuY3Rpb24gYWR2YW5jZVNwYWNlcyhjb250ZXh0KSB7XHJcbiAgICBjb25zdCBtYXRjaCA9IC9eW1xcdFxcclxcblxcZiBdKy8uZXhlYyhjb250ZXh0LnNvdXJjZSk7XHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgICBhZHZhbmNlQnkoY29udGV4dCwgbWF0Y2hbMF0ubGVuZ3RoKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBnZXROZXdQb3NpdGlvbihjb250ZXh0LCBzdGFydCwgbnVtYmVyT2ZDaGFyYWN0ZXJzKSB7XHJcbiAgICByZXR1cm4gYWR2YW5jZVBvc2l0aW9uV2l0aENsb25lKHN0YXJ0LCBjb250ZXh0Lm9yaWdpbmFsU291cmNlLnNsaWNlKHN0YXJ0Lm9mZnNldCwgbnVtYmVyT2ZDaGFyYWN0ZXJzKSwgbnVtYmVyT2ZDaGFyYWN0ZXJzKTtcclxufVxyXG5mdW5jdGlvbiBlbWl0RXJyb3IoY29udGV4dCwgY29kZSwgb2Zmc2V0LCBsb2MgPSBnZXRDdXJzb3IoY29udGV4dCkpIHtcclxuICAgIGlmIChvZmZzZXQpIHtcclxuICAgICAgICBsb2Mub2Zmc2V0ICs9IG9mZnNldDtcclxuICAgICAgICBsb2MuY29sdW1uICs9IG9mZnNldDtcclxuICAgIH1cclxuICAgIGNvbnRleHQub3B0aW9ucy5vbkVycm9yKGNyZWF0ZUNvbXBpbGVyRXJyb3IoY29kZSwge1xyXG4gICAgICAgIHN0YXJ0OiBsb2MsXHJcbiAgICAgICAgZW5kOiBsb2MsXHJcbiAgICAgICAgc291cmNlOiAnJ1xyXG4gICAgfSkpO1xyXG59XHJcbmZ1bmN0aW9uIGlzRW5kKGNvbnRleHQsIG1vZGUsIGFuY2VzdG9ycykge1xyXG4gICAgY29uc3QgcyA9IGNvbnRleHQuc291cmNlO1xyXG4gICAgc3dpdGNoIChtb2RlKSB7XHJcbiAgICAgICAgY2FzZSAwIC8qIFRleHRNb2Rlcy5EQVRBICovOlxyXG4gICAgICAgICAgICBpZiAoc3RhcnRzV2l0aChzLCAnPC8nKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gVE9ETzogcHJvYmFibHkgYmFkIHBlcmZvcm1hbmNlXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gYW5jZXN0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0c1dpdGhFbmRUYWdPcGVuKHMsIGFuY2VzdG9yc1tpXS50YWcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDEgLyogVGV4dE1vZGVzLlJDREFUQSAqLzpcclxuICAgICAgICBjYXNlIDIgLyogVGV4dE1vZGVzLlJBV1RFWFQgKi86IHtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gbGFzdChhbmNlc3RvcnMpO1xyXG4gICAgICAgICAgICBpZiAocGFyZW50ICYmIHN0YXJ0c1dpdGhFbmRUYWdPcGVuKHMsIHBhcmVudC50YWcpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAzIC8qIFRleHRNb2Rlcy5DREFUQSAqLzpcclxuICAgICAgICAgICAgaWYgKHN0YXJ0c1dpdGgocywgJ11dPicpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiAhcztcclxufVxyXG5mdW5jdGlvbiBzdGFydHNXaXRoRW5kVGFnT3Blbihzb3VyY2UsIHRhZykge1xyXG4gICAgcmV0dXJuIChzdGFydHNXaXRoKHNvdXJjZSwgJzwvJykgJiZcclxuICAgICAgICBzb3VyY2Uuc2xpY2UoMiwgMiArIHRhZy5sZW5ndGgpLnRvTG93ZXJDYXNlKCkgPT09IHRhZy50b0xvd2VyQ2FzZSgpICYmXHJcbiAgICAgICAgL1tcXHRcXHJcXG5cXGYgLz5dLy50ZXN0KHNvdXJjZVsyICsgdGFnLmxlbmd0aF0gfHwgJz4nKSk7XHJcbn1cblxuZnVuY3Rpb24gaG9pc3RTdGF0aWMocm9vdCwgY29udGV4dCkge1xyXG4gICAgd2Fsayhyb290LCBjb250ZXh0LCBcclxuICAgIC8vIFJvb3Qgbm9kZSBpcyB1bmZvcnR1bmF0ZWx5IG5vbi1ob2lzdGFibGUgZHVlIHRvIHBvdGVudGlhbCBwYXJlbnRcclxuICAgIC8vIGZhbGx0aHJvdWdoIGF0dHJpYnV0ZXMuXHJcbiAgICBpc1NpbmdsZUVsZW1lbnRSb290KHJvb3QsIHJvb3QuY2hpbGRyZW5bMF0pKTtcclxufVxyXG5mdW5jdGlvbiBpc1NpbmdsZUVsZW1lbnRSb290KHJvb3QsIGNoaWxkKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSByb290O1xyXG4gICAgcmV0dXJuIChjaGlsZHJlbi5sZW5ndGggPT09IDEgJiZcclxuICAgICAgICBjaGlsZC50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovICYmXHJcbiAgICAgICAgIWlzU2xvdE91dGxldChjaGlsZCkpO1xyXG59XHJcbmZ1bmN0aW9uIHdhbGsobm9kZSwgY29udGV4dCwgZG9Ob3RIb2lzdE5vZGUgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gbm9kZTtcclxuICAgIGNvbnN0IG9yaWdpbmFsQ291bnQgPSBjaGlsZHJlbi5sZW5ndGg7XHJcbiAgICBsZXQgaG9pc3RlZENvdW50ID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldO1xyXG4gICAgICAgIC8vIG9ubHkgcGxhaW4gZWxlbWVudHMgJiB0ZXh0IGNhbGxzIGFyZSBlbGlnaWJsZSBmb3IgaG9pc3RpbmcuXHJcbiAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09IDEgLyogTm9kZVR5cGVzLkVMRU1FTlQgKi8gJiZcclxuICAgICAgICAgICAgY2hpbGQudGFnVHlwZSA9PT0gMCAvKiBFbGVtZW50VHlwZXMuRUxFTUVOVCAqLykge1xyXG4gICAgICAgICAgICBjb25zdCBjb25zdGFudFR5cGUgPSBkb05vdEhvaXN0Tm9kZVxyXG4gICAgICAgICAgICAgICAgPyAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovXHJcbiAgICAgICAgICAgICAgICA6IGdldENvbnN0YW50VHlwZShjaGlsZCwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIGlmIChjb25zdGFudFR5cGUgPiAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29uc3RhbnRUeXBlID49IDIgLyogQ29uc3RhbnRUeXBlcy5DQU5fSE9JU1QgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5jb2RlZ2VuTm9kZS5wYXRjaEZsYWcgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAtMSAvKiBQYXRjaEZsYWdzLkhPSVNURUQgKi8gKyAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYCAvKiBIT0lTVEVEICovYCA6IGBgKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5jb2RlZ2VuTm9kZSA9IGNvbnRleHQuaG9pc3QoY2hpbGQuY29kZWdlbk5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGhvaXN0ZWRDb3VudCsrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gbm9kZSBtYXkgY29udGFpbiBkeW5hbWljIGNoaWxkcmVuLCBidXQgaXRzIHByb3BzIG1heSBiZSBlbGlnaWJsZSBmb3JcclxuICAgICAgICAgICAgICAgIC8vIGhvaXN0aW5nLlxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29kZWdlbk5vZGUgPSBjaGlsZC5jb2RlZ2VuTm9kZTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2RlZ2VuTm9kZS50eXBlID09PSAxMyAvKiBOb2RlVHlwZXMuVk5PREVfQ0FMTCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYWcgPSBnZXRQYXRjaEZsYWcoY29kZWdlbk5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgoIWZsYWcgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZyA9PT0gNTEyIC8qIFBhdGNoRmxhZ3MuTkVFRF9QQVRDSCAqLyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFnID09PSAxIC8qIFBhdGNoRmxhZ3MuVEVYVCAqLykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0R2VuZXJhdGVkUHJvcHNDb25zdGFudFR5cGUoY2hpbGQsIGNvbnRleHQpID49XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyIC8qIENvbnN0YW50VHlwZXMuQ0FOX0hPSVNUICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3BzID0gZ2V0Tm9kZVByb3BzKGNoaWxkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlZ2VuTm9kZS5wcm9wcyA9IGNvbnRleHQuaG9pc3QocHJvcHMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlZ2VuTm9kZS5keW5hbWljUHJvcHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZWdlbk5vZGUuZHluYW1pY1Byb3BzID0gY29udGV4dC5ob2lzdChjb2RlZ2VuTm9kZS5keW5hbWljUHJvcHMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjaGlsZC50eXBlID09PSAxMiAvKiBOb2RlVHlwZXMuVEVYVF9DQUxMICovICYmXHJcbiAgICAgICAgICAgIGdldENvbnN0YW50VHlwZShjaGlsZC5jb250ZW50LCBjb250ZXh0KSA+PSAyIC8qIENvbnN0YW50VHlwZXMuQ0FOX0hPSVNUICovKSB7XHJcbiAgICAgICAgICAgIGNoaWxkLmNvZGVnZW5Ob2RlID0gY29udGV4dC5ob2lzdChjaGlsZC5jb2RlZ2VuTm9kZSk7XHJcbiAgICAgICAgICAgIGhvaXN0ZWRDb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB3YWxrIGZ1cnRoZXJcclxuICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLykge1xyXG4gICAgICAgICAgICBjb25zdCBpc0NvbXBvbmVudCA9IGNoaWxkLnRhZ1R5cGUgPT09IDEgLyogRWxlbWVudFR5cGVzLkNPTVBPTkVOVCAqLztcclxuICAgICAgICAgICAgaWYgKGlzQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNjb3Blcy52U2xvdCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHdhbGsoY2hpbGQsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICBpZiAoaXNDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2NvcGVzLnZTbG90LS07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY2hpbGQudHlwZSA9PT0gMTEgLyogTm9kZVR5cGVzLkZPUiAqLykge1xyXG4gICAgICAgICAgICAvLyBEbyBub3QgaG9pc3Qgdi1mb3Igc2luZ2xlIGNoaWxkIGJlY2F1c2UgaXQgaGFzIHRvIGJlIGEgYmxvY2tcclxuICAgICAgICAgICAgd2FsayhjaGlsZCwgY29udGV4dCwgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY2hpbGQudHlwZSA9PT0gOSAvKiBOb2RlVHlwZXMuSUYgKi8pIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZC5icmFuY2hlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgLy8gRG8gbm90IGhvaXN0IHYtaWYgc2luZ2xlIGNoaWxkIGJlY2F1c2UgaXQgaGFzIHRvIGJlIGEgYmxvY2tcclxuICAgICAgICAgICAgICAgIHdhbGsoY2hpbGQuYnJhbmNoZXNbaV0sIGNvbnRleHQsIGNoaWxkLmJyYW5jaGVzW2ldLmNoaWxkcmVuLmxlbmd0aCA9PT0gMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaG9pc3RlZENvdW50ICYmIGNvbnRleHQudHJhbnNmb3JtSG9pc3QpIHtcclxuICAgICAgICBjb250ZXh0LnRyYW5zZm9ybUhvaXN0KGNoaWxkcmVuLCBjb250ZXh0LCBub2RlKTtcclxuICAgIH1cclxuICAgIC8vIGFsbCBjaGlsZHJlbiB3ZXJlIGhvaXN0ZWQgLSB0aGUgZW50aXJlIGNoaWxkcmVuIGFycmF5IGlzIGhvaXN0YWJsZS5cclxuICAgIGlmIChob2lzdGVkQ291bnQgJiZcclxuICAgICAgICBob2lzdGVkQ291bnQgPT09IG9yaWdpbmFsQ291bnQgJiZcclxuICAgICAgICBub2RlLnR5cGUgPT09IDEgLyogTm9kZVR5cGVzLkVMRU1FTlQgKi8gJiZcclxuICAgICAgICBub2RlLnRhZ1R5cGUgPT09IDAgLyogRWxlbWVudFR5cGVzLkVMRU1FTlQgKi8gJiZcclxuICAgICAgICBub2RlLmNvZGVnZW5Ob2RlICYmXHJcbiAgICAgICAgbm9kZS5jb2RlZ2VuTm9kZS50eXBlID09PSAxMyAvKiBOb2RlVHlwZXMuVk5PREVfQ0FMTCAqLyAmJlxyXG4gICAgICAgIGlzQXJyYXkobm9kZS5jb2RlZ2VuTm9kZS5jaGlsZHJlbikpIHtcclxuICAgICAgICBub2RlLmNvZGVnZW5Ob2RlLmNoaWxkcmVuID0gY29udGV4dC5ob2lzdChjcmVhdGVBcnJheUV4cHJlc3Npb24obm9kZS5jb2RlZ2VuTm9kZS5jaGlsZHJlbikpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdldENvbnN0YW50VHlwZShub2RlLCBjb250ZXh0KSB7XHJcbiAgICBjb25zdCB7IGNvbnN0YW50Q2FjaGUgfSA9IGNvbnRleHQ7XHJcbiAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xyXG4gICAgICAgIGNhc2UgMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLzpcclxuICAgICAgICAgICAgaWYgKG5vZGUudGFnVHlwZSAhPT0gMCAvKiBFbGVtZW50VHlwZXMuRUxFTUVOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgY2FjaGVkID0gY29uc3RhbnRDYWNoZS5nZXQobm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChjYWNoZWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBjb2RlZ2VuTm9kZSA9IG5vZGUuY29kZWdlbk5vZGU7XHJcbiAgICAgICAgICAgIGlmIChjb2RlZ2VuTm9kZS50eXBlICE9PSAxMyAvKiBOb2RlVHlwZXMuVk5PREVfQ0FMTCAqLykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNvZGVnZW5Ob2RlLmlzQmxvY2sgJiZcclxuICAgICAgICAgICAgICAgIG5vZGUudGFnICE9PSAnc3ZnJyAmJlxyXG4gICAgICAgICAgICAgICAgbm9kZS50YWcgIT09ICdmb3JlaWduT2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZmxhZyA9IGdldFBhdGNoRmxhZyhjb2RlZ2VuTm9kZSk7XHJcbiAgICAgICAgICAgIGlmICghZmxhZykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJldHVyblR5cGUgPSAzIC8qIENvbnN0YW50VHlwZXMuQ0FOX1NUUklOR0lGWSAqLztcclxuICAgICAgICAgICAgICAgIC8vIEVsZW1lbnQgaXRzZWxmIGhhcyBubyBwYXRjaCBmbGFnLiBIb3dldmVyIHdlIHN0aWxsIG5lZWQgdG8gY2hlY2s6XHJcbiAgICAgICAgICAgICAgICAvLyAxLiBFdmVuIGZvciBhIG5vZGUgd2l0aCBubyBwYXRjaCBmbGFnLCBpdCBpcyBwb3NzaWJsZSBmb3IgaXQgdG8gY29udGFpblxyXG4gICAgICAgICAgICAgICAgLy8gbm9uLWhvaXN0YWJsZSBleHByZXNzaW9ucyB0aGF0IHJlZmVycyB0byBzY29wZSB2YXJpYWJsZXMsIGUuZy4gY29tcGlsZXJcclxuICAgICAgICAgICAgICAgIC8vIGluamVjdGVkIGtleXMgb3IgY2FjaGVkIGV2ZW50IGhhbmRsZXJzLiBUaGVyZWZvcmUgd2UgbmVlZCB0byBhbHdheXNcclxuICAgICAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBjb2RlZ2VuTm9kZSdzIHByb3BzIHRvIGJlIHN1cmUuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBnZW5lcmF0ZWRQcm9wc1R5cGUgPSBnZXRHZW5lcmF0ZWRQcm9wc0NvbnN0YW50VHlwZShub2RlLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWRQcm9wc1R5cGUgPT09IDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdGFudENhY2hlLnNldChub2RlLCAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMCAvKiBDb25zdGFudFR5cGVzLk5PVF9DT05TVEFOVCAqLztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWRQcm9wc1R5cGUgPCByZXR1cm5UeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IGdlbmVyYXRlZFByb3BzVHlwZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIDIuIGl0cyBjaGlsZHJlbi5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkVHlwZSA9IGdldENvbnN0YW50VHlwZShub2RlLmNoaWxkcmVuW2ldLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRUeXBlID09PSAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50Q2FjaGUuc2V0KG5vZGUsIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMCAvKiBDb25zdGFudFR5cGVzLk5PVF9DT05TVEFOVCAqLztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkVHlwZSA8IHJldHVyblR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IGNoaWxkVHlwZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyAzLiBpZiB0aGUgdHlwZSBpcyBub3QgYWxyZWFkeSBDQU5fU0tJUF9QQVRDSCB3aGljaCBpcyB0aGUgbG93ZXN0IG5vbi0wXHJcbiAgICAgICAgICAgICAgICAvLyB0eXBlLCBjaGVjayBpZiBhbnkgb2YgdGhlIHByb3BzIGNhbiBjYXVzZSB0aGUgdHlwZSB0byBiZSBsb3dlcmVkXHJcbiAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gc2tpcCBjYW5fcGF0Y2ggYmVjYXVzZSBpdCdzIGd1YXJhbnRlZWQgYnkgdGhlIGFic2VuY2Ugb2YgYVxyXG4gICAgICAgICAgICAgICAgLy8gcGF0Y2hGbGFnLlxyXG4gICAgICAgICAgICAgICAgaWYgKHJldHVyblR5cGUgPiAxIC8qIENvbnN0YW50VHlwZXMuQ0FOX1NLSVBfUEFUQ0ggKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUucHJvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcCA9IG5vZGUucHJvcHNbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwLnR5cGUgPT09IDcgLyogTm9kZVR5cGVzLkRJUkVDVElWRSAqLyAmJiBwLm5hbWUgPT09ICdiaW5kJyAmJiBwLmV4cCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwVHlwZSA9IGdldENvbnN0YW50VHlwZShwLmV4cCwgY29udGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwVHlwZSA9PT0gMCAvKiBDb25zdGFudFR5cGVzLk5PVF9DT05TVEFOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50Q2FjaGUuc2V0KG5vZGUsIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cFR5cGUgPCByZXR1cm5UeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IGV4cFR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBvbmx5IHN2Zy9mb3JlaWduT2JqZWN0IGNvdWxkIGJlIGJsb2NrIGhlcmUsIGhvd2V2ZXIgaWYgdGhleSBhcmVcclxuICAgICAgICAgICAgICAgIC8vIHN0YXRpYyB0aGVuIHRoZXkgZG9uJ3QgbmVlZCB0byBiZSBibG9ja3Mgc2luY2UgdGhlcmUgd2lsbCBiZSBub1xyXG4gICAgICAgICAgICAgICAgLy8gbmVzdGVkIHVwZGF0ZXMuXHJcbiAgICAgICAgICAgICAgICBpZiAoY29kZWdlbk5vZGUuaXNCbG9jaykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGV4Y2VwdCBzZXQgY3VzdG9tIGRpcmVjdGl2ZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLnByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHAgPSBub2RlLnByb3BzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocC50eXBlID09PSA3IC8qIE5vZGVUeXBlcy5ESVJFQ1RJVkUgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50Q2FjaGUuc2V0KG5vZGUsIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZW1vdmVIZWxwZXIoT1BFTl9CTE9DSyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZW1vdmVIZWxwZXIoZ2V0Vk5vZGVCbG9ja0hlbHBlcihjb250ZXh0LmluU1NSLCBjb2RlZ2VuTm9kZS5pc0NvbXBvbmVudCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvZGVnZW5Ob2RlLmlzQmxvY2sgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmhlbHBlcihnZXRWTm9kZUhlbHBlcihjb250ZXh0LmluU1NSLCBjb2RlZ2VuTm9kZS5pc0NvbXBvbmVudCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3RhbnRDYWNoZS5zZXQobm9kZSwgcmV0dXJuVHlwZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0YW50Q2FjaGUuc2V0KG5vZGUsIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBjYXNlIDIgLyogTm9kZVR5cGVzLlRFWFQgKi86XHJcbiAgICAgICAgY2FzZSAzIC8qIE5vZGVUeXBlcy5DT01NRU5UICovOlxyXG4gICAgICAgICAgICByZXR1cm4gMyAvKiBDb25zdGFudFR5cGVzLkNBTl9TVFJJTkdJRlkgKi87XHJcbiAgICAgICAgY2FzZSA5IC8qIE5vZGVUeXBlcy5JRiAqLzpcclxuICAgICAgICBjYXNlIDExIC8qIE5vZGVUeXBlcy5GT1IgKi86XHJcbiAgICAgICAgY2FzZSAxMCAvKiBOb2RlVHlwZXMuSUZfQlJBTkNIICovOlxyXG4gICAgICAgICAgICByZXR1cm4gMCAvKiBDb25zdGFudFR5cGVzLk5PVF9DT05TVEFOVCAqLztcclxuICAgICAgICBjYXNlIDUgLyogTm9kZVR5cGVzLklOVEVSUE9MQVRJT04gKi86XHJcbiAgICAgICAgY2FzZSAxMiAvKiBOb2RlVHlwZXMuVEVYVF9DQUxMICovOlxyXG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29uc3RhbnRUeXBlKG5vZGUuY29udGVudCwgY29udGV4dCk7XHJcbiAgICAgICAgY2FzZSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLzpcclxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuY29uc3RUeXBlO1xyXG4gICAgICAgIGNhc2UgOCAvKiBOb2RlVHlwZXMuQ09NUE9VTkRfRVhQUkVTU0lPTiAqLzpcclxuICAgICAgICAgICAgbGV0IHJldHVyblR5cGUgPSAzIC8qIENvbnN0YW50VHlwZXMuQ0FOX1NUUklOR0lGWSAqLztcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNTdHJpbmcoY2hpbGQpIHx8IGlzU3ltYm9sKGNoaWxkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRUeXBlID0gZ2V0Q29uc3RhbnRUeXBlKGNoaWxkLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZFR5cGUgPT09IDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMCAvKiBDb25zdGFudFR5cGVzLk5PVF9DT05TVEFOVCAqLztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoaWxkVHlwZSA8IHJldHVyblR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gY2hpbGRUeXBlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByZXR1cm5UeXBlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIDtcclxuICAgICAgICAgICAgcmV0dXJuIDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi87XHJcbiAgICB9XHJcbn1cclxuY29uc3QgYWxsb3dIb2lzdGVkSGVscGVyU2V0ID0gbmV3IFNldChbXHJcbiAgICBOT1JNQUxJWkVfQ0xBU1MsXHJcbiAgICBOT1JNQUxJWkVfU1RZTEUsXHJcbiAgICBOT1JNQUxJWkVfUFJPUFMsXHJcbiAgICBHVUFSRF9SRUFDVElWRV9QUk9QU1xyXG5dKTtcclxuZnVuY3Rpb24gZ2V0Q29uc3RhbnRUeXBlT2ZIZWxwZXJDYWxsKHZhbHVlLCBjb250ZXh0KSB7XHJcbiAgICBpZiAodmFsdWUudHlwZSA9PT0gMTQgLyogTm9kZVR5cGVzLkpTX0NBTExfRVhQUkVTU0lPTiAqLyAmJlxyXG4gICAgICAgICFpc1N0cmluZyh2YWx1ZS5jYWxsZWUpICYmXHJcbiAgICAgICAgYWxsb3dIb2lzdGVkSGVscGVyU2V0Lmhhcyh2YWx1ZS5jYWxsZWUpKSB7XHJcbiAgICAgICAgY29uc3QgYXJnID0gdmFsdWUuYXJndW1lbnRzWzBdO1xyXG4gICAgICAgIGlmIChhcmcudHlwZSA9PT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGdldENvbnN0YW50VHlwZShhcmcsIGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChhcmcudHlwZSA9PT0gMTQgLyogTm9kZVR5cGVzLkpTX0NBTExfRVhQUkVTU0lPTiAqLykge1xyXG4gICAgICAgICAgICAvLyBpbiB0aGUgY2FzZSBvZiBuZXN0ZWQgaGVscGVyIGNhbGwsIGUuZy4gYG5vcm1hbGl6ZVByb3BzKGd1YXJkUmVhY3RpdmVQcm9wcyhleHApKWBcclxuICAgICAgICAgICAgcmV0dXJuIGdldENvbnN0YW50VHlwZU9mSGVscGVyQ2FsbChhcmcsIGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovO1xyXG59XHJcbmZ1bmN0aW9uIGdldEdlbmVyYXRlZFByb3BzQ29uc3RhbnRUeXBlKG5vZGUsIGNvbnRleHQpIHtcclxuICAgIGxldCByZXR1cm5UeXBlID0gMyAvKiBDb25zdGFudFR5cGVzLkNBTl9TVFJJTkdJRlkgKi87XHJcbiAgICBjb25zdCBwcm9wcyA9IGdldE5vZGVQcm9wcyhub2RlKTtcclxuICAgIGlmIChwcm9wcyAmJiBwcm9wcy50eXBlID09PSAxNSAvKiBOb2RlVHlwZXMuSlNfT0JKRUNUX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICBjb25zdCB7IHByb3BlcnRpZXMgfSA9IHByb3BzO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IHByb3BlcnRpZXNbaV07XHJcbiAgICAgICAgICAgIGNvbnN0IGtleVR5cGUgPSBnZXRDb25zdGFudFR5cGUoa2V5LCBjb250ZXh0KTtcclxuICAgICAgICAgICAgaWYgKGtleVR5cGUgPT09IDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBrZXlUeXBlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChrZXlUeXBlIDwgcmV0dXJuVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IGtleVR5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHZhbHVlVHlwZTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09IDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVR5cGUgPSBnZXRDb25zdGFudFR5cGUodmFsdWUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlLnR5cGUgPT09IDE0IC8qIE5vZGVUeXBlcy5KU19DQUxMX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICAgICAgICAgIC8vIHNvbWUgaGVscGVyIGNhbGxzIGNhbiBiZSBob2lzdGVkLFxyXG4gICAgICAgICAgICAgICAgLy8gc3VjaCBhcyB0aGUgYG5vcm1hbGl6ZVByb3BzYCBnZW5lcmF0ZWQgYnkgdGhlIGNvbXBpbGVyIGZvciBwcmUtbm9ybWFsaXplIGNsYXNzLFxyXG4gICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBjYXNlIHdlIG5lZWQgdG8gcmVzcGVjdCB0aGUgQ29uc3RhbnRUeXBlIG9mIHRoZSBoZWxwZXIncyBhcmd1bWVudHNcclxuICAgICAgICAgICAgICAgIHZhbHVlVHlwZSA9IGdldENvbnN0YW50VHlwZU9mSGVscGVyQ2FsbCh2YWx1ZSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVR5cGUgPSAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZVR5cGUgPT09IDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZVR5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHZhbHVlVHlwZSA8IHJldHVyblR5cGUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVyblR5cGUgPSB2YWx1ZVR5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0dXJuVHlwZTtcclxufVxyXG5mdW5jdGlvbiBnZXROb2RlUHJvcHMobm9kZSkge1xyXG4gICAgY29uc3QgY29kZWdlbk5vZGUgPSBub2RlLmNvZGVnZW5Ob2RlO1xyXG4gICAgaWYgKGNvZGVnZW5Ob2RlLnR5cGUgPT09IDEzIC8qIE5vZGVUeXBlcy5WTk9ERV9DQUxMICovKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvZGVnZW5Ob2RlLnByb3BzO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdldFBhdGNoRmxhZyhub2RlKSB7XHJcbiAgICBjb25zdCBmbGFnID0gbm9kZS5wYXRjaEZsYWc7XHJcbiAgICByZXR1cm4gZmxhZyA/IHBhcnNlSW50KGZsYWcsIDEwKSA6IHVuZGVmaW5lZDtcclxufVxuXG5mdW5jdGlvbiBjcmVhdGVUcmFuc2Zvcm1Db250ZXh0KHJvb3QsIHsgZmlsZW5hbWUgPSAnJywgcHJlZml4SWRlbnRpZmllcnMgPSBmYWxzZSwgaG9pc3RTdGF0aWMgPSBmYWxzZSwgY2FjaGVIYW5kbGVycyA9IGZhbHNlLCBub2RlVHJhbnNmb3JtcyA9IFtdLCBkaXJlY3RpdmVUcmFuc2Zvcm1zID0ge30sIHRyYW5zZm9ybUhvaXN0ID0gbnVsbCwgaXNCdWlsdEluQ29tcG9uZW50ID0gTk9PUCwgaXNDdXN0b21FbGVtZW50ID0gTk9PUCwgZXhwcmVzc2lvblBsdWdpbnMgPSBbXSwgc2NvcGVJZCA9IG51bGwsIHNsb3R0ZWQgPSB0cnVlLCBzc3IgPSBmYWxzZSwgaW5TU1IgPSBmYWxzZSwgc3NyQ3NzVmFycyA9IGBgLCBiaW5kaW5nTWV0YWRhdGEgPSBFTVBUWV9PQkosIGlubGluZSA9IGZhbHNlLCBpc1RTID0gZmFsc2UsIG9uRXJyb3IgPSBkZWZhdWx0T25FcnJvciwgb25XYXJuID0gZGVmYXVsdE9uV2FybiwgY29tcGF0Q29uZmlnIH0pIHtcclxuICAgIGNvbnN0IG5hbWVNYXRjaCA9IGZpbGVuYW1lLnJlcGxhY2UoL1xcPy4qJC8sICcnKS5tYXRjaCgvKFteL1xcXFxdKylcXC5cXHcrJC8pO1xyXG4gICAgY29uc3QgY29udGV4dCA9IHtcclxuICAgICAgICAvLyBvcHRpb25zXHJcbiAgICAgICAgc2VsZk5hbWU6IG5hbWVNYXRjaCAmJiBjYXBpdGFsaXplKGNhbWVsaXplJDEobmFtZU1hdGNoWzFdKSksXHJcbiAgICAgICAgcHJlZml4SWRlbnRpZmllcnMsXHJcbiAgICAgICAgaG9pc3RTdGF0aWMsXHJcbiAgICAgICAgY2FjaGVIYW5kbGVycyxcclxuICAgICAgICBub2RlVHJhbnNmb3JtcyxcclxuICAgICAgICBkaXJlY3RpdmVUcmFuc2Zvcm1zLFxyXG4gICAgICAgIHRyYW5zZm9ybUhvaXN0LFxyXG4gICAgICAgIGlzQnVpbHRJbkNvbXBvbmVudCxcclxuICAgICAgICBpc0N1c3RvbUVsZW1lbnQsXHJcbiAgICAgICAgZXhwcmVzc2lvblBsdWdpbnMsXHJcbiAgICAgICAgc2NvcGVJZCxcclxuICAgICAgICBzbG90dGVkLFxyXG4gICAgICAgIHNzcixcclxuICAgICAgICBpblNTUixcclxuICAgICAgICBzc3JDc3NWYXJzLFxyXG4gICAgICAgIGJpbmRpbmdNZXRhZGF0YSxcclxuICAgICAgICBpbmxpbmUsXHJcbiAgICAgICAgaXNUUyxcclxuICAgICAgICBvbkVycm9yLFxyXG4gICAgICAgIG9uV2FybixcclxuICAgICAgICBjb21wYXRDb25maWcsXHJcbiAgICAgICAgLy8gc3RhdGVcclxuICAgICAgICByb290LFxyXG4gICAgICAgIGhlbHBlcnM6IG5ldyBNYXAoKSxcclxuICAgICAgICBjb21wb25lbnRzOiBuZXcgU2V0KCksXHJcbiAgICAgICAgZGlyZWN0aXZlczogbmV3IFNldCgpLFxyXG4gICAgICAgIGhvaXN0czogW10sXHJcbiAgICAgICAgaW1wb3J0czogW10sXHJcbiAgICAgICAgY29uc3RhbnRDYWNoZTogbmV3IE1hcCgpLFxyXG4gICAgICAgIHRlbXBzOiAwLFxyXG4gICAgICAgIGNhY2hlZDogMCxcclxuICAgICAgICBpZGVudGlmaWVyczogT2JqZWN0LmNyZWF0ZShudWxsKSxcclxuICAgICAgICBzY29wZXM6IHtcclxuICAgICAgICAgICAgdkZvcjogMCxcclxuICAgICAgICAgICAgdlNsb3Q6IDAsXHJcbiAgICAgICAgICAgIHZQcmU6IDAsXHJcbiAgICAgICAgICAgIHZPbmNlOiAwXHJcbiAgICAgICAgfSxcclxuICAgICAgICBwYXJlbnQ6IG51bGwsXHJcbiAgICAgICAgY3VycmVudE5vZGU6IHJvb3QsXHJcbiAgICAgICAgY2hpbGRJbmRleDogMCxcclxuICAgICAgICBpblZPbmNlOiBmYWxzZSxcclxuICAgICAgICAvLyBtZXRob2RzXHJcbiAgICAgICAgaGVscGVyKG5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgY291bnQgPSBjb250ZXh0LmhlbHBlcnMuZ2V0KG5hbWUpIHx8IDA7XHJcbiAgICAgICAgICAgIGNvbnRleHQuaGVscGVycy5zZXQobmFtZSwgY291bnQgKyAxKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5hbWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZW1vdmVIZWxwZXIobmFtZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjb3VudCA9IGNvbnRleHQuaGVscGVycy5nZXQobmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChjb3VudCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENvdW50ID0gY291bnQgLSAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50Q291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmhlbHBlcnMuZGVsZXRlKG5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5oZWxwZXJzLnNldChuYW1lLCBjdXJyZW50Q291bnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBoZWxwZXJTdHJpbmcobmFtZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gYF8ke2hlbHBlck5hbWVNYXBbY29udGV4dC5oZWxwZXIobmFtZSldfWA7XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZXBsYWNlTm9kZShub2RlKSB7XHJcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRleHQuY3VycmVudE5vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vZGUgYmVpbmcgcmVwbGFjZWQgaXMgYWxyZWFkeSByZW1vdmVkLmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFjb250ZXh0LnBhcmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlcGxhY2Ugcm9vdCBub2RlLmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQucGFyZW50LmNoaWxkcmVuW2NvbnRleHQuY2hpbGRJbmRleF0gPSBjb250ZXh0LmN1cnJlbnROb2RlID0gbm9kZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZU5vZGUobm9kZSkge1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFjb250ZXh0LnBhcmVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVtb3ZlIHJvb3Qgbm9kZS5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBsaXN0ID0gY29udGV4dC5wYXJlbnQuY2hpbGRyZW47XHJcbiAgICAgICAgICAgIGNvbnN0IHJlbW92YWxJbmRleCA9IG5vZGVcclxuICAgICAgICAgICAgICAgID8gbGlzdC5pbmRleE9mKG5vZGUpXHJcbiAgICAgICAgICAgICAgICA6IGNvbnRleHQuY3VycmVudE5vZGVcclxuICAgICAgICAgICAgICAgICAgICA/IGNvbnRleHQuY2hpbGRJbmRleFxyXG4gICAgICAgICAgICAgICAgICAgIDogLTE7XHJcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIHJlbW92YWxJbmRleCA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgbm9kZSBiZWluZyByZW1vdmVkIGlzIG5vdCBhIGNoaWxkIG9mIGN1cnJlbnQgcGFyZW50YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFub2RlIHx8IG5vZGUgPT09IGNvbnRleHQuY3VycmVudE5vZGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIGN1cnJlbnQgbm9kZSByZW1vdmVkXHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmN1cnJlbnROb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQub25Ob2RlUmVtb3ZlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gc2libGluZyBub2RlIHJlbW92ZWRcclxuICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LmNoaWxkSW5kZXggPiByZW1vdmFsSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNoaWxkSW5kZXgtLTtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm9uTm9kZVJlbW92ZWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnBhcmVudC5jaGlsZHJlbi5zcGxpY2UocmVtb3ZhbEluZGV4LCAxKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uTm9kZVJlbW92ZWQ6ICgpID0+IHsgfSxcclxuICAgICAgICBhZGRJZGVudGlmaWVycyhleHApIHtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZUlkZW50aWZpZXJzKGV4cCkge1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaG9pc3QoZXhwKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1N0cmluZyhleHApKVxyXG4gICAgICAgICAgICAgICAgZXhwID0gY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihleHApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmhvaXN0cy5wdXNoKGV4cCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKGBfaG9pc3RlZF8ke2NvbnRleHQuaG9pc3RzLmxlbmd0aH1gLCBmYWxzZSwgZXhwLmxvYywgMiAvKiBDb25zdGFudFR5cGVzLkNBTl9IT0lTVCAqLyk7XHJcbiAgICAgICAgICAgIGlkZW50aWZpZXIuaG9pc3RlZCA9IGV4cDtcclxuICAgICAgICAgICAgcmV0dXJuIGlkZW50aWZpZXI7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjYWNoZShleHAsIGlzVk5vZGUgPSBmYWxzZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlQ2FjaGVFeHByZXNzaW9uKGNvbnRleHQuY2FjaGVkKyssIGV4cCwgaXNWTm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHtcclxuICAgICAgICBjb250ZXh0LmZpbHRlcnMgPSBuZXcgU2V0KCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udGV4dDtcclxufVxyXG5mdW5jdGlvbiB0cmFuc2Zvcm0ocm9vdCwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgY29udGV4dCA9IGNyZWF0ZVRyYW5zZm9ybUNvbnRleHQocm9vdCwgb3B0aW9ucyk7XHJcbiAgICB0cmF2ZXJzZU5vZGUocm9vdCwgY29udGV4dCk7XHJcbiAgICBpZiAob3B0aW9ucy5ob2lzdFN0YXRpYykge1xyXG4gICAgICAgIGhvaXN0U3RhdGljKHJvb3QsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFvcHRpb25zLnNzcikge1xyXG4gICAgICAgIGNyZWF0ZVJvb3RDb2RlZ2VuKHJvb3QsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgLy8gZmluYWxpemUgbWV0YSBpbmZvcm1hdGlvblxyXG4gICAgcm9vdC5oZWxwZXJzID0gWy4uLmNvbnRleHQuaGVscGVycy5rZXlzKCldO1xyXG4gICAgcm9vdC5jb21wb25lbnRzID0gWy4uLmNvbnRleHQuY29tcG9uZW50c107XHJcbiAgICByb290LmRpcmVjdGl2ZXMgPSBbLi4uY29udGV4dC5kaXJlY3RpdmVzXTtcclxuICAgIHJvb3QuaW1wb3J0cyA9IGNvbnRleHQuaW1wb3J0cztcclxuICAgIHJvb3QuaG9pc3RzID0gY29udGV4dC5ob2lzdHM7XHJcbiAgICByb290LnRlbXBzID0gY29udGV4dC50ZW1wcztcclxuICAgIHJvb3QuY2FjaGVkID0gY29udGV4dC5jYWNoZWQ7XHJcbiAgICB7XHJcbiAgICAgICAgcm9vdC5maWx0ZXJzID0gWy4uLmNvbnRleHQuZmlsdGVyc107XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlUm9vdENvZGVnZW4ocm9vdCwgY29udGV4dCkge1xyXG4gICAgY29uc3QgeyBoZWxwZXIgfSA9IGNvbnRleHQ7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSByb290O1xyXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5bMF07XHJcbiAgICAgICAgLy8gaWYgdGhlIHNpbmdsZSBjaGlsZCBpcyBhbiBlbGVtZW50LCB0dXJuIGl0IGludG8gYSBibG9jay5cclxuICAgICAgICBpZiAoaXNTaW5nbGVFbGVtZW50Um9vdChyb290LCBjaGlsZCkgJiYgY2hpbGQuY29kZWdlbk5vZGUpIHtcclxuICAgICAgICAgICAgLy8gc2luZ2xlIGVsZW1lbnQgcm9vdCBpcyBuZXZlciBob2lzdGVkIHNvIGNvZGVnZW5Ob2RlIHdpbGwgbmV2ZXIgYmVcclxuICAgICAgICAgICAgLy8gU2ltcGxlRXhwcmVzc2lvbk5vZGVcclxuICAgICAgICAgICAgY29uc3QgY29kZWdlbk5vZGUgPSBjaGlsZC5jb2RlZ2VuTm9kZTtcclxuICAgICAgICAgICAgaWYgKGNvZGVnZW5Ob2RlLnR5cGUgPT09IDEzIC8qIE5vZGVUeXBlcy5WTk9ERV9DQUxMICovKSB7XHJcbiAgICAgICAgICAgICAgICBtYWtlQmxvY2soY29kZWdlbk5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJvb3QuY29kZWdlbk5vZGUgPSBjb2RlZ2VuTm9kZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIC0gc2luZ2xlIDxzbG90Lz4sIElmTm9kZSwgRm9yTm9kZTogYWxyZWFkeSBibG9ja3MuXHJcbiAgICAgICAgICAgIC8vIC0gc2luZ2xlIHRleHQgbm9kZTogYWx3YXlzIHBhdGNoZWQuXHJcbiAgICAgICAgICAgIC8vIHJvb3QgY29kZWdlbiBmYWxscyB0aHJvdWdoIHZpYSBnZW5Ob2RlKClcclxuICAgICAgICAgICAgcm9vdC5jb2RlZ2VuTm9kZSA9IGNoaWxkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAvLyByb290IGhhcyBtdWx0aXBsZSBub2RlcyAtIHJldHVybiBhIGZyYWdtZW50IGJsb2NrLlxyXG4gICAgICAgIGxldCBwYXRjaEZsYWcgPSA2NCAvKiBQYXRjaEZsYWdzLlNUQUJMRV9GUkFHTUVOVCAqLztcclxuICAgICAgICBsZXQgcGF0Y2hGbGFnVGV4dCA9IFBhdGNoRmxhZ05hbWVzWzY0IC8qIFBhdGNoRmxhZ3MuU1RBQkxFX0ZSQUdNRU5UICovXTtcclxuICAgICAgICAvLyBjaGVjayBpZiB0aGUgZnJhZ21lbnQgYWN0dWFsbHkgY29udGFpbnMgYSBzaW5nbGUgdmFsaWQgY2hpbGQgd2l0aFxyXG4gICAgICAgIC8vIHRoZSByZXN0IGJlaW5nIGNvbW1lbnRzXHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICBjaGlsZHJlbi5maWx0ZXIoYyA9PiBjLnR5cGUgIT09IDMgLyogTm9kZVR5cGVzLkNPTU1FTlQgKi8pLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBwYXRjaEZsYWcgfD0gMjA0OCAvKiBQYXRjaEZsYWdzLkRFVl9ST09UX0ZSQUdNRU5UICovO1xyXG4gICAgICAgICAgICBwYXRjaEZsYWdUZXh0ICs9IGAsICR7UGF0Y2hGbGFnTmFtZXNbMjA0OCAvKiBQYXRjaEZsYWdzLkRFVl9ST09UX0ZSQUdNRU5UICovXX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByb290LmNvZGVnZW5Ob2RlID0gY3JlYXRlVk5vZGVDYWxsKGNvbnRleHQsIGhlbHBlcihGUkFHTUVOVCksIHVuZGVmaW5lZCwgcm9vdC5jaGlsZHJlbiwgcGF0Y2hGbGFnICsgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGAgLyogJHtwYXRjaEZsYWdUZXh0fSAqL2AgOiBgYCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlLCB1bmRlZmluZWQsIGZhbHNlIC8qIGlzQ29tcG9uZW50ICovKTtcclxuICAgIH1cclxuICAgIGVsc2UgO1xyXG59XHJcbmZ1bmN0aW9uIHRyYXZlcnNlQ2hpbGRyZW4ocGFyZW50LCBjb250ZXh0KSB7XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBjb25zdCBub2RlUmVtb3ZlZCA9ICgpID0+IHtcclxuICAgICAgICBpLS07XHJcbiAgICB9O1xyXG4gICAgZm9yICg7IGkgPCBwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IHBhcmVudC5jaGlsZHJlbltpXTtcclxuICAgICAgICBpZiAoaXNTdHJpbmcoY2hpbGQpKVxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICBjb250ZXh0LnBhcmVudCA9IHBhcmVudDtcclxuICAgICAgICBjb250ZXh0LmNoaWxkSW5kZXggPSBpO1xyXG4gICAgICAgIGNvbnRleHQub25Ob2RlUmVtb3ZlZCA9IG5vZGVSZW1vdmVkO1xyXG4gICAgICAgIHRyYXZlcnNlTm9kZShjaGlsZCwgY29udGV4dCk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gdHJhdmVyc2VOb2RlKG5vZGUsIGNvbnRleHQpIHtcclxuICAgIGNvbnRleHQuY3VycmVudE5vZGUgPSBub2RlO1xyXG4gICAgLy8gYXBwbHkgdHJhbnNmb3JtIHBsdWdpbnNcclxuICAgIGNvbnN0IHsgbm9kZVRyYW5zZm9ybXMgfSA9IGNvbnRleHQ7XHJcbiAgICBjb25zdCBleGl0Rm5zID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVUcmFuc2Zvcm1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3Qgb25FeGl0ID0gbm9kZVRyYW5zZm9ybXNbaV0obm9kZSwgY29udGV4dCk7XHJcbiAgICAgICAgaWYgKG9uRXhpdCkge1xyXG4gICAgICAgICAgICBpZiAoaXNBcnJheShvbkV4aXQpKSB7XHJcbiAgICAgICAgICAgICAgICBleGl0Rm5zLnB1c2goLi4ub25FeGl0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGV4aXRGbnMucHVzaChvbkV4aXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghY29udGV4dC5jdXJyZW50Tm9kZSkge1xyXG4gICAgICAgICAgICAvLyBub2RlIHdhcyByZW1vdmVkXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIG5vZGUgbWF5IGhhdmUgYmVlbiByZXBsYWNlZFxyXG4gICAgICAgICAgICBub2RlID0gY29udGV4dC5jdXJyZW50Tm9kZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xyXG4gICAgICAgIGNhc2UgMyAvKiBOb2RlVHlwZXMuQ09NTUVOVCAqLzpcclxuICAgICAgICAgICAgaWYgKCFjb250ZXh0LnNzcikge1xyXG4gICAgICAgICAgICAgICAgLy8gaW5qZWN0IGltcG9ydCBmb3IgdGhlIENvbW1lbnQgc3ltYm9sLCB3aGljaCBpcyBuZWVkZWQgZm9yIGNyZWF0aW5nXHJcbiAgICAgICAgICAgICAgICAvLyBjb21tZW50IG5vZGVzIHdpdGggYGNyZWF0ZVZOb2RlYFxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5oZWxwZXIoQ1JFQVRFX0NPTU1FTlQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNSAvKiBOb2RlVHlwZXMuSU5URVJQT0xBVElPTiAqLzpcclxuICAgICAgICAgICAgLy8gbm8gbmVlZCB0byB0cmF2ZXJzZSwgYnV0IHdlIG5lZWQgdG8gaW5qZWN0IHRvU3RyaW5nIGhlbHBlclxyXG4gICAgICAgICAgICBpZiAoIWNvbnRleHQuc3NyKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmhlbHBlcihUT19ESVNQTEFZX1NUUklORyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy8gZm9yIGNvbnRhaW5lciB0eXBlcywgZnVydGhlciB0cmF2ZXJzZSBkb3dud2FyZHNcclxuICAgICAgICBjYXNlIDkgLyogTm9kZVR5cGVzLklGICovOlxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuYnJhbmNoZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRyYXZlcnNlTm9kZShub2RlLmJyYW5jaGVzW2ldLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDEwIC8qIE5vZGVUeXBlcy5JRl9CUkFOQ0ggKi86XHJcbiAgICAgICAgY2FzZSAxMSAvKiBOb2RlVHlwZXMuRk9SICovOlxyXG4gICAgICAgIGNhc2UgMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLzpcclxuICAgICAgICBjYXNlIDAgLyogTm9kZVR5cGVzLlJPT1QgKi86XHJcbiAgICAgICAgICAgIHRyYXZlcnNlQ2hpbGRyZW4obm9kZSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgLy8gZXhpdCB0cmFuc2Zvcm1zXHJcbiAgICBjb250ZXh0LmN1cnJlbnROb2RlID0gbm9kZTtcclxuICAgIGxldCBpID0gZXhpdEZucy5sZW5ndGg7XHJcbiAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgZXhpdEZuc1tpXSgpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZVN0cnVjdHVyYWxEaXJlY3RpdmVUcmFuc2Zvcm0obmFtZSwgZm4pIHtcclxuICAgIGNvbnN0IG1hdGNoZXMgPSBpc1N0cmluZyhuYW1lKVxyXG4gICAgICAgID8gKG4pID0+IG4gPT09IG5hbWVcclxuICAgICAgICA6IChuKSA9PiBuYW1lLnRlc3Qobik7XHJcbiAgICByZXR1cm4gKG5vZGUsIGNvbnRleHQpID0+IHtcclxuICAgICAgICBpZiAobm9kZS50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcHMgfSA9IG5vZGU7XHJcbiAgICAgICAgICAgIC8vIHN0cnVjdHVyYWwgZGlyZWN0aXZlIHRyYW5zZm9ybXMgYXJlIG5vdCBjb25jZXJuZWQgd2l0aCBzbG90c1xyXG4gICAgICAgICAgICAvLyBhcyB0aGV5IGFyZSBoYW5kbGVkIHNlcGFyYXRlbHkgaW4gdlNsb3QudHNcclxuICAgICAgICAgICAgaWYgKG5vZGUudGFnVHlwZSA9PT0gMyAvKiBFbGVtZW50VHlwZXMuVEVNUExBVEUgKi8gJiYgcHJvcHMuc29tZShpc1ZTbG90KSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGV4aXRGbnMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvcCA9IHByb3BzW2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb3AudHlwZSA9PT0gNyAvKiBOb2RlVHlwZXMuRElSRUNUSVZFICovICYmIG1hdGNoZXMocHJvcC5uYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHN0cnVjdHVyYWwgZGlyZWN0aXZlcyBhcmUgcmVtb3ZlZCB0byBhdm9pZCBpbmZpbml0ZSByZWN1cnNpb25cclxuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHdlIHJlbW92ZSB0aGVtICpiZWZvcmUqIGFwcGx5aW5nIHNvIHRoYXQgaXQgY2FuIGZ1cnRoZXJcclxuICAgICAgICAgICAgICAgICAgICAvLyB0cmF2ZXJzZSBpdHNlbGYgaW4gY2FzZSBpdCBtb3ZlcyB0aGUgbm9kZSBhcm91bmRcclxuICAgICAgICAgICAgICAgICAgICBwcm9wcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9uRXhpdCA9IGZuKG5vZGUsIHByb3AsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvbkV4aXQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXRGbnMucHVzaChvbkV4aXQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBleGl0Rm5zO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cblxuY29uc3QgUFVSRV9BTk5PVEFUSU9OID0gYC8qI19fUFVSRV9fKi9gO1xyXG5jb25zdCBhbGlhc0hlbHBlciA9IChzKSA9PiBgJHtoZWxwZXJOYW1lTWFwW3NdfTogXyR7aGVscGVyTmFtZU1hcFtzXX1gO1xyXG5mdW5jdGlvbiBjcmVhdGVDb2RlZ2VuQ29udGV4dChhc3QsIHsgbW9kZSA9ICdmdW5jdGlvbicsIHByZWZpeElkZW50aWZpZXJzID0gbW9kZSA9PT0gJ21vZHVsZScsIHNvdXJjZU1hcCA9IGZhbHNlLCBmaWxlbmFtZSA9IGB0ZW1wbGF0ZS52dWUuaHRtbGAsIHNjb3BlSWQgPSBudWxsLCBvcHRpbWl6ZUltcG9ydHMgPSBmYWxzZSwgcnVudGltZUdsb2JhbE5hbWUgPSBgVnVlYCwgcnVudGltZU1vZHVsZU5hbWUgPSBgdnVlYCwgc3NyUnVudGltZU1vZHVsZU5hbWUgPSAndnVlL3NlcnZlci1yZW5kZXJlcicsIHNzciA9IGZhbHNlLCBpc1RTID0gZmFsc2UsIGluU1NSID0gZmFsc2UgfSkge1xyXG4gICAgY29uc3QgY29udGV4dCA9IHtcclxuICAgICAgICBtb2RlLFxyXG4gICAgICAgIHByZWZpeElkZW50aWZpZXJzLFxyXG4gICAgICAgIHNvdXJjZU1hcCxcclxuICAgICAgICBmaWxlbmFtZSxcclxuICAgICAgICBzY29wZUlkLFxyXG4gICAgICAgIG9wdGltaXplSW1wb3J0cyxcclxuICAgICAgICBydW50aW1lR2xvYmFsTmFtZSxcclxuICAgICAgICBydW50aW1lTW9kdWxlTmFtZSxcclxuICAgICAgICBzc3JSdW50aW1lTW9kdWxlTmFtZSxcclxuICAgICAgICBzc3IsXHJcbiAgICAgICAgaXNUUyxcclxuICAgICAgICBpblNTUixcclxuICAgICAgICBzb3VyY2U6IGFzdC5sb2Muc291cmNlLFxyXG4gICAgICAgIGNvZGU6IGBgLFxyXG4gICAgICAgIGNvbHVtbjogMSxcclxuICAgICAgICBsaW5lOiAxLFxyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBpbmRlbnRMZXZlbDogMCxcclxuICAgICAgICBwdXJlOiBmYWxzZSxcclxuICAgICAgICBtYXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBoZWxwZXIoa2V5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgXyR7aGVscGVyTmFtZU1hcFtrZXldfWA7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBwdXNoKGNvZGUsIG5vZGUpIHtcclxuICAgICAgICAgICAgY29udGV4dC5jb2RlICs9IGNvZGU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBpbmRlbnQoKSB7XHJcbiAgICAgICAgICAgIG5ld2xpbmUoKytjb250ZXh0LmluZGVudExldmVsKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRlaW5kZW50KHdpdGhvdXROZXdMaW5lID0gZmFsc2UpIHtcclxuICAgICAgICAgICAgaWYgKHdpdGhvdXROZXdMaW5lKSB7XHJcbiAgICAgICAgICAgICAgICAtLWNvbnRleHQuaW5kZW50TGV2ZWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBuZXdsaW5lKC0tY29udGV4dC5pbmRlbnRMZXZlbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG5ld2xpbmUoKSB7XHJcbiAgICAgICAgICAgIG5ld2xpbmUoY29udGV4dC5pbmRlbnRMZXZlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGZ1bmN0aW9uIG5ld2xpbmUobikge1xyXG4gICAgICAgIGNvbnRleHQucHVzaCgnXFxuJyArIGAgIGAucmVwZWF0KG4pKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb250ZXh0O1xyXG59XHJcbmZ1bmN0aW9uIGdlbmVyYXRlKGFzdCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQ29kZWdlbkNvbnRleHQoYXN0LCBvcHRpb25zKTtcclxuICAgIGlmIChvcHRpb25zLm9uQ29udGV4dENyZWF0ZWQpXHJcbiAgICAgICAgb3B0aW9ucy5vbkNvbnRleHRDcmVhdGVkKGNvbnRleHQpO1xyXG4gICAgY29uc3QgeyBtb2RlLCBwdXNoLCBwcmVmaXhJZGVudGlmaWVycywgaW5kZW50LCBkZWluZGVudCwgbmV3bGluZSwgc2NvcGVJZCwgc3NyIH0gPSBjb250ZXh0O1xyXG4gICAgY29uc3QgaGFzSGVscGVycyA9IGFzdC5oZWxwZXJzLmxlbmd0aCA+IDA7XHJcbiAgICBjb25zdCB1c2VXaXRoQmxvY2sgPSAhcHJlZml4SWRlbnRpZmllcnMgJiYgbW9kZSAhPT0gJ21vZHVsZSc7XHJcbiAgICAvLyBwcmVhbWJsZXNcclxuICAgIC8vIGluIHNldHVwKCkgaW5saW5lIG1vZGUsIHRoZSBwcmVhbWJsZSBpcyBnZW5lcmF0ZWQgaW4gYSBzdWIgY29udGV4dFxyXG4gICAgLy8gYW5kIHJldHVybmVkIHNlcGFyYXRlbHkuXHJcbiAgICBjb25zdCBwcmVhbWJsZUNvbnRleHQgPSBjb250ZXh0O1xyXG4gICAge1xyXG4gICAgICAgIGdlbkZ1bmN0aW9uUHJlYW1ibGUoYXN0LCBwcmVhbWJsZUNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgLy8gZW50ZXIgcmVuZGVyIGZ1bmN0aW9uXHJcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBzc3IgPyBgc3NyUmVuZGVyYCA6IGByZW5kZXJgO1xyXG4gICAgY29uc3QgYXJncyA9IHNzciA/IFsnX2N0eCcsICdfcHVzaCcsICdfcGFyZW50JywgJ19hdHRycyddIDogWydfY3R4JywgJ19jYWNoZSddO1xyXG4gICAgY29uc3Qgc2lnbmF0dXJlID0gYXJncy5qb2luKCcsICcpO1xyXG4gICAge1xyXG4gICAgICAgIHB1c2goYGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSgke3NpZ25hdHVyZX0pIHtgKTtcclxuICAgIH1cclxuICAgIGluZGVudCgpO1xyXG4gICAgaWYgKHVzZVdpdGhCbG9jaykge1xyXG4gICAgICAgIHB1c2goYHdpdGggKF9jdHgpIHtgKTtcclxuICAgICAgICBpbmRlbnQoKTtcclxuICAgICAgICAvLyBmdW5jdGlvbiBtb2RlIGNvbnN0IGRlY2xhcmF0aW9ucyBzaG91bGQgYmUgaW5zaWRlIHdpdGggYmxvY2tcclxuICAgICAgICAvLyBhbHNvIHRoZXkgc2hvdWxkIGJlIHJlbmFtZWQgdG8gYXZvaWQgY29sbGlzaW9uIHdpdGggdXNlciBwcm9wZXJ0aWVzXHJcbiAgICAgICAgaWYgKGhhc0hlbHBlcnMpIHtcclxuICAgICAgICAgICAgcHVzaChgY29uc3QgeyAke2FzdC5oZWxwZXJzLm1hcChhbGlhc0hlbHBlcikuam9pbignLCAnKX0gfSA9IF9WdWVgKTtcclxuICAgICAgICAgICAgcHVzaChgXFxuYCk7XHJcbiAgICAgICAgICAgIG5ld2xpbmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBnZW5lcmF0ZSBhc3NldCByZXNvbHV0aW9uIHN0YXRlbWVudHNcclxuICAgIGlmIChhc3QuY29tcG9uZW50cy5sZW5ndGgpIHtcclxuICAgICAgICBnZW5Bc3NldHMoYXN0LmNvbXBvbmVudHMsICdjb21wb25lbnQnLCBjb250ZXh0KTtcclxuICAgICAgICBpZiAoYXN0LmRpcmVjdGl2ZXMubGVuZ3RoIHx8IGFzdC50ZW1wcyA+IDApIHtcclxuICAgICAgICAgICAgbmV3bGluZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChhc3QuZGlyZWN0aXZlcy5sZW5ndGgpIHtcclxuICAgICAgICBnZW5Bc3NldHMoYXN0LmRpcmVjdGl2ZXMsICdkaXJlY3RpdmUnLCBjb250ZXh0KTtcclxuICAgICAgICBpZiAoYXN0LnRlbXBzID4gMCkge1xyXG4gICAgICAgICAgICBuZXdsaW5lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGFzdC5maWx0ZXJzICYmIGFzdC5maWx0ZXJzLmxlbmd0aCkge1xyXG4gICAgICAgIG5ld2xpbmUoKTtcclxuICAgICAgICBnZW5Bc3NldHMoYXN0LmZpbHRlcnMsICdmaWx0ZXInLCBjb250ZXh0KTtcclxuICAgICAgICBuZXdsaW5lKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoYXN0LnRlbXBzID4gMCkge1xyXG4gICAgICAgIHB1c2goYGxldCBgKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFzdC50ZW1wczsgaSsrKSB7XHJcbiAgICAgICAgICAgIHB1c2goYCR7aSA+IDAgPyBgLCBgIDogYGB9X3RlbXAke2l9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGFzdC5jb21wb25lbnRzLmxlbmd0aCB8fCBhc3QuZGlyZWN0aXZlcy5sZW5ndGggfHwgYXN0LnRlbXBzKSB7XHJcbiAgICAgICAgcHVzaChgXFxuYCk7XHJcbiAgICAgICAgbmV3bGluZSgpO1xyXG4gICAgfVxyXG4gICAgLy8gZ2VuZXJhdGUgdGhlIFZOb2RlIHRyZWUgZXhwcmVzc2lvblxyXG4gICAgaWYgKCFzc3IpIHtcclxuICAgICAgICBwdXNoKGByZXR1cm4gYCk7XHJcbiAgICB9XHJcbiAgICBpZiAoYXN0LmNvZGVnZW5Ob2RlKSB7XHJcbiAgICAgICAgZ2VuTm9kZShhc3QuY29kZWdlbk5vZGUsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcHVzaChgbnVsbGApO1xyXG4gICAgfVxyXG4gICAgaWYgKHVzZVdpdGhCbG9jaykge1xyXG4gICAgICAgIGRlaW5kZW50KCk7XHJcbiAgICAgICAgcHVzaChgfWApO1xyXG4gICAgfVxyXG4gICAgZGVpbmRlbnQoKTtcclxuICAgIHB1c2goYH1gKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgYXN0LFxyXG4gICAgICAgIGNvZGU6IGNvbnRleHQuY29kZSxcclxuICAgICAgICBwcmVhbWJsZTogYGAsXHJcbiAgICAgICAgLy8gU291cmNlTWFwR2VuZXJhdG9yIGRvZXMgaGF2ZSB0b0pTT04oKSBtZXRob2QgYnV0IGl0J3Mgbm90IGluIHRoZSB0eXBlc1xyXG4gICAgICAgIG1hcDogY29udGV4dC5tYXAgPyBjb250ZXh0Lm1hcC50b0pTT04oKSA6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBnZW5GdW5jdGlvblByZWFtYmxlKGFzdCwgY29udGV4dCkge1xyXG4gICAgY29uc3QgeyBzc3IsIHByZWZpeElkZW50aWZpZXJzLCBwdXNoLCBuZXdsaW5lLCBydW50aW1lTW9kdWxlTmFtZSwgcnVudGltZUdsb2JhbE5hbWUsIHNzclJ1bnRpbWVNb2R1bGVOYW1lIH0gPSBjb250ZXh0O1xyXG4gICAgY29uc3QgVnVlQmluZGluZyA9IHJ1bnRpbWVHbG9iYWxOYW1lO1xyXG4gICAgLy8gR2VuZXJhdGUgY29uc3QgZGVjbGFyYXRpb24gZm9yIGhlbHBlcnNcclxuICAgIC8vIEluIHByZWZpeCBtb2RlLCB3ZSBwbGFjZSB0aGUgY29uc3QgZGVjbGFyYXRpb24gYXQgdG9wIHNvIGl0J3MgZG9uZVxyXG4gICAgLy8gb25seSBvbmNlOyBCdXQgaWYgd2Ugbm90IHByZWZpeGluZywgd2UgcGxhY2UgdGhlIGRlY2xhcmF0aW9uIGluc2lkZSB0aGVcclxuICAgIC8vIHdpdGggYmxvY2sgc28gaXQgZG9lc24ndCBpbmN1ciB0aGUgYGluYCBjaGVjayBjb3N0IGZvciBldmVyeSBoZWxwZXIgYWNjZXNzLlxyXG4gICAgaWYgKGFzdC5oZWxwZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vIFwid2l0aFwiIG1vZGUuXHJcbiAgICAgICAgICAgIC8vIHNhdmUgVnVlIGluIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8gYXZvaWQgY29sbGlzaW9uXHJcbiAgICAgICAgICAgIHB1c2goYGNvbnN0IF9WdWUgPSAke1Z1ZUJpbmRpbmd9XFxuYCk7XHJcbiAgICAgICAgICAgIC8vIGluIFwid2l0aFwiIG1vZGUsIGhlbHBlcnMgYXJlIGRlY2xhcmVkIGluc2lkZSB0aGUgd2l0aCBibG9jayB0byBhdm9pZFxyXG4gICAgICAgICAgICAvLyBoYXMgY2hlY2sgY29zdCwgYnV0IGhvaXN0cyBhcmUgbGlmdGVkIG91dCBvZiB0aGUgZnVuY3Rpb24gLSB3ZSBuZWVkXHJcbiAgICAgICAgICAgIC8vIHRvIHByb3ZpZGUgdGhlIGhlbHBlciBoZXJlLlxyXG4gICAgICAgICAgICBpZiAoYXN0LmhvaXN0cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRpY0hlbHBlcnMgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgQ1JFQVRFX1ZOT0RFLFxyXG4gICAgICAgICAgICAgICAgICAgIENSRUFURV9FTEVNRU5UX1ZOT0RFLFxyXG4gICAgICAgICAgICAgICAgICAgIENSRUFURV9DT01NRU5ULFxyXG4gICAgICAgICAgICAgICAgICAgIENSRUFURV9URVhULFxyXG4gICAgICAgICAgICAgICAgICAgIENSRUFURV9TVEFUSUNcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGhlbHBlciA9PiBhc3QuaGVscGVycy5pbmNsdWRlcyhoZWxwZXIpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoYWxpYXNIZWxwZXIpXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywgJyk7XHJcbiAgICAgICAgICAgICAgICBwdXNoKGBjb25zdCB7ICR7c3RhdGljSGVscGVyc30gfSA9IF9WdWVcXG5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdlbkhvaXN0cyhhc3QuaG9pc3RzLCBjb250ZXh0KTtcclxuICAgIG5ld2xpbmUoKTtcclxuICAgIHB1c2goYHJldHVybiBgKTtcclxufVxyXG5mdW5jdGlvbiBnZW5Bc3NldHMoYXNzZXRzLCB0eXBlLCB7IGhlbHBlciwgcHVzaCwgbmV3bGluZSwgaXNUUyB9KSB7XHJcbiAgICBjb25zdCByZXNvbHZlciA9IGhlbHBlcih0eXBlID09PSAnZmlsdGVyJ1xyXG4gICAgICAgID8gUkVTT0xWRV9GSUxURVJcclxuICAgICAgICA6IHR5cGUgPT09ICdjb21wb25lbnQnXHJcbiAgICAgICAgICAgID8gUkVTT0xWRV9DT01QT05FTlRcclxuICAgICAgICAgICAgOiBSRVNPTFZFX0RJUkVDVElWRSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBpZCA9IGFzc2V0c1tpXTtcclxuICAgICAgICAvLyBwb3RlbnRpYWwgY29tcG9uZW50IGltcGxpY2l0IHNlbGYtcmVmZXJlbmNlIGluZmVycmVkIGZyb20gU0ZDIGZpbGVuYW1lXHJcbiAgICAgICAgY29uc3QgbWF5YmVTZWxmUmVmZXJlbmNlID0gaWQuZW5kc1dpdGgoJ19fc2VsZicpO1xyXG4gICAgICAgIGlmIChtYXliZVNlbGZSZWZlcmVuY2UpIHtcclxuICAgICAgICAgICAgaWQgPSBpZC5zbGljZSgwLCAtNik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHB1c2goYGNvbnN0ICR7dG9WYWxpZEFzc2V0SWQoaWQsIHR5cGUpfSA9ICR7cmVzb2x2ZXJ9KCR7SlNPTi5zdHJpbmdpZnkoaWQpfSR7bWF5YmVTZWxmUmVmZXJlbmNlID8gYCwgdHJ1ZWAgOiBgYH0pJHtpc1RTID8gYCFgIDogYGB9YCk7XHJcbiAgICAgICAgaWYgKGkgPCBhc3NldHMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICBuZXdsaW5lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdlbkhvaXN0cyhob2lzdHMsIGNvbnRleHQpIHtcclxuICAgIGlmICghaG9pc3RzLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnRleHQucHVyZSA9IHRydWU7XHJcbiAgICBjb25zdCB7IHB1c2gsIG5ld2xpbmUsIGhlbHBlciwgc2NvcGVJZCwgbW9kZSB9ID0gY29udGV4dDtcclxuICAgIG5ld2xpbmUoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaG9pc3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgZXhwID0gaG9pc3RzW2ldO1xyXG4gICAgICAgIGlmIChleHApIHtcclxuICAgICAgICAgICAgcHVzaChgY29uc3QgX2hvaXN0ZWRfJHtpICsgMX0gPSAke2BgfWApO1xyXG4gICAgICAgICAgICBnZW5Ob2RlKGV4cCwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIG5ld2xpbmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnB1cmUgPSBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiBpc1RleHQkMShuKSB7XHJcbiAgICByZXR1cm4gKGlzU3RyaW5nKG4pIHx8XHJcbiAgICAgICAgbi50eXBlID09PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLyB8fFxyXG4gICAgICAgIG4udHlwZSA9PT0gMiAvKiBOb2RlVHlwZXMuVEVYVCAqLyB8fFxyXG4gICAgICAgIG4udHlwZSA9PT0gNSAvKiBOb2RlVHlwZXMuSU5URVJQT0xBVElPTiAqLyB8fFxyXG4gICAgICAgIG4udHlwZSA9PT0gOCAvKiBOb2RlVHlwZXMuQ09NUE9VTkRfRVhQUkVTU0lPTiAqLyk7XHJcbn1cclxuZnVuY3Rpb24gZ2VuTm9kZUxpc3RBc0FycmF5KG5vZGVzLCBjb250ZXh0KSB7XHJcbiAgICBjb25zdCBtdWx0aWxpbmVzID0gbm9kZXMubGVuZ3RoID4gMyB8fFxyXG4gICAgICAgICgoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSAmJiBub2Rlcy5zb21lKG4gPT4gaXNBcnJheShuKSB8fCAhaXNUZXh0JDEobikpKTtcclxuICAgIGNvbnRleHQucHVzaChgW2ApO1xyXG4gICAgbXVsdGlsaW5lcyAmJiBjb250ZXh0LmluZGVudCgpO1xyXG4gICAgZ2VuTm9kZUxpc3Qobm9kZXMsIGNvbnRleHQsIG11bHRpbGluZXMpO1xyXG4gICAgbXVsdGlsaW5lcyAmJiBjb250ZXh0LmRlaW5kZW50KCk7XHJcbiAgICBjb250ZXh0LnB1c2goYF1gKTtcclxufVxyXG5mdW5jdGlvbiBnZW5Ob2RlTGlzdChub2RlcywgY29udGV4dCwgbXVsdGlsaW5lcyA9IGZhbHNlLCBjb21tYSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgcHVzaCwgbmV3bGluZSB9ID0gY29udGV4dDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBub2RlID0gbm9kZXNbaV07XHJcbiAgICAgICAgaWYgKGlzU3RyaW5nKG5vZGUpKSB7XHJcbiAgICAgICAgICAgIHB1c2gobm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzQXJyYXkobm9kZSkpIHtcclxuICAgICAgICAgICAgZ2VuTm9kZUxpc3RBc0FycmF5KG5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZ2VuTm9kZShub2RlLCBjb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGkgPCBub2Rlcy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIGlmIChtdWx0aWxpbmVzKSB7XHJcbiAgICAgICAgICAgICAgICBjb21tYSAmJiBwdXNoKCcsJyk7XHJcbiAgICAgICAgICAgICAgICBuZXdsaW5lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb21tYSAmJiBwdXNoKCcsICcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdlbk5vZGUobm9kZSwgY29udGV4dCkge1xyXG4gICAgaWYgKGlzU3RyaW5nKG5vZGUpKSB7XHJcbiAgICAgICAgY29udGV4dC5wdXNoKG5vZGUpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChpc1N5bWJvbChub2RlKSkge1xyXG4gICAgICAgIGNvbnRleHQucHVzaChjb250ZXh0LmhlbHBlcihub2RlKSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcclxuICAgICAgICBjYXNlIDEgLyogTm9kZVR5cGVzLkVMRU1FTlQgKi86XHJcbiAgICAgICAgY2FzZSA5IC8qIE5vZGVUeXBlcy5JRiAqLzpcclxuICAgICAgICBjYXNlIDExIC8qIE5vZGVUeXBlcy5GT1IgKi86XHJcbiAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICAgICAgYXNzZXJ0KG5vZGUuY29kZWdlbk5vZGUgIT0gbnVsbCwgYENvZGVnZW4gbm9kZSBpcyBtaXNzaW5nIGZvciBlbGVtZW50L2lmL2ZvciBub2RlLiBgICtcclxuICAgICAgICAgICAgICAgICAgICBgQXBwbHkgYXBwcm9wcmlhdGUgdHJhbnNmb3JtcyBmaXJzdC5gKTtcclxuICAgICAgICAgICAgZ2VuTm9kZShub2RlLmNvZGVnZW5Ob2RlLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyIC8qIE5vZGVUeXBlcy5URVhUICovOlxyXG4gICAgICAgICAgICBnZW5UZXh0KG5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovOlxyXG4gICAgICAgICAgICBnZW5FeHByZXNzaW9uKG5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDUgLyogTm9kZVR5cGVzLklOVEVSUE9MQVRJT04gKi86XHJcbiAgICAgICAgICAgIGdlbkludGVycG9sYXRpb24obm9kZSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTIgLyogTm9kZVR5cGVzLlRFWFRfQ0FMTCAqLzpcclxuICAgICAgICAgICAgZ2VuTm9kZShub2RlLmNvZGVnZW5Ob2RlLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA4IC8qIE5vZGVUeXBlcy5DT01QT1VORF9FWFBSRVNTSU9OICovOlxyXG4gICAgICAgICAgICBnZW5Db21wb3VuZEV4cHJlc3Npb24obm9kZSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMyAvKiBOb2RlVHlwZXMuQ09NTUVOVCAqLzpcclxuICAgICAgICAgICAgZ2VuQ29tbWVudChub2RlLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxMyAvKiBOb2RlVHlwZXMuVk5PREVfQ0FMTCAqLzpcclxuICAgICAgICAgICAgZ2VuVk5vZGVDYWxsKG5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDE0IC8qIE5vZGVUeXBlcy5KU19DQUxMX0VYUFJFU1NJT04gKi86XHJcbiAgICAgICAgICAgIGdlbkNhbGxFeHByZXNzaW9uKG5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDE1IC8qIE5vZGVUeXBlcy5KU19PQkpFQ1RfRVhQUkVTU0lPTiAqLzpcclxuICAgICAgICAgICAgZ2VuT2JqZWN0RXhwcmVzc2lvbihub2RlLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxNyAvKiBOb2RlVHlwZXMuSlNfQVJSQVlfRVhQUkVTU0lPTiAqLzpcclxuICAgICAgICAgICAgZ2VuQXJyYXlFeHByZXNzaW9uKG5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDE4IC8qIE5vZGVUeXBlcy5KU19GVU5DVElPTl9FWFBSRVNTSU9OICovOlxyXG4gICAgICAgICAgICBnZW5GdW5jdGlvbkV4cHJlc3Npb24obm9kZSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTkgLyogTm9kZVR5cGVzLkpTX0NPTkRJVElPTkFMX0VYUFJFU1NJT04gKi86XHJcbiAgICAgICAgICAgIGdlbkNvbmRpdGlvbmFsRXhwcmVzc2lvbihub2RlLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyMCAvKiBOb2RlVHlwZXMuSlNfQ0FDSEVfRVhQUkVTU0lPTiAqLzpcclxuICAgICAgICAgICAgZ2VuQ2FjaGVFeHByZXNzaW9uKG5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDIxIC8qIE5vZGVUeXBlcy5KU19CTE9DS19TVEFURU1FTlQgKi86XHJcbiAgICAgICAgICAgIGdlbk5vZGVMaXN0KG5vZGUuYm9keSwgY29udGV4dCwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyBTU1Igb25seSB0eXBlc1xyXG4gICAgICAgIGNhc2UgMjIgLyogTm9kZVR5cGVzLkpTX1RFTVBMQVRFX0xJVEVSQUwgKi86XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjMgLyogTm9kZVR5cGVzLkpTX0lGX1NUQVRFTUVOVCAqLzpcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyNCAvKiBOb2RlVHlwZXMuSlNfQVNTSUdOTUVOVF9FWFBSRVNTSU9OICovOlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDI1IC8qIE5vZGVUeXBlcy5KU19TRVFVRU5DRV9FWFBSRVNTSU9OICovOlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDI2IC8qIE5vZGVUeXBlcy5KU19SRVRVUk5fU1RBVEVNRU5UICovOlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG4gICAgICAgIGNhc2UgMTAgLyogTm9kZVR5cGVzLklGX0JSQU5DSCAqLzpcclxuICAgICAgICAgICAgLy8gbm9vcFxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsIGB1bmhhbmRsZWQgY29kZWdlbiBub2RlIHR5cGU6ICR7bm9kZS50eXBlfWApO1xyXG4gICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGV4aGF1c3QgYWxsIHBvc3NpYmxlIHR5cGVzXHJcbiAgICAgICAgICAgICAgICBjb25zdCBleGhhdXN0aXZlQ2hlY2sgPSBub2RlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4aGF1c3RpdmVDaGVjaztcclxuICAgICAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdlblRleHQobm9kZSwgY29udGV4dCkge1xyXG4gICAgY29udGV4dC5wdXNoKEpTT04uc3RyaW5naWZ5KG5vZGUuY29udGVudCksIG5vZGUpO1xyXG59XHJcbmZ1bmN0aW9uIGdlbkV4cHJlc3Npb24obm9kZSwgY29udGV4dCkge1xyXG4gICAgY29uc3QgeyBjb250ZW50LCBpc1N0YXRpYyB9ID0gbm9kZTtcclxuICAgIGNvbnRleHQucHVzaChpc1N0YXRpYyA/IEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpIDogY29udGVudCwgbm9kZSk7XHJcbn1cclxuZnVuY3Rpb24gZ2VuSW50ZXJwb2xhdGlvbihub2RlLCBjb250ZXh0KSB7XHJcbiAgICBjb25zdCB7IHB1c2gsIGhlbHBlciwgcHVyZSB9ID0gY29udGV4dDtcclxuICAgIGlmIChwdXJlKVxyXG4gICAgICAgIHB1c2goUFVSRV9BTk5PVEFUSU9OKTtcclxuICAgIHB1c2goYCR7aGVscGVyKFRPX0RJU1BMQVlfU1RSSU5HKX0oYCk7XHJcbiAgICBnZW5Ob2RlKG5vZGUuY29udGVudCwgY29udGV4dCk7XHJcbiAgICBwdXNoKGApYCk7XHJcbn1cclxuZnVuY3Rpb24gZ2VuQ29tcG91bmRFeHByZXNzaW9uKG5vZGUsIGNvbnRleHQpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICBpZiAoaXNTdHJpbmcoY2hpbGQpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQucHVzaChjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBnZW5Ob2RlKGNoaWxkLCBjb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gZ2VuRXhwcmVzc2lvbkFzUHJvcGVydHlLZXkobm9kZSwgY29udGV4dCkge1xyXG4gICAgY29uc3QgeyBwdXNoIH0gPSBjb250ZXh0O1xyXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gOCAvKiBOb2RlVHlwZXMuQ09NUE9VTkRfRVhQUkVTU0lPTiAqLykge1xyXG4gICAgICAgIHB1c2goYFtgKTtcclxuICAgICAgICBnZW5Db21wb3VuZEV4cHJlc3Npb24obm9kZSwgY29udGV4dCk7XHJcbiAgICAgICAgcHVzaChgXWApO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobm9kZS5pc1N0YXRpYykge1xyXG4gICAgICAgIC8vIG9ubHkgcXVvdGUga2V5cyBpZiBuZWNlc3NhcnlcclxuICAgICAgICBjb25zdCB0ZXh0ID0gaXNTaW1wbGVJZGVudGlmaWVyKG5vZGUuY29udGVudClcclxuICAgICAgICAgICAgPyBub2RlLmNvbnRlbnRcclxuICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShub2RlLmNvbnRlbnQpO1xyXG4gICAgICAgIHB1c2godGV4dCwgbm9kZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBwdXNoKGBbJHtub2RlLmNvbnRlbnR9XWAsIG5vZGUpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdlbkNvbW1lbnQobm9kZSwgY29udGV4dCkge1xyXG4gICAgY29uc3QgeyBwdXNoLCBoZWxwZXIsIHB1cmUgfSA9IGNvbnRleHQ7XHJcbiAgICBpZiAocHVyZSkge1xyXG4gICAgICAgIHB1c2goUFVSRV9BTk5PVEFUSU9OKTtcclxuICAgIH1cclxuICAgIHB1c2goYCR7aGVscGVyKENSRUFURV9DT01NRU5UKX0oJHtKU09OLnN0cmluZ2lmeShub2RlLmNvbnRlbnQpfSlgLCBub2RlKTtcclxufVxyXG5mdW5jdGlvbiBnZW5WTm9kZUNhbGwobm9kZSwgY29udGV4dCkge1xyXG4gICAgY29uc3QgeyBwdXNoLCBoZWxwZXIsIHB1cmUgfSA9IGNvbnRleHQ7XHJcbiAgICBjb25zdCB7IHRhZywgcHJvcHMsIGNoaWxkcmVuLCBwYXRjaEZsYWcsIGR5bmFtaWNQcm9wcywgZGlyZWN0aXZlcywgaXNCbG9jaywgZGlzYWJsZVRyYWNraW5nLCBpc0NvbXBvbmVudCB9ID0gbm9kZTtcclxuICAgIGlmIChkaXJlY3RpdmVzKSB7XHJcbiAgICAgICAgcHVzaChoZWxwZXIoV0lUSF9ESVJFQ1RJVkVTKSArIGAoYCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNCbG9jaykge1xyXG4gICAgICAgIHB1c2goYCgke2hlbHBlcihPUEVOX0JMT0NLKX0oJHtkaXNhYmxlVHJhY2tpbmcgPyBgdHJ1ZWAgOiBgYH0pLCBgKTtcclxuICAgIH1cclxuICAgIGlmIChwdXJlKSB7XHJcbiAgICAgICAgcHVzaChQVVJFX0FOTk9UQVRJT04pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY2FsbEhlbHBlciA9IGlzQmxvY2tcclxuICAgICAgICA/IGdldFZOb2RlQmxvY2tIZWxwZXIoY29udGV4dC5pblNTUiwgaXNDb21wb25lbnQpXHJcbiAgICAgICAgOiBnZXRWTm9kZUhlbHBlcihjb250ZXh0LmluU1NSLCBpc0NvbXBvbmVudCk7XHJcbiAgICBwdXNoKGhlbHBlcihjYWxsSGVscGVyKSArIGAoYCwgbm9kZSk7XHJcbiAgICBnZW5Ob2RlTGlzdChnZW5OdWxsYWJsZUFyZ3MoW3RhZywgcHJvcHMsIGNoaWxkcmVuLCBwYXRjaEZsYWcsIGR5bmFtaWNQcm9wc10pLCBjb250ZXh0KTtcclxuICAgIHB1c2goYClgKTtcclxuICAgIGlmIChpc0Jsb2NrKSB7XHJcbiAgICAgICAgcHVzaChgKWApO1xyXG4gICAgfVxyXG4gICAgaWYgKGRpcmVjdGl2ZXMpIHtcclxuICAgICAgICBwdXNoKGAsIGApO1xyXG4gICAgICAgIGdlbk5vZGUoZGlyZWN0aXZlcywgY29udGV4dCk7XHJcbiAgICAgICAgcHVzaChgKWApO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdlbk51bGxhYmxlQXJncyhhcmdzKSB7XHJcbiAgICBsZXQgaSA9IGFyZ3MubGVuZ3RoO1xyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICAgIGlmIChhcmdzW2ldICE9IG51bGwpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyZ3Muc2xpY2UoMCwgaSArIDEpLm1hcChhcmcgPT4gYXJnIHx8IGBudWxsYCk7XHJcbn1cclxuLy8gSmF2YVNjcmlwdFxyXG5mdW5jdGlvbiBnZW5DYWxsRXhwcmVzc2lvbihub2RlLCBjb250ZXh0KSB7XHJcbiAgICBjb25zdCB7IHB1c2gsIGhlbHBlciwgcHVyZSB9ID0gY29udGV4dDtcclxuICAgIGNvbnN0IGNhbGxlZSA9IGlzU3RyaW5nKG5vZGUuY2FsbGVlKSA/IG5vZGUuY2FsbGVlIDogaGVscGVyKG5vZGUuY2FsbGVlKTtcclxuICAgIGlmIChwdXJlKSB7XHJcbiAgICAgICAgcHVzaChQVVJFX0FOTk9UQVRJT04pO1xyXG4gICAgfVxyXG4gICAgcHVzaChjYWxsZWUgKyBgKGAsIG5vZGUpO1xyXG4gICAgZ2VuTm9kZUxpc3Qobm9kZS5hcmd1bWVudHMsIGNvbnRleHQpO1xyXG4gICAgcHVzaChgKWApO1xyXG59XHJcbmZ1bmN0aW9uIGdlbk9iamVjdEV4cHJlc3Npb24obm9kZSwgY29udGV4dCkge1xyXG4gICAgY29uc3QgeyBwdXNoLCBpbmRlbnQsIGRlaW5kZW50LCBuZXdsaW5lIH0gPSBjb250ZXh0O1xyXG4gICAgY29uc3QgeyBwcm9wZXJ0aWVzIH0gPSBub2RlO1xyXG4gICAgaWYgKCFwcm9wZXJ0aWVzLmxlbmd0aCkge1xyXG4gICAgICAgIHB1c2goYHt9YCwgbm9kZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbXVsdGlsaW5lcyA9IHByb3BlcnRpZXMubGVuZ3RoID4gMSB8fFxyXG4gICAgICAgICgoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSAmJlxyXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLnNvbWUocCA9PiBwLnZhbHVlLnR5cGUgIT09IDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovKSk7XHJcbiAgICBwdXNoKG11bHRpbGluZXMgPyBge2AgOiBgeyBgKTtcclxuICAgIG11bHRpbGluZXMgJiYgaW5kZW50KCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IHByb3BlcnRpZXNbaV07XHJcbiAgICAgICAgLy8ga2V5XHJcbiAgICAgICAgZ2VuRXhwcmVzc2lvbkFzUHJvcGVydHlLZXkoa2V5LCBjb250ZXh0KTtcclxuICAgICAgICBwdXNoKGA6IGApO1xyXG4gICAgICAgIC8vIHZhbHVlXHJcbiAgICAgICAgZ2VuTm9kZSh2YWx1ZSwgY29udGV4dCk7XHJcbiAgICAgICAgaWYgKGkgPCBwcm9wZXJ0aWVzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgLy8gd2lsbCBvbmx5IHJlYWNoIHRoaXMgaWYgaXQncyBtdWx0aWxpbmVzXHJcbiAgICAgICAgICAgIHB1c2goYCxgKTtcclxuICAgICAgICAgICAgbmV3bGluZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG11bHRpbGluZXMgJiYgZGVpbmRlbnQoKTtcclxuICAgIHB1c2gobXVsdGlsaW5lcyA/IGB9YCA6IGAgfWApO1xyXG59XHJcbmZ1bmN0aW9uIGdlbkFycmF5RXhwcmVzc2lvbihub2RlLCBjb250ZXh0KSB7XHJcbiAgICBnZW5Ob2RlTGlzdEFzQXJyYXkobm9kZS5lbGVtZW50cywgY29udGV4dCk7XHJcbn1cclxuZnVuY3Rpb24gZ2VuRnVuY3Rpb25FeHByZXNzaW9uKG5vZGUsIGNvbnRleHQpIHtcclxuICAgIGNvbnN0IHsgcHVzaCwgaW5kZW50LCBkZWluZGVudCB9ID0gY29udGV4dDtcclxuICAgIGNvbnN0IHsgcGFyYW1zLCByZXR1cm5zLCBib2R5LCBuZXdsaW5lLCBpc1Nsb3QgfSA9IG5vZGU7XHJcbiAgICBpZiAoaXNTbG90KSB7XHJcbiAgICAgICAgLy8gd3JhcCBzbG90IGZ1bmN0aW9ucyB3aXRoIG93bmVyIGNvbnRleHRcclxuICAgICAgICBwdXNoKGBfJHtoZWxwZXJOYW1lTWFwW1dJVEhfQ1RYXX0oYCk7XHJcbiAgICB9XHJcbiAgICBwdXNoKGAoYCwgbm9kZSk7XHJcbiAgICBpZiAoaXNBcnJheShwYXJhbXMpKSB7XHJcbiAgICAgICAgZ2VuTm9kZUxpc3QocGFyYW1zLCBjb250ZXh0KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHBhcmFtcykge1xyXG4gICAgICAgIGdlbk5vZGUocGFyYW1zLCBjb250ZXh0KTtcclxuICAgIH1cclxuICAgIHB1c2goYCkgPT4gYCk7XHJcbiAgICBpZiAobmV3bGluZSB8fCBib2R5KSB7XHJcbiAgICAgICAgcHVzaChge2ApO1xyXG4gICAgICAgIGluZGVudCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHJldHVybnMpIHtcclxuICAgICAgICBpZiAobmV3bGluZSkge1xyXG4gICAgICAgICAgICBwdXNoKGByZXR1cm4gYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0FycmF5KHJldHVybnMpKSB7XHJcbiAgICAgICAgICAgIGdlbk5vZGVMaXN0QXNBcnJheShyZXR1cm5zLCBjb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGdlbk5vZGUocmV0dXJucywgY29udGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoYm9keSkge1xyXG4gICAgICAgIGdlbk5vZGUoYm9keSwgY29udGV4dCk7XHJcbiAgICB9XHJcbiAgICBpZiAobmV3bGluZSB8fCBib2R5KSB7XHJcbiAgICAgICAgZGVpbmRlbnQoKTtcclxuICAgICAgICBwdXNoKGB9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNTbG90KSB7XHJcbiAgICAgICAgaWYgKG5vZGUuaXNOb25TY29wZWRTbG90KSB7XHJcbiAgICAgICAgICAgIHB1c2goYCwgdW5kZWZpbmVkLCB0cnVlYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHB1c2goYClgKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBnZW5Db25kaXRpb25hbEV4cHJlc3Npb24obm9kZSwgY29udGV4dCkge1xyXG4gICAgY29uc3QgeyB0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGUsIG5ld2xpbmU6IG5lZWROZXdsaW5lIH0gPSBub2RlO1xyXG4gICAgY29uc3QgeyBwdXNoLCBpbmRlbnQsIGRlaW5kZW50LCBuZXdsaW5lIH0gPSBjb250ZXh0O1xyXG4gICAgaWYgKHRlc3QudHlwZSA9PT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICBjb25zdCBuZWVkc1BhcmVucyA9ICFpc1NpbXBsZUlkZW50aWZpZXIodGVzdC5jb250ZW50KTtcclxuICAgICAgICBuZWVkc1BhcmVucyAmJiBwdXNoKGAoYCk7XHJcbiAgICAgICAgZ2VuRXhwcmVzc2lvbih0ZXN0LCBjb250ZXh0KTtcclxuICAgICAgICBuZWVkc1BhcmVucyAmJiBwdXNoKGApYCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBwdXNoKGAoYCk7XHJcbiAgICAgICAgZ2VuTm9kZSh0ZXN0LCBjb250ZXh0KTtcclxuICAgICAgICBwdXNoKGApYCk7XHJcbiAgICB9XHJcbiAgICBuZWVkTmV3bGluZSAmJiBpbmRlbnQoKTtcclxuICAgIGNvbnRleHQuaW5kZW50TGV2ZWwrKztcclxuICAgIG5lZWROZXdsaW5lIHx8IHB1c2goYCBgKTtcclxuICAgIHB1c2goYD8gYCk7XHJcbiAgICBnZW5Ob2RlKGNvbnNlcXVlbnQsIGNvbnRleHQpO1xyXG4gICAgY29udGV4dC5pbmRlbnRMZXZlbC0tO1xyXG4gICAgbmVlZE5ld2xpbmUgJiYgbmV3bGluZSgpO1xyXG4gICAgbmVlZE5ld2xpbmUgfHwgcHVzaChgIGApO1xyXG4gICAgcHVzaChgOiBgKTtcclxuICAgIGNvbnN0IGlzTmVzdGVkID0gYWx0ZXJuYXRlLnR5cGUgPT09IDE5IC8qIE5vZGVUeXBlcy5KU19DT05ESVRJT05BTF9FWFBSRVNTSU9OICovO1xyXG4gICAgaWYgKCFpc05lc3RlZCkge1xyXG4gICAgICAgIGNvbnRleHQuaW5kZW50TGV2ZWwrKztcclxuICAgIH1cclxuICAgIGdlbk5vZGUoYWx0ZXJuYXRlLCBjb250ZXh0KTtcclxuICAgIGlmICghaXNOZXN0ZWQpIHtcclxuICAgICAgICBjb250ZXh0LmluZGVudExldmVsLS07XHJcbiAgICB9XHJcbiAgICBuZWVkTmV3bGluZSAmJiBkZWluZGVudCh0cnVlIC8qIHdpdGhvdXQgbmV3bGluZSAqLyk7XHJcbn1cclxuZnVuY3Rpb24gZ2VuQ2FjaGVFeHByZXNzaW9uKG5vZGUsIGNvbnRleHQpIHtcclxuICAgIGNvbnN0IHsgcHVzaCwgaGVscGVyLCBpbmRlbnQsIGRlaW5kZW50LCBuZXdsaW5lIH0gPSBjb250ZXh0O1xyXG4gICAgcHVzaChgX2NhY2hlWyR7bm9kZS5pbmRleH1dIHx8IChgKTtcclxuICAgIGlmIChub2RlLmlzVk5vZGUpIHtcclxuICAgICAgICBpbmRlbnQoKTtcclxuICAgICAgICBwdXNoKGAke2hlbHBlcihTRVRfQkxPQ0tfVFJBQ0tJTkcpfSgtMSksYCk7XHJcbiAgICAgICAgbmV3bGluZSgpO1xyXG4gICAgfVxyXG4gICAgcHVzaChgX2NhY2hlWyR7bm9kZS5pbmRleH1dID0gYCk7XHJcbiAgICBnZW5Ob2RlKG5vZGUudmFsdWUsIGNvbnRleHQpO1xyXG4gICAgaWYgKG5vZGUuaXNWTm9kZSkge1xyXG4gICAgICAgIHB1c2goYCxgKTtcclxuICAgICAgICBuZXdsaW5lKCk7XHJcbiAgICAgICAgcHVzaChgJHtoZWxwZXIoU0VUX0JMT0NLX1RSQUNLSU5HKX0oMSksYCk7XHJcbiAgICAgICAgbmV3bGluZSgpO1xyXG4gICAgICAgIHB1c2goYF9jYWNoZVske25vZGUuaW5kZXh9XWApO1xyXG4gICAgICAgIGRlaW5kZW50KCk7XHJcbiAgICB9XHJcbiAgICBwdXNoKGApYCk7XHJcbn1cblxuZnVuY3Rpb24gd2Fsa0lkZW50aWZpZXJzKHJvb3QsIG9uSWRlbnRpZmllciwgaW5jbHVkZUFsbCA9IGZhbHNlLCBwYXJlbnRTdGFjayA9IFtdLCBrbm93bklkcyA9IE9iamVjdC5jcmVhdGUobnVsbCkpIHtcclxuICAgIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gaXNSZWZlcmVuY2VkSWRlbnRpZmllcihpZCwgcGFyZW50LCBwYXJlbnRTdGFjaykge1xyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBpc0luRGVzdHJ1Y3R1cmVBc3NpZ25tZW50KHBhcmVudCwgcGFyZW50U3RhY2spIHtcclxuICAgIGlmIChwYXJlbnQgJiZcclxuICAgICAgICAocGFyZW50LnR5cGUgPT09ICdPYmplY3RQcm9wZXJ0eScgfHwgcGFyZW50LnR5cGUgPT09ICdBcnJheVBhdHRlcm4nKSkge1xyXG4gICAgICAgIGxldCBpID0gcGFyZW50U3RhY2subGVuZ3RoO1xyXG4gICAgICAgIHdoaWxlIChpLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgcCA9IHBhcmVudFN0YWNrW2ldO1xyXG4gICAgICAgICAgICBpZiAocC50eXBlID09PSAnQXNzaWdubWVudEV4cHJlc3Npb24nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChwLnR5cGUgIT09ICdPYmplY3RQcm9wZXJ0eScgJiYgIXAudHlwZS5lbmRzV2l0aCgnUGF0dGVybicpKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiB3YWxrRnVuY3Rpb25QYXJhbXMobm9kZSwgb25JZGVudCkge1xyXG4gICAgZm9yIChjb25zdCBwIG9mIG5vZGUucGFyYW1zKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBpZCBvZiBleHRyYWN0SWRlbnRpZmllcnMocCkpIHtcclxuICAgICAgICAgICAgb25JZGVudChpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHdhbGtCbG9ja0RlY2xhcmF0aW9ucyhibG9jaywgb25JZGVudCkge1xyXG4gICAgZm9yIChjb25zdCBzdG10IG9mIGJsb2NrLmJvZHkpIHtcclxuICAgICAgICBpZiAoc3RtdC50eXBlID09PSAnVmFyaWFibGVEZWNsYXJhdGlvbicpIHtcclxuICAgICAgICAgICAgaWYgKHN0bXQuZGVjbGFyZSlcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRlY2wgb2Ygc3RtdC5kZWNsYXJhdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgZXh0cmFjdElkZW50aWZpZXJzKGRlY2wuaWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25JZGVudChpZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoc3RtdC50eXBlID09PSAnRnVuY3Rpb25EZWNsYXJhdGlvbicgfHxcclxuICAgICAgICAgICAgc3RtdC50eXBlID09PSAnQ2xhc3NEZWNsYXJhdGlvbicpIHtcclxuICAgICAgICAgICAgaWYgKHN0bXQuZGVjbGFyZSB8fCAhc3RtdC5pZClcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBvbklkZW50KHN0bXQuaWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBleHRyYWN0SWRlbnRpZmllcnMocGFyYW0sIG5vZGVzID0gW10pIHtcclxuICAgIHN3aXRjaCAocGFyYW0udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0lkZW50aWZpZXInOlxyXG4gICAgICAgICAgICBub2Rlcy5wdXNoKHBhcmFtKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnTWVtYmVyRXhwcmVzc2lvbic6XHJcbiAgICAgICAgICAgIGxldCBvYmplY3QgPSBwYXJhbTtcclxuICAgICAgICAgICAgd2hpbGUgKG9iamVjdC50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicpIHtcclxuICAgICAgICAgICAgICAgIG9iamVjdCA9IG9iamVjdC5vYmplY3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbm9kZXMucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdPYmplY3RQYXR0ZXJuJzpcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHBhcmFtLnByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChwcm9wLnR5cGUgPT09ICdSZXN0RWxlbWVudCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBleHRyYWN0SWRlbnRpZmllcnMocHJvcC5hcmd1bWVudCwgbm9kZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFjdElkZW50aWZpZXJzKHByb3AudmFsdWUsIG5vZGVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdBcnJheVBhdHRlcm4nOlxyXG4gICAgICAgICAgICBwYXJhbS5lbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpXHJcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFjdElkZW50aWZpZXJzKGVsZW1lbnQsIG5vZGVzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ1Jlc3RFbGVtZW50JzpcclxuICAgICAgICAgICAgZXh0cmFjdElkZW50aWZpZXJzKHBhcmFtLmFyZ3VtZW50LCBub2Rlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0Fzc2lnbm1lbnRQYXR0ZXJuJzpcclxuICAgICAgICAgICAgZXh0cmFjdElkZW50aWZpZXJzKHBhcmFtLmxlZnQsIG5vZGVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbm9kZXM7XHJcbn1cclxuY29uc3QgaXNGdW5jdGlvblR5cGUgPSAobm9kZSkgPT4ge1xyXG4gICAgcmV0dXJuIC9GdW5jdGlvbig/OkV4cHJlc3Npb258RGVjbGFyYXRpb24pJHxNZXRob2QkLy50ZXN0KG5vZGUudHlwZSk7XHJcbn07XHJcbmNvbnN0IGlzU3RhdGljUHJvcGVydHkgPSAobm9kZSkgPT4gbm9kZSAmJlxyXG4gICAgKG5vZGUudHlwZSA9PT0gJ09iamVjdFByb3BlcnR5JyB8fCBub2RlLnR5cGUgPT09ICdPYmplY3RNZXRob2QnKSAmJlxyXG4gICAgIW5vZGUuY29tcHV0ZWQ7XHJcbmNvbnN0IGlzU3RhdGljUHJvcGVydHlLZXkgPSAobm9kZSwgcGFyZW50KSA9PiBpc1N0YXRpY1Byb3BlcnR5KHBhcmVudCkgJiYgcGFyZW50LmtleSA9PT0gbm9kZTtcblxuLy8gdGhlc2Uga2V5d29yZHMgc2hvdWxkIG5vdCBhcHBlYXIgaW5zaWRlIGV4cHJlc3Npb25zLCBidXQgb3BlcmF0b3JzIGxpa2VcclxuLy8gdHlwZW9mLCBpbnN0YW5jZW9mIGFuZCBpbiBhcmUgYWxsb3dlZFxyXG5jb25zdCBwcm9oaWJpdGVkS2V5d29yZFJFID0gbmV3IFJlZ0V4cCgnXFxcXGInICtcclxuICAgICgnZG8saWYsZm9yLGxldCxuZXcsdHJ5LHZhcixjYXNlLGVsc2Usd2l0aCxhd2FpdCxicmVhayxjYXRjaCxjbGFzcyxjb25zdCwnICtcclxuICAgICAgICAnc3VwZXIsdGhyb3csd2hpbGUseWllbGQsZGVsZXRlLGV4cG9ydCxpbXBvcnQscmV0dXJuLHN3aXRjaCxkZWZhdWx0LCcgK1xyXG4gICAgICAgICdleHRlbmRzLGZpbmFsbHksY29udGludWUsZGVidWdnZXIsZnVuY3Rpb24sYXJndW1lbnRzLHR5cGVvZix2b2lkJylcclxuICAgICAgICAuc3BsaXQoJywnKVxyXG4gICAgICAgIC5qb2luKCdcXFxcYnxcXFxcYicpICtcclxuICAgICdcXFxcYicpO1xyXG4vLyBzdHJpcCBzdHJpbmdzIGluIGV4cHJlc3Npb25zXHJcbmNvbnN0IHN0cmlwU3RyaW5nUkUgPSAvJyg/OlteJ1xcXFxdfFxcXFwuKSonfFwiKD86W15cIlxcXFxdfFxcXFwuKSpcInxgKD86W15gXFxcXF18XFxcXC4pKlxcJFxce3xcXH0oPzpbXmBcXFxcXXxcXFxcLikqYHxgKD86W15gXFxcXF18XFxcXC4pKmAvZztcclxuLyoqXHJcbiAqIFZhbGlkYXRlIGEgbm9uLXByZWZpeGVkIGV4cHJlc3Npb24uXHJcbiAqIFRoaXMgaXMgb25seSBjYWxsZWQgd2hlbiB1c2luZyB0aGUgaW4tYnJvd3NlciBydW50aW1lIGNvbXBpbGVyIHNpbmNlIGl0XHJcbiAqIGRvZXNuJ3QgcHJlZml4IGV4cHJlc3Npb25zLlxyXG4gKi9cclxuZnVuY3Rpb24gdmFsaWRhdGVCcm93c2VyRXhwcmVzc2lvbihub2RlLCBjb250ZXh0LCBhc1BhcmFtcyA9IGZhbHNlLCBhc1Jhd1N0YXRlbWVudHMgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgZXhwID0gbm9kZS5jb250ZW50O1xyXG4gICAgLy8gZW1wdHkgZXhwcmVzc2lvbnMgYXJlIHZhbGlkYXRlZCBwZXItZGlyZWN0aXZlIHNpbmNlIHNvbWUgZGlyZWN0aXZlc1xyXG4gICAgLy8gZG8gYWxsb3cgZW1wdHkgZXhwcmVzc2lvbnMuXHJcbiAgICBpZiAoIWV4cC50cmltKCkpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICAgIG5ldyBGdW5jdGlvbihhc1Jhd1N0YXRlbWVudHNcclxuICAgICAgICAgICAgPyBgICR7ZXhwfSBgXHJcbiAgICAgICAgICAgIDogYHJldHVybiAke2FzUGFyYW1zID8gYCgke2V4cH0pID0+IHt9YCA6IGAoJHtleHB9KWB9YCk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIGxldCBtZXNzYWdlID0gZS5tZXNzYWdlO1xyXG4gICAgICAgIGNvbnN0IGtleXdvcmRNYXRjaCA9IGV4cFxyXG4gICAgICAgICAgICAucmVwbGFjZShzdHJpcFN0cmluZ1JFLCAnJylcclxuICAgICAgICAgICAgLm1hdGNoKHByb2hpYml0ZWRLZXl3b3JkUkUpO1xyXG4gICAgICAgIGlmIChrZXl3b3JkTWF0Y2gpIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9IGBhdm9pZCB1c2luZyBKYXZhU2NyaXB0IGtleXdvcmQgYXMgcHJvcGVydHkgbmFtZTogXCIke2tleXdvcmRNYXRjaFswXX1cImA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDQ0IC8qIEVycm9yQ29kZXMuWF9JTlZBTElEX0VYUFJFU1NJT04gKi8sIG5vZGUubG9jLCB1bmRlZmluZWQsIG1lc3NhZ2UpKTtcclxuICAgIH1cclxufVxuXG5jb25zdCB0cmFuc2Zvcm1FeHByZXNzaW9uID0gKG5vZGUsIGNvbnRleHQpID0+IHtcclxuICAgIGlmIChub2RlLnR5cGUgPT09IDUgLyogTm9kZVR5cGVzLklOVEVSUE9MQVRJT04gKi8pIHtcclxuICAgICAgICBub2RlLmNvbnRlbnQgPSBwcm9jZXNzRXhwcmVzc2lvbihub2RlLmNvbnRlbnQsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobm9kZS50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovKSB7XHJcbiAgICAgICAgLy8gaGFuZGxlIGRpcmVjdGl2ZXMgb24gZWxlbWVudFxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5wcm9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkaXIgPSBub2RlLnByb3BzW2ldO1xyXG4gICAgICAgICAgICAvLyBkbyBub3QgcHJvY2VzcyBmb3Igdi1vbiAmIHYtZm9yIHNpbmNlIHRoZXkgYXJlIHNwZWNpYWwgaGFuZGxlZFxyXG4gICAgICAgICAgICBpZiAoZGlyLnR5cGUgPT09IDcgLyogTm9kZVR5cGVzLkRJUkVDVElWRSAqLyAmJiBkaXIubmFtZSAhPT0gJ2ZvcicpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4cCA9IGRpci5leHA7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhcmcgPSBkaXIuYXJnO1xyXG4gICAgICAgICAgICAgICAgLy8gZG8gbm90IHByb2Nlc3MgZXhwIGlmIHRoaXMgaXMgdi1vbjphcmcgLSB3ZSBuZWVkIHNwZWNpYWwgaGFuZGxpbmdcclxuICAgICAgICAgICAgICAgIC8vIGZvciB3cmFwcGluZyBpbmxpbmUgc3RhdGVtZW50cy5cclxuICAgICAgICAgICAgICAgIGlmIChleHAgJiZcclxuICAgICAgICAgICAgICAgICAgICBleHAudHlwZSA9PT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8gJiZcclxuICAgICAgICAgICAgICAgICAgICAhKGRpci5uYW1lID09PSAnb24nICYmIGFyZykpIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXIuZXhwID0gcHJvY2Vzc0V4cHJlc3Npb24oZXhwLCBjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgICAgICAvLyBzbG90IGFyZ3MgbXVzdCBiZSBwcm9jZXNzZWQgYXMgZnVuY3Rpb24gcGFyYW1zXHJcbiAgICAgICAgICAgICAgICAgICAgZGlyLm5hbWUgPT09ICdzbG90Jyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoYXJnICYmIGFyZy50eXBlID09PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLyAmJiAhYXJnLmlzU3RhdGljKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlyLmFyZyA9IHByb2Nlc3NFeHByZXNzaW9uKGFyZywgY29udGV4dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbi8vIEltcG9ydGFudDogc2luY2UgdGhpcyBmdW5jdGlvbiB1c2VzIE5vZGUuanMgb25seSBkZXBlbmRlbmNpZXMsIGl0IHNob3VsZFxyXG4vLyBhbHdheXMgYmUgdXNlZCB3aXRoIGEgbGVhZGluZyAhdHJ1ZSBjaGVjayBzbyB0aGF0IGl0IGNhbiBiZVxyXG4vLyB0cmVlLXNoYWtlbiBmcm9tIHRoZSBicm93c2VyIGJ1aWxkLlxyXG5mdW5jdGlvbiBwcm9jZXNzRXhwcmVzc2lvbihub2RlLCBjb250ZXh0LCBcclxuLy8gc29tZSBleHByZXNzaW9ucyBsaWtlIHYtc2xvdCBwcm9wcyAmIHYtZm9yIGFsaWFzZXMgc2hvdWxkIGJlIHBhcnNlZCBhc1xyXG4vLyBmdW5jdGlvbiBwYXJhbXNcclxuYXNQYXJhbXMgPSBmYWxzZSwgXHJcbi8vIHYtb24gaGFuZGxlciB2YWx1ZXMgbWF5IGNvbnRhaW4gbXVsdGlwbGUgc3RhdGVtZW50c1xyXG5hc1Jhd1N0YXRlbWVudHMgPSBmYWxzZSwgbG9jYWxWYXJzID0gT2JqZWN0LmNyZWF0ZShjb250ZXh0LmlkZW50aWZpZXJzKSkge1xyXG4gICAge1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgLy8gc2ltcGxlIGluLWJyb3dzZXIgdmFsaWRhdGlvbiAoc2FtZSBsb2dpYyBpbiAyLngpXHJcbiAgICAgICAgICAgIHZhbGlkYXRlQnJvd3NlckV4cHJlc3Npb24obm9kZSwgY29udGV4dCwgYXNQYXJhbXMsIGFzUmF3U3RhdGVtZW50cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfVxyXG59XG5cbmNvbnN0IHRyYW5zZm9ybUlmID0gY3JlYXRlU3RydWN0dXJhbERpcmVjdGl2ZVRyYW5zZm9ybSgvXihpZnxlbHNlfGVsc2UtaWYpJC8sIChub2RlLCBkaXIsIGNvbnRleHQpID0+IHtcclxuICAgIHJldHVybiBwcm9jZXNzSWYobm9kZSwgZGlyLCBjb250ZXh0LCAoaWZOb2RlLCBicmFuY2gsIGlzUm9vdCkgPT4ge1xyXG4gICAgICAgIC8vICMxNTg3OiBXZSBuZWVkIHRvIGR5bmFtaWNhbGx5IGluY3JlbWVudCB0aGUga2V5IGJhc2VkIG9uIHRoZSBjdXJyZW50XHJcbiAgICAgICAgLy8gbm9kZSdzIHNpYmxpbmcgbm9kZXMsIHNpbmNlIGNoYWluZWQgdi1pZi9lbHNlIGJyYW5jaGVzIGFyZVxyXG4gICAgICAgIC8vIHJlbmRlcmVkIGF0IHRoZSBzYW1lIGRlcHRoXHJcbiAgICAgICAgY29uc3Qgc2libGluZ3MgPSBjb250ZXh0LnBhcmVudC5jaGlsZHJlbjtcclxuICAgICAgICBsZXQgaSA9IHNpYmxpbmdzLmluZGV4T2YoaWZOb2RlKTtcclxuICAgICAgICBsZXQga2V5ID0gMDtcclxuICAgICAgICB3aGlsZSAoaS0tID49IDApIHtcclxuICAgICAgICAgICAgY29uc3Qgc2libGluZyA9IHNpYmxpbmdzW2ldO1xyXG4gICAgICAgICAgICBpZiAoc2libGluZyAmJiBzaWJsaW5nLnR5cGUgPT09IDkgLyogTm9kZVR5cGVzLklGICovKSB7XHJcbiAgICAgICAgICAgICAgICBrZXkgKz0gc2libGluZy5icmFuY2hlcy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRXhpdCBjYWxsYmFjay4gQ29tcGxldGUgdGhlIGNvZGVnZW5Ob2RlIHdoZW4gYWxsIGNoaWxkcmVuIGhhdmUgYmVlblxyXG4gICAgICAgIC8vIHRyYW5zZm9ybWVkLlxyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1Jvb3QpIHtcclxuICAgICAgICAgICAgICAgIGlmTm9kZS5jb2RlZ2VuTm9kZSA9IGNyZWF0ZUNvZGVnZW5Ob2RlRm9yQnJhbmNoKGJyYW5jaCwga2V5LCBjb250ZXh0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIGF0dGFjaCB0aGlzIGJyYW5jaCdzIGNvZGVnZW4gbm9kZSB0byB0aGUgdi1pZiByb290LlxyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Q29uZGl0aW9uID0gZ2V0UGFyZW50Q29uZGl0aW9uKGlmTm9kZS5jb2RlZ2VuTm9kZSk7XHJcbiAgICAgICAgICAgICAgICBwYXJlbnRDb25kaXRpb24uYWx0ZXJuYXRlID0gY3JlYXRlQ29kZWdlbk5vZGVGb3JCcmFuY2goYnJhbmNoLCBrZXkgKyBpZk5vZGUuYnJhbmNoZXMubGVuZ3RoIC0gMSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfSk7XHJcbn0pO1xyXG4vLyB0YXJnZXQtYWdub3N0aWMgdHJhbnNmb3JtIHVzZWQgZm9yIGJvdGggQ2xpZW50IGFuZCBTU1JcclxuZnVuY3Rpb24gcHJvY2Vzc0lmKG5vZGUsIGRpciwgY29udGV4dCwgcHJvY2Vzc0NvZGVnZW4pIHtcclxuICAgIGlmIChkaXIubmFtZSAhPT0gJ2Vsc2UnICYmXHJcbiAgICAgICAgKCFkaXIuZXhwIHx8ICFkaXIuZXhwLmNvbnRlbnQudHJpbSgpKSkge1xyXG4gICAgICAgIGNvbnN0IGxvYyA9IGRpci5leHAgPyBkaXIuZXhwLmxvYyA6IG5vZGUubG9jO1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDI4IC8qIEVycm9yQ29kZXMuWF9WX0lGX05PX0VYUFJFU1NJT04gKi8sIGRpci5sb2MpKTtcclxuICAgICAgICBkaXIuZXhwID0gY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgdHJ1ZWAsIGZhbHNlLCBsb2MpO1xyXG4gICAgfVxyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiB0cnVlICYmIGRpci5leHApIHtcclxuICAgICAgICB2YWxpZGF0ZUJyb3dzZXJFeHByZXNzaW9uKGRpci5leHAsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgaWYgKGRpci5uYW1lID09PSAnaWYnKSB7XHJcbiAgICAgICAgY29uc3QgYnJhbmNoID0gY3JlYXRlSWZCcmFuY2gobm9kZSwgZGlyKTtcclxuICAgICAgICBjb25zdCBpZk5vZGUgPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IDkgLyogTm9kZVR5cGVzLklGICovLFxyXG4gICAgICAgICAgICBsb2M6IG5vZGUubG9jLFxyXG4gICAgICAgICAgICBicmFuY2hlczogW2JyYW5jaF1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnRleHQucmVwbGFjZU5vZGUoaWZOb2RlKTtcclxuICAgICAgICBpZiAocHJvY2Vzc0NvZGVnZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NDb2RlZ2VuKGlmTm9kZSwgYnJhbmNoLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICAvLyBsb2NhdGUgdGhlIGFkamFjZW50IHYtaWZcclxuICAgICAgICBjb25zdCBzaWJsaW5ncyA9IGNvbnRleHQucGFyZW50LmNoaWxkcmVuO1xyXG4gICAgICAgIGNvbnN0IGNvbW1lbnRzID0gW107XHJcbiAgICAgICAgbGV0IGkgPSBzaWJsaW5ncy5pbmRleE9mKG5vZGUpO1xyXG4gICAgICAgIHdoaWxlIChpLS0gPj0gLTEpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2libGluZyA9IHNpYmxpbmdzW2ldO1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIHNpYmxpbmcgJiYgc2libGluZy50eXBlID09PSAzIC8qIE5vZGVUeXBlcy5DT01NRU5UICovKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlbW92ZU5vZGUoc2libGluZyk7XHJcbiAgICAgICAgICAgICAgICBjb21tZW50cy51bnNoaWZ0KHNpYmxpbmcpO1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHNpYmxpbmcgJiZcclxuICAgICAgICAgICAgICAgIHNpYmxpbmcudHlwZSA9PT0gMiAvKiBOb2RlVHlwZXMuVEVYVCAqLyAmJlxyXG4gICAgICAgICAgICAgICAgIXNpYmxpbmcuY29udGVudC50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlbW92ZU5vZGUoc2libGluZyk7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc2libGluZyAmJiBzaWJsaW5nLnR5cGUgPT09IDkgLyogTm9kZVR5cGVzLklGICovKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB2LWVsc2Ugd2FzIGZvbGxvd2VkIGJ5IHYtZWxzZS1pZlxyXG4gICAgICAgICAgICAgICAgaWYgKGRpci5uYW1lID09PSAnZWxzZS1pZicgJiZcclxuICAgICAgICAgICAgICAgICAgICBzaWJsaW5nLmJyYW5jaGVzW3NpYmxpbmcuYnJhbmNoZXMubGVuZ3RoIC0gMV0uY29uZGl0aW9uID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlQ29tcGlsZXJFcnJvcigzMCAvKiBFcnJvckNvZGVzLlhfVl9FTFNFX05PX0FESkFDRU5UX0lGICovLCBub2RlLmxvYykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gbW92ZSB0aGUgbm9kZSB0byB0aGUgaWYgbm9kZSdzIGJyYW5jaGVzXHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlbW92ZU5vZGUoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJyYW5jaCA9IGNyZWF0ZUlmQnJhbmNoKG5vZGUsIGRpcik7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWVudHMubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gIzM2MTkgaWdub3JlIGNvbW1lbnRzIGlmIHRoZSB2LWlmIGlzIGRpcmVjdCBjaGlsZCBvZiA8dHJhbnNpdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAhKGNvbnRleHQucGFyZW50ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQucGFyZW50LnR5cGUgPT09IDEgLyogTm9kZVR5cGVzLkVMRU1FTlQgKi8gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNCdWlsdEluVHlwZShjb250ZXh0LnBhcmVudC50YWcsICd0cmFuc2l0aW9uJykpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJhbmNoLmNoaWxkcmVuID0gWy4uLmNvbW1lbnRzLCAuLi5icmFuY2guY2hpbGRyZW5dO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdXNlciBpcyBmb3JjaW5nIHNhbWUga2V5IG9uIGRpZmZlcmVudCBicmFuY2hlc1xyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCAhdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGJyYW5jaC51c2VyS2V5O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2libGluZy5icmFuY2hlcy5mb3JFYWNoKCh7IHVzZXJLZXkgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzU2FtZUtleSh1c2VyS2V5LCBrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZUNvbXBpbGVyRXJyb3IoMjkgLyogRXJyb3JDb2Rlcy5YX1ZfSUZfU0FNRV9LRVkgKi8sIGJyYW5jaC51c2VyS2V5LmxvYykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzaWJsaW5nLmJyYW5jaGVzLnB1c2goYnJhbmNoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9uRXhpdCA9IHByb2Nlc3NDb2RlZ2VuICYmIHByb2Nlc3NDb2RlZ2VuKHNpYmxpbmcsIGJyYW5jaCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgLy8gc2luY2UgdGhlIGJyYW5jaCB3YXMgcmVtb3ZlZCwgaXQgd2lsbCBub3QgYmUgdHJhdmVyc2VkLlxyXG4gICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRvIHRyYXZlcnNlIGhlcmUuXHJcbiAgICAgICAgICAgICAgICB0cmF2ZXJzZU5vZGUoYnJhbmNoLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgIC8vIGNhbGwgb24gZXhpdFxyXG4gICAgICAgICAgICAgICAgaWYgKG9uRXhpdClcclxuICAgICAgICAgICAgICAgICAgICBvbkV4aXQoKTtcclxuICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0byByZXNldCBjdXJyZW50Tm9kZSBhZnRlciB0cmF2ZXJzYWwgdG8gaW5kaWNhdGUgdGhpc1xyXG4gICAgICAgICAgICAgICAgLy8gbm9kZSBoYXMgYmVlbiByZW1vdmVkLlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5jdXJyZW50Tm9kZSA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlQ29tcGlsZXJFcnJvcigzMCAvKiBFcnJvckNvZGVzLlhfVl9FTFNFX05PX0FESkFDRU5UX0lGICovLCBub2RlLmxvYykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBjcmVhdGVJZkJyYW5jaChub2RlLCBkaXIpIHtcclxuICAgIGNvbnN0IGlzVGVtcGxhdGVJZiA9IG5vZGUudGFnVHlwZSA9PT0gMyAvKiBFbGVtZW50VHlwZXMuVEVNUExBVEUgKi87XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IDEwIC8qIE5vZGVUeXBlcy5JRl9CUkFOQ0ggKi8sXHJcbiAgICAgICAgbG9jOiBub2RlLmxvYyxcclxuICAgICAgICBjb25kaXRpb246IGRpci5uYW1lID09PSAnZWxzZScgPyB1bmRlZmluZWQgOiBkaXIuZXhwLFxyXG4gICAgICAgIGNoaWxkcmVuOiBpc1RlbXBsYXRlSWYgJiYgIWZpbmREaXIobm9kZSwgJ2ZvcicpID8gbm9kZS5jaGlsZHJlbiA6IFtub2RlXSxcclxuICAgICAgICB1c2VyS2V5OiBmaW5kUHJvcChub2RlLCBga2V5YCksXHJcbiAgICAgICAgaXNUZW1wbGF0ZUlmXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUNvZGVnZW5Ob2RlRm9yQnJhbmNoKGJyYW5jaCwga2V5SW5kZXgsIGNvbnRleHQpIHtcclxuICAgIGlmIChicmFuY2guY29uZGl0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbmRpdGlvbmFsRXhwcmVzc2lvbihicmFuY2guY29uZGl0aW9uLCBjcmVhdGVDaGlsZHJlbkNvZGVnZW5Ob2RlKGJyYW5jaCwga2V5SW5kZXgsIGNvbnRleHQpLCBcclxuICAgICAgICAvLyBtYWtlIHN1cmUgdG8gcGFzcyBpbiBhc0Jsb2NrOiB0cnVlIHNvIHRoYXQgdGhlIGNvbW1lbnQgbm9kZSBjYWxsXHJcbiAgICAgICAgLy8gY2xvc2VzIHRoZSBjdXJyZW50IGJsb2NrLlxyXG4gICAgICAgIGNyZWF0ZUNhbGxFeHByZXNzaW9uKGNvbnRleHQuaGVscGVyKENSRUFURV9DT01NRU5UKSwgW1xyXG4gICAgICAgICAgICAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyAnXCJ2LWlmXCInIDogJ1wiXCInLFxyXG4gICAgICAgICAgICAndHJ1ZSdcclxuICAgICAgICBdKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gY3JlYXRlQ2hpbGRyZW5Db2RlZ2VuTm9kZShicmFuY2gsIGtleUluZGV4LCBjb250ZXh0KTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBjcmVhdGVDaGlsZHJlbkNvZGVnZW5Ob2RlKGJyYW5jaCwga2V5SW5kZXgsIGNvbnRleHQpIHtcclxuICAgIGNvbnN0IHsgaGVscGVyIH0gPSBjb250ZXh0O1xyXG4gICAgY29uc3Qga2V5UHJvcGVydHkgPSBjcmVhdGVPYmplY3RQcm9wZXJ0eShga2V5YCwgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgJHtrZXlJbmRleH1gLCBmYWxzZSwgbG9jU3R1YiwgMiAvKiBDb25zdGFudFR5cGVzLkNBTl9IT0lTVCAqLykpO1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gYnJhbmNoO1xyXG4gICAgY29uc3QgZmlyc3RDaGlsZCA9IGNoaWxkcmVuWzBdO1xyXG4gICAgY29uc3QgbmVlZEZyYWdtZW50V3JhcHBlciA9IGNoaWxkcmVuLmxlbmd0aCAhPT0gMSB8fCBmaXJzdENoaWxkLnR5cGUgIT09IDEgLyogTm9kZVR5cGVzLkVMRU1FTlQgKi87XHJcbiAgICBpZiAobmVlZEZyYWdtZW50V3JhcHBlcikge1xyXG4gICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgZmlyc3RDaGlsZC50eXBlID09PSAxMSAvKiBOb2RlVHlwZXMuRk9SICovKSB7XHJcbiAgICAgICAgICAgIC8vIG9wdGltaXplIGF3YXkgbmVzdGVkIGZyYWdtZW50cyB3aGVuIGNoaWxkIGlzIGEgRm9yTm9kZVxyXG4gICAgICAgICAgICBjb25zdCB2bm9kZUNhbGwgPSBmaXJzdENoaWxkLmNvZGVnZW5Ob2RlO1xyXG4gICAgICAgICAgICBpbmplY3RQcm9wKHZub2RlQ2FsbCwga2V5UHJvcGVydHksIGNvbnRleHQpO1xyXG4gICAgICAgICAgICByZXR1cm4gdm5vZGVDYWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHBhdGNoRmxhZyA9IDY0IC8qIFBhdGNoRmxhZ3MuU1RBQkxFX0ZSQUdNRU5UICovO1xyXG4gICAgICAgICAgICBsZXQgcGF0Y2hGbGFnVGV4dCA9IFBhdGNoRmxhZ05hbWVzWzY0IC8qIFBhdGNoRmxhZ3MuU1RBQkxFX0ZSQUdNRU5UICovXTtcclxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGZyYWdtZW50IGFjdHVhbGx5IGNvbnRhaW5zIGEgc2luZ2xlIHZhbGlkIGNoaWxkIHdpdGhcclxuICAgICAgICAgICAgLy8gdGhlIHJlc3QgYmVpbmcgY29tbWVudHNcclxuICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICAgICAgIWJyYW5jaC5pc1RlbXBsYXRlSWYgJiZcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZpbHRlcihjID0+IGMudHlwZSAhPT0gMyAvKiBOb2RlVHlwZXMuQ09NTUVOVCAqLykubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICBwYXRjaEZsYWcgfD0gMjA0OCAvKiBQYXRjaEZsYWdzLkRFVl9ST09UX0ZSQUdNRU5UICovO1xyXG4gICAgICAgICAgICAgICAgcGF0Y2hGbGFnVGV4dCArPSBgLCAke1BhdGNoRmxhZ05hbWVzWzIwNDggLyogUGF0Y2hGbGFncy5ERVZfUk9PVF9GUkFHTUVOVCAqL119YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlVk5vZGVDYWxsKGNvbnRleHQsIGhlbHBlcihGUkFHTUVOVCksIGNyZWF0ZU9iamVjdEV4cHJlc3Npb24oW2tleVByb3BlcnR5XSksIGNoaWxkcmVuLCBwYXRjaEZsYWcgKyAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYCAvKiAke3BhdGNoRmxhZ1RleHR9ICovYCA6IGBgKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUsIGZhbHNlLCBmYWxzZSAvKiBpc0NvbXBvbmVudCAqLywgYnJhbmNoLmxvYyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcmV0ID0gZmlyc3RDaGlsZC5jb2RlZ2VuTm9kZTtcclxuICAgICAgICBjb25zdCB2bm9kZUNhbGwgPSBnZXRNZW1vZWRWTm9kZUNhbGwocmV0KTtcclxuICAgICAgICAvLyBDaGFuZ2UgY3JlYXRlVk5vZGUgdG8gY3JlYXRlQmxvY2suXHJcbiAgICAgICAgaWYgKHZub2RlQ2FsbC50eXBlID09PSAxMyAvKiBOb2RlVHlwZXMuVk5PREVfQ0FMTCAqLykge1xyXG4gICAgICAgICAgICBtYWtlQmxvY2sodm5vZGVDYWxsLCBjb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaW5qZWN0IGJyYW5jaCBrZXlcclxuICAgICAgICBpbmplY3RQcm9wKHZub2RlQ2FsbCwga2V5UHJvcGVydHksIGNvbnRleHQpO1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gaXNTYW1lS2V5KGEsIGIpIHtcclxuICAgIGlmICghYSB8fCBhLnR5cGUgIT09IGIudHlwZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChhLnR5cGUgPT09IDYgLyogTm9kZVR5cGVzLkFUVFJJQlVURSAqLykge1xyXG4gICAgICAgIGlmIChhLnZhbHVlLmNvbnRlbnQgIT09IGIudmFsdWUuY29udGVudCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gZGlyZWN0aXZlXHJcbiAgICAgICAgY29uc3QgZXhwID0gYS5leHA7XHJcbiAgICAgICAgY29uc3QgYnJhbmNoRXhwID0gYi5leHA7XHJcbiAgICAgICAgaWYgKGV4cC50eXBlICE9PSBicmFuY2hFeHAudHlwZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChleHAudHlwZSAhPT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8gfHxcclxuICAgICAgICAgICAgZXhwLmlzU3RhdGljICE9PSBicmFuY2hFeHAuaXNTdGF0aWMgfHxcclxuICAgICAgICAgICAgZXhwLmNvbnRlbnQgIT09IGJyYW5jaEV4cC5jb250ZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG5mdW5jdGlvbiBnZXRQYXJlbnRDb25kaXRpb24obm9kZSkge1xyXG4gICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICBpZiAobm9kZS50eXBlID09PSAxOSAvKiBOb2RlVHlwZXMuSlNfQ09ORElUSU9OQUxfRVhQUkVTU0lPTiAqLykge1xyXG4gICAgICAgICAgICBpZiAobm9kZS5hbHRlcm5hdGUudHlwZSA9PT0gMTkgLyogTm9kZVR5cGVzLkpTX0NPTkRJVElPTkFMX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLmFsdGVybmF0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKG5vZGUudHlwZSA9PT0gMjAgLyogTm9kZVR5cGVzLkpTX0NBQ0hFX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICAgICAgbm9kZSA9IG5vZGUudmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XG5cbmNvbnN0IHRyYW5zZm9ybUZvciA9IGNyZWF0ZVN0cnVjdHVyYWxEaXJlY3RpdmVUcmFuc2Zvcm0oJ2ZvcicsIChub2RlLCBkaXIsIGNvbnRleHQpID0+IHtcclxuICAgIGNvbnN0IHsgaGVscGVyLCByZW1vdmVIZWxwZXIgfSA9IGNvbnRleHQ7XHJcbiAgICByZXR1cm4gcHJvY2Vzc0Zvcihub2RlLCBkaXIsIGNvbnRleHQsIGZvck5vZGUgPT4ge1xyXG4gICAgICAgIC8vIGNyZWF0ZSB0aGUgbG9vcCByZW5kZXIgZnVuY3Rpb24gZXhwcmVzc2lvbiBub3csIGFuZCBhZGQgdGhlXHJcbiAgICAgICAgLy8gaXRlcmF0b3Igb24gZXhpdCBhZnRlciBhbGwgY2hpbGRyZW4gaGF2ZSBiZWVuIHRyYXZlcnNlZFxyXG4gICAgICAgIGNvbnN0IHJlbmRlckV4cCA9IGNyZWF0ZUNhbGxFeHByZXNzaW9uKGhlbHBlcihSRU5ERVJfTElTVCksIFtcclxuICAgICAgICAgICAgZm9yTm9kZS5zb3VyY2VcclxuICAgICAgICBdKTtcclxuICAgICAgICBjb25zdCBpc1RlbXBsYXRlID0gaXNUZW1wbGF0ZU5vZGUobm9kZSk7XHJcbiAgICAgICAgY29uc3QgbWVtbyA9IGZpbmREaXIobm9kZSwgJ21lbW8nKTtcclxuICAgICAgICBjb25zdCBrZXlQcm9wID0gZmluZFByb3Aobm9kZSwgYGtleWApO1xyXG4gICAgICAgIGNvbnN0IGtleUV4cCA9IGtleVByb3AgJiZcclxuICAgICAgICAgICAgKGtleVByb3AudHlwZSA9PT0gNiAvKiBOb2RlVHlwZXMuQVRUUklCVVRFICovXHJcbiAgICAgICAgICAgICAgICA/IGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oa2V5UHJvcC52YWx1ZS5jb250ZW50LCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgOiBrZXlQcm9wLmV4cCk7XHJcbiAgICAgICAgY29uc3Qga2V5UHJvcGVydHkgPSBrZXlQcm9wID8gY3JlYXRlT2JqZWN0UHJvcGVydHkoYGtleWAsIGtleUV4cCkgOiBudWxsO1xyXG4gICAgICAgIGNvbnN0IGlzU3RhYmxlRnJhZ21lbnQgPSBmb3JOb2RlLnNvdXJjZS50eXBlID09PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLyAmJlxyXG4gICAgICAgICAgICBmb3JOb2RlLnNvdXJjZS5jb25zdFR5cGUgPiAwIC8qIENvbnN0YW50VHlwZXMuTk9UX0NPTlNUQU5UICovO1xyXG4gICAgICAgIGNvbnN0IGZyYWdtZW50RmxhZyA9IGlzU3RhYmxlRnJhZ21lbnRcclxuICAgICAgICAgICAgPyA2NCAvKiBQYXRjaEZsYWdzLlNUQUJMRV9GUkFHTUVOVCAqL1xyXG4gICAgICAgICAgICA6IGtleVByb3BcclxuICAgICAgICAgICAgICAgID8gMTI4IC8qIFBhdGNoRmxhZ3MuS0VZRURfRlJBR01FTlQgKi9cclxuICAgICAgICAgICAgICAgIDogMjU2IC8qIFBhdGNoRmxhZ3MuVU5LRVlFRF9GUkFHTUVOVCAqLztcclxuICAgICAgICBmb3JOb2RlLmNvZGVnZW5Ob2RlID0gY3JlYXRlVk5vZGVDYWxsKGNvbnRleHQsIGhlbHBlcihGUkFHTUVOVCksIHVuZGVmaW5lZCwgcmVuZGVyRXhwLCBmcmFnbWVudEZsYWcgK1xyXG4gICAgICAgICAgICAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYCAvKiAke1BhdGNoRmxhZ05hbWVzW2ZyYWdtZW50RmxhZ119ICovYCA6IGBgKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUgLyogaXNCbG9jayAqLywgIWlzU3RhYmxlRnJhZ21lbnQgLyogZGlzYWJsZVRyYWNraW5nICovLCBmYWxzZSAvKiBpc0NvbXBvbmVudCAqLywgbm9kZS5sb2MpO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIGZpbmlzaCB0aGUgY29kZWdlbiBub3cgdGhhdCBhbGwgY2hpbGRyZW4gaGF2ZSBiZWVuIHRyYXZlcnNlZFxyXG4gICAgICAgICAgICBsZXQgY2hpbGRCbG9jaztcclxuICAgICAgICAgICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gZm9yTm9kZTtcclxuICAgICAgICAgICAgLy8gY2hlY2sgPHRlbXBsYXRlIHYtZm9yPiBrZXkgcGxhY2VtZW50XHJcbiAgICAgICAgICAgIGlmICgoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHx8ICF0cnVlKSAmJiBpc1RlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgICAgICBub2RlLmNoaWxkcmVuLnNvbWUoYyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGMudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmaW5kUHJvcChjLCAna2V5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDMzIC8qIEVycm9yQ29kZXMuWF9WX0ZPUl9URU1QTEFURV9LRVlfUExBQ0VNRU5UICovLCBrZXkubG9jKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IG5lZWRGcmFnbWVudFdyYXBwZXIgPSBjaGlsZHJlbi5sZW5ndGggIT09IDEgfHwgY2hpbGRyZW5bMF0udHlwZSAhPT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLztcclxuICAgICAgICAgICAgY29uc3Qgc2xvdE91dGxldCA9IGlzU2xvdE91dGxldChub2RlKVxyXG4gICAgICAgICAgICAgICAgPyBub2RlXHJcbiAgICAgICAgICAgICAgICA6IGlzVGVtcGxhdGUgJiZcclxuICAgICAgICAgICAgICAgICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGlzU2xvdE91dGxldChub2RlLmNoaWxkcmVuWzBdKVxyXG4gICAgICAgICAgICAgICAgICAgID8gbm9kZS5jaGlsZHJlblswXSAvLyBhcGktZXh0cmFjdG9yIHNvbWVob3cgZmFpbHMgdG8gaW5mZXIgdGhpc1xyXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcclxuICAgICAgICAgICAgaWYgKHNsb3RPdXRsZXQpIHtcclxuICAgICAgICAgICAgICAgIC8vIDxzbG90IHYtZm9yPVwiLi4uXCI+IG9yIDx0ZW1wbGF0ZSB2LWZvcj1cIi4uLlwiPjxzbG90Lz48L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgY2hpbGRCbG9jayA9IHNsb3RPdXRsZXQuY29kZWdlbk5vZGU7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNUZW1wbGF0ZSAmJiBrZXlQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIDx0ZW1wbGF0ZSB2LWZvcj1cIi4uLlwiIDprZXk9XCIuLi5cIj48c2xvdC8+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGluamVjdCB0aGUga2V5IHRvIHRoZSByZW5kZXJTbG90KCkgY2FsbC5cclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcHJvcHMgZm9yIHJlbmRlclNsb3QgaXMgcGFzc2VkIGFzIHRoZSAzcmQgYXJndW1lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgaW5qZWN0UHJvcChjaGlsZEJsb2NrLCBrZXlQcm9wZXJ0eSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAobmVlZEZyYWdtZW50V3JhcHBlcikge1xyXG4gICAgICAgICAgICAgICAgLy8gPHRlbXBsYXRlIHYtZm9yPVwiLi4uXCI+IHdpdGggdGV4dCBvciBtdWx0aS1lbGVtZW50c1xyXG4gICAgICAgICAgICAgICAgLy8gc2hvdWxkIGdlbmVyYXRlIGEgZnJhZ21lbnQgYmxvY2sgZm9yIGVhY2ggbG9vcFxyXG4gICAgICAgICAgICAgICAgY2hpbGRCbG9jayA9IGNyZWF0ZVZOb2RlQ2FsbChjb250ZXh0LCBoZWxwZXIoRlJBR01FTlQpLCBrZXlQcm9wZXJ0eSA/IGNyZWF0ZU9iamVjdEV4cHJlc3Npb24oW2tleVByb3BlcnR5XSkgOiB1bmRlZmluZWQsIG5vZGUuY2hpbGRyZW4sIDY0IC8qIFBhdGNoRmxhZ3MuU1RBQkxFX0ZSQUdNRU5UICovICtcclxuICAgICAgICAgICAgICAgICAgICAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYCAvKiAke1BhdGNoRmxhZ05hbWVzWzY0IC8qIFBhdGNoRmxhZ3MuU1RBQkxFX0ZSQUdNRU5UICovXX0gKi9gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYGApLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdHJ1ZSwgdW5kZWZpbmVkLCBmYWxzZSAvKiBpc0NvbXBvbmVudCAqLyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBOb3JtYWwgZWxlbWVudCB2LWZvci4gRGlyZWN0bHkgdXNlIHRoZSBjaGlsZCdzIGNvZGVnZW5Ob2RlXHJcbiAgICAgICAgICAgICAgICAvLyBidXQgbWFyayBpdCBhcyBhIGJsb2NrLlxyXG4gICAgICAgICAgICAgICAgY2hpbGRCbG9jayA9IGNoaWxkcmVuWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgLmNvZGVnZW5Ob2RlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzVGVtcGxhdGUgJiYga2V5UHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbmplY3RQcm9wKGNoaWxkQmxvY2ssIGtleVByb3BlcnR5LCBjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZEJsb2NrLmlzQmxvY2sgIT09ICFpc1N0YWJsZUZyYWdtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkQmxvY2suaXNCbG9jaykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2l0Y2ggZnJvbSBibG9jayB0byB2bm9kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVIZWxwZXIoT1BFTl9CTE9DSyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUhlbHBlcihnZXRWTm9kZUJsb2NrSGVscGVyKGNvbnRleHQuaW5TU1IsIGNoaWxkQmxvY2suaXNDb21wb25lbnQpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN3aXRjaCBmcm9tIHZub2RlIHRvIGJsb2NrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUhlbHBlcihnZXRWTm9kZUhlbHBlcihjb250ZXh0LmluU1NSLCBjaGlsZEJsb2NrLmlzQ29tcG9uZW50KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2hpbGRCbG9jay5pc0Jsb2NrID0gIWlzU3RhYmxlRnJhZ21lbnQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRCbG9jay5pc0Jsb2NrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyKE9QRU5fQkxPQ0spO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlcihnZXRWTm9kZUJsb2NrSGVscGVyKGNvbnRleHQuaW5TU1IsIGNoaWxkQmxvY2suaXNDb21wb25lbnQpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlcihnZXRWTm9kZUhlbHBlcihjb250ZXh0LmluU1NSLCBjaGlsZEJsb2NrLmlzQ29tcG9uZW50KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKG1lbW8pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxvb3AgPSBjcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24oY3JlYXRlRm9yTG9vcFBhcmFtcyhmb3JOb2RlLnBhcnNlUmVzdWx0LCBbXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgX2NhY2hlZGApXHJcbiAgICAgICAgICAgICAgICBdKSk7XHJcbiAgICAgICAgICAgICAgICBsb29wLmJvZHkgPSBjcmVhdGVCbG9ja1N0YXRlbWVudChbXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlQ29tcG91bmRFeHByZXNzaW9uKFtgY29uc3QgX21lbW8gPSAoYCwgbWVtby5leHAsIGApYF0pLFxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZUNvbXBvdW5kRXhwcmVzc2lvbihbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGBpZiAoX2NhY2hlZGAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihrZXlFeHAgPyBbYCAmJiBfY2FjaGVkLmtleSA9PT0gYCwga2V5RXhwXSA6IFtdKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYCAmJiAke2NvbnRleHQuaGVscGVyU3RyaW5nKElTX01FTU9fU0FNRSl9KF9jYWNoZWQsIF9tZW1vKSkgcmV0dXJuIF9jYWNoZWRgXHJcbiAgICAgICAgICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlQ29tcG91bmRFeHByZXNzaW9uKFtgY29uc3QgX2l0ZW0gPSBgLCBjaGlsZEJsb2NrXSksXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgX2l0ZW0ubWVtbyA9IF9tZW1vYCksXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgcmV0dXJuIF9pdGVtYClcclxuICAgICAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgICAgICAgcmVuZGVyRXhwLmFyZ3VtZW50cy5wdXNoKGxvb3AsIGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oYF9jYWNoZWApLCBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKFN0cmluZyhjb250ZXh0LmNhY2hlZCsrKSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVuZGVyRXhwLmFyZ3VtZW50cy5wdXNoKGNyZWF0ZUZ1bmN0aW9uRXhwcmVzc2lvbihjcmVhdGVGb3JMb29wUGFyYW1zKGZvck5vZGUucGFyc2VSZXN1bHQpLCBjaGlsZEJsb2NrLCB0cnVlIC8qIGZvcmNlIG5ld2xpbmUgKi8pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9KTtcclxufSk7XHJcbi8vIHRhcmdldC1hZ25vc3RpYyB0cmFuc2Zvcm0gdXNlZCBmb3IgYm90aCBDbGllbnQgYW5kIFNTUlxyXG5mdW5jdGlvbiBwcm9jZXNzRm9yKG5vZGUsIGRpciwgY29udGV4dCwgcHJvY2Vzc0NvZGVnZW4pIHtcclxuICAgIGlmICghZGlyLmV4cCkge1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDMxIC8qIEVycm9yQ29kZXMuWF9WX0ZPUl9OT19FWFBSRVNTSU9OICovLCBkaXIubG9jKSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJzZUZvckV4cHJlc3Npb24oXHJcbiAgICAvLyBjYW4gb25seSBiZSBzaW1wbGUgZXhwcmVzc2lvbiBiZWNhdXNlIHZGb3IgdHJhbnNmb3JtIGlzIGFwcGxpZWRcclxuICAgIC8vIGJlZm9yZSBleHByZXNzaW9uIHRyYW5zZm9ybS5cclxuICAgIGRpci5leHAsIGNvbnRleHQpO1xyXG4gICAgaWYgKCFwYXJzZVJlc3VsdCkge1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDMyIC8qIEVycm9yQ29kZXMuWF9WX0ZPUl9NQUxGT1JNRURfRVhQUkVTU0lPTiAqLywgZGlyLmxvYykpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgYWRkSWRlbnRpZmllcnMsIHJlbW92ZUlkZW50aWZpZXJzLCBzY29wZXMgfSA9IGNvbnRleHQ7XHJcbiAgICBjb25zdCB7IHNvdXJjZSwgdmFsdWUsIGtleSwgaW5kZXggfSA9IHBhcnNlUmVzdWx0O1xyXG4gICAgY29uc3QgZm9yTm9kZSA9IHtcclxuICAgICAgICB0eXBlOiAxMSAvKiBOb2RlVHlwZXMuRk9SICovLFxyXG4gICAgICAgIGxvYzogZGlyLmxvYyxcclxuICAgICAgICBzb3VyY2UsXHJcbiAgICAgICAgdmFsdWVBbGlhczogdmFsdWUsXHJcbiAgICAgICAga2V5QWxpYXM6IGtleSxcclxuICAgICAgICBvYmplY3RJbmRleEFsaWFzOiBpbmRleCxcclxuICAgICAgICBwYXJzZVJlc3VsdCxcclxuICAgICAgICBjaGlsZHJlbjogaXNUZW1wbGF0ZU5vZGUobm9kZSkgPyBub2RlLmNoaWxkcmVuIDogW25vZGVdXHJcbiAgICB9O1xyXG4gICAgY29udGV4dC5yZXBsYWNlTm9kZShmb3JOb2RlKTtcclxuICAgIC8vIGJvb2trZWVwaW5nXHJcbiAgICBzY29wZXMudkZvcisrO1xyXG4gICAgY29uc3Qgb25FeGl0ID0gcHJvY2Vzc0NvZGVnZW4gJiYgcHJvY2Vzc0NvZGVnZW4oZm9yTm9kZSk7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIHNjb3Blcy52Rm9yLS07XHJcbiAgICAgICAgaWYgKG9uRXhpdClcclxuICAgICAgICAgICAgb25FeGl0KCk7XHJcbiAgICB9O1xyXG59XHJcbmNvbnN0IGZvckFsaWFzUkUgPSAvKFtcXHNcXFNdKj8pXFxzKyg/OmlufG9mKVxccysoW1xcc1xcU10qKS87XHJcbi8vIFRoaXMgcmVnZXggZG9lc24ndCBjb3ZlciB0aGUgY2FzZSBpZiBrZXkgb3IgaW5kZXggYWxpYXNlcyBoYXZlIGRlc3RydWN0dXJpbmcsXHJcbi8vIGJ1dCB0aG9zZSBkbyBub3QgbWFrZSBzZW5zZSBpbiB0aGUgZmlyc3QgcGxhY2UsIHNvIHRoaXMgd29ya3MgaW4gcHJhY3RpY2UuXHJcbmNvbnN0IGZvckl0ZXJhdG9yUkUgPSAvLChbXixcXH1cXF1dKikoPzosKFteLFxcfVxcXV0qKSk/JC87XHJcbmNvbnN0IHN0cmlwUGFyZW5zUkUgPSAvXlxcKHxcXCkkL2c7XHJcbmZ1bmN0aW9uIHBhcnNlRm9yRXhwcmVzc2lvbihpbnB1dCwgY29udGV4dCkge1xyXG4gICAgY29uc3QgbG9jID0gaW5wdXQubG9jO1xyXG4gICAgY29uc3QgZXhwID0gaW5wdXQuY29udGVudDtcclxuICAgIGNvbnN0IGluTWF0Y2ggPSBleHAubWF0Y2goZm9yQWxpYXNSRSk7XHJcbiAgICBpZiAoIWluTWF0Y2gpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgWywgTEhTLCBSSFNdID0gaW5NYXRjaDtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICBzb3VyY2U6IGNyZWF0ZUFsaWFzRXhwcmVzc2lvbihsb2MsIFJIUy50cmltKCksIGV4cC5pbmRleE9mKFJIUywgTEhTLmxlbmd0aCkpLFxyXG4gICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXHJcbiAgICAgICAga2V5OiB1bmRlZmluZWQsXHJcbiAgICAgICAgaW5kZXg6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgdHJ1ZSkge1xyXG4gICAgICAgIHZhbGlkYXRlQnJvd3NlckV4cHJlc3Npb24ocmVzdWx0LnNvdXJjZSwgY29udGV4dCk7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsdWVDb250ZW50ID0gTEhTLnRyaW0oKS5yZXBsYWNlKHN0cmlwUGFyZW5zUkUsICcnKS50cmltKCk7XHJcbiAgICBjb25zdCB0cmltbWVkT2Zmc2V0ID0gTEhTLmluZGV4T2YodmFsdWVDb250ZW50KTtcclxuICAgIGNvbnN0IGl0ZXJhdG9yTWF0Y2ggPSB2YWx1ZUNvbnRlbnQubWF0Y2goZm9ySXRlcmF0b3JSRSk7XHJcbiAgICBpZiAoaXRlcmF0b3JNYXRjaCkge1xyXG4gICAgICAgIHZhbHVlQ29udGVudCA9IHZhbHVlQ29udGVudC5yZXBsYWNlKGZvckl0ZXJhdG9yUkUsICcnKS50cmltKCk7XHJcbiAgICAgICAgY29uc3Qga2V5Q29udGVudCA9IGl0ZXJhdG9yTWF0Y2hbMV0udHJpbSgpO1xyXG4gICAgICAgIGxldCBrZXlPZmZzZXQ7XHJcbiAgICAgICAgaWYgKGtleUNvbnRlbnQpIHtcclxuICAgICAgICAgICAga2V5T2Zmc2V0ID0gZXhwLmluZGV4T2Yoa2V5Q29udGVudCwgdHJpbW1lZE9mZnNldCArIHZhbHVlQ29udGVudC5sZW5ndGgpO1xyXG4gICAgICAgICAgICByZXN1bHQua2V5ID0gY3JlYXRlQWxpYXNFeHByZXNzaW9uKGxvYywga2V5Q29udGVudCwga2V5T2Zmc2V0KTtcclxuICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZUJyb3dzZXJFeHByZXNzaW9uKHJlc3VsdC5rZXksIGNvbnRleHQsIHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVyYXRvck1hdGNoWzJdKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4Q29udGVudCA9IGl0ZXJhdG9yTWF0Y2hbMl0udHJpbSgpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhDb250ZW50KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQuaW5kZXggPSBjcmVhdGVBbGlhc0V4cHJlc3Npb24obG9jLCBpbmRleENvbnRlbnQsIGV4cC5pbmRleE9mKGluZGV4Q29udGVudCwgcmVzdWx0LmtleVxyXG4gICAgICAgICAgICAgICAgICAgID8ga2V5T2Zmc2V0ICsga2V5Q29udGVudC5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICA6IHRyaW1tZWRPZmZzZXQgKyB2YWx1ZUNvbnRlbnQubGVuZ3RoKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUJyb3dzZXJFeHByZXNzaW9uKHJlc3VsdC5pbmRleCwgY29udGV4dCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVDb250ZW50KSB7XHJcbiAgICAgICAgcmVzdWx0LnZhbHVlID0gY3JlYXRlQWxpYXNFeHByZXNzaW9uKGxvYywgdmFsdWVDb250ZW50LCB0cmltbWVkT2Zmc2V0KTtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIHRydWUpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGVCcm93c2VyRXhwcmVzc2lvbihyZXN1bHQudmFsdWUsIGNvbnRleHQsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlQWxpYXNFeHByZXNzaW9uKHJhbmdlLCBjb250ZW50LCBvZmZzZXQpIHtcclxuICAgIHJldHVybiBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKGNvbnRlbnQsIGZhbHNlLCBnZXRJbm5lclJhbmdlKHJhbmdlLCBvZmZzZXQsIGNvbnRlbnQubGVuZ3RoKSk7XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlRm9yTG9vcFBhcmFtcyh7IHZhbHVlLCBrZXksIGluZGV4IH0sIG1lbW9BcmdzID0gW10pIHtcclxuICAgIHJldHVybiBjcmVhdGVQYXJhbXNMaXN0KFt2YWx1ZSwga2V5LCBpbmRleCwgLi4ubWVtb0FyZ3NdKTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVQYXJhbXNMaXN0KGFyZ3MpIHtcclxuICAgIGxldCBpID0gYXJncy5sZW5ndGg7XHJcbiAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgaWYgKGFyZ3NbaV0pXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyZ3NcclxuICAgICAgICAuc2xpY2UoMCwgaSArIDEpXHJcbiAgICAgICAgLm1hcCgoYXJnLCBpKSA9PiBhcmcgfHwgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgX2AucmVwZWF0KGkgKyAxKSwgZmFsc2UpKTtcclxufVxuXG5jb25zdCBkZWZhdWx0RmFsbGJhY2sgPSBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKGB1bmRlZmluZWRgLCBmYWxzZSk7XHJcbi8vIEEgTm9kZVRyYW5zZm9ybSB0aGF0OlxyXG4vLyAxLiBUcmFja3Mgc2NvcGUgaWRlbnRpZmllcnMgZm9yIHNjb3BlZCBzbG90cyBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IHByZWZpeGVkXHJcbi8vICAgIGJ5IHRyYW5zZm9ybUV4cHJlc3Npb24uIFRoaXMgaXMgb25seSBhcHBsaWVkIGluIG5vbi1icm93c2VyIGJ1aWxkcyB3aXRoXHJcbi8vICAgIHsgcHJlZml4SWRlbnRpZmllcnM6IHRydWUgfS5cclxuLy8gMi4gVHJhY2sgdi1zbG90IGRlcHRocyBzbyB0aGF0IHdlIGtub3cgYSBzbG90IGlzIGluc2lkZSBhbm90aGVyIHNsb3QuXHJcbi8vICAgIE5vdGUgdGhlIGV4aXQgY2FsbGJhY2sgaXMgZXhlY3V0ZWQgYmVmb3JlIGJ1aWxkU2xvdHMoKSBvbiB0aGUgc2FtZSBub2RlLFxyXG4vLyAgICBzbyBvbmx5IG5lc3RlZCBzbG90cyBzZWUgcG9zaXRpdmUgbnVtYmVycy5cclxuY29uc3QgdHJhY2tTbG90U2NvcGVzID0gKG5vZGUsIGNvbnRleHQpID0+IHtcclxuICAgIGlmIChub2RlLnR5cGUgPT09IDEgLyogTm9kZVR5cGVzLkVMRU1FTlQgKi8gJiZcclxuICAgICAgICAobm9kZS50YWdUeXBlID09PSAxIC8qIEVsZW1lbnRUeXBlcy5DT01QT05FTlQgKi8gfHxcclxuICAgICAgICAgICAgbm9kZS50YWdUeXBlID09PSAzIC8qIEVsZW1lbnRUeXBlcy5URU1QTEFURSAqLykpIHtcclxuICAgICAgICAvLyBXZSBhcmUgb25seSBjaGVja2luZyBub24tZW1wdHkgdi1zbG90IGhlcmVcclxuICAgICAgICAvLyBzaW5jZSB3ZSBvbmx5IGNhcmUgYWJvdXQgc2xvdHMgdGhhdCBpbnRyb2R1Y2Ugc2NvcGUgdmFyaWFibGVzLlxyXG4gICAgICAgIGNvbnN0IHZTbG90ID0gZmluZERpcihub2RlLCAnc2xvdCcpO1xyXG4gICAgICAgIGlmICh2U2xvdCkge1xyXG4gICAgICAgICAgICB2U2xvdC5leHA7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2NvcGVzLnZTbG90Kys7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNjb3Blcy52U2xvdC0tO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuLy8gQSBOb2RlVHJhbnNmb3JtIHRoYXQgdHJhY2tzIHNjb3BlIGlkZW50aWZpZXJzIGZvciBzY29wZWQgc2xvdHMgd2l0aCB2LWZvci5cclxuLy8gVGhpcyB0cmFuc2Zvcm0gaXMgb25seSBhcHBsaWVkIGluIG5vbi1icm93c2VyIGJ1aWxkcyB3aXRoIHsgcHJlZml4SWRlbnRpZmllcnM6IHRydWUgfVxyXG5jb25zdCB0cmFja1ZGb3JTbG90U2NvcGVzID0gKG5vZGUsIGNvbnRleHQpID0+IHtcclxuICAgIGxldCB2Rm9yO1xyXG4gICAgaWYgKGlzVGVtcGxhdGVOb2RlKG5vZGUpICYmXHJcbiAgICAgICAgbm9kZS5wcm9wcy5zb21lKGlzVlNsb3QpICYmXHJcbiAgICAgICAgKHZGb3IgPSBmaW5kRGlyKG5vZGUsICdmb3InKSkpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSAodkZvci5wYXJzZVJlc3VsdCA9IHBhcnNlRm9yRXhwcmVzc2lvbih2Rm9yLmV4cCwgY29udGV4dCkpO1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSwga2V5LCBpbmRleCB9ID0gcmVzdWx0O1xyXG4gICAgICAgICAgICBjb25zdCB7IGFkZElkZW50aWZpZXJzLCByZW1vdmVJZGVudGlmaWVycyB9ID0gY29udGV4dDtcclxuICAgICAgICAgICAgdmFsdWUgJiYgYWRkSWRlbnRpZmllcnModmFsdWUpO1xyXG4gICAgICAgICAgICBrZXkgJiYgYWRkSWRlbnRpZmllcnMoa2V5KTtcclxuICAgICAgICAgICAgaW5kZXggJiYgYWRkSWRlbnRpZmllcnMoaW5kZXgpO1xyXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgJiYgcmVtb3ZlSWRlbnRpZmllcnModmFsdWUpO1xyXG4gICAgICAgICAgICAgICAga2V5ICYmIHJlbW92ZUlkZW50aWZpZXJzKGtleSk7XHJcbiAgICAgICAgICAgICAgICBpbmRleCAmJiByZW1vdmVJZGVudGlmaWVycyhpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5jb25zdCBidWlsZENsaWVudFNsb3RGbiA9IChwcm9wcywgY2hpbGRyZW4sIGxvYykgPT4gY3JlYXRlRnVuY3Rpb25FeHByZXNzaW9uKHByb3BzLCBjaGlsZHJlbiwgZmFsc2UgLyogbmV3bGluZSAqLywgdHJ1ZSAvKiBpc1Nsb3QgKi8sIGNoaWxkcmVuLmxlbmd0aCA/IGNoaWxkcmVuWzBdLmxvYyA6IGxvYyk7XHJcbi8vIEluc3RlYWQgb2YgYmVpbmcgYSBEaXJlY3RpdmVUcmFuc2Zvcm0sIHYtc2xvdCBwcm9jZXNzaW5nIGlzIGNhbGxlZCBkdXJpbmdcclxuLy8gdHJhbnNmb3JtRWxlbWVudCB0byBidWlsZCB0aGUgc2xvdHMgb2JqZWN0IGZvciBhIGNvbXBvbmVudC5cclxuZnVuY3Rpb24gYnVpbGRTbG90cyhub2RlLCBjb250ZXh0LCBidWlsZFNsb3RGbiA9IGJ1aWxkQ2xpZW50U2xvdEZuKSB7XHJcbiAgICBjb250ZXh0LmhlbHBlcihXSVRIX0NUWCk7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBsb2MgfSA9IG5vZGU7XHJcbiAgICBjb25zdCBzbG90c1Byb3BlcnRpZXMgPSBbXTtcclxuICAgIGNvbnN0IGR5bmFtaWNTbG90cyA9IFtdO1xyXG4gICAgLy8gSWYgdGhlIHNsb3QgaXMgaW5zaWRlIGEgdi1mb3Igb3IgYW5vdGhlciB2LXNsb3QsIGZvcmNlIGl0IHRvIGJlIGR5bmFtaWNcclxuICAgIC8vIHNpbmNlIGl0IGxpa2VseSB1c2VzIGEgc2NvcGUgdmFyaWFibGUuXHJcbiAgICBsZXQgaGFzRHluYW1pY1Nsb3RzID0gY29udGV4dC5zY29wZXMudlNsb3QgPiAwIHx8IGNvbnRleHQuc2NvcGVzLnZGb3IgPiAwO1xyXG4gICAgLy8gMS4gQ2hlY2sgZm9yIHNsb3Qgd2l0aCBzbG90UHJvcHMgb24gY29tcG9uZW50IGl0c2VsZi5cclxuICAgIC8vICAgIDxDb21wIHYtc2xvdD1cInsgcHJvcCB9XCIvPlxyXG4gICAgY29uc3Qgb25Db21wb25lbnRTbG90ID0gZmluZERpcihub2RlLCAnc2xvdCcsIHRydWUpO1xyXG4gICAgaWYgKG9uQ29tcG9uZW50U2xvdCkge1xyXG4gICAgICAgIGNvbnN0IHsgYXJnLCBleHAgfSA9IG9uQ29tcG9uZW50U2xvdDtcclxuICAgICAgICBpZiAoYXJnICYmICFpc1N0YXRpY0V4cChhcmcpKSB7XHJcbiAgICAgICAgICAgIGhhc0R5bmFtaWNTbG90cyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNsb3RzUHJvcGVydGllcy5wdXNoKGNyZWF0ZU9iamVjdFByb3BlcnR5KGFyZyB8fCBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKCdkZWZhdWx0JywgdHJ1ZSksIGJ1aWxkU2xvdEZuKGV4cCwgY2hpbGRyZW4sIGxvYykpKTtcclxuICAgIH1cclxuICAgIC8vIDIuIEl0ZXJhdGUgdGhyb3VnaCBjaGlsZHJlbiBhbmQgY2hlY2sgZm9yIHRlbXBsYXRlIHNsb3RzXHJcbiAgICAvLyAgICA8dGVtcGxhdGUgdi1zbG90OmZvbz1cInsgcHJvcCB9XCI+XHJcbiAgICBsZXQgaGFzVGVtcGxhdGVTbG90cyA9IGZhbHNlO1xyXG4gICAgbGV0IGhhc05hbWVkRGVmYXVsdFNsb3QgPSBmYWxzZTtcclxuICAgIGNvbnN0IGltcGxpY2l0RGVmYXVsdENoaWxkcmVuID0gW107XHJcbiAgICBjb25zdCBzZWVuU2xvdE5hbWVzID0gbmV3IFNldCgpO1xyXG4gICAgbGV0IGNvbmRpdGlvbmFsQnJhbmNoSW5kZXggPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHNsb3RFbGVtZW50ID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgbGV0IHNsb3REaXI7XHJcbiAgICAgICAgaWYgKCFpc1RlbXBsYXRlTm9kZShzbG90RWxlbWVudCkgfHxcclxuICAgICAgICAgICAgIShzbG90RGlyID0gZmluZERpcihzbG90RWxlbWVudCwgJ3Nsb3QnLCB0cnVlKSkpIHtcclxuICAgICAgICAgICAgLy8gbm90IGEgPHRlbXBsYXRlIHYtc2xvdD4sIHNraXAuXHJcbiAgICAgICAgICAgIGlmIChzbG90RWxlbWVudC50eXBlICE9PSAzIC8qIE5vZGVUeXBlcy5DT01NRU5UICovKSB7XHJcbiAgICAgICAgICAgICAgICBpbXBsaWNpdERlZmF1bHRDaGlsZHJlbi5wdXNoKHNsb3RFbGVtZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9uQ29tcG9uZW50U2xvdCkge1xyXG4gICAgICAgICAgICAvLyBhbHJlYWR5IGhhcyBvbi1jb21wb25lbnQgc2xvdCAtIHRoaXMgaXMgaW5jb3JyZWN0IHVzYWdlLlxyXG4gICAgICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlQ29tcGlsZXJFcnJvcigzNyAvKiBFcnJvckNvZGVzLlhfVl9TTE9UX01JWEVEX1NMT1RfVVNBR0UgKi8sIHNsb3REaXIubG9jKSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoYXNUZW1wbGF0ZVNsb3RzID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCB7IGNoaWxkcmVuOiBzbG90Q2hpbGRyZW4sIGxvYzogc2xvdExvYyB9ID0gc2xvdEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgeyBhcmc6IHNsb3ROYW1lID0gY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgZGVmYXVsdGAsIHRydWUpLCBleHA6IHNsb3RQcm9wcywgbG9jOiBkaXJMb2MgfSA9IHNsb3REaXI7XHJcbiAgICAgICAgLy8gY2hlY2sgaWYgbmFtZSBpcyBkeW5hbWljLlxyXG4gICAgICAgIGxldCBzdGF0aWNTbG90TmFtZTtcclxuICAgICAgICBpZiAoaXNTdGF0aWNFeHAoc2xvdE5hbWUpKSB7XHJcbiAgICAgICAgICAgIHN0YXRpY1Nsb3ROYW1lID0gc2xvdE5hbWUgPyBzbG90TmFtZS5jb250ZW50IDogYGRlZmF1bHRgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaGFzRHluYW1pY1Nsb3RzID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc2xvdEZ1bmN0aW9uID0gYnVpbGRTbG90Rm4oc2xvdFByb3BzLCBzbG90Q2hpbGRyZW4sIHNsb3RMb2MpO1xyXG4gICAgICAgIC8vIGNoZWNrIGlmIHRoaXMgc2xvdCBpcyBjb25kaXRpb25hbCAodi1pZi92LWZvcilcclxuICAgICAgICBsZXQgdklmO1xyXG4gICAgICAgIGxldCB2RWxzZTtcclxuICAgICAgICBsZXQgdkZvcjtcclxuICAgICAgICBpZiAoKHZJZiA9IGZpbmREaXIoc2xvdEVsZW1lbnQsICdpZicpKSkge1xyXG4gICAgICAgICAgICBoYXNEeW5hbWljU2xvdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICBkeW5hbWljU2xvdHMucHVzaChjcmVhdGVDb25kaXRpb25hbEV4cHJlc3Npb24odklmLmV4cCwgYnVpbGREeW5hbWljU2xvdChzbG90TmFtZSwgc2xvdEZ1bmN0aW9uLCBjb25kaXRpb25hbEJyYW5jaEluZGV4KyspLCBkZWZhdWx0RmFsbGJhY2spKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKHZFbHNlID0gZmluZERpcihzbG90RWxlbWVudCwgL15lbHNlKC1pZik/JC8sIHRydWUgLyogYWxsb3dFbXB0eSAqLykpKSB7XHJcbiAgICAgICAgICAgIC8vIGZpbmQgYWRqYWNlbnQgdi1pZlxyXG4gICAgICAgICAgICBsZXQgaiA9IGk7XHJcbiAgICAgICAgICAgIGxldCBwcmV2O1xyXG4gICAgICAgICAgICB3aGlsZSAoai0tKSB7XHJcbiAgICAgICAgICAgICAgICBwcmV2ID0gY2hpbGRyZW5bal07XHJcbiAgICAgICAgICAgICAgICBpZiAocHJldi50eXBlICE9PSAzIC8qIE5vZGVUeXBlcy5DT01NRU5UICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHByZXYgJiYgaXNUZW1wbGF0ZU5vZGUocHJldikgJiYgZmluZERpcihwcmV2LCAnaWYnKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIG5vZGVcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgICAgIC8vIGF0dGFjaCB0aGlzIHNsb3QgdG8gcHJldmlvdXMgY29uZGl0aW9uYWxcclxuICAgICAgICAgICAgICAgIGxldCBjb25kaXRpb25hbCA9IGR5bmFtaWNTbG90c1tkeW5hbWljU2xvdHMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAoY29uZGl0aW9uYWwuYWx0ZXJuYXRlLnR5cGUgPT09IDE5IC8qIE5vZGVUeXBlcy5KU19DT05ESVRJT05BTF9FWFBSRVNTSU9OICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWwgPSBjb25kaXRpb25hbC5hbHRlcm5hdGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25kaXRpb25hbC5hbHRlcm5hdGUgPSB2RWxzZS5leHBcclxuICAgICAgICAgICAgICAgICAgICA/IGNyZWF0ZUNvbmRpdGlvbmFsRXhwcmVzc2lvbih2RWxzZS5leHAsIGJ1aWxkRHluYW1pY1Nsb3Qoc2xvdE5hbWUsIHNsb3RGdW5jdGlvbiwgY29uZGl0aW9uYWxCcmFuY2hJbmRleCsrKSwgZGVmYXVsdEZhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIDogYnVpbGREeW5hbWljU2xvdChzbG90TmFtZSwgc2xvdEZ1bmN0aW9uLCBjb25kaXRpb25hbEJyYW5jaEluZGV4KyspO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZUNvbXBpbGVyRXJyb3IoMzAgLyogRXJyb3JDb2Rlcy5YX1ZfRUxTRV9OT19BREpBQ0VOVF9JRiAqLywgdkVsc2UubG9jKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKHZGb3IgPSBmaW5kRGlyKHNsb3RFbGVtZW50LCAnZm9yJykpKSB7XHJcbiAgICAgICAgICAgIGhhc0R5bmFtaWNTbG90cyA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlUmVzdWx0ID0gdkZvci5wYXJzZVJlc3VsdCB8fFxyXG4gICAgICAgICAgICAgICAgcGFyc2VGb3JFeHByZXNzaW9uKHZGb3IuZXhwLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgaWYgKHBhcnNlUmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBSZW5kZXIgdGhlIGR5bmFtaWMgc2xvdHMgYXMgYW4gYXJyYXkgYW5kIGFkZCBpdCB0byB0aGUgY3JlYXRlU2xvdCgpXHJcbiAgICAgICAgICAgICAgICAvLyBhcmdzLiBUaGUgcnVudGltZSBrbm93cyBob3cgdG8gaGFuZGxlIGl0IGFwcHJvcHJpYXRlbHkuXHJcbiAgICAgICAgICAgICAgICBkeW5hbWljU2xvdHMucHVzaChjcmVhdGVDYWxsRXhwcmVzc2lvbihjb250ZXh0LmhlbHBlcihSRU5ERVJfTElTVCksIFtcclxuICAgICAgICAgICAgICAgICAgICBwYXJzZVJlc3VsdC5zb3VyY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlRnVuY3Rpb25FeHByZXNzaW9uKGNyZWF0ZUZvckxvb3BQYXJhbXMocGFyc2VSZXN1bHQpLCBidWlsZER5bmFtaWNTbG90KHNsb3ROYW1lLCBzbG90RnVuY3Rpb24pLCB0cnVlIC8qIGZvcmNlIG5ld2xpbmUgKi8pXHJcbiAgICAgICAgICAgICAgICBdKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlQ29tcGlsZXJFcnJvcigzMiAvKiBFcnJvckNvZGVzLlhfVl9GT1JfTUFMRk9STUVEX0VYUFJFU1NJT04gKi8sIHZGb3IubG9jKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGNoZWNrIGR1cGxpY2F0ZSBzdGF0aWMgbmFtZXNcclxuICAgICAgICAgICAgaWYgKHN0YXRpY1Nsb3ROYW1lKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VlblNsb3ROYW1lcy5oYXMoc3RhdGljU2xvdE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZUNvbXBpbGVyRXJyb3IoMzggLyogRXJyb3JDb2Rlcy5YX1ZfU0xPVF9EVVBMSUNBVEVfU0xPVF9OQU1FUyAqLywgZGlyTG9jKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzZWVuU2xvdE5hbWVzLmFkZChzdGF0aWNTbG90TmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGljU2xvdE5hbWUgPT09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGhhc05hbWVkRGVmYXVsdFNsb3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNsb3RzUHJvcGVydGllcy5wdXNoKGNyZWF0ZU9iamVjdFByb3BlcnR5KHNsb3ROYW1lLCBzbG90RnVuY3Rpb24pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIW9uQ29tcG9uZW50U2xvdCkge1xyXG4gICAgICAgIGNvbnN0IGJ1aWxkRGVmYXVsdFNsb3RQcm9wZXJ0eSA9IChwcm9wcywgY2hpbGRyZW4pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZm4gPSBidWlsZFNsb3RGbihwcm9wcywgY2hpbGRyZW4sIGxvYyk7XHJcbiAgICAgICAgICAgIGlmIChjb250ZXh0LmNvbXBhdENvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgZm4uaXNOb25TY29wZWRTbG90ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlT2JqZWN0UHJvcGVydHkoYGRlZmF1bHRgLCBmbik7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoIWhhc1RlbXBsYXRlU2xvdHMpIHtcclxuICAgICAgICAgICAgLy8gaW1wbGljaXQgZGVmYXVsdCBzbG90IChvbiBjb21wb25lbnQpXHJcbiAgICAgICAgICAgIHNsb3RzUHJvcGVydGllcy5wdXNoKGJ1aWxkRGVmYXVsdFNsb3RQcm9wZXJ0eSh1bmRlZmluZWQsIGNoaWxkcmVuKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGltcGxpY2l0RGVmYXVsdENoaWxkcmVuLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAvLyAjMzc2NlxyXG4gICAgICAgICAgICAvLyB3aXRoIHdoaXRlc3BhY2U6ICdwcmVzZXJ2ZScsIHdoaXRlc3BhY2VzIGJldHdlZW4gc2xvdHMgd2lsbCBlbmQgdXAgaW5cclxuICAgICAgICAgICAgLy8gaW1wbGljaXREZWZhdWx0Q2hpbGRyZW4uIElnbm9yZSBpZiBhbGwgaW1wbGljaXQgY2hpbGRyZW4gYXJlIHdoaXRlc3BhY2VzLlxyXG4gICAgICAgICAgICBpbXBsaWNpdERlZmF1bHRDaGlsZHJlbi5zb21lKG5vZGUgPT4gaXNOb25XaGl0ZXNwYWNlQ29udGVudChub2RlKSkpIHtcclxuICAgICAgICAgICAgLy8gaW1wbGljaXQgZGVmYXVsdCBzbG90IChtaXhlZCB3aXRoIG5hbWVkIHNsb3RzKVxyXG4gICAgICAgICAgICBpZiAoaGFzTmFtZWREZWZhdWx0U2xvdCkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZUNvbXBpbGVyRXJyb3IoMzkgLyogRXJyb3JDb2Rlcy5YX1ZfU0xPVF9FWFRSQU5FT1VTX0RFRkFVTFRfU0xPVF9DSElMRFJFTiAqLywgaW1wbGljaXREZWZhdWx0Q2hpbGRyZW5bMF0ubG9jKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzbG90c1Byb3BlcnRpZXMucHVzaChidWlsZERlZmF1bHRTbG90UHJvcGVydHkodW5kZWZpbmVkLCBpbXBsaWNpdERlZmF1bHRDaGlsZHJlbikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgc2xvdEZsYWcgPSBoYXNEeW5hbWljU2xvdHNcclxuICAgICAgICA/IDIgLyogU2xvdEZsYWdzLkRZTkFNSUMgKi9cclxuICAgICAgICA6IGhhc0ZvcndhcmRlZFNsb3RzKG5vZGUuY2hpbGRyZW4pXHJcbiAgICAgICAgICAgID8gMyAvKiBTbG90RmxhZ3MuRk9SV0FSREVEICovXHJcbiAgICAgICAgICAgIDogMSAvKiBTbG90RmxhZ3MuU1RBQkxFICovO1xyXG4gICAgbGV0IHNsb3RzID0gY3JlYXRlT2JqZWN0RXhwcmVzc2lvbihzbG90c1Byb3BlcnRpZXMuY29uY2F0KGNyZWF0ZU9iamVjdFByb3BlcnR5KGBfYCwgXHJcbiAgICAvLyAyID0gY29tcGlsZWQgYnV0IGR5bmFtaWMgPSBjYW4gc2tpcCBub3JtYWxpemF0aW9uLCBidXQgbXVzdCBydW4gZGlmZlxyXG4gICAgLy8gMSA9IGNvbXBpbGVkIGFuZCBzdGF0aWMgPSBjYW4gc2tpcCBub3JtYWxpemF0aW9uIEFORCBkaWZmIGFzIG9wdGltaXplZFxyXG4gICAgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihzbG90RmxhZyArICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgIC8qICR7c2xvdEZsYWdzVGV4dFtzbG90RmxhZ119ICovYCA6IGBgKSwgZmFsc2UpKSksIGxvYyk7XHJcbiAgICBpZiAoZHluYW1pY1Nsb3RzLmxlbmd0aCkge1xyXG4gICAgICAgIHNsb3RzID0gY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoQ1JFQVRFX1NMT1RTKSwgW1xyXG4gICAgICAgICAgICBzbG90cyxcclxuICAgICAgICAgICAgY3JlYXRlQXJyYXlFeHByZXNzaW9uKGR5bmFtaWNTbG90cylcclxuICAgICAgICBdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgc2xvdHMsXHJcbiAgICAgICAgaGFzRHluYW1pY1Nsb3RzXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGJ1aWxkRHluYW1pY1Nsb3QobmFtZSwgZm4sIGluZGV4KSB7XHJcbiAgICBjb25zdCBwcm9wcyA9IFtcclxuICAgICAgICBjcmVhdGVPYmplY3RQcm9wZXJ0eShgbmFtZWAsIG5hbWUpLFxyXG4gICAgICAgIGNyZWF0ZU9iamVjdFByb3BlcnR5KGBmbmAsIGZuKVxyXG4gICAgXTtcclxuICAgIGlmIChpbmRleCAhPSBudWxsKSB7XHJcbiAgICAgICAgcHJvcHMucHVzaChjcmVhdGVPYmplY3RQcm9wZXJ0eShga2V5YCwgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihTdHJpbmcoaW5kZXgpLCB0cnVlKSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNyZWF0ZU9iamVjdEV4cHJlc3Npb24ocHJvcHMpO1xyXG59XHJcbmZ1bmN0aW9uIGhhc0ZvcndhcmRlZFNsb3RzKGNoaWxkcmVuKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbltpXTtcclxuICAgICAgICBzd2l0Y2ggKGNoaWxkLnR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovOlxyXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLnRhZ1R5cGUgPT09IDIgLyogRWxlbWVudFR5cGVzLlNMT1QgKi8gfHxcclxuICAgICAgICAgICAgICAgICAgICBoYXNGb3J3YXJkZWRTbG90cyhjaGlsZC5jaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDkgLyogTm9kZVR5cGVzLklGICovOlxyXG4gICAgICAgICAgICAgICAgaWYgKGhhc0ZvcndhcmRlZFNsb3RzKGNoaWxkLmJyYW5jaGVzKSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDEwIC8qIE5vZGVUeXBlcy5JRl9CUkFOQ0ggKi86XHJcbiAgICAgICAgICAgIGNhc2UgMTEgLyogTm9kZVR5cGVzLkZPUiAqLzpcclxuICAgICAgICAgICAgICAgIGlmIChoYXNGb3J3YXJkZWRTbG90cyhjaGlsZC5jaGlsZHJlbikpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuZnVuY3Rpb24gaXNOb25XaGl0ZXNwYWNlQ29udGVudChub2RlKSB7XHJcbiAgICBpZiAobm9kZS50eXBlICE9PSAyIC8qIE5vZGVUeXBlcy5URVhUICovICYmIG5vZGUudHlwZSAhPT0gMTIgLyogTm9kZVR5cGVzLlRFWFRfQ0FMTCAqLylcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiBub2RlLnR5cGUgPT09IDIgLyogTm9kZVR5cGVzLlRFWFQgKi9cclxuICAgICAgICA/ICEhbm9kZS5jb250ZW50LnRyaW0oKVxyXG4gICAgICAgIDogaXNOb25XaGl0ZXNwYWNlQ29udGVudChub2RlLmNvbnRlbnQpO1xyXG59XG5cbi8vIHNvbWUgZGlyZWN0aXZlIHRyYW5zZm9ybXMgKGUuZy4gdi1tb2RlbCkgbWF5IHJldHVybiBhIHN5bWJvbCBmb3IgcnVudGltZVxyXG4vLyBpbXBvcnQsIHdoaWNoIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgYSByZXNvbHZlRGlyZWN0aXZlIGNhbGwuXHJcbmNvbnN0IGRpcmVjdGl2ZUltcG9ydE1hcCA9IG5ldyBXZWFrTWFwKCk7XHJcbi8vIGdlbmVyYXRlIGEgSmF2YVNjcmlwdCBBU1QgZm9yIHRoaXMgZWxlbWVudCdzIGNvZGVnZW5cclxuY29uc3QgdHJhbnNmb3JtRWxlbWVudCA9IChub2RlLCBjb250ZXh0KSA9PiB7XHJcbiAgICAvLyBwZXJmb3JtIHRoZSB3b3JrIG9uIGV4aXQsIGFmdGVyIGFsbCBjaGlsZCBleHByZXNzaW9ucyBoYXZlIGJlZW5cclxuICAgIC8vIHByb2Nlc3NlZCBhbmQgbWVyZ2VkLlxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHBvc3RUcmFuc2Zvcm1FbGVtZW50KCkge1xyXG4gICAgICAgIG5vZGUgPSBjb250ZXh0LmN1cnJlbnROb2RlO1xyXG4gICAgICAgIGlmICghKG5vZGUudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLyAmJlxyXG4gICAgICAgICAgICAobm9kZS50YWdUeXBlID09PSAwIC8qIEVsZW1lbnRUeXBlcy5FTEVNRU5UICovIHx8XHJcbiAgICAgICAgICAgICAgICBub2RlLnRhZ1R5cGUgPT09IDEgLyogRWxlbWVudFR5cGVzLkNPTVBPTkVOVCAqLykpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgeyB0YWcsIHByb3BzIH0gPSBub2RlO1xyXG4gICAgICAgIGNvbnN0IGlzQ29tcG9uZW50ID0gbm9kZS50YWdUeXBlID09PSAxIC8qIEVsZW1lbnRUeXBlcy5DT01QT05FTlQgKi87XHJcbiAgICAgICAgLy8gVGhlIGdvYWwgb2YgdGhlIHRyYW5zZm9ybSBpcyB0byBjcmVhdGUgYSBjb2RlZ2VuTm9kZSBpbXBsZW1lbnRpbmcgdGhlXHJcbiAgICAgICAgLy8gVk5vZGVDYWxsIGludGVyZmFjZS5cclxuICAgICAgICBsZXQgdm5vZGVUYWcgPSBpc0NvbXBvbmVudFxyXG4gICAgICAgICAgICA/IHJlc29sdmVDb21wb25lbnRUeXBlKG5vZGUsIGNvbnRleHQpXHJcbiAgICAgICAgICAgIDogYFwiJHt0YWd9XCJgO1xyXG4gICAgICAgIGNvbnN0IGlzRHluYW1pY0NvbXBvbmVudCA9IGlzT2JqZWN0KHZub2RlVGFnKSAmJiB2bm9kZVRhZy5jYWxsZWUgPT09IFJFU09MVkVfRFlOQU1JQ19DT01QT05FTlQ7XHJcbiAgICAgICAgbGV0IHZub2RlUHJvcHM7XHJcbiAgICAgICAgbGV0IHZub2RlQ2hpbGRyZW47XHJcbiAgICAgICAgbGV0IHZub2RlUGF0Y2hGbGFnO1xyXG4gICAgICAgIGxldCBwYXRjaEZsYWcgPSAwO1xyXG4gICAgICAgIGxldCB2bm9kZUR5bmFtaWNQcm9wcztcclxuICAgICAgICBsZXQgZHluYW1pY1Byb3BOYW1lcztcclxuICAgICAgICBsZXQgdm5vZGVEaXJlY3RpdmVzO1xyXG4gICAgICAgIGxldCBzaG91bGRVc2VCbG9jayA9IFxyXG4gICAgICAgIC8vIGR5bmFtaWMgY29tcG9uZW50IG1heSByZXNvbHZlIHRvIHBsYWluIGVsZW1lbnRzXHJcbiAgICAgICAgaXNEeW5hbWljQ29tcG9uZW50IHx8XHJcbiAgICAgICAgICAgIHZub2RlVGFnID09PSBURUxFUE9SVCB8fFxyXG4gICAgICAgICAgICB2bm9kZVRhZyA9PT0gU1VTUEVOU0UgfHxcclxuICAgICAgICAgICAgKCFpc0NvbXBvbmVudCAmJlxyXG4gICAgICAgICAgICAgICAgLy8gPHN2Zz4gYW5kIDxmb3JlaWduT2JqZWN0PiBtdXN0IGJlIGZvcmNlZCBpbnRvIGJsb2NrcyBzbyB0aGF0IGJsb2NrXHJcbiAgICAgICAgICAgICAgICAvLyB1cGRhdGVzIGluc2lkZSBnZXQgcHJvcGVyIGlzU1ZHIGZsYWcgYXQgcnVudGltZS4gKCM2MzksICM2NDMpXHJcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IHdlYi1zcGVjaWZpYywgYnV0IHNwbGl0dGluZyB0aGUgbG9naWMgb3V0IG9mIGNvcmVcclxuICAgICAgICAgICAgICAgIC8vIGxlYWRzIHRvIHRvbyBtdWNoIHVubmVjZXNzYXJ5IGNvbXBsZXhpdHkuXHJcbiAgICAgICAgICAgICAgICAodGFnID09PSAnc3ZnJyB8fCB0YWcgPT09ICdmb3JlaWduT2JqZWN0JykpO1xyXG4gICAgICAgIC8vIHByb3BzXHJcbiAgICAgICAgaWYgKHByb3BzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgcHJvcHNCdWlsZFJlc3VsdCA9IGJ1aWxkUHJvcHMobm9kZSwgY29udGV4dCwgdW5kZWZpbmVkLCBpc0NvbXBvbmVudCwgaXNEeW5hbWljQ29tcG9uZW50KTtcclxuICAgICAgICAgICAgdm5vZGVQcm9wcyA9IHByb3BzQnVpbGRSZXN1bHQucHJvcHM7XHJcbiAgICAgICAgICAgIHBhdGNoRmxhZyA9IHByb3BzQnVpbGRSZXN1bHQucGF0Y2hGbGFnO1xyXG4gICAgICAgICAgICBkeW5hbWljUHJvcE5hbWVzID0gcHJvcHNCdWlsZFJlc3VsdC5keW5hbWljUHJvcE5hbWVzO1xyXG4gICAgICAgICAgICBjb25zdCBkaXJlY3RpdmVzID0gcHJvcHNCdWlsZFJlc3VsdC5kaXJlY3RpdmVzO1xyXG4gICAgICAgICAgICB2bm9kZURpcmVjdGl2ZXMgPVxyXG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlcyAmJiBkaXJlY3RpdmVzLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgID8gY3JlYXRlQXJyYXlFeHByZXNzaW9uKGRpcmVjdGl2ZXMubWFwKGRpciA9PiBidWlsZERpcmVjdGl2ZUFyZ3MoZGlyLCBjb250ZXh0KSkpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGlmIChwcm9wc0J1aWxkUmVzdWx0LnNob3VsZFVzZUJsb2NrKSB7XHJcbiAgICAgICAgICAgICAgICBzaG91bGRVc2VCbG9jayA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY2hpbGRyZW5cclxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGlmICh2bm9kZVRhZyA9PT0gS0VFUF9BTElWRSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQWx0aG91Z2ggYSBidWlsdC1pbiBjb21wb25lbnQsIHdlIGNvbXBpbGUgS2VlcEFsaXZlIHdpdGggcmF3IGNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAvLyBpbnN0ZWFkIG9mIHNsb3QgZnVuY3Rpb25zIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW5zaWRlIFRyYW5zaXRpb25cclxuICAgICAgICAgICAgICAgIC8vIG9yIG90aGVyIFRyYW5zaXRpb24td3JhcHBpbmcgSE9Dcy5cclxuICAgICAgICAgICAgICAgIC8vIFRvIGVuc3VyZSBjb3JyZWN0IHVwZGF0ZXMgd2l0aCBibG9jayBvcHRpbWl6YXRpb25zLCB3ZSBuZWVkIHRvOlxyXG4gICAgICAgICAgICAgICAgLy8gMS4gRm9yY2Uga2VlcC1hbGl2ZSBpbnRvIGEgYmxvY2suIFRoaXMgYXZvaWRzIGl0cyBjaGlsZHJlbiBiZWluZ1xyXG4gICAgICAgICAgICAgICAgLy8gICAgY29sbGVjdGVkIGJ5IGEgcGFyZW50IGJsb2NrLlxyXG4gICAgICAgICAgICAgICAgc2hvdWxkVXNlQmxvY2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy8gMi4gRm9yY2Uga2VlcC1hbGl2ZSB0byBhbHdheXMgYmUgdXBkYXRlZCwgc2luY2UgaXQgdXNlcyByYXcgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgICAgICBwYXRjaEZsYWcgfD0gMTAyNCAvKiBQYXRjaEZsYWdzLkRZTkFNSUNfU0xPVFMgKi87XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDQ1IC8qIEVycm9yQ29kZXMuWF9LRUVQX0FMSVZFX0lOVkFMSURfQ0hJTERSRU4gKi8sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IG5vZGUuY2hpbGRyZW5bMF0ubG9jLnN0YXJ0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IG5vZGUuY2hpbGRyZW5bbm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXS5sb2MuZW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEJ1aWxkQXNTbG90cyA9IGlzQ29tcG9uZW50ICYmXHJcbiAgICAgICAgICAgICAgICAvLyBUZWxlcG9ydCBpcyBub3QgYSByZWFsIGNvbXBvbmVudCBhbmQgaGFzIGRlZGljYXRlZCBydW50aW1lIGhhbmRsaW5nXHJcbiAgICAgICAgICAgICAgICB2bm9kZVRhZyAhPT0gVEVMRVBPUlQgJiZcclxuICAgICAgICAgICAgICAgIC8vIGV4cGxhaW5lZCBhYm92ZS5cclxuICAgICAgICAgICAgICAgIHZub2RlVGFnICE9PSBLRUVQX0FMSVZFO1xyXG4gICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRBc1Nsb3RzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNsb3RzLCBoYXNEeW5hbWljU2xvdHMgfSA9IGJ1aWxkU2xvdHMobm9kZSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgICAgICB2bm9kZUNoaWxkcmVuID0gc2xvdHM7XHJcbiAgICAgICAgICAgICAgICBpZiAoaGFzRHluYW1pY1Nsb3RzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hGbGFnIHw9IDEwMjQgLyogUGF0Y2hGbGFncy5EWU5BTUlDX1NMT1RTICovO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmIHZub2RlVGFnICE9PSBURUxFUE9SVCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBub2RlLmNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IGNoaWxkLnR5cGU7XHJcbiAgICAgICAgICAgICAgICAvLyBjaGVjayBmb3IgZHluYW1pYyB0ZXh0IGNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNEeW5hbWljVGV4dENoaWxkID0gdHlwZSA9PT0gNSAvKiBOb2RlVHlwZXMuSU5URVJQT0xBVElPTiAqLyB8fFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGUgPT09IDggLyogTm9kZVR5cGVzLkNPTVBPVU5EX0VYUFJFU1NJT04gKi87XHJcbiAgICAgICAgICAgICAgICBpZiAoaGFzRHluYW1pY1RleHRDaGlsZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGdldENvbnN0YW50VHlwZShjaGlsZCwgY29udGV4dCkgPT09IDAgLyogQ29uc3RhbnRUeXBlcy5OT1RfQ09OU1RBTlQgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXRjaEZsYWcgfD0gMSAvKiBQYXRjaEZsYWdzLlRFWFQgKi87XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBwYXNzIGRpcmVjdGx5IGlmIHRoZSBvbmx5IGNoaWxkIGlzIGEgdGV4dCBub2RlXHJcbiAgICAgICAgICAgICAgICAvLyAocGxhaW4gLyBpbnRlcnBvbGF0aW9uIC8gZXhwcmVzc2lvbilcclxuICAgICAgICAgICAgICAgIGlmIChoYXNEeW5hbWljVGV4dENoaWxkIHx8IHR5cGUgPT09IDIgLyogTm9kZVR5cGVzLlRFWFQgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICB2bm9kZUNoaWxkcmVuID0gY2hpbGQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2bm9kZUNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZub2RlQ2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHBhdGNoRmxhZyAmIGR5bmFtaWNQcm9wTmFtZXNcclxuICAgICAgICBpZiAocGF0Y2hGbGFnICE9PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgIGlmIChwYXRjaEZsYWcgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBmbGFncyAobmVnYXRpdmUgYW5kIG11dHVhbGx5IGV4Y2x1c2l2ZSlcclxuICAgICAgICAgICAgICAgICAgICB2bm9kZVBhdGNoRmxhZyA9IHBhdGNoRmxhZyArIGAgLyogJHtQYXRjaEZsYWdOYW1lc1twYXRjaEZsYWddfSAqL2A7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBiaXR3aXNlIGZsYWdzXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxhZ05hbWVzID0gT2JqZWN0LmtleXMoUGF0Y2hGbGFnTmFtZXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoTnVtYmVyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKG4gPT4gbiA+IDAgJiYgcGF0Y2hGbGFnICYgbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChuID0+IFBhdGNoRmxhZ05hbWVzW25dKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbihgLCBgKTtcclxuICAgICAgICAgICAgICAgICAgICB2bm9kZVBhdGNoRmxhZyA9IHBhdGNoRmxhZyArIGAgLyogJHtmbGFnTmFtZXN9ICovYDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZub2RlUGF0Y2hGbGFnID0gU3RyaW5nKHBhdGNoRmxhZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGR5bmFtaWNQcm9wTmFtZXMgJiYgZHluYW1pY1Byb3BOYW1lcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHZub2RlRHluYW1pY1Byb3BzID0gc3RyaW5naWZ5RHluYW1pY1Byb3BOYW1lcyhkeW5hbWljUHJvcE5hbWVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBub2RlLmNvZGVnZW5Ob2RlID0gY3JlYXRlVk5vZGVDYWxsKGNvbnRleHQsIHZub2RlVGFnLCB2bm9kZVByb3BzLCB2bm9kZUNoaWxkcmVuLCB2bm9kZVBhdGNoRmxhZywgdm5vZGVEeW5hbWljUHJvcHMsIHZub2RlRGlyZWN0aXZlcywgISFzaG91bGRVc2VCbG9jaywgZmFsc2UgLyogZGlzYWJsZVRyYWNraW5nICovLCBpc0NvbXBvbmVudCwgbm9kZS5sb2MpO1xyXG4gICAgfTtcclxufTtcclxuZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudFR5cGUobm9kZSwgY29udGV4dCwgc3NyID0gZmFsc2UpIHtcclxuICAgIGxldCB7IHRhZyB9ID0gbm9kZTtcclxuICAgIC8vIDEuIGR5bmFtaWMgY29tcG9uZW50XHJcbiAgICBjb25zdCBpc0V4cGxpY2l0RHluYW1pYyA9IGlzQ29tcG9uZW50VGFnKHRhZyk7XHJcbiAgICBjb25zdCBpc1Byb3AgPSBmaW5kUHJvcChub2RlLCAnaXMnKTtcclxuICAgIGlmIChpc1Byb3ApIHtcclxuICAgICAgICBpZiAoaXNFeHBsaWNpdER5bmFtaWMgfHxcclxuICAgICAgICAgICAgKGlzQ29tcGF0RW5hYmxlZChcIkNPTVBJTEVSX0lTX09OX0VMRU1FTlRcIiAvKiBDb21waWxlckRlcHJlY2F0aW9uVHlwZXMuQ09NUElMRVJfSVNfT05fRUxFTUVOVCAqLywgY29udGV4dCkpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4cCA9IGlzUHJvcC50eXBlID09PSA2IC8qIE5vZGVUeXBlcy5BVFRSSUJVVEUgKi9cclxuICAgICAgICAgICAgICAgID8gaXNQcm9wLnZhbHVlICYmIGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oaXNQcm9wLnZhbHVlLmNvbnRlbnQsIHRydWUpXHJcbiAgICAgICAgICAgICAgICA6IGlzUHJvcC5leHA7XHJcbiAgICAgICAgICAgIGlmIChleHApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDYWxsRXhwcmVzc2lvbihjb250ZXh0LmhlbHBlcihSRVNPTFZFX0RZTkFNSUNfQ09NUE9ORU5UKSwgW1xyXG4gICAgICAgICAgICAgICAgICAgIGV4cFxyXG4gICAgICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXNQcm9wLnR5cGUgPT09IDYgLyogTm9kZVR5cGVzLkFUVFJJQlVURSAqLyAmJlxyXG4gICAgICAgICAgICBpc1Byb3AudmFsdWUuY29udGVudC5zdGFydHNXaXRoKCd2dWU6JykpIHtcclxuICAgICAgICAgICAgLy8gPGJ1dHRvbiBpcz1cInZ1ZTp4eHhcIj5cclxuICAgICAgICAgICAgLy8gaWYgbm90IDxjb21wb25lbnQ+LCBvbmx5IGlzIHZhbHVlIHRoYXQgc3RhcnRzIHdpdGggXCJ2dWU6XCIgd2lsbCBiZVxyXG4gICAgICAgICAgICAvLyB0cmVhdGVkIGFzIGNvbXBvbmVudCBieSB0aGUgcGFyc2UgcGhhc2UgYW5kIHJlYWNoIGhlcmUsIHVubGVzcyBpdCdzXHJcbiAgICAgICAgICAgIC8vIGNvbXBhdCBtb2RlIHdoZXJlIGFsbCBpcyB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgY29tcG9uZW50c1xyXG4gICAgICAgICAgICB0YWcgPSBpc1Byb3AudmFsdWUuY29udGVudC5zbGljZSg0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyAxLjUgdi1pcyAoVE9ETzogRGVwcmVjYXRlKVxyXG4gICAgY29uc3QgaXNEaXIgPSAhaXNFeHBsaWNpdER5bmFtaWMgJiYgZmluZERpcihub2RlLCAnaXMnKTtcclxuICAgIGlmIChpc0RpciAmJiBpc0Rpci5leHApIHtcclxuICAgICAgICByZXR1cm4gY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoUkVTT0xWRV9EWU5BTUlDX0NPTVBPTkVOVCksIFtcclxuICAgICAgICAgICAgaXNEaXIuZXhwXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcbiAgICAvLyAyLiBidWlsdC1pbiBjb21wb25lbnRzIChUZWxlcG9ydCwgVHJhbnNpdGlvbiwgS2VlcEFsaXZlLCBTdXNwZW5zZS4uLilcclxuICAgIGNvbnN0IGJ1aWx0SW4gPSBpc0NvcmVDb21wb25lbnQodGFnKSB8fCBjb250ZXh0LmlzQnVpbHRJbkNvbXBvbmVudCh0YWcpO1xyXG4gICAgaWYgKGJ1aWx0SW4pIHtcclxuICAgICAgICAvLyBidWlsdC1pbnMgYXJlIHNpbXBseSBmYWxsdGhyb3VnaHMgLyBoYXZlIHNwZWNpYWwgaGFuZGxpbmcgZHVyaW5nIHNzclxyXG4gICAgICAgIC8vIHNvIHdlIGRvbid0IG5lZWQgdG8gaW1wb3J0IHRoZWlyIHJ1bnRpbWUgZXF1aXZhbGVudHNcclxuICAgICAgICBpZiAoIXNzcilcclxuICAgICAgICAgICAgY29udGV4dC5oZWxwZXIoYnVpbHRJbik7XHJcbiAgICAgICAgcmV0dXJuIGJ1aWx0SW47XHJcbiAgICB9XHJcbiAgICAvLyA1LiB1c2VyIGNvbXBvbmVudCAocmVzb2x2ZSlcclxuICAgIGNvbnRleHQuaGVscGVyKFJFU09MVkVfQ09NUE9ORU5UKTtcclxuICAgIGNvbnRleHQuY29tcG9uZW50cy5hZGQodGFnKTtcclxuICAgIHJldHVybiB0b1ZhbGlkQXNzZXRJZCh0YWcsIGBjb21wb25lbnRgKTtcclxufVxyXG5mdW5jdGlvbiBidWlsZFByb3BzKG5vZGUsIGNvbnRleHQsIHByb3BzID0gbm9kZS5wcm9wcywgaXNDb21wb25lbnQsIGlzRHluYW1pY0NvbXBvbmVudCwgc3NyID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHsgdGFnLCBsb2M6IGVsZW1lbnRMb2MsIGNoaWxkcmVuIH0gPSBub2RlO1xyXG4gICAgbGV0IHByb3BlcnRpZXMgPSBbXTtcclxuICAgIGNvbnN0IG1lcmdlQXJncyA9IFtdO1xyXG4gICAgY29uc3QgcnVudGltZURpcmVjdGl2ZXMgPSBbXTtcclxuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGRyZW4ubGVuZ3RoID4gMDtcclxuICAgIGxldCBzaG91bGRVc2VCbG9jayA9IGZhbHNlO1xyXG4gICAgLy8gcGF0Y2hGbGFnIGFuYWx5c2lzXHJcbiAgICBsZXQgcGF0Y2hGbGFnID0gMDtcclxuICAgIGxldCBoYXNSZWYgPSBmYWxzZTtcclxuICAgIGxldCBoYXNDbGFzc0JpbmRpbmcgPSBmYWxzZTtcclxuICAgIGxldCBoYXNTdHlsZUJpbmRpbmcgPSBmYWxzZTtcclxuICAgIGxldCBoYXNIeWRyYXRpb25FdmVudEJpbmRpbmcgPSBmYWxzZTtcclxuICAgIGxldCBoYXNEeW5hbWljS2V5cyA9IGZhbHNlO1xyXG4gICAgbGV0IGhhc1Zub2RlSG9vayA9IGZhbHNlO1xyXG4gICAgY29uc3QgZHluYW1pY1Byb3BOYW1lcyA9IFtdO1xyXG4gICAgY29uc3QgYW5hbHl6ZVBhdGNoRmxhZyA9ICh7IGtleSwgdmFsdWUgfSkgPT4ge1xyXG4gICAgICAgIGlmIChpc1N0YXRpY0V4cChrZXkpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkuY29udGVudDtcclxuICAgICAgICAgICAgY29uc3QgaXNFdmVudEhhbmRsZXIgPSBpc09uKG5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNFdmVudEhhbmRsZXIgJiZcclxuICAgICAgICAgICAgICAgICghaXNDb21wb25lbnQgfHwgaXNEeW5hbWljQ29tcG9uZW50KSAmJlxyXG4gICAgICAgICAgICAgICAgLy8gb21pdCB0aGUgZmxhZyBmb3IgY2xpY2sgaGFuZGxlcnMgYmVjYXVzZSBoeWRyYXRpb24gZ2l2ZXMgY2xpY2tcclxuICAgICAgICAgICAgICAgIC8vIGRlZGljYXRlZCBmYXN0IHBhdGguXHJcbiAgICAgICAgICAgICAgICBuYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdvbmNsaWNrJyAmJlxyXG4gICAgICAgICAgICAgICAgLy8gb21pdCB2LW1vZGVsIGhhbmRsZXJzXHJcbiAgICAgICAgICAgICAgICBuYW1lICE9PSAnb25VcGRhdGU6bW9kZWxWYWx1ZScgJiZcclxuICAgICAgICAgICAgICAgIC8vIG9taXQgb25Wbm9kZVhYWCBob29rc1xyXG4gICAgICAgICAgICAgICAgIWlzUmVzZXJ2ZWRQcm9wKG5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICBoYXNIeWRyYXRpb25FdmVudEJpbmRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpc0V2ZW50SGFuZGxlciAmJiBpc1Jlc2VydmVkUHJvcChuYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgaGFzVm5vZGVIb29rID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodmFsdWUudHlwZSA9PT0gMjAgLyogTm9kZVR5cGVzLkpTX0NBQ0hFX0VYUFJFU1NJT04gKi8gfHxcclxuICAgICAgICAgICAgICAgICgodmFsdWUudHlwZSA9PT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8gfHxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS50eXBlID09PSA4IC8qIE5vZGVUeXBlcy5DT01QT1VORF9FWFBSRVNTSU9OICovKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGdldENvbnN0YW50VHlwZSh2YWx1ZSwgY29udGV4dCkgPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gc2tpcCBpZiB0aGUgcHJvcCBpcyBhIGNhY2hlZCBoYW5kbGVyIG9yIGhhcyBjb25zdGFudCB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChuYW1lID09PSAncmVmJykge1xyXG4gICAgICAgICAgICAgICAgaGFzUmVmID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChuYW1lID09PSAnY2xhc3MnKSB7XHJcbiAgICAgICAgICAgICAgICBoYXNDbGFzc0JpbmRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT09ICdzdHlsZScpIHtcclxuICAgICAgICAgICAgICAgIGhhc1N0eWxlQmluZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAobmFtZSAhPT0gJ2tleScgJiYgIWR5bmFtaWNQcm9wTmFtZXMuaW5jbHVkZXMobmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIGR5bmFtaWNQcm9wTmFtZXMucHVzaChuYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB0cmVhdCB0aGUgZHluYW1pYyBjbGFzcyBhbmQgc3R5bGUgYmluZGluZyBvZiB0aGUgY29tcG9uZW50IGFzIGR5bmFtaWMgcHJvcHNcclxuICAgICAgICAgICAgaWYgKGlzQ29tcG9uZW50ICYmXHJcbiAgICAgICAgICAgICAgICAobmFtZSA9PT0gJ2NsYXNzJyB8fCBuYW1lID09PSAnc3R5bGUnKSAmJlxyXG4gICAgICAgICAgICAgICAgIWR5bmFtaWNQcm9wTmFtZXMuaW5jbHVkZXMobmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIGR5bmFtaWNQcm9wTmFtZXMucHVzaChuYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaGFzRHluYW1pY0tleXMgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgLy8gc3RhdGljIGF0dHJpYnV0ZVxyXG4gICAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1tpXTtcclxuICAgICAgICBpZiAocHJvcC50eXBlID09PSA2IC8qIE5vZGVUeXBlcy5BVFRSSUJVVEUgKi8pIHtcclxuICAgICAgICAgICAgY29uc3QgeyBsb2MsIG5hbWUsIHZhbHVlIH0gPSBwcm9wO1xyXG4gICAgICAgICAgICBsZXQgaXNTdGF0aWMgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAobmFtZSA9PT0gJ3JlZicpIHtcclxuICAgICAgICAgICAgICAgIGhhc1JlZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5zY29wZXMudkZvciA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goY3JlYXRlT2JqZWN0UHJvcGVydHkoY3JlYXRlU2ltcGxlRXhwcmVzc2lvbigncmVmX2ZvcicsIHRydWUpLCBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKCd0cnVlJykpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBza2lwIGlzIG9uIDxjb21wb25lbnQ+LCBvciBpcz1cInZ1ZTp4eHhcIlxyXG4gICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2lzJyAmJlxyXG4gICAgICAgICAgICAgICAgKGlzQ29tcG9uZW50VGFnKHRhZykgfHxcclxuICAgICAgICAgICAgICAgICAgICAodmFsdWUgJiYgdmFsdWUuY29udGVudC5zdGFydHNXaXRoKCd2dWU6JykpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKGlzQ29tcGF0RW5hYmxlZChcIkNPTVBJTEVSX0lTX09OX0VMRU1FTlRcIiAvKiBDb21waWxlckRlcHJlY2F0aW9uVHlwZXMuQ09NUElMRVJfSVNfT05fRUxFTUVOVCAqLywgY29udGV4dCkpKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKGNyZWF0ZU9iamVjdFByb3BlcnR5KGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24obmFtZSwgdHJ1ZSwgZ2V0SW5uZXJSYW5nZShsb2MsIDAsIG5hbWUubGVuZ3RoKSksIGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24odmFsdWUgPyB2YWx1ZS5jb250ZW50IDogJycsIGlzU3RhdGljLCB2YWx1ZSA/IHZhbHVlLmxvYyA6IGxvYykpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGRpcmVjdGl2ZXNcclxuICAgICAgICAgICAgY29uc3QgeyBuYW1lLCBhcmcsIGV4cCwgbG9jIH0gPSBwcm9wO1xyXG4gICAgICAgICAgICBjb25zdCBpc1ZCaW5kID0gbmFtZSA9PT0gJ2JpbmQnO1xyXG4gICAgICAgICAgICBjb25zdCBpc1ZPbiA9IG5hbWUgPT09ICdvbic7XHJcbiAgICAgICAgICAgIC8vIHNraXAgdi1zbG90IC0gaXQgaXMgaGFuZGxlZCBieSBpdHMgZGVkaWNhdGVkIHRyYW5zZm9ybS5cclxuICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdzbG90Jykge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc0NvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDQwIC8qIEVycm9yQ29kZXMuWF9WX1NMT1RfTUlTUExBQ0VEICovLCBsb2MpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIHNraXAgdi1vbmNlL3YtbWVtbyAtIHRoZXkgYXJlIGhhbmRsZWQgYnkgZGVkaWNhdGVkIHRyYW5zZm9ybXMuXHJcbiAgICAgICAgICAgIGlmIChuYW1lID09PSAnb25jZScgfHwgbmFtZSA9PT0gJ21lbW8nKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBza2lwIHYtaXMgYW5kIDppcyBvbiA8Y29tcG9uZW50PlxyXG4gICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2lzJyB8fFxyXG4gICAgICAgICAgICAgICAgKGlzVkJpbmQgJiZcclxuICAgICAgICAgICAgICAgICAgICBpc1N0YXRpY0FyZ09mKGFyZywgJ2lzJykgJiZcclxuICAgICAgICAgICAgICAgICAgICAoaXNDb21wb25lbnRUYWcodGFnKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXNDb21wYXRFbmFibGVkKFwiQ09NUElMRVJfSVNfT05fRUxFTUVOVFwiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9JU19PTl9FTEVNRU5UICovLCBjb250ZXh0KSkpKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gc2tpcCB2LW9uIGluIFNTUiBjb21waWxhdGlvblxyXG4gICAgICAgICAgICBpZiAoaXNWT24gJiYgc3NyKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIC8vICM5Mzg6IGVsZW1lbnRzIHdpdGggZHluYW1pYyBrZXlzIHNob3VsZCBiZSBmb3JjZWQgaW50byBibG9ja3NcclxuICAgICAgICAgICAgKGlzVkJpbmQgJiYgaXNTdGF0aWNBcmdPZihhcmcsICdrZXknKSkgfHxcclxuICAgICAgICAgICAgICAgIC8vIGlubGluZSBiZWZvcmUtdXBkYXRlIGhvb2tzIG5lZWQgdG8gZm9yY2UgYmxvY2sgc28gdGhhdCBpdCBpcyBpbnZva2VkXHJcbiAgICAgICAgICAgICAgICAvLyBiZWZvcmUgY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgIChpc1ZPbiAmJiBoYXNDaGlsZHJlbiAmJiBpc1N0YXRpY0FyZ09mKGFyZywgJ3Z1ZTpiZWZvcmUtdXBkYXRlJykpKSB7XHJcbiAgICAgICAgICAgICAgICBzaG91bGRVc2VCbG9jayA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGlzVkJpbmQgJiYgaXNTdGF0aWNBcmdPZihhcmcsICdyZWYnKSAmJiBjb250ZXh0LnNjb3Blcy52Rm9yID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKGNyZWF0ZU9iamVjdFByb3BlcnR5KGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oJ3JlZl9mb3InLCB0cnVlKSwgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbigndHJ1ZScpKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGZvciB2LWJpbmQgYW5kIHYtb24gd2l0aCBubyBhcmd1bWVudFxyXG4gICAgICAgICAgICBpZiAoIWFyZyAmJiAoaXNWQmluZCB8fCBpc1ZPbikpIHtcclxuICAgICAgICAgICAgICAgIGhhc0R5bmFtaWNLZXlzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmIChleHApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydGllcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VBcmdzLnB1c2goY3JlYXRlT2JqZWN0RXhwcmVzc2lvbihkZWR1cGVQcm9wZXJ0aWVzKHByb3BlcnRpZXMpLCBlbGVtZW50TG9jKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVkJpbmQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMi54IHYtYmluZCBvYmplY3Qgb3JkZXIgY29tcGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzT3ZlcnJpZGFibGVLZXlzID0gbWVyZ2VBcmdzLnNvbWUoYXJnID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZy50eXBlID09PSAxNSAvKiBOb2RlVHlwZXMuSlNfT0JKRUNUX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhcmcucHJvcGVydGllcy5zb21lKCh7IGtleSB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleS50eXBlICE9PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAha2V5LmlzU3RhdGljKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGtleS5jb250ZW50ICE9PSAnY2xhc3MnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleS5jb250ZW50ICE9PSAnc3R5bGUnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc09uKGtleS5jb250ZW50KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR5bmFtaWMgZXhwcmVzc2lvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT3ZlcnJpZGFibGVLZXlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29tcGF0RW5hYmxlZChcIkNPTVBJTEVSX1ZfQklORF9PQkpFQ1RfT1JERVJcIiAvKiBDb21waWxlckRlcHJlY2F0aW9uVHlwZXMuQ09NUElMRVJfVl9CSU5EX09CSkVDVF9PUkRFUiAqLywgY29udGV4dCwgbG9jKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNDb21wYXRFbmFibGVkKFwiQ09NUElMRVJfVl9CSU5EX09CSkVDVF9PUkRFUlwiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9WX0JJTkRfT0JKRUNUX09SREVSICovLCBjb250ZXh0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlQXJncy51bnNoaWZ0KGV4cCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VBcmdzLnB1c2goZXhwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHYtb249XCJvYmpcIiAtPiB0b0hhbmRsZXJzKG9iailcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VBcmdzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogMTQgLyogTm9kZVR5cGVzLkpTX0NBTExfRVhQUkVTU0lPTiAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlZTogY29udGV4dC5oZWxwZXIoVE9fSEFORExFUlMpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzOiBpc0NvbXBvbmVudCA/IFtleHBdIDogW2V4cCwgYHRydWVgXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlQ29tcGlsZXJFcnJvcihpc1ZCaW5kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gMzQgLyogRXJyb3JDb2Rlcy5YX1ZfQklORF9OT19FWFBSRVNTSU9OICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogMzUgLyogRXJyb3JDb2Rlcy5YX1ZfT05fTk9fRVhQUkVTU0lPTiAqLywgbG9jKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBkaXJlY3RpdmVUcmFuc2Zvcm0gPSBjb250ZXh0LmRpcmVjdGl2ZVRyYW5zZm9ybXNbbmFtZV07XHJcbiAgICAgICAgICAgIGlmIChkaXJlY3RpdmVUcmFuc2Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIC8vIGhhcyBidWlsdC1pbiBkaXJlY3RpdmUgdHJhbnNmb3JtLlxyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcm9wcywgbmVlZFJ1bnRpbWUgfSA9IGRpcmVjdGl2ZVRyYW5zZm9ybShwcm9wLCBub2RlLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgICFzc3IgJiYgcHJvcHMuZm9yRWFjaChhbmFseXplUGF0Y2hGbGFnKTtcclxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaCguLi5wcm9wcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAobmVlZFJ1bnRpbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBydW50aW1lRGlyZWN0aXZlcy5wdXNoKHByb3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1N5bWJvbChuZWVkUnVudGltZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlSW1wb3J0TWFwLnNldChwcm9wLCBuZWVkUnVudGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCFpc0J1aWx0SW5EaXJlY3RpdmUobmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIC8vIG5vIGJ1aWx0LWluIHRyYW5zZm9ybSwgdGhpcyBpcyBhIHVzZXIgY3VzdG9tIGRpcmVjdGl2ZS5cclxuICAgICAgICAgICAgICAgIHJ1bnRpbWVEaXJlY3RpdmVzLnB1c2gocHJvcCk7XHJcbiAgICAgICAgICAgICAgICAvLyBjdXN0b20gZGlycyBtYXkgdXNlIGJlZm9yZVVwZGF0ZSBzbyB0aGV5IG5lZWQgdG8gZm9yY2UgYmxvY2tzXHJcbiAgICAgICAgICAgICAgICAvLyB0byBlbnN1cmUgYmVmb3JlLXVwZGF0ZSBnZXRzIGNhbGxlZCBiZWZvcmUgY2hpbGRyZW4gdXBkYXRlXHJcbiAgICAgICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRVc2VCbG9jayA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgcHJvcHNFeHByZXNzaW9uID0gdW5kZWZpbmVkO1xyXG4gICAgLy8gaGFzIHYtYmluZD1cIm9iamVjdFwiIG9yIHYtb249XCJvYmplY3RcIiwgd3JhcCB3aXRoIG1lcmdlUHJvcHNcclxuICAgIGlmIChtZXJnZUFyZ3MubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHByb3BlcnRpZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIG1lcmdlQXJncy5wdXNoKGNyZWF0ZU9iamVjdEV4cHJlc3Npb24oZGVkdXBlUHJvcGVydGllcyhwcm9wZXJ0aWVzKSwgZWxlbWVudExvYykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobWVyZ2VBcmdzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgcHJvcHNFeHByZXNzaW9uID0gY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoTUVSR0VfUFJPUFMpLCBtZXJnZUFyZ3MsIGVsZW1lbnRMb2MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gc2luZ2xlIHYtYmluZCB3aXRoIG5vdGhpbmcgZWxzZSAtIG5vIG5lZWQgZm9yIGEgbWVyZ2VQcm9wcyBjYWxsXHJcbiAgICAgICAgICAgIHByb3BzRXhwcmVzc2lvbiA9IG1lcmdlQXJnc1swXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCkge1xyXG4gICAgICAgIHByb3BzRXhwcmVzc2lvbiA9IGNyZWF0ZU9iamVjdEV4cHJlc3Npb24oZGVkdXBlUHJvcGVydGllcyhwcm9wZXJ0aWVzKSwgZWxlbWVudExvYyk7XHJcbiAgICB9XHJcbiAgICAvLyBwYXRjaEZsYWcgYW5hbHlzaXNcclxuICAgIGlmIChoYXNEeW5hbWljS2V5cykge1xyXG4gICAgICAgIHBhdGNoRmxhZyB8PSAxNiAvKiBQYXRjaEZsYWdzLkZVTExfUFJPUFMgKi87XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBpZiAoaGFzQ2xhc3NCaW5kaW5nICYmICFpc0NvbXBvbmVudCkge1xyXG4gICAgICAgICAgICBwYXRjaEZsYWcgfD0gMiAvKiBQYXRjaEZsYWdzLkNMQVNTICovO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaGFzU3R5bGVCaW5kaW5nICYmICFpc0NvbXBvbmVudCkge1xyXG4gICAgICAgICAgICBwYXRjaEZsYWcgfD0gNCAvKiBQYXRjaEZsYWdzLlNUWUxFICovO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZHluYW1pY1Byb3BOYW1lcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcGF0Y2hGbGFnIHw9IDggLyogUGF0Y2hGbGFncy5QUk9QUyAqLztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGhhc0h5ZHJhdGlvbkV2ZW50QmluZGluZykge1xyXG4gICAgICAgICAgICBwYXRjaEZsYWcgfD0gMzIgLyogUGF0Y2hGbGFncy5IWURSQVRFX0VWRU5UUyAqLztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXNob3VsZFVzZUJsb2NrICYmXHJcbiAgICAgICAgKHBhdGNoRmxhZyA9PT0gMCB8fCBwYXRjaEZsYWcgPT09IDMyIC8qIFBhdGNoRmxhZ3MuSFlEUkFURV9FVkVOVFMgKi8pICYmXHJcbiAgICAgICAgKGhhc1JlZiB8fCBoYXNWbm9kZUhvb2sgfHwgcnVudGltZURpcmVjdGl2ZXMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBwYXRjaEZsYWcgfD0gNTEyIC8qIFBhdGNoRmxhZ3MuTkVFRF9QQVRDSCAqLztcclxuICAgIH1cclxuICAgIC8vIHByZS1ub3JtYWxpemUgcHJvcHMsIFNTUiBpcyBza2lwcGVkIGZvciBub3dcclxuICAgIGlmICghY29udGV4dC5pblNTUiAmJiBwcm9wc0V4cHJlc3Npb24pIHtcclxuICAgICAgICBzd2l0Y2ggKHByb3BzRXhwcmVzc2lvbi50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgMTUgLyogTm9kZVR5cGVzLkpTX09CSkVDVF9FWFBSRVNTSU9OICovOlxyXG4gICAgICAgICAgICAgICAgLy8gbWVhbnMgdGhhdCB0aGVyZSBpcyBubyB2LWJpbmQsXHJcbiAgICAgICAgICAgICAgICAvLyBidXQgc3RpbGwgbmVlZCB0byBkZWFsIHdpdGggZHluYW1pYyBrZXkgYmluZGluZ1xyXG4gICAgICAgICAgICAgICAgbGV0IGNsYXNzS2V5SW5kZXggPSAtMTtcclxuICAgICAgICAgICAgICAgIGxldCBzdHlsZUtleUluZGV4ID0gLTE7XHJcbiAgICAgICAgICAgICAgICBsZXQgaGFzRHluYW1pY0tleSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wc0V4cHJlc3Npb24ucHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IHByb3BzRXhwcmVzc2lvbi5wcm9wZXJ0aWVzW2ldLmtleTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNTdGF0aWNFeHAoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LmNvbnRlbnQgPT09ICdjbGFzcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzS2V5SW5kZXggPSBpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleS5jb250ZW50ID09PSAnc3R5bGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUtleUluZGV4ID0gaTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgha2V5LmlzSGFuZGxlcktleSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNEeW5hbWljS2V5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc1Byb3AgPSBwcm9wc0V4cHJlc3Npb24ucHJvcGVydGllc1tjbGFzc0tleUluZGV4XTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlUHJvcCA9IHByb3BzRXhwcmVzc2lvbi5wcm9wZXJ0aWVzW3N0eWxlS2V5SW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgLy8gbm8gZHluYW1pYyBrZXlcclxuICAgICAgICAgICAgICAgIGlmICghaGFzRHluYW1pY0tleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbGFzc1Byb3AgJiYgIWlzU3RhdGljRXhwKGNsYXNzUHJvcC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NQcm9wLnZhbHVlID0gY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoTk9STUFMSVpFX0NMQVNTKSwgW2NsYXNzUHJvcC52YWx1ZV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGVQcm9wICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzdGF0aWMgc3R5bGUgaXMgY29tcGlsZWQgaW50byBhbiBvYmplY3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHVzZSBgaGFzU3R5bGVCaW5kaW5nYCB0byBlbnN1cmUgdGhhdCBpdCBpcyBhIGR5bmFtaWMgc3R5bGUgYmluZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaGFzU3R5bGVCaW5kaW5nIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3R5bGVQcm9wLnZhbHVlLnR5cGUgPT09IDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVQcm9wLnZhbHVlLmNvbnRlbnQudHJpbSgpWzBdID09PSBgW2ApIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2LWJpbmQ6c3R5bGUgYW5kIHN0eWxlIGJvdGggZXhpc3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2LWJpbmQ6c3R5bGUgd2l0aCBzdGF0aWMgbGl0ZXJhbCBvYmplY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlUHJvcC52YWx1ZS50eXBlID09PSAxNyAvKiBOb2RlVHlwZXMuSlNfQVJSQVlfRVhQUkVTU0lPTiAqLykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVQcm9wLnZhbHVlID0gY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoTk9STUFMSVpFX1NUWUxFKSwgW3N0eWxlUHJvcC52YWx1ZV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGR5bmFtaWMga2V5IGJpbmRpbmcsIHdyYXAgd2l0aCBgbm9ybWFsaXplUHJvcHNgXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcHNFeHByZXNzaW9uID0gY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoTk9STUFMSVpFX1BST1BTKSwgW3Byb3BzRXhwcmVzc2lvbl0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgMTQgLyogTm9kZVR5cGVzLkpTX0NBTExfRVhQUkVTU0lPTiAqLzpcclxuICAgICAgICAgICAgICAgIC8vIG1lcmdlUHJvcHMgY2FsbCwgZG8gbm90aGluZ1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAvLyBzaW5nbGUgdi1iaW5kXHJcbiAgICAgICAgICAgICAgICBwcm9wc0V4cHJlc3Npb24gPSBjcmVhdGVDYWxsRXhwcmVzc2lvbihjb250ZXh0LmhlbHBlcihOT1JNQUxJWkVfUFJPUFMpLCBbXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoR1VBUkRfUkVBQ1RJVkVfUFJPUFMpLCBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzRXhwcmVzc2lvblxyXG4gICAgICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJvcHM6IHByb3BzRXhwcmVzc2lvbixcclxuICAgICAgICBkaXJlY3RpdmVzOiBydW50aW1lRGlyZWN0aXZlcyxcclxuICAgICAgICBwYXRjaEZsYWcsXHJcbiAgICAgICAgZHluYW1pY1Byb3BOYW1lcyxcclxuICAgICAgICBzaG91bGRVc2VCbG9ja1xyXG4gICAgfTtcclxufVxyXG4vLyBEZWR1cGUgcHJvcHMgaW4gYW4gb2JqZWN0IGxpdGVyYWwuXHJcbi8vIExpdGVyYWwgZHVwbGljYXRlZCBhdHRyaWJ1dGVzIHdvdWxkIGhhdmUgYmVlbiB3YXJuZWQgZHVyaW5nIHRoZSBwYXJzZSBwaGFzZSxcclxuLy8gaG93ZXZlciwgaXQncyBwb3NzaWJsZSB0byBlbmNvdW50ZXIgZHVwbGljYXRlZCBgb25YWFhgIGhhbmRsZXJzIHdpdGggZGlmZmVyZW50XHJcbi8vIG1vZGlmaWVycy4gV2UgYWxzbyBuZWVkIHRvIG1lcmdlIHN0YXRpYyBhbmQgZHluYW1pYyBjbGFzcyAvIHN0eWxlIGF0dHJpYnV0ZXMuXHJcbi8vIC0gb25YWFggaGFuZGxlcnMgLyBzdHlsZTogbWVyZ2UgaW50byBhcnJheVxyXG4vLyAtIGNsYXNzOiBtZXJnZSBpbnRvIHNpbmdsZSBleHByZXNzaW9uIHdpdGggY29uY2F0ZW5hdGlvblxyXG5mdW5jdGlvbiBkZWR1cGVQcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcclxuICAgIGNvbnN0IGtub3duUHJvcHMgPSBuZXcgTWFwKCk7XHJcbiAgICBjb25zdCBkZWR1cGVkID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBwcm9wID0gcHJvcGVydGllc1tpXTtcclxuICAgICAgICAvLyBkeW5hbWljIGtleXMgYXJlIGFsd2F5cyBhbGxvd2VkXHJcbiAgICAgICAgaWYgKHByb3Aua2V5LnR5cGUgPT09IDggLyogTm9kZVR5cGVzLkNPTVBPVU5EX0VYUFJFU1NJT04gKi8gfHwgIXByb3Aua2V5LmlzU3RhdGljKSB7XHJcbiAgICAgICAgICAgIGRlZHVwZWQucHVzaChwcm9wKTtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG5hbWUgPSBwcm9wLmtleS5jb250ZW50O1xyXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0ga25vd25Qcm9wcy5nZXQobmFtZSk7XHJcbiAgICAgICAgaWYgKGV4aXN0aW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChuYW1lID09PSAnc3R5bGUnIHx8IG5hbWUgPT09ICdjbGFzcycgfHwgaXNPbihuYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgbWVyZ2VBc0FycmF5KGV4aXN0aW5nLCBwcm9wKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB1bmV4cGVjdGVkIGR1cGxpY2F0ZSwgc2hvdWxkIGhhdmUgZW1pdHRlZCBlcnJvciBkdXJpbmcgcGFyc2VcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGtub3duUHJvcHMuc2V0KG5hbWUsIHByb3ApO1xyXG4gICAgICAgICAgICBkZWR1cGVkLnB1c2gocHJvcCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlZHVwZWQ7XHJcbn1cclxuZnVuY3Rpb24gbWVyZ2VBc0FycmF5KGV4aXN0aW5nLCBpbmNvbWluZykge1xyXG4gICAgaWYgKGV4aXN0aW5nLnZhbHVlLnR5cGUgPT09IDE3IC8qIE5vZGVUeXBlcy5KU19BUlJBWV9FWFBSRVNTSU9OICovKSB7XHJcbiAgICAgICAgZXhpc3RpbmcudmFsdWUuZWxlbWVudHMucHVzaChpbmNvbWluZy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBleGlzdGluZy52YWx1ZSA9IGNyZWF0ZUFycmF5RXhwcmVzc2lvbihbZXhpc3RpbmcudmFsdWUsIGluY29taW5nLnZhbHVlXSwgZXhpc3RpbmcubG9jKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBidWlsZERpcmVjdGl2ZUFyZ3MoZGlyLCBjb250ZXh0KSB7XHJcbiAgICBjb25zdCBkaXJBcmdzID0gW107XHJcbiAgICBjb25zdCBydW50aW1lID0gZGlyZWN0aXZlSW1wb3J0TWFwLmdldChkaXIpO1xyXG4gICAgaWYgKHJ1bnRpbWUpIHtcclxuICAgICAgICAvLyBidWlsdC1pbiBkaXJlY3RpdmUgd2l0aCBydW50aW1lXHJcbiAgICAgICAgZGlyQXJncy5wdXNoKGNvbnRleHQuaGVscGVyU3RyaW5nKHJ1bnRpbWUpKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gaW5qZWN0IHN0YXRlbWVudCBmb3IgcmVzb2x2aW5nIGRpcmVjdGl2ZVxyXG4gICAgICAgICAgICBjb250ZXh0LmhlbHBlcihSRVNPTFZFX0RJUkVDVElWRSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZGlyZWN0aXZlcy5hZGQoZGlyLm5hbWUpO1xyXG4gICAgICAgICAgICBkaXJBcmdzLnB1c2godG9WYWxpZEFzc2V0SWQoZGlyLm5hbWUsIGBkaXJlY3RpdmVgKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgeyBsb2MgfSA9IGRpcjtcclxuICAgIGlmIChkaXIuZXhwKVxyXG4gICAgICAgIGRpckFyZ3MucHVzaChkaXIuZXhwKTtcclxuICAgIGlmIChkaXIuYXJnKSB7XHJcbiAgICAgICAgaWYgKCFkaXIuZXhwKSB7XHJcbiAgICAgICAgICAgIGRpckFyZ3MucHVzaChgdm9pZCAwYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpckFyZ3MucHVzaChkaXIuYXJnKTtcclxuICAgIH1cclxuICAgIGlmIChPYmplY3Qua2V5cyhkaXIubW9kaWZpZXJzKS5sZW5ndGgpIHtcclxuICAgICAgICBpZiAoIWRpci5hcmcpIHtcclxuICAgICAgICAgICAgaWYgKCFkaXIuZXhwKSB7XHJcbiAgICAgICAgICAgICAgICBkaXJBcmdzLnB1c2goYHZvaWQgMGApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRpckFyZ3MucHVzaChgdm9pZCAwYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRydWVFeHByZXNzaW9uID0gY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgdHJ1ZWAsIGZhbHNlLCBsb2MpO1xyXG4gICAgICAgIGRpckFyZ3MucHVzaChjcmVhdGVPYmplY3RFeHByZXNzaW9uKGRpci5tb2RpZmllcnMubWFwKG1vZGlmaWVyID0+IGNyZWF0ZU9iamVjdFByb3BlcnR5KG1vZGlmaWVyLCB0cnVlRXhwcmVzc2lvbikpLCBsb2MpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjcmVhdGVBcnJheUV4cHJlc3Npb24oZGlyQXJncywgZGlyLmxvYyk7XHJcbn1cclxuZnVuY3Rpb24gc3RyaW5naWZ5RHluYW1pY1Byb3BOYW1lcyhwcm9wcykge1xyXG4gICAgbGV0IHByb3BzTmFtZXNTdHJpbmcgPSBgW2A7XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHByb3BzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIHByb3BzTmFtZXNTdHJpbmcgKz0gSlNPTi5zdHJpbmdpZnkocHJvcHNbaV0pO1xyXG4gICAgICAgIGlmIChpIDwgbCAtIDEpXHJcbiAgICAgICAgICAgIHByb3BzTmFtZXNTdHJpbmcgKz0gJywgJztcclxuICAgIH1cclxuICAgIHJldHVybiBwcm9wc05hbWVzU3RyaW5nICsgYF1gO1xyXG59XHJcbmZ1bmN0aW9uIGlzQ29tcG9uZW50VGFnKHRhZykge1xyXG4gICAgcmV0dXJuIHRhZyA9PT0gJ2NvbXBvbmVudCcgfHwgdGFnID09PSAnQ29tcG9uZW50JztcclxufVxuXG4ocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylcclxuICAgID8gT2JqZWN0LmZyZWV6ZSh7fSlcclxuICAgIDoge307XHJcbihwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IE9iamVjdC5mcmVlemUoW10pIDogW107XHJcbmNvbnN0IGNhY2hlU3RyaW5nRnVuY3Rpb24gPSAoZm4pID0+IHtcclxuICAgIGNvbnN0IGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcclxuICAgIHJldHVybiAoKHN0cikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhpdCA9IGNhY2hlW3N0cl07XHJcbiAgICAgICAgcmV0dXJuIGhpdCB8fCAoY2FjaGVbc3RyXSA9IGZuKHN0cikpO1xyXG4gICAgfSk7XHJcbn07XHJcbmNvbnN0IGNhbWVsaXplUkUgPSAvLShcXHcpL2c7XHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgY2FtZWxpemUgPSBjYWNoZVN0cmluZ0Z1bmN0aW9uKChzdHIpID0+IHtcclxuICAgIHJldHVybiBzdHIucmVwbGFjZShjYW1lbGl6ZVJFLCAoXywgYykgPT4gKGMgPyBjLnRvVXBwZXJDYXNlKCkgOiAnJykpO1xyXG59KTtcblxuY29uc3QgdHJhbnNmb3JtU2xvdE91dGxldCA9IChub2RlLCBjb250ZXh0KSA9PiB7XHJcbiAgICBpZiAoaXNTbG90T3V0bGV0KG5vZGUpKSB7XHJcbiAgICAgICAgY29uc3QgeyBjaGlsZHJlbiwgbG9jIH0gPSBub2RlO1xyXG4gICAgICAgIGNvbnN0IHsgc2xvdE5hbWUsIHNsb3RQcm9wcyB9ID0gcHJvY2Vzc1Nsb3RPdXRsZXQobm9kZSwgY29udGV4dCk7XHJcbiAgICAgICAgY29uc3Qgc2xvdEFyZ3MgPSBbXHJcbiAgICAgICAgICAgIGNvbnRleHQucHJlZml4SWRlbnRpZmllcnMgPyBgX2N0eC4kc2xvdHNgIDogYCRzbG90c2AsXHJcbiAgICAgICAgICAgIHNsb3ROYW1lLFxyXG4gICAgICAgICAgICAne30nLFxyXG4gICAgICAgICAgICAndW5kZWZpbmVkJyxcclxuICAgICAgICAgICAgJ3RydWUnXHJcbiAgICAgICAgXTtcclxuICAgICAgICBsZXQgZXhwZWN0ZWRMZW4gPSAyO1xyXG4gICAgICAgIGlmIChzbG90UHJvcHMpIHtcclxuICAgICAgICAgICAgc2xvdEFyZ3NbMl0gPSBzbG90UHJvcHM7XHJcbiAgICAgICAgICAgIGV4cGVjdGVkTGVuID0gMztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBzbG90QXJnc1szXSA9IGNyZWF0ZUZ1bmN0aW9uRXhwcmVzc2lvbihbXSwgY2hpbGRyZW4sIGZhbHNlLCBmYWxzZSwgbG9jKTtcclxuICAgICAgICAgICAgZXhwZWN0ZWRMZW4gPSA0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29udGV4dC5zY29wZUlkICYmICFjb250ZXh0LnNsb3R0ZWQpIHtcclxuICAgICAgICAgICAgZXhwZWN0ZWRMZW4gPSA1O1xyXG4gICAgICAgIH1cclxuICAgICAgICBzbG90QXJncy5zcGxpY2UoZXhwZWN0ZWRMZW4pOyAvLyByZW1vdmUgdW51c2VkIGFyZ3VtZW50c1xyXG4gICAgICAgIG5vZGUuY29kZWdlbk5vZGUgPSBjcmVhdGVDYWxsRXhwcmVzc2lvbihjb250ZXh0LmhlbHBlcihSRU5ERVJfU0xPVCksIHNsb3RBcmdzLCBsb2MpO1xyXG4gICAgfVxyXG59O1xyXG5mdW5jdGlvbiBwcm9jZXNzU2xvdE91dGxldChub2RlLCBjb250ZXh0KSB7XHJcbiAgICBsZXQgc2xvdE5hbWUgPSBgXCJkZWZhdWx0XCJgO1xyXG4gICAgbGV0IHNsb3RQcm9wcyA9IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IG5vbk5hbWVQcm9wcyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLnByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgcCA9IG5vZGUucHJvcHNbaV07XHJcbiAgICAgICAgaWYgKHAudHlwZSA9PT0gNiAvKiBOb2RlVHlwZXMuQVRUUklCVVRFICovKSB7XHJcbiAgICAgICAgICAgIGlmIChwLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocC5uYW1lID09PSAnbmFtZScpIHtcclxuICAgICAgICAgICAgICAgICAgICBzbG90TmFtZSA9IEpTT04uc3RyaW5naWZ5KHAudmFsdWUuY29udGVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBwLm5hbWUgPSBjYW1lbGl6ZShwLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbk5hbWVQcm9wcy5wdXNoKHApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocC5uYW1lID09PSAnYmluZCcgJiYgaXNTdGF0aWNBcmdPZihwLmFyZywgJ25hbWUnKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHAuZXhwKVxyXG4gICAgICAgICAgICAgICAgICAgIHNsb3ROYW1lID0gcC5leHA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocC5uYW1lID09PSAnYmluZCcgJiYgcC5hcmcgJiYgaXNTdGF0aWNFeHAocC5hcmcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcC5hcmcuY29udGVudCA9IGNhbWVsaXplKHAuYXJnLmNvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbm9uTmFtZVByb3BzLnB1c2gocCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobm9uTmFtZVByb3BzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCB7IHByb3BzLCBkaXJlY3RpdmVzIH0gPSBidWlsZFByb3BzKG5vZGUsIGNvbnRleHQsIG5vbk5hbWVQcm9wcywgZmFsc2UsIGZhbHNlKTtcclxuICAgICAgICBzbG90UHJvcHMgPSBwcm9wcztcclxuICAgICAgICBpZiAoZGlyZWN0aXZlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZUNvbXBpbGVyRXJyb3IoMzYgLyogRXJyb3JDb2Rlcy5YX1ZfU0xPVF9VTkVYUEVDVEVEX0RJUkVDVElWRV9PTl9TTE9UX09VVExFVCAqLywgZGlyZWN0aXZlc1swXS5sb2MpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHNsb3ROYW1lLFxyXG4gICAgICAgIHNsb3RQcm9wc1xyXG4gICAgfTtcclxufVxuXG5jb25zdCBmbkV4cFJFID0gL15cXHMqKFtcXHckX10rfChhc3luY1xccyopP1xcKFteKV0qP1xcKSlcXHMqPT58XlxccyooYXN5bmNcXHMrKT9mdW5jdGlvbig/OlxccytbXFx3JF0rKT9cXHMqXFwoLztcclxuY29uc3QgdHJhbnNmb3JtT24gPSAoZGlyLCBub2RlLCBjb250ZXh0LCBhdWdtZW50b3IpID0+IHtcclxuICAgIGNvbnN0IHsgbG9jLCBtb2RpZmllcnMsIGFyZyB9ID0gZGlyO1xyXG4gICAgaWYgKCFkaXIuZXhwICYmICFtb2RpZmllcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZUNvbXBpbGVyRXJyb3IoMzUgLyogRXJyb3JDb2Rlcy5YX1ZfT05fTk9fRVhQUkVTU0lPTiAqLywgbG9jKSk7XHJcbiAgICB9XHJcbiAgICBsZXQgZXZlbnROYW1lO1xyXG4gICAgaWYgKGFyZy50eXBlID09PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLykge1xyXG4gICAgICAgIGlmIChhcmcuaXNTdGF0aWMpIHtcclxuICAgICAgICAgICAgbGV0IHJhd05hbWUgPSBhcmcuY29udGVudDtcclxuICAgICAgICAgICAgLy8gVE9ETyBkZXByZWNhdGUgQHZub2RlWFhYIHVzYWdlXHJcbiAgICAgICAgICAgIGlmIChyYXdOYW1lLnN0YXJ0c1dpdGgoJ3Z1ZTonKSkge1xyXG4gICAgICAgICAgICAgICAgcmF3TmFtZSA9IGB2bm9kZS0ke3Jhd05hbWUuc2xpY2UoNCl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBldmVudFN0cmluZyA9IG5vZGUudGFnVHlwZSA9PT0gMSAvKiBFbGVtZW50VHlwZXMuQ09NUE9ORU5UICovIHx8XHJcbiAgICAgICAgICAgICAgICByYXdOYW1lLnN0YXJ0c1dpdGgoJ3Zub2RlJykgfHxcclxuICAgICAgICAgICAgICAgICEvW0EtWl0vLnRlc3QocmF3TmFtZSlcclxuICAgICAgICAgICAgICAgID8gLy8gZm9yIGNvbXBvbmVudCBhbmQgdm5vZGUgbGlmZWN5Y2xlIGV2ZW50IGxpc3RlbmVycywgYXV0byBjb252ZXJ0XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQgdG8gY2FtZWxDYXNlLiBTZWUgaXNzdWUgIzIyNDlcclxuICAgICAgICAgICAgICAgICAgICB0b0hhbmRsZXJLZXkoY2FtZWxpemUkMShyYXdOYW1lKSlcclxuICAgICAgICAgICAgICAgIC8vIHByZXNlcnZlIGNhc2UgZm9yIHBsYWluIGVsZW1lbnQgbGlzdGVuZXJzIHRoYXQgaGF2ZSB1cHBlcmNhc2VcclxuICAgICAgICAgICAgICAgIC8vIGxldHRlcnMsIGFzIHRoZXNlIG1heSBiZSBjdXN0b20gZWxlbWVudHMnIGN1c3RvbSBldmVudHNcclxuICAgICAgICAgICAgICAgIDogYG9uOiR7cmF3TmFtZX1gO1xyXG4gICAgICAgICAgICBldmVudE5hbWUgPSBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKGV2ZW50U3RyaW5nLCB0cnVlLCBhcmcubG9jKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vICMyMzg4XHJcbiAgICAgICAgICAgIGV2ZW50TmFtZSA9IGNyZWF0ZUNvbXBvdW5kRXhwcmVzc2lvbihbXHJcbiAgICAgICAgICAgICAgICBgJHtjb250ZXh0LmhlbHBlclN0cmluZyhUT19IQU5ETEVSX0tFWSl9KGAsXHJcbiAgICAgICAgICAgICAgICBhcmcsXHJcbiAgICAgICAgICAgICAgICBgKWBcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gYWxyZWFkeSBhIGNvbXBvdW5kIGV4cHJlc3Npb24uXHJcbiAgICAgICAgZXZlbnROYW1lID0gYXJnO1xyXG4gICAgICAgIGV2ZW50TmFtZS5jaGlsZHJlbi51bnNoaWZ0KGAke2NvbnRleHQuaGVscGVyU3RyaW5nKFRPX0hBTkRMRVJfS0VZKX0oYCk7XHJcbiAgICAgICAgZXZlbnROYW1lLmNoaWxkcmVuLnB1c2goYClgKTtcclxuICAgIH1cclxuICAgIC8vIGhhbmRsZXIgcHJvY2Vzc2luZ1xyXG4gICAgbGV0IGV4cCA9IGRpci5leHA7XHJcbiAgICBpZiAoZXhwICYmICFleHAuY29udGVudC50cmltKCkpIHtcclxuICAgICAgICBleHAgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBsZXQgc2hvdWxkQ2FjaGUgPSBjb250ZXh0LmNhY2hlSGFuZGxlcnMgJiYgIWV4cCAmJiAhY29udGV4dC5pblZPbmNlO1xyXG4gICAgaWYgKGV4cCkge1xyXG4gICAgICAgIGNvbnN0IGlzTWVtYmVyRXhwID0gaXNNZW1iZXJFeHByZXNzaW9uKGV4cC5jb250ZW50KTtcclxuICAgICAgICBjb25zdCBpc0lubGluZVN0YXRlbWVudCA9ICEoaXNNZW1iZXJFeHAgfHwgZm5FeHBSRS50ZXN0KGV4cC5jb250ZW50KSk7XHJcbiAgICAgICAgY29uc3QgaGFzTXVsdGlwbGVTdGF0ZW1lbnRzID0gZXhwLmNvbnRlbnQuaW5jbHVkZXMoYDtgKTtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIHRydWUpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGVCcm93c2VyRXhwcmVzc2lvbihleHAsIGNvbnRleHQsIGZhbHNlLCBoYXNNdWx0aXBsZVN0YXRlbWVudHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNJbmxpbmVTdGF0ZW1lbnQgfHwgKHNob3VsZENhY2hlICYmIGlzTWVtYmVyRXhwKSkge1xyXG4gICAgICAgICAgICAvLyB3cmFwIGlubGluZSBzdGF0ZW1lbnQgaW4gYSBmdW5jdGlvbiBleHByZXNzaW9uXHJcbiAgICAgICAgICAgIGV4cCA9IGNyZWF0ZUNvbXBvdW5kRXhwcmVzc2lvbihbXHJcbiAgICAgICAgICAgICAgICBgJHtpc0lubGluZVN0YXRlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgID8gYCRldmVudGBcclxuICAgICAgICAgICAgICAgICAgICA6IGAke2BgfSguLi5hcmdzKWB9ID0+ICR7aGFzTXVsdGlwbGVTdGF0ZW1lbnRzID8gYHtgIDogYChgfWAsXHJcbiAgICAgICAgICAgICAgICBleHAsXHJcbiAgICAgICAgICAgICAgICBoYXNNdWx0aXBsZVN0YXRlbWVudHMgPyBgfWAgOiBgKWBcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHJldCA9IHtcclxuICAgICAgICBwcm9wczogW1xyXG4gICAgICAgICAgICBjcmVhdGVPYmplY3RQcm9wZXJ0eShldmVudE5hbWUsIGV4cCB8fCBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKGAoKSA9PiB7fWAsIGZhbHNlLCBsb2MpKVxyXG4gICAgICAgIF1cclxuICAgIH07XHJcbiAgICAvLyBhcHBseSBleHRlbmRlZCBjb21waWxlciBhdWdtZW50b3JcclxuICAgIGlmIChhdWdtZW50b3IpIHtcclxuICAgICAgICByZXQgPSBhdWdtZW50b3IocmV0KTtcclxuICAgIH1cclxuICAgIGlmIChzaG91bGRDYWNoZSkge1xyXG4gICAgICAgIC8vIGNhY2hlIGhhbmRsZXJzIHNvIHRoYXQgaXQncyBhbHdheXMgdGhlIHNhbWUgaGFuZGxlciBiZWluZyBwYXNzZWQgZG93bi5cclxuICAgICAgICAvLyB0aGlzIGF2b2lkcyB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzIHdoZW4gdXNlcnMgdXNlIGlubGluZSBoYW5kbGVycyBvblxyXG4gICAgICAgIC8vIGNvbXBvbmVudHMuXHJcbiAgICAgICAgcmV0LnByb3BzWzBdLnZhbHVlID0gY29udGV4dC5jYWNoZShyZXQucHJvcHNbMF0udmFsdWUpO1xyXG4gICAgfVxyXG4gICAgLy8gbWFyayB0aGUga2V5IGFzIGhhbmRsZXIgZm9yIHByb3BzIG5vcm1hbGl6YXRpb24gY2hlY2tcclxuICAgIHJldC5wcm9wcy5mb3JFYWNoKHAgPT4gKHAua2V5LmlzSGFuZGxlcktleSA9IHRydWUpKTtcclxuICAgIHJldHVybiByZXQ7XHJcbn07XG5cbi8vIHYtYmluZCB3aXRob3V0IGFyZyBpcyBoYW5kbGVkIGRpcmVjdGx5IGluIC4vdHJhbnNmb3JtRWxlbWVudHMudHMgZHVlIHRvIGl0IGFmZmVjdGluZ1xyXG4vLyBjb2RlZ2VuIGZvciB0aGUgZW50aXJlIHByb3BzIG9iamVjdC4gVGhpcyB0cmFuc2Zvcm0gaGVyZSBpcyBvbmx5IGZvciB2LWJpbmRcclxuLy8gKndpdGgqIGFyZ3MuXHJcbmNvbnN0IHRyYW5zZm9ybUJpbmQgPSAoZGlyLCBfbm9kZSwgY29udGV4dCkgPT4ge1xyXG4gICAgY29uc3QgeyBleHAsIG1vZGlmaWVycywgbG9jIH0gPSBkaXI7XHJcbiAgICBjb25zdCBhcmcgPSBkaXIuYXJnO1xyXG4gICAgaWYgKGFyZy50eXBlICE9PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLykge1xyXG4gICAgICAgIGFyZy5jaGlsZHJlbi51bnNoaWZ0KGAoYCk7XHJcbiAgICAgICAgYXJnLmNoaWxkcmVuLnB1c2goYCkgfHwgXCJcImApO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoIWFyZy5pc1N0YXRpYykge1xyXG4gICAgICAgIGFyZy5jb250ZW50ID0gYCR7YXJnLmNvbnRlbnR9IHx8IFwiXCJgO1xyXG4gICAgfVxyXG4gICAgLy8gLnN5bmMgaXMgcmVwbGFjZWQgYnkgdi1tb2RlbDphcmdcclxuICAgIGlmIChtb2RpZmllcnMuaW5jbHVkZXMoJ2NhbWVsJykpIHtcclxuICAgICAgICBpZiAoYXJnLnR5cGUgPT09IDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovKSB7XHJcbiAgICAgICAgICAgIGlmIChhcmcuaXNTdGF0aWMpIHtcclxuICAgICAgICAgICAgICAgIGFyZy5jb250ZW50ID0gY2FtZWxpemUkMShhcmcuY29udGVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBhcmcuY29udGVudCA9IGAke2NvbnRleHQuaGVscGVyU3RyaW5nKENBTUVMSVpFKX0oJHthcmcuY29udGVudH0pYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgYXJnLmNoaWxkcmVuLnVuc2hpZnQoYCR7Y29udGV4dC5oZWxwZXJTdHJpbmcoQ0FNRUxJWkUpfShgKTtcclxuICAgICAgICAgICAgYXJnLmNoaWxkcmVuLnB1c2goYClgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIWNvbnRleHQuaW5TU1IpIHtcclxuICAgICAgICBpZiAobW9kaWZpZXJzLmluY2x1ZGVzKCdwcm9wJykpIHtcclxuICAgICAgICAgICAgaW5qZWN0UHJlZml4KGFyZywgJy4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1vZGlmaWVycy5pbmNsdWRlcygnYXR0cicpKSB7XHJcbiAgICAgICAgICAgIGluamVjdFByZWZpeChhcmcsICdeJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFleHAgfHxcclxuICAgICAgICAoZXhwLnR5cGUgPT09IDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovICYmICFleHAuY29udGVudC50cmltKCkpKSB7XHJcbiAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZUNvbXBpbGVyRXJyb3IoMzQgLyogRXJyb3JDb2Rlcy5YX1ZfQklORF9OT19FWFBSRVNTSU9OICovLCBsb2MpKTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBwcm9wczogW2NyZWF0ZU9iamVjdFByb3BlcnR5KGFyZywgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbignJywgdHJ1ZSwgbG9jKSldXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJvcHM6IFtjcmVhdGVPYmplY3RQcm9wZXJ0eShhcmcsIGV4cCldXHJcbiAgICB9O1xyXG59O1xyXG5jb25zdCBpbmplY3RQcmVmaXggPSAoYXJnLCBwcmVmaXgpID0+IHtcclxuICAgIGlmIChhcmcudHlwZSA9PT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICBpZiAoYXJnLmlzU3RhdGljKSB7XHJcbiAgICAgICAgICAgIGFyZy5jb250ZW50ID0gcHJlZml4ICsgYXJnLmNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBhcmcuY29udGVudCA9IGBcXGAke3ByZWZpeH1cXCR7JHthcmcuY29udGVudH19XFxgYDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBhcmcuY2hpbGRyZW4udW5zaGlmdChgJyR7cHJlZml4fScgKyAoYCk7XHJcbiAgICAgICAgYXJnLmNoaWxkcmVuLnB1c2goYClgKTtcclxuICAgIH1cclxufTtcblxuLy8gTWVyZ2UgYWRqYWNlbnQgdGV4dCBub2RlcyBhbmQgZXhwcmVzc2lvbnMgaW50byBhIHNpbmdsZSBleHByZXNzaW9uXHJcbi8vIGUuZy4gPGRpdj5hYmMge3sgZCB9fSB7eyBlIH19PC9kaXY+IHNob3VsZCBoYXZlIGEgc2luZ2xlIGV4cHJlc3Npb24gbm9kZSBhcyBjaGlsZC5cclxuY29uc3QgdHJhbnNmb3JtVGV4dCA9IChub2RlLCBjb250ZXh0KSA9PiB7XHJcbiAgICBpZiAobm9kZS50eXBlID09PSAwIC8qIE5vZGVUeXBlcy5ST09UICovIHx8XHJcbiAgICAgICAgbm9kZS50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovIHx8XHJcbiAgICAgICAgbm9kZS50eXBlID09PSAxMSAvKiBOb2RlVHlwZXMuRk9SICovIHx8XHJcbiAgICAgICAgbm9kZS50eXBlID09PSAxMCAvKiBOb2RlVHlwZXMuSUZfQlJBTkNIICovKSB7XHJcbiAgICAgICAgLy8gcGVyZm9ybSB0aGUgdHJhbnNmb3JtIG9uIG5vZGUgZXhpdCBzbyB0aGF0IGFsbCBleHByZXNzaW9ucyBoYXZlIGFscmVhZHlcclxuICAgICAgICAvLyBiZWVuIHByb2Nlc3NlZC5cclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XHJcbiAgICAgICAgICAgIGxldCBjdXJyZW50Q29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBsZXQgaGFzVGV4dCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzVGV4dChjaGlsZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBoYXNUZXh0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBjaGlsZHJlbi5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gY2hpbGRyZW5bal07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1RleHQobmV4dCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY3VycmVudENvbnRhaW5lcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIgPSBjaGlsZHJlbltpXSA9IGNyZWF0ZUNvbXBvdW5kRXhwcmVzc2lvbihbY2hpbGRdLCBjaGlsZC5sb2MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWVyZ2UgYWRqYWNlbnQgdGV4dCBub2RlIGludG8gY3VycmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbnRhaW5lci5jaGlsZHJlbi5wdXNoKGAgKyBgLCBuZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGotLTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWhhc1RleHQgfHxcclxuICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBwbGFpbiBlbGVtZW50IHdpdGggYSBzaW5nbGUgdGV4dCBjaGlsZCwgbGVhdmUgaXRcclxuICAgICAgICAgICAgICAgIC8vIGFzLWlzIHNpbmNlIHRoZSBydW50aW1lIGhhcyBkZWRpY2F0ZWQgZmFzdCBwYXRoIGZvciB0aGlzIGJ5IGRpcmVjdGx5XHJcbiAgICAgICAgICAgICAgICAvLyBzZXR0aW5nIHRleHRDb250ZW50IG9mIHRoZSBlbGVtZW50LlxyXG4gICAgICAgICAgICAgICAgLy8gZm9yIGNvbXBvbmVudCByb290IGl0J3MgYWx3YXlzIG5vcm1hbGl6ZWQgYW55d2F5LlxyXG4gICAgICAgICAgICAgICAgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIChub2RlLnR5cGUgPT09IDAgLyogTm9kZVR5cGVzLlJPT1QgKi8gfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGUudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS50YWdUeXBlID09PSAwIC8qIEVsZW1lbnRUeXBlcy5FTEVNRU5UICovICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAjMzc1NlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3VzdG9tIGRpcmVjdGl2ZXMgY2FuIHBvdGVudGlhbGx5IGFkZCBET00gZWxlbWVudHMgYXJiaXRyYXJpbHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGF2b2lkIHNldHRpbmcgdGV4dENvbnRlbnQgb2YgdGhlIGVsZW1lbnQgYXQgcnVudGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYXZvaWQgYWNjaWRlbnRhbGx5IG92ZXJ3cml0aW5nIHRoZSBET00gZWxlbWVudHMgYWRkZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5IHRoZSB1c2VyIHRocm91Z2ggY3VzdG9tIGRpcmVjdGl2ZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbm9kZS5wcm9wcy5maW5kKHAgPT4gcC50eXBlID09PSA3IC8qIE5vZGVUeXBlcy5ESVJFQ1RJVkUgKi8gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY29udGV4dC5kaXJlY3RpdmVUcmFuc2Zvcm1zW3AubmFtZV0pICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiBjb21wYXQgbW9kZSwgPHRlbXBsYXRlPiB0YWdzIHdpdGggbm8gc3BlY2lhbCBkaXJlY3RpdmVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGJlIHJlbmRlcmVkIGFzIGEgZnJhZ21lbnQgc28gaXRzIGNoaWxkcmVuIG11c3QgYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnZlcnRlZCBpbnRvIHZub2Rlcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICEobm9kZS50YWcgPT09ICd0ZW1wbGF0ZScpKSkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gcHJlLWNvbnZlcnQgdGV4dCBub2RlcyBpbnRvIGNyZWF0ZVRleHRWTm9kZSh0ZXh0KSBjYWxscyB0byBhdm9pZFxyXG4gICAgICAgICAgICAvLyBydW50aW1lIG5vcm1hbGl6YXRpb24uXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNUZXh0KGNoaWxkKSB8fCBjaGlsZC50eXBlID09PSA4IC8qIE5vZGVUeXBlcy5DT01QT1VORF9FWFBSRVNTSU9OICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FsbEFyZ3MgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGVUZXh0Vk5vZGUgZGVmYXVsdHMgdG8gc2luZ2xlIHdoaXRlc3BhY2UsIHNvIGlmIGl0IGlzIGFcclxuICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgc3BhY2UgdGhlIGNvZGUgY291bGQgYmUgYW4gZW1wdHkgY2FsbCB0byBzYXZlIGJ5dGVzLlxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSAyIC8qIE5vZGVUeXBlcy5URVhUICovIHx8IGNoaWxkLmNvbnRlbnQgIT09ICcgJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsQXJncy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBkeW5hbWljIHRleHQgd2l0aCBmbGFnIHNvIGl0IGdldHMgcGF0Y2hlZCBpbnNpZGUgYSBibG9ja1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghY29udGV4dC5zc3IgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uc3RhbnRUeXBlKGNoaWxkLCBjb250ZXh0KSA9PT0gMCAvKiBDb25zdGFudFR5cGVzLk5PVF9DT05TVEFOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsQXJncy5wdXNoKDEgLyogUGF0Y2hGbGFncy5URVhUICovICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgIC8qICR7UGF0Y2hGbGFnTmFtZXNbMSAvKiBQYXRjaEZsYWdzLlRFWFQgKi9dfSAqL2AgOiBgYCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogMTIgLyogTm9kZVR5cGVzLlRFWFRfQ0FMTCAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogY2hpbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYzogY2hpbGQubG9jLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlZ2VuTm9kZTogY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoQ1JFQVRFX1RFWFQpLCBjYWxsQXJncylcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufTtcblxuY29uc3Qgc2VlbiA9IG5ldyBXZWFrU2V0KCk7XHJcbmNvbnN0IHRyYW5zZm9ybU9uY2UgPSAobm9kZSwgY29udGV4dCkgPT4ge1xyXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLyAmJiBmaW5kRGlyKG5vZGUsICdvbmNlJywgdHJ1ZSkpIHtcclxuICAgICAgICBpZiAoc2Vlbi5oYXMobm9kZSkgfHwgY29udGV4dC5pblZPbmNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2Vlbi5hZGQobm9kZSk7XHJcbiAgICAgICAgY29udGV4dC5pblZPbmNlID0gdHJ1ZTtcclxuICAgICAgICBjb250ZXh0LmhlbHBlcihTRVRfQkxPQ0tfVFJBQ0tJTkcpO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuaW5WT25jZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjb25zdCBjdXIgPSBjb250ZXh0LmN1cnJlbnROb2RlO1xyXG4gICAgICAgICAgICBpZiAoY3VyLmNvZGVnZW5Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICBjdXIuY29kZWdlbk5vZGUgPSBjb250ZXh0LmNhY2hlKGN1ci5jb2RlZ2VuTm9kZSwgdHJ1ZSAvKiBpc1ZOb2RlICovKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn07XG5cbmNvbnN0IHRyYW5zZm9ybU1vZGVsID0gKGRpciwgbm9kZSwgY29udGV4dCkgPT4ge1xyXG4gICAgY29uc3QgeyBleHAsIGFyZyB9ID0gZGlyO1xyXG4gICAgaWYgKCFleHApIHtcclxuICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlQ29tcGlsZXJFcnJvcig0MSAvKiBFcnJvckNvZGVzLlhfVl9NT0RFTF9OT19FWFBSRVNTSU9OICovLCBkaXIubG9jKSk7XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVRyYW5zZm9ybVByb3BzKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCByYXdFeHAgPSBleHAubG9jLnNvdXJjZTtcclxuICAgIGNvbnN0IGV4cFN0cmluZyA9IGV4cC50eXBlID09PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqLyA/IGV4cC5jb250ZW50IDogcmF3RXhwO1xyXG4gICAgLy8gaW0gU0ZDIDxzY3JpcHQgc2V0dXA+IGlubGluZSBtb2RlLCB0aGUgZXhwIG1heSBoYXZlIGJlZW4gdHJhbnNmb3JtZWQgaW50b1xyXG4gICAgLy8gX3VucmVmKGV4cClcclxuICAgIGNvbnRleHQuYmluZGluZ01ldGFkYXRhW3Jhd0V4cF07XHJcbiAgICBjb25zdCBtYXliZVJlZiA9ICF0cnVlICAgIC8qIEJpbmRpbmdUeXBlcy5TRVRVUF9DT05TVCAqLztcclxuICAgIGlmICghZXhwU3RyaW5nLnRyaW0oKSB8fFxyXG4gICAgICAgICghaXNNZW1iZXJFeHByZXNzaW9uKGV4cFN0cmluZykgJiYgIW1heWJlUmVmKSkge1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDQyIC8qIEVycm9yQ29kZXMuWF9WX01PREVMX01BTEZPUk1FRF9FWFBSRVNTSU9OICovLCBleHAubG9jKSk7XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVRyYW5zZm9ybVByb3BzKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwcm9wTmFtZSA9IGFyZyA/IGFyZyA6IGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oJ21vZGVsVmFsdWUnLCB0cnVlKTtcclxuICAgIGNvbnN0IGV2ZW50TmFtZSA9IGFyZ1xyXG4gICAgICAgID8gaXNTdGF0aWNFeHAoYXJnKVxyXG4gICAgICAgICAgICA/IGBvblVwZGF0ZToke2FyZy5jb250ZW50fWBcclxuICAgICAgICAgICAgOiBjcmVhdGVDb21wb3VuZEV4cHJlc3Npb24oWydcIm9uVXBkYXRlOlwiICsgJywgYXJnXSlcclxuICAgICAgICA6IGBvblVwZGF0ZTptb2RlbFZhbHVlYDtcclxuICAgIGxldCBhc3NpZ25tZW50RXhwO1xyXG4gICAgY29uc3QgZXZlbnRBcmcgPSBjb250ZXh0LmlzVFMgPyBgKCRldmVudDogYW55KWAgOiBgJGV2ZW50YDtcclxuICAgIHtcclxuICAgICAgICBhc3NpZ25tZW50RXhwID0gY3JlYXRlQ29tcG91bmRFeHByZXNzaW9uKFtcclxuICAgICAgICAgICAgYCR7ZXZlbnRBcmd9ID0+ICgoYCxcclxuICAgICAgICAgICAgZXhwLFxyXG4gICAgICAgICAgICBgKSA9ICRldmVudClgXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwcm9wcyA9IFtcclxuICAgICAgICAvLyBtb2RlbFZhbHVlOiBmb29cclxuICAgICAgICBjcmVhdGVPYmplY3RQcm9wZXJ0eShwcm9wTmFtZSwgZGlyLmV4cCksXHJcbiAgICAgICAgLy8gXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6ICRldmVudCA9PiAoZm9vID0gJGV2ZW50KVxyXG4gICAgICAgIGNyZWF0ZU9iamVjdFByb3BlcnR5KGV2ZW50TmFtZSwgYXNzaWdubWVudEV4cClcclxuICAgIF07XHJcbiAgICAvLyBtb2RlbE1vZGlmaWVyczogeyBmb286IHRydWUsIFwiYmFyLWJhelwiOiB0cnVlIH1cclxuICAgIGlmIChkaXIubW9kaWZpZXJzLmxlbmd0aCAmJiBub2RlLnRhZ1R5cGUgPT09IDEgLyogRWxlbWVudFR5cGVzLkNPTVBPTkVOVCAqLykge1xyXG4gICAgICAgIGNvbnN0IG1vZGlmaWVycyA9IGRpci5tb2RpZmllcnNcclxuICAgICAgICAgICAgLm1hcChtID0+IChpc1NpbXBsZUlkZW50aWZpZXIobSkgPyBtIDogSlNPTi5zdHJpbmdpZnkobSkpICsgYDogdHJ1ZWApXHJcbiAgICAgICAgICAgIC5qb2luKGAsIGApO1xyXG4gICAgICAgIGNvbnN0IG1vZGlmaWVyc0tleSA9IGFyZ1xyXG4gICAgICAgICAgICA/IGlzU3RhdGljRXhwKGFyZylcclxuICAgICAgICAgICAgICAgID8gYCR7YXJnLmNvbnRlbnR9TW9kaWZpZXJzYFxyXG4gICAgICAgICAgICAgICAgOiBjcmVhdGVDb21wb3VuZEV4cHJlc3Npb24oW2FyZywgJyArIFwiTW9kaWZpZXJzXCInXSlcclxuICAgICAgICAgICAgOiBgbW9kZWxNb2RpZmllcnNgO1xyXG4gICAgICAgIHByb3BzLnB1c2goY3JlYXRlT2JqZWN0UHJvcGVydHkobW9kaWZpZXJzS2V5LCBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKGB7ICR7bW9kaWZpZXJzfSB9YCwgZmFsc2UsIGRpci5sb2MsIDIgLyogQ29uc3RhbnRUeXBlcy5DQU5fSE9JU1QgKi8pKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3JlYXRlVHJhbnNmb3JtUHJvcHMocHJvcHMpO1xyXG59O1xyXG5mdW5jdGlvbiBjcmVhdGVUcmFuc2Zvcm1Qcm9wcyhwcm9wcyA9IFtdKSB7XHJcbiAgICByZXR1cm4geyBwcm9wcyB9O1xyXG59XG5cbmNvbnN0IHZhbGlkRGl2aXNpb25DaGFyUkUgPSAvW1xcdykuK1xcLV8kXFxdXS87XHJcbmNvbnN0IHRyYW5zZm9ybUZpbHRlciA9IChub2RlLCBjb250ZXh0KSA9PiB7XHJcbiAgICBpZiAoIWlzQ29tcGF0RW5hYmxlZChcIkNPTVBJTEVSX0ZJTFRFUlwiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9GSUxURVJTICovLCBjb250ZXh0KSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChub2RlLnR5cGUgPT09IDUgLyogTm9kZVR5cGVzLklOVEVSUE9MQVRJT04gKi8pIHtcclxuICAgICAgICAvLyBmaWx0ZXIgcmV3cml0ZSBpcyBhcHBsaWVkIGJlZm9yZSBleHByZXNzaW9uIHRyYW5zZm9ybSBzbyBvbmx5XHJcbiAgICAgICAgLy8gc2ltcGxlIGV4cHJlc3Npb25zIGFyZSBwb3NzaWJsZSBhdCB0aGlzIHN0YWdlXHJcbiAgICAgICAgcmV3cml0ZUZpbHRlcihub2RlLmNvbnRlbnQsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLykge1xyXG4gICAgICAgIG5vZGUucHJvcHMuZm9yRWFjaCgocHJvcCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocHJvcC50eXBlID09PSA3IC8qIE5vZGVUeXBlcy5ESVJFQ1RJVkUgKi8gJiZcclxuICAgICAgICAgICAgICAgIHByb3AubmFtZSAhPT0gJ2ZvcicgJiZcclxuICAgICAgICAgICAgICAgIHByb3AuZXhwKSB7XHJcbiAgICAgICAgICAgICAgICByZXdyaXRlRmlsdGVyKHByb3AuZXhwLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59O1xyXG5mdW5jdGlvbiByZXdyaXRlRmlsdGVyKG5vZGUsIGNvbnRleHQpIHtcclxuICAgIGlmIChub2RlLnR5cGUgPT09IDQgLyogTm9kZVR5cGVzLlNJTVBMRV9FWFBSRVNTSU9OICovKSB7XHJcbiAgICAgICAgcGFyc2VGaWx0ZXIobm9kZSwgY29udGV4dCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBub2RlLmNoaWxkcmVuW2ldO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkICE9PSAnb2JqZWN0JylcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8pIHtcclxuICAgICAgICAgICAgICAgIHBhcnNlRmlsdGVyKGNoaWxkLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChjaGlsZC50eXBlID09PSA4IC8qIE5vZGVUeXBlcy5DT01QT1VORF9FWFBSRVNTSU9OICovKSB7XHJcbiAgICAgICAgICAgICAgICByZXdyaXRlRmlsdGVyKG5vZGUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGNoaWxkLnR5cGUgPT09IDUgLyogTm9kZVR5cGVzLklOVEVSUE9MQVRJT04gKi8pIHtcclxuICAgICAgICAgICAgICAgIHJld3JpdGVGaWx0ZXIoY2hpbGQuY29udGVudCwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gcGFyc2VGaWx0ZXIobm9kZSwgY29udGV4dCkge1xyXG4gICAgY29uc3QgZXhwID0gbm9kZS5jb250ZW50O1xyXG4gICAgbGV0IGluU2luZ2xlID0gZmFsc2U7XHJcbiAgICBsZXQgaW5Eb3VibGUgPSBmYWxzZTtcclxuICAgIGxldCBpblRlbXBsYXRlU3RyaW5nID0gZmFsc2U7XHJcbiAgICBsZXQgaW5SZWdleCA9IGZhbHNlO1xyXG4gICAgbGV0IGN1cmx5ID0gMDtcclxuICAgIGxldCBzcXVhcmUgPSAwO1xyXG4gICAgbGV0IHBhcmVuID0gMDtcclxuICAgIGxldCBsYXN0RmlsdGVySW5kZXggPSAwO1xyXG4gICAgbGV0IGMsIHByZXYsIGksIGV4cHJlc3Npb24sIGZpbHRlcnMgPSBbXTtcclxuICAgIGZvciAoaSA9IDA7IGkgPCBleHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBwcmV2ID0gYztcclxuICAgICAgICBjID0gZXhwLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgaWYgKGluU2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGlmIChjID09PSAweDI3ICYmIHByZXYgIT09IDB4NWMpXHJcbiAgICAgICAgICAgICAgICBpblNpbmdsZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbkRvdWJsZSkge1xyXG4gICAgICAgICAgICBpZiAoYyA9PT0gMHgyMiAmJiBwcmV2ICE9PSAweDVjKVxyXG4gICAgICAgICAgICAgICAgaW5Eb3VibGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5UZW1wbGF0ZVN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAoYyA9PT0gMHg2MCAmJiBwcmV2ICE9PSAweDVjKVxyXG4gICAgICAgICAgICAgICAgaW5UZW1wbGF0ZVN0cmluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpblJlZ2V4KSB7XHJcbiAgICAgICAgICAgIGlmIChjID09PSAweDJmICYmIHByZXYgIT09IDB4NWMpXHJcbiAgICAgICAgICAgICAgICBpblJlZ2V4ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGMgPT09IDB4N2MgJiYgLy8gcGlwZVxyXG4gICAgICAgICAgICBleHAuY2hhckNvZGVBdChpICsgMSkgIT09IDB4N2MgJiZcclxuICAgICAgICAgICAgZXhwLmNoYXJDb2RlQXQoaSAtIDEpICE9PSAweDdjICYmXHJcbiAgICAgICAgICAgICFjdXJseSAmJlxyXG4gICAgICAgICAgICAhc3F1YXJlICYmXHJcbiAgICAgICAgICAgICFwYXJlbikge1xyXG4gICAgICAgICAgICBpZiAoZXhwcmVzc2lvbiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBmaXJzdCBmaWx0ZXIsIGVuZCBvZiBleHByZXNzaW9uXHJcbiAgICAgICAgICAgICAgICBsYXN0RmlsdGVySW5kZXggPSBpICsgMTtcclxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb24gPSBleHAuc2xpY2UoMCwgaSkudHJpbSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcHVzaEZpbHRlcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGMpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMHgyMjpcclxuICAgICAgICAgICAgICAgICAgICBpbkRvdWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIFwiXHJcbiAgICAgICAgICAgICAgICBjYXNlIDB4Mjc6XHJcbiAgICAgICAgICAgICAgICAgICAgaW5TaW5nbGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAnXHJcbiAgICAgICAgICAgICAgICBjYXNlIDB4NjA6XHJcbiAgICAgICAgICAgICAgICAgICAgaW5UZW1wbGF0ZVN0cmluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIGBcclxuICAgICAgICAgICAgICAgIGNhc2UgMHgyODpcclxuICAgICAgICAgICAgICAgICAgICBwYXJlbisrO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAoXHJcbiAgICAgICAgICAgICAgICBjYXNlIDB4Mjk6XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW4tLTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gKVxyXG4gICAgICAgICAgICAgICAgY2FzZSAweDViOlxyXG4gICAgICAgICAgICAgICAgICAgIHNxdWFyZSsrO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBbXHJcbiAgICAgICAgICAgICAgICBjYXNlIDB4NWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3F1YXJlLS07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIF1cclxuICAgICAgICAgICAgICAgIGNhc2UgMHg3YjpcclxuICAgICAgICAgICAgICAgICAgICBjdXJseSsrO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDB4N2Q6XHJcbiAgICAgICAgICAgICAgICAgICAgY3VybHktLTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjID09PSAweDJmKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAvXHJcbiAgICAgICAgICAgICAgICBsZXQgaiA9IGkgLSAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IHA7XHJcbiAgICAgICAgICAgICAgICAvLyBmaW5kIGZpcnN0IG5vbi13aGl0ZXNwYWNlIHByZXYgY2hhclxyXG4gICAgICAgICAgICAgICAgZm9yICg7IGogPj0gMDsgai0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcCA9IGV4cC5jaGFyQXQoaik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHAgIT09ICcgJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIXAgfHwgIXZhbGlkRGl2aXNpb25DaGFyUkUudGVzdChwKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGluUmVnZXggPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV4cHJlc3Npb24gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGV4cHJlc3Npb24gPSBleHAuc2xpY2UoMCwgaSkudHJpbSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobGFzdEZpbHRlckluZGV4ICE9PSAwKSB7XHJcbiAgICAgICAgcHVzaEZpbHRlcigpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gcHVzaEZpbHRlcigpIHtcclxuICAgICAgICBmaWx0ZXJzLnB1c2goZXhwLnNsaWNlKGxhc3RGaWx0ZXJJbmRleCwgaSkudHJpbSgpKTtcclxuICAgICAgICBsYXN0RmlsdGVySW5kZXggPSBpICsgMTtcclxuICAgIH1cclxuICAgIGlmIChmaWx0ZXJzLmxlbmd0aCkge1xyXG4gICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICB3YXJuRGVwcmVjYXRpb24oXCJDT01QSUxFUl9GSUxURVJcIiAvKiBDb21waWxlckRlcHJlY2F0aW9uVHlwZXMuQ09NUElMRVJfRklMVEVSUyAqLywgY29udGV4dCwgbm9kZS5sb2MpO1xyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBmaWx0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGV4cHJlc3Npb24gPSB3cmFwRmlsdGVyKGV4cHJlc3Npb24sIGZpbHRlcnNbaV0sIGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBub2RlLmNvbnRlbnQgPSBleHByZXNzaW9uO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHdyYXBGaWx0ZXIoZXhwLCBmaWx0ZXIsIGNvbnRleHQpIHtcclxuICAgIGNvbnRleHQuaGVscGVyKFJFU09MVkVfRklMVEVSKTtcclxuICAgIGNvbnN0IGkgPSBmaWx0ZXIuaW5kZXhPZignKCcpO1xyXG4gICAgaWYgKGkgPCAwKSB7XHJcbiAgICAgICAgY29udGV4dC5maWx0ZXJzLmFkZChmaWx0ZXIpO1xyXG4gICAgICAgIHJldHVybiBgJHt0b1ZhbGlkQXNzZXRJZChmaWx0ZXIsICdmaWx0ZXInKX0oJHtleHB9KWA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBuYW1lID0gZmlsdGVyLnNsaWNlKDAsIGkpO1xyXG4gICAgICAgIGNvbnN0IGFyZ3MgPSBmaWx0ZXIuc2xpY2UoaSArIDEpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsdGVycy5hZGQobmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIGAke3RvVmFsaWRBc3NldElkKG5hbWUsICdmaWx0ZXInKX0oJHtleHB9JHthcmdzICE9PSAnKScgPyAnLCcgKyBhcmdzIDogYXJnc31gO1xyXG4gICAgfVxyXG59XG5cbmNvbnN0IHNlZW4kMSA9IG5ldyBXZWFrU2V0KCk7XHJcbmNvbnN0IHRyYW5zZm9ybU1lbW8gPSAobm9kZSwgY29udGV4dCkgPT4ge1xyXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLykge1xyXG4gICAgICAgIGNvbnN0IGRpciA9IGZpbmREaXIobm9kZSwgJ21lbW8nKTtcclxuICAgICAgICBpZiAoIWRpciB8fCBzZWVuJDEuaGFzKG5vZGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2VlbiQxLmFkZChub2RlKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb2RlZ2VuTm9kZSA9IG5vZGUuY29kZWdlbk5vZGUgfHxcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuY3VycmVudE5vZGUuY29kZWdlbk5vZGU7XHJcbiAgICAgICAgICAgIGlmIChjb2RlZ2VuTm9kZSAmJiBjb2RlZ2VuTm9kZS50eXBlID09PSAxMyAvKiBOb2RlVHlwZXMuVk5PREVfQ0FMTCAqLykge1xyXG4gICAgICAgICAgICAgICAgLy8gbm9uLWNvbXBvbmVudCBzdWIgdHJlZSBzaG91bGQgYmUgdHVybmVkIGludG8gYSBibG9ja1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUudGFnVHlwZSAhPT0gMSAvKiBFbGVtZW50VHlwZXMuQ09NUE9ORU5UICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFrZUJsb2NrKGNvZGVnZW5Ob2RlLCBjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG5vZGUuY29kZWdlbk5vZGUgPSBjcmVhdGVDYWxsRXhwcmVzc2lvbihjb250ZXh0LmhlbHBlcihXSVRIX01FTU8pLCBbXHJcbiAgICAgICAgICAgICAgICAgICAgZGlyLmV4cCxcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24odW5kZWZpbmVkLCBjb2RlZ2VuTm9kZSksXHJcbiAgICAgICAgICAgICAgICAgICAgYF9jYWNoZWAsXHJcbiAgICAgICAgICAgICAgICAgICAgU3RyaW5nKGNvbnRleHQuY2FjaGVkKyspXHJcbiAgICAgICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn07XG5cbmZ1bmN0aW9uIGdldEJhc2VUcmFuc2Zvcm1QcmVzZXQocHJlZml4SWRlbnRpZmllcnMpIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm1PbmNlLFxyXG4gICAgICAgICAgICB0cmFuc2Zvcm1JZixcclxuICAgICAgICAgICAgdHJhbnNmb3JtTWVtbyxcclxuICAgICAgICAgICAgdHJhbnNmb3JtRm9yLFxyXG4gICAgICAgICAgICAuLi4oW3RyYW5zZm9ybUZpbHRlcl0gKSxcclxuICAgICAgICAgICAgLi4uKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxyXG4gICAgICAgICAgICAgICAgICAgID8gW3RyYW5zZm9ybUV4cHJlc3Npb25dXHJcbiAgICAgICAgICAgICAgICAgICAgOiBbXSksXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybVNsb3RPdXRsZXQsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRyYWNrU2xvdFNjb3BlcyxcclxuICAgICAgICAgICAgdHJhbnNmb3JtVGV4dFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBvbjogdHJhbnNmb3JtT24sXHJcbiAgICAgICAgICAgIGJpbmQ6IHRyYW5zZm9ybUJpbmQsXHJcbiAgICAgICAgICAgIG1vZGVsOiB0cmFuc2Zvcm1Nb2RlbFxyXG4gICAgICAgIH1cclxuICAgIF07XHJcbn1cclxuLy8gd2UgbmFtZSBpdCBgYmFzZUNvbXBpbGVgIHNvIHRoYXQgaGlnaGVyIG9yZGVyIGNvbXBpbGVycyBsaWtlXHJcbi8vIEB2dWUvY29tcGlsZXItZG9tIGNhbiBleHBvcnQgYGNvbXBpbGVgIHdoaWxlIHJlLWV4cG9ydGluZyBldmVyeXRoaW5nIGVsc2UuXHJcbmZ1bmN0aW9uIGJhc2VDb21waWxlKHRlbXBsYXRlLCBvcHRpb25zID0ge30pIHtcclxuICAgIGNvbnN0IG9uRXJyb3IgPSBvcHRpb25zLm9uRXJyb3IgfHwgZGVmYXVsdE9uRXJyb3I7XHJcbiAgICBjb25zdCBpc01vZHVsZU1vZGUgPSBvcHRpb25zLm1vZGUgPT09ICdtb2R1bGUnO1xyXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMucHJlZml4SWRlbnRpZmllcnMgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgb25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDQ2IC8qIEVycm9yQ29kZXMuWF9QUkVGSVhfSURfTk9UX1NVUFBPUlRFRCAqLykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpc01vZHVsZU1vZGUpIHtcclxuICAgICAgICAgICAgb25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDQ3IC8qIEVycm9yQ29kZXMuWF9NT0RVTEVfTU9ERV9OT1RfU1VQUE9SVEVEICovKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgcHJlZml4SWRlbnRpZmllcnMgPSAhdHJ1ZSA7XHJcbiAgICBpZiAob3B0aW9ucy5jYWNoZUhhbmRsZXJzKSB7XHJcbiAgICAgICAgb25FcnJvcihjcmVhdGVDb21waWxlckVycm9yKDQ4IC8qIEVycm9yQ29kZXMuWF9DQUNIRV9IQU5ETEVSX05PVF9TVVBQT1JURUQgKi8pKTtcclxuICAgIH1cclxuICAgIGlmIChvcHRpb25zLnNjb3BlSWQgJiYgIWlzTW9kdWxlTW9kZSkge1xyXG4gICAgICAgIG9uRXJyb3IoY3JlYXRlQ29tcGlsZXJFcnJvcig0OSAvKiBFcnJvckNvZGVzLlhfU0NPUEVfSURfTk9UX1NVUFBPUlRFRCAqLykpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXN0ID0gaXNTdHJpbmcodGVtcGxhdGUpID8gYmFzZVBhcnNlKHRlbXBsYXRlLCBvcHRpb25zKSA6IHRlbXBsYXRlO1xyXG4gICAgY29uc3QgW25vZGVUcmFuc2Zvcm1zLCBkaXJlY3RpdmVUcmFuc2Zvcm1zXSA9IGdldEJhc2VUcmFuc2Zvcm1QcmVzZXQoKTtcclxuICAgIHRyYW5zZm9ybShhc3QsIGV4dGVuZCh7fSwgb3B0aW9ucywge1xyXG4gICAgICAgIHByZWZpeElkZW50aWZpZXJzLFxyXG4gICAgICAgIG5vZGVUcmFuc2Zvcm1zOiBbXHJcbiAgICAgICAgICAgIC4uLm5vZGVUcmFuc2Zvcm1zLFxyXG4gICAgICAgICAgICAuLi4ob3B0aW9ucy5ub2RlVHJhbnNmb3JtcyB8fCBbXSkgLy8gdXNlciB0cmFuc2Zvcm1zXHJcbiAgICAgICAgXSxcclxuICAgICAgICBkaXJlY3RpdmVUcmFuc2Zvcm1zOiBleHRlbmQoe30sIGRpcmVjdGl2ZVRyYW5zZm9ybXMsIG9wdGlvbnMuZGlyZWN0aXZlVHJhbnNmb3JtcyB8fCB7fSAvLyB1c2VyIHRyYW5zZm9ybXNcclxuICAgICAgICApXHJcbiAgICB9KSk7XHJcbiAgICByZXR1cm4gZ2VuZXJhdGUoYXN0LCBleHRlbmQoe30sIG9wdGlvbnMsIHtcclxuICAgICAgICBwcmVmaXhJZGVudGlmaWVyc1xyXG4gICAgfSkpO1xyXG59XG5cbmNvbnN0IG5vb3BEaXJlY3RpdmVUcmFuc2Zvcm0gPSAoKSA9PiAoeyBwcm9wczogW10gfSk7XG5cbmV4cG9ydCB7IEJBU0VfVFJBTlNJVElPTiwgQ0FNRUxJWkUsIENBUElUQUxJWkUsIENSRUFURV9CTE9DSywgQ1JFQVRFX0NPTU1FTlQsIENSRUFURV9FTEVNRU5UX0JMT0NLLCBDUkVBVEVfRUxFTUVOVF9WTk9ERSwgQ1JFQVRFX1NMT1RTLCBDUkVBVEVfU1RBVElDLCBDUkVBVEVfVEVYVCwgQ1JFQVRFX1ZOT0RFLCBGUkFHTUVOVCwgR1VBUkRfUkVBQ1RJVkVfUFJPUFMsIElTX01FTU9fU0FNRSwgSVNfUkVGLCBLRUVQX0FMSVZFLCBNRVJHRV9QUk9QUywgTk9STUFMSVpFX0NMQVNTLCBOT1JNQUxJWkVfUFJPUFMsIE5PUk1BTElaRV9TVFlMRSwgT1BFTl9CTE9DSywgUE9QX1NDT1BFX0lELCBQVVNIX1NDT1BFX0lELCBSRU5ERVJfTElTVCwgUkVOREVSX1NMT1QsIFJFU09MVkVfQ09NUE9ORU5ULCBSRVNPTFZFX0RJUkVDVElWRSwgUkVTT0xWRV9EWU5BTUlDX0NPTVBPTkVOVCwgUkVTT0xWRV9GSUxURVIsIFNFVF9CTE9DS19UUkFDS0lORywgU1VTUEVOU0UsIFRFTEVQT1JULCBUT19ESVNQTEFZX1NUUklORywgVE9fSEFORExFUlMsIFRPX0hBTkRMRVJfS0VZLCBVTlJFRiwgV0lUSF9DVFgsIFdJVEhfRElSRUNUSVZFUywgV0lUSF9NRU1PLCBhZHZhbmNlUG9zaXRpb25XaXRoQ2xvbmUsIGFkdmFuY2VQb3NpdGlvbldpdGhNdXRhdGlvbiwgYXNzZXJ0LCBiYXNlQ29tcGlsZSwgYmFzZVBhcnNlLCBidWlsZERpcmVjdGl2ZUFyZ3MsIGJ1aWxkUHJvcHMsIGJ1aWxkU2xvdHMsIGNoZWNrQ29tcGF0RW5hYmxlZCwgY3JlYXRlQXJyYXlFeHByZXNzaW9uLCBjcmVhdGVBc3NpZ25tZW50RXhwcmVzc2lvbiwgY3JlYXRlQmxvY2tTdGF0ZW1lbnQsIGNyZWF0ZUNhY2hlRXhwcmVzc2lvbiwgY3JlYXRlQ2FsbEV4cHJlc3Npb24sIGNyZWF0ZUNvbXBpbGVyRXJyb3IsIGNyZWF0ZUNvbXBvdW5kRXhwcmVzc2lvbiwgY3JlYXRlQ29uZGl0aW9uYWxFeHByZXNzaW9uLCBjcmVhdGVGb3JMb29wUGFyYW1zLCBjcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24sIGNyZWF0ZUlmU3RhdGVtZW50LCBjcmVhdGVJbnRlcnBvbGF0aW9uLCBjcmVhdGVPYmplY3RFeHByZXNzaW9uLCBjcmVhdGVPYmplY3RQcm9wZXJ0eSwgY3JlYXRlUmV0dXJuU3RhdGVtZW50LCBjcmVhdGVSb290LCBjcmVhdGVTZXF1ZW5jZUV4cHJlc3Npb24sIGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24sIGNyZWF0ZVN0cnVjdHVyYWxEaXJlY3RpdmVUcmFuc2Zvcm0sIGNyZWF0ZVRlbXBsYXRlTGl0ZXJhbCwgY3JlYXRlVHJhbnNmb3JtQ29udGV4dCwgY3JlYXRlVk5vZGVDYWxsLCBleHRyYWN0SWRlbnRpZmllcnMsIGZpbmREaXIsIGZpbmRQcm9wLCBnZW5lcmF0ZSwgZ2V0QmFzZVRyYW5zZm9ybVByZXNldCwgZ2V0Q29uc3RhbnRUeXBlLCBnZXRJbm5lclJhbmdlLCBnZXRNZW1vZWRWTm9kZUNhbGwsIGdldFZOb2RlQmxvY2tIZWxwZXIsIGdldFZOb2RlSGVscGVyLCBoYXNEeW5hbWljS2V5VkJpbmQsIGhhc1Njb3BlUmVmLCBoZWxwZXJOYW1lTWFwLCBpbmplY3RQcm9wLCBpc0J1aWx0SW5UeXBlLCBpc0NvcmVDb21wb25lbnQsIGlzRnVuY3Rpb25UeXBlLCBpc0luRGVzdHJ1Y3R1cmVBc3NpZ25tZW50LCBpc01lbWJlckV4cHJlc3Npb24sIGlzTWVtYmVyRXhwcmVzc2lvbkJyb3dzZXIsIGlzTWVtYmVyRXhwcmVzc2lvbk5vZGUsIGlzUmVmZXJlbmNlZElkZW50aWZpZXIsIGlzU2ltcGxlSWRlbnRpZmllciwgaXNTbG90T3V0bGV0LCBpc1N0YXRpY0FyZ09mLCBpc1N0YXRpY0V4cCwgaXNTdGF0aWNQcm9wZXJ0eSwgaXNTdGF0aWNQcm9wZXJ0eUtleSwgaXNUZW1wbGF0ZU5vZGUsIGlzVGV4dCwgaXNWU2xvdCwgbG9jU3R1YiwgbWFrZUJsb2NrLCBub29wRGlyZWN0aXZlVHJhbnNmb3JtLCBwcm9jZXNzRXhwcmVzc2lvbiwgcHJvY2Vzc0ZvciwgcHJvY2Vzc0lmLCBwcm9jZXNzU2xvdE91dGxldCwgcmVnaXN0ZXJSdW50aW1lSGVscGVycywgcmVzb2x2ZUNvbXBvbmVudFR5cGUsIHRvVmFsaWRBc3NldElkLCB0cmFja1Nsb3RTY29wZXMsIHRyYWNrVkZvclNsb3RTY29wZXMsIHRyYW5zZm9ybSwgdHJhbnNmb3JtQmluZCwgdHJhbnNmb3JtRWxlbWVudCwgdHJhbnNmb3JtRXhwcmVzc2lvbiwgdHJhbnNmb3JtTW9kZWwsIHRyYW5zZm9ybU9uLCB0cmF2ZXJzZU5vZGUsIHdhbGtCbG9ja0RlY2xhcmF0aW9ucywgd2Fsa0Z1bmN0aW9uUGFyYW1zLCB3YWxrSWRlbnRpZmllcnMsIHdhcm5EZXByZWNhdGlvbiB9O1xuIiwiaW1wb3J0IHsgcmVnaXN0ZXJSdW50aW1lSGVscGVycywgaXNCdWlsdEluVHlwZSwgY3JlYXRlU2ltcGxlRXhwcmVzc2lvbiwgY3JlYXRlQ29tcGlsZXJFcnJvciwgY3JlYXRlT2JqZWN0UHJvcGVydHksIGdldENvbnN0YW50VHlwZSwgY3JlYXRlQ2FsbEV4cHJlc3Npb24sIFRPX0RJU1BMQVlfU1RSSU5HLCB0cmFuc2Zvcm1Nb2RlbCBhcyB0cmFuc2Zvcm1Nb2RlbCQxLCBmaW5kUHJvcCwgaGFzRHluYW1pY0tleVZCaW5kLCB0cmFuc2Zvcm1PbiBhcyB0cmFuc2Zvcm1PbiQxLCBjcmVhdGVDb21wb3VuZEV4cHJlc3Npb24sIGlzU3RhdGljRXhwLCBjaGVja0NvbXBhdEVuYWJsZWQsIG5vb3BEaXJlY3RpdmVUcmFuc2Zvcm0sIGJhc2VDb21waWxlLCBiYXNlUGFyc2UgfSBmcm9tICdAdnVlL2NvbXBpbGVyLWNvcmUnO1xuZXhwb3J0ICogZnJvbSAnQHZ1ZS9jb21waWxlci1jb3JlJztcbmltcG9ydCB7IGlzVm9pZFRhZywgaXNIVE1MVGFnLCBpc1NWR1RhZywgbWFrZU1hcCwgcGFyc2VTdHJpbmdTdHlsZSwgY2FwaXRhbGl6ZSwgZXh0ZW5kIH0gZnJvbSAnQHZ1ZS9zaGFyZWQnO1xuXG5jb25zdCBWX01PREVMX1JBRElPID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGB2TW9kZWxSYWRpb2AgOiBgYCk7XHJcbmNvbnN0IFZfTU9ERUxfQ0hFQ0tCT1ggPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHZNb2RlbENoZWNrYm94YCA6IGBgKTtcclxuY29uc3QgVl9NT0RFTF9URVhUID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGB2TW9kZWxUZXh0YCA6IGBgKTtcclxuY29uc3QgVl9NT0RFTF9TRUxFQ1QgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHZNb2RlbFNlbGVjdGAgOiBgYCk7XHJcbmNvbnN0IFZfTU9ERUxfRFlOQU1JQyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgdk1vZGVsRHluYW1pY2AgOiBgYCk7XHJcbmNvbnN0IFZfT05fV0lUSF9NT0RJRklFUlMgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHZPbk1vZGlmaWVyc0d1YXJkYCA6IGBgKTtcclxuY29uc3QgVl9PTl9XSVRIX0tFWVMgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHZPbktleXNHdWFyZGAgOiBgYCk7XHJcbmNvbnN0IFZfU0hPVyA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgdlNob3dgIDogYGApO1xyXG5jb25zdCBUUkFOU0lUSU9OID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGBUcmFuc2l0aW9uYCA6IGBgKTtcclxuY29uc3QgVFJBTlNJVElPTl9HUk9VUCA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBgVHJhbnNpdGlvbkdyb3VwYCA6IGBgKTtcclxucmVnaXN0ZXJSdW50aW1lSGVscGVycyh7XHJcbiAgICBbVl9NT0RFTF9SQURJT106IGB2TW9kZWxSYWRpb2AsXHJcbiAgICBbVl9NT0RFTF9DSEVDS0JPWF06IGB2TW9kZWxDaGVja2JveGAsXHJcbiAgICBbVl9NT0RFTF9URVhUXTogYHZNb2RlbFRleHRgLFxyXG4gICAgW1ZfTU9ERUxfU0VMRUNUXTogYHZNb2RlbFNlbGVjdGAsXHJcbiAgICBbVl9NT0RFTF9EWU5BTUlDXTogYHZNb2RlbER5bmFtaWNgLFxyXG4gICAgW1ZfT05fV0lUSF9NT0RJRklFUlNdOiBgd2l0aE1vZGlmaWVyc2AsXHJcbiAgICBbVl9PTl9XSVRIX0tFWVNdOiBgd2l0aEtleXNgLFxyXG4gICAgW1ZfU0hPV106IGB2U2hvd2AsXHJcbiAgICBbVFJBTlNJVElPTl06IGBUcmFuc2l0aW9uYCxcclxuICAgIFtUUkFOU0lUSU9OX0dST1VQXTogYFRyYW5zaXRpb25Hcm91cGBcclxufSk7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAqL1xyXG5sZXQgZGVjb2RlcjtcclxuZnVuY3Rpb24gZGVjb2RlSHRtbEJyb3dzZXIocmF3LCBhc0F0dHIgPSBmYWxzZSkge1xyXG4gICAgaWYgKCFkZWNvZGVyKSB7XHJcbiAgICAgICAgZGVjb2RlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgfVxyXG4gICAgaWYgKGFzQXR0cikge1xyXG4gICAgICAgIGRlY29kZXIuaW5uZXJIVE1MID0gYDxkaXYgZm9vPVwiJHtyYXcucmVwbGFjZSgvXCIvZywgJyZxdW90OycpfVwiPmA7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZXIuY2hpbGRyZW5bMF0uZ2V0QXR0cmlidXRlKCdmb28nKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGRlY29kZXIuaW5uZXJIVE1MID0gcmF3O1xyXG4gICAgICAgIHJldHVybiBkZWNvZGVyLnRleHRDb250ZW50O1xyXG4gICAgfVxyXG59XG5cbmNvbnN0IGlzUmF3VGV4dENvbnRhaW5lciA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcCgnc3R5bGUsaWZyYW1lLHNjcmlwdCxub3NjcmlwdCcsIHRydWUpO1xyXG5jb25zdCBwYXJzZXJPcHRpb25zID0ge1xyXG4gICAgaXNWb2lkVGFnLFxyXG4gICAgaXNOYXRpdmVUYWc6IHRhZyA9PiBpc0hUTUxUYWcodGFnKSB8fCBpc1NWR1RhZyh0YWcpLFxyXG4gICAgaXNQcmVUYWc6IHRhZyA9PiB0YWcgPT09ICdwcmUnLFxyXG4gICAgZGVjb2RlRW50aXRpZXM6IGRlY29kZUh0bWxCcm93c2VyICxcclxuICAgIGlzQnVpbHRJbkNvbXBvbmVudDogKHRhZykgPT4ge1xyXG4gICAgICAgIGlmIChpc0J1aWx0SW5UeXBlKHRhZywgYFRyYW5zaXRpb25gKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gVFJBTlNJVElPTjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXNCdWlsdEluVHlwZSh0YWcsIGBUcmFuc2l0aW9uR3JvdXBgKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gVFJBTlNJVElPTl9HUk9VUDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3RyZWUtY29uc3RydWN0aW9uLWRpc3BhdGNoZXJcclxuICAgIGdldE5hbWVzcGFjZSh0YWcsIHBhcmVudCkge1xyXG4gICAgICAgIGxldCBucyA9IHBhcmVudCA/IHBhcmVudC5ucyA6IDAgLyogRE9NTmFtZXNwYWNlcy5IVE1MICovO1xyXG4gICAgICAgIGlmIChwYXJlbnQgJiYgbnMgPT09IDIgLyogRE9NTmFtZXNwYWNlcy5NQVRIX01MICovKSB7XHJcbiAgICAgICAgICAgIGlmIChwYXJlbnQudGFnID09PSAnYW5ub3RhdGlvbi14bWwnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGFnID09PSAnc3ZnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxIC8qIERPTU5hbWVzcGFjZXMuU1ZHICovO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudC5wcm9wcy5zb21lKGEgPT4gYS50eXBlID09PSA2IC8qIE5vZGVUeXBlcy5BVFRSSUJVVEUgKi8gJiZcclxuICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPT09ICdlbmNvZGluZycgJiZcclxuICAgICAgICAgICAgICAgICAgICBhLnZhbHVlICE9IG51bGwgJiZcclxuICAgICAgICAgICAgICAgICAgICAoYS52YWx1ZS5jb250ZW50ID09PSAndGV4dC9odG1sJyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhLnZhbHVlLmNvbnRlbnQgPT09ICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBucyA9IDAgLyogRE9NTmFtZXNwYWNlcy5IVE1MICovO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKC9ebSg/Oltpb25zXXx0ZXh0KSQvLnRlc3QocGFyZW50LnRhZykgJiZcclxuICAgICAgICAgICAgICAgIHRhZyAhPT0gJ21nbHlwaCcgJiZcclxuICAgICAgICAgICAgICAgIHRhZyAhPT0gJ21hbGlnbm1hcmsnKSB7XHJcbiAgICAgICAgICAgICAgICBucyA9IDAgLyogRE9NTmFtZXNwYWNlcy5IVE1MICovO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHBhcmVudCAmJiBucyA9PT0gMSAvKiBET01OYW1lc3BhY2VzLlNWRyAqLykge1xyXG4gICAgICAgICAgICBpZiAocGFyZW50LnRhZyA9PT0gJ2ZvcmVpZ25PYmplY3QnIHx8XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQudGFnID09PSAnZGVzYycgfHxcclxuICAgICAgICAgICAgICAgIHBhcmVudC50YWcgPT09ICd0aXRsZScpIHtcclxuICAgICAgICAgICAgICAgIG5zID0gMCAvKiBET01OYW1lc3BhY2VzLkhUTUwgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5zID09PSAwIC8qIERPTU5hbWVzcGFjZXMuSFRNTCAqLykge1xyXG4gICAgICAgICAgICBpZiAodGFnID09PSAnc3ZnJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDEgLyogRE9NTmFtZXNwYWNlcy5TVkcgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRhZyA9PT0gJ21hdGgnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMiAvKiBET01OYW1lc3BhY2VzLk1BVEhfTUwgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5zO1xyXG4gICAgfSxcclxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwYXJzaW5nLWh0bWwtZnJhZ21lbnRzXHJcbiAgICBnZXRUZXh0TW9kZSh7IHRhZywgbnMgfSkge1xyXG4gICAgICAgIGlmIChucyA9PT0gMCAvKiBET01OYW1lc3BhY2VzLkhUTUwgKi8pIHtcclxuICAgICAgICAgICAgaWYgKHRhZyA9PT0gJ3RleHRhcmVhJyB8fCB0YWcgPT09ICd0aXRsZScpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxIC8qIFRleHRNb2Rlcy5SQ0RBVEEgKi87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGlzUmF3VGV4dENvbnRhaW5lcih0YWcpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMiAvKiBUZXh0TW9kZXMuUkFXVEVYVCAqLztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gMCAvKiBUZXh0TW9kZXMuREFUQSAqLztcclxuICAgIH1cclxufTtcblxuLy8gUGFyc2UgaW5saW5lIENTUyBzdHJpbmdzIGZvciBzdGF0aWMgc3R5bGUgYXR0cmlidXRlcyBpbnRvIGFuIG9iamVjdC5cclxuLy8gVGhpcyBpcyBhIE5vZGVUcmFuc2Zvcm0gc2luY2UgaXQgd29ya3Mgb24gdGhlIHN0YXRpYyBgc3R5bGVgIGF0dHJpYnV0ZSBhbmRcclxuLy8gY29udmVydHMgaXQgaW50byBhIGR5bmFtaWMgZXF1aXZhbGVudDpcclxuLy8gc3R5bGU9XCJjb2xvcjogcmVkXCIgLT4gOnN0eWxlPSd7IFwiY29sb3JcIjogXCJyZWRcIiB9J1xyXG4vLyBJdCBpcyB0aGVuIHByb2Nlc3NlZCBieSBgdHJhbnNmb3JtRWxlbWVudGAgYW5kIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWRcclxuLy8gcHJvcHMuXHJcbmNvbnN0IHRyYW5zZm9ybVN0eWxlID0gbm9kZSA9PiB7XHJcbiAgICBpZiAobm9kZS50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovKSB7XHJcbiAgICAgICAgbm9kZS5wcm9wcy5mb3JFYWNoKChwLCBpKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChwLnR5cGUgPT09IDYgLyogTm9kZVR5cGVzLkFUVFJJQlVURSAqLyAmJiBwLm5hbWUgPT09ICdzdHlsZScgJiYgcC52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBwIHdpdGggYW4gZXhwcmVzc2lvbiBub2RlXHJcbiAgICAgICAgICAgICAgICBub2RlLnByb3BzW2ldID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IDcgLyogTm9kZVR5cGVzLkRJUkVDVElWRSAqLyxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBgYmluZGAsXHJcbiAgICAgICAgICAgICAgICAgICAgYXJnOiBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKGBzdHlsZWAsIHRydWUsIHAubG9jKSxcclxuICAgICAgICAgICAgICAgICAgICBleHA6IHBhcnNlSW5saW5lQ1NTKHAudmFsdWUuY29udGVudCwgcC5sb2MpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczogW10sXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jOiBwLmxvY1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59O1xyXG5jb25zdCBwYXJzZUlubGluZUNTUyA9IChjc3NUZXh0LCBsb2MpID0+IHtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBwYXJzZVN0cmluZ1N0eWxlKGNzc1RleHQpO1xyXG4gICAgcmV0dXJuIGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oSlNPTi5zdHJpbmdpZnkobm9ybWFsaXplZCksIGZhbHNlLCBsb2MsIDMgLyogQ29uc3RhbnRUeXBlcy5DQU5fU1RSSU5HSUZZICovKTtcclxufTtcblxuZnVuY3Rpb24gY3JlYXRlRE9NQ29tcGlsZXJFcnJvcihjb2RlLCBsb2MpIHtcclxuICAgIHJldHVybiBjcmVhdGVDb21waWxlckVycm9yKGNvZGUsIGxvYywgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHx8ICF0cnVlID8gRE9NRXJyb3JNZXNzYWdlcyA6IHVuZGVmaW5lZCk7XHJcbn1cclxuY29uc3QgRE9NRXJyb3JNZXNzYWdlcyA9IHtcclxuICAgIFs1MCAvKiBET01FcnJvckNvZGVzLlhfVl9IVE1MX05PX0VYUFJFU1NJT04gKi9dOiBgdi1odG1sIGlzIG1pc3NpbmcgZXhwcmVzc2lvbi5gLFxyXG4gICAgWzUxIC8qIERPTUVycm9yQ29kZXMuWF9WX0hUTUxfV0lUSF9DSElMRFJFTiAqL106IGB2LWh0bWwgd2lsbCBvdmVycmlkZSBlbGVtZW50IGNoaWxkcmVuLmAsXHJcbiAgICBbNTIgLyogRE9NRXJyb3JDb2Rlcy5YX1ZfVEVYVF9OT19FWFBSRVNTSU9OICovXTogYHYtdGV4dCBpcyBtaXNzaW5nIGV4cHJlc3Npb24uYCxcclxuICAgIFs1MyAvKiBET01FcnJvckNvZGVzLlhfVl9URVhUX1dJVEhfQ0hJTERSRU4gKi9dOiBgdi10ZXh0IHdpbGwgb3ZlcnJpZGUgZWxlbWVudCBjaGlsZHJlbi5gLFxyXG4gICAgWzU0IC8qIERPTUVycm9yQ29kZXMuWF9WX01PREVMX09OX0lOVkFMSURfRUxFTUVOVCAqL106IGB2LW1vZGVsIGNhbiBvbmx5IGJlIHVzZWQgb24gPGlucHV0PiwgPHRleHRhcmVhPiBhbmQgPHNlbGVjdD4gZWxlbWVudHMuYCxcclxuICAgIFs1NSAvKiBET01FcnJvckNvZGVzLlhfVl9NT0RFTF9BUkdfT05fRUxFTUVOVCAqL106IGB2LW1vZGVsIGFyZ3VtZW50IGlzIG5vdCBzdXBwb3J0ZWQgb24gcGxhaW4gZWxlbWVudHMuYCxcclxuICAgIFs1NiAvKiBET01FcnJvckNvZGVzLlhfVl9NT0RFTF9PTl9GSUxFX0lOUFVUX0VMRU1FTlQgKi9dOiBgdi1tb2RlbCBjYW5ub3QgYmUgdXNlZCBvbiBmaWxlIGlucHV0cyBzaW5jZSB0aGV5IGFyZSByZWFkLW9ubHkuIFVzZSBhIHYtb246Y2hhbmdlIGxpc3RlbmVyIGluc3RlYWQuYCxcclxuICAgIFs1NyAvKiBET01FcnJvckNvZGVzLlhfVl9NT0RFTF9VTk5FQ0VTU0FSWV9WQUxVRSAqL106IGBVbm5lY2Vzc2FyeSB2YWx1ZSBiaW5kaW5nIHVzZWQgYWxvbmdzaWRlIHYtbW9kZWwuIEl0IHdpbGwgaW50ZXJmZXJlIHdpdGggdi1tb2RlbCdzIGJlaGF2aW9yLmAsXHJcbiAgICBbNTggLyogRE9NRXJyb3JDb2Rlcy5YX1ZfU0hPV19OT19FWFBSRVNTSU9OICovXTogYHYtc2hvdyBpcyBtaXNzaW5nIGV4cHJlc3Npb24uYCxcclxuICAgIFs1OSAvKiBET01FcnJvckNvZGVzLlhfVFJBTlNJVElPTl9JTlZBTElEX0NISUxEUkVOICovXTogYDxUcmFuc2l0aW9uPiBleHBlY3RzIGV4YWN0bHkgb25lIGNoaWxkIGVsZW1lbnQgb3IgY29tcG9uZW50LmAsXHJcbiAgICBbNjAgLyogRE9NRXJyb3JDb2Rlcy5YX0lHTk9SRURfU0lERV9FRkZFQ1RfVEFHICovXTogYFRhZ3Mgd2l0aCBzaWRlIGVmZmVjdCAoPHNjcmlwdD4gYW5kIDxzdHlsZT4pIGFyZSBpZ25vcmVkIGluIGNsaWVudCBjb21wb25lbnQgdGVtcGxhdGVzLmBcclxufTtcblxuY29uc3QgdHJhbnNmb3JtVkh0bWwgPSAoZGlyLCBub2RlLCBjb250ZXh0KSA9PiB7XHJcbiAgICBjb25zdCB7IGV4cCwgbG9jIH0gPSBkaXI7XHJcbiAgICBpZiAoIWV4cCkge1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVET01Db21waWxlckVycm9yKDUwIC8qIERPTUVycm9yQ29kZXMuWF9WX0hUTUxfTk9fRVhQUkVTU0lPTiAqLywgbG9jKSk7XHJcbiAgICB9XHJcbiAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlRE9NQ29tcGlsZXJFcnJvcig1MSAvKiBET01FcnJvckNvZGVzLlhfVl9IVE1MX1dJVEhfQ0hJTERSRU4gKi8sIGxvYykpO1xyXG4gICAgICAgIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJvcHM6IFtcclxuICAgICAgICAgICAgY3JlYXRlT2JqZWN0UHJvcGVydHkoY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgaW5uZXJIVE1MYCwgdHJ1ZSwgbG9jKSwgZXhwIHx8IGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oJycsIHRydWUpKVxyXG4gICAgICAgIF1cclxuICAgIH07XHJcbn07XG5cbmNvbnN0IHRyYW5zZm9ybVZUZXh0ID0gKGRpciwgbm9kZSwgY29udGV4dCkgPT4ge1xyXG4gICAgY29uc3QgeyBleHAsIGxvYyB9ID0gZGlyO1xyXG4gICAgaWYgKCFleHApIHtcclxuICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlRE9NQ29tcGlsZXJFcnJvcig1MiAvKiBET01FcnJvckNvZGVzLlhfVl9URVhUX05PX0VYUFJFU1NJT04gKi8sIGxvYykpO1xyXG4gICAgfVxyXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZURPTUNvbXBpbGVyRXJyb3IoNTMgLyogRE9NRXJyb3JDb2Rlcy5YX1ZfVEVYVF9XSVRIX0NISUxEUkVOICovLCBsb2MpKTtcclxuICAgICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3BzOiBbXHJcbiAgICAgICAgICAgIGNyZWF0ZU9iamVjdFByb3BlcnR5KGNyZWF0ZVNpbXBsZUV4cHJlc3Npb24oYHRleHRDb250ZW50YCwgdHJ1ZSksIGV4cFxyXG4gICAgICAgICAgICAgICAgPyBnZXRDb25zdGFudFR5cGUoZXhwLCBjb250ZXh0KSA+IDBcclxuICAgICAgICAgICAgICAgICAgICA/IGV4cFxyXG4gICAgICAgICAgICAgICAgICAgIDogY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXJTdHJpbmcoVE9fRElTUExBWV9TVFJJTkcpLCBbZXhwXSwgbG9jKVxyXG4gICAgICAgICAgICAgICAgOiBjcmVhdGVTaW1wbGVFeHByZXNzaW9uKCcnLCB0cnVlKSlcclxuICAgICAgICBdXHJcbiAgICB9O1xyXG59O1xuXG5jb25zdCB0cmFuc2Zvcm1Nb2RlbCA9IChkaXIsIG5vZGUsIGNvbnRleHQpID0+IHtcclxuICAgIGNvbnN0IGJhc2VSZXN1bHQgPSB0cmFuc2Zvcm1Nb2RlbCQxKGRpciwgbm9kZSwgY29udGV4dCk7XHJcbiAgICAvLyBiYXNlIHRyYW5zZm9ybSBoYXMgZXJyb3JzIE9SIGNvbXBvbmVudCB2LW1vZGVsIChvbmx5IG5lZWQgcHJvcHMpXHJcbiAgICBpZiAoIWJhc2VSZXN1bHQucHJvcHMubGVuZ3RoIHx8IG5vZGUudGFnVHlwZSA9PT0gMSAvKiBFbGVtZW50VHlwZXMuQ09NUE9ORU5UICovKSB7XHJcbiAgICAgICAgcmV0dXJuIGJhc2VSZXN1bHQ7XHJcbiAgICB9XHJcbiAgICBpZiAoZGlyLmFyZykge1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVET01Db21waWxlckVycm9yKDU1IC8qIERPTUVycm9yQ29kZXMuWF9WX01PREVMX0FSR19PTl9FTEVNRU5UICovLCBkaXIuYXJnLmxvYykpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gY2hlY2tEdXBsaWNhdGVkVmFsdWUoKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmaW5kUHJvcChub2RlLCAndmFsdWUnKTtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZURPTUNvbXBpbGVyRXJyb3IoNTcgLyogRE9NRXJyb3JDb2Rlcy5YX1ZfTU9ERUxfVU5ORUNFU1NBUllfVkFMVUUgKi8sIHZhbHVlLmxvYykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHsgdGFnIH0gPSBub2RlO1xyXG4gICAgY29uc3QgaXNDdXN0b21FbGVtZW50ID0gY29udGV4dC5pc0N1c3RvbUVsZW1lbnQodGFnKTtcclxuICAgIGlmICh0YWcgPT09ICdpbnB1dCcgfHxcclxuICAgICAgICB0YWcgPT09ICd0ZXh0YXJlYScgfHxcclxuICAgICAgICB0YWcgPT09ICdzZWxlY3QnIHx8XHJcbiAgICAgICAgaXNDdXN0b21FbGVtZW50KSB7XHJcbiAgICAgICAgbGV0IGRpcmVjdGl2ZVRvVXNlID0gVl9NT0RFTF9URVhUO1xyXG4gICAgICAgIGxldCBpc0ludmFsaWRUeXBlID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRhZyA9PT0gJ2lucHV0JyB8fCBpc0N1c3RvbUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGZpbmRQcm9wKG5vZGUsIGB0eXBlYCk7XHJcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZS50eXBlID09PSA3IC8qIE5vZGVUeXBlcy5ESVJFQ1RJVkUgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyA6dHlwZT1cImZvb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlVG9Vc2UgPSBWX01PREVMX0RZTkFNSUM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlLnZhbHVlLmNvbnRlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncmFkaW8nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlVG9Vc2UgPSBWX01PREVMX1JBRElPO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NoZWNrYm94JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZVRvVXNlID0gVl9NT0RFTF9DSEVDS0JPWDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdmaWxlJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSW52YWxpZFR5cGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKGNyZWF0ZURPTUNvbXBpbGVyRXJyb3IoNTYgLyogRE9NRXJyb3JDb2Rlcy5YX1ZfTU9ERUxfT05fRklMRV9JTlBVVF9FTEVNRU5UICovLCBkaXIubG9jKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRleHQgdHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGNoZWNrRHVwbGljYXRlZFZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaGFzRHluYW1pY0tleVZCaW5kKG5vZGUpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBlbGVtZW50IGhhcyBiaW5kaW5ncyB3aXRoIGR5bmFtaWMga2V5cywgd2hpY2ggY2FuIHBvc3NpYmx5IGNvbnRhaW5cclxuICAgICAgICAgICAgICAgIC8vIFwidHlwZVwiLlxyXG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlVG9Vc2UgPSBWX01PREVMX0RZTkFNSUM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyB0ZXh0IHR5cGVcclxuICAgICAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBjaGVja0R1cGxpY2F0ZWRWYWx1ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRhZyA9PT0gJ3NlbGVjdCcpIHtcclxuICAgICAgICAgICAgZGlyZWN0aXZlVG9Vc2UgPSBWX01PREVMX1NFTEVDVDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRleHRhcmVhXHJcbiAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBjaGVja0R1cGxpY2F0ZWRWYWx1ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpbmplY3QgcnVudGltZSBkaXJlY3RpdmVcclxuICAgICAgICAvLyBieSByZXR1cm5pbmcgdGhlIGhlbHBlciBzeW1ib2wgdmlhIG5lZWRSdW50aW1lXHJcbiAgICAgICAgLy8gdGhlIGltcG9ydCB3aWxsIHJlcGxhY2VkIGEgcmVzb2x2ZURpcmVjdGl2ZSBjYWxsLlxyXG4gICAgICAgIGlmICghaXNJbnZhbGlkVHlwZSkge1xyXG4gICAgICAgICAgICBiYXNlUmVzdWx0Lm5lZWRSdW50aW1lID0gY29udGV4dC5oZWxwZXIoZGlyZWN0aXZlVG9Vc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVET01Db21waWxlckVycm9yKDU0IC8qIERPTUVycm9yQ29kZXMuWF9WX01PREVMX09OX0lOVkFMSURfRUxFTUVOVCAqLywgZGlyLmxvYykpO1xyXG4gICAgfVxyXG4gICAgLy8gbmF0aXZlIHZtb2RlbCBkb2Vzbid0IG5lZWQgdGhlIGBtb2RlbFZhbHVlYCBwcm9wcyBzaW5jZSB0aGV5IGFyZSBhbHNvXHJcbiAgICAvLyBwYXNzZWQgdG8gdGhlIHJ1bnRpbWUgYXMgYGJpbmRpbmcudmFsdWVgLiByZW1vdmluZyBpdCByZWR1Y2VzIGNvZGUgc2l6ZS5cclxuICAgIGJhc2VSZXN1bHQucHJvcHMgPSBiYXNlUmVzdWx0LnByb3BzLmZpbHRlcihwID0+ICEocC5rZXkudHlwZSA9PT0gNCAvKiBOb2RlVHlwZXMuU0lNUExFX0VYUFJFU1NJT04gKi8gJiZcclxuICAgICAgICBwLmtleS5jb250ZW50ID09PSAnbW9kZWxWYWx1ZScpKTtcclxuICAgIHJldHVybiBiYXNlUmVzdWx0O1xyXG59O1xuXG5jb25zdCBpc0V2ZW50T3B0aW9uTW9kaWZpZXIgPSAvKiNfX1BVUkVfXyovIG1ha2VNYXAoYHBhc3NpdmUsb25jZSxjYXB0dXJlYCk7XHJcbmNvbnN0IGlzTm9uS2V5TW9kaWZpZXIgPSAvKiNfX1BVUkVfXyovIG1ha2VNYXAoXHJcbi8vIGV2ZW50IHByb3BhZ2F0aW9uIG1hbmFnZW1lbnRcclxuYHN0b3AscHJldmVudCxzZWxmLGAgK1xyXG4gICAgLy8gc3lzdGVtIG1vZGlmaWVycyArIGV4YWN0XHJcbiAgICBgY3RybCxzaGlmdCxhbHQsbWV0YSxleGFjdCxgICtcclxuICAgIC8vIG1vdXNlXHJcbiAgICBgbWlkZGxlYCk7XHJcbi8vIGxlZnQgJiByaWdodCBjb3VsZCBiZSBtb3VzZSBvciBrZXkgbW9kaWZpZXJzIGJhc2VkIG9uIGV2ZW50IHR5cGVcclxuY29uc3QgbWF5YmVLZXlNb2RpZmllciA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcCgnbGVmdCxyaWdodCcpO1xyXG5jb25zdCBpc0tleWJvYXJkRXZlbnQgPSAvKiNfX1BVUkVfXyovIG1ha2VNYXAoYG9ua2V5dXAsb25rZXlkb3duLG9ua2V5cHJlc3NgLCB0cnVlKTtcclxuY29uc3QgcmVzb2x2ZU1vZGlmaWVycyA9IChrZXksIG1vZGlmaWVycywgY29udGV4dCwgbG9jKSA9PiB7XHJcbiAgICBjb25zdCBrZXlNb2RpZmllcnMgPSBbXTtcclxuICAgIGNvbnN0IG5vbktleU1vZGlmaWVycyA9IFtdO1xyXG4gICAgY29uc3QgZXZlbnRPcHRpb25Nb2RpZmllcnMgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9kaWZpZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbW9kaWZpZXIgPSBtb2RpZmllcnNbaV07XHJcbiAgICAgICAgaWYgKG1vZGlmaWVyID09PSAnbmF0aXZlJyAmJlxyXG4gICAgICAgICAgICBjaGVja0NvbXBhdEVuYWJsZWQoXCJDT01QSUxFUl9WX09OX05BVElWRVwiIC8qIENvbXBpbGVyRGVwcmVjYXRpb25UeXBlcy5DT01QSUxFUl9WX09OX05BVElWRSAqLywgY29udGV4dCwgbG9jKSkge1xyXG4gICAgICAgICAgICBldmVudE9wdGlvbk1vZGlmaWVycy5wdXNoKG1vZGlmaWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXNFdmVudE9wdGlvbk1vZGlmaWVyKG1vZGlmaWVyKSkge1xyXG4gICAgICAgICAgICAvLyBldmVudE9wdGlvbk1vZGlmaWVyczogbW9kaWZpZXJzIGZvciBhZGRFdmVudExpc3RlbmVyKCkgb3B0aW9ucyxcclxuICAgICAgICAgICAgLy8gZS5nLiAucGFzc2l2ZSAmIC5jYXB0dXJlXHJcbiAgICAgICAgICAgIGV2ZW50T3B0aW9uTW9kaWZpZXJzLnB1c2gobW9kaWZpZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gcnVudGltZU1vZGlmaWVyczogbW9kaWZpZXJzIHRoYXQgbmVlZHMgcnVudGltZSBndWFyZHNcclxuICAgICAgICAgICAgaWYgKG1heWJlS2V5TW9kaWZpZXIobW9kaWZpZXIpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNTdGF0aWNFeHAoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0tleWJvYXJkRXZlbnQoa2V5LmNvbnRlbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleU1vZGlmaWVycy5wdXNoKG1vZGlmaWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vbktleU1vZGlmaWVycy5wdXNoKG1vZGlmaWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBrZXlNb2RpZmllcnMucHVzaChtb2RpZmllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9uS2V5TW9kaWZpZXJzLnB1c2gobW9kaWZpZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzTm9uS2V5TW9kaWZpZXIobW9kaWZpZXIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9uS2V5TW9kaWZpZXJzLnB1c2gobW9kaWZpZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TW9kaWZpZXJzLnB1c2gobW9kaWZpZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBrZXlNb2RpZmllcnMsXHJcbiAgICAgICAgbm9uS2V5TW9kaWZpZXJzLFxyXG4gICAgICAgIGV2ZW50T3B0aW9uTW9kaWZpZXJzXHJcbiAgICB9O1xyXG59O1xyXG5jb25zdCB0cmFuc2Zvcm1DbGljayA9IChrZXksIGV2ZW50KSA9PiB7XHJcbiAgICBjb25zdCBpc1N0YXRpY0NsaWNrID0gaXNTdGF0aWNFeHAoa2V5KSAmJiBrZXkuY29udGVudC50b0xvd2VyQ2FzZSgpID09PSAnb25jbGljayc7XHJcbiAgICByZXR1cm4gaXNTdGF0aWNDbGlja1xyXG4gICAgICAgID8gY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihldmVudCwgdHJ1ZSlcclxuICAgICAgICA6IGtleS50eXBlICE9PSA0IC8qIE5vZGVUeXBlcy5TSU1QTEVfRVhQUkVTU0lPTiAqL1xyXG4gICAgICAgICAgICA/IGNyZWF0ZUNvbXBvdW5kRXhwcmVzc2lvbihbXHJcbiAgICAgICAgICAgICAgICBgKGAsXHJcbiAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICBgKSA9PT0gXCJvbkNsaWNrXCIgPyBcIiR7ZXZlbnR9XCIgOiAoYCxcclxuICAgICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICAgIGApYFxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgICAgICA6IGtleTtcclxufTtcclxuY29uc3QgdHJhbnNmb3JtT24gPSAoZGlyLCBub2RlLCBjb250ZXh0KSA9PiB7XHJcbiAgICByZXR1cm4gdHJhbnNmb3JtT24kMShkaXIsIG5vZGUsIGNvbnRleHQsIGJhc2VSZXN1bHQgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgbW9kaWZpZXJzIH0gPSBkaXI7XHJcbiAgICAgICAgaWYgKCFtb2RpZmllcnMubGVuZ3RoKVxyXG4gICAgICAgICAgICByZXR1cm4gYmFzZVJlc3VsdDtcclxuICAgICAgICBsZXQgeyBrZXksIHZhbHVlOiBoYW5kbGVyRXhwIH0gPSBiYXNlUmVzdWx0LnByb3BzWzBdO1xyXG4gICAgICAgIGNvbnN0IHsga2V5TW9kaWZpZXJzLCBub25LZXlNb2RpZmllcnMsIGV2ZW50T3B0aW9uTW9kaWZpZXJzIH0gPSByZXNvbHZlTW9kaWZpZXJzKGtleSwgbW9kaWZpZXJzLCBjb250ZXh0LCBkaXIubG9jKTtcclxuICAgICAgICAvLyBub3JtYWxpemUgY2xpY2sucmlnaHQgYW5kIGNsaWNrLm1pZGRsZSBzaW5jZSB0aGV5IGRvbid0IGFjdHVhbGx5IGZpcmVcclxuICAgICAgICBpZiAobm9uS2V5TW9kaWZpZXJzLmluY2x1ZGVzKCdyaWdodCcpKSB7XHJcbiAgICAgICAgICAgIGtleSA9IHRyYW5zZm9ybUNsaWNrKGtleSwgYG9uQ29udGV4dG1lbnVgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vbktleU1vZGlmaWVycy5pbmNsdWRlcygnbWlkZGxlJykpIHtcclxuICAgICAgICAgICAga2V5ID0gdHJhbnNmb3JtQ2xpY2soa2V5LCBgb25Nb3VzZXVwYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub25LZXlNb2RpZmllcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZXJFeHAgPSBjcmVhdGVDYWxsRXhwcmVzc2lvbihjb250ZXh0LmhlbHBlcihWX09OX1dJVEhfTU9ESUZJRVJTKSwgW1xyXG4gICAgICAgICAgICAgICAgaGFuZGxlckV4cCxcclxuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KG5vbktleU1vZGlmaWVycylcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChrZXlNb2RpZmllcnMubGVuZ3RoICYmXHJcbiAgICAgICAgICAgIC8vIGlmIGV2ZW50IG5hbWUgaXMgZHluYW1pYywgYWx3YXlzIHdyYXAgd2l0aCBrZXlzIGd1YXJkXHJcbiAgICAgICAgICAgICghaXNTdGF0aWNFeHAoa2V5KSB8fCBpc0tleWJvYXJkRXZlbnQoa2V5LmNvbnRlbnQpKSkge1xyXG4gICAgICAgICAgICBoYW5kbGVyRXhwID0gY3JlYXRlQ2FsbEV4cHJlc3Npb24oY29udGV4dC5oZWxwZXIoVl9PTl9XSVRIX0tFWVMpLCBbXHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyRXhwLFxyXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoa2V5TW9kaWZpZXJzKVxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50T3B0aW9uTW9kaWZpZXJzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCBtb2RpZmllclBvc3RmaXggPSBldmVudE9wdGlvbk1vZGlmaWVycy5tYXAoY2FwaXRhbGl6ZSkuam9pbignJyk7XHJcbiAgICAgICAgICAgIGtleSA9IGlzU3RhdGljRXhwKGtleSlcclxuICAgICAgICAgICAgICAgID8gY3JlYXRlU2ltcGxlRXhwcmVzc2lvbihgJHtrZXkuY29udGVudH0ke21vZGlmaWVyUG9zdGZpeH1gLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgOiBjcmVhdGVDb21wb3VuZEV4cHJlc3Npb24oW2AoYCwga2V5LCBgKSArIFwiJHttb2RpZmllclBvc3RmaXh9XCJgXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHByb3BzOiBbY3JlYXRlT2JqZWN0UHJvcGVydHkoa2V5LCBoYW5kbGVyRXhwKV1cclxuICAgICAgICB9O1xyXG4gICAgfSk7XHJcbn07XG5cbmNvbnN0IHRyYW5zZm9ybVNob3cgPSAoZGlyLCBub2RlLCBjb250ZXh0KSA9PiB7XHJcbiAgICBjb25zdCB7IGV4cCwgbG9jIH0gPSBkaXI7XHJcbiAgICBpZiAoIWV4cCkge1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVET01Db21waWxlckVycm9yKDU4IC8qIERPTUVycm9yQ29kZXMuWF9WX1NIT1dfTk9fRVhQUkVTU0lPTiAqLywgbG9jKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3BzOiBbXSxcclxuICAgICAgICBuZWVkUnVudGltZTogY29udGV4dC5oZWxwZXIoVl9TSE9XKVxyXG4gICAgfTtcclxufTtcblxuY29uc3QgdHJhbnNmb3JtVHJhbnNpdGlvbiA9IChub2RlLCBjb250ZXh0KSA9PiB7XHJcbiAgICBpZiAobm9kZS50eXBlID09PSAxIC8qIE5vZGVUeXBlcy5FTEVNRU5UICovICYmXHJcbiAgICAgICAgbm9kZS50YWdUeXBlID09PSAxIC8qIEVsZW1lbnRUeXBlcy5DT01QT05FTlQgKi8pIHtcclxuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBjb250ZXh0LmlzQnVpbHRJbkNvbXBvbmVudChub2RlLnRhZyk7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudCA9PT0gVFJBTlNJVElPTikge1xyXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFub2RlLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIHdhcm4gbXVsdGlwbGUgdHJhbnNpdGlvbiBjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgaWYgKGhhc011bHRpcGxlQ2hpbGRyZW4obm9kZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRXJyb3IoY3JlYXRlRE9NQ29tcGlsZXJFcnJvcig1OSAvKiBET01FcnJvckNvZGVzLlhfVFJBTlNJVElPTl9JTlZBTElEX0NISUxEUkVOICovLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBub2RlLmNoaWxkcmVuWzBdLmxvYy5zdGFydCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBub2RlLmNoaWxkcmVuW25vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMV0ubG9jLmVuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGl0J3MgcyBzaW5nbGUgY2hpbGQgdy8gdi1zaG93XHJcbiAgICAgICAgICAgICAgICAvLyBpZiB5ZXMsIGluamVjdCBcInBlcnNpc3RlZDogdHJ1ZVwiIHRvIHRoZSB0cmFuc2l0aW9uIHByb3BzXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5bMF07XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gMSAvKiBOb2RlVHlwZXMuRUxFTUVOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBjaGlsZC5wcm9wcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocC50eXBlID09PSA3IC8qIE5vZGVUeXBlcy5ESVJFQ1RJVkUgKi8gJiYgcC5uYW1lID09PSAnc2hvdycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUucHJvcHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogNiAvKiBOb2RlVHlwZXMuQVRUUklCVVRFICovLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwZXJzaXN0ZWQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jOiBub2RlLmxvY1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5mdW5jdGlvbiBoYXNNdWx0aXBsZUNoaWxkcmVuKG5vZGUpIHtcclxuICAgIC8vICMxMzUyIGZpbHRlciBvdXQgcG90ZW50aWFsIGNvbW1lbnQgbm9kZXMuXHJcbiAgICBjb25zdCBjaGlsZHJlbiA9IChub2RlLmNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbi5maWx0ZXIoYyA9PiBjLnR5cGUgIT09IDMgLyogTm9kZVR5cGVzLkNPTU1FTlQgKi8gJiZcclxuICAgICAgICAhKGMudHlwZSA9PT0gMiAvKiBOb2RlVHlwZXMuVEVYVCAqLyAmJiAhYy5jb250ZW50LnRyaW0oKSkpKTtcclxuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5bMF07XHJcbiAgICByZXR1cm4gKGNoaWxkcmVuLmxlbmd0aCAhPT0gMSB8fFxyXG4gICAgICAgIGNoaWxkLnR5cGUgPT09IDExIC8qIE5vZGVUeXBlcy5GT1IgKi8gfHxcclxuICAgICAgICAoY2hpbGQudHlwZSA9PT0gOSAvKiBOb2RlVHlwZXMuSUYgKi8gJiYgY2hpbGQuYnJhbmNoZXMuc29tZShoYXNNdWx0aXBsZUNoaWxkcmVuKSkpO1xyXG59XG5cbmNvbnN0IGlnbm9yZVNpZGVFZmZlY3RUYWdzID0gKG5vZGUsIGNvbnRleHQpID0+IHtcclxuICAgIGlmIChub2RlLnR5cGUgPT09IDEgLyogTm9kZVR5cGVzLkVMRU1FTlQgKi8gJiZcclxuICAgICAgICBub2RlLnRhZ1R5cGUgPT09IDAgLyogRWxlbWVudFR5cGVzLkVMRU1FTlQgKi8gJiZcclxuICAgICAgICAobm9kZS50YWcgPT09ICdzY3JpcHQnIHx8IG5vZGUudGFnID09PSAnc3R5bGUnKSkge1xyXG4gICAgICAgIGNvbnRleHQub25FcnJvcihjcmVhdGVET01Db21waWxlckVycm9yKDYwIC8qIERPTUVycm9yQ29kZXMuWF9JR05PUkVEX1NJREVfRUZGRUNUX1RBRyAqLywgbm9kZS5sb2MpKTtcclxuICAgICAgICBjb250ZXh0LnJlbW92ZU5vZGUoKTtcclxuICAgIH1cclxufTtcblxuY29uc3QgRE9NTm9kZVRyYW5zZm9ybXMgPSBbXHJcbiAgICB0cmFuc2Zvcm1TdHlsZSxcclxuICAgIC4uLigocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBbdHJhbnNmb3JtVHJhbnNpdGlvbl0gOiBbXSlcclxuXTtcclxuY29uc3QgRE9NRGlyZWN0aXZlVHJhbnNmb3JtcyA9IHtcclxuICAgIGNsb2FrOiBub29wRGlyZWN0aXZlVHJhbnNmb3JtLFxyXG4gICAgaHRtbDogdHJhbnNmb3JtVkh0bWwsXHJcbiAgICB0ZXh0OiB0cmFuc2Zvcm1WVGV4dCxcclxuICAgIG1vZGVsOiB0cmFuc2Zvcm1Nb2RlbCxcclxuICAgIG9uOiB0cmFuc2Zvcm1PbixcclxuICAgIHNob3c6IHRyYW5zZm9ybVNob3dcclxufTtcclxuZnVuY3Rpb24gY29tcGlsZSh0ZW1wbGF0ZSwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICByZXR1cm4gYmFzZUNvbXBpbGUodGVtcGxhdGUsIGV4dGVuZCh7fSwgcGFyc2VyT3B0aW9ucywgb3B0aW9ucywge1xyXG4gICAgICAgIG5vZGVUcmFuc2Zvcm1zOiBbXHJcbiAgICAgICAgICAgIC8vIGlnbm9yZSA8c2NyaXB0PiBhbmQgPHRhZz5cclxuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgcHV0IGluc2lkZSBET01Ob2RlVHJhbnNmb3JtcyBiZWNhdXNlIHRoYXQgbGlzdCBpcyB1c2VkXHJcbiAgICAgICAgICAgIC8vIGJ5IGNvbXBpbGVyLXNzciB0byBnZW5lcmF0ZSB2bm9kZSBmYWxsYmFjayBicmFuY2hlc1xyXG4gICAgICAgICAgICBpZ25vcmVTaWRlRWZmZWN0VGFncyxcclxuICAgICAgICAgICAgLi4uRE9NTm9kZVRyYW5zZm9ybXMsXHJcbiAgICAgICAgICAgIC4uLihvcHRpb25zLm5vZGVUcmFuc2Zvcm1zIHx8IFtdKVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGlyZWN0aXZlVHJhbnNmb3JtczogZXh0ZW5kKHt9LCBET01EaXJlY3RpdmVUcmFuc2Zvcm1zLCBvcHRpb25zLmRpcmVjdGl2ZVRyYW5zZm9ybXMgfHwge30pLFxyXG4gICAgICAgIHRyYW5zZm9ybUhvaXN0OiBudWxsIFxyXG4gICAgfSkpO1xyXG59XHJcbmZ1bmN0aW9uIHBhcnNlKHRlbXBsYXRlLCBvcHRpb25zID0ge30pIHtcclxuICAgIHJldHVybiBiYXNlUGFyc2UodGVtcGxhdGUsIGV4dGVuZCh7fSwgcGFyc2VyT3B0aW9ucywgb3B0aW9ucykpO1xyXG59XG5cbmV4cG9ydCB7IERPTURpcmVjdGl2ZVRyYW5zZm9ybXMsIERPTU5vZGVUcmFuc2Zvcm1zLCBUUkFOU0lUSU9OLCBUUkFOU0lUSU9OX0dST1VQLCBWX01PREVMX0NIRUNLQk9YLCBWX01PREVMX0RZTkFNSUMsIFZfTU9ERUxfUkFESU8sIFZfTU9ERUxfU0VMRUNULCBWX01PREVMX1RFWFQsIFZfT05fV0lUSF9LRVlTLCBWX09OX1dJVEhfTU9ESUZJRVJTLCBWX1NIT1csIGNvbXBpbGUsIGNyZWF0ZURPTUNvbXBpbGVyRXJyb3IsIHBhcnNlLCBwYXJzZXJPcHRpb25zLCB0cmFuc2Zvcm1TdHlsZSB9O1xuIiwiZXhwb3J0IGNvbnN0IEhPT0tfU0VUVVAgPSAnZGV2dG9vbHMtcGx1Z2luOnNldHVwJztcbmV4cG9ydCBjb25zdCBIT09LX1BMVUdJTl9TRVRUSU5HU19TRVQgPSAncGx1Z2luOnNldHRpbmdzOnNldCc7XG4iLCJleHBvcnQgZnVuY3Rpb24gZ2V0RGV2dG9vbHNHbG9iYWxIb29rKCkge1xuICAgIHJldHVybiBnZXRUYXJnZXQoKS5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhcmdldCgpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJylcbiAgICAgICAgPyB3aW5kb3dcbiAgICAgICAgOiB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgPyBnbG9iYWxcbiAgICAgICAgICAgIDoge307XG59XG5leHBvcnQgY29uc3QgaXNQcm94eUF2YWlsYWJsZSA9IHR5cGVvZiBQcm94eSA9PT0gJ2Z1bmN0aW9uJztcbiIsImltcG9ydCB7IGdldFRhcmdldCwgZ2V0RGV2dG9vbHNHbG9iYWxIb29rLCBpc1Byb3h5QXZhaWxhYmxlIH0gZnJvbSAnLi9lbnYuanMnO1xuaW1wb3J0IHsgSE9PS19TRVRVUCB9IGZyb20gJy4vY29uc3QuanMnO1xuaW1wb3J0IHsgQXBpUHJveHkgfSBmcm9tICcuL3Byb3h5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2luLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdGltZS5qcyc7XG5leHBvcnQgZnVuY3Rpb24gc2V0dXBEZXZ0b29sc1BsdWdpbihwbHVnaW5EZXNjcmlwdG9yLCBzZXR1cEZuKSB7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IHBsdWdpbkRlc2NyaXB0b3I7XG4gICAgY29uc3QgdGFyZ2V0ID0gZ2V0VGFyZ2V0KCk7XG4gICAgY29uc3QgaG9vayA9IGdldERldnRvb2xzR2xvYmFsSG9vaygpO1xuICAgIGNvbnN0IGVuYWJsZVByb3h5ID0gaXNQcm94eUF2YWlsYWJsZSAmJiBkZXNjcmlwdG9yLmVuYWJsZUVhcmx5UHJveHk7XG4gICAgaWYgKGhvb2sgJiYgKHRhcmdldC5fX1ZVRV9ERVZUT09MU19QTFVHSU5fQVBJX0FWQUlMQUJMRV9fIHx8ICFlbmFibGVQcm94eSkpIHtcbiAgICAgICAgaG9vay5lbWl0KEhPT0tfU0VUVVAsIHBsdWdpbkRlc2NyaXB0b3IsIHNldHVwRm4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcHJveHkgPSBlbmFibGVQcm94eSA/IG5ldyBBcGlQcm94eShkZXNjcmlwdG9yLCBob29rKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0YXJnZXQuX19WVUVfREVWVE9PTFNfUExVR0lOU19fID0gdGFyZ2V0Ll9fVlVFX0RFVlRPT0xTX1BMVUdJTlNfXyB8fCBbXTtcbiAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIHBsdWdpbkRlc2NyaXB0b3I6IGRlc2NyaXB0b3IsXG4gICAgICAgICAgICBzZXR1cEZuLFxuICAgICAgICAgICAgcHJveHksXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocHJveHkpXG4gICAgICAgICAgICBzZXR1cEZuKHByb3h5LnByb3hpZWRUYXJnZXQpO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEhPT0tfUExVR0lOX1NFVFRJTkdTX1NFVCB9IGZyb20gJy4vY29uc3QuanMnO1xuaW1wb3J0IHsgbm93IH0gZnJvbSAnLi90aW1lLmpzJztcbmV4cG9ydCBjbGFzcyBBcGlQcm94eSB7XG4gICAgY29uc3RydWN0b3IocGx1Z2luLCBob29rKSB7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy50YXJnZXRRdWV1ZSA9IFtdO1xuICAgICAgICB0aGlzLm9uUXVldWUgPSBbXTtcbiAgICAgICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XG4gICAgICAgIHRoaXMuaG9vayA9IGhvb2s7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRTZXR0aW5ncyA9IHt9O1xuICAgICAgICBpZiAocGx1Z2luLnNldHRpbmdzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGlkIGluIHBsdWdpbi5zZXR0aW5ncykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBwbHVnaW4uc2V0dGluZ3NbaWRdO1xuICAgICAgICAgICAgICAgIGRlZmF1bHRTZXR0aW5nc1tpZF0gPSBpdGVtLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsb2NhbFNldHRpbmdzU2F2ZUlkID0gYF9fdnVlLWRldnRvb2xzLXBsdWdpbi1zZXR0aW5nc19fJHtwbHVnaW4uaWR9YDtcbiAgICAgICAgbGV0IGN1cnJlbnRTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTZXR0aW5ncyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByYXcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShsb2NhbFNldHRpbmdzU2F2ZUlkKTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJhdyk7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGN1cnJlbnRTZXR0aW5ncywgZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIG5vb3BcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZhbGxiYWNrcyA9IHtcbiAgICAgICAgICAgIGdldFNldHRpbmdzKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50U2V0dGluZ3M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0U2V0dGluZ3ModmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShsb2NhbFNldHRpbmdzU2F2ZUlkLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBub29wXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnRTZXR0aW5ncyA9IHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5vdygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm93KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBpZiAoaG9vaykge1xuICAgICAgICAgICAgaG9vay5vbihIT09LX1BMVUdJTl9TRVRUSU5HU19TRVQsIChwbHVnaW5JZCwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGx1Z2luSWQgPT09IHRoaXMucGx1Z2luLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFsbGJhY2tzLnNldFNldHRpbmdzKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb3hpZWRPbiA9IG5ldyBQcm94eSh7fSwge1xuICAgICAgICAgICAgZ2V0OiAoX3RhcmdldCwgcHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50YXJnZXQub25bcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25RdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IHByb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb3hpZWRUYXJnZXQgPSBuZXcgUHJveHkoe30sIHtcbiAgICAgICAgICAgIGdldDogKF90YXJnZXQsIHByb3ApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0W3Byb3BdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwcm9wID09PSAnb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3hpZWRPbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoT2JqZWN0LmtleXModGhpcy5mYWxsYmFja3MpLmluY2x1ZGVzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YXJnZXRRdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IHByb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlOiAoKSA9PiB7IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZhbGxiYWNrc1twcm9wXSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0UXVldWUucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogcHJvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBzZXRSZWFsVGFyZ2V0KHRhcmdldCkge1xuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMub25RdWV1ZSkge1xuICAgICAgICAgICAgdGhpcy50YXJnZXQub25baXRlbS5tZXRob2RdKC4uLml0ZW0uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMudGFyZ2V0UXVldWUpIHtcbiAgICAgICAgICAgIGl0ZW0ucmVzb2x2ZShhd2FpdCB0aGlzLnRhcmdldFtpdGVtLm1ldGhvZF0oLi4uaXRlbS5hcmdzKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJsZXQgc3VwcG9ydGVkO1xubGV0IHBlcmY7XG5leHBvcnQgZnVuY3Rpb24gaXNQZXJmb3JtYW5jZVN1cHBvcnRlZCgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHN1cHBvcnRlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cucGVyZm9ybWFuY2UpIHtcbiAgICAgICAgc3VwcG9ydGVkID0gdHJ1ZTtcbiAgICAgICAgcGVyZiA9IHdpbmRvdy5wZXJmb3JtYW5jZTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgJiYgKChfYSA9IGdsb2JhbC5wZXJmX2hvb2tzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucGVyZm9ybWFuY2UpKSB7XG4gICAgICAgIHN1cHBvcnRlZCA9IHRydWU7XG4gICAgICAgIHBlcmYgPSBnbG9iYWwucGVyZl9ob29rcy5wZXJmb3JtYW5jZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN1cHBvcnRlZCA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gc3VwcG9ydGVkO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG5vdygpIHtcbiAgICByZXR1cm4gaXNQZXJmb3JtYW5jZVN1cHBvcnRlZCgpID8gcGVyZi5ub3coKSA6IERhdGUubm93KCk7XG59XG4iLCJpbXBvcnQgeyBleHRlbmQsIGlzQXJyYXksIGlzTWFwLCBpc0ludGVnZXJLZXksIGhhc093biwgaXNTeW1ib2wsIGlzT2JqZWN0LCBoYXNDaGFuZ2VkLCBtYWtlTWFwLCBjYXBpdGFsaXplLCB0b1Jhd1R5cGUsIGRlZiwgaXNGdW5jdGlvbiwgTk9PUCB9IGZyb20gJ0B2dWUvc2hhcmVkJztcblxuZnVuY3Rpb24gd2Fybihtc2csIC4uLmFyZ3MpIHtcclxuICAgIGNvbnNvbGUud2FybihgW1Z1ZSB3YXJuXSAke21zZ31gLCAuLi5hcmdzKTtcclxufVxuXG5sZXQgYWN0aXZlRWZmZWN0U2NvcGU7XHJcbmNsYXNzIEVmZmVjdFNjb3BlIHtcclxuICAgIGNvbnN0cnVjdG9yKGRldGFjaGVkID0gZmFsc2UpIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAaW50ZXJuYWxcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGludGVybmFsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lZmZlY3RzID0gW107XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGludGVybmFsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jbGVhbnVwcyA9IFtdO1xyXG4gICAgICAgIGlmICghZGV0YWNoZWQgJiYgYWN0aXZlRWZmZWN0U2NvcGUpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBhY3RpdmVFZmZlY3RTY29wZTtcclxuICAgICAgICAgICAgdGhpcy5pbmRleCA9XHJcbiAgICAgICAgICAgICAgICAoYWN0aXZlRWZmZWN0U2NvcGUuc2NvcGVzIHx8IChhY3RpdmVFZmZlY3RTY29wZS5zY29wZXMgPSBbXSkpLnB1c2godGhpcykgLSAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJ1bihmbikge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RWZmZWN0U2NvcGUgPSBhY3RpdmVFZmZlY3RTY29wZTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGFjdGl2ZUVmZmVjdFNjb3BlID0gdGhpcztcclxuICAgICAgICAgICAgICAgIHJldHVybiBmbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgYWN0aXZlRWZmZWN0U2NvcGUgPSBjdXJyZW50RWZmZWN0U2NvcGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYGNhbm5vdCBydW4gYW4gaW5hY3RpdmUgZWZmZWN0IHNjb3BlLmApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gbm9uLWRldGFjaGVkIHNjb3Blc1xyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIG9uKCkge1xyXG4gICAgICAgIGFjdGl2ZUVmZmVjdFNjb3BlID0gdGhpcztcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gbm9uLWRldGFjaGVkIHNjb3Blc1xyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIG9mZigpIHtcclxuICAgICAgICBhY3RpdmVFZmZlY3RTY29wZSA9IHRoaXMucGFyZW50O1xyXG4gICAgfVxyXG4gICAgc3RvcChmcm9tUGFyZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIGxldCBpLCBsO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gdGhpcy5lZmZlY3RzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZmZlY3RzW2ldLnN0b3AoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gdGhpcy5jbGVhbnVwcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYW51cHNbaV0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5zY29wZXMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSB0aGlzLnNjb3Blcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjb3Blc1tpXS5zdG9wKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIG5lc3RlZCBzY29wZSwgZGVyZWZlcmVuY2UgZnJvbSBwYXJlbnQgdG8gYXZvaWQgbWVtb3J5IGxlYWtzXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudCAmJiAhZnJvbVBhcmVudCkge1xyXG4gICAgICAgICAgICAgICAgLy8gb3B0aW1pemVkIE8oMSkgcmVtb3ZhbFxyXG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IHRoaXMucGFyZW50LnNjb3Blcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgIGlmIChsYXN0ICYmIGxhc3QgIT09IHRoaXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudC5zY29wZXNbdGhpcy5pbmRleF0gPSBsYXN0O1xyXG4gICAgICAgICAgICAgICAgICAgIGxhc3QuaW5kZXggPSB0aGlzLmluZGV4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGVmZmVjdFNjb3BlKGRldGFjaGVkKSB7XHJcbiAgICByZXR1cm4gbmV3IEVmZmVjdFNjb3BlKGRldGFjaGVkKTtcclxufVxyXG5mdW5jdGlvbiByZWNvcmRFZmZlY3RTY29wZShlZmZlY3QsIHNjb3BlID0gYWN0aXZlRWZmZWN0U2NvcGUpIHtcclxuICAgIGlmIChzY29wZSAmJiBzY29wZS5hY3RpdmUpIHtcclxuICAgICAgICBzY29wZS5lZmZlY3RzLnB1c2goZWZmZWN0KTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBnZXRDdXJyZW50U2NvcGUoKSB7XHJcbiAgICByZXR1cm4gYWN0aXZlRWZmZWN0U2NvcGU7XHJcbn1cclxuZnVuY3Rpb24gb25TY29wZURpc3Bvc2UoZm4pIHtcclxuICAgIGlmIChhY3RpdmVFZmZlY3RTY29wZSkge1xyXG4gICAgICAgIGFjdGl2ZUVmZmVjdFNjb3BlLmNsZWFudXBzLnB1c2goZm4pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgd2Fybihgb25TY29wZURpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB0aGVyZSBpcyBubyBhY3RpdmUgZWZmZWN0IHNjb3BlYCArXHJcbiAgICAgICAgICAgIGAgdG8gYmUgYXNzb2NpYXRlZCB3aXRoLmApO1xyXG4gICAgfVxyXG59XG5cbmNvbnN0IGNyZWF0ZURlcCA9IChlZmZlY3RzKSA9PiB7XHJcbiAgICBjb25zdCBkZXAgPSBuZXcgU2V0KGVmZmVjdHMpO1xyXG4gICAgZGVwLncgPSAwO1xyXG4gICAgZGVwLm4gPSAwO1xyXG4gICAgcmV0dXJuIGRlcDtcclxufTtcclxuY29uc3Qgd2FzVHJhY2tlZCA9IChkZXApID0+IChkZXAudyAmIHRyYWNrT3BCaXQpID4gMDtcclxuY29uc3QgbmV3VHJhY2tlZCA9IChkZXApID0+IChkZXAubiAmIHRyYWNrT3BCaXQpID4gMDtcclxuY29uc3QgaW5pdERlcE1hcmtlcnMgPSAoeyBkZXBzIH0pID0+IHtcclxuICAgIGlmIChkZXBzLmxlbmd0aCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBkZXBzW2ldLncgfD0gdHJhY2tPcEJpdDsgLy8gc2V0IHdhcyB0cmFja2VkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5jb25zdCBmaW5hbGl6ZURlcE1hcmtlcnMgPSAoZWZmZWN0KSA9PiB7XHJcbiAgICBjb25zdCB7IGRlcHMgfSA9IGVmZmVjdDtcclxuICAgIGlmIChkZXBzLmxlbmd0aCkge1xyXG4gICAgICAgIGxldCBwdHIgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkZXAgPSBkZXBzW2ldO1xyXG4gICAgICAgICAgICBpZiAod2FzVHJhY2tlZChkZXApICYmICFuZXdUcmFja2VkKGRlcCkpIHtcclxuICAgICAgICAgICAgICAgIGRlcC5kZWxldGUoZWZmZWN0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRlcHNbcHRyKytdID0gZGVwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGNsZWFyIGJpdHNcclxuICAgICAgICAgICAgZGVwLncgJj0gfnRyYWNrT3BCaXQ7XHJcbiAgICAgICAgICAgIGRlcC5uICY9IH50cmFja09wQml0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBkZXBzLmxlbmd0aCA9IHB0cjtcclxuICAgIH1cclxufTtcblxuY29uc3QgdGFyZ2V0TWFwID0gbmV3IFdlYWtNYXAoKTtcclxuLy8gVGhlIG51bWJlciBvZiBlZmZlY3RzIGN1cnJlbnRseSBiZWluZyB0cmFja2VkIHJlY3Vyc2l2ZWx5LlxyXG5sZXQgZWZmZWN0VHJhY2tEZXB0aCA9IDA7XHJcbmxldCB0cmFja09wQml0ID0gMTtcclxuLyoqXHJcbiAqIFRoZSBiaXR3aXNlIHRyYWNrIG1hcmtlcnMgc3VwcG9ydCBhdCBtb3N0IDMwIGxldmVscyBvZiByZWN1cnNpb24uXHJcbiAqIFRoaXMgdmFsdWUgaXMgY2hvc2VuIHRvIGVuYWJsZSBtb2Rlcm4gSlMgZW5naW5lcyB0byB1c2UgYSBTTUkgb24gYWxsIHBsYXRmb3Jtcy5cclxuICogV2hlbiByZWN1cnNpb24gZGVwdGggaXMgZ3JlYXRlciwgZmFsbCBiYWNrIHRvIHVzaW5nIGEgZnVsbCBjbGVhbnVwLlxyXG4gKi9cclxuY29uc3QgbWF4TWFya2VyQml0cyA9IDMwO1xyXG5sZXQgYWN0aXZlRWZmZWN0O1xyXG5jb25zdCBJVEVSQVRFX0tFWSA9IFN5bWJvbCgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyAnaXRlcmF0ZScgOiAnJyk7XHJcbmNvbnN0IE1BUF9LRVlfSVRFUkFURV9LRVkgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gJ01hcCBrZXkgaXRlcmF0ZScgOiAnJyk7XHJcbmNsYXNzIFJlYWN0aXZlRWZmZWN0IHtcclxuICAgIGNvbnN0cnVjdG9yKGZuLCBzY2hlZHVsZXIgPSBudWxsLCBzY29wZSkge1xyXG4gICAgICAgIHRoaXMuZm4gPSBmbjtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjtcclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kZXBzID0gW107XHJcbiAgICAgICAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgcmVjb3JkRWZmZWN0U2NvcGUodGhpcywgc2NvcGUpO1xyXG4gICAgfVxyXG4gICAgcnVuKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5hY3RpdmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm4oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHBhcmVudCA9IGFjdGl2ZUVmZmVjdDtcclxuICAgICAgICBsZXQgbGFzdFNob3VsZFRyYWNrID0gc2hvdWxkVHJhY2s7XHJcbiAgICAgICAgd2hpbGUgKHBhcmVudCkge1xyXG4gICAgICAgICAgICBpZiAocGFyZW50ID09PSB0aGlzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBhY3RpdmVFZmZlY3Q7XHJcbiAgICAgICAgICAgIGFjdGl2ZUVmZmVjdCA9IHRoaXM7XHJcbiAgICAgICAgICAgIHNob3VsZFRyYWNrID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJhY2tPcEJpdCA9IDEgPDwgKytlZmZlY3RUcmFja0RlcHRoO1xyXG4gICAgICAgICAgICBpZiAoZWZmZWN0VHJhY2tEZXB0aCA8PSBtYXhNYXJrZXJCaXRzKSB7XHJcbiAgICAgICAgICAgICAgICBpbml0RGVwTWFya2Vycyh0aGlzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNsZWFudXBFZmZlY3QodGhpcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm4oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIGlmIChlZmZlY3RUcmFja0RlcHRoIDw9IG1heE1hcmtlckJpdHMpIHtcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplRGVwTWFya2Vycyh0aGlzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0cmFja09wQml0ID0gMSA8PCAtLWVmZmVjdFRyYWNrRGVwdGg7XHJcbiAgICAgICAgICAgIGFjdGl2ZUVmZmVjdCA9IHRoaXMucGFyZW50O1xyXG4gICAgICAgICAgICBzaG91bGRUcmFjayA9IGxhc3RTaG91bGRUcmFjaztcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRlZmVyU3RvcCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBzdG9wKCkge1xyXG4gICAgICAgIC8vIHN0b3BwZWQgd2hpbGUgcnVubmluZyBpdHNlbGYgLSBkZWZlciB0aGUgY2xlYW51cFxyXG4gICAgICAgIGlmIChhY3RpdmVFZmZlY3QgPT09IHRoaXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZlclN0b3AgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICBjbGVhbnVwRWZmZWN0KHRoaXMpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5vblN0b3ApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TdG9wKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gY2xlYW51cEVmZmVjdChlZmZlY3QpIHtcclxuICAgIGNvbnN0IHsgZGVwcyB9ID0gZWZmZWN0O1xyXG4gICAgaWYgKGRlcHMubGVuZ3RoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGRlcHNbaV0uZGVsZXRlKGVmZmVjdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlcHMubGVuZ3RoID0gMDtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBlZmZlY3QoZm4sIG9wdGlvbnMpIHtcclxuICAgIGlmIChmbi5lZmZlY3QpIHtcclxuICAgICAgICBmbiA9IGZuLmVmZmVjdC5mbjtcclxuICAgIH1cclxuICAgIGNvbnN0IF9lZmZlY3QgPSBuZXcgUmVhY3RpdmVFZmZlY3QoZm4pO1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICBleHRlbmQoX2VmZmVjdCwgb3B0aW9ucyk7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc2NvcGUpXHJcbiAgICAgICAgICAgIHJlY29yZEVmZmVjdFNjb3BlKF9lZmZlY3QsIG9wdGlvbnMuc2NvcGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmxhenkpIHtcclxuICAgICAgICBfZWZmZWN0LnJ1bigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcnVubmVyID0gX2VmZmVjdC5ydW4uYmluZChfZWZmZWN0KTtcclxuICAgIHJ1bm5lci5lZmZlY3QgPSBfZWZmZWN0O1xyXG4gICAgcmV0dXJuIHJ1bm5lcjtcclxufVxyXG5mdW5jdGlvbiBzdG9wKHJ1bm5lcikge1xyXG4gICAgcnVubmVyLmVmZmVjdC5zdG9wKCk7XHJcbn1cclxubGV0IHNob3VsZFRyYWNrID0gdHJ1ZTtcclxuY29uc3QgdHJhY2tTdGFjayA9IFtdO1xyXG5mdW5jdGlvbiBwYXVzZVRyYWNraW5nKCkge1xyXG4gICAgdHJhY2tTdGFjay5wdXNoKHNob3VsZFRyYWNrKTtcclxuICAgIHNob3VsZFRyYWNrID0gZmFsc2U7XHJcbn1cclxuZnVuY3Rpb24gZW5hYmxlVHJhY2tpbmcoKSB7XHJcbiAgICB0cmFja1N0YWNrLnB1c2goc2hvdWxkVHJhY2spO1xyXG4gICAgc2hvdWxkVHJhY2sgPSB0cnVlO1xyXG59XHJcbmZ1bmN0aW9uIHJlc2V0VHJhY2tpbmcoKSB7XHJcbiAgICBjb25zdCBsYXN0ID0gdHJhY2tTdGFjay5wb3AoKTtcclxuICAgIHNob3VsZFRyYWNrID0gbGFzdCA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGxhc3Q7XHJcbn1cclxuZnVuY3Rpb24gdHJhY2sodGFyZ2V0LCB0eXBlLCBrZXkpIHtcclxuICAgIGlmIChzaG91bGRUcmFjayAmJiBhY3RpdmVFZmZlY3QpIHtcclxuICAgICAgICBsZXQgZGVwc01hcCA9IHRhcmdldE1hcC5nZXQodGFyZ2V0KTtcclxuICAgICAgICBpZiAoIWRlcHNNYXApIHtcclxuICAgICAgICAgICAgdGFyZ2V0TWFwLnNldCh0YXJnZXQsIChkZXBzTWFwID0gbmV3IE1hcCgpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkZXAgPSBkZXBzTWFwLmdldChrZXkpO1xyXG4gICAgICAgIGlmICghZGVwKSB7XHJcbiAgICAgICAgICAgIGRlcHNNYXAuc2V0KGtleSwgKGRlcCA9IGNyZWF0ZURlcCgpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGV2ZW50SW5mbyA9IChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxyXG4gICAgICAgICAgICA/IHsgZWZmZWN0OiBhY3RpdmVFZmZlY3QsIHRhcmdldCwgdHlwZSwga2V5IH1cclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdHJhY2tFZmZlY3RzKGRlcCwgZXZlbnRJbmZvKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiB0cmFja0VmZmVjdHMoZGVwLCBkZWJ1Z2dlckV2ZW50RXh0cmFJbmZvKSB7XHJcbiAgICBsZXQgc2hvdWxkVHJhY2sgPSBmYWxzZTtcclxuICAgIGlmIChlZmZlY3RUcmFja0RlcHRoIDw9IG1heE1hcmtlckJpdHMpIHtcclxuICAgICAgICBpZiAoIW5ld1RyYWNrZWQoZGVwKSkge1xyXG4gICAgICAgICAgICBkZXAubiB8PSB0cmFja09wQml0OyAvLyBzZXQgbmV3bHkgdHJhY2tlZFxyXG4gICAgICAgICAgICBzaG91bGRUcmFjayA9ICF3YXNUcmFja2VkKGRlcCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gRnVsbCBjbGVhbnVwIG1vZGUuXHJcbiAgICAgICAgc2hvdWxkVHJhY2sgPSAhZGVwLmhhcyhhY3RpdmVFZmZlY3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNob3VsZFRyYWNrKSB7XHJcbiAgICAgICAgZGVwLmFkZChhY3RpdmVFZmZlY3QpO1xyXG4gICAgICAgIGFjdGl2ZUVmZmVjdC5kZXBzLnB1c2goZGVwKTtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGFjdGl2ZUVmZmVjdC5vblRyYWNrKSB7XHJcbiAgICAgICAgICAgIGFjdGl2ZUVmZmVjdC5vblRyYWNrKE9iamVjdC5hc3NpZ24oeyBlZmZlY3Q6IGFjdGl2ZUVmZmVjdCB9LCBkZWJ1Z2dlckV2ZW50RXh0cmFJbmZvKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHRyaWdnZXIodGFyZ2V0LCB0eXBlLCBrZXksIG5ld1ZhbHVlLCBvbGRWYWx1ZSwgb2xkVGFyZ2V0KSB7XHJcbiAgICBjb25zdCBkZXBzTWFwID0gdGFyZ2V0TWFwLmdldCh0YXJnZXQpO1xyXG4gICAgaWYgKCFkZXBzTWFwKSB7XHJcbiAgICAgICAgLy8gbmV2ZXIgYmVlbiB0cmFja2VkXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGRlcHMgPSBbXTtcclxuICAgIGlmICh0eXBlID09PSBcImNsZWFyXCIgLyogVHJpZ2dlck9wVHlwZXMuQ0xFQVIgKi8pIHtcclxuICAgICAgICAvLyBjb2xsZWN0aW9uIGJlaW5nIGNsZWFyZWRcclxuICAgICAgICAvLyB0cmlnZ2VyIGFsbCBlZmZlY3RzIGZvciB0YXJnZXRcclxuICAgICAgICBkZXBzID0gWy4uLmRlcHNNYXAudmFsdWVzKCldO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoa2V5ID09PSAnbGVuZ3RoJyAmJiBpc0FycmF5KHRhcmdldCkpIHtcclxuICAgICAgICBkZXBzTWFwLmZvckVhY2goKGRlcCwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdsZW5ndGgnIHx8IGtleSA+PSBuZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgZGVwcy5wdXNoKGRlcCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIHNjaGVkdWxlIHJ1bnMgZm9yIFNFVCB8IEFERCB8IERFTEVURVxyXG4gICAgICAgIGlmIChrZXkgIT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICBkZXBzLnB1c2goZGVwc01hcC5nZXQoa2V5KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGFsc28gcnVuIGZvciBpdGVyYXRpb24ga2V5IG9uIEFERCB8IERFTEVURSB8IE1hcC5TRVRcclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBcImFkZFwiIC8qIFRyaWdnZXJPcFR5cGVzLkFERCAqLzpcclxuICAgICAgICAgICAgICAgIGlmICghaXNBcnJheSh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVwcy5wdXNoKGRlcHNNYXAuZ2V0KElURVJBVEVfS0VZKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWFwKHRhcmdldCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVwcy5wdXNoKGRlcHNNYXAuZ2V0KE1BUF9LRVlfSVRFUkFURV9LRVkpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0ludGVnZXJLZXkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIG5ldyBpbmRleCBhZGRlZCB0byBhcnJheSAtPiBsZW5ndGggY2hhbmdlc1xyXG4gICAgICAgICAgICAgICAgICAgIGRlcHMucHVzaChkZXBzTWFwLmdldCgnbGVuZ3RoJykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkZWxldGVcIiAvKiBUcmlnZ2VyT3BUeXBlcy5ERUxFVEUgKi86XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkodGFyZ2V0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlcHMucHVzaChkZXBzTWFwLmdldChJVEVSQVRFX0tFWSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01hcCh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlcHMucHVzaChkZXBzTWFwLmdldChNQVBfS0VZX0lURVJBVEVfS0VZKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJzZXRcIiAvKiBUcmlnZ2VyT3BUeXBlcy5TRVQgKi86XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNNYXAodGFyZ2V0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlcHMucHVzaChkZXBzTWFwLmdldChJVEVSQVRFX0tFWSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgZXZlbnRJbmZvID0gKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXHJcbiAgICAgICAgPyB7IHRhcmdldCwgdHlwZSwga2V5LCBuZXdWYWx1ZSwgb2xkVmFsdWUsIG9sZFRhcmdldCB9XHJcbiAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoZGVwcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBpZiAoZGVwc1swXSkge1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICB0cmlnZ2VyRWZmZWN0cyhkZXBzWzBdLCBldmVudEluZm8pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdHJpZ2dlckVmZmVjdHMoZGVwc1swXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBlZmZlY3RzID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xyXG4gICAgICAgICAgICBpZiAoZGVwKSB7XHJcbiAgICAgICAgICAgICAgICBlZmZlY3RzLnB1c2goLi4uZGVwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgIHRyaWdnZXJFZmZlY3RzKGNyZWF0ZURlcChlZmZlY3RzKSwgZXZlbnRJbmZvKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRyaWdnZXJFZmZlY3RzKGNyZWF0ZURlcChlZmZlY3RzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHRyaWdnZXJFZmZlY3RzKGRlcCwgZGVidWdnZXJFdmVudEV4dHJhSW5mbykge1xyXG4gICAgLy8gc3ByZWFkIGludG8gYXJyYXkgZm9yIHN0YWJpbGl6YXRpb25cclxuICAgIGNvbnN0IGVmZmVjdHMgPSBpc0FycmF5KGRlcCkgPyBkZXAgOiBbLi4uZGVwXTtcclxuICAgIGZvciAoY29uc3QgZWZmZWN0IG9mIGVmZmVjdHMpIHtcclxuICAgICAgICBpZiAoZWZmZWN0LmNvbXB1dGVkKSB7XHJcbiAgICAgICAgICAgIHRyaWdnZXJFZmZlY3QoZWZmZWN0LCBkZWJ1Z2dlckV2ZW50RXh0cmFJbmZvKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGVmZmVjdCBvZiBlZmZlY3RzKSB7XHJcbiAgICAgICAgaWYgKCFlZmZlY3QuY29tcHV0ZWQpIHtcclxuICAgICAgICAgICAgdHJpZ2dlckVmZmVjdChlZmZlY3QsIGRlYnVnZ2VyRXZlbnRFeHRyYUluZm8pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiB0cmlnZ2VyRWZmZWN0KGVmZmVjdCwgZGVidWdnZXJFdmVudEV4dHJhSW5mbykge1xyXG4gICAgaWYgKGVmZmVjdCAhPT0gYWN0aXZlRWZmZWN0IHx8IGVmZmVjdC5hbGxvd1JlY3Vyc2UpIHtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGVmZmVjdC5vblRyaWdnZXIpIHtcclxuICAgICAgICAgICAgZWZmZWN0Lm9uVHJpZ2dlcihleHRlbmQoeyBlZmZlY3QgfSwgZGVidWdnZXJFdmVudEV4dHJhSW5mbykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZWZmZWN0LnNjaGVkdWxlcikge1xyXG4gICAgICAgICAgICBlZmZlY3Quc2NoZWR1bGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBlZmZlY3QucnVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XG5cbmNvbnN0IGlzTm9uVHJhY2thYmxlS2V5cyA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcChgX19wcm90b19fLF9fdl9pc1JlZixfX2lzVnVlYCk7XHJcbmNvbnN0IGJ1aWx0SW5TeW1ib2xzID0gbmV3IFNldChcclxuLyojX19QVVJFX18qL1xyXG5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhTeW1ib2wpXHJcbiAgICAvLyBpb3MxMC54IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFN5bWJvbCkgY2FuIGVudW1lcmF0ZSAnYXJndW1lbnRzJyBhbmQgJ2NhbGxlcidcclxuICAgIC8vIGJ1dCBhY2Nlc3NpbmcgdGhlbSBvbiBTeW1ib2wgbGVhZHMgdG8gVHlwZUVycm9yIGJlY2F1c2UgU3ltYm9sIGlzIGEgc3RyaWN0IG1vZGVcclxuICAgIC8vIGZ1bmN0aW9uXHJcbiAgICAuZmlsdGVyKGtleSA9PiBrZXkgIT09ICdhcmd1bWVudHMnICYmIGtleSAhPT0gJ2NhbGxlcicpXHJcbiAgICAubWFwKGtleSA9PiBTeW1ib2xba2V5XSlcclxuICAgIC5maWx0ZXIoaXNTeW1ib2wpKTtcclxuY29uc3QgZ2V0ID0gLyojX19QVVJFX18qLyBjcmVhdGVHZXR0ZXIoKTtcclxuY29uc3Qgc2hhbGxvd0dldCA9IC8qI19fUFVSRV9fKi8gY3JlYXRlR2V0dGVyKGZhbHNlLCB0cnVlKTtcclxuY29uc3QgcmVhZG9ubHlHZXQgPSAvKiNfX1BVUkVfXyovIGNyZWF0ZUdldHRlcih0cnVlKTtcclxuY29uc3Qgc2hhbGxvd1JlYWRvbmx5R2V0ID0gLyojX19QVVJFX18qLyBjcmVhdGVHZXR0ZXIodHJ1ZSwgdHJ1ZSk7XHJcbmNvbnN0IGFycmF5SW5zdHJ1bWVudGF0aW9ucyA9IC8qI19fUFVSRV9fKi8gY3JlYXRlQXJyYXlJbnN0cnVtZW50YXRpb25zKCk7XHJcbmZ1bmN0aW9uIGNyZWF0ZUFycmF5SW5zdHJ1bWVudGF0aW9ucygpIHtcclxuICAgIGNvbnN0IGluc3RydW1lbnRhdGlvbnMgPSB7fTtcclxuICAgIFsnaW5jbHVkZXMnLCAnaW5kZXhPZicsICdsYXN0SW5kZXhPZiddLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBpbnN0cnVtZW50YXRpb25zW2tleV0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0b1Jhdyh0aGlzKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdHJhY2soYXJyLCBcImdldFwiIC8qIFRyYWNrT3BUeXBlcy5HRVQgKi8sIGkgKyAnJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gd2UgcnVuIHRoZSBtZXRob2QgdXNpbmcgdGhlIG9yaWdpbmFsIGFyZ3MgZmlyc3QgKHdoaWNoIG1heSBiZSByZWFjdGl2ZSlcclxuICAgICAgICAgICAgY29uc3QgcmVzID0gYXJyW2tleV0oLi4uYXJncyk7XHJcbiAgICAgICAgICAgIGlmIChyZXMgPT09IC0xIHx8IHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIC8vIGlmIHRoYXQgZGlkbid0IHdvcmssIHJ1biBpdCBhZ2FpbiB1c2luZyByYXcgdmFsdWVzLlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFycltrZXldKC4uLmFyZ3MubWFwKHRvUmF3KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgWydwdXNoJywgJ3BvcCcsICdzaGlmdCcsICd1bnNoaWZ0JywgJ3NwbGljZSddLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBpbnN0cnVtZW50YXRpb25zW2tleV0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xyXG4gICAgICAgICAgICBwYXVzZVRyYWNraW5nKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHRvUmF3KHRoaXMpW2tleV0uYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICAgICAgICAgIHJlc2V0VHJhY2tpbmcoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaW5zdHJ1bWVudGF0aW9ucztcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVHZXR0ZXIoaXNSZWFkb25seSA9IGZhbHNlLCBzaGFsbG93ID0gZmFsc2UpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiBnZXQodGFyZ2V0LCBrZXksIHJlY2VpdmVyKSB7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gXCJfX3ZfaXNSZWFjdGl2ZVwiIC8qIFJlYWN0aXZlRmxhZ3MuSVNfUkVBQ1RJVkUgKi8pIHtcclxuICAgICAgICAgICAgcmV0dXJuICFpc1JlYWRvbmx5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChrZXkgPT09IFwiX192X2lzUmVhZG9ubHlcIiAvKiBSZWFjdGl2ZUZsYWdzLklTX1JFQURPTkxZICovKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpc1JlYWRvbmx5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChrZXkgPT09IFwiX192X2lzU2hhbGxvd1wiIC8qIFJlYWN0aXZlRmxhZ3MuSVNfU0hBTExPVyAqLykge1xyXG4gICAgICAgICAgICByZXR1cm4gc2hhbGxvdztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoa2V5ID09PSBcIl9fdl9yYXdcIiAvKiBSZWFjdGl2ZUZsYWdzLlJBVyAqLyAmJlxyXG4gICAgICAgICAgICByZWNlaXZlciA9PT1cclxuICAgICAgICAgICAgICAgIChpc1JlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgPyBzaGFsbG93XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2hhbGxvd1JlYWRvbmx5TWFwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcmVhZG9ubHlNYXBcclxuICAgICAgICAgICAgICAgICAgICA6IHNoYWxsb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzaGFsbG93UmVhY3RpdmVNYXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiByZWFjdGl2ZU1hcCkuZ2V0KHRhcmdldCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0SXNBcnJheSA9IGlzQXJyYXkodGFyZ2V0KTtcclxuICAgICAgICBpZiAoIWlzUmVhZG9ubHkgJiYgdGFyZ2V0SXNBcnJheSAmJiBoYXNPd24oYXJyYXlJbnN0cnVtZW50YXRpb25zLCBrZXkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LmdldChhcnJheUluc3RydW1lbnRhdGlvbnMsIGtleSwgcmVjZWl2ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByZXMgPSBSZWZsZWN0LmdldCh0YXJnZXQsIGtleSwgcmVjZWl2ZXIpO1xyXG4gICAgICAgIGlmIChpc1N5bWJvbChrZXkpID8gYnVpbHRJblN5bWJvbHMuaGFzKGtleSkgOiBpc05vblRyYWNrYWJsZUtleXMoa2V5KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWlzUmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgdHJhY2sodGFyZ2V0LCBcImdldFwiIC8qIFRyYWNrT3BUeXBlcy5HRVQgKi8sIGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzaGFsbG93KSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc1JlZihyZXMpKSB7XHJcbiAgICAgICAgICAgIC8vIHJlZiB1bndyYXBwaW5nIC0gc2tpcCB1bndyYXAgZm9yIEFycmF5ICsgaW50ZWdlciBrZXkuXHJcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRJc0FycmF5ICYmIGlzSW50ZWdlcktleShrZXkpID8gcmVzIDogcmVzLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNPYmplY3QocmVzKSkge1xyXG4gICAgICAgICAgICAvLyBDb252ZXJ0IHJldHVybmVkIHZhbHVlIGludG8gYSBwcm94eSBhcyB3ZWxsLiB3ZSBkbyB0aGUgaXNPYmplY3QgY2hlY2tcclxuICAgICAgICAgICAgLy8gaGVyZSB0byBhdm9pZCBpbnZhbGlkIHZhbHVlIHdhcm5pbmcuIEFsc28gbmVlZCB0byBsYXp5IGFjY2VzcyByZWFkb25seVxyXG4gICAgICAgICAgICAvLyBhbmQgcmVhY3RpdmUgaGVyZSB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmN5LlxyXG4gICAgICAgICAgICByZXR1cm4gaXNSZWFkb25seSA/IHJlYWRvbmx5KHJlcykgOiByZWFjdGl2ZShyZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgfTtcclxufVxyXG5jb25zdCBzZXQgPSAvKiNfX1BVUkVfXyovIGNyZWF0ZVNldHRlcigpO1xyXG5jb25zdCBzaGFsbG93U2V0ID0gLyojX19QVVJFX18qLyBjcmVhdGVTZXR0ZXIodHJ1ZSk7XHJcbmZ1bmN0aW9uIGNyZWF0ZVNldHRlcihzaGFsbG93ID0gZmFsc2UpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiBzZXQodGFyZ2V0LCBrZXksIHZhbHVlLCByZWNlaXZlcikge1xyXG4gICAgICAgIGxldCBvbGRWYWx1ZSA9IHRhcmdldFtrZXldO1xyXG4gICAgICAgIGlmIChpc1JlYWRvbmx5KG9sZFZhbHVlKSAmJiBpc1JlZihvbGRWYWx1ZSkgJiYgIWlzUmVmKHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghc2hhbGxvdykge1xyXG4gICAgICAgICAgICBpZiAoIWlzU2hhbGxvdyh2YWx1ZSkgJiYgIWlzUmVhZG9ubHkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZSA9IHRvUmF3KG9sZFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9SYXcodmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghaXNBcnJheSh0YXJnZXQpICYmIGlzUmVmKG9sZFZhbHVlKSAmJiAhaXNSZWYodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaGFkS2V5ID0gaXNBcnJheSh0YXJnZXQpICYmIGlzSW50ZWdlcktleShrZXkpXHJcbiAgICAgICAgICAgID8gTnVtYmVyKGtleSkgPCB0YXJnZXQubGVuZ3RoXHJcbiAgICAgICAgICAgIDogaGFzT3duKHRhcmdldCwga2V5KTtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0LnNldCh0YXJnZXQsIGtleSwgdmFsdWUsIHJlY2VpdmVyKTtcclxuICAgICAgICAvLyBkb24ndCB0cmlnZ2VyIGlmIHRhcmdldCBpcyBzb21ldGhpbmcgdXAgaW4gdGhlIHByb3RvdHlwZSBjaGFpbiBvZiBvcmlnaW5hbFxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IHRvUmF3KHJlY2VpdmVyKSkge1xyXG4gICAgICAgICAgICBpZiAoIWhhZEtleSkge1xyXG4gICAgICAgICAgICAgICAgdHJpZ2dlcih0YXJnZXQsIFwiYWRkXCIgLyogVHJpZ2dlck9wVHlwZXMuQUREICovLCBrZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChoYXNDaGFuZ2VkKHZhbHVlLCBvbGRWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRyaWdnZXIodGFyZ2V0LCBcInNldFwiIC8qIFRyaWdnZXJPcFR5cGVzLlNFVCAqLywga2V5LCB2YWx1ZSwgb2xkVmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGRlbGV0ZVByb3BlcnR5KHRhcmdldCwga2V5KSB7XHJcbiAgICBjb25zdCBoYWRLZXkgPSBoYXNPd24odGFyZ2V0LCBrZXkpO1xyXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0YXJnZXRba2V5XTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBrZXkpO1xyXG4gICAgaWYgKHJlc3VsdCAmJiBoYWRLZXkpIHtcclxuICAgICAgICB0cmlnZ2VyKHRhcmdldCwgXCJkZWxldGVcIiAvKiBUcmlnZ2VyT3BUeXBlcy5ERUxFVEUgKi8sIGtleSwgdW5kZWZpbmVkLCBvbGRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbmZ1bmN0aW9uIGhhcyh0YXJnZXQsIGtleSkge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gUmVmbGVjdC5oYXModGFyZ2V0LCBrZXkpO1xyXG4gICAgaWYgKCFpc1N5bWJvbChrZXkpIHx8ICFidWlsdEluU3ltYm9scy5oYXMoa2V5KSkge1xyXG4gICAgICAgIHRyYWNrKHRhcmdldCwgXCJoYXNcIiAvKiBUcmFja09wVHlwZXMuSEFTICovLCBrZXkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5mdW5jdGlvbiBvd25LZXlzKHRhcmdldCkge1xyXG4gICAgdHJhY2sodGFyZ2V0LCBcIml0ZXJhdGVcIiAvKiBUcmFja09wVHlwZXMuSVRFUkFURSAqLywgaXNBcnJheSh0YXJnZXQpID8gJ2xlbmd0aCcgOiBJVEVSQVRFX0tFWSk7XHJcbiAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XHJcbn1cclxuY29uc3QgbXV0YWJsZUhhbmRsZXJzID0ge1xyXG4gICAgZ2V0LFxyXG4gICAgc2V0LFxyXG4gICAgZGVsZXRlUHJvcGVydHksXHJcbiAgICBoYXMsXHJcbiAgICBvd25LZXlzXHJcbn07XHJcbmNvbnN0IHJlYWRvbmx5SGFuZGxlcnMgPSB7XHJcbiAgICBnZXQ6IHJlYWRvbmx5R2V0LFxyXG4gICAgc2V0KHRhcmdldCwga2V5KSB7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICB3YXJuKGBTZXQgb3BlcmF0aW9uIG9uIGtleSBcIiR7U3RyaW5nKGtleSl9XCIgZmFpbGVkOiB0YXJnZXQgaXMgcmVhZG9ubHkuYCwgdGFyZ2V0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBrZXkpIHtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYERlbGV0ZSBvcGVyYXRpb24gb24ga2V5IFwiJHtTdHJpbmcoa2V5KX1cIiBmYWlsZWQ6IHRhcmdldCBpcyByZWFkb25seS5gLCB0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxufTtcclxuY29uc3Qgc2hhbGxvd1JlYWN0aXZlSGFuZGxlcnMgPSAvKiNfX1BVUkVfXyovIGV4dGVuZCh7fSwgbXV0YWJsZUhhbmRsZXJzLCB7XHJcbiAgICBnZXQ6IHNoYWxsb3dHZXQsXHJcbiAgICBzZXQ6IHNoYWxsb3dTZXRcclxufSk7XHJcbi8vIFByb3BzIGhhbmRsZXJzIGFyZSBzcGVjaWFsIGluIHRoZSBzZW5zZSB0aGF0IGl0IHNob3VsZCBub3QgdW53cmFwIHRvcC1sZXZlbFxyXG4vLyByZWZzIChpbiBvcmRlciB0byBhbGxvdyByZWZzIHRvIGJlIGV4cGxpY2l0bHkgcGFzc2VkIGRvd24pLCBidXQgc2hvdWxkXHJcbi8vIHJldGFpbiB0aGUgcmVhY3Rpdml0eSBvZiB0aGUgbm9ybWFsIHJlYWRvbmx5IG9iamVjdC5cclxuY29uc3Qgc2hhbGxvd1JlYWRvbmx5SGFuZGxlcnMgPSAvKiNfX1BVUkVfXyovIGV4dGVuZCh7fSwgcmVhZG9ubHlIYW5kbGVycywge1xyXG4gICAgZ2V0OiBzaGFsbG93UmVhZG9ubHlHZXRcclxufSk7XG5cbmNvbnN0IHRvU2hhbGxvdyA9ICh2YWx1ZSkgPT4gdmFsdWU7XHJcbmNvbnN0IGdldFByb3RvID0gKHYpID0+IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2Yodik7XHJcbmZ1bmN0aW9uIGdldCQxKHRhcmdldCwga2V5LCBpc1JlYWRvbmx5ID0gZmFsc2UsIGlzU2hhbGxvdyA9IGZhbHNlKSB7XHJcbiAgICAvLyAjMTc3MjogcmVhZG9ubHkocmVhY3RpdmUoTWFwKSkgc2hvdWxkIHJldHVybiByZWFkb25seSArIHJlYWN0aXZlIHZlcnNpb25cclxuICAgIC8vIG9mIHRoZSB2YWx1ZVxyXG4gICAgdGFyZ2V0ID0gdGFyZ2V0W1wiX192X3Jhd1wiIC8qIFJlYWN0aXZlRmxhZ3MuUkFXICovXTtcclxuICAgIGNvbnN0IHJhd1RhcmdldCA9IHRvUmF3KHRhcmdldCk7XHJcbiAgICBjb25zdCByYXdLZXkgPSB0b1JhdyhrZXkpO1xyXG4gICAgaWYgKCFpc1JlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKGtleSAhPT0gcmF3S2V5KSB7XHJcbiAgICAgICAgICAgIHRyYWNrKHJhd1RhcmdldCwgXCJnZXRcIiAvKiBUcmFja09wVHlwZXMuR0VUICovLCBrZXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cmFjayhyYXdUYXJnZXQsIFwiZ2V0XCIgLyogVHJhY2tPcFR5cGVzLkdFVCAqLywgcmF3S2V5KTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgaGFzIH0gPSBnZXRQcm90byhyYXdUYXJnZXQpO1xyXG4gICAgY29uc3Qgd3JhcCA9IGlzU2hhbGxvdyA/IHRvU2hhbGxvdyA6IGlzUmVhZG9ubHkgPyB0b1JlYWRvbmx5IDogdG9SZWFjdGl2ZTtcclxuICAgIGlmIChoYXMuY2FsbChyYXdUYXJnZXQsIGtleSkpIHtcclxuICAgICAgICByZXR1cm4gd3JhcCh0YXJnZXQuZ2V0KGtleSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaGFzLmNhbGwocmF3VGFyZ2V0LCByYXdLZXkpKSB7XHJcbiAgICAgICAgcmV0dXJuIHdyYXAodGFyZ2V0LmdldChyYXdLZXkpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRhcmdldCAhPT0gcmF3VGFyZ2V0KSB7XHJcbiAgICAgICAgLy8gIzM2MDIgcmVhZG9ubHkocmVhY3RpdmUoTWFwKSlcclxuICAgICAgICAvLyBlbnN1cmUgdGhhdCB0aGUgbmVzdGVkIHJlYWN0aXZlIGBNYXBgIGNhbiBkbyB0cmFja2luZyBmb3IgaXRzZWxmXHJcbiAgICAgICAgdGFyZ2V0LmdldChrZXkpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGhhcyQxKGtleSwgaXNSZWFkb25seSA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzW1wiX192X3Jhd1wiIC8qIFJlYWN0aXZlRmxhZ3MuUkFXICovXTtcclxuICAgIGNvbnN0IHJhd1RhcmdldCA9IHRvUmF3KHRhcmdldCk7XHJcbiAgICBjb25zdCByYXdLZXkgPSB0b1JhdyhrZXkpO1xyXG4gICAgaWYgKCFpc1JlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKGtleSAhPT0gcmF3S2V5KSB7XHJcbiAgICAgICAgICAgIHRyYWNrKHJhd1RhcmdldCwgXCJoYXNcIiAvKiBUcmFja09wVHlwZXMuSEFTICovLCBrZXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cmFjayhyYXdUYXJnZXQsIFwiaGFzXCIgLyogVHJhY2tPcFR5cGVzLkhBUyAqLywgcmF3S2V5KTtcclxuICAgIH1cclxuICAgIHJldHVybiBrZXkgPT09IHJhd0tleVxyXG4gICAgICAgID8gdGFyZ2V0LmhhcyhrZXkpXHJcbiAgICAgICAgOiB0YXJnZXQuaGFzKGtleSkgfHwgdGFyZ2V0LmhhcyhyYXdLZXkpO1xyXG59XHJcbmZ1bmN0aW9uIHNpemUodGFyZ2V0LCBpc1JlYWRvbmx5ID0gZmFsc2UpIHtcclxuICAgIHRhcmdldCA9IHRhcmdldFtcIl9fdl9yYXdcIiAvKiBSZWFjdGl2ZUZsYWdzLlJBVyAqL107XHJcbiAgICAhaXNSZWFkb25seSAmJiB0cmFjayh0b1Jhdyh0YXJnZXQpLCBcIml0ZXJhdGVcIiAvKiBUcmFja09wVHlwZXMuSVRFUkFURSAqLywgSVRFUkFURV9LRVkpO1xyXG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwgJ3NpemUnLCB0YXJnZXQpO1xyXG59XHJcbmZ1bmN0aW9uIGFkZCh2YWx1ZSkge1xyXG4gICAgdmFsdWUgPSB0b1Jhdyh2YWx1ZSk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSB0b1Jhdyh0aGlzKTtcclxuICAgIGNvbnN0IHByb3RvID0gZ2V0UHJvdG8odGFyZ2V0KTtcclxuICAgIGNvbnN0IGhhZEtleSA9IHByb3RvLmhhcy5jYWxsKHRhcmdldCwgdmFsdWUpO1xyXG4gICAgaWYgKCFoYWRLZXkpIHtcclxuICAgICAgICB0YXJnZXQuYWRkKHZhbHVlKTtcclxuICAgICAgICB0cmlnZ2VyKHRhcmdldCwgXCJhZGRcIiAvKiBUcmlnZ2VyT3BUeXBlcy5BREQgKi8sIHZhbHVlLCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxufVxyXG5mdW5jdGlvbiBzZXQkMShrZXksIHZhbHVlKSB7XHJcbiAgICB2YWx1ZSA9IHRvUmF3KHZhbHVlKTtcclxuICAgIGNvbnN0IHRhcmdldCA9IHRvUmF3KHRoaXMpO1xyXG4gICAgY29uc3QgeyBoYXMsIGdldCB9ID0gZ2V0UHJvdG8odGFyZ2V0KTtcclxuICAgIGxldCBoYWRLZXkgPSBoYXMuY2FsbCh0YXJnZXQsIGtleSk7XHJcbiAgICBpZiAoIWhhZEtleSkge1xyXG4gICAgICAgIGtleSA9IHRvUmF3KGtleSk7XHJcbiAgICAgICAgaGFkS2V5ID0gaGFzLmNhbGwodGFyZ2V0LCBrZXkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgY2hlY2tJZGVudGl0eUtleXModGFyZ2V0LCBoYXMsIGtleSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvbGRWYWx1ZSA9IGdldC5jYWxsKHRhcmdldCwga2V5KTtcclxuICAgIHRhcmdldC5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICBpZiAoIWhhZEtleSkge1xyXG4gICAgICAgIHRyaWdnZXIodGFyZ2V0LCBcImFkZFwiIC8qIFRyaWdnZXJPcFR5cGVzLkFERCAqLywga2V5LCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChoYXNDaGFuZ2VkKHZhbHVlLCBvbGRWYWx1ZSkpIHtcclxuICAgICAgICB0cmlnZ2VyKHRhcmdldCwgXCJzZXRcIiAvKiBUcmlnZ2VyT3BUeXBlcy5TRVQgKi8sIGtleSwgdmFsdWUsIG9sZFZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG59XHJcbmZ1bmN0aW9uIGRlbGV0ZUVudHJ5KGtleSkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gdG9SYXcodGhpcyk7XHJcbiAgICBjb25zdCB7IGhhcywgZ2V0IH0gPSBnZXRQcm90byh0YXJnZXQpO1xyXG4gICAgbGV0IGhhZEtleSA9IGhhcy5jYWxsKHRhcmdldCwga2V5KTtcclxuICAgIGlmICghaGFkS2V5KSB7XHJcbiAgICAgICAga2V5ID0gdG9SYXcoa2V5KTtcclxuICAgICAgICBoYWRLZXkgPSBoYXMuY2FsbCh0YXJnZXQsIGtleSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICBjaGVja0lkZW50aXR5S2V5cyh0YXJnZXQsIGhhcywga2V5KTtcclxuICAgIH1cclxuICAgIGNvbnN0IG9sZFZhbHVlID0gZ2V0ID8gZ2V0LmNhbGwodGFyZ2V0LCBrZXkpIDogdW5kZWZpbmVkO1xyXG4gICAgLy8gZm9yd2FyZCB0aGUgb3BlcmF0aW9uIGJlZm9yZSBxdWV1ZWluZyByZWFjdGlvbnNcclxuICAgIGNvbnN0IHJlc3VsdCA9IHRhcmdldC5kZWxldGUoa2V5KTtcclxuICAgIGlmIChoYWRLZXkpIHtcclxuICAgICAgICB0cmlnZ2VyKHRhcmdldCwgXCJkZWxldGVcIiAvKiBUcmlnZ2VyT3BUeXBlcy5ERUxFVEUgKi8sIGtleSwgdW5kZWZpbmVkLCBvbGRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbmZ1bmN0aW9uIGNsZWFyKCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gdG9SYXcodGhpcyk7XHJcbiAgICBjb25zdCBoYWRJdGVtcyA9IHRhcmdldC5zaXplICE9PSAwO1xyXG4gICAgY29uc3Qgb2xkVGFyZ2V0ID0gKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXHJcbiAgICAgICAgPyBpc01hcCh0YXJnZXQpXHJcbiAgICAgICAgICAgID8gbmV3IE1hcCh0YXJnZXQpXHJcbiAgICAgICAgICAgIDogbmV3IFNldCh0YXJnZXQpXHJcbiAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAvLyBmb3J3YXJkIHRoZSBvcGVyYXRpb24gYmVmb3JlIHF1ZXVlaW5nIHJlYWN0aW9uc1xyXG4gICAgY29uc3QgcmVzdWx0ID0gdGFyZ2V0LmNsZWFyKCk7XHJcbiAgICBpZiAoaGFkSXRlbXMpIHtcclxuICAgICAgICB0cmlnZ2VyKHRhcmdldCwgXCJjbGVhclwiIC8qIFRyaWdnZXJPcFR5cGVzLkNMRUFSICovLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgb2xkVGFyZ2V0KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlRm9yRWFjaChpc1JlYWRvbmx5LCBpc1NoYWxsb3cpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrLCB0aGlzQXJnKSB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZWQgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IG9ic2VydmVkW1wiX192X3Jhd1wiIC8qIFJlYWN0aXZlRmxhZ3MuUkFXICovXTtcclxuICAgICAgICBjb25zdCByYXdUYXJnZXQgPSB0b1Jhdyh0YXJnZXQpO1xyXG4gICAgICAgIGNvbnN0IHdyYXAgPSBpc1NoYWxsb3cgPyB0b1NoYWxsb3cgOiBpc1JlYWRvbmx5ID8gdG9SZWFkb25seSA6IHRvUmVhY3RpdmU7XHJcbiAgICAgICAgIWlzUmVhZG9ubHkgJiYgdHJhY2socmF3VGFyZ2V0LCBcIml0ZXJhdGVcIiAvKiBUcmFja09wVHlwZXMuSVRFUkFURSAqLywgSVRFUkFURV9LRVkpO1xyXG4gICAgICAgIHJldHVybiB0YXJnZXQuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICAvLyBpbXBvcnRhbnQ6IG1ha2Ugc3VyZSB0aGUgY2FsbGJhY2sgaXNcclxuICAgICAgICAgICAgLy8gMS4gaW52b2tlZCB3aXRoIHRoZSByZWFjdGl2ZSBtYXAgYXMgYHRoaXNgIGFuZCAzcmQgYXJnXHJcbiAgICAgICAgICAgIC8vIDIuIHRoZSB2YWx1ZSByZWNlaXZlZCBzaG91bGQgYmUgYSBjb3JyZXNwb25kaW5nIHJlYWN0aXZlL3JlYWRvbmx5LlxyXG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB3cmFwKHZhbHVlKSwgd3JhcChrZXkpLCBvYnNlcnZlZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUl0ZXJhYmxlTWV0aG9kKG1ldGhvZCwgaXNSZWFkb25seSwgaXNTaGFsbG93KSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzW1wiX192X3Jhd1wiIC8qIFJlYWN0aXZlRmxhZ3MuUkFXICovXTtcclxuICAgICAgICBjb25zdCByYXdUYXJnZXQgPSB0b1Jhdyh0YXJnZXQpO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldElzTWFwID0gaXNNYXAocmF3VGFyZ2V0KTtcclxuICAgICAgICBjb25zdCBpc1BhaXIgPSBtZXRob2QgPT09ICdlbnRyaWVzJyB8fCAobWV0aG9kID09PSBTeW1ib2wuaXRlcmF0b3IgJiYgdGFyZ2V0SXNNYXApO1xyXG4gICAgICAgIGNvbnN0IGlzS2V5T25seSA9IG1ldGhvZCA9PT0gJ2tleXMnICYmIHRhcmdldElzTWFwO1xyXG4gICAgICAgIGNvbnN0IGlubmVySXRlcmF0b3IgPSB0YXJnZXRbbWV0aG9kXSguLi5hcmdzKTtcclxuICAgICAgICBjb25zdCB3cmFwID0gaXNTaGFsbG93ID8gdG9TaGFsbG93IDogaXNSZWFkb25seSA/IHRvUmVhZG9ubHkgOiB0b1JlYWN0aXZlO1xyXG4gICAgICAgICFpc1JlYWRvbmx5ICYmXHJcbiAgICAgICAgICAgIHRyYWNrKHJhd1RhcmdldCwgXCJpdGVyYXRlXCIgLyogVHJhY2tPcFR5cGVzLklURVJBVEUgKi8sIGlzS2V5T25seSA/IE1BUF9LRVlfSVRFUkFURV9LRVkgOiBJVEVSQVRFX0tFWSk7XHJcbiAgICAgICAgLy8gcmV0dXJuIGEgd3JhcHBlZCBpdGVyYXRvciB3aGljaCByZXR1cm5zIG9ic2VydmVkIHZlcnNpb25zIG9mIHRoZVxyXG4gICAgICAgIC8vIHZhbHVlcyBlbWl0dGVkIGZyb20gdGhlIHJlYWwgaXRlcmF0b3JcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAvLyBpdGVyYXRvciBwcm90b2NvbFxyXG4gICAgICAgICAgICBuZXh0KCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSwgZG9uZSB9ID0gaW5uZXJJdGVyYXRvci5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZVxyXG4gICAgICAgICAgICAgICAgICAgID8geyB2YWx1ZSwgZG9uZSB9XHJcbiAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpc1BhaXIgPyBbd3JhcCh2YWx1ZVswXSksIHdyYXAodmFsdWVbMV0pXSA6IHdyYXAodmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb25lXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8gaXRlcmFibGUgcHJvdG9jb2xcclxuICAgICAgICAgICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZVJlYWRvbmx5TWV0aG9kKHR5cGUpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoLi4uYXJncykge1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gYXJnc1swXSA/IGBvbiBrZXkgXCIke2FyZ3NbMF19XCIgYCA6IGBgO1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7Y2FwaXRhbGl6ZSh0eXBlKX0gb3BlcmF0aW9uICR7a2V5fWZhaWxlZDogdGFyZ2V0IGlzIHJlYWRvbmx5LmAsIHRvUmF3KHRoaXMpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHR5cGUgPT09IFwiZGVsZXRlXCIgLyogVHJpZ2dlck9wVHlwZXMuREVMRVRFICovID8gZmFsc2UgOiB0aGlzO1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVJbnN0cnVtZW50YXRpb25zKCkge1xyXG4gICAgY29uc3QgbXV0YWJsZUluc3RydW1lbnRhdGlvbnMgPSB7XHJcbiAgICAgICAgZ2V0KGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEodGhpcywga2V5KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGdldCBzaXplKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gc2l6ZSh0aGlzKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGhhczogaGFzJDEsXHJcbiAgICAgICAgYWRkLFxyXG4gICAgICAgIHNldDogc2V0JDEsXHJcbiAgICAgICAgZGVsZXRlOiBkZWxldGVFbnRyeSxcclxuICAgICAgICBjbGVhcixcclxuICAgICAgICBmb3JFYWNoOiBjcmVhdGVGb3JFYWNoKGZhbHNlLCBmYWxzZSlcclxuICAgIH07XHJcbiAgICBjb25zdCBzaGFsbG93SW5zdHJ1bWVudGF0aW9ucyA9IHtcclxuICAgICAgICBnZXQoa2V5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBnZXQkMSh0aGlzLCBrZXksIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGdldCBzaXplKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gc2l6ZSh0aGlzKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGhhczogaGFzJDEsXHJcbiAgICAgICAgYWRkLFxyXG4gICAgICAgIHNldDogc2V0JDEsXHJcbiAgICAgICAgZGVsZXRlOiBkZWxldGVFbnRyeSxcclxuICAgICAgICBjbGVhcixcclxuICAgICAgICBmb3JFYWNoOiBjcmVhdGVGb3JFYWNoKGZhbHNlLCB0cnVlKVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlYWRvbmx5SW5zdHJ1bWVudGF0aW9ucyA9IHtcclxuICAgICAgICBnZXQoa2V5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBnZXQkMSh0aGlzLCBrZXksIHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZ2V0IHNpemUoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzaXplKHRoaXMsIHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaGFzKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gaGFzJDEuY2FsbCh0aGlzLCBrZXksIHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYWRkOiBjcmVhdGVSZWFkb25seU1ldGhvZChcImFkZFwiIC8qIFRyaWdnZXJPcFR5cGVzLkFERCAqLyksXHJcbiAgICAgICAgc2V0OiBjcmVhdGVSZWFkb25seU1ldGhvZChcInNldFwiIC8qIFRyaWdnZXJPcFR5cGVzLlNFVCAqLyksXHJcbiAgICAgICAgZGVsZXRlOiBjcmVhdGVSZWFkb25seU1ldGhvZChcImRlbGV0ZVwiIC8qIFRyaWdnZXJPcFR5cGVzLkRFTEVURSAqLyksXHJcbiAgICAgICAgY2xlYXI6IGNyZWF0ZVJlYWRvbmx5TWV0aG9kKFwiY2xlYXJcIiAvKiBUcmlnZ2VyT3BUeXBlcy5DTEVBUiAqLyksXHJcbiAgICAgICAgZm9yRWFjaDogY3JlYXRlRm9yRWFjaCh0cnVlLCBmYWxzZSlcclxuICAgIH07XHJcbiAgICBjb25zdCBzaGFsbG93UmVhZG9ubHlJbnN0cnVtZW50YXRpb25zID0ge1xyXG4gICAgICAgIGdldChrZXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGdldCQxKHRoaXMsIGtleSwgdHJ1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXQgc2l6ZSgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHNpemUodGhpcywgdHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBoYXMoa2V5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBoYXMkMS5jYWxsKHRoaXMsIGtleSwgdHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBhZGQ6IGNyZWF0ZVJlYWRvbmx5TWV0aG9kKFwiYWRkXCIgLyogVHJpZ2dlck9wVHlwZXMuQUREICovKSxcclxuICAgICAgICBzZXQ6IGNyZWF0ZVJlYWRvbmx5TWV0aG9kKFwic2V0XCIgLyogVHJpZ2dlck9wVHlwZXMuU0VUICovKSxcclxuICAgICAgICBkZWxldGU6IGNyZWF0ZVJlYWRvbmx5TWV0aG9kKFwiZGVsZXRlXCIgLyogVHJpZ2dlck9wVHlwZXMuREVMRVRFICovKSxcclxuICAgICAgICBjbGVhcjogY3JlYXRlUmVhZG9ubHlNZXRob2QoXCJjbGVhclwiIC8qIFRyaWdnZXJPcFR5cGVzLkNMRUFSICovKSxcclxuICAgICAgICBmb3JFYWNoOiBjcmVhdGVGb3JFYWNoKHRydWUsIHRydWUpXHJcbiAgICB9O1xyXG4gICAgY29uc3QgaXRlcmF0b3JNZXRob2RzID0gWydrZXlzJywgJ3ZhbHVlcycsICdlbnRyaWVzJywgU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGl0ZXJhdG9yTWV0aG9kcy5mb3JFYWNoKG1ldGhvZCA9PiB7XHJcbiAgICAgICAgbXV0YWJsZUluc3RydW1lbnRhdGlvbnNbbWV0aG9kXSA9IGNyZWF0ZUl0ZXJhYmxlTWV0aG9kKG1ldGhvZCwgZmFsc2UsIGZhbHNlKTtcclxuICAgICAgICByZWFkb25seUluc3RydW1lbnRhdGlvbnNbbWV0aG9kXSA9IGNyZWF0ZUl0ZXJhYmxlTWV0aG9kKG1ldGhvZCwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgIHNoYWxsb3dJbnN0cnVtZW50YXRpb25zW21ldGhvZF0gPSBjcmVhdGVJdGVyYWJsZU1ldGhvZChtZXRob2QsIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICBzaGFsbG93UmVhZG9ubHlJbnN0cnVtZW50YXRpb25zW21ldGhvZF0gPSBjcmVhdGVJdGVyYWJsZU1ldGhvZChtZXRob2QsIHRydWUsIHRydWUpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICAgIG11dGFibGVJbnN0cnVtZW50YXRpb25zLFxyXG4gICAgICAgIHJlYWRvbmx5SW5zdHJ1bWVudGF0aW9ucyxcclxuICAgICAgICBzaGFsbG93SW5zdHJ1bWVudGF0aW9ucyxcclxuICAgICAgICBzaGFsbG93UmVhZG9ubHlJbnN0cnVtZW50YXRpb25zXHJcbiAgICBdO1xyXG59XHJcbmNvbnN0IFttdXRhYmxlSW5zdHJ1bWVudGF0aW9ucywgcmVhZG9ubHlJbnN0cnVtZW50YXRpb25zLCBzaGFsbG93SW5zdHJ1bWVudGF0aW9ucywgc2hhbGxvd1JlYWRvbmx5SW5zdHJ1bWVudGF0aW9uc10gPSAvKiAjX19QVVJFX18qLyBjcmVhdGVJbnN0cnVtZW50YXRpb25zKCk7XHJcbmZ1bmN0aW9uIGNyZWF0ZUluc3RydW1lbnRhdGlvbkdldHRlcihpc1JlYWRvbmx5LCBzaGFsbG93KSB7XHJcbiAgICBjb25zdCBpbnN0cnVtZW50YXRpb25zID0gc2hhbGxvd1xyXG4gICAgICAgID8gaXNSZWFkb25seVxyXG4gICAgICAgICAgICA/IHNoYWxsb3dSZWFkb25seUluc3RydW1lbnRhdGlvbnNcclxuICAgICAgICAgICAgOiBzaGFsbG93SW5zdHJ1bWVudGF0aW9uc1xyXG4gICAgICAgIDogaXNSZWFkb25seVxyXG4gICAgICAgICAgICA/IHJlYWRvbmx5SW5zdHJ1bWVudGF0aW9uc1xyXG4gICAgICAgICAgICA6IG11dGFibGVJbnN0cnVtZW50YXRpb25zO1xyXG4gICAgcmV0dXJuICh0YXJnZXQsIGtleSwgcmVjZWl2ZXIpID0+IHtcclxuICAgICAgICBpZiAoa2V5ID09PSBcIl9fdl9pc1JlYWN0aXZlXCIgLyogUmVhY3RpdmVGbGFncy5JU19SRUFDVElWRSAqLykge1xyXG4gICAgICAgICAgICByZXR1cm4gIWlzUmVhZG9ubHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGtleSA9PT0gXCJfX3ZfaXNSZWFkb25seVwiIC8qIFJlYWN0aXZlRmxhZ3MuSVNfUkVBRE9OTFkgKi8pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGlzUmVhZG9ubHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGtleSA9PT0gXCJfX3ZfcmF3XCIgLyogUmVhY3RpdmVGbGFncy5SQVcgKi8pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KGhhc093bihpbnN0cnVtZW50YXRpb25zLCBrZXkpICYmIGtleSBpbiB0YXJnZXRcclxuICAgICAgICAgICAgPyBpbnN0cnVtZW50YXRpb25zXHJcbiAgICAgICAgICAgIDogdGFyZ2V0LCBrZXksIHJlY2VpdmVyKTtcclxuICAgIH07XHJcbn1cclxuY29uc3QgbXV0YWJsZUNvbGxlY3Rpb25IYW5kbGVycyA9IHtcclxuICAgIGdldDogLyojX19QVVJFX18qLyBjcmVhdGVJbnN0cnVtZW50YXRpb25HZXR0ZXIoZmFsc2UsIGZhbHNlKVxyXG59O1xyXG5jb25zdCBzaGFsbG93Q29sbGVjdGlvbkhhbmRsZXJzID0ge1xyXG4gICAgZ2V0OiAvKiNfX1BVUkVfXyovIGNyZWF0ZUluc3RydW1lbnRhdGlvbkdldHRlcihmYWxzZSwgdHJ1ZSlcclxufTtcclxuY29uc3QgcmVhZG9ubHlDb2xsZWN0aW9uSGFuZGxlcnMgPSB7XHJcbiAgICBnZXQ6IC8qI19fUFVSRV9fKi8gY3JlYXRlSW5zdHJ1bWVudGF0aW9uR2V0dGVyKHRydWUsIGZhbHNlKVxyXG59O1xyXG5jb25zdCBzaGFsbG93UmVhZG9ubHlDb2xsZWN0aW9uSGFuZGxlcnMgPSB7XHJcbiAgICBnZXQ6IC8qI19fUFVSRV9fKi8gY3JlYXRlSW5zdHJ1bWVudGF0aW9uR2V0dGVyKHRydWUsIHRydWUpXHJcbn07XHJcbmZ1bmN0aW9uIGNoZWNrSWRlbnRpdHlLZXlzKHRhcmdldCwgaGFzLCBrZXkpIHtcclxuICAgIGNvbnN0IHJhd0tleSA9IHRvUmF3KGtleSk7XHJcbiAgICBpZiAocmF3S2V5ICE9PSBrZXkgJiYgaGFzLmNhbGwodGFyZ2V0LCByYXdLZXkpKSB7XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IHRvUmF3VHlwZSh0YXJnZXQpO1xyXG4gICAgICAgIGNvbnNvbGUud2FybihgUmVhY3RpdmUgJHt0eXBlfSBjb250YWlucyBib3RoIHRoZSByYXcgYW5kIHJlYWN0aXZlIGAgK1xyXG4gICAgICAgICAgICBgdmVyc2lvbnMgb2YgdGhlIHNhbWUgb2JqZWN0JHt0eXBlID09PSBgTWFwYCA/IGAgYXMga2V5c2AgOiBgYH0sIGAgK1xyXG4gICAgICAgICAgICBgd2hpY2ggY2FuIGxlYWQgdG8gaW5jb25zaXN0ZW5jaWVzLiBgICtcclxuICAgICAgICAgICAgYEF2b2lkIGRpZmZlcmVudGlhdGluZyBiZXR3ZWVuIHRoZSByYXcgYW5kIHJlYWN0aXZlIHZlcnNpb25zIGAgK1xyXG4gICAgICAgICAgICBgb2YgYW4gb2JqZWN0IGFuZCBvbmx5IHVzZSB0aGUgcmVhY3RpdmUgdmVyc2lvbiBpZiBwb3NzaWJsZS5gKTtcclxuICAgIH1cclxufVxuXG5jb25zdCByZWFjdGl2ZU1hcCA9IG5ldyBXZWFrTWFwKCk7XHJcbmNvbnN0IHNoYWxsb3dSZWFjdGl2ZU1hcCA9IG5ldyBXZWFrTWFwKCk7XHJcbmNvbnN0IHJlYWRvbmx5TWFwID0gbmV3IFdlYWtNYXAoKTtcclxuY29uc3Qgc2hhbGxvd1JlYWRvbmx5TWFwID0gbmV3IFdlYWtNYXAoKTtcclxuZnVuY3Rpb24gdGFyZ2V0VHlwZU1hcChyYXdUeXBlKSB7XHJcbiAgICBzd2l0Y2ggKHJhd1R5cGUpIHtcclxuICAgICAgICBjYXNlICdPYmplY3QnOlxyXG4gICAgICAgIGNhc2UgJ0FycmF5JzpcclxuICAgICAgICAgICAgcmV0dXJuIDEgLyogVGFyZ2V0VHlwZS5DT01NT04gKi87XHJcbiAgICAgICAgY2FzZSAnTWFwJzpcclxuICAgICAgICBjYXNlICdTZXQnOlxyXG4gICAgICAgIGNhc2UgJ1dlYWtNYXAnOlxyXG4gICAgICAgIGNhc2UgJ1dlYWtTZXQnOlxyXG4gICAgICAgICAgICByZXR1cm4gMiAvKiBUYXJnZXRUeXBlLkNPTExFQ1RJT04gKi87XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuIDAgLyogVGFyZ2V0VHlwZS5JTlZBTElEICovO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdldFRhcmdldFR5cGUodmFsdWUpIHtcclxuICAgIHJldHVybiB2YWx1ZVtcIl9fdl9za2lwXCIgLyogUmVhY3RpdmVGbGFncy5TS0lQICovXSB8fCAhT2JqZWN0LmlzRXh0ZW5zaWJsZSh2YWx1ZSlcclxuICAgICAgICA/IDAgLyogVGFyZ2V0VHlwZS5JTlZBTElEICovXHJcbiAgICAgICAgOiB0YXJnZXRUeXBlTWFwKHRvUmF3VHlwZSh2YWx1ZSkpO1xyXG59XHJcbmZ1bmN0aW9uIHJlYWN0aXZlKHRhcmdldCkge1xyXG4gICAgLy8gaWYgdHJ5aW5nIHRvIG9ic2VydmUgYSByZWFkb25seSBwcm94eSwgcmV0dXJuIHRoZSByZWFkb25seSB2ZXJzaW9uLlxyXG4gICAgaWYgKGlzUmVhZG9ubHkodGFyZ2V0KSkge1xyXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3JlYXRlUmVhY3RpdmVPYmplY3QodGFyZ2V0LCBmYWxzZSwgbXV0YWJsZUhhbmRsZXJzLCBtdXRhYmxlQ29sbGVjdGlvbkhhbmRsZXJzLCByZWFjdGl2ZU1hcCk7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybiBhIHNoYWxsb3dseS1yZWFjdGl2ZSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBvYmplY3QsIHdoZXJlIG9ubHkgdGhlIHJvb3RcclxuICogbGV2ZWwgcHJvcGVydGllcyBhcmUgcmVhY3RpdmUuIEl0IGFsc28gZG9lcyBub3QgYXV0by11bndyYXAgcmVmcyAoZXZlbiBhdCB0aGVcclxuICogcm9vdCBsZXZlbCkuXHJcbiAqL1xyXG5mdW5jdGlvbiBzaGFsbG93UmVhY3RpdmUodGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gY3JlYXRlUmVhY3RpdmVPYmplY3QodGFyZ2V0LCBmYWxzZSwgc2hhbGxvd1JlYWN0aXZlSGFuZGxlcnMsIHNoYWxsb3dDb2xsZWN0aW9uSGFuZGxlcnMsIHNoYWxsb3dSZWFjdGl2ZU1hcCk7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSByZWFkb25seSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBvYmplY3QuIE5vdGUgdGhlIHJldHVybmVkIGNvcHkgaXMgbm90XHJcbiAqIG1hZGUgcmVhY3RpdmUsIGJ1dCBgcmVhZG9ubHlgIGNhbiBiZSBjYWxsZWQgb24gYW4gYWxyZWFkeSByZWFjdGl2ZSBvYmplY3QuXHJcbiAqL1xyXG5mdW5jdGlvbiByZWFkb25seSh0YXJnZXQpIHtcclxuICAgIHJldHVybiBjcmVhdGVSZWFjdGl2ZU9iamVjdCh0YXJnZXQsIHRydWUsIHJlYWRvbmx5SGFuZGxlcnMsIHJlYWRvbmx5Q29sbGVjdGlvbkhhbmRsZXJzLCByZWFkb25seU1hcCk7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgYSByZWFjdGl2ZS1jb3B5IG9mIHRoZSBvcmlnaW5hbCBvYmplY3QsIHdoZXJlIG9ubHkgdGhlIHJvb3QgbGV2ZWxcclxuICogcHJvcGVydGllcyBhcmUgcmVhZG9ubHksIGFuZCBkb2VzIE5PVCB1bndyYXAgcmVmcyBub3IgcmVjdXJzaXZlbHkgY29udmVydFxyXG4gKiByZXR1cm5lZCBwcm9wZXJ0aWVzLlxyXG4gKiBUaGlzIGlzIHVzZWQgZm9yIGNyZWF0aW5nIHRoZSBwcm9wcyBwcm94eSBvYmplY3QgZm9yIHN0YXRlZnVsIGNvbXBvbmVudHMuXHJcbiAqL1xyXG5mdW5jdGlvbiBzaGFsbG93UmVhZG9ubHkodGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gY3JlYXRlUmVhY3RpdmVPYmplY3QodGFyZ2V0LCB0cnVlLCBzaGFsbG93UmVhZG9ubHlIYW5kbGVycywgc2hhbGxvd1JlYWRvbmx5Q29sbGVjdGlvbkhhbmRsZXJzLCBzaGFsbG93UmVhZG9ubHlNYXApO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZVJlYWN0aXZlT2JqZWN0KHRhcmdldCwgaXNSZWFkb25seSwgYmFzZUhhbmRsZXJzLCBjb2xsZWN0aW9uSGFuZGxlcnMsIHByb3h5TWFwKSB7XHJcbiAgICBpZiAoIWlzT2JqZWN0KHRhcmdldCkpIHtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgdmFsdWUgY2Fubm90IGJlIG1hZGUgcmVhY3RpdmU6ICR7U3RyaW5nKHRhcmdldCl9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgICB9XHJcbiAgICAvLyB0YXJnZXQgaXMgYWxyZWFkeSBhIFByb3h5LCByZXR1cm4gaXQuXHJcbiAgICAvLyBleGNlcHRpb246IGNhbGxpbmcgcmVhZG9ubHkoKSBvbiBhIHJlYWN0aXZlIG9iamVjdFxyXG4gICAgaWYgKHRhcmdldFtcIl9fdl9yYXdcIiAvKiBSZWFjdGl2ZUZsYWdzLlJBVyAqL10gJiZcclxuICAgICAgICAhKGlzUmVhZG9ubHkgJiYgdGFyZ2V0W1wiX192X2lzUmVhY3RpdmVcIiAvKiBSZWFjdGl2ZUZsYWdzLklTX1JFQUNUSVZFICovXSkpIHtcclxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xyXG4gICAgfVxyXG4gICAgLy8gdGFyZ2V0IGFscmVhZHkgaGFzIGNvcnJlc3BvbmRpbmcgUHJveHlcclxuICAgIGNvbnN0IGV4aXN0aW5nUHJveHkgPSBwcm94eU1hcC5nZXQodGFyZ2V0KTtcclxuICAgIGlmIChleGlzdGluZ1Byb3h5KSB7XHJcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nUHJveHk7XHJcbiAgICB9XHJcbiAgICAvLyBvbmx5IHNwZWNpZmljIHZhbHVlIHR5cGVzIGNhbiBiZSBvYnNlcnZlZC5cclxuICAgIGNvbnN0IHRhcmdldFR5cGUgPSBnZXRUYXJnZXRUeXBlKHRhcmdldCk7XHJcbiAgICBpZiAodGFyZ2V0VHlwZSA9PT0gMCAvKiBUYXJnZXRUeXBlLklOVkFMSUQgKi8pIHtcclxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xyXG4gICAgfVxyXG4gICAgY29uc3QgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0LCB0YXJnZXRUeXBlID09PSAyIC8qIFRhcmdldFR5cGUuQ09MTEVDVElPTiAqLyA/IGNvbGxlY3Rpb25IYW5kbGVycyA6IGJhc2VIYW5kbGVycyk7XHJcbiAgICBwcm94eU1hcC5zZXQodGFyZ2V0LCBwcm94eSk7XHJcbiAgICByZXR1cm4gcHJveHk7XHJcbn1cclxuZnVuY3Rpb24gaXNSZWFjdGl2ZSh2YWx1ZSkge1xyXG4gICAgaWYgKGlzUmVhZG9ubHkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIGlzUmVhY3RpdmUodmFsdWVbXCJfX3ZfcmF3XCIgLyogUmVhY3RpdmVGbGFncy5SQVcgKi9dKTtcclxuICAgIH1cclxuICAgIHJldHVybiAhISh2YWx1ZSAmJiB2YWx1ZVtcIl9fdl9pc1JlYWN0aXZlXCIgLyogUmVhY3RpdmVGbGFncy5JU19SRUFDVElWRSAqL10pO1xyXG59XHJcbmZ1bmN0aW9uIGlzUmVhZG9ubHkodmFsdWUpIHtcclxuICAgIHJldHVybiAhISh2YWx1ZSAmJiB2YWx1ZVtcIl9fdl9pc1JlYWRvbmx5XCIgLyogUmVhY3RpdmVGbGFncy5JU19SRUFET05MWSAqL10pO1xyXG59XHJcbmZ1bmN0aW9uIGlzU2hhbGxvdyh2YWx1ZSkge1xyXG4gICAgcmV0dXJuICEhKHZhbHVlICYmIHZhbHVlW1wiX192X2lzU2hhbGxvd1wiIC8qIFJlYWN0aXZlRmxhZ3MuSVNfU0hBTExPVyAqL10pO1xyXG59XHJcbmZ1bmN0aW9uIGlzUHJveHkodmFsdWUpIHtcclxuICAgIHJldHVybiBpc1JlYWN0aXZlKHZhbHVlKSB8fCBpc1JlYWRvbmx5KHZhbHVlKTtcclxufVxyXG5mdW5jdGlvbiB0b1JhdyhvYnNlcnZlZCkge1xyXG4gICAgY29uc3QgcmF3ID0gb2JzZXJ2ZWQgJiYgb2JzZXJ2ZWRbXCJfX3ZfcmF3XCIgLyogUmVhY3RpdmVGbGFncy5SQVcgKi9dO1xyXG4gICAgcmV0dXJuIHJhdyA/IHRvUmF3KHJhdykgOiBvYnNlcnZlZDtcclxufVxyXG5mdW5jdGlvbiBtYXJrUmF3KHZhbHVlKSB7XHJcbiAgICBkZWYodmFsdWUsIFwiX192X3NraXBcIiAvKiBSZWFjdGl2ZUZsYWdzLlNLSVAgKi8sIHRydWUpO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcbmNvbnN0IHRvUmVhY3RpdmUgPSAodmFsdWUpID0+IGlzT2JqZWN0KHZhbHVlKSA/IHJlYWN0aXZlKHZhbHVlKSA6IHZhbHVlO1xyXG5jb25zdCB0b1JlYWRvbmx5ID0gKHZhbHVlKSA9PiBpc09iamVjdCh2YWx1ZSkgPyByZWFkb25seSh2YWx1ZSkgOiB2YWx1ZTtcblxuZnVuY3Rpb24gdHJhY2tSZWZWYWx1ZShyZWYpIHtcclxuICAgIGlmIChzaG91bGRUcmFjayAmJiBhY3RpdmVFZmZlY3QpIHtcclxuICAgICAgICByZWYgPSB0b1JhdyhyZWYpO1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgdHJhY2tFZmZlY3RzKHJlZi5kZXAgfHwgKHJlZi5kZXAgPSBjcmVhdGVEZXAoKSksIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldDogcmVmLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnZXRcIiAvKiBUcmFja09wVHlwZXMuR0VUICovLFxyXG4gICAgICAgICAgICAgICAga2V5OiAndmFsdWUnXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdHJhY2tFZmZlY3RzKHJlZi5kZXAgfHwgKHJlZi5kZXAgPSBjcmVhdGVEZXAoKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiB0cmlnZ2VyUmVmVmFsdWUocmVmLCBuZXdWYWwpIHtcclxuICAgIHJlZiA9IHRvUmF3KHJlZik7XHJcbiAgICBpZiAocmVmLmRlcCkge1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgdHJpZ2dlckVmZmVjdHMocmVmLmRlcCwge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiByZWYsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInNldFwiIC8qIFRyaWdnZXJPcFR5cGVzLlNFVCAqLyxcclxuICAgICAgICAgICAgICAgIGtleTogJ3ZhbHVlJyxcclxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiBuZXdWYWxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0cmlnZ2VyRWZmZWN0cyhyZWYuZGVwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gaXNSZWYocikge1xyXG4gICAgcmV0dXJuICEhKHIgJiYgci5fX3ZfaXNSZWYgPT09IHRydWUpO1xyXG59XHJcbmZ1bmN0aW9uIHJlZih2YWx1ZSkge1xyXG4gICAgcmV0dXJuIGNyZWF0ZVJlZih2YWx1ZSwgZmFsc2UpO1xyXG59XHJcbmZ1bmN0aW9uIHNoYWxsb3dSZWYodmFsdWUpIHtcclxuICAgIHJldHVybiBjcmVhdGVSZWYodmFsdWUsIHRydWUpO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZVJlZihyYXdWYWx1ZSwgc2hhbGxvdykge1xyXG4gICAgaWYgKGlzUmVmKHJhd1ZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiByYXdWYWx1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgUmVmSW1wbChyYXdWYWx1ZSwgc2hhbGxvdyk7XHJcbn1cclxuY2xhc3MgUmVmSW1wbCB7XHJcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZSwgX192X2lzU2hhbGxvdykge1xyXG4gICAgICAgIHRoaXMuX192X2lzU2hhbGxvdyA9IF9fdl9pc1NoYWxsb3c7XHJcbiAgICAgICAgdGhpcy5kZXAgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fX3ZfaXNSZWYgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX3Jhd1ZhbHVlID0gX192X2lzU2hhbGxvdyA/IHZhbHVlIDogdG9SYXcodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gX192X2lzU2hhbGxvdyA/IHZhbHVlIDogdG9SZWFjdGl2ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBnZXQgdmFsdWUoKSB7XHJcbiAgICAgICAgdHJhY2tSZWZWYWx1ZSh0aGlzKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzZXQgdmFsdWUobmV3VmFsKSB7XHJcbiAgICAgICAgY29uc3QgdXNlRGlyZWN0VmFsdWUgPSB0aGlzLl9fdl9pc1NoYWxsb3cgfHwgaXNTaGFsbG93KG5ld1ZhbCkgfHwgaXNSZWFkb25seShuZXdWYWwpO1xyXG4gICAgICAgIG5ld1ZhbCA9IHVzZURpcmVjdFZhbHVlID8gbmV3VmFsIDogdG9SYXcobmV3VmFsKTtcclxuICAgICAgICBpZiAoaGFzQ2hhbmdlZChuZXdWYWwsIHRoaXMuX3Jhd1ZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9yYXdWYWx1ZSA9IG5ld1ZhbDtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB1c2VEaXJlY3RWYWx1ZSA/IG5ld1ZhbCA6IHRvUmVhY3RpdmUobmV3VmFsKTtcclxuICAgICAgICAgICAgdHJpZ2dlclJlZlZhbHVlKHRoaXMsIG5ld1ZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHRyaWdnZXJSZWYocmVmKSB7XHJcbiAgICB0cmlnZ2VyUmVmVmFsdWUocmVmLCAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyByZWYudmFsdWUgOiB2b2lkIDApO1xyXG59XHJcbmZ1bmN0aW9uIHVucmVmKHJlZikge1xyXG4gICAgcmV0dXJuIGlzUmVmKHJlZikgPyByZWYudmFsdWUgOiByZWY7XHJcbn1cclxuY29uc3Qgc2hhbGxvd1Vud3JhcEhhbmRsZXJzID0ge1xyXG4gICAgZ2V0OiAodGFyZ2V0LCBrZXksIHJlY2VpdmVyKSA9PiB1bnJlZihSZWZsZWN0LmdldCh0YXJnZXQsIGtleSwgcmVjZWl2ZXIpKSxcclxuICAgIHNldDogKHRhcmdldCwga2V5LCB2YWx1ZSwgcmVjZWl2ZXIpID0+IHtcclxuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRhcmdldFtrZXldO1xyXG4gICAgICAgIGlmIChpc1JlZihvbGRWYWx1ZSkgJiYgIWlzUmVmKHZhbHVlKSkge1xyXG4gICAgICAgICAgICBvbGRWYWx1ZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIGtleSwgdmFsdWUsIHJlY2VpdmVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbmZ1bmN0aW9uIHByb3h5UmVmcyhvYmplY3RXaXRoUmVmcykge1xyXG4gICAgcmV0dXJuIGlzUmVhY3RpdmUob2JqZWN0V2l0aFJlZnMpXHJcbiAgICAgICAgPyBvYmplY3RXaXRoUmVmc1xyXG4gICAgICAgIDogbmV3IFByb3h5KG9iamVjdFdpdGhSZWZzLCBzaGFsbG93VW53cmFwSGFuZGxlcnMpO1xyXG59XHJcbmNsYXNzIEN1c3RvbVJlZkltcGwge1xyXG4gICAgY29uc3RydWN0b3IoZmFjdG9yeSkge1xyXG4gICAgICAgIHRoaXMuZGVwID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX192X2lzUmVmID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCB7IGdldCwgc2V0IH0gPSBmYWN0b3J5KCgpID0+IHRyYWNrUmVmVmFsdWUodGhpcyksICgpID0+IHRyaWdnZXJSZWZWYWx1ZSh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy5fZ2V0ID0gZ2V0O1xyXG4gICAgICAgIHRoaXMuX3NldCA9IHNldDtcclxuICAgIH1cclxuICAgIGdldCB2YWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0KCk7XHJcbiAgICB9XHJcbiAgICBzZXQgdmFsdWUobmV3VmFsKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0KG5ld1ZhbCk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gY3VzdG9tUmVmKGZhY3RvcnkpIHtcclxuICAgIHJldHVybiBuZXcgQ3VzdG9tUmVmSW1wbChmYWN0b3J5KTtcclxufVxyXG5mdW5jdGlvbiB0b1JlZnMob2JqZWN0KSB7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFpc1Byb3h5KG9iamVjdCkpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oYHRvUmVmcygpIGV4cGVjdHMgYSByZWFjdGl2ZSBvYmplY3QgYnV0IHJlY2VpdmVkIGEgcGxhaW4gb25lLmApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmV0ID0gaXNBcnJheShvYmplY3QpID8gbmV3IEFycmF5KG9iamVjdC5sZW5ndGgpIDoge307XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmplY3QpIHtcclxuICAgICAgICByZXRba2V5XSA9IHRvUmVmKG9iamVjdCwga2V5KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXQ7XHJcbn1cclxuY2xhc3MgT2JqZWN0UmVmSW1wbCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihfb2JqZWN0LCBfa2V5LCBfZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0ID0gX29iamVjdDtcclxuICAgICAgICB0aGlzLl9rZXkgPSBfa2V5O1xyXG4gICAgICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IF9kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fX3ZfaXNSZWYgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZ2V0IHZhbHVlKCkge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuX29iamVjdFt0aGlzLl9rZXldO1xyXG4gICAgICAgIHJldHVybiB2YWwgPT09IHVuZGVmaW5lZCA/IHRoaXMuX2RlZmF1bHRWYWx1ZSA6IHZhbDtcclxuICAgIH1cclxuICAgIHNldCB2YWx1ZShuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9vYmplY3RbdGhpcy5fa2V5XSA9IG5ld1ZhbDtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiB0b1JlZihvYmplY3QsIGtleSwgZGVmYXVsdFZhbHVlKSB7XHJcbiAgICBjb25zdCB2YWwgPSBvYmplY3Rba2V5XTtcclxuICAgIHJldHVybiBpc1JlZih2YWwpXHJcbiAgICAgICAgPyB2YWxcclxuICAgICAgICA6IG5ldyBPYmplY3RSZWZJbXBsKG9iamVjdCwga2V5LCBkZWZhdWx0VmFsdWUpO1xyXG59XG5cbnZhciBfYTtcclxuY2xhc3MgQ29tcHV0ZWRSZWZJbXBsIHtcclxuICAgIGNvbnN0cnVjdG9yKGdldHRlciwgX3NldHRlciwgaXNSZWFkb25seSwgaXNTU1IpIHtcclxuICAgICAgICB0aGlzLl9zZXR0ZXIgPSBfc2V0dGVyO1xyXG4gICAgICAgIHRoaXMuZGVwID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX192X2lzUmVmID0gdHJ1ZTtcclxuICAgICAgICB0aGlzW19hXSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVmZmVjdCA9IG5ldyBSZWFjdGl2ZUVmZmVjdChnZXR0ZXIsICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kaXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdHJpZ2dlclJlZlZhbHVlKHRoaXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5lZmZlY3QuY29tcHV0ZWQgPSB0aGlzO1xyXG4gICAgICAgIHRoaXMuZWZmZWN0LmFjdGl2ZSA9IHRoaXMuX2NhY2hlYWJsZSA9ICFpc1NTUjtcclxuICAgICAgICB0aGlzW1wiX192X2lzUmVhZG9ubHlcIiAvKiBSZWFjdGl2ZUZsYWdzLklTX1JFQURPTkxZICovXSA9IGlzUmVhZG9ubHk7XHJcbiAgICB9XHJcbiAgICBnZXQgdmFsdWUoKSB7XHJcbiAgICAgICAgLy8gdGhlIGNvbXB1dGVkIHJlZiBtYXkgZ2V0IHdyYXBwZWQgYnkgb3RoZXIgcHJveGllcyBlLmcuIHJlYWRvbmx5KCkgIzMzNzZcclxuICAgICAgICBjb25zdCBzZWxmID0gdG9SYXcodGhpcyk7XHJcbiAgICAgICAgdHJhY2tSZWZWYWx1ZShzZWxmKTtcclxuICAgICAgICBpZiAoc2VsZi5fZGlydHkgfHwgIXNlbGYuX2NhY2hlYWJsZSkge1xyXG4gICAgICAgICAgICBzZWxmLl9kaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBzZWxmLl92YWx1ZSA9IHNlbGYuZWZmZWN0LnJ1bigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2VsZi5fdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzZXQgdmFsdWUobmV3VmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9zZXR0ZXIobmV3VmFsdWUpO1xyXG4gICAgfVxyXG59XHJcbl9hID0gXCJfX3ZfaXNSZWFkb25seVwiIC8qIFJlYWN0aXZlRmxhZ3MuSVNfUkVBRE9OTFkgKi87XHJcbmZ1bmN0aW9uIGNvbXB1dGVkKGdldHRlck9yT3B0aW9ucywgZGVidWdPcHRpb25zLCBpc1NTUiA9IGZhbHNlKSB7XHJcbiAgICBsZXQgZ2V0dGVyO1xyXG4gICAgbGV0IHNldHRlcjtcclxuICAgIGNvbnN0IG9ubHlHZXR0ZXIgPSBpc0Z1bmN0aW9uKGdldHRlck9yT3B0aW9ucyk7XHJcbiAgICBpZiAob25seUdldHRlcikge1xyXG4gICAgICAgIGdldHRlciA9IGdldHRlck9yT3B0aW9ucztcclxuICAgICAgICBzZXR0ZXIgPSAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylcclxuICAgICAgICAgICAgPyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1dyaXRlIG9wZXJhdGlvbiBmYWlsZWQ6IGNvbXB1dGVkIHZhbHVlIGlzIHJlYWRvbmx5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgOiBOT09QO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZ2V0dGVyID0gZ2V0dGVyT3JPcHRpb25zLmdldDtcclxuICAgICAgICBzZXR0ZXIgPSBnZXR0ZXJPck9wdGlvbnMuc2V0O1xyXG4gICAgfVxyXG4gICAgY29uc3QgY1JlZiA9IG5ldyBDb21wdXRlZFJlZkltcGwoZ2V0dGVyLCBzZXR0ZXIsIG9ubHlHZXR0ZXIgfHwgIXNldHRlciwgaXNTU1IpO1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBkZWJ1Z09wdGlvbnMgJiYgIWlzU1NSKSB7XHJcbiAgICAgICAgY1JlZi5lZmZlY3Qub25UcmFjayA9IGRlYnVnT3B0aW9ucy5vblRyYWNrO1xyXG4gICAgICAgIGNSZWYuZWZmZWN0Lm9uVHJpZ2dlciA9IGRlYnVnT3B0aW9ucy5vblRyaWdnZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY1JlZjtcclxufVxuXG52YXIgX2EkMTtcclxuY29uc3QgdGljayA9IC8qI19fUFVSRV9fKi8gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbmNvbnN0IHF1ZXVlID0gW107XHJcbmxldCBxdWV1ZWQgPSBmYWxzZTtcclxuY29uc3Qgc2NoZWR1bGVyID0gKGZuKSA9PiB7XHJcbiAgICBxdWV1ZS5wdXNoKGZuKTtcclxuICAgIGlmICghcXVldWVkKSB7XHJcbiAgICAgICAgcXVldWVkID0gdHJ1ZTtcclxuICAgICAgICB0aWNrLnRoZW4oZmx1c2gpO1xyXG4gICAgfVxyXG59O1xyXG5jb25zdCBmbHVzaCA9ICgpID0+IHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBxdWV1ZVtpXSgpO1xyXG4gICAgfVxyXG4gICAgcXVldWUubGVuZ3RoID0gMDtcclxuICAgIHF1ZXVlZCA9IGZhbHNlO1xyXG59O1xyXG5jbGFzcyBEZWZlcnJlZENvbXB1dGVkUmVmSW1wbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihnZXR0ZXIpIHtcclxuICAgICAgICB0aGlzLmRlcCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9kaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fX3ZfaXNSZWYgPSB0cnVlO1xyXG4gICAgICAgIHRoaXNbX2EkMV0gPSB0cnVlO1xyXG4gICAgICAgIGxldCBjb21wYXJlVGFyZ2V0O1xyXG4gICAgICAgIGxldCBoYXNDb21wYXJlVGFyZ2V0ID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHNjaGVkdWxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZWZmZWN0ID0gbmV3IFJlYWN0aXZlRWZmZWN0KGdldHRlciwgKGNvbXB1dGVkVHJpZ2dlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kZXApIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb21wdXRlZFRyaWdnZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb21wYXJlVGFyZ2V0ID0gdGhpcy5fdmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFzQ29tcGFyZVRhcmdldCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICghc2NoZWR1bGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVUb0NvbXBhcmUgPSBoYXNDb21wYXJlVGFyZ2V0ID8gY29tcGFyZVRhcmdldCA6IHRoaXMuX3ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFzQ29tcGFyZVRhcmdldCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlcigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmVmZmVjdC5hY3RpdmUgJiYgdGhpcy5fZ2V0KCkgIT09IHZhbHVlVG9Db21wYXJlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVmVmFsdWUodGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBjaGFpbmVkIHVwc3RyZWFtIGNvbXB1dGVkcyBhcmUgbm90aWZpZWQgc3luY2hyb25vdXNseSB0byBlbnN1cmVcclxuICAgICAgICAgICAgICAgIC8vIHZhbHVlIGludmFsaWRhdGlvbiBpbiBjYXNlIG9mIHN5bmMgYWNjZXNzOyBub3JtYWwgZWZmZWN0cyBhcmVcclxuICAgICAgICAgICAgICAgIC8vIGRlZmVycmVkIHRvIGJlIHRyaWdnZXJlZCBpbiBzY2hlZHVsZXIuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGUgb2YgdGhpcy5kZXApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb21wdXRlZCBpbnN0YW5jZW9mIERlZmVycmVkQ29tcHV0ZWRSZWZJbXBsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuc2NoZWR1bGVyKHRydWUgLyogY29tcHV0ZWRUcmlnZ2VyICovKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fZGlydHkgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZWZmZWN0LmNvbXB1dGVkID0gdGhpcztcclxuICAgIH1cclxuICAgIF9nZXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2RpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5fdmFsdWUgPSB0aGlzLmVmZmVjdC5ydW4oKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICAgIH1cclxuICAgIGdldCB2YWx1ZSgpIHtcclxuICAgICAgICB0cmFja1JlZlZhbHVlKHRoaXMpO1xyXG4gICAgICAgIC8vIHRoZSBjb21wdXRlZCByZWYgbWF5IGdldCB3cmFwcGVkIGJ5IG90aGVyIHByb3hpZXMgZS5nLiByZWFkb25seSgpICMzMzc2XHJcbiAgICAgICAgcmV0dXJuIHRvUmF3KHRoaXMpLl9nZXQoKTtcclxuICAgIH1cclxufVxyXG5fYSQxID0gXCJfX3ZfaXNSZWFkb25seVwiIC8qIFJlYWN0aXZlRmxhZ3MuSVNfUkVBRE9OTFkgKi87XHJcbmZ1bmN0aW9uIGRlZmVycmVkQ29tcHV0ZWQoZ2V0dGVyKSB7XHJcbiAgICByZXR1cm4gbmV3IERlZmVycmVkQ29tcHV0ZWRSZWZJbXBsKGdldHRlcik7XHJcbn1cblxuZXhwb3J0IHsgRWZmZWN0U2NvcGUsIElURVJBVEVfS0VZLCBSZWFjdGl2ZUVmZmVjdCwgY29tcHV0ZWQsIGN1c3RvbVJlZiwgZGVmZXJyZWRDb21wdXRlZCwgZWZmZWN0LCBlZmZlY3RTY29wZSwgZW5hYmxlVHJhY2tpbmcsIGdldEN1cnJlbnRTY29wZSwgaXNQcm94eSwgaXNSZWFjdGl2ZSwgaXNSZWFkb25seSwgaXNSZWYsIGlzU2hhbGxvdywgbWFya1Jhdywgb25TY29wZURpc3Bvc2UsIHBhdXNlVHJhY2tpbmcsIHByb3h5UmVmcywgcmVhY3RpdmUsIHJlYWRvbmx5LCByZWYsIHJlc2V0VHJhY2tpbmcsIHNoYWxsb3dSZWFjdGl2ZSwgc2hhbGxvd1JlYWRvbmx5LCBzaGFsbG93UmVmLCBzdG9wLCB0b1JhdywgdG9SZWYsIHRvUmVmcywgdHJhY2ssIHRyaWdnZXIsIHRyaWdnZXJSZWYsIHVucmVmIH07XG4iLCJpbXBvcnQgeyBwYXVzZVRyYWNraW5nLCByZXNldFRyYWNraW5nLCBpc1JlZiwgdG9SYXcsIGlzU2hhbGxvdyBhcyBpc1NoYWxsb3ckMSwgaXNSZWFjdGl2ZSwgUmVhY3RpdmVFZmZlY3QsIHJlZiwgc2hhbGxvd1JlYWRvbmx5LCB0cmFjaywgcmVhY3RpdmUsIHNoYWxsb3dSZWFjdGl2ZSwgdHJpZ2dlciwgaXNQcm94eSwgRWZmZWN0U2NvcGUsIG1hcmtSYXcsIHByb3h5UmVmcywgY29tcHV0ZWQgYXMgY29tcHV0ZWQkMSwgaXNSZWFkb25seSB9IGZyb20gJ0B2dWUvcmVhY3Rpdml0eSc7XG5leHBvcnQgeyBFZmZlY3RTY29wZSwgUmVhY3RpdmVFZmZlY3QsIGN1c3RvbVJlZiwgZWZmZWN0LCBlZmZlY3RTY29wZSwgZ2V0Q3VycmVudFNjb3BlLCBpc1Byb3h5LCBpc1JlYWN0aXZlLCBpc1JlYWRvbmx5LCBpc1JlZiwgaXNTaGFsbG93LCBtYXJrUmF3LCBvblNjb3BlRGlzcG9zZSwgcHJveHlSZWZzLCByZWFjdGl2ZSwgcmVhZG9ubHksIHJlZiwgc2hhbGxvd1JlYWN0aXZlLCBzaGFsbG93UmVhZG9ubHksIHNoYWxsb3dSZWYsIHN0b3AsIHRvUmF3LCB0b1JlZiwgdG9SZWZzLCB0cmlnZ2VyUmVmLCB1bnJlZiB9IGZyb20gJ0B2dWUvcmVhY3Rpdml0eSc7XG5pbXBvcnQgeyBpc1N0cmluZywgaXNGdW5jdGlvbiwgaXNQcm9taXNlLCBpc0FycmF5LCBOT09QLCBnZXRHbG9iYWxUaGlzLCBleHRlbmQsIEVNUFRZX09CSiwgdG9IYW5kbGVyS2V5LCB0b051bWJlciwgaHlwaGVuYXRlLCBjYW1lbGl6ZSwgaXNPYmplY3QsIGlzT24sIGhhc093biwgaXNNb2RlbExpc3RlbmVyLCBoYXNDaGFuZ2VkLCByZW1vdmUsIGlzU2V0LCBpc01hcCwgaXNQbGFpbk9iamVjdCwgaW52b2tlQXJyYXlGbnMsIGlzQnVpbHRJbkRpcmVjdGl2ZSwgY2FwaXRhbGl6ZSwgaXNHbG9iYWxseVdoaXRlbGlzdGVkLCBkZWYsIGlzUmVzZXJ2ZWRQcm9wLCBFTVBUWV9BUlIsIHRvUmF3VHlwZSwgbWFrZU1hcCwgTk8sIG5vcm1hbGl6ZUNsYXNzLCBub3JtYWxpemVTdHlsZSB9IGZyb20gJ0B2dWUvc2hhcmVkJztcbmV4cG9ydCB7IGNhbWVsaXplLCBjYXBpdGFsaXplLCBub3JtYWxpemVDbGFzcywgbm9ybWFsaXplUHJvcHMsIG5vcm1hbGl6ZVN0eWxlLCB0b0Rpc3BsYXlTdHJpbmcsIHRvSGFuZGxlcktleSB9IGZyb20gJ0B2dWUvc2hhcmVkJztcblxuY29uc3Qgc3RhY2sgPSBbXTtcclxuZnVuY3Rpb24gcHVzaFdhcm5pbmdDb250ZXh0KHZub2RlKSB7XHJcbiAgICBzdGFjay5wdXNoKHZub2RlKTtcclxufVxyXG5mdW5jdGlvbiBwb3BXYXJuaW5nQ29udGV4dCgpIHtcclxuICAgIHN0YWNrLnBvcCgpO1xyXG59XHJcbmZ1bmN0aW9uIHdhcm4obXNnLCAuLi5hcmdzKSB7XHJcbiAgICAvLyBhdm9pZCBwcm9wcyBmb3JtYXR0aW5nIG9yIHdhcm4gaGFuZGxlciB0cmFja2luZyBkZXBzIHRoYXQgbWlnaHQgYmUgbXV0YXRlZFxyXG4gICAgLy8gZHVyaW5nIHBhdGNoLCBsZWFkaW5nIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cclxuICAgIHBhdXNlVHJhY2tpbmcoKTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gc3RhY2subGVuZ3RoID8gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV0uY29tcG9uZW50IDogbnVsbDtcclxuICAgIGNvbnN0IGFwcFdhcm5IYW5kbGVyID0gaW5zdGFuY2UgJiYgaW5zdGFuY2UuYXBwQ29udGV4dC5jb25maWcud2FybkhhbmRsZXI7XHJcbiAgICBjb25zdCB0cmFjZSA9IGdldENvbXBvbmVudFRyYWNlKCk7XHJcbiAgICBpZiAoYXBwV2FybkhhbmRsZXIpIHtcclxuICAgICAgICBjYWxsV2l0aEVycm9ySGFuZGxpbmcoYXBwV2FybkhhbmRsZXIsIGluc3RhbmNlLCAxMSAvKiBFcnJvckNvZGVzLkFQUF9XQVJOX0hBTkRMRVIgKi8sIFtcclxuICAgICAgICAgICAgbXNnICsgYXJncy5qb2luKCcnKSxcclxuICAgICAgICAgICAgaW5zdGFuY2UgJiYgaW5zdGFuY2UucHJveHksXHJcbiAgICAgICAgICAgIHRyYWNlXHJcbiAgICAgICAgICAgICAgICAubWFwKCh7IHZub2RlIH0pID0+IGBhdCA8JHtmb3JtYXRDb21wb25lbnROYW1lKGluc3RhbmNlLCB2bm9kZS50eXBlKX0+YClcclxuICAgICAgICAgICAgICAgIC5qb2luKCdcXG4nKSxcclxuICAgICAgICAgICAgdHJhY2VcclxuICAgICAgICBdKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHdhcm5BcmdzID0gW2BbVnVlIHdhcm5dOiAke21zZ31gLCAuLi5hcmdzXTtcclxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cclxuICAgICAgICBpZiAodHJhY2UubGVuZ3RoICYmXHJcbiAgICAgICAgICAgIC8vIGF2b2lkIHNwYW1taW5nIGNvbnNvbGUgZHVyaW5nIHRlc3RzXHJcbiAgICAgICAgICAgICFmYWxzZSkge1xyXG4gICAgICAgICAgICB3YXJuQXJncy5wdXNoKGBcXG5gLCAuLi5mb3JtYXRUcmFjZSh0cmFjZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLndhcm4oLi4ud2FybkFyZ3MpO1xyXG4gICAgfVxyXG4gICAgcmVzZXRUcmFja2luZygpO1xyXG59XHJcbmZ1bmN0aW9uIGdldENvbXBvbmVudFRyYWNlKCkge1xyXG4gICAgbGV0IGN1cnJlbnRWTm9kZSA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xyXG4gICAgaWYgKCFjdXJyZW50Vk5vZGUpIHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICAvLyB3ZSBjYW4ndCBqdXN0IHVzZSB0aGUgc3RhY2sgYmVjYXVzZSBpdCB3aWxsIGJlIGluY29tcGxldGUgZHVyaW5nIHVwZGF0ZXNcclxuICAgIC8vIHRoYXQgZGlkIG5vdCBzdGFydCBmcm9tIHRoZSByb290LiBSZS1jb25zdHJ1Y3QgdGhlIHBhcmVudCBjaGFpbiB1c2luZ1xyXG4gICAgLy8gaW5zdGFuY2UgcGFyZW50IHBvaW50ZXJzLlxyXG4gICAgY29uc3Qgbm9ybWFsaXplZFN0YWNrID0gW107XHJcbiAgICB3aGlsZSAoY3VycmVudFZOb2RlKSB7XHJcbiAgICAgICAgY29uc3QgbGFzdCA9IG5vcm1hbGl6ZWRTdGFja1swXTtcclxuICAgICAgICBpZiAobGFzdCAmJiBsYXN0LnZub2RlID09PSBjdXJyZW50Vk5vZGUpIHtcclxuICAgICAgICAgICAgbGFzdC5yZWN1cnNlQ291bnQrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRTdGFjay5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHZub2RlOiBjdXJyZW50Vk5vZGUsXHJcbiAgICAgICAgICAgICAgICByZWN1cnNlQ291bnQ6IDBcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBhcmVudEluc3RhbmNlID0gY3VycmVudFZOb2RlLmNvbXBvbmVudCAmJiBjdXJyZW50Vk5vZGUuY29tcG9uZW50LnBhcmVudDtcclxuICAgICAgICBjdXJyZW50Vk5vZGUgPSBwYXJlbnRJbnN0YW5jZSAmJiBwYXJlbnRJbnN0YW5jZS52bm9kZTtcclxuICAgIH1cclxuICAgIHJldHVybiBub3JtYWxpemVkU3RhY2s7XHJcbn1cclxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cclxuZnVuY3Rpb24gZm9ybWF0VHJhY2UodHJhY2UpIHtcclxuICAgIGNvbnN0IGxvZ3MgPSBbXTtcclxuICAgIHRyYWNlLmZvckVhY2goKGVudHJ5LCBpKSA9PiB7XHJcbiAgICAgICAgbG9ncy5wdXNoKC4uLihpID09PSAwID8gW10gOiBbYFxcbmBdKSwgLi4uZm9ybWF0VHJhY2VFbnRyeShlbnRyeSkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbG9ncztcclxufVxyXG5mdW5jdGlvbiBmb3JtYXRUcmFjZUVudHJ5KHsgdm5vZGUsIHJlY3Vyc2VDb3VudCB9KSB7XHJcbiAgICBjb25zdCBwb3N0Zml4ID0gcmVjdXJzZUNvdW50ID4gMCA/IGAuLi4gKCR7cmVjdXJzZUNvdW50fSByZWN1cnNpdmUgY2FsbHMpYCA6IGBgO1xyXG4gICAgY29uc3QgaXNSb290ID0gdm5vZGUuY29tcG9uZW50ID8gdm5vZGUuY29tcG9uZW50LnBhcmVudCA9PSBudWxsIDogZmFsc2U7XHJcbiAgICBjb25zdCBvcGVuID0gYCBhdCA8JHtmb3JtYXRDb21wb25lbnROYW1lKHZub2RlLmNvbXBvbmVudCwgdm5vZGUudHlwZSwgaXNSb290KX1gO1xyXG4gICAgY29uc3QgY2xvc2UgPSBgPmAgKyBwb3N0Zml4O1xyXG4gICAgcmV0dXJuIHZub2RlLnByb3BzXHJcbiAgICAgICAgPyBbb3BlbiwgLi4uZm9ybWF0UHJvcHModm5vZGUucHJvcHMpLCBjbG9zZV1cclxuICAgICAgICA6IFtvcGVuICsgY2xvc2VdO1xyXG59XHJcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXHJcbmZ1bmN0aW9uIGZvcm1hdFByb3BzKHByb3BzKSB7XHJcbiAgICBjb25zdCByZXMgPSBbXTtcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhwcm9wcyk7XHJcbiAgICBrZXlzLnNsaWNlKDAsIDMpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICByZXMucHVzaCguLi5mb3JtYXRQcm9wKGtleSwgcHJvcHNba2V5XSkpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoa2V5cy5sZW5ndGggPiAzKSB7XHJcbiAgICAgICAgcmVzLnB1c2goYCAuLi5gKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbn1cclxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cclxuZnVuY3Rpb24gZm9ybWF0UHJvcChrZXksIHZhbHVlLCByYXcpIHtcclxuICAgIGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcclxuICAgICAgICB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcclxuICAgICAgICByZXR1cm4gcmF3ID8gdmFsdWUgOiBbYCR7a2V5fT0ke3ZhbHVlfWBdO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fFxyXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8XHJcbiAgICAgICAgdmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiByYXcgPyB2YWx1ZSA6IFtgJHtrZXl9PSR7dmFsdWV9YF07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc1JlZih2YWx1ZSkpIHtcclxuICAgICAgICB2YWx1ZSA9IGZvcm1hdFByb3Aoa2V5LCB0b1Jhdyh2YWx1ZS52YWx1ZSksIHRydWUpO1xyXG4gICAgICAgIHJldHVybiByYXcgPyB2YWx1ZSA6IFtgJHtrZXl9PVJlZjxgLCB2YWx1ZSwgYD5gXTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIFtgJHtrZXl9PWZuJHt2YWx1ZS5uYW1lID8gYDwke3ZhbHVlLm5hbWV9PmAgOiBgYH1gXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhbHVlID0gdG9SYXcodmFsdWUpO1xyXG4gICAgICAgIHJldHVybiByYXcgPyB2YWx1ZSA6IFtgJHtrZXl9PWAsIHZhbHVlXTtcclxuICAgIH1cclxufVxuXG5jb25zdCBFcnJvclR5cGVTdHJpbmdzID0ge1xyXG4gICAgW1wic3BcIiAvKiBMaWZlY3ljbGVIb29rcy5TRVJWRVJfUFJFRkVUQ0ggKi9dOiAnc2VydmVyUHJlZmV0Y2ggaG9vaycsXHJcbiAgICBbXCJiY1wiIC8qIExpZmVjeWNsZUhvb2tzLkJFRk9SRV9DUkVBVEUgKi9dOiAnYmVmb3JlQ3JlYXRlIGhvb2snLFxyXG4gICAgW1wiY1wiIC8qIExpZmVjeWNsZUhvb2tzLkNSRUFURUQgKi9dOiAnY3JlYXRlZCBob29rJyxcclxuICAgIFtcImJtXCIgLyogTGlmZWN5Y2xlSG9va3MuQkVGT1JFX01PVU5UICovXTogJ2JlZm9yZU1vdW50IGhvb2snLFxyXG4gICAgW1wibVwiIC8qIExpZmVjeWNsZUhvb2tzLk1PVU5URUQgKi9dOiAnbW91bnRlZCBob29rJyxcclxuICAgIFtcImJ1XCIgLyogTGlmZWN5Y2xlSG9va3MuQkVGT1JFX1VQREFURSAqL106ICdiZWZvcmVVcGRhdGUgaG9vaycsXHJcbiAgICBbXCJ1XCIgLyogTGlmZWN5Y2xlSG9va3MuVVBEQVRFRCAqL106ICd1cGRhdGVkJyxcclxuICAgIFtcImJ1bVwiIC8qIExpZmVjeWNsZUhvb2tzLkJFRk9SRV9VTk1PVU5UICovXTogJ2JlZm9yZVVubW91bnQgaG9vaycsXHJcbiAgICBbXCJ1bVwiIC8qIExpZmVjeWNsZUhvb2tzLlVOTU9VTlRFRCAqL106ICd1bm1vdW50ZWQgaG9vaycsXHJcbiAgICBbXCJhXCIgLyogTGlmZWN5Y2xlSG9va3MuQUNUSVZBVEVEICovXTogJ2FjdGl2YXRlZCBob29rJyxcclxuICAgIFtcImRhXCIgLyogTGlmZWN5Y2xlSG9va3MuREVBQ1RJVkFURUQgKi9dOiAnZGVhY3RpdmF0ZWQgaG9vaycsXHJcbiAgICBbXCJlY1wiIC8qIExpZmVjeWNsZUhvb2tzLkVSUk9SX0NBUFRVUkVEICovXTogJ2Vycm9yQ2FwdHVyZWQgaG9vaycsXHJcbiAgICBbXCJydGNcIiAvKiBMaWZlY3ljbGVIb29rcy5SRU5ERVJfVFJBQ0tFRCAqL106ICdyZW5kZXJUcmFja2VkIGhvb2snLFxyXG4gICAgW1wicnRnXCIgLyogTGlmZWN5Y2xlSG9va3MuUkVOREVSX1RSSUdHRVJFRCAqL106ICdyZW5kZXJUcmlnZ2VyZWQgaG9vaycsXHJcbiAgICBbMCAvKiBFcnJvckNvZGVzLlNFVFVQX0ZVTkNUSU9OICovXTogJ3NldHVwIGZ1bmN0aW9uJyxcclxuICAgIFsxIC8qIEVycm9yQ29kZXMuUkVOREVSX0ZVTkNUSU9OICovXTogJ3JlbmRlciBmdW5jdGlvbicsXHJcbiAgICBbMiAvKiBFcnJvckNvZGVzLldBVENIX0dFVFRFUiAqL106ICd3YXRjaGVyIGdldHRlcicsXHJcbiAgICBbMyAvKiBFcnJvckNvZGVzLldBVENIX0NBTExCQUNLICovXTogJ3dhdGNoZXIgY2FsbGJhY2snLFxyXG4gICAgWzQgLyogRXJyb3JDb2Rlcy5XQVRDSF9DTEVBTlVQICovXTogJ3dhdGNoZXIgY2xlYW51cCBmdW5jdGlvbicsXHJcbiAgICBbNSAvKiBFcnJvckNvZGVzLk5BVElWRV9FVkVOVF9IQU5ETEVSICovXTogJ25hdGl2ZSBldmVudCBoYW5kbGVyJyxcclxuICAgIFs2IC8qIEVycm9yQ29kZXMuQ09NUE9ORU5UX0VWRU5UX0hBTkRMRVIgKi9dOiAnY29tcG9uZW50IGV2ZW50IGhhbmRsZXInLFxyXG4gICAgWzcgLyogRXJyb3JDb2Rlcy5WTk9ERV9IT09LICovXTogJ3Zub2RlIGhvb2snLFxyXG4gICAgWzggLyogRXJyb3JDb2Rlcy5ESVJFQ1RJVkVfSE9PSyAqL106ICdkaXJlY3RpdmUgaG9vaycsXHJcbiAgICBbOSAvKiBFcnJvckNvZGVzLlRSQU5TSVRJT05fSE9PSyAqL106ICd0cmFuc2l0aW9uIGhvb2snLFxyXG4gICAgWzEwIC8qIEVycm9yQ29kZXMuQVBQX0VSUk9SX0hBTkRMRVIgKi9dOiAnYXBwIGVycm9ySGFuZGxlcicsXHJcbiAgICBbMTEgLyogRXJyb3JDb2Rlcy5BUFBfV0FSTl9IQU5ETEVSICovXTogJ2FwcCB3YXJuSGFuZGxlcicsXHJcbiAgICBbMTIgLyogRXJyb3JDb2Rlcy5GVU5DVElPTl9SRUYgKi9dOiAncmVmIGZ1bmN0aW9uJyxcclxuICAgIFsxMyAvKiBFcnJvckNvZGVzLkFTWU5DX0NPTVBPTkVOVF9MT0FERVIgKi9dOiAnYXN5bmMgY29tcG9uZW50IGxvYWRlcicsXHJcbiAgICBbMTQgLyogRXJyb3JDb2Rlcy5TQ0hFRFVMRVIgKi9dOiAnc2NoZWR1bGVyIGZsdXNoLiBUaGlzIGlzIGxpa2VseSBhIFZ1ZSBpbnRlcm5hbHMgYnVnLiAnICtcclxuICAgICAgICAnUGxlYXNlIG9wZW4gYW4gaXNzdWUgYXQgaHR0cHM6Ly9uZXctaXNzdWUudnVlanMub3JnLz9yZXBvPXZ1ZWpzL2NvcmUnXHJcbn07XHJcbmZ1bmN0aW9uIGNhbGxXaXRoRXJyb3JIYW5kbGluZyhmbiwgaW5zdGFuY2UsIHR5cGUsIGFyZ3MpIHtcclxuICAgIGxldCByZXM7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHJlcyA9IGFyZ3MgPyBmbiguLi5hcmdzKSA6IGZuKCk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyLCBpbnN0YW5jZSwgdHlwZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG59XHJcbmZ1bmN0aW9uIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGZuLCBpbnN0YW5jZSwgdHlwZSwgYXJncykge1xyXG4gICAgaWYgKGlzRnVuY3Rpb24oZm4pKSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gY2FsbFdpdGhFcnJvckhhbmRsaW5nKGZuLCBpbnN0YW5jZSwgdHlwZSwgYXJncyk7XHJcbiAgICAgICAgaWYgKHJlcyAmJiBpc1Byb21pc2UocmVzKSkge1xyXG4gICAgICAgICAgICByZXMuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKGVyciwgaW5zdGFuY2UsIHR5cGUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbHVlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhbHVlcy5wdXNoKGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGZuW2ldLCBpbnN0YW5jZSwgdHlwZSwgYXJncykpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcztcclxufVxyXG5mdW5jdGlvbiBoYW5kbGVFcnJvcihlcnIsIGluc3RhbmNlLCB0eXBlLCB0aHJvd0luRGV2ID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgY29udGV4dFZOb2RlID0gaW5zdGFuY2UgPyBpbnN0YW5jZS52bm9kZSA6IG51bGw7XHJcbiAgICBpZiAoaW5zdGFuY2UpIHtcclxuICAgICAgICBsZXQgY3VyID0gaW5zdGFuY2UucGFyZW50O1xyXG4gICAgICAgIC8vIHRoZSBleHBvc2VkIGluc3RhbmNlIGlzIHRoZSByZW5kZXIgcHJveHkgdG8ga2VlcCBpdCBjb25zaXN0ZW50IHdpdGggMi54XHJcbiAgICAgICAgY29uc3QgZXhwb3NlZEluc3RhbmNlID0gaW5zdGFuY2UucHJveHk7XHJcbiAgICAgICAgLy8gaW4gcHJvZHVjdGlvbiB0aGUgaG9vayByZWNlaXZlcyBvbmx5IHRoZSBlcnJvciBjb2RlXHJcbiAgICAgICAgY29uc3QgZXJyb3JJbmZvID0gKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gRXJyb3JUeXBlU3RyaW5nc1t0eXBlXSA6IHR5cGU7XHJcbiAgICAgICAgd2hpbGUgKGN1cikge1xyXG4gICAgICAgICAgICBjb25zdCBlcnJvckNhcHR1cmVkSG9va3MgPSBjdXIuZWM7XHJcbiAgICAgICAgICAgIGlmIChlcnJvckNhcHR1cmVkSG9va3MpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXJyb3JDYXB0dXJlZEhvb2tzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yQ2FwdHVyZWRIb29rc1tpXShlcnIsIGV4cG9zZWRJbnN0YW5jZSwgZXJyb3JJbmZvKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjdXIgPSBjdXIucGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBhcHAtbGV2ZWwgaGFuZGxpbmdcclxuICAgICAgICBjb25zdCBhcHBFcnJvckhhbmRsZXIgPSBpbnN0YW5jZS5hcHBDb250ZXh0LmNvbmZpZy5lcnJvckhhbmRsZXI7XHJcbiAgICAgICAgaWYgKGFwcEVycm9ySGFuZGxlcikge1xyXG4gICAgICAgICAgICBjYWxsV2l0aEVycm9ySGFuZGxpbmcoYXBwRXJyb3JIYW5kbGVyLCBudWxsLCAxMCAvKiBFcnJvckNvZGVzLkFQUF9FUlJPUl9IQU5ETEVSICovLCBbZXJyLCBleHBvc2VkSW5zdGFuY2UsIGVycm9ySW5mb10pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbG9nRXJyb3IoZXJyLCB0eXBlLCBjb250ZXh0Vk5vZGUsIHRocm93SW5EZXYpO1xyXG59XHJcbmZ1bmN0aW9uIGxvZ0Vycm9yKGVyciwgdHlwZSwgY29udGV4dFZOb2RlLCB0aHJvd0luRGV2ID0gdHJ1ZSkge1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgIGNvbnN0IGluZm8gPSBFcnJvclR5cGVTdHJpbmdzW3R5cGVdO1xyXG4gICAgICAgIGlmIChjb250ZXh0Vk5vZGUpIHtcclxuICAgICAgICAgICAgcHVzaFdhcm5pbmdDb250ZXh0KGNvbnRleHRWTm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHdhcm4oYFVuaGFuZGxlZCBlcnJvciR7aW5mbyA/IGAgZHVyaW5nIGV4ZWN1dGlvbiBvZiAke2luZm99YCA6IGBgfWApO1xyXG4gICAgICAgIGlmIChjb250ZXh0Vk5vZGUpIHtcclxuICAgICAgICAgICAgcG9wV2FybmluZ0NvbnRleHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY3Jhc2ggaW4gZGV2IGJ5IGRlZmF1bHQgc28gaXQncyBtb3JlIG5vdGljZWFibGVcclxuICAgICAgICBpZiAodGhyb3dJbkRldikge1xyXG4gICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gcmVjb3ZlciBpbiBwcm9kIHRvIHJlZHVjZSB0aGUgaW1wYWN0IG9uIGVuZC11c2VyXHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgfVxyXG59XG5cbmxldCBpc0ZsdXNoaW5nID0gZmFsc2U7XHJcbmxldCBpc0ZsdXNoUGVuZGluZyA9IGZhbHNlO1xyXG5jb25zdCBxdWV1ZSA9IFtdO1xyXG5sZXQgZmx1c2hJbmRleCA9IDA7XHJcbmNvbnN0IHBlbmRpbmdQb3N0Rmx1c2hDYnMgPSBbXTtcclxubGV0IGFjdGl2ZVBvc3RGbHVzaENicyA9IG51bGw7XHJcbmxldCBwb3N0Rmx1c2hJbmRleCA9IDA7XHJcbmNvbnN0IHJlc29sdmVkUHJvbWlzZSA9IC8qI19fUFVSRV9fKi8gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbmxldCBjdXJyZW50Rmx1c2hQcm9taXNlID0gbnVsbDtcclxuY29uc3QgUkVDVVJTSU9OX0xJTUlUID0gMTAwO1xyXG5mdW5jdGlvbiBuZXh0VGljayhmbikge1xyXG4gICAgY29uc3QgcCA9IGN1cnJlbnRGbHVzaFByb21pc2UgfHwgcmVzb2x2ZWRQcm9taXNlO1xyXG4gICAgcmV0dXJuIGZuID8gcC50aGVuKHRoaXMgPyBmbi5iaW5kKHRoaXMpIDogZm4pIDogcDtcclxufVxyXG4vLyAjMjc2OFxyXG4vLyBVc2UgYmluYXJ5LXNlYXJjaCB0byBmaW5kIGEgc3VpdGFibGUgcG9zaXRpb24gaW4gdGhlIHF1ZXVlLFxyXG4vLyBzbyB0aGF0IHRoZSBxdWV1ZSBtYWludGFpbnMgdGhlIGluY3JlYXNpbmcgb3JkZXIgb2Ygam9iJ3MgaWQsXHJcbi8vIHdoaWNoIGNhbiBwcmV2ZW50IHRoZSBqb2IgZnJvbSBiZWluZyBza2lwcGVkIGFuZCBhbHNvIGNhbiBhdm9pZCByZXBlYXRlZCBwYXRjaGluZy5cclxuZnVuY3Rpb24gZmluZEluc2VydGlvbkluZGV4KGlkKSB7XHJcbiAgICAvLyB0aGUgc3RhcnQgaW5kZXggc2hvdWxkIGJlIGBmbHVzaEluZGV4ICsgMWBcclxuICAgIGxldCBzdGFydCA9IGZsdXNoSW5kZXggKyAxO1xyXG4gICAgbGV0IGVuZCA9IHF1ZXVlLmxlbmd0aDtcclxuICAgIHdoaWxlIChzdGFydCA8IGVuZCkge1xyXG4gICAgICAgIGNvbnN0IG1pZGRsZSA9IChzdGFydCArIGVuZCkgPj4+IDE7XHJcbiAgICAgICAgY29uc3QgbWlkZGxlSm9iSWQgPSBnZXRJZChxdWV1ZVttaWRkbGVdKTtcclxuICAgICAgICBtaWRkbGVKb2JJZCA8IGlkID8gKHN0YXJ0ID0gbWlkZGxlICsgMSkgOiAoZW5kID0gbWlkZGxlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGFydDtcclxufVxyXG5mdW5jdGlvbiBxdWV1ZUpvYihqb2IpIHtcclxuICAgIC8vIHRoZSBkZWR1cGUgc2VhcmNoIHVzZXMgdGhlIHN0YXJ0SW5kZXggYXJndW1lbnQgb2YgQXJyYXkuaW5jbHVkZXMoKVxyXG4gICAgLy8gYnkgZGVmYXVsdCB0aGUgc2VhcmNoIGluZGV4IGluY2x1ZGVzIHRoZSBjdXJyZW50IGpvYiB0aGF0IGlzIGJlaW5nIHJ1blxyXG4gICAgLy8gc28gaXQgY2Fubm90IHJlY3Vyc2l2ZWx5IHRyaWdnZXIgaXRzZWxmIGFnYWluLlxyXG4gICAgLy8gaWYgdGhlIGpvYiBpcyBhIHdhdGNoKCkgY2FsbGJhY2ssIHRoZSBzZWFyY2ggd2lsbCBzdGFydCB3aXRoIGEgKzEgaW5kZXggdG9cclxuICAgIC8vIGFsbG93IGl0IHJlY3Vyc2l2ZWx5IHRyaWdnZXIgaXRzZWxmIC0gaXQgaXMgdGhlIHVzZXIncyByZXNwb25zaWJpbGl0eSB0b1xyXG4gICAgLy8gZW5zdXJlIGl0IGRvZXNuJ3QgZW5kIHVwIGluIGFuIGluZmluaXRlIGxvb3AuXHJcbiAgICBpZiAoIXF1ZXVlLmxlbmd0aCB8fFxyXG4gICAgICAgICFxdWV1ZS5pbmNsdWRlcyhqb2IsIGlzRmx1c2hpbmcgJiYgam9iLmFsbG93UmVjdXJzZSA/IGZsdXNoSW5kZXggKyAxIDogZmx1c2hJbmRleCkpIHtcclxuICAgICAgICBpZiAoam9iLmlkID09IG51bGwpIHtcclxuICAgICAgICAgICAgcXVldWUucHVzaChqb2IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcXVldWUuc3BsaWNlKGZpbmRJbnNlcnRpb25JbmRleChqb2IuaWQpLCAwLCBqb2IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBxdWV1ZUZsdXNoKCk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gcXVldWVGbHVzaCgpIHtcclxuICAgIGlmICghaXNGbHVzaGluZyAmJiAhaXNGbHVzaFBlbmRpbmcpIHtcclxuICAgICAgICBpc0ZsdXNoUGVuZGluZyA9IHRydWU7XHJcbiAgICAgICAgY3VycmVudEZsdXNoUHJvbWlzZSA9IHJlc29sdmVkUHJvbWlzZS50aGVuKGZsdXNoSm9icyk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gaW52YWxpZGF0ZUpvYihqb2IpIHtcclxuICAgIGNvbnN0IGkgPSBxdWV1ZS5pbmRleE9mKGpvYik7XHJcbiAgICBpZiAoaSA+IGZsdXNoSW5kZXgpIHtcclxuICAgICAgICBxdWV1ZS5zcGxpY2UoaSwgMSk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gcXVldWVQb3N0Rmx1c2hDYihjYikge1xyXG4gICAgaWYgKCFpc0FycmF5KGNiKSkge1xyXG4gICAgICAgIGlmICghYWN0aXZlUG9zdEZsdXNoQ2JzIHx8XHJcbiAgICAgICAgICAgICFhY3RpdmVQb3N0Rmx1c2hDYnMuaW5jbHVkZXMoY2IsIGNiLmFsbG93UmVjdXJzZSA/IHBvc3RGbHVzaEluZGV4ICsgMSA6IHBvc3RGbHVzaEluZGV4KSkge1xyXG4gICAgICAgICAgICBwZW5kaW5nUG9zdEZsdXNoQ2JzLnB1c2goY2IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIGlmIGNiIGlzIGFuIGFycmF5LCBpdCBpcyBhIGNvbXBvbmVudCBsaWZlY3ljbGUgaG9vayB3aGljaCBjYW4gb25seSBiZVxyXG4gICAgICAgIC8vIHRyaWdnZXJlZCBieSBhIGpvYiwgd2hpY2ggaXMgYWxyZWFkeSBkZWR1cGVkIGluIHRoZSBtYWluIHF1ZXVlLCBzb1xyXG4gICAgICAgIC8vIHdlIGNhbiBza2lwIGR1cGxpY2F0ZSBjaGVjayBoZXJlIHRvIGltcHJvdmUgcGVyZlxyXG4gICAgICAgIHBlbmRpbmdQb3N0Rmx1c2hDYnMucHVzaCguLi5jYik7XHJcbiAgICB9XHJcbiAgICBxdWV1ZUZsdXNoKCk7XHJcbn1cclxuZnVuY3Rpb24gZmx1c2hQcmVGbHVzaENicyhzZWVuLCBpID0gZmx1c2hJbmRleCkge1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgIHNlZW4gPSBzZWVuIHx8IG5ldyBNYXAoKTtcclxuICAgIH1cclxuICAgIGZvciAoOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBjYiA9IHF1ZXVlW2ldO1xyXG4gICAgICAgIGlmIChjYiAmJiBjYi5wcmUpIHtcclxuICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBjaGVja1JlY3Vyc2l2ZVVwZGF0ZXMoc2VlbiwgY2IpKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBxdWV1ZS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgY2IoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gZmx1c2hQb3N0Rmx1c2hDYnMoc2Vlbikge1xyXG4gICAgaWYgKHBlbmRpbmdQb3N0Rmx1c2hDYnMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgZGVkdXBlZCA9IFsuLi5uZXcgU2V0KHBlbmRpbmdQb3N0Rmx1c2hDYnMpXTtcclxuICAgICAgICBwZW5kaW5nUG9zdEZsdXNoQ2JzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgLy8gIzE5NDcgYWxyZWFkeSBoYXMgYWN0aXZlIHF1ZXVlLCBuZXN0ZWQgZmx1c2hQb3N0Rmx1c2hDYnMgY2FsbFxyXG4gICAgICAgIGlmIChhY3RpdmVQb3N0Rmx1c2hDYnMpIHtcclxuICAgICAgICAgICAgYWN0aXZlUG9zdEZsdXNoQ2JzLnB1c2goLi4uZGVkdXBlZCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgYWN0aXZlUG9zdEZsdXNoQ2JzID0gZGVkdXBlZDtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgIHNlZW4gPSBzZWVuIHx8IG5ldyBNYXAoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYWN0aXZlUG9zdEZsdXNoQ2JzLnNvcnQoKGEsIGIpID0+IGdldElkKGEpIC0gZ2V0SWQoYikpO1xyXG4gICAgICAgIGZvciAocG9zdEZsdXNoSW5kZXggPSAwOyBwb3N0Rmx1c2hJbmRleCA8IGFjdGl2ZVBvc3RGbHVzaENicy5sZW5ndGg7IHBvc3RGbHVzaEluZGV4KyspIHtcclxuICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICAgICAgY2hlY2tSZWN1cnNpdmVVcGRhdGVzKHNlZW4sIGFjdGl2ZVBvc3RGbHVzaENic1twb3N0Rmx1c2hJbmRleF0pKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhY3RpdmVQb3N0Rmx1c2hDYnNbcG9zdEZsdXNoSW5kZXhdKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFjdGl2ZVBvc3RGbHVzaENicyA9IG51bGw7XHJcbiAgICAgICAgcG9zdEZsdXNoSW5kZXggPSAwO1xyXG4gICAgfVxyXG59XHJcbmNvbnN0IGdldElkID0gKGpvYikgPT4gam9iLmlkID09IG51bGwgPyBJbmZpbml0eSA6IGpvYi5pZDtcclxuY29uc3QgY29tcGFyYXRvciA9IChhLCBiKSA9PiB7XHJcbiAgICBjb25zdCBkaWZmID0gZ2V0SWQoYSkgLSBnZXRJZChiKTtcclxuICAgIGlmIChkaWZmID09PSAwKSB7XHJcbiAgICAgICAgaWYgKGEucHJlICYmICFiLnByZSlcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIGlmIChiLnByZSAmJiAhYS5wcmUpXHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRpZmY7XHJcbn07XHJcbmZ1bmN0aW9uIGZsdXNoSm9icyhzZWVuKSB7XHJcbiAgICBpc0ZsdXNoUGVuZGluZyA9IGZhbHNlO1xyXG4gICAgaXNGbHVzaGluZyA9IHRydWU7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgc2VlbiA9IHNlZW4gfHwgbmV3IE1hcCgpO1xyXG4gICAgfVxyXG4gICAgLy8gU29ydCBxdWV1ZSBiZWZvcmUgZmx1c2guXHJcbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdDpcclxuICAgIC8vIDEuIENvbXBvbmVudHMgYXJlIHVwZGF0ZWQgZnJvbSBwYXJlbnQgdG8gY2hpbGQuIChiZWNhdXNlIHBhcmVudCBpcyBhbHdheXNcclxuICAgIC8vICAgIGNyZWF0ZWQgYmVmb3JlIHRoZSBjaGlsZCBzbyBpdHMgcmVuZGVyIGVmZmVjdCB3aWxsIGhhdmUgc21hbGxlclxyXG4gICAgLy8gICAgcHJpb3JpdHkgbnVtYmVyKVxyXG4gICAgLy8gMi4gSWYgYSBjb21wb25lbnQgaXMgdW5tb3VudGVkIGR1cmluZyBhIHBhcmVudCBjb21wb25lbnQncyB1cGRhdGUsXHJcbiAgICAvLyAgICBpdHMgdXBkYXRlIGNhbiBiZSBza2lwcGVkLlxyXG4gICAgcXVldWUuc29ydChjb21wYXJhdG9yKTtcclxuICAgIC8vIGNvbmRpdGlvbmFsIHVzYWdlIG9mIGNoZWNrUmVjdXJzaXZlVXBkYXRlIG11c3QgYmUgZGV0ZXJtaW5lZCBvdXQgb2ZcclxuICAgIC8vIHRyeSAuLi4gY2F0Y2ggYmxvY2sgc2luY2UgUm9sbHVwIGJ5IGRlZmF1bHQgZGUtb3B0aW1pemVzIHRyZWVzaGFraW5nXHJcbiAgICAvLyBpbnNpZGUgdHJ5LWNhdGNoLiBUaGlzIGNhbiBsZWF2ZSBhbGwgd2FybmluZyBjb2RlIHVuc2hha2VkLiBBbHRob3VnaFxyXG4gICAgLy8gdGhleSB3b3VsZCBnZXQgZXZlbnR1YWxseSBzaGFrZW4gYnkgYSBtaW5pZmllciBsaWtlIHRlcnNlciwgc29tZSBtaW5pZmllcnNcclxuICAgIC8vIHdvdWxkIGZhaWwgdG8gZG8gdGhhdCAoZS5nLiBodHRwczovL2dpdGh1Yi5jb20vZXZhbncvZXNidWlsZC9pc3N1ZXMvMTYxMClcclxuICAgIGNvbnN0IGNoZWNrID0gKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXHJcbiAgICAgICAgPyAoam9iKSA9PiBjaGVja1JlY3Vyc2l2ZVVwZGF0ZXMoc2Vlbiwgam9iKVxyXG4gICAgICAgIDogTk9PUDtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgZm9yIChmbHVzaEluZGV4ID0gMDsgZmx1c2hJbmRleCA8IHF1ZXVlLmxlbmd0aDsgZmx1c2hJbmRleCsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGpvYiA9IHF1ZXVlW2ZsdXNoSW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoam9iICYmIGpvYi5hY3RpdmUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGNoZWNrKGpvYikpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGBydW5uaW5nOmAsIGpvYi5pZClcclxuICAgICAgICAgICAgICAgIGNhbGxXaXRoRXJyb3JIYW5kbGluZyhqb2IsIG51bGwsIDE0IC8qIEVycm9yQ29kZXMuU0NIRURVTEVSICovKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIGZsdXNoSW5kZXggPSAwO1xyXG4gICAgICAgIHF1ZXVlLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZmx1c2hQb3N0Rmx1c2hDYnMoc2Vlbik7XHJcbiAgICAgICAgaXNGbHVzaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGN1cnJlbnRGbHVzaFByb21pc2UgPSBudWxsO1xyXG4gICAgICAgIC8vIHNvbWUgcG9zdEZsdXNoQ2IgcXVldWVkIGpvYnMhXHJcbiAgICAgICAgLy8ga2VlcCBmbHVzaGluZyB1bnRpbCBpdCBkcmFpbnMuXHJcbiAgICAgICAgaWYgKHF1ZXVlLmxlbmd0aCB8fCBwZW5kaW5nUG9zdEZsdXNoQ2JzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBmbHVzaEpvYnMoc2Vlbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGNoZWNrUmVjdXJzaXZlVXBkYXRlcyhzZWVuLCBmbikge1xyXG4gICAgaWYgKCFzZWVuLmhhcyhmbikpIHtcclxuICAgICAgICBzZWVuLnNldChmbiwgMSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBjb3VudCA9IHNlZW4uZ2V0KGZuKTtcclxuICAgICAgICBpZiAoY291bnQgPiBSRUNVUlNJT05fTElNSVQpIHtcclxuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBmbi5vd25lckluc3RhbmNlO1xyXG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnROYW1lID0gaW5zdGFuY2UgJiYgZ2V0Q29tcG9uZW50TmFtZShpbnN0YW5jZS50eXBlKTtcclxuICAgICAgICAgICAgd2FybihgTWF4aW11bSByZWN1cnNpdmUgdXBkYXRlcyBleGNlZWRlZCR7Y29tcG9uZW50TmFtZSA/IGAgaW4gY29tcG9uZW50IDwke2NvbXBvbmVudE5hbWV9PmAgOiBgYH0uIGAgK1xyXG4gICAgICAgICAgICAgICAgYFRoaXMgbWVhbnMgeW91IGhhdmUgYSByZWFjdGl2ZSBlZmZlY3QgdGhhdCBpcyBtdXRhdGluZyBpdHMgb3duIGAgK1xyXG4gICAgICAgICAgICAgICAgYGRlcGVuZGVuY2llcyBhbmQgdGh1cyByZWN1cnNpdmVseSB0cmlnZ2VyaW5nIGl0c2VsZi4gUG9zc2libGUgc291cmNlcyBgICtcclxuICAgICAgICAgICAgICAgIGBpbmNsdWRlIGNvbXBvbmVudCB0ZW1wbGF0ZSwgcmVuZGVyIGZ1bmN0aW9uLCB1cGRhdGVkIGhvb2sgb3IgYCArXHJcbiAgICAgICAgICAgICAgICBgd2F0Y2hlciBzb3VyY2UgZnVuY3Rpb24uYCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc2Vlbi5zZXQoZm4sIGNvdW50ICsgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAqL1xyXG5sZXQgaXNIbXJVcGRhdGluZyA9IGZhbHNlO1xyXG5jb25zdCBobXJEaXJ0eUNvbXBvbmVudHMgPSBuZXcgU2V0KCk7XHJcbi8vIEV4cG9zZSB0aGUgSE1SIHJ1bnRpbWUgb24gdGhlIGdsb2JhbCBvYmplY3RcclxuLy8gVGhpcyBtYWtlcyBpdCBlbnRpcmVseSB0cmVlLXNoYWthYmxlIHdpdGhvdXQgcG9sbHV0aW5nIHRoZSBleHBvcnRzIGFuZCBtYWtlc1xyXG4vLyBpdCBlYXNpZXIgdG8gYmUgdXNlZCBpbiB0b29saW5ncyBsaWtlIHZ1ZS1sb2FkZXJcclxuLy8gTm90ZTogZm9yIGEgY29tcG9uZW50IHRvIGJlIGVsaWdpYmxlIGZvciBITVIgaXQgYWxzbyBuZWVkcyB0aGUgX19obXJJZCBvcHRpb25cclxuLy8gdG8gYmUgc2V0IHNvIHRoYXQgaXRzIGluc3RhbmNlcyBjYW4gYmUgcmVnaXN0ZXJlZCAvIHJlbW92ZWQuXHJcbmlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgIGdldEdsb2JhbFRoaXMoKS5fX1ZVRV9ITVJfUlVOVElNRV9fID0ge1xyXG4gICAgICAgIGNyZWF0ZVJlY29yZDogdHJ5V3JhcChjcmVhdGVSZWNvcmQpLFxyXG4gICAgICAgIHJlcmVuZGVyOiB0cnlXcmFwKHJlcmVuZGVyKSxcclxuICAgICAgICByZWxvYWQ6IHRyeVdyYXAocmVsb2FkKVxyXG4gICAgfTtcclxufVxyXG5jb25zdCBtYXAgPSBuZXcgTWFwKCk7XHJcbmZ1bmN0aW9uIHJlZ2lzdGVySE1SKGluc3RhbmNlKSB7XHJcbiAgICBjb25zdCBpZCA9IGluc3RhbmNlLnR5cGUuX19obXJJZDtcclxuICAgIGxldCByZWNvcmQgPSBtYXAuZ2V0KGlkKTtcclxuICAgIGlmICghcmVjb3JkKSB7XHJcbiAgICAgICAgY3JlYXRlUmVjb3JkKGlkLCBpbnN0YW5jZS50eXBlKTtcclxuICAgICAgICByZWNvcmQgPSBtYXAuZ2V0KGlkKTtcclxuICAgIH1cclxuICAgIHJlY29yZC5pbnN0YW5jZXMuYWRkKGluc3RhbmNlKTtcclxufVxyXG5mdW5jdGlvbiB1bnJlZ2lzdGVySE1SKGluc3RhbmNlKSB7XHJcbiAgICBtYXAuZ2V0KGluc3RhbmNlLnR5cGUuX19obXJJZCkuaW5zdGFuY2VzLmRlbGV0ZShpbnN0YW5jZSk7XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlUmVjb3JkKGlkLCBpbml0aWFsRGVmKSB7XHJcbiAgICBpZiAobWFwLmhhcyhpZCkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBtYXAuc2V0KGlkLCB7XHJcbiAgICAgICAgaW5pdGlhbERlZjogbm9ybWFsaXplQ2xhc3NDb21wb25lbnQoaW5pdGlhbERlZiksXHJcbiAgICAgICAgaW5zdGFuY2VzOiBuZXcgU2V0KClcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuZnVuY3Rpb24gbm9ybWFsaXplQ2xhc3NDb21wb25lbnQoY29tcG9uZW50KSB7XHJcbiAgICByZXR1cm4gaXNDbGFzc0NvbXBvbmVudChjb21wb25lbnQpID8gY29tcG9uZW50Ll9fdmNjT3B0cyA6IGNvbXBvbmVudDtcclxufVxyXG5mdW5jdGlvbiByZXJlbmRlcihpZCwgbmV3UmVuZGVyKSB7XHJcbiAgICBjb25zdCByZWNvcmQgPSBtYXAuZ2V0KGlkKTtcclxuICAgIGlmICghcmVjb3JkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gdXBkYXRlIGluaXRpYWwgcmVjb3JkIChmb3Igbm90LXlldC1yZW5kZXJlZCBjb21wb25lbnQpXHJcbiAgICByZWNvcmQuaW5pdGlhbERlZi5yZW5kZXIgPSBuZXdSZW5kZXI7XHJcbiAgICBbLi4ucmVjb3JkLmluc3RhbmNlc10uZm9yRWFjaChpbnN0YW5jZSA9PiB7XHJcbiAgICAgICAgaWYgKG5ld1JlbmRlcikge1xyXG4gICAgICAgICAgICBpbnN0YW5jZS5yZW5kZXIgPSBuZXdSZW5kZXI7XHJcbiAgICAgICAgICAgIG5vcm1hbGl6ZUNsYXNzQ29tcG9uZW50KGluc3RhbmNlLnR5cGUpLnJlbmRlciA9IG5ld1JlbmRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW5zdGFuY2UucmVuZGVyQ2FjaGUgPSBbXTtcclxuICAgICAgICAvLyB0aGlzIGZsYWcgZm9yY2VzIGNoaWxkIGNvbXBvbmVudHMgd2l0aCBzbG90IGNvbnRlbnQgdG8gdXBkYXRlXHJcbiAgICAgICAgaXNIbXJVcGRhdGluZyA9IHRydWU7XHJcbiAgICAgICAgaW5zdGFuY2UudXBkYXRlKCk7XHJcbiAgICAgICAgaXNIbXJVcGRhdGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbn1cclxuZnVuY3Rpb24gcmVsb2FkKGlkLCBuZXdDb21wKSB7XHJcbiAgICBjb25zdCByZWNvcmQgPSBtYXAuZ2V0KGlkKTtcclxuICAgIGlmICghcmVjb3JkKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgIG5ld0NvbXAgPSBub3JtYWxpemVDbGFzc0NvbXBvbmVudChuZXdDb21wKTtcclxuICAgIC8vIHVwZGF0ZSBpbml0aWFsIGRlZiAoZm9yIG5vdC15ZXQtcmVuZGVyZWQgY29tcG9uZW50cylcclxuICAgIHVwZGF0ZUNvbXBvbmVudERlZihyZWNvcmQuaW5pdGlhbERlZiwgbmV3Q29tcCk7XHJcbiAgICAvLyBjcmVhdGUgYSBzbmFwc2hvdCB3aGljaCBhdm9pZHMgdGhlIHNldCBiZWluZyBtdXRhdGVkIGR1cmluZyB1cGRhdGVzXHJcbiAgICBjb25zdCBpbnN0YW5jZXMgPSBbLi4ucmVjb3JkLmluc3RhbmNlc107XHJcbiAgICBmb3IgKGNvbnN0IGluc3RhbmNlIG9mIGluc3RhbmNlcykge1xyXG4gICAgICAgIGNvbnN0IG9sZENvbXAgPSBub3JtYWxpemVDbGFzc0NvbXBvbmVudChpbnN0YW5jZS50eXBlKTtcclxuICAgICAgICBpZiAoIWhtckRpcnR5Q29tcG9uZW50cy5oYXMob2xkQ29tcCkpIHtcclxuICAgICAgICAgICAgLy8gMS4gVXBkYXRlIGV4aXN0aW5nIGNvbXAgZGVmaW5pdGlvbiB0byBtYXRjaCBuZXcgb25lXHJcbiAgICAgICAgICAgIGlmIChvbGRDb21wICE9PSByZWNvcmQuaW5pdGlhbERlZikge1xyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGVmKG9sZENvbXAsIG5ld0NvbXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIDIuIG1hcmsgZGVmaW5pdGlvbiBkaXJ0eS4gVGhpcyBmb3JjZXMgdGhlIHJlbmRlcmVyIHRvIHJlcGxhY2UgdGhlXHJcbiAgICAgICAgICAgIC8vIGNvbXBvbmVudCBvbiBwYXRjaC5cclxuICAgICAgICAgICAgaG1yRGlydHlDb21wb25lbnRzLmFkZChvbGRDb21wKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gMy4gaW52YWxpZGF0ZSBvcHRpb25zIHJlc29sdXRpb24gY2FjaGVcclxuICAgICAgICBpbnN0YW5jZS5hcHBDb250ZXh0Lm9wdGlvbnNDYWNoZS5kZWxldGUoaW5zdGFuY2UudHlwZSk7XHJcbiAgICAgICAgLy8gNC4gYWN0dWFsbHkgdXBkYXRlXHJcbiAgICAgICAgaWYgKGluc3RhbmNlLmNlUmVsb2FkKSB7XHJcbiAgICAgICAgICAgIC8vIGN1c3RvbSBlbGVtZW50XHJcbiAgICAgICAgICAgIGhtckRpcnR5Q29tcG9uZW50cy5hZGQob2xkQ29tcCk7XHJcbiAgICAgICAgICAgIGluc3RhbmNlLmNlUmVsb2FkKG5ld0NvbXAuc3R5bGVzKTtcclxuICAgICAgICAgICAgaG1yRGlydHlDb21wb25lbnRzLmRlbGV0ZShvbGRDb21wKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5zdGFuY2UucGFyZW50KSB7XHJcbiAgICAgICAgICAgIC8vIDQuIEZvcmNlIHRoZSBwYXJlbnQgaW5zdGFuY2UgdG8gcmUtcmVuZGVyLiBUaGlzIHdpbGwgY2F1c2UgYWxsIHVwZGF0ZWRcclxuICAgICAgICAgICAgLy8gY29tcG9uZW50cyB0byBiZSB1bm1vdW50ZWQgYW5kIHJlLW1vdW50ZWQuIFF1ZXVlIHRoZSB1cGRhdGUgc28gdGhhdCB3ZVxyXG4gICAgICAgICAgICAvLyBkb24ndCBlbmQgdXAgZm9yY2luZyB0aGUgc2FtZSBwYXJlbnQgdG8gcmUtcmVuZGVyIG11bHRpcGxlIHRpbWVzLlxyXG4gICAgICAgICAgICBxdWV1ZUpvYihpbnN0YW5jZS5wYXJlbnQudXBkYXRlKTtcclxuICAgICAgICAgICAgLy8gaW5zdGFuY2UgaXMgdGhlIGlubmVyIGNvbXBvbmVudCBvZiBhbiBhc3luYyBjdXN0b20gZWxlbWVudFxyXG4gICAgICAgICAgICAvLyBpbnZva2UgdG8gcmVzZXQgc3R5bGVzXHJcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZS5wYXJlbnQudHlwZS5fX2FzeW5jTG9hZGVyICYmXHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5wYXJlbnQuY2VSZWxvYWQpIHtcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlLnBhcmVudC5jZVJlbG9hZChuZXdDb21wLnN0eWxlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW5zdGFuY2UuYXBwQ29udGV4dC5yZWxvYWQpIHtcclxuICAgICAgICAgICAgLy8gcm9vdCBpbnN0YW5jZSBtb3VudGVkIHZpYSBjcmVhdGVBcHAoKSBoYXMgYSByZWxvYWQgbWV0aG9kXHJcbiAgICAgICAgICAgIGluc3RhbmNlLmFwcENvbnRleHQucmVsb2FkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIC8vIHJvb3QgaW5zdGFuY2UgaW5zaWRlIHRyZWUgY3JlYXRlZCB2aWEgcmF3IHJlbmRlcigpLiBGb3JjZSByZWxvYWQuXHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW0hNUl0gUm9vdCBvciBtYW51YWxseSBtb3VudGVkIGluc3RhbmNlIG1vZGlmaWVkLiBGdWxsIHJlbG9hZCByZXF1aXJlZC4nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyA1LiBtYWtlIHN1cmUgdG8gY2xlYW51cCBkaXJ0eSBobXIgY29tcG9uZW50cyBhZnRlciB1cGRhdGVcclxuICAgIHF1ZXVlUG9zdEZsdXNoQ2IoKCkgPT4ge1xyXG4gICAgICAgIGZvciAoY29uc3QgaW5zdGFuY2Ugb2YgaW5zdGFuY2VzKSB7XHJcbiAgICAgICAgICAgIGhtckRpcnR5Q29tcG9uZW50cy5kZWxldGUobm9ybWFsaXplQ2xhc3NDb21wb25lbnQoaW5zdGFuY2UudHlwZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG59XHJcbmZ1bmN0aW9uIHVwZGF0ZUNvbXBvbmVudERlZihvbGRDb21wLCBuZXdDb21wKSB7XHJcbiAgICBleHRlbmQob2xkQ29tcCwgbmV3Q29tcCk7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvbGRDb21wKSB7XHJcbiAgICAgICAgaWYgKGtleSAhPT0gJ19fZmlsZScgJiYgIShrZXkgaW4gbmV3Q29tcCkpIHtcclxuICAgICAgICAgICAgZGVsZXRlIG9sZENvbXBba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gdHJ5V3JhcChmbikge1xyXG4gICAgcmV0dXJuIChpZCwgYXJnKSA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIGZuKGlkLCBhcmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtITVJdIFNvbWV0aGluZyB3ZW50IHdyb25nIGR1cmluZyBWdWUgY29tcG9uZW50IGhvdC1yZWxvYWQuIGAgK1xyXG4gICAgICAgICAgICAgICAgYEZ1bGwgcmVsb2FkIHJlcXVpcmVkLmApO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cblxubGV0IGRldnRvb2xzO1xyXG5sZXQgYnVmZmVyID0gW107XHJcbmxldCBkZXZ0b29sc05vdEluc3RhbGxlZCA9IGZhbHNlO1xyXG5mdW5jdGlvbiBlbWl0KGV2ZW50LCAuLi5hcmdzKSB7XHJcbiAgICBpZiAoZGV2dG9vbHMpIHtcclxuICAgICAgICBkZXZ0b29scy5lbWl0KGV2ZW50LCAuLi5hcmdzKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCFkZXZ0b29sc05vdEluc3RhbGxlZCkge1xyXG4gICAgICAgIGJ1ZmZlci5wdXNoKHsgZXZlbnQsIGFyZ3MgfSk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gc2V0RGV2dG9vbHNIb29rKGhvb2ssIHRhcmdldCkge1xyXG4gICAgdmFyIF9hLCBfYjtcclxuICAgIGRldnRvb2xzID0gaG9vaztcclxuICAgIGlmIChkZXZ0b29scykge1xyXG4gICAgICAgIGRldnRvb2xzLmVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIGJ1ZmZlci5mb3JFYWNoKCh7IGV2ZW50LCBhcmdzIH0pID0+IGRldnRvb2xzLmVtaXQoZXZlbnQsIC4uLmFyZ3MpKTtcclxuICAgICAgICBidWZmZXIgPSBbXTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKFxyXG4gICAgLy8gaGFuZGxlIGxhdGUgZGV2dG9vbHMgaW5qZWN0aW9uIC0gb25seSBkbyB0aGlzIGlmIHdlIGFyZSBpbiBhbiBhY3R1YWxcclxuICAgIC8vIGJyb3dzZXIgZW52aXJvbm1lbnQgdG8gYXZvaWQgdGhlIHRpbWVyIGhhbmRsZSBzdGFsbGluZyB0ZXN0IHJ1bm5lciBleGl0XHJcbiAgICAvLyAoIzQ4MTUpXHJcbiAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICAgIC8vIHNvbWUgZW52cyBtb2NrIHdpbmRvdyBidXQgbm90IGZ1bGx5XHJcbiAgICAgICAgd2luZG93LkhUTUxFbGVtZW50ICYmXHJcbiAgICAgICAgLy8gYWxzbyBleGNsdWRlIGpzZG9tXHJcbiAgICAgICAgISgoX2IgPSAoX2EgPSB3aW5kb3cubmF2aWdhdG9yKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudXNlckFnZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaW5jbHVkZXMoJ2pzZG9tJykpKSB7XHJcbiAgICAgICAgY29uc3QgcmVwbGF5ID0gKHRhcmdldC5fX1ZVRV9ERVZUT09MU19IT09LX1JFUExBWV9fID1cclxuICAgICAgICAgICAgdGFyZ2V0Ll9fVlVFX0RFVlRPT0xTX0hPT0tfUkVQTEFZX18gfHwgW10pO1xyXG4gICAgICAgIHJlcGxheS5wdXNoKChuZXdIb29rKSA9PiB7XHJcbiAgICAgICAgICAgIHNldERldnRvb2xzSG9vayhuZXdIb29rLCB0YXJnZXQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGNsZWFyIGJ1ZmZlciBhZnRlciAzcyAtIHRoZSB1c2VyIHByb2JhYmx5IGRvZXNuJ3QgaGF2ZSBkZXZ0b29scyBpbnN0YWxsZWRcclxuICAgICAgICAvLyBhdCBhbGwsIGFuZCBrZWVwaW5nIHRoZSBidWZmZXIgd2lsbCBjYXVzZSBtZW1vcnkgbGVha3MgKCM0NzM4KVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWRldnRvb2xzKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuX19WVUVfREVWVE9PTFNfSE9PS19SRVBMQVlfXyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBkZXZ0b29sc05vdEluc3RhbGxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBidWZmZXIgPSBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gbm9uLWJyb3dzZXIgZW52LCBhc3N1bWUgbm90IGluc3RhbGxlZFxyXG4gICAgICAgIGRldnRvb2xzTm90SW5zdGFsbGVkID0gdHJ1ZTtcclxuICAgICAgICBidWZmZXIgPSBbXTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBkZXZ0b29sc0luaXRBcHAoYXBwLCB2ZXJzaW9uKSB7XHJcbiAgICBlbWl0KFwiYXBwOmluaXRcIiAvKiBEZXZ0b29sc0hvb2tzLkFQUF9JTklUICovLCBhcHAsIHZlcnNpb24sIHtcclxuICAgICAgICBGcmFnbWVudCxcclxuICAgICAgICBUZXh0LFxyXG4gICAgICAgIENvbW1lbnQsXHJcbiAgICAgICAgU3RhdGljXHJcbiAgICB9KTtcclxufVxyXG5mdW5jdGlvbiBkZXZ0b29sc1VubW91bnRBcHAoYXBwKSB7XHJcbiAgICBlbWl0KFwiYXBwOnVubW91bnRcIiAvKiBEZXZ0b29sc0hvb2tzLkFQUF9VTk1PVU5UICovLCBhcHApO1xyXG59XHJcbmNvbnN0IGRldnRvb2xzQ29tcG9uZW50QWRkZWQgPSAvKiNfX1BVUkVfXyovIGNyZWF0ZURldnRvb2xzQ29tcG9uZW50SG9vayhcImNvbXBvbmVudDphZGRlZFwiIC8qIERldnRvb2xzSG9va3MuQ09NUE9ORU5UX0FEREVEICovKTtcclxuY29uc3QgZGV2dG9vbHNDb21wb25lbnRVcGRhdGVkID0gXHJcbi8qI19fUFVSRV9fKi8gY3JlYXRlRGV2dG9vbHNDb21wb25lbnRIb29rKFwiY29tcG9uZW50OnVwZGF0ZWRcIiAvKiBEZXZ0b29sc0hvb2tzLkNPTVBPTkVOVF9VUERBVEVEICovKTtcclxuY29uc3QgZGV2dG9vbHNDb21wb25lbnRSZW1vdmVkID0gXHJcbi8qI19fUFVSRV9fKi8gY3JlYXRlRGV2dG9vbHNDb21wb25lbnRIb29rKFwiY29tcG9uZW50OnJlbW92ZWRcIiAvKiBEZXZ0b29sc0hvb2tzLkNPTVBPTkVOVF9SRU1PVkVEICovKTtcclxuZnVuY3Rpb24gY3JlYXRlRGV2dG9vbHNDb21wb25lbnRIb29rKGhvb2spIHtcclxuICAgIHJldHVybiAoY29tcG9uZW50KSA9PiB7XHJcbiAgICAgICAgZW1pdChob29rLCBjb21wb25lbnQuYXBwQ29udGV4dC5hcHAsIGNvbXBvbmVudC51aWQsIGNvbXBvbmVudC5wYXJlbnQgPyBjb21wb25lbnQucGFyZW50LnVpZCA6IHVuZGVmaW5lZCwgY29tcG9uZW50KTtcclxuICAgIH07XHJcbn1cclxuY29uc3QgZGV2dG9vbHNQZXJmU3RhcnQgPSAvKiNfX1BVUkVfXyovIGNyZWF0ZURldnRvb2xzUGVyZm9ybWFuY2VIb29rKFwicGVyZjpzdGFydFwiIC8qIERldnRvb2xzSG9va3MuUEVSRk9STUFOQ0VfU1RBUlQgKi8pO1xyXG5jb25zdCBkZXZ0b29sc1BlcmZFbmQgPSAvKiNfX1BVUkVfXyovIGNyZWF0ZURldnRvb2xzUGVyZm9ybWFuY2VIb29rKFwicGVyZjplbmRcIiAvKiBEZXZ0b29sc0hvb2tzLlBFUkZPUk1BTkNFX0VORCAqLyk7XHJcbmZ1bmN0aW9uIGNyZWF0ZURldnRvb2xzUGVyZm9ybWFuY2VIb29rKGhvb2spIHtcclxuICAgIHJldHVybiAoY29tcG9uZW50LCB0eXBlLCB0aW1lKSA9PiB7XHJcbiAgICAgICAgZW1pdChob29rLCBjb21wb25lbnQuYXBwQ29udGV4dC5hcHAsIGNvbXBvbmVudC51aWQsIGNvbXBvbmVudCwgdHlwZSwgdGltZSk7XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGRldnRvb2xzQ29tcG9uZW50RW1pdChjb21wb25lbnQsIGV2ZW50LCBwYXJhbXMpIHtcclxuICAgIGVtaXQoXCJjb21wb25lbnQ6ZW1pdFwiIC8qIERldnRvb2xzSG9va3MuQ09NUE9ORU5UX0VNSVQgKi8sIGNvbXBvbmVudC5hcHBDb250ZXh0LmFwcCwgY29tcG9uZW50LCBldmVudCwgcGFyYW1zKTtcclxufVxuXG5mdW5jdGlvbiBlbWl0JDEoaW5zdGFuY2UsIGV2ZW50LCAuLi5yYXdBcmdzKSB7XHJcbiAgICBpZiAoaW5zdGFuY2UuaXNVbm1vdW50ZWQpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgcHJvcHMgPSBpbnN0YW5jZS52bm9kZS5wcm9wcyB8fCBFTVBUWV9PQko7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgY29uc3QgeyBlbWl0c09wdGlvbnMsIHByb3BzT3B0aW9uczogW3Byb3BzT3B0aW9uc10gfSA9IGluc3RhbmNlO1xyXG4gICAgICAgIGlmIChlbWl0c09wdGlvbnMpIHtcclxuICAgICAgICAgICAgaWYgKCEoZXZlbnQgaW4gZW1pdHNPcHRpb25zKSAmJlxyXG4gICAgICAgICAgICAgICAgIShmYWxzZSApKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXByb3BzT3B0aW9ucyB8fCAhKHRvSGFuZGxlcktleShldmVudCkgaW4gcHJvcHNPcHRpb25zKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhcm4oYENvbXBvbmVudCBlbWl0dGVkIGV2ZW50IFwiJHtldmVudH1cIiBidXQgaXQgaXMgbmVpdGhlciBkZWNsYXJlZCBpbiBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYHRoZSBlbWl0cyBvcHRpb24gbm9yIGFzIGFuIFwiJHt0b0hhbmRsZXJLZXkoZXZlbnQpfVwiIHByb3AuYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0b3IgPSBlbWl0c09wdGlvbnNbZXZlbnRdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24odmFsaWRhdG9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSB2YWxpZGF0b3IoLi4ucmF3QXJncyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4oYEludmFsaWQgZXZlbnQgYXJndW1lbnRzOiBldmVudCB2YWxpZGF0aW9uIGZhaWxlZCBmb3IgZXZlbnQgXCIke2V2ZW50fVwiLmApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBhcmdzID0gcmF3QXJncztcclxuICAgIGNvbnN0IGlzTW9kZWxMaXN0ZW5lciA9IGV2ZW50LnN0YXJ0c1dpdGgoJ3VwZGF0ZTonKTtcclxuICAgIC8vIGZvciB2LW1vZGVsIHVwZGF0ZTp4eHggZXZlbnRzLCBhcHBseSBtb2RpZmllcnMgb24gYXJnc1xyXG4gICAgY29uc3QgbW9kZWxBcmcgPSBpc01vZGVsTGlzdGVuZXIgJiYgZXZlbnQuc2xpY2UoNyk7XHJcbiAgICBpZiAobW9kZWxBcmcgJiYgbW9kZWxBcmcgaW4gcHJvcHMpIHtcclxuICAgICAgICBjb25zdCBtb2RpZmllcnNLZXkgPSBgJHttb2RlbEFyZyA9PT0gJ21vZGVsVmFsdWUnID8gJ21vZGVsJyA6IG1vZGVsQXJnfU1vZGlmaWVyc2A7XHJcbiAgICAgICAgY29uc3QgeyBudW1iZXIsIHRyaW0gfSA9IHByb3BzW21vZGlmaWVyc0tleV0gfHwgRU1QVFlfT0JKO1xyXG4gICAgICAgIGlmICh0cmltKSB7XHJcbiAgICAgICAgICAgIGFyZ3MgPSByYXdBcmdzLm1hcChhID0+IGEudHJpbSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG51bWJlcikge1xyXG4gICAgICAgICAgICBhcmdzID0gcmF3QXJncy5tYXAodG9OdW1iZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgfHwgX19WVUVfUFJPRF9ERVZUT09MU19fKSB7XHJcbiAgICAgICAgZGV2dG9vbHNDb21wb25lbnRFbWl0KGluc3RhbmNlLCBldmVudCwgYXJncyk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgY29uc3QgbG93ZXJDYXNlRXZlbnQgPSBldmVudC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGlmIChsb3dlckNhc2VFdmVudCAhPT0gZXZlbnQgJiYgcHJvcHNbdG9IYW5kbGVyS2V5KGxvd2VyQ2FzZUV2ZW50KV0pIHtcclxuICAgICAgICAgICAgd2FybihgRXZlbnQgXCIke2xvd2VyQ2FzZUV2ZW50fVwiIGlzIGVtaXR0ZWQgaW4gY29tcG9uZW50IGAgK1xyXG4gICAgICAgICAgICAgICAgYCR7Zm9ybWF0Q29tcG9uZW50TmFtZShpbnN0YW5jZSwgaW5zdGFuY2UudHlwZSl9IGJ1dCB0aGUgaGFuZGxlciBpcyByZWdpc3RlcmVkIGZvciBcIiR7ZXZlbnR9XCIuIGAgK1xyXG4gICAgICAgICAgICAgICAgYE5vdGUgdGhhdCBIVE1MIGF0dHJpYnV0ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUgYW5kIHlvdSBjYW5ub3QgdXNlIGAgK1xyXG4gICAgICAgICAgICAgICAgYHYtb24gdG8gbGlzdGVuIHRvIGNhbWVsQ2FzZSBldmVudHMgd2hlbiB1c2luZyBpbi1ET00gdGVtcGxhdGVzLiBgICtcclxuICAgICAgICAgICAgICAgIGBZb3Ugc2hvdWxkIHByb2JhYmx5IHVzZSBcIiR7aHlwaGVuYXRlKGV2ZW50KX1cIiBpbnN0ZWFkIG9mIFwiJHtldmVudH1cIi5gKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgaGFuZGxlck5hbWU7XHJcbiAgICBsZXQgaGFuZGxlciA9IHByb3BzWyhoYW5kbGVyTmFtZSA9IHRvSGFuZGxlcktleShldmVudCkpXSB8fFxyXG4gICAgICAgIC8vIGFsc28gdHJ5IGNhbWVsQ2FzZSBldmVudCBoYW5kbGVyICgjMjI0OSlcclxuICAgICAgICBwcm9wc1soaGFuZGxlck5hbWUgPSB0b0hhbmRsZXJLZXkoY2FtZWxpemUoZXZlbnQpKSldO1xyXG4gICAgLy8gZm9yIHYtbW9kZWwgdXBkYXRlOnh4eCBldmVudHMsIGFsc28gdHJpZ2dlciBrZWJhYi1jYXNlIGVxdWl2YWxlbnRcclxuICAgIC8vIGZvciBwcm9wcyBwYXNzZWQgdmlhIGtlYmFiLWNhc2VcclxuICAgIGlmICghaGFuZGxlciAmJiBpc01vZGVsTGlzdGVuZXIpIHtcclxuICAgICAgICBoYW5kbGVyID0gcHJvcHNbKGhhbmRsZXJOYW1lID0gdG9IYW5kbGVyS2V5KGh5cGhlbmF0ZShldmVudCkpKV07XHJcbiAgICB9XHJcbiAgICBpZiAoaGFuZGxlcikge1xyXG4gICAgICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGhhbmRsZXIsIGluc3RhbmNlLCA2IC8qIEVycm9yQ29kZXMuQ09NUE9ORU5UX0VWRU5UX0hBTkRMRVIgKi8sIGFyZ3MpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb25jZUhhbmRsZXIgPSBwcm9wc1toYW5kbGVyTmFtZSArIGBPbmNlYF07XHJcbiAgICBpZiAob25jZUhhbmRsZXIpIHtcclxuICAgICAgICBpZiAoIWluc3RhbmNlLmVtaXR0ZWQpIHtcclxuICAgICAgICAgICAgaW5zdGFuY2UuZW1pdHRlZCA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpbnN0YW5jZS5lbWl0dGVkW2hhbmRsZXJOYW1lXSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGluc3RhbmNlLmVtaXR0ZWRbaGFuZGxlck5hbWVdID0gdHJ1ZTtcclxuICAgICAgICBjYWxsV2l0aEFzeW5jRXJyb3JIYW5kbGluZyhvbmNlSGFuZGxlciwgaW5zdGFuY2UsIDYgLyogRXJyb3JDb2Rlcy5DT01QT05FTlRfRVZFTlRfSEFORExFUiAqLywgYXJncyk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gbm9ybWFsaXplRW1pdHNPcHRpb25zKGNvbXAsIGFwcENvbnRleHQsIGFzTWl4aW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3QgY2FjaGUgPSBhcHBDb250ZXh0LmVtaXRzQ2FjaGU7XHJcbiAgICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXQoY29tcCk7XHJcbiAgICBpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXR1cm4gY2FjaGVkO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmF3ID0gY29tcC5lbWl0cztcclxuICAgIGxldCBub3JtYWxpemVkID0ge307XHJcbiAgICAvLyBhcHBseSBtaXhpbi9leHRlbmRzIHByb3BzXHJcbiAgICBsZXQgaGFzRXh0ZW5kcyA9IGZhbHNlO1xyXG4gICAgaWYgKF9fVlVFX09QVElPTlNfQVBJX18gJiYgIWlzRnVuY3Rpb24oY29tcCkpIHtcclxuICAgICAgICBjb25zdCBleHRlbmRFbWl0cyA9IChyYXcpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEZyb21FeHRlbmQgPSBub3JtYWxpemVFbWl0c09wdGlvbnMocmF3LCBhcHBDb250ZXh0LCB0cnVlKTtcclxuICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRGcm9tRXh0ZW5kKSB7XHJcbiAgICAgICAgICAgICAgICBoYXNFeHRlbmRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGV4dGVuZChub3JtYWxpemVkLCBub3JtYWxpemVkRnJvbUV4dGVuZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICghYXNNaXhpbiAmJiBhcHBDb250ZXh0Lm1peGlucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgYXBwQ29udGV4dC5taXhpbnMuZm9yRWFjaChleHRlbmRFbWl0cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb21wLmV4dGVuZHMpIHtcclxuICAgICAgICAgICAgZXh0ZW5kRW1pdHMoY29tcC5leHRlbmRzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbXAubWl4aW5zKSB7XHJcbiAgICAgICAgICAgIGNvbXAubWl4aW5zLmZvckVhY2goZXh0ZW5kRW1pdHMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghcmF3ICYmICFoYXNFeHRlbmRzKSB7XHJcbiAgICAgICAgaWYgKGlzT2JqZWN0KGNvbXApKSB7XHJcbiAgICAgICAgICAgIGNhY2hlLnNldChjb21wLCBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNBcnJheShyYXcpKSB7XHJcbiAgICAgICAgcmF3LmZvckVhY2goa2V5ID0+IChub3JtYWxpemVkW2tleV0gPSBudWxsKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBleHRlbmQobm9ybWFsaXplZCwgcmF3KTtcclxuICAgIH1cclxuICAgIGlmIChpc09iamVjdChjb21wKSkge1xyXG4gICAgICAgIGNhY2hlLnNldChjb21wLCBub3JtYWxpemVkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBub3JtYWxpemVkO1xyXG59XHJcbi8vIENoZWNrIGlmIGFuIGluY29taW5nIHByb3Aga2V5IGlzIGEgZGVjbGFyZWQgZW1pdCBldmVudCBsaXN0ZW5lci5cclxuLy8gZS5nLiBXaXRoIGBlbWl0czogeyBjbGljazogbnVsbCB9YCwgcHJvcHMgbmFtZWQgYG9uQ2xpY2tgIGFuZCBgb25jbGlja2AgYXJlXHJcbi8vIGJvdGggY29uc2lkZXJlZCBtYXRjaGVkIGxpc3RlbmVycy5cclxuZnVuY3Rpb24gaXNFbWl0TGlzdGVuZXIob3B0aW9ucywga2V5KSB7XHJcbiAgICBpZiAoIW9wdGlvbnMgfHwgIWlzT24oa2V5KSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGtleSA9IGtleS5zbGljZSgyKS5yZXBsYWNlKC9PbmNlJC8sICcnKTtcclxuICAgIHJldHVybiAoaGFzT3duKG9wdGlvbnMsIGtleVswXS50b0xvd2VyQ2FzZSgpICsga2V5LnNsaWNlKDEpKSB8fFxyXG4gICAgICAgIGhhc093bihvcHRpb25zLCBoeXBoZW5hdGUoa2V5KSkgfHxcclxuICAgICAgICBoYXNPd24ob3B0aW9ucywga2V5KSk7XHJcbn1cblxuLyoqXHJcbiAqIG1hcmsgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGluc3RhbmNlIGZvciBhc3NldCByZXNvbHV0aW9uIChlLmcuXHJcbiAqIHJlc29sdmVDb21wb25lbnQsIHJlc29sdmVEaXJlY3RpdmUpIGR1cmluZyByZW5kZXJcclxuICovXHJcbmxldCBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UgPSBudWxsO1xyXG5sZXQgY3VycmVudFNjb3BlSWQgPSBudWxsO1xyXG4vKipcclxuICogTm90ZTogcmVuZGVyaW5nIGNhbGxzIG1heWJlIG5lc3RlZC4gVGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIHBhcmVudCByZW5kZXJpbmdcclxuICogaW5zdGFuY2UgaWYgcHJlc2VudCwgd2hpY2ggc2hvdWxkIGJlIHJlc3RvcmVkIGFmdGVyIHRoZSByZW5kZXIgaXMgZG9uZTpcclxuICpcclxuICogYGBganNcclxuICogY29uc3QgcHJldiA9IHNldEN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZShpKVxyXG4gKiAvLyAuLi5yZW5kZXJcclxuICogc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKHByZXYpXHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKGluc3RhbmNlKSB7XHJcbiAgICBjb25zdCBwcmV2ID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlO1xyXG4gICAgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID0gaW5zdGFuY2U7XHJcbiAgICBjdXJyZW50U2NvcGVJZCA9IChpbnN0YW5jZSAmJiBpbnN0YW5jZS50eXBlLl9fc2NvcGVJZCkgfHwgbnVsbDtcclxuICAgIHJldHVybiBwcmV2O1xyXG59XHJcbi8qKlxyXG4gKiBTZXQgc2NvcGUgaWQgd2hlbiBjcmVhdGluZyBob2lzdGVkIHZub2Rlcy5cclxuICogQHByaXZhdGUgY29tcGlsZXIgaGVscGVyXHJcbiAqL1xyXG5mdW5jdGlvbiBwdXNoU2NvcGVJZChpZCkge1xyXG4gICAgY3VycmVudFNjb3BlSWQgPSBpZDtcclxufVxyXG4vKipcclxuICogVGVjaG5pY2FsbHkgd2Ugbm8gbG9uZ2VyIG5lZWQgdGhpcyBhZnRlciAzLjAuOCBidXQgd2UgbmVlZCB0byBrZWVwIHRoZSBzYW1lXHJcbiAqIEFQSSBmb3IgYmFja3dhcmRzIGNvbXBhdCB3LyBjb2RlIGdlbmVyYXRlZCBieSBjb21waWxlcnMuXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBwb3BTY29wZUlkKCkge1xyXG4gICAgY3VycmVudFNjb3BlSWQgPSBudWxsO1xyXG59XHJcbi8qKlxyXG4gKiBPbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0XHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCB3aXRoU2NvcGVJZCA9IChfaWQpID0+IHdpdGhDdHg7XHJcbi8qKlxyXG4gKiBXcmFwIGEgc2xvdCBmdW5jdGlvbiB0byBtZW1vaXplIGN1cnJlbnQgcmVuZGVyaW5nIGluc3RhbmNlXHJcbiAqIEBwcml2YXRlIGNvbXBpbGVyIGhlbHBlclxyXG4gKi9cclxuZnVuY3Rpb24gd2l0aEN0eChmbiwgY3R4ID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlLCBpc05vblNjb3BlZFNsb3QgLy8gZmFsc2Ugb25seVxyXG4pIHtcclxuICAgIGlmICghY3R4KVxyXG4gICAgICAgIHJldHVybiBmbjtcclxuICAgIC8vIGFscmVhZHkgbm9ybWFsaXplZFxyXG4gICAgaWYgKGZuLl9uKSB7XHJcbiAgICAgICAgcmV0dXJuIGZuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVuZGVyRm5XaXRoQ29udGV4dCA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgICAgLy8gSWYgYSB1c2VyIGNhbGxzIGEgY29tcGlsZWQgc2xvdCBpbnNpZGUgYSB0ZW1wbGF0ZSBleHByZXNzaW9uICgjMTc0NSksIGl0XHJcbiAgICAgICAgLy8gY2FuIG1lc3MgdXAgYmxvY2sgdHJhY2tpbmcsIHNvIGJ5IGRlZmF1bHQgd2UgZGlzYWJsZSBibG9jayB0cmFja2luZyBhbmRcclxuICAgICAgICAvLyBmb3JjZSBiYWlsIG91dCB3aGVuIGludm9raW5nIGEgY29tcGlsZWQgc2xvdCAoaW5kaWNhdGVkIGJ5IHRoZSAuX2QgZmxhZykuXHJcbiAgICAgICAgLy8gVGhpcyBpc24ndCBuZWNlc3NhcnkgaWYgcmVuZGVyaW5nIGEgY29tcGlsZWQgYDxzbG90PmAsIHNvIHdlIGZsaXAgdGhlXHJcbiAgICAgICAgLy8gLl9kIGZsYWcgb2ZmIHdoZW4gaW52b2tpbmcgdGhlIHdyYXBwZWQgZm4gaW5zaWRlIGByZW5kZXJTbG90YC5cclxuICAgICAgICBpZiAocmVuZGVyRm5XaXRoQ29udGV4dC5fZCkge1xyXG4gICAgICAgICAgICBzZXRCbG9ja1RyYWNraW5nKC0xKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcHJldkluc3RhbmNlID0gc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKGN0eCk7XHJcbiAgICAgICAgY29uc3QgcmVzID0gZm4oLi4uYXJncyk7XHJcbiAgICAgICAgc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKHByZXZJbnN0YW5jZSk7XHJcbiAgICAgICAgaWYgKHJlbmRlckZuV2l0aENvbnRleHQuX2QpIHtcclxuICAgICAgICAgICAgc2V0QmxvY2tUcmFja2luZygxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCBfX1ZVRV9QUk9EX0RFVlRPT0xTX18pIHtcclxuICAgICAgICAgICAgZGV2dG9vbHNDb21wb25lbnRVcGRhdGVkKGN0eCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICB9O1xyXG4gICAgLy8gbWFyayBub3JtYWxpemVkIHRvIGF2b2lkIGR1cGxpY2F0ZWQgd3JhcHBpbmdcclxuICAgIHJlbmRlckZuV2l0aENvbnRleHQuX24gPSB0cnVlO1xyXG4gICAgLy8gbWFyayB0aGlzIGFzIGNvbXBpbGVkIGJ5IGRlZmF1bHRcclxuICAgIC8vIHRoaXMgaXMgdXNlZCBpbiB2bm9kZS50cyAtPiBub3JtYWxpemVDaGlsZHJlbigpIHRvIHNldCB0aGUgc2xvdFxyXG4gICAgLy8gcmVuZGVyaW5nIGZsYWcuXHJcbiAgICByZW5kZXJGbldpdGhDb250ZXh0Ll9jID0gdHJ1ZTtcclxuICAgIC8vIGRpc2FibGUgYmxvY2sgdHJhY2tpbmcgYnkgZGVmYXVsdFxyXG4gICAgcmVuZGVyRm5XaXRoQ29udGV4dC5fZCA9IHRydWU7XHJcbiAgICByZXR1cm4gcmVuZGVyRm5XaXRoQ29udGV4dDtcclxufVxuXG4vKipcclxuICogZGV2IG9ubHkgZmxhZyB0byB0cmFjayB3aGV0aGVyICRhdHRycyB3YXMgdXNlZCBkdXJpbmcgcmVuZGVyLlxyXG4gKiBJZiAkYXR0cnMgd2FzIHVzZWQgZHVyaW5nIHJlbmRlciB0aGVuIHRoZSB3YXJuaW5nIGZvciBmYWlsZWQgYXR0cnNcclxuICogZmFsbHRocm91Z2ggY2FuIGJlIHN1cHByZXNzZWQuXHJcbiAqL1xyXG5sZXQgYWNjZXNzZWRBdHRycyA9IGZhbHNlO1xyXG5mdW5jdGlvbiBtYXJrQXR0cnNBY2Nlc3NlZCgpIHtcclxuICAgIGFjY2Vzc2VkQXR0cnMgPSB0cnVlO1xyXG59XHJcbmZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudFJvb3QoaW5zdGFuY2UpIHtcclxuICAgIGNvbnN0IHsgdHlwZTogQ29tcG9uZW50LCB2bm9kZSwgcHJveHksIHdpdGhQcm94eSwgcHJvcHMsIHByb3BzT3B0aW9uczogW3Byb3BzT3B0aW9uc10sIHNsb3RzLCBhdHRycywgZW1pdCwgcmVuZGVyLCByZW5kZXJDYWNoZSwgZGF0YSwgc2V0dXBTdGF0ZSwgY3R4LCBpbmhlcml0QXR0cnMgfSA9IGluc3RhbmNlO1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGxldCBmYWxsdGhyb3VnaEF0dHJzO1xyXG4gICAgY29uc3QgcHJldiA9IHNldEN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZShpbnN0YW5jZSk7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgYWNjZXNzZWRBdHRycyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBpZiAodm5vZGUuc2hhcGVGbGFnICYgNCAvKiBTaGFwZUZsYWdzLlNUQVRFRlVMX0NPTVBPTkVOVCAqLykge1xyXG4gICAgICAgICAgICAvLyB3aXRoUHJveHkgaXMgYSBwcm94eSB3aXRoIGEgZGlmZmVyZW50IGBoYXNgIHRyYXAgb25seSBmb3JcclxuICAgICAgICAgICAgLy8gcnVudGltZS1jb21waWxlZCByZW5kZXIgZnVuY3Rpb25zIHVzaW5nIGB3aXRoYCBibG9jay5cclxuICAgICAgICAgICAgY29uc3QgcHJveHlUb1VzZSA9IHdpdGhQcm94eSB8fCBwcm94eTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gbm9ybWFsaXplVk5vZGUocmVuZGVyLmNhbGwocHJveHlUb1VzZSwgcHJveHlUb1VzZSwgcmVuZGVyQ2FjaGUsIHByb3BzLCBzZXR1cFN0YXRlLCBkYXRhLCBjdHgpKTtcclxuICAgICAgICAgICAgZmFsbHRocm91Z2hBdHRycyA9IGF0dHJzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gZnVuY3Rpb25hbFxyXG4gICAgICAgICAgICBjb25zdCByZW5kZXIgPSBDb21wb25lbnQ7XHJcbiAgICAgICAgICAgIC8vIGluIGRldiwgbWFyayBhdHRycyBhY2Nlc3NlZCBpZiBvcHRpb25hbCBwcm9wcyAoYXR0cnMgPT09IHByb3BzKVxyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGF0dHJzID09PSBwcm9wcykge1xyXG4gICAgICAgICAgICAgICAgbWFya0F0dHJzQWNjZXNzZWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXN1bHQgPSBub3JtYWxpemVWTm9kZShyZW5kZXIubGVuZ3RoID4gMVxyXG4gICAgICAgICAgICAgICAgPyByZW5kZXIocHJvcHMsIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxyXG4gICAgICAgICAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQgYXR0cnMoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrQXR0cnNBY2Nlc3NlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzbG90cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1pdFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA6IHsgYXR0cnMsIHNsb3RzLCBlbWl0IH0pXHJcbiAgICAgICAgICAgICAgICA6IHJlbmRlcihwcm9wcywgbnVsbCAvKiB3ZSBrbm93IGl0IGRvZXNuJ3QgbmVlZCBpdCAqLykpO1xyXG4gICAgICAgICAgICBmYWxsdGhyb3VnaEF0dHJzID0gQ29tcG9uZW50LnByb3BzXHJcbiAgICAgICAgICAgICAgICA/IGF0dHJzXHJcbiAgICAgICAgICAgICAgICA6IGdldEZ1bmN0aW9uYWxGYWxsdGhyb3VnaChhdHRycyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgIGJsb2NrU3RhY2subGVuZ3RoID0gMDtcclxuICAgICAgICBoYW5kbGVFcnJvcihlcnIsIGluc3RhbmNlLCAxIC8qIEVycm9yQ29kZXMuUkVOREVSX0ZVTkNUSU9OICovKTtcclxuICAgICAgICByZXN1bHQgPSBjcmVhdGVWTm9kZShDb21tZW50KTtcclxuICAgIH1cclxuICAgIC8vIGF0dHIgbWVyZ2luZ1xyXG4gICAgLy8gaW4gZGV2IG1vZGUsIGNvbW1lbnRzIGFyZSBwcmVzZXJ2ZWQsIGFuZCBpdCdzIHBvc3NpYmxlIGZvciBhIHRlbXBsYXRlXHJcbiAgICAvLyB0byBoYXZlIGNvbW1lbnRzIGFsb25nIHNpZGUgdGhlIHJvb3QgZWxlbWVudCB3aGljaCBtYWtlcyBpdCBhIGZyYWdtZW50XHJcbiAgICBsZXQgcm9vdCA9IHJlc3VsdDtcclxuICAgIGxldCBzZXRSb290ID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgIHJlc3VsdC5wYXRjaEZsYWcgPiAwICYmXHJcbiAgICAgICAgcmVzdWx0LnBhdGNoRmxhZyAmIDIwNDggLyogUGF0Y2hGbGFncy5ERVZfUk9PVF9GUkFHTUVOVCAqLykge1xyXG4gICAgICAgIFtyb290LCBzZXRSb290XSA9IGdldENoaWxkUm9vdChyZXN1bHQpO1xyXG4gICAgfVxyXG4gICAgaWYgKGZhbGx0aHJvdWdoQXR0cnMgJiYgaW5oZXJpdEF0dHJzICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmYWxsdGhyb3VnaEF0dHJzKTtcclxuICAgICAgICBjb25zdCB7IHNoYXBlRmxhZyB9ID0gcm9vdDtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgaWYgKHNoYXBlRmxhZyAmICgxIC8qIFNoYXBlRmxhZ3MuRUxFTUVOVCAqLyB8IDYgLyogU2hhcGVGbGFncy5DT01QT05FTlQgKi8pKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNPcHRpb25zICYmIGtleXMuc29tZShpc01vZGVsTGlzdGVuZXIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgYSB2LW1vZGVsIGxpc3RlbmVyIChvblVwZGF0ZTp4eHgpIGhhcyBhIGNvcnJlc3BvbmRpbmcgZGVjbGFyZWRcclxuICAgICAgICAgICAgICAgICAgICAvLyBwcm9wLCBpdCBpbmRpY2F0ZXMgdGhpcyBjb21wb25lbnQgZXhwZWN0cyB0byBoYW5kbGUgdi1tb2RlbCBhbmRcclxuICAgICAgICAgICAgICAgICAgICAvLyBpdCBzaG91bGQgbm90IGZhbGx0aHJvdWdoLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbGF0ZWQ6ICMxNTQzLCAjMTY0MywgIzE5ODlcclxuICAgICAgICAgICAgICAgICAgICBmYWxsdGhyb3VnaEF0dHJzID0gZmlsdGVyTW9kZWxMaXN0ZW5lcnMoZmFsbHRocm91Z2hBdHRycywgcHJvcHNPcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJvb3QgPSBjbG9uZVZOb2RlKHJvb3QsIGZhbGx0aHJvdWdoQXR0cnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhYWNjZXNzZWRBdHRycyAmJiByb290LnR5cGUgIT09IENvbW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFsbEF0dHJzID0gT2JqZWN0LmtleXMoYXR0cnMpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnRBdHRycyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmFBdHRycyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBhbGxBdHRycy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBhbGxBdHRyc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbihrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSB2LW1vZGVsIGhhbmRsZXJzIHdoZW4gdGhleSBmYWlsIHRvIGZhbGx0aHJvdWdoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNNb2RlbExpc3RlbmVyKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBgb25gLCBsb3dlcmNhc2UgZmlyc3QgbGV0dGVyIHRvIHJlZmxlY3QgZXZlbnQgY2FzaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhY2N1cmF0ZWx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEF0dHJzLnB1c2goa2V5WzJdLnRvTG93ZXJDYXNlKCkgKyBrZXkuc2xpY2UoMykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJzLnB1c2goa2V5KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmFBdHRycy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB3YXJuKGBFeHRyYW5lb3VzIG5vbi1wcm9wcyBhdHRyaWJ1dGVzIChgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZXh0cmFBdHRycy5qb2luKCcsICcpfSkgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGB3ZXJlIHBhc3NlZCB0byBjb21wb25lbnQgYnV0IGNvdWxkIG5vdCBiZSBhdXRvbWF0aWNhbGx5IGluaGVyaXRlZCBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYGJlY2F1c2UgY29tcG9uZW50IHJlbmRlcnMgZnJhZ21lbnQgb3IgdGV4dCByb290IG5vZGVzLmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50QXR0cnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FybihgRXh0cmFuZW91cyBub24tZW1pdHMgZXZlbnQgbGlzdGVuZXJzIChgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZXZlbnRBdHRycy5qb2luKCcsICcpfSkgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGB3ZXJlIHBhc3NlZCB0byBjb21wb25lbnQgYnV0IGNvdWxkIG5vdCBiZSBhdXRvbWF0aWNhbGx5IGluaGVyaXRlZCBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYGJlY2F1c2UgY29tcG9uZW50IHJlbmRlcnMgZnJhZ21lbnQgb3IgdGV4dCByb290IG5vZGVzLiBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYElmIHRoZSBsaXN0ZW5lciBpcyBpbnRlbmRlZCB0byBiZSBhIGNvbXBvbmVudCBjdXN0b20gZXZlbnQgbGlzdGVuZXIgb25seSwgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGBkZWNsYXJlIGl0IHVzaW5nIHRoZSBcImVtaXRzXCIgb3B0aW9uLmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gaW5oZXJpdCBkaXJlY3RpdmVzXHJcbiAgICBpZiAodm5vZGUuZGlycykge1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgIWlzRWxlbWVudFJvb3Qocm9vdCkpIHtcclxuICAgICAgICAgICAgd2FybihgUnVudGltZSBkaXJlY3RpdmUgdXNlZCBvbiBjb21wb25lbnQgd2l0aCBub24tZWxlbWVudCByb290IG5vZGUuIGAgK1xyXG4gICAgICAgICAgICAgICAgYFRoZSBkaXJlY3RpdmVzIHdpbGwgbm90IGZ1bmN0aW9uIGFzIGludGVuZGVkLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjbG9uZSBiZWZvcmUgbXV0YXRpbmcgc2luY2UgdGhlIHJvb3QgbWF5IGJlIGEgaG9pc3RlZCB2bm9kZVxyXG4gICAgICAgIHJvb3QgPSBjbG9uZVZOb2RlKHJvb3QpO1xyXG4gICAgICAgIHJvb3QuZGlycyA9IHJvb3QuZGlycyA/IHJvb3QuZGlycy5jb25jYXQodm5vZGUuZGlycykgOiB2bm9kZS5kaXJzO1xyXG4gICAgfVxyXG4gICAgLy8gaW5oZXJpdCB0cmFuc2l0aW9uIGRhdGFcclxuICAgIGlmICh2bm9kZS50cmFuc2l0aW9uKSB7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhaXNFbGVtZW50Um9vdChyb290KSkge1xyXG4gICAgICAgICAgICB3YXJuKGBDb21wb25lbnQgaW5zaWRlIDxUcmFuc2l0aW9uPiByZW5kZXJzIG5vbi1lbGVtZW50IHJvb3Qgbm9kZSBgICtcclxuICAgICAgICAgICAgICAgIGB0aGF0IGNhbm5vdCBiZSBhbmltYXRlZC5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcm9vdC50cmFuc2l0aW9uID0gdm5vZGUudHJhbnNpdGlvbjtcclxuICAgIH1cclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgc2V0Um9vdCkge1xyXG4gICAgICAgIHNldFJvb3Qocm9vdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSByb290O1xyXG4gICAgfVxyXG4gICAgc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlKHByZXYpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4vKipcclxuICogZGV2IG9ubHlcclxuICogSW4gZGV2IG1vZGUsIHRlbXBsYXRlIHJvb3QgbGV2ZWwgY29tbWVudHMgYXJlIHJlbmRlcmVkLCB3aGljaCB0dXJucyB0aGVcclxuICogdGVtcGxhdGUgaW50byBhIGZyYWdtZW50IHJvb3QsIGJ1dCB3ZSBuZWVkIHRvIGxvY2F0ZSB0aGUgc2luZ2xlIGVsZW1lbnRcclxuICogcm9vdCBmb3IgYXR0cnMgYW5kIHNjb3BlIGlkIHByb2Nlc3NpbmcuXHJcbiAqL1xyXG5jb25zdCBnZXRDaGlsZFJvb3QgPSAodm5vZGUpID0+IHtcclxuICAgIGNvbnN0IHJhd0NoaWxkcmVuID0gdm5vZGUuY2hpbGRyZW47XHJcbiAgICBjb25zdCBkeW5hbWljQ2hpbGRyZW4gPSB2bm9kZS5keW5hbWljQ2hpbGRyZW47XHJcbiAgICBjb25zdCBjaGlsZFJvb3QgPSBmaWx0ZXJTaW5nbGVSb290KHJhd0NoaWxkcmVuKTtcclxuICAgIGlmICghY2hpbGRSb290KSB7XHJcbiAgICAgICAgcmV0dXJuIFt2bm9kZSwgdW5kZWZpbmVkXTtcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGV4ID0gcmF3Q2hpbGRyZW4uaW5kZXhPZihjaGlsZFJvb3QpO1xyXG4gICAgY29uc3QgZHluYW1pY0luZGV4ID0gZHluYW1pY0NoaWxkcmVuID8gZHluYW1pY0NoaWxkcmVuLmluZGV4T2YoY2hpbGRSb290KSA6IC0xO1xyXG4gICAgY29uc3Qgc2V0Um9vdCA9ICh1cGRhdGVkUm9vdCkgPT4ge1xyXG4gICAgICAgIHJhd0NoaWxkcmVuW2luZGV4XSA9IHVwZGF0ZWRSb290O1xyXG4gICAgICAgIGlmIChkeW5hbWljQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgaWYgKGR5bmFtaWNJbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBkeW5hbWljQ2hpbGRyZW5bZHluYW1pY0luZGV4XSA9IHVwZGF0ZWRSb290O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHVwZGF0ZWRSb290LnBhdGNoRmxhZyA+IDApIHtcclxuICAgICAgICAgICAgICAgIHZub2RlLmR5bmFtaWNDaGlsZHJlbiA9IFsuLi5keW5hbWljQ2hpbGRyZW4sIHVwZGF0ZWRSb290XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gW25vcm1hbGl6ZVZOb2RlKGNoaWxkUm9vdCksIHNldFJvb3RdO1xyXG59O1xyXG5mdW5jdGlvbiBmaWx0ZXJTaW5nbGVSb290KGNoaWxkcmVuKSB7XHJcbiAgICBsZXQgc2luZ2xlUm9vdDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldO1xyXG4gICAgICAgIGlmIChpc1ZOb2RlKGNoaWxkKSkge1xyXG4gICAgICAgICAgICAvLyBpZ25vcmUgdXNlciBjb21tZW50XHJcbiAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBDb21tZW50IHx8IGNoaWxkLmNoaWxkcmVuID09PSAndi1pZicpIHtcclxuICAgICAgICAgICAgICAgIGlmIChzaW5nbGVSb290KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaGFzIG1vcmUgdGhhbiAxIG5vbi1jb21tZW50IGNoaWxkLCByZXR1cm4gbm93XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2luZ2xlUm9vdCA9IGNoaWxkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNpbmdsZVJvb3Q7XHJcbn1cclxuY29uc3QgZ2V0RnVuY3Rpb25hbEZhbGx0aHJvdWdoID0gKGF0dHJzKSA9PiB7XHJcbiAgICBsZXQgcmVzO1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gYXR0cnMpIHtcclxuICAgICAgICBpZiAoa2V5ID09PSAnY2xhc3MnIHx8IGtleSA9PT0gJ3N0eWxlJyB8fCBpc09uKGtleSkpIHtcclxuICAgICAgICAgICAgKHJlcyB8fCAocmVzID0ge30pKVtrZXldID0gYXR0cnNba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG59O1xyXG5jb25zdCBmaWx0ZXJNb2RlbExpc3RlbmVycyA9IChhdHRycywgcHJvcHMpID0+IHtcclxuICAgIGNvbnN0IHJlcyA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gYXR0cnMpIHtcclxuICAgICAgICBpZiAoIWlzTW9kZWxMaXN0ZW5lcihrZXkpIHx8ICEoa2V5LnNsaWNlKDkpIGluIHByb3BzKSkge1xyXG4gICAgICAgICAgICByZXNba2V5XSA9IGF0dHJzW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxufTtcclxuY29uc3QgaXNFbGVtZW50Um9vdCA9ICh2bm9kZSkgPT4ge1xyXG4gICAgcmV0dXJuICh2bm9kZS5zaGFwZUZsYWcgJiAoNiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVCAqLyB8IDEgLyogU2hhcGVGbGFncy5FTEVNRU5UICovKSB8fFxyXG4gICAgICAgIHZub2RlLnR5cGUgPT09IENvbW1lbnQgLy8gcG90ZW50aWFsIHYtaWYgYnJhbmNoIHN3aXRjaFxyXG4gICAgKTtcclxufTtcclxuZnVuY3Rpb24gc2hvdWxkVXBkYXRlQ29tcG9uZW50KHByZXZWTm9kZSwgbmV4dFZOb2RlLCBvcHRpbWl6ZWQpIHtcclxuICAgIGNvbnN0IHsgcHJvcHM6IHByZXZQcm9wcywgY2hpbGRyZW46IHByZXZDaGlsZHJlbiwgY29tcG9uZW50IH0gPSBwcmV2Vk5vZGU7XHJcbiAgICBjb25zdCB7IHByb3BzOiBuZXh0UHJvcHMsIGNoaWxkcmVuOiBuZXh0Q2hpbGRyZW4sIHBhdGNoRmxhZyB9ID0gbmV4dFZOb2RlO1xyXG4gICAgY29uc3QgZW1pdHMgPSBjb21wb25lbnQuZW1pdHNPcHRpb25zO1xyXG4gICAgLy8gUGFyZW50IGNvbXBvbmVudCdzIHJlbmRlciBmdW5jdGlvbiB3YXMgaG90LXVwZGF0ZWQuIFNpbmNlIHRoaXMgbWF5IGhhdmVcclxuICAgIC8vIGNhdXNlZCB0aGUgY2hpbGQgY29tcG9uZW50J3Mgc2xvdHMgY29udGVudCB0byBoYXZlIGNoYW5nZWQsIHdlIG5lZWQgdG9cclxuICAgIC8vIGZvcmNlIHRoZSBjaGlsZCB0byB1cGRhdGUgYXMgd2VsbC5cclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgKHByZXZDaGlsZHJlbiB8fCBuZXh0Q2hpbGRyZW4pICYmIGlzSG1yVXBkYXRpbmcpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIGZvcmNlIGNoaWxkIHVwZGF0ZSBmb3IgcnVudGltZSBkaXJlY3RpdmUgb3IgdHJhbnNpdGlvbiBvbiBjb21wb25lbnQgdm5vZGUuXHJcbiAgICBpZiAobmV4dFZOb2RlLmRpcnMgfHwgbmV4dFZOb2RlLnRyYW5zaXRpb24pIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChvcHRpbWl6ZWQgJiYgcGF0Y2hGbGFnID49IDApIHtcclxuICAgICAgICBpZiAocGF0Y2hGbGFnICYgMTAyNCAvKiBQYXRjaEZsYWdzLkRZTkFNSUNfU0xPVFMgKi8pIHtcclxuICAgICAgICAgICAgLy8gc2xvdCBjb250ZW50IHRoYXQgcmVmZXJlbmNlcyB2YWx1ZXMgdGhhdCBtaWdodCBoYXZlIGNoYW5nZWQsXHJcbiAgICAgICAgICAgIC8vIGUuZy4gaW4gYSB2LWZvclxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBhdGNoRmxhZyAmIDE2IC8qIFBhdGNoRmxhZ3MuRlVMTF9QUk9QUyAqLykge1xyXG4gICAgICAgICAgICBpZiAoIXByZXZQcm9wcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbmV4dFByb3BzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIHByZXNlbmNlIG9mIHRoaXMgZmxhZyBpbmRpY2F0ZXMgcHJvcHMgYXJlIGFsd2F5cyBub24tbnVsbFxyXG4gICAgICAgICAgICByZXR1cm4gaGFzUHJvcHNDaGFuZ2VkKHByZXZQcm9wcywgbmV4dFByb3BzLCBlbWl0cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHBhdGNoRmxhZyAmIDggLyogUGF0Y2hGbGFncy5QUk9QUyAqLykge1xyXG4gICAgICAgICAgICBjb25zdCBkeW5hbWljUHJvcHMgPSBuZXh0Vk5vZGUuZHluYW1pY1Byb3BzO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGR5bmFtaWNQcm9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZHluYW1pY1Byb3BzW2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5leHRQcm9wc1trZXldICE9PSBwcmV2UHJvcHNba2V5XSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICFpc0VtaXRMaXN0ZW5lcihlbWl0cywga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gdGhpcyBwYXRoIGlzIG9ubHkgdGFrZW4gYnkgbWFudWFsbHkgd3JpdHRlbiByZW5kZXIgZnVuY3Rpb25zXHJcbiAgICAgICAgLy8gc28gcHJlc2VuY2Ugb2YgYW55IGNoaWxkcmVuIGxlYWRzIHRvIGEgZm9yY2VkIHVwZGF0ZVxyXG4gICAgICAgIGlmIChwcmV2Q2hpbGRyZW4gfHwgbmV4dENoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIGlmICghbmV4dENoaWxkcmVuIHx8ICFuZXh0Q2hpbGRyZW4uJHN0YWJsZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHByZXZQcm9wcyA9PT0gbmV4dFByb3BzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFwcmV2UHJvcHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhbmV4dFByb3BzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIW5leHRQcm9wcykge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhc1Byb3BzQ2hhbmdlZChwcmV2UHJvcHMsIG5leHRQcm9wcywgZW1pdHMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbmZ1bmN0aW9uIGhhc1Byb3BzQ2hhbmdlZChwcmV2UHJvcHMsIG5leHRQcm9wcywgZW1pdHNPcHRpb25zKSB7XHJcbiAgICBjb25zdCBuZXh0S2V5cyA9IE9iamVjdC5rZXlzKG5leHRQcm9wcyk7XHJcbiAgICBpZiAobmV4dEtleXMubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhwcmV2UHJvcHMpLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuZXh0S2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IG5leHRLZXlzW2ldO1xyXG4gICAgICAgIGlmIChuZXh0UHJvcHNba2V5XSAhPT0gcHJldlByb3BzW2tleV0gJiZcclxuICAgICAgICAgICAgIWlzRW1pdExpc3RlbmVyKGVtaXRzT3B0aW9ucywga2V5KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuZnVuY3Rpb24gdXBkYXRlSE9DSG9zdEVsKHsgdm5vZGUsIHBhcmVudCB9LCBlbCAvLyBIb3N0Tm9kZVxyXG4pIHtcclxuICAgIHdoaWxlIChwYXJlbnQgJiYgcGFyZW50LnN1YlRyZWUgPT09IHZub2RlKSB7XHJcbiAgICAgICAgKHZub2RlID0gcGFyZW50LnZub2RlKS5lbCA9IGVsO1xyXG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XHJcbiAgICB9XHJcbn1cblxuY29uc3QgaXNTdXNwZW5zZSA9ICh0eXBlKSA9PiB0eXBlLl9faXNTdXNwZW5zZTtcclxuLy8gU3VzcGVuc2UgZXhwb3NlcyBhIGNvbXBvbmVudC1saWtlIEFQSSwgYW5kIGlzIHRyZWF0ZWQgbGlrZSBhIGNvbXBvbmVudFxyXG4vLyBpbiB0aGUgY29tcGlsZXIsIGJ1dCBpbnRlcm5hbGx5IGl0J3MgYSBzcGVjaWFsIGJ1aWx0LWluIHR5cGUgdGhhdCBob29rc1xyXG4vLyBkaXJlY3RseSBpbnRvIHRoZSByZW5kZXJlci5cclxuY29uc3QgU3VzcGVuc2VJbXBsID0ge1xyXG4gICAgbmFtZTogJ1N1c3BlbnNlJyxcclxuICAgIC8vIEluIG9yZGVyIHRvIG1ha2UgU3VzcGVuc2UgdHJlZS1zaGFrYWJsZSwgd2UgbmVlZCB0byBhdm9pZCBpbXBvcnRpbmcgaXRcclxuICAgIC8vIGRpcmVjdGx5IGluIHRoZSByZW5kZXJlci4gVGhlIHJlbmRlcmVyIGNoZWNrcyBmb3IgdGhlIF9faXNTdXNwZW5zZSBmbGFnXHJcbiAgICAvLyBvbiBhIHZub2RlJ3MgdHlwZSBhbmQgY2FsbHMgdGhlIGBwcm9jZXNzYCBtZXRob2QsIHBhc3NpbmcgaW4gcmVuZGVyZXJcclxuICAgIC8vIGludGVybmFscy5cclxuICAgIF9faXNTdXNwZW5zZTogdHJ1ZSxcclxuICAgIHByb2Nlc3MobjEsIG4yLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkLCBcclxuICAgIC8vIHBsYXRmb3JtLXNwZWNpZmljIGltcGwgcGFzc2VkIGZyb20gcmVuZGVyZXJcclxuICAgIHJlbmRlcmVySW50ZXJuYWxzKSB7XHJcbiAgICAgICAgaWYgKG4xID09IG51bGwpIHtcclxuICAgICAgICAgICAgbW91bnRTdXNwZW5zZShuMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgcmVuZGVyZXJJbnRlcm5hbHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcGF0Y2hTdXNwZW5zZShuMSwgbjIsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgcmVuZGVyZXJJbnRlcm5hbHMpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBoeWRyYXRlOiBoeWRyYXRlU3VzcGVuc2UsXHJcbiAgICBjcmVhdGU6IGNyZWF0ZVN1c3BlbnNlQm91bmRhcnksXHJcbiAgICBub3JtYWxpemU6IG5vcm1hbGl6ZVN1c3BlbnNlQ2hpbGRyZW5cclxufTtcclxuLy8gRm9yY2UtY2FzdGVkIHB1YmxpYyB0eXBpbmcgZm9yIGggYW5kIFRTWCBwcm9wcyBpbmZlcmVuY2VcclxuY29uc3QgU3VzcGVuc2UgPSAoU3VzcGVuc2VJbXBsICk7XHJcbmZ1bmN0aW9uIHRyaWdnZXJFdmVudCh2bm9kZSwgbmFtZSkge1xyXG4gICAgY29uc3QgZXZlbnRMaXN0ZW5lciA9IHZub2RlLnByb3BzICYmIHZub2RlLnByb3BzW25hbWVdO1xyXG4gICAgaWYgKGlzRnVuY3Rpb24oZXZlbnRMaXN0ZW5lcikpIHtcclxuICAgICAgICBldmVudExpc3RlbmVyKCk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZSh2bm9kZSwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgcmVuZGVyZXJJbnRlcm5hbHMpIHtcclxuICAgIGNvbnN0IHsgcDogcGF0Y2gsIG86IHsgY3JlYXRlRWxlbWVudCB9IH0gPSByZW5kZXJlckludGVybmFscztcclxuICAgIGNvbnN0IGhpZGRlbkNvbnRhaW5lciA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgY29uc3Qgc3VzcGVuc2UgPSAodm5vZGUuc3VzcGVuc2UgPSBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KHZub2RlLCBwYXJlbnRTdXNwZW5zZSwgcGFyZW50Q29tcG9uZW50LCBjb250YWluZXIsIGhpZGRlbkNvbnRhaW5lciwgYW5jaG9yLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQsIHJlbmRlcmVySW50ZXJuYWxzKSk7XHJcbiAgICAvLyBzdGFydCBtb3VudGluZyB0aGUgY29udGVudCBzdWJ0cmVlIGluIGFuIG9mZi1kb20gY29udGFpbmVyXHJcbiAgICBwYXRjaChudWxsLCAoc3VzcGVuc2UucGVuZGluZ0JyYW5jaCA9IHZub2RlLnNzQ29udGVudCksIGhpZGRlbkNvbnRhaW5lciwgbnVsbCwgcGFyZW50Q29tcG9uZW50LCBzdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcyk7XHJcbiAgICAvLyBub3cgY2hlY2sgaWYgd2UgaGF2ZSBlbmNvdW50ZXJlZCBhbnkgYXN5bmMgZGVwc1xyXG4gICAgaWYgKHN1c3BlbnNlLmRlcHMgPiAwKSB7XHJcbiAgICAgICAgLy8gaGFzIGFzeW5jXHJcbiAgICAgICAgLy8gaW52b2tlIEBmYWxsYmFjayBldmVudFxyXG4gICAgICAgIHRyaWdnZXJFdmVudCh2bm9kZSwgJ29uUGVuZGluZycpO1xyXG4gICAgICAgIHRyaWdnZXJFdmVudCh2bm9kZSwgJ29uRmFsbGJhY2snKTtcclxuICAgICAgICAvLyBtb3VudCB0aGUgZmFsbGJhY2sgdHJlZVxyXG4gICAgICAgIHBhdGNoKG51bGwsIHZub2RlLnNzRmFsbGJhY2ssIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIG51bGwsIC8vIGZhbGxiYWNrIHRyZWUgd2lsbCBub3QgaGF2ZSBzdXNwZW5zZSBjb250ZXh0XHJcbiAgICAgICAgaXNTVkcsIHNsb3RTY29wZUlkcyk7XHJcbiAgICAgICAgc2V0QWN0aXZlQnJhbmNoKHN1c3BlbnNlLCB2bm9kZS5zc0ZhbGxiYWNrKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIFN1c3BlbnNlIGhhcyBubyBhc3luYyBkZXBzLiBKdXN0IHJlc29sdmUuXHJcbiAgICAgICAgc3VzcGVuc2UucmVzb2x2ZSgpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHBhdGNoU3VzcGVuc2UobjEsIG4yLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQsIHsgcDogcGF0Y2gsIHVtOiB1bm1vdW50LCBvOiB7IGNyZWF0ZUVsZW1lbnQgfSB9KSB7XHJcbiAgICBjb25zdCBzdXNwZW5zZSA9IChuMi5zdXNwZW5zZSA9IG4xLnN1c3BlbnNlKTtcclxuICAgIHN1c3BlbnNlLnZub2RlID0gbjI7XHJcbiAgICBuMi5lbCA9IG4xLmVsO1xyXG4gICAgY29uc3QgbmV3QnJhbmNoID0gbjIuc3NDb250ZW50O1xyXG4gICAgY29uc3QgbmV3RmFsbGJhY2sgPSBuMi5zc0ZhbGxiYWNrO1xyXG4gICAgY29uc3QgeyBhY3RpdmVCcmFuY2gsIHBlbmRpbmdCcmFuY2gsIGlzSW5GYWxsYmFjaywgaXNIeWRyYXRpbmcgfSA9IHN1c3BlbnNlO1xyXG4gICAgaWYgKHBlbmRpbmdCcmFuY2gpIHtcclxuICAgICAgICBzdXNwZW5zZS5wZW5kaW5nQnJhbmNoID0gbmV3QnJhbmNoO1xyXG4gICAgICAgIGlmIChpc1NhbWVWTm9kZVR5cGUobmV3QnJhbmNoLCBwZW5kaW5nQnJhbmNoKSkge1xyXG4gICAgICAgICAgICAvLyBzYW1lIHJvb3QgdHlwZSBidXQgY29udGVudCBtYXkgaGF2ZSBjaGFuZ2VkLlxyXG4gICAgICAgICAgICBwYXRjaChwZW5kaW5nQnJhbmNoLCBuZXdCcmFuY2gsIHN1c3BlbnNlLmhpZGRlbkNvbnRhaW5lciwgbnVsbCwgcGFyZW50Q29tcG9uZW50LCBzdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgaWYgKHN1c3BlbnNlLmRlcHMgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgc3VzcGVuc2UucmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzSW5GYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgcGF0Y2goYWN0aXZlQnJhbmNoLCBuZXdGYWxsYmFjaywgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgbnVsbCwgLy8gZmFsbGJhY2sgdHJlZSB3aWxsIG5vdCBoYXZlIHN1c3BlbnNlIGNvbnRleHRcclxuICAgICAgICAgICAgICAgIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVCcmFuY2goc3VzcGVuc2UsIG5ld0ZhbGxiYWNrKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gdG9nZ2xlZCBiZWZvcmUgcGVuZGluZyB0cmVlIGlzIHJlc29sdmVkXHJcbiAgICAgICAgICAgIHN1c3BlbnNlLnBlbmRpbmdJZCsrO1xyXG4gICAgICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHtcclxuICAgICAgICAgICAgICAgIC8vIGlmIHRvZ2dsZWQgYmVmb3JlIGh5ZHJhdGlvbiBpcyBmaW5pc2hlZCwgdGhlIGN1cnJlbnQgRE9NIHRyZWUgaXNcclxuICAgICAgICAgICAgICAgIC8vIG5vIGxvbmdlciB2YWxpZC4gc2V0IGl0IGFzIHRoZSBhY3RpdmUgYnJhbmNoIHNvIGl0IHdpbGwgYmUgdW5tb3VudGVkXHJcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHJlc29sdmVkXHJcbiAgICAgICAgICAgICAgICBzdXNwZW5zZS5pc0h5ZHJhdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgc3VzcGVuc2UuYWN0aXZlQnJhbmNoID0gcGVuZGluZ0JyYW5jaDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHVubW91bnQocGVuZGluZ0JyYW5jaCwgcGFyZW50Q29tcG9uZW50LCBzdXNwZW5zZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gaW5jcmVtZW50IHBlbmRpbmcgSUQuIHRoaXMgaXMgdXNlZCB0byBpbnZhbGlkYXRlIGFzeW5jIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICAvLyByZXNldCBzdXNwZW5zZSBzdGF0ZVxyXG4gICAgICAgICAgICBzdXNwZW5zZS5kZXBzID0gMDtcclxuICAgICAgICAgICAgLy8gZGlzY2FyZCBlZmZlY3RzIGZyb20gcGVuZGluZyBicmFuY2hcclxuICAgICAgICAgICAgc3VzcGVuc2UuZWZmZWN0cy5sZW5ndGggPSAwO1xyXG4gICAgICAgICAgICAvLyBkaXNjYXJkIHByZXZpb3VzIGNvbnRhaW5lclxyXG4gICAgICAgICAgICBzdXNwZW5zZS5oaWRkZW5Db250YWluZXIgPSBjcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICAgICAgaWYgKGlzSW5GYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBpbiBmYWxsYmFjayBzdGF0ZVxyXG4gICAgICAgICAgICAgICAgcGF0Y2gobnVsbCwgbmV3QnJhbmNoLCBzdXNwZW5zZS5oaWRkZW5Db250YWluZXIsIG51bGwsIHBhcmVudENvbXBvbmVudCwgc3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3VzcGVuc2UuZGVwcyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VzcGVuc2UucmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2goYWN0aXZlQnJhbmNoLCBuZXdGYWxsYmFjaywgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgbnVsbCwgLy8gZmFsbGJhY2sgdHJlZSB3aWxsIG5vdCBoYXZlIHN1c3BlbnNlIGNvbnRleHRcclxuICAgICAgICAgICAgICAgICAgICBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldEFjdGl2ZUJyYW5jaChzdXNwZW5zZSwgbmV3RmFsbGJhY2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGFjdGl2ZUJyYW5jaCAmJiBpc1NhbWVWTm9kZVR5cGUobmV3QnJhbmNoLCBhY3RpdmVCcmFuY2gpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyB0b2dnbGVkIFwiYmFja1wiIHRvIGN1cnJlbnQgYWN0aXZlIGJyYW5jaFxyXG4gICAgICAgICAgICAgICAgcGF0Y2goYWN0aXZlQnJhbmNoLCBuZXdCcmFuY2gsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICAgICAgLy8gZm9yY2UgcmVzb2x2ZVxyXG4gICAgICAgICAgICAgICAgc3VzcGVuc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIHN3aXRjaGVkIHRvIGEgM3JkIGJyYW5jaFxyXG4gICAgICAgICAgICAgICAgcGF0Y2gobnVsbCwgbmV3QnJhbmNoLCBzdXNwZW5zZS5oaWRkZW5Db250YWluZXIsIG51bGwsIHBhcmVudENvbXBvbmVudCwgc3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3VzcGVuc2UuZGVwcyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VzcGVuc2UucmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGFjdGl2ZUJyYW5jaCAmJiBpc1NhbWVWTm9kZVR5cGUobmV3QnJhbmNoLCBhY3RpdmVCcmFuY2gpKSB7XHJcbiAgICAgICAgICAgIC8vIHJvb3QgZGlkIG5vdCBjaGFuZ2UsIGp1c3Qgbm9ybWFsIHBhdGNoXHJcbiAgICAgICAgICAgIHBhdGNoKGFjdGl2ZUJyYW5jaCwgbmV3QnJhbmNoLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBzdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgc2V0QWN0aXZlQnJhbmNoKHN1c3BlbnNlLCBuZXdCcmFuY2gpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gcm9vdCBub2RlIHRvZ2dsZWRcclxuICAgICAgICAgICAgLy8gaW52b2tlIEBwZW5kaW5nIGV2ZW50XHJcbiAgICAgICAgICAgIHRyaWdnZXJFdmVudChuMiwgJ29uUGVuZGluZycpO1xyXG4gICAgICAgICAgICAvLyBtb3VudCBwZW5kaW5nIGJyYW5jaCBpbiBvZmYtZG9tIGNvbnRhaW5lclxyXG4gICAgICAgICAgICBzdXNwZW5zZS5wZW5kaW5nQnJhbmNoID0gbmV3QnJhbmNoO1xyXG4gICAgICAgICAgICBzdXNwZW5zZS5wZW5kaW5nSWQrKztcclxuICAgICAgICAgICAgcGF0Y2gobnVsbCwgbmV3QnJhbmNoLCBzdXNwZW5zZS5oaWRkZW5Db250YWluZXIsIG51bGwsIHBhcmVudENvbXBvbmVudCwgc3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgIGlmIChzdXNwZW5zZS5kZXBzIDw9IDApIHtcclxuICAgICAgICAgICAgICAgIC8vIGluY29taW5nIGJyYW5jaCBoYXMgbm8gYXN5bmMgZGVwcywgcmVzb2x2ZSBub3cuXHJcbiAgICAgICAgICAgICAgICBzdXNwZW5zZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRpbWVvdXQsIHBlbmRpbmdJZCB9ID0gc3VzcGVuc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAodGltZW91dCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1c3BlbnNlLnBlbmRpbmdJZCA9PT0gcGVuZGluZ0lkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXNwZW5zZS5mYWxsYmFjayhuZXdGYWxsYmFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCB0aW1lb3V0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRpbWVvdXQgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBzdXNwZW5zZS5mYWxsYmFjayhuZXdGYWxsYmFjayk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxubGV0IGhhc1dhcm5lZCA9IGZhbHNlO1xyXG5mdW5jdGlvbiBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KHZub2RlLCBwYXJlbnQsIHBhcmVudENvbXBvbmVudCwgY29udGFpbmVyLCBoaWRkZW5Db250YWluZXIsIGFuY2hvciwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkLCByZW5kZXJlckludGVybmFscywgaXNIeWRyYXRpbmcgPSBmYWxzZSkge1xyXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFmYWxzZSAmJiAhaGFzV2FybmVkKSB7XHJcbiAgICAgICAgaGFzV2FybmVkID0gdHJ1ZTtcclxuICAgICAgICAvLyBAdHMtaWdub3JlIGBjb25zb2xlLmluZm9gIGNhbm5vdCBiZSBudWxsIGVycm9yXHJcbiAgICAgICAgY29uc29sZVtjb25zb2xlLmluZm8gPyAnaW5mbycgOiAnbG9nJ10oYDxTdXNwZW5zZT4gaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUgYW5kIGl0cyBBUEkgd2lsbCBsaWtlbHkgY2hhbmdlLmApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBwOiBwYXRjaCwgbTogbW92ZSwgdW06IHVubW91bnQsIG46IG5leHQsIG86IHsgcGFyZW50Tm9kZSwgcmVtb3ZlIH0gfSA9IHJlbmRlcmVySW50ZXJuYWxzO1xyXG4gICAgY29uc3QgdGltZW91dCA9IHRvTnVtYmVyKHZub2RlLnByb3BzICYmIHZub2RlLnByb3BzLnRpbWVvdXQpO1xyXG4gICAgY29uc3Qgc3VzcGVuc2UgPSB7XHJcbiAgICAgICAgdm5vZGUsXHJcbiAgICAgICAgcGFyZW50LFxyXG4gICAgICAgIHBhcmVudENvbXBvbmVudCxcclxuICAgICAgICBpc1NWRyxcclxuICAgICAgICBjb250YWluZXIsXHJcbiAgICAgICAgaGlkZGVuQ29udGFpbmVyLFxyXG4gICAgICAgIGFuY2hvcixcclxuICAgICAgICBkZXBzOiAwLFxyXG4gICAgICAgIHBlbmRpbmdJZDogMCxcclxuICAgICAgICB0aW1lb3V0OiB0eXBlb2YgdGltZW91dCA9PT0gJ251bWJlcicgPyB0aW1lb3V0IDogLTEsXHJcbiAgICAgICAgYWN0aXZlQnJhbmNoOiBudWxsLFxyXG4gICAgICAgIHBlbmRpbmdCcmFuY2g6IG51bGwsXHJcbiAgICAgICAgaXNJbkZhbGxiYWNrOiB0cnVlLFxyXG4gICAgICAgIGlzSHlkcmF0aW5nLFxyXG4gICAgICAgIGlzVW5tb3VudGVkOiBmYWxzZSxcclxuICAgICAgICBlZmZlY3RzOiBbXSxcclxuICAgICAgICByZXNvbHZlKHJlc3VtZSA9IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgIGlmICghcmVzdW1lICYmICFzdXNwZW5zZS5wZW5kaW5nQnJhbmNoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBzdXNwZW5zZS5yZXNvbHZlKCkgaXMgY2FsbGVkIHdpdGhvdXQgYSBwZW5kaW5nIGJyYW5jaC5gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChzdXNwZW5zZS5pc1VubW91bnRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgc3VzcGVuc2UucmVzb2x2ZSgpIGlzIGNhbGxlZCBvbiBhbiBhbHJlYWR5IHVubW91bnRlZCBzdXNwZW5zZSBib3VuZGFyeS5gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB7IHZub2RlLCBhY3RpdmVCcmFuY2gsIHBlbmRpbmdCcmFuY2gsIHBlbmRpbmdJZCwgZWZmZWN0cywgcGFyZW50Q29tcG9uZW50LCBjb250YWluZXIgfSA9IHN1c3BlbnNlO1xyXG4gICAgICAgICAgICBpZiAoc3VzcGVuc2UuaXNIeWRyYXRpbmcpIHtcclxuICAgICAgICAgICAgICAgIHN1c3BlbnNlLmlzSHlkcmF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoIXJlc3VtZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGVsYXlFbnRlciA9IGFjdGl2ZUJyYW5jaCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIHBlbmRpbmdCcmFuY2gudHJhbnNpdGlvbiAmJlxyXG4gICAgICAgICAgICAgICAgICAgIHBlbmRpbmdCcmFuY2gudHJhbnNpdGlvbi5tb2RlID09PSAnb3V0LWluJztcclxuICAgICAgICAgICAgICAgIGlmIChkZWxheUVudGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlQnJhbmNoLnRyYW5zaXRpb24uYWZ0ZXJMZWF2ZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdJZCA9PT0gc3VzcGVuc2UucGVuZGluZ0lkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlKHBlbmRpbmdCcmFuY2gsIGNvbnRhaW5lciwgYW5jaG9yLCAwIC8qIE1vdmVUeXBlLkVOVEVSICovKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGluaXRpYWwgYW5jaG9yIG9uIG1vdW50XHJcbiAgICAgICAgICAgICAgICBsZXQgeyBhbmNob3IgfSA9IHN1c3BlbnNlO1xyXG4gICAgICAgICAgICAgICAgLy8gdW5tb3VudCBjdXJyZW50IGFjdGl2ZSB0cmVlXHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlQnJhbmNoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGZhbGxiYWNrIHRyZWUgd2FzIG1vdW50ZWQsIGl0IG1heSBoYXZlIGJlZW4gbW92ZWRcclxuICAgICAgICAgICAgICAgICAgICAvLyBhcyBwYXJ0IG9mIGEgcGFyZW50IHN1c3BlbnNlLiBnZXQgdGhlIGxhdGVzdCBhbmNob3IgZm9yIGluc2VydGlvblxyXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvciA9IG5leHQoYWN0aXZlQnJhbmNoKTtcclxuICAgICAgICAgICAgICAgICAgICB1bm1vdW50KGFjdGl2ZUJyYW5jaCwgcGFyZW50Q29tcG9uZW50LCBzdXNwZW5zZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRlbGF5RW50ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBtb3ZlIGNvbnRlbnQgZnJvbSBvZmYtZG9tIGNvbnRhaW5lciB0byBhY3R1YWwgY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgbW92ZShwZW5kaW5nQnJhbmNoLCBjb250YWluZXIsIGFuY2hvciwgMCAvKiBNb3ZlVHlwZS5FTlRFUiAqLyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2V0QWN0aXZlQnJhbmNoKHN1c3BlbnNlLCBwZW5kaW5nQnJhbmNoKTtcclxuICAgICAgICAgICAgc3VzcGVuc2UucGVuZGluZ0JyYW5jaCA9IG51bGw7XHJcbiAgICAgICAgICAgIHN1c3BlbnNlLmlzSW5GYWxsYmFjayA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyBmbHVzaCBidWZmZXJlZCBlZmZlY3RzXHJcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGEgcGVuZGluZyBwYXJlbnQgc3VzcGVuc2VcclxuICAgICAgICAgICAgbGV0IHBhcmVudCA9IHN1c3BlbnNlLnBhcmVudDtcclxuICAgICAgICAgICAgbGV0IGhhc1VucmVzb2x2ZWRBbmNlc3RvciA9IGZhbHNlO1xyXG4gICAgICAgICAgICB3aGlsZSAocGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50LnBlbmRpbmdCcmFuY2gpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBmb3VuZCBhIHBlbmRpbmcgcGFyZW50IHN1c3BlbnNlLCBtZXJnZSBidWZmZXJlZCBwb3N0IGpvYnNcclxuICAgICAgICAgICAgICAgICAgICAvLyBpbnRvIHRoYXQgcGFyZW50XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50LmVmZmVjdHMucHVzaCguLi5lZmZlY3RzKTtcclxuICAgICAgICAgICAgICAgICAgICBoYXNVbnJlc29sdmVkQW5jZXN0b3IgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBubyBwZW5kaW5nIHBhcmVudCBzdXNwZW5zZSwgZmx1c2ggYWxsIGpvYnNcclxuICAgICAgICAgICAgaWYgKCFoYXNVbnJlc29sdmVkQW5jZXN0b3IpIHtcclxuICAgICAgICAgICAgICAgIHF1ZXVlUG9zdEZsdXNoQ2IoZWZmZWN0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3VzcGVuc2UuZWZmZWN0cyA9IFtdO1xyXG4gICAgICAgICAgICAvLyBpbnZva2UgQHJlc29sdmUgZXZlbnRcclxuICAgICAgICAgICAgdHJpZ2dlckV2ZW50KHZub2RlLCAnb25SZXNvbHZlJyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBmYWxsYmFjayhmYWxsYmFja1ZOb2RlKSB7XHJcbiAgICAgICAgICAgIGlmICghc3VzcGVuc2UucGVuZGluZ0JyYW5jaCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHsgdm5vZGUsIGFjdGl2ZUJyYW5jaCwgcGFyZW50Q29tcG9uZW50LCBjb250YWluZXIsIGlzU1ZHIH0gPSBzdXNwZW5zZTtcclxuICAgICAgICAgICAgLy8gaW52b2tlIEBmYWxsYmFjayBldmVudFxyXG4gICAgICAgICAgICB0cmlnZ2VyRXZlbnQodm5vZGUsICdvbkZhbGxiYWNrJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFuY2hvciA9IG5leHQoYWN0aXZlQnJhbmNoKTtcclxuICAgICAgICAgICAgY29uc3QgbW91bnRGYWxsYmFjayA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghc3VzcGVuc2UuaXNJbkZhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gbW91bnQgdGhlIGZhbGxiYWNrIHRyZWVcclxuICAgICAgICAgICAgICAgIHBhdGNoKG51bGwsIGZhbGxiYWNrVk5vZGUsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIG51bGwsIC8vIGZhbGxiYWNrIHRyZWUgd2lsbCBub3QgaGF2ZSBzdXNwZW5zZSBjb250ZXh0XHJcbiAgICAgICAgICAgICAgICBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlQnJhbmNoKHN1c3BlbnNlLCBmYWxsYmFja1ZOb2RlKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY29uc3QgZGVsYXlFbnRlciA9IGZhbGxiYWNrVk5vZGUudHJhbnNpdGlvbiAmJiBmYWxsYmFja1ZOb2RlLnRyYW5zaXRpb24ubW9kZSA9PT0gJ291dC1pbic7XHJcbiAgICAgICAgICAgIGlmIChkZWxheUVudGVyKSB7XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVCcmFuY2gudHJhbnNpdGlvbi5hZnRlckxlYXZlID0gbW91bnRGYWxsYmFjaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdXNwZW5zZS5pc0luRmFsbGJhY2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAvLyB1bm1vdW50IGN1cnJlbnQgYWN0aXZlIGJyYW5jaFxyXG4gICAgICAgICAgICB1bm1vdW50KGFjdGl2ZUJyYW5jaCwgcGFyZW50Q29tcG9uZW50LCBudWxsLCAvLyBubyBzdXNwZW5zZSBzbyB1bm1vdW50IGhvb2tzIGZpcmUgbm93XHJcbiAgICAgICAgICAgIHRydWUgLy8gc2hvdWxkUmVtb3ZlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmICghZGVsYXlFbnRlcikge1xyXG4gICAgICAgICAgICAgICAgbW91bnRGYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBtb3ZlKGNvbnRhaW5lciwgYW5jaG9yLCB0eXBlKSB7XHJcbiAgICAgICAgICAgIHN1c3BlbnNlLmFjdGl2ZUJyYW5jaCAmJlxyXG4gICAgICAgICAgICAgICAgbW92ZShzdXNwZW5zZS5hY3RpdmVCcmFuY2gsIGNvbnRhaW5lciwgYW5jaG9yLCB0eXBlKTtcclxuICAgICAgICAgICAgc3VzcGVuc2UuY29udGFpbmVyID0gY29udGFpbmVyO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbmV4dCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHN1c3BlbnNlLmFjdGl2ZUJyYW5jaCAmJiBuZXh0KHN1c3BlbnNlLmFjdGl2ZUJyYW5jaCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZWdpc3RlckRlcChpbnN0YW5jZSwgc2V0dXBSZW5kZXJFZmZlY3QpIHtcclxuICAgICAgICAgICAgY29uc3QgaXNJblBlbmRpbmdTdXNwZW5zZSA9ICEhc3VzcGVuc2UucGVuZGluZ0JyYW5jaDtcclxuICAgICAgICAgICAgaWYgKGlzSW5QZW5kaW5nU3VzcGVuc2UpIHtcclxuICAgICAgICAgICAgICAgIHN1c3BlbnNlLmRlcHMrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBoeWRyYXRlZEVsID0gaW5zdGFuY2Uudm5vZGUuZWw7XHJcbiAgICAgICAgICAgIGluc3RhbmNlXHJcbiAgICAgICAgICAgICAgICAuYXN5bmNEZXAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKGVyciwgaW5zdGFuY2UsIDAgLyogRXJyb3JDb2Rlcy5TRVRVUF9GVU5DVElPTiAqLyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAudGhlbihhc3luY1NldHVwUmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIHJldHJ5IHdoZW4gdGhlIHNldHVwKCkgcHJvbWlzZSByZXNvbHZlcy5cclxuICAgICAgICAgICAgICAgIC8vIGNvbXBvbmVudCBtYXkgaGF2ZSBiZWVuIHVubW91bnRlZCBiZWZvcmUgcmVzb2x2ZS5cclxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5pc1VubW91bnRlZCB8fFxyXG4gICAgICAgICAgICAgICAgICAgIHN1c3BlbnNlLmlzVW5tb3VudGVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgc3VzcGVuc2UucGVuZGluZ0lkICE9PSBpbnN0YW5jZS5zdXNwZW5zZUlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gcmV0cnkgZnJvbSB0aGlzIGNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuYXN5bmNSZXNvbHZlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHZub2RlIH0gPSBpbnN0YW5jZTtcclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBwdXNoV2FybmluZ0NvbnRleHQodm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaGFuZGxlU2V0dXBSZXN1bHQoaW5zdGFuY2UsIGFzeW5jU2V0dXBSZXN1bHQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIGlmIChoeWRyYXRlZEVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdm5vZGUgbWF5IGhhdmUgYmVlbiByZXBsYWNlZCBpZiBhbiB1cGRhdGUgaGFwcGVuZWQgYmVmb3JlIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGFzeW5jIGRlcCBpcyByZXNvbHZlZC5cclxuICAgICAgICAgICAgICAgICAgICB2bm9kZS5lbCA9IGh5ZHJhdGVkRWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlciA9ICFoeWRyYXRlZEVsICYmIGluc3RhbmNlLnN1YlRyZWUuZWw7XHJcbiAgICAgICAgICAgICAgICBzZXR1cFJlbmRlckVmZmVjdChpbnN0YW5jZSwgdm5vZGUsIFxyXG4gICAgICAgICAgICAgICAgLy8gY29tcG9uZW50IG1heSBoYXZlIGJlZW4gbW92ZWQgYmVmb3JlIHJlc29sdmUuXHJcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGlzIG5vdCBhIGh5ZHJhdGlvbiwgaW5zdGFuY2Uuc3ViVHJlZSB3aWxsIGJlIHRoZSBjb21tZW50XHJcbiAgICAgICAgICAgICAgICAvLyBwbGFjZWhvbGRlci5cclxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUoaHlkcmF0ZWRFbCB8fCBpbnN0YW5jZS5zdWJUcmVlLmVsKSwgXHJcbiAgICAgICAgICAgICAgICAvLyBhbmNob3Igd2lsbCBub3QgYmUgdXNlZCBpZiB0aGlzIGlzIGh5ZHJhdGlvbiwgc28gb25seSBuZWVkIHRvXHJcbiAgICAgICAgICAgICAgICAvLyBjb25zaWRlciB0aGUgY29tbWVudCBwbGFjZWhvbGRlciBjYXNlLlxyXG4gICAgICAgICAgICAgICAgaHlkcmF0ZWRFbCA/IG51bGwgOiBuZXh0KGluc3RhbmNlLnN1YlRyZWUpLCBzdXNwZW5zZSwgaXNTVkcsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocGxhY2Vob2xkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZW1vdmUocGxhY2Vob2xkZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdXBkYXRlSE9DSG9zdEVsKGluc3RhbmNlLCB2bm9kZS5lbCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9wV2FybmluZ0NvbnRleHQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIG9ubHkgZGVjcmVhc2UgZGVwcyBjb3VudCBpZiBzdXNwZW5zZSBpcyBub3QgYWxyZWFkeSByZXNvbHZlZFxyXG4gICAgICAgICAgICAgICAgaWYgKGlzSW5QZW5kaW5nU3VzcGVuc2UgJiYgLS1zdXNwZW5zZS5kZXBzID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VzcGVuc2UucmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHVubW91bnQocGFyZW50U3VzcGVuc2UsIGRvUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgIHN1c3BlbnNlLmlzVW5tb3VudGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHN1c3BlbnNlLmFjdGl2ZUJyYW5jaCkge1xyXG4gICAgICAgICAgICAgICAgdW5tb3VudChzdXNwZW5zZS5hY3RpdmVCcmFuY2gsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGRvUmVtb3ZlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc3VzcGVuc2UucGVuZGluZ0JyYW5jaCkge1xyXG4gICAgICAgICAgICAgICAgdW5tb3VudChzdXNwZW5zZS5wZW5kaW5nQnJhbmNoLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBkb1JlbW92ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHN1c3BlbnNlO1xyXG59XHJcbmZ1bmN0aW9uIGh5ZHJhdGVTdXNwZW5zZShub2RlLCB2bm9kZSwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkLCByZW5kZXJlckludGVybmFscywgaHlkcmF0ZU5vZGUpIHtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAqL1xyXG4gICAgY29uc3Qgc3VzcGVuc2UgPSAodm5vZGUuc3VzcGVuc2UgPSBjcmVhdGVTdXNwZW5zZUJvdW5kYXJ5KHZub2RlLCBwYXJlbnRTdXNwZW5zZSwgcGFyZW50Q29tcG9uZW50LCBub2RlLnBhcmVudE5vZGUsIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBudWxsLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQsIHJlbmRlcmVySW50ZXJuYWxzLCB0cnVlIC8qIGh5ZHJhdGluZyAqLykpO1xyXG4gICAgLy8gdGhlcmUgYXJlIHR3byBwb3NzaWJsZSBzY2VuYXJpb3MgZm9yIHNlcnZlci1yZW5kZXJlZCBzdXNwZW5zZTpcclxuICAgIC8vIC0gc3VjY2Vzczogc3NyIGNvbnRlbnQgc2hvdWxkIGJlIGZ1bGx5IHJlc29sdmVkXHJcbiAgICAvLyAtIGZhaWx1cmU6IHNzciBjb250ZW50IHNob3VsZCBiZSB0aGUgZmFsbGJhY2sgYnJhbmNoLlxyXG4gICAgLy8gaG93ZXZlciwgb24gdGhlIGNsaWVudCB3ZSBkb24ndCByZWFsbHkga25vdyBpZiBpdCBoYXMgZmFpbGVkIG9yIG5vdFxyXG4gICAgLy8gYXR0ZW1wdCB0byBoeWRyYXRlIHRoZSBET00gYXNzdW1pbmcgaXQgaGFzIHN1Y2NlZWRlZCwgYnV0IHdlIHN0aWxsXHJcbiAgICAvLyBuZWVkIHRvIGNvbnN0cnVjdCBhIHN1c3BlbnNlIGJvdW5kYXJ5IGZpcnN0XHJcbiAgICBjb25zdCByZXN1bHQgPSBoeWRyYXRlTm9kZShub2RlLCAoc3VzcGVuc2UucGVuZGluZ0JyYW5jaCA9IHZub2RlLnNzQ29udGVudCksIHBhcmVudENvbXBvbmVudCwgc3VzcGVuc2UsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgIGlmIChzdXNwZW5zZS5kZXBzID09PSAwKSB7XHJcbiAgICAgICAgc3VzcGVuc2UucmVzb2x2ZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzICovXHJcbn1cclxuZnVuY3Rpb24gbm9ybWFsaXplU3VzcGVuc2VDaGlsZHJlbih2bm9kZSkge1xyXG4gICAgY29uc3QgeyBzaGFwZUZsYWcsIGNoaWxkcmVuIH0gPSB2bm9kZTtcclxuICAgIGNvbnN0IGlzU2xvdENoaWxkcmVuID0gc2hhcGVGbGFnICYgMzIgLyogU2hhcGVGbGFncy5TTE9UU19DSElMRFJFTiAqLztcclxuICAgIHZub2RlLnNzQ29udGVudCA9IG5vcm1hbGl6ZVN1c3BlbnNlU2xvdChpc1Nsb3RDaGlsZHJlbiA/IGNoaWxkcmVuLmRlZmF1bHQgOiBjaGlsZHJlbik7XHJcbiAgICB2bm9kZS5zc0ZhbGxiYWNrID0gaXNTbG90Q2hpbGRyZW5cclxuICAgICAgICA/IG5vcm1hbGl6ZVN1c3BlbnNlU2xvdChjaGlsZHJlbi5mYWxsYmFjaylcclxuICAgICAgICA6IGNyZWF0ZVZOb2RlKENvbW1lbnQpO1xyXG59XHJcbmZ1bmN0aW9uIG5vcm1hbGl6ZVN1c3BlbnNlU2xvdChzKSB7XHJcbiAgICBsZXQgYmxvY2s7XHJcbiAgICBpZiAoaXNGdW5jdGlvbihzKSkge1xyXG4gICAgICAgIGNvbnN0IHRyYWNrQmxvY2sgPSBpc0Jsb2NrVHJlZUVuYWJsZWQgJiYgcy5fYztcclxuICAgICAgICBpZiAodHJhY2tCbG9jaykge1xyXG4gICAgICAgICAgICAvLyBkaXNhYmxlVHJhY2tpbmc6IGZhbHNlXHJcbiAgICAgICAgICAgIC8vIGFsbG93IGJsb2NrIHRyYWNraW5nIGZvciBjb21waWxlZCBzbG90c1xyXG4gICAgICAgICAgICAvLyAoc2VlIC4vY29tcG9uZW50UmVuZGVyQ29udGV4dC50cylcclxuICAgICAgICAgICAgcy5fZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBvcGVuQmxvY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcyA9IHMoKTtcclxuICAgICAgICBpZiAodHJhY2tCbG9jaykge1xyXG4gICAgICAgICAgICBzLl9kID0gdHJ1ZTtcclxuICAgICAgICAgICAgYmxvY2sgPSBjdXJyZW50QmxvY2s7XHJcbiAgICAgICAgICAgIGNsb3NlQmxvY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaXNBcnJheShzKSkge1xyXG4gICAgICAgIGNvbnN0IHNpbmdsZUNoaWxkID0gZmlsdGVyU2luZ2xlUm9vdChzKTtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFzaW5nbGVDaGlsZCkge1xyXG4gICAgICAgICAgICB3YXJuKGA8U3VzcGVuc2U+IHNsb3RzIGV4cGVjdCBhIHNpbmdsZSByb290IG5vZGUuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHMgPSBzaW5nbGVDaGlsZDtcclxuICAgIH1cclxuICAgIHMgPSBub3JtYWxpemVWTm9kZShzKTtcclxuICAgIGlmIChibG9jayAmJiAhcy5keW5hbWljQ2hpbGRyZW4pIHtcclxuICAgICAgICBzLmR5bmFtaWNDaGlsZHJlbiA9IGJsb2NrLmZpbHRlcihjID0+IGMgIT09IHMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHM7XHJcbn1cclxuZnVuY3Rpb24gcXVldWVFZmZlY3RXaXRoU3VzcGVuc2UoZm4sIHN1c3BlbnNlKSB7XHJcbiAgICBpZiAoc3VzcGVuc2UgJiYgc3VzcGVuc2UucGVuZGluZ0JyYW5jaCkge1xyXG4gICAgICAgIGlmIChpc0FycmF5KGZuKSkge1xyXG4gICAgICAgICAgICBzdXNwZW5zZS5lZmZlY3RzLnB1c2goLi4uZm4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc3VzcGVuc2UuZWZmZWN0cy5wdXNoKGZuKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBxdWV1ZVBvc3RGbHVzaENiKGZuKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBzZXRBY3RpdmVCcmFuY2goc3VzcGVuc2UsIGJyYW5jaCkge1xyXG4gICAgc3VzcGVuc2UuYWN0aXZlQnJhbmNoID0gYnJhbmNoO1xyXG4gICAgY29uc3QgeyB2bm9kZSwgcGFyZW50Q29tcG9uZW50IH0gPSBzdXNwZW5zZTtcclxuICAgIGNvbnN0IGVsID0gKHZub2RlLmVsID0gYnJhbmNoLmVsKTtcclxuICAgIC8vIGluIGNhc2Ugc3VzcGVuc2UgaXMgdGhlIHJvb3Qgbm9kZSBvZiBhIGNvbXBvbmVudCxcclxuICAgIC8vIHJlY3Vyc2l2ZWx5IHVwZGF0ZSB0aGUgSE9DIGVsXHJcbiAgICBpZiAocGFyZW50Q29tcG9uZW50ICYmIHBhcmVudENvbXBvbmVudC5zdWJUcmVlID09PSB2bm9kZSkge1xyXG4gICAgICAgIHBhcmVudENvbXBvbmVudC52bm9kZS5lbCA9IGVsO1xyXG4gICAgICAgIHVwZGF0ZUhPQ0hvc3RFbChwYXJlbnRDb21wb25lbnQsIGVsKTtcclxuICAgIH1cclxufVxuXG5mdW5jdGlvbiBwcm92aWRlKGtleSwgdmFsdWUpIHtcclxuICAgIGlmICghY3VycmVudEluc3RhbmNlKSB7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICB3YXJuKGBwcm92aWRlKCkgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgc2V0dXAoKS5gKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBsZXQgcHJvdmlkZXMgPSBjdXJyZW50SW5zdGFuY2UucHJvdmlkZXM7XHJcbiAgICAgICAgLy8gYnkgZGVmYXVsdCBhbiBpbnN0YW5jZSBpbmhlcml0cyBpdHMgcGFyZW50J3MgcHJvdmlkZXMgb2JqZWN0XHJcbiAgICAgICAgLy8gYnV0IHdoZW4gaXQgbmVlZHMgdG8gcHJvdmlkZSB2YWx1ZXMgb2YgaXRzIG93biwgaXQgY3JlYXRlcyBpdHNcclxuICAgICAgICAvLyBvd24gcHJvdmlkZXMgb2JqZWN0IHVzaW5nIHBhcmVudCBwcm92aWRlcyBvYmplY3QgYXMgcHJvdG90eXBlLlxyXG4gICAgICAgIC8vIHRoaXMgd2F5IGluIGBpbmplY3RgIHdlIGNhbiBzaW1wbHkgbG9vayB1cCBpbmplY3Rpb25zIGZyb20gZGlyZWN0XHJcbiAgICAgICAgLy8gcGFyZW50IGFuZCBsZXQgdGhlIHByb3RvdHlwZSBjaGFpbiBkbyB0aGUgd29yay5cclxuICAgICAgICBjb25zdCBwYXJlbnRQcm92aWRlcyA9IGN1cnJlbnRJbnN0YW5jZS5wYXJlbnQgJiYgY3VycmVudEluc3RhbmNlLnBhcmVudC5wcm92aWRlcztcclxuICAgICAgICBpZiAocGFyZW50UHJvdmlkZXMgPT09IHByb3ZpZGVzKSB7XHJcbiAgICAgICAgICAgIHByb3ZpZGVzID0gY3VycmVudEluc3RhbmNlLnByb3ZpZGVzID0gT2JqZWN0LmNyZWF0ZShwYXJlbnRQcm92aWRlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFRTIGRvZXNuJ3QgYWxsb3cgc3ltYm9sIGFzIGluZGV4IHR5cGVcclxuICAgICAgICBwcm92aWRlc1trZXldID0gdmFsdWU7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gaW5qZWN0KGtleSwgZGVmYXVsdFZhbHVlLCB0cmVhdERlZmF1bHRBc0ZhY3RvcnkgPSBmYWxzZSkge1xyXG4gICAgLy8gZmFsbGJhY2sgdG8gYGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZWAgc28gdGhhdCB0aGlzIGNhbiBiZSBjYWxsZWQgaW5cclxuICAgIC8vIGEgZnVuY3Rpb25hbCBjb21wb25lbnRcclxuICAgIGNvbnN0IGluc3RhbmNlID0gY3VycmVudEluc3RhbmNlIHx8IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZTtcclxuICAgIGlmIChpbnN0YW5jZSkge1xyXG4gICAgICAgIC8vICMyNDAwXHJcbiAgICAgICAgLy8gdG8gc3VwcG9ydCBgYXBwLnVzZWAgcGx1Z2lucyxcclxuICAgICAgICAvLyBmYWxsYmFjayB0byBhcHBDb250ZXh0J3MgYHByb3ZpZGVzYCBpZiB0aGUgaW5zdGFuY2UgaXMgYXQgcm9vdFxyXG4gICAgICAgIGNvbnN0IHByb3ZpZGVzID0gaW5zdGFuY2UucGFyZW50ID09IG51bGxcclxuICAgICAgICAgICAgPyBpbnN0YW5jZS52bm9kZS5hcHBDb250ZXh0ICYmIGluc3RhbmNlLnZub2RlLmFwcENvbnRleHQucHJvdmlkZXNcclxuICAgICAgICAgICAgOiBpbnN0YW5jZS5wYXJlbnQucHJvdmlkZXM7XHJcbiAgICAgICAgaWYgKHByb3ZpZGVzICYmIGtleSBpbiBwcm92aWRlcykge1xyXG4gICAgICAgICAgICAvLyBUUyBkb2Vzbid0IGFsbG93IHN5bWJvbCBhcyBpbmRleCB0eXBlXHJcbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlc1trZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJlYXREZWZhdWx0QXNGYWN0b3J5ICYmIGlzRnVuY3Rpb24oZGVmYXVsdFZhbHVlKVxyXG4gICAgICAgICAgICAgICAgPyBkZWZhdWx0VmFsdWUuY2FsbChpbnN0YW5jZS5wcm94eSlcclxuICAgICAgICAgICAgICAgIDogZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgd2FybihgaW5qZWN0aW9uIFwiJHtTdHJpbmcoa2V5KX1cIiBub3QgZm91bmQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgd2FybihgaW5qZWN0KCkgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgc2V0dXAoKSBvciBmdW5jdGlvbmFsIGNvbXBvbmVudHMuYCk7XHJcbiAgICB9XHJcbn1cblxuLy8gU2ltcGxlIGVmZmVjdC5cclxuZnVuY3Rpb24gd2F0Y2hFZmZlY3QoZWZmZWN0LCBvcHRpb25zKSB7XHJcbiAgICByZXR1cm4gZG9XYXRjaChlZmZlY3QsIG51bGwsIG9wdGlvbnMpO1xyXG59XHJcbmZ1bmN0aW9uIHdhdGNoUG9zdEVmZmVjdChlZmZlY3QsIG9wdGlvbnMpIHtcclxuICAgIHJldHVybiBkb1dhdGNoKGVmZmVjdCwgbnVsbCwgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxyXG4gICAgICAgID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKSwgeyBmbHVzaDogJ3Bvc3QnIH0pIDogeyBmbHVzaDogJ3Bvc3QnIH0pKTtcclxufVxyXG5mdW5jdGlvbiB3YXRjaFN5bmNFZmZlY3QoZWZmZWN0LCBvcHRpb25zKSB7XHJcbiAgICByZXR1cm4gZG9XYXRjaChlZmZlY3QsIG51bGwsICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylcclxuICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyksIHsgZmx1c2g6ICdzeW5jJyB9KSA6IHsgZmx1c2g6ICdzeW5jJyB9KSk7XHJcbn1cclxuLy8gaW5pdGlhbCB2YWx1ZSBmb3Igd2F0Y2hlcnMgdG8gdHJpZ2dlciBvbiB1bmRlZmluZWQgaW5pdGlhbCB2YWx1ZXNcclxuY29uc3QgSU5JVElBTF9XQVRDSEVSX1ZBTFVFID0ge307XHJcbi8vIGltcGxlbWVudGF0aW9uXHJcbmZ1bmN0aW9uIHdhdGNoKHNvdXJjZSwgY2IsIG9wdGlvbnMpIHtcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgIWlzRnVuY3Rpb24oY2IpKSB7XHJcbiAgICAgICAgd2FybihgXFxgd2F0Y2goZm4sIG9wdGlvbnM/KVxcYCBzaWduYXR1cmUgaGFzIGJlZW4gbW92ZWQgdG8gYSBzZXBhcmF0ZSBBUEkuIGAgK1xyXG4gICAgICAgICAgICBgVXNlIFxcYHdhdGNoRWZmZWN0KGZuLCBvcHRpb25zPylcXGAgaW5zdGVhZC4gXFxgd2F0Y2hcXGAgbm93IG9ubHkgYCArXHJcbiAgICAgICAgICAgIGBzdXBwb3J0cyBcXGB3YXRjaChzb3VyY2UsIGNiLCBvcHRpb25zPykgc2lnbmF0dXJlLmApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRvV2F0Y2goc291cmNlLCBjYiwgb3B0aW9ucyk7XHJcbn1cclxuZnVuY3Rpb24gZG9XYXRjaChzb3VyY2UsIGNiLCB7IGltbWVkaWF0ZSwgZGVlcCwgZmx1c2gsIG9uVHJhY2ssIG9uVHJpZ2dlciB9ID0gRU1QVFlfT0JKKSB7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFjYikge1xyXG4gICAgICAgIGlmIChpbW1lZGlhdGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB3YXJuKGB3YXRjaCgpIFwiaW1tZWRpYXRlXCIgb3B0aW9uIGlzIG9ubHkgcmVzcGVjdGVkIHdoZW4gdXNpbmcgdGhlIGAgK1xyXG4gICAgICAgICAgICAgICAgYHdhdGNoKHNvdXJjZSwgY2FsbGJhY2ssIG9wdGlvbnM/KSBzaWduYXR1cmUuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkZWVwICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgd2Fybihgd2F0Y2goKSBcImRlZXBcIiBvcHRpb24gaXMgb25seSByZXNwZWN0ZWQgd2hlbiB1c2luZyB0aGUgYCArXHJcbiAgICAgICAgICAgICAgICBgd2F0Y2goc291cmNlLCBjYWxsYmFjaywgb3B0aW9ucz8pIHNpZ25hdHVyZS5gKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB3YXJuSW52YWxpZFNvdXJjZSA9IChzKSA9PiB7XHJcbiAgICAgICAgd2FybihgSW52YWxpZCB3YXRjaCBzb3VyY2U6IGAsIHMsIGBBIHdhdGNoIHNvdXJjZSBjYW4gb25seSBiZSBhIGdldHRlci9lZmZlY3QgZnVuY3Rpb24sIGEgcmVmLCBgICtcclxuICAgICAgICAgICAgYGEgcmVhY3RpdmUgb2JqZWN0LCBvciBhbiBhcnJheSBvZiB0aGVzZSB0eXBlcy5gKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBpbnN0YW5jZSA9IGN1cnJlbnRJbnN0YW5jZTtcclxuICAgIGxldCBnZXR0ZXI7XHJcbiAgICBsZXQgZm9yY2VUcmlnZ2VyID0gZmFsc2U7XHJcbiAgICBsZXQgaXNNdWx0aVNvdXJjZSA9IGZhbHNlO1xyXG4gICAgaWYgKGlzUmVmKHNvdXJjZSkpIHtcclxuICAgICAgICBnZXR0ZXIgPSAoKSA9PiBzb3VyY2UudmFsdWU7XHJcbiAgICAgICAgZm9yY2VUcmlnZ2VyID0gaXNTaGFsbG93JDEoc291cmNlKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzUmVhY3RpdmUoc291cmNlKSkge1xyXG4gICAgICAgIGdldHRlciA9ICgpID0+IHNvdXJjZTtcclxuICAgICAgICBkZWVwID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzQXJyYXkoc291cmNlKSkge1xyXG4gICAgICAgIGlzTXVsdGlTb3VyY2UgPSB0cnVlO1xyXG4gICAgICAgIGZvcmNlVHJpZ2dlciA9IHNvdXJjZS5zb21lKHMgPT4gaXNSZWFjdGl2ZShzKSB8fCBpc1NoYWxsb3ckMShzKSk7XHJcbiAgICAgICAgZ2V0dGVyID0gKCkgPT4gc291cmNlLm1hcChzID0+IHtcclxuICAgICAgICAgICAgaWYgKGlzUmVmKHMpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcy52YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpc1JlYWN0aXZlKHMpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhdmVyc2Uocyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaXNGdW5jdGlvbihzKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxXaXRoRXJyb3JIYW5kbGluZyhzLCBpbnN0YW5jZSwgMiAvKiBFcnJvckNvZGVzLldBVENIX0dFVFRFUiAqLyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgd2FybkludmFsaWRTb3VyY2Uocyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzRnVuY3Rpb24oc291cmNlKSkge1xyXG4gICAgICAgIGlmIChjYikge1xyXG4gICAgICAgICAgICAvLyBnZXR0ZXIgd2l0aCBjYlxyXG4gICAgICAgICAgICBnZXR0ZXIgPSAoKSA9PiBjYWxsV2l0aEVycm9ySGFuZGxpbmcoc291cmNlLCBpbnN0YW5jZSwgMiAvKiBFcnJvckNvZGVzLldBVENIX0dFVFRFUiAqLyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBubyBjYiAtPiBzaW1wbGUgZWZmZWN0XHJcbiAgICAgICAgICAgIGdldHRlciA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZSAmJiBpbnN0YW5jZS5pc1VubW91bnRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChjbGVhbnVwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xlYW51cCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKHNvdXJjZSwgaW5zdGFuY2UsIDMgLyogRXJyb3JDb2Rlcy5XQVRDSF9DQUxMQkFDSyAqLywgW29uQ2xlYW51cF0pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGdldHRlciA9IE5PT1A7XHJcbiAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIHdhcm5JbnZhbGlkU291cmNlKHNvdXJjZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2IgJiYgZGVlcCkge1xyXG4gICAgICAgIGNvbnN0IGJhc2VHZXR0ZXIgPSBnZXR0ZXI7XHJcbiAgICAgICAgZ2V0dGVyID0gKCkgPT4gdHJhdmVyc2UoYmFzZUdldHRlcigpKTtcclxuICAgIH1cclxuICAgIGxldCBjbGVhbnVwO1xyXG4gICAgbGV0IG9uQ2xlYW51cCA9IChmbikgPT4ge1xyXG4gICAgICAgIGNsZWFudXAgPSBlZmZlY3Qub25TdG9wID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjYWxsV2l0aEVycm9ySGFuZGxpbmcoZm4sIGluc3RhbmNlLCA0IC8qIEVycm9yQ29kZXMuV0FUQ0hfQ0xFQU5VUCAqLyk7XHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICAvLyBpbiBTU1IgdGhlcmUgaXMgbm8gbmVlZCB0byBzZXR1cCBhbiBhY3R1YWwgZWZmZWN0LCBhbmQgaXQgc2hvdWxkIGJlIG5vb3BcclxuICAgIC8vIHVubGVzcyBpdCdzIGVhZ2VyXHJcbiAgICBpZiAoaXNJblNTUkNvbXBvbmVudFNldHVwKSB7XHJcbiAgICAgICAgLy8gd2Ugd2lsbCBhbHNvIG5vdCBjYWxsIHRoZSBpbnZhbGlkYXRlIGNhbGxiYWNrICgrIHJ1bm5lciBpcyBub3Qgc2V0IHVwKVxyXG4gICAgICAgIG9uQ2xlYW51cCA9IE5PT1A7XHJcbiAgICAgICAgaWYgKCFjYikge1xyXG4gICAgICAgICAgICBnZXR0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaW1tZWRpYXRlKSB7XHJcbiAgICAgICAgICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGNiLCBpbnN0YW5jZSwgMyAvKiBFcnJvckNvZGVzLldBVENIX0NBTExCQUNLICovLCBbXHJcbiAgICAgICAgICAgICAgICBnZXR0ZXIoKSxcclxuICAgICAgICAgICAgICAgIGlzTXVsdGlTb3VyY2UgPyBbXSA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgIG9uQ2xlYW51cFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE5PT1A7XHJcbiAgICB9XHJcbiAgICBsZXQgb2xkVmFsdWUgPSBpc011bHRpU291cmNlID8gW10gOiBJTklUSUFMX1dBVENIRVJfVkFMVUU7XHJcbiAgICBjb25zdCBqb2IgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFlZmZlY3QuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNiKSB7XHJcbiAgICAgICAgICAgIC8vIHdhdGNoKHNvdXJjZSwgY2IpXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZWZmZWN0LnJ1bigpO1xyXG4gICAgICAgICAgICBpZiAoZGVlcCB8fFxyXG4gICAgICAgICAgICAgICAgZm9yY2VUcmlnZ2VyIHx8XHJcbiAgICAgICAgICAgICAgICAoaXNNdWx0aVNvdXJjZVxyXG4gICAgICAgICAgICAgICAgICAgID8gbmV3VmFsdWUuc29tZSgodiwgaSkgPT4gaGFzQ2hhbmdlZCh2LCBvbGRWYWx1ZVtpXSkpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBoYXNDaGFuZ2VkKG5ld1ZhbHVlLCBvbGRWYWx1ZSkpIHx8XHJcbiAgICAgICAgICAgICAgICAoZmFsc2UgICkpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNsZWFudXAgYmVmb3JlIHJ1bm5pbmcgY2IgYWdhaW5cclxuICAgICAgICAgICAgICAgIGlmIChjbGVhbnVwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xlYW51cCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2FsbFdpdGhBc3luY0Vycm9ySGFuZGxpbmcoY2IsIGluc3RhbmNlLCAzIC8qIEVycm9yQ29kZXMuV0FUQ0hfQ0FMTEJBQ0sgKi8sIFtcclxuICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAvLyBwYXNzIHVuZGVmaW5lZCBhcyB0aGUgb2xkIHZhbHVlIHdoZW4gaXQncyBjaGFuZ2VkIGZvciB0aGUgZmlyc3QgdGltZVxyXG4gICAgICAgICAgICAgICAgICAgIG9sZFZhbHVlID09PSBJTklUSUFMX1dBVENIRVJfVkFMVUUgPyB1bmRlZmluZWQgOiBvbGRWYWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXBcclxuICAgICAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgICAgICAgb2xkVmFsdWUgPSBuZXdWYWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gd2F0Y2hFZmZlY3RcclxuICAgICAgICAgICAgZWZmZWN0LnJ1bigpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvLyBpbXBvcnRhbnQ6IG1hcmsgdGhlIGpvYiBhcyBhIHdhdGNoZXIgY2FsbGJhY2sgc28gdGhhdCBzY2hlZHVsZXIga25vd3NcclxuICAgIC8vIGl0IGlzIGFsbG93ZWQgdG8gc2VsZi10cmlnZ2VyICgjMTcyNylcclxuICAgIGpvYi5hbGxvd1JlY3Vyc2UgPSAhIWNiO1xyXG4gICAgbGV0IHNjaGVkdWxlcjtcclxuICAgIGlmIChmbHVzaCA9PT0gJ3N5bmMnKSB7XHJcbiAgICAgICAgc2NoZWR1bGVyID0gam9iOyAvLyB0aGUgc2NoZWR1bGVyIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGRpcmVjdGx5XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChmbHVzaCA9PT0gJ3Bvc3QnKSB7XHJcbiAgICAgICAgc2NoZWR1bGVyID0gKCkgPT4gcXVldWVQb3N0UmVuZGVyRWZmZWN0KGpvYiwgaW5zdGFuY2UgJiYgaW5zdGFuY2Uuc3VzcGVuc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gZGVmYXVsdDogJ3ByZSdcclxuICAgICAgICBqb2IucHJlID0gdHJ1ZTtcclxuICAgICAgICBpZiAoaW5zdGFuY2UpXHJcbiAgICAgICAgICAgIGpvYi5pZCA9IGluc3RhbmNlLnVpZDtcclxuICAgICAgICBzY2hlZHVsZXIgPSAoKSA9PiBxdWV1ZUpvYihqb2IpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZWZmZWN0ID0gbmV3IFJlYWN0aXZlRWZmZWN0KGdldHRlciwgc2NoZWR1bGVyKTtcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICBlZmZlY3Qub25UcmFjayA9IG9uVHJhY2s7XHJcbiAgICAgICAgZWZmZWN0Lm9uVHJpZ2dlciA9IG9uVHJpZ2dlcjtcclxuICAgIH1cclxuICAgIC8vIGluaXRpYWwgcnVuXHJcbiAgICBpZiAoY2IpIHtcclxuICAgICAgICBpZiAoaW1tZWRpYXRlKSB7XHJcbiAgICAgICAgICAgIGpvYigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgb2xkVmFsdWUgPSBlZmZlY3QucnVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZmx1c2ggPT09ICdwb3N0Jykge1xyXG4gICAgICAgIHF1ZXVlUG9zdFJlbmRlckVmZmVjdChlZmZlY3QucnVuLmJpbmQoZWZmZWN0KSwgaW5zdGFuY2UgJiYgaW5zdGFuY2Uuc3VzcGVuc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZWZmZWN0LnJ1bigpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICBlZmZlY3Quc3RvcCgpO1xyXG4gICAgICAgIGlmIChpbnN0YW5jZSAmJiBpbnN0YW5jZS5zY29wZSkge1xyXG4gICAgICAgICAgICByZW1vdmUoaW5zdGFuY2Uuc2NvcGUuZWZmZWN0cywgZWZmZWN0KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcbi8vIHRoaXMuJHdhdGNoXHJcbmZ1bmN0aW9uIGluc3RhbmNlV2F0Y2goc291cmNlLCB2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgcHVibGljVGhpcyA9IHRoaXMucHJveHk7XHJcbiAgICBjb25zdCBnZXR0ZXIgPSBpc1N0cmluZyhzb3VyY2UpXHJcbiAgICAgICAgPyBzb3VyY2UuaW5jbHVkZXMoJy4nKVxyXG4gICAgICAgICAgICA/IGNyZWF0ZVBhdGhHZXR0ZXIocHVibGljVGhpcywgc291cmNlKVxyXG4gICAgICAgICAgICA6ICgpID0+IHB1YmxpY1RoaXNbc291cmNlXVxyXG4gICAgICAgIDogc291cmNlLmJpbmQocHVibGljVGhpcywgcHVibGljVGhpcyk7XHJcbiAgICBsZXQgY2I7XHJcbiAgICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcclxuICAgICAgICBjYiA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY2IgPSB2YWx1ZS5oYW5kbGVyO1xyXG4gICAgICAgIG9wdGlvbnMgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGN1ciA9IGN1cnJlbnRJbnN0YW5jZTtcclxuICAgIHNldEN1cnJlbnRJbnN0YW5jZSh0aGlzKTtcclxuICAgIGNvbnN0IHJlcyA9IGRvV2F0Y2goZ2V0dGVyLCBjYi5iaW5kKHB1YmxpY1RoaXMpLCBvcHRpb25zKTtcclxuICAgIGlmIChjdXIpIHtcclxuICAgICAgICBzZXRDdXJyZW50SW5zdGFuY2UoY3VyKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHVuc2V0Q3VycmVudEluc3RhbmNlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZVBhdGhHZXR0ZXIoY3R4LCBwYXRoKSB7XHJcbiAgICBjb25zdCBzZWdtZW50cyA9IHBhdGguc3BsaXQoJy4nKTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgbGV0IGN1ciA9IGN0eDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlZ21lbnRzLmxlbmd0aCAmJiBjdXI7IGkrKykge1xyXG4gICAgICAgICAgICBjdXIgPSBjdXJbc2VnbWVudHNbaV1dO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY3VyO1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiB0cmF2ZXJzZSh2YWx1ZSwgc2Vlbikge1xyXG4gICAgaWYgKCFpc09iamVjdCh2YWx1ZSkgfHwgdmFsdWVbXCJfX3Zfc2tpcFwiIC8qIFJlYWN0aXZlRmxhZ3MuU0tJUCAqL10pIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzZWVuID0gc2VlbiB8fCBuZXcgU2V0KCk7XHJcbiAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgc2Vlbi5hZGQodmFsdWUpO1xyXG4gICAgaWYgKGlzUmVmKHZhbHVlKSkge1xyXG4gICAgICAgIHRyYXZlcnNlKHZhbHVlLnZhbHVlLCBzZWVuKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0cmF2ZXJzZSh2YWx1ZVtpXSwgc2Vlbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNTZXQodmFsdWUpIHx8IGlzTWFwKHZhbHVlKSkge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goKHYpID0+IHtcclxuICAgICAgICAgICAgdHJhdmVyc2Uodiwgc2Vlbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRyYXZlcnNlKHZhbHVlW2tleV0sIHNlZW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxufVxuXG5mdW5jdGlvbiB1c2VUcmFuc2l0aW9uU3RhdGUoKSB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBpc01vdW50ZWQ6IGZhbHNlLFxyXG4gICAgICAgIGlzTGVhdmluZzogZmFsc2UsXHJcbiAgICAgICAgaXNVbm1vdW50aW5nOiBmYWxzZSxcclxuICAgICAgICBsZWF2aW5nVk5vZGVzOiBuZXcgTWFwKClcclxuICAgIH07XHJcbiAgICBvbk1vdW50ZWQoKCkgPT4ge1xyXG4gICAgICAgIHN0YXRlLmlzTW91bnRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuICAgIG9uQmVmb3JlVW5tb3VudCgoKSA9PiB7XHJcbiAgICAgICAgc3RhdGUuaXNVbm1vdW50aW5nID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHN0YXRlO1xyXG59XHJcbmNvbnN0IFRyYW5zaXRpb25Ib29rVmFsaWRhdG9yID0gW0Z1bmN0aW9uLCBBcnJheV07XHJcbmNvbnN0IEJhc2VUcmFuc2l0aW9uSW1wbCA9IHtcclxuICAgIG5hbWU6IGBCYXNlVHJhbnNpdGlvbmAsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICAgIG1vZGU6IFN0cmluZyxcclxuICAgICAgICBhcHBlYXI6IEJvb2xlYW4sXHJcbiAgICAgICAgcGVyc2lzdGVkOiBCb29sZWFuLFxyXG4gICAgICAgIC8vIGVudGVyXHJcbiAgICAgICAgb25CZWZvcmVFbnRlcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsXHJcbiAgICAgICAgb25FbnRlcjogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsXHJcbiAgICAgICAgb25BZnRlckVudGVyOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvcixcclxuICAgICAgICBvbkVudGVyQ2FuY2VsbGVkOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvcixcclxuICAgICAgICAvLyBsZWF2ZVxyXG4gICAgICAgIG9uQmVmb3JlTGVhdmU6IFRyYW5zaXRpb25Ib29rVmFsaWRhdG9yLFxyXG4gICAgICAgIG9uTGVhdmU6IFRyYW5zaXRpb25Ib29rVmFsaWRhdG9yLFxyXG4gICAgICAgIG9uQWZ0ZXJMZWF2ZTogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsXHJcbiAgICAgICAgb25MZWF2ZUNhbmNlbGxlZDogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3IsXHJcbiAgICAgICAgLy8gYXBwZWFyXHJcbiAgICAgICAgb25CZWZvcmVBcHBlYXI6IFRyYW5zaXRpb25Ib29rVmFsaWRhdG9yLFxyXG4gICAgICAgIG9uQXBwZWFyOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvcixcclxuICAgICAgICBvbkFmdGVyQXBwZWFyOiBUcmFuc2l0aW9uSG9va1ZhbGlkYXRvcixcclxuICAgICAgICBvbkFwcGVhckNhbmNlbGxlZDogVHJhbnNpdGlvbkhvb2tWYWxpZGF0b3JcclxuICAgIH0sXHJcbiAgICBzZXR1cChwcm9wcywgeyBzbG90cyB9KSB7XHJcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBnZXRDdXJyZW50SW5zdGFuY2UoKTtcclxuICAgICAgICBjb25zdCBzdGF0ZSA9IHVzZVRyYW5zaXRpb25TdGF0ZSgpO1xyXG4gICAgICAgIGxldCBwcmV2VHJhbnNpdGlvbktleTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHNsb3RzLmRlZmF1bHQgJiYgZ2V0VHJhbnNpdGlvblJhd0NoaWxkcmVuKHNsb3RzLmRlZmF1bHQoKSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmICghY2hpbGRyZW4gfHwgIWNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBjaGlsZCA9IGNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGhhc0ZvdW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAvLyBsb2NhdGUgZmlyc3Qgbm9uLWNvbW1lbnQgY2hpbGRcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYyBvZiBjaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjLnR5cGUgIT09IENvbW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBoYXNGb3VuZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FybiBtb3JlIHRoYW4gb25lIG5vbi1jb21tZW50IGNoaWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuKCc8dHJhbnNpdGlvbj4gY2FuIG9ubHkgYmUgdXNlZCBvbiBhIHNpbmdsZSBlbGVtZW50IG9yIGNvbXBvbmVudC4gJyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZSA8dHJhbnNpdGlvbi1ncm91cD4gZm9yIGxpc3RzLicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQgPSBjO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNGb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIHRoZXJlJ3Mgbm8gbmVlZCB0byB0cmFjayByZWFjdGl2aXR5IGZvciB0aGVzZSBwcm9wcyBzbyB1c2UgdGhlIHJhd1xyXG4gICAgICAgICAgICAvLyBwcm9wcyBmb3IgYSBiaXQgYmV0dGVyIHBlcmZcclxuICAgICAgICAgICAgY29uc3QgcmF3UHJvcHMgPSB0b1Jhdyhwcm9wcyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbW9kZSB9ID0gcmF3UHJvcHM7XHJcbiAgICAgICAgICAgIC8vIGNoZWNrIG1vZGVcclxuICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICAgICAgbW9kZSAmJlxyXG4gICAgICAgICAgICAgICAgbW9kZSAhPT0gJ2luLW91dCcgJiZcclxuICAgICAgICAgICAgICAgIG1vZGUgIT09ICdvdXQtaW4nICYmXHJcbiAgICAgICAgICAgICAgICBtb2RlICE9PSAnZGVmYXVsdCcpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oYGludmFsaWQgPHRyYW5zaXRpb24+IG1vZGU6ICR7bW9kZX1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc3RhdGUuaXNMZWF2aW5nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHlQbGFjZWhvbGRlcihjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gaW4gdGhlIGNhc2Ugb2YgPHRyYW5zaXRpb24+PGtlZXAtYWxpdmUvPjwvdHJhbnNpdGlvbj4sIHdlIG5lZWQgdG9cclxuICAgICAgICAgICAgLy8gY29tcGFyZSB0aGUgdHlwZSBvZiB0aGUga2VwdC1hbGl2ZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgY29uc3QgaW5uZXJDaGlsZCA9IGdldEtlZXBBbGl2ZUNoaWxkKGNoaWxkKTtcclxuICAgICAgICAgICAgaWYgKCFpbm5lckNoaWxkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHlQbGFjZWhvbGRlcihjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZW50ZXJIb29rcyA9IHJlc29sdmVUcmFuc2l0aW9uSG9va3MoaW5uZXJDaGlsZCwgcmF3UHJvcHMsIHN0YXRlLCBpbnN0YW5jZSk7XHJcbiAgICAgICAgICAgIHNldFRyYW5zaXRpb25Ib29rcyhpbm5lckNoaWxkLCBlbnRlckhvb2tzKTtcclxuICAgICAgICAgICAgY29uc3Qgb2xkQ2hpbGQgPSBpbnN0YW5jZS5zdWJUcmVlO1xyXG4gICAgICAgICAgICBjb25zdCBvbGRJbm5lckNoaWxkID0gb2xkQ2hpbGQgJiYgZ2V0S2VlcEFsaXZlQ2hpbGQob2xkQ2hpbGQpO1xyXG4gICAgICAgICAgICBsZXQgdHJhbnNpdGlvbktleUNoYW5nZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc3QgeyBnZXRUcmFuc2l0aW9uS2V5IH0gPSBpbm5lckNoaWxkLnR5cGU7XHJcbiAgICAgICAgICAgIGlmIChnZXRUcmFuc2l0aW9uS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBnZXRUcmFuc2l0aW9uS2V5KCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJldlRyYW5zaXRpb25LZXkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZUcmFuc2l0aW9uS2V5ID0ga2V5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5ICE9PSBwcmV2VHJhbnNpdGlvbktleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZUcmFuc2l0aW9uS2V5ID0ga2V5O1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25LZXlDaGFuZ2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBoYW5kbGUgbW9kZVxyXG4gICAgICAgICAgICBpZiAob2xkSW5uZXJDaGlsZCAmJlxyXG4gICAgICAgICAgICAgICAgb2xkSW5uZXJDaGlsZC50eXBlICE9PSBDb21tZW50ICYmXHJcbiAgICAgICAgICAgICAgICAoIWlzU2FtZVZOb2RlVHlwZShpbm5lckNoaWxkLCBvbGRJbm5lckNoaWxkKSB8fCB0cmFuc2l0aW9uS2V5Q2hhbmdlZCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlYXZpbmdIb29rcyA9IHJlc29sdmVUcmFuc2l0aW9uSG9va3Mob2xkSW5uZXJDaGlsZCwgcmF3UHJvcHMsIHN0YXRlLCBpbnN0YW5jZSk7XHJcbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgb2xkIHRyZWUncyBob29rcyBpbiBjYXNlIG9mIGR5bmFtaWMgdHJhbnNpdGlvblxyXG4gICAgICAgICAgICAgICAgc2V0VHJhbnNpdGlvbkhvb2tzKG9sZElubmVyQ2hpbGQsIGxlYXZpbmdIb29rcyk7XHJcbiAgICAgICAgICAgICAgICAvLyBzd2l0Y2hpbmcgYmV0d2VlbiBkaWZmZXJlbnQgdmlld3NcclxuICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSAnb3V0LWluJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmlzTGVhdmluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHBsYWNlaG9sZGVyIG5vZGUgYW5kIHF1ZXVlIHVwZGF0ZSB3aGVuIGxlYXZlIGZpbmlzaGVzXHJcbiAgICAgICAgICAgICAgICAgICAgbGVhdmluZ0hvb2tzLmFmdGVyTGVhdmUgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmlzTGVhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS51cGRhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eVBsYWNlaG9sZGVyKGNoaWxkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vZGUgPT09ICdpbi1vdXQnICYmIGlubmVyQ2hpbGQudHlwZSAhPT0gQ29tbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxlYXZpbmdIb29rcy5kZWxheUxlYXZlID0gKGVsLCBlYXJseVJlbW92ZSwgZGVsYXllZExlYXZlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlYXZpbmdWTm9kZXNDYWNoZSA9IGdldExlYXZpbmdOb2Rlc0ZvclR5cGUoc3RhdGUsIG9sZElubmVyQ2hpbGQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWF2aW5nVk5vZGVzQ2FjaGVbU3RyaW5nKG9sZElubmVyQ2hpbGQua2V5KV0gPSBvbGRJbm5lckNoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlYXJseSByZW1vdmFsIGNhbGxiYWNrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLl9sZWF2ZUNiID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWFybHlSZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLl9sZWF2ZUNiID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGVudGVySG9va3MuZGVsYXllZExlYXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRlckhvb2tzLmRlbGF5ZWRMZWF2ZSA9IGRlbGF5ZWRMZWF2ZTtcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59O1xyXG4vLyBleHBvcnQgdGhlIHB1YmxpYyB0eXBlIGZvciBoL3RzeCBpbmZlcmVuY2VcclxuLy8gYWxzbyB0byBhdm9pZCBpbmxpbmUgaW1wb3J0KCkgaW4gZ2VuZXJhdGVkIGQudHMgZmlsZXNcclxuY29uc3QgQmFzZVRyYW5zaXRpb24gPSBCYXNlVHJhbnNpdGlvbkltcGw7XHJcbmZ1bmN0aW9uIGdldExlYXZpbmdOb2Rlc0ZvclR5cGUoc3RhdGUsIHZub2RlKSB7XHJcbiAgICBjb25zdCB7IGxlYXZpbmdWTm9kZXMgfSA9IHN0YXRlO1xyXG4gICAgbGV0IGxlYXZpbmdWTm9kZXNDYWNoZSA9IGxlYXZpbmdWTm9kZXMuZ2V0KHZub2RlLnR5cGUpO1xyXG4gICAgaWYgKCFsZWF2aW5nVk5vZGVzQ2FjaGUpIHtcclxuICAgICAgICBsZWF2aW5nVk5vZGVzQ2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xyXG4gICAgICAgIGxlYXZpbmdWTm9kZXMuc2V0KHZub2RlLnR5cGUsIGxlYXZpbmdWTm9kZXNDYWNoZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGVhdmluZ1ZOb2Rlc0NhY2hlO1xyXG59XHJcbi8vIFRoZSB0cmFuc2l0aW9uIGhvb2tzIGFyZSBhdHRhY2hlZCB0byB0aGUgdm5vZGUgYXMgdm5vZGUudHJhbnNpdGlvblxyXG4vLyBhbmQgd2lsbCBiZSBjYWxsZWQgYXQgYXBwcm9wcmlhdGUgdGltaW5nIGluIHRoZSByZW5kZXJlci5cclxuZnVuY3Rpb24gcmVzb2x2ZVRyYW5zaXRpb25Ib29rcyh2bm9kZSwgcHJvcHMsIHN0YXRlLCBpbnN0YW5jZSkge1xyXG4gICAgY29uc3QgeyBhcHBlYXIsIG1vZGUsIHBlcnNpc3RlZCA9IGZhbHNlLCBvbkJlZm9yZUVudGVyLCBvbkVudGVyLCBvbkFmdGVyRW50ZXIsIG9uRW50ZXJDYW5jZWxsZWQsIG9uQmVmb3JlTGVhdmUsIG9uTGVhdmUsIG9uQWZ0ZXJMZWF2ZSwgb25MZWF2ZUNhbmNlbGxlZCwgb25CZWZvcmVBcHBlYXIsIG9uQXBwZWFyLCBvbkFmdGVyQXBwZWFyLCBvbkFwcGVhckNhbmNlbGxlZCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBrZXkgPSBTdHJpbmcodm5vZGUua2V5KTtcclxuICAgIGNvbnN0IGxlYXZpbmdWTm9kZXNDYWNoZSA9IGdldExlYXZpbmdOb2Rlc0ZvclR5cGUoc3RhdGUsIHZub2RlKTtcclxuICAgIGNvbnN0IGNhbGxIb29rID0gKGhvb2ssIGFyZ3MpID0+IHtcclxuICAgICAgICBob29rICYmXHJcbiAgICAgICAgICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKGhvb2ssIGluc3RhbmNlLCA5IC8qIEVycm9yQ29kZXMuVFJBTlNJVElPTl9IT09LICovLCBhcmdzKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBjYWxsQXN5bmNIb29rID0gKGhvb2ssIGFyZ3MpID0+IHtcclxuICAgICAgICBjb25zdCBkb25lID0gYXJnc1sxXTtcclxuICAgICAgICBjYWxsSG9vayhob29rLCBhcmdzKTtcclxuICAgICAgICBpZiAoaXNBcnJheShob29rKSkge1xyXG4gICAgICAgICAgICBpZiAoaG9vay5ldmVyeShob29rID0+IGhvb2subGVuZ3RoIDw9IDEpKVxyXG4gICAgICAgICAgICAgICAgZG9uZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChob29rLmxlbmd0aCA8PSAxKSB7XHJcbiAgICAgICAgICAgIGRvbmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaG9va3MgPSB7XHJcbiAgICAgICAgbW9kZSxcclxuICAgICAgICBwZXJzaXN0ZWQsXHJcbiAgICAgICAgYmVmb3JlRW50ZXIoZWwpIHtcclxuICAgICAgICAgICAgbGV0IGhvb2sgPSBvbkJlZm9yZUVudGVyO1xyXG4gICAgICAgICAgICBpZiAoIXN0YXRlLmlzTW91bnRlZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFwcGVhcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvb2sgPSBvbkJlZm9yZUFwcGVhciB8fCBvbkJlZm9yZUVudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGZvciBzYW1lIGVsZW1lbnQgKHYtc2hvdylcclxuICAgICAgICAgICAgaWYgKGVsLl9sZWF2ZUNiKSB7XHJcbiAgICAgICAgICAgICAgICBlbC5fbGVhdmVDYih0cnVlIC8qIGNhbmNlbGxlZCAqLyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gZm9yIHRvZ2dsZWQgZWxlbWVudCB3aXRoIHNhbWUga2V5ICh2LWlmKVxyXG4gICAgICAgICAgICBjb25zdCBsZWF2aW5nVk5vZGUgPSBsZWF2aW5nVk5vZGVzQ2FjaGVba2V5XTtcclxuICAgICAgICAgICAgaWYgKGxlYXZpbmdWTm9kZSAmJlxyXG4gICAgICAgICAgICAgICAgaXNTYW1lVk5vZGVUeXBlKHZub2RlLCBsZWF2aW5nVk5vZGUpICYmXHJcbiAgICAgICAgICAgICAgICBsZWF2aW5nVk5vZGUuZWwuX2xlYXZlQ2IpIHtcclxuICAgICAgICAgICAgICAgIC8vIGZvcmNlIGVhcmx5IHJlbW92YWwgKG5vdCBjYW5jZWxsZWQpXHJcbiAgICAgICAgICAgICAgICBsZWF2aW5nVk5vZGUuZWwuX2xlYXZlQ2IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYWxsSG9vayhob29rLCBbZWxdKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVudGVyKGVsKSB7XHJcbiAgICAgICAgICAgIGxldCBob29rID0gb25FbnRlcjtcclxuICAgICAgICAgICAgbGV0IGFmdGVySG9vayA9IG9uQWZ0ZXJFbnRlcjtcclxuICAgICAgICAgICAgbGV0IGNhbmNlbEhvb2sgPSBvbkVudGVyQ2FuY2VsbGVkO1xyXG4gICAgICAgICAgICBpZiAoIXN0YXRlLmlzTW91bnRlZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFwcGVhcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvb2sgPSBvbkFwcGVhciB8fCBvbkVudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGFmdGVySG9vayA9IG9uQWZ0ZXJBcHBlYXIgfHwgb25BZnRlckVudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbEhvb2sgPSBvbkFwcGVhckNhbmNlbGxlZCB8fCBvbkVudGVyQ2FuY2VsbGVkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBjYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc3QgZG9uZSA9IChlbC5fZW50ZXJDYiA9IChjYW5jZWxsZWQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjYWxsZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgY2FsbGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsSG9vayhjYW5jZWxIb29rLCBbZWxdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxIb29rKGFmdGVySG9vaywgW2VsXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaG9va3MuZGVsYXllZExlYXZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaG9va3MuZGVsYXllZExlYXZlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbC5fZW50ZXJDYiA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChob29rKSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsQXN5bmNIb29rKGhvb2ssIFtlbCwgZG9uZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZG9uZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWF2ZShlbCwgcmVtb3ZlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IFN0cmluZyh2bm9kZS5rZXkpO1xyXG4gICAgICAgICAgICBpZiAoZWwuX2VudGVyQ2IpIHtcclxuICAgICAgICAgICAgICAgIGVsLl9lbnRlckNiKHRydWUgLyogY2FuY2VsbGVkICovKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc3RhdGUuaXNVbm1vdW50aW5nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FsbEhvb2sob25CZWZvcmVMZWF2ZSwgW2VsXSk7XHJcbiAgICAgICAgICAgIGxldCBjYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc3QgZG9uZSA9IChlbC5fbGVhdmVDYiA9IChjYW5jZWxsZWQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjYWxsZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgY2FsbGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNhbmNlbGxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxIb29rKG9uTGVhdmVDYW5jZWxsZWQsIFtlbF0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbEhvb2sob25BZnRlckxlYXZlLCBbZWxdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsLl9sZWF2ZUNiID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgaWYgKGxlYXZpbmdWTm9kZXNDYWNoZVtrZXldID09PSB2bm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBsZWF2aW5nVk5vZGVzQ2FjaGVba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxlYXZpbmdWTm9kZXNDYWNoZVtrZXldID0gdm5vZGU7XHJcbiAgICAgICAgICAgIGlmIChvbkxlYXZlKSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsQXN5bmNIb29rKG9uTGVhdmUsIFtlbCwgZG9uZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZG9uZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbG9uZSh2bm9kZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZVRyYW5zaXRpb25Ib29rcyh2bm9kZSwgcHJvcHMsIHN0YXRlLCBpbnN0YW5jZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiBob29rcztcclxufVxyXG4vLyB0aGUgcGxhY2Vob2xkZXIgcmVhbGx5IG9ubHkgaGFuZGxlcyBvbmUgc3BlY2lhbCBjYXNlOiBLZWVwQWxpdmVcclxuLy8gaW4gdGhlIGNhc2Ugb2YgYSBLZWVwQWxpdmUgaW4gYSBsZWF2ZSBwaGFzZSB3ZSBuZWVkIHRvIHJldHVybiBhIEtlZXBBbGl2ZVxyXG4vLyBwbGFjZWhvbGRlciB3aXRoIGVtcHR5IGNvbnRlbnQgdG8gYXZvaWQgdGhlIEtlZXBBbGl2ZSBpbnN0YW5jZSBmcm9tIGJlaW5nXHJcbi8vIHVubW91bnRlZC5cclxuZnVuY3Rpb24gZW1wdHlQbGFjZWhvbGRlcih2bm9kZSkge1xyXG4gICAgaWYgKGlzS2VlcEFsaXZlKHZub2RlKSkge1xyXG4gICAgICAgIHZub2RlID0gY2xvbmVWTm9kZSh2bm9kZSk7XHJcbiAgICAgICAgdm5vZGUuY2hpbGRyZW4gPSBudWxsO1xyXG4gICAgICAgIHJldHVybiB2bm9kZTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBnZXRLZWVwQWxpdmVDaGlsZCh2bm9kZSkge1xyXG4gICAgcmV0dXJuIGlzS2VlcEFsaXZlKHZub2RlKVxyXG4gICAgICAgID8gdm5vZGUuY2hpbGRyZW5cclxuICAgICAgICAgICAgPyB2bm9kZS5jaGlsZHJlblswXVxyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICAgIDogdm5vZGU7XHJcbn1cclxuZnVuY3Rpb24gc2V0VHJhbnNpdGlvbkhvb2tzKHZub2RlLCBob29rcykge1xyXG4gICAgaWYgKHZub2RlLnNoYXBlRmxhZyAmIDYgLyogU2hhcGVGbGFncy5DT01QT05FTlQgKi8gJiYgdm5vZGUuY29tcG9uZW50KSB7XHJcbiAgICAgICAgc2V0VHJhbnNpdGlvbkhvb2tzKHZub2RlLmNvbXBvbmVudC5zdWJUcmVlLCBob29rcyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh2bm9kZS5zaGFwZUZsYWcgJiAxMjggLyogU2hhcGVGbGFncy5TVVNQRU5TRSAqLykge1xyXG4gICAgICAgIHZub2RlLnNzQ29udGVudC50cmFuc2l0aW9uID0gaG9va3MuY2xvbmUodm5vZGUuc3NDb250ZW50KTtcclxuICAgICAgICB2bm9kZS5zc0ZhbGxiYWNrLnRyYW5zaXRpb24gPSBob29rcy5jbG9uZSh2bm9kZS5zc0ZhbGxiYWNrKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZub2RlLnRyYW5zaXRpb24gPSBob29rcztcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBnZXRUcmFuc2l0aW9uUmF3Q2hpbGRyZW4oY2hpbGRyZW4sIGtlZXBDb21tZW50ID0gZmFsc2UsIHBhcmVudEtleSkge1xyXG4gICAgbGV0IHJldCA9IFtdO1xyXG4gICAgbGV0IGtleWVkRnJhZ21lbnRDb3VudCA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGNoaWxkID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgLy8gIzUzNjAgaW5oZXJpdCBwYXJlbnQga2V5IGluIGNhc2Ugb2YgPHRlbXBsYXRlIHYtZm9yPlxyXG4gICAgICAgIGNvbnN0IGtleSA9IHBhcmVudEtleSA9PSBudWxsXHJcbiAgICAgICAgICAgID8gY2hpbGQua2V5XHJcbiAgICAgICAgICAgIDogU3RyaW5nKHBhcmVudEtleSkgKyBTdHJpbmcoY2hpbGQua2V5ICE9IG51bGwgPyBjaGlsZC5rZXkgOiBpKTtcclxuICAgICAgICAvLyBoYW5kbGUgZnJhZ21lbnQgY2hpbGRyZW4gY2FzZSwgZS5nLiB2LWZvclxyXG4gICAgICAgIGlmIChjaGlsZC50eXBlID09PSBGcmFnbWVudCkge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQucGF0Y2hGbGFnICYgMTI4IC8qIFBhdGNoRmxhZ3MuS0VZRURfRlJBR01FTlQgKi8pXHJcbiAgICAgICAgICAgICAgICBrZXllZEZyYWdtZW50Q291bnQrKztcclxuICAgICAgICAgICAgcmV0ID0gcmV0LmNvbmNhdChnZXRUcmFuc2l0aW9uUmF3Q2hpbGRyZW4oY2hpbGQuY2hpbGRyZW4sIGtlZXBDb21tZW50LCBrZXkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29tbWVudCBwbGFjZWhvbGRlcnMgc2hvdWxkIGJlIHNraXBwZWQsIGUuZy4gdi1pZlxyXG4gICAgICAgIGVsc2UgaWYgKGtlZXBDb21tZW50IHx8IGNoaWxkLnR5cGUgIT09IENvbW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0LnB1c2goa2V5ICE9IG51bGwgPyBjbG9uZVZOb2RlKGNoaWxkLCB7IGtleSB9KSA6IGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyAjMTEyNiBpZiBhIHRyYW5zaXRpb24gY2hpbGRyZW4gbGlzdCBjb250YWlucyBtdWx0aXBsZSBzdWIgZnJhZ21lbnRzLCB0aGVzZVxyXG4gICAgLy8gZnJhZ21lbnRzIHdpbGwgYmUgbWVyZ2VkIGludG8gYSBmbGF0IGNoaWxkcmVuIGFycmF5LiBTaW5jZSBlYWNoIHYtZm9yXHJcbiAgICAvLyBmcmFnbWVudCBtYXkgY29udGFpbiBkaWZmZXJlbnQgc3RhdGljIGJpbmRpbmdzIGluc2lkZSwgd2UgbmVlZCB0byBkZS1vcFxyXG4gICAgLy8gdGhlc2UgY2hpbGRyZW4gdG8gZm9yY2UgZnVsbCBkaWZmcyB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvci5cclxuICAgIGlmIChrZXllZEZyYWdtZW50Q291bnQgPiAxKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgcmV0W2ldLnBhdGNoRmxhZyA9IC0yIC8qIFBhdGNoRmxhZ3MuQkFJTCAqLztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0O1xyXG59XG5cbi8vIGltcGxlbWVudGF0aW9uLCBjbG9zZSB0byBuby1vcFxyXG5mdW5jdGlvbiBkZWZpbmVDb21wb25lbnQob3B0aW9ucykge1xyXG4gICAgcmV0dXJuIGlzRnVuY3Rpb24ob3B0aW9ucykgPyB7IHNldHVwOiBvcHRpb25zLCBuYW1lOiBvcHRpb25zLm5hbWUgfSA6IG9wdGlvbnM7XHJcbn1cblxuY29uc3QgaXNBc3luY1dyYXBwZXIgPSAoaSkgPT4gISFpLnR5cGUuX19hc3luY0xvYWRlcjtcclxuZnVuY3Rpb24gZGVmaW5lQXN5bmNDb21wb25lbnQoc291cmNlKSB7XHJcbiAgICBpZiAoaXNGdW5jdGlvbihzb3VyY2UpKSB7XHJcbiAgICAgICAgc291cmNlID0geyBsb2FkZXI6IHNvdXJjZSB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBsb2FkZXIsIGxvYWRpbmdDb21wb25lbnQsIGVycm9yQ29tcG9uZW50LCBkZWxheSA9IDIwMCwgdGltZW91dCwgLy8gdW5kZWZpbmVkID0gbmV2ZXIgdGltZXMgb3V0XHJcbiAgICBzdXNwZW5zaWJsZSA9IHRydWUsIG9uRXJyb3I6IHVzZXJPbkVycm9yIH0gPSBzb3VyY2U7XHJcbiAgICBsZXQgcGVuZGluZ1JlcXVlc3QgPSBudWxsO1xyXG4gICAgbGV0IHJlc29sdmVkQ29tcDtcclxuICAgIGxldCByZXRyaWVzID0gMDtcclxuICAgIGNvbnN0IHJldHJ5ID0gKCkgPT4ge1xyXG4gICAgICAgIHJldHJpZXMrKztcclxuICAgICAgICBwZW5kaW5nUmVxdWVzdCA9IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIGxvYWQoKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBsb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIGxldCB0aGlzUmVxdWVzdDtcclxuICAgICAgICByZXR1cm4gKHBlbmRpbmdSZXF1ZXN0IHx8XHJcbiAgICAgICAgICAgICh0aGlzUmVxdWVzdCA9IHBlbmRpbmdSZXF1ZXN0ID1cclxuICAgICAgICAgICAgICAgIGxvYWRlcigpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIgOiBuZXcgRXJyb3IoU3RyaW5nKGVycikpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2VyT25FcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNlclJldHJ5ID0gKCkgPT4gcmVzb2x2ZShyZXRyeSgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzZXJGYWlsID0gKCkgPT4gcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyT25FcnJvcihlcnIsIHVzZXJSZXRyeSwgdXNlckZhaWwsIHJldHJpZXMgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAudGhlbigoY29tcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzUmVxdWVzdCAhPT0gcGVuZGluZ1JlcXVlc3QgJiYgcGVuZGluZ1JlcXVlc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBlbmRpbmdSZXF1ZXN0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFjb21wKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4oYEFzeW5jIGNvbXBvbmVudCBsb2FkZXIgcmVzb2x2ZWQgdG8gdW5kZWZpbmVkLiBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBJZiB5b3UgYXJlIHVzaW5nIHJldHJ5KCksIG1ha2Ugc3VyZSB0byByZXR1cm4gaXRzIHJldHVybiB2YWx1ZS5gKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJvcCBtb2R1bGUgZGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb21wLl9fZXNNb2R1bGUgfHwgY29tcFtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnTW9kdWxlJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcCA9IGNvbXAuZGVmYXVsdDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBjb21wICYmICFpc09iamVjdChjb21wKSAmJiAhaXNGdW5jdGlvbihjb21wKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXN5bmMgY29tcG9uZW50IGxvYWQgcmVzdWx0OiAke2NvbXB9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkQ29tcCA9IGNvbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXA7XHJcbiAgICAgICAgICAgICAgICB9KSkpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBkZWZpbmVDb21wb25lbnQoe1xyXG4gICAgICAgIG5hbWU6ICdBc3luY0NvbXBvbmVudFdyYXBwZXInLFxyXG4gICAgICAgIF9fYXN5bmNMb2FkZXI6IGxvYWQsXHJcbiAgICAgICAgZ2V0IF9fYXN5bmNSZXNvbHZlZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQ29tcDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNldHVwKCkge1xyXG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGN1cnJlbnRJbnN0YW5jZTtcclxuICAgICAgICAgICAgLy8gYWxyZWFkeSByZXNvbHZlZFxyXG4gICAgICAgICAgICBpZiAocmVzb2x2ZWRDb21wKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gY3JlYXRlSW5uZXJDb21wKHJlc29sdmVkQ29tcCwgaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IG9uRXJyb3IgPSAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBwZW5kaW5nUmVxdWVzdCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcihlcnIsIGluc3RhbmNlLCAxMyAvKiBFcnJvckNvZGVzLkFTWU5DX0NPTVBPTkVOVF9MT0FERVIgKi8sICFlcnJvckNvbXBvbmVudCAvKiBkbyBub3QgdGhyb3cgaW4gZGV2IGlmIHVzZXIgcHJvdmlkZWQgZXJyb3IgY29tcG9uZW50ICovKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLy8gc3VzcGVuc2UtY29udHJvbGxlZCBvciBTU1IuXHJcbiAgICAgICAgICAgIGlmICgoc3VzcGVuc2libGUgJiYgaW5zdGFuY2Uuc3VzcGVuc2UpIHx8XHJcbiAgICAgICAgICAgICAgICAoaXNJblNTUkNvbXBvbmVudFNldHVwKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvYWQoKVxyXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGNvbXAgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBjcmVhdGVJbm5lckNvbXAoY29tcCwgaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IGVycm9yQ29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY3JlYXRlVk5vZGUoZXJyb3JDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbG9hZGVkID0gcmVmKGZhbHNlKTtcclxuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSByZWYoKTtcclxuICAgICAgICAgICAgY29uc3QgZGVsYXllZCA9IHJlZighIWRlbGF5KTtcclxuICAgICAgICAgICAgaWYgKGRlbGF5KSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBkZWxheWVkLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9LCBkZWxheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRpbWVvdXQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsb2FkZWQudmFsdWUgJiYgIWVycm9yLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihgQXN5bmMgY29tcG9uZW50IHRpbWVkIG91dCBhZnRlciAke3RpbWVvdXR9bXMuYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IudmFsdWUgPSBlcnI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSwgdGltZW91dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbG9hZCgpXHJcbiAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsb2FkZWQudmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnBhcmVudCAmJiBpc0tlZXBBbGl2ZShpbnN0YW5jZS5wYXJlbnQudm5vZGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcGFyZW50IGlzIGtlZXAtYWxpdmUsIGZvcmNlIHVwZGF0ZSBzbyB0aGUgbG9hZGVkIGNvbXBvbmVudCdzXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gbmFtZSBpcyB0YWtlbiBpbnRvIGFjY291bnRcclxuICAgICAgICAgICAgICAgICAgICBxdWV1ZUpvYihpbnN0YW5jZS5wYXJlbnQudXBkYXRlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25FcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgZXJyb3IudmFsdWUgPSBlcnI7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvYWRlZC52YWx1ZSAmJiByZXNvbHZlZENvbXApIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlSW5uZXJDb21wKHJlc29sdmVkQ29tcCwgaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZXJyb3IudmFsdWUgJiYgZXJyb3JDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlVk5vZGUoZXJyb3JDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChsb2FkaW5nQ29tcG9uZW50ICYmICFkZWxheWVkLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVZOb2RlKGxvYWRpbmdDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUlubmVyQ29tcChjb21wLCB7IHZub2RlOiB7IHJlZiwgcHJvcHMsIGNoaWxkcmVuLCBzaGFwZUZsYWcgfSwgcGFyZW50IH0pIHtcclxuICAgIGNvbnN0IHZub2RlID0gY3JlYXRlVk5vZGUoY29tcCwgcHJvcHMsIGNoaWxkcmVuKTtcclxuICAgIC8vIGVuc3VyZSBpbm5lciBjb21wb25lbnQgaW5oZXJpdHMgdGhlIGFzeW5jIHdyYXBwZXIncyByZWYgb3duZXJcclxuICAgIHZub2RlLnJlZiA9IHJlZjtcclxuICAgIHJldHVybiB2bm9kZTtcclxufVxuXG5jb25zdCBpc0tlZXBBbGl2ZSA9ICh2bm9kZSkgPT4gdm5vZGUudHlwZS5fX2lzS2VlcEFsaXZlO1xyXG5jb25zdCBLZWVwQWxpdmVJbXBsID0ge1xyXG4gICAgbmFtZTogYEtlZXBBbGl2ZWAsXHJcbiAgICAvLyBNYXJrZXIgZm9yIHNwZWNpYWwgaGFuZGxpbmcgaW5zaWRlIHRoZSByZW5kZXJlci4gV2UgYXJlIG5vdCB1c2luZyBhID09PVxyXG4gICAgLy8gY2hlY2sgZGlyZWN0bHkgb24gS2VlcEFsaXZlIGluIHRoZSByZW5kZXJlciwgYmVjYXVzZSBpbXBvcnRpbmcgaXQgZGlyZWN0bHlcclxuICAgIC8vIHdvdWxkIHByZXZlbnQgaXQgZnJvbSBiZWluZyB0cmVlLXNoYWtlbi5cclxuICAgIF9faXNLZWVwQWxpdmU6IHRydWUsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICAgIGluY2x1ZGU6IFtTdHJpbmcsIFJlZ0V4cCwgQXJyYXldLFxyXG4gICAgICAgIGV4Y2x1ZGU6IFtTdHJpbmcsIFJlZ0V4cCwgQXJyYXldLFxyXG4gICAgICAgIG1heDogW1N0cmluZywgTnVtYmVyXVxyXG4gICAgfSxcclxuICAgIHNldHVwKHByb3BzLCB7IHNsb3RzIH0pIHtcclxuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGdldEN1cnJlbnRJbnN0YW5jZSgpO1xyXG4gICAgICAgIC8vIEtlZXBBbGl2ZSBjb21tdW5pY2F0ZXMgd2l0aCB0aGUgaW5zdGFudGlhdGVkIHJlbmRlcmVyIHZpYSB0aGVcclxuICAgICAgICAvLyBjdHggd2hlcmUgdGhlIHJlbmRlcmVyIHBhc3NlcyBpbiBpdHMgaW50ZXJuYWxzLFxyXG4gICAgICAgIC8vIGFuZCB0aGUgS2VlcEFsaXZlIGluc3RhbmNlIGV4cG9zZXMgYWN0aXZhdGUvZGVhY3RpdmF0ZSBpbXBsZW1lbnRhdGlvbnMuXHJcbiAgICAgICAgLy8gVGhlIHdob2xlIHBvaW50IG9mIHRoaXMgaXMgdG8gYXZvaWQgaW1wb3J0aW5nIEtlZXBBbGl2ZSBkaXJlY3RseSBpbiB0aGVcclxuICAgICAgICAvLyByZW5kZXJlciB0byBmYWNpbGl0YXRlIHRyZWUtc2hha2luZy5cclxuICAgICAgICBjb25zdCBzaGFyZWRDb250ZXh0ID0gaW5zdGFuY2UuY3R4O1xyXG4gICAgICAgIC8vIGlmIHRoZSBpbnRlcm5hbCByZW5kZXJlciBpcyBub3QgcmVnaXN0ZXJlZCwgaXQgaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBzZXJ2ZXItc2lkZSByZW5kZXJpbmcsXHJcbiAgICAgICAgLy8gZm9yIEtlZXBBbGl2ZSwgd2UganVzdCBuZWVkIHRvIHJlbmRlciBpdHMgY2hpbGRyZW5cclxuICAgICAgICBpZiAoIXNoYXJlZENvbnRleHQucmVuZGVyZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gc2xvdHMuZGVmYXVsdCAmJiBzbG90cy5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID09PSAxID8gY2hpbGRyZW5bMF0gOiBjaGlsZHJlbjtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcclxuICAgICAgICBsZXQgY3VycmVudCA9IG51bGw7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCBfX1ZVRV9QUk9EX0RFVlRPT0xTX18pIHtcclxuICAgICAgICAgICAgaW5zdGFuY2UuX192X2NhY2hlID0gY2FjaGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBhcmVudFN1c3BlbnNlID0gaW5zdGFuY2Uuc3VzcGVuc2U7XHJcbiAgICAgICAgY29uc3QgeyByZW5kZXJlcjogeyBwOiBwYXRjaCwgbTogbW92ZSwgdW06IF91bm1vdW50LCBvOiB7IGNyZWF0ZUVsZW1lbnQgfSB9IH0gPSBzaGFyZWRDb250ZXh0O1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VDb250YWluZXIgPSBjcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBzaGFyZWRDb250ZXh0LmFjdGl2YXRlID0gKHZub2RlLCBjb250YWluZXIsIGFuY2hvciwgaXNTVkcsIG9wdGltaXplZCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHZub2RlLmNvbXBvbmVudDtcclxuICAgICAgICAgICAgbW92ZSh2bm9kZSwgY29udGFpbmVyLCBhbmNob3IsIDAgLyogTW92ZVR5cGUuRU5URVIgKi8sIHBhcmVudFN1c3BlbnNlKTtcclxuICAgICAgICAgICAgLy8gaW4gY2FzZSBwcm9wcyBoYXZlIGNoYW5nZWRcclxuICAgICAgICAgICAgcGF0Y2goaW5zdGFuY2Uudm5vZGUsIHZub2RlLCBjb250YWluZXIsIGFuY2hvciwgaW5zdGFuY2UsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgdm5vZGUuc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuaXNEZWFjdGl2YXRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLmEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbnZva2VBcnJheUZucyhpbnN0YW5jZS5hKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IHZub2RlSG9vayA9IHZub2RlLnByb3BzICYmIHZub2RlLnByb3BzLm9uVm5vZGVNb3VudGVkO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZub2RlSG9vaykge1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9rZVZOb2RlSG9vayh2bm9kZUhvb2ssIGluc3RhbmNlLnBhcmVudCwgdm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCBwYXJlbnRTdXNwZW5zZSk7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgfHwgX19WVUVfUFJPRF9ERVZUT09MU19fKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY29tcG9uZW50cyB0cmVlXHJcbiAgICAgICAgICAgICAgICBkZXZ0b29sc0NvbXBvbmVudEFkZGVkKGluc3RhbmNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2hhcmVkQ29udGV4dC5kZWFjdGl2YXRlID0gKHZub2RlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gdm5vZGUuY29tcG9uZW50O1xyXG4gICAgICAgICAgICBtb3ZlKHZub2RlLCBzdG9yYWdlQ29udGFpbmVyLCBudWxsLCAxIC8qIE1vdmVUeXBlLkxFQVZFICovLCBwYXJlbnRTdXNwZW5zZSk7XHJcbiAgICAgICAgICAgIHF1ZXVlUG9zdFJlbmRlckVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UuZGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbnZva2VBcnJheUZucyhpbnN0YW5jZS5kYSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2bm9kZUhvb2sgPSB2bm9kZS5wcm9wcyAmJiB2bm9kZS5wcm9wcy5vblZub2RlVW5tb3VudGVkO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZub2RlSG9vaykge1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9rZVZOb2RlSG9vayh2bm9kZUhvb2ssIGluc3RhbmNlLnBhcmVudCwgdm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuaXNEZWFjdGl2YXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sIHBhcmVudFN1c3BlbnNlKTtcclxuICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCBfX1ZVRV9QUk9EX0RFVlRPT0xTX18pIHtcclxuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjb21wb25lbnRzIHRyZWVcclxuICAgICAgICAgICAgICAgIGRldnRvb2xzQ29tcG9uZW50QWRkZWQoaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBmdW5jdGlvbiB1bm1vdW50KHZub2RlKSB7XHJcbiAgICAgICAgICAgIC8vIHJlc2V0IHRoZSBzaGFwZUZsYWcgc28gaXQgY2FuIGJlIHByb3Blcmx5IHVubW91bnRlZFxyXG4gICAgICAgICAgICByZXNldFNoYXBlRmxhZyh2bm9kZSk7XHJcbiAgICAgICAgICAgIF91bm1vdW50KHZub2RlLCBpbnN0YW5jZSwgcGFyZW50U3VzcGVuc2UsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmdW5jdGlvbiBwcnVuZUNhY2hlKGZpbHRlcikge1xyXG4gICAgICAgICAgICBjYWNoZS5mb3JFYWNoKCh2bm9kZSwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh2bm9kZS50eXBlKTtcclxuICAgICAgICAgICAgICAgIGlmIChuYW1lICYmICghZmlsdGVyIHx8ICFmaWx0ZXIobmFtZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJ1bmVDYWNoZUVudHJ5KGtleSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmdW5jdGlvbiBwcnVuZUNhY2hlRW50cnkoa2V5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlZCA9IGNhY2hlLmdldChrZXkpO1xyXG4gICAgICAgICAgICBpZiAoIWN1cnJlbnQgfHwgY2FjaGVkLnR5cGUgIT09IGN1cnJlbnQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgdW5tb3VudChjYWNoZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQpIHtcclxuICAgICAgICAgICAgICAgIC8vIGN1cnJlbnQgYWN0aXZlIGluc3RhbmNlIHNob3VsZCBubyBsb25nZXIgYmUga2VwdC1hbGl2ZS5cclxuICAgICAgICAgICAgICAgIC8vIHdlIGNhbid0IHVubW91bnQgaXQgbm93IGJ1dCBpdCBtaWdodCBiZSBsYXRlciwgc28gcmVzZXQgaXRzIGZsYWcgbm93LlxyXG4gICAgICAgICAgICAgICAgcmVzZXRTaGFwZUZsYWcoY3VycmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FjaGUuZGVsZXRlKGtleSk7XHJcbiAgICAgICAgICAgIGtleXMuZGVsZXRlKGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHBydW5lIGNhY2hlIG9uIGluY2x1ZGUvZXhjbHVkZSBwcm9wIGNoYW5nZVxyXG4gICAgICAgIHdhdGNoKCgpID0+IFtwcm9wcy5pbmNsdWRlLCBwcm9wcy5leGNsdWRlXSwgKFtpbmNsdWRlLCBleGNsdWRlXSkgPT4ge1xyXG4gICAgICAgICAgICBpbmNsdWRlICYmIHBydW5lQ2FjaGUobmFtZSA9PiBtYXRjaGVzKGluY2x1ZGUsIG5hbWUpKTtcclxuICAgICAgICAgICAgZXhjbHVkZSAmJiBwcnVuZUNhY2hlKG5hbWUgPT4gIW1hdGNoZXMoZXhjbHVkZSwgbmFtZSkpO1xyXG4gICAgICAgIH0sIFxyXG4gICAgICAgIC8vIHBydW5lIHBvc3QtcmVuZGVyIGFmdGVyIGBjdXJyZW50YCBoYXMgYmVlbiB1cGRhdGVkXHJcbiAgICAgICAgeyBmbHVzaDogJ3Bvc3QnLCBkZWVwOiB0cnVlIH0pO1xyXG4gICAgICAgIC8vIGNhY2hlIHN1YiB0cmVlIGFmdGVyIHJlbmRlclxyXG4gICAgICAgIGxldCBwZW5kaW5nQ2FjaGVLZXkgPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IGNhY2hlU3VidHJlZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgLy8gZml4ICMxNjIxLCB0aGUgcGVuZGluZ0NhY2hlS2V5IGNvdWxkIGJlIDBcclxuICAgICAgICAgICAgaWYgKHBlbmRpbmdDYWNoZUtleSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBjYWNoZS5zZXQocGVuZGluZ0NhY2hlS2V5LCBnZXRJbm5lckNoaWxkKGluc3RhbmNlLnN1YlRyZWUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgb25Nb3VudGVkKGNhY2hlU3VidHJlZSk7XHJcbiAgICAgICAgb25VcGRhdGVkKGNhY2hlU3VidHJlZSk7XHJcbiAgICAgICAgb25CZWZvcmVVbm1vdW50KCgpID0+IHtcclxuICAgICAgICAgICAgY2FjaGUuZm9yRWFjaChjYWNoZWQgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzdWJUcmVlLCBzdXNwZW5zZSB9ID0gaW5zdGFuY2U7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2bm9kZSA9IGdldElubmVyQ2hpbGQoc3ViVHJlZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2FjaGVkLnR5cGUgPT09IHZub2RlLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjdXJyZW50IGluc3RhbmNlIHdpbGwgYmUgdW5tb3VudGVkIGFzIHBhcnQgb2Yga2VlcC1hbGl2ZSdzIHVubW91bnRcclxuICAgICAgICAgICAgICAgICAgICByZXNldFNoYXBlRmxhZyh2bm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYnV0IGludm9rZSBpdHMgZGVhY3RpdmF0ZWQgaG9vayBoZXJlXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGEgPSB2bm9kZS5jb21wb25lbnQuZGE7XHJcbiAgICAgICAgICAgICAgICAgICAgZGEgJiYgcXVldWVQb3N0UmVuZGVyRWZmZWN0KGRhLCBzdXNwZW5zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdW5tb3VudChjYWNoZWQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICBwZW5kaW5nQ2FjaGVLZXkgPSBudWxsO1xyXG4gICAgICAgICAgICBpZiAoIXNsb3RzLmRlZmF1bHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gc2xvdHMuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBjb25zdCByYXdWTm9kZSA9IGNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhcm4oYEtlZXBBbGl2ZSBzaG91bGQgY29udGFpbiBleGFjdGx5IG9uZSBjb21wb25lbnQgY2hpbGQuYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICghaXNWTm9kZShyYXdWTm9kZSkgfHxcclxuICAgICAgICAgICAgICAgICghKHJhd1ZOb2RlLnNoYXBlRmxhZyAmIDQgLyogU2hhcGVGbGFncy5TVEFURUZVTF9DT01QT05FTlQgKi8pICYmXHJcbiAgICAgICAgICAgICAgICAgICAgIShyYXdWTm9kZS5zaGFwZUZsYWcgJiAxMjggLyogU2hhcGVGbGFncy5TVVNQRU5TRSAqLykpKSB7XHJcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybiByYXdWTm9kZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgdm5vZGUgPSBnZXRJbm5lckNoaWxkKHJhd1ZOb2RlKTtcclxuICAgICAgICAgICAgY29uc3QgY29tcCA9IHZub2RlLnR5cGU7XHJcbiAgICAgICAgICAgIC8vIGZvciBhc3luYyBjb21wb25lbnRzLCBuYW1lIGNoZWNrIHNob3VsZCBiZSBiYXNlZCBpbiBpdHMgbG9hZGVkXHJcbiAgICAgICAgICAgIC8vIGlubmVyIGNvbXBvbmVudCBpZiBhdmFpbGFibGVcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoaXNBc3luY1dyYXBwZXIodm5vZGUpXHJcbiAgICAgICAgICAgICAgICA/IHZub2RlLnR5cGUuX19hc3luY1Jlc29sdmVkIHx8IHt9XHJcbiAgICAgICAgICAgICAgICA6IGNvbXApO1xyXG4gICAgICAgICAgICBjb25zdCB7IGluY2x1ZGUsIGV4Y2x1ZGUsIG1heCB9ID0gcHJvcHM7XHJcbiAgICAgICAgICAgIGlmICgoaW5jbHVkZSAmJiAoIW5hbWUgfHwgIW1hdGNoZXMoaW5jbHVkZSwgbmFtZSkpKSB8fFxyXG4gICAgICAgICAgICAgICAgKGV4Y2x1ZGUgJiYgbmFtZSAmJiBtYXRjaGVzKGV4Y2x1ZGUsIG5hbWUpKSkge1xyXG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHZub2RlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJhd1ZOb2RlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHZub2RlLmtleSA9PSBudWxsID8gY29tcCA6IHZub2RlLmtleTtcclxuICAgICAgICAgICAgY29uc3QgY2FjaGVkVk5vZGUgPSBjYWNoZS5nZXQoa2V5KTtcclxuICAgICAgICAgICAgLy8gY2xvbmUgdm5vZGUgaWYgaXQncyByZXVzZWQgYmVjYXVzZSB3ZSBhcmUgZ29pbmcgdG8gbXV0YXRlIGl0XHJcbiAgICAgICAgICAgIGlmICh2bm9kZS5lbCkge1xyXG4gICAgICAgICAgICAgICAgdm5vZGUgPSBjbG9uZVZOb2RlKHZub2RlKTtcclxuICAgICAgICAgICAgICAgIGlmIChyYXdWTm9kZS5zaGFwZUZsYWcgJiAxMjggLyogU2hhcGVGbGFncy5TVVNQRU5TRSAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJhd1ZOb2RlLnNzQ29udGVudCA9IHZub2RlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICMxNTEzIGl0J3MgcG9zc2libGUgZm9yIHRoZSByZXR1cm5lZCB2bm9kZSB0byBiZSBjbG9uZWQgZHVlIHRvIGF0dHJcclxuICAgICAgICAgICAgLy8gZmFsbHRocm91Z2ggb3Igc2NvcGVJZCwgc28gdGhlIHZub2RlIGhlcmUgbWF5IG5vdCBiZSB0aGUgZmluYWwgdm5vZGVcclxuICAgICAgICAgICAgLy8gdGhhdCBpcyBtb3VudGVkLiBJbnN0ZWFkIG9mIGNhY2hpbmcgaXQgZGlyZWN0bHksIHdlIHN0b3JlIHRoZSBwZW5kaW5nXHJcbiAgICAgICAgICAgIC8vIGtleSBhbmQgY2FjaGUgYGluc3RhbmNlLnN1YlRyZWVgICh0aGUgbm9ybWFsaXplZCB2bm9kZSkgaW5cclxuICAgICAgICAgICAgLy8gYmVmb3JlTW91bnQvYmVmb3JlVXBkYXRlIGhvb2tzLlxyXG4gICAgICAgICAgICBwZW5kaW5nQ2FjaGVLZXkgPSBrZXk7XHJcbiAgICAgICAgICAgIGlmIChjYWNoZWRWTm9kZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gY29weSBvdmVyIG1vdW50ZWQgc3RhdGVcclxuICAgICAgICAgICAgICAgIHZub2RlLmVsID0gY2FjaGVkVk5vZGUuZWw7XHJcbiAgICAgICAgICAgICAgICB2bm9kZS5jb21wb25lbnQgPSBjYWNoZWRWTm9kZS5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICBpZiAodm5vZGUudHJhbnNpdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlY3Vyc2l2ZWx5IHVwZGF0ZSB0cmFuc2l0aW9uIGhvb2tzIG9uIHN1YlRyZWVcclxuICAgICAgICAgICAgICAgICAgICBzZXRUcmFuc2l0aW9uSG9va3Modm5vZGUsIHZub2RlLnRyYW5zaXRpb24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gYXZvaWQgdm5vZGUgYmVpbmcgbW91bnRlZCBhcyBmcmVzaFxyXG4gICAgICAgICAgICAgICAgdm5vZGUuc2hhcGVGbGFnIHw9IDUxMiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVF9LRVBUX0FMSVZFICovO1xyXG4gICAgICAgICAgICAgICAgLy8gbWFrZSB0aGlzIGtleSB0aGUgZnJlc2hlc3RcclxuICAgICAgICAgICAgICAgIGtleXMuZGVsZXRlKGtleSk7XHJcbiAgICAgICAgICAgICAgICBrZXlzLmFkZChrZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAga2V5cy5hZGQoa2V5KTtcclxuICAgICAgICAgICAgICAgIC8vIHBydW5lIG9sZGVzdCBlbnRyeVxyXG4gICAgICAgICAgICAgICAgaWYgKG1heCAmJiBrZXlzLnNpemUgPiBwYXJzZUludChtYXgsIDEwKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBydW5lQ2FjaGVFbnRyeShrZXlzLnZhbHVlcygpLm5leHQoKS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gYXZvaWQgdm5vZGUgYmVpbmcgdW5tb3VudGVkXHJcbiAgICAgICAgICAgIHZub2RlLnNoYXBlRmxhZyB8PSAyNTYgLyogU2hhcGVGbGFncy5DT01QT05FTlRfU0hPVUxEX0tFRVBfQUxJVkUgKi87XHJcbiAgICAgICAgICAgIGN1cnJlbnQgPSB2bm9kZTtcclxuICAgICAgICAgICAgcmV0dXJuIGlzU3VzcGVuc2UocmF3Vk5vZGUudHlwZSkgPyByYXdWTm9kZSA6IHZub2RlO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn07XHJcbi8vIGV4cG9ydCB0aGUgcHVibGljIHR5cGUgZm9yIGgvdHN4IGluZmVyZW5jZVxyXG4vLyBhbHNvIHRvIGF2b2lkIGlubGluZSBpbXBvcnQoKSBpbiBnZW5lcmF0ZWQgZC50cyBmaWxlc1xyXG5jb25zdCBLZWVwQWxpdmUgPSBLZWVwQWxpdmVJbXBsO1xyXG5mdW5jdGlvbiBtYXRjaGVzKHBhdHRlcm4sIG5hbWUpIHtcclxuICAgIGlmIChpc0FycmF5KHBhdHRlcm4pKSB7XHJcbiAgICAgICAgcmV0dXJuIHBhdHRlcm4uc29tZSgocCkgPT4gbWF0Y2hlcyhwLCBuYW1lKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc1N0cmluZyhwYXR0ZXJuKSkge1xyXG4gICAgICAgIHJldHVybiBwYXR0ZXJuLnNwbGl0KCcsJykuaW5jbHVkZXMobmFtZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChwYXR0ZXJuLnRlc3QpIHtcclxuICAgICAgICByZXR1cm4gcGF0dGVybi50ZXN0KG5hbWUpO1xyXG4gICAgfVxyXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiBvbkFjdGl2YXRlZChob29rLCB0YXJnZXQpIHtcclxuICAgIHJlZ2lzdGVyS2VlcEFsaXZlSG9vayhob29rLCBcImFcIiAvKiBMaWZlY3ljbGVIb29rcy5BQ1RJVkFURUQgKi8sIHRhcmdldCk7XHJcbn1cclxuZnVuY3Rpb24gb25EZWFjdGl2YXRlZChob29rLCB0YXJnZXQpIHtcclxuICAgIHJlZ2lzdGVyS2VlcEFsaXZlSG9vayhob29rLCBcImRhXCIgLyogTGlmZWN5Y2xlSG9va3MuREVBQ1RJVkFURUQgKi8sIHRhcmdldCk7XHJcbn1cclxuZnVuY3Rpb24gcmVnaXN0ZXJLZWVwQWxpdmVIb29rKGhvb2ssIHR5cGUsIHRhcmdldCA9IGN1cnJlbnRJbnN0YW5jZSkge1xyXG4gICAgLy8gY2FjaGUgdGhlIGRlYWN0aXZhdGUgYnJhbmNoIGNoZWNrIHdyYXBwZXIgZm9yIGluamVjdGVkIGhvb2tzIHNvIHRoZSBzYW1lXHJcbiAgICAvLyBob29rIGNhbiBiZSBwcm9wZXJseSBkZWR1cGVkIGJ5IHRoZSBzY2hlZHVsZXIuIFwiX193ZGNcIiBzdGFuZHMgZm9yIFwid2l0aFxyXG4gICAgLy8gZGVhY3RpdmF0aW9uIGNoZWNrXCIuXHJcbiAgICBjb25zdCB3cmFwcGVkSG9vayA9IGhvb2suX193ZGMgfHxcclxuICAgICAgICAoaG9vay5fX3dkYyA9ICgpID0+IHtcclxuICAgICAgICAgICAgLy8gb25seSBmaXJlIHRoZSBob29rIGlmIHRoZSB0YXJnZXQgaW5zdGFuY2UgaXMgTk9UIGluIGEgZGVhY3RpdmF0ZWQgYnJhbmNoLlxyXG4gICAgICAgICAgICBsZXQgY3VycmVudCA9IHRhcmdldDtcclxuICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LmlzRGVhY3RpdmF0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGhvb2soKTtcclxuICAgICAgICB9KTtcclxuICAgIGluamVjdEhvb2sodHlwZSwgd3JhcHBlZEhvb2ssIHRhcmdldCk7XHJcbiAgICAvLyBJbiBhZGRpdGlvbiB0byByZWdpc3RlcmluZyBpdCBvbiB0aGUgdGFyZ2V0IGluc3RhbmNlLCB3ZSB3YWxrIHVwIHRoZSBwYXJlbnRcclxuICAgIC8vIGNoYWluIGFuZCByZWdpc3RlciBpdCBvbiBhbGwgYW5jZXN0b3IgaW5zdGFuY2VzIHRoYXQgYXJlIGtlZXAtYWxpdmUgcm9vdHMuXHJcbiAgICAvLyBUaGlzIGF2b2lkcyB0aGUgbmVlZCB0byB3YWxrIHRoZSBlbnRpcmUgY29tcG9uZW50IHRyZWUgd2hlbiBpbnZva2luZyB0aGVzZVxyXG4gICAgLy8gaG9va3MsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBhdm9pZHMgdGhlIG5lZWQgdG8gdHJhY2sgY2hpbGQgY29tcG9uZW50cyBpblxyXG4gICAgLy8gYXJyYXlzLlxyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIGxldCBjdXJyZW50ID0gdGFyZ2V0LnBhcmVudDtcclxuICAgICAgICB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50LnBhcmVudCkge1xyXG4gICAgICAgICAgICBpZiAoaXNLZWVwQWxpdmUoY3VycmVudC5wYXJlbnQudm5vZGUpKSB7XHJcbiAgICAgICAgICAgICAgICBpbmplY3RUb0tlZXBBbGl2ZVJvb3Qod3JhcHBlZEhvb2ssIHR5cGUsIHRhcmdldCwgY3VycmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBpbmplY3RUb0tlZXBBbGl2ZVJvb3QoaG9vaywgdHlwZSwgdGFyZ2V0LCBrZWVwQWxpdmVSb290KSB7XHJcbiAgICAvLyBpbmplY3RIb29rIHdyYXBzIHRoZSBvcmlnaW5hbCBmb3IgZXJyb3IgaGFuZGxpbmcsIHNvIG1ha2Ugc3VyZSB0byByZW1vdmVcclxuICAgIC8vIHRoZSB3cmFwcGVkIHZlcnNpb24uXHJcbiAgICBjb25zdCBpbmplY3RlZCA9IGluamVjdEhvb2sodHlwZSwgaG9vaywga2VlcEFsaXZlUm9vdCwgdHJ1ZSAvKiBwcmVwZW5kICovKTtcclxuICAgIG9uVW5tb3VudGVkKCgpID0+IHtcclxuICAgICAgICByZW1vdmUoa2VlcEFsaXZlUm9vdFt0eXBlXSwgaW5qZWN0ZWQpO1xyXG4gICAgfSwgdGFyZ2V0KTtcclxufVxyXG5mdW5jdGlvbiByZXNldFNoYXBlRmxhZyh2bm9kZSkge1xyXG4gICAgbGV0IHNoYXBlRmxhZyA9IHZub2RlLnNoYXBlRmxhZztcclxuICAgIGlmIChzaGFwZUZsYWcgJiAyNTYgLyogU2hhcGVGbGFncy5DT01QT05FTlRfU0hPVUxEX0tFRVBfQUxJVkUgKi8pIHtcclxuICAgICAgICBzaGFwZUZsYWcgLT0gMjU2IC8qIFNoYXBlRmxhZ3MuQ09NUE9ORU5UX1NIT1VMRF9LRUVQX0FMSVZFICovO1xyXG4gICAgfVxyXG4gICAgaWYgKHNoYXBlRmxhZyAmIDUxMiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVF9LRVBUX0FMSVZFICovKSB7XHJcbiAgICAgICAgc2hhcGVGbGFnIC09IDUxMiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVF9LRVBUX0FMSVZFICovO1xyXG4gICAgfVxyXG4gICAgdm5vZGUuc2hhcGVGbGFnID0gc2hhcGVGbGFnO1xyXG59XHJcbmZ1bmN0aW9uIGdldElubmVyQ2hpbGQodm5vZGUpIHtcclxuICAgIHJldHVybiB2bm9kZS5zaGFwZUZsYWcgJiAxMjggLyogU2hhcGVGbGFncy5TVVNQRU5TRSAqLyA/IHZub2RlLnNzQ29udGVudCA6IHZub2RlO1xyXG59XG5cbmZ1bmN0aW9uIGluamVjdEhvb2sodHlwZSwgaG9vaywgdGFyZ2V0ID0gY3VycmVudEluc3RhbmNlLCBwcmVwZW5kID0gZmFsc2UpIHtcclxuICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgICBjb25zdCBob29rcyA9IHRhcmdldFt0eXBlXSB8fCAodGFyZ2V0W3R5cGVdID0gW10pO1xyXG4gICAgICAgIC8vIGNhY2hlIHRoZSBlcnJvciBoYW5kbGluZyB3cmFwcGVyIGZvciBpbmplY3RlZCBob29rcyBzbyB0aGUgc2FtZSBob29rXHJcbiAgICAgICAgLy8gY2FuIGJlIHByb3Blcmx5IGRlZHVwZWQgYnkgdGhlIHNjaGVkdWxlci4gXCJfX3dlaFwiIHN0YW5kcyBmb3IgXCJ3aXRoIGVycm9yXHJcbiAgICAgICAgLy8gaGFuZGxpbmdcIi5cclxuICAgICAgICBjb25zdCB3cmFwcGVkSG9vayA9IGhvb2suX193ZWggfHxcclxuICAgICAgICAgICAgKGhvb2suX193ZWggPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldC5pc1VubW91bnRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGRpc2FibGUgdHJhY2tpbmcgaW5zaWRlIGFsbCBsaWZlY3ljbGUgaG9va3NcclxuICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRoZXkgY2FuIHBvdGVudGlhbGx5IGJlIGNhbGxlZCBpbnNpZGUgZWZmZWN0cy5cclxuICAgICAgICAgICAgICAgIHBhdXNlVHJhY2tpbmcoKTtcclxuICAgICAgICAgICAgICAgIC8vIFNldCBjdXJyZW50SW5zdGFuY2UgZHVyaW5nIGhvb2sgaW52b2NhdGlvbi5cclxuICAgICAgICAgICAgICAgIC8vIFRoaXMgYXNzdW1lcyB0aGUgaG9vayBkb2VzIG5vdCBzeW5jaHJvbm91c2x5IHRyaWdnZXIgb3RoZXIgaG9va3MsIHdoaWNoXHJcbiAgICAgICAgICAgICAgICAvLyBjYW4gb25seSBiZSBmYWxzZSB3aGVuIHRoZSB1c2VyIGRvZXMgc29tZXRoaW5nIHJlYWxseSBmdW5reS5cclxuICAgICAgICAgICAgICAgIHNldEN1cnJlbnRJbnN0YW5jZSh0YXJnZXQpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gY2FsbFdpdGhBc3luY0Vycm9ySGFuZGxpbmcoaG9vaywgdGFyZ2V0LCB0eXBlLCBhcmdzKTtcclxuICAgICAgICAgICAgICAgIHVuc2V0Q3VycmVudEluc3RhbmNlKCk7XHJcbiAgICAgICAgICAgICAgICByZXNldFRyYWNraW5nKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICBpZiAocHJlcGVuZCkge1xyXG4gICAgICAgICAgICBob29rcy51bnNoaWZ0KHdyYXBwZWRIb29rKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGhvb2tzLnB1c2god3JhcHBlZEhvb2spO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gd3JhcHBlZEhvb2s7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICBjb25zdCBhcGlOYW1lID0gdG9IYW5kbGVyS2V5KEVycm9yVHlwZVN0cmluZ3NbdHlwZV0ucmVwbGFjZSgvIGhvb2skLywgJycpKTtcclxuICAgICAgICB3YXJuKGAke2FwaU5hbWV9IGlzIGNhbGxlZCB3aGVuIHRoZXJlIGlzIG5vIGFjdGl2ZSBjb21wb25lbnQgaW5zdGFuY2UgdG8gYmUgYCArXHJcbiAgICAgICAgICAgIGBhc3NvY2lhdGVkIHdpdGguIGAgK1xyXG4gICAgICAgICAgICBgTGlmZWN5Y2xlIGluamVjdGlvbiBBUElzIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGV4ZWN1dGlvbiBvZiBzZXR1cCgpLmAgK1xyXG4gICAgICAgICAgICAoYCBJZiB5b3UgYXJlIHVzaW5nIGFzeW5jIHNldHVwKCksIG1ha2Ugc3VyZSB0byByZWdpc3RlciBsaWZlY3ljbGUgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgYGhvb2tzIGJlZm9yZSB0aGUgZmlyc3QgYXdhaXQgc3RhdGVtZW50LmBcclxuICAgICAgICAgICAgICAgICkpO1xyXG4gICAgfVxyXG59XHJcbmNvbnN0IGNyZWF0ZUhvb2sgPSAobGlmZWN5Y2xlKSA9PiAoaG9vaywgdGFyZ2V0ID0gY3VycmVudEluc3RhbmNlKSA9PiBcclxuLy8gcG9zdC1jcmVhdGUgbGlmZWN5Y2xlIHJlZ2lzdHJhdGlvbnMgYXJlIG5vb3BzIGR1cmluZyBTU1IgKGV4Y2VwdCBmb3Igc2VydmVyUHJlZmV0Y2gpXHJcbighaXNJblNTUkNvbXBvbmVudFNldHVwIHx8IGxpZmVjeWNsZSA9PT0gXCJzcFwiIC8qIExpZmVjeWNsZUhvb2tzLlNFUlZFUl9QUkVGRVRDSCAqLykgJiZcclxuICAgIGluamVjdEhvb2sobGlmZWN5Y2xlLCBob29rLCB0YXJnZXQpO1xyXG5jb25zdCBvbkJlZm9yZU1vdW50ID0gY3JlYXRlSG9vayhcImJtXCIgLyogTGlmZWN5Y2xlSG9va3MuQkVGT1JFX01PVU5UICovKTtcclxuY29uc3Qgb25Nb3VudGVkID0gY3JlYXRlSG9vayhcIm1cIiAvKiBMaWZlY3ljbGVIb29rcy5NT1VOVEVEICovKTtcclxuY29uc3Qgb25CZWZvcmVVcGRhdGUgPSBjcmVhdGVIb29rKFwiYnVcIiAvKiBMaWZlY3ljbGVIb29rcy5CRUZPUkVfVVBEQVRFICovKTtcclxuY29uc3Qgb25VcGRhdGVkID0gY3JlYXRlSG9vayhcInVcIiAvKiBMaWZlY3ljbGVIb29rcy5VUERBVEVEICovKTtcclxuY29uc3Qgb25CZWZvcmVVbm1vdW50ID0gY3JlYXRlSG9vayhcImJ1bVwiIC8qIExpZmVjeWNsZUhvb2tzLkJFRk9SRV9VTk1PVU5UICovKTtcclxuY29uc3Qgb25Vbm1vdW50ZWQgPSBjcmVhdGVIb29rKFwidW1cIiAvKiBMaWZlY3ljbGVIb29rcy5VTk1PVU5URUQgKi8pO1xyXG5jb25zdCBvblNlcnZlclByZWZldGNoID0gY3JlYXRlSG9vayhcInNwXCIgLyogTGlmZWN5Y2xlSG9va3MuU0VSVkVSX1BSRUZFVENIICovKTtcclxuY29uc3Qgb25SZW5kZXJUcmlnZ2VyZWQgPSBjcmVhdGVIb29rKFwicnRnXCIgLyogTGlmZWN5Y2xlSG9va3MuUkVOREVSX1RSSUdHRVJFRCAqLyk7XHJcbmNvbnN0IG9uUmVuZGVyVHJhY2tlZCA9IGNyZWF0ZUhvb2soXCJydGNcIiAvKiBMaWZlY3ljbGVIb29rcy5SRU5ERVJfVFJBQ0tFRCAqLyk7XHJcbmZ1bmN0aW9uIG9uRXJyb3JDYXB0dXJlZChob29rLCB0YXJnZXQgPSBjdXJyZW50SW5zdGFuY2UpIHtcclxuICAgIGluamVjdEhvb2soXCJlY1wiIC8qIExpZmVjeWNsZUhvb2tzLkVSUk9SX0NBUFRVUkVEICovLCBob29rLCB0YXJnZXQpO1xyXG59XG5cbi8qKlxyXG5SdW50aW1lIGhlbHBlciBmb3IgYXBwbHlpbmcgZGlyZWN0aXZlcyB0byBhIHZub2RlLiBFeGFtcGxlIHVzYWdlOlxyXG5cbmNvbnN0IGNvbXAgPSByZXNvbHZlQ29tcG9uZW50KCdjb21wJylcclxuY29uc3QgZm9vID0gcmVzb2x2ZURpcmVjdGl2ZSgnZm9vJylcclxuY29uc3QgYmFyID0gcmVzb2x2ZURpcmVjdGl2ZSgnYmFyJylcclxuXG5yZXR1cm4gd2l0aERpcmVjdGl2ZXMoaChjb21wKSwgW1xyXG4gIFtmb28sIHRoaXMueF0sXHJcbiAgW2JhciwgdGhpcy55XVxyXG5dKVxyXG4qL1xyXG5mdW5jdGlvbiB2YWxpZGF0ZURpcmVjdGl2ZU5hbWUobmFtZSkge1xyXG4gICAgaWYgKGlzQnVpbHRJbkRpcmVjdGl2ZShuYW1lKSkge1xyXG4gICAgICAgIHdhcm4oJ0RvIG5vdCB1c2UgYnVpbHQtaW4gZGlyZWN0aXZlIGlkcyBhcyBjdXN0b20gZGlyZWN0aXZlIGlkOiAnICsgbmFtZSk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIEFkZHMgZGlyZWN0aXZlcyB0byBhIFZOb2RlLlxyXG4gKi9cclxuZnVuY3Rpb24gd2l0aERpcmVjdGl2ZXModm5vZGUsIGRpcmVjdGl2ZXMpIHtcclxuICAgIGNvbnN0IGludGVybmFsSW5zdGFuY2UgPSBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2U7XHJcbiAgICBpZiAoaW50ZXJuYWxJbnN0YW5jZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiB3YXJuKGB3aXRoRGlyZWN0aXZlcyBjYW4gb25seSBiZSB1c2VkIGluc2lkZSByZW5kZXIgZnVuY3Rpb25zLmApO1xyXG4gICAgICAgIHJldHVybiB2bm9kZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGluc3RhbmNlID0gZ2V0RXhwb3NlUHJveHkoaW50ZXJuYWxJbnN0YW5jZSkgfHxcclxuICAgICAgICBpbnRlcm5hbEluc3RhbmNlLnByb3h5O1xyXG4gICAgY29uc3QgYmluZGluZ3MgPSB2bm9kZS5kaXJzIHx8ICh2bm9kZS5kaXJzID0gW10pO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaXJlY3RpdmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IFtkaXIsIHZhbHVlLCBhcmcsIG1vZGlmaWVycyA9IEVNUFRZX09CSl0gPSBkaXJlY3RpdmVzW2ldO1xyXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKGRpcikpIHtcclxuICAgICAgICAgICAgZGlyID0ge1xyXG4gICAgICAgICAgICAgICAgbW91bnRlZDogZGlyLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlZDogZGlyXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXIuZGVlcCkge1xyXG4gICAgICAgICAgICB0cmF2ZXJzZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJpbmRpbmdzLnB1c2goe1xyXG4gICAgICAgICAgICBkaXIsXHJcbiAgICAgICAgICAgIGluc3RhbmNlLFxyXG4gICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgICAgb2xkVmFsdWU6IHZvaWQgMCxcclxuICAgICAgICAgICAgYXJnLFxyXG4gICAgICAgICAgICBtb2RpZmllcnNcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB2bm9kZTtcclxufVxyXG5mdW5jdGlvbiBpbnZva2VEaXJlY3RpdmVIb29rKHZub2RlLCBwcmV2Vk5vZGUsIGluc3RhbmNlLCBuYW1lKSB7XHJcbiAgICBjb25zdCBiaW5kaW5ncyA9IHZub2RlLmRpcnM7XHJcbiAgICBjb25zdCBvbGRCaW5kaW5ncyA9IHByZXZWTm9kZSAmJiBwcmV2Vk5vZGUuZGlycztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmluZGluZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBiaW5kaW5nID0gYmluZGluZ3NbaV07XHJcbiAgICAgICAgaWYgKG9sZEJpbmRpbmdzKSB7XHJcbiAgICAgICAgICAgIGJpbmRpbmcub2xkVmFsdWUgPSBvbGRCaW5kaW5nc1tpXS52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGhvb2sgPSBiaW5kaW5nLmRpcltuYW1lXTtcclxuICAgICAgICBpZiAoaG9vaykge1xyXG4gICAgICAgICAgICAvLyBkaXNhYmxlIHRyYWNraW5nIGluc2lkZSBhbGwgbGlmZWN5Y2xlIGhvb2tzXHJcbiAgICAgICAgICAgIC8vIHNpbmNlIHRoZXkgY2FuIHBvdGVudGlhbGx5IGJlIGNhbGxlZCBpbnNpZGUgZWZmZWN0cy5cclxuICAgICAgICAgICAgcGF1c2VUcmFja2luZygpO1xyXG4gICAgICAgICAgICBjYWxsV2l0aEFzeW5jRXJyb3JIYW5kbGluZyhob29rLCBpbnN0YW5jZSwgOCAvKiBFcnJvckNvZGVzLkRJUkVDVElWRV9IT09LICovLCBbXHJcbiAgICAgICAgICAgICAgICB2bm9kZS5lbCxcclxuICAgICAgICAgICAgICAgIGJpbmRpbmcsXHJcbiAgICAgICAgICAgICAgICB2bm9kZSxcclxuICAgICAgICAgICAgICAgIHByZXZWTm9kZVxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgcmVzZXRUcmFja2luZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxuXG5jb25zdCBDT01QT05FTlRTID0gJ2NvbXBvbmVudHMnO1xyXG5jb25zdCBESVJFQ1RJVkVTID0gJ2RpcmVjdGl2ZXMnO1xyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnQobmFtZSwgbWF5YmVTZWxmUmVmZXJlbmNlKSB7XHJcbiAgICByZXR1cm4gcmVzb2x2ZUFzc2V0KENPTVBPTkVOVFMsIG5hbWUsIHRydWUsIG1heWJlU2VsZlJlZmVyZW5jZSkgfHwgbmFtZTtcclxufVxyXG5jb25zdCBOVUxMX0RZTkFNSUNfQ09NUE9ORU5UID0gU3ltYm9sKCk7XHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuZnVuY3Rpb24gcmVzb2x2ZUR5bmFtaWNDb21wb25lbnQoY29tcG9uZW50KSB7XHJcbiAgICBpZiAoaXNTdHJpbmcoY29tcG9uZW50KSkge1xyXG4gICAgICAgIHJldHVybiByZXNvbHZlQXNzZXQoQ09NUE9ORU5UUywgY29tcG9uZW50LCBmYWxzZSkgfHwgY29tcG9uZW50O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gaW52YWxpZCB0eXBlcyB3aWxsIGZhbGx0aHJvdWdoIHRvIGNyZWF0ZVZOb2RlIGFuZCByYWlzZSB3YXJuaW5nXHJcbiAgICAgICAgcmV0dXJuIChjb21wb25lbnQgfHwgTlVMTF9EWU5BTUlDX0NPTVBPTkVOVCk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiByZXNvbHZlRGlyZWN0aXZlKG5hbWUpIHtcclxuICAgIHJldHVybiByZXNvbHZlQXNzZXQoRElSRUNUSVZFUywgbmFtZSk7XHJcbn1cclxuLy8gaW1wbGVtZW50YXRpb25cclxuZnVuY3Rpb24gcmVzb2x2ZUFzc2V0KHR5cGUsIG5hbWUsIHdhcm5NaXNzaW5nID0gdHJ1ZSwgbWF5YmVTZWxmUmVmZXJlbmNlID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlIHx8IGN1cnJlbnRJbnN0YW5jZTtcclxuICAgIGlmIChpbnN0YW5jZSkge1xyXG4gICAgICAgIGNvbnN0IENvbXBvbmVudCA9IGluc3RhbmNlLnR5cGU7XHJcbiAgICAgICAgLy8gZXhwbGljaXQgc2VsZiBuYW1lIGhhcyBoaWdoZXN0IHByaW9yaXR5XHJcbiAgICAgICAgaWYgKHR5cGUgPT09IENPTVBPTkVOVFMpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZk5hbWUgPSBnZXRDb21wb25lbnROYW1lKENvbXBvbmVudCwgZmFsc2UgLyogZG8gbm90IGluY2x1ZGUgaW5mZXJyZWQgbmFtZSB0byBhdm9pZCBicmVha2luZyBleGlzdGluZyBjb2RlICovKTtcclxuICAgICAgICAgICAgaWYgKHNlbGZOYW1lICYmXHJcbiAgICAgICAgICAgICAgICAoc2VsZk5hbWUgPT09IG5hbWUgfHxcclxuICAgICAgICAgICAgICAgICAgICBzZWxmTmFtZSA9PT0gY2FtZWxpemUobmFtZSkgfHxcclxuICAgICAgICAgICAgICAgICAgICBzZWxmTmFtZSA9PT0gY2FwaXRhbGl6ZShjYW1lbGl6ZShuYW1lKSkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29tcG9uZW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJlcyA9IFxyXG4gICAgICAgIC8vIGxvY2FsIHJlZ2lzdHJhdGlvblxyXG4gICAgICAgIC8vIGNoZWNrIGluc3RhbmNlW3R5cGVdIGZpcnN0IHdoaWNoIGlzIHJlc29sdmVkIGZvciBvcHRpb25zIEFQSVxyXG4gICAgICAgIHJlc29sdmUoaW5zdGFuY2VbdHlwZV0gfHwgQ29tcG9uZW50W3R5cGVdLCBuYW1lKSB8fFxyXG4gICAgICAgICAgICAvLyBnbG9iYWwgcmVnaXN0cmF0aW9uXHJcbiAgICAgICAgICAgIHJlc29sdmUoaW5zdGFuY2UuYXBwQ29udGV4dFt0eXBlXSwgbmFtZSk7XHJcbiAgICAgICAgaWYgKCFyZXMgJiYgbWF5YmVTZWxmUmVmZXJlbmNlKSB7XHJcbiAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIGltcGxpY2l0IHNlbGYtcmVmZXJlbmNlXHJcbiAgICAgICAgICAgIHJldHVybiBDb21wb25lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgd2Fybk1pc3NpbmcgJiYgIXJlcykge1xyXG4gICAgICAgICAgICBjb25zdCBleHRyYSA9IHR5cGUgPT09IENPTVBPTkVOVFNcclxuICAgICAgICAgICAgICAgID8gYFxcbklmIHRoaXMgaXMgYSBuYXRpdmUgY3VzdG9tIGVsZW1lbnQsIG1ha2Ugc3VyZSB0byBleGNsdWRlIGl0IGZyb20gYCArXHJcbiAgICAgICAgICAgICAgICAgICAgYGNvbXBvbmVudCByZXNvbHV0aW9uIHZpYSBjb21waWxlck9wdGlvbnMuaXNDdXN0b21FbGVtZW50LmBcclxuICAgICAgICAgICAgICAgIDogYGA7XHJcbiAgICAgICAgICAgIHdhcm4oYEZhaWxlZCB0byByZXNvbHZlICR7dHlwZS5zbGljZSgwLCAtMSl9OiAke25hbWV9JHtleHRyYX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgIHdhcm4oYHJlc29sdmUke2NhcGl0YWxpemUodHlwZS5zbGljZSgwLCAtMSkpfSBgICtcclxuICAgICAgICAgICAgYGNhbiBvbmx5IGJlIHVzZWQgaW4gcmVuZGVyKCkgb3Igc2V0dXAoKS5gKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiByZXNvbHZlKHJlZ2lzdHJ5LCBuYW1lKSB7XHJcbiAgICByZXR1cm4gKHJlZ2lzdHJ5ICYmXHJcbiAgICAgICAgKHJlZ2lzdHJ5W25hbWVdIHx8XHJcbiAgICAgICAgICAgIHJlZ2lzdHJ5W2NhbWVsaXplKG5hbWUpXSB8fFxyXG4gICAgICAgICAgICByZWdpc3RyeVtjYXBpdGFsaXplKGNhbWVsaXplKG5hbWUpKV0pKTtcclxufVxuXG4vKipcclxuICogQWN0dWFsIGltcGxlbWVudGF0aW9uXHJcbiAqL1xyXG5mdW5jdGlvbiByZW5kZXJMaXN0KHNvdXJjZSwgcmVuZGVySXRlbSwgY2FjaGUsIGluZGV4KSB7XHJcbiAgICBsZXQgcmV0O1xyXG4gICAgY29uc3QgY2FjaGVkID0gKGNhY2hlICYmIGNhY2hlW2luZGV4XSk7XHJcbiAgICBpZiAoaXNBcnJheShzb3VyY2UpIHx8IGlzU3RyaW5nKHNvdXJjZSkpIHtcclxuICAgICAgICByZXQgPSBuZXcgQXJyYXkoc291cmNlLmxlbmd0aCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBzb3VyY2UubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHJldFtpXSA9IHJlbmRlckl0ZW0oc291cmNlW2ldLCBpLCB1bmRlZmluZWQsIGNhY2hlZCAmJiBjYWNoZWRbaV0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhTnVtYmVyLmlzSW50ZWdlcihzb3VyY2UpKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYFRoZSB2LWZvciByYW5nZSBleHBlY3QgYW4gaW50ZWdlciB2YWx1ZSBidXQgZ290ICR7c291cmNlfS5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0ID0gbmV3IEFycmF5KHNvdXJjZSk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3VyY2U7IGkrKykge1xyXG4gICAgICAgICAgICByZXRbaV0gPSByZW5kZXJJdGVtKGkgKyAxLCBpLCB1bmRlZmluZWQsIGNhY2hlZCAmJiBjYWNoZWRbaV0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzT2JqZWN0KHNvdXJjZSkpIHtcclxuICAgICAgICBpZiAoc291cmNlW1N5bWJvbC5pdGVyYXRvcl0pIHtcclxuICAgICAgICAgICAgcmV0ID0gQXJyYXkuZnJvbShzb3VyY2UsIChpdGVtLCBpKSA9PiByZW5kZXJJdGVtKGl0ZW0sIGksIHVuZGVmaW5lZCwgY2FjaGVkICYmIGNhY2hlZFtpXSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XHJcbiAgICAgICAgICAgIHJldCA9IG5ldyBBcnJheShrZXlzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XHJcbiAgICAgICAgICAgICAgICByZXRbaV0gPSByZW5kZXJJdGVtKHNvdXJjZVtrZXldLCBrZXksIGksIGNhY2hlZCAmJiBjYWNoZWRbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmV0ID0gW107XHJcbiAgICB9XHJcbiAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICBjYWNoZVtpbmRleF0gPSByZXQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0O1xyXG59XG5cbi8qKlxyXG4gKiBDb21waWxlciBydW50aW1lIGhlbHBlciBmb3IgY3JlYXRpbmcgZHluYW1pYyBzbG90cyBvYmplY3RcclxuICogQHByaXZhdGVcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZVNsb3RzKHNsb3RzLCBkeW5hbWljU2xvdHMpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZHluYW1pY1Nsb3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3Qgc2xvdCA9IGR5bmFtaWNTbG90c1tpXTtcclxuICAgICAgICAvLyBhcnJheSBvZiBkeW5hbWljIHNsb3QgZ2VuZXJhdGVkIGJ5IDx0ZW1wbGF0ZSB2LWZvcj1cIi4uLlwiICNbLi4uXT5cclxuICAgICAgICBpZiAoaXNBcnJheShzbG90KSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNsb3QubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIHNsb3RzW3Nsb3Rbal0ubmFtZV0gPSBzbG90W2pdLmZuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHNsb3QpIHtcclxuICAgICAgICAgICAgLy8gY29uZGl0aW9uYWwgc2luZ2xlIHNsb3QgZ2VuZXJhdGVkIGJ5IDx0ZW1wbGF0ZSB2LWlmPVwiLi4uXCIgI2Zvbz5cclxuICAgICAgICAgICAgc2xvdHNbc2xvdC5uYW1lXSA9IHNsb3Qua2V5XHJcbiAgICAgICAgICAgICAgICA/ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gc2xvdC5mbiguLi5hcmdzKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMua2V5ID0gc2xvdC5rZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDogc2xvdC5mbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2xvdHM7XHJcbn1cblxuLyoqXHJcbiAqIENvbXBpbGVyIHJ1bnRpbWUgaGVscGVyIGZvciByZW5kZXJpbmcgYDxzbG90Lz5gXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiByZW5kZXJTbG90KHNsb3RzLCBuYW1lLCBwcm9wcyA9IHt9LCBcclxuLy8gdGhpcyBpcyBub3QgYSB1c2VyLWZhY2luZyBmdW5jdGlvbiwgc28gdGhlIGZhbGxiYWNrIGlzIGFsd2F5cyBnZW5lcmF0ZWQgYnlcclxuLy8gdGhlIGNvbXBpbGVyIGFuZCBndWFyYW50ZWVkIHRvIGJlIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGFuIGFycmF5XHJcbmZhbGxiYWNrLCBub1Nsb3R0ZWQpIHtcclxuICAgIGlmIChjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UuaXNDRSB8fFxyXG4gICAgICAgIChjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UucGFyZW50ICYmXHJcbiAgICAgICAgICAgIGlzQXN5bmNXcmFwcGVyKGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5wYXJlbnQpICYmXHJcbiAgICAgICAgICAgIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5wYXJlbnQuaXNDRSkpIHtcclxuICAgICAgICByZXR1cm4gY3JlYXRlVk5vZGUoJ3Nsb3QnLCBuYW1lID09PSAnZGVmYXVsdCcgPyBudWxsIDogeyBuYW1lIH0sIGZhbGxiYWNrICYmIGZhbGxiYWNrKCkpO1xyXG4gICAgfVxyXG4gICAgbGV0IHNsb3QgPSBzbG90c1tuYW1lXTtcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgc2xvdCAmJiBzbG90Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICB3YXJuKGBTU1Itb3B0aW1pemVkIHNsb3QgZnVuY3Rpb24gZGV0ZWN0ZWQgaW4gYSBub24tU1NSLW9wdGltaXplZCByZW5kZXIgYCArXHJcbiAgICAgICAgICAgIGBmdW5jdGlvbi4gWW91IG5lZWQgdG8gbWFyayB0aGlzIGNvbXBvbmVudCB3aXRoICRkeW5hbWljLXNsb3RzIGluIHRoZSBgICtcclxuICAgICAgICAgICAgYHBhcmVudCB0ZW1wbGF0ZS5gKTtcclxuICAgICAgICBzbG90ID0gKCkgPT4gW107XHJcbiAgICB9XHJcbiAgICAvLyBhIGNvbXBpbGVkIHNsb3QgZGlzYWJsZXMgYmxvY2sgdHJhY2tpbmcgYnkgZGVmYXVsdCB0byBhdm9pZCBtYW51YWxcclxuICAgIC8vIGludm9jYXRpb24gaW50ZXJmZXJpbmcgd2l0aCB0ZW1wbGF0ZS1iYXNlZCBibG9jayB0cmFja2luZywgYnV0IGluXHJcbiAgICAvLyBgcmVuZGVyU2xvdGAgd2UgY2FuIGJlIHN1cmUgdGhhdCBpdCdzIHRlbXBsYXRlLWJhc2VkIHNvIHdlIGNhbiBmb3JjZVxyXG4gICAgLy8gZW5hYmxlIGl0LlxyXG4gICAgaWYgKHNsb3QgJiYgc2xvdC5fYykge1xyXG4gICAgICAgIHNsb3QuX2QgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIG9wZW5CbG9jaygpO1xyXG4gICAgY29uc3QgdmFsaWRTbG90Q29udGVudCA9IHNsb3QgJiYgZW5zdXJlVmFsaWRWTm9kZShzbG90KHByb3BzKSk7XHJcbiAgICBjb25zdCByZW5kZXJlZCA9IGNyZWF0ZUJsb2NrKEZyYWdtZW50LCB7XHJcbiAgICAgICAga2V5OiBwcm9wcy5rZXkgfHxcclxuICAgICAgICAgICAgLy8gc2xvdCBjb250ZW50IGFycmF5IG9mIGEgZHluYW1pYyBjb25kaXRpb25hbCBzbG90IG1heSBoYXZlIGEgYnJhbmNoXHJcbiAgICAgICAgICAgIC8vIGtleSBhdHRhY2hlZCBpbiB0aGUgYGNyZWF0ZVNsb3RzYCBoZWxwZXIsIHJlc3BlY3QgdGhhdFxyXG4gICAgICAgICAgICAodmFsaWRTbG90Q29udGVudCAmJiB2YWxpZFNsb3RDb250ZW50LmtleSkgfHxcclxuICAgICAgICAgICAgYF8ke25hbWV9YFxyXG4gICAgfSwgdmFsaWRTbG90Q29udGVudCB8fCAoZmFsbGJhY2sgPyBmYWxsYmFjaygpIDogW10pLCB2YWxpZFNsb3RDb250ZW50ICYmIHNsb3RzLl8gPT09IDEgLyogU2xvdEZsYWdzLlNUQUJMRSAqL1xyXG4gICAgICAgID8gNjQgLyogUGF0Y2hGbGFncy5TVEFCTEVfRlJBR01FTlQgKi9cclxuICAgICAgICA6IC0yIC8qIFBhdGNoRmxhZ3MuQkFJTCAqLyk7XHJcbiAgICBpZiAoIW5vU2xvdHRlZCAmJiByZW5kZXJlZC5zY29wZUlkKSB7XHJcbiAgICAgICAgcmVuZGVyZWQuc2xvdFNjb3BlSWRzID0gW3JlbmRlcmVkLnNjb3BlSWQgKyAnLXMnXTtcclxuICAgIH1cclxuICAgIGlmIChzbG90ICYmIHNsb3QuX2MpIHtcclxuICAgICAgICBzbG90Ll9kID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiByZW5kZXJlZDtcclxufVxyXG5mdW5jdGlvbiBlbnN1cmVWYWxpZFZOb2RlKHZub2Rlcykge1xyXG4gICAgcmV0dXJuIHZub2Rlcy5zb21lKGNoaWxkID0+IHtcclxuICAgICAgICBpZiAoIWlzVk5vZGUoY2hpbGQpKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gQ29tbWVudClcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmIChjaGlsZC50eXBlID09PSBGcmFnbWVudCAmJlxyXG4gICAgICAgICAgICAhZW5zdXJlVmFsaWRWTm9kZShjaGlsZC5jaGlsZHJlbikpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0pXHJcbiAgICAgICAgPyB2bm9kZXNcclxuICAgICAgICA6IG51bGw7XHJcbn1cblxuLyoqXHJcbiAqIEZvciBwcmVmaXhpbmcga2V5cyBpbiB2LW9uPVwib2JqXCIgd2l0aCBcIm9uXCJcclxuICogQHByaXZhdGVcclxuICovXHJcbmZ1bmN0aW9uIHRvSGFuZGxlcnMob2JqLCBwcmVzZXJ2ZUNhc2VJZk5lY2Vzc2FyeSkge1xyXG4gICAgY29uc3QgcmV0ID0ge307XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFpc09iamVjdChvYmopKSB7XHJcbiAgICAgICAgd2Fybihgdi1vbiB3aXRoIG5vIGFyZ3VtZW50IGV4cGVjdHMgYW4gb2JqZWN0IHZhbHVlLmApO1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgICByZXRbcHJlc2VydmVDYXNlSWZOZWNlc3NhcnkgJiYgL1tBLVpdLy50ZXN0KGtleSlcclxuICAgICAgICAgICAgPyBgb246JHtrZXl9YFxyXG4gICAgICAgICAgICA6IHRvSGFuZGxlcktleShrZXkpXSA9IG9ialtrZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJldDtcclxufVxuXG4vKipcclxuICogIzI0MzcgSW4gVnVlIDMsIGZ1bmN0aW9uYWwgY29tcG9uZW50cyBkbyBub3QgaGF2ZSBhIHB1YmxpYyBpbnN0YW5jZSBwcm94eSBidXRcclxuICogdGhleSBleGlzdCBpbiB0aGUgaW50ZXJuYWwgcGFyZW50IGNoYWluLiBGb3IgY29kZSB0aGF0IHJlbGllcyBvbiB0cmF2ZXJzaW5nXHJcbiAqIHB1YmxpYyAkcGFyZW50IGNoYWlucywgc2tpcCBmdW5jdGlvbmFsIG9uZXMgYW5kIGdvIHRvIHRoZSBwYXJlbnQgaW5zdGVhZC5cclxuICovXHJcbmNvbnN0IGdldFB1YmxpY0luc3RhbmNlID0gKGkpID0+IHtcclxuICAgIGlmICghaSlcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIGlmIChpc1N0YXRlZnVsQ29tcG9uZW50KGkpKVxyXG4gICAgICAgIHJldHVybiBnZXRFeHBvc2VQcm94eShpKSB8fCBpLnByb3h5O1xyXG4gICAgcmV0dXJuIGdldFB1YmxpY0luc3RhbmNlKGkucGFyZW50KTtcclxufTtcclxuY29uc3QgcHVibGljUHJvcGVydGllc01hcCA9IFxyXG4vLyBNb3ZlIFBVUkUgbWFya2VyIHRvIG5ldyBsaW5lIHRvIHdvcmthcm91bmQgY29tcGlsZXIgZGlzY2FyZGluZyBpdFxyXG4vLyBkdWUgdG8gdHlwZSBhbm5vdGF0aW9uXHJcbi8qI19fUFVSRV9fKi8gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIHtcclxuICAgICQ6IGkgPT4gaSxcclxuICAgICRlbDogaSA9PiBpLnZub2RlLmVsLFxyXG4gICAgJGRhdGE6IGkgPT4gaS5kYXRhLFxyXG4gICAgJHByb3BzOiBpID0+ICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBzaGFsbG93UmVhZG9ubHkoaS5wcm9wcykgOiBpLnByb3BzKSxcclxuICAgICRhdHRyczogaSA9PiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gc2hhbGxvd1JlYWRvbmx5KGkuYXR0cnMpIDogaS5hdHRycyksXHJcbiAgICAkc2xvdHM6IGkgPT4gKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IHNoYWxsb3dSZWFkb25seShpLnNsb3RzKSA6IGkuc2xvdHMpLFxyXG4gICAgJHJlZnM6IGkgPT4gKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IHNoYWxsb3dSZWFkb25seShpLnJlZnMpIDogaS5yZWZzKSxcclxuICAgICRwYXJlbnQ6IGkgPT4gZ2V0UHVibGljSW5zdGFuY2UoaS5wYXJlbnQpLFxyXG4gICAgJHJvb3Q6IGkgPT4gZ2V0UHVibGljSW5zdGFuY2UoaS5yb290KSxcclxuICAgICRlbWl0OiBpID0+IGkuZW1pdCxcclxuICAgICRvcHRpb25zOiBpID0+IChfX1ZVRV9PUFRJT05TX0FQSV9fID8gcmVzb2x2ZU1lcmdlZE9wdGlvbnMoaSkgOiBpLnR5cGUpLFxyXG4gICAgJGZvcmNlVXBkYXRlOiBpID0+IGkuZiB8fCAoaS5mID0gKCkgPT4gcXVldWVKb2IoaS51cGRhdGUpKSxcclxuICAgICRuZXh0VGljazogaSA9PiBpLm4gfHwgKGkubiA9IG5leHRUaWNrLmJpbmQoaS5wcm94eSkpLFxyXG4gICAgJHdhdGNoOiBpID0+IChfX1ZVRV9PUFRJT05TX0FQSV9fID8gaW5zdGFuY2VXYXRjaC5iaW5kKGkpIDogTk9PUClcclxufSk7XHJcbmNvbnN0IGlzUmVzZXJ2ZWRQcmVmaXggPSAoa2V5KSA9PiBrZXkgPT09ICdfJyB8fCBrZXkgPT09ICckJztcclxuY29uc3QgUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzID0ge1xyXG4gICAgZ2V0KHsgXzogaW5zdGFuY2UgfSwga2V5KSB7XHJcbiAgICAgICAgY29uc3QgeyBjdHgsIHNldHVwU3RhdGUsIGRhdGEsIHByb3BzLCBhY2Nlc3NDYWNoZSwgdHlwZSwgYXBwQ29udGV4dCB9ID0gaW5zdGFuY2U7XHJcbiAgICAgICAgLy8gZm9yIGludGVybmFsIGZvcm1hdHRlcnMgdG8ga25vdyB0aGF0IHRoaXMgaXMgYSBWdWUgaW5zdGFuY2VcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGtleSA9PT0gJ19faXNWdWUnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBwcmlvcml0aXplIDxzY3JpcHQgc2V0dXA+IGJpbmRpbmdzIGR1cmluZyBkZXYuXHJcbiAgICAgICAgLy8gdGhpcyBhbGxvd3MgZXZlbiBwcm9wZXJ0aWVzIHRoYXQgc3RhcnQgd2l0aCBfIG9yICQgdG8gYmUgdXNlZCAtIHNvIHRoYXRcclxuICAgICAgICAvLyBpdCBhbGlnbnMgd2l0aCB0aGUgcHJvZHVjdGlvbiBiZWhhdmlvciB3aGVyZSB0aGUgcmVuZGVyIGZuIGlzIGlubGluZWQgYW5kXHJcbiAgICAgICAgLy8gaW5kZWVkIGhhcyBhY2Nlc3MgdG8gYWxsIGRlY2xhcmVkIHZhcmlhYmxlcy5cclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmXHJcbiAgICAgICAgICAgIHNldHVwU3RhdGUgIT09IEVNUFRZX09CSiAmJlxyXG4gICAgICAgICAgICBzZXR1cFN0YXRlLl9faXNTY3JpcHRTZXR1cCAmJlxyXG4gICAgICAgICAgICBoYXNPd24oc2V0dXBTdGF0ZSwga2V5KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gc2V0dXBTdGF0ZVtrZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBkYXRhIC8gcHJvcHMgLyBjdHhcclxuICAgICAgICAvLyBUaGlzIGdldHRlciBnZXRzIGNhbGxlZCBmb3IgZXZlcnkgcHJvcGVydHkgYWNjZXNzIG9uIHRoZSByZW5kZXIgY29udGV4dFxyXG4gICAgICAgIC8vIGR1cmluZyByZW5kZXIgYW5kIGlzIGEgbWFqb3IgaG90c3BvdC4gVGhlIG1vc3QgZXhwZW5zaXZlIHBhcnQgb2YgdGhpc1xyXG4gICAgICAgIC8vIGlzIHRoZSBtdWx0aXBsZSBoYXNPd24oKSBjYWxscy4gSXQncyBtdWNoIGZhc3RlciB0byBkbyBhIHNpbXBsZSBwcm9wZXJ0eVxyXG4gICAgICAgIC8vIGFjY2VzcyBvbiBhIHBsYWluIG9iamVjdCwgc28gd2UgdXNlIGFuIGFjY2Vzc0NhY2hlIG9iamVjdCAod2l0aCBudWxsXHJcbiAgICAgICAgLy8gcHJvdG90eXBlKSB0byBtZW1vaXplIHdoYXQgYWNjZXNzIHR5cGUgYSBrZXkgY29ycmVzcG9uZHMgdG8uXHJcbiAgICAgICAgbGV0IG5vcm1hbGl6ZWRQcm9wcztcclxuICAgICAgICBpZiAoa2V5WzBdICE9PSAnJCcpIHtcclxuICAgICAgICAgICAgY29uc3QgbiA9IGFjY2Vzc0NhY2hlW2tleV07XHJcbiAgICAgICAgICAgIGlmIChuICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAobikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMSAvKiBBY2Nlc3NUeXBlcy5TRVRVUCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNldHVwU3RhdGVba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIgLyogQWNjZXNzVHlwZXMuREFUQSAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQgLyogQWNjZXNzVHlwZXMuQ09OVEVYVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0eFtrZXldO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMyAvKiBBY2Nlc3NUeXBlcy5QUk9QUyAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzW2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdDoganVzdCBmYWxsdGhyb3VnaFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHNldHVwU3RhdGUgIT09IEVNUFRZX09CSiAmJiBoYXNPd24oc2V0dXBTdGF0ZSwga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgYWNjZXNzQ2FjaGVba2V5XSA9IDEgLyogQWNjZXNzVHlwZXMuU0VUVVAgKi87XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc2V0dXBTdGF0ZVtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEgIT09IEVNUFRZX09CSiAmJiBoYXNPd24oZGF0YSwga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgYWNjZXNzQ2FjaGVba2V5XSA9IDIgLyogQWNjZXNzVHlwZXMuREFUQSAqLztcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoXHJcbiAgICAgICAgICAgIC8vIG9ubHkgY2FjaGUgb3RoZXIgcHJvcGVydGllcyB3aGVuIGluc3RhbmNlIGhhcyBkZWNsYXJlZCAodGh1cyBzdGFibGUpXHJcbiAgICAgICAgICAgIC8vIHByb3BzXHJcbiAgICAgICAgICAgIChub3JtYWxpemVkUHJvcHMgPSBpbnN0YW5jZS5wcm9wc09wdGlvbnNbMF0pICYmXHJcbiAgICAgICAgICAgICAgICBoYXNPd24obm9ybWFsaXplZFByb3BzLCBrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBhY2Nlc3NDYWNoZVtrZXldID0gMyAvKiBBY2Nlc3NUeXBlcy5QUk9QUyAqLztcclxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wc1trZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGN0eCAhPT0gRU1QVFlfT0JKICYmIGhhc093bihjdHgsIGtleSkpIHtcclxuICAgICAgICAgICAgICAgIGFjY2Vzc0NhY2hlW2tleV0gPSA0IC8qIEFjY2Vzc1R5cGVzLkNPTlRFWFQgKi87XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3R4W2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoIV9fVlVFX09QVElPTlNfQVBJX18gfHwgc2hvdWxkQ2FjaGVBY2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgIGFjY2Vzc0NhY2hlW2tleV0gPSAwIC8qIEFjY2Vzc1R5cGVzLk9USEVSICovO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHB1YmxpY0dldHRlciA9IHB1YmxpY1Byb3BlcnRpZXNNYXBba2V5XTtcclxuICAgICAgICBsZXQgY3NzTW9kdWxlLCBnbG9iYWxQcm9wZXJ0aWVzO1xyXG4gICAgICAgIC8vIHB1YmxpYyAkeHh4IHByb3BlcnRpZXNcclxuICAgICAgICBpZiAocHVibGljR2V0dGVyKSB7XHJcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICckYXR0cnMnKSB7XHJcbiAgICAgICAgICAgICAgICB0cmFjayhpbnN0YW5jZSwgXCJnZXRcIiAvKiBUcmFja09wVHlwZXMuR0VUICovLCBrZXkpO1xyXG4gICAgICAgICAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIG1hcmtBdHRyc0FjY2Vzc2VkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHB1YmxpY0dldHRlcihpbnN0YW5jZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIC8vIGNzcyBtb2R1bGUgKGluamVjdGVkIGJ5IHZ1ZS1sb2FkZXIpXHJcbiAgICAgICAgKGNzc01vZHVsZSA9IHR5cGUuX19jc3NNb2R1bGVzKSAmJlxyXG4gICAgICAgICAgICAoY3NzTW9kdWxlID0gY3NzTW9kdWxlW2tleV0pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjc3NNb2R1bGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGN0eCAhPT0gRU1QVFlfT0JKICYmIGhhc093bihjdHgsIGtleSkpIHtcclxuICAgICAgICAgICAgLy8gdXNlciBtYXkgc2V0IGN1c3RvbSBwcm9wZXJ0aWVzIHRvIGB0aGlzYCB0aGF0IHN0YXJ0IHdpdGggYCRgXHJcbiAgICAgICAgICAgIGFjY2Vzc0NhY2hlW2tleV0gPSA0IC8qIEFjY2Vzc1R5cGVzLkNPTlRFWFQgKi87XHJcbiAgICAgICAgICAgIHJldHVybiBjdHhba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoXHJcbiAgICAgICAgLy8gZ2xvYmFsIHByb3BlcnRpZXNcclxuICAgICAgICAoKGdsb2JhbFByb3BlcnRpZXMgPSBhcHBDb250ZXh0LmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzKSxcclxuICAgICAgICAgICAgaGFzT3duKGdsb2JhbFByb3BlcnRpZXMsIGtleSkpKSB7XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBnbG9iYWxQcm9wZXJ0aWVzW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmXHJcbiAgICAgICAgICAgIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSAmJlxyXG4gICAgICAgICAgICAoIWlzU3RyaW5nKGtleSkgfHxcclxuICAgICAgICAgICAgICAgIC8vICMxMDkxIGF2b2lkIGludGVybmFsIGlzUmVmL2lzVk5vZGUgY2hlY2tzIG9uIGNvbXBvbmVudCBpbnN0YW5jZSBsZWFkaW5nXHJcbiAgICAgICAgICAgICAgICAvLyB0byBpbmZpbml0ZSB3YXJuaW5nIGxvb3BcclxuICAgICAgICAgICAgICAgIGtleS5pbmRleE9mKCdfX3YnKSAhPT0gMCkpIHtcclxuICAgICAgICAgICAgaWYgKGRhdGEgIT09IEVNUFRZX09CSiAmJiBpc1Jlc2VydmVkUHJlZml4KGtleVswXSkgJiYgaGFzT3duKGRhdGEsIGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oYFByb3BlcnR5ICR7SlNPTi5zdHJpbmdpZnkoa2V5KX0gbXVzdCBiZSBhY2Nlc3NlZCB2aWEgJGRhdGEgYmVjYXVzZSBpdCBzdGFydHMgd2l0aCBhIHJlc2VydmVkIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGBjaGFyYWN0ZXIgKFwiJFwiIG9yIFwiX1wiKSBhbmQgaXMgbm90IHByb3hpZWQgb24gdGhlIHJlbmRlciBjb250ZXh0LmApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGluc3RhbmNlID09PSBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oYFByb3BlcnR5ICR7SlNPTi5zdHJpbmdpZnkoa2V5KX0gd2FzIGFjY2Vzc2VkIGR1cmluZyByZW5kZXIgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgYGJ1dCBpcyBub3QgZGVmaW5lZCBvbiBpbnN0YW5jZS5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzZXQoeyBfOiBpbnN0YW5jZSB9LCBrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgY29uc3QgeyBkYXRhLCBzZXR1cFN0YXRlLCBjdHggfSA9IGluc3RhbmNlO1xyXG4gICAgICAgIGlmIChzZXR1cFN0YXRlICE9PSBFTVBUWV9PQkogJiYgaGFzT3duKHNldHVwU3RhdGUsIGtleSkpIHtcclxuICAgICAgICAgICAgc2V0dXBTdGF0ZVtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChkYXRhICE9PSBFTVBUWV9PQkogJiYgaGFzT3duKGRhdGEsIGtleSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChoYXNPd24oaW5zdGFuY2UucHJvcHMsIGtleSkpIHtcclxuICAgICAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmXHJcbiAgICAgICAgICAgICAgICB3YXJuKGBBdHRlbXB0aW5nIHRvIG11dGF0ZSBwcm9wIFwiJHtrZXl9XCIuIFByb3BzIGFyZSByZWFkb25seS5gLCBpbnN0YW5jZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGtleVswXSA9PT0gJyQnICYmIGtleS5zbGljZSgxKSBpbiBpbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICAgICAgICAgIHdhcm4oYEF0dGVtcHRpbmcgdG8gbXV0YXRlIHB1YmxpYyBwcm9wZXJ0eSBcIiR7a2V5fVwiLiBgICtcclxuICAgICAgICAgICAgICAgICAgICBgUHJvcGVydGllcyBzdGFydGluZyB3aXRoICQgYXJlIHJlc2VydmVkIGFuZCByZWFkb25seS5gLCBpbnN0YW5jZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYga2V5IGluIGluc3RhbmNlLmFwcENvbnRleHQuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjdHgsIGtleSwge1xyXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGN0eFtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgaGFzKHsgXzogeyBkYXRhLCBzZXR1cFN0YXRlLCBhY2Nlc3NDYWNoZSwgY3R4LCBhcHBDb250ZXh0LCBwcm9wc09wdGlvbnMgfSB9LCBrZXkpIHtcclxuICAgICAgICBsZXQgbm9ybWFsaXplZFByb3BzO1xyXG4gICAgICAgIHJldHVybiAoISFhY2Nlc3NDYWNoZVtrZXldIHx8XHJcbiAgICAgICAgICAgIChkYXRhICE9PSBFTVBUWV9PQkogJiYgaGFzT3duKGRhdGEsIGtleSkpIHx8XHJcbiAgICAgICAgICAgIChzZXR1cFN0YXRlICE9PSBFTVBUWV9PQkogJiYgaGFzT3duKHNldHVwU3RhdGUsIGtleSkpIHx8XHJcbiAgICAgICAgICAgICgobm9ybWFsaXplZFByb3BzID0gcHJvcHNPcHRpb25zWzBdKSAmJiBoYXNPd24obm9ybWFsaXplZFByb3BzLCBrZXkpKSB8fFxyXG4gICAgICAgICAgICBoYXNPd24oY3R4LCBrZXkpIHx8XHJcbiAgICAgICAgICAgIGhhc093bihwdWJsaWNQcm9wZXJ0aWVzTWFwLCBrZXkpIHx8XHJcbiAgICAgICAgICAgIGhhc093bihhcHBDb250ZXh0LmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLCBrZXkpKTtcclxuICAgIH0sXHJcbiAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgZGVzY3JpcHRvcikge1xyXG4gICAgICAgIGlmIChkZXNjcmlwdG9yLmdldCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vIGludmFsaWRhdGUga2V5IGNhY2hlIG9mIGEgZ2V0dGVyIGJhc2VkIHByb3BlcnR5ICM1NDE3XHJcbiAgICAgICAgICAgIHRhcmdldC5fLmFjY2Vzc0NhY2hlW2tleV0gPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChoYXNPd24oZGVzY3JpcHRvciwgJ3ZhbHVlJykpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXQodGFyZ2V0LCBrZXksIGRlc2NyaXB0b3IudmFsdWUsIG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgZGVzY3JpcHRvcik7XHJcbiAgICB9XHJcbn07XHJcbmlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgIWZhbHNlKSB7XHJcbiAgICBQdWJsaWNJbnN0YW5jZVByb3h5SGFuZGxlcnMub3duS2V5cyA9ICh0YXJnZXQpID0+IHtcclxuICAgICAgICB3YXJuKGBBdm9pZCBhcHAgbG9naWMgdGhhdCByZWxpZXMgb24gZW51bWVyYXRpbmcga2V5cyBvbiBhIGNvbXBvbmVudCBpbnN0YW5jZS4gYCArXHJcbiAgICAgICAgICAgIGBUaGUga2V5cyB3aWxsIGJlIGVtcHR5IGluIHByb2R1Y3Rpb24gbW9kZSB0byBhdm9pZCBwZXJmb3JtYW5jZSBvdmVyaGVhZC5gKTtcclxuICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XHJcbiAgICB9O1xyXG59XHJcbmNvbnN0IFJ1bnRpbWVDb21waWxlZFB1YmxpY0luc3RhbmNlUHJveHlIYW5kbGVycyA9IC8qI19fUFVSRV9fKi8gZXh0ZW5kKHt9LCBQdWJsaWNJbnN0YW5jZVByb3h5SGFuZGxlcnMsIHtcclxuICAgIGdldCh0YXJnZXQsIGtleSkge1xyXG4gICAgICAgIC8vIGZhc3QgcGF0aCBmb3IgdW5zY29wYWJsZXMgd2hlbiB1c2luZyBgd2l0aGAgYmxvY2tcclxuICAgICAgICBpZiAoa2V5ID09PSBTeW1ib2wudW5zY29wYWJsZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzLmdldCh0YXJnZXQsIGtleSwgdGFyZ2V0KTtcclxuICAgIH0sXHJcbiAgICBoYXMoXywga2V5KSB7XHJcbiAgICAgICAgY29uc3QgaGFzID0ga2V5WzBdICE9PSAnXycgJiYgIWlzR2xvYmFsbHlXaGl0ZWxpc3RlZChrZXkpO1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgIWhhcyAmJiBQdWJsaWNJbnN0YW5jZVByb3h5SGFuZGxlcnMuaGFzKF8sIGtleSkpIHtcclxuICAgICAgICAgICAgd2FybihgUHJvcGVydHkgJHtKU09OLnN0cmluZ2lmeShrZXkpfSBzaG91bGQgbm90IHN0YXJ0IHdpdGggXyB3aGljaCBpcyBhIHJlc2VydmVkIHByZWZpeCBmb3IgVnVlIGludGVybmFscy5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhcztcclxuICAgIH1cclxufSk7XHJcbi8vIGRldiBvbmx5XHJcbi8vIEluIGRldiBtb2RlLCB0aGUgcHJveHkgdGFyZ2V0IGV4cG9zZXMgdGhlIHNhbWUgcHJvcGVydGllcyBhcyBzZWVuIG9uIGB0aGlzYFxyXG4vLyBmb3IgZWFzaWVyIGNvbnNvbGUgaW5zcGVjdGlvbi4gSW4gcHJvZCBtb2RlIGl0IHdpbGwgYmUgYW4gZW1wdHkgb2JqZWN0IHNvXHJcbi8vIHRoZXNlIHByb3BlcnRpZXMgZGVmaW5pdGlvbnMgY2FuIGJlIHNraXBwZWQuXHJcbmZ1bmN0aW9uIGNyZWF0ZURldlJlbmRlckNvbnRleHQoaW5zdGFuY2UpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IHt9O1xyXG4gICAgLy8gZXhwb3NlIGludGVybmFsIGluc3RhbmNlIGZvciBwcm94eSBoYW5kbGVyc1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgYF9gLCB7XHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGdldDogKCkgPT4gaW5zdGFuY2VcclxuICAgIH0pO1xyXG4gICAgLy8gZXhwb3NlIHB1YmxpYyBwcm9wZXJ0aWVzXHJcbiAgICBPYmplY3Qua2V5cyhwdWJsaWNQcm9wZXJ0aWVzTWFwKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGdldDogKCkgPT4gcHVibGljUHJvcGVydGllc01hcFtrZXldKGluc3RhbmNlKSxcclxuICAgICAgICAgICAgLy8gaW50ZXJjZXB0ZWQgYnkgdGhlIHByb3h5IHNvIG5vIG5lZWQgZm9yIGltcGxlbWVudGF0aW9uLFxyXG4gICAgICAgICAgICAvLyBidXQgbmVlZGVkIHRvIHByZXZlbnQgc2V0IGVycm9yc1xyXG4gICAgICAgICAgICBzZXQ6IE5PT1BcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufVxyXG4vLyBkZXYgb25seVxyXG5mdW5jdGlvbiBleHBvc2VQcm9wc09uUmVuZGVyQ29udGV4dChpbnN0YW5jZSkge1xyXG4gICAgY29uc3QgeyBjdHgsIHByb3BzT3B0aW9uczogW3Byb3BzT3B0aW9uc10gfSA9IGluc3RhbmNlO1xyXG4gICAgaWYgKHByb3BzT3B0aW9ucykge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHByb3BzT3B0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3R4LCBrZXksIHtcclxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IGluc3RhbmNlLnByb3BzW2tleV0sXHJcbiAgICAgICAgICAgICAgICBzZXQ6IE5PT1BcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuLy8gZGV2IG9ubHlcclxuZnVuY3Rpb24gZXhwb3NlU2V0dXBTdGF0ZU9uUmVuZGVyQ29udGV4dChpbnN0YW5jZSkge1xyXG4gICAgY29uc3QgeyBjdHgsIHNldHVwU3RhdGUgfSA9IGluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmtleXModG9SYXcoc2V0dXBTdGF0ZSkpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBpZiAoIXNldHVwU3RhdGUuX19pc1NjcmlwdFNldHVwKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1Jlc2VydmVkUHJlZml4KGtleVswXSkpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oYHNldHVwKCkgcmV0dXJuIHByb3BlcnR5ICR7SlNPTi5zdHJpbmdpZnkoa2V5KX0gc2hvdWxkIG5vdCBzdGFydCB3aXRoIFwiJFwiIG9yIFwiX1wiIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGB3aGljaCBhcmUgcmVzZXJ2ZWQgcHJlZml4ZXMgZm9yIFZ1ZSBpbnRlcm5hbHMuYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGN0eCwga2V5LCB7XHJcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiBzZXR1cFN0YXRlW2tleV0sXHJcbiAgICAgICAgICAgICAgICBzZXQ6IE5PT1BcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn1cblxuZnVuY3Rpb24gY3JlYXRlRHVwbGljYXRlQ2hlY2tlcigpIHtcclxuICAgIGNvbnN0IGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcclxuICAgIHJldHVybiAodHlwZSwga2V5KSA9PiB7XHJcbiAgICAgICAgaWYgKGNhY2hlW2tleV0pIHtcclxuICAgICAgICAgICAgd2FybihgJHt0eXBlfSBwcm9wZXJ0eSBcIiR7a2V5fVwiIGlzIGFscmVhZHkgZGVmaW5lZCBpbiAke2NhY2hlW2tleV19LmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY2FjaGVba2V5XSA9IHR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5sZXQgc2hvdWxkQ2FjaGVBY2Nlc3MgPSB0cnVlO1xyXG5mdW5jdGlvbiBhcHBseU9wdGlvbnMoaW5zdGFuY2UpIHtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSByZXNvbHZlTWVyZ2VkT3B0aW9ucyhpbnN0YW5jZSk7XHJcbiAgICBjb25zdCBwdWJsaWNUaGlzID0gaW5zdGFuY2UucHJveHk7XHJcbiAgICBjb25zdCBjdHggPSBpbnN0YW5jZS5jdHg7XHJcbiAgICAvLyBkbyBub3QgY2FjaGUgcHJvcGVydHkgYWNjZXNzIG9uIHB1YmxpYyBwcm94eSBkdXJpbmcgc3RhdGUgaW5pdGlhbGl6YXRpb25cclxuICAgIHNob3VsZENhY2hlQWNjZXNzID0gZmFsc2U7XHJcbiAgICAvLyBjYWxsIGJlZm9yZUNyZWF0ZSBmaXJzdCBiZWZvcmUgYWNjZXNzaW5nIG90aGVyIG9wdGlvbnMgc2luY2VcclxuICAgIC8vIHRoZSBob29rIG1heSBtdXRhdGUgcmVzb2x2ZWQgb3B0aW9ucyAoIzI3OTEpXHJcbiAgICBpZiAob3B0aW9ucy5iZWZvcmVDcmVhdGUpIHtcclxuICAgICAgICBjYWxsSG9vayhvcHRpb25zLmJlZm9yZUNyZWF0ZSwgaW5zdGFuY2UsIFwiYmNcIiAvKiBMaWZlY3ljbGVIb29rcy5CRUZPUkVfQ1JFQVRFICovKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgXHJcbiAgICAvLyBzdGF0ZVxyXG4gICAgZGF0YTogZGF0YU9wdGlvbnMsIGNvbXB1dGVkOiBjb21wdXRlZE9wdGlvbnMsIG1ldGhvZHMsIHdhdGNoOiB3YXRjaE9wdGlvbnMsIHByb3ZpZGU6IHByb3ZpZGVPcHRpb25zLCBpbmplY3Q6IGluamVjdE9wdGlvbnMsIFxyXG4gICAgLy8gbGlmZWN5Y2xlXHJcbiAgICBjcmVhdGVkLCBiZWZvcmVNb3VudCwgbW91bnRlZCwgYmVmb3JlVXBkYXRlLCB1cGRhdGVkLCBhY3RpdmF0ZWQsIGRlYWN0aXZhdGVkLCBiZWZvcmVEZXN0cm95LCBiZWZvcmVVbm1vdW50LCBkZXN0cm95ZWQsIHVubW91bnRlZCwgcmVuZGVyLCByZW5kZXJUcmFja2VkLCByZW5kZXJUcmlnZ2VyZWQsIGVycm9yQ2FwdHVyZWQsIHNlcnZlclByZWZldGNoLCBcclxuICAgIC8vIHB1YmxpYyBBUElcclxuICAgIGV4cG9zZSwgaW5oZXJpdEF0dHJzLCBcclxuICAgIC8vIGFzc2V0c1xyXG4gICAgY29tcG9uZW50cywgZGlyZWN0aXZlcywgZmlsdGVycyB9ID0gb3B0aW9ucztcclxuICAgIGNvbnN0IGNoZWNrRHVwbGljYXRlUHJvcGVydGllcyA9IChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IGNyZWF0ZUR1cGxpY2F0ZUNoZWNrZXIoKSA6IG51bGw7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgY29uc3QgW3Byb3BzT3B0aW9uc10gPSBpbnN0YW5jZS5wcm9wc09wdGlvbnM7XHJcbiAgICAgICAgaWYgKHByb3BzT3B0aW9ucykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBwcm9wc09wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGNoZWNrRHVwbGljYXRlUHJvcGVydGllcyhcIlByb3BzXCIgLyogT3B0aW9uVHlwZXMuUFJPUFMgKi8sIGtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBvcHRpb25zIGluaXRpYWxpemF0aW9uIG9yZGVyICh0byBiZSBjb25zaXN0ZW50IHdpdGggVnVlIDIpOlxyXG4gICAgLy8gLSBwcm9wcyAoYWxyZWFkeSBkb25lIG91dHNpZGUgb2YgdGhpcyBmdW5jdGlvbilcclxuICAgIC8vIC0gaW5qZWN0XHJcbiAgICAvLyAtIG1ldGhvZHNcclxuICAgIC8vIC0gZGF0YSAoZGVmZXJyZWQgc2luY2UgaXQgcmVsaWVzIG9uIGB0aGlzYCBhY2Nlc3MpXHJcbiAgICAvLyAtIGNvbXB1dGVkXHJcbiAgICAvLyAtIHdhdGNoIChkZWZlcnJlZCBzaW5jZSBpdCByZWxpZXMgb24gYHRoaXNgIGFjY2VzcylcclxuICAgIGlmIChpbmplY3RPcHRpb25zKSB7XHJcbiAgICAgICAgcmVzb2x2ZUluamVjdGlvbnMoaW5qZWN0T3B0aW9ucywgY3R4LCBjaGVja0R1cGxpY2F0ZVByb3BlcnRpZXMsIGluc3RhbmNlLmFwcENvbnRleHQuY29uZmlnLnVud3JhcEluamVjdGVkUmVmKTtcclxuICAgIH1cclxuICAgIGlmIChtZXRob2RzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbWV0aG9kcykge1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2RIYW5kbGVyID0gbWV0aG9kc1trZXldO1xyXG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihtZXRob2RIYW5kbGVyKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gSW4gZGV2IG1vZGUsIHdlIHVzZSB0aGUgYGNyZWF0ZVJlbmRlckNvbnRleHRgIGZ1bmN0aW9uIHRvIGRlZmluZVxyXG4gICAgICAgICAgICAgICAgLy8gbWV0aG9kcyB0byB0aGUgcHJveHkgdGFyZ2V0LCBhbmQgdGhvc2UgYXJlIHJlYWQtb25seSBidXRcclxuICAgICAgICAgICAgICAgIC8vIHJlY29uZmlndXJhYmxlLCBzbyBpdCBuZWVkcyB0byBiZSByZWRlZmluZWQgaGVyZVxyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjdHgsIGtleSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbWV0aG9kSGFuZGxlci5iaW5kKHB1YmxpY1RoaXMpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjdHhba2V5XSA9IG1ldGhvZEhhbmRsZXIuYmluZChwdWJsaWNUaGlzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGVja0R1cGxpY2F0ZVByb3BlcnRpZXMoXCJNZXRob2RzXCIgLyogT3B0aW9uVHlwZXMuTUVUSE9EUyAqLywga2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oYE1ldGhvZCBcIiR7a2V5fVwiIGhhcyB0eXBlIFwiJHt0eXBlb2YgbWV0aG9kSGFuZGxlcn1cIiBpbiB0aGUgY29tcG9uZW50IGRlZmluaXRpb24uIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGBEaWQgeW91IHJlZmVyZW5jZSB0aGUgZnVuY3Rpb24gY29ycmVjdGx5P2ApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGRhdGFPcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhaXNGdW5jdGlvbihkYXRhT3B0aW9ucykpIHtcclxuICAgICAgICAgICAgd2FybihgVGhlIGRhdGEgb3B0aW9uIG11c3QgYmUgYSBmdW5jdGlvbi4gYCArXHJcbiAgICAgICAgICAgICAgICBgUGxhaW4gb2JqZWN0IHVzYWdlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBkYXRhT3B0aW9ucy5jYWxsKHB1YmxpY1RoaXMsIHB1YmxpY1RoaXMpO1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgaXNQcm9taXNlKGRhdGEpKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYGRhdGEoKSByZXR1cm5lZCBhIFByb21pc2UgLSBub3RlIGRhdGEoKSBjYW5ub3QgYmUgYXN5bmM7IElmIHlvdSBgICtcclxuICAgICAgICAgICAgICAgIGBpbnRlbmQgdG8gcGVyZm9ybSBkYXRhIGZldGNoaW5nIGJlZm9yZSBjb21wb25lbnQgcmVuZGVycywgdXNlIGAgK1xyXG4gICAgICAgICAgICAgICAgYGFzeW5jIHNldHVwKCkgKyA8U3VzcGVuc2U+LmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWlzT2JqZWN0KGRhdGEpKSB7XHJcbiAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiB3YXJuKGBkYXRhKCkgc2hvdWxkIHJldHVybiBhbiBvYmplY3QuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpbnN0YW5jZS5kYXRhID0gcmVhY3RpdmUoZGF0YSk7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGVja0R1cGxpY2F0ZVByb3BlcnRpZXMoXCJEYXRhXCIgLyogT3B0aW9uVHlwZXMuREFUQSAqLywga2V5KTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBleHBvc2UgZGF0YSBvbiBjdHggZHVyaW5nIGRldlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNSZXNlcnZlZFByZWZpeChrZXlbMF0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjdHgsIGtleSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldDogKCkgPT4gZGF0YVtrZXldLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0OiBOT09QXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHN0YXRlIGluaXRpYWxpemF0aW9uIGNvbXBsZXRlIGF0IHRoaXMgcG9pbnQgLSBzdGFydCBjYWNoaW5nIGFjY2Vzc1xyXG4gICAgc2hvdWxkQ2FjaGVBY2Nlc3MgPSB0cnVlO1xyXG4gICAgaWYgKGNvbXB1dGVkT3B0aW9ucykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGNvbXB1dGVkT3B0aW9ucykge1xyXG4gICAgICAgICAgICBjb25zdCBvcHQgPSBjb21wdXRlZE9wdGlvbnNba2V5XTtcclxuICAgICAgICAgICAgY29uc3QgZ2V0ID0gaXNGdW5jdGlvbihvcHQpXHJcbiAgICAgICAgICAgICAgICA/IG9wdC5iaW5kKHB1YmxpY1RoaXMsIHB1YmxpY1RoaXMpXHJcbiAgICAgICAgICAgICAgICA6IGlzRnVuY3Rpb24ob3B0LmdldClcclxuICAgICAgICAgICAgICAgICAgICA/IG9wdC5nZXQuYmluZChwdWJsaWNUaGlzLCBwdWJsaWNUaGlzKVxyXG4gICAgICAgICAgICAgICAgICAgIDogTk9PUDtcclxuICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBnZXQgPT09IE5PT1ApIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oYENvbXB1dGVkIHByb3BlcnR5IFwiJHtrZXl9XCIgaGFzIG5vIGdldHRlci5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBzZXQgPSAhaXNGdW5jdGlvbihvcHQpICYmIGlzRnVuY3Rpb24ob3B0LnNldClcclxuICAgICAgICAgICAgICAgID8gb3B0LnNldC5iaW5kKHB1YmxpY1RoaXMpXHJcbiAgICAgICAgICAgICAgICA6IChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxyXG4gICAgICAgICAgICAgICAgICAgID8gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuKGBXcml0ZSBvcGVyYXRpb24gZmFpbGVkOiBjb21wdXRlZCBwcm9wZXJ0eSBcIiR7a2V5fVwiIGlzIHJlYWRvbmx5LmApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA6IE5PT1A7XHJcbiAgICAgICAgICAgIGNvbnN0IGMgPSBjb21wdXRlZCh7XHJcbiAgICAgICAgICAgICAgICBnZXQsXHJcbiAgICAgICAgICAgICAgICBzZXRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjdHgsIGtleSwge1xyXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGdldDogKCkgPT4gYy52YWx1ZSxcclxuICAgICAgICAgICAgICAgIHNldDogdiA9PiAoYy52YWx1ZSA9IHYpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICBjaGVja0R1cGxpY2F0ZVByb3BlcnRpZXMoXCJDb21wdXRlZFwiIC8qIE9wdGlvblR5cGVzLkNPTVBVVEVEICovLCBrZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHdhdGNoT3B0aW9ucykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHdhdGNoT3B0aW9ucykge1xyXG4gICAgICAgICAgICBjcmVhdGVXYXRjaGVyKHdhdGNoT3B0aW9uc1trZXldLCBjdHgsIHB1YmxpY1RoaXMsIGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHByb3ZpZGVPcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3QgcHJvdmlkZXMgPSBpc0Z1bmN0aW9uKHByb3ZpZGVPcHRpb25zKVxyXG4gICAgICAgICAgICA/IHByb3ZpZGVPcHRpb25zLmNhbGwocHVibGljVGhpcylcclxuICAgICAgICAgICAgOiBwcm92aWRlT3B0aW9ucztcclxuICAgICAgICBSZWZsZWN0Lm93bktleXMocHJvdmlkZXMpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgcHJvdmlkZShrZXksIHByb3ZpZGVzW2tleV0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGNyZWF0ZWQpIHtcclxuICAgICAgICBjYWxsSG9vayhjcmVhdGVkLCBpbnN0YW5jZSwgXCJjXCIgLyogTGlmZWN5Y2xlSG9va3MuQ1JFQVRFRCAqLyk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiByZWdpc3RlckxpZmVjeWNsZUhvb2socmVnaXN0ZXIsIGhvb2spIHtcclxuICAgICAgICBpZiAoaXNBcnJheShob29rKSkge1xyXG4gICAgICAgICAgICBob29rLmZvckVhY2goX2hvb2sgPT4gcmVnaXN0ZXIoX2hvb2suYmluZChwdWJsaWNUaGlzKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChob29rKSB7XHJcbiAgICAgICAgICAgIHJlZ2lzdGVyKGhvb2suYmluZChwdWJsaWNUaGlzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmVnaXN0ZXJMaWZlY3ljbGVIb29rKG9uQmVmb3JlTW91bnQsIGJlZm9yZU1vdW50KTtcclxuICAgIHJlZ2lzdGVyTGlmZWN5Y2xlSG9vayhvbk1vdW50ZWQsIG1vdW50ZWQpO1xyXG4gICAgcmVnaXN0ZXJMaWZlY3ljbGVIb29rKG9uQmVmb3JlVXBkYXRlLCBiZWZvcmVVcGRhdGUpO1xyXG4gICAgcmVnaXN0ZXJMaWZlY3ljbGVIb29rKG9uVXBkYXRlZCwgdXBkYXRlZCk7XHJcbiAgICByZWdpc3RlckxpZmVjeWNsZUhvb2sob25BY3RpdmF0ZWQsIGFjdGl2YXRlZCk7XHJcbiAgICByZWdpc3RlckxpZmVjeWNsZUhvb2sob25EZWFjdGl2YXRlZCwgZGVhY3RpdmF0ZWQpO1xyXG4gICAgcmVnaXN0ZXJMaWZlY3ljbGVIb29rKG9uRXJyb3JDYXB0dXJlZCwgZXJyb3JDYXB0dXJlZCk7XHJcbiAgICByZWdpc3RlckxpZmVjeWNsZUhvb2sob25SZW5kZXJUcmFja2VkLCByZW5kZXJUcmFja2VkKTtcclxuICAgIHJlZ2lzdGVyTGlmZWN5Y2xlSG9vayhvblJlbmRlclRyaWdnZXJlZCwgcmVuZGVyVHJpZ2dlcmVkKTtcclxuICAgIHJlZ2lzdGVyTGlmZWN5Y2xlSG9vayhvbkJlZm9yZVVubW91bnQsIGJlZm9yZVVubW91bnQpO1xyXG4gICAgcmVnaXN0ZXJMaWZlY3ljbGVIb29rKG9uVW5tb3VudGVkLCB1bm1vdW50ZWQpO1xyXG4gICAgcmVnaXN0ZXJMaWZlY3ljbGVIb29rKG9uU2VydmVyUHJlZmV0Y2gsIHNlcnZlclByZWZldGNoKTtcclxuICAgIGlmIChpc0FycmF5KGV4cG9zZSkpIHtcclxuICAgICAgICBpZiAoZXhwb3NlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCBleHBvc2VkID0gaW5zdGFuY2UuZXhwb3NlZCB8fCAoaW5zdGFuY2UuZXhwb3NlZCA9IHt9KTtcclxuICAgICAgICAgICAgZXhwb3NlLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvc2VkLCBrZXksIHtcclxuICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHB1YmxpY1RoaXNba2V5XSxcclxuICAgICAgICAgICAgICAgICAgICBzZXQ6IHZhbCA9PiAocHVibGljVGhpc1trZXldID0gdmFsKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghaW5zdGFuY2UuZXhwb3NlZCkge1xyXG4gICAgICAgICAgICBpbnN0YW5jZS5leHBvc2VkID0ge307XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gb3B0aW9ucyB0aGF0IGFyZSBoYW5kbGVkIHdoZW4gY3JlYXRpbmcgdGhlIGluc3RhbmNlIGJ1dCBhbHNvIG5lZWQgdG8gYmVcclxuICAgIC8vIGFwcGxpZWQgZnJvbSBtaXhpbnNcclxuICAgIGlmIChyZW5kZXIgJiYgaW5zdGFuY2UucmVuZGVyID09PSBOT09QKSB7XHJcbiAgICAgICAgaW5zdGFuY2UucmVuZGVyID0gcmVuZGVyO1xyXG4gICAgfVxyXG4gICAgaWYgKGluaGVyaXRBdHRycyAhPSBudWxsKSB7XHJcbiAgICAgICAgaW5zdGFuY2UuaW5oZXJpdEF0dHJzID0gaW5oZXJpdEF0dHJzO1xyXG4gICAgfVxyXG4gICAgLy8gYXNzZXQgb3B0aW9ucy5cclxuICAgIGlmIChjb21wb25lbnRzKVxyXG4gICAgICAgIGluc3RhbmNlLmNvbXBvbmVudHMgPSBjb21wb25lbnRzO1xyXG4gICAgaWYgKGRpcmVjdGl2ZXMpXHJcbiAgICAgICAgaW5zdGFuY2UuZGlyZWN0aXZlcyA9IGRpcmVjdGl2ZXM7XHJcbn1cclxuZnVuY3Rpb24gcmVzb2x2ZUluamVjdGlvbnMoaW5qZWN0T3B0aW9ucywgY3R4LCBjaGVja0R1cGxpY2F0ZVByb3BlcnRpZXMgPSBOT09QLCB1bndyYXBSZWYgPSBmYWxzZSkge1xyXG4gICAgaWYgKGlzQXJyYXkoaW5qZWN0T3B0aW9ucykpIHtcclxuICAgICAgICBpbmplY3RPcHRpb25zID0gbm9ybWFsaXplSW5qZWN0KGluamVjdE9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gaW5qZWN0T3B0aW9ucykge1xyXG4gICAgICAgIGNvbnN0IG9wdCA9IGluamVjdE9wdGlvbnNba2V5XTtcclxuICAgICAgICBsZXQgaW5qZWN0ZWQ7XHJcbiAgICAgICAgaWYgKGlzT2JqZWN0KG9wdCkpIHtcclxuICAgICAgICAgICAgaWYgKCdkZWZhdWx0JyBpbiBvcHQpIHtcclxuICAgICAgICAgICAgICAgIGluamVjdGVkID0gaW5qZWN0KG9wdC5mcm9tIHx8IGtleSwgb3B0LmRlZmF1bHQsIHRydWUgLyogdHJlYXQgZGVmYXVsdCBmdW5jdGlvbiBhcyBmYWN0b3J5ICovKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGluamVjdGVkID0gaW5qZWN0KG9wdC5mcm9tIHx8IGtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGluamVjdGVkID0gaW5qZWN0KG9wdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc1JlZihpbmplY3RlZCkpIHtcclxuICAgICAgICAgICAgLy8gVE9ETyByZW1vdmUgdGhlIGNoZWNrIGluIDMuM1xyXG4gICAgICAgICAgICBpZiAodW53cmFwUmVmKSB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3R4LCBrZXksIHtcclxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IGluamVjdGVkLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldDogdiA9PiAoaW5qZWN0ZWQudmFsdWUgPSB2KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FybihgaW5qZWN0ZWQgcHJvcGVydHkgXCIke2tleX1cIiBpcyBhIHJlZiBhbmQgd2lsbCBiZSBhdXRvLXVud3JhcHBlZCBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYGFuZCBubyBsb25nZXIgbmVlZHMgXFxgLnZhbHVlXFxgIGluIHRoZSBuZXh0IG1pbm9yIHJlbGVhc2UuIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBgVG8gb3B0LWluIHRvIHRoZSBuZXcgYmVoYXZpb3Igbm93LCBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYHNldCBcXGBhcHAuY29uZmlnLnVud3JhcEluamVjdGVkUmVmID0gdHJ1ZVxcYCAodGhpcyBjb25maWcgaXMgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGB0ZW1wb3JhcnkgYW5kIHdpbGwgbm90IGJlIG5lZWRlZCBpbiB0aGUgZnV0dXJlLilgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGN0eFtrZXldID0gaW5qZWN0ZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGN0eFtrZXldID0gaW5qZWN0ZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgY2hlY2tEdXBsaWNhdGVQcm9wZXJ0aWVzKFwiSW5qZWN0XCIgLyogT3B0aW9uVHlwZXMuSU5KRUNUICovLCBrZXkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBjYWxsSG9vayhob29rLCBpbnN0YW5jZSwgdHlwZSkge1xyXG4gICAgY2FsbFdpdGhBc3luY0Vycm9ySGFuZGxpbmcoaXNBcnJheShob29rKVxyXG4gICAgICAgID8gaG9vay5tYXAoaCA9PiBoLmJpbmQoaW5zdGFuY2UucHJveHkpKVxyXG4gICAgICAgIDogaG9vay5iaW5kKGluc3RhbmNlLnByb3h5KSwgaW5zdGFuY2UsIHR5cGUpO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZVdhdGNoZXIocmF3LCBjdHgsIHB1YmxpY1RoaXMsIGtleSkge1xyXG4gICAgY29uc3QgZ2V0dGVyID0ga2V5LmluY2x1ZGVzKCcuJylcclxuICAgICAgICA/IGNyZWF0ZVBhdGhHZXR0ZXIocHVibGljVGhpcywga2V5KVxyXG4gICAgICAgIDogKCkgPT4gcHVibGljVGhpc1trZXldO1xyXG4gICAgaWYgKGlzU3RyaW5nKHJhdykpIHtcclxuICAgICAgICBjb25zdCBoYW5kbGVyID0gY3R4W3Jhd107XHJcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oaGFuZGxlcikpIHtcclxuICAgICAgICAgICAgd2F0Y2goZ2V0dGVyLCBoYW5kbGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYEludmFsaWQgd2F0Y2ggaGFuZGxlciBzcGVjaWZpZWQgYnkga2V5IFwiJHtyYXd9XCJgLCBoYW5kbGVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc0Z1bmN0aW9uKHJhdykpIHtcclxuICAgICAgICB3YXRjaChnZXR0ZXIsIHJhdy5iaW5kKHB1YmxpY1RoaXMpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzT2JqZWN0KHJhdykpIHtcclxuICAgICAgICBpZiAoaXNBcnJheShyYXcpKSB7XHJcbiAgICAgICAgICAgIHJhdy5mb3JFYWNoKHIgPT4gY3JlYXRlV2F0Y2hlcihyLCBjdHgsIHB1YmxpY1RoaXMsIGtleSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9IGlzRnVuY3Rpb24ocmF3LmhhbmRsZXIpXHJcbiAgICAgICAgICAgICAgICA/IHJhdy5oYW5kbGVyLmJpbmQocHVibGljVGhpcylcclxuICAgICAgICAgICAgICAgIDogY3R4W3Jhdy5oYW5kbGVyXTtcclxuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oaGFuZGxlcikpIHtcclxuICAgICAgICAgICAgICAgIHdhdGNoKGdldHRlciwgaGFuZGxlciwgcmF3KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oYEludmFsaWQgd2F0Y2ggaGFuZGxlciBzcGVjaWZpZWQgYnkga2V5IFwiJHtyYXcuaGFuZGxlcn1cImAsIGhhbmRsZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgd2FybihgSW52YWxpZCB3YXRjaCBvcHRpb246IFwiJHtrZXl9XCJgLCByYXcpO1xyXG4gICAgfVxyXG59XHJcbi8qKlxyXG4gKiBSZXNvbHZlIG1lcmdlZCBvcHRpb25zIGFuZCBjYWNoZSBpdCBvbiB0aGUgY29tcG9uZW50LlxyXG4gKiBUaGlzIGlzIGRvbmUgb25seSBvbmNlIHBlci1jb21wb25lbnQgc2luY2UgdGhlIG1lcmdpbmcgZG9lcyBub3QgaW52b2x2ZVxyXG4gKiBpbnN0YW5jZXMuXHJcbiAqL1xyXG5mdW5jdGlvbiByZXNvbHZlTWVyZ2VkT3B0aW9ucyhpbnN0YW5jZSkge1xyXG4gICAgY29uc3QgYmFzZSA9IGluc3RhbmNlLnR5cGU7XHJcbiAgICBjb25zdCB7IG1peGlucywgZXh0ZW5kczogZXh0ZW5kc09wdGlvbnMgfSA9IGJhc2U7XHJcbiAgICBjb25zdCB7IG1peGluczogZ2xvYmFsTWl4aW5zLCBvcHRpb25zQ2FjaGU6IGNhY2hlLCBjb25maWc6IHsgb3B0aW9uTWVyZ2VTdHJhdGVnaWVzIH0gfSA9IGluc3RhbmNlLmFwcENvbnRleHQ7XHJcbiAgICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXQoYmFzZSk7XHJcbiAgICBsZXQgcmVzb2x2ZWQ7XHJcbiAgICBpZiAoY2FjaGVkKSB7XHJcbiAgICAgICAgcmVzb2x2ZWQgPSBjYWNoZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICghZ2xvYmFsTWl4aW5zLmxlbmd0aCAmJiAhbWl4aW5zICYmICFleHRlbmRzT3B0aW9ucykge1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmVzb2x2ZWQgPSBiYXNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHJlc29sdmVkID0ge307XHJcbiAgICAgICAgaWYgKGdsb2JhbE1peGlucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgZ2xvYmFsTWl4aW5zLmZvckVhY2gobSA9PiBtZXJnZU9wdGlvbnMocmVzb2x2ZWQsIG0sIG9wdGlvbk1lcmdlU3RyYXRlZ2llcywgdHJ1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtZXJnZU9wdGlvbnMocmVzb2x2ZWQsIGJhc2UsIG9wdGlvbk1lcmdlU3RyYXRlZ2llcyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNPYmplY3QoYmFzZSkpIHtcclxuICAgICAgICBjYWNoZS5zZXQoYmFzZSwgcmVzb2x2ZWQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc29sdmVkO1xyXG59XHJcbmZ1bmN0aW9uIG1lcmdlT3B0aW9ucyh0bywgZnJvbSwgc3RyYXRzLCBhc01peGluID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHsgbWl4aW5zLCBleHRlbmRzOiBleHRlbmRzT3B0aW9ucyB9ID0gZnJvbTtcclxuICAgIGlmIChleHRlbmRzT3B0aW9ucykge1xyXG4gICAgICAgIG1lcmdlT3B0aW9ucyh0bywgZXh0ZW5kc09wdGlvbnMsIHN0cmF0cywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAobWl4aW5zKSB7XHJcbiAgICAgICAgbWl4aW5zLmZvckVhY2goKG0pID0+IG1lcmdlT3B0aW9ucyh0bywgbSwgc3RyYXRzLCB0cnVlKSk7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmcm9tKSB7XHJcbiAgICAgICAgaWYgKGFzTWl4aW4gJiYga2V5ID09PSAnZXhwb3NlJykge1xyXG4gICAgICAgICAgICAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICAgICAgICAgIHdhcm4oYFwiZXhwb3NlXCIgb3B0aW9uIGlzIGlnbm9yZWQgd2hlbiBkZWNsYXJlZCBpbiBtaXhpbnMgb3IgZXh0ZW5kcy4gYCArXHJcbiAgICAgICAgICAgICAgICAgICAgYEl0IHNob3VsZCBvbmx5IGJlIGRlY2xhcmVkIGluIHRoZSBiYXNlIGNvbXBvbmVudCBpdHNlbGYuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBzdHJhdCA9IGludGVybmFsT3B0aW9uTWVyZ2VTdHJhdHNba2V5XSB8fCAoc3RyYXRzICYmIHN0cmF0c1trZXldKTtcclxuICAgICAgICAgICAgdG9ba2V5XSA9IHN0cmF0ID8gc3RyYXQodG9ba2V5XSwgZnJvbVtrZXldKSA6IGZyb21ba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG87XHJcbn1cclxuY29uc3QgaW50ZXJuYWxPcHRpb25NZXJnZVN0cmF0cyA9IHtcclxuICAgIGRhdGE6IG1lcmdlRGF0YUZuLFxyXG4gICAgcHJvcHM6IG1lcmdlT2JqZWN0T3B0aW9ucyxcclxuICAgIGVtaXRzOiBtZXJnZU9iamVjdE9wdGlvbnMsXHJcbiAgICAvLyBvYmplY3RzXHJcbiAgICBtZXRob2RzOiBtZXJnZU9iamVjdE9wdGlvbnMsXHJcbiAgICBjb21wdXRlZDogbWVyZ2VPYmplY3RPcHRpb25zLFxyXG4gICAgLy8gbGlmZWN5Y2xlXHJcbiAgICBiZWZvcmVDcmVhdGU6IG1lcmdlQXNBcnJheSxcclxuICAgIGNyZWF0ZWQ6IG1lcmdlQXNBcnJheSxcclxuICAgIGJlZm9yZU1vdW50OiBtZXJnZUFzQXJyYXksXHJcbiAgICBtb3VudGVkOiBtZXJnZUFzQXJyYXksXHJcbiAgICBiZWZvcmVVcGRhdGU6IG1lcmdlQXNBcnJheSxcclxuICAgIHVwZGF0ZWQ6IG1lcmdlQXNBcnJheSxcclxuICAgIGJlZm9yZURlc3Ryb3k6IG1lcmdlQXNBcnJheSxcclxuICAgIGJlZm9yZVVubW91bnQ6IG1lcmdlQXNBcnJheSxcclxuICAgIGRlc3Ryb3llZDogbWVyZ2VBc0FycmF5LFxyXG4gICAgdW5tb3VudGVkOiBtZXJnZUFzQXJyYXksXHJcbiAgICBhY3RpdmF0ZWQ6IG1lcmdlQXNBcnJheSxcclxuICAgIGRlYWN0aXZhdGVkOiBtZXJnZUFzQXJyYXksXHJcbiAgICBlcnJvckNhcHR1cmVkOiBtZXJnZUFzQXJyYXksXHJcbiAgICBzZXJ2ZXJQcmVmZXRjaDogbWVyZ2VBc0FycmF5LFxyXG4gICAgLy8gYXNzZXRzXHJcbiAgICBjb21wb25lbnRzOiBtZXJnZU9iamVjdE9wdGlvbnMsXHJcbiAgICBkaXJlY3RpdmVzOiBtZXJnZU9iamVjdE9wdGlvbnMsXHJcbiAgICAvLyB3YXRjaFxyXG4gICAgd2F0Y2g6IG1lcmdlV2F0Y2hPcHRpb25zLFxyXG4gICAgLy8gcHJvdmlkZSAvIGluamVjdFxyXG4gICAgcHJvdmlkZTogbWVyZ2VEYXRhRm4sXHJcbiAgICBpbmplY3Q6IG1lcmdlSW5qZWN0XHJcbn07XHJcbmZ1bmN0aW9uIG1lcmdlRGF0YUZuKHRvLCBmcm9tKSB7XHJcbiAgICBpZiAoIWZyb20pIHtcclxuICAgICAgICByZXR1cm4gdG87XHJcbiAgICB9XHJcbiAgICBpZiAoIXRvKSB7XHJcbiAgICAgICAgcmV0dXJuIGZyb207XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gbWVyZ2VkRGF0YUZuKCkge1xyXG4gICAgICAgIHJldHVybiAoZXh0ZW5kKShpc0Z1bmN0aW9uKHRvKSA/IHRvLmNhbGwodGhpcywgdGhpcykgOiB0bywgaXNGdW5jdGlvbihmcm9tKSA/IGZyb20uY2FsbCh0aGlzLCB0aGlzKSA6IGZyb20pO1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBtZXJnZUluamVjdCh0bywgZnJvbSkge1xyXG4gICAgcmV0dXJuIG1lcmdlT2JqZWN0T3B0aW9ucyhub3JtYWxpemVJbmplY3QodG8pLCBub3JtYWxpemVJbmplY3QoZnJvbSkpO1xyXG59XHJcbmZ1bmN0aW9uIG5vcm1hbGl6ZUluamVjdChyYXcpIHtcclxuICAgIGlmIChpc0FycmF5KHJhdykpIHtcclxuICAgICAgICBjb25zdCByZXMgPSB7fTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJhdy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICByZXNbcmF3W2ldXSA9IHJhd1tpXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuICAgIHJldHVybiByYXc7XHJcbn1cclxuZnVuY3Rpb24gbWVyZ2VBc0FycmF5KHRvLCBmcm9tKSB7XHJcbiAgICByZXR1cm4gdG8gPyBbLi4ubmV3IFNldChbXS5jb25jYXQodG8sIGZyb20pKV0gOiBmcm9tO1xyXG59XHJcbmZ1bmN0aW9uIG1lcmdlT2JqZWN0T3B0aW9ucyh0bywgZnJvbSkge1xyXG4gICAgcmV0dXJuIHRvID8gZXh0ZW5kKGV4dGVuZChPYmplY3QuY3JlYXRlKG51bGwpLCB0byksIGZyb20pIDogZnJvbTtcclxufVxyXG5mdW5jdGlvbiBtZXJnZVdhdGNoT3B0aW9ucyh0bywgZnJvbSkge1xyXG4gICAgaWYgKCF0bylcclxuICAgICAgICByZXR1cm4gZnJvbTtcclxuICAgIGlmICghZnJvbSlcclxuICAgICAgICByZXR1cm4gdG87XHJcbiAgICBjb25zdCBtZXJnZWQgPSBleHRlbmQoT2JqZWN0LmNyZWF0ZShudWxsKSwgdG8pO1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZnJvbSkge1xyXG4gICAgICAgIG1lcmdlZFtrZXldID0gbWVyZ2VBc0FycmF5KHRvW2tleV0sIGZyb21ba2V5XSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWVyZ2VkO1xyXG59XG5cbmZ1bmN0aW9uIGluaXRQcm9wcyhpbnN0YW5jZSwgcmF3UHJvcHMsIGlzU3RhdGVmdWwsIC8vIHJlc3VsdCBvZiBiaXR3aXNlIGZsYWcgY29tcGFyaXNvblxyXG5pc1NTUiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBwcm9wcyA9IHt9O1xyXG4gICAgY29uc3QgYXR0cnMgPSB7fTtcclxuICAgIGRlZihhdHRycywgSW50ZXJuYWxPYmplY3RLZXksIDEpO1xyXG4gICAgaW5zdGFuY2UucHJvcHNEZWZhdWx0cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XHJcbiAgICBzZXRGdWxsUHJvcHMoaW5zdGFuY2UsIHJhd1Byb3BzLCBwcm9wcywgYXR0cnMpO1xyXG4gICAgLy8gZW5zdXJlIGFsbCBkZWNsYXJlZCBwcm9wIGtleXMgYXJlIHByZXNlbnRcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGluc3RhbmNlLnByb3BzT3B0aW9uc1swXSkge1xyXG4gICAgICAgIGlmICghKGtleSBpbiBwcm9wcykpIHtcclxuICAgICAgICAgICAgcHJvcHNba2V5XSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB2YWxpZGF0aW9uXHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgdmFsaWRhdGVQcm9wcyhyYXdQcm9wcyB8fCB7fSwgcHJvcHMsIGluc3RhbmNlKTtcclxuICAgIH1cclxuICAgIGlmIChpc1N0YXRlZnVsKSB7XHJcbiAgICAgICAgLy8gc3RhdGVmdWxcclxuICAgICAgICBpbnN0YW5jZS5wcm9wcyA9IGlzU1NSID8gcHJvcHMgOiBzaGFsbG93UmVhY3RpdmUocHJvcHMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKCFpbnN0YW5jZS50eXBlLnByb3BzKSB7XHJcbiAgICAgICAgICAgIC8vIGZ1bmN0aW9uYWwgdy8gb3B0aW9uYWwgcHJvcHMsIHByb3BzID09PSBhdHRyc1xyXG4gICAgICAgICAgICBpbnN0YW5jZS5wcm9wcyA9IGF0dHJzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gZnVuY3Rpb25hbCB3LyBkZWNsYXJlZCBwcm9wc1xyXG4gICAgICAgICAgICBpbnN0YW5jZS5wcm9wcyA9IHByb3BzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGluc3RhbmNlLmF0dHJzID0gYXR0cnM7XHJcbn1cclxuZnVuY3Rpb24gaXNJbkhtckNvbnRleHQoaW5zdGFuY2UpIHtcclxuICAgIHdoaWxlIChpbnN0YW5jZSkge1xyXG4gICAgICAgIGlmIChpbnN0YW5jZS50eXBlLl9faG1ySWQpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGluc3RhbmNlID0gaW5zdGFuY2UucGFyZW50O1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHVwZGF0ZVByb3BzKGluc3RhbmNlLCByYXdQcm9wcywgcmF3UHJldlByb3BzLCBvcHRpbWl6ZWQpIHtcclxuICAgIGNvbnN0IHsgcHJvcHMsIGF0dHJzLCB2bm9kZTogeyBwYXRjaEZsYWcgfSB9ID0gaW5zdGFuY2U7XHJcbiAgICBjb25zdCByYXdDdXJyZW50UHJvcHMgPSB0b1Jhdyhwcm9wcyk7XHJcbiAgICBjb25zdCBbb3B0aW9uc10gPSBpbnN0YW5jZS5wcm9wc09wdGlvbnM7XHJcbiAgICBsZXQgaGFzQXR0cnNDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICBpZiAoXHJcbiAgICAvLyBhbHdheXMgZm9yY2UgZnVsbCBkaWZmIGluIGRldlxyXG4gICAgLy8gLSAjMTk0MiBpZiBobXIgaXMgZW5hYmxlZCB3aXRoIHNmYyBjb21wb25lbnRcclxuICAgIC8vIC0gdml0ZSM4NzIgbm9uLXNmYyBjb21wb25lbnQgdXNlZCBieSBzZmMgY29tcG9uZW50XHJcbiAgICAhKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBpc0luSG1yQ29udGV4dChpbnN0YW5jZSkpICYmXHJcbiAgICAgICAgKG9wdGltaXplZCB8fCBwYXRjaEZsYWcgPiAwKSAmJlxyXG4gICAgICAgICEocGF0Y2hGbGFnICYgMTYgLyogUGF0Y2hGbGFncy5GVUxMX1BST1BTICovKSkge1xyXG4gICAgICAgIGlmIChwYXRjaEZsYWcgJiA4IC8qIFBhdGNoRmxhZ3MuUFJPUFMgKi8pIHtcclxuICAgICAgICAgICAgLy8gQ29tcGlsZXItZ2VuZXJhdGVkIHByb3BzICYgbm8ga2V5cyBjaGFuZ2UsIGp1c3Qgc2V0IHRoZSB1cGRhdGVkXHJcbiAgICAgICAgICAgIC8vIHRoZSBwcm9wcy5cclxuICAgICAgICAgICAgY29uc3QgcHJvcHNUb1VwZGF0ZSA9IGluc3RhbmNlLnZub2RlLmR5bmFtaWNQcm9wcztcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wc1RvVXBkYXRlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQga2V5ID0gcHJvcHNUb1VwZGF0ZVtpXTtcclxuICAgICAgICAgICAgICAgIC8vIHNraXAgaWYgdGhlIHByb3Aga2V5IGlzIGEgZGVjbGFyZWQgZW1pdCBldmVudCBsaXN0ZW5lclxyXG4gICAgICAgICAgICAgICAgaWYgKGlzRW1pdExpc3RlbmVyKGluc3RhbmNlLmVtaXRzT3B0aW9ucywga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gUFJPUFMgZmxhZyBndWFyYW50ZWVzIHJhd1Byb3BzIHRvIGJlIG5vbi1udWxsXHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJhd1Byb3BzW2tleV07XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGF0dHIgLyBwcm9wcyBzZXBhcmF0aW9uIHdhcyBkb25lIG9uIGluaXQgYW5kIHdpbGwgYmUgY29uc2lzdGVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgY29kZSBwYXRoLCBzbyBqdXN0IGNoZWNrIGlmIGF0dHJzIGhhdmUgaXQuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc093bihhdHRycywga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT09IGF0dHJzW2tleV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0F0dHJzQ2hhbmdlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVsaXplZEtleSA9IGNhbWVsaXplKGtleSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzW2NhbWVsaXplZEtleV0gPSByZXNvbHZlUHJvcFZhbHVlKG9wdGlvbnMsIHJhd0N1cnJlbnRQcm9wcywgY2FtZWxpemVkS2V5LCB2YWx1ZSwgaW5zdGFuY2UsIGZhbHNlIC8qIGlzQWJzZW50ICovKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT09IGF0dHJzW2tleV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnNba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNBdHRyc0NoYW5nZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIGZ1bGwgcHJvcHMgdXBkYXRlLlxyXG4gICAgICAgIGlmIChzZXRGdWxsUHJvcHMoaW5zdGFuY2UsIHJhd1Byb3BzLCBwcm9wcywgYXR0cnMpKSB7XHJcbiAgICAgICAgICAgIGhhc0F0dHJzQ2hhbmdlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGluIGNhc2Ugb2YgZHluYW1pYyBwcm9wcywgY2hlY2sgaWYgd2UgbmVlZCB0byBkZWxldGUga2V5cyBmcm9tXHJcbiAgICAgICAgLy8gdGhlIHByb3BzIG9iamVjdFxyXG4gICAgICAgIGxldCBrZWJhYktleTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiByYXdDdXJyZW50UHJvcHMpIHtcclxuICAgICAgICAgICAgaWYgKCFyYXdQcm9wcyB8fFxyXG4gICAgICAgICAgICAgICAgLy8gZm9yIGNhbWVsQ2FzZVxyXG4gICAgICAgICAgICAgICAgKCFoYXNPd24ocmF3UHJvcHMsIGtleSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIHBvc3NpYmxlIHRoZSBvcmlnaW5hbCBwcm9wcyB3YXMgcGFzc2VkIGluIGFzIGtlYmFiLWNhc2VcclxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgY29udmVydGVkIHRvIGNhbWVsQ2FzZSAoIzk1NSlcclxuICAgICAgICAgICAgICAgICAgICAoKGtlYmFiS2V5ID0gaHlwaGVuYXRlKGtleSkpID09PSBrZXkgfHwgIWhhc093bihyYXdQcm9wcywga2ViYWJLZXkpKSkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJhd1ByZXZQcm9wcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgY2FtZWxDYXNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyYXdQcmV2UHJvcHNba2V5XSAhPT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3Iga2ViYWItY2FzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3UHJldlByb3BzW2tlYmFiS2V5XSAhPT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wc1trZXldID0gcmVzb2x2ZVByb3BWYWx1ZShvcHRpb25zLCByYXdDdXJyZW50UHJvcHMsIGtleSwgdW5kZWZpbmVkLCBpbnN0YW5jZSwgdHJ1ZSAvKiBpc0Fic2VudCAqLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaW4gdGhlIGNhc2Ugb2YgZnVuY3Rpb25hbCBjb21wb25lbnQgdy9vIHByb3BzIGRlY2xhcmF0aW9uLCBwcm9wcyBhbmRcclxuICAgICAgICAvLyBhdHRycyBwb2ludCB0byB0aGUgc2FtZSBvYmplY3Qgc28gaXQgc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVuIHVwZGF0ZWQuXHJcbiAgICAgICAgaWYgKGF0dHJzICE9PSByYXdDdXJyZW50UHJvcHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYXR0cnMpIHtcclxuICAgICAgICAgICAgICAgIGlmICghcmF3UHJvcHMgfHxcclxuICAgICAgICAgICAgICAgICAgICAoIWhhc093bihyYXdQcm9wcywga2V5KSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoIWZhbHNlICkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGF0dHJzW2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgaGFzQXR0cnNDaGFuZ2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHRyaWdnZXIgdXBkYXRlcyBmb3IgJGF0dHJzIGluIGNhc2UgaXQncyB1c2VkIGluIGNvbXBvbmVudCBzbG90c1xyXG4gICAgaWYgKGhhc0F0dHJzQ2hhbmdlZCkge1xyXG4gICAgICAgIHRyaWdnZXIoaW5zdGFuY2UsIFwic2V0XCIgLyogVHJpZ2dlck9wVHlwZXMuU0VUICovLCAnJGF0dHJzJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgdmFsaWRhdGVQcm9wcyhyYXdQcm9wcyB8fCB7fSwgcHJvcHMsIGluc3RhbmNlKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBzZXRGdWxsUHJvcHMoaW5zdGFuY2UsIHJhd1Byb3BzLCBwcm9wcywgYXR0cnMpIHtcclxuICAgIGNvbnN0IFtvcHRpb25zLCBuZWVkQ2FzdEtleXNdID0gaW5zdGFuY2UucHJvcHNPcHRpb25zO1xyXG4gICAgbGV0IGhhc0F0dHJzQ2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgbGV0IHJhd0Nhc3RWYWx1ZXM7XHJcbiAgICBpZiAocmF3UHJvcHMpIHtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcmF3UHJvcHMpIHtcclxuICAgICAgICAgICAgLy8ga2V5LCByZWYgYXJlIHJlc2VydmVkIGFuZCBuZXZlciBwYXNzZWQgZG93blxyXG4gICAgICAgICAgICBpZiAoaXNSZXNlcnZlZFByb3Aoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByYXdQcm9wc1trZXldO1xyXG4gICAgICAgICAgICAvLyBwcm9wIG9wdGlvbiBuYW1lcyBhcmUgY2FtZWxpemVkIGR1cmluZyBub3JtYWxpemF0aW9uLCBzbyB0byBzdXBwb3J0XHJcbiAgICAgICAgICAgIC8vIGtlYmFiIC0+IGNhbWVsIGNvbnZlcnNpb24gaGVyZSB3ZSBuZWVkIHRvIGNhbWVsaXplIHRoZSBrZXkuXHJcbiAgICAgICAgICAgIGxldCBjYW1lbEtleTtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgaGFzT3duKG9wdGlvbnMsIChjYW1lbEtleSA9IGNhbWVsaXplKGtleSkpKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFuZWVkQ2FzdEtleXMgfHwgIW5lZWRDYXN0S2V5cy5pbmNsdWRlcyhjYW1lbEtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wc1tjYW1lbEtleV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIChyYXdDYXN0VmFsdWVzIHx8IChyYXdDYXN0VmFsdWVzID0ge30pKVtjYW1lbEtleV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICghaXNFbWl0TGlzdGVuZXIoaW5zdGFuY2UuZW1pdHNPcHRpb25zLCBrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIShrZXkgaW4gYXR0cnMpIHx8IHZhbHVlICE9PSBhdHRyc1trZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXR0cnNba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGhhc0F0dHJzQ2hhbmdlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZENhc3RLZXlzKSB7XHJcbiAgICAgICAgY29uc3QgcmF3Q3VycmVudFByb3BzID0gdG9SYXcocHJvcHMpO1xyXG4gICAgICAgIGNvbnN0IGNhc3RWYWx1ZXMgPSByYXdDYXN0VmFsdWVzIHx8IEVNUFRZX09CSjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5lZWRDYXN0S2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBuZWVkQ2FzdEtleXNbaV07XHJcbiAgICAgICAgICAgIHByb3BzW2tleV0gPSByZXNvbHZlUHJvcFZhbHVlKG9wdGlvbnMsIHJhd0N1cnJlbnRQcm9wcywga2V5LCBjYXN0VmFsdWVzW2tleV0sIGluc3RhbmNlLCAhaGFzT3duKGNhc3RWYWx1ZXMsIGtleSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBoYXNBdHRyc0NoYW5nZWQ7XHJcbn1cclxuZnVuY3Rpb24gcmVzb2x2ZVByb3BWYWx1ZShvcHRpb25zLCBwcm9wcywga2V5LCB2YWx1ZSwgaW5zdGFuY2UsIGlzQWJzZW50KSB7XHJcbiAgICBjb25zdCBvcHQgPSBvcHRpb25zW2tleV07XHJcbiAgICBpZiAob3B0ICE9IG51bGwpIHtcclxuICAgICAgICBjb25zdCBoYXNEZWZhdWx0ID0gaGFzT3duKG9wdCwgJ2RlZmF1bHQnKTtcclxuICAgICAgICAvLyBkZWZhdWx0IHZhbHVlc1xyXG4gICAgICAgIGlmIChoYXNEZWZhdWx0ICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gb3B0LmRlZmF1bHQ7XHJcbiAgICAgICAgICAgIGlmIChvcHQudHlwZSAhPT0gRnVuY3Rpb24gJiYgaXNGdW5jdGlvbihkZWZhdWx0VmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHByb3BzRGVmYXVsdHMgfSA9IGluc3RhbmNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGtleSBpbiBwcm9wc0RlZmF1bHRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwcm9wc0RlZmF1bHRzW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRDdXJyZW50SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcHJvcHNEZWZhdWx0c1trZXldID0gZGVmYXVsdFZhbHVlLmNhbGwobnVsbCwgcHJvcHMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVuc2V0Q3VycmVudEluc3RhbmNlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBib29sZWFuIGNhc3RpbmdcclxuICAgICAgICBpZiAob3B0WzAgLyogQm9vbGVhbkZsYWdzLnNob3VsZENhc3QgKi9dKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0Fic2VudCAmJiAhaGFzRGVmYXVsdCkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChvcHRbMSAvKiBCb29sZWFuRmxhZ3Muc2hvdWxkQ2FzdFRydWUgKi9dICYmXHJcbiAgICAgICAgICAgICAgICAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBoeXBoZW5hdGUoa2V5KSkpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxufVxyXG5mdW5jdGlvbiBub3JtYWxpemVQcm9wc09wdGlvbnMoY29tcCwgYXBwQ29udGV4dCwgYXNNaXhpbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBjYWNoZSA9IGFwcENvbnRleHQucHJvcHNDYWNoZTtcclxuICAgIGNvbnN0IGNhY2hlZCA9IGNhY2hlLmdldChjb21wKTtcclxuICAgIGlmIChjYWNoZWQpIHtcclxuICAgICAgICByZXR1cm4gY2FjaGVkO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmF3ID0gY29tcC5wcm9wcztcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7fTtcclxuICAgIGNvbnN0IG5lZWRDYXN0S2V5cyA9IFtdO1xyXG4gICAgLy8gYXBwbHkgbWl4aW4vZXh0ZW5kcyBwcm9wc1xyXG4gICAgbGV0IGhhc0V4dGVuZHMgPSBmYWxzZTtcclxuICAgIGlmIChfX1ZVRV9PUFRJT05TX0FQSV9fICYmICFpc0Z1bmN0aW9uKGNvbXApKSB7XHJcbiAgICAgICAgY29uc3QgZXh0ZW5kUHJvcHMgPSAocmF3KSA9PiB7XHJcbiAgICAgICAgICAgIGhhc0V4dGVuZHMgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBbcHJvcHMsIGtleXNdID0gbm9ybWFsaXplUHJvcHNPcHRpb25zKHJhdywgYXBwQ29udGV4dCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGV4dGVuZChub3JtYWxpemVkLCBwcm9wcyk7XHJcbiAgICAgICAgICAgIGlmIChrZXlzKVxyXG4gICAgICAgICAgICAgICAgbmVlZENhc3RLZXlzLnB1c2goLi4ua2V5cyk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoIWFzTWl4aW4gJiYgYXBwQ29udGV4dC5taXhpbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGFwcENvbnRleHQubWl4aW5zLmZvckVhY2goZXh0ZW5kUHJvcHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29tcC5leHRlbmRzKSB7XHJcbiAgICAgICAgICAgIGV4dGVuZFByb3BzKGNvbXAuZXh0ZW5kcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb21wLm1peGlucykge1xyXG4gICAgICAgICAgICBjb21wLm1peGlucy5mb3JFYWNoKGV4dGVuZFByb3BzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXJhdyAmJiAhaGFzRXh0ZW5kcykge1xyXG4gICAgICAgIGlmIChpc09iamVjdChjb21wKSkge1xyXG4gICAgICAgICAgICBjYWNoZS5zZXQoY29tcCwgRU1QVFlfQVJSKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEVNUFRZX0FSUjtcclxuICAgIH1cclxuICAgIGlmIChpc0FycmF5KHJhdykpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJhdy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFpc1N0cmluZyhyYXdbaV0pKSB7XHJcbiAgICAgICAgICAgICAgICB3YXJuKGBwcm9wcyBtdXN0IGJlIHN0cmluZ3Mgd2hlbiB1c2luZyBhcnJheSBzeW50YXguYCwgcmF3W2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gY2FtZWxpemUocmF3W2ldKTtcclxuICAgICAgICAgICAgaWYgKHZhbGlkYXRlUHJvcE5hbWUobm9ybWFsaXplZEtleSkpIHtcclxuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplZEtleV0gPSBFTVBUWV9PQko7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyYXcpIHtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFpc09iamVjdChyYXcpKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYGludmFsaWQgcHJvcHMgb3B0aW9uc2AsIHJhdyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJhdykge1xyXG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gY2FtZWxpemUoa2V5KTtcclxuICAgICAgICAgICAgaWYgKHZhbGlkYXRlUHJvcE5hbWUobm9ybWFsaXplZEtleSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdCA9IHJhd1trZXldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvcCA9IChub3JtYWxpemVkW25vcm1hbGl6ZWRLZXldID1cclxuICAgICAgICAgICAgICAgICAgICBpc0FycmF5KG9wdCkgfHwgaXNGdW5jdGlvbihvcHQpID8geyB0eXBlOiBvcHQgfSA6IG9wdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2xlYW5JbmRleCA9IGdldFR5cGVJbmRleChCb29sZWFuLCBwcm9wLnR5cGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZ0luZGV4ID0gZ2V0VHlwZUluZGV4KFN0cmluZywgcHJvcC50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wWzAgLyogQm9vbGVhbkZsYWdzLnNob3VsZENhc3QgKi9dID0gYm9vbGVhbkluZGV4ID4gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcFsxIC8qIEJvb2xlYW5GbGFncy5zaG91bGRDYXN0VHJ1ZSAqL10gPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdJbmRleCA8IDAgfHwgYm9vbGVhbkluZGV4IDwgc3RyaW5nSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHByb3AgbmVlZHMgYm9vbGVhbiBjYXN0aW5nIG9yIGRlZmF1bHQgdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYm9vbGVhbkluZGV4ID4gLTEgfHwgaGFzT3duKHByb3AsICdkZWZhdWx0JykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZENhc3RLZXlzLnB1c2gobm9ybWFsaXplZEtleSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzID0gW25vcm1hbGl6ZWQsIG5lZWRDYXN0S2V5c107XHJcbiAgICBpZiAoaXNPYmplY3QoY29tcCkpIHtcclxuICAgICAgICBjYWNoZS5zZXQoY29tcCwgcmVzKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbn1cclxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wTmFtZShrZXkpIHtcclxuICAgIGlmIChrZXlbMF0gIT09ICckJykge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgd2FybihgSW52YWxpZCBwcm9wIG5hbWU6IFwiJHtrZXl9XCIgaXMgYSByZXNlcnZlZCBwcm9wZXJ0eS5gKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG4vLyB1c2UgZnVuY3Rpb24gc3RyaW5nIG5hbWUgdG8gY2hlY2sgdHlwZSBjb25zdHJ1Y3RvcnNcclxuLy8gc28gdGhhdCBpdCB3b3JrcyBhY3Jvc3Mgdm1zIC8gaWZyYW1lcy5cclxuZnVuY3Rpb24gZ2V0VHlwZShjdG9yKSB7XHJcbiAgICBjb25zdCBtYXRjaCA9IGN0b3IgJiYgY3Rvci50b1N0cmluZygpLm1hdGNoKC9eXFxzKmZ1bmN0aW9uIChcXHcrKS8pO1xyXG4gICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBjdG9yID09PSBudWxsID8gJ251bGwnIDogJyc7XHJcbn1cclxuZnVuY3Rpb24gaXNTYW1lVHlwZShhLCBiKSB7XHJcbiAgICByZXR1cm4gZ2V0VHlwZShhKSA9PT0gZ2V0VHlwZShiKTtcclxufVxyXG5mdW5jdGlvbiBnZXRUeXBlSW5kZXgodHlwZSwgZXhwZWN0ZWRUeXBlcykge1xyXG4gICAgaWYgKGlzQXJyYXkoZXhwZWN0ZWRUeXBlcykpIHtcclxuICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlcy5maW5kSW5kZXgodCA9PiBpc1NhbWVUeXBlKHQsIHR5cGUpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzRnVuY3Rpb24oZXhwZWN0ZWRUeXBlcykpIHtcclxuICAgICAgICByZXR1cm4gaXNTYW1lVHlwZShleHBlY3RlZFR5cGVzLCB0eXBlKSA/IDAgOiAtMTtcclxuICAgIH1cclxuICAgIHJldHVybiAtMTtcclxufVxyXG4vKipcclxuICogZGV2IG9ubHlcclxuICovXHJcbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcHMocmF3UHJvcHMsIHByb3BzLCBpbnN0YW5jZSkge1xyXG4gICAgY29uc3QgcmVzb2x2ZWRWYWx1ZXMgPSB0b1Jhdyhwcm9wcyk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gaW5zdGFuY2UucHJvcHNPcHRpb25zWzBdO1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3B0aW9ucykge1xyXG4gICAgICAgIGxldCBvcHQgPSBvcHRpb25zW2tleV07XHJcbiAgICAgICAgaWYgKG9wdCA9PSBudWxsKVxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB2YWxpZGF0ZVByb3Aoa2V5LCByZXNvbHZlZFZhbHVlc1trZXldLCBvcHQsICFoYXNPd24ocmF3UHJvcHMsIGtleSkgJiYgIWhhc093bihyYXdQcm9wcywgaHlwaGVuYXRlKGtleSkpKTtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogZGV2IG9ubHlcclxuICovXHJcbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcChuYW1lLCB2YWx1ZSwgcHJvcCwgaXNBYnNlbnQpIHtcclxuICAgIGNvbnN0IHsgdHlwZSwgcmVxdWlyZWQsIHZhbGlkYXRvciB9ID0gcHJvcDtcclxuICAgIC8vIHJlcXVpcmVkIVxyXG4gICAgaWYgKHJlcXVpcmVkICYmIGlzQWJzZW50KSB7XHJcbiAgICAgICAgd2FybignTWlzc2luZyByZXF1aXJlZCBwcm9wOiBcIicgKyBuYW1lICsgJ1wiJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gbWlzc2luZyBidXQgb3B0aW9uYWxcclxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmICFwcm9wLnJlcXVpcmVkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gdHlwZSBjaGVja1xyXG4gICAgaWYgKHR5cGUgIT0gbnVsbCAmJiB0eXBlICE9PSB0cnVlKSB7XHJcbiAgICAgICAgbGV0IGlzVmFsaWQgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCB0eXBlcyA9IGlzQXJyYXkodHlwZSkgPyB0eXBlIDogW3R5cGVdO1xyXG4gICAgICAgIGNvbnN0IGV4cGVjdGVkVHlwZXMgPSBbXTtcclxuICAgICAgICAvLyB2YWx1ZSBpcyB2YWxpZCBhcyBsb25nIGFzIG9uZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGVzIG1hdGNoXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGggJiYgIWlzVmFsaWQ7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCB7IHZhbGlkLCBleHBlY3RlZFR5cGUgfSA9IGFzc2VydFR5cGUodmFsdWUsIHR5cGVzW2ldKTtcclxuICAgICAgICAgICAgZXhwZWN0ZWRUeXBlcy5wdXNoKGV4cGVjdGVkVHlwZSB8fCAnJyk7XHJcbiAgICAgICAgICAgIGlzVmFsaWQgPSB2YWxpZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHdhcm4oZ2V0SW52YWxpZFR5cGVNZXNzYWdlKG5hbWUsIHZhbHVlLCBleHBlY3RlZFR5cGVzKSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjdXN0b20gdmFsaWRhdG9yXHJcbiAgICBpZiAodmFsaWRhdG9yICYmICF2YWxpZGF0b3IodmFsdWUpKSB7XHJcbiAgICAgICAgd2FybignSW52YWxpZCBwcm9wOiBjdXN0b20gdmFsaWRhdG9yIGNoZWNrIGZhaWxlZCBmb3IgcHJvcCBcIicgKyBuYW1lICsgJ1wiLicpO1xyXG4gICAgfVxyXG59XHJcbmNvbnN0IGlzU2ltcGxlVHlwZSA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcCgnU3RyaW5nLE51bWJlcixCb29sZWFuLEZ1bmN0aW9uLFN5bWJvbCxCaWdJbnQnKTtcclxuLyoqXHJcbiAqIGRldiBvbmx5XHJcbiAqL1xyXG5mdW5jdGlvbiBhc3NlcnRUeXBlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBsZXQgdmFsaWQ7XHJcbiAgICBjb25zdCBleHBlY3RlZFR5cGUgPSBnZXRUeXBlKHR5cGUpO1xyXG4gICAgaWYgKGlzU2ltcGxlVHlwZShleHBlY3RlZFR5cGUpKSB7XHJcbiAgICAgICAgY29uc3QgdCA9IHR5cGVvZiB2YWx1ZTtcclxuICAgICAgICB2YWxpZCA9IHQgPT09IGV4cGVjdGVkVHlwZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIC8vIGZvciBwcmltaXRpdmUgd3JhcHBlciBvYmplY3RzXHJcbiAgICAgICAgaWYgKCF2YWxpZCAmJiB0ID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICB2YWxpZCA9IHZhbHVlIGluc3RhbmNlb2YgdHlwZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdPYmplY3QnKSB7XHJcbiAgICAgICAgdmFsaWQgPSBpc09iamVjdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdBcnJheScpIHtcclxuICAgICAgICB2YWxpZCA9IGlzQXJyYXkodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZXhwZWN0ZWRUeXBlID09PSAnbnVsbCcpIHtcclxuICAgICAgICB2YWxpZCA9IHZhbHVlID09PSBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdmFsaWQgPSB2YWx1ZSBpbnN0YW5jZW9mIHR5cGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHZhbGlkLFxyXG4gICAgICAgIGV4cGVjdGVkVHlwZVxyXG4gICAgfTtcclxufVxyXG4vKipcclxuICogZGV2IG9ubHlcclxuICovXHJcbmZ1bmN0aW9uIGdldEludmFsaWRUeXBlTWVzc2FnZShuYW1lLCB2YWx1ZSwgZXhwZWN0ZWRUeXBlcykge1xyXG4gICAgbGV0IG1lc3NhZ2UgPSBgSW52YWxpZCBwcm9wOiB0eXBlIGNoZWNrIGZhaWxlZCBmb3IgcHJvcCBcIiR7bmFtZX1cIi5gICtcclxuICAgICAgICBgIEV4cGVjdGVkICR7ZXhwZWN0ZWRUeXBlcy5tYXAoY2FwaXRhbGl6ZSkuam9pbignIHwgJyl9YDtcclxuICAgIGNvbnN0IGV4cGVjdGVkVHlwZSA9IGV4cGVjdGVkVHlwZXNbMF07XHJcbiAgICBjb25zdCByZWNlaXZlZFR5cGUgPSB0b1Jhd1R5cGUodmFsdWUpO1xyXG4gICAgY29uc3QgZXhwZWN0ZWRWYWx1ZSA9IHN0eWxlVmFsdWUodmFsdWUsIGV4cGVjdGVkVHlwZSk7XHJcbiAgICBjb25zdCByZWNlaXZlZFZhbHVlID0gc3R5bGVWYWx1ZSh2YWx1ZSwgcmVjZWl2ZWRUeXBlKTtcclxuICAgIC8vIGNoZWNrIGlmIHdlIG5lZWQgdG8gc3BlY2lmeSBleHBlY3RlZCB2YWx1ZVxyXG4gICAgaWYgKGV4cGVjdGVkVHlwZXMubGVuZ3RoID09PSAxICYmXHJcbiAgICAgICAgaXNFeHBsaWNhYmxlKGV4cGVjdGVkVHlwZSkgJiZcclxuICAgICAgICAhaXNCb29sZWFuKGV4cGVjdGVkVHlwZSwgcmVjZWl2ZWRUeXBlKSkge1xyXG4gICAgICAgIG1lc3NhZ2UgKz0gYCB3aXRoIHZhbHVlICR7ZXhwZWN0ZWRWYWx1ZX1gO1xyXG4gICAgfVxyXG4gICAgbWVzc2FnZSArPSBgLCBnb3QgJHtyZWNlaXZlZFR5cGV9IGA7XHJcbiAgICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIHNwZWNpZnkgcmVjZWl2ZWQgdmFsdWVcclxuICAgIGlmIChpc0V4cGxpY2FibGUocmVjZWl2ZWRUeXBlKSkge1xyXG4gICAgICAgIG1lc3NhZ2UgKz0gYHdpdGggdmFsdWUgJHtyZWNlaXZlZFZhbHVlfS5gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1lc3NhZ2U7XHJcbn1cclxuLyoqXHJcbiAqIGRldiBvbmx5XHJcbiAqL1xyXG5mdW5jdGlvbiBzdHlsZVZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBpZiAodHlwZSA9PT0gJ1N0cmluZycpIHtcclxuICAgICAgICByZXR1cm4gYFwiJHt2YWx1ZX1cImA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlID09PSAnTnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBgJHtOdW1iZXIodmFsdWUpfWA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gYCR7dmFsdWV9YDtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogZGV2IG9ubHlcclxuICovXHJcbmZ1bmN0aW9uIGlzRXhwbGljYWJsZSh0eXBlKSB7XHJcbiAgICBjb25zdCBleHBsaWNpdFR5cGVzID0gWydzdHJpbmcnLCAnbnVtYmVyJywgJ2Jvb2xlYW4nXTtcclxuICAgIHJldHVybiBleHBsaWNpdFR5cGVzLnNvbWUoZWxlbSA9PiB0eXBlLnRvTG93ZXJDYXNlKCkgPT09IGVsZW0pO1xyXG59XHJcbi8qKlxyXG4gKiBkZXYgb25seVxyXG4gKi9cclxuZnVuY3Rpb24gaXNCb29sZWFuKC4uLmFyZ3MpIHtcclxuICAgIHJldHVybiBhcmdzLnNvbWUoZWxlbSA9PiBlbGVtLnRvTG93ZXJDYXNlKCkgPT09ICdib29sZWFuJyk7XHJcbn1cblxuY29uc3QgaXNJbnRlcm5hbEtleSA9IChrZXkpID0+IGtleVswXSA9PT0gJ18nIHx8IGtleSA9PT0gJyRzdGFibGUnO1xyXG5jb25zdCBub3JtYWxpemVTbG90VmFsdWUgPSAodmFsdWUpID0+IGlzQXJyYXkodmFsdWUpXHJcbiAgICA/IHZhbHVlLm1hcChub3JtYWxpemVWTm9kZSlcclxuICAgIDogW25vcm1hbGl6ZVZOb2RlKHZhbHVlKV07XHJcbmNvbnN0IG5vcm1hbGl6ZVNsb3QgPSAoa2V5LCByYXdTbG90LCBjdHgpID0+IHtcclxuICAgIGlmIChyYXdTbG90Ll9uKSB7XHJcbiAgICAgICAgLy8gYWxyZWFkeSBub3JtYWxpemVkIC0gIzUzNTNcclxuICAgICAgICByZXR1cm4gcmF3U2xvdDtcclxuICAgIH1cclxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB3aXRoQ3R4KCguLi5hcmdzKSA9PiB7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBjdXJyZW50SW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgd2FybihgU2xvdCBcIiR7a2V5fVwiIGludm9rZWQgb3V0c2lkZSBvZiB0aGUgcmVuZGVyIGZ1bmN0aW9uOiBgICtcclxuICAgICAgICAgICAgICAgIGB0aGlzIHdpbGwgbm90IHRyYWNrIGRlcGVuZGVuY2llcyB1c2VkIGluIHRoZSBzbG90LiBgICtcclxuICAgICAgICAgICAgICAgIGBJbnZva2UgdGhlIHNsb3QgZnVuY3Rpb24gaW5zaWRlIHRoZSByZW5kZXIgZnVuY3Rpb24gaW5zdGVhZC5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVNsb3RWYWx1ZShyYXdTbG90KC4uLmFyZ3MpKTtcclxuICAgIH0sIGN0eCk7XHJcbiAgICBub3JtYWxpemVkLl9jID0gZmFsc2U7XHJcbiAgICByZXR1cm4gbm9ybWFsaXplZDtcclxufTtcclxuY29uc3Qgbm9ybWFsaXplT2JqZWN0U2xvdHMgPSAocmF3U2xvdHMsIHNsb3RzLCBpbnN0YW5jZSkgPT4ge1xyXG4gICAgY29uc3QgY3R4ID0gcmF3U2xvdHMuX2N0eDtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIHJhd1Nsb3RzKSB7XHJcbiAgICAgICAgaWYgKGlzSW50ZXJuYWxLZXkoa2V5KSlcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSByYXdTbG90c1trZXldO1xyXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHZhbHVlKSkge1xyXG4gICAgICAgICAgICBzbG90c1trZXldID0gbm9ybWFsaXplU2xvdChrZXksIHZhbHVlLCBjdHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICAgICAgICAgICEoZmFsc2UgKSkge1xyXG4gICAgICAgICAgICAgICAgd2FybihgTm9uLWZ1bmN0aW9uIHZhbHVlIGVuY291bnRlcmVkIGZvciBzbG90IFwiJHtrZXl9XCIuIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGBQcmVmZXIgZnVuY3Rpb24gc2xvdHMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplU2xvdFZhbHVlKHZhbHVlKTtcclxuICAgICAgICAgICAgc2xvdHNba2V5XSA9ICgpID0+IG5vcm1hbGl6ZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5jb25zdCBub3JtYWxpemVWTm9kZVNsb3RzID0gKGluc3RhbmNlLCBjaGlsZHJlbikgPT4ge1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICFpc0tlZXBBbGl2ZShpbnN0YW5jZS52bm9kZSkgJiZcclxuICAgICAgICAhKGZhbHNlICkpIHtcclxuICAgICAgICB3YXJuKGBOb24tZnVuY3Rpb24gdmFsdWUgZW5jb3VudGVyZWQgZm9yIGRlZmF1bHQgc2xvdC4gYCArXHJcbiAgICAgICAgICAgIGBQcmVmZXIgZnVuY3Rpb24gc2xvdHMgZm9yIGJldHRlciBwZXJmb3JtYW5jZS5gKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVTbG90VmFsdWUoY2hpbGRyZW4pO1xyXG4gICAgaW5zdGFuY2Uuc2xvdHMuZGVmYXVsdCA9ICgpID0+IG5vcm1hbGl6ZWQ7XHJcbn07XHJcbmNvbnN0IGluaXRTbG90cyA9IChpbnN0YW5jZSwgY2hpbGRyZW4pID0+IHtcclxuICAgIGlmIChpbnN0YW5jZS52bm9kZS5zaGFwZUZsYWcgJiAzMiAvKiBTaGFwZUZsYWdzLlNMT1RTX0NISUxEUkVOICovKSB7XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IGNoaWxkcmVuLl87XHJcbiAgICAgICAgaWYgKHR5cGUpIHtcclxuICAgICAgICAgICAgLy8gdXNlcnMgY2FuIGdldCB0aGUgc2hhbGxvdyByZWFkb25seSB2ZXJzaW9uIG9mIHRoZSBzbG90cyBvYmplY3QgdGhyb3VnaCBgdGhpcy4kc2xvdHNgLFxyXG4gICAgICAgICAgICAvLyB3ZSBzaG91bGQgYXZvaWQgdGhlIHByb3h5IG9iamVjdCBwb2xsdXRpbmcgdGhlIHNsb3RzIG9mIHRoZSBpbnRlcm5hbCBpbnN0YW5jZVxyXG4gICAgICAgICAgICBpbnN0YW5jZS5zbG90cyA9IHRvUmF3KGNoaWxkcmVuKTtcclxuICAgICAgICAgICAgLy8gbWFrZSBjb21waWxlciBtYXJrZXIgbm9uLWVudW1lcmFibGVcclxuICAgICAgICAgICAgZGVmKGNoaWxkcmVuLCAnXycsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbm9ybWFsaXplT2JqZWN0U2xvdHMoY2hpbGRyZW4sIChpbnN0YW5jZS5zbG90cyA9IHt9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgaW5zdGFuY2Uuc2xvdHMgPSB7fTtcclxuICAgICAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgbm9ybWFsaXplVk5vZGVTbG90cyhpbnN0YW5jZSwgY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGRlZihpbnN0YW5jZS5zbG90cywgSW50ZXJuYWxPYmplY3RLZXksIDEpO1xyXG59O1xyXG5jb25zdCB1cGRhdGVTbG90cyA9IChpbnN0YW5jZSwgY2hpbGRyZW4sIG9wdGltaXplZCkgPT4ge1xyXG4gICAgY29uc3QgeyB2bm9kZSwgc2xvdHMgfSA9IGluc3RhbmNlO1xyXG4gICAgbGV0IG5lZWREZWxldGlvbkNoZWNrID0gdHJ1ZTtcclxuICAgIGxldCBkZWxldGlvbkNvbXBhcmlzb25UYXJnZXQgPSBFTVBUWV9PQko7XHJcbiAgICBpZiAodm5vZGUuc2hhcGVGbGFnICYgMzIgLyogU2hhcGVGbGFncy5TTE9UU19DSElMRFJFTiAqLykge1xyXG4gICAgICAgIGNvbnN0IHR5cGUgPSBjaGlsZHJlbi5fO1xyXG4gICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbXBpbGVkIHNsb3RzLlxyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGlzSG1yVXBkYXRpbmcpIHtcclxuICAgICAgICAgICAgICAgIC8vIFBhcmVudCB3YXMgSE1SIHVwZGF0ZWQgc28gc2xvdCBjb250ZW50IG1heSBoYXZlIGNoYW5nZWQuXHJcbiAgICAgICAgICAgICAgICAvLyBmb3JjZSB1cGRhdGUgc2xvdHMgYW5kIG1hcmsgaW5zdGFuY2UgZm9yIGhtciBhcyB3ZWxsXHJcbiAgICAgICAgICAgICAgICBleHRlbmQoc2xvdHMsIGNoaWxkcmVuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChvcHRpbWl6ZWQgJiYgdHlwZSA9PT0gMSAvKiBTbG90RmxhZ3MuU1RBQkxFICovKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb21waWxlZCBBTkQgc3RhYmxlLlxyXG4gICAgICAgICAgICAgICAgLy8gbm8gbmVlZCB0byB1cGRhdGUsIGFuZCBza2lwIHN0YWxlIHNsb3RzIHJlbW92YWwuXHJcbiAgICAgICAgICAgICAgICBuZWVkRGVsZXRpb25DaGVjayA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gY29tcGlsZWQgYnV0IGR5bmFtaWMgKHYtaWYvdi1mb3Igb24gc2xvdHMpIC0gdXBkYXRlIHNsb3RzLCBidXQgc2tpcFxyXG4gICAgICAgICAgICAgICAgLy8gbm9ybWFsaXphdGlvbi5cclxuICAgICAgICAgICAgICAgIGV4dGVuZChzbG90cywgY2hpbGRyZW4pO1xyXG4gICAgICAgICAgICAgICAgLy8gIzI4OTNcclxuICAgICAgICAgICAgICAgIC8vIHdoZW4gcmVuZGVyaW5nIHRoZSBvcHRpbWl6ZWQgc2xvdHMgYnkgbWFudWFsbHkgd3JpdHRlbiByZW5kZXIgZnVuY3Rpb24sXHJcbiAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGRlbGV0ZSB0aGUgYHNsb3RzLl9gIGZsYWcgaWYgbmVjZXNzYXJ5IHRvIG1ha2Ugc3Vic2VxdWVudCB1cGRhdGVzIHJlbGlhYmxlLFxyXG4gICAgICAgICAgICAgICAgLy8gaS5lLiBsZXQgdGhlIGByZW5kZXJTbG90YCBjcmVhdGUgdGhlIGJhaWxlZCBGcmFnbWVudFxyXG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpbWl6ZWQgJiYgdHlwZSA9PT0gMSAvKiBTbG90RmxhZ3MuU1RBQkxFICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNsb3RzLl87XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG5lZWREZWxldGlvbkNoZWNrID0gIWNoaWxkcmVuLiRzdGFibGU7XHJcbiAgICAgICAgICAgIG5vcm1hbGl6ZU9iamVjdFNsb3RzKGNoaWxkcmVuLCBzbG90cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlbGV0aW9uQ29tcGFyaXNvblRhcmdldCA9IGNoaWxkcmVuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgICAvLyBub24gc2xvdCBvYmplY3QgY2hpbGRyZW4gKGRpcmVjdCB2YWx1ZSkgcGFzc2VkIHRvIGEgY29tcG9uZW50XHJcbiAgICAgICAgbm9ybWFsaXplVk5vZGVTbG90cyhpbnN0YW5jZSwgY2hpbGRyZW4pO1xyXG4gICAgICAgIGRlbGV0aW9uQ29tcGFyaXNvblRhcmdldCA9IHsgZGVmYXVsdDogMSB9O1xyXG4gICAgfVxyXG4gICAgLy8gZGVsZXRlIHN0YWxlIHNsb3RzXHJcbiAgICBpZiAobmVlZERlbGV0aW9uQ2hlY2spIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzbG90cykge1xyXG4gICAgICAgICAgICBpZiAoIWlzSW50ZXJuYWxLZXkoa2V5KSAmJiAhKGtleSBpbiBkZWxldGlvbkNvbXBhcmlzb25UYXJnZXQpKSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgc2xvdHNba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcblxuZnVuY3Rpb24gY3JlYXRlQXBwQ29udGV4dCgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgYXBwOiBudWxsLFxyXG4gICAgICAgIGNvbmZpZzoge1xyXG4gICAgICAgICAgICBpc05hdGl2ZVRhZzogTk8sXHJcbiAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBmYWxzZSxcclxuICAgICAgICAgICAgZ2xvYmFsUHJvcGVydGllczoge30sXHJcbiAgICAgICAgICAgIG9wdGlvbk1lcmdlU3RyYXRlZ2llczoge30sXHJcbiAgICAgICAgICAgIGVycm9ySGFuZGxlcjogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB3YXJuSGFuZGxlcjogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICBjb21waWxlck9wdGlvbnM6IHt9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBtaXhpbnM6IFtdLFxyXG4gICAgICAgIGNvbXBvbmVudHM6IHt9LFxyXG4gICAgICAgIGRpcmVjdGl2ZXM6IHt9LFxyXG4gICAgICAgIHByb3ZpZGVzOiBPYmplY3QuY3JlYXRlKG51bGwpLFxyXG4gICAgICAgIG9wdGlvbnNDYWNoZTogbmV3IFdlYWtNYXAoKSxcclxuICAgICAgICBwcm9wc0NhY2hlOiBuZXcgV2Vha01hcCgpLFxyXG4gICAgICAgIGVtaXRzQ2FjaGU6IG5ldyBXZWFrTWFwKClcclxuICAgIH07XHJcbn1cclxubGV0IHVpZCA9IDA7XHJcbmZ1bmN0aW9uIGNyZWF0ZUFwcEFQSShyZW5kZXIsIGh5ZHJhdGUpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiBjcmVhdGVBcHAocm9vdENvbXBvbmVudCwgcm9vdFByb3BzID0gbnVsbCkge1xyXG4gICAgICAgIGlmICghaXNGdW5jdGlvbihyb290Q29tcG9uZW50KSkge1xyXG4gICAgICAgICAgICByb290Q29tcG9uZW50ID0gT2JqZWN0LmFzc2lnbih7fSwgcm9vdENvbXBvbmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyb290UHJvcHMgIT0gbnVsbCAmJiAhaXNPYmplY3Qocm9vdFByb3BzKSkge1xyXG4gICAgICAgICAgICAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgd2Fybihgcm9vdCBwcm9wcyBwYXNzZWQgdG8gYXBwLm1vdW50KCkgbXVzdCBiZSBhbiBvYmplY3QuYCk7XHJcbiAgICAgICAgICAgIHJvb3RQcm9wcyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVBcHBDb250ZXh0KCk7XHJcbiAgICAgICAgY29uc3QgaW5zdGFsbGVkUGx1Z2lucyA9IG5ldyBTZXQoKTtcclxuICAgICAgICBsZXQgaXNNb3VudGVkID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgYXBwID0gKGNvbnRleHQuYXBwID0ge1xyXG4gICAgICAgICAgICBfdWlkOiB1aWQrKyxcclxuICAgICAgICAgICAgX2NvbXBvbmVudDogcm9vdENvbXBvbmVudCxcclxuICAgICAgICAgICAgX3Byb3BzOiByb290UHJvcHMsXHJcbiAgICAgICAgICAgIF9jb250YWluZXI6IG51bGwsXHJcbiAgICAgICAgICAgIF9jb250ZXh0OiBjb250ZXh0LFxyXG4gICAgICAgICAgICBfaW5zdGFuY2U6IG51bGwsXHJcbiAgICAgICAgICAgIHZlcnNpb24sXHJcbiAgICAgICAgICAgIGdldCBjb25maWcoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5jb25maWc7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNldCBjb25maWcodikge1xyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhcm4oYGFwcC5jb25maWcgY2Fubm90IGJlIHJlcGxhY2VkLiBNb2RpZnkgaW5kaXZpZHVhbCBvcHRpb25zIGluc3RlYWQuYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHVzZShwbHVnaW4sIC4uLm9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpbnN0YWxsZWRQbHVnaW5zLmhhcyhwbHVnaW4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIHdhcm4oYFBsdWdpbiBoYXMgYWxyZWFkeSBiZWVuIGFwcGxpZWQgdG8gdGFyZ2V0IGFwcC5gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBsdWdpbiAmJiBpc0Z1bmN0aW9uKHBsdWdpbi5pbnN0YWxsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbGxlZFBsdWdpbnMuYWRkKHBsdWdpbik7XHJcbiAgICAgICAgICAgICAgICAgICAgcGx1Z2luLmluc3RhbGwoYXBwLCAuLi5vcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzRnVuY3Rpb24ocGx1Z2luKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbGxlZFBsdWdpbnMuYWRkKHBsdWdpbik7XHJcbiAgICAgICAgICAgICAgICAgICAgcGx1Z2luKGFwcCwgLi4ub3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICB3YXJuKGBBIHBsdWdpbiBtdXN0IGVpdGhlciBiZSBhIGZ1bmN0aW9uIG9yIGFuIG9iamVjdCB3aXRoIGFuIFwiaW5zdGFsbFwiIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBgZnVuY3Rpb24uYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBtaXhpbihtaXhpbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9fVlVFX09QVElPTlNfQVBJX18pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRleHQubWl4aW5zLmluY2x1ZGVzKG1peGluKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm1peGlucy5wdXNoKG1peGluKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4oJ01peGluIGhhcyBhbHJlYWR5IGJlZW4gYXBwbGllZCB0byB0YXJnZXQgYXBwJyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWl4aW4ubmFtZSA/IGA6ICR7bWl4aW4ubmFtZX1gIDogJycpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICB3YXJuKCdNaXhpbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluIGJ1aWxkcyBzdXBwb3J0aW5nIE9wdGlvbnMgQVBJJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBjb21wb25lbnQobmFtZSwgY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVDb21wb25lbnROYW1lKG5hbWUsIGNvbnRleHQuY29uZmlnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY29tcG9uZW50c1tuYW1lXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgY29udGV4dC5jb21wb25lbnRzW25hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FybihgQ29tcG9uZW50IFwiJHtuYW1lfVwiIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCBpbiB0YXJnZXQgYXBwLmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5jb21wb25lbnRzW25hbWVdID0gY29tcG9uZW50O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcDtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZGlyZWN0aXZlKG5hbWUsIGRpcmVjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlRGlyZWN0aXZlTmFtZShuYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghZGlyZWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuZGlyZWN0aXZlc1tuYW1lXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgY29udGV4dC5kaXJlY3RpdmVzW25hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FybihgRGlyZWN0aXZlIFwiJHtuYW1lfVwiIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCBpbiB0YXJnZXQgYXBwLmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5kaXJlY3RpdmVzW25hbWVdID0gZGlyZWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcDtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbW91bnQocm9vdENvbnRhaW5lciwgaXNIeWRyYXRlLCBpc1NWRykge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc01vdW50ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAjNTU3MVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgcm9vdENvbnRhaW5lci5fX3Z1ZV9hcHBfXykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuKGBUaGVyZSBpcyBhbHJlYWR5IGFuIGFwcCBpbnN0YW5jZSBtb3VudGVkIG9uIHRoZSBob3N0IGNvbnRhaW5lci5cXG5gICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAgSWYgeW91IHdhbnQgdG8gbW91bnQgYW5vdGhlciBhcHAgb24gdGhlIHNhbWUgaG9zdCBjb250YWluZXIsYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgIHlvdSBuZWVkIHRvIHVubW91bnQgdGhlIHByZXZpb3VzIGFwcCBieSBjYWxsaW5nIFxcYGFwcC51bm1vdW50KClcXGAgZmlyc3QuYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZub2RlID0gY3JlYXRlVk5vZGUocm9vdENvbXBvbmVudCwgcm9vdFByb3BzKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBzdG9yZSBhcHAgY29udGV4dCBvbiB0aGUgcm9vdCBWTm9kZS5cclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdpbGwgYmUgc2V0IG9uIHRoZSByb290IGluc3RhbmNlIG9uIGluaXRpYWwgbW91bnQuXHJcbiAgICAgICAgICAgICAgICAgICAgdm5vZGUuYXBwQ29udGV4dCA9IGNvbnRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSE1SIHJvb3QgcmVsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJlbG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcihjbG9uZVZOb2RlKHZub2RlKSwgcm9vdENvbnRhaW5lciwgaXNTVkcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNIeWRyYXRlICYmIGh5ZHJhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHlkcmF0ZSh2bm9kZSwgcm9vdENvbnRhaW5lcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXIodm5vZGUsIHJvb3RDb250YWluZXIsIGlzU1ZHKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaXNNb3VudGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBhcHAuX2NvbnRhaW5lciA9IHJvb3RDb250YWluZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdENvbnRhaW5lci5fX3Z1ZV9hcHBfXyA9IGFwcDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHx8IF9fVlVFX1BST0RfREVWVE9PTFNfXykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuX2luc3RhbmNlID0gdm5vZGUuY29tcG9uZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXZ0b29sc0luaXRBcHAoYXBwLCB2ZXJzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldEV4cG9zZVByb3h5KHZub2RlLmNvbXBvbmVudCkgfHwgdm5vZGUuY29tcG9uZW50LnByb3h5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FybihgQXBwIGhhcyBhbHJlYWR5IGJlZW4gbW91bnRlZC5cXG5gICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYElmIHlvdSB3YW50IHRvIHJlbW91bnQgdGhlIHNhbWUgYXBwLCBtb3ZlIHlvdXIgYXBwIGNyZWF0aW9uIGxvZ2ljIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBgaW50byBhIGZhY3RvcnkgZnVuY3Rpb24gYW5kIGNyZWF0ZSBmcmVzaCBhcHAgaW5zdGFuY2VzIGZvciBlYWNoIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBgbW91bnQgLSBlLmcuIFxcYGNvbnN0IGNyZWF0ZU15QXBwID0gKCkgPT4gY3JlYXRlQXBwKEFwcClcXGBgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdW5tb3VudCgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc01vdW50ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZW5kZXIobnVsbCwgYXBwLl9jb250YWluZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgfHwgX19WVUVfUFJPRF9ERVZUT09MU19fKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXZ0b29sc1VubW91bnRBcHAoYXBwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGFwcC5fY29udGFpbmVyLl9fdnVlX2FwcF9fO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FybihgQ2Fubm90IHVubW91bnQgYW4gYXBwIHRoYXQgaXMgbm90IG1vdW50ZWQuYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHByb3ZpZGUoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBrZXkgaW4gY29udGV4dC5wcm92aWRlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhcm4oYEFwcCBhbHJlYWR5IHByb3ZpZGVzIHByb3BlcnR5IHdpdGgga2V5IFwiJHtTdHJpbmcoa2V5KX1cIi4gYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGBJdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggdGhlIG5ldyB2YWx1ZS5gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnRleHQucHJvdmlkZXNba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBhcHA7XHJcbiAgICB9O1xyXG59XG5cbi8qKlxyXG4gKiBGdW5jdGlvbiBmb3IgaGFuZGxpbmcgYSB0ZW1wbGF0ZSByZWZcclxuICovXHJcbmZ1bmN0aW9uIHNldFJlZihyYXdSZWYsIG9sZFJhd1JlZiwgcGFyZW50U3VzcGVuc2UsIHZub2RlLCBpc1VubW91bnQgPSBmYWxzZSkge1xyXG4gICAgaWYgKGlzQXJyYXkocmF3UmVmKSkge1xyXG4gICAgICAgIHJhd1JlZi5mb3JFYWNoKChyLCBpKSA9PiBzZXRSZWYociwgb2xkUmF3UmVmICYmIChpc0FycmF5KG9sZFJhd1JlZikgPyBvbGRSYXdSZWZbaV0gOiBvbGRSYXdSZWYpLCBwYXJlbnRTdXNwZW5zZSwgdm5vZGUsIGlzVW5tb3VudCkpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChpc0FzeW5jV3JhcHBlcih2bm9kZSkgJiYgIWlzVW5tb3VudCkge1xyXG4gICAgICAgIC8vIHdoZW4gbW91bnRpbmcgYXN5bmMgY29tcG9uZW50cywgbm90aGluZyBuZWVkcyB0byBiZSBkb25lLFxyXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIHRlbXBsYXRlIHJlZiBpcyBmb3J3YXJkZWQgdG8gaW5uZXIgY29tcG9uZW50XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVmVmFsdWUgPSB2bm9kZS5zaGFwZUZsYWcgJiA0IC8qIFNoYXBlRmxhZ3MuU1RBVEVGVUxfQ09NUE9ORU5UICovXHJcbiAgICAgICAgPyBnZXRFeHBvc2VQcm94eSh2bm9kZS5jb21wb25lbnQpIHx8IHZub2RlLmNvbXBvbmVudC5wcm94eVxyXG4gICAgICAgIDogdm5vZGUuZWw7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGlzVW5tb3VudCA/IG51bGwgOiByZWZWYWx1ZTtcclxuICAgIGNvbnN0IHsgaTogb3duZXIsIHI6IHJlZiB9ID0gcmF3UmVmO1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhb3duZXIpIHtcclxuICAgICAgICB3YXJuKGBNaXNzaW5nIHJlZiBvd25lciBjb250ZXh0LiByZWYgY2Fubm90IGJlIHVzZWQgb24gaG9pc3RlZCB2bm9kZXMuIGAgK1xyXG4gICAgICAgICAgICBgQSB2bm9kZSB3aXRoIHJlZiBtdXN0IGJlIGNyZWF0ZWQgaW5zaWRlIHRoZSByZW5kZXIgZnVuY3Rpb24uYCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb2xkUmVmID0gb2xkUmF3UmVmICYmIG9sZFJhd1JlZi5yO1xyXG4gICAgY29uc3QgcmVmcyA9IG93bmVyLnJlZnMgPT09IEVNUFRZX09CSiA/IChvd25lci5yZWZzID0ge30pIDogb3duZXIucmVmcztcclxuICAgIGNvbnN0IHNldHVwU3RhdGUgPSBvd25lci5zZXR1cFN0YXRlO1xyXG4gICAgLy8gZHluYW1pYyByZWYgY2hhbmdlZC4gdW5zZXQgb2xkIHJlZlxyXG4gICAgaWYgKG9sZFJlZiAhPSBudWxsICYmIG9sZFJlZiAhPT0gcmVmKSB7XHJcbiAgICAgICAgaWYgKGlzU3RyaW5nKG9sZFJlZikpIHtcclxuICAgICAgICAgICAgcmVmc1tvbGRSZWZdID0gbnVsbDtcclxuICAgICAgICAgICAgaWYgKGhhc093bihzZXR1cFN0YXRlLCBvbGRSZWYpKSB7XHJcbiAgICAgICAgICAgICAgICBzZXR1cFN0YXRlW29sZFJlZl0gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzUmVmKG9sZFJlZikpIHtcclxuICAgICAgICAgICAgb2xkUmVmLnZhbHVlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaXNGdW5jdGlvbihyZWYpKSB7XHJcbiAgICAgICAgY2FsbFdpdGhFcnJvckhhbmRsaW5nKHJlZiwgb3duZXIsIDEyIC8qIEVycm9yQ29kZXMuRlVOQ1RJT05fUkVGICovLCBbdmFsdWUsIHJlZnNdKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IF9pc1N0cmluZyA9IGlzU3RyaW5nKHJlZik7XHJcbiAgICAgICAgY29uc3QgX2lzUmVmID0gaXNSZWYocmVmKTtcclxuICAgICAgICBpZiAoX2lzU3RyaW5nIHx8IF9pc1JlZikge1xyXG4gICAgICAgICAgICBjb25zdCBkb1NldCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyYXdSZWYuZikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gX2lzU3RyaW5nID8gcmVmc1tyZWZdIDogcmVmLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1VubW91bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNBcnJheShleGlzdGluZykgJiYgcmVtb3ZlKGV4aXN0aW5nLCByZWZWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkoZXhpc3RpbmcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmc1tyZWZdID0gW3JlZlZhbHVlXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT3duKHNldHVwU3RhdGUsIHJlZikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dXBTdGF0ZVtyZWZdID0gcmVmc1tyZWZdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZi52YWx1ZSA9IFtyZWZWYWx1ZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhd1JlZi5rKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZzW3Jhd1JlZi5rXSA9IHJlZi52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghZXhpc3RpbmcuaW5jbHVkZXMocmVmVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5wdXNoKHJlZlZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9pc1N0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlZnNbcmVmXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNPd24oc2V0dXBTdGF0ZSwgcmVmKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR1cFN0YXRlW3JlZl0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChfaXNSZWYpIHtcclxuICAgICAgICAgICAgICAgICAgICByZWYudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmF3UmVmLmspXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnNbcmF3UmVmLmtdID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICB3YXJuKCdJbnZhbGlkIHRlbXBsYXRlIHJlZiB0eXBlOicsIHJlZiwgYCgke3R5cGVvZiByZWZ9KWApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGRvU2V0LmlkID0gLTE7XHJcbiAgICAgICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoZG9TZXQsIHBhcmVudFN1c3BlbnNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRvU2V0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgIHdhcm4oJ0ludmFsaWQgdGVtcGxhdGUgcmVmIHR5cGU6JywgcmVmLCBgKCR7dHlwZW9mIHJlZn0pYCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XG5cbmxldCBoYXNNaXNtYXRjaCA9IGZhbHNlO1xyXG5jb25zdCBpc1NWR0NvbnRhaW5lciA9IChjb250YWluZXIpID0+IC9zdmcvLnRlc3QoY29udGFpbmVyLm5hbWVzcGFjZVVSSSkgJiYgY29udGFpbmVyLnRhZ05hbWUgIT09ICdmb3JlaWduT2JqZWN0JztcclxuY29uc3QgaXNDb21tZW50ID0gKG5vZGUpID0+IG5vZGUubm9kZVR5cGUgPT09IDggLyogRE9NTm9kZVR5cGVzLkNPTU1FTlQgKi87XHJcbi8vIE5vdGU6IGh5ZHJhdGlvbiBpcyBET00tc3BlY2lmaWNcclxuLy8gQnV0IHdlIGhhdmUgdG8gcGxhY2UgaXQgaW4gY29yZSBkdWUgdG8gdGlnaHQgY291cGxpbmcgd2l0aCBjb3JlIC0gc3BsaXR0aW5nXHJcbi8vIGl0IG91dCBjcmVhdGVzIGEgdG9uIG9mIHVubmVjZXNzYXJ5IGNvbXBsZXhpdHkuXHJcbi8vIEh5ZHJhdGlvbiBhbHNvIGRlcGVuZHMgb24gc29tZSByZW5kZXJlciBpbnRlcm5hbCBsb2dpYyB3aGljaCBuZWVkcyB0byBiZVxyXG4vLyBwYXNzZWQgaW4gdmlhIGFyZ3VtZW50cy5cclxuZnVuY3Rpb24gY3JlYXRlSHlkcmF0aW9uRnVuY3Rpb25zKHJlbmRlcmVySW50ZXJuYWxzKSB7XHJcbiAgICBjb25zdCB7IG10OiBtb3VudENvbXBvbmVudCwgcDogcGF0Y2gsIG86IHsgcGF0Y2hQcm9wLCBjcmVhdGVUZXh0LCBuZXh0U2libGluZywgcGFyZW50Tm9kZSwgcmVtb3ZlLCBpbnNlcnQsIGNyZWF0ZUNvbW1lbnQgfSB9ID0gcmVuZGVyZXJJbnRlcm5hbHM7XHJcbiAgICBjb25zdCBoeWRyYXRlID0gKHZub2RlLCBjb250YWluZXIpID0+IHtcclxuICAgICAgICBpZiAoIWNvbnRhaW5lci5oYXNDaGlsZE5vZGVzKCkpIHtcclxuICAgICAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmXHJcbiAgICAgICAgICAgICAgICB3YXJuKGBBdHRlbXB0aW5nIHRvIGh5ZHJhdGUgZXhpc3RpbmcgbWFya3VwIGJ1dCBjb250YWluZXIgaXMgZW1wdHkuIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGBQZXJmb3JtaW5nIGZ1bGwgbW91bnQgaW5zdGVhZC5gKTtcclxuICAgICAgICAgICAgcGF0Y2gobnVsbCwgdm5vZGUsIGNvbnRhaW5lcik7XHJcbiAgICAgICAgICAgIGZsdXNoUG9zdEZsdXNoQ2JzKCk7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5fdm5vZGUgPSB2bm9kZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoYXNNaXNtYXRjaCA9IGZhbHNlO1xyXG4gICAgICAgIGh5ZHJhdGVOb2RlKGNvbnRhaW5lci5maXJzdENoaWxkLCB2bm9kZSwgbnVsbCwgbnVsbCwgbnVsbCk7XHJcbiAgICAgICAgZmx1c2hQb3N0Rmx1c2hDYnMoKTtcclxuICAgICAgICBjb250YWluZXIuX3Zub2RlID0gdm5vZGU7XHJcbiAgICAgICAgaWYgKGhhc01pc21hdGNoICYmICFmYWxzZSkge1xyXG4gICAgICAgICAgICAvLyB0aGlzIGVycm9yIHNob3VsZCBzaG93IHVwIGluIHByb2R1Y3Rpb25cclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgSHlkcmF0aW9uIGNvbXBsZXRlZCBidXQgY29udGFpbnMgbWlzbWF0Y2hlcy5gKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaHlkcmF0ZU5vZGUgPSAobm9kZSwgdm5vZGUsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkID0gZmFsc2UpID0+IHtcclxuICAgICAgICBjb25zdCBpc0ZyYWdtZW50U3RhcnQgPSBpc0NvbW1lbnQobm9kZSkgJiYgbm9kZS5kYXRhID09PSAnWyc7XHJcbiAgICAgICAgY29uc3Qgb25NaXNtYXRjaCA9ICgpID0+IGhhbmRsZU1pc21hdGNoKG5vZGUsIHZub2RlLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIGlzRnJhZ21lbnRTdGFydCk7XHJcbiAgICAgICAgY29uc3QgeyB0eXBlLCByZWYsIHNoYXBlRmxhZywgcGF0Y2hGbGFnIH0gPSB2bm9kZTtcclxuICAgICAgICBjb25zdCBkb21UeXBlID0gbm9kZS5ub2RlVHlwZTtcclxuICAgICAgICB2bm9kZS5lbCA9IG5vZGU7XHJcbiAgICAgICAgaWYgKHBhdGNoRmxhZyA9PT0gLTIgLyogUGF0Y2hGbGFncy5CQUlMICovKSB7XHJcbiAgICAgICAgICAgIG9wdGltaXplZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB2bm9kZS5keW5hbWljQ2hpbGRyZW4gPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbmV4dE5vZGUgPSBudWxsO1xyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIFRleHQ6XHJcbiAgICAgICAgICAgICAgICBpZiAoZG9tVHlwZSAhPT0gMyAvKiBET01Ob2RlVHlwZXMuVEVYVCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICM1NzI4IGVtcHR5IHRleHQgbm9kZSBpbnNpZGUgYSBzbG90IGNhbiBjYXVzZSBoeWRyYXRpb24gZmFpbHVyZVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIHdvbid0IGNvbnRhaW4gYSB0ZXh0IG5vZGVcclxuICAgICAgICAgICAgICAgICAgICBpZiAodm5vZGUuY2hpbGRyZW4gPT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydCgodm5vZGUuZWwgPSBjcmVhdGVUZXh0KCcnKSksIHBhcmVudE5vZGUobm9kZSksIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZSA9IG5vZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZSA9IG9uTWlzbWF0Y2goKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5kYXRhICE9PSB2bm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNNaXNtYXRjaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybihgSHlkcmF0aW9uIHRleHQgbWlzbWF0Y2g6YCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxcbi0gQ2xpZW50OiAke0pTT04uc3RyaW5naWZ5KG5vZGUuZGF0YSl9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxcbi0gU2VydmVyOiAke0pTT04uc3RyaW5naWZ5KHZub2RlLmNoaWxkcmVuKX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5kYXRhID0gdm5vZGUuY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIG5leHROb2RlID0gbmV4dFNpYmxpbmcobm9kZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBDb21tZW50OlxyXG4gICAgICAgICAgICAgICAgaWYgKGRvbVR5cGUgIT09IDggLyogRE9NTm9kZVR5cGVzLkNPTU1FTlQgKi8gfHwgaXNGcmFnbWVudFN0YXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dE5vZGUgPSBvbk1pc21hdGNoKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZSA9IG5leHRTaWJsaW5nKG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3RhdGljOlxyXG4gICAgICAgICAgICAgICAgaWYgKGRvbVR5cGUgIT09IDEgLyogRE9NTm9kZVR5cGVzLkVMRU1FTlQgKi8gJiYgZG9tVHlwZSAhPT0gMyAvKiBET01Ob2RlVHlwZXMuVEVYVCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHROb2RlID0gb25NaXNtYXRjaCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZGV0ZXJtaW5lIGFuY2hvciwgYWRvcHQgY29udGVudFxyXG4gICAgICAgICAgICAgICAgICAgIG5leHROb2RlID0gbm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc3RhdGljIHZub2RlIGhhcyBpdHMgY29udGVudCBzdHJpcHBlZCBkdXJpbmcgYnVpbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRvcHQgaXQgZnJvbSB0aGUgc2VydmVyLXJlbmRlcmVkIEhUTUwuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmVlZFRvQWRvcHRDb250ZW50ID0gIXZub2RlLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZub2RlLnN0YXRpY0NvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRUb0Fkb3B0Q29udGVudClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZub2RlLmNoaWxkcmVuICs9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dE5vZGUubm9kZVR5cGUgPT09IDEgLyogRE9NTm9kZVR5cGVzLkVMRU1FTlQgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBuZXh0Tm9kZS5vdXRlckhUTUxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXh0Tm9kZS5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gdm5vZGUuc3RhdGljQ291bnQgLSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bm9kZS5hbmNob3IgPSBuZXh0Tm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZSA9IG5leHRTaWJsaW5nKG5leHROb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHROb2RlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgRnJhZ21lbnQ6XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzRnJhZ21lbnRTdGFydCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHROb2RlID0gb25NaXNtYXRjaCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dE5vZGUgPSBoeWRyYXRlRnJhZ21lbnQobm9kZSwgdm5vZGUsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgaWYgKHNoYXBlRmxhZyAmIDEgLyogU2hhcGVGbGFncy5FTEVNRU5UICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvbVR5cGUgIT09IDEgLyogRE9NTm9kZVR5cGVzLkVMRU1FTlQgKi8gfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdm5vZGUudHlwZS50b0xvd2VyQ2FzZSgpICE9PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dE5vZGUgPSBvbk1pc21hdGNoKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZSA9IGh5ZHJhdGVFbGVtZW50KG5vZGUsIHZub2RlLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2hhcGVGbGFnICYgNiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gc2V0dGluZyB1cCB0aGUgcmVuZGVyIGVmZmVjdCwgaWYgdGhlIGluaXRpYWwgdm5vZGUgYWxyZWFkeVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGhhcyAuZWwgc2V0LCB0aGUgY29tcG9uZW50IHdpbGwgcGVyZm9ybSBoeWRyYXRpb24gaW5zdGVhZCBvZiBtb3VudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIG9uIGl0cyBzdWItdHJlZS5cclxuICAgICAgICAgICAgICAgICAgICB2bm9kZS5zbG90U2NvcGVJZHMgPSBzbG90U2NvcGVJZHM7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gcGFyZW50Tm9kZShub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBtb3VudENvbXBvbmVudCh2bm9kZSwgY29udGFpbmVyLCBudWxsLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWR0NvbnRhaW5lcihjb250YWluZXIpLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbXBvbmVudCBtYXkgYmUgYXN5bmMsIHNvIGluIHRoZSBjYXNlIG9mIGZyYWdtZW50cyB3ZSBjYW5ub3QgcmVseVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIG9uIGNvbXBvbmVudCdzIHJlbmRlcmVkIG91dHB1dCB0byBkZXRlcm1pbmUgdGhlIGVuZCBvZiB0aGUgZnJhZ21lbnRcclxuICAgICAgICAgICAgICAgICAgICAvLyBpbnN0ZWFkLCB3ZSBkbyBhIGxvb2thaGVhZCB0byBmaW5kIHRoZSBlbmQgYW5jaG9yIG5vZGUuXHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dE5vZGUgPSBpc0ZyYWdtZW50U3RhcnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhdGVDbG9zaW5nQXN5bmNBbmNob3Iobm9kZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXh0U2libGluZyhub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyAjNDI5MyB0ZWxlcG9ydCBhcyBjb21wb25lbnQgcm9vdFxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Tm9kZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NvbW1lbnQobmV4dE5vZGUpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHROb2RlLmRhdGEgPT09ICd0ZWxlcG9ydCBlbmQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHROb2RlID0gbmV4dFNpYmxpbmcobmV4dE5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyAjMzc4N1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGNvbXBvbmVudCBpcyBhc3luYywgaXQgbWF5IGdldCBtb3ZlZCAvIHVubW91bnRlZCBiZWZvcmUgaXRzXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaW5uZXIgY29tcG9uZW50IGlzIGxvYWRlZCwgc28gd2UgbmVlZCB0byBnaXZlIGl0IGEgcGxhY2Vob2xkZXJcclxuICAgICAgICAgICAgICAgICAgICAvLyB2bm9kZSB0aGF0IG1hdGNoZXMgaXRzIGFkb3B0ZWQgRE9NLlxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0FzeW5jV3JhcHBlcih2bm9kZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1YlRyZWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0ZyYWdtZW50U3RhcnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YlRyZWUgPSBjcmVhdGVWTm9kZShGcmFnbWVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJUcmVlLmFuY2hvciA9IG5leHROb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBuZXh0Tm9kZS5wcmV2aW91c1NpYmxpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRhaW5lci5sYXN0Q2hpbGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJUcmVlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm5vZGVUeXBlID09PSAzID8gY3JlYXRlVGV4dFZOb2RlKCcnKSA6IGNyZWF0ZVZOb2RlKCdkaXYnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJUcmVlLmVsID0gbm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdm5vZGUuY29tcG9uZW50LnN1YlRyZWUgPSBzdWJUcmVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNoYXBlRmxhZyAmIDY0IC8qIFNoYXBlRmxhZ3MuVEVMRVBPUlQgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZG9tVHlwZSAhPT0gOCAvKiBET01Ob2RlVHlwZXMuQ09NTUVOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZSA9IG9uTWlzbWF0Y2goKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHROb2RlID0gdm5vZGUudHlwZS5oeWRyYXRlKG5vZGUsIHZub2RlLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgcmVuZGVyZXJJbnRlcm5hbHMsIGh5ZHJhdGVDaGlsZHJlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2hhcGVGbGFnICYgMTI4IC8qIFNoYXBlRmxhZ3MuU1VTUEVOU0UgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZSA9IHZub2RlLnR5cGUuaHlkcmF0ZShub2RlLCB2bm9kZSwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkdDb250YWluZXIocGFyZW50Tm9kZShub2RlKSksIHNsb3RTY29wZUlkcywgb3B0aW1pemVkLCByZW5kZXJlckludGVybmFscywgaHlkcmF0ZU5vZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FybignSW52YWxpZCBIb3N0Vk5vZGUgdHlwZTonLCB0eXBlLCBgKCR7dHlwZW9mIHR5cGV9KWApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVmICE9IG51bGwpIHtcclxuICAgICAgICAgICAgc2V0UmVmKHJlZiwgbnVsbCwgcGFyZW50U3VzcGVuc2UsIHZub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5leHROb2RlO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IGh5ZHJhdGVFbGVtZW50ID0gKGVsLCB2bm9kZSwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpID0+IHtcclxuICAgICAgICBvcHRpbWl6ZWQgPSBvcHRpbWl6ZWQgfHwgISF2bm9kZS5keW5hbWljQ2hpbGRyZW47XHJcbiAgICAgICAgY29uc3QgeyB0eXBlLCBwcm9wcywgcGF0Y2hGbGFnLCBzaGFwZUZsYWcsIGRpcnMgfSA9IHZub2RlO1xyXG4gICAgICAgIC8vICM0MDA2IGZvciBmb3JtIGVsZW1lbnRzIHdpdGggbm9uLXN0cmluZyB2LW1vZGVsIHZhbHVlIGJpbmRpbmdzXHJcbiAgICAgICAgLy8gZS5nLiA8b3B0aW9uIDp2YWx1ZT1cIm9ialwiPiwgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIDp0cnVlLXZhbHVlPVwiMVwiPlxyXG4gICAgICAgIGNvbnN0IGZvcmNlUGF0Y2hWYWx1ZSA9ICh0eXBlID09PSAnaW5wdXQnICYmIGRpcnMpIHx8IHR5cGUgPT09ICdvcHRpb24nO1xyXG4gICAgICAgIC8vIHNraXAgcHJvcHMgJiBjaGlsZHJlbiBpZiB0aGlzIGlzIGhvaXN0ZWQgc3RhdGljIG5vZGVzXHJcbiAgICAgICAgLy8gIzU0MDUgaW4gZGV2LCBhbHdheXMgaHlkcmF0ZSBjaGlsZHJlbiBmb3IgSE1SXHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCBmb3JjZVBhdGNoVmFsdWUgfHwgcGF0Y2hGbGFnICE9PSAtMSAvKiBQYXRjaEZsYWdzLkhPSVNURUQgKi8pIHtcclxuICAgICAgICAgICAgaWYgKGRpcnMpIHtcclxuICAgICAgICAgICAgICAgIGludm9rZURpcmVjdGl2ZUhvb2sodm5vZGUsIG51bGwsIHBhcmVudENvbXBvbmVudCwgJ2NyZWF0ZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBwcm9wc1xyXG4gICAgICAgICAgICBpZiAocHJvcHMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChmb3JjZVBhdGNoVmFsdWUgfHxcclxuICAgICAgICAgICAgICAgICAgICAhb3B0aW1pemVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hGbGFnICYgKDE2IC8qIFBhdGNoRmxhZ3MuRlVMTF9QUk9QUyAqLyB8IDMyIC8qIFBhdGNoRmxhZ3MuSFlEUkFURV9FVkVOVFMgKi8pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChmb3JjZVBhdGNoVmFsdWUgJiYga2V5LmVuZHNXaXRoKCd2YWx1ZScpKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzT24oa2V5KSAmJiAhaXNSZXNlcnZlZFByb3Aoa2V5KSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoUHJvcChlbCwga2V5LCBudWxsLCBwcm9wc1trZXldLCBmYWxzZSwgdW5kZWZpbmVkLCBwYXJlbnRDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocHJvcHMub25DbGljaykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEZhc3QgcGF0aCBmb3IgY2xpY2sgbGlzdGVuZXJzICh3aGljaCBpcyBtb3N0IG9mdGVuKSB0byBhdm9pZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGluZyB0aHJvdWdoIHByb3BzLlxyXG4gICAgICAgICAgICAgICAgICAgIHBhdGNoUHJvcChlbCwgJ29uQ2xpY2snLCBudWxsLCBwcm9wcy5vbkNsaWNrLCBmYWxzZSwgdW5kZWZpbmVkLCBwYXJlbnRDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIHZub2RlIC8gZGlyZWN0aXZlIGhvb2tzXHJcbiAgICAgICAgICAgIGxldCB2bm9kZUhvb2tzO1xyXG4gICAgICAgICAgICBpZiAoKHZub2RlSG9va3MgPSBwcm9wcyAmJiBwcm9wcy5vblZub2RlQmVmb3JlTW91bnQpKSB7XHJcbiAgICAgICAgICAgICAgICBpbnZva2VWTm9kZUhvb2sodm5vZGVIb29rcywgcGFyZW50Q29tcG9uZW50LCB2bm9kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRpcnMpIHtcclxuICAgICAgICAgICAgICAgIGludm9rZURpcmVjdGl2ZUhvb2sodm5vZGUsIG51bGwsIHBhcmVudENvbXBvbmVudCwgJ2JlZm9yZU1vdW50Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCh2bm9kZUhvb2tzID0gcHJvcHMgJiYgcHJvcHMub25Wbm9kZU1vdW50ZWQpIHx8IGRpcnMpIHtcclxuICAgICAgICAgICAgICAgIHF1ZXVlRWZmZWN0V2l0aFN1c3BlbnNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB2bm9kZUhvb2tzICYmIGludm9rZVZOb2RlSG9vayh2bm9kZUhvb2tzLCBwYXJlbnRDb21wb25lbnQsIHZub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBkaXJzICYmIGludm9rZURpcmVjdGl2ZUhvb2sodm5vZGUsIG51bGwsIHBhcmVudENvbXBvbmVudCwgJ21vdW50ZWQnKTtcclxuICAgICAgICAgICAgICAgIH0sIHBhcmVudFN1c3BlbnNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjaGlsZHJlblxyXG4gICAgICAgICAgICBpZiAoc2hhcGVGbGFnICYgMTYgLyogU2hhcGVGbGFncy5BUlJBWV9DSElMRFJFTiAqLyAmJlxyXG4gICAgICAgICAgICAgICAgLy8gc2tpcCBpZiBlbGVtZW50IGhhcyBpbm5lckhUTUwgLyB0ZXh0Q29udGVudFxyXG4gICAgICAgICAgICAgICAgIShwcm9wcyAmJiAocHJvcHMuaW5uZXJIVE1MIHx8IHByb3BzLnRleHRDb250ZW50KSkpIHtcclxuICAgICAgICAgICAgICAgIGxldCBuZXh0ID0gaHlkcmF0ZUNoaWxkcmVuKGVsLmZpcnN0Q2hpbGQsIHZub2RlLCBlbCwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGhhc1dhcm5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKG5leHQpIHtcclxuICAgICAgICAgICAgICAgICAgICBoYXNNaXNtYXRjaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhaGFzV2FybmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4oYEh5ZHJhdGlvbiBjaGlsZHJlbiBtaXNtYXRjaCBpbiA8JHt2bm9kZS50eXBlfT46IGAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYHNlcnZlciByZW5kZXJlZCBlbGVtZW50IGNvbnRhaW5zIG1vcmUgY2hpbGQgbm9kZXMgdGhhbiBjbGllbnQgdmRvbS5gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzV2FybmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIFNTUmVkIERPTSBjb250YWlucyBtb3JlIG5vZGVzIHRoYW4gaXQgc2hvdWxkLiBSZW1vdmUgdGhlbS5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXIgPSBuZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBuZXh0Lm5leHRTaWJsaW5nO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZShjdXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHNoYXBlRmxhZyAmIDggLyogU2hhcGVGbGFncy5URVhUX0NISUxEUkVOICovKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZWwudGV4dENvbnRlbnQgIT09IHZub2RlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFzTWlzbWF0Y2ggPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuKGBIeWRyYXRpb24gdGV4dCBjb250ZW50IG1pc21hdGNoIGluIDwke3Zub2RlLnR5cGV9PjpcXG5gICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAtIENsaWVudDogJHtlbC50ZXh0Q29udGVudH1cXG5gICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAtIFNlcnZlcjogJHt2bm9kZS5jaGlsZHJlbn1gKTtcclxuICAgICAgICAgICAgICAgICAgICBlbC50ZXh0Q29udGVudCA9IHZub2RlLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlbC5uZXh0U2libGluZztcclxuICAgIH07XHJcbiAgICBjb25zdCBoeWRyYXRlQ2hpbGRyZW4gPSAobm9kZSwgcGFyZW50Vk5vZGUsIGNvbnRhaW5lciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpID0+IHtcclxuICAgICAgICBvcHRpbWl6ZWQgPSBvcHRpbWl6ZWQgfHwgISFwYXJlbnRWTm9kZS5keW5hbWljQ2hpbGRyZW47XHJcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnRWTm9kZS5jaGlsZHJlbjtcclxuICAgICAgICBjb25zdCBsID0gY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgIGxldCBoYXNXYXJuZWQgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCB2bm9kZSA9IG9wdGltaXplZFxyXG4gICAgICAgICAgICAgICAgPyBjaGlsZHJlbltpXVxyXG4gICAgICAgICAgICAgICAgOiAoY2hpbGRyZW5baV0gPSBub3JtYWxpemVWTm9kZShjaGlsZHJlbltpXSkpO1xyXG4gICAgICAgICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgICAgICAgICAgbm9kZSA9IGh5ZHJhdGVOb2RlKG5vZGUsIHZub2RlLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodm5vZGUudHlwZSA9PT0gVGV4dCAmJiAhdm5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaGFzTWlzbWF0Y2ggPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhaGFzV2FybmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FybihgSHlkcmF0aW9uIGNoaWxkcmVuIG1pc21hdGNoIGluIDwke2NvbnRhaW5lci50YWdOYW1lLnRvTG93ZXJDYXNlKCl9PjogYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGBzZXJ2ZXIgcmVuZGVyZWQgZWxlbWVudCBjb250YWlucyBmZXdlciBjaGlsZCBub2RlcyB0aGFuIGNsaWVudCB2ZG9tLmApO1xyXG4gICAgICAgICAgICAgICAgICAgIGhhc1dhcm5lZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyB0aGUgU1NSZWQgRE9NIGRpZG4ndCBjb250YWluIGVub3VnaCBub2Rlcy4gTW91bnQgdGhlIG1pc3Npbmcgb25lcy5cclxuICAgICAgICAgICAgICAgIHBhdGNoKG51bGwsIHZub2RlLCBjb250YWluZXIsIG51bGwsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHQ29udGFpbmVyKGNvbnRhaW5lciksIHNsb3RTY29wZUlkcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaHlkcmF0ZUZyYWdtZW50ID0gKG5vZGUsIHZub2RlLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgc2xvdFNjb3BlSWRzOiBmcmFnbWVudFNsb3RTY29wZUlkcyB9ID0gdm5vZGU7XHJcbiAgICAgICAgaWYgKGZyYWdtZW50U2xvdFNjb3BlSWRzKSB7XHJcbiAgICAgICAgICAgIHNsb3RTY29wZUlkcyA9IHNsb3RTY29wZUlkc1xyXG4gICAgICAgICAgICAgICAgPyBzbG90U2NvcGVJZHMuY29uY2F0KGZyYWdtZW50U2xvdFNjb3BlSWRzKVxyXG4gICAgICAgICAgICAgICAgOiBmcmFnbWVudFNsb3RTY29wZUlkcztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gcGFyZW50Tm9kZShub2RlKTtcclxuICAgICAgICBjb25zdCBuZXh0ID0gaHlkcmF0ZUNoaWxkcmVuKG5leHRTaWJsaW5nKG5vZGUpLCB2bm9kZSwgY29udGFpbmVyLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgaWYgKG5leHQgJiYgaXNDb21tZW50KG5leHQpICYmIG5leHQuZGF0YSA9PT0gJ10nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXh0U2libGluZygodm5vZGUuYW5jaG9yID0gbmV4dCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gZnJhZ21lbnQgZGlkbid0IGh5ZHJhdGUgc3VjY2Vzc2Z1bGx5LCBzaW5jZSB3ZSBkaWRuJ3QgZ2V0IGEgZW5kIGFuY2hvclxyXG4gICAgICAgICAgICAvLyBiYWNrLiBUaGlzIHNob3VsZCBoYXZlIGxlZCB0byBub2RlL2NoaWxkcmVuIG1pc21hdGNoIHdhcm5pbmdzLlxyXG4gICAgICAgICAgICBoYXNNaXNtYXRjaCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBhbmNob3IgaXMgbWlzc2luZywgd2UgbmVlZCB0byBjcmVhdGUgb25lIGFuZCBpbnNlcnQgaXRcclxuICAgICAgICAgICAgaW5zZXJ0KCh2bm9kZS5hbmNob3IgPSBjcmVhdGVDb21tZW50KGBdYCkpLCBjb250YWluZXIsIG5leHQpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlTWlzbWF0Y2ggPSAobm9kZSwgdm5vZGUsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIHNsb3RTY29wZUlkcywgaXNGcmFnbWVudCkgPT4ge1xyXG4gICAgICAgIGhhc01pc21hdGNoID0gdHJ1ZTtcclxuICAgICAgICAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICAgICAgd2FybihgSHlkcmF0aW9uIG5vZGUgbWlzbWF0Y2g6XFxuLSBDbGllbnQgdm5vZGU6YCwgdm5vZGUudHlwZSwgYFxcbi0gU2VydmVyIHJlbmRlcmVkIERPTTpgLCBub2RlLCBub2RlLm5vZGVUeXBlID09PSAzIC8qIERPTU5vZGVUeXBlcy5URVhUICovXHJcbiAgICAgICAgICAgICAgICA/IGAodGV4dClgXHJcbiAgICAgICAgICAgICAgICA6IGlzQ29tbWVudChub2RlKSAmJiBub2RlLmRhdGEgPT09ICdbJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gYChzdGFydCBvZiBmcmFnbWVudClgXHJcbiAgICAgICAgICAgICAgICAgICAgOiBgYCk7XHJcbiAgICAgICAgdm5vZGUuZWwgPSBudWxsO1xyXG4gICAgICAgIGlmIChpc0ZyYWdtZW50KSB7XHJcbiAgICAgICAgICAgIC8vIHJlbW92ZSBleGNlc3NpdmUgZnJhZ21lbnQgbm9kZXNcclxuICAgICAgICAgICAgY29uc3QgZW5kID0gbG9jYXRlQ2xvc2luZ0FzeW5jQW5jaG9yKG5vZGUpO1xyXG4gICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IG5leHRTaWJsaW5nKG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dCAhPT0gZW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKG5leHQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbmV4dCA9IG5leHRTaWJsaW5nKG5vZGUpO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHBhcmVudE5vZGUobm9kZSk7XHJcbiAgICAgICAgcmVtb3ZlKG5vZGUpO1xyXG4gICAgICAgIHBhdGNoKG51bGwsIHZub2RlLCBjb250YWluZXIsIG5leHQsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHQ29udGFpbmVyKGNvbnRhaW5lciksIHNsb3RTY29wZUlkcyk7XHJcbiAgICAgICAgcmV0dXJuIG5leHQ7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgbG9jYXRlQ2xvc2luZ0FzeW5jQW5jaG9yID0gKG5vZGUpID0+IHtcclxuICAgICAgICBsZXQgbWF0Y2ggPSAwO1xyXG4gICAgICAgIHdoaWxlIChub2RlKSB7XHJcbiAgICAgICAgICAgIG5vZGUgPSBuZXh0U2libGluZyhub2RlKTtcclxuICAgICAgICAgICAgaWYgKG5vZGUgJiYgaXNDb21tZW50KG5vZGUpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5kYXRhID09PSAnWycpXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2grKztcclxuICAgICAgICAgICAgICAgIGlmIChub2RlLmRhdGEgPT09ICddJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dFNpYmxpbmcobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaC0tO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbm9kZTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gW2h5ZHJhdGUsIGh5ZHJhdGVOb2RlXTtcclxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgKi9cclxubGV0IHN1cHBvcnRlZDtcclxubGV0IHBlcmY7XHJcbmZ1bmN0aW9uIHN0YXJ0TWVhc3VyZShpbnN0YW5jZSwgdHlwZSkge1xyXG4gICAgaWYgKGluc3RhbmNlLmFwcENvbnRleHQuY29uZmlnLnBlcmZvcm1hbmNlICYmIGlzU3VwcG9ydGVkKCkpIHtcclxuICAgICAgICBwZXJmLm1hcmsoYHZ1ZS0ke3R5cGV9LSR7aW5zdGFuY2UudWlkfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCBfX1ZVRV9QUk9EX0RFVlRPT0xTX18pIHtcclxuICAgICAgICBkZXZ0b29sc1BlcmZTdGFydChpbnN0YW5jZSwgdHlwZSwgaXNTdXBwb3J0ZWQoKSA/IHBlcmYubm93KCkgOiBEYXRlLm5vdygpKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBlbmRNZWFzdXJlKGluc3RhbmNlLCB0eXBlKSB7XHJcbiAgICBpZiAoaW5zdGFuY2UuYXBwQ29udGV4dC5jb25maWcucGVyZm9ybWFuY2UgJiYgaXNTdXBwb3J0ZWQoKSkge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGFnID0gYHZ1ZS0ke3R5cGV9LSR7aW5zdGFuY2UudWlkfWA7XHJcbiAgICAgICAgY29uc3QgZW5kVGFnID0gc3RhcnRUYWcgKyBgOmVuZGA7XHJcbiAgICAgICAgcGVyZi5tYXJrKGVuZFRhZyk7XHJcbiAgICAgICAgcGVyZi5tZWFzdXJlKGA8JHtmb3JtYXRDb21wb25lbnROYW1lKGluc3RhbmNlLCBpbnN0YW5jZS50eXBlKX0+ICR7dHlwZX1gLCBzdGFydFRhZywgZW5kVGFnKTtcclxuICAgICAgICBwZXJmLmNsZWFyTWFya3Moc3RhcnRUYWcpO1xyXG4gICAgICAgIHBlcmYuY2xlYXJNYXJrcyhlbmRUYWcpO1xyXG4gICAgfVxyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCBfX1ZVRV9QUk9EX0RFVlRPT0xTX18pIHtcclxuICAgICAgICBkZXZ0b29sc1BlcmZFbmQoaW5zdGFuY2UsIHR5cGUsIGlzU3VwcG9ydGVkKCkgPyBwZXJmLm5vdygpIDogRGF0ZS5ub3coKSk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gaXNTdXBwb3J0ZWQoKSB7XHJcbiAgICBpZiAoc3VwcG9ydGVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXR1cm4gc3VwcG9ydGVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5wZXJmb3JtYW5jZSkge1xyXG4gICAgICAgIHN1cHBvcnRlZCA9IHRydWU7XHJcbiAgICAgICAgcGVyZiA9IHdpbmRvdy5wZXJmb3JtYW5jZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHN1cHBvcnRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1cHBvcnRlZDtcclxufVxuXG4vKipcclxuICogVGhpcyBpcyBvbmx5IGNhbGxlZCBpbiBlc20tYnVuZGxlciBidWlsZHMuXHJcbiAqIEl0IGlzIGNhbGxlZCB3aGVuIGEgcmVuZGVyZXIgaXMgY3JlYXRlZCwgaW4gYGJhc2VDcmVhdGVSZW5kZXJlcmAgc28gdGhhdFxyXG4gKiBpbXBvcnRpbmcgcnVudGltZS1jb3JlIGlzIHNpZGUtZWZmZWN0cyBmcmVlLlxyXG4gKlxyXG4gKiBpc3RhbmJ1bC1pZ25vcmUtbmV4dFxyXG4gKi9cclxuZnVuY3Rpb24gaW5pdEZlYXR1cmVGbGFncygpIHtcclxuICAgIGNvbnN0IG5lZWRXYXJuID0gW107XHJcbiAgICBpZiAodHlwZW9mIF9fVlVFX09QVElPTlNfQVBJX18gIT09ICdib29sZWFuJykge1xyXG4gICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBuZWVkV2Fybi5wdXNoKGBfX1ZVRV9PUFRJT05TX0FQSV9fYCk7XHJcbiAgICAgICAgZ2V0R2xvYmFsVGhpcygpLl9fVlVFX09QVElPTlNfQVBJX18gPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBfX1ZVRV9QUk9EX0RFVlRPT0xTX18gIT09ICdib29sZWFuJykge1xyXG4gICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBuZWVkV2Fybi5wdXNoKGBfX1ZVRV9QUk9EX0RFVlRPT0xTX19gKTtcclxuICAgICAgICBnZXRHbG9iYWxUaGlzKCkuX19WVUVfUFJPRF9ERVZUT09MU19fID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIG5lZWRXYXJuLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IG11bHRpID0gbmVlZFdhcm4ubGVuZ3RoID4gMTtcclxuICAgICAgICBjb25zb2xlLndhcm4oYEZlYXR1cmUgZmxhZyR7bXVsdGkgPyBgc2AgOiBgYH0gJHtuZWVkV2Fybi5qb2luKCcsICcpfSAke211bHRpID8gYGFyZWAgOiBgaXNgfSBub3QgZXhwbGljaXRseSBkZWZpbmVkLiBZb3UgYXJlIHJ1bm5pbmcgdGhlIGVzbS1idW5kbGVyIGJ1aWxkIG9mIFZ1ZSwgYCArXHJcbiAgICAgICAgICAgIGB3aGljaCBleHBlY3RzIHRoZXNlIGNvbXBpbGUtdGltZSBmZWF0dXJlIGZsYWdzIHRvIGJlIGdsb2JhbGx5IGluamVjdGVkIGAgK1xyXG4gICAgICAgICAgICBgdmlhIHRoZSBidW5kbGVyIGNvbmZpZyBpbiBvcmRlciB0byBnZXQgYmV0dGVyIHRyZWUtc2hha2luZyBpbiB0aGUgYCArXHJcbiAgICAgICAgICAgIGBwcm9kdWN0aW9uIGJ1bmRsZS5cXG5cXG5gICtcclxuICAgICAgICAgICAgYEZvciBtb3JlIGRldGFpbHMsIHNlZSBodHRwczovL2xpbmsudnVlanMub3JnL2ZlYXR1cmUtZmxhZ3MuYCk7XHJcbiAgICB9XHJcbn1cblxuY29uc3QgcXVldWVQb3N0UmVuZGVyRWZmZWN0ID0gcXVldWVFZmZlY3RXaXRoU3VzcGVuc2VcclxuICAgIDtcclxuLyoqXHJcbiAqIFRoZSBjcmVhdGVSZW5kZXJlciBmdW5jdGlvbiBhY2NlcHRzIHR3byBnZW5lcmljIGFyZ3VtZW50czpcclxuICogSG9zdE5vZGUgYW5kIEhvc3RFbGVtZW50LCBjb3JyZXNwb25kaW5nIHRvIE5vZGUgYW5kIEVsZW1lbnQgdHlwZXMgaW4gdGhlXHJcbiAqIGhvc3QgZW52aXJvbm1lbnQuIEZvciBleGFtcGxlLCBmb3IgcnVudGltZS1kb20sIEhvc3ROb2RlIHdvdWxkIGJlIHRoZSBET01cclxuICogYE5vZGVgIGludGVyZmFjZSBhbmQgSG9zdEVsZW1lbnQgd291bGQgYmUgdGhlIERPTSBgRWxlbWVudGAgaW50ZXJmYWNlLlxyXG4gKlxyXG4gKiBDdXN0b20gcmVuZGVyZXJzIGNhbiBwYXNzIGluIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyB0eXBlcyBsaWtlIHRoaXM6XHJcbiAqXHJcbiAqIGBgYCBqc1xyXG4gKiBjb25zdCB7IHJlbmRlciwgY3JlYXRlQXBwIH0gPSBjcmVhdGVSZW5kZXJlcjxOb2RlLCBFbGVtZW50Pih7XHJcbiAqICAgcGF0Y2hQcm9wLFxyXG4gKiAgIC4uLm5vZGVPcHNcclxuICogfSlcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJlcihvcHRpb25zKSB7XHJcbiAgICByZXR1cm4gYmFzZUNyZWF0ZVJlbmRlcmVyKG9wdGlvbnMpO1xyXG59XHJcbi8vIFNlcGFyYXRlIEFQSSBmb3IgY3JlYXRpbmcgaHlkcmF0aW9uLWVuYWJsZWQgcmVuZGVyZXIuXHJcbi8vIEh5ZHJhdGlvbiBsb2dpYyBpcyBvbmx5IHVzZWQgd2hlbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIG1ha2luZyBpdFxyXG4vLyB0cmVlLXNoYWthYmxlLlxyXG5mdW5jdGlvbiBjcmVhdGVIeWRyYXRpb25SZW5kZXJlcihvcHRpb25zKSB7XHJcbiAgICByZXR1cm4gYmFzZUNyZWF0ZVJlbmRlcmVyKG9wdGlvbnMsIGNyZWF0ZUh5ZHJhdGlvbkZ1bmN0aW9ucyk7XHJcbn1cclxuLy8gaW1wbGVtZW50YXRpb25cclxuZnVuY3Rpb24gYmFzZUNyZWF0ZVJlbmRlcmVyKG9wdGlvbnMsIGNyZWF0ZUh5ZHJhdGlvbkZucykge1xyXG4gICAgLy8gY29tcGlsZS10aW1lIGZlYXR1cmUgZmxhZ3MgY2hlY2tcclxuICAgIHtcclxuICAgICAgICBpbml0RmVhdHVyZUZsYWdzKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0YXJnZXQgPSBnZXRHbG9iYWxUaGlzKCk7XHJcbiAgICB0YXJnZXQuX19WVUVfXyA9IHRydWU7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHx8IF9fVlVFX1BST0RfREVWVE9PTFNfXykge1xyXG4gICAgICAgIHNldERldnRvb2xzSG9vayh0YXJnZXQuX19WVUVfREVWVE9PTFNfR0xPQkFMX0hPT0tfXywgdGFyZ2V0KTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgaW5zZXJ0OiBob3N0SW5zZXJ0LCByZW1vdmU6IGhvc3RSZW1vdmUsIHBhdGNoUHJvcDogaG9zdFBhdGNoUHJvcCwgY3JlYXRlRWxlbWVudDogaG9zdENyZWF0ZUVsZW1lbnQsIGNyZWF0ZVRleHQ6IGhvc3RDcmVhdGVUZXh0LCBjcmVhdGVDb21tZW50OiBob3N0Q3JlYXRlQ29tbWVudCwgc2V0VGV4dDogaG9zdFNldFRleHQsIHNldEVsZW1lbnRUZXh0OiBob3N0U2V0RWxlbWVudFRleHQsIHBhcmVudE5vZGU6IGhvc3RQYXJlbnROb2RlLCBuZXh0U2libGluZzogaG9zdE5leHRTaWJsaW5nLCBzZXRTY29wZUlkOiBob3N0U2V0U2NvcGVJZCA9IE5PT1AsIGNsb25lTm9kZTogaG9zdENsb25lTm9kZSwgaW5zZXJ0U3RhdGljQ29udGVudDogaG9zdEluc2VydFN0YXRpY0NvbnRlbnQgfSA9IG9wdGlvbnM7XHJcbiAgICAvLyBOb3RlOiBmdW5jdGlvbnMgaW5zaWRlIHRoaXMgY2xvc3VyZSBzaG91bGQgdXNlIGBjb25zdCB4eHggPSAoKSA9PiB7fWBcclxuICAgIC8vIHN0eWxlIGluIG9yZGVyIHRvIHByZXZlbnQgYmVpbmcgaW5saW5lZCBieSBtaW5pZmllcnMuXHJcbiAgICBjb25zdCBwYXRjaCA9IChuMSwgbjIsIGNvbnRhaW5lciwgYW5jaG9yID0gbnVsbCwgcGFyZW50Q29tcG9uZW50ID0gbnVsbCwgcGFyZW50U3VzcGVuc2UgPSBudWxsLCBpc1NWRyA9IGZhbHNlLCBzbG90U2NvcGVJZHMgPSBudWxsLCBvcHRpbWl6ZWQgPSAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgaXNIbXJVcGRhdGluZyA/IGZhbHNlIDogISFuMi5keW5hbWljQ2hpbGRyZW4pID0+IHtcclxuICAgICAgICBpZiAobjEgPT09IG4yKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gcGF0Y2hpbmcgJiBub3Qgc2FtZSB0eXBlLCB1bm1vdW50IG9sZCB0cmVlXHJcbiAgICAgICAgaWYgKG4xICYmICFpc1NhbWVWTm9kZVR5cGUobjEsIG4yKSkge1xyXG4gICAgICAgICAgICBhbmNob3IgPSBnZXROZXh0SG9zdE5vZGUobjEpO1xyXG4gICAgICAgICAgICB1bm1vdW50KG4xLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCB0cnVlKTtcclxuICAgICAgICAgICAgbjEgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobjIucGF0Y2hGbGFnID09PSAtMiAvKiBQYXRjaEZsYWdzLkJBSUwgKi8pIHtcclxuICAgICAgICAgICAgb3B0aW1pemVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIG4yLmR5bmFtaWNDaGlsZHJlbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHsgdHlwZSwgcmVmLCBzaGFwZUZsYWcgfSA9IG4yO1xyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIFRleHQ6XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzVGV4dChuMSwgbjIsIGNvbnRhaW5lciwgYW5jaG9yKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIENvbW1lbnQ6XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWVudE5vZGUobjEsIG4yLCBjb250YWluZXIsIGFuY2hvcik7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdGF0aWM6XHJcbiAgICAgICAgICAgICAgICBpZiAobjEgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vdW50U3RhdGljTm9kZShuMiwgY29udGFpbmVyLCBhbmNob3IsIGlzU1ZHKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGljTm9kZShuMSwgbjIsIGNvbnRhaW5lciwgaXNTVkcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgRnJhZ21lbnQ6XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzRnJhZ21lbnQobjEsIG4yLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgaWYgKHNoYXBlRmxhZyAmIDEgLyogU2hhcGVGbGFncy5FTEVNRU5UICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0VsZW1lbnQobjEsIG4yLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNoYXBlRmxhZyAmIDYgLyogU2hhcGVGbGFncy5DT01QT05FTlQgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzQ29tcG9uZW50KG4xLCBuMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzaGFwZUZsYWcgJiA2NCAvKiBTaGFwZUZsYWdzLlRFTEVQT1JUICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZS5wcm9jZXNzKG4xLCBuMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgaW50ZXJuYWxzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNoYXBlRmxhZyAmIDEyOCAvKiBTaGFwZUZsYWdzLlNVU1BFTlNFICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZS5wcm9jZXNzKG4xLCBuMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgaW50ZXJuYWxzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhcm4oJ0ludmFsaWQgVk5vZGUgdHlwZTonLCB0eXBlLCBgKCR7dHlwZW9mIHR5cGV9KWApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBzZXQgcmVmXHJcbiAgICAgICAgaWYgKHJlZiAhPSBudWxsICYmIHBhcmVudENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICBzZXRSZWYocmVmLCBuMSAmJiBuMS5yZWYsIHBhcmVudFN1c3BlbnNlLCBuMiB8fCBuMSwgIW4yKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcHJvY2Vzc1RleHQgPSAobjEsIG4yLCBjb250YWluZXIsIGFuY2hvcikgPT4ge1xyXG4gICAgICAgIGlmIChuMSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGhvc3RJbnNlcnQoKG4yLmVsID0gaG9zdENyZWF0ZVRleHQobjIuY2hpbGRyZW4pKSwgY29udGFpbmVyLCBhbmNob3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZWwgPSAobjIuZWwgPSBuMS5lbCk7XHJcbiAgICAgICAgICAgIGlmIChuMi5jaGlsZHJlbiAhPT0gbjEuY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIGhvc3RTZXRUZXh0KGVsLCBuMi5jaGlsZHJlbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcHJvY2Vzc0NvbW1lbnROb2RlID0gKG4xLCBuMiwgY29udGFpbmVyLCBhbmNob3IpID0+IHtcclxuICAgICAgICBpZiAobjEgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBob3N0SW5zZXJ0KChuMi5lbCA9IGhvc3RDcmVhdGVDb21tZW50KG4yLmNoaWxkcmVuIHx8ICcnKSksIGNvbnRhaW5lciwgYW5jaG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgZHluYW1pYyBjb21tZW50c1xyXG4gICAgICAgICAgICBuMi5lbCA9IG4xLmVsO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBtb3VudFN0YXRpY05vZGUgPSAobjIsIGNvbnRhaW5lciwgYW5jaG9yLCBpc1NWRykgPT4ge1xyXG4gICAgICAgIFtuMi5lbCwgbjIuYW5jaG9yXSA9IGhvc3RJbnNlcnRTdGF0aWNDb250ZW50KG4yLmNoaWxkcmVuLCBjb250YWluZXIsIGFuY2hvciwgaXNTVkcsIG4yLmVsLCBuMi5hbmNob3IpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogRGV2IC8gSE1SIG9ubHlcclxuICAgICAqL1xyXG4gICAgY29uc3QgcGF0Y2hTdGF0aWNOb2RlID0gKG4xLCBuMiwgY29udGFpbmVyLCBpc1NWRykgPT4ge1xyXG4gICAgICAgIC8vIHN0YXRpYyBub2RlcyBhcmUgb25seSBwYXRjaGVkIGR1cmluZyBkZXYgZm9yIEhNUlxyXG4gICAgICAgIGlmIChuMi5jaGlsZHJlbiAhPT0gbjEuY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgYW5jaG9yID0gaG9zdE5leHRTaWJsaW5nKG4xLmFuY2hvcik7XHJcbiAgICAgICAgICAgIC8vIHJlbW92ZSBleGlzdGluZ1xyXG4gICAgICAgICAgICByZW1vdmVTdGF0aWNOb2RlKG4xKTtcclxuICAgICAgICAgICAgW24yLmVsLCBuMi5hbmNob3JdID0gaG9zdEluc2VydFN0YXRpY0NvbnRlbnQobjIuY2hpbGRyZW4sIGNvbnRhaW5lciwgYW5jaG9yLCBpc1NWRyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBuMi5lbCA9IG4xLmVsO1xyXG4gICAgICAgICAgICBuMi5hbmNob3IgPSBuMS5hbmNob3I7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IG1vdmVTdGF0aWNOb2RlID0gKHsgZWwsIGFuY2hvciB9LCBjb250YWluZXIsIG5leHRTaWJsaW5nKSA9PiB7XHJcbiAgICAgICAgbGV0IG5leHQ7XHJcbiAgICAgICAgd2hpbGUgKGVsICYmIGVsICE9PSBhbmNob3IpIHtcclxuICAgICAgICAgICAgbmV4dCA9IGhvc3ROZXh0U2libGluZyhlbCk7XHJcbiAgICAgICAgICAgIGhvc3RJbnNlcnQoZWwsIGNvbnRhaW5lciwgbmV4dFNpYmxpbmcpO1xyXG4gICAgICAgICAgICBlbCA9IG5leHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGhvc3RJbnNlcnQoYW5jaG9yLCBjb250YWluZXIsIG5leHRTaWJsaW5nKTtcclxuICAgIH07XHJcbiAgICBjb25zdCByZW1vdmVTdGF0aWNOb2RlID0gKHsgZWwsIGFuY2hvciB9KSA9PiB7XHJcbiAgICAgICAgbGV0IG5leHQ7XHJcbiAgICAgICAgd2hpbGUgKGVsICYmIGVsICE9PSBhbmNob3IpIHtcclxuICAgICAgICAgICAgbmV4dCA9IGhvc3ROZXh0U2libGluZyhlbCk7XHJcbiAgICAgICAgICAgIGhvc3RSZW1vdmUoZWwpO1xyXG4gICAgICAgICAgICBlbCA9IG5leHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGhvc3RSZW1vdmUoYW5jaG9yKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBwcm9jZXNzRWxlbWVudCA9IChuMSwgbjIsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpID0+IHtcclxuICAgICAgICBpc1NWRyA9IGlzU1ZHIHx8IG4yLnR5cGUgPT09ICdzdmcnO1xyXG4gICAgICAgIGlmIChuMSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIG1vdW50RWxlbWVudChuMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBwYXRjaEVsZW1lbnQobjEsIG4yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBtb3VudEVsZW1lbnQgPSAodm5vZGUsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpID0+IHtcclxuICAgICAgICBsZXQgZWw7XHJcbiAgICAgICAgbGV0IHZub2RlSG9vaztcclxuICAgICAgICBjb25zdCB7IHR5cGUsIHByb3BzLCBzaGFwZUZsYWcsIHRyYW5zaXRpb24sIHBhdGNoRmxhZywgZGlycyB9ID0gdm5vZGU7XHJcbiAgICAgICAgaWYgKCEocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICAgICAgdm5vZGUuZWwgJiZcclxuICAgICAgICAgICAgaG9zdENsb25lTm9kZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgIHBhdGNoRmxhZyA9PT0gLTEgLyogUGF0Y2hGbGFncy5IT0lTVEVEICovKSB7XHJcbiAgICAgICAgICAgIC8vIElmIGEgdm5vZGUgaGFzIG5vbi1udWxsIGVsLCBpdCBtZWFucyBpdCdzIGJlaW5nIHJldXNlZC5cclxuICAgICAgICAgICAgLy8gT25seSBzdGF0aWMgdm5vZGVzIGNhbiBiZSByZXVzZWQsIHNvIGl0cyBtb3VudGVkIERPTSBub2RlcyBzaG91bGQgYmVcclxuICAgICAgICAgICAgLy8gZXhhY3RseSB0aGUgc2FtZSwgYW5kIHdlIGNhbiBzaW1wbHkgZG8gYSBjbG9uZSBoZXJlLlxyXG4gICAgICAgICAgICAvLyBvbmx5IGRvIHRoaXMgaW4gcHJvZHVjdGlvbiBzaW5jZSBjbG9uZWQgdHJlZXMgY2Fubm90IGJlIEhNUiB1cGRhdGVkLlxyXG4gICAgICAgICAgICBlbCA9IHZub2RlLmVsID0gaG9zdENsb25lTm9kZSh2bm9kZS5lbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBlbCA9IHZub2RlLmVsID0gaG9zdENyZWF0ZUVsZW1lbnQodm5vZGUudHlwZSwgaXNTVkcsIHByb3BzICYmIHByb3BzLmlzLCBwcm9wcyk7XHJcbiAgICAgICAgICAgIC8vIG1vdW50IGNoaWxkcmVuIGZpcnN0LCBzaW5jZSBzb21lIHByb3BzIG1heSByZWx5IG9uIGNoaWxkIGNvbnRlbnRcclxuICAgICAgICAgICAgLy8gYmVpbmcgYWxyZWFkeSByZW5kZXJlZCwgZS5nLiBgPHNlbGVjdCB2YWx1ZT5gXHJcbiAgICAgICAgICAgIGlmIChzaGFwZUZsYWcgJiA4IC8qIFNoYXBlRmxhZ3MuVEVYVF9DSElMRFJFTiAqLykge1xyXG4gICAgICAgICAgICAgICAgaG9zdFNldEVsZW1lbnRUZXh0KGVsLCB2bm9kZS5jaGlsZHJlbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoc2hhcGVGbGFnICYgMTYgLyogU2hhcGVGbGFncy5BUlJBWV9DSElMRFJFTiAqLykge1xyXG4gICAgICAgICAgICAgICAgbW91bnRDaGlsZHJlbih2bm9kZS5jaGlsZHJlbiwgZWwsIG51bGwsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHICYmIHR5cGUgIT09ICdmb3JlaWduT2JqZWN0Jywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChkaXJzKSB7XHJcbiAgICAgICAgICAgICAgICBpbnZva2VEaXJlY3RpdmVIb29rKHZub2RlLCBudWxsLCBwYXJlbnRDb21wb25lbnQsICdjcmVhdGVkJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gcHJvcHNcclxuICAgICAgICAgICAgaWYgKHByb3BzKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBwcm9wcykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXkgIT09ICd2YWx1ZScgJiYgIWlzUmVzZXJ2ZWRQcm9wKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaG9zdFBhdGNoUHJvcChlbCwga2V5LCBudWxsLCBwcm9wc1trZXldLCBpc1NWRywgdm5vZGUuY2hpbGRyZW4sIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIHVubW91bnRDaGlsZHJlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgKiBTcGVjaWFsIGNhc2UgZm9yIHNldHRpbmcgdmFsdWUgb24gRE9NIGVsZW1lbnRzOlxyXG4gICAgICAgICAgICAgICAgICogLSBpdCBjYW4gYmUgb3JkZXItc2Vuc2l0aXZlIChlLmcuIHNob3VsZCBiZSBzZXQgKmFmdGVyKiBtaW4vbWF4LCAjMjMyNSwgIzQwMjQpXHJcbiAgICAgICAgICAgICAgICAgKiAtIGl0IG5lZWRzIHRvIGJlIGZvcmNlZCAoIzE0NzEpXHJcbiAgICAgICAgICAgICAgICAgKiAjMjM1MyBwcm9wb3NlcyBhZGRpbmcgYW5vdGhlciByZW5kZXJlciBvcHRpb24gdG8gY29uZmlndXJlIHRoaXMsIGJ1dFxyXG4gICAgICAgICAgICAgICAgICogdGhlIHByb3BlcnRpZXMgYWZmZWN0cyBhcmUgc28gZmluaXRlIGl0IGlzIHdvcnRoIHNwZWNpYWwgY2FzaW5nIGl0XHJcbiAgICAgICAgICAgICAgICAgKiBoZXJlIHRvIHJlZHVjZSB0aGUgY29tcGxleGl0eS4gKFNwZWNpYWwgY2FzaW5nIGl0IGFsc28gc2hvdWxkIG5vdFxyXG4gICAgICAgICAgICAgICAgICogYWZmZWN0IG5vbi1ET00gcmVuZGVyZXJzKVxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZiAoJ3ZhbHVlJyBpbiBwcm9wcykge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvc3RQYXRjaFByb3AoZWwsICd2YWx1ZScsIG51bGwsIHByb3BzLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICgodm5vZGVIb29rID0gcHJvcHMub25Wbm9kZUJlZm9yZU1vdW50KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9rZVZOb2RlSG9vayh2bm9kZUhvb2ssIHBhcmVudENvbXBvbmVudCwgdm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIHNjb3BlSWRcclxuICAgICAgICAgICAgc2V0U2NvcGVJZChlbCwgdm5vZGUsIHZub2RlLnNjb3BlSWQsIHNsb3RTY29wZUlkcywgcGFyZW50Q29tcG9uZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCBfX1ZVRV9QUk9EX0RFVlRPT0xTX18pIHtcclxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsLCAnX192bm9kZScsIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB2bm9kZSxcclxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWwsICdfX3Z1ZVBhcmVudENvbXBvbmVudCcsIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBwYXJlbnRDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpcnMpIHtcclxuICAgICAgICAgICAgaW52b2tlRGlyZWN0aXZlSG9vayh2bm9kZSwgbnVsbCwgcGFyZW50Q29tcG9uZW50LCAnYmVmb3JlTW91bnQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gIzE1ODMgRm9yIGluc2lkZSBzdXNwZW5zZSArIHN1c3BlbnNlIG5vdCByZXNvbHZlZCBjYXNlLCBlbnRlciBob29rIHNob3VsZCBjYWxsIHdoZW4gc3VzcGVuc2UgcmVzb2x2ZWRcclxuICAgICAgICAvLyAjMTY4OSBGb3IgaW5zaWRlIHN1c3BlbnNlICsgc3VzcGVuc2UgcmVzb2x2ZWQgY2FzZSwganVzdCBjYWxsIGl0XHJcbiAgICAgICAgY29uc3QgbmVlZENhbGxUcmFuc2l0aW9uSG9va3MgPSAoIXBhcmVudFN1c3BlbnNlIHx8IChwYXJlbnRTdXNwZW5zZSAmJiAhcGFyZW50U3VzcGVuc2UucGVuZGluZ0JyYW5jaCkpICYmXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24gJiZcclxuICAgICAgICAgICAgIXRyYW5zaXRpb24ucGVyc2lzdGVkO1xyXG4gICAgICAgIGlmIChuZWVkQ2FsbFRyYW5zaXRpb25Ib29rcykge1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uLmJlZm9yZUVudGVyKGVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaG9zdEluc2VydChlbCwgY29udGFpbmVyLCBhbmNob3IpO1xyXG4gICAgICAgIGlmICgodm5vZGVIb29rID0gcHJvcHMgJiYgcHJvcHMub25Wbm9kZU1vdW50ZWQpIHx8XHJcbiAgICAgICAgICAgIG5lZWRDYWxsVHJhbnNpdGlvbkhvb2tzIHx8XHJcbiAgICAgICAgICAgIGRpcnMpIHtcclxuICAgICAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHZub2RlSG9vayAmJiBpbnZva2VWTm9kZUhvb2sodm5vZGVIb29rLCBwYXJlbnRDb21wb25lbnQsIHZub2RlKTtcclxuICAgICAgICAgICAgICAgIG5lZWRDYWxsVHJhbnNpdGlvbkhvb2tzICYmIHRyYW5zaXRpb24uZW50ZXIoZWwpO1xyXG4gICAgICAgICAgICAgICAgZGlycyAmJiBpbnZva2VEaXJlY3RpdmVIb29rKHZub2RlLCBudWxsLCBwYXJlbnRDb21wb25lbnQsICdtb3VudGVkJyk7XHJcbiAgICAgICAgICAgIH0sIHBhcmVudFN1c3BlbnNlKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc2V0U2NvcGVJZCA9IChlbCwgdm5vZGUsIHNjb3BlSWQsIHNsb3RTY29wZUlkcywgcGFyZW50Q29tcG9uZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHNjb3BlSWQpIHtcclxuICAgICAgICAgICAgaG9zdFNldFNjb3BlSWQoZWwsIHNjb3BlSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2xvdFNjb3BlSWRzKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xvdFNjb3BlSWRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBob3N0U2V0U2NvcGVJZChlbCwgc2xvdFNjb3BlSWRzW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGFyZW50Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIGxldCBzdWJUcmVlID0gcGFyZW50Q29tcG9uZW50LnN1YlRyZWU7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICAgICAgICAgIHN1YlRyZWUucGF0Y2hGbGFnID4gMCAmJlxyXG4gICAgICAgICAgICAgICAgc3ViVHJlZS5wYXRjaEZsYWcgJiAyMDQ4IC8qIFBhdGNoRmxhZ3MuREVWX1JPT1RfRlJBR01FTlQgKi8pIHtcclxuICAgICAgICAgICAgICAgIHN1YlRyZWUgPVxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclNpbmdsZVJvb3Qoc3ViVHJlZS5jaGlsZHJlbikgfHwgc3ViVHJlZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodm5vZGUgPT09IHN1YlRyZWUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFZOb2RlID0gcGFyZW50Q29tcG9uZW50LnZub2RlO1xyXG4gICAgICAgICAgICAgICAgc2V0U2NvcGVJZChlbCwgcGFyZW50Vk5vZGUsIHBhcmVudFZOb2RlLnNjb3BlSWQsIHBhcmVudFZOb2RlLnNsb3RTY29wZUlkcywgcGFyZW50Q29tcG9uZW50LnBhcmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgbW91bnRDaGlsZHJlbiA9IChjaGlsZHJlbiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgc3RhcnQgPSAwKSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSAoY2hpbGRyZW5baV0gPSBvcHRpbWl6ZWRcclxuICAgICAgICAgICAgICAgID8gY2xvbmVJZk1vdW50ZWQoY2hpbGRyZW5baV0pXHJcbiAgICAgICAgICAgICAgICA6IG5vcm1hbGl6ZVZOb2RlKGNoaWxkcmVuW2ldKSk7XHJcbiAgICAgICAgICAgIHBhdGNoKG51bGwsIGNoaWxkLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcGF0Y2hFbGVtZW50ID0gKG4xLCBuMiwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZWwgPSAobjIuZWwgPSBuMS5lbCk7XHJcbiAgICAgICAgbGV0IHsgcGF0Y2hGbGFnLCBkeW5hbWljQ2hpbGRyZW4sIGRpcnMgfSA9IG4yO1xyXG4gICAgICAgIC8vICMxNDI2IHRha2UgdGhlIG9sZCB2bm9kZSdzIHBhdGNoIGZsYWcgaW50byBhY2NvdW50IHNpbmNlIHVzZXIgbWF5IGNsb25lIGFcclxuICAgICAgICAvLyBjb21waWxlci1nZW5lcmF0ZWQgdm5vZGUsIHdoaWNoIGRlLW9wdHMgdG8gRlVMTF9QUk9QU1xyXG4gICAgICAgIHBhdGNoRmxhZyB8PSBuMS5wYXRjaEZsYWcgJiAxNiAvKiBQYXRjaEZsYWdzLkZVTExfUFJPUFMgKi87XHJcbiAgICAgICAgY29uc3Qgb2xkUHJvcHMgPSBuMS5wcm9wcyB8fCBFTVBUWV9PQko7XHJcbiAgICAgICAgY29uc3QgbmV3UHJvcHMgPSBuMi5wcm9wcyB8fCBFTVBUWV9PQko7XHJcbiAgICAgICAgbGV0IHZub2RlSG9vaztcclxuICAgICAgICAvLyBkaXNhYmxlIHJlY3Vyc2UgaW4gYmVmb3JlVXBkYXRlIGhvb2tzXHJcbiAgICAgICAgcGFyZW50Q29tcG9uZW50ICYmIHRvZ2dsZVJlY3Vyc2UocGFyZW50Q29tcG9uZW50LCBmYWxzZSk7XHJcbiAgICAgICAgaWYgKCh2bm9kZUhvb2sgPSBuZXdQcm9wcy5vblZub2RlQmVmb3JlVXBkYXRlKSkge1xyXG4gICAgICAgICAgICBpbnZva2VWTm9kZUhvb2sodm5vZGVIb29rLCBwYXJlbnRDb21wb25lbnQsIG4yLCBuMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaXJzKSB7XHJcbiAgICAgICAgICAgIGludm9rZURpcmVjdGl2ZUhvb2sobjIsIG4xLCBwYXJlbnRDb21wb25lbnQsICdiZWZvcmVVcGRhdGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFyZW50Q29tcG9uZW50ICYmIHRvZ2dsZVJlY3Vyc2UocGFyZW50Q29tcG9uZW50LCB0cnVlKTtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGlzSG1yVXBkYXRpbmcpIHtcclxuICAgICAgICAgICAgLy8gSE1SIHVwZGF0ZWQsIGZvcmNlIGZ1bGwgZGlmZlxyXG4gICAgICAgICAgICBwYXRjaEZsYWcgPSAwO1xyXG4gICAgICAgICAgICBvcHRpbWl6ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgZHluYW1pY0NoaWxkcmVuID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYXJlQ2hpbGRyZW5TVkcgPSBpc1NWRyAmJiBuMi50eXBlICE9PSAnZm9yZWlnbk9iamVjdCc7XHJcbiAgICAgICAgaWYgKGR5bmFtaWNDaGlsZHJlbikge1xyXG4gICAgICAgICAgICBwYXRjaEJsb2NrQ2hpbGRyZW4objEuZHluYW1pY0NoaWxkcmVuLCBkeW5hbWljQ2hpbGRyZW4sIGVsLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBhcmVDaGlsZHJlblNWRywgc2xvdFNjb3BlSWRzKTtcclxuICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBwYXJlbnRDb21wb25lbnQgJiYgcGFyZW50Q29tcG9uZW50LnR5cGUuX19obXJJZCkge1xyXG4gICAgICAgICAgICAgICAgdHJhdmVyc2VTdGF0aWNDaGlsZHJlbihuMSwgbjIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCFvcHRpbWl6ZWQpIHtcclxuICAgICAgICAgICAgLy8gZnVsbCBkaWZmXHJcbiAgICAgICAgICAgIHBhdGNoQ2hpbGRyZW4objEsIG4yLCBlbCwgbnVsbCwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgYXJlQ2hpbGRyZW5TVkcsIHNsb3RTY29wZUlkcywgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGF0Y2hGbGFnID4gMCkge1xyXG4gICAgICAgICAgICAvLyB0aGUgcHJlc2VuY2Ugb2YgYSBwYXRjaEZsYWcgbWVhbnMgdGhpcyBlbGVtZW50J3MgcmVuZGVyIGNvZGUgd2FzXHJcbiAgICAgICAgICAgIC8vIGdlbmVyYXRlZCBieSB0aGUgY29tcGlsZXIgYW5kIGNhbiB0YWtlIHRoZSBmYXN0IHBhdGguXHJcbiAgICAgICAgICAgIC8vIGluIHRoaXMgcGF0aCBvbGQgbm9kZSBhbmQgbmV3IG5vZGUgYXJlIGd1YXJhbnRlZWQgdG8gaGF2ZSB0aGUgc2FtZSBzaGFwZVxyXG4gICAgICAgICAgICAvLyAoaS5lLiBhdCB0aGUgZXhhY3Qgc2FtZSBwb3NpdGlvbiBpbiB0aGUgc291cmNlIHRlbXBsYXRlKVxyXG4gICAgICAgICAgICBpZiAocGF0Y2hGbGFnICYgMTYgLyogUGF0Y2hGbGFncy5GVUxMX1BST1BTICovKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBlbGVtZW50IHByb3BzIGNvbnRhaW4gZHluYW1pYyBrZXlzLCBmdWxsIGRpZmYgbmVlZGVkXHJcbiAgICAgICAgICAgICAgICBwYXRjaFByb3BzKGVsLCBuMiwgb2xkUHJvcHMsIG5ld1Byb3BzLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjbGFzc1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBmbGFnIGlzIG1hdGNoZWQgd2hlbiB0aGUgZWxlbWVudCBoYXMgZHluYW1pYyBjbGFzcyBiaW5kaW5ncy5cclxuICAgICAgICAgICAgICAgIGlmIChwYXRjaEZsYWcgJiAyIC8qIFBhdGNoRmxhZ3MuQ0xBU1MgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAob2xkUHJvcHMuY2xhc3MgIT09IG5ld1Byb3BzLmNsYXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RQYXRjaFByb3AoZWwsICdjbGFzcycsIG51bGwsIG5ld1Byb3BzLmNsYXNzLCBpc1NWRyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gc3R5bGVcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMgZmxhZyBpcyBtYXRjaGVkIHdoZW4gdGhlIGVsZW1lbnQgaGFzIGR5bmFtaWMgc3R5bGUgYmluZGluZ3NcclxuICAgICAgICAgICAgICAgIGlmIChwYXRjaEZsYWcgJiA0IC8qIFBhdGNoRmxhZ3MuU1RZTEUgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBob3N0UGF0Y2hQcm9wKGVsLCAnc3R5bGUnLCBvbGRQcm9wcy5zdHlsZSwgbmV3UHJvcHMuc3R5bGUsIGlzU1ZHKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIHByb3BzXHJcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGZsYWcgaXMgbWF0Y2hlZCB3aGVuIHRoZSBlbGVtZW50IGhhcyBkeW5hbWljIHByb3AvYXR0ciBiaW5kaW5nc1xyXG4gICAgICAgICAgICAgICAgLy8gb3RoZXIgdGhhbiBjbGFzcyBhbmQgc3R5bGUuIFRoZSBrZXlzIG9mIGR5bmFtaWMgcHJvcC9hdHRycyBhcmUgc2F2ZWQgZm9yXHJcbiAgICAgICAgICAgICAgICAvLyBmYXN0ZXIgaXRlcmF0aW9uLlxyXG4gICAgICAgICAgICAgICAgLy8gTm90ZSBkeW5hbWljIGtleXMgbGlrZSA6W2Zvb109XCJiYXJcIiB3aWxsIGNhdXNlIHRoaXMgb3B0aW1pemF0aW9uIHRvXHJcbiAgICAgICAgICAgICAgICAvLyBiYWlsIG91dCBhbmQgZ28gdGhyb3VnaCBhIGZ1bGwgZGlmZiBiZWNhdXNlIHdlIG5lZWQgdG8gdW5zZXQgdGhlIG9sZCBrZXlcclxuICAgICAgICAgICAgICAgIGlmIChwYXRjaEZsYWcgJiA4IC8qIFBhdGNoRmxhZ3MuUFJPUFMgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZmxhZyBpcyBwcmVzZW50IHRoZW4gZHluYW1pY1Byb3BzIG11c3QgYmUgbm9uLW51bGxcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9wc1RvVXBkYXRlID0gbjIuZHluYW1pY1Byb3BzO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHNUb1VwZGF0ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBwcm9wc1RvVXBkYXRlW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gb2xkUHJvcHNba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IG5ld1Byb3BzW2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICMxNDcxIGZvcmNlIHBhdGNoIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ICE9PSBwcmV2IHx8IGtleSA9PT0gJ3ZhbHVlJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdFBhdGNoUHJvcChlbCwga2V5LCBwcmV2LCBuZXh0LCBpc1NWRywgbjEuY2hpbGRyZW4sIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIHVubW91bnRDaGlsZHJlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gdGV4dFxyXG4gICAgICAgICAgICAvLyBUaGlzIGZsYWcgaXMgbWF0Y2hlZCB3aGVuIHRoZSBlbGVtZW50IGhhcyBvbmx5IGR5bmFtaWMgdGV4dCBjaGlsZHJlbi5cclxuICAgICAgICAgICAgaWYgKHBhdGNoRmxhZyAmIDEgLyogUGF0Y2hGbGFncy5URVhUICovKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobjEuY2hpbGRyZW4gIT09IG4yLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaG9zdFNldEVsZW1lbnRUZXh0KGVsLCBuMi5jaGlsZHJlbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoIW9wdGltaXplZCAmJiBkeW5hbWljQ2hpbGRyZW4gPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAvLyB1bm9wdGltaXplZCwgZnVsbCBkaWZmXHJcbiAgICAgICAgICAgIHBhdGNoUHJvcHMoZWwsIG4yLCBvbGRQcm9wcywgbmV3UHJvcHMsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCh2bm9kZUhvb2sgPSBuZXdQcm9wcy5vblZub2RlVXBkYXRlZCkgfHwgZGlycykge1xyXG4gICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdm5vZGVIb29rICYmIGludm9rZVZOb2RlSG9vayh2bm9kZUhvb2ssIHBhcmVudENvbXBvbmVudCwgbjIsIG4xKTtcclxuICAgICAgICAgICAgICAgIGRpcnMgJiYgaW52b2tlRGlyZWN0aXZlSG9vayhuMiwgbjEsIHBhcmVudENvbXBvbmVudCwgJ3VwZGF0ZWQnKTtcclxuICAgICAgICAgICAgfSwgcGFyZW50U3VzcGVuc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvLyBUaGUgZmFzdCBwYXRoIGZvciBibG9ja3MuXHJcbiAgICBjb25zdCBwYXRjaEJsb2NrQ2hpbGRyZW4gPSAob2xkQ2hpbGRyZW4sIG5ld0NoaWxkcmVuLCBmYWxsYmFja0NvbnRhaW5lciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcykgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3Q2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgb2xkVk5vZGUgPSBvbGRDaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgY29uc3QgbmV3Vk5vZGUgPSBuZXdDaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBjb250YWluZXIgKHBhcmVudCBlbGVtZW50KSBmb3IgdGhlIHBhdGNoLlxyXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBcclxuICAgICAgICAgICAgLy8gb2xkVk5vZGUgbWF5IGJlIGFuIGVycm9yZWQgYXN5bmMgc2V0dXAoKSBjb21wb25lbnQgaW5zaWRlIFN1c3BlbnNlXHJcbiAgICAgICAgICAgIC8vIHdoaWNoIHdpbGwgbm90IGhhdmUgYSBtb3VudGVkIGVsZW1lbnRcclxuICAgICAgICAgICAgb2xkVk5vZGUuZWwgJiZcclxuICAgICAgICAgICAgICAgIC8vIC0gSW4gdGhlIGNhc2Ugb2YgYSBGcmFnbWVudCwgd2UgbmVlZCB0byBwcm92aWRlIHRoZSBhY3R1YWwgcGFyZW50XHJcbiAgICAgICAgICAgICAgICAvLyBvZiB0aGUgRnJhZ21lbnQgaXRzZWxmIHNvIGl0IGNhbiBtb3ZlIGl0cyBjaGlsZHJlbi5cclxuICAgICAgICAgICAgICAgIChvbGRWTm9kZS50eXBlID09PSBGcmFnbWVudCB8fFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIC0gSW4gdGhlIGNhc2Ugb2YgZGlmZmVyZW50IG5vZGVzLCB0aGVyZSBpcyBnb2luZyB0byBiZSBhIHJlcGxhY2VtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggYWxzbyByZXF1aXJlcyB0aGUgY29ycmVjdCBwYXJlbnQgY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgIWlzU2FtZVZOb2RlVHlwZShvbGRWTm9kZSwgbmV3Vk5vZGUpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gLSBJbiB0aGUgY2FzZSBvZiBhIGNvbXBvbmVudCwgaXQgY291bGQgY29udGFpbiBhbnl0aGluZy5cclxuICAgICAgICAgICAgICAgICAgICBvbGRWTm9kZS5zaGFwZUZsYWcgJiAoNiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVCAqLyB8IDY0IC8qIFNoYXBlRmxhZ3MuVEVMRVBPUlQgKi8pKVxyXG4gICAgICAgICAgICAgICAgPyBob3N0UGFyZW50Tm9kZShvbGRWTm9kZS5lbClcclxuICAgICAgICAgICAgICAgIDogLy8gSW4gb3RoZXIgY2FzZXMsIHRoZSBwYXJlbnQgY29udGFpbmVyIGlzIG5vdCBhY3R1YWxseSB1c2VkIHNvIHdlXHJcbiAgICAgICAgICAgICAgICAgICAgLy8ganVzdCBwYXNzIHRoZSBibG9jayBlbGVtZW50IGhlcmUgdG8gYXZvaWQgYSBET00gcGFyZW50Tm9kZSBjYWxsLlxyXG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrQ29udGFpbmVyO1xyXG4gICAgICAgICAgICBwYXRjaChvbGRWTm9kZSwgbmV3Vk5vZGUsIGNvbnRhaW5lciwgbnVsbCwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBhdGNoUHJvcHMgPSAoZWwsIHZub2RlLCBvbGRQcm9wcywgbmV3UHJvcHMsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHKSA9PiB7XHJcbiAgICAgICAgaWYgKG9sZFByb3BzICE9PSBuZXdQcm9wcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuZXdQcm9wcykge1xyXG4gICAgICAgICAgICAgICAgLy8gZW1wdHkgc3RyaW5nIGlzIG5vdCB2YWxpZCBwcm9wXHJcbiAgICAgICAgICAgICAgICBpZiAoaXNSZXNlcnZlZFByb3Aoa2V5KSlcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSBuZXdQcm9wc1trZXldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJldiA9IG9sZFByb3BzW2tleV07XHJcbiAgICAgICAgICAgICAgICAvLyBkZWZlciBwYXRjaGluZyB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgaWYgKG5leHQgIT09IHByZXYgJiYga2V5ICE9PSAndmFsdWUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaG9zdFBhdGNoUHJvcChlbCwga2V5LCBwcmV2LCBuZXh0LCBpc1NWRywgdm5vZGUuY2hpbGRyZW4sIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIHVubW91bnRDaGlsZHJlbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKG9sZFByb3BzICE9PSBFTVBUWV9PQkopIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9sZFByb3BzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1Jlc2VydmVkUHJvcChrZXkpICYmICEoa2V5IGluIG5ld1Byb3BzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBob3N0UGF0Y2hQcm9wKGVsLCBrZXksIG9sZFByb3BzW2tleV0sIG51bGwsIGlzU1ZHLCB2bm9kZS5jaGlsZHJlbiwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgdW5tb3VudENoaWxkcmVuKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCd2YWx1ZScgaW4gbmV3UHJvcHMpIHtcclxuICAgICAgICAgICAgICAgIGhvc3RQYXRjaFByb3AoZWwsICd2YWx1ZScsIG9sZFByb3BzLnZhbHVlLCBuZXdQcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcHJvY2Vzc0ZyYWdtZW50ID0gKG4xLCBuMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZyYWdtZW50U3RhcnRBbmNob3IgPSAobjIuZWwgPSBuMSA/IG4xLmVsIDogaG9zdENyZWF0ZVRleHQoJycpKTtcclxuICAgICAgICBjb25zdCBmcmFnbWVudEVuZEFuY2hvciA9IChuMi5hbmNob3IgPSBuMSA/IG4xLmFuY2hvciA6IGhvc3RDcmVhdGVUZXh0KCcnKSk7XHJcbiAgICAgICAgbGV0IHsgcGF0Y2hGbGFnLCBkeW5hbWljQ2hpbGRyZW4sIHNsb3RTY29wZUlkczogZnJhZ21lbnRTbG90U2NvcGVJZHMgfSA9IG4yO1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICAgICAgLy8gIzU1MjMgZGV2IHJvb3QgZnJhZ21lbnQgbWF5IGluaGVyaXQgZGlyZWN0aXZlc1xyXG4gICAgICAgICAgICAoaXNIbXJVcGRhdGluZyB8fCBwYXRjaEZsYWcgJiAyMDQ4IC8qIFBhdGNoRmxhZ3MuREVWX1JPT1RfRlJBR01FTlQgKi8pKSB7XHJcbiAgICAgICAgICAgIC8vIEhNUiB1cGRhdGVkIC8gRGV2IHJvb3QgZnJhZ21lbnQgKHcvIGNvbW1lbnRzKSwgZm9yY2UgZnVsbCBkaWZmXHJcbiAgICAgICAgICAgIHBhdGNoRmxhZyA9IDA7XHJcbiAgICAgICAgICAgIG9wdGltaXplZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBkeW5hbWljQ2hpbGRyZW4gPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjaGVjayBpZiB0aGlzIGlzIGEgc2xvdCBmcmFnbWVudCB3aXRoIDpzbG90dGVkIHNjb3BlIGlkc1xyXG4gICAgICAgIGlmIChmcmFnbWVudFNsb3RTY29wZUlkcykge1xyXG4gICAgICAgICAgICBzbG90U2NvcGVJZHMgPSBzbG90U2NvcGVJZHNcclxuICAgICAgICAgICAgICAgID8gc2xvdFNjb3BlSWRzLmNvbmNhdChmcmFnbWVudFNsb3RTY29wZUlkcylcclxuICAgICAgICAgICAgICAgIDogZnJhZ21lbnRTbG90U2NvcGVJZHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuMSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGhvc3RJbnNlcnQoZnJhZ21lbnRTdGFydEFuY2hvciwgY29udGFpbmVyLCBhbmNob3IpO1xyXG4gICAgICAgICAgICBob3N0SW5zZXJ0KGZyYWdtZW50RW5kQW5jaG9yLCBjb250YWluZXIsIGFuY2hvcik7XHJcbiAgICAgICAgICAgIC8vIGEgZnJhZ21lbnQgY2FuIG9ubHkgaGF2ZSBhcnJheSBjaGlsZHJlblxyXG4gICAgICAgICAgICAvLyBzaW5jZSB0aGV5IGFyZSBlaXRoZXIgZ2VuZXJhdGVkIGJ5IHRoZSBjb21waWxlciwgb3IgaW1wbGljaXRseSBjcmVhdGVkXHJcbiAgICAgICAgICAgIC8vIGZyb20gYXJyYXlzLlxyXG4gICAgICAgICAgICBtb3VudENoaWxkcmVuKG4yLmNoaWxkcmVuLCBjb250YWluZXIsIGZyYWdtZW50RW5kQW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHBhdGNoRmxhZyA+IDAgJiZcclxuICAgICAgICAgICAgICAgIHBhdGNoRmxhZyAmIDY0IC8qIFBhdGNoRmxhZ3MuU1RBQkxFX0ZSQUdNRU5UICovICYmXHJcbiAgICAgICAgICAgICAgICBkeW5hbWljQ2hpbGRyZW4gJiZcclxuICAgICAgICAgICAgICAgIC8vICMyNzE1IHRoZSBwcmV2aW91cyBmcmFnbWVudCBjb3VsZCd2ZSBiZWVuIGEgQkFJTGVkIG9uZSBhcyBhIHJlc3VsdFxyXG4gICAgICAgICAgICAgICAgLy8gb2YgcmVuZGVyU2xvdCgpIHdpdGggbm8gdmFsaWQgY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgIG4xLmR5bmFtaWNDaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgLy8gYSBzdGFibGUgZnJhZ21lbnQgKHRlbXBsYXRlIHJvb3Qgb3IgPHRlbXBsYXRlIHYtZm9yPikgZG9lc24ndCBuZWVkIHRvXHJcbiAgICAgICAgICAgICAgICAvLyBwYXRjaCBjaGlsZHJlbiBvcmRlciwgYnV0IGl0IG1heSBjb250YWluIGR5bmFtaWNDaGlsZHJlbi5cclxuICAgICAgICAgICAgICAgIHBhdGNoQmxvY2tDaGlsZHJlbihuMS5keW5hbWljQ2hpbGRyZW4sIGR5bmFtaWNDaGlsZHJlbiwgY29udGFpbmVyLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzKTtcclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgcGFyZW50Q29tcG9uZW50ICYmIHBhcmVudENvbXBvbmVudC50eXBlLl9faG1ySWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmF2ZXJzZVN0YXRpY0NoaWxkcmVuKG4xLCBuMik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgICAgICAgIC8vICMyMDgwIGlmIHRoZSBzdGFibGUgZnJhZ21lbnQgaGFzIGEga2V5LCBpdCdzIGEgPHRlbXBsYXRlIHYtZm9yPiB0aGF0IG1heVxyXG4gICAgICAgICAgICAgICAgLy8gIGdldCBtb3ZlZCBhcm91bmQuIE1ha2Ugc3VyZSBhbGwgcm9vdCBsZXZlbCB2bm9kZXMgaW5oZXJpdCBlbC5cclxuICAgICAgICAgICAgICAgIC8vICMyMTM0IG9yIGlmIGl0J3MgYSBjb21wb25lbnQgcm9vdCwgaXQgbWF5IGFsc28gZ2V0IG1vdmVkIGFyb3VuZFxyXG4gICAgICAgICAgICAgICAgLy8gYXMgdGhlIGNvbXBvbmVudCBpcyBiZWluZyBtb3ZlZC5cclxuICAgICAgICAgICAgICAgIG4yLmtleSAhPSBudWxsIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHBhcmVudENvbXBvbmVudCAmJiBuMiA9PT0gcGFyZW50Q29tcG9uZW50LnN1YlRyZWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhdmVyc2VTdGF0aWNDaGlsZHJlbihuMSwgbjIsIHRydWUgLyogc2hhbGxvdyAqLyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBrZXllZCAvIHVua2V5ZWQsIG9yIG1hbnVhbCBmcmFnbWVudHMuXHJcbiAgICAgICAgICAgICAgICAvLyBmb3Iga2V5ZWQgJiB1bmtleWVkLCBzaW5jZSB0aGV5IGFyZSBjb21waWxlciBnZW5lcmF0ZWQgZnJvbSB2LWZvcixcclxuICAgICAgICAgICAgICAgIC8vIGVhY2ggY2hpbGQgaXMgZ3VhcmFudGVlZCB0byBiZSBhIGJsb2NrIHNvIHRoZSBmcmFnbWVudCB3aWxsIG5ldmVyXHJcbiAgICAgICAgICAgICAgICAvLyBoYXZlIGR5bmFtaWNDaGlsZHJlbi5cclxuICAgICAgICAgICAgICAgIHBhdGNoQ2hpbGRyZW4objEsIG4yLCBjb250YWluZXIsIGZyYWdtZW50RW5kQW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHByb2Nlc3NDb21wb25lbnQgPSAobjEsIG4yLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKSA9PiB7XHJcbiAgICAgICAgbjIuc2xvdFNjb3BlSWRzID0gc2xvdFNjb3BlSWRzO1xyXG4gICAgICAgIGlmIChuMSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmIChuMi5zaGFwZUZsYWcgJiA1MTIgLyogU2hhcGVGbGFncy5DT01QT05FTlRfS0VQVF9BTElWRSAqLykge1xyXG4gICAgICAgICAgICAgICAgcGFyZW50Q29tcG9uZW50LmN0eC5hY3RpdmF0ZShuMiwgY29udGFpbmVyLCBhbmNob3IsIGlzU1ZHLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbW91bnRDb21wb25lbnQobjIsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50KG4xLCBuMiwgb3B0aW1pemVkKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgbW91bnRDb21wb25lbnQgPSAoaW5pdGlhbFZOb2RlLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIG9wdGltaXplZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gKGluaXRpYWxWTm9kZS5jb21wb25lbnQgPSBjcmVhdGVDb21wb25lbnRJbnN0YW5jZShpbml0aWFsVk5vZGUsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UpKTtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGluc3RhbmNlLnR5cGUuX19obXJJZCkge1xyXG4gICAgICAgICAgICByZWdpc3RlckhNUihpbnN0YW5jZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgcHVzaFdhcm5pbmdDb250ZXh0KGluaXRpYWxWTm9kZSk7XHJcbiAgICAgICAgICAgIHN0YXJ0TWVhc3VyZShpbnN0YW5jZSwgYG1vdW50YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGluamVjdCByZW5kZXJlciBpbnRlcm5hbHMgZm9yIGtlZXBBbGl2ZVxyXG4gICAgICAgIGlmIChpc0tlZXBBbGl2ZShpbml0aWFsVk5vZGUpKSB7XHJcbiAgICAgICAgICAgIGluc3RhbmNlLmN0eC5yZW5kZXJlciA9IGludGVybmFscztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gcmVzb2x2ZSBwcm9wcyBhbmQgc2xvdHMgZm9yIHNldHVwIGNvbnRleHRcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0TWVhc3VyZShpbnN0YW5jZSwgYGluaXRgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZXR1cENvbXBvbmVudChpbnN0YW5jZSk7XHJcbiAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgIGVuZE1lYXN1cmUoaW5zdGFuY2UsIGBpbml0YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gc2V0dXAoKSBpcyBhc3luYy4gVGhpcyBjb21wb25lbnQgcmVsaWVzIG9uIGFzeW5jIGxvZ2ljIHRvIGJlIHJlc29sdmVkXHJcbiAgICAgICAgLy8gYmVmb3JlIHByb2NlZWRpbmdcclxuICAgICAgICBpZiAoaW5zdGFuY2UuYXN5bmNEZXApIHtcclxuICAgICAgICAgICAgcGFyZW50U3VzcGVuc2UgJiYgcGFyZW50U3VzcGVuc2UucmVnaXN0ZXJEZXAoaW5zdGFuY2UsIHNldHVwUmVuZGVyRWZmZWN0KTtcclxuICAgICAgICAgICAgLy8gR2l2ZSBpdCBhIHBsYWNlaG9sZGVyIGlmIHRoaXMgaXMgbm90IGh5ZHJhdGlvblxyXG4gICAgICAgICAgICAvLyBUT0RPIGhhbmRsZSBzZWxmLWRlZmluZWQgZmFsbGJhY2tcclxuICAgICAgICAgICAgaWYgKCFpbml0aWFsVk5vZGUuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gKGluc3RhbmNlLnN1YlRyZWUgPSBjcmVhdGVWTm9kZShDb21tZW50KSk7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWVudE5vZGUobnVsbCwgcGxhY2Vob2xkZXIsIGNvbnRhaW5lciwgYW5jaG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldHVwUmVuZGVyRWZmZWN0KGluc3RhbmNlLCBpbml0aWFsVk5vZGUsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIG9wdGltaXplZCk7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICBwb3BXYXJuaW5nQ29udGV4dCgpO1xyXG4gICAgICAgICAgICBlbmRNZWFzdXJlKGluc3RhbmNlLCBgbW91bnRgKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXBkYXRlQ29tcG9uZW50ID0gKG4xLCBuMiwgb3B0aW1pemVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSAobjIuY29tcG9uZW50ID0gbjEuY29tcG9uZW50KTtcclxuICAgICAgICBpZiAoc2hvdWxkVXBkYXRlQ29tcG9uZW50KG4xLCBuMiwgb3B0aW1pemVkKSkge1xyXG4gICAgICAgICAgICBpZiAoaW5zdGFuY2UuYXN5bmNEZXAgJiZcclxuICAgICAgICAgICAgICAgICFpbnN0YW5jZS5hc3luY1Jlc29sdmVkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBhc3luYyAmIHN0aWxsIHBlbmRpbmcgLSBqdXN0IHVwZGF0ZSBwcm9wcyBhbmQgc2xvdHNcclxuICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBjb21wb25lbnQncyByZWFjdGl2ZSBlZmZlY3QgZm9yIHJlbmRlciBpc24ndCBzZXQtdXAgeWV0XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHVzaFdhcm5pbmdDb250ZXh0KG4yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbXBvbmVudFByZVJlbmRlcihpbnN0YW5jZSwgbjIsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9wV2FybmluZ0NvbnRleHQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIG5vcm1hbCB1cGRhdGVcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlLm5leHQgPSBuMjtcclxuICAgICAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlIGNoaWxkIGNvbXBvbmVudCBpcyBhbHNvIHF1ZXVlZCwgcmVtb3ZlIGl0IHRvIGF2b2lkXHJcbiAgICAgICAgICAgICAgICAvLyBkb3VibGUgdXBkYXRpbmcgdGhlIHNhbWUgY2hpbGQgY29tcG9uZW50IGluIHRoZSBzYW1lIGZsdXNoLlxyXG4gICAgICAgICAgICAgICAgaW52YWxpZGF0ZUpvYihpbnN0YW5jZS51cGRhdGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gaW5zdGFuY2UudXBkYXRlIGlzIHRoZSByZWFjdGl2ZSBlZmZlY3QuXHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS51cGRhdGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gbm8gdXBkYXRlIG5lZWRlZC4ganVzdCBjb3B5IG92ZXIgcHJvcGVydGllc1xyXG4gICAgICAgICAgICBuMi5lbCA9IG4xLmVsO1xyXG4gICAgICAgICAgICBpbnN0YW5jZS52bm9kZSA9IG4yO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBzZXR1cFJlbmRlckVmZmVjdCA9IChpbnN0YW5jZSwgaW5pdGlhbFZOb2RlLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBvcHRpbWl6ZWQpID0+IHtcclxuICAgICAgICBjb25zdCBjb21wb25lbnRVcGRhdGVGbiA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFpbnN0YW5jZS5pc01vdW50ZWQpIHtcclxuICAgICAgICAgICAgICAgIGxldCB2bm9kZUhvb2s7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGVsLCBwcm9wcyB9ID0gaW5pdGlhbFZOb2RlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBibSwgbSwgcGFyZW50IH0gPSBpbnN0YW5jZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQXN5bmNXcmFwcGVyVk5vZGUgPSBpc0FzeW5jV3JhcHBlcihpbml0aWFsVk5vZGUpO1xyXG4gICAgICAgICAgICAgICAgdG9nZ2xlUmVjdXJzZShpbnN0YW5jZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgLy8gYmVmb3JlTW91bnQgaG9va1xyXG4gICAgICAgICAgICAgICAgaWYgKGJtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW52b2tlQXJyYXlGbnMoYm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gb25Wbm9kZUJlZm9yZU1vdW50XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXN5bmNXcmFwcGVyVk5vZGUgJiZcclxuICAgICAgICAgICAgICAgICAgICAodm5vZGVIb29rID0gcHJvcHMgJiYgcHJvcHMub25Wbm9kZUJlZm9yZU1vdW50KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9rZVZOb2RlSG9vayh2bm9kZUhvb2ssIHBhcmVudCwgaW5pdGlhbFZOb2RlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRvZ2dsZVJlY3Vyc2UoaW5zdGFuY2UsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVsICYmIGh5ZHJhdGVOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdm5vZGUgaGFzIGFkb3B0ZWQgaG9zdCBub2RlIC0gcGVyZm9ybSBoeWRyYXRpb24gaW5zdGVhZCBvZiBtb3VudC5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoeWRyYXRlU3ViVHJlZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRNZWFzdXJlKGluc3RhbmNlLCBgcmVuZGVyYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uuc3ViVHJlZSA9IHJlbmRlckNvbXBvbmVudFJvb3QoaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRNZWFzdXJlKGluc3RhbmNlLCBgcmVuZGVyYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRNZWFzdXJlKGluc3RhbmNlLCBgaHlkcmF0ZWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVOb2RlKGVsLCBpbnN0YW5jZS5zdWJUcmVlLCBpbnN0YW5jZSwgcGFyZW50U3VzcGVuc2UsIG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRNZWFzdXJlKGluc3RhbmNlLCBgaHlkcmF0ZWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBc3luY1dyYXBwZXJWTm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVk5vZGUudHlwZS5fX2FzeW5jTG9hZGVyKCkudGhlbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90ZTogd2UgYXJlIG1vdmluZyB0aGUgcmVuZGVyIGNhbGwgaW50byBhbiBhc3luYyBjYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggbWVhbnMgaXQgd29uJ3QgdHJhY2sgZGVwZW5kZW5jaWVzIC0gYnV0IGl0J3Mgb2sgYmVjYXVzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhIHNlcnZlci1yZW5kZXJlZCBhc3luYyB3cmFwcGVyIGlzIGFscmVhZHkgaW4gcmVzb2x2ZWQgc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGl0IHdpbGwgbmV2ZXIgbmVlZCB0byBjaGFuZ2UuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICgpID0+ICFpbnN0YW5jZS5pc1VubW91bnRlZCAmJiBoeWRyYXRlU3ViVHJlZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVTdWJUcmVlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydE1lYXN1cmUoaW5zdGFuY2UsIGByZW5kZXJgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ViVHJlZSA9IChpbnN0YW5jZS5zdWJUcmVlID0gcmVuZGVyQ29tcG9uZW50Um9vdChpbnN0YW5jZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kTWVhc3VyZShpbnN0YW5jZSwgYHJlbmRlcmApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TWVhc3VyZShpbnN0YW5jZSwgYHBhdGNoYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHBhdGNoKG51bGwsIHN1YlRyZWUsIGNvbnRhaW5lciwgYW5jaG9yLCBpbnN0YW5jZSwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1lYXN1cmUoaW5zdGFuY2UsIGBwYXRjaGApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsVk5vZGUuZWwgPSBzdWJUcmVlLmVsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gbW91bnRlZCBob29rXHJcbiAgICAgICAgICAgICAgICBpZiAobSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlUG9zdFJlbmRlckVmZmVjdChtLCBwYXJlbnRTdXNwZW5zZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBvblZub2RlTW91bnRlZFxyXG4gICAgICAgICAgICAgICAgaWYgKCFpc0FzeW5jV3JhcHBlclZOb2RlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKHZub2RlSG9vayA9IHByb3BzICYmIHByb3BzLm9uVm5vZGVNb3VudGVkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNjb3BlZEluaXRpYWxWTm9kZSA9IGluaXRpYWxWTm9kZTtcclxuICAgICAgICAgICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gaW52b2tlVk5vZGVIb29rKHZub2RlSG9vaywgcGFyZW50LCBzY29wZWRJbml0aWFsVk5vZGUpLCBwYXJlbnRTdXNwZW5zZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBhY3RpdmF0ZWQgaG9vayBmb3Iga2VlcC1hbGl2ZSByb290cy5cclxuICAgICAgICAgICAgICAgIC8vICMxNzQyIGFjdGl2YXRlZCBob29rIG11c3QgYmUgYWNjZXNzZWQgYWZ0ZXIgZmlyc3QgcmVuZGVyXHJcbiAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aGUgaG9vayBtYXkgYmUgaW5qZWN0ZWQgYnkgYSBjaGlsZCBrZWVwLWFsaXZlXHJcbiAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbFZOb2RlLnNoYXBlRmxhZyAmIDI1NiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVF9TSE9VTERfS0VFUF9BTElWRSAqLyB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChwYXJlbnQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNBc3luY1dyYXBwZXIocGFyZW50LnZub2RlKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQudm5vZGUuc2hhcGVGbGFnICYgMjU2IC8qIFNoYXBlRmxhZ3MuQ09NUE9ORU5UX1NIT1VMRF9LRUVQX0FMSVZFICovKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmEgJiYgcXVldWVQb3N0UmVuZGVyRWZmZWN0KGluc3RhbmNlLmEsIHBhcmVudFN1c3BlbnNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluc3RhbmNlLmlzTW91bnRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHx8IF9fVlVFX1BST0RfREVWVE9PTFNfXykge1xyXG4gICAgICAgICAgICAgICAgICAgIGRldnRvb2xzQ29tcG9uZW50QWRkZWQoaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gIzI0NTg6IGRlZmVyZW5jZSBtb3VudC1vbmx5IG9iamVjdCBwYXJhbWV0ZXJzIHRvIHByZXZlbnQgbWVtbGVha3NcclxuICAgICAgICAgICAgICAgIGluaXRpYWxWTm9kZSA9IGNvbnRhaW5lciA9IGFuY2hvciA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyB1cGRhdGVDb21wb25lbnRcclxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IG11dGF0aW9uIG9mIGNvbXBvbmVudCdzIG93biBzdGF0ZSAobmV4dDogbnVsbClcclxuICAgICAgICAgICAgICAgIC8vIE9SIHBhcmVudCBjYWxsaW5nIHByb2Nlc3NDb21wb25lbnQgKG5leHQ6IFZOb2RlKVxyXG4gICAgICAgICAgICAgICAgbGV0IHsgbmV4dCwgYnUsIHUsIHBhcmVudCwgdm5vZGUgfSA9IGluc3RhbmNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IG9yaWdpbk5leHQgPSBuZXh0O1xyXG4gICAgICAgICAgICAgICAgbGV0IHZub2RlSG9vaztcclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBwdXNoV2FybmluZ0NvbnRleHQobmV4dCB8fCBpbnN0YW5jZS52bm9kZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBEaXNhbGxvdyBjb21wb25lbnQgZWZmZWN0IHJlY3Vyc2lvbiBkdXJpbmcgcHJlLWxpZmVjeWNsZSBob29rcy5cclxuICAgICAgICAgICAgICAgIHRvZ2dsZVJlY3Vyc2UoaW5zdGFuY2UsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXh0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dC5lbCA9IHZub2RlLmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUNvbXBvbmVudFByZVJlbmRlcihpbnN0YW5jZSwgbmV4dCwgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSB2bm9kZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGJlZm9yZVVwZGF0ZSBob29rXHJcbiAgICAgICAgICAgICAgICBpZiAoYnUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbnZva2VBcnJheUZucyhidSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBvblZub2RlQmVmb3JlVXBkYXRlXHJcbiAgICAgICAgICAgICAgICBpZiAoKHZub2RlSG9vayA9IG5leHQucHJvcHMgJiYgbmV4dC5wcm9wcy5vblZub2RlQmVmb3JlVXBkYXRlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGludm9rZVZOb2RlSG9vayh2bm9kZUhvb2ssIHBhcmVudCwgbmV4dCwgdm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdG9nZ2xlUmVjdXJzZShpbnN0YW5jZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAvLyByZW5kZXJcclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGFydE1lYXN1cmUoaW5zdGFuY2UsIGByZW5kZXJgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRUcmVlID0gcmVuZGVyQ29tcG9uZW50Um9vdChpbnN0YW5jZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW5kTWVhc3VyZShpbnN0YW5jZSwgYHJlbmRlcmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJldlRyZWUgPSBpbnN0YW5jZS5zdWJUcmVlO1xyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2Uuc3ViVHJlZSA9IG5leHRUcmVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0TWVhc3VyZShpbnN0YW5jZSwgYHBhdGNoYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwYXRjaChwcmV2VHJlZSwgbmV4dFRyZWUsIFxyXG4gICAgICAgICAgICAgICAgLy8gcGFyZW50IG1heSBoYXZlIGNoYW5nZWQgaWYgaXQncyBpbiBhIHRlbGVwb3J0XHJcbiAgICAgICAgICAgICAgICBob3N0UGFyZW50Tm9kZShwcmV2VHJlZS5lbCksIFxyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yIG1heSBoYXZlIGNoYW5nZWQgaWYgaXQncyBpbiBhIGZyYWdtZW50XHJcbiAgICAgICAgICAgICAgICBnZXROZXh0SG9zdE5vZGUocHJldlRyZWUpLCBpbnN0YW5jZSwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHKTtcclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbmRNZWFzdXJlKGluc3RhbmNlLCBgcGF0Y2hgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG5leHQuZWwgPSBuZXh0VHJlZS5lbDtcclxuICAgICAgICAgICAgICAgIGlmIChvcmlnaW5OZXh0ID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZi10cmlnZ2VyZWQgdXBkYXRlLiBJbiBjYXNlIG9mIEhPQywgdXBkYXRlIHBhcmVudCBjb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAvLyB2bm9kZSBlbC4gSE9DIGlzIGluZGljYXRlZCBieSBwYXJlbnQgaW5zdGFuY2UncyBzdWJUcmVlIHBvaW50aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gY2hpbGQgY29tcG9uZW50J3Mgdm5vZGVcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVIT0NIb3N0RWwoaW5zdGFuY2UsIG5leHRUcmVlLmVsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZWQgaG9va1xyXG4gICAgICAgICAgICAgICAgaWYgKHUpIHtcclxuICAgICAgICAgICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QodSwgcGFyZW50U3VzcGVuc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gb25Wbm9kZVVwZGF0ZWRcclxuICAgICAgICAgICAgICAgIGlmICgodm5vZGVIb29rID0gbmV4dC5wcm9wcyAmJiBuZXh0LnByb3BzLm9uVm5vZGVVcGRhdGVkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlUG9zdFJlbmRlckVmZmVjdCgoKSA9PiBpbnZva2VWTm9kZUhvb2sodm5vZGVIb29rLCBwYXJlbnQsIG5leHQsIHZub2RlKSwgcGFyZW50U3VzcGVuc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB8fCBfX1ZVRV9QUk9EX0RFVlRPT0xTX18pIHtcclxuICAgICAgICAgICAgICAgICAgICBkZXZ0b29sc0NvbXBvbmVudFVwZGF0ZWQoaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvcFdhcm5pbmdDb250ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIGNyZWF0ZSByZWFjdGl2ZSBlZmZlY3QgZm9yIHJlbmRlcmluZ1xyXG4gICAgICAgIGNvbnN0IGVmZmVjdCA9IChpbnN0YW5jZS5lZmZlY3QgPSBuZXcgUmVhY3RpdmVFZmZlY3QoY29tcG9uZW50VXBkYXRlRm4sICgpID0+IHF1ZXVlSm9iKHVwZGF0ZSksIGluc3RhbmNlLnNjb3BlIC8vIHRyYWNrIGl0IGluIGNvbXBvbmVudCdzIGVmZmVjdCBzY29wZVxyXG4gICAgICAgICkpO1xyXG4gICAgICAgIGNvbnN0IHVwZGF0ZSA9IChpbnN0YW5jZS51cGRhdGUgPSAoKSA9PiBlZmZlY3QucnVuKCkpO1xyXG4gICAgICAgIHVwZGF0ZS5pZCA9IGluc3RhbmNlLnVpZDtcclxuICAgICAgICAvLyBhbGxvd1JlY3Vyc2VcclxuICAgICAgICAvLyAjMTgwMSwgIzIwNDMgY29tcG9uZW50IHJlbmRlciBlZmZlY3RzIHNob3VsZCBhbGxvdyByZWN1cnNpdmUgdXBkYXRlc1xyXG4gICAgICAgIHRvZ2dsZVJlY3Vyc2UoaW5zdGFuY2UsIHRydWUpO1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgZWZmZWN0Lm9uVHJhY2sgPSBpbnN0YW5jZS5ydGNcclxuICAgICAgICAgICAgICAgID8gZSA9PiBpbnZva2VBcnJheUZucyhpbnN0YW5jZS5ydGMsIGUpXHJcbiAgICAgICAgICAgICAgICA6IHZvaWQgMDtcclxuICAgICAgICAgICAgZWZmZWN0Lm9uVHJpZ2dlciA9IGluc3RhbmNlLnJ0Z1xyXG4gICAgICAgICAgICAgICAgPyBlID0+IGludm9rZUFycmF5Rm5zKGluc3RhbmNlLnJ0ZywgZSlcclxuICAgICAgICAgICAgICAgIDogdm9pZCAwO1xyXG4gICAgICAgICAgICB1cGRhdGUub3duZXJJbnN0YW5jZSA9IGluc3RhbmNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB1cGRhdGUoKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB1cGRhdGVDb21wb25lbnRQcmVSZW5kZXIgPSAoaW5zdGFuY2UsIG5leHRWTm9kZSwgb3B0aW1pemVkKSA9PiB7XHJcbiAgICAgICAgbmV4dFZOb2RlLmNvbXBvbmVudCA9IGluc3RhbmNlO1xyXG4gICAgICAgIGNvbnN0IHByZXZQcm9wcyA9IGluc3RhbmNlLnZub2RlLnByb3BzO1xyXG4gICAgICAgIGluc3RhbmNlLnZub2RlID0gbmV4dFZOb2RlO1xyXG4gICAgICAgIGluc3RhbmNlLm5leHQgPSBudWxsO1xyXG4gICAgICAgIHVwZGF0ZVByb3BzKGluc3RhbmNlLCBuZXh0Vk5vZGUucHJvcHMsIHByZXZQcm9wcywgb3B0aW1pemVkKTtcclxuICAgICAgICB1cGRhdGVTbG90cyhpbnN0YW5jZSwgbmV4dFZOb2RlLmNoaWxkcmVuLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgIHBhdXNlVHJhY2tpbmcoKTtcclxuICAgICAgICAvLyBwcm9wcyB1cGRhdGUgbWF5IGhhdmUgdHJpZ2dlcmVkIHByZS1mbHVzaCB3YXRjaGVycy5cclxuICAgICAgICAvLyBmbHVzaCB0aGVtIGJlZm9yZSB0aGUgcmVuZGVyIHVwZGF0ZS5cclxuICAgICAgICBmbHVzaFByZUZsdXNoQ2JzKCk7XHJcbiAgICAgICAgcmVzZXRUcmFja2luZygpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IHBhdGNoQ2hpbGRyZW4gPSAobjEsIG4yLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkID0gZmFsc2UpID0+IHtcclxuICAgICAgICBjb25zdCBjMSA9IG4xICYmIG4xLmNoaWxkcmVuO1xyXG4gICAgICAgIGNvbnN0IHByZXZTaGFwZUZsYWcgPSBuMSA/IG4xLnNoYXBlRmxhZyA6IDA7XHJcbiAgICAgICAgY29uc3QgYzIgPSBuMi5jaGlsZHJlbjtcclxuICAgICAgICBjb25zdCB7IHBhdGNoRmxhZywgc2hhcGVGbGFnIH0gPSBuMjtcclxuICAgICAgICAvLyBmYXN0IHBhdGhcclxuICAgICAgICBpZiAocGF0Y2hGbGFnID4gMCkge1xyXG4gICAgICAgICAgICBpZiAocGF0Y2hGbGFnICYgMTI4IC8qIFBhdGNoRmxhZ3MuS0VZRURfRlJBR01FTlQgKi8pIHtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMgY291bGQgYmUgZWl0aGVyIGZ1bGx5LWtleWVkIG9yIG1peGVkIChzb21lIGtleWVkIHNvbWUgbm90KVxyXG4gICAgICAgICAgICAgICAgLy8gcHJlc2VuY2Ugb2YgcGF0Y2hGbGFnIG1lYW5zIGNoaWxkcmVuIGFyZSBndWFyYW50ZWVkIHRvIGJlIGFycmF5c1xyXG4gICAgICAgICAgICAgICAgcGF0Y2hLZXllZENoaWxkcmVuKGMxLCBjMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAocGF0Y2hGbGFnICYgMjU2IC8qIFBhdGNoRmxhZ3MuVU5LRVlFRF9GUkFHTUVOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgLy8gdW5rZXllZFxyXG4gICAgICAgICAgICAgICAgcGF0Y2hVbmtleWVkQ2hpbGRyZW4oYzEsIGMyLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjaGlsZHJlbiBoYXMgMyBwb3NzaWJpbGl0aWVzOiB0ZXh0LCBhcnJheSBvciBubyBjaGlsZHJlbi5cclxuICAgICAgICBpZiAoc2hhcGVGbGFnICYgOCAvKiBTaGFwZUZsYWdzLlRFWFRfQ0hJTERSRU4gKi8pIHtcclxuICAgICAgICAgICAgLy8gdGV4dCBjaGlsZHJlbiBmYXN0IHBhdGhcclxuICAgICAgICAgICAgaWYgKHByZXZTaGFwZUZsYWcgJiAxNiAvKiBTaGFwZUZsYWdzLkFSUkFZX0NISUxEUkVOICovKSB7XHJcbiAgICAgICAgICAgICAgICB1bm1vdW50Q2hpbGRyZW4oYzEsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjMiAhPT0gYzEpIHtcclxuICAgICAgICAgICAgICAgIGhvc3RTZXRFbGVtZW50VGV4dChjb250YWluZXIsIGMyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHByZXZTaGFwZUZsYWcgJiAxNiAvKiBTaGFwZUZsYWdzLkFSUkFZX0NISUxEUkVOICovKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBwcmV2IGNoaWxkcmVuIHdhcyBhcnJheVxyXG4gICAgICAgICAgICAgICAgaWYgKHNoYXBlRmxhZyAmIDE2IC8qIFNoYXBlRmxhZ3MuQVJSQVlfQ0hJTERSRU4gKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0d28gYXJyYXlzLCBjYW5ub3QgYXNzdW1lIGFueXRoaW5nLCBkbyBmdWxsIGRpZmZcclxuICAgICAgICAgICAgICAgICAgICBwYXRjaEtleWVkQ2hpbGRyZW4oYzEsIGMyLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vIG5ldyBjaGlsZHJlbiwganVzdCB1bm1vdW50IG9sZFxyXG4gICAgICAgICAgICAgICAgICAgIHVubW91bnRDaGlsZHJlbihjMSwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBwcmV2IGNoaWxkcmVuIHdhcyB0ZXh0IE9SIG51bGxcclxuICAgICAgICAgICAgICAgIC8vIG5ldyBjaGlsZHJlbiBpcyBhcnJheSBPUiBudWxsXHJcbiAgICAgICAgICAgICAgICBpZiAocHJldlNoYXBlRmxhZyAmIDggLyogU2hhcGVGbGFncy5URVhUX0NISUxEUkVOICovKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaG9zdFNldEVsZW1lbnRUZXh0KGNvbnRhaW5lciwgJycpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gbW91bnQgbmV3IGlmIGFycmF5XHJcbiAgICAgICAgICAgICAgICBpZiAoc2hhcGVGbGFnICYgMTYgLyogU2hhcGVGbGFncy5BUlJBWV9DSElMRFJFTiAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vdW50Q2hpbGRyZW4oYzIsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBhdGNoVW5rZXllZENoaWxkcmVuID0gKGMxLCBjMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCkgPT4ge1xyXG4gICAgICAgIGMxID0gYzEgfHwgRU1QVFlfQVJSO1xyXG4gICAgICAgIGMyID0gYzIgfHwgRU1QVFlfQVJSO1xyXG4gICAgICAgIGNvbnN0IG9sZExlbmd0aCA9IGMxLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBuZXdMZW5ndGggPSBjMi5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgY29tbW9uTGVuZ3RoID0gTWF0aC5taW4ob2xkTGVuZ3RoLCBuZXdMZW5ndGgpO1xyXG4gICAgICAgIGxldCBpO1xyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb21tb25MZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0Q2hpbGQgPSAoYzJbaV0gPSBvcHRpbWl6ZWRcclxuICAgICAgICAgICAgICAgID8gY2xvbmVJZk1vdW50ZWQoYzJbaV0pXHJcbiAgICAgICAgICAgICAgICA6IG5vcm1hbGl6ZVZOb2RlKGMyW2ldKSk7XHJcbiAgICAgICAgICAgIHBhdGNoKGMxW2ldLCBuZXh0Q2hpbGQsIGNvbnRhaW5lciwgbnVsbCwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9sZExlbmd0aCA+IG5ld0xlbmd0aCkge1xyXG4gICAgICAgICAgICAvLyByZW1vdmUgb2xkXHJcbiAgICAgICAgICAgIHVubW91bnRDaGlsZHJlbihjMSwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgdHJ1ZSwgZmFsc2UsIGNvbW1vbkxlbmd0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBtb3VudCBuZXdcclxuICAgICAgICAgICAgbW91bnRDaGlsZHJlbihjMiwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgY29tbW9uTGVuZ3RoKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLy8gY2FuIGJlIGFsbC1rZXllZCBvciBtaXhlZFxyXG4gICAgY29uc3QgcGF0Y2hLZXllZENoaWxkcmVuID0gKGMxLCBjMiwgY29udGFpbmVyLCBwYXJlbnRBbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCkgPT4ge1xyXG4gICAgICAgIGxldCBpID0gMDtcclxuICAgICAgICBjb25zdCBsMiA9IGMyLmxlbmd0aDtcclxuICAgICAgICBsZXQgZTEgPSBjMS5sZW5ndGggLSAxOyAvLyBwcmV2IGVuZGluZyBpbmRleFxyXG4gICAgICAgIGxldCBlMiA9IGwyIC0gMTsgLy8gbmV4dCBlbmRpbmcgaW5kZXhcclxuICAgICAgICAvLyAxLiBzeW5jIGZyb20gc3RhcnRcclxuICAgICAgICAvLyAoYSBiKSBjXHJcbiAgICAgICAgLy8gKGEgYikgZCBlXHJcbiAgICAgICAgd2hpbGUgKGkgPD0gZTEgJiYgaSA8PSBlMikge1xyXG4gICAgICAgICAgICBjb25zdCBuMSA9IGMxW2ldO1xyXG4gICAgICAgICAgICBjb25zdCBuMiA9IChjMltpXSA9IG9wdGltaXplZFxyXG4gICAgICAgICAgICAgICAgPyBjbG9uZUlmTW91bnRlZChjMltpXSlcclxuICAgICAgICAgICAgICAgIDogbm9ybWFsaXplVk5vZGUoYzJbaV0pKTtcclxuICAgICAgICAgICAgaWYgKGlzU2FtZVZOb2RlVHlwZShuMSwgbjIpKSB7XHJcbiAgICAgICAgICAgICAgICBwYXRjaChuMSwgbjIsIGNvbnRhaW5lciwgbnVsbCwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gMi4gc3luYyBmcm9tIGVuZFxyXG4gICAgICAgIC8vIGEgKGIgYylcclxuICAgICAgICAvLyBkIGUgKGIgYylcclxuICAgICAgICB3aGlsZSAoaSA8PSBlMSAmJiBpIDw9IGUyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG4xID0gYzFbZTFdO1xyXG4gICAgICAgICAgICBjb25zdCBuMiA9IChjMltlMl0gPSBvcHRpbWl6ZWRcclxuICAgICAgICAgICAgICAgID8gY2xvbmVJZk1vdW50ZWQoYzJbZTJdKVxyXG4gICAgICAgICAgICAgICAgOiBub3JtYWxpemVWTm9kZShjMltlMl0pKTtcclxuICAgICAgICAgICAgaWYgKGlzU2FtZVZOb2RlVHlwZShuMSwgbjIpKSB7XHJcbiAgICAgICAgICAgICAgICBwYXRjaChuMSwgbjIsIGNvbnRhaW5lciwgbnVsbCwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGUxLS07XHJcbiAgICAgICAgICAgIGUyLS07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIDMuIGNvbW1vbiBzZXF1ZW5jZSArIG1vdW50XHJcbiAgICAgICAgLy8gKGEgYilcclxuICAgICAgICAvLyAoYSBiKSBjXHJcbiAgICAgICAgLy8gaSA9IDIsIGUxID0gMSwgZTIgPSAyXHJcbiAgICAgICAgLy8gKGEgYilcclxuICAgICAgICAvLyBjIChhIGIpXHJcbiAgICAgICAgLy8gaSA9IDAsIGUxID0gLTEsIGUyID0gMFxyXG4gICAgICAgIGlmIChpID4gZTEpIHtcclxuICAgICAgICAgICAgaWYgKGkgPD0gZTIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRQb3MgPSBlMiArIDE7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhbmNob3IgPSBuZXh0UG9zIDwgbDIgPyBjMltuZXh0UG9zXS5lbCA6IHBhcmVudEFuY2hvcjtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChpIDw9IGUyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2gobnVsbCwgKGMyW2ldID0gb3B0aW1pemVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY2xvbmVJZk1vdW50ZWQoYzJbaV0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbm9ybWFsaXplVk5vZGUoYzJbaV0pKSwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaSsrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIDQuIGNvbW1vbiBzZXF1ZW5jZSArIHVubW91bnRcclxuICAgICAgICAvLyAoYSBiKSBjXHJcbiAgICAgICAgLy8gKGEgYilcclxuICAgICAgICAvLyBpID0gMiwgZTEgPSAyLCBlMiA9IDFcclxuICAgICAgICAvLyBhIChiIGMpXHJcbiAgICAgICAgLy8gKGIgYylcclxuICAgICAgICAvLyBpID0gMCwgZTEgPSAwLCBlMiA9IC0xXHJcbiAgICAgICAgZWxzZSBpZiAoaSA+IGUyKSB7XHJcbiAgICAgICAgICAgIHdoaWxlIChpIDw9IGUxKSB7XHJcbiAgICAgICAgICAgICAgICB1bm1vdW50KGMxW2ldLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgIGkrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyA1LiB1bmtub3duIHNlcXVlbmNlXHJcbiAgICAgICAgLy8gW2kgLi4uIGUxICsgMV06IGEgYiBbYyBkIGVdIGYgZ1xyXG4gICAgICAgIC8vIFtpIC4uLiBlMiArIDFdOiBhIGIgW2UgZCBjIGhdIGYgZ1xyXG4gICAgICAgIC8vIGkgPSAyLCBlMSA9IDQsIGUyID0gNVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBzMSA9IGk7IC8vIHByZXYgc3RhcnRpbmcgaW5kZXhcclxuICAgICAgICAgICAgY29uc3QgczIgPSBpOyAvLyBuZXh0IHN0YXJ0aW5nIGluZGV4XHJcbiAgICAgICAgICAgIC8vIDUuMSBidWlsZCBrZXk6aW5kZXggbWFwIGZvciBuZXdDaGlsZHJlblxyXG4gICAgICAgICAgICBjb25zdCBrZXlUb05ld0luZGV4TWFwID0gbmV3IE1hcCgpO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSBzMjsgaSA8PSBlMjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0Q2hpbGQgPSAoYzJbaV0gPSBvcHRpbWl6ZWRcclxuICAgICAgICAgICAgICAgICAgICA/IGNsb25lSWZNb3VudGVkKGMyW2ldKVxyXG4gICAgICAgICAgICAgICAgICAgIDogbm9ybWFsaXplVk5vZGUoYzJbaV0pKTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hpbGQua2V5ICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGtleVRvTmV3SW5kZXhNYXAuaGFzKG5leHRDaGlsZC5rZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4oYER1cGxpY2F0ZSBrZXlzIGZvdW5kIGR1cmluZyB1cGRhdGU6YCwgSlNPTi5zdHJpbmdpZnkobmV4dENoaWxkLmtleSksIGBNYWtlIHN1cmUga2V5cyBhcmUgdW5pcXVlLmApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBrZXlUb05ld0luZGV4TWFwLnNldChuZXh0Q2hpbGQua2V5LCBpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyA1LjIgbG9vcCB0aHJvdWdoIG9sZCBjaGlsZHJlbiBsZWZ0IHRvIGJlIHBhdGNoZWQgYW5kIHRyeSB0byBwYXRjaFxyXG4gICAgICAgICAgICAvLyBtYXRjaGluZyBub2RlcyAmIHJlbW92ZSBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgcHJlc2VudFxyXG4gICAgICAgICAgICBsZXQgajtcclxuICAgICAgICAgICAgbGV0IHBhdGNoZWQgPSAwO1xyXG4gICAgICAgICAgICBjb25zdCB0b0JlUGF0Y2hlZCA9IGUyIC0gczIgKyAxO1xyXG4gICAgICAgICAgICBsZXQgbW92ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gdXNlZCB0byB0cmFjayB3aGV0aGVyIGFueSBub2RlIGhhcyBtb3ZlZFxyXG4gICAgICAgICAgICBsZXQgbWF4TmV3SW5kZXhTb0ZhciA9IDA7XHJcbiAgICAgICAgICAgIC8vIHdvcmtzIGFzIE1hcDxuZXdJbmRleCwgb2xkSW5kZXg+XHJcbiAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBvbGRJbmRleCBpcyBvZmZzZXQgYnkgKzFcclxuICAgICAgICAgICAgLy8gYW5kIG9sZEluZGV4ID0gMCBpcyBhIHNwZWNpYWwgdmFsdWUgaW5kaWNhdGluZyB0aGUgbmV3IG5vZGUgaGFzXHJcbiAgICAgICAgICAgIC8vIG5vIGNvcnJlc3BvbmRpbmcgb2xkIG5vZGUuXHJcbiAgICAgICAgICAgIC8vIHVzZWQgZm9yIGRldGVybWluaW5nIGxvbmdlc3Qgc3RhYmxlIHN1YnNlcXVlbmNlXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0luZGV4VG9PbGRJbmRleE1hcCA9IG5ldyBBcnJheSh0b0JlUGF0Y2hlZCk7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0b0JlUGF0Y2hlZDsgaSsrKVxyXG4gICAgICAgICAgICAgICAgbmV3SW5kZXhUb09sZEluZGV4TWFwW2ldID0gMDtcclxuICAgICAgICAgICAgZm9yIChpID0gczE7IGkgPD0gZTE7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJldkNoaWxkID0gYzFbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAocGF0Y2hlZCA+PSB0b0JlUGF0Y2hlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsbCBuZXcgY2hpbGRyZW4gaGF2ZSBiZWVuIHBhdGNoZWQgc28gdGhpcyBjYW4gb25seSBiZSBhIHJlbW92YWxcclxuICAgICAgICAgICAgICAgICAgICB1bm1vdW50KHByZXZDaGlsZCwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgbmV3SW5kZXg7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJldkNoaWxkLmtleSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3SW5kZXggPSBrZXlUb05ld0luZGV4TWFwLmdldChwcmV2Q2hpbGQua2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGtleS1sZXNzIG5vZGUsIHRyeSB0byBsb2NhdGUgYSBrZXktbGVzcyBub2RlIG9mIHRoZSBzYW1lIHR5cGVcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSBzMjsgaiA8PSBlMjsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdJbmRleFRvT2xkSW5kZXhNYXBbaiAtIHMyXSA9PT0gMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTYW1lVk5vZGVUeXBlKHByZXZDaGlsZCwgYzJbal0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdJbmRleCA9IGo7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChuZXdJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5tb3VudChwcmV2Q2hpbGQsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3SW5kZXhUb09sZEluZGV4TWFwW25ld0luZGV4IC0gczJdID0gaSArIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0luZGV4ID49IG1heE5ld0luZGV4U29GYXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4TmV3SW5kZXhTb0ZhciA9IG5ld0luZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW92ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBwYXRjaChwcmV2Q2hpbGQsIGMyW25ld0luZGV4XSwgY29udGFpbmVyLCBudWxsLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhdGNoZWQrKztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyA1LjMgbW92ZSBhbmQgbW91bnRcclxuICAgICAgICAgICAgLy8gZ2VuZXJhdGUgbG9uZ2VzdCBzdGFibGUgc3Vic2VxdWVuY2Ugb25seSB3aGVuIG5vZGVzIGhhdmUgbW92ZWRcclxuICAgICAgICAgICAgY29uc3QgaW5jcmVhc2luZ05ld0luZGV4U2VxdWVuY2UgPSBtb3ZlZFxyXG4gICAgICAgICAgICAgICAgPyBnZXRTZXF1ZW5jZShuZXdJbmRleFRvT2xkSW5kZXhNYXApXHJcbiAgICAgICAgICAgICAgICA6IEVNUFRZX0FSUjtcclxuICAgICAgICAgICAgaiA9IGluY3JlYXNpbmdOZXdJbmRleFNlcXVlbmNlLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgIC8vIGxvb3BpbmcgYmFja3dhcmRzIHNvIHRoYXQgd2UgY2FuIHVzZSBsYXN0IHBhdGNoZWQgbm9kZSBhcyBhbmNob3JcclxuICAgICAgICAgICAgZm9yIChpID0gdG9CZVBhdGNoZWQgLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gczIgKyBpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dENoaWxkID0gYzJbbmV4dEluZGV4XTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFuY2hvciA9IG5leHRJbmRleCArIDEgPCBsMiA/IGMyW25leHRJbmRleCArIDFdLmVsIDogcGFyZW50QW5jaG9yO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ld0luZGV4VG9PbGRJbmRleE1hcFtpXSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIG1vdW50IG5ld1xyXG4gICAgICAgICAgICAgICAgICAgIHBhdGNoKG51bGwsIG5leHRDaGlsZCwgY29udGFpbmVyLCBhbmNob3IsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtb3ZlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgaWY6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gc3RhYmxlIHN1YnNlcXVlbmNlIChlLmcuIGEgcmV2ZXJzZSlcclxuICAgICAgICAgICAgICAgICAgICAvLyBPUiBjdXJyZW50IG5vZGUgaXMgbm90IGFtb25nIHRoZSBzdGFibGUgc2VxdWVuY2VcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaiA8IDAgfHwgaSAhPT0gaW5jcmVhc2luZ05ld0luZGV4U2VxdWVuY2Vbal0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW92ZShuZXh0Q2hpbGQsIGNvbnRhaW5lciwgYW5jaG9yLCAyIC8qIE1vdmVUeXBlLlJFT1JERVIgKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgai0tO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBtb3ZlID0gKHZub2RlLCBjb250YWluZXIsIGFuY2hvciwgbW92ZVR5cGUsIHBhcmVudFN1c3BlbnNlID0gbnVsbCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgZWwsIHR5cGUsIHRyYW5zaXRpb24sIGNoaWxkcmVuLCBzaGFwZUZsYWcgfSA9IHZub2RlO1xyXG4gICAgICAgIGlmIChzaGFwZUZsYWcgJiA2IC8qIFNoYXBlRmxhZ3MuQ09NUE9ORU5UICovKSB7XHJcbiAgICAgICAgICAgIG1vdmUodm5vZGUuY29tcG9uZW50LnN1YlRyZWUsIGNvbnRhaW5lciwgYW5jaG9yLCBtb3ZlVHlwZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNoYXBlRmxhZyAmIDEyOCAvKiBTaGFwZUZsYWdzLlNVU1BFTlNFICovKSB7XHJcbiAgICAgICAgICAgIHZub2RlLnN1c3BlbnNlLm1vdmUoY29udGFpbmVyLCBhbmNob3IsIG1vdmVUeXBlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2hhcGVGbGFnICYgNjQgLyogU2hhcGVGbGFncy5URUxFUE9SVCAqLykge1xyXG4gICAgICAgICAgICB0eXBlLm1vdmUodm5vZGUsIGNvbnRhaW5lciwgYW5jaG9yLCBpbnRlcm5hbHMpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlID09PSBGcmFnbWVudCkge1xyXG4gICAgICAgICAgICBob3N0SW5zZXJ0KGVsLCBjb250YWluZXIsIGFuY2hvcik7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIG1vdmUoY2hpbGRyZW5baV0sIGNvbnRhaW5lciwgYW5jaG9yLCBtb3ZlVHlwZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaG9zdEluc2VydCh2bm9kZS5hbmNob3IsIGNvbnRhaW5lciwgYW5jaG9yKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZSA9PT0gU3RhdGljKSB7XHJcbiAgICAgICAgICAgIG1vdmVTdGF0aWNOb2RlKHZub2RlLCBjb250YWluZXIsIGFuY2hvcik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gc2luZ2xlIG5vZGVzXHJcbiAgICAgICAgY29uc3QgbmVlZFRyYW5zaXRpb24gPSBtb3ZlVHlwZSAhPT0gMiAvKiBNb3ZlVHlwZS5SRU9SREVSICovICYmXHJcbiAgICAgICAgICAgIHNoYXBlRmxhZyAmIDEgLyogU2hhcGVGbGFncy5FTEVNRU5UICovICYmXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb247XHJcbiAgICAgICAgaWYgKG5lZWRUcmFuc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmIChtb3ZlVHlwZSA9PT0gMCAvKiBNb3ZlVHlwZS5FTlRFUiAqLykge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbi5iZWZvcmVFbnRlcihlbCk7XHJcbiAgICAgICAgICAgICAgICBob3N0SW5zZXJ0KGVsLCBjb250YWluZXIsIGFuY2hvcik7XHJcbiAgICAgICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4gdHJhbnNpdGlvbi5lbnRlcihlbCksIHBhcmVudFN1c3BlbnNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgbGVhdmUsIGRlbGF5TGVhdmUsIGFmdGVyTGVhdmUgfSA9IHRyYW5zaXRpb247XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZW1vdmUgPSAoKSA9PiBob3N0SW5zZXJ0KGVsLCBjb250YWluZXIsIGFuY2hvcik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwZXJmb3JtTGVhdmUgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVhdmUoZWwsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyTGVhdmUgJiYgYWZ0ZXJMZWF2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGlmIChkZWxheUxlYXZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXlMZWF2ZShlbCwgcmVtb3ZlLCBwZXJmb3JtTGVhdmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGVyZm9ybUxlYXZlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGhvc3RJbnNlcnQoZWwsIGNvbnRhaW5lciwgYW5jaG9yKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdW5tb3VudCA9ICh2bm9kZSwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgZG9SZW1vdmUgPSBmYWxzZSwgb3B0aW1pemVkID0gZmFsc2UpID0+IHtcclxuICAgICAgICBjb25zdCB7IHR5cGUsIHByb3BzLCByZWYsIGNoaWxkcmVuLCBkeW5hbWljQ2hpbGRyZW4sIHNoYXBlRmxhZywgcGF0Y2hGbGFnLCBkaXJzIH0gPSB2bm9kZTtcclxuICAgICAgICAvLyB1bnNldCByZWZcclxuICAgICAgICBpZiAocmVmICE9IG51bGwpIHtcclxuICAgICAgICAgICAgc2V0UmVmKHJlZiwgbnVsbCwgcGFyZW50U3VzcGVuc2UsIHZub2RlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNoYXBlRmxhZyAmIDI1NiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVF9TSE9VTERfS0VFUF9BTElWRSAqLykge1xyXG4gICAgICAgICAgICBwYXJlbnRDb21wb25lbnQuY3R4LmRlYWN0aXZhdGUodm5vZGUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNob3VsZEludm9rZURpcnMgPSBzaGFwZUZsYWcgJiAxIC8qIFNoYXBlRmxhZ3MuRUxFTUVOVCAqLyAmJiBkaXJzO1xyXG4gICAgICAgIGNvbnN0IHNob3VsZEludm9rZVZub2RlSG9vayA9ICFpc0FzeW5jV3JhcHBlcih2bm9kZSk7XHJcbiAgICAgICAgbGV0IHZub2RlSG9vaztcclxuICAgICAgICBpZiAoc2hvdWxkSW52b2tlVm5vZGVIb29rICYmXHJcbiAgICAgICAgICAgICh2bm9kZUhvb2sgPSBwcm9wcyAmJiBwcm9wcy5vblZub2RlQmVmb3JlVW5tb3VudCkpIHtcclxuICAgICAgICAgICAgaW52b2tlVk5vZGVIb29rKHZub2RlSG9vaywgcGFyZW50Q29tcG9uZW50LCB2bm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzaGFwZUZsYWcgJiA2IC8qIFNoYXBlRmxhZ3MuQ09NUE9ORU5UICovKSB7XHJcbiAgICAgICAgICAgIHVubW91bnRDb21wb25lbnQodm5vZGUuY29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgZG9SZW1vdmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHNoYXBlRmxhZyAmIDEyOCAvKiBTaGFwZUZsYWdzLlNVU1BFTlNFICovKSB7XHJcbiAgICAgICAgICAgICAgICB2bm9kZS5zdXNwZW5zZS51bm1vdW50KHBhcmVudFN1c3BlbnNlLCBkb1JlbW92ZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHNob3VsZEludm9rZURpcnMpIHtcclxuICAgICAgICAgICAgICAgIGludm9rZURpcmVjdGl2ZUhvb2sodm5vZGUsIG51bGwsIHBhcmVudENvbXBvbmVudCwgJ2JlZm9yZVVubW91bnQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc2hhcGVGbGFnICYgNjQgLyogU2hhcGVGbGFncy5URUxFUE9SVCAqLykge1xyXG4gICAgICAgICAgICAgICAgdm5vZGUudHlwZS5yZW1vdmUodm5vZGUsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIG9wdGltaXplZCwgaW50ZXJuYWxzLCBkb1JlbW92ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZHluYW1pY0NoaWxkcmVuICYmXHJcbiAgICAgICAgICAgICAgICAvLyAjMTE1MzogZmFzdCBwYXRoIHNob3VsZCBub3QgYmUgdGFrZW4gZm9yIG5vbi1zdGFibGUgKHYtZm9yKSBmcmFnbWVudHNcclxuICAgICAgICAgICAgICAgICh0eXBlICE9PSBGcmFnbWVudCB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChwYXRjaEZsYWcgPiAwICYmIHBhdGNoRmxhZyAmIDY0IC8qIFBhdGNoRmxhZ3MuU1RBQkxFX0ZSQUdNRU5UICovKSkpIHtcclxuICAgICAgICAgICAgICAgIC8vIGZhc3QgcGF0aCBmb3IgYmxvY2sgbm9kZXM6IG9ubHkgbmVlZCB0byB1bm1vdW50IGR5bmFtaWMgY2hpbGRyZW4uXHJcbiAgICAgICAgICAgICAgICB1bm1vdW50Q2hpbGRyZW4oZHluYW1pY0NoaWxkcmVuLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKHR5cGUgPT09IEZyYWdtZW50ICYmXHJcbiAgICAgICAgICAgICAgICBwYXRjaEZsYWcgJlxyXG4gICAgICAgICAgICAgICAgICAgICgxMjggLyogUGF0Y2hGbGFncy5LRVlFRF9GUkFHTUVOVCAqLyB8IDI1NiAvKiBQYXRjaEZsYWdzLlVOS0VZRURfRlJBR01FTlQgKi8pKSB8fFxyXG4gICAgICAgICAgICAgICAgKCFvcHRpbWl6ZWQgJiYgc2hhcGVGbGFnICYgMTYgLyogU2hhcGVGbGFncy5BUlJBWV9DSElMRFJFTiAqLykpIHtcclxuICAgICAgICAgICAgICAgIHVubW91bnRDaGlsZHJlbihjaGlsZHJlbiwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRvUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICByZW1vdmUodm5vZGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoc2hvdWxkSW52b2tlVm5vZGVIb29rICYmXHJcbiAgICAgICAgICAgICh2bm9kZUhvb2sgPSBwcm9wcyAmJiBwcm9wcy5vblZub2RlVW5tb3VudGVkKSkgfHxcclxuICAgICAgICAgICAgc2hvdWxkSW52b2tlRGlycykge1xyXG4gICAgICAgICAgICBxdWV1ZVBvc3RSZW5kZXJFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdm5vZGVIb29rICYmIGludm9rZVZOb2RlSG9vayh2bm9kZUhvb2ssIHBhcmVudENvbXBvbmVudCwgdm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgc2hvdWxkSW52b2tlRGlycyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGludm9rZURpcmVjdGl2ZUhvb2sodm5vZGUsIG51bGwsIHBhcmVudENvbXBvbmVudCwgJ3VubW91bnRlZCcpO1xyXG4gICAgICAgICAgICB9LCBwYXJlbnRTdXNwZW5zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlbW92ZSA9IHZub2RlID0+IHtcclxuICAgICAgICBjb25zdCB7IHR5cGUsIGVsLCBhbmNob3IsIHRyYW5zaXRpb24gfSA9IHZub2RlO1xyXG4gICAgICAgIGlmICh0eXBlID09PSBGcmFnbWVudCkge1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmXHJcbiAgICAgICAgICAgICAgICB2bm9kZS5wYXRjaEZsYWcgPiAwICYmXHJcbiAgICAgICAgICAgICAgICB2bm9kZS5wYXRjaEZsYWcgJiAyMDQ4IC8qIFBhdGNoRmxhZ3MuREVWX1JPT1RfRlJBR01FTlQgKi8gJiZcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24gJiZcclxuICAgICAgICAgICAgICAgICF0cmFuc2l0aW9uLnBlcnNpc3RlZCkge1xyXG4gICAgICAgICAgICAgICAgdm5vZGUuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09IENvbW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaG9zdFJlbW92ZShjaGlsZC5lbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmUoY2hpbGQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVtb3ZlRnJhZ21lbnQoZWwsIGFuY2hvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZSA9PT0gU3RhdGljKSB7XHJcbiAgICAgICAgICAgIHJlbW92ZVN0YXRpY05vZGUodm5vZGUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBlcmZvcm1SZW1vdmUgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGhvc3RSZW1vdmUoZWwpO1xyXG4gICAgICAgICAgICBpZiAodHJhbnNpdGlvbiAmJiAhdHJhbnNpdGlvbi5wZXJzaXN0ZWQgJiYgdHJhbnNpdGlvbi5hZnRlckxlYXZlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLmFmdGVyTGVhdmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKHZub2RlLnNoYXBlRmxhZyAmIDEgLyogU2hhcGVGbGFncy5FTEVNRU5UICovICYmXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24gJiZcclxuICAgICAgICAgICAgIXRyYW5zaXRpb24ucGVyc2lzdGVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbGVhdmUsIGRlbGF5TGVhdmUgfSA9IHRyYW5zaXRpb247XHJcbiAgICAgICAgICAgIGNvbnN0IHBlcmZvcm1MZWF2ZSA9ICgpID0+IGxlYXZlKGVsLCBwZXJmb3JtUmVtb3ZlKTtcclxuICAgICAgICAgICAgaWYgKGRlbGF5TGVhdmUpIHtcclxuICAgICAgICAgICAgICAgIGRlbGF5TGVhdmUodm5vZGUuZWwsIHBlcmZvcm1SZW1vdmUsIHBlcmZvcm1MZWF2ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwZXJmb3JtTGVhdmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcGVyZm9ybVJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCByZW1vdmVGcmFnbWVudCA9IChjdXIsIGVuZCkgPT4ge1xyXG4gICAgICAgIC8vIEZvciBmcmFnbWVudHMsIGRpcmVjdGx5IHJlbW92ZSBhbGwgY29udGFpbmVkIERPTSBub2Rlcy5cclxuICAgICAgICAvLyAoZnJhZ21lbnQgY2hpbGQgbm9kZXMgY2Fubm90IGhhdmUgdHJhbnNpdGlvbilcclxuICAgICAgICBsZXQgbmV4dDtcclxuICAgICAgICB3aGlsZSAoY3VyICE9PSBlbmQpIHtcclxuICAgICAgICAgICAgbmV4dCA9IGhvc3ROZXh0U2libGluZyhjdXIpO1xyXG4gICAgICAgICAgICBob3N0UmVtb3ZlKGN1cik7XHJcbiAgICAgICAgICAgIGN1ciA9IG5leHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGhvc3RSZW1vdmUoZW5kKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB1bm1vdW50Q29tcG9uZW50ID0gKGluc3RhbmNlLCBwYXJlbnRTdXNwZW5zZSwgZG9SZW1vdmUpID0+IHtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGluc3RhbmNlLnR5cGUuX19obXJJZCkge1xyXG4gICAgICAgICAgICB1bnJlZ2lzdGVySE1SKGluc3RhbmNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgeyBidW0sIHNjb3BlLCB1cGRhdGUsIHN1YlRyZWUsIHVtIH0gPSBpbnN0YW5jZTtcclxuICAgICAgICAvLyBiZWZvcmVVbm1vdW50IGhvb2tcclxuICAgICAgICBpZiAoYnVtKSB7XHJcbiAgICAgICAgICAgIGludm9rZUFycmF5Rm5zKGJ1bSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHN0b3AgZWZmZWN0cyBpbiBjb21wb25lbnQgc2NvcGVcclxuICAgICAgICBzY29wZS5zdG9wKCk7XHJcbiAgICAgICAgLy8gdXBkYXRlIG1heSBiZSBudWxsIGlmIGEgY29tcG9uZW50IGlzIHVubW91bnRlZCBiZWZvcmUgaXRzIGFzeW5jXHJcbiAgICAgICAgLy8gc2V0dXAgaGFzIHJlc29sdmVkLlxyXG4gICAgICAgIGlmICh1cGRhdGUpIHtcclxuICAgICAgICAgICAgLy8gc28gdGhhdCBzY2hlZHVsZXIgd2lsbCBubyBsb25nZXIgaW52b2tlIGl0XHJcbiAgICAgICAgICAgIHVwZGF0ZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdW5tb3VudChzdWJUcmVlLCBpbnN0YW5jZSwgcGFyZW50U3VzcGVuc2UsIGRvUmVtb3ZlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdW5tb3VudGVkIGhvb2tcclxuICAgICAgICBpZiAodW0pIHtcclxuICAgICAgICAgICAgcXVldWVQb3N0UmVuZGVyRWZmZWN0KHVtLCBwYXJlbnRTdXNwZW5zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHF1ZXVlUG9zdFJlbmRlckVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGluc3RhbmNlLmlzVW5tb3VudGVkID0gdHJ1ZTtcclxuICAgICAgICB9LCBwYXJlbnRTdXNwZW5zZSk7XHJcbiAgICAgICAgLy8gQSBjb21wb25lbnQgd2l0aCBhc3luYyBkZXAgaW5zaWRlIGEgcGVuZGluZyBzdXNwZW5zZSBpcyB1bm1vdW50ZWQgYmVmb3JlXHJcbiAgICAgICAgLy8gaXRzIGFzeW5jIGRlcCByZXNvbHZlcy4gVGhpcyBzaG91bGQgcmVtb3ZlIHRoZSBkZXAgZnJvbSB0aGUgc3VzcGVuc2UsIGFuZFxyXG4gICAgICAgIC8vIGNhdXNlIHRoZSBzdXNwZW5zZSB0byByZXNvbHZlIGltbWVkaWF0ZWx5IGlmIHRoYXQgd2FzIHRoZSBsYXN0IGRlcC5cclxuICAgICAgICBpZiAocGFyZW50U3VzcGVuc2UgJiZcclxuICAgICAgICAgICAgcGFyZW50U3VzcGVuc2UucGVuZGluZ0JyYW5jaCAmJlxyXG4gICAgICAgICAgICAhcGFyZW50U3VzcGVuc2UuaXNVbm1vdW50ZWQgJiZcclxuICAgICAgICAgICAgaW5zdGFuY2UuYXN5bmNEZXAgJiZcclxuICAgICAgICAgICAgIWluc3RhbmNlLmFzeW5jUmVzb2x2ZWQgJiZcclxuICAgICAgICAgICAgaW5zdGFuY2Uuc3VzcGVuc2VJZCA9PT0gcGFyZW50U3VzcGVuc2UucGVuZGluZ0lkKSB7XHJcbiAgICAgICAgICAgIHBhcmVudFN1c3BlbnNlLmRlcHMtLTtcclxuICAgICAgICAgICAgaWYgKHBhcmVudFN1c3BlbnNlLmRlcHMgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHBhcmVudFN1c3BlbnNlLnJlc29sdmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHx8IF9fVlVFX1BST0RfREVWVE9PTFNfXykge1xyXG4gICAgICAgICAgICBkZXZ0b29sc0NvbXBvbmVudFJlbW92ZWQoaW5zdGFuY2UpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCB1bm1vdW50Q2hpbGRyZW4gPSAoY2hpbGRyZW4sIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGRvUmVtb3ZlID0gZmFsc2UsIG9wdGltaXplZCA9IGZhbHNlLCBzdGFydCA9IDApID0+IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB1bm1vdW50KGNoaWxkcmVuW2ldLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBkb1JlbW92ZSwgb3B0aW1pemVkKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZ2V0TmV4dEhvc3ROb2RlID0gdm5vZGUgPT4ge1xyXG4gICAgICAgIGlmICh2bm9kZS5zaGFwZUZsYWcgJiA2IC8qIFNoYXBlRmxhZ3MuQ09NUE9ORU5UICovKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBnZXROZXh0SG9zdE5vZGUodm5vZGUuY29tcG9uZW50LnN1YlRyZWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodm5vZGUuc2hhcGVGbGFnICYgMTI4IC8qIFNoYXBlRmxhZ3MuU1VTUEVOU0UgKi8pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZub2RlLnN1c3BlbnNlLm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhvc3ROZXh0U2libGluZygodm5vZGUuYW5jaG9yIHx8IHZub2RlLmVsKSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVuZGVyID0gKHZub2RlLCBjb250YWluZXIsIGlzU1ZHKSA9PiB7XHJcbiAgICAgICAgaWYgKHZub2RlID09IG51bGwpIHtcclxuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5fdm5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHVubW91bnQoY29udGFpbmVyLl92bm9kZSwgbnVsbCwgbnVsbCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHBhdGNoKGNvbnRhaW5lci5fdm5vZGUgfHwgbnVsbCwgdm5vZGUsIGNvbnRhaW5lciwgbnVsbCwgbnVsbCwgbnVsbCwgaXNTVkcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmbHVzaFByZUZsdXNoQ2JzKCk7XHJcbiAgICAgICAgZmx1c2hQb3N0Rmx1c2hDYnMoKTtcclxuICAgICAgICBjb250YWluZXIuX3Zub2RlID0gdm5vZGU7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaW50ZXJuYWxzID0ge1xyXG4gICAgICAgIHA6IHBhdGNoLFxyXG4gICAgICAgIHVtOiB1bm1vdW50LFxyXG4gICAgICAgIG06IG1vdmUsXHJcbiAgICAgICAgcjogcmVtb3ZlLFxyXG4gICAgICAgIG10OiBtb3VudENvbXBvbmVudCxcclxuICAgICAgICBtYzogbW91bnRDaGlsZHJlbixcclxuICAgICAgICBwYzogcGF0Y2hDaGlsZHJlbixcclxuICAgICAgICBwYmM6IHBhdGNoQmxvY2tDaGlsZHJlbixcclxuICAgICAgICBuOiBnZXROZXh0SG9zdE5vZGUsXHJcbiAgICAgICAgbzogb3B0aW9uc1xyXG4gICAgfTtcclxuICAgIGxldCBoeWRyYXRlO1xyXG4gICAgbGV0IGh5ZHJhdGVOb2RlO1xyXG4gICAgaWYgKGNyZWF0ZUh5ZHJhdGlvbkZucykge1xyXG4gICAgICAgIFtoeWRyYXRlLCBoeWRyYXRlTm9kZV0gPSBjcmVhdGVIeWRyYXRpb25GbnMoaW50ZXJuYWxzKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcmVuZGVyLFxyXG4gICAgICAgIGh5ZHJhdGUsXHJcbiAgICAgICAgY3JlYXRlQXBwOiBjcmVhdGVBcHBBUEkocmVuZGVyLCBoeWRyYXRlKVxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiB0b2dnbGVSZWN1cnNlKHsgZWZmZWN0LCB1cGRhdGUgfSwgYWxsb3dlZCkge1xyXG4gICAgZWZmZWN0LmFsbG93UmVjdXJzZSA9IHVwZGF0ZS5hbGxvd1JlY3Vyc2UgPSBhbGxvd2VkO1xyXG59XHJcbi8qKlxyXG4gKiAjMTE1NlxyXG4gKiBXaGVuIGEgY29tcG9uZW50IGlzIEhNUi1lbmFibGVkLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBzdGF0aWMgbm9kZXNcclxuICogaW5zaWRlIGEgYmxvY2sgYWxzbyBpbmhlcml0IHRoZSBET00gZWxlbWVudCBmcm9tIHRoZSBwcmV2aW91cyB0cmVlIHNvIHRoYXRcclxuICogSE1SIHVwZGF0ZXMgKHdoaWNoIGFyZSBmdWxsIHVwZGF0ZXMpIGNhbiByZXRyaWV2ZSB0aGUgZWxlbWVudCBmb3IgcGF0Y2hpbmcuXHJcbiAqXHJcbiAqICMyMDgwXHJcbiAqIEluc2lkZSBrZXllZCBgdGVtcGxhdGVgIGZyYWdtZW50IHN0YXRpYyBjaGlsZHJlbiwgaWYgYSBmcmFnbWVudCBpcyBtb3ZlZCxcclxuICogdGhlIGNoaWxkcmVuIHdpbGwgYWx3YXlzIGJlIG1vdmVkLiBUaGVyZWZvcmUsIGluIG9yZGVyIHRvIGVuc3VyZSBjb3JyZWN0IG1vdmVcclxuICogcG9zaXRpb24sIGVsIHNob3VsZCBiZSBpbmhlcml0ZWQgZnJvbSBwcmV2aW91cyBub2Rlcy5cclxuICovXHJcbmZ1bmN0aW9uIHRyYXZlcnNlU3RhdGljQ2hpbGRyZW4objEsIG4yLCBzaGFsbG93ID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGNoMSA9IG4xLmNoaWxkcmVuO1xyXG4gICAgY29uc3QgY2gyID0gbjIuY2hpbGRyZW47XHJcbiAgICBpZiAoaXNBcnJheShjaDEpICYmIGlzQXJyYXkoY2gyKSkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2gxLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgb25seSBjYWxsZWQgaW4gdGhlIG9wdGltaXplZCBwYXRoIHNvIGFycmF5IGNoaWxkcmVuIGFyZVxyXG4gICAgICAgICAgICAvLyBndWFyYW50ZWVkIHRvIGJlIHZub2Rlc1xyXG4gICAgICAgICAgICBjb25zdCBjMSA9IGNoMVtpXTtcclxuICAgICAgICAgICAgbGV0IGMyID0gY2gyW2ldO1xyXG4gICAgICAgICAgICBpZiAoYzIuc2hhcGVGbGFnICYgMSAvKiBTaGFwZUZsYWdzLkVMRU1FTlQgKi8gJiYgIWMyLmR5bmFtaWNDaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGMyLnBhdGNoRmxhZyA8PSAwIHx8IGMyLnBhdGNoRmxhZyA9PT0gMzIgLyogUGF0Y2hGbGFncy5IWURSQVRFX0VWRU5UUyAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIGMyID0gY2gyW2ldID0gY2xvbmVJZk1vdW50ZWQoY2gyW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICBjMi5lbCA9IGMxLmVsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFzaGFsbG93KVxyXG4gICAgICAgICAgICAgICAgICAgIHRyYXZlcnNlU3RhdGljQ2hpbGRyZW4oYzEsIGMyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBhbHNvIGluaGVyaXQgZm9yIGNvbW1lbnQgbm9kZXMsIGJ1dCBub3QgcGxhY2Vob2xkZXJzIChlLmcuIHYtaWYgd2hpY2hcclxuICAgICAgICAgICAgLy8gd291bGQgaGF2ZSByZWNlaXZlZCAuZWwgZHVyaW5nIGJsb2NrIHBhdGNoKVxyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGMyLnR5cGUgPT09IENvbW1lbnQgJiYgIWMyLmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjMi5lbCA9IGMxLmVsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xvbmdlc3RfaW5jcmVhc2luZ19zdWJzZXF1ZW5jZVxyXG5mdW5jdGlvbiBnZXRTZXF1ZW5jZShhcnIpIHtcclxuICAgIGNvbnN0IHAgPSBhcnIuc2xpY2UoKTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IFswXTtcclxuICAgIGxldCBpLCBqLCB1LCB2LCBjO1xyXG4gICAgY29uc3QgbGVuID0gYXJyLmxlbmd0aDtcclxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGFyckkgPSBhcnJbaV07XHJcbiAgICAgICAgaWYgKGFyckkgIT09IDApIHtcclxuICAgICAgICAgICAgaiA9IHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIGlmIChhcnJbal0gPCBhcnJJKSB7XHJcbiAgICAgICAgICAgICAgICBwW2ldID0gajtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGkpO1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdSA9IDA7XHJcbiAgICAgICAgICAgIHYgPSByZXN1bHQubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgd2hpbGUgKHUgPCB2KSB7XHJcbiAgICAgICAgICAgICAgICBjID0gKHUgKyB2KSA+PiAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFycltyZXN1bHRbY11dIDwgYXJySSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHUgPSBjICsgMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHYgPSBjO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhcnJJIDwgYXJyW3Jlc3VsdFt1XV0pIHtcclxuICAgICAgICAgICAgICAgIGlmICh1ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBbaV0gPSByZXN1bHRbdSAtIDFdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVzdWx0W3VdID0gaTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHUgPSByZXN1bHQubGVuZ3RoO1xyXG4gICAgdiA9IHJlc3VsdFt1IC0gMV07XHJcbiAgICB3aGlsZSAodS0tID4gMCkge1xyXG4gICAgICAgIHJlc3VsdFt1XSA9IHY7XHJcbiAgICAgICAgdiA9IHBbdl07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XG5cbmNvbnN0IGlzVGVsZXBvcnQgPSAodHlwZSkgPT4gdHlwZS5fX2lzVGVsZXBvcnQ7XHJcbmNvbnN0IGlzVGVsZXBvcnREaXNhYmxlZCA9IChwcm9wcykgPT4gcHJvcHMgJiYgKHByb3BzLmRpc2FibGVkIHx8IHByb3BzLmRpc2FibGVkID09PSAnJyk7XHJcbmNvbnN0IGlzVGFyZ2V0U1ZHID0gKHRhcmdldCkgPT4gdHlwZW9mIFNWR0VsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHRhcmdldCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQ7XHJcbmNvbnN0IHJlc29sdmVUYXJnZXQgPSAocHJvcHMsIHNlbGVjdCkgPT4ge1xyXG4gICAgY29uc3QgdGFyZ2V0U2VsZWN0b3IgPSBwcm9wcyAmJiBwcm9wcy50bztcclxuICAgIGlmIChpc1N0cmluZyh0YXJnZXRTZWxlY3RvcikpIHtcclxuICAgICAgICBpZiAoIXNlbGVjdCkge1xyXG4gICAgICAgICAgICAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICAgICAgICAgIHdhcm4oYEN1cnJlbnQgcmVuZGVyZXIgZG9lcyBub3Qgc3VwcG9ydCBzdHJpbmcgdGFyZ2V0IGZvciBUZWxlcG9ydHMuIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGAobWlzc2luZyBxdWVyeVNlbGVjdG9yIHJlbmRlcmVyIG9wdGlvbilgKTtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBzZWxlY3QodGFyZ2V0U2VsZWN0b3IpO1xyXG4gICAgICAgICAgICBpZiAoIXRhcmdldCkge1xyXG4gICAgICAgICAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgd2FybihgRmFpbGVkIHRvIGxvY2F0ZSBUZWxlcG9ydCB0YXJnZXQgd2l0aCBzZWxlY3RvciBcIiR7dGFyZ2V0U2VsZWN0b3J9XCIuIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBgTm90ZSB0aGUgdGFyZ2V0IGVsZW1lbnQgbXVzdCBleGlzdCBiZWZvcmUgdGhlIGNvbXBvbmVudCBpcyBtb3VudGVkIC0gYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGBpLmUuIHRoZSB0YXJnZXQgY2Fubm90IGJlIHJlbmRlcmVkIGJ5IHRoZSBjb21wb25lbnQgaXRzZWxmLCBhbmQgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGBpZGVhbGx5IHNob3VsZCBiZSBvdXRzaWRlIG9mIHRoZSBlbnRpcmUgVnVlIGNvbXBvbmVudCB0cmVlLmApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhdGFyZ2V0U2VsZWN0b3IgJiYgIWlzVGVsZXBvcnREaXNhYmxlZChwcm9wcykpIHtcclxuICAgICAgICAgICAgd2FybihgSW52YWxpZCBUZWxlcG9ydCB0YXJnZXQ6ICR7dGFyZ2V0U2VsZWN0b3J9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0YXJnZXRTZWxlY3RvcjtcclxuICAgIH1cclxufTtcclxuY29uc3QgVGVsZXBvcnRJbXBsID0ge1xyXG4gICAgX19pc1RlbGVwb3J0OiB0cnVlLFxyXG4gICAgcHJvY2VzcyhuMSwgbjIsIGNvbnRhaW5lciwgYW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBvcHRpbWl6ZWQsIGludGVybmFscykge1xyXG4gICAgICAgIGNvbnN0IHsgbWM6IG1vdW50Q2hpbGRyZW4sIHBjOiBwYXRjaENoaWxkcmVuLCBwYmM6IHBhdGNoQmxvY2tDaGlsZHJlbiwgbzogeyBpbnNlcnQsIHF1ZXJ5U2VsZWN0b3IsIGNyZWF0ZVRleHQsIGNyZWF0ZUNvbW1lbnQgfSB9ID0gaW50ZXJuYWxzO1xyXG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gaXNUZWxlcG9ydERpc2FibGVkKG4yLnByb3BzKTtcclxuICAgICAgICBsZXQgeyBzaGFwZUZsYWcsIGNoaWxkcmVuLCBkeW5hbWljQ2hpbGRyZW4gfSA9IG4yO1xyXG4gICAgICAgIC8vICMzMzAyXHJcbiAgICAgICAgLy8gSE1SIHVwZGF0ZWQsIGZvcmNlIGZ1bGwgZGlmZlxyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgaXNIbXJVcGRhdGluZykge1xyXG4gICAgICAgICAgICBvcHRpbWl6ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgZHluYW1pY0NoaWxkcmVuID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG4xID09IG51bGwpIHtcclxuICAgICAgICAgICAgLy8gaW5zZXJ0IGFuY2hvcnMgaW4gdGhlIG1haW4gdmlld1xyXG4gICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlciA9IChuMi5lbCA9IChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxyXG4gICAgICAgICAgICAgICAgPyBjcmVhdGVDb21tZW50KCd0ZWxlcG9ydCBzdGFydCcpXHJcbiAgICAgICAgICAgICAgICA6IGNyZWF0ZVRleHQoJycpKTtcclxuICAgICAgICAgICAgY29uc3QgbWFpbkFuY2hvciA9IChuMi5hbmNob3IgPSAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylcclxuICAgICAgICAgICAgICAgID8gY3JlYXRlQ29tbWVudCgndGVsZXBvcnQgZW5kJylcclxuICAgICAgICAgICAgICAgIDogY3JlYXRlVGV4dCgnJykpO1xyXG4gICAgICAgICAgICBpbnNlcnQocGxhY2Vob2xkZXIsIGNvbnRhaW5lciwgYW5jaG9yKTtcclxuICAgICAgICAgICAgaW5zZXJ0KG1haW5BbmNob3IsIGNvbnRhaW5lciwgYW5jaG9yKTtcclxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gKG4yLnRhcmdldCA9IHJlc29sdmVUYXJnZXQobjIucHJvcHMsIHF1ZXJ5U2VsZWN0b3IpKTtcclxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0QW5jaG9yID0gKG4yLnRhcmdldEFuY2hvciA9IGNyZWF0ZVRleHQoJycpKTtcclxuICAgICAgICAgICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgICAgICAgICAgaW5zZXJ0KHRhcmdldEFuY2hvciwgdGFyZ2V0KTtcclxuICAgICAgICAgICAgICAgIC8vICMyNjUyIHdlIGNvdWxkIGJlIHRlbGVwb3J0aW5nIGZyb20gYSBub24tU1ZHIHRyZWUgaW50byBhbiBTVkcgdHJlZVxyXG4gICAgICAgICAgICAgICAgaXNTVkcgPSBpc1NWRyB8fCBpc1RhcmdldFNWRyh0YXJnZXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oJ0ludmFsaWQgVGVsZXBvcnQgdGFyZ2V0IG9uIG1vdW50OicsIHRhcmdldCwgYCgke3R5cGVvZiB0YXJnZXR9KWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IG1vdW50ID0gKGNvbnRhaW5lciwgYW5jaG9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBUZWxlcG9ydCAqYWx3YXlzKiBoYXMgQXJyYXkgY2hpbGRyZW4uIFRoaXMgaXMgZW5mb3JjZWQgaW4gYm90aCB0aGVcclxuICAgICAgICAgICAgICAgIC8vIGNvbXBpbGVyIGFuZCB2bm9kZSBjaGlsZHJlbiBub3JtYWxpemF0aW9uLlxyXG4gICAgICAgICAgICAgICAgaWYgKHNoYXBlRmxhZyAmIDE2IC8qIFNoYXBlRmxhZ3MuQVJSQVlfQ0hJTERSRU4gKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBtb3VudENoaWxkcmVuKGNoaWxkcmVuLCBjb250YWluZXIsIGFuY2hvciwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgaXNTVkcsIHNsb3RTY29wZUlkcywgb3B0aW1pemVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgaWYgKGRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICBtb3VudChjb250YWluZXIsIG1haW5BbmNob3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRhcmdldCkge1xyXG4gICAgICAgICAgICAgICAgbW91bnQodGFyZ2V0LCB0YXJnZXRBbmNob3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB1cGRhdGUgY29udGVudFxyXG4gICAgICAgICAgICBuMi5lbCA9IG4xLmVsO1xyXG4gICAgICAgICAgICBjb25zdCBtYWluQW5jaG9yID0gKG4yLmFuY2hvciA9IG4xLmFuY2hvcik7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IChuMi50YXJnZXQgPSBuMS50YXJnZXQpO1xyXG4gICAgICAgICAgICBjb25zdCB0YXJnZXRBbmNob3IgPSAobjIudGFyZ2V0QW5jaG9yID0gbjEudGFyZ2V0QW5jaG9yKTtcclxuICAgICAgICAgICAgY29uc3Qgd2FzRGlzYWJsZWQgPSBpc1RlbGVwb3J0RGlzYWJsZWQobjEucHJvcHMpO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29udGFpbmVyID0gd2FzRGlzYWJsZWQgPyBjb250YWluZXIgOiB0YXJnZXQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRBbmNob3IgPSB3YXNEaXNhYmxlZCA/IG1haW5BbmNob3IgOiB0YXJnZXRBbmNob3I7XHJcbiAgICAgICAgICAgIGlzU1ZHID0gaXNTVkcgfHwgaXNUYXJnZXRTVkcodGFyZ2V0KTtcclxuICAgICAgICAgICAgaWYgKGR5bmFtaWNDaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgLy8gZmFzdCBwYXRoIHdoZW4gdGhlIHRlbGVwb3J0IGhhcHBlbnMgdG8gYmUgYSBibG9jayByb290XHJcbiAgICAgICAgICAgICAgICBwYXRjaEJsb2NrQ2hpbGRyZW4objEuZHluYW1pY0NoaWxkcmVuLCBkeW5hbWljQ2hpbGRyZW4sIGN1cnJlbnRDb250YWluZXIsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIGlzU1ZHLCBzbG90U2NvcGVJZHMpO1xyXG4gICAgICAgICAgICAgICAgLy8gZXZlbiBpbiBibG9jayB0cmVlIG1vZGUgd2UgbmVlZCB0byBtYWtlIHN1cmUgYWxsIHJvb3QtbGV2ZWwgbm9kZXNcclxuICAgICAgICAgICAgICAgIC8vIGluIHRoZSB0ZWxlcG9ydCBpbmhlcml0IHByZXZpb3VzIERPTSByZWZlcmVuY2VzIHNvIHRoYXQgdGhleSBjYW5cclxuICAgICAgICAgICAgICAgIC8vIGJlIG1vdmVkIGluIGZ1dHVyZSBwYXRjaGVzLlxyXG4gICAgICAgICAgICAgICAgdHJhdmVyc2VTdGF0aWNDaGlsZHJlbihuMSwgbjIsIHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKCFvcHRpbWl6ZWQpIHtcclxuICAgICAgICAgICAgICAgIHBhdGNoQ2hpbGRyZW4objEsIG4yLCBjdXJyZW50Q29udGFpbmVyLCBjdXJyZW50QW5jaG9yLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBpc1NWRywgc2xvdFNjb3BlSWRzLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXdhc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5hYmxlZCAtPiBkaXNhYmxlZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgaW50byBtYWluIGNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgIG1vdmVUZWxlcG9ydChuMiwgY29udGFpbmVyLCBtYWluQW5jaG9yLCBpbnRlcm5hbHMsIDEgLyogVGVsZXBvcnRNb3ZlVHlwZXMuVE9HR0xFICovKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIHRhcmdldCBjaGFuZ2VkXHJcbiAgICAgICAgICAgICAgICBpZiAoKG4yLnByb3BzICYmIG4yLnByb3BzLnRvKSAhPT0gKG4xLnByb3BzICYmIG4xLnByb3BzLnRvKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSAobjIudGFyZ2V0ID0gcmVzb2x2ZVRhcmdldChuMi5wcm9wcywgcXVlcnlTZWxlY3RvcikpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVUZWxlcG9ydChuMiwgbmV4dFRhcmdldCwgbnVsbCwgaW50ZXJuYWxzLCAwIC8qIFRlbGVwb3J0TW92ZVR5cGVzLlRBUkdFVF9DSEFOR0UgKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2FybignSW52YWxpZCBUZWxlcG9ydCB0YXJnZXQgb24gdXBkYXRlOicsIHRhcmdldCwgYCgke3R5cGVvZiB0YXJnZXR9KWApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZWQgLT4gZW5hYmxlZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgaW50byB0ZWxlcG9ydCB0YXJnZXRcclxuICAgICAgICAgICAgICAgICAgICBtb3ZlVGVsZXBvcnQobjIsIHRhcmdldCwgdGFyZ2V0QW5jaG9yLCBpbnRlcm5hbHMsIDEgLyogVGVsZXBvcnRNb3ZlVHlwZXMuVE9HR0xFICovKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICByZW1vdmUodm5vZGUsIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIG9wdGltaXplZCwgeyB1bTogdW5tb3VudCwgbzogeyByZW1vdmU6IGhvc3RSZW1vdmUgfSB9LCBkb1JlbW92ZSkge1xyXG4gICAgICAgIGNvbnN0IHsgc2hhcGVGbGFnLCBjaGlsZHJlbiwgYW5jaG9yLCB0YXJnZXRBbmNob3IsIHRhcmdldCwgcHJvcHMgfSA9IHZub2RlO1xyXG4gICAgICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgICAgICAgaG9zdFJlbW92ZSh0YXJnZXRBbmNob3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBhbiB1bm1vdW50ZWQgdGVsZXBvcnQgc2hvdWxkIGFsd2F5cyByZW1vdmUgaXRzIGNoaWxkcmVuIGlmIG5vdCBkaXNhYmxlZFxyXG4gICAgICAgIGlmIChkb1JlbW92ZSB8fCAhaXNUZWxlcG9ydERpc2FibGVkKHByb3BzKSkge1xyXG4gICAgICAgICAgICBob3N0UmVtb3ZlKGFuY2hvcik7XHJcbiAgICAgICAgICAgIGlmIChzaGFwZUZsYWcgJiAxNiAvKiBTaGFwZUZsYWdzLkFSUkFZX0NISUxEUkVOICovKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgICAgICAgICB1bm1vdW50KGNoaWxkLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCB0cnVlLCAhIWNoaWxkLmR5bmFtaWNDaGlsZHJlbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbW92ZTogbW92ZVRlbGVwb3J0LFxyXG4gICAgaHlkcmF0ZTogaHlkcmF0ZVRlbGVwb3J0XHJcbn07XHJcbmZ1bmN0aW9uIG1vdmVUZWxlcG9ydCh2bm9kZSwgY29udGFpbmVyLCBwYXJlbnRBbmNob3IsIHsgbzogeyBpbnNlcnQgfSwgbTogbW92ZSB9LCBtb3ZlVHlwZSA9IDIgLyogVGVsZXBvcnRNb3ZlVHlwZXMuUkVPUkRFUiAqLykge1xyXG4gICAgLy8gbW92ZSB0YXJnZXQgYW5jaG9yIGlmIHRoaXMgaXMgYSB0YXJnZXQgY2hhbmdlLlxyXG4gICAgaWYgKG1vdmVUeXBlID09PSAwIC8qIFRlbGVwb3J0TW92ZVR5cGVzLlRBUkdFVF9DSEFOR0UgKi8pIHtcclxuICAgICAgICBpbnNlcnQodm5vZGUudGFyZ2V0QW5jaG9yLCBjb250YWluZXIsIHBhcmVudEFuY2hvcik7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGVsLCBhbmNob3IsIHNoYXBlRmxhZywgY2hpbGRyZW4sIHByb3BzIH0gPSB2bm9kZTtcclxuICAgIGNvbnN0IGlzUmVvcmRlciA9IG1vdmVUeXBlID09PSAyIC8qIFRlbGVwb3J0TW92ZVR5cGVzLlJFT1JERVIgKi87XHJcbiAgICAvLyBtb3ZlIG1haW4gdmlldyBhbmNob3IgaWYgdGhpcyBpcyBhIHJlLW9yZGVyLlxyXG4gICAgaWYgKGlzUmVvcmRlcikge1xyXG4gICAgICAgIGluc2VydChlbCwgY29udGFpbmVyLCBwYXJlbnRBbmNob3IpO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgdGhpcyBpcyBhIHJlLW9yZGVyIGFuZCB0ZWxlcG9ydCBpcyBlbmFibGVkIChjb250ZW50IGlzIGluIHRhcmdldClcclxuICAgIC8vIGRvIG5vdCBtb3ZlIGNoaWxkcmVuLiBTbyB0aGUgb3Bwb3NpdGUgaXM6IG9ubHkgbW92ZSBjaGlsZHJlbiBpZiB0aGlzXHJcbiAgICAvLyBpcyBub3QgYSByZW9yZGVyLCBvciB0aGUgdGVsZXBvcnQgaXMgZGlzYWJsZWRcclxuICAgIGlmICghaXNSZW9yZGVyIHx8IGlzVGVsZXBvcnREaXNhYmxlZChwcm9wcykpIHtcclxuICAgICAgICAvLyBUZWxlcG9ydCBoYXMgZWl0aGVyIEFycmF5IGNoaWxkcmVuIG9yIG5vIGNoaWxkcmVuLlxyXG4gICAgICAgIGlmIChzaGFwZUZsYWcgJiAxNiAvKiBTaGFwZUZsYWdzLkFSUkFZX0NISUxEUkVOICovKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIG1vdmUoY2hpbGRyZW5baV0sIGNvbnRhaW5lciwgcGFyZW50QW5jaG9yLCAyIC8qIE1vdmVUeXBlLlJFT1JERVIgKi8pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gbW92ZSBtYWluIHZpZXcgYW5jaG9yIGlmIHRoaXMgaXMgYSByZS1vcmRlci5cclxuICAgIGlmIChpc1Jlb3JkZXIpIHtcclxuICAgICAgICBpbnNlcnQoYW5jaG9yLCBjb250YWluZXIsIHBhcmVudEFuY2hvcik7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gaHlkcmF0ZVRlbGVwb3J0KG5vZGUsIHZub2RlLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCwgeyBvOiB7IG5leHRTaWJsaW5nLCBwYXJlbnROb2RlLCBxdWVyeVNlbGVjdG9yIH0gfSwgaHlkcmF0ZUNoaWxkcmVuKSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSAodm5vZGUudGFyZ2V0ID0gcmVzb2x2ZVRhcmdldCh2bm9kZS5wcm9wcywgcXVlcnlTZWxlY3RvcikpO1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIC8vIGlmIG11bHRpcGxlIHRlbGVwb3J0cyByZW5kZXJlZCB0byB0aGUgc2FtZSB0YXJnZXQgZWxlbWVudCwgd2UgbmVlZCB0b1xyXG4gICAgICAgIC8vIHBpY2sgdXAgZnJvbSB3aGVyZSB0aGUgbGFzdCB0ZWxlcG9ydCBmaW5pc2hlZCBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBub2RlXHJcbiAgICAgICAgY29uc3QgdGFyZ2V0Tm9kZSA9IHRhcmdldC5fbHBhIHx8IHRhcmdldC5maXJzdENoaWxkO1xyXG4gICAgICAgIGlmICh2bm9kZS5zaGFwZUZsYWcgJiAxNiAvKiBTaGFwZUZsYWdzLkFSUkFZX0NISUxEUkVOICovKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1RlbGVwb3J0RGlzYWJsZWQodm5vZGUucHJvcHMpKSB7XHJcbiAgICAgICAgICAgICAgICB2bm9kZS5hbmNob3IgPSBoeWRyYXRlQ2hpbGRyZW4obmV4dFNpYmxpbmcobm9kZSksIHZub2RlLCBwYXJlbnROb2RlKG5vZGUpLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgICAgICB2bm9kZS50YXJnZXRBbmNob3IgPSB0YXJnZXROb2RlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdm5vZGUuYW5jaG9yID0gbmV4dFNpYmxpbmcobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBsb29rYWhlYWQgdW50aWwgd2UgZmluZCB0aGUgdGFyZ2V0IGFuY2hvclxyXG4gICAgICAgICAgICAgICAgLy8gd2UgY2Fubm90IHJlbHkgb24gcmV0dXJuIHZhbHVlIG9mIGh5ZHJhdGVDaGlsZHJlbigpIGJlY2F1c2UgdGhlcmVcclxuICAgICAgICAgICAgICAgIC8vIGNvdWxkIGJlIG5lc3RlZCB0ZWxlcG9ydHNcclxuICAgICAgICAgICAgICAgIGxldCB0YXJnZXRBbmNob3IgPSB0YXJnZXROb2RlO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHRhcmdldEFuY2hvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldEFuY2hvciA9IG5leHRTaWJsaW5nKHRhcmdldEFuY2hvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldEFuY2hvciAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBbmNob3Iubm9kZVR5cGUgPT09IDggJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QW5jaG9yLmRhdGEgPT09ICd0ZWxlcG9ydCBhbmNob3InKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZub2RlLnRhcmdldEFuY2hvciA9IHRhcmdldEFuY2hvcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Ll9scGEgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm5vZGUudGFyZ2V0QW5jaG9yICYmIG5leHRTaWJsaW5nKHZub2RlLnRhcmdldEFuY2hvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGh5ZHJhdGVDaGlsZHJlbih0YXJnZXROb2RlLCB2bm9kZSwgdGFyZ2V0LCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCBzbG90U2NvcGVJZHMsIG9wdGltaXplZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdm5vZGUuYW5jaG9yICYmIG5leHRTaWJsaW5nKHZub2RlLmFuY2hvcik7XHJcbn1cclxuLy8gRm9yY2UtY2FzdGVkIHB1YmxpYyB0eXBpbmcgZm9yIGggYW5kIFRTWCBwcm9wcyBpbmZlcmVuY2VcclxuY29uc3QgVGVsZXBvcnQgPSBUZWxlcG9ydEltcGw7XG5cbmNvbnN0IEZyYWdtZW50ID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/ICdGcmFnbWVudCcgOiB1bmRlZmluZWQpO1xyXG5jb25zdCBUZXh0ID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/ICdUZXh0JyA6IHVuZGVmaW5lZCk7XHJcbmNvbnN0IENvbW1lbnQgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gJ0NvbW1lbnQnIDogdW5kZWZpbmVkKTtcclxuY29uc3QgU3RhdGljID0gU3ltYm9sKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/ICdTdGF0aWMnIDogdW5kZWZpbmVkKTtcclxuLy8gU2luY2Ugdi1pZiBhbmQgdi1mb3IgYXJlIHRoZSB0d28gcG9zc2libGUgd2F5cyBub2RlIHN0cnVjdHVyZSBjYW4gZHluYW1pY2FsbHlcclxuLy8gY2hhbmdlLCBvbmNlIHdlIGNvbnNpZGVyIHYtaWYgYnJhbmNoZXMgYW5kIGVhY2ggdi1mb3IgZnJhZ21lbnQgYSBibG9jaywgd2VcclxuLy8gY2FuIGRpdmlkZSBhIHRlbXBsYXRlIGludG8gbmVzdGVkIGJsb2NrcywgYW5kIHdpdGhpbiBlYWNoIGJsb2NrIHRoZSBub2RlXHJcbi8vIHN0cnVjdHVyZSB3b3VsZCBiZSBzdGFibGUuIFRoaXMgYWxsb3dzIHVzIHRvIHNraXAgbW9zdCBjaGlsZHJlbiBkaWZmaW5nXHJcbi8vIGFuZCBvbmx5IHdvcnJ5IGFib3V0IHRoZSBkeW5hbWljIG5vZGVzIChpbmRpY2F0ZWQgYnkgcGF0Y2ggZmxhZ3MpLlxyXG5jb25zdCBibG9ja1N0YWNrID0gW107XHJcbmxldCBjdXJyZW50QmxvY2sgPSBudWxsO1xyXG4vKipcclxuICogT3BlbiBhIGJsb2NrLlxyXG4gKiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBgY3JlYXRlQmxvY2tgLiBJdCBjYW5ub3QgYmUgcGFydCBvZiBgY3JlYXRlQmxvY2tgXHJcbiAqIGJlY2F1c2UgdGhlIGNoaWxkcmVuIG9mIHRoZSBibG9jayBhcmUgZXZhbHVhdGVkIGJlZm9yZSBgY3JlYXRlQmxvY2tgIGl0c2VsZlxyXG4gKiBpcyBjYWxsZWQuIFRoZSBnZW5lcmF0ZWQgY29kZSB0eXBpY2FsbHkgbG9va3MgbGlrZSB0aGlzOlxyXG4gKlxyXG4gKiBgYGBqc1xyXG4gKiBmdW5jdGlvbiByZW5kZXIoKSB7XHJcbiAqICAgcmV0dXJuIChvcGVuQmxvY2soKSxjcmVhdGVCbG9jaygnZGl2JywgbnVsbCwgWy4uLl0pKVxyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKiBkaXNhYmxlVHJhY2tpbmcgaXMgdHJ1ZSB3aGVuIGNyZWF0aW5nIGEgdi1mb3IgZnJhZ21lbnQgYmxvY2ssIHNpbmNlIGEgdi1mb3JcclxuICogZnJhZ21lbnQgYWx3YXlzIGRpZmZzIGl0cyBjaGlsZHJlbi5cclxuICpcclxuICogQHByaXZhdGVcclxuICovXHJcbmZ1bmN0aW9uIG9wZW5CbG9jayhkaXNhYmxlVHJhY2tpbmcgPSBmYWxzZSkge1xyXG4gICAgYmxvY2tTdGFjay5wdXNoKChjdXJyZW50QmxvY2sgPSBkaXNhYmxlVHJhY2tpbmcgPyBudWxsIDogW10pKTtcclxufVxyXG5mdW5jdGlvbiBjbG9zZUJsb2NrKCkge1xyXG4gICAgYmxvY2tTdGFjay5wb3AoKTtcclxuICAgIGN1cnJlbnRCbG9jayA9IGJsb2NrU3RhY2tbYmxvY2tTdGFjay5sZW5ndGggLSAxXSB8fCBudWxsO1xyXG59XHJcbi8vIFdoZXRoZXIgd2Ugc2hvdWxkIGJlIHRyYWNraW5nIGR5bmFtaWMgY2hpbGQgbm9kZXMgaW5zaWRlIGEgYmxvY2suXHJcbi8vIE9ubHkgdHJhY2tzIHdoZW4gdGhpcyB2YWx1ZSBpcyA+IDBcclxuLy8gV2UgYXJlIG5vdCB1c2luZyBhIHNpbXBsZSBib29sZWFuIGJlY2F1c2UgdGhpcyB2YWx1ZSBtYXkgbmVlZCB0byBiZVxyXG4vLyBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBieSBuZXN0ZWQgdXNhZ2Ugb2Ygdi1vbmNlIChzZWUgYmVsb3cpXHJcbmxldCBpc0Jsb2NrVHJlZUVuYWJsZWQgPSAxO1xyXG4vKipcclxuICogQmxvY2sgdHJhY2tpbmcgc29tZXRpbWVzIG5lZWRzIHRvIGJlIGRpc2FibGVkLCBmb3IgZXhhbXBsZSBkdXJpbmcgdGhlXHJcbiAqIGNyZWF0aW9uIG9mIGEgdHJlZSB0aGF0IG5lZWRzIHRvIGJlIGNhY2hlZCBieSB2LW9uY2UuIFRoZSBjb21waWxlciBnZW5lcmF0ZXNcclxuICogY29kZSBsaWtlIHRoaXM6XHJcbiAqXHJcbiAqIGBgYCBqc1xyXG4gKiBfY2FjaGVbMV0gfHwgKFxyXG4gKiAgIHNldEJsb2NrVHJhY2tpbmcoLTEpLFxyXG4gKiAgIF9jYWNoZVsxXSA9IGNyZWF0ZVZOb2RlKC4uLiksXHJcbiAqICAgc2V0QmxvY2tUcmFja2luZygxKSxcclxuICogICBfY2FjaGVbMV1cclxuICogKVxyXG4gKiBgYGBcclxuICpcclxuICogQHByaXZhdGVcclxuICovXHJcbmZ1bmN0aW9uIHNldEJsb2NrVHJhY2tpbmcodmFsdWUpIHtcclxuICAgIGlzQmxvY2tUcmVlRW5hYmxlZCArPSB2YWx1ZTtcclxufVxyXG5mdW5jdGlvbiBzZXR1cEJsb2NrKHZub2RlKSB7XHJcbiAgICAvLyBzYXZlIGN1cnJlbnQgYmxvY2sgY2hpbGRyZW4gb24gdGhlIGJsb2NrIHZub2RlXHJcbiAgICB2bm9kZS5keW5hbWljQ2hpbGRyZW4gPVxyXG4gICAgICAgIGlzQmxvY2tUcmVlRW5hYmxlZCA+IDAgPyBjdXJyZW50QmxvY2sgfHwgRU1QVFlfQVJSIDogbnVsbDtcclxuICAgIC8vIGNsb3NlIGJsb2NrXHJcbiAgICBjbG9zZUJsb2NrKCk7XHJcbiAgICAvLyBhIGJsb2NrIGlzIGFsd2F5cyBnb2luZyB0byBiZSBwYXRjaGVkLCBzbyB0cmFjayBpdCBhcyBhIGNoaWxkIG9mIGl0c1xyXG4gICAgLy8gcGFyZW50IGJsb2NrXHJcbiAgICBpZiAoaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJiBjdXJyZW50QmxvY2spIHtcclxuICAgICAgICBjdXJyZW50QmxvY2sucHVzaCh2bm9kZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdm5vZGU7XHJcbn1cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50QmxvY2sodHlwZSwgcHJvcHMsIGNoaWxkcmVuLCBwYXRjaEZsYWcsIGR5bmFtaWNQcm9wcywgc2hhcGVGbGFnKSB7XHJcbiAgICByZXR1cm4gc2V0dXBCbG9jayhjcmVhdGVCYXNlVk5vZGUodHlwZSwgcHJvcHMsIGNoaWxkcmVuLCBwYXRjaEZsYWcsIGR5bmFtaWNQcm9wcywgc2hhcGVGbGFnLCB0cnVlIC8qIGlzQmxvY2sgKi8pKTtcclxufVxyXG4vKipcclxuICogQ3JlYXRlIGEgYmxvY2sgcm9vdCB2bm9kZS4gVGFrZXMgdGhlIHNhbWUgZXhhY3QgYXJndW1lbnRzIGFzIGBjcmVhdGVWTm9kZWAuXHJcbiAqIEEgYmxvY2sgcm9vdCBrZWVwcyB0cmFjayBvZiBkeW5hbWljIG5vZGVzIHdpdGhpbiB0aGUgYmxvY2sgaW4gdGhlXHJcbiAqIGBkeW5hbWljQ2hpbGRyZW5gIGFycmF5LlxyXG4gKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlQmxvY2sodHlwZSwgcHJvcHMsIGNoaWxkcmVuLCBwYXRjaEZsYWcsIGR5bmFtaWNQcm9wcykge1xyXG4gICAgcmV0dXJuIHNldHVwQmxvY2soY3JlYXRlVk5vZGUodHlwZSwgcHJvcHMsIGNoaWxkcmVuLCBwYXRjaEZsYWcsIGR5bmFtaWNQcm9wcywgdHJ1ZSAvKiBpc0Jsb2NrOiBwcmV2ZW50IGEgYmxvY2sgZnJvbSB0cmFja2luZyBpdHNlbGYgKi8pKTtcclxufVxyXG5mdW5jdGlvbiBpc1ZOb2RlKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZS5fX3ZfaXNWTm9kZSA9PT0gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcbmZ1bmN0aW9uIGlzU2FtZVZOb2RlVHlwZShuMSwgbjIpIHtcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiZcclxuICAgICAgICBuMi5zaGFwZUZsYWcgJiA2IC8qIFNoYXBlRmxhZ3MuQ09NUE9ORU5UICovICYmXHJcbiAgICAgICAgaG1yRGlydHlDb21wb25lbnRzLmhhcyhuMi50eXBlKSkge1xyXG4gICAgICAgIC8vIEhNUiBvbmx5OiBpZiB0aGUgY29tcG9uZW50IGhhcyBiZWVuIGhvdC11cGRhdGVkLCBmb3JjZSBhIHJlbG9hZC5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbjEudHlwZSA9PT0gbjIudHlwZSAmJiBuMS5rZXkgPT09IG4yLmtleTtcclxufVxyXG5sZXQgdm5vZGVBcmdzVHJhbnNmb3JtZXI7XHJcbi8qKlxyXG4gKiBJbnRlcm5hbCBBUEkgZm9yIHJlZ2lzdGVyaW5nIGFuIGFyZ3VtZW50cyB0cmFuc2Zvcm0gZm9yIGNyZWF0ZVZOb2RlXHJcbiAqIHVzZWQgZm9yIGNyZWF0aW5nIHN0dWJzIGluIHRoZSB0ZXN0LXV0aWxzXHJcbiAqIEl0IGlzICppbnRlcm5hbCogYnV0IG5lZWRzIHRvIGJlIGV4cG9zZWQgZm9yIHRlc3QtdXRpbHMgdG8gcGljayB1cCBwcm9wZXJcclxuICogdHlwaW5nc1xyXG4gKi9cclxuZnVuY3Rpb24gdHJhbnNmb3JtVk5vZGVBcmdzKHRyYW5zZm9ybWVyKSB7XHJcbiAgICB2bm9kZUFyZ3NUcmFuc2Zvcm1lciA9IHRyYW5zZm9ybWVyO1xyXG59XHJcbmNvbnN0IGNyZWF0ZVZOb2RlV2l0aEFyZ3NUcmFuc2Zvcm0gPSAoLi4uYXJncykgPT4ge1xyXG4gICAgcmV0dXJuIF9jcmVhdGVWTm9kZSguLi4odm5vZGVBcmdzVHJhbnNmb3JtZXJcclxuICAgICAgICA/IHZub2RlQXJnc1RyYW5zZm9ybWVyKGFyZ3MsIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSlcclxuICAgICAgICA6IGFyZ3MpKTtcclxufTtcclxuY29uc3QgSW50ZXJuYWxPYmplY3RLZXkgPSBgX192SW50ZXJuYWxgO1xyXG5jb25zdCBub3JtYWxpemVLZXkgPSAoeyBrZXkgfSkgPT4ga2V5ICE9IG51bGwgPyBrZXkgOiBudWxsO1xyXG5jb25zdCBub3JtYWxpemVSZWYgPSAoeyByZWYsIHJlZl9rZXksIHJlZl9mb3IgfSkgPT4ge1xyXG4gICAgcmV0dXJuIChyZWYgIT0gbnVsbFxyXG4gICAgICAgID8gaXNTdHJpbmcocmVmKSB8fCBpc1JlZihyZWYpIHx8IGlzRnVuY3Rpb24ocmVmKVxyXG4gICAgICAgICAgICA/IHsgaTogY3VycmVudFJlbmRlcmluZ0luc3RhbmNlLCByOiByZWYsIGs6IHJlZl9rZXksIGY6ICEhcmVmX2ZvciB9XHJcbiAgICAgICAgICAgIDogcmVmXHJcbiAgICAgICAgOiBudWxsKTtcclxufTtcclxuZnVuY3Rpb24gY3JlYXRlQmFzZVZOb2RlKHR5cGUsIHByb3BzID0gbnVsbCwgY2hpbGRyZW4gPSBudWxsLCBwYXRjaEZsYWcgPSAwLCBkeW5hbWljUHJvcHMgPSBudWxsLCBzaGFwZUZsYWcgPSB0eXBlID09PSBGcmFnbWVudCA/IDAgOiAxIC8qIFNoYXBlRmxhZ3MuRUxFTUVOVCAqLywgaXNCbG9ja05vZGUgPSBmYWxzZSwgbmVlZEZ1bGxDaGlsZHJlbk5vcm1hbGl6YXRpb24gPSBmYWxzZSkge1xyXG4gICAgY29uc3Qgdm5vZGUgPSB7XHJcbiAgICAgICAgX192X2lzVk5vZGU6IHRydWUsXHJcbiAgICAgICAgX192X3NraXA6IHRydWUsXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBwcm9wcyxcclxuICAgICAgICBrZXk6IHByb3BzICYmIG5vcm1hbGl6ZUtleShwcm9wcyksXHJcbiAgICAgICAgcmVmOiBwcm9wcyAmJiBub3JtYWxpemVSZWYocHJvcHMpLFxyXG4gICAgICAgIHNjb3BlSWQ6IGN1cnJlbnRTY29wZUlkLFxyXG4gICAgICAgIHNsb3RTY29wZUlkczogbnVsbCxcclxuICAgICAgICBjaGlsZHJlbixcclxuICAgICAgICBjb21wb25lbnQ6IG51bGwsXHJcbiAgICAgICAgc3VzcGVuc2U6IG51bGwsXHJcbiAgICAgICAgc3NDb250ZW50OiBudWxsLFxyXG4gICAgICAgIHNzRmFsbGJhY2s6IG51bGwsXHJcbiAgICAgICAgZGlyczogbnVsbCxcclxuICAgICAgICB0cmFuc2l0aW9uOiBudWxsLFxyXG4gICAgICAgIGVsOiBudWxsLFxyXG4gICAgICAgIGFuY2hvcjogbnVsbCxcclxuICAgICAgICB0YXJnZXQ6IG51bGwsXHJcbiAgICAgICAgdGFyZ2V0QW5jaG9yOiBudWxsLFxyXG4gICAgICAgIHN0YXRpY0NvdW50OiAwLFxyXG4gICAgICAgIHNoYXBlRmxhZyxcclxuICAgICAgICBwYXRjaEZsYWcsXHJcbiAgICAgICAgZHluYW1pY1Byb3BzLFxyXG4gICAgICAgIGR5bmFtaWNDaGlsZHJlbjogbnVsbCxcclxuICAgICAgICBhcHBDb250ZXh0OiBudWxsXHJcbiAgICB9O1xyXG4gICAgaWYgKG5lZWRGdWxsQ2hpbGRyZW5Ob3JtYWxpemF0aW9uKSB7XHJcbiAgICAgICAgbm9ybWFsaXplQ2hpbGRyZW4odm5vZGUsIGNoaWxkcmVuKTtcclxuICAgICAgICAvLyBub3JtYWxpemUgc3VzcGVuc2UgY2hpbGRyZW5cclxuICAgICAgICBpZiAoc2hhcGVGbGFnICYgMTI4IC8qIFNoYXBlRmxhZ3MuU1VTUEVOU0UgKi8pIHtcclxuICAgICAgICAgICAgdHlwZS5ub3JtYWxpemUodm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgICAgLy8gY29tcGlsZWQgZWxlbWVudCB2bm9kZSAtIGlmIGNoaWxkcmVuIGlzIHBhc3NlZCwgb25seSBwb3NzaWJsZSB0eXBlcyBhcmVcclxuICAgICAgICAvLyBzdHJpbmcgb3IgQXJyYXkuXHJcbiAgICAgICAgdm5vZGUuc2hhcGVGbGFnIHw9IGlzU3RyaW5nKGNoaWxkcmVuKVxyXG4gICAgICAgICAgICA/IDggLyogU2hhcGVGbGFncy5URVhUX0NISUxEUkVOICovXHJcbiAgICAgICAgICAgIDogMTYgLyogU2hhcGVGbGFncy5BUlJBWV9DSElMRFJFTiAqLztcclxuICAgIH1cclxuICAgIC8vIHZhbGlkYXRlIGtleVxyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiB2bm9kZS5rZXkgIT09IHZub2RlLmtleSkge1xyXG4gICAgICAgIHdhcm4oYFZOb2RlIGNyZWF0ZWQgd2l0aCBpbnZhbGlkIGtleSAoTmFOKS4gVk5vZGUgdHlwZTpgLCB2bm9kZS50eXBlKTtcclxuICAgIH1cclxuICAgIC8vIHRyYWNrIHZub2RlIGZvciBibG9jayB0cmVlXHJcbiAgICBpZiAoaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJlxyXG4gICAgICAgIC8vIGF2b2lkIGEgYmxvY2sgbm9kZSBmcm9tIHRyYWNraW5nIGl0c2VsZlxyXG4gICAgICAgICFpc0Jsb2NrTm9kZSAmJlxyXG4gICAgICAgIC8vIGhhcyBjdXJyZW50IHBhcmVudCBibG9ja1xyXG4gICAgICAgIGN1cnJlbnRCbG9jayAmJlxyXG4gICAgICAgIC8vIHByZXNlbmNlIG9mIGEgcGF0Y2ggZmxhZyBpbmRpY2F0ZXMgdGhpcyBub2RlIG5lZWRzIHBhdGNoaW5nIG9uIHVwZGF0ZXMuXHJcbiAgICAgICAgLy8gY29tcG9uZW50IG5vZGVzIGFsc28gc2hvdWxkIGFsd2F5cyBiZSBwYXRjaGVkLCBiZWNhdXNlIGV2ZW4gaWYgdGhlXHJcbiAgICAgICAgLy8gY29tcG9uZW50IGRvZXNuJ3QgbmVlZCB0byB1cGRhdGUsIGl0IG5lZWRzIHRvIHBlcnNpc3QgdGhlIGluc3RhbmNlIG9uIHRvXHJcbiAgICAgICAgLy8gdGhlIG5leHQgdm5vZGUgc28gdGhhdCBpdCBjYW4gYmUgcHJvcGVybHkgdW5tb3VudGVkIGxhdGVyLlxyXG4gICAgICAgICh2bm9kZS5wYXRjaEZsYWcgPiAwIHx8IHNoYXBlRmxhZyAmIDYgLyogU2hhcGVGbGFncy5DT01QT05FTlQgKi8pICYmXHJcbiAgICAgICAgLy8gdGhlIEVWRU5UUyBmbGFnIGlzIG9ubHkgZm9yIGh5ZHJhdGlvbiBhbmQgaWYgaXQgaXMgdGhlIG9ubHkgZmxhZywgdGhlXHJcbiAgICAgICAgLy8gdm5vZGUgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGR5bmFtaWMgZHVlIHRvIGhhbmRsZXIgY2FjaGluZy5cclxuICAgICAgICB2bm9kZS5wYXRjaEZsYWcgIT09IDMyIC8qIFBhdGNoRmxhZ3MuSFlEUkFURV9FVkVOVFMgKi8pIHtcclxuICAgICAgICBjdXJyZW50QmxvY2sucHVzaCh2bm9kZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdm5vZGU7XHJcbn1cclxuY29uc3QgY3JlYXRlVk5vZGUgPSAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gY3JlYXRlVk5vZGVXaXRoQXJnc1RyYW5zZm9ybSA6IF9jcmVhdGVWTm9kZSk7XHJcbmZ1bmN0aW9uIF9jcmVhdGVWTm9kZSh0eXBlLCBwcm9wcyA9IG51bGwsIGNoaWxkcmVuID0gbnVsbCwgcGF0Y2hGbGFnID0gMCwgZHluYW1pY1Byb3BzID0gbnVsbCwgaXNCbG9ja05vZGUgPSBmYWxzZSkge1xyXG4gICAgaWYgKCF0eXBlIHx8IHR5cGUgPT09IE5VTExfRFlOQU1JQ19DT01QT05FTlQpIHtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICF0eXBlKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYEludmFsaWQgdm5vZGUgdHlwZSB3aGVuIGNyZWF0aW5nIHZub2RlOiAke3R5cGV9LmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0eXBlID0gQ29tbWVudDtcclxuICAgIH1cclxuICAgIGlmIChpc1ZOb2RlKHR5cGUpKSB7XHJcbiAgICAgICAgLy8gY3JlYXRlVk5vZGUgcmVjZWl2aW5nIGFuIGV4aXN0aW5nIHZub2RlLiBUaGlzIGhhcHBlbnMgaW4gY2FzZXMgbGlrZVxyXG4gICAgICAgIC8vIDxjb21wb25lbnQgOmlzPVwidm5vZGVcIi8+XHJcbiAgICAgICAgLy8gIzIwNzggbWFrZSBzdXJlIHRvIG1lcmdlIHJlZnMgZHVyaW5nIHRoZSBjbG9uZSBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIGl0XHJcbiAgICAgICAgY29uc3QgY2xvbmVkID0gY2xvbmVWTm9kZSh0eXBlLCBwcm9wcywgdHJ1ZSAvKiBtZXJnZVJlZjogdHJ1ZSAqLyk7XHJcbiAgICAgICAgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIG5vcm1hbGl6ZUNoaWxkcmVuKGNsb25lZCwgY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNCbG9ja1RyZWVFbmFibGVkID4gMCAmJiAhaXNCbG9ja05vZGUgJiYgY3VycmVudEJsb2NrKSB7XHJcbiAgICAgICAgICAgIGlmIChjbG9uZWQuc2hhcGVGbGFnICYgNiAvKiBTaGFwZUZsYWdzLkNPTVBPTkVOVCAqLykge1xyXG4gICAgICAgICAgICAgICAgY3VycmVudEJsb2NrW2N1cnJlbnRCbG9jay5pbmRleE9mKHR5cGUpXSA9IGNsb25lZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRCbG9jay5wdXNoKGNsb25lZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2xvbmVkLnBhdGNoRmxhZyB8PSAtMiAvKiBQYXRjaEZsYWdzLkJBSUwgKi87XHJcbiAgICAgICAgcmV0dXJuIGNsb25lZDtcclxuICAgIH1cclxuICAgIC8vIGNsYXNzIGNvbXBvbmVudCBub3JtYWxpemF0aW9uLlxyXG4gICAgaWYgKGlzQ2xhc3NDb21wb25lbnQodHlwZSkpIHtcclxuICAgICAgICB0eXBlID0gdHlwZS5fX3ZjY09wdHM7XHJcbiAgICB9XHJcbiAgICAvLyBjbGFzcyAmIHN0eWxlIG5vcm1hbGl6YXRpb24uXHJcbiAgICBpZiAocHJvcHMpIHtcclxuICAgICAgICAvLyBmb3IgcmVhY3RpdmUgb3IgcHJveHkgb2JqZWN0cywgd2UgbmVlZCB0byBjbG9uZSBpdCB0byBlbmFibGUgbXV0YXRpb24uXHJcbiAgICAgICAgcHJvcHMgPSBndWFyZFJlYWN0aXZlUHJvcHMocHJvcHMpO1xyXG4gICAgICAgIGxldCB7IGNsYXNzOiBrbGFzcywgc3R5bGUgfSA9IHByb3BzO1xyXG4gICAgICAgIGlmIChrbGFzcyAmJiAhaXNTdHJpbmcoa2xhc3MpKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmNsYXNzID0gbm9ybWFsaXplQ2xhc3Moa2xhc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNPYmplY3Qoc3R5bGUpKSB7XHJcbiAgICAgICAgICAgIC8vIHJlYWN0aXZlIHN0YXRlIG9iamVjdHMgbmVlZCB0byBiZSBjbG9uZWQgc2luY2UgdGhleSBhcmUgbGlrZWx5IHRvIGJlXHJcbiAgICAgICAgICAgIC8vIG11dGF0ZWRcclxuICAgICAgICAgICAgaWYgKGlzUHJveHkoc3R5bGUpICYmICFpc0FycmF5KHN0eWxlKSkge1xyXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBleHRlbmQoe30sIHN0eWxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwcm9wcy5zdHlsZSA9IG5vcm1hbGl6ZVN0eWxlKHN0eWxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBlbmNvZGUgdGhlIHZub2RlIHR5cGUgaW5mb3JtYXRpb24gaW50byBhIGJpdG1hcFxyXG4gICAgY29uc3Qgc2hhcGVGbGFnID0gaXNTdHJpbmcodHlwZSlcclxuICAgICAgICA/IDEgLyogU2hhcGVGbGFncy5FTEVNRU5UICovXHJcbiAgICAgICAgOiBpc1N1c3BlbnNlKHR5cGUpXHJcbiAgICAgICAgICAgID8gMTI4IC8qIFNoYXBlRmxhZ3MuU1VTUEVOU0UgKi9cclxuICAgICAgICAgICAgOiBpc1RlbGVwb3J0KHR5cGUpXHJcbiAgICAgICAgICAgICAgICA/IDY0IC8qIFNoYXBlRmxhZ3MuVEVMRVBPUlQgKi9cclxuICAgICAgICAgICAgICAgIDogaXNPYmplY3QodHlwZSlcclxuICAgICAgICAgICAgICAgICAgICA/IDQgLyogU2hhcGVGbGFncy5TVEFURUZVTF9DT01QT05FTlQgKi9cclxuICAgICAgICAgICAgICAgICAgICA6IGlzRnVuY3Rpb24odHlwZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAyIC8qIFNoYXBlRmxhZ3MuRlVOQ1RJT05BTF9DT01QT05FTlQgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiBzaGFwZUZsYWcgJiA0IC8qIFNoYXBlRmxhZ3MuU1RBVEVGVUxfQ09NUE9ORU5UICovICYmIGlzUHJveHkodHlwZSkpIHtcclxuICAgICAgICB0eXBlID0gdG9SYXcodHlwZSk7XHJcbiAgICAgICAgd2FybihgVnVlIHJlY2VpdmVkIGEgQ29tcG9uZW50IHdoaWNoIHdhcyBtYWRlIGEgcmVhY3RpdmUgb2JqZWN0LiBUaGlzIGNhbiBgICtcclxuICAgICAgICAgICAgYGxlYWQgdG8gdW5uZWNlc3NhcnkgcGVyZm9ybWFuY2Ugb3ZlcmhlYWQsIGFuZCBzaG91bGQgYmUgYXZvaWRlZCBieSBgICtcclxuICAgICAgICAgICAgYG1hcmtpbmcgdGhlIGNvbXBvbmVudCB3aXRoIFxcYG1hcmtSYXdcXGAgb3IgdXNpbmcgXFxgc2hhbGxvd1JlZlxcYCBgICtcclxuICAgICAgICAgICAgYGluc3RlYWQgb2YgXFxgcmVmXFxgLmAsIGBcXG5Db21wb25lbnQgdGhhdCB3YXMgbWFkZSByZWFjdGl2ZTogYCwgdHlwZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3JlYXRlQmFzZVZOb2RlKHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgcGF0Y2hGbGFnLCBkeW5hbWljUHJvcHMsIHNoYXBlRmxhZywgaXNCbG9ja05vZGUsIHRydWUpO1xyXG59XHJcbmZ1bmN0aW9uIGd1YXJkUmVhY3RpdmVQcm9wcyhwcm9wcykge1xyXG4gICAgaWYgKCFwcm9wcylcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiBpc1Byb3h5KHByb3BzKSB8fCBJbnRlcm5hbE9iamVjdEtleSBpbiBwcm9wc1xyXG4gICAgICAgID8gZXh0ZW5kKHt9LCBwcm9wcylcclxuICAgICAgICA6IHByb3BzO1xyXG59XHJcbmZ1bmN0aW9uIGNsb25lVk5vZGUodm5vZGUsIGV4dHJhUHJvcHMsIG1lcmdlUmVmID0gZmFsc2UpIHtcclxuICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBOT1QgdXNpbmcgc3ByZWFkIG9yIGV4dGVuZCB0byBhdm9pZCB0aGUgcnVudGltZVxyXG4gICAgLy8ga2V5IGVudW1lcmF0aW9uIGNvc3QuXHJcbiAgICBjb25zdCB7IHByb3BzLCByZWYsIHBhdGNoRmxhZywgY2hpbGRyZW4gfSA9IHZub2RlO1xyXG4gICAgY29uc3QgbWVyZ2VkUHJvcHMgPSBleHRyYVByb3BzID8gbWVyZ2VQcm9wcyhwcm9wcyB8fCB7fSwgZXh0cmFQcm9wcykgOiBwcm9wcztcclxuICAgIGNvbnN0IGNsb25lZCA9IHtcclxuICAgICAgICBfX3ZfaXNWTm9kZTogdHJ1ZSxcclxuICAgICAgICBfX3Zfc2tpcDogdHJ1ZSxcclxuICAgICAgICB0eXBlOiB2bm9kZS50eXBlLFxyXG4gICAgICAgIHByb3BzOiBtZXJnZWRQcm9wcyxcclxuICAgICAgICBrZXk6IG1lcmdlZFByb3BzICYmIG5vcm1hbGl6ZUtleShtZXJnZWRQcm9wcyksXHJcbiAgICAgICAgcmVmOiBleHRyYVByb3BzICYmIGV4dHJhUHJvcHMucmVmXHJcbiAgICAgICAgICAgID8gLy8gIzIwNzggaW4gdGhlIGNhc2Ugb2YgPGNvbXBvbmVudCA6aXM9XCJ2bm9kZVwiIHJlZj1cImV4dHJhXCIvPlxyXG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHZub2RlIGl0c2VsZiBhbHJlYWR5IGhhcyBhIHJlZiwgY2xvbmVWTm9kZSB3aWxsIG5lZWQgdG8gbWVyZ2VcclxuICAgICAgICAgICAgICAgIC8vIHRoZSByZWZzIHNvIHRoZSBzaW5nbGUgdm5vZGUgY2FuIGJlIHNldCBvbiBtdWx0aXBsZSByZWZzXHJcbiAgICAgICAgICAgICAgICBtZXJnZVJlZiAmJiByZWZcclxuICAgICAgICAgICAgICAgICAgICA/IGlzQXJyYXkocmVmKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJlZi5jb25jYXQobm9ybWFsaXplUmVmKGV4dHJhUHJvcHMpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFtyZWYsIG5vcm1hbGl6ZVJlZihleHRyYVByb3BzKV1cclxuICAgICAgICAgICAgICAgICAgICA6IG5vcm1hbGl6ZVJlZihleHRyYVByb3BzKVxyXG4gICAgICAgICAgICA6IHJlZixcclxuICAgICAgICBzY29wZUlkOiB2bm9kZS5zY29wZUlkLFxyXG4gICAgICAgIHNsb3RTY29wZUlkczogdm5vZGUuc2xvdFNjb3BlSWRzLFxyXG4gICAgICAgIGNoaWxkcmVuOiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgcGF0Y2hGbGFnID09PSAtMSAvKiBQYXRjaEZsYWdzLkhPSVNURUQgKi8gJiYgaXNBcnJheShjaGlsZHJlbilcclxuICAgICAgICAgICAgPyBjaGlsZHJlbi5tYXAoZGVlcENsb25lVk5vZGUpXHJcbiAgICAgICAgICAgIDogY2hpbGRyZW4sXHJcbiAgICAgICAgdGFyZ2V0OiB2bm9kZS50YXJnZXQsXHJcbiAgICAgICAgdGFyZ2V0QW5jaG9yOiB2bm9kZS50YXJnZXRBbmNob3IsXHJcbiAgICAgICAgc3RhdGljQ291bnQ6IHZub2RlLnN0YXRpY0NvdW50LFxyXG4gICAgICAgIHNoYXBlRmxhZzogdm5vZGUuc2hhcGVGbGFnLFxyXG4gICAgICAgIC8vIGlmIHRoZSB2bm9kZSBpcyBjbG9uZWQgd2l0aCBleHRyYSBwcm9wcywgd2UgY2FuIG5vIGxvbmdlciBhc3N1bWUgaXRzXHJcbiAgICAgICAgLy8gZXhpc3RpbmcgcGF0Y2ggZmxhZyB0byBiZSByZWxpYWJsZSBhbmQgbmVlZCB0byBhZGQgdGhlIEZVTExfUFJPUFMgZmxhZy5cclxuICAgICAgICAvLyBub3RlOiBwcmVzZXJ2ZSBmbGFnIGZvciBmcmFnbWVudHMgc2luY2UgdGhleSB1c2UgdGhlIGZsYWcgZm9yIGNoaWxkcmVuXHJcbiAgICAgICAgLy8gZmFzdCBwYXRocyBvbmx5LlxyXG4gICAgICAgIHBhdGNoRmxhZzogZXh0cmFQcm9wcyAmJiB2bm9kZS50eXBlICE9PSBGcmFnbWVudFxyXG4gICAgICAgICAgICA/IHBhdGNoRmxhZyA9PT0gLTEgLy8gaG9pc3RlZCBub2RlXHJcbiAgICAgICAgICAgICAgICA/IDE2IC8qIFBhdGNoRmxhZ3MuRlVMTF9QUk9QUyAqL1xyXG4gICAgICAgICAgICAgICAgOiBwYXRjaEZsYWcgfCAxNiAvKiBQYXRjaEZsYWdzLkZVTExfUFJPUFMgKi9cclxuICAgICAgICAgICAgOiBwYXRjaEZsYWcsXHJcbiAgICAgICAgZHluYW1pY1Byb3BzOiB2bm9kZS5keW5hbWljUHJvcHMsXHJcbiAgICAgICAgZHluYW1pY0NoaWxkcmVuOiB2bm9kZS5keW5hbWljQ2hpbGRyZW4sXHJcbiAgICAgICAgYXBwQ29udGV4dDogdm5vZGUuYXBwQ29udGV4dCxcclxuICAgICAgICBkaXJzOiB2bm9kZS5kaXJzLFxyXG4gICAgICAgIHRyYW5zaXRpb246IHZub2RlLnRyYW5zaXRpb24sXHJcbiAgICAgICAgLy8gVGhlc2Ugc2hvdWxkIHRlY2huaWNhbGx5IG9ubHkgYmUgbm9uLW51bGwgb24gbW91bnRlZCBWTm9kZXMuIEhvd2V2ZXIsXHJcbiAgICAgICAgLy8gdGhleSAqc2hvdWxkKiBiZSBjb3BpZWQgZm9yIGtlcHQtYWxpdmUgdm5vZGVzLiBTbyB3ZSBqdXN0IGFsd2F5cyBjb3B5XHJcbiAgICAgICAgLy8gdGhlbSBzaW5jZSB0aGVtIGJlaW5nIG5vbi1udWxsIGR1cmluZyBhIG1vdW50IGRvZXNuJ3QgYWZmZWN0IHRoZSBsb2dpYyBhc1xyXG4gICAgICAgIC8vIHRoZXkgd2lsbCBzaW1wbHkgYmUgb3ZlcndyaXR0ZW4uXHJcbiAgICAgICAgY29tcG9uZW50OiB2bm9kZS5jb21wb25lbnQsXHJcbiAgICAgICAgc3VzcGVuc2U6IHZub2RlLnN1c3BlbnNlLFxyXG4gICAgICAgIHNzQ29udGVudDogdm5vZGUuc3NDb250ZW50ICYmIGNsb25lVk5vZGUodm5vZGUuc3NDb250ZW50KSxcclxuICAgICAgICBzc0ZhbGxiYWNrOiB2bm9kZS5zc0ZhbGxiYWNrICYmIGNsb25lVk5vZGUodm5vZGUuc3NGYWxsYmFjayksXHJcbiAgICAgICAgZWw6IHZub2RlLmVsLFxyXG4gICAgICAgIGFuY2hvcjogdm5vZGUuYW5jaG9yXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNsb25lZDtcclxufVxyXG4vKipcclxuICogRGV2IG9ubHksIGZvciBITVIgb2YgaG9pc3RlZCB2bm9kZXMgcmV1c2VkIGluIHYtZm9yXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS92aXRlanMvdml0ZS9pc3N1ZXMvMjAyMlxyXG4gKi9cclxuZnVuY3Rpb24gZGVlcENsb25lVk5vZGUodm5vZGUpIHtcclxuICAgIGNvbnN0IGNsb25lZCA9IGNsb25lVk5vZGUodm5vZGUpO1xyXG4gICAgaWYgKGlzQXJyYXkodm5vZGUuY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgY2xvbmVkLmNoaWxkcmVuID0gdm5vZGUuY2hpbGRyZW4ubWFwKGRlZXBDbG9uZVZOb2RlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjbG9uZWQ7XHJcbn1cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVUZXh0Vk5vZGUodGV4dCA9ICcgJywgZmxhZyA9IDApIHtcclxuICAgIHJldHVybiBjcmVhdGVWTm9kZShUZXh0LCBudWxsLCB0ZXh0LCBmbGFnKTtcclxufVxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZVN0YXRpY1ZOb2RlKGNvbnRlbnQsIG51bWJlck9mTm9kZXMpIHtcclxuICAgIC8vIEEgc3RhdGljIHZub2RlIGNhbiBjb250YWluIG11bHRpcGxlIHN0cmluZ2lmaWVkIGVsZW1lbnRzLCBhbmQgdGhlIG51bWJlclxyXG4gICAgLy8gb2YgZWxlbWVudHMgaXMgbmVjZXNzYXJ5IGZvciBoeWRyYXRpb24uXHJcbiAgICBjb25zdCB2bm9kZSA9IGNyZWF0ZVZOb2RlKFN0YXRpYywgbnVsbCwgY29udGVudCk7XHJcbiAgICB2bm9kZS5zdGF0aWNDb3VudCA9IG51bWJlck9mTm9kZXM7XHJcbiAgICByZXR1cm4gdm5vZGU7XHJcbn1cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVDb21tZW50Vk5vZGUodGV4dCA9ICcnLCBcclxuLy8gd2hlbiB1c2VkIGFzIHRoZSB2LWVsc2UgYnJhbmNoLCB0aGUgY29tbWVudCBub2RlIG11c3QgYmUgY3JlYXRlZCBhcyBhXHJcbi8vIGJsb2NrIHRvIGVuc3VyZSBjb3JyZWN0IHVwZGF0ZXMuXHJcbmFzQmxvY2sgPSBmYWxzZSkge1xyXG4gICAgcmV0dXJuIGFzQmxvY2tcclxuICAgICAgICA/IChvcGVuQmxvY2soKSwgY3JlYXRlQmxvY2soQ29tbWVudCwgbnVsbCwgdGV4dCkpXHJcbiAgICAgICAgOiBjcmVhdGVWTm9kZShDb21tZW50LCBudWxsLCB0ZXh0KTtcclxufVxyXG5mdW5jdGlvbiBub3JtYWxpemVWTm9kZShjaGlsZCkge1xyXG4gICAgaWYgKGNoaWxkID09IG51bGwgfHwgdHlwZW9mIGNoaWxkID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICAvLyBlbXB0eSBwbGFjZWhvbGRlclxyXG4gICAgICAgIHJldHVybiBjcmVhdGVWTm9kZShDb21tZW50KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzQXJyYXkoY2hpbGQpKSB7XHJcbiAgICAgICAgLy8gZnJhZ21lbnRcclxuICAgICAgICByZXR1cm4gY3JlYXRlVk5vZGUoRnJhZ21lbnQsIG51bGwsIFxyXG4gICAgICAgIC8vICMzNjY2LCBhdm9pZCByZWZlcmVuY2UgcG9sbHV0aW9uIHdoZW4gcmV1c2luZyB2bm9kZVxyXG4gICAgICAgIGNoaWxkLnNsaWNlKCkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIC8vIGFscmVhZHkgdm5vZGUsIHRoaXMgc2hvdWxkIGJlIHRoZSBtb3N0IGNvbW1vbiBzaW5jZSBjb21waWxlZCB0ZW1wbGF0ZXNcclxuICAgICAgICAvLyBhbHdheXMgcHJvZHVjZSBhbGwtdm5vZGUgY2hpbGRyZW4gYXJyYXlzXHJcbiAgICAgICAgcmV0dXJuIGNsb25lSWZNb3VudGVkKGNoaWxkKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIHN0cmluZ3MgYW5kIG51bWJlcnNcclxuICAgICAgICByZXR1cm4gY3JlYXRlVk5vZGUoVGV4dCwgbnVsbCwgU3RyaW5nKGNoaWxkKSk7XHJcbiAgICB9XHJcbn1cclxuLy8gb3B0aW1pemVkIG5vcm1hbGl6YXRpb24gZm9yIHRlbXBsYXRlLWNvbXBpbGVkIHJlbmRlciBmbnNcclxuZnVuY3Rpb24gY2xvbmVJZk1vdW50ZWQoY2hpbGQpIHtcclxuICAgIHJldHVybiBjaGlsZC5lbCA9PT0gbnVsbCB8fCBjaGlsZC5tZW1vID8gY2hpbGQgOiBjbG9uZVZOb2RlKGNoaWxkKTtcclxufVxyXG5mdW5jdGlvbiBub3JtYWxpemVDaGlsZHJlbih2bm9kZSwgY2hpbGRyZW4pIHtcclxuICAgIGxldCB0eXBlID0gMDtcclxuICAgIGNvbnN0IHsgc2hhcGVGbGFnIH0gPSB2bm9kZTtcclxuICAgIGlmIChjaGlsZHJlbiA9PSBudWxsKSB7XHJcbiAgICAgICAgY2hpbGRyZW4gPSBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgICB0eXBlID0gMTYgLyogU2hhcGVGbGFncy5BUlJBWV9DSElMRFJFTiAqLztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpZiAoc2hhcGVGbGFnICYgKDEgLyogU2hhcGVGbGFncy5FTEVNRU5UICovIHwgNjQgLyogU2hhcGVGbGFncy5URUxFUE9SVCAqLykpIHtcclxuICAgICAgICAgICAgLy8gTm9ybWFsaXplIHNsb3QgdG8gcGxhaW4gY2hpbGRyZW4gZm9yIHBsYWluIGVsZW1lbnQgYW5kIFRlbGVwb3J0XHJcbiAgICAgICAgICAgIGNvbnN0IHNsb3QgPSBjaGlsZHJlbi5kZWZhdWx0O1xyXG4gICAgICAgICAgICBpZiAoc2xvdCkge1xyXG4gICAgICAgICAgICAgICAgLy8gX2MgbWFya2VyIGlzIGFkZGVkIGJ5IHdpdGhDdHgoKSBpbmRpY2F0aW5nIHRoaXMgaXMgYSBjb21waWxlZCBzbG90XHJcbiAgICAgICAgICAgICAgICBzbG90Ll9jICYmIChzbG90Ll9kID0gZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgbm9ybWFsaXplQ2hpbGRyZW4odm5vZGUsIHNsb3QoKSk7XHJcbiAgICAgICAgICAgICAgICBzbG90Ll9jICYmIChzbG90Ll9kID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdHlwZSA9IDMyIC8qIFNoYXBlRmxhZ3MuU0xPVFNfQ0hJTERSRU4gKi87XHJcbiAgICAgICAgICAgIGNvbnN0IHNsb3RGbGFnID0gY2hpbGRyZW4uXztcclxuICAgICAgICAgICAgaWYgKCFzbG90RmxhZyAmJiAhKEludGVybmFsT2JqZWN0S2V5IGluIGNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW4uX2N0eCA9IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChzbG90RmxhZyA9PT0gMyAvKiBTbG90RmxhZ3MuRk9SV0FSREVEICovICYmIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gYSBjaGlsZCBjb21wb25lbnQgcmVjZWl2ZXMgZm9yd2FyZGVkIHNsb3RzIGZyb20gdGhlIHBhcmVudC5cclxuICAgICAgICAgICAgICAgIC8vIGl0cyBzbG90IHR5cGUgaXMgZGV0ZXJtaW5lZCBieSBpdHMgcGFyZW50J3Mgc2xvdCB0eXBlLlxyXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZS5zbG90cy5fID09PSAxIC8qIFNsb3RGbGFncy5TVEFCTEUgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5fID0gMSAvKiBTbG90RmxhZ3MuU1RBQkxFICovO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4uXyA9IDIgLyogU2xvdEZsYWdzLkRZTkFNSUMgKi87XHJcbiAgICAgICAgICAgICAgICAgICAgdm5vZGUucGF0Y2hGbGFnIHw9IDEwMjQgLyogUGF0Y2hGbGFncy5EWU5BTUlDX1NMT1RTICovO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNGdW5jdGlvbihjaGlsZHJlbikpIHtcclxuICAgICAgICBjaGlsZHJlbiA9IHsgZGVmYXVsdDogY2hpbGRyZW4sIF9jdHg6IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSB9O1xyXG4gICAgICAgIHR5cGUgPSAzMiAvKiBTaGFwZUZsYWdzLlNMT1RTX0NISUxEUkVOICovO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY2hpbGRyZW4gPSBTdHJpbmcoY2hpbGRyZW4pO1xyXG4gICAgICAgIC8vIGZvcmNlIHRlbGVwb3J0IGNoaWxkcmVuIHRvIGFycmF5IHNvIGl0IGNhbiBiZSBtb3ZlZCBhcm91bmRcclxuICAgICAgICBpZiAoc2hhcGVGbGFnICYgNjQgLyogU2hhcGVGbGFncy5URUxFUE9SVCAqLykge1xyXG4gICAgICAgICAgICB0eXBlID0gMTYgLyogU2hhcGVGbGFncy5BUlJBWV9DSElMRFJFTiAqLztcclxuICAgICAgICAgICAgY2hpbGRyZW4gPSBbY3JlYXRlVGV4dFZOb2RlKGNoaWxkcmVuKV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0eXBlID0gOCAvKiBTaGFwZUZsYWdzLlRFWFRfQ0hJTERSRU4gKi87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdm5vZGUuY2hpbGRyZW4gPSBjaGlsZHJlbjtcclxuICAgIHZub2RlLnNoYXBlRmxhZyB8PSB0eXBlO1xyXG59XHJcbmZ1bmN0aW9uIG1lcmdlUHJvcHMoLi4uYXJncykge1xyXG4gICAgY29uc3QgcmV0ID0ge307XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCB0b01lcmdlID0gYXJnc1tpXTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0b01lcmdlKSB7XHJcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdjbGFzcycpIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXQuY2xhc3MgIT09IHRvTWVyZ2UuY2xhc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXQuY2xhc3MgPSBub3JtYWxpemVDbGFzcyhbcmV0LmNsYXNzLCB0b01lcmdlLmNsYXNzXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoa2V5ID09PSAnc3R5bGUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXQuc3R5bGUgPSBub3JtYWxpemVTdHlsZShbcmV0LnN0eWxlLCB0b01lcmdlLnN0eWxlXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaXNPbihrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IHJldFtrZXldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5jb21pbmcgPSB0b01lcmdlW2tleV07XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5jb21pbmcgJiZcclxuICAgICAgICAgICAgICAgICAgICBleGlzdGluZyAhPT0gaW5jb21pbmcgJiZcclxuICAgICAgICAgICAgICAgICAgICAhKGlzQXJyYXkoZXhpc3RpbmcpICYmIGV4aXN0aW5nLmluY2x1ZGVzKGluY29taW5nKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXRba2V5XSA9IGV4aXN0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gW10uY29uY2F0KGV4aXN0aW5nLCBpbmNvbWluZylcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpbmNvbWluZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChrZXkgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICByZXRba2V5XSA9IHRvTWVyZ2Vba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXQ7XHJcbn1cclxuZnVuY3Rpb24gaW52b2tlVk5vZGVIb29rKGhvb2ssIGluc3RhbmNlLCB2bm9kZSwgcHJldlZOb2RlID0gbnVsbCkge1xyXG4gICAgY2FsbFdpdGhBc3luY0Vycm9ySGFuZGxpbmcoaG9vaywgaW5zdGFuY2UsIDcgLyogRXJyb3JDb2Rlcy5WTk9ERV9IT09LICovLCBbXHJcbiAgICAgICAgdm5vZGUsXHJcbiAgICAgICAgcHJldlZOb2RlXHJcbiAgICBdKTtcclxufVxuXG5jb25zdCBlbXB0eUFwcENvbnRleHQgPSBjcmVhdGVBcHBDb250ZXh0KCk7XHJcbmxldCB1aWQkMSA9IDA7XHJcbmZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudEluc3RhbmNlKHZub2RlLCBwYXJlbnQsIHN1c3BlbnNlKSB7XHJcbiAgICBjb25zdCB0eXBlID0gdm5vZGUudHlwZTtcclxuICAgIC8vIGluaGVyaXQgcGFyZW50IGFwcCBjb250ZXh0IC0gb3IgLSBpZiByb290LCBhZG9wdCBmcm9tIHJvb3Qgdm5vZGVcclxuICAgIGNvbnN0IGFwcENvbnRleHQgPSAocGFyZW50ID8gcGFyZW50LmFwcENvbnRleHQgOiB2bm9kZS5hcHBDb250ZXh0KSB8fCBlbXB0eUFwcENvbnRleHQ7XHJcbiAgICBjb25zdCBpbnN0YW5jZSA9IHtcclxuICAgICAgICB1aWQ6IHVpZCQxKyssXHJcbiAgICAgICAgdm5vZGUsXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBwYXJlbnQsXHJcbiAgICAgICAgYXBwQ29udGV4dCxcclxuICAgICAgICByb290OiBudWxsLFxyXG4gICAgICAgIG5leHQ6IG51bGwsXHJcbiAgICAgICAgc3ViVHJlZTogbnVsbCxcclxuICAgICAgICBlZmZlY3Q6IG51bGwsXHJcbiAgICAgICAgdXBkYXRlOiBudWxsLFxyXG4gICAgICAgIHNjb3BlOiBuZXcgRWZmZWN0U2NvcGUodHJ1ZSAvKiBkZXRhY2hlZCAqLyksXHJcbiAgICAgICAgcmVuZGVyOiBudWxsLFxyXG4gICAgICAgIHByb3h5OiBudWxsLFxyXG4gICAgICAgIGV4cG9zZWQ6IG51bGwsXHJcbiAgICAgICAgZXhwb3NlUHJveHk6IG51bGwsXHJcbiAgICAgICAgd2l0aFByb3h5OiBudWxsLFxyXG4gICAgICAgIHByb3ZpZGVzOiBwYXJlbnQgPyBwYXJlbnQucHJvdmlkZXMgOiBPYmplY3QuY3JlYXRlKGFwcENvbnRleHQucHJvdmlkZXMpLFxyXG4gICAgICAgIGFjY2Vzc0NhY2hlOiBudWxsLFxyXG4gICAgICAgIHJlbmRlckNhY2hlOiBbXSxcclxuICAgICAgICAvLyBsb2NhbCByZXNvbHZlZCBhc3NldHNcclxuICAgICAgICBjb21wb25lbnRzOiBudWxsLFxyXG4gICAgICAgIGRpcmVjdGl2ZXM6IG51bGwsXHJcbiAgICAgICAgLy8gcmVzb2x2ZWQgcHJvcHMgYW5kIGVtaXRzIG9wdGlvbnNcclxuICAgICAgICBwcm9wc09wdGlvbnM6IG5vcm1hbGl6ZVByb3BzT3B0aW9ucyh0eXBlLCBhcHBDb250ZXh0KSxcclxuICAgICAgICBlbWl0c09wdGlvbnM6IG5vcm1hbGl6ZUVtaXRzT3B0aW9ucyh0eXBlLCBhcHBDb250ZXh0KSxcclxuICAgICAgICAvLyBlbWl0XHJcbiAgICAgICAgZW1pdDogbnVsbCxcclxuICAgICAgICBlbWl0dGVkOiBudWxsLFxyXG4gICAgICAgIC8vIHByb3BzIGRlZmF1bHQgdmFsdWVcclxuICAgICAgICBwcm9wc0RlZmF1bHRzOiBFTVBUWV9PQkosXHJcbiAgICAgICAgLy8gaW5oZXJpdEF0dHJzXHJcbiAgICAgICAgaW5oZXJpdEF0dHJzOiB0eXBlLmluaGVyaXRBdHRycyxcclxuICAgICAgICAvLyBzdGF0ZVxyXG4gICAgICAgIGN0eDogRU1QVFlfT0JKLFxyXG4gICAgICAgIGRhdGE6IEVNUFRZX09CSixcclxuICAgICAgICBwcm9wczogRU1QVFlfT0JKLFxyXG4gICAgICAgIGF0dHJzOiBFTVBUWV9PQkosXHJcbiAgICAgICAgc2xvdHM6IEVNUFRZX09CSixcclxuICAgICAgICByZWZzOiBFTVBUWV9PQkosXHJcbiAgICAgICAgc2V0dXBTdGF0ZTogRU1QVFlfT0JKLFxyXG4gICAgICAgIHNldHVwQ29udGV4dDogbnVsbCxcclxuICAgICAgICAvLyBzdXNwZW5zZSByZWxhdGVkXHJcbiAgICAgICAgc3VzcGVuc2UsXHJcbiAgICAgICAgc3VzcGVuc2VJZDogc3VzcGVuc2UgPyBzdXNwZW5zZS5wZW5kaW5nSWQgOiAwLFxyXG4gICAgICAgIGFzeW5jRGVwOiBudWxsLFxyXG4gICAgICAgIGFzeW5jUmVzb2x2ZWQ6IGZhbHNlLFxyXG4gICAgICAgIC8vIGxpZmVjeWNsZSBob29rc1xyXG4gICAgICAgIC8vIG5vdCB1c2luZyBlbnVtcyBoZXJlIGJlY2F1c2UgaXQgcmVzdWx0cyBpbiBjb21wdXRlZCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgaXNNb3VudGVkOiBmYWxzZSxcclxuICAgICAgICBpc1VubW91bnRlZDogZmFsc2UsXHJcbiAgICAgICAgaXNEZWFjdGl2YXRlZDogZmFsc2UsXHJcbiAgICAgICAgYmM6IG51bGwsXHJcbiAgICAgICAgYzogbnVsbCxcclxuICAgICAgICBibTogbnVsbCxcclxuICAgICAgICBtOiBudWxsLFxyXG4gICAgICAgIGJ1OiBudWxsLFxyXG4gICAgICAgIHU6IG51bGwsXHJcbiAgICAgICAgdW06IG51bGwsXHJcbiAgICAgICAgYnVtOiBudWxsLFxyXG4gICAgICAgIGRhOiBudWxsLFxyXG4gICAgICAgIGE6IG51bGwsXHJcbiAgICAgICAgcnRnOiBudWxsLFxyXG4gICAgICAgIHJ0YzogbnVsbCxcclxuICAgICAgICBlYzogbnVsbCxcclxuICAgICAgICBzcDogbnVsbFxyXG4gICAgfTtcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICBpbnN0YW5jZS5jdHggPSBjcmVhdGVEZXZSZW5kZXJDb250ZXh0KGluc3RhbmNlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGluc3RhbmNlLmN0eCA9IHsgXzogaW5zdGFuY2UgfTtcclxuICAgIH1cclxuICAgIGluc3RhbmNlLnJvb3QgPSBwYXJlbnQgPyBwYXJlbnQucm9vdCA6IGluc3RhbmNlO1xyXG4gICAgaW5zdGFuY2UuZW1pdCA9IGVtaXQkMS5iaW5kKG51bGwsIGluc3RhbmNlKTtcclxuICAgIC8vIGFwcGx5IGN1c3RvbSBlbGVtZW50IHNwZWNpYWwgaGFuZGxpbmdcclxuICAgIGlmICh2bm9kZS5jZSkge1xyXG4gICAgICAgIHZub2RlLmNlKGluc3RhbmNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBpbnN0YW5jZTtcclxufVxyXG5sZXQgY3VycmVudEluc3RhbmNlID0gbnVsbDtcclxuY29uc3QgZ2V0Q3VycmVudEluc3RhbmNlID0gKCkgPT4gY3VycmVudEluc3RhbmNlIHx8IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZTtcclxuY29uc3Qgc2V0Q3VycmVudEluc3RhbmNlID0gKGluc3RhbmNlKSA9PiB7XHJcbiAgICBjdXJyZW50SW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuICAgIGluc3RhbmNlLnNjb3BlLm9uKCk7XHJcbn07XHJcbmNvbnN0IHVuc2V0Q3VycmVudEluc3RhbmNlID0gKCkgPT4ge1xyXG4gICAgY3VycmVudEluc3RhbmNlICYmIGN1cnJlbnRJbnN0YW5jZS5zY29wZS5vZmYoKTtcclxuICAgIGN1cnJlbnRJbnN0YW5jZSA9IG51bGw7XHJcbn07XHJcbmNvbnN0IGlzQnVpbHRJblRhZyA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcCgnc2xvdCxjb21wb25lbnQnKTtcclxuZnVuY3Rpb24gdmFsaWRhdGVDb21wb25lbnROYW1lKG5hbWUsIGNvbmZpZykge1xyXG4gICAgY29uc3QgYXBwSXNOYXRpdmVUYWcgPSBjb25maWcuaXNOYXRpdmVUYWcgfHwgTk87XHJcbiAgICBpZiAoaXNCdWlsdEluVGFnKG5hbWUpIHx8IGFwcElzTmF0aXZlVGFnKG5hbWUpKSB7XHJcbiAgICAgICAgd2FybignRG8gbm90IHVzZSBidWlsdC1pbiBvciByZXNlcnZlZCBIVE1MIGVsZW1lbnRzIGFzIGNvbXBvbmVudCBpZDogJyArIG5hbWUpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGlzU3RhdGVmdWxDb21wb25lbnQoaW5zdGFuY2UpIHtcclxuICAgIHJldHVybiBpbnN0YW5jZS52bm9kZS5zaGFwZUZsYWcgJiA0IC8qIFNoYXBlRmxhZ3MuU1RBVEVGVUxfQ09NUE9ORU5UICovO1xyXG59XHJcbmxldCBpc0luU1NSQ29tcG9uZW50U2V0dXAgPSBmYWxzZTtcclxuZnVuY3Rpb24gc2V0dXBDb21wb25lbnQoaW5zdGFuY2UsIGlzU1NSID0gZmFsc2UpIHtcclxuICAgIGlzSW5TU1JDb21wb25lbnRTZXR1cCA9IGlzU1NSO1xyXG4gICAgY29uc3QgeyBwcm9wcywgY2hpbGRyZW4gfSA9IGluc3RhbmNlLnZub2RlO1xyXG4gICAgY29uc3QgaXNTdGF0ZWZ1bCA9IGlzU3RhdGVmdWxDb21wb25lbnQoaW5zdGFuY2UpO1xyXG4gICAgaW5pdFByb3BzKGluc3RhbmNlLCBwcm9wcywgaXNTdGF0ZWZ1bCwgaXNTU1IpO1xyXG4gICAgaW5pdFNsb3RzKGluc3RhbmNlLCBjaGlsZHJlbik7XHJcbiAgICBjb25zdCBzZXR1cFJlc3VsdCA9IGlzU3RhdGVmdWxcclxuICAgICAgICA/IHNldHVwU3RhdGVmdWxDb21wb25lbnQoaW5zdGFuY2UsIGlzU1NSKVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgaXNJblNTUkNvbXBvbmVudFNldHVwID0gZmFsc2U7XHJcbiAgICByZXR1cm4gc2V0dXBSZXN1bHQ7XHJcbn1cclxuZnVuY3Rpb24gc2V0dXBTdGF0ZWZ1bENvbXBvbmVudChpbnN0YW5jZSwgaXNTU1IpIHtcclxuICAgIHZhciBfYTtcclxuICAgIGNvbnN0IENvbXBvbmVudCA9IGluc3RhbmNlLnR5cGU7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgaWYgKENvbXBvbmVudC5uYW1lKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRlQ29tcG9uZW50TmFtZShDb21wb25lbnQubmFtZSwgaW5zdGFuY2UuYXBwQ29udGV4dC5jb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoQ29tcG9uZW50LmNvbXBvbmVudHMpIHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZXMgPSBPYmplY3Qua2V5cyhDb21wb25lbnQuY29tcG9uZW50cyk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHZhbGlkYXRlQ29tcG9uZW50TmFtZShuYW1lc1tpXSwgaW5zdGFuY2UuYXBwQ29udGV4dC5jb25maWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChDb21wb25lbnQuZGlyZWN0aXZlcykge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lcyA9IE9iamVjdC5rZXlzKENvbXBvbmVudC5kaXJlY3RpdmVzKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVEaXJlY3RpdmVOYW1lKG5hbWVzW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoQ29tcG9uZW50LmNvbXBpbGVyT3B0aW9ucyAmJiBpc1J1bnRpbWVPbmx5KCkpIHtcclxuICAgICAgICAgICAgd2FybihgXCJjb21waWxlck9wdGlvbnNcIiBpcyBvbmx5IHN1cHBvcnRlZCB3aGVuIHVzaW5nIGEgYnVpbGQgb2YgVnVlIHRoYXQgYCArXHJcbiAgICAgICAgICAgICAgICBgaW5jbHVkZXMgdGhlIHJ1bnRpbWUgY29tcGlsZXIuIFNpbmNlIHlvdSBhcmUgdXNpbmcgYSBydW50aW1lLW9ubHkgYCArXHJcbiAgICAgICAgICAgICAgICBgYnVpbGQsIHRoZSBvcHRpb25zIHNob3VsZCBiZSBwYXNzZWQgdmlhIHlvdXIgYnVpbGQgdG9vbCBjb25maWcgaW5zdGVhZC5gKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyAwLiBjcmVhdGUgcmVuZGVyIHByb3h5IHByb3BlcnR5IGFjY2VzcyBjYWNoZVxyXG4gICAgaW5zdGFuY2UuYWNjZXNzQ2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xyXG4gICAgLy8gMS4gY3JlYXRlIHB1YmxpYyBpbnN0YW5jZSAvIHJlbmRlciBwcm94eVxyXG4gICAgLy8gYWxzbyBtYXJrIGl0IHJhdyBzbyBpdCdzIG5ldmVyIG9ic2VydmVkXHJcbiAgICBpbnN0YW5jZS5wcm94eSA9IG1hcmtSYXcobmV3IFByb3h5KGluc3RhbmNlLmN0eCwgUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzKSk7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgZXhwb3NlUHJvcHNPblJlbmRlckNvbnRleHQoaW5zdGFuY2UpO1xyXG4gICAgfVxyXG4gICAgLy8gMi4gY2FsbCBzZXR1cCgpXHJcbiAgICBjb25zdCB7IHNldHVwIH0gPSBDb21wb25lbnQ7XHJcbiAgICBpZiAoc2V0dXApIHtcclxuICAgICAgICBjb25zdCBzZXR1cENvbnRleHQgPSAoaW5zdGFuY2Uuc2V0dXBDb250ZXh0ID1cclxuICAgICAgICAgICAgc2V0dXAubGVuZ3RoID4gMSA/IGNyZWF0ZVNldHVwQ29udGV4dChpbnN0YW5jZSkgOiBudWxsKTtcclxuICAgICAgICBzZXRDdXJyZW50SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgICAgIHBhdXNlVHJhY2tpbmcoKTtcclxuICAgICAgICBjb25zdCBzZXR1cFJlc3VsdCA9IGNhbGxXaXRoRXJyb3JIYW5kbGluZyhzZXR1cCwgaW5zdGFuY2UsIDAgLyogRXJyb3JDb2Rlcy5TRVRVUF9GVU5DVElPTiAqLywgWyhwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSA/IHNoYWxsb3dSZWFkb25seShpbnN0YW5jZS5wcm9wcykgOiBpbnN0YW5jZS5wcm9wcywgc2V0dXBDb250ZXh0XSk7XHJcbiAgICAgICAgcmVzZXRUcmFja2luZygpO1xyXG4gICAgICAgIHVuc2V0Q3VycmVudEluc3RhbmNlKCk7XHJcbiAgICAgICAgaWYgKGlzUHJvbWlzZShzZXR1cFJlc3VsdCkpIHtcclxuICAgICAgICAgICAgc2V0dXBSZXN1bHQudGhlbih1bnNldEN1cnJlbnRJbnN0YW5jZSwgdW5zZXRDdXJyZW50SW5zdGFuY2UpO1xyXG4gICAgICAgICAgICBpZiAoaXNTU1IpIHtcclxuICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGUgcHJvbWlzZSBzbyBzZXJ2ZXItcmVuZGVyZXIgY2FuIHdhaXQgb24gaXRcclxuICAgICAgICAgICAgICAgIHJldHVybiBzZXR1cFJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXNvbHZlZFJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZVNldHVwUmVzdWx0KGluc3RhbmNlLCByZXNvbHZlZFJlc3VsdCwgaXNTU1IpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoZSwgaW5zdGFuY2UsIDAgLyogRXJyb3JDb2Rlcy5TRVRVUF9GVU5DVElPTiAqLyk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIGFzeW5jIHNldHVwIHJldHVybmVkIFByb21pc2UuXHJcbiAgICAgICAgICAgICAgICAvLyBiYWlsIGhlcmUgYW5kIHdhaXQgZm9yIHJlLWVudHJ5LlxyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuYXN5bmNEZXAgPSBzZXR1cFJlc3VsdDtcclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgIWluc3RhbmNlLnN1c3BlbnNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IChfYSA9IENvbXBvbmVudC5uYW1lKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnQW5vbnltb3VzJztcclxuICAgICAgICAgICAgICAgICAgICB3YXJuKGBDb21wb25lbnQgPCR7bmFtZX0+OiBzZXR1cCBmdW5jdGlvbiByZXR1cm5lZCBhIHByb21pc2UsIGJ1dCBubyBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYDxTdXNwZW5zZT4gYm91bmRhcnkgd2FzIGZvdW5kIGluIHRoZSBwYXJlbnQgY29tcG9uZW50IHRyZWUuIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBgQSBjb21wb25lbnQgd2l0aCBhc3luYyBzZXR1cCgpIG11c3QgYmUgbmVzdGVkIGluIGEgPFN1c3BlbnNlPiBgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYGluIG9yZGVyIHRvIGJlIHJlbmRlcmVkLmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBoYW5kbGVTZXR1cFJlc3VsdChpbnN0YW5jZSwgc2V0dXBSZXN1bHQsIGlzU1NSKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBmaW5pc2hDb21wb25lbnRTZXR1cChpbnN0YW5jZSwgaXNTU1IpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGhhbmRsZVNldHVwUmVzdWx0KGluc3RhbmNlLCBzZXR1cFJlc3VsdCwgaXNTU1IpIHtcclxuICAgIGlmIChpc0Z1bmN0aW9uKHNldHVwUmVzdWx0KSkge1xyXG4gICAgICAgIC8vIHNldHVwIHJldHVybmVkIGFuIGlubGluZSByZW5kZXIgZnVuY3Rpb25cclxuICAgICAgICBpZiAoaW5zdGFuY2UudHlwZS5fX3NzcklubGluZVJlbmRlcikge1xyXG4gICAgICAgICAgICAvLyB3aGVuIHRoZSBmdW5jdGlvbidzIG5hbWUgaXMgYHNzclJlbmRlcmAgKGNvbXBpbGVkIGJ5IFNGQyBpbmxpbmUgbW9kZSksXHJcbiAgICAgICAgICAgIC8vIHNldCBpdCBhcyBzc3JSZW5kZXIgaW5zdGVhZC5cclxuICAgICAgICAgICAgaW5zdGFuY2Uuc3NyUmVuZGVyID0gc2V0dXBSZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpbnN0YW5jZS5yZW5kZXIgPSBzZXR1cFJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc09iamVjdChzZXR1cFJlc3VsdCkpIHtcclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIGlzVk5vZGUoc2V0dXBSZXN1bHQpKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYHNldHVwKCkgc2hvdWxkIG5vdCByZXR1cm4gVk5vZGVzIGRpcmVjdGx5IC0gYCArXHJcbiAgICAgICAgICAgICAgICBgcmV0dXJuIGEgcmVuZGVyIGZ1bmN0aW9uIGluc3RlYWQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHNldHVwIHJldHVybmVkIGJpbmRpbmdzLlxyXG4gICAgICAgIC8vIGFzc3VtaW5nIGEgcmVuZGVyIGZ1bmN0aW9uIGNvbXBpbGVkIGZyb20gdGVtcGxhdGUgaXMgcHJlc2VudC5cclxuICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHx8IF9fVlVFX1BST0RfREVWVE9PTFNfXykge1xyXG4gICAgICAgICAgICBpbnN0YW5jZS5kZXZ0b29sc1Jhd1NldHVwU3RhdGUgPSBzZXR1cFJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW5zdGFuY2Uuc2V0dXBTdGF0ZSA9IHByb3h5UmVmcyhzZXR1cFJlc3VsdCk7XHJcbiAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICBleHBvc2VTZXR1cFN0YXRlT25SZW5kZXJDb250ZXh0KGluc3RhbmNlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgc2V0dXBSZXN1bHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHdhcm4oYHNldHVwKCkgc2hvdWxkIHJldHVybiBhbiBvYmplY3QuIFJlY2VpdmVkOiAke3NldHVwUmVzdWx0ID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHNldHVwUmVzdWx0fWApO1xyXG4gICAgfVxyXG4gICAgZmluaXNoQ29tcG9uZW50U2V0dXAoaW5zdGFuY2UsIGlzU1NSKTtcclxufVxyXG5sZXQgY29tcGlsZTtcclxubGV0IGluc3RhbGxXaXRoUHJveHk7XHJcbi8qKlxyXG4gKiBGb3IgcnVudGltZS1kb20gdG8gcmVnaXN0ZXIgdGhlIGNvbXBpbGVyLlxyXG4gKiBOb3RlIHRoZSBleHBvcnRlZCBtZXRob2QgdXNlcyBhbnkgdG8gYXZvaWQgZC50cyByZWx5aW5nIG9uIHRoZSBjb21waWxlciB0eXBlcy5cclxuICovXHJcbmZ1bmN0aW9uIHJlZ2lzdGVyUnVudGltZUNvbXBpbGVyKF9jb21waWxlKSB7XHJcbiAgICBjb21waWxlID0gX2NvbXBpbGU7XHJcbiAgICBpbnN0YWxsV2l0aFByb3h5ID0gaSA9PiB7XHJcbiAgICAgICAgaWYgKGkucmVuZGVyLl9yYykge1xyXG4gICAgICAgICAgICBpLndpdGhQcm94eSA9IG5ldyBQcm94eShpLmN0eCwgUnVudGltZUNvbXBpbGVkUHVibGljSW5zdGFuY2VQcm94eUhhbmRsZXJzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcbi8vIGRldiBvbmx5XHJcbmNvbnN0IGlzUnVudGltZU9ubHkgPSAoKSA9PiAhY29tcGlsZTtcclxuZnVuY3Rpb24gZmluaXNoQ29tcG9uZW50U2V0dXAoaW5zdGFuY2UsIGlzU1NSLCBza2lwT3B0aW9ucykge1xyXG4gICAgY29uc3QgQ29tcG9uZW50ID0gaW5zdGFuY2UudHlwZTtcclxuICAgIC8vIHRlbXBsYXRlIC8gcmVuZGVyIGZ1bmN0aW9uIG5vcm1hbGl6YXRpb25cclxuICAgIC8vIGNvdWxkIGJlIGFscmVhZHkgc2V0IHdoZW4gcmV0dXJuZWQgZnJvbSBzZXR1cCgpXHJcbiAgICBpZiAoIWluc3RhbmNlLnJlbmRlcikge1xyXG4gICAgICAgIC8vIG9ubHkgZG8gb24tdGhlLWZseSBjb21waWxlIGlmIG5vdCBpbiBTU1IgLSBTU1Igb24tdGhlLWZseSBjb21waWxhdGlvblxyXG4gICAgICAgIC8vIGlzIGRvbmUgYnkgc2VydmVyLXJlbmRlcmVyXHJcbiAgICAgICAgaWYgKCFpc1NTUiAmJiBjb21waWxlICYmICFDb21wb25lbnQucmVuZGVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlID0gQ29tcG9uZW50LnRlbXBsYXRlO1xyXG4gICAgICAgICAgICBpZiAodGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGFydE1lYXN1cmUoaW5zdGFuY2UsIGBjb21waWxlYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGlzQ3VzdG9tRWxlbWVudCwgY29tcGlsZXJPcHRpb25zIH0gPSBpbnN0YW5jZS5hcHBDb250ZXh0LmNvbmZpZztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGVsaW1pdGVycywgY29tcGlsZXJPcHRpb25zOiBjb21wb25lbnRDb21waWxlck9wdGlvbnMgfSA9IENvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbmFsQ29tcGlsZXJPcHRpb25zID0gZXh0ZW5kKGV4dGVuZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgaXNDdXN0b21FbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGltaXRlcnNcclxuICAgICAgICAgICAgICAgIH0sIGNvbXBpbGVyT3B0aW9ucyksIGNvbXBvbmVudENvbXBpbGVyT3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICBDb21wb25lbnQucmVuZGVyID0gY29tcGlsZSh0ZW1wbGF0ZSwgZmluYWxDb21waWxlck9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVuZE1lYXN1cmUoaW5zdGFuY2UsIGBjb21waWxlYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaW5zdGFuY2UucmVuZGVyID0gKENvbXBvbmVudC5yZW5kZXIgfHwgTk9PUCk7XHJcbiAgICAgICAgLy8gZm9yIHJ1bnRpbWUtY29tcGlsZWQgcmVuZGVyIGZ1bmN0aW9ucyB1c2luZyBgd2l0aGAgYmxvY2tzLCB0aGUgcmVuZGVyXHJcbiAgICAgICAgLy8gcHJveHkgdXNlZCBuZWVkcyBhIGRpZmZlcmVudCBgaGFzYCBoYW5kbGVyIHdoaWNoIGlzIG1vcmUgcGVyZm9ybWFudCBhbmRcclxuICAgICAgICAvLyBhbHNvIG9ubHkgYWxsb3dzIGEgd2hpdGVsaXN0IG9mIGdsb2JhbHMgdG8gZmFsbHRocm91Z2guXHJcbiAgICAgICAgaWYgKGluc3RhbGxXaXRoUHJveHkpIHtcclxuICAgICAgICAgICAgaW5zdGFsbFdpdGhQcm94eShpbnN0YW5jZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gc3VwcG9ydCBmb3IgMi54IG9wdGlvbnNcclxuICAgIGlmIChfX1ZVRV9PUFRJT05TX0FQSV9fICYmICEoZmFsc2UgKSkge1xyXG4gICAgICAgIHNldEN1cnJlbnRJbnN0YW5jZShpbnN0YW5jZSk7XHJcbiAgICAgICAgcGF1c2VUcmFja2luZygpO1xyXG4gICAgICAgIGFwcGx5T3B0aW9ucyhpbnN0YW5jZSk7XHJcbiAgICAgICAgcmVzZXRUcmFja2luZygpO1xyXG4gICAgICAgIHVuc2V0Q3VycmVudEluc3RhbmNlKCk7XHJcbiAgICB9XHJcbiAgICAvLyB3YXJuIG1pc3NpbmcgdGVtcGxhdGUvcmVuZGVyXHJcbiAgICAvLyB0aGUgcnVudGltZSBjb21waWxhdGlvbiBvZiB0ZW1wbGF0ZSBpbiBTU1IgaXMgZG9uZSBieSBzZXJ2ZXItcmVuZGVyXHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmICFDb21wb25lbnQucmVuZGVyICYmIGluc3RhbmNlLnJlbmRlciA9PT0gTk9PUCAmJiAhaXNTU1IpIHtcclxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cclxuICAgICAgICBpZiAoIWNvbXBpbGUgJiYgQ29tcG9uZW50LnRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgIHdhcm4oYENvbXBvbmVudCBwcm92aWRlZCB0ZW1wbGF0ZSBvcHRpb24gYnV0IGAgK1xyXG4gICAgICAgICAgICAgICAgYHJ1bnRpbWUgY29tcGlsYXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJ1aWxkIG9mIFZ1ZS5gICtcclxuICAgICAgICAgICAgICAgIChgIENvbmZpZ3VyZSB5b3VyIGJ1bmRsZXIgdG8gYWxpYXMgXCJ2dWVcIiB0byBcInZ1ZS9kaXN0L3Z1ZS5lc20tYnVuZGxlci5qc1wiLmBcclxuICAgICAgICAgICAgICAgICAgICApIC8qIHNob3VsZCBub3QgaGFwcGVuICovKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHdhcm4oYENvbXBvbmVudCBpcyBtaXNzaW5nIHRlbXBsYXRlIG9yIHJlbmRlciBmdW5jdGlvbi5gKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlQXR0cnNQcm94eShpbnN0YW5jZSkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm94eShpbnN0YW5jZS5hdHRycywgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIGdldCh0YXJnZXQsIGtleSkge1xyXG4gICAgICAgICAgICAgICAgbWFya0F0dHJzQWNjZXNzZWQoKTtcclxuICAgICAgICAgICAgICAgIHRyYWNrKGluc3RhbmNlLCBcImdldFwiIC8qIFRyYWNrT3BUeXBlcy5HRVQgKi8sICckYXR0cnMnKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRba2V5XTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2V0KCkge1xyXG4gICAgICAgICAgICAgICAgd2Fybihgc2V0dXBDb250ZXh0LmF0dHJzIGlzIHJlYWRvbmx5LmApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkZWxldGVQcm9wZXJ0eSgpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4oYHNldHVwQ29udGV4dC5hdHRycyBpcyByZWFkb25seS5gKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICA6IHtcclxuICAgICAgICAgICAgZ2V0KHRhcmdldCwga2V5KSB7XHJcbiAgICAgICAgICAgICAgICB0cmFjayhpbnN0YW5jZSwgXCJnZXRcIiAvKiBUcmFja09wVHlwZXMuR0VUICovLCAnJGF0dHJzJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVTZXR1cENvbnRleHQoaW5zdGFuY2UpIHtcclxuICAgIGNvbnN0IGV4cG9zZSA9IGV4cG9zZWQgPT4ge1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgaW5zdGFuY2UuZXhwb3NlZCkge1xyXG4gICAgICAgICAgICB3YXJuKGBleHBvc2UoKSBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZSBwZXIgc2V0dXAoKS5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW5zdGFuY2UuZXhwb3NlZCA9IGV4cG9zZWQgfHwge307XHJcbiAgICB9O1xyXG4gICAgbGV0IGF0dHJzO1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgIC8vIFdlIHVzZSBnZXR0ZXJzIGluIGRldiBpbiBjYXNlIGxpYnMgbGlrZSB0ZXN0LXV0aWxzIG92ZXJ3cml0ZSBpbnN0YW5jZVxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgKG92ZXJ3cml0ZXMgc2hvdWxkIG5vdCBiZSBkb25lIGluIHByb2QpXHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5mcmVlemUoe1xyXG4gICAgICAgICAgICBnZXQgYXR0cnMoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXR0cnMgfHwgKGF0dHJzID0gY3JlYXRlQXR0cnNQcm94eShpbnN0YW5jZSkpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBnZXQgc2xvdHMoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc2hhbGxvd1JlYWRvbmx5KGluc3RhbmNlLnNsb3RzKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZ2V0IGVtaXQoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKGV2ZW50LCAuLi5hcmdzKSA9PiBpbnN0YW5jZS5lbWl0KGV2ZW50LCAuLi5hcmdzKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXhwb3NlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBnZXQgYXR0cnMoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXR0cnMgfHwgKGF0dHJzID0gY3JlYXRlQXR0cnNQcm94eShpbnN0YW5jZSkpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzbG90czogaW5zdGFuY2Uuc2xvdHMsXHJcbiAgICAgICAgICAgIGVtaXQ6IGluc3RhbmNlLmVtaXQsXHJcbiAgICAgICAgICAgIGV4cG9zZVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gZ2V0RXhwb3NlUHJveHkoaW5zdGFuY2UpIHtcclxuICAgIGlmIChpbnN0YW5jZS5leHBvc2VkKSB7XHJcbiAgICAgICAgcmV0dXJuIChpbnN0YW5jZS5leHBvc2VQcm94eSB8fFxyXG4gICAgICAgICAgICAoaW5zdGFuY2UuZXhwb3NlUHJveHkgPSBuZXcgUHJveHkocHJveHlSZWZzKG1hcmtSYXcoaW5zdGFuY2UuZXhwb3NlZCkpLCB7XHJcbiAgICAgICAgICAgICAgICBnZXQodGFyZ2V0LCBrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5IGluIHRhcmdldCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleSBpbiBwdWJsaWNQcm9wZXJ0aWVzTWFwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdWJsaWNQcm9wZXJ0aWVzTWFwW2tleV0oaW5zdGFuY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpKTtcclxuICAgIH1cclxufVxyXG5jb25zdCBjbGFzc2lmeVJFID0gLyg/Ol58Wy1fXSkoXFx3KS9nO1xyXG5jb25zdCBjbGFzc2lmeSA9IChzdHIpID0+IHN0ci5yZXBsYWNlKGNsYXNzaWZ5UkUsIGMgPT4gYy50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9bLV9dL2csICcnKTtcclxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZShDb21wb25lbnQsIGluY2x1ZGVJbmZlcnJlZCA9IHRydWUpIHtcclxuICAgIHJldHVybiBpc0Z1bmN0aW9uKENvbXBvbmVudClcclxuICAgICAgICA/IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZVxyXG4gICAgICAgIDogQ29tcG9uZW50Lm5hbWUgfHwgKGluY2x1ZGVJbmZlcnJlZCAmJiBDb21wb25lbnQuX19uYW1lKTtcclxufVxyXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG5mdW5jdGlvbiBmb3JtYXRDb21wb25lbnROYW1lKGluc3RhbmNlLCBDb21wb25lbnQsIGlzUm9vdCA9IGZhbHNlKSB7XHJcbiAgICBsZXQgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoQ29tcG9uZW50KTtcclxuICAgIGlmICghbmFtZSAmJiBDb21wb25lbnQuX19maWxlKSB7XHJcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBDb21wb25lbnQuX19maWxlLm1hdGNoKC8oW14vXFxcXF0rKVxcLlxcdyskLyk7XHJcbiAgICAgICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSBtYXRjaFsxXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIW5hbWUgJiYgaW5zdGFuY2UgJiYgaW5zdGFuY2UucGFyZW50KSB7XHJcbiAgICAgICAgLy8gdHJ5IHRvIGluZmVyIHRoZSBuYW1lIGJhc2VkIG9uIHJldmVyc2UgcmVzb2x1dGlvblxyXG4gICAgICAgIGNvbnN0IGluZmVyRnJvbVJlZ2lzdHJ5ID0gKHJlZ2lzdHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlZ2lzdHJ5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVnaXN0cnlba2V5XSA9PT0gQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbmFtZSA9XHJcbiAgICAgICAgICAgIGluZmVyRnJvbVJlZ2lzdHJ5KGluc3RhbmNlLmNvbXBvbmVudHMgfHxcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlLnBhcmVudC50eXBlLmNvbXBvbmVudHMpIHx8IGluZmVyRnJvbVJlZ2lzdHJ5KGluc3RhbmNlLmFwcENvbnRleHQuY29tcG9uZW50cyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmFtZSA/IGNsYXNzaWZ5KG5hbWUpIDogaXNSb290ID8gYEFwcGAgOiBgQW5vbnltb3VzYDtcclxufVxyXG5mdW5jdGlvbiBpc0NsYXNzQ29tcG9uZW50KHZhbHVlKSB7XHJcbiAgICByZXR1cm4gaXNGdW5jdGlvbih2YWx1ZSkgJiYgJ19fdmNjT3B0cycgaW4gdmFsdWU7XHJcbn1cblxuY29uc3QgY29tcHV0ZWQgPSAoKGdldHRlck9yT3B0aW9ucywgZGVidWdPcHRpb25zKSA9PiB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICByZXR1cm4gY29tcHV0ZWQkMShnZXR0ZXJPck9wdGlvbnMsIGRlYnVnT3B0aW9ucywgaXNJblNTUkNvbXBvbmVudFNldHVwKTtcclxufSk7XG5cbi8vIGRldiBvbmx5XHJcbmNvbnN0IHdhcm5SdW50aW1lVXNhZ2UgPSAobWV0aG9kKSA9PiB3YXJuKGAke21ldGhvZH0oKSBpcyBhIGNvbXBpbGVyLWhpbnQgaGVscGVyIHRoYXQgaXMgb25seSB1c2FibGUgaW5zaWRlIGAgK1xyXG4gICAgYDxzY3JpcHQgc2V0dXA+IG9mIGEgc2luZ2xlIGZpbGUgY29tcG9uZW50LiBJdHMgYXJndW1lbnRzIHNob3VsZCBiZSBgICtcclxuICAgIGBjb21waWxlZCBhd2F5IGFuZCBwYXNzaW5nIGl0IGF0IHJ1bnRpbWUgaGFzIG5vIGVmZmVjdC5gKTtcclxuLy8gaW1wbGVtZW50YXRpb25cclxuZnVuY3Rpb24gZGVmaW5lUHJvcHMoKSB7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKSB7XHJcbiAgICAgICAgd2FyblJ1bnRpbWVVc2FnZShgZGVmaW5lUHJvcHNgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbi8vIGltcGxlbWVudGF0aW9uXHJcbmZ1bmN0aW9uIGRlZmluZUVtaXRzKCkge1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgIHdhcm5SdW50aW1lVXNhZ2UoYGRlZmluZUVtaXRzYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG4vKipcclxuICogVnVlIGA8c2NyaXB0IHNldHVwPmAgY29tcGlsZXIgbWFjcm8gZm9yIGRlY2xhcmluZyBhIGNvbXBvbmVudCdzIGV4cG9zZWRcclxuICogaW5zdGFuY2UgcHJvcGVydGllcyB3aGVuIGl0IGlzIGFjY2Vzc2VkIGJ5IGEgcGFyZW50IGNvbXBvbmVudCB2aWEgdGVtcGxhdGVcclxuICogcmVmcy5cclxuICpcclxuICogYDxzY3JpcHQgc2V0dXA+YCBjb21wb25lbnRzIGFyZSBjbG9zZWQgYnkgZGVmYXVsdCAtIGkuZS4gdmFyaWFibGVzIGluc2lkZVxyXG4gKiB0aGUgYDxzY3JpcHQgc2V0dXA+YCBzY29wZSBpcyBub3QgZXhwb3NlZCB0byBwYXJlbnQgdW5sZXNzIGV4cGxpY2l0bHkgZXhwb3NlZFxyXG4gKiB2aWEgYGRlZmluZUV4cG9zZWAuXHJcbiAqXHJcbiAqIFRoaXMgaXMgb25seSB1c2FibGUgaW5zaWRlIGA8c2NyaXB0IHNldHVwPmAsIGlzIGNvbXBpbGVkIGF3YXkgaW4gdGhlXHJcbiAqIG91dHB1dCBhbmQgc2hvdWxkICoqbm90KiogYmUgYWN0dWFsbHkgY2FsbGVkIGF0IHJ1bnRpbWUuXHJcbiAqL1xyXG5mdW5jdGlvbiBkZWZpbmVFeHBvc2UoZXhwb3NlZCkge1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgIHdhcm5SdW50aW1lVXNhZ2UoYGRlZmluZUV4cG9zZWApO1xyXG4gICAgfVxyXG59XHJcbi8qKlxyXG4gKiBWdWUgYDxzY3JpcHQgc2V0dXA+YCBjb21waWxlciBtYWNybyBmb3IgcHJvdmlkaW5nIHByb3BzIGRlZmF1bHQgdmFsdWVzIHdoZW5cclxuICogdXNpbmcgdHlwZS1iYXNlZCBgZGVmaW5lUHJvcHNgIGRlY2xhcmF0aW9uLlxyXG4gKlxyXG4gKiBFeGFtcGxlIHVzYWdlOlxyXG4gKiBgYGB0c1xyXG4gKiB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8e1xyXG4gKiAgIHNpemU/OiBudW1iZXJcclxuICogICBsYWJlbHM/OiBzdHJpbmdbXVxyXG4gKiB9PigpLCB7XHJcbiAqICAgc2l6ZTogMyxcclxuICogICBsYWJlbHM6ICgpID0+IFsnZGVmYXVsdCBsYWJlbCddXHJcbiAqIH0pXHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBUaGlzIGlzIG9ubHkgdXNhYmxlIGluc2lkZSBgPHNjcmlwdCBzZXR1cD5gLCBpcyBjb21waWxlZCBhd2F5IGluIHRoZSBvdXRwdXRcclxuICogYW5kIHNob3VsZCAqKm5vdCoqIGJlIGFjdHVhbGx5IGNhbGxlZCBhdCBydW50aW1lLlxyXG4gKi9cclxuZnVuY3Rpb24gd2l0aERlZmF1bHRzKHByb3BzLCBkZWZhdWx0cykge1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgIHdhcm5SdW50aW1lVXNhZ2UoYHdpdGhEZWZhdWx0c2ApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuZnVuY3Rpb24gdXNlU2xvdHMoKSB7XHJcbiAgICByZXR1cm4gZ2V0Q29udGV4dCgpLnNsb3RzO1xyXG59XHJcbmZ1bmN0aW9uIHVzZUF0dHJzKCkge1xyXG4gICAgcmV0dXJuIGdldENvbnRleHQoKS5hdHRycztcclxufVxyXG5mdW5jdGlvbiBnZXRDb250ZXh0KCkge1xyXG4gICAgY29uc3QgaSA9IGdldEN1cnJlbnRJbnN0YW5jZSgpO1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiAhaSkge1xyXG4gICAgICAgIHdhcm4oYHVzZUNvbnRleHQoKSBjYWxsZWQgd2l0aG91dCBhY3RpdmUgaW5zdGFuY2UuYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaS5zZXR1cENvbnRleHQgfHwgKGkuc2V0dXBDb250ZXh0ID0gY3JlYXRlU2V0dXBDb250ZXh0KGkpKTtcclxufVxyXG4vKipcclxuICogUnVudGltZSBoZWxwZXIgZm9yIG1lcmdpbmcgZGVmYXVsdCBkZWNsYXJhdGlvbnMuIEltcG9ydGVkIGJ5IGNvbXBpbGVkIGNvZGVcclxuICogb25seS5cclxuICogQGludGVybmFsXHJcbiAqL1xyXG5mdW5jdGlvbiBtZXJnZURlZmF1bHRzKHJhdywgZGVmYXVsdHMpIHtcclxuICAgIGNvbnN0IHByb3BzID0gaXNBcnJheShyYXcpXHJcbiAgICAgICAgPyByYXcucmVkdWNlKChub3JtYWxpemVkLCBwKSA9PiAoKG5vcm1hbGl6ZWRbcF0gPSB7fSksIG5vcm1hbGl6ZWQpLCB7fSlcclxuICAgICAgICA6IHJhdztcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGRlZmF1bHRzKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0ID0gcHJvcHNba2V5XTtcclxuICAgICAgICBpZiAob3B0KSB7XHJcbiAgICAgICAgICAgIGlmIChpc0FycmF5KG9wdCkgfHwgaXNGdW5jdGlvbihvcHQpKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wc1trZXldID0geyB0eXBlOiBvcHQsIGRlZmF1bHQ6IGRlZmF1bHRzW2tleV0gfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG9wdC5kZWZhdWx0ID0gZGVmYXVsdHNba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChvcHQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcHJvcHNba2V5XSA9IHsgZGVmYXVsdDogZGVmYXVsdHNba2V5XSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgd2FybihgcHJvcHMgZGVmYXVsdCBrZXkgXCIke2tleX1cIiBoYXMgbm8gY29ycmVzcG9uZGluZyBkZWNsYXJhdGlvbi5gKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJvcHM7XHJcbn1cclxuLyoqXHJcbiAqIFVzZWQgdG8gY3JlYXRlIGEgcHJveHkgZm9yIHRoZSByZXN0IGVsZW1lbnQgd2hlbiBkZXN0cnVjdHVyaW5nIHByb3BzIHdpdGhcclxuICogZGVmaW5lUHJvcHMoKS5cclxuICogQGludGVybmFsXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVQcm9wc1Jlc3RQcm94eShwcm9wcywgZXhjbHVkZWRLZXlzKSB7XHJcbiAgICBjb25zdCByZXQgPSB7fTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BzKSB7XHJcbiAgICAgICAgaWYgKCFleGNsdWRlZEtleXMuaW5jbHVkZXMoa2V5KSkge1xyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmV0LCBrZXksIHtcclxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHByb3BzW2tleV1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJldDtcclxufVxyXG4vKipcclxuICogYDxzY3JpcHQgc2V0dXA+YCBoZWxwZXIgZm9yIHBlcnNpc3RpbmcgdGhlIGN1cnJlbnQgaW5zdGFuY2UgY29udGV4dCBvdmVyXHJcbiAqIGFzeW5jL2F3YWl0IGZsb3dzLlxyXG4gKlxyXG4gKiBgQHZ1ZS9jb21waWxlci1zZmNgIGNvbnZlcnRzIHRoZSBmb2xsb3dpbmc6XHJcbiAqXHJcbiAqIGBgYHRzXHJcbiAqIGNvbnN0IHggPSBhd2FpdCBmb28oKVxyXG4gKiBgYGBcclxuICpcclxuICogaW50bzpcclxuICpcclxuICogYGBgdHNcclxuICogbGV0IF9fdGVtcCwgX19yZXN0b3JlXHJcbiAqIGNvbnN0IHggPSAoKFtfX3RlbXAsIF9fcmVzdG9yZV0gPSB3aXRoQXN5bmNDb250ZXh0KCgpID0+IGZvbygpKSksX190ZW1wPWF3YWl0IF9fdGVtcCxfX3Jlc3RvcmUoKSxfX3RlbXApXHJcbiAqIGBgYFxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmZ1bmN0aW9uIHdpdGhBc3luY0NvbnRleHQoZ2V0QXdhaXRhYmxlKSB7XHJcbiAgICBjb25zdCBjdHggPSBnZXRDdXJyZW50SW5zdGFuY2UoKTtcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgIWN0eCkge1xyXG4gICAgICAgIHdhcm4oYHdpdGhBc3luY0NvbnRleHQgY2FsbGVkIHdpdGhvdXQgYWN0aXZlIGN1cnJlbnQgaW5zdGFuY2UuIGAgK1xyXG4gICAgICAgICAgICBgVGhpcyBpcyBsaWtlbHkgYSBidWcuYCk7XHJcbiAgICB9XHJcbiAgICBsZXQgYXdhaXRhYmxlID0gZ2V0QXdhaXRhYmxlKCk7XHJcbiAgICB1bnNldEN1cnJlbnRJbnN0YW5jZSgpO1xyXG4gICAgaWYgKGlzUHJvbWlzZShhd2FpdGFibGUpKSB7XHJcbiAgICAgICAgYXdhaXRhYmxlID0gYXdhaXRhYmxlLmNhdGNoKGUgPT4ge1xyXG4gICAgICAgICAgICBzZXRDdXJyZW50SW5zdGFuY2UoY3R4KTtcclxuICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBbYXdhaXRhYmxlLCAoKSA9PiBzZXRDdXJyZW50SW5zdGFuY2UoY3R4KV07XHJcbn1cblxuLy8gQWN0dWFsIGltcGxlbWVudGF0aW9uXHJcbmZ1bmN0aW9uIGgodHlwZSwgcHJvcHNPckNoaWxkcmVuLCBjaGlsZHJlbikge1xyXG4gICAgY29uc3QgbCA9IGFyZ3VtZW50cy5sZW5ndGg7XHJcbiAgICBpZiAobCA9PT0gMikge1xyXG4gICAgICAgIGlmIChpc09iamVjdChwcm9wc09yQ2hpbGRyZW4pICYmICFpc0FycmF5KHByb3BzT3JDaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgLy8gc2luZ2xlIHZub2RlIHdpdGhvdXQgcHJvcHNcclxuICAgICAgICAgICAgaWYgKGlzVk5vZGUocHJvcHNPckNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVZOb2RlKHR5cGUsIG51bGwsIFtwcm9wc09yQ2hpbGRyZW5dKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBwcm9wcyB3aXRob3V0IGNoaWxkcmVuXHJcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVWTm9kZSh0eXBlLCBwcm9wc09yQ2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gb21pdCBwcm9wc1xyXG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlVk5vZGUodHlwZSwgbnVsbCwgcHJvcHNPckNoaWxkcmVuKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBpZiAobCA+IDMpIHtcclxuICAgICAgICAgICAgY2hpbGRyZW4gPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChsID09PSAzICYmIGlzVk5vZGUoY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuID0gW2NoaWxkcmVuXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVZOb2RlKHR5cGUsIHByb3BzT3JDaGlsZHJlbiwgY2hpbGRyZW4pO1xyXG4gICAgfVxyXG59XG5cbmNvbnN0IHNzckNvbnRleHRLZXkgPSBTeW1ib2woKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpID8gYHNzckNvbnRleHRgIDogYGApO1xyXG5jb25zdCB1c2VTU1JDb250ZXh0ID0gKCkgPT4ge1xyXG4gICAge1xyXG4gICAgICAgIGNvbnN0IGN0eCA9IGluamVjdChzc3JDb250ZXh0S2V5KTtcclxuICAgICAgICBpZiAoIWN0eCkge1xyXG4gICAgICAgICAgICB3YXJuKGBTZXJ2ZXIgcmVuZGVyaW5nIGNvbnRleHQgbm90IHByb3ZpZGVkLiBNYWtlIHN1cmUgdG8gb25seSBjYWxsIGAgK1xyXG4gICAgICAgICAgICAgICAgYHVzZVNTUkNvbnRleHQoKSBjb25kaXRpb25hbGx5IGluIHRoZSBzZXJ2ZXIgYnVpbGQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjdHg7XHJcbiAgICB9XHJcbn07XG5cbmZ1bmN0aW9uIGlzU2hhbGxvdyh2YWx1ZSkge1xyXG4gICAgcmV0dXJuICEhKHZhbHVlICYmIHZhbHVlW1wiX192X2lzU2hhbGxvd1wiIC8qIFJlYWN0aXZlRmxhZ3MuSVNfU0hBTExPVyAqL10pO1xyXG59XG5cbmZ1bmN0aW9uIGluaXRDdXN0b21Gb3JtYXR0ZXIoKSB7XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgKi9cclxuICAgIGlmICghKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHx8IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdnVlU3R5bGUgPSB7IHN0eWxlOiAnY29sb3I6IzNiYTc3NicgfTtcclxuICAgIGNvbnN0IG51bWJlclN0eWxlID0geyBzdHlsZTogJ2NvbG9yOiMwYjFiYzknIH07XHJcbiAgICBjb25zdCBzdHJpbmdTdHlsZSA9IHsgc3R5bGU6ICdjb2xvcjojYjYyZTI0JyB9O1xyXG4gICAgY29uc3Qga2V5d29yZFN0eWxlID0geyBzdHlsZTogJ2NvbG9yOiM5ZDI4OGMnIH07XHJcbiAgICAvLyBjdXN0b20gZm9ybWF0dGVyIGZvciBDaHJvbWVcclxuICAgIC8vIGh0dHBzOi8vd3d3Lm1hdHR6ZXVuZXJ0LmNvbS8yMDE2LzAyLzE5L2N1c3RvbS1jaHJvbWUtZGV2dG9vbHMtb2JqZWN0LWZvcm1hdHRlcnMuaHRtbFxyXG4gICAgY29uc3QgZm9ybWF0dGVyID0ge1xyXG4gICAgICAgIGhlYWRlcihvYmopIHtcclxuICAgICAgICAgICAgLy8gVE9ETyBhbHNvIGZvcm1hdCBDb21wb25lbnRQdWJsaWNJbnN0YW5jZSAmIGN0eC5zbG90cy9hdHRycyBpbiBzZXR1cFxyXG4gICAgICAgICAgICBpZiAoIWlzT2JqZWN0KG9iaikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChvYmouX19pc1Z1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsnZGl2JywgdnVlU3R5bGUsIGBWdWVJbnN0YW5jZWBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzUmVmKG9iaikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXHJcbiAgICAgICAgICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgICAgICAgICAgWydzcGFuJywgdnVlU3R5bGUsIGdlblJlZkZsYWcob2JqKV0sXHJcbiAgICAgICAgICAgICAgICAgICAgJzwnLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdFZhbHVlKG9iai52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICAgYD5gXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzUmVhY3RpdmUob2JqKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcclxuICAgICAgICAgICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgICAgICAgICBbJ3NwYW4nLCB2dWVTdHlsZSwgaXNTaGFsbG93KG9iaikgPyAnU2hhbGxvd1JlYWN0aXZlJyA6ICdSZWFjdGl2ZSddLFxyXG4gICAgICAgICAgICAgICAgICAgICc8JyxcclxuICAgICAgICAgICAgICAgICAgICBmb3JtYXRWYWx1ZShvYmopLFxyXG4gICAgICAgICAgICAgICAgICAgIGA+JHtpc1JlYWRvbmx5KG9iaikgPyBgIChyZWFkb25seSlgIDogYGB9YFxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpc1JlYWRvbmx5KG9iaikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXHJcbiAgICAgICAgICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgICAgICAgICAgWydzcGFuJywgdnVlU3R5bGUsIGlzU2hhbGxvdyhvYmopID8gJ1NoYWxsb3dSZWFkb25seScgOiAnUmVhZG9ubHknXSxcclxuICAgICAgICAgICAgICAgICAgICAnPCcsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0VmFsdWUob2JqKSxcclxuICAgICAgICAgICAgICAgICAgICAnPidcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBoYXNCb2R5KG9iaikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqICYmIG9iai5fX2lzVnVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYm9keShvYmopIHtcclxuICAgICAgICAgICAgaWYgKG9iaiAmJiBvYmouX19pc1Z1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcclxuICAgICAgICAgICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgICAgICAgICAuLi5mb3JtYXRJbnN0YW5jZShvYmouJClcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgZnVuY3Rpb24gZm9ybWF0SW5zdGFuY2UoaW5zdGFuY2UpIHtcclxuICAgICAgICBjb25zdCBibG9ja3MgPSBbXTtcclxuICAgICAgICBpZiAoaW5zdGFuY2UudHlwZS5wcm9wcyAmJiBpbnN0YW5jZS5wcm9wcykge1xyXG4gICAgICAgICAgICBibG9ja3MucHVzaChjcmVhdGVJbnN0YW5jZUJsb2NrKCdwcm9wcycsIHRvUmF3KGluc3RhbmNlLnByb3BzKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5zdGFuY2Uuc2V0dXBTdGF0ZSAhPT0gRU1QVFlfT0JKKSB7XHJcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKGNyZWF0ZUluc3RhbmNlQmxvY2soJ3NldHVwJywgaW5zdGFuY2Uuc2V0dXBTdGF0ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5zdGFuY2UuZGF0YSAhPT0gRU1QVFlfT0JKKSB7XHJcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKGNyZWF0ZUluc3RhbmNlQmxvY2soJ2RhdGEnLCB0b1JhdyhpbnN0YW5jZS5kYXRhKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjb21wdXRlZCA9IGV4dHJhY3RLZXlzKGluc3RhbmNlLCAnY29tcHV0ZWQnKTtcclxuICAgICAgICBpZiAoY29tcHV0ZWQpIHtcclxuICAgICAgICAgICAgYmxvY2tzLnB1c2goY3JlYXRlSW5zdGFuY2VCbG9jaygnY29tcHV0ZWQnLCBjb21wdXRlZCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBpbmplY3RlZCA9IGV4dHJhY3RLZXlzKGluc3RhbmNlLCAnaW5qZWN0Jyk7XHJcbiAgICAgICAgaWYgKGluamVjdGVkKSB7XHJcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKGNyZWF0ZUluc3RhbmNlQmxvY2soJ2luamVjdGVkJywgaW5qZWN0ZWQpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYmxvY2tzLnB1c2goW1xyXG4gICAgICAgICAgICAnZGl2JyxcclxuICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICdzcGFuJyxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZToga2V5d29yZFN0eWxlLnN0eWxlICsgJztvcGFjaXR5OjAuNjYnXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgJyQgKGludGVybmFsKTogJ1xyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBbJ29iamVjdCcsIHsgb2JqZWN0OiBpbnN0YW5jZSB9XVxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIHJldHVybiBibG9ja3M7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZUJsb2NrKHR5cGUsIHRhcmdldCkge1xyXG4gICAgICAgIHRhcmdldCA9IGV4dGVuZCh7fSwgdGFyZ2V0KTtcclxuICAgICAgICBpZiAoIU9iamVjdC5rZXlzKHRhcmdldCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbJ3NwYW4nLCB7fV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgICdkaXYnLFxyXG4gICAgICAgICAgICB7IHN0eWxlOiAnbGluZS1oZWlnaHQ6MS4yNWVtO21hcmdpbi1ib3R0b206MC42ZW0nIH0sXHJcbiAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICdkaXYnLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnY29sb3I6IzQ3NjU4MidcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB0eXBlXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICdkaXYnLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiAncGFkZGluZy1sZWZ0OjEuMjVlbSdcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAuLi5PYmplY3Qua2V5cyh0YXJnZXQpLm1hcChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgWydzcGFuJywga2V5d29yZFN0eWxlLCBrZXkgKyAnOiAnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0VmFsdWUodGFyZ2V0W2tleV0sIGZhbHNlKVxyXG4gICAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGZvcm1hdFZhbHVlKHYsIGFzUmF3ID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFsnc3BhbicsIG51bWJlclN0eWxlLCB2XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbJ3NwYW4nLCBzdHJpbmdTdHlsZSwgSlNPTi5zdHJpbmdpZnkodildO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbJ3NwYW4nLCBrZXl3b3JkU3R5bGUsIHZdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gWydvYmplY3QnLCB7IG9iamVjdDogYXNSYXcgPyB0b1Jhdyh2KSA6IHYgfV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gWydzcGFuJywgc3RyaW5nU3R5bGUsIFN0cmluZyh2KV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gZXh0cmFjdEtleXMoaW5zdGFuY2UsIHR5cGUpIHtcclxuICAgICAgICBjb25zdCBDb21wID0gaW5zdGFuY2UudHlwZTtcclxuICAgICAgICBpZiAoaXNGdW5jdGlvbihDb21wKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGV4dHJhY3RlZCA9IHt9O1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluc3RhbmNlLmN0eCkge1xyXG4gICAgICAgICAgICBpZiAoaXNLZXlPZlR5cGUoQ29tcCwga2V5LCB0eXBlKSkge1xyXG4gICAgICAgICAgICAgICAgZXh0cmFjdGVkW2tleV0gPSBpbnN0YW5jZS5jdHhba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXh0cmFjdGVkO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaXNLZXlPZlR5cGUoQ29tcCwga2V5LCB0eXBlKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0cyA9IENvbXBbdHlwZV07XHJcbiAgICAgICAgaWYgKChpc0FycmF5KG9wdHMpICYmIG9wdHMuaW5jbHVkZXMoa2V5KSkgfHxcclxuICAgICAgICAgICAgKGlzT2JqZWN0KG9wdHMpICYmIGtleSBpbiBvcHRzKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKENvbXAuZXh0ZW5kcyAmJiBpc0tleU9mVHlwZShDb21wLmV4dGVuZHMsIGtleSwgdHlwZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChDb21wLm1peGlucyAmJiBDb21wLm1peGlucy5zb21lKG0gPT4gaXNLZXlPZlR5cGUobSwga2V5LCB0eXBlKSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gZ2VuUmVmRmxhZyh2KSB7XHJcbiAgICAgICAgaWYgKGlzU2hhbGxvdyh2KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gYFNoYWxsb3dSZWZgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodi5lZmZlY3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBDb21wdXRlZFJlZmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBgUmVmYDtcclxuICAgIH1cclxuICAgIGlmICh3aW5kb3cuZGV2dG9vbHNGb3JtYXR0ZXJzKSB7XHJcbiAgICAgICAgd2luZG93LmRldnRvb2xzRm9ybWF0dGVycy5wdXNoKGZvcm1hdHRlcik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICB3aW5kb3cuZGV2dG9vbHNGb3JtYXR0ZXJzID0gW2Zvcm1hdHRlcl07XHJcbiAgICB9XHJcbn1cblxuZnVuY3Rpb24gd2l0aE1lbW8obWVtbywgcmVuZGVyLCBjYWNoZSwgaW5kZXgpIHtcclxuICAgIGNvbnN0IGNhY2hlZCA9IGNhY2hlW2luZGV4XTtcclxuICAgIGlmIChjYWNoZWQgJiYgaXNNZW1vU2FtZShjYWNoZWQsIG1lbW8pKSB7XHJcbiAgICAgICAgcmV0dXJuIGNhY2hlZDtcclxuICAgIH1cclxuICAgIGNvbnN0IHJldCA9IHJlbmRlcigpO1xyXG4gICAgLy8gc2hhbGxvdyBjbG9uZVxyXG4gICAgcmV0Lm1lbW8gPSBtZW1vLnNsaWNlKCk7XHJcbiAgICByZXR1cm4gKGNhY2hlW2luZGV4XSA9IHJldCk7XHJcbn1cclxuZnVuY3Rpb24gaXNNZW1vU2FtZShjYWNoZWQsIG1lbW8pIHtcclxuICAgIGNvbnN0IHByZXYgPSBjYWNoZWQubWVtbztcclxuICAgIGlmIChwcmV2Lmxlbmd0aCAhPSBtZW1vLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChoYXNDaGFuZ2VkKHByZXZbaV0sIG1lbW9baV0pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBtYWtlIHN1cmUgdG8gbGV0IHBhcmVudCBibG9jayB0cmFjayBpdCB3aGVuIHJldHVybmluZyBjYWNoZWRcclxuICAgIGlmIChpc0Jsb2NrVHJlZUVuYWJsZWQgPiAwICYmIGN1cnJlbnRCbG9jaykge1xyXG4gICAgICAgIGN1cnJlbnRCbG9jay5wdXNoKGNhY2hlZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxuXG4vLyBDb3JlIEFQSSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuY29uc3QgdmVyc2lvbiA9IFwiMy4yLjM4XCI7XHJcbmNvbnN0IF9zc3JVdGlscyA9IHtcclxuICAgIGNyZWF0ZUNvbXBvbmVudEluc3RhbmNlLFxyXG4gICAgc2V0dXBDb21wb25lbnQsXHJcbiAgICByZW5kZXJDb21wb25lbnRSb290LFxyXG4gICAgc2V0Q3VycmVudFJlbmRlcmluZ0luc3RhbmNlLFxyXG4gICAgaXNWTm9kZSxcclxuICAgIG5vcm1hbGl6ZVZOb2RlXHJcbn07XHJcbi8qKlxyXG4gKiBTU1IgdXRpbHMgZm9yIFxcQHZ1ZS9zZXJ2ZXItcmVuZGVyZXIuIE9ubHkgZXhwb3NlZCBpbiBzc3ItcG9zc2libGUgYnVpbGRzLlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmNvbnN0IHNzclV0aWxzID0gKF9zc3JVdGlscyApO1xyXG4vKipcclxuICogQGludGVybmFsIG9ubHkgZXhwb3NlZCBpbiBjb21wYXQgYnVpbGRzXHJcbiAqL1xyXG5jb25zdCByZXNvbHZlRmlsdGVyID0gbnVsbDtcclxuLyoqXHJcbiAqIEBpbnRlcm5hbCBvbmx5IGV4cG9zZWQgaW4gY29tcGF0IGJ1aWxkcy5cclxuICovXHJcbmNvbnN0IGNvbXBhdFV0aWxzID0gKG51bGwpO1xuXG5leHBvcnQgeyBCYXNlVHJhbnNpdGlvbiwgQ29tbWVudCwgRnJhZ21lbnQsIEtlZXBBbGl2ZSwgU3RhdGljLCBTdXNwZW5zZSwgVGVsZXBvcnQsIFRleHQsIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nLCBjYWxsV2l0aEVycm9ySGFuZGxpbmcsIGNsb25lVk5vZGUsIGNvbXBhdFV0aWxzLCBjb21wdXRlZCwgY3JlYXRlQmxvY2ssIGNyZWF0ZUNvbW1lbnRWTm9kZSwgY3JlYXRlRWxlbWVudEJsb2NrLCBjcmVhdGVCYXNlVk5vZGUgYXMgY3JlYXRlRWxlbWVudFZOb2RlLCBjcmVhdGVIeWRyYXRpb25SZW5kZXJlciwgY3JlYXRlUHJvcHNSZXN0UHJveHksIGNyZWF0ZVJlbmRlcmVyLCBjcmVhdGVTbG90cywgY3JlYXRlU3RhdGljVk5vZGUsIGNyZWF0ZVRleHRWTm9kZSwgY3JlYXRlVk5vZGUsIGRlZmluZUFzeW5jQ29tcG9uZW50LCBkZWZpbmVDb21wb25lbnQsIGRlZmluZUVtaXRzLCBkZWZpbmVFeHBvc2UsIGRlZmluZVByb3BzLCBkZXZ0b29scywgZ2V0Q3VycmVudEluc3RhbmNlLCBnZXRUcmFuc2l0aW9uUmF3Q2hpbGRyZW4sIGd1YXJkUmVhY3RpdmVQcm9wcywgaCwgaGFuZGxlRXJyb3IsIGluaXRDdXN0b21Gb3JtYXR0ZXIsIGluamVjdCwgaXNNZW1vU2FtZSwgaXNSdW50aW1lT25seSwgaXNWTm9kZSwgbWVyZ2VEZWZhdWx0cywgbWVyZ2VQcm9wcywgbmV4dFRpY2ssIG9uQWN0aXZhdGVkLCBvbkJlZm9yZU1vdW50LCBvbkJlZm9yZVVubW91bnQsIG9uQmVmb3JlVXBkYXRlLCBvbkRlYWN0aXZhdGVkLCBvbkVycm9yQ2FwdHVyZWQsIG9uTW91bnRlZCwgb25SZW5kZXJUcmFja2VkLCBvblJlbmRlclRyaWdnZXJlZCwgb25TZXJ2ZXJQcmVmZXRjaCwgb25Vbm1vdW50ZWQsIG9uVXBkYXRlZCwgb3BlbkJsb2NrLCBwb3BTY29wZUlkLCBwcm92aWRlLCBwdXNoU2NvcGVJZCwgcXVldWVQb3N0Rmx1c2hDYiwgcmVnaXN0ZXJSdW50aW1lQ29tcGlsZXIsIHJlbmRlckxpc3QsIHJlbmRlclNsb3QsIHJlc29sdmVDb21wb25lbnQsIHJlc29sdmVEaXJlY3RpdmUsIHJlc29sdmVEeW5hbWljQ29tcG9uZW50LCByZXNvbHZlRmlsdGVyLCByZXNvbHZlVHJhbnNpdGlvbkhvb2tzLCBzZXRCbG9ja1RyYWNraW5nLCBzZXREZXZ0b29sc0hvb2ssIHNldFRyYW5zaXRpb25Ib29rcywgc3NyQ29udGV4dEtleSwgc3NyVXRpbHMsIHRvSGFuZGxlcnMsIHRyYW5zZm9ybVZOb2RlQXJncywgdXNlQXR0cnMsIHVzZVNTUkNvbnRleHQsIHVzZVNsb3RzLCB1c2VUcmFuc2l0aW9uU3RhdGUsIHZlcnNpb24sIHdhcm4sIHdhdGNoLCB3YXRjaEVmZmVjdCwgd2F0Y2hQb3N0RWZmZWN0LCB3YXRjaFN5bmNFZmZlY3QsIHdpdGhBc3luY0NvbnRleHQsIHdpdGhDdHgsIHdpdGhEZWZhdWx0cywgd2l0aERpcmVjdGl2ZXMsIHdpdGhNZW1vLCB3aXRoU2NvcGVJZCB9O1xuIiwiaW1wb3J0IHsgY2FtZWxpemUsIHdhcm4sIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nLCBkZWZpbmVDb21wb25lbnQsIG5leHRUaWNrLCBjcmVhdGVWTm9kZSwgZ2V0Q3VycmVudEluc3RhbmNlLCB3YXRjaFBvc3RFZmZlY3QsIG9uTW91bnRlZCwgb25Vbm1vdW50ZWQsIEZyYWdtZW50LCBTdGF0aWMsIGgsIEJhc2VUcmFuc2l0aW9uLCB1c2VUcmFuc2l0aW9uU3RhdGUsIG9uVXBkYXRlZCwgdG9SYXcsIGdldFRyYW5zaXRpb25SYXdDaGlsZHJlbiwgc2V0VHJhbnNpdGlvbkhvb2tzLCByZXNvbHZlVHJhbnNpdGlvbkhvb2tzLCBjcmVhdGVSZW5kZXJlciwgaXNSdW50aW1lT25seSwgY3JlYXRlSHlkcmF0aW9uUmVuZGVyZXIgfSBmcm9tICdAdnVlL3J1bnRpbWUtY29yZSc7XG5leHBvcnQgKiBmcm9tICdAdnVlL3J1bnRpbWUtY29yZSc7XG5pbXBvcnQgeyBpc1N0cmluZywgaXNBcnJheSwgaHlwaGVuYXRlLCBjYXBpdGFsaXplLCBpc1NwZWNpYWxCb29sZWFuQXR0ciwgaW5jbHVkZUJvb2xlYW5BdHRyLCBpc09uLCBpc01vZGVsTGlzdGVuZXIsIGlzRnVuY3Rpb24sIHRvTnVtYmVyLCBjYW1lbGl6ZSBhcyBjYW1lbGl6ZSQxLCBleHRlbmQsIEVNUFRZX09CSiwgaXNPYmplY3QsIGludm9rZUFycmF5Rm5zLCBsb29zZUluZGV4T2YsIGlzU2V0LCBsb29zZUVxdWFsLCBpc0hUTUxUYWcsIGlzU1ZHVGFnIH0gZnJvbSAnQHZ1ZS9zaGFyZWQnO1xuXG5jb25zdCBzdmdOUyA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XHJcbmNvbnN0IGRvYyA9ICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gZG9jdW1lbnQgOiBudWxsKTtcclxuY29uc3QgdGVtcGxhdGVDb250YWluZXIgPSBkb2MgJiYgLyojX19QVVJFX18qLyBkb2MuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcclxuY29uc3Qgbm9kZU9wcyA9IHtcclxuICAgIGluc2VydDogKGNoaWxkLCBwYXJlbnQsIGFuY2hvcikgPT4ge1xyXG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGQsIGFuY2hvciB8fCBudWxsKTtcclxuICAgIH0sXHJcbiAgICByZW1vdmU6IGNoaWxkID0+IHtcclxuICAgICAgICBjb25zdCBwYXJlbnQgPSBjaGlsZC5wYXJlbnROb2RlO1xyXG4gICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY3JlYXRlRWxlbWVudDogKHRhZywgaXNTVkcsIGlzLCBwcm9wcykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVsID0gaXNTVkdcclxuICAgICAgICAgICAgPyBkb2MuY3JlYXRlRWxlbWVudE5TKHN2Z05TLCB0YWcpXHJcbiAgICAgICAgICAgIDogZG9jLmNyZWF0ZUVsZW1lbnQodGFnLCBpcyA/IHsgaXMgfSA6IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgaWYgKHRhZyA9PT0gJ3NlbGVjdCcgJiYgcHJvcHMgJiYgcHJvcHMubXVsdGlwbGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ211bHRpcGxlJywgcHJvcHMubXVsdGlwbGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZWw7XHJcbiAgICB9LFxyXG4gICAgY3JlYXRlVGV4dDogdGV4dCA9PiBkb2MuY3JlYXRlVGV4dE5vZGUodGV4dCksXHJcbiAgICBjcmVhdGVDb21tZW50OiB0ZXh0ID0+IGRvYy5jcmVhdGVDb21tZW50KHRleHQpLFxyXG4gICAgc2V0VGV4dDogKG5vZGUsIHRleHQpID0+IHtcclxuICAgICAgICBub2RlLm5vZGVWYWx1ZSA9IHRleHQ7XHJcbiAgICB9LFxyXG4gICAgc2V0RWxlbWVudFRleHQ6IChlbCwgdGV4dCkgPT4ge1xyXG4gICAgICAgIGVsLnRleHRDb250ZW50ID0gdGV4dDtcclxuICAgIH0sXHJcbiAgICBwYXJlbnROb2RlOiBub2RlID0+IG5vZGUucGFyZW50Tm9kZSxcclxuICAgIG5leHRTaWJsaW5nOiBub2RlID0+IG5vZGUubmV4dFNpYmxpbmcsXHJcbiAgICBxdWVyeVNlbGVjdG9yOiBzZWxlY3RvciA9PiBkb2MucXVlcnlTZWxlY3RvcihzZWxlY3RvciksXHJcbiAgICBzZXRTY29wZUlkKGVsLCBpZCkge1xyXG4gICAgICAgIGVsLnNldEF0dHJpYnV0ZShpZCwgJycpO1xyXG4gICAgfSxcclxuICAgIGNsb25lTm9kZShlbCkge1xyXG4gICAgICAgIGNvbnN0IGNsb25lZCA9IGVsLmNsb25lTm9kZSh0cnVlKTtcclxuICAgICAgICAvLyAjMzA3MlxyXG4gICAgICAgIC8vIC0gaW4gYHBhdGNoRE9NUHJvcGAsIHdlIHN0b3JlIHRoZSBhY3R1YWwgdmFsdWUgaW4gdGhlIGBlbC5fdmFsdWVgIHByb3BlcnR5LlxyXG4gICAgICAgIC8vIC0gbm9ybWFsbHksIGVsZW1lbnRzIHVzaW5nIGA6dmFsdWVgIGJpbmRpbmdzIHdpbGwgbm90IGJlIGhvaXN0ZWQsIGJ1dCBpZlxyXG4gICAgICAgIC8vICAgdGhlIGJvdW5kIHZhbHVlIGlzIGEgY29uc3RhbnQsIGUuZy4gYDp2YWx1ZT1cInRydWVcImAgLSB0aGV5IGRvIGdldFxyXG4gICAgICAgIC8vICAgaG9pc3RlZC5cclxuICAgICAgICAvLyAtIGluIHByb2R1Y3Rpb24sIGhvaXN0ZWQgbm9kZXMgYXJlIGNsb25lZCB3aGVuIHN1YnNlcXVlbnQgaW5zZXJ0cywgYnV0XHJcbiAgICAgICAgLy8gICBjbG9uZU5vZGUoKSBkb2VzIG5vdCBjb3B5IHRoZSBjdXN0b20gcHJvcGVydHkgd2UgYXR0YWNoZWQuXHJcbiAgICAgICAgLy8gLSBUaGlzIG1heSBuZWVkIHRvIGFjY291bnQgZm9yIG90aGVyIGN1c3RvbSBET00gcHJvcGVydGllcyB3ZSBhdHRhY2ggdG9cclxuICAgICAgICAvLyAgIGVsZW1lbnRzIGluIGFkZGl0aW9uIHRvIGBfdmFsdWVgIGluIHRoZSBmdXR1cmUuXHJcbiAgICAgICAgaWYgKGBfdmFsdWVgIGluIGVsKSB7XHJcbiAgICAgICAgICAgIGNsb25lZC5fdmFsdWUgPSBlbC5fdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjbG9uZWQ7XHJcbiAgICB9LFxyXG4gICAgLy8gX19VTlNBRkVfX1xyXG4gICAgLy8gUmVhc29uOiBpbm5lckhUTUwuXHJcbiAgICAvLyBTdGF0aWMgY29udGVudCBoZXJlIGNhbiBvbmx5IGNvbWUgZnJvbSBjb21waWxlZCB0ZW1wbGF0ZXMuXHJcbiAgICAvLyBBcyBsb25nIGFzIHRoZSB1c2VyIG9ubHkgdXNlcyB0cnVzdGVkIHRlbXBsYXRlcywgdGhpcyBpcyBzYWZlLlxyXG4gICAgaW5zZXJ0U3RhdGljQ29udGVudChjb250ZW50LCBwYXJlbnQsIGFuY2hvciwgaXNTVkcsIHN0YXJ0LCBlbmQpIHtcclxuICAgICAgICAvLyA8cGFyZW50PiBiZWZvcmUgfCBmaXJzdCAuLi4gbGFzdCB8IGFuY2hvciA8L3BhcmVudD5cclxuICAgICAgICBjb25zdCBiZWZvcmUgPSBhbmNob3IgPyBhbmNob3IucHJldmlvdXNTaWJsaW5nIDogcGFyZW50Lmxhc3RDaGlsZDtcclxuICAgICAgICAvLyAjNTMwOCBjYW4gb25seSB0YWtlIGNhY2hlZCBwYXRoIGlmOlxyXG4gICAgICAgIC8vIC0gaGFzIGEgc2luZ2xlIHJvb3Qgbm9kZVxyXG4gICAgICAgIC8vIC0gbmV4dFNpYmxpbmcgaW5mbyBpcyBzdGlsbCBhdmFpbGFibGVcclxuICAgICAgICBpZiAoc3RhcnQgJiYgKHN0YXJ0ID09PSBlbmQgfHwgc3RhcnQubmV4dFNpYmxpbmcpKSB7XHJcbiAgICAgICAgICAgIC8vIGNhY2hlZFxyXG4gICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShzdGFydC5jbG9uZU5vZGUodHJ1ZSksIGFuY2hvcik7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPT09IGVuZCB8fCAhKHN0YXJ0ID0gc3RhcnQubmV4dFNpYmxpbmcpKVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBmcmVzaCBpbnNlcnRcclxuICAgICAgICAgICAgdGVtcGxhdGVDb250YWluZXIuaW5uZXJIVE1MID0gaXNTVkcgPyBgPHN2Zz4ke2NvbnRlbnR9PC9zdmc+YCA6IGNvbnRlbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGVtcGxhdGVDb250YWluZXIuY29udGVudDtcclxuICAgICAgICAgICAgaWYgKGlzU1ZHKSB7XHJcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgb3V0ZXIgc3ZnIHdyYXBwZXJcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSB0ZW1wbGF0ZS5maXJzdENoaWxkO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHdyYXBwZXIuZmlyc3RDaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLmFwcGVuZENoaWxkKHdyYXBwZXIuZmlyc3RDaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5yZW1vdmVDaGlsZCh3cmFwcGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHRlbXBsYXRlLCBhbmNob3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAvLyBmaXJzdFxyXG4gICAgICAgICAgICBiZWZvcmUgPyBiZWZvcmUubmV4dFNpYmxpbmcgOiBwYXJlbnQuZmlyc3RDaGlsZCxcclxuICAgICAgICAgICAgLy8gbGFzdFxyXG4gICAgICAgICAgICBhbmNob3IgPyBhbmNob3IucHJldmlvdXNTaWJsaW5nIDogcGFyZW50Lmxhc3RDaGlsZFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcbn07XG5cbi8vIGNvbXBpbGVyIHNob3VsZCBub3JtYWxpemUgY2xhc3MgKyA6Y2xhc3MgYmluZGluZ3Mgb24gdGhlIHNhbWUgZWxlbWVudFxyXG4vLyBpbnRvIGEgc2luZ2xlIGJpbmRpbmcgWydzdGF0aWNDbGFzcycsIGR5bmFtaWNdXHJcbmZ1bmN0aW9uIHBhdGNoQ2xhc3MoZWwsIHZhbHVlLCBpc1NWRykge1xyXG4gICAgLy8gZGlyZWN0bHkgc2V0dGluZyBjbGFzc05hbWUgc2hvdWxkIGJlIGZhc3RlciB0aGFuIHNldEF0dHJpYnV0ZSBpbiB0aGVvcnlcclxuICAgIC8vIGlmIHRoaXMgaXMgYW4gZWxlbWVudCBkdXJpbmcgYSB0cmFuc2l0aW9uLCB0YWtlIHRoZSB0ZW1wb3JhcnkgdHJhbnNpdGlvblxyXG4gICAgLy8gY2xhc3NlcyBpbnRvIGFjY291bnQuXHJcbiAgICBjb25zdCB0cmFuc2l0aW9uQ2xhc3NlcyA9IGVsLl92dGM7XHJcbiAgICBpZiAodHJhbnNpdGlvbkNsYXNzZXMpIHtcclxuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSA/IFt2YWx1ZSwgLi4udHJhbnNpdGlvbkNsYXNzZXNdIDogWy4uLnRyYW5zaXRpb25DbGFzc2VzXSkuam9pbignICcpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcclxuICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc1NWRykge1xyXG4gICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlbC5jbGFzc05hbWUgPSB2YWx1ZTtcclxuICAgIH1cclxufVxuXG5mdW5jdGlvbiBwYXRjaFN0eWxlKGVsLCBwcmV2LCBuZXh0KSB7XHJcbiAgICBjb25zdCBzdHlsZSA9IGVsLnN0eWxlO1xyXG4gICAgY29uc3QgaXNDc3NTdHJpbmcgPSBpc1N0cmluZyhuZXh0KTtcclxuICAgIGlmIChuZXh0ICYmICFpc0Nzc1N0cmluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG5leHQpIHtcclxuICAgICAgICAgICAgc2V0U3R5bGUoc3R5bGUsIGtleSwgbmV4dFtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHByZXYgJiYgIWlzU3RyaW5nKHByZXYpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHByZXYpIHtcclxuICAgICAgICAgICAgICAgIGlmIChuZXh0W2tleV0gPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFN0eWxlKHN0eWxlLCBrZXksICcnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnREaXNwbGF5ID0gc3R5bGUuZGlzcGxheTtcclxuICAgICAgICBpZiAoaXNDc3NTdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKHByZXYgIT09IG5leHQpIHtcclxuICAgICAgICAgICAgICAgIHN0eWxlLmNzc1RleHQgPSBuZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHByZXYpIHtcclxuICAgICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpbmRpY2F0ZXMgdGhhdCB0aGUgYGRpc3BsYXlgIG9mIHRoZSBlbGVtZW50IGlzIGNvbnRyb2xsZWQgYnkgYHYtc2hvd2AsXHJcbiAgICAgICAgLy8gc28gd2UgYWx3YXlzIGtlZXAgdGhlIGN1cnJlbnQgYGRpc3BsYXlgIHZhbHVlIHJlZ2FyZGxlc3Mgb2YgdGhlIGBzdHlsZWBcclxuICAgICAgICAvLyB2YWx1ZSwgdGh1cyBoYW5kaW5nIG92ZXIgY29udHJvbCB0byBgdi1zaG93YC5cclxuICAgICAgICBpZiAoJ192b2QnIGluIGVsKSB7XHJcbiAgICAgICAgICAgIHN0eWxlLmRpc3BsYXkgPSBjdXJyZW50RGlzcGxheTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuY29uc3QgaW1wb3J0YW50UkUgPSAvXFxzKiFpbXBvcnRhbnQkLztcclxuZnVuY3Rpb24gc2V0U3R5bGUoc3R5bGUsIG5hbWUsIHZhbCkge1xyXG4gICAgaWYgKGlzQXJyYXkodmFsKSkge1xyXG4gICAgICAgIHZhbC5mb3JFYWNoKHYgPT4gc2V0U3R5bGUoc3R5bGUsIG5hbWUsIHYpKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh2YWwgPT0gbnVsbClcclxuICAgICAgICAgICAgdmFsID0gJyc7XHJcbiAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgnLS0nKSkge1xyXG4gICAgICAgICAgICAvLyBjdXN0b20gcHJvcGVydHkgZGVmaW5pdGlvblxyXG4gICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCB2YWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgcHJlZml4ZWQgPSBhdXRvUHJlZml4KHN0eWxlLCBuYW1lKTtcclxuICAgICAgICAgICAgaWYgKGltcG9ydGFudFJFLnRlc3QodmFsKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gIWltcG9ydGFudFxyXG4gICAgICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoaHlwaGVuYXRlKHByZWZpeGVkKSwgdmFsLnJlcGxhY2UoaW1wb3J0YW50UkUsICcnKSwgJ2ltcG9ydGFudCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgc3R5bGVbcHJlZml4ZWRdID0gdmFsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmNvbnN0IHByZWZpeGVzID0gWydXZWJraXQnLCAnTW96JywgJ21zJ107XHJcbmNvbnN0IHByZWZpeENhY2hlID0ge307XHJcbmZ1bmN0aW9uIGF1dG9QcmVmaXgoc3R5bGUsIHJhd05hbWUpIHtcclxuICAgIGNvbnN0IGNhY2hlZCA9IHByZWZpeENhY2hlW3Jhd05hbWVdO1xyXG4gICAgaWYgKGNhY2hlZCkge1xyXG4gICAgICAgIHJldHVybiBjYWNoZWQ7XHJcbiAgICB9XHJcbiAgICBsZXQgbmFtZSA9IGNhbWVsaXplKHJhd05hbWUpO1xyXG4gICAgaWYgKG5hbWUgIT09ICdmaWx0ZXInICYmIG5hbWUgaW4gc3R5bGUpIHtcclxuICAgICAgICByZXR1cm4gKHByZWZpeENhY2hlW3Jhd05hbWVdID0gbmFtZSk7XHJcbiAgICB9XHJcbiAgICBuYW1lID0gY2FwaXRhbGl6ZShuYW1lKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJlZml4ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBwcmVmaXhlZCA9IHByZWZpeGVzW2ldICsgbmFtZTtcclxuICAgICAgICBpZiAocHJlZml4ZWQgaW4gc3R5bGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChwcmVmaXhDYWNoZVtyYXdOYW1lXSA9IHByZWZpeGVkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmF3TmFtZTtcclxufVxuXG5jb25zdCB4bGlua05TID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnO1xyXG5mdW5jdGlvbiBwYXRjaEF0dHIoZWwsIGtleSwgdmFsdWUsIGlzU1ZHLCBpbnN0YW5jZSkge1xyXG4gICAgaWYgKGlzU1ZHICYmIGtleS5zdGFydHNXaXRoKCd4bGluazonKSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZU5TKHhsaW5rTlMsIGtleS5zbGljZSg2LCBrZXkubGVuZ3RoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGVOUyh4bGlua05TLCBrZXksIHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICAvLyBub3RlIHdlIGFyZSBvbmx5IGNoZWNraW5nIGJvb2xlYW4gYXR0cmlidXRlcyB0aGF0IGRvbid0IGhhdmUgYVxyXG4gICAgICAgIC8vIGNvcnJlc3BvbmRpbmcgZG9tIHByb3Agb2YgdGhlIHNhbWUgbmFtZSBoZXJlLlxyXG4gICAgICAgIGNvbnN0IGlzQm9vbGVhbiA9IGlzU3BlY2lhbEJvb2xlYW5BdHRyKGtleSk7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgKGlzQm9vbGVhbiAmJiAhaW5jbHVkZUJvb2xlYW5BdHRyKHZhbHVlKSkpIHtcclxuICAgICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoa2V5LCBpc0Jvb2xlYW4gPyAnJyA6IHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cblxuLy8gX19VTlNBRkVfX1xyXG4vLyBmdW5jdGlvbnMuIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciB1c2luZyB0aGVtIHdpdGggb25seSB0cnVzdGVkIGNvbnRlbnQuXHJcbmZ1bmN0aW9uIHBhdGNoRE9NUHJvcChlbCwga2V5LCB2YWx1ZSwgXHJcbi8vIHRoZSBmb2xsb3dpbmcgYXJncyBhcmUgcGFzc2VkIG9ubHkgZHVlIHRvIHBvdGVudGlhbCBpbm5lckhUTUwvdGV4dENvbnRlbnRcclxuLy8gb3ZlcnJpZGluZyBleGlzdGluZyBWTm9kZXMsIGluIHdoaWNoIGNhc2UgdGhlIG9sZCB0cmVlIG11c3QgYmUgcHJvcGVybHlcclxuLy8gdW5tb3VudGVkLlxyXG5wcmV2Q2hpbGRyZW4sIHBhcmVudENvbXBvbmVudCwgcGFyZW50U3VzcGVuc2UsIHVubW91bnRDaGlsZHJlbikge1xyXG4gICAgaWYgKGtleSA9PT0gJ2lubmVySFRNTCcgfHwga2V5ID09PSAndGV4dENvbnRlbnQnKSB7XHJcbiAgICAgICAgaWYgKHByZXZDaGlsZHJlbikge1xyXG4gICAgICAgICAgICB1bm1vdW50Q2hpbGRyZW4ocHJldkNoaWxkcmVuLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxba2V5XSA9IHZhbHVlID09IG51bGwgPyAnJyA6IHZhbHVlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChrZXkgPT09ICd2YWx1ZScgJiZcclxuICAgICAgICBlbC50YWdOYW1lICE9PSAnUFJPR1JFU1MnICYmXHJcbiAgICAgICAgLy8gY3VzdG9tIGVsZW1lbnRzIG1heSB1c2UgX3ZhbHVlIGludGVybmFsbHlcclxuICAgICAgICAhZWwudGFnTmFtZS5pbmNsdWRlcygnLScpKSB7XHJcbiAgICAgICAgLy8gc3RvcmUgdmFsdWUgYXMgX3ZhbHVlIGFzIHdlbGwgc2luY2VcclxuICAgICAgICAvLyBub24tc3RyaW5nIHZhbHVlcyB3aWxsIGJlIHN0cmluZ2lmaWVkLlxyXG4gICAgICAgIGVsLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XHJcbiAgICAgICAgaWYgKGVsLnZhbHVlICE9PSBuZXdWYWx1ZSB8fFxyXG4gICAgICAgICAgICAvLyAjNDk1NjogYWx3YXlzIHNldCBmb3IgT1BUSU9OIGVsZW1lbnRzIGJlY2F1c2UgaXRzIHZhbHVlIGZhbGxzIGJhY2sgdG9cclxuICAgICAgICAgICAgLy8gdGV4dENvbnRlbnQgaWYgbm8gdmFsdWUgYXR0cmlidXRlIGlzIHByZXNlbnQuIEFuZCBzZXR0aW5nIC52YWx1ZSBmb3JcclxuICAgICAgICAgICAgLy8gT1BUSU9OIGhhcyBubyBzaWRlIGVmZmVjdFxyXG4gICAgICAgICAgICBlbC50YWdOYW1lID09PSAnT1BUSU9OJykge1xyXG4gICAgICAgICAgICBlbC52YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IG5lZWRSZW1vdmUgPSBmYWxzZTtcclxuICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgZWxba2V5XTtcclxuICAgICAgICBpZiAodHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgICAgIC8vIGUuZy4gPHNlbGVjdCBtdWx0aXBsZT4gY29tcGlsZXMgdG8geyBtdWx0aXBsZTogJycgfVxyXG4gICAgICAgICAgICB2YWx1ZSA9IGluY2x1ZGVCb29sZWFuQXR0cih2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHZhbHVlID09IG51bGwgJiYgdHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgLy8gZS5nLiA8ZGl2IDppZD1cIm51bGxcIj5cclxuICAgICAgICAgICAgdmFsdWUgPSAnJztcclxuICAgICAgICAgICAgbmVlZFJlbW92ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIC8vIGUuZy4gPGltZyA6d2lkdGg9XCJudWxsXCI+XHJcbiAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBvZiBzb21lIElETCBhdHRyIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAsIGUuZy4gaW5wdXQuc2l6ZSA9IDAgLT4gZXJyb3JcclxuICAgICAgICAgICAgdmFsdWUgPSAwO1xyXG4gICAgICAgICAgICBuZWVkUmVtb3ZlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBzb21lIHByb3BlcnRpZXMgcGVyZm9ybSB2YWx1ZSB2YWxpZGF0aW9uIGFuZCB0aHJvdyxcclxuICAgIC8vIHNvbWUgcHJvcGVydGllcyBoYXMgZ2V0dGVyLCBubyBzZXR0ZXIsIHdpbGwgZXJyb3IgaW4gJ3VzZSBzdHJpY3QnXHJcbiAgICAvLyBlZy4gPHNlbGVjdCA6dHlwZT1cIm51bGxcIj48L3NlbGVjdD4gPHNlbGVjdCA6d2lsbFZhbGlkYXRlPVwibnVsbFwiPjwvc2VsZWN0PlxyXG4gICAgdHJ5IHtcclxuICAgICAgICBlbFtrZXldID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgd2FybihgRmFpbGVkIHNldHRpbmcgcHJvcCBcIiR7a2V5fVwiIG9uIDwke2VsLnRhZ05hbWUudG9Mb3dlckNhc2UoKX0+OiBgICtcclxuICAgICAgICAgICAgICAgIGB2YWx1ZSAke3ZhbHVlfSBpcyBpbnZhbGlkLmAsIGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5lZWRSZW1vdmUgJiYgZWwucmVtb3ZlQXR0cmlidXRlKGtleSk7XHJcbn1cblxuLy8gQXN5bmMgZWRnZSBjYXNlIGZpeCByZXF1aXJlcyBzdG9yaW5nIGFuIGV2ZW50IGxpc3RlbmVyJ3MgYXR0YWNoIHRpbWVzdGFtcC5cclxuY29uc3QgW19nZXROb3csIHNraXBUaW1lc3RhbXBDaGVja10gPSAvKiNfX1BVUkVfXyovICgoKSA9PiB7XHJcbiAgICBsZXQgX2dldE5vdyA9IERhdGUubm93O1xyXG4gICAgbGV0IHNraXBUaW1lc3RhbXBDaGVjayA9IGZhbHNlO1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgLy8gRGV0ZXJtaW5lIHdoYXQgZXZlbnQgdGltZXN0YW1wIHRoZSBicm93c2VyIGlzIHVzaW5nLiBBbm5veWluZ2x5LCB0aGVcclxuICAgICAgICAvLyB0aW1lc3RhbXAgY2FuIGVpdGhlciBiZSBoaS1yZXMgKHJlbGF0aXZlIHRvIHBhZ2UgbG9hZCkgb3IgbG93LXJlc1xyXG4gICAgICAgIC8vIChyZWxhdGl2ZSB0byBVTklYIGVwb2NoKSwgc28gaW4gb3JkZXIgdG8gY29tcGFyZSB0aW1lIHdlIGhhdmUgdG8gdXNlIHRoZVxyXG4gICAgICAgIC8vIHNhbWUgdGltZXN0YW1wIHR5cGUgd2hlbiBzYXZpbmcgdGhlIGZsdXNoIHRpbWVzdGFtcC5cclxuICAgICAgICBpZiAoRGF0ZS5ub3coKSA+IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpLnRpbWVTdGFtcCkge1xyXG4gICAgICAgICAgICAvLyBpZiB0aGUgbG93LXJlcyB0aW1lc3RhbXAgd2hpY2ggaXMgYmlnZ2VyIHRoYW4gdGhlIGV2ZW50IHRpbWVzdGFtcFxyXG4gICAgICAgICAgICAvLyAod2hpY2ggaXMgZXZhbHVhdGVkIEFGVEVSKSBpdCBtZWFucyB0aGUgZXZlbnQgaXMgdXNpbmcgYSBoaS1yZXMgdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAvLyBhbmQgd2UgbmVlZCB0byB1c2UgdGhlIGhpLXJlcyB2ZXJzaW9uIGZvciBldmVudCBsaXN0ZW5lcnMgYXMgd2VsbC5cclxuICAgICAgICAgICAgX2dldE5vdyA9IHBlcmZvcm1hbmNlLm5vdy5iaW5kKHBlcmZvcm1hbmNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gIzM0ODU6IEZpcmVmb3ggPD0gNTMgaGFzIGluY29ycmVjdCBFdmVudC50aW1lU3RhbXAgaW1wbGVtZW50YXRpb25cclxuICAgICAgICAvLyBhbmQgZG9lcyBub3QgZmlyZSBtaWNyb3Rhc2tzIGluIGJldHdlZW4gZXZlbnQgcHJvcGFnYXRpb24sIHNvIHNhZmUgdG8gZXhjbHVkZS5cclxuICAgICAgICBjb25zdCBmZk1hdGNoID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS9pKTtcclxuICAgICAgICBza2lwVGltZXN0YW1wQ2hlY2sgPSAhIShmZk1hdGNoICYmIE51bWJlcihmZk1hdGNoWzFdKSA8PSA1Myk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW19nZXROb3csIHNraXBUaW1lc3RhbXBDaGVja107XHJcbn0pKCk7XHJcbi8vIFRvIGF2b2lkIHRoZSBvdmVyaGVhZCBvZiByZXBlYXRlZGx5IGNhbGxpbmcgcGVyZm9ybWFuY2Uubm93KCksIHdlIGNhY2hlXHJcbi8vIGFuZCB1c2UgdGhlIHNhbWUgdGltZXN0YW1wIGZvciBhbGwgZXZlbnQgbGlzdGVuZXJzIGF0dGFjaGVkIGluIHRoZSBzYW1lIHRpY2suXHJcbmxldCBjYWNoZWROb3cgPSAwO1xyXG5jb25zdCBwID0gLyojX19QVVJFX18qLyBQcm9taXNlLnJlc29sdmUoKTtcclxuY29uc3QgcmVzZXQgPSAoKSA9PiB7XHJcbiAgICBjYWNoZWROb3cgPSAwO1xyXG59O1xyXG5jb25zdCBnZXROb3cgPSAoKSA9PiBjYWNoZWROb3cgfHwgKHAudGhlbihyZXNldCksIChjYWNoZWROb3cgPSBfZ2V0Tm93KCkpKTtcclxuZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lcihlbCwgZXZlbnQsIGhhbmRsZXIsIG9wdGlvbnMpIHtcclxuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIsIG9wdGlvbnMpO1xyXG59XHJcbmZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIoZWwsIGV2ZW50LCBoYW5kbGVyLCBvcHRpb25zKSB7XHJcbiAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVyLCBvcHRpb25zKTtcclxufVxyXG5mdW5jdGlvbiBwYXRjaEV2ZW50KGVsLCByYXdOYW1lLCBwcmV2VmFsdWUsIG5leHRWYWx1ZSwgaW5zdGFuY2UgPSBudWxsKSB7XHJcbiAgICAvLyB2ZWkgPSB2dWUgZXZlbnQgaW52b2tlcnNcclxuICAgIGNvbnN0IGludm9rZXJzID0gZWwuX3ZlaSB8fCAoZWwuX3ZlaSA9IHt9KTtcclxuICAgIGNvbnN0IGV4aXN0aW5nSW52b2tlciA9IGludm9rZXJzW3Jhd05hbWVdO1xyXG4gICAgaWYgKG5leHRWYWx1ZSAmJiBleGlzdGluZ0ludm9rZXIpIHtcclxuICAgICAgICAvLyBwYXRjaFxyXG4gICAgICAgIGV4aXN0aW5nSW52b2tlci52YWx1ZSA9IG5leHRWYWx1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IFtuYW1lLCBvcHRpb25zXSA9IHBhcnNlTmFtZShyYXdOYW1lKTtcclxuICAgICAgICBpZiAobmV4dFZhbHVlKSB7XHJcbiAgICAgICAgICAgIC8vIGFkZFxyXG4gICAgICAgICAgICBjb25zdCBpbnZva2VyID0gKGludm9rZXJzW3Jhd05hbWVdID0gY3JlYXRlSW52b2tlcihuZXh0VmFsdWUsIGluc3RhbmNlKSk7XHJcbiAgICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZWwsIG5hbWUsIGludm9rZXIsIG9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChleGlzdGluZ0ludm9rZXIpIHtcclxuICAgICAgICAgICAgLy8gcmVtb3ZlXHJcbiAgICAgICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoZWwsIG5hbWUsIGV4aXN0aW5nSW52b2tlciwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgIGludm9rZXJzW3Jhd05hbWVdID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5jb25zdCBvcHRpb25zTW9kaWZpZXJSRSA9IC8oPzpPbmNlfFBhc3NpdmV8Q2FwdHVyZSkkLztcclxuZnVuY3Rpb24gcGFyc2VOYW1lKG5hbWUpIHtcclxuICAgIGxldCBvcHRpb25zO1xyXG4gICAgaWYgKG9wdGlvbnNNb2RpZmllclJFLnRlc3QobmFtZSkpIHtcclxuICAgICAgICBvcHRpb25zID0ge307XHJcbiAgICAgICAgbGV0IG07XHJcbiAgICAgICAgd2hpbGUgKChtID0gbmFtZS5tYXRjaChvcHRpb25zTW9kaWZpZXJSRSkpKSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lLnNsaWNlKDAsIG5hbWUubGVuZ3RoIC0gbVswXS5sZW5ndGgpO1xyXG4gICAgICAgICAgICBvcHRpb25zW21bMF0udG9Mb3dlckNhc2UoKV0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGV2ZW50ID0gbmFtZVsyXSA9PT0gJzonID8gbmFtZS5zbGljZSgzKSA6IGh5cGhlbmF0ZShuYW1lLnNsaWNlKDIpKTtcclxuICAgIHJldHVybiBbZXZlbnQsIG9wdGlvbnNdO1xyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUludm9rZXIoaW5pdGlhbFZhbHVlLCBpbnN0YW5jZSkge1xyXG4gICAgY29uc3QgaW52b2tlciA9IChlKSA9PiB7XHJcbiAgICAgICAgLy8gYXN5bmMgZWRnZSBjYXNlICM2NTY2OiBpbm5lciBjbGljayBldmVudCB0cmlnZ2VycyBwYXRjaCwgZXZlbnQgaGFuZGxlclxyXG4gICAgICAgIC8vIGF0dGFjaGVkIHRvIG91dGVyIGVsZW1lbnQgZHVyaW5nIHBhdGNoLCBhbmQgdHJpZ2dlcmVkIGFnYWluLiBUaGlzXHJcbiAgICAgICAgLy8gaGFwcGVucyBiZWNhdXNlIGJyb3dzZXJzIGZpcmUgbWljcm90YXNrIHRpY2tzIGJldHdlZW4gZXZlbnQgcHJvcGFnYXRpb24uXHJcbiAgICAgICAgLy8gdGhlIHNvbHV0aW9uIGlzIHNpbXBsZTogd2Ugc2F2ZSB0aGUgdGltZXN0YW1wIHdoZW4gYSBoYW5kbGVyIGlzIGF0dGFjaGVkLFxyXG4gICAgICAgIC8vIGFuZCB0aGUgaGFuZGxlciB3b3VsZCBvbmx5IGZpcmUgaWYgdGhlIGV2ZW50IHBhc3NlZCB0byBpdCB3YXMgZmlyZWRcclxuICAgICAgICAvLyBBRlRFUiBpdCB3YXMgYXR0YWNoZWQuXHJcbiAgICAgICAgY29uc3QgdGltZVN0YW1wID0gZS50aW1lU3RhbXAgfHwgX2dldE5vdygpO1xyXG4gICAgICAgIGlmIChza2lwVGltZXN0YW1wQ2hlY2sgfHwgdGltZVN0YW1wID49IGludm9rZXIuYXR0YWNoZWQgLSAxKSB7XHJcbiAgICAgICAgICAgIGNhbGxXaXRoQXN5bmNFcnJvckhhbmRsaW5nKHBhdGNoU3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKGUsIGludm9rZXIudmFsdWUpLCBpbnN0YW5jZSwgNSAvKiBFcnJvckNvZGVzLk5BVElWRV9FVkVOVF9IQU5ETEVSICovLCBbZV0pO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBpbnZva2VyLnZhbHVlID0gaW5pdGlhbFZhbHVlO1xyXG4gICAgaW52b2tlci5hdHRhY2hlZCA9IGdldE5vdygpO1xyXG4gICAgcmV0dXJuIGludm9rZXI7XHJcbn1cclxuZnVuY3Rpb24gcGF0Y2hTdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oZSwgdmFsdWUpIHtcclxuICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU3RvcCA9IGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uO1xyXG4gICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBvcmlnaW5hbFN0b3AuY2FsbChlKTtcclxuICAgICAgICAgICAgZS5fc3RvcHBlZCA9IHRydWU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gdmFsdWUubWFwKGZuID0+IChlKSA9PiAhZS5fc3RvcHBlZCAmJiBmbiAmJiBmbihlKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn1cblxuY29uc3QgbmF0aXZlT25SRSA9IC9eb25bYS16XS87XHJcbmNvbnN0IHBhdGNoUHJvcCA9IChlbCwga2V5LCBwcmV2VmFsdWUsIG5leHRWYWx1ZSwgaXNTVkcgPSBmYWxzZSwgcHJldkNoaWxkcmVuLCBwYXJlbnRDb21wb25lbnQsIHBhcmVudFN1c3BlbnNlLCB1bm1vdW50Q2hpbGRyZW4pID0+IHtcclxuICAgIGlmIChrZXkgPT09ICdjbGFzcycpIHtcclxuICAgICAgICBwYXRjaENsYXNzKGVsLCBuZXh0VmFsdWUsIGlzU1ZHKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGtleSA9PT0gJ3N0eWxlJykge1xyXG4gICAgICAgIHBhdGNoU3R5bGUoZWwsIHByZXZWYWx1ZSwgbmV4dFZhbHVlKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzT24oa2V5KSkge1xyXG4gICAgICAgIC8vIGlnbm9yZSB2LW1vZGVsIGxpc3RlbmVyc1xyXG4gICAgICAgIGlmICghaXNNb2RlbExpc3RlbmVyKGtleSkpIHtcclxuICAgICAgICAgICAgcGF0Y2hFdmVudChlbCwga2V5LCBwcmV2VmFsdWUsIG5leHRWYWx1ZSwgcGFyZW50Q29tcG9uZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChrZXlbMF0gPT09ICcuJ1xyXG4gICAgICAgID8gKChrZXkgPSBrZXkuc2xpY2UoMSkpLCB0cnVlKVxyXG4gICAgICAgIDoga2V5WzBdID09PSAnXidcclxuICAgICAgICAgICAgPyAoKGtleSA9IGtleS5zbGljZSgxKSksIGZhbHNlKVxyXG4gICAgICAgICAgICA6IHNob3VsZFNldEFzUHJvcChlbCwga2V5LCBuZXh0VmFsdWUsIGlzU1ZHKSkge1xyXG4gICAgICAgIHBhdGNoRE9NUHJvcChlbCwga2V5LCBuZXh0VmFsdWUsIHByZXZDaGlsZHJlbiwgcGFyZW50Q29tcG9uZW50LCBwYXJlbnRTdXNwZW5zZSwgdW5tb3VudENoaWxkcmVuKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgPGlucHV0IHYtbW9kZWwgdHlwZT1cImNoZWNrYm94XCI+IHdpdGhcclxuICAgICAgICAvLyA6dHJ1ZS12YWx1ZSAmIDpmYWxzZS12YWx1ZVxyXG4gICAgICAgIC8vIHN0b3JlIHZhbHVlIGFzIGRvbSBwcm9wZXJ0aWVzIHNpbmNlIG5vbi1zdHJpbmcgdmFsdWVzIHdpbGwgYmVcclxuICAgICAgICAvLyBzdHJpbmdpZmllZC5cclxuICAgICAgICBpZiAoa2V5ID09PSAndHJ1ZS12YWx1ZScpIHtcclxuICAgICAgICAgICAgZWwuX3RydWVWYWx1ZSA9IG5leHRWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoa2V5ID09PSAnZmFsc2UtdmFsdWUnKSB7XHJcbiAgICAgICAgICAgIGVsLl9mYWxzZVZhbHVlID0gbmV4dFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwYXRjaEF0dHIoZWwsIGtleSwgbmV4dFZhbHVlLCBpc1NWRyk7XHJcbiAgICB9XHJcbn07XHJcbmZ1bmN0aW9uIHNob3VsZFNldEFzUHJvcChlbCwga2V5LCB2YWx1ZSwgaXNTVkcpIHtcclxuICAgIGlmIChpc1NWRykge1xyXG4gICAgICAgIC8vIG1vc3Qga2V5cyBtdXN0IGJlIHNldCBhcyBhdHRyaWJ1dGUgb24gc3ZnIGVsZW1lbnRzIHRvIHdvcmtcclxuICAgICAgICAvLyAuLi5leGNlcHQgaW5uZXJIVE1MICYgdGV4dENvbnRlbnRcclxuICAgICAgICBpZiAoa2V5ID09PSAnaW5uZXJIVE1MJyB8fCBrZXkgPT09ICd0ZXh0Q29udGVudCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIG9yIG5hdGl2ZSBvbmNsaWNrIHdpdGggZnVuY3Rpb24gdmFsdWVzXHJcbiAgICAgICAgaWYgKGtleSBpbiBlbCAmJiBuYXRpdmVPblJFLnRlc3Qoa2V5KSAmJiBpc0Z1bmN0aW9uKHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gdGhlc2UgYXJlIGVudW1lcmF0ZWQgYXR0cnMsIGhvd2V2ZXIgdGhlaXIgY29ycmVzcG9uZGluZyBET00gcHJvcGVydGllc1xyXG4gICAgLy8gYXJlIGFjdHVhbGx5IGJvb2xlYW5zIC0gdGhpcyBsZWFkcyB0byBzZXR0aW5nIGl0IHdpdGggYSBzdHJpbmcgXCJmYWxzZVwiXHJcbiAgICAvLyB2YWx1ZSBsZWFkaW5nIGl0IHRvIGJlIGNvZXJjZWQgdG8gYHRydWVgLCBzbyB3ZSBuZWVkIHRvIGFsd2F5cyB0cmVhdFxyXG4gICAgLy8gdGhlbSBhcyBhdHRyaWJ1dGVzLlxyXG4gICAgLy8gTm90ZSB0aGF0IGBjb250ZW50RWRpdGFibGVgIGRvZXNuJ3QgaGF2ZSB0aGlzIHByb2JsZW06IGl0cyBET01cclxuICAgIC8vIHByb3BlcnR5IGlzIGFsc28gZW51bWVyYXRlZCBzdHJpbmcgdmFsdWVzLlxyXG4gICAgaWYgKGtleSA9PT0gJ3NwZWxsY2hlY2snIHx8IGtleSA9PT0gJ2RyYWdnYWJsZScgfHwga2V5ID09PSAndHJhbnNsYXRlJykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vICMxNzg3LCAjMjg0MCBmb3JtIHByb3BlcnR5IG9uIGZvcm0gZWxlbWVudHMgaXMgcmVhZG9ubHkgYW5kIG11c3QgYmUgc2V0IGFzXHJcbiAgICAvLyBhdHRyaWJ1dGUuXHJcbiAgICBpZiAoa2V5ID09PSAnZm9ybScpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyAjMTUyNiA8aW5wdXQgbGlzdD4gbXVzdCBiZSBzZXQgYXMgYXR0cmlidXRlXHJcbiAgICBpZiAoa2V5ID09PSAnbGlzdCcgJiYgZWwudGFnTmFtZSA9PT0gJ0lOUFVUJykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vICMyNzY2IDx0ZXh0YXJlYSB0eXBlPiBtdXN0IGJlIHNldCBhcyBhdHRyaWJ1dGVcclxuICAgIGlmIChrZXkgPT09ICd0eXBlJyAmJiBlbC50YWdOYW1lID09PSAnVEVYVEFSRUEnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gbmF0aXZlIG9uY2xpY2sgd2l0aCBzdHJpbmcgdmFsdWUsIG11c3QgYmUgc2V0IGFzIGF0dHJpYnV0ZVxyXG4gICAgaWYgKG5hdGl2ZU9uUkUudGVzdChrZXkpICYmIGlzU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBrZXkgaW4gZWw7XHJcbn1cblxuZnVuY3Rpb24gZGVmaW5lQ3VzdG9tRWxlbWVudChvcHRpb25zLCBoeWRyYXRlKSB7XHJcbiAgICBjb25zdCBDb21wID0gZGVmaW5lQ29tcG9uZW50KG9wdGlvbnMpO1xyXG4gICAgY2xhc3MgVnVlQ3VzdG9tRWxlbWVudCBleHRlbmRzIFZ1ZUVsZW1lbnQge1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKGluaXRpYWxQcm9wcykge1xyXG4gICAgICAgICAgICBzdXBlcihDb21wLCBpbml0aWFsUHJvcHMsIGh5ZHJhdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFZ1ZUN1c3RvbUVsZW1lbnQuZGVmID0gQ29tcDtcclxuICAgIHJldHVybiBWdWVDdXN0b21FbGVtZW50O1xyXG59XHJcbmNvbnN0IGRlZmluZVNTUkN1c3RvbUVsZW1lbnQgPSAoKG9wdGlvbnMpID0+IHtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHJldHVybiBkZWZpbmVDdXN0b21FbGVtZW50KG9wdGlvbnMsIGh5ZHJhdGUpO1xyXG59KTtcclxuY29uc3QgQmFzZUNsYXNzID0gKHR5cGVvZiBIVE1MRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgPyBIVE1MRWxlbWVudCA6IGNsYXNzIHtcclxufSk7XHJcbmNsYXNzIFZ1ZUVsZW1lbnQgZXh0ZW5kcyBCYXNlQ2xhc3Mge1xyXG4gICAgY29uc3RydWN0b3IoX2RlZiwgX3Byb3BzID0ge30sIGh5ZHJhdGUpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuX2RlZiA9IF9kZWY7XHJcbiAgICAgICAgdGhpcy5fcHJvcHMgPSBfcHJvcHM7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGludGVybmFsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2Nvbm5lY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3Jlc29sdmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fbnVtYmVyUHJvcHMgPSBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLnNoYWRvd1Jvb3QgJiYgaHlkcmF0ZSkge1xyXG4gICAgICAgICAgICBoeWRyYXRlKHRoaXMuX2NyZWF0ZVZOb2RlKCksIHRoaXMuc2hhZG93Um9vdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmIHRoaXMuc2hhZG93Um9vdCkge1xyXG4gICAgICAgICAgICAgICAgd2FybihgQ3VzdG9tIGVsZW1lbnQgaGFzIHByZS1yZW5kZXJlZCBkZWNsYXJhdGl2ZSBzaGFkb3cgcm9vdCBidXQgaXMgbm90IGAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGBkZWZpbmVkIGFzIGh5ZHJhdGFibGUuIFVzZSBcXGBkZWZpbmVTU1JDdXN0b21FbGVtZW50XFxgLmApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbm5lY3RlZENhbGxiYWNrKCkge1xyXG4gICAgICAgIHRoaXMuX2Nvbm5lY3RlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9yZXNvbHZlRGVmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XHJcbiAgICAgICAgdGhpcy5fY29ubmVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2Nvbm5lY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgcmVuZGVyKG51bGwsIHRoaXMuc2hhZG93Um9vdCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogcmVzb2x2ZSBpbm5lciBjb21wb25lbnQgZGVmaW5pdGlvbiAoaGFuZGxlIHBvc3NpYmxlIGFzeW5jIGNvbXBvbmVudClcclxuICAgICAqL1xyXG4gICAgX3Jlc29sdmVEZWYoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Jlc29sdmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcmVzb2x2ZWQgPSB0cnVlO1xyXG4gICAgICAgIC8vIHNldCBpbml0aWFsIGF0dHJzXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy5fc2V0QXR0cih0aGlzLmF0dHJpYnV0ZXNbaV0ubmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHdhdGNoIGZ1dHVyZSBhdHRyIGNoYW5nZXNcclxuICAgICAgICBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG0gb2YgbXV0YXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRBdHRyKG0uYXR0cmlidXRlTmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KS5vYnNlcnZlKHRoaXMsIHsgYXR0cmlidXRlczogdHJ1ZSB9KTtcclxuICAgICAgICBjb25zdCByZXNvbHZlID0gKGRlZikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IHByb3BzLCBzdHlsZXMgfSA9IGRlZjtcclxuICAgICAgICAgICAgY29uc3QgaGFzT3B0aW9ucyA9ICFpc0FycmF5KHByb3BzKTtcclxuICAgICAgICAgICAgY29uc3QgcmF3S2V5cyA9IHByb3BzID8gKGhhc09wdGlvbnMgPyBPYmplY3Qua2V5cyhwcm9wcykgOiBwcm9wcykgOiBbXTtcclxuICAgICAgICAgICAgLy8gY2FzdCBOdW1iZXItdHlwZSBwcm9wcyBzZXQgYmVmb3JlIHJlc29sdmVcclxuICAgICAgICAgICAgbGV0IG51bWJlclByb3BzO1xyXG4gICAgICAgICAgICBpZiAoaGFzT3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fcHJvcHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHQgPSBwcm9wc1trZXldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQgPT09IE51bWJlciB8fCAob3B0ICYmIG9wdC50eXBlID09PSBOdW1iZXIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Byb3BzW2tleV0gPSB0b051bWJlcih0aGlzLl9wcm9wc1trZXldKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG51bWJlclByb3BzIHx8IChudW1iZXJQcm9wcyA9IE9iamVjdC5jcmVhdGUobnVsbCkpKVtrZXldID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fbnVtYmVyUHJvcHMgPSBudW1iZXJQcm9wcztcclxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgYXJlIHByb3BzIHNldCBwcmUtdXBncmFkZSBvciBjb25uZWN0XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoa2V5WzBdICE9PSAnXycpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRQcm9wKGtleSwgdGhpc1trZXldLCB0cnVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gZGVmaW5pbmcgZ2V0dGVyL3NldHRlcnMgb24gcHJvdG90eXBlXHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHJhd0tleXMubWFwKGNhbWVsaXplJDEpKSB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywga2V5LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2V0KCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UHJvcChrZXkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0KHZhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRQcm9wKGtleSwgdmFsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBhcHBseSBDU1NcclxuICAgICAgICAgICAgdGhpcy5fYXBwbHlTdHlsZXMoc3R5bGVzKTtcclxuICAgICAgICAgICAgLy8gaW5pdGlhbCByZW5kZXJcclxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlKCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBhc3luY0RlZiA9IHRoaXMuX2RlZi5fX2FzeW5jTG9hZGVyO1xyXG4gICAgICAgIGlmIChhc3luY0RlZikge1xyXG4gICAgICAgICAgICBhc3luY0RlZigpLnRoZW4ocmVzb2x2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2RlZik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX3NldEF0dHIoa2V5KSB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoa2V5KTtcclxuICAgICAgICBpZiAodGhpcy5fbnVtYmVyUHJvcHMgJiYgdGhpcy5fbnVtYmVyUHJvcHNba2V5XSkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHRvTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fc2V0UHJvcChjYW1lbGl6ZSQxKGtleSksIHZhbHVlLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBfZ2V0UHJvcChrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcHJvcHNba2V5XTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIF9zZXRQcm9wKGtleSwgdmFsLCBzaG91bGRSZWZsZWN0ID0gdHJ1ZSwgc2hvdWxkVXBkYXRlID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh2YWwgIT09IHRoaXMuX3Byb3BzW2tleV0pIHtcclxuICAgICAgICAgICAgdGhpcy5fcHJvcHNba2V5XSA9IHZhbDtcclxuICAgICAgICAgICAgaWYgKHNob3VsZFVwZGF0ZSAmJiB0aGlzLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gcmVmbGVjdFxyXG4gICAgICAgICAgICBpZiAoc2hvdWxkUmVmbGVjdCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKGh5cGhlbmF0ZShrZXkpLCAnJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKGh5cGhlbmF0ZShrZXkpLCB2YWwgKyAnJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICghdmFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoaHlwaGVuYXRlKGtleSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX3VwZGF0ZSgpIHtcclxuICAgICAgICByZW5kZXIodGhpcy5fY3JlYXRlVk5vZGUoKSwgdGhpcy5zaGFkb3dSb290KTtcclxuICAgIH1cclxuICAgIF9jcmVhdGVWTm9kZSgpIHtcclxuICAgICAgICBjb25zdCB2bm9kZSA9IGNyZWF0ZVZOb2RlKHRoaXMuX2RlZiwgZXh0ZW5kKHt9LCB0aGlzLl9wcm9wcykpO1xyXG4gICAgICAgIGlmICghdGhpcy5faW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgdm5vZGUuY2UgPSBpbnN0YW5jZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IGluc3RhbmNlO1xyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuaXNDRSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAvLyBITVJcclxuICAgICAgICAgICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5jZVJlbG9hZCA9IG5ld1N0eWxlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsd2F5cyByZXNldCBzdHlsZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3N0eWxlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3R5bGVzLmZvckVhY2gocyA9PiB0aGlzLnNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQocykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3R5bGVzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwbHlTdHlsZXMobmV3U3R5bGVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhbiBhc3luYyBjb21wb25lbnQsIGNlUmVsb2FkIGlzIGNhbGxlZCBmcm9tIHRoZSBpbm5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wb25lbnQgc28gbm8gbmVlZCB0byByZWxvYWQgdGhlIGFzeW5jIHdyYXBwZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9kZWYuX19hc3luY0xvYWRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBpbnRlcmNlcHQgZW1pdFxyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuZW1pdCA9IChldmVudCwgLi4uYXJncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoZXZlbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiBhcmdzXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vIGxvY2F0ZSBuZWFyZXN0IFZ1ZSBjdXN0b20gZWxlbWVudCBwYXJlbnQgZm9yIHByb3ZpZGUvaW5qZWN0XHJcbiAgICAgICAgICAgICAgICBsZXQgcGFyZW50ID0gdGhpcztcclxuICAgICAgICAgICAgICAgIHdoaWxlICgocGFyZW50ID1cclxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQgJiYgKHBhcmVudC5wYXJlbnROb2RlIHx8IHBhcmVudC5ob3N0KSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgVnVlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5wYXJlbnQgPSBwYXJlbnQuX2luc3RhbmNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2bm9kZTtcclxuICAgIH1cclxuICAgIF9hcHBseVN0eWxlcyhzdHlsZXMpIHtcclxuICAgICAgICBpZiAoc3R5bGVzKSB7XHJcbiAgICAgICAgICAgIHN0eWxlcy5mb3JFYWNoKGNzcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuICAgICAgICAgICAgICAgIHMudGV4dENvbnRlbnQgPSBjc3M7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQocyk7XHJcbiAgICAgICAgICAgICAgICAvLyByZWNvcmQgZm9yIEhNUlxyXG4gICAgICAgICAgICAgICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLl9zdHlsZXMgfHwgKHRoaXMuX3N0eWxlcyA9IFtdKSkucHVzaChzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XG5cbmZ1bmN0aW9uIHVzZUNzc01vZHVsZShuYW1lID0gJyRzdHlsZScpIHtcclxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXHJcbiAgICB7XHJcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBnZXRDdXJyZW50SW5zdGFuY2UoKTtcclxuICAgICAgICBpZiAoIWluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJiB3YXJuKGB1c2VDc3NNb2R1bGUgbXVzdCBiZSBjYWxsZWQgaW5zaWRlIHNldHVwKClgKTtcclxuICAgICAgICAgICAgcmV0dXJuIEVNUFRZX09CSjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbW9kdWxlcyA9IGluc3RhbmNlLnR5cGUuX19jc3NNb2R1bGVzO1xyXG4gICAgICAgIGlmICghbW9kdWxlcykge1xyXG4gICAgICAgICAgICAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgd2FybihgQ3VycmVudCBpbnN0YW5jZSBkb2VzIG5vdCBoYXZlIENTUyBtb2R1bGVzIGluamVjdGVkLmApO1xyXG4gICAgICAgICAgICByZXR1cm4gRU1QVFlfT0JKO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtb2QgPSBtb2R1bGVzW25hbWVdO1xyXG4gICAgICAgIGlmICghbW9kKSB7XHJcbiAgICAgICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICAgICAgd2FybihgQ3VycmVudCBpbnN0YW5jZSBkb2VzIG5vdCBoYXZlIENTUyBtb2R1bGUgbmFtZWQgXCIke25hbWV9XCIuYCk7XHJcbiAgICAgICAgICAgIHJldHVybiBFTVBUWV9PQko7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtb2Q7XHJcbiAgICB9XHJcbn1cblxuLyoqXHJcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciBTRkMncyBDU1MgdmFyaWFibGUgaW5qZWN0aW9uIGZlYXR1cmUuXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiB1c2VDc3NWYXJzKGdldHRlcikge1xyXG4gICAgY29uc3QgaW5zdGFuY2UgPSBnZXRDdXJyZW50SW5zdGFuY2UoKTtcclxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXHJcbiAgICBpZiAoIWluc3RhbmNlKSB7XHJcbiAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpICYmXHJcbiAgICAgICAgICAgIHdhcm4oYHVzZUNzc1ZhcnMgaXMgY2FsbGVkIHdpdGhvdXQgY3VycmVudCBhY3RpdmUgY29tcG9uZW50IGluc3RhbmNlLmApO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHNldFZhcnMgPSAoKSA9PiBzZXRWYXJzT25WTm9kZShpbnN0YW5jZS5zdWJUcmVlLCBnZXR0ZXIoaW5zdGFuY2UucHJveHkpKTtcclxuICAgIHdhdGNoUG9zdEVmZmVjdChzZXRWYXJzKTtcclxuICAgIG9uTW91bnRlZCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2IgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihzZXRWYXJzKTtcclxuICAgICAgICBvYi5vYnNlcnZlKGluc3RhbmNlLnN1YlRyZWUuZWwucGFyZW50Tm9kZSwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XHJcbiAgICAgICAgb25Vbm1vdW50ZWQoKCkgPT4gb2IuZGlzY29ubmVjdCgpKTtcclxuICAgIH0pO1xyXG59XHJcbmZ1bmN0aW9uIHNldFZhcnNPblZOb2RlKHZub2RlLCB2YXJzKSB7XHJcbiAgICBpZiAodm5vZGUuc2hhcGVGbGFnICYgMTI4IC8qIFNoYXBlRmxhZ3MuU1VTUEVOU0UgKi8pIHtcclxuICAgICAgICBjb25zdCBzdXNwZW5zZSA9IHZub2RlLnN1c3BlbnNlO1xyXG4gICAgICAgIHZub2RlID0gc3VzcGVuc2UuYWN0aXZlQnJhbmNoO1xyXG4gICAgICAgIGlmIChzdXNwZW5zZS5wZW5kaW5nQnJhbmNoICYmICFzdXNwZW5zZS5pc0h5ZHJhdGluZykge1xyXG4gICAgICAgICAgICBzdXNwZW5zZS5lZmZlY3RzLnB1c2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc2V0VmFyc09uVk5vZGUoc3VzcGVuc2UuYWN0aXZlQnJhbmNoLCB2YXJzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gZHJpbGwgZG93biBIT0NzIHVudGlsIGl0J3MgYSBub24tY29tcG9uZW50IHZub2RlXHJcbiAgICB3aGlsZSAodm5vZGUuY29tcG9uZW50KSB7XHJcbiAgICAgICAgdm5vZGUgPSB2bm9kZS5jb21wb25lbnQuc3ViVHJlZTtcclxuICAgIH1cclxuICAgIGlmICh2bm9kZS5zaGFwZUZsYWcgJiAxIC8qIFNoYXBlRmxhZ3MuRUxFTUVOVCAqLyAmJiB2bm9kZS5lbCkge1xyXG4gICAgICAgIHNldFZhcnNPbk5vZGUodm5vZGUuZWwsIHZhcnMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodm5vZGUudHlwZSA9PT0gRnJhZ21lbnQpIHtcclxuICAgICAgICB2bm9kZS5jaGlsZHJlbi5mb3JFYWNoKGMgPT4gc2V0VmFyc09uVk5vZGUoYywgdmFycykpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodm5vZGUudHlwZSA9PT0gU3RhdGljKSB7XHJcbiAgICAgICAgbGV0IHsgZWwsIGFuY2hvciB9ID0gdm5vZGU7XHJcbiAgICAgICAgd2hpbGUgKGVsKSB7XHJcbiAgICAgICAgICAgIHNldFZhcnNPbk5vZGUoZWwsIHZhcnMpO1xyXG4gICAgICAgICAgICBpZiAoZWwgPT09IGFuY2hvcilcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBlbCA9IGVsLm5leHRTaWJsaW5nO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBzZXRWYXJzT25Ob2RlKGVsLCB2YXJzKSB7XHJcbiAgICBpZiAoZWwubm9kZVR5cGUgPT09IDEpIHtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IGVsLnN0eWxlO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHZhcnMpIHtcclxuICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoYC0tJHtrZXl9YCwgdmFyc1trZXldKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cblxuY29uc3QgVFJBTlNJVElPTiA9ICd0cmFuc2l0aW9uJztcclxuY29uc3QgQU5JTUFUSU9OID0gJ2FuaW1hdGlvbic7XHJcbi8vIERPTSBUcmFuc2l0aW9uIGlzIGEgaGlnaGVyLW9yZGVyLWNvbXBvbmVudCBiYXNlZCBvbiB0aGUgcGxhdGZvcm0tYWdub3N0aWNcclxuLy8gYmFzZSBUcmFuc2l0aW9uIGNvbXBvbmVudCwgd2l0aCBET00tc3BlY2lmaWMgbG9naWMuXHJcbmNvbnN0IFRyYW5zaXRpb24gPSAocHJvcHMsIHsgc2xvdHMgfSkgPT4gaChCYXNlVHJhbnNpdGlvbiwgcmVzb2x2ZVRyYW5zaXRpb25Qcm9wcyhwcm9wcyksIHNsb3RzKTtcclxuVHJhbnNpdGlvbi5kaXNwbGF5TmFtZSA9ICdUcmFuc2l0aW9uJztcclxuY29uc3QgRE9NVHJhbnNpdGlvblByb3BzVmFsaWRhdG9ycyA9IHtcclxuICAgIG5hbWU6IFN0cmluZyxcclxuICAgIHR5cGU6IFN0cmluZyxcclxuICAgIGNzczoge1xyXG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGR1cmF0aW9uOiBbU3RyaW5nLCBOdW1iZXIsIE9iamVjdF0sXHJcbiAgICBlbnRlckZyb21DbGFzczogU3RyaW5nLFxyXG4gICAgZW50ZXJBY3RpdmVDbGFzczogU3RyaW5nLFxyXG4gICAgZW50ZXJUb0NsYXNzOiBTdHJpbmcsXHJcbiAgICBhcHBlYXJGcm9tQ2xhc3M6IFN0cmluZyxcclxuICAgIGFwcGVhckFjdGl2ZUNsYXNzOiBTdHJpbmcsXHJcbiAgICBhcHBlYXJUb0NsYXNzOiBTdHJpbmcsXHJcbiAgICBsZWF2ZUZyb21DbGFzczogU3RyaW5nLFxyXG4gICAgbGVhdmVBY3RpdmVDbGFzczogU3RyaW5nLFxyXG4gICAgbGVhdmVUb0NsYXNzOiBTdHJpbmdcclxufTtcclxuY29uc3QgVHJhbnNpdGlvblByb3BzVmFsaWRhdG9ycyA9IChUcmFuc2l0aW9uLnByb3BzID1cclxuICAgIC8qI19fUFVSRV9fKi8gZXh0ZW5kKHt9LCBCYXNlVHJhbnNpdGlvbi5wcm9wcywgRE9NVHJhbnNpdGlvblByb3BzVmFsaWRhdG9ycykpO1xyXG4vKipcclxuICogIzMyMjcgSW5jb21pbmcgaG9va3MgbWF5IGJlIG1lcmdlZCBpbnRvIGFycmF5cyB3aGVuIHdyYXBwaW5nIFRyYW5zaXRpb25cclxuICogd2l0aCBjdXN0b20gSE9Dcy5cclxuICovXHJcbmNvbnN0IGNhbGxIb29rID0gKGhvb2ssIGFyZ3MgPSBbXSkgPT4ge1xyXG4gICAgaWYgKGlzQXJyYXkoaG9vaykpIHtcclxuICAgICAgICBob29rLmZvckVhY2goaCA9PiBoKC4uLmFyZ3MpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGhvb2spIHtcclxuICAgICAgICBob29rKC4uLmFyZ3MpO1xyXG4gICAgfVxyXG59O1xyXG4vKipcclxuICogQ2hlY2sgaWYgYSBob29rIGV4cGVjdHMgYSBjYWxsYmFjayAoMm5kIGFyZyksIHdoaWNoIG1lYW5zIHRoZSB1c2VyXHJcbiAqIGludGVuZHMgdG8gZXhwbGljaXRseSBjb250cm9sIHRoZSBlbmQgb2YgdGhlIHRyYW5zaXRpb24uXHJcbiAqL1xyXG5jb25zdCBoYXNFeHBsaWNpdENhbGxiYWNrID0gKGhvb2spID0+IHtcclxuICAgIHJldHVybiBob29rXHJcbiAgICAgICAgPyBpc0FycmF5KGhvb2spXHJcbiAgICAgICAgICAgID8gaG9vay5zb21lKGggPT4gaC5sZW5ndGggPiAxKVxyXG4gICAgICAgICAgICA6IGhvb2subGVuZ3RoID4gMVxyXG4gICAgICAgIDogZmFsc2U7XHJcbn07XHJcbmZ1bmN0aW9uIHJlc29sdmVUcmFuc2l0aW9uUHJvcHMocmF3UHJvcHMpIHtcclxuICAgIGNvbnN0IGJhc2VQcm9wcyA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcmF3UHJvcHMpIHtcclxuICAgICAgICBpZiAoIShrZXkgaW4gRE9NVHJhbnNpdGlvblByb3BzVmFsaWRhdG9ycykpIHtcclxuICAgICAgICAgICAgYmFzZVByb3BzW2tleV0gPSByYXdQcm9wc1trZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChyYXdQcm9wcy5jc3MgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGJhc2VQcm9wcztcclxuICAgIH1cclxuICAgIGNvbnN0IHsgbmFtZSA9ICd2JywgdHlwZSwgZHVyYXRpb24sIGVudGVyRnJvbUNsYXNzID0gYCR7bmFtZX0tZW50ZXItZnJvbWAsIGVudGVyQWN0aXZlQ2xhc3MgPSBgJHtuYW1lfS1lbnRlci1hY3RpdmVgLCBlbnRlclRvQ2xhc3MgPSBgJHtuYW1lfS1lbnRlci10b2AsIGFwcGVhckZyb21DbGFzcyA9IGVudGVyRnJvbUNsYXNzLCBhcHBlYXJBY3RpdmVDbGFzcyA9IGVudGVyQWN0aXZlQ2xhc3MsIGFwcGVhclRvQ2xhc3MgPSBlbnRlclRvQ2xhc3MsIGxlYXZlRnJvbUNsYXNzID0gYCR7bmFtZX0tbGVhdmUtZnJvbWAsIGxlYXZlQWN0aXZlQ2xhc3MgPSBgJHtuYW1lfS1sZWF2ZS1hY3RpdmVgLCBsZWF2ZVRvQ2xhc3MgPSBgJHtuYW1lfS1sZWF2ZS10b2AgfSA9IHJhd1Byb3BzO1xyXG4gICAgY29uc3QgZHVyYXRpb25zID0gbm9ybWFsaXplRHVyYXRpb24oZHVyYXRpb24pO1xyXG4gICAgY29uc3QgZW50ZXJEdXJhdGlvbiA9IGR1cmF0aW9ucyAmJiBkdXJhdGlvbnNbMF07XHJcbiAgICBjb25zdCBsZWF2ZUR1cmF0aW9uID0gZHVyYXRpb25zICYmIGR1cmF0aW9uc1sxXTtcclxuICAgIGNvbnN0IHsgb25CZWZvcmVFbnRlciwgb25FbnRlciwgb25FbnRlckNhbmNlbGxlZCwgb25MZWF2ZSwgb25MZWF2ZUNhbmNlbGxlZCwgb25CZWZvcmVBcHBlYXIgPSBvbkJlZm9yZUVudGVyLCBvbkFwcGVhciA9IG9uRW50ZXIsIG9uQXBwZWFyQ2FuY2VsbGVkID0gb25FbnRlckNhbmNlbGxlZCB9ID0gYmFzZVByb3BzO1xyXG4gICAgY29uc3QgZmluaXNoRW50ZXIgPSAoZWwsIGlzQXBwZWFyLCBkb25lKSA9PiB7XHJcbiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBpc0FwcGVhciA/IGFwcGVhclRvQ2xhc3MgOiBlbnRlclRvQ2xhc3MpO1xyXG4gICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgaXNBcHBlYXIgPyBhcHBlYXJBY3RpdmVDbGFzcyA6IGVudGVyQWN0aXZlQ2xhc3MpO1xyXG4gICAgICAgIGRvbmUgJiYgZG9uZSgpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IGZpbmlzaExlYXZlID0gKGVsLCBkb25lKSA9PiB7XHJcbiAgICAgICAgZWwuX2lzTGVhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVGcm9tQ2xhc3MpO1xyXG4gICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVUb0NsYXNzKTtcclxuICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQWN0aXZlQ2xhc3MpO1xyXG4gICAgICAgIGRvbmUgJiYgZG9uZSgpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IG1ha2VFbnRlckhvb2sgPSAoaXNBcHBlYXIpID0+IHtcclxuICAgICAgICByZXR1cm4gKGVsLCBkb25lKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhvb2sgPSBpc0FwcGVhciA/IG9uQXBwZWFyIDogb25FbnRlcjtcclxuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZSA9ICgpID0+IGZpbmlzaEVudGVyKGVsLCBpc0FwcGVhciwgZG9uZSk7XHJcbiAgICAgICAgICAgIGNhbGxIb29rKGhvb2ssIFtlbCwgcmVzb2x2ZV0pO1xyXG4gICAgICAgICAgICBuZXh0RnJhbWUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBpc0FwcGVhciA/IGFwcGVhckZyb21DbGFzcyA6IGVudGVyRnJvbUNsYXNzKTtcclxuICAgICAgICAgICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgaXNBcHBlYXIgPyBhcHBlYXJUb0NsYXNzIDogZW50ZXJUb0NsYXNzKTtcclxuICAgICAgICAgICAgICAgIGlmICghaGFzRXhwbGljaXRDYWxsYmFjayhob29rKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdoZW5UcmFuc2l0aW9uRW5kcyhlbCwgdHlwZSwgZW50ZXJEdXJhdGlvbiwgcmVzb2x2ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH07XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZChiYXNlUHJvcHMsIHtcclxuICAgICAgICBvbkJlZm9yZUVudGVyKGVsKSB7XHJcbiAgICAgICAgICAgIGNhbGxIb29rKG9uQmVmb3JlRW50ZXIsIFtlbF0pO1xyXG4gICAgICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGVudGVyRnJvbUNsYXNzKTtcclxuICAgICAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBlbnRlckFjdGl2ZUNsYXNzKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQmVmb3JlQXBwZWFyKGVsKSB7XHJcbiAgICAgICAgICAgIGNhbGxIb29rKG9uQmVmb3JlQXBwZWFyLCBbZWxdKTtcclxuICAgICAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBhcHBlYXJGcm9tQ2xhc3MpO1xyXG4gICAgICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGFwcGVhckFjdGl2ZUNsYXNzKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uRW50ZXI6IG1ha2VFbnRlckhvb2soZmFsc2UpLFxyXG4gICAgICAgIG9uQXBwZWFyOiBtYWtlRW50ZXJIb29rKHRydWUpLFxyXG4gICAgICAgIG9uTGVhdmUoZWwsIGRvbmUpIHtcclxuICAgICAgICAgICAgZWwuX2lzTGVhdmluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmUgPSAoKSA9PiBmaW5pc2hMZWF2ZShlbCwgZG9uZSk7XHJcbiAgICAgICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVGcm9tQ2xhc3MpO1xyXG4gICAgICAgICAgICAvLyBmb3JjZSByZWZsb3cgc28gKi1sZWF2ZS1mcm9tIGNsYXNzZXMgaW1tZWRpYXRlbHkgdGFrZSBlZmZlY3QgKCMyNTkzKVxyXG4gICAgICAgICAgICBmb3JjZVJlZmxvdygpO1xyXG4gICAgICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQWN0aXZlQ2xhc3MpO1xyXG4gICAgICAgICAgICBuZXh0RnJhbWUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlbC5faXNMZWF2aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2FuY2VsbGVkXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUZyb21DbGFzcyk7XHJcbiAgICAgICAgICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlVG9DbGFzcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0V4cGxpY2l0Q2FsbGJhY2sob25MZWF2ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aGVuVHJhbnNpdGlvbkVuZHMoZWwsIHR5cGUsIGxlYXZlRHVyYXRpb24sIHJlc29sdmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY2FsbEhvb2sob25MZWF2ZSwgW2VsLCByZXNvbHZlXSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkVudGVyQ2FuY2VsbGVkKGVsKSB7XHJcbiAgICAgICAgICAgIGZpbmlzaEVudGVyKGVsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNhbGxIb29rKG9uRW50ZXJDYW5jZWxsZWQsIFtlbF0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BcHBlYXJDYW5jZWxsZWQoZWwpIHtcclxuICAgICAgICAgICAgZmluaXNoRW50ZXIoZWwsIHRydWUpO1xyXG4gICAgICAgICAgICBjYWxsSG9vayhvbkFwcGVhckNhbmNlbGxlZCwgW2VsXSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkxlYXZlQ2FuY2VsbGVkKGVsKSB7XHJcbiAgICAgICAgICAgIGZpbmlzaExlYXZlKGVsKTtcclxuICAgICAgICAgICAgY2FsbEhvb2sob25MZWF2ZUNhbmNlbGxlZCwgW2VsXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn1cclxuZnVuY3Rpb24gbm9ybWFsaXplRHVyYXRpb24oZHVyYXRpb24pIHtcclxuICAgIGlmIChkdXJhdGlvbiA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc09iamVjdChkdXJhdGlvbikpIHtcclxuICAgICAgICByZXR1cm4gW051bWJlck9mKGR1cmF0aW9uLmVudGVyKSwgTnVtYmVyT2YoZHVyYXRpb24ubGVhdmUpXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG4gPSBOdW1iZXJPZihkdXJhdGlvbik7XHJcbiAgICAgICAgcmV0dXJuIFtuLCBuXTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBOdW1iZXJPZih2YWwpIHtcclxuICAgIGNvbnN0IHJlcyA9IHRvTnVtYmVyKHZhbCk7XHJcbiAgICBpZiAoKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpKVxyXG4gICAgICAgIHZhbGlkYXRlRHVyYXRpb24ocmVzKTtcclxuICAgIHJldHVybiByZXM7XHJcbn1cclxuZnVuY3Rpb24gdmFsaWRhdGVEdXJhdGlvbih2YWwpIHtcclxuICAgIGlmICh0eXBlb2YgdmFsICE9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHdhcm4oYDx0cmFuc2l0aW9uPiBleHBsaWNpdCBkdXJhdGlvbiBpcyBub3QgYSB2YWxpZCBudW1iZXIgLSBgICtcclxuICAgICAgICAgICAgYGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9LmApO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNOYU4odmFsKSkge1xyXG4gICAgICAgIHdhcm4oYDx0cmFuc2l0aW9uPiBleHBsaWNpdCBkdXJhdGlvbiBpcyBOYU4gLSBgICtcclxuICAgICAgICAgICAgJ3RoZSBkdXJhdGlvbiBleHByZXNzaW9uIG1pZ2h0IGJlIGluY29ycmVjdC4nKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGNscykge1xyXG4gICAgY2xzLnNwbGl0KC9cXHMrLykuZm9yRWFjaChjID0+IGMgJiYgZWwuY2xhc3NMaXN0LmFkZChjKSk7XHJcbiAgICAoZWwuX3Z0YyB8fFxyXG4gICAgICAgIChlbC5fdnRjID0gbmV3IFNldCgpKSkuYWRkKGNscyk7XHJcbn1cclxuZnVuY3Rpb24gcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBjbHMpIHtcclxuICAgIGNscy5zcGxpdCgvXFxzKy8pLmZvckVhY2goYyA9PiBjICYmIGVsLmNsYXNzTGlzdC5yZW1vdmUoYykpO1xyXG4gICAgY29uc3QgeyBfdnRjIH0gPSBlbDtcclxuICAgIGlmIChfdnRjKSB7XHJcbiAgICAgICAgX3Z0Yy5kZWxldGUoY2xzKTtcclxuICAgICAgICBpZiAoIV92dGMuc2l6ZSkge1xyXG4gICAgICAgICAgICBlbC5fdnRjID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBuZXh0RnJhbWUoY2IpIHtcclxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNiKTtcclxuICAgIH0pO1xyXG59XHJcbmxldCBlbmRJZCA9IDA7XHJcbmZ1bmN0aW9uIHdoZW5UcmFuc2l0aW9uRW5kcyhlbCwgZXhwZWN0ZWRUeXBlLCBleHBsaWNpdFRpbWVvdXQsIHJlc29sdmUpIHtcclxuICAgIGNvbnN0IGlkID0gKGVsLl9lbmRJZCA9ICsrZW5kSWQpO1xyXG4gICAgY29uc3QgcmVzb2x2ZUlmTm90U3RhbGUgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKGlkID09PSBlbC5fZW5kSWQpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBpZiAoZXhwbGljaXRUaW1lb3V0KSB7XHJcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQocmVzb2x2ZUlmTm90U3RhbGUsIGV4cGxpY2l0VGltZW91dCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IHR5cGUsIHRpbWVvdXQsIHByb3BDb3VudCB9ID0gZ2V0VHJhbnNpdGlvbkluZm8oZWwsIGV4cGVjdGVkVHlwZSk7XHJcbiAgICBpZiAoIXR5cGUpIHtcclxuICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZW5kRXZlbnQgPSB0eXBlICsgJ2VuZCc7XHJcbiAgICBsZXQgZW5kZWQgPSAwO1xyXG4gICAgY29uc3QgZW5kID0gKCkgPT4ge1xyXG4gICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoZW5kRXZlbnQsIG9uRW5kKTtcclxuICAgICAgICByZXNvbHZlSWZOb3RTdGFsZSgpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRW5kID0gKGUpID0+IHtcclxuICAgICAgICBpZiAoZS50YXJnZXQgPT09IGVsICYmICsrZW5kZWQgPj0gcHJvcENvdW50KSB7XHJcbiAgICAgICAgICAgIGVuZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAoZW5kZWQgPCBwcm9wQ291bnQpIHtcclxuICAgICAgICAgICAgZW5kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgdGltZW91dCArIDEpO1xyXG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihlbmRFdmVudCwgb25FbmQpO1xyXG59XHJcbmZ1bmN0aW9uIGdldFRyYW5zaXRpb25JbmZvKGVsLCBleHBlY3RlZFR5cGUpIHtcclxuICAgIGNvbnN0IHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTtcclxuICAgIC8vIEpTRE9NIG1heSByZXR1cm4gdW5kZWZpbmVkIGZvciB0cmFuc2l0aW9uIHByb3BlcnRpZXNcclxuICAgIGNvbnN0IGdldFN0eWxlUHJvcGVydGllcyA9IChrZXkpID0+IChzdHlsZXNba2V5XSB8fCAnJykuc3BsaXQoJywgJyk7XHJcbiAgICBjb25zdCB0cmFuc2l0aW9uRGVsYXlzID0gZ2V0U3R5bGVQcm9wZXJ0aWVzKFRSQU5TSVRJT04gKyAnRGVsYXknKTtcclxuICAgIGNvbnN0IHRyYW5zaXRpb25EdXJhdGlvbnMgPSBnZXRTdHlsZVByb3BlcnRpZXMoVFJBTlNJVElPTiArICdEdXJhdGlvbicpO1xyXG4gICAgY29uc3QgdHJhbnNpdGlvblRpbWVvdXQgPSBnZXRUaW1lb3V0KHRyYW5zaXRpb25EZWxheXMsIHRyYW5zaXRpb25EdXJhdGlvbnMpO1xyXG4gICAgY29uc3QgYW5pbWF0aW9uRGVsYXlzID0gZ2V0U3R5bGVQcm9wZXJ0aWVzKEFOSU1BVElPTiArICdEZWxheScpO1xyXG4gICAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb25zID0gZ2V0U3R5bGVQcm9wZXJ0aWVzKEFOSU1BVElPTiArICdEdXJhdGlvbicpO1xyXG4gICAgY29uc3QgYW5pbWF0aW9uVGltZW91dCA9IGdldFRpbWVvdXQoYW5pbWF0aW9uRGVsYXlzLCBhbmltYXRpb25EdXJhdGlvbnMpO1xyXG4gICAgbGV0IHR5cGUgPSBudWxsO1xyXG4gICAgbGV0IHRpbWVvdXQgPSAwO1xyXG4gICAgbGV0IHByb3BDb3VudCA9IDA7XHJcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cclxuICAgIGlmIChleHBlY3RlZFR5cGUgPT09IFRSQU5TSVRJT04pIHtcclxuICAgICAgICBpZiAodHJhbnNpdGlvblRpbWVvdXQgPiAwKSB7XHJcbiAgICAgICAgICAgIHR5cGUgPSBUUkFOU0lUSU9OO1xyXG4gICAgICAgICAgICB0aW1lb3V0ID0gdHJhbnNpdGlvblRpbWVvdXQ7XHJcbiAgICAgICAgICAgIHByb3BDb3VudCA9IHRyYW5zaXRpb25EdXJhdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGV4cGVjdGVkVHlwZSA9PT0gQU5JTUFUSU9OKSB7XHJcbiAgICAgICAgaWYgKGFuaW1hdGlvblRpbWVvdXQgPiAwKSB7XHJcbiAgICAgICAgICAgIHR5cGUgPSBBTklNQVRJT047XHJcbiAgICAgICAgICAgIHRpbWVvdXQgPSBhbmltYXRpb25UaW1lb3V0O1xyXG4gICAgICAgICAgICBwcm9wQ291bnQgPSBhbmltYXRpb25EdXJhdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHRpbWVvdXQgPSBNYXRoLm1heCh0cmFuc2l0aW9uVGltZW91dCwgYW5pbWF0aW9uVGltZW91dCk7XHJcbiAgICAgICAgdHlwZSA9XHJcbiAgICAgICAgICAgIHRpbWVvdXQgPiAwXHJcbiAgICAgICAgICAgICAgICA/IHRyYW5zaXRpb25UaW1lb3V0ID4gYW5pbWF0aW9uVGltZW91dFxyXG4gICAgICAgICAgICAgICAgICAgID8gVFJBTlNJVElPTlxyXG4gICAgICAgICAgICAgICAgICAgIDogQU5JTUFUSU9OXHJcbiAgICAgICAgICAgICAgICA6IG51bGw7XHJcbiAgICAgICAgcHJvcENvdW50ID0gdHlwZVxyXG4gICAgICAgICAgICA/IHR5cGUgPT09IFRSQU5TSVRJT05cclxuICAgICAgICAgICAgICAgID8gdHJhbnNpdGlvbkR1cmF0aW9ucy5sZW5ndGhcclxuICAgICAgICAgICAgICAgIDogYW5pbWF0aW9uRHVyYXRpb25zLmxlbmd0aFxyXG4gICAgICAgICAgICA6IDA7XHJcbiAgICB9XHJcbiAgICBjb25zdCBoYXNUcmFuc2Zvcm0gPSB0eXBlID09PSBUUkFOU0lUSU9OICYmXHJcbiAgICAgICAgL1xcYih0cmFuc2Zvcm18YWxsKSgsfCQpLy50ZXN0KHN0eWxlc1tUUkFOU0lUSU9OICsgJ1Byb3BlcnR5J10pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIHRpbWVvdXQsXHJcbiAgICAgICAgcHJvcENvdW50LFxyXG4gICAgICAgIGhhc1RyYW5zZm9ybVxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBnZXRUaW1lb3V0KGRlbGF5cywgZHVyYXRpb25zKSB7XHJcbiAgICB3aGlsZSAoZGVsYXlzLmxlbmd0aCA8IGR1cmF0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICBkZWxheXMgPSBkZWxheXMuY29uY2F0KGRlbGF5cyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gTWF0aC5tYXgoLi4uZHVyYXRpb25zLm1hcCgoZCwgaSkgPT4gdG9NcyhkKSArIHRvTXMoZGVsYXlzW2ldKSkpO1xyXG59XHJcbi8vIE9sZCB2ZXJzaW9ucyBvZiBDaHJvbWl1bSAoYmVsb3cgNjEuMC4zMTYzLjEwMCkgZm9ybWF0cyBmbG9hdGluZyBwb2ludGVyXHJcbi8vIG51bWJlcnMgaW4gYSBsb2NhbGUtZGVwZW5kZW50IHdheSwgdXNpbmcgYSBjb21tYSBpbnN0ZWFkIG9mIGEgZG90LlxyXG4vLyBJZiBjb21tYSBpcyBub3QgcmVwbGFjZWQgd2l0aCBhIGRvdCwgdGhlIGlucHV0IHdpbGwgYmUgcm91bmRlZCBkb3duXHJcbi8vIChpLmUuIGFjdGluZyBhcyBhIGZsb29yIGZ1bmN0aW9uKSBjYXVzaW5nIHVuZXhwZWN0ZWQgYmVoYXZpb3JzXHJcbmZ1bmN0aW9uIHRvTXMocykge1xyXG4gICAgcmV0dXJuIE51bWJlcihzLnNsaWNlKDAsIC0xKS5yZXBsYWNlKCcsJywgJy4nKSkgKiAxMDAwO1xyXG59XHJcbi8vIHN5bmNocm9ub3VzbHkgZm9yY2UgbGF5b3V0IHRvIHB1dCBlbGVtZW50cyBpbnRvIGEgY2VydGFpbiBzdGF0ZVxyXG5mdW5jdGlvbiBmb3JjZVJlZmxvdygpIHtcclxuICAgIHJldHVybiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDtcclxufVxuXG5jb25zdCBwb3NpdGlvbk1hcCA9IG5ldyBXZWFrTWFwKCk7XHJcbmNvbnN0IG5ld1Bvc2l0aW9uTWFwID0gbmV3IFdlYWtNYXAoKTtcclxuY29uc3QgVHJhbnNpdGlvbkdyb3VwSW1wbCA9IHtcclxuICAgIG5hbWU6ICdUcmFuc2l0aW9uR3JvdXAnLFxyXG4gICAgcHJvcHM6IC8qI19fUFVSRV9fKi8gZXh0ZW5kKHt9LCBUcmFuc2l0aW9uUHJvcHNWYWxpZGF0b3JzLCB7XHJcbiAgICAgICAgdGFnOiBTdHJpbmcsXHJcbiAgICAgICAgbW92ZUNsYXNzOiBTdHJpbmdcclxuICAgIH0pLFxyXG4gICAgc2V0dXAocHJvcHMsIHsgc2xvdHMgfSkge1xyXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gZ2V0Q3VycmVudEluc3RhbmNlKCk7XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB1c2VUcmFuc2l0aW9uU3RhdGUoKTtcclxuICAgICAgICBsZXQgcHJldkNoaWxkcmVuO1xyXG4gICAgICAgIGxldCBjaGlsZHJlbjtcclxuICAgICAgICBvblVwZGF0ZWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBjaGlsZHJlbiBpcyBndWFyYW50ZWVkIHRvIGV4aXN0IGFmdGVyIGluaXRpYWwgcmVuZGVyXHJcbiAgICAgICAgICAgIGlmICghcHJldkNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IG1vdmVDbGFzcyA9IHByb3BzLm1vdmVDbGFzcyB8fCBgJHtwcm9wcy5uYW1lIHx8ICd2J30tbW92ZWA7XHJcbiAgICAgICAgICAgIGlmICghaGFzQ1NTVHJhbnNmb3JtKHByZXZDaGlsZHJlblswXS5lbCwgaW5zdGFuY2Uudm5vZGUuZWwsIG1vdmVDbGFzcykpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB3ZSBkaXZpZGUgdGhlIHdvcmsgaW50byB0aHJlZSBsb29wcyB0byBhdm9pZCBtaXhpbmcgRE9NIHJlYWRzIGFuZCB3cml0ZXNcclxuICAgICAgICAgICAgLy8gaW4gZWFjaCBpdGVyYXRpb24gLSB3aGljaCBoZWxwcyBwcmV2ZW50IGxheW91dCB0aHJhc2hpbmcuXHJcbiAgICAgICAgICAgIHByZXZDaGlsZHJlbi5mb3JFYWNoKGNhbGxQZW5kaW5nQ2JzKTtcclxuICAgICAgICAgICAgcHJldkNoaWxkcmVuLmZvckVhY2gocmVjb3JkUG9zaXRpb24pO1xyXG4gICAgICAgICAgICBjb25zdCBtb3ZlZENoaWxkcmVuID0gcHJldkNoaWxkcmVuLmZpbHRlcihhcHBseVRyYW5zbGF0aW9uKTtcclxuICAgICAgICAgICAgLy8gZm9yY2UgcmVmbG93IHRvIHB1dCBldmVyeXRoaW5nIGluIHBvc2l0aW9uXHJcbiAgICAgICAgICAgIGZvcmNlUmVmbG93KCk7XHJcbiAgICAgICAgICAgIG1vdmVkQ2hpbGRyZW4uZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gYy5lbDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZWwuc3R5bGU7XHJcbiAgICAgICAgICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIG1vdmVDbGFzcyk7XHJcbiAgICAgICAgICAgICAgICBzdHlsZS50cmFuc2Zvcm0gPSBzdHlsZS53ZWJraXRUcmFuc2Zvcm0gPSBzdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAnJztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNiID0gKGVsLl9tb3ZlQ2IgPSAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlICYmIGUudGFyZ2V0ICE9PSBlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZSB8fCAvdHJhbnNmb3JtJC8udGVzdChlLnByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIGNiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWwuX21vdmVDYiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbW92ZUNsYXNzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBjYik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJhd1Byb3BzID0gdG9SYXcocHJvcHMpO1xyXG4gICAgICAgICAgICBjb25zdCBjc3NUcmFuc2l0aW9uUHJvcHMgPSByZXNvbHZlVHJhbnNpdGlvblByb3BzKHJhd1Byb3BzKTtcclxuICAgICAgICAgICAgbGV0IHRhZyA9IHJhd1Byb3BzLnRhZyB8fCBGcmFnbWVudDtcclxuICAgICAgICAgICAgcHJldkNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgICAgICAgICAgIGNoaWxkcmVuID0gc2xvdHMuZGVmYXVsdCA/IGdldFRyYW5zaXRpb25SYXdDaGlsZHJlbihzbG90cy5kZWZhdWx0KCkpIDogW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQua2V5ICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUcmFuc2l0aW9uSG9va3MoY2hpbGQsIHJlc29sdmVUcmFuc2l0aW9uSG9va3MoY2hpbGQsIGNzc1RyYW5zaXRpb25Qcm9wcywgc3RhdGUsIGluc3RhbmNlKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICB3YXJuKGA8VHJhbnNpdGlvbkdyb3VwPiBjaGlsZHJlbiBtdXN0IGJlIGtleWVkLmApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwcmV2Q2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldkNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBwcmV2Q2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VHJhbnNpdGlvbkhvb2tzKGNoaWxkLCByZXNvbHZlVHJhbnNpdGlvbkhvb2tzKGNoaWxkLCBjc3NUcmFuc2l0aW9uUHJvcHMsIHN0YXRlLCBpbnN0YW5jZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uTWFwLnNldChjaGlsZCwgY2hpbGQuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVWTm9kZSh0YWcsIG51bGwsIGNoaWxkcmVuKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59O1xyXG5jb25zdCBUcmFuc2l0aW9uR3JvdXAgPSBUcmFuc2l0aW9uR3JvdXBJbXBsO1xyXG5mdW5jdGlvbiBjYWxsUGVuZGluZ0NicyhjKSB7XHJcbiAgICBjb25zdCBlbCA9IGMuZWw7XHJcbiAgICBpZiAoZWwuX21vdmVDYikge1xyXG4gICAgICAgIGVsLl9tb3ZlQ2IoKTtcclxuICAgIH1cclxuICAgIGlmIChlbC5fZW50ZXJDYikge1xyXG4gICAgICAgIGVsLl9lbnRlckNiKCk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gcmVjb3JkUG9zaXRpb24oYykge1xyXG4gICAgbmV3UG9zaXRpb25NYXAuc2V0KGMsIGMuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xyXG59XHJcbmZ1bmN0aW9uIGFwcGx5VHJhbnNsYXRpb24oYykge1xyXG4gICAgY29uc3Qgb2xkUG9zID0gcG9zaXRpb25NYXAuZ2V0KGMpO1xyXG4gICAgY29uc3QgbmV3UG9zID0gbmV3UG9zaXRpb25NYXAuZ2V0KGMpO1xyXG4gICAgY29uc3QgZHggPSBvbGRQb3MubGVmdCAtIG5ld1Bvcy5sZWZ0O1xyXG4gICAgY29uc3QgZHkgPSBvbGRQb3MudG9wIC0gbmV3UG9zLnRvcDtcclxuICAgIGlmIChkeCB8fCBkeSkge1xyXG4gICAgICAgIGNvbnN0IHMgPSBjLmVsLnN0eWxlO1xyXG4gICAgICAgIHMudHJhbnNmb3JtID0gcy53ZWJraXRUcmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7ZHh9cHgsJHtkeX1weClgO1xyXG4gICAgICAgIHMudHJhbnNpdGlvbkR1cmF0aW9uID0gJzBzJztcclxuICAgICAgICByZXR1cm4gYztcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBoYXNDU1NUcmFuc2Zvcm0oZWwsIHJvb3QsIG1vdmVDbGFzcykge1xyXG4gICAgLy8gRGV0ZWN0IHdoZXRoZXIgYW4gZWxlbWVudCB3aXRoIHRoZSBtb3ZlIGNsYXNzIGFwcGxpZWQgaGFzXHJcbiAgICAvLyBDU1MgdHJhbnNpdGlvbnMuIFNpbmNlIHRoZSBlbGVtZW50IG1heSBiZSBpbnNpZGUgYW4gZW50ZXJpbmdcclxuICAgIC8vIHRyYW5zaXRpb24gYXQgdGhpcyB2ZXJ5IG1vbWVudCwgd2UgbWFrZSBhIGNsb25lIG9mIGl0IGFuZCByZW1vdmVcclxuICAgIC8vIGFsbCBvdGhlciB0cmFuc2l0aW9uIGNsYXNzZXMgYXBwbGllZCB0byBlbnN1cmUgb25seSB0aGUgbW92ZSBjbGFzc1xyXG4gICAgLy8gaXMgYXBwbGllZC5cclxuICAgIGNvbnN0IGNsb25lID0gZWwuY2xvbmVOb2RlKCk7XHJcbiAgICBpZiAoZWwuX3Z0Yykge1xyXG4gICAgICAgIGVsLl92dGMuZm9yRWFjaChjbHMgPT4ge1xyXG4gICAgICAgICAgICBjbHMuc3BsaXQoL1xccysvKS5mb3JFYWNoKGMgPT4gYyAmJiBjbG9uZS5jbGFzc0xpc3QucmVtb3ZlKGMpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG1vdmVDbGFzcy5zcGxpdCgvXFxzKy8pLmZvckVhY2goYyA9PiBjICYmIGNsb25lLmNsYXNzTGlzdC5hZGQoYykpO1xyXG4gICAgY2xvbmUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IChyb290Lm5vZGVUeXBlID09PSAxID8gcm9vdCA6IHJvb3QucGFyZW50Tm9kZSk7XHJcbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY2xvbmUpO1xyXG4gICAgY29uc3QgeyBoYXNUcmFuc2Zvcm0gfSA9IGdldFRyYW5zaXRpb25JbmZvKGNsb25lKTtcclxuICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjbG9uZSk7XHJcbiAgICByZXR1cm4gaGFzVHJhbnNmb3JtO1xyXG59XG5cbmNvbnN0IGdldE1vZGVsQXNzaWduZXIgPSAodm5vZGUpID0+IHtcclxuICAgIGNvbnN0IGZuID0gdm5vZGUucHJvcHNbJ29uVXBkYXRlOm1vZGVsVmFsdWUnXSB8fFxyXG4gICAgICAgIChmYWxzZSApO1xyXG4gICAgcmV0dXJuIGlzQXJyYXkoZm4pID8gdmFsdWUgPT4gaW52b2tlQXJyYXlGbnMoZm4sIHZhbHVlKSA6IGZuO1xyXG59O1xyXG5mdW5jdGlvbiBvbkNvbXBvc2l0aW9uU3RhcnQoZSkge1xyXG4gICAgZS50YXJnZXQuY29tcG9zaW5nID0gdHJ1ZTtcclxufVxyXG5mdW5jdGlvbiBvbkNvbXBvc2l0aW9uRW5kKGUpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0O1xyXG4gICAgaWYgKHRhcmdldC5jb21wb3NpbmcpIHtcclxuICAgICAgICB0YXJnZXQuY29tcG9zaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcclxuICAgIH1cclxufVxyXG4vLyBXZSBhcmUgZXhwb3J0aW5nIHRoZSB2LW1vZGVsIHJ1bnRpbWUgZGlyZWN0bHkgYXMgdm5vZGUgaG9va3Mgc28gdGhhdCBpdCBjYW5cclxuLy8gYmUgdHJlZS1zaGFrZW4gaW4gY2FzZSB2LW1vZGVsIGlzIG5ldmVyIHVzZWQuXHJcbmNvbnN0IHZNb2RlbFRleHQgPSB7XHJcbiAgICBjcmVhdGVkKGVsLCB7IG1vZGlmaWVyczogeyBsYXp5LCB0cmltLCBudW1iZXIgfSB9LCB2bm9kZSkge1xyXG4gICAgICAgIGVsLl9hc3NpZ24gPSBnZXRNb2RlbEFzc2lnbmVyKHZub2RlKTtcclxuICAgICAgICBjb25zdCBjYXN0VG9OdW1iZXIgPSBudW1iZXIgfHwgKHZub2RlLnByb3BzICYmIHZub2RlLnByb3BzLnR5cGUgPT09ICdudW1iZXInKTtcclxuICAgICAgICBhZGRFdmVudExpc3RlbmVyKGVsLCBsYXp5ID8gJ2NoYW5nZScgOiAnaW5wdXQnLCBlID0+IHtcclxuICAgICAgICAgICAgaWYgKGUudGFyZ2V0LmNvbXBvc2luZylcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgbGV0IGRvbVZhbHVlID0gZWwudmFsdWU7XHJcbiAgICAgICAgICAgIGlmICh0cmltKSB7XHJcbiAgICAgICAgICAgICAgICBkb21WYWx1ZSA9IGRvbVZhbHVlLnRyaW0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoY2FzdFRvTnVtYmVyKSB7XHJcbiAgICAgICAgICAgICAgICBkb21WYWx1ZSA9IHRvTnVtYmVyKGRvbVZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbC5fYXNzaWduKGRvbVZhbHVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAodHJpbSkge1xyXG4gICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyKGVsLCAnY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZWwudmFsdWUgPSBlbC52YWx1ZS50cmltKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWxhenkpIHtcclxuICAgICAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcihlbCwgJ2NvbXBvc2l0aW9uc3RhcnQnLCBvbkNvbXBvc2l0aW9uU3RhcnQpO1xyXG4gICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyKGVsLCAnY29tcG9zaXRpb25lbmQnLCBvbkNvbXBvc2l0aW9uRW5kKTtcclxuICAgICAgICAgICAgLy8gU2FmYXJpIDwgMTAuMiAmIFVJV2ViVmlldyBkb2Vzbid0IGZpcmUgY29tcG9zaXRpb25lbmQgd2hlblxyXG4gICAgICAgICAgICAvLyBzd2l0Y2hpbmcgZm9jdXMgYmVmb3JlIGNvbmZpcm1pbmcgY29tcG9zaXRpb24gY2hvaWNlXHJcbiAgICAgICAgICAgIC8vIHRoaXMgYWxzbyBmaXhlcyB0aGUgaXNzdWUgd2hlcmUgc29tZSBicm93c2VycyBlLmcuIGlPUyBDaHJvbWVcclxuICAgICAgICAgICAgLy8gZmlyZXMgXCJjaGFuZ2VcIiBpbnN0ZWFkIG9mIFwiaW5wdXRcIiBvbiBhdXRvY29tcGxldGUuXHJcbiAgICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZWwsICdjaGFuZ2UnLCBvbkNvbXBvc2l0aW9uRW5kKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gc2V0IHZhbHVlIG9uIG1vdW50ZWQgc28gaXQncyBhZnRlciBtaW4vbWF4IGZvciB0eXBlPVwicmFuZ2VcIlxyXG4gICAgbW91bnRlZChlbCwgeyB2YWx1ZSB9KSB7XHJcbiAgICAgICAgZWwudmFsdWUgPSB2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZTtcclxuICAgIH0sXHJcbiAgICBiZWZvcmVVcGRhdGUoZWwsIHsgdmFsdWUsIG1vZGlmaWVyczogeyBsYXp5LCB0cmltLCBudW1iZXIgfSB9LCB2bm9kZSkge1xyXG4gICAgICAgIGVsLl9hc3NpZ24gPSBnZXRNb2RlbEFzc2lnbmVyKHZub2RlKTtcclxuICAgICAgICAvLyBhdm9pZCBjbGVhcmluZyB1bnJlc29sdmVkIHRleHQuICMyMzAyXHJcbiAgICAgICAgaWYgKGVsLmNvbXBvc2luZylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbCAmJiBlbC50eXBlICE9PSAncmFuZ2UnKSB7XHJcbiAgICAgICAgICAgIGlmIChsYXp5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRyaW0gJiYgZWwudmFsdWUudHJpbSgpID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICgobnVtYmVyIHx8IGVsLnR5cGUgPT09ICdudW1iZXInKSAmJiB0b051bWJlcihlbC52YWx1ZSkgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZTtcclxuICAgICAgICBpZiAoZWwudmFsdWUgIT09IG5ld1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIGVsLnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5jb25zdCB2TW9kZWxDaGVja2JveCA9IHtcclxuICAgIC8vICM0MDk2IGFycmF5IGNoZWNrYm94ZXMgbmVlZCB0byBiZSBkZWVwIHRyYXZlcnNlZFxyXG4gICAgZGVlcDogdHJ1ZSxcclxuICAgIGNyZWF0ZWQoZWwsIF8sIHZub2RlKSB7XHJcbiAgICAgICAgZWwuX2Fzc2lnbiA9IGdldE1vZGVsQXNzaWduZXIodm5vZGUpO1xyXG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZWwsICdjaGFuZ2UnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsVmFsdWUgPSBlbC5fbW9kZWxWYWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFZhbHVlID0gZ2V0VmFsdWUoZWwpO1xyXG4gICAgICAgICAgICBjb25zdCBjaGVja2VkID0gZWwuY2hlY2tlZDtcclxuICAgICAgICAgICAgY29uc3QgYXNzaWduID0gZWwuX2Fzc2lnbjtcclxuICAgICAgICAgICAgaWYgKGlzQXJyYXkobW9kZWxWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gbG9vc2VJbmRleE9mKG1vZGVsVmFsdWUsIGVsZW1lbnRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZCA9IGluZGV4ICE9PSAtMTtcclxuICAgICAgICAgICAgICAgIGlmIChjaGVja2VkICYmICFmb3VuZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFzc2lnbihtb2RlbFZhbHVlLmNvbmNhdChlbGVtZW50VmFsdWUpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFjaGVja2VkICYmIGZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWQgPSBbLi4ubW9kZWxWYWx1ZV07XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgICAgICAgICBhc3NpZ24oZmlsdGVyZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzU2V0KG1vZGVsVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9uZWQgPSBuZXcgU2V0KG1vZGVsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbG9uZWQuYWRkKGVsZW1lbnRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjbG9uZWQuZGVsZXRlKGVsZW1lbnRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhc3NpZ24oY2xvbmVkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGFzc2lnbihnZXRDaGVja2JveFZhbHVlKGVsLCBjaGVja2VkKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvLyBzZXQgaW5pdGlhbCBjaGVja2VkIG9uIG1vdW50IHRvIHdhaXQgZm9yIHRydWUtdmFsdWUvZmFsc2UtdmFsdWVcclxuICAgIG1vdW50ZWQ6IHNldENoZWNrZWQsXHJcbiAgICBiZWZvcmVVcGRhdGUoZWwsIGJpbmRpbmcsIHZub2RlKSB7XHJcbiAgICAgICAgZWwuX2Fzc2lnbiA9IGdldE1vZGVsQXNzaWduZXIodm5vZGUpO1xyXG4gICAgICAgIHNldENoZWNrZWQoZWwsIGJpbmRpbmcsIHZub2RlKTtcclxuICAgIH1cclxufTtcclxuZnVuY3Rpb24gc2V0Q2hlY2tlZChlbCwgeyB2YWx1ZSwgb2xkVmFsdWUgfSwgdm5vZGUpIHtcclxuICAgIGVsLl9tb2RlbFZhbHVlID0gdmFsdWU7XHJcbiAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICBlbC5jaGVja2VkID0gbG9vc2VJbmRleE9mKHZhbHVlLCB2bm9kZS5wcm9wcy52YWx1ZSkgPiAtMTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzU2V0KHZhbHVlKSkge1xyXG4gICAgICAgIGVsLmNoZWNrZWQgPSB2YWx1ZS5oYXModm5vZGUucHJvcHMudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodmFsdWUgIT09IG9sZFZhbHVlKSB7XHJcbiAgICAgICAgZWwuY2hlY2tlZCA9IGxvb3NlRXF1YWwodmFsdWUsIGdldENoZWNrYm94VmFsdWUoZWwsIHRydWUpKTtcclxuICAgIH1cclxufVxyXG5jb25zdCB2TW9kZWxSYWRpbyA9IHtcclxuICAgIGNyZWF0ZWQoZWwsIHsgdmFsdWUgfSwgdm5vZGUpIHtcclxuICAgICAgICBlbC5jaGVja2VkID0gbG9vc2VFcXVhbCh2YWx1ZSwgdm5vZGUucHJvcHMudmFsdWUpO1xyXG4gICAgICAgIGVsLl9hc3NpZ24gPSBnZXRNb2RlbEFzc2lnbmVyKHZub2RlKTtcclxuICAgICAgICBhZGRFdmVudExpc3RlbmVyKGVsLCAnY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICBlbC5fYXNzaWduKGdldFZhbHVlKGVsKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgYmVmb3JlVXBkYXRlKGVsLCB7IHZhbHVlLCBvbGRWYWx1ZSB9LCB2bm9kZSkge1xyXG4gICAgICAgIGVsLl9hc3NpZ24gPSBnZXRNb2RlbEFzc2lnbmVyKHZub2RlKTtcclxuICAgICAgICBpZiAodmFsdWUgIT09IG9sZFZhbHVlKSB7XHJcbiAgICAgICAgICAgIGVsLmNoZWNrZWQgPSBsb29zZUVxdWFsKHZhbHVlLCB2bm9kZS5wcm9wcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5jb25zdCB2TW9kZWxTZWxlY3QgPSB7XHJcbiAgICAvLyA8c2VsZWN0IG11bHRpcGxlPiB2YWx1ZSBuZWVkIHRvIGJlIGRlZXAgdHJhdmVyc2VkXHJcbiAgICBkZWVwOiB0cnVlLFxyXG4gICAgY3JlYXRlZChlbCwgeyB2YWx1ZSwgbW9kaWZpZXJzOiB7IG51bWJlciB9IH0sIHZub2RlKSB7XHJcbiAgICAgICAgY29uc3QgaXNTZXRNb2RlbCA9IGlzU2V0KHZhbHVlKTtcclxuICAgICAgICBhZGRFdmVudExpc3RlbmVyKGVsLCAnY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFZhbCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXJcclxuICAgICAgICAgICAgICAgIC5jYWxsKGVsLm9wdGlvbnMsIChvKSA9PiBvLnNlbGVjdGVkKVxyXG4gICAgICAgICAgICAgICAgLm1hcCgobykgPT4gbnVtYmVyID8gdG9OdW1iZXIoZ2V0VmFsdWUobykpIDogZ2V0VmFsdWUobykpO1xyXG4gICAgICAgICAgICBlbC5fYXNzaWduKGVsLm11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICA/IGlzU2V0TW9kZWxcclxuICAgICAgICAgICAgICAgICAgICA/IG5ldyBTZXQoc2VsZWN0ZWRWYWwpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZFZhbFxyXG4gICAgICAgICAgICAgICAgOiBzZWxlY3RlZFZhbFswXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZWwuX2Fzc2lnbiA9IGdldE1vZGVsQXNzaWduZXIodm5vZGUpO1xyXG4gICAgfSxcclxuICAgIC8vIHNldCB2YWx1ZSBpbiBtb3VudGVkICYgdXBkYXRlZCBiZWNhdXNlIDxzZWxlY3Q+IHJlbGllcyBvbiBpdHMgY2hpbGRyZW5cclxuICAgIC8vIDxvcHRpb24+cy5cclxuICAgIG1vdW50ZWQoZWwsIHsgdmFsdWUgfSkge1xyXG4gICAgICAgIHNldFNlbGVjdGVkKGVsLCB2YWx1ZSk7XHJcbiAgICB9LFxyXG4gICAgYmVmb3JlVXBkYXRlKGVsLCBfYmluZGluZywgdm5vZGUpIHtcclxuICAgICAgICBlbC5fYXNzaWduID0gZ2V0TW9kZWxBc3NpZ25lcih2bm9kZSk7XHJcbiAgICB9LFxyXG4gICAgdXBkYXRlZChlbCwgeyB2YWx1ZSB9KSB7XHJcbiAgICAgICAgc2V0U2VsZWN0ZWQoZWwsIHZhbHVlKTtcclxuICAgIH1cclxufTtcclxuZnVuY3Rpb24gc2V0U2VsZWN0ZWQoZWwsIHZhbHVlKSB7XHJcbiAgICBjb25zdCBpc011bHRpcGxlID0gZWwubXVsdGlwbGU7XHJcbiAgICBpZiAoaXNNdWx0aXBsZSAmJiAhaXNBcnJheSh2YWx1ZSkgJiYgIWlzU2V0KHZhbHVlKSkge1xyXG4gICAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgICAgICB3YXJuKGA8c2VsZWN0IG11bHRpcGxlIHYtbW9kZWw+IGV4cGVjdHMgYW4gQXJyYXkgb3IgU2V0IHZhbHVlIGZvciBpdHMgYmluZGluZywgYCArXHJcbiAgICAgICAgICAgICAgICBgYnV0IGdvdCAke09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpfS5gKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IGVsLm9wdGlvbnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gZWwub3B0aW9uc1tpXTtcclxuICAgICAgICBjb25zdCBvcHRpb25WYWx1ZSA9IGdldFZhbHVlKG9wdGlvbik7XHJcbiAgICAgICAgaWYgKGlzTXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPSBsb29zZUluZGV4T2YodmFsdWUsIG9wdGlvblZhbHVlKSA+IC0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdmFsdWUuaGFzKG9wdGlvblZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGxvb3NlRXF1YWwoZ2V0VmFsdWUob3B0aW9uKSwgdmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZWwuc2VsZWN0ZWRJbmRleCAhPT0gaSlcclxuICAgICAgICAgICAgICAgICAgICBlbC5zZWxlY3RlZEluZGV4ID0gaTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghaXNNdWx0aXBsZSAmJiBlbC5zZWxlY3RlZEluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIGVsLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuICAgIH1cclxufVxyXG4vLyByZXRyaWV2ZSByYXcgdmFsdWUgc2V0IHZpYSA6dmFsdWUgYmluZGluZ3NcclxuZnVuY3Rpb24gZ2V0VmFsdWUoZWwpIHtcclxuICAgIHJldHVybiAnX3ZhbHVlJyBpbiBlbCA/IGVsLl92YWx1ZSA6IGVsLnZhbHVlO1xyXG59XHJcbi8vIHJldHJpZXZlIHJhdyB2YWx1ZSBmb3IgdHJ1ZS12YWx1ZSBhbmQgZmFsc2UtdmFsdWUgc2V0IHZpYSA6dHJ1ZS12YWx1ZSBvciA6ZmFsc2UtdmFsdWUgYmluZGluZ3NcclxuZnVuY3Rpb24gZ2V0Q2hlY2tib3hWYWx1ZShlbCwgY2hlY2tlZCkge1xyXG4gICAgY29uc3Qga2V5ID0gY2hlY2tlZCA/ICdfdHJ1ZVZhbHVlJyA6ICdfZmFsc2VWYWx1ZSc7XHJcbiAgICByZXR1cm4ga2V5IGluIGVsID8gZWxba2V5XSA6IGNoZWNrZWQ7XHJcbn1cclxuY29uc3Qgdk1vZGVsRHluYW1pYyA9IHtcclxuICAgIGNyZWF0ZWQoZWwsIGJpbmRpbmcsIHZub2RlKSB7XHJcbiAgICAgICAgY2FsbE1vZGVsSG9vayhlbCwgYmluZGluZywgdm5vZGUsIG51bGwsICdjcmVhdGVkJyk7XHJcbiAgICB9LFxyXG4gICAgbW91bnRlZChlbCwgYmluZGluZywgdm5vZGUpIHtcclxuICAgICAgICBjYWxsTW9kZWxIb29rKGVsLCBiaW5kaW5nLCB2bm9kZSwgbnVsbCwgJ21vdW50ZWQnKTtcclxuICAgIH0sXHJcbiAgICBiZWZvcmVVcGRhdGUoZWwsIGJpbmRpbmcsIHZub2RlLCBwcmV2Vk5vZGUpIHtcclxuICAgICAgICBjYWxsTW9kZWxIb29rKGVsLCBiaW5kaW5nLCB2bm9kZSwgcHJldlZOb2RlLCAnYmVmb3JlVXBkYXRlJyk7XHJcbiAgICB9LFxyXG4gICAgdXBkYXRlZChlbCwgYmluZGluZywgdm5vZGUsIHByZXZWTm9kZSkge1xyXG4gICAgICAgIGNhbGxNb2RlbEhvb2soZWwsIGJpbmRpbmcsIHZub2RlLCBwcmV2Vk5vZGUsICd1cGRhdGVkJyk7XHJcbiAgICB9XHJcbn07XHJcbmZ1bmN0aW9uIHJlc29sdmVEeW5hbWljTW9kZWwodGFnTmFtZSwgdHlwZSkge1xyXG4gICAgc3dpdGNoICh0YWdOYW1lKSB7XHJcbiAgICAgICAgY2FzZSAnU0VMRUNUJzpcclxuICAgICAgICAgICAgcmV0dXJuIHZNb2RlbFNlbGVjdDtcclxuICAgICAgICBjYXNlICdURVhUQVJFQSc6XHJcbiAgICAgICAgICAgIHJldHVybiB2TW9kZWxUZXh0O1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2hlY2tib3gnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2TW9kZWxDaGVja2JveDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3JhZGlvJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdk1vZGVsUmFkaW87XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2TW9kZWxUZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gY2FsbE1vZGVsSG9vayhlbCwgYmluZGluZywgdm5vZGUsIHByZXZWTm9kZSwgaG9vaykge1xyXG4gICAgY29uc3QgbW9kZWxUb1VzZSA9IHJlc29sdmVEeW5hbWljTW9kZWwoZWwudGFnTmFtZSwgdm5vZGUucHJvcHMgJiYgdm5vZGUucHJvcHMudHlwZSk7XHJcbiAgICBjb25zdCBmbiA9IG1vZGVsVG9Vc2VbaG9va107XHJcbiAgICBmbiAmJiBmbihlbCwgYmluZGluZywgdm5vZGUsIHByZXZWTm9kZSk7XHJcbn1cclxuLy8gU1NSIHZub2RlIHRyYW5zZm9ybXMsIG9ubHkgdXNlZCB3aGVuIHVzZXIgaW5jbHVkZXMgY2xpZW50LW9yaWVudGVkIHJlbmRlclxyXG4vLyBmdW5jdGlvbiBpbiBTU1JcclxuZnVuY3Rpb24gaW5pdFZNb2RlbEZvclNTUigpIHtcclxuICAgIHZNb2RlbFRleHQuZ2V0U1NSUHJvcHMgPSAoeyB2YWx1ZSB9KSA9PiAoeyB2YWx1ZSB9KTtcclxuICAgIHZNb2RlbFJhZGlvLmdldFNTUlByb3BzID0gKHsgdmFsdWUgfSwgdm5vZGUpID0+IHtcclxuICAgICAgICBpZiAodm5vZGUucHJvcHMgJiYgbG9vc2VFcXVhbCh2bm9kZS5wcm9wcy52YWx1ZSwgdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGNoZWNrZWQ6IHRydWUgfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdk1vZGVsQ2hlY2tib3guZ2V0U1NSUHJvcHMgPSAoeyB2YWx1ZSB9LCB2bm9kZSkgPT4ge1xyXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICBpZiAodm5vZGUucHJvcHMgJiYgbG9vc2VJbmRleE9mKHZhbHVlLCB2bm9kZS5wcm9wcy52YWx1ZSkgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY2hlY2tlZDogdHJ1ZSB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzU2V0KHZhbHVlKSkge1xyXG4gICAgICAgICAgICBpZiAodm5vZGUucHJvcHMgJiYgdmFsdWUuaGFzKHZub2RlLnByb3BzLnZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY2hlY2tlZDogdHJ1ZSB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGNoZWNrZWQ6IHRydWUgfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdk1vZGVsRHluYW1pYy5nZXRTU1JQcm9wcyA9IChiaW5kaW5nLCB2bm9kZSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygdm5vZGUudHlwZSAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtb2RlbFRvVXNlID0gcmVzb2x2ZUR5bmFtaWNNb2RlbChcclxuICAgICAgICAvLyByZXNvbHZlRHluYW1pY01vZGVsIGV4cGVjdHMgYW4gdXBwZXJjYXNlIHRhZyBuYW1lLCBidXQgdm5vZGUudHlwZSBpcyBsb3dlcmNhc2VcclxuICAgICAgICB2bm9kZS50eXBlLnRvVXBwZXJDYXNlKCksIHZub2RlLnByb3BzICYmIHZub2RlLnByb3BzLnR5cGUpO1xyXG4gICAgICAgIGlmIChtb2RlbFRvVXNlLmdldFNTUlByb3BzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2RlbFRvVXNlLmdldFNTUlByb3BzKGJpbmRpbmcsIHZub2RlKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XG5cbmNvbnN0IHN5c3RlbU1vZGlmaWVycyA9IFsnY3RybCcsICdzaGlmdCcsICdhbHQnLCAnbWV0YSddO1xyXG5jb25zdCBtb2RpZmllckd1YXJkcyA9IHtcclxuICAgIHN0b3A6IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSxcclxuICAgIHByZXZlbnQ6IGUgPT4gZS5wcmV2ZW50RGVmYXVsdCgpLFxyXG4gICAgc2VsZjogZSA9PiBlLnRhcmdldCAhPT0gZS5jdXJyZW50VGFyZ2V0LFxyXG4gICAgY3RybDogZSA9PiAhZS5jdHJsS2V5LFxyXG4gICAgc2hpZnQ6IGUgPT4gIWUuc2hpZnRLZXksXHJcbiAgICBhbHQ6IGUgPT4gIWUuYWx0S2V5LFxyXG4gICAgbWV0YTogZSA9PiAhZS5tZXRhS2V5LFxyXG4gICAgbGVmdDogZSA9PiAnYnV0dG9uJyBpbiBlICYmIGUuYnV0dG9uICE9PSAwLFxyXG4gICAgbWlkZGxlOiBlID0+ICdidXR0b24nIGluIGUgJiYgZS5idXR0b24gIT09IDEsXHJcbiAgICByaWdodDogZSA9PiAnYnV0dG9uJyBpbiBlICYmIGUuYnV0dG9uICE9PSAyLFxyXG4gICAgZXhhY3Q6IChlLCBtb2RpZmllcnMpID0+IHN5c3RlbU1vZGlmaWVycy5zb21lKG0gPT4gZVtgJHttfUtleWBdICYmICFtb2RpZmllcnMuaW5jbHVkZXMobSkpXHJcbn07XHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3Qgd2l0aE1vZGlmaWVycyA9IChmbiwgbW9kaWZpZXJzKSA9PiB7XHJcbiAgICByZXR1cm4gKGV2ZW50LCAuLi5hcmdzKSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtb2RpZmllcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgZ3VhcmQgPSBtb2RpZmllckd1YXJkc1ttb2RpZmllcnNbaV1dO1xyXG4gICAgICAgICAgICBpZiAoZ3VhcmQgJiYgZ3VhcmQoZXZlbnQsIG1vZGlmaWVycykpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmbihldmVudCwgLi4uYXJncyk7XHJcbiAgICB9O1xyXG59O1xyXG4vLyBLZXB0IGZvciAyLnggY29tcGF0LlxyXG4vLyBOb3RlOiBJRTExIGNvbXBhdCBmb3IgYHNwYWNlYmFyYCBhbmQgYGRlbGAgaXMgcmVtb3ZlZCBmb3Igbm93LlxyXG5jb25zdCBrZXlOYW1lcyA9IHtcclxuICAgIGVzYzogJ2VzY2FwZScsXHJcbiAgICBzcGFjZTogJyAnLFxyXG4gICAgdXA6ICdhcnJvdy11cCcsXHJcbiAgICBsZWZ0OiAnYXJyb3ctbGVmdCcsXHJcbiAgICByaWdodDogJ2Fycm93LXJpZ2h0JyxcclxuICAgIGRvd246ICdhcnJvdy1kb3duJyxcclxuICAgIGRlbGV0ZTogJ2JhY2tzcGFjZSdcclxufTtcclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCB3aXRoS2V5cyA9IChmbiwgbW9kaWZpZXJzKSA9PiB7XHJcbiAgICByZXR1cm4gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKCEoJ2tleScgaW4gZXZlbnQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZXZlbnRLZXkgPSBoeXBoZW5hdGUoZXZlbnQua2V5KTtcclxuICAgICAgICBpZiAobW9kaWZpZXJzLnNvbWUoayA9PiBrID09PSBldmVudEtleSB8fCBrZXlOYW1lc1trXSA9PT0gZXZlbnRLZXkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmbihldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufTtcblxuY29uc3QgdlNob3cgPSB7XHJcbiAgICBiZWZvcmVNb3VudChlbCwgeyB2YWx1ZSB9LCB7IHRyYW5zaXRpb24gfSkge1xyXG4gICAgICAgIGVsLl92b2QgPSBlbC5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgPyAnJyA6IGVsLnN0eWxlLmRpc3BsYXk7XHJcbiAgICAgICAgaWYgKHRyYW5zaXRpb24gJiYgdmFsdWUpIHtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbi5iZWZvcmVFbnRlcihlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzZXREaXNwbGF5KGVsLCB2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIG1vdW50ZWQoZWwsIHsgdmFsdWUgfSwgeyB0cmFuc2l0aW9uIH0pIHtcclxuICAgICAgICBpZiAodHJhbnNpdGlvbiAmJiB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uLmVudGVyKGVsKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgdXBkYXRlZChlbCwgeyB2YWx1ZSwgb2xkVmFsdWUgfSwgeyB0cmFuc2l0aW9uIH0pIHtcclxuICAgICAgICBpZiAoIXZhbHVlID09PSAhb2xkVmFsdWUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBpZiAodHJhbnNpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24uYmVmb3JlRW50ZXIoZWwpO1xyXG4gICAgICAgICAgICAgICAgc2V0RGlzcGxheShlbCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLmVudGVyKGVsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24ubGVhdmUoZWwsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXREaXNwbGF5KGVsLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc2V0RGlzcGxheShlbCwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBiZWZvcmVVbm1vdW50KGVsLCB7IHZhbHVlIH0pIHtcclxuICAgICAgICBzZXREaXNwbGF5KGVsLCB2YWx1ZSk7XHJcbiAgICB9XHJcbn07XHJcbmZ1bmN0aW9uIHNldERpc3BsYXkoZWwsIHZhbHVlKSB7XHJcbiAgICBlbC5zdHlsZS5kaXNwbGF5ID0gdmFsdWUgPyBlbC5fdm9kIDogJ25vbmUnO1xyXG59XHJcbi8vIFNTUiB2bm9kZSB0cmFuc2Zvcm1zLCBvbmx5IHVzZWQgd2hlbiB1c2VyIGluY2x1ZGVzIGNsaWVudC1vcmllbnRlZCByZW5kZXJcclxuLy8gZnVuY3Rpb24gaW4gU1NSXHJcbmZ1bmN0aW9uIGluaXRWU2hvd0ZvclNTUigpIHtcclxuICAgIHZTaG93LmdldFNTUlByb3BzID0gKHsgdmFsdWUgfSkgPT4ge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgc3R5bGU6IHsgZGlzcGxheTogJ25vbmUnIH0gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XG5cbmNvbnN0IHJlbmRlcmVyT3B0aW9ucyA9IC8qI19fUFVSRV9fKi8gZXh0ZW5kKHsgcGF0Y2hQcm9wIH0sIG5vZGVPcHMpO1xyXG4vLyBsYXp5IGNyZWF0ZSB0aGUgcmVuZGVyZXIgLSB0aGlzIG1ha2VzIGNvcmUgcmVuZGVyZXIgbG9naWMgdHJlZS1zaGFrYWJsZVxyXG4vLyBpbiBjYXNlIHRoZSB1c2VyIG9ubHkgaW1wb3J0cyByZWFjdGl2aXR5IHV0aWxpdGllcyBmcm9tIFZ1ZS5cclxubGV0IHJlbmRlcmVyO1xyXG5sZXQgZW5hYmxlZEh5ZHJhdGlvbiA9IGZhbHNlO1xyXG5mdW5jdGlvbiBlbnN1cmVSZW5kZXJlcigpIHtcclxuICAgIHJldHVybiAocmVuZGVyZXIgfHxcclxuICAgICAgICAocmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcihyZW5kZXJlck9wdGlvbnMpKSk7XHJcbn1cclxuZnVuY3Rpb24gZW5zdXJlSHlkcmF0aW9uUmVuZGVyZXIoKSB7XHJcbiAgICByZW5kZXJlciA9IGVuYWJsZWRIeWRyYXRpb25cclxuICAgICAgICA/IHJlbmRlcmVyXHJcbiAgICAgICAgOiBjcmVhdGVIeWRyYXRpb25SZW5kZXJlcihyZW5kZXJlck9wdGlvbnMpO1xyXG4gICAgZW5hYmxlZEh5ZHJhdGlvbiA9IHRydWU7XHJcbiAgICByZXR1cm4gcmVuZGVyZXI7XHJcbn1cclxuLy8gdXNlIGV4cGxpY2l0IHR5cGUgY2FzdHMgaGVyZSB0byBhdm9pZCBpbXBvcnQoKSBjYWxscyBpbiByb2xsZWQtdXAgZC50c1xyXG5jb25zdCByZW5kZXIgPSAoKC4uLmFyZ3MpID0+IHtcclxuICAgIGVuc3VyZVJlbmRlcmVyKCkucmVuZGVyKC4uLmFyZ3MpO1xyXG59KTtcclxuY29uc3QgaHlkcmF0ZSA9ICgoLi4uYXJncykgPT4ge1xyXG4gICAgZW5zdXJlSHlkcmF0aW9uUmVuZGVyZXIoKS5oeWRyYXRlKC4uLmFyZ3MpO1xyXG59KTtcclxuY29uc3QgY3JlYXRlQXBwID0gKCguLi5hcmdzKSA9PiB7XHJcbiAgICBjb25zdCBhcHAgPSBlbnN1cmVSZW5kZXJlcigpLmNyZWF0ZUFwcCguLi5hcmdzKTtcclxuICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykpIHtcclxuICAgICAgICBpbmplY3ROYXRpdmVUYWdDaGVjayhhcHApO1xyXG4gICAgICAgIGluamVjdENvbXBpbGVyT3B0aW9uc0NoZWNrKGFwcCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IG1vdW50IH0gPSBhcHA7XHJcbiAgICBhcHAubW91bnQgPSAoY29udGFpbmVyT3JTZWxlY3RvcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG5vcm1hbGl6ZUNvbnRhaW5lcihjb250YWluZXJPclNlbGVjdG9yKTtcclxuICAgICAgICBpZiAoIWNvbnRhaW5lcilcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGFwcC5fY29tcG9uZW50O1xyXG4gICAgICAgIGlmICghaXNGdW5jdGlvbihjb21wb25lbnQpICYmICFjb21wb25lbnQucmVuZGVyICYmICFjb21wb25lbnQudGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgLy8gX19VTlNBRkVfX1xyXG4gICAgICAgICAgICAvLyBSZWFzb246IHBvdGVudGlhbCBleGVjdXRpb24gb2YgSlMgZXhwcmVzc2lvbnMgaW4gaW4tRE9NIHRlbXBsYXRlLlxyXG4gICAgICAgICAgICAvLyBUaGUgdXNlciBtdXN0IG1ha2Ugc3VyZSB0aGUgaW4tRE9NIHRlbXBsYXRlIGlzIHRydXN0ZWQuIElmIGl0J3NcclxuICAgICAgICAgICAgLy8gcmVuZGVyZWQgYnkgdGhlIHNlcnZlciwgdGhlIHRlbXBsYXRlIHNob3VsZCBub3QgY29udGFpbiBhbnkgdXNlciBkYXRhLlxyXG4gICAgICAgICAgICBjb21wb25lbnQudGVtcGxhdGUgPSBjb250YWluZXIuaW5uZXJIVE1MO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjbGVhciBjb250ZW50IGJlZm9yZSBtb3VudGluZ1xyXG4gICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcclxuICAgICAgICBjb25zdCBwcm94eSA9IG1vdW50KGNvbnRhaW5lciwgZmFsc2UsIGNvbnRhaW5lciBpbnN0YW5jZW9mIFNWR0VsZW1lbnQpO1xyXG4gICAgICAgIGlmIChjb250YWluZXIgaW5zdGFuY2VvZiBFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUoJ3YtY2xvYWsnKTtcclxuICAgICAgICAgICAgY29udGFpbmVyLnNldEF0dHJpYnV0ZSgnZGF0YS12LWFwcCcsICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb3h5O1xyXG4gICAgfTtcclxuICAgIHJldHVybiBhcHA7XHJcbn0pO1xyXG5jb25zdCBjcmVhdGVTU1JBcHAgPSAoKC4uLmFyZ3MpID0+IHtcclxuICAgIGNvbnN0IGFwcCA9IGVuc3VyZUh5ZHJhdGlvblJlbmRlcmVyKCkuY3JlYXRlQXBwKC4uLmFyZ3MpO1xyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSkge1xyXG4gICAgICAgIGluamVjdE5hdGl2ZVRhZ0NoZWNrKGFwcCk7XHJcbiAgICAgICAgaW5qZWN0Q29tcGlsZXJPcHRpb25zQ2hlY2soYXBwKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgbW91bnQgfSA9IGFwcDtcclxuICAgIGFwcC5tb3VudCA9IChjb250YWluZXJPclNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gbm9ybWFsaXplQ29udGFpbmVyKGNvbnRhaW5lck9yU2VsZWN0b3IpO1xyXG4gICAgICAgIGlmIChjb250YWluZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1vdW50KGNvbnRhaW5lciwgdHJ1ZSwgY29udGFpbmVyIGluc3RhbmNlb2YgU1ZHRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiBhcHA7XHJcbn0pO1xyXG5mdW5jdGlvbiBpbmplY3ROYXRpdmVUYWdDaGVjayhhcHApIHtcclxuICAgIC8vIEluamVjdCBgaXNOYXRpdmVUYWdgXHJcbiAgICAvLyB0aGlzIGlzIHVzZWQgZm9yIGNvbXBvbmVudCBuYW1lIHZhbGlkYXRpb24gKGRldiBvbmx5KVxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwcC5jb25maWcsICdpc05hdGl2ZVRhZycsIHtcclxuICAgICAgICB2YWx1ZTogKHRhZykgPT4gaXNIVE1MVGFnKHRhZykgfHwgaXNTVkdUYWcodGFnKSxcclxuICAgICAgICB3cml0YWJsZTogZmFsc2VcclxuICAgIH0pO1xyXG59XHJcbi8vIGRldiBvbmx5XHJcbmZ1bmN0aW9uIGluamVjdENvbXBpbGVyT3B0aW9uc0NoZWNrKGFwcCkge1xyXG4gICAgaWYgKGlzUnVudGltZU9ubHkoKSkge1xyXG4gICAgICAgIGNvbnN0IGlzQ3VzdG9tRWxlbWVudCA9IGFwcC5jb25maWcuaXNDdXN0b21FbGVtZW50O1xyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcHAuY29uZmlnLCAnaXNDdXN0b21FbGVtZW50Jywge1xyXG4gICAgICAgICAgICBnZXQoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNDdXN0b21FbGVtZW50O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzZXQoKSB7XHJcbiAgICAgICAgICAgICAgICB3YXJuKGBUaGUgXFxgaXNDdXN0b21FbGVtZW50XFxgIGNvbmZpZyBvcHRpb24gaXMgZGVwcmVjYXRlZC4gVXNlIGAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGBcXGBjb21waWxlck9wdGlvbnMuaXNDdXN0b21FbGVtZW50XFxgIGluc3RlYWQuYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBjb21waWxlck9wdGlvbnMgPSBhcHAuY29uZmlnLmNvbXBpbGVyT3B0aW9ucztcclxuICAgICAgICBjb25zdCBtc2cgPSBgVGhlIFxcYGNvbXBpbGVyT3B0aW9uc1xcYCBjb25maWcgb3B0aW9uIGlzIG9ubHkgcmVzcGVjdGVkIHdoZW4gdXNpbmcgYCArXHJcbiAgICAgICAgICAgIGBhIGJ1aWxkIG9mIFZ1ZS5qcyB0aGF0IGluY2x1ZGVzIHRoZSBydW50aW1lIGNvbXBpbGVyIChha2EgXCJmdWxsIGJ1aWxkXCIpLiBgICtcclxuICAgICAgICAgICAgYFNpbmNlIHlvdSBhcmUgdXNpbmcgdGhlIHJ1bnRpbWUtb25seSBidWlsZCwgXFxgY29tcGlsZXJPcHRpb25zXFxgIGAgK1xyXG4gICAgICAgICAgICBgbXVzdCBiZSBwYXNzZWQgdG8gXFxgQHZ1ZS9jb21waWxlci1kb21cXGAgaW4gdGhlIGJ1aWxkIHNldHVwIGluc3RlYWQuXFxuYCArXHJcbiAgICAgICAgICAgIGAtIEZvciB2dWUtbG9hZGVyOiBwYXNzIGl0IHZpYSB2dWUtbG9hZGVyJ3MgXFxgY29tcGlsZXJPcHRpb25zXFxgIGxvYWRlciBvcHRpb24uXFxuYCArXHJcbiAgICAgICAgICAgIGAtIEZvciB2dWUtY2xpOiBzZWUgaHR0cHM6Ly9jbGkudnVlanMub3JnL2d1aWRlL3dlYnBhY2suaHRtbCNtb2RpZnlpbmctb3B0aW9ucy1vZi1hLWxvYWRlclxcbmAgK1xyXG4gICAgICAgICAgICBgLSBGb3Igdml0ZTogcGFzcyBpdCB2aWEgQHZpdGVqcy9wbHVnaW4tdnVlIG9wdGlvbnMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdml0ZWpzL3ZpdGUvdHJlZS9tYWluL3BhY2thZ2VzL3BsdWdpbi12dWUjZXhhbXBsZS1mb3ItcGFzc2luZy1vcHRpb25zLXRvLXZ1ZWNvbXBpbGVyLWRvbWA7XHJcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwcC5jb25maWcsICdjb21waWxlck9wdGlvbnMnLCB7XHJcbiAgICAgICAgICAgIGdldCgpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4obXNnKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb21waWxlck9wdGlvbnM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNldCgpIHtcclxuICAgICAgICAgICAgICAgIHdhcm4obXNnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIG5vcm1hbGl6ZUNvbnRhaW5lcihjb250YWluZXIpIHtcclxuICAgIGlmIChpc1N0cmluZyhjb250YWluZXIpKSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihjb250YWluZXIpO1xyXG4gICAgICAgIGlmICgocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgJiYgIXJlcykge1xyXG4gICAgICAgICAgICB3YXJuKGBGYWlsZWQgdG8gbW91bnQgYXBwOiBtb3VudCB0YXJnZXQgc2VsZWN0b3IgXCIke2NvbnRhaW5lcn1cIiByZXR1cm5lZCBudWxsLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgfVxyXG4gICAgaWYgKChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSAmJlxyXG4gICAgICAgIHdpbmRvdy5TaGFkb3dSb290ICYmXHJcbiAgICAgICAgY29udGFpbmVyIGluc3RhbmNlb2Ygd2luZG93LlNoYWRvd1Jvb3QgJiZcclxuICAgICAgICBjb250YWluZXIubW9kZSA9PT0gJ2Nsb3NlZCcpIHtcclxuICAgICAgICB3YXJuKGBtb3VudGluZyBvbiBhIFNoYWRvd1Jvb3Qgd2l0aCBcXGB7bW9kZTogXCJjbG9zZWRcIn1cXGAgbWF5IGxlYWQgdG8gdW5wcmVkaWN0YWJsZSBidWdzYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udGFpbmVyO1xyXG59XHJcbmxldCBzc3JEaXJlY3RpdmVJbml0aWFsaXplZCA9IGZhbHNlO1xyXG4vKipcclxuICogQGludGVybmFsXHJcbiAqL1xyXG5jb25zdCBpbml0RGlyZWN0aXZlc0ZvclNTUiA9ICgpID0+IHtcclxuICAgICAgICBpZiAoIXNzckRpcmVjdGl2ZUluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIHNzckRpcmVjdGl2ZUluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaW5pdFZNb2RlbEZvclNTUigpO1xyXG4gICAgICAgICAgICBpbml0VlNob3dGb3JTU1IoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICA7XG5cbmV4cG9ydCB7IFRyYW5zaXRpb24sIFRyYW5zaXRpb25Hcm91cCwgVnVlRWxlbWVudCwgY3JlYXRlQXBwLCBjcmVhdGVTU1JBcHAsIGRlZmluZUN1c3RvbUVsZW1lbnQsIGRlZmluZVNTUkN1c3RvbUVsZW1lbnQsIGh5ZHJhdGUsIGluaXREaXJlY3RpdmVzRm9yU1NSLCByZW5kZXIsIHVzZUNzc01vZHVsZSwgdXNlQ3NzVmFycywgdk1vZGVsQ2hlY2tib3gsIHZNb2RlbER5bmFtaWMsIHZNb2RlbFJhZGlvLCB2TW9kZWxTZWxlY3QsIHZNb2RlbFRleHQsIHZTaG93LCB3aXRoS2V5cywgd2l0aE1vZGlmaWVycyB9O1xuIiwiLyoqXHJcbiAqIE1ha2UgYSBtYXAgYW5kIHJldHVybiBhIGZ1bmN0aW9uIGZvciBjaGVja2luZyBpZiBhIGtleVxyXG4gKiBpcyBpbiB0aGF0IG1hcC5cclxuICogSU1QT1JUQU5UOiBhbGwgY2FsbHMgb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIHByZWZpeGVkIHdpdGhcclxuICogXFwvXFwqI1xcX1xcX1BVUkVcXF9cXF9cXCpcXC9cclxuICogU28gdGhhdCByb2xsdXAgY2FuIHRyZWUtc2hha2UgdGhlbSBpZiBuZWNlc3NhcnkuXHJcbiAqL1xyXG5mdW5jdGlvbiBtYWtlTWFwKHN0ciwgZXhwZWN0c0xvd2VyQ2FzZSkge1xyXG4gICAgY29uc3QgbWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcclxuICAgIGNvbnN0IGxpc3QgPSBzdHIuc3BsaXQoJywnKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG1hcFtsaXN0W2ldXSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXhwZWN0c0xvd2VyQ2FzZSA/IHZhbCA9PiAhIW1hcFt2YWwudG9Mb3dlckNhc2UoKV0gOiB2YWwgPT4gISFtYXBbdmFsXTtcclxufVxuXG4vKipcclxuICogZGV2IG9ubHkgZmxhZyAtPiBuYW1lIG1hcHBpbmdcclxuICovXHJcbmNvbnN0IFBhdGNoRmxhZ05hbWVzID0ge1xyXG4gICAgWzEgLyogUGF0Y2hGbGFncy5URVhUICovXTogYFRFWFRgLFxyXG4gICAgWzIgLyogUGF0Y2hGbGFncy5DTEFTUyAqL106IGBDTEFTU2AsXHJcbiAgICBbNCAvKiBQYXRjaEZsYWdzLlNUWUxFICovXTogYFNUWUxFYCxcclxuICAgIFs4IC8qIFBhdGNoRmxhZ3MuUFJPUFMgKi9dOiBgUFJPUFNgLFxyXG4gICAgWzE2IC8qIFBhdGNoRmxhZ3MuRlVMTF9QUk9QUyAqL106IGBGVUxMX1BST1BTYCxcclxuICAgIFszMiAvKiBQYXRjaEZsYWdzLkhZRFJBVEVfRVZFTlRTICovXTogYEhZRFJBVEVfRVZFTlRTYCxcclxuICAgIFs2NCAvKiBQYXRjaEZsYWdzLlNUQUJMRV9GUkFHTUVOVCAqL106IGBTVEFCTEVfRlJBR01FTlRgLFxyXG4gICAgWzEyOCAvKiBQYXRjaEZsYWdzLktFWUVEX0ZSQUdNRU5UICovXTogYEtFWUVEX0ZSQUdNRU5UYCxcclxuICAgIFsyNTYgLyogUGF0Y2hGbGFncy5VTktFWUVEX0ZSQUdNRU5UICovXTogYFVOS0VZRURfRlJBR01FTlRgLFxyXG4gICAgWzUxMiAvKiBQYXRjaEZsYWdzLk5FRURfUEFUQ0ggKi9dOiBgTkVFRF9QQVRDSGAsXHJcbiAgICBbMTAyNCAvKiBQYXRjaEZsYWdzLkRZTkFNSUNfU0xPVFMgKi9dOiBgRFlOQU1JQ19TTE9UU2AsXHJcbiAgICBbMjA0OCAvKiBQYXRjaEZsYWdzLkRFVl9ST09UX0ZSQUdNRU5UICovXTogYERFVl9ST09UX0ZSQUdNRU5UYCxcclxuICAgIFstMSAvKiBQYXRjaEZsYWdzLkhPSVNURUQgKi9dOiBgSE9JU1RFRGAsXHJcbiAgICBbLTIgLyogUGF0Y2hGbGFncy5CQUlMICovXTogYEJBSUxgXHJcbn07XG5cbi8qKlxyXG4gKiBEZXYgb25seVxyXG4gKi9cclxuY29uc3Qgc2xvdEZsYWdzVGV4dCA9IHtcclxuICAgIFsxIC8qIFNsb3RGbGFncy5TVEFCTEUgKi9dOiAnU1RBQkxFJyxcclxuICAgIFsyIC8qIFNsb3RGbGFncy5EWU5BTUlDICovXTogJ0RZTkFNSUMnLFxyXG4gICAgWzMgLyogU2xvdEZsYWdzLkZPUldBUkRFRCAqL106ICdGT1JXQVJERUQnXHJcbn07XG5cbmNvbnN0IEdMT0JBTFNfV0hJVEVfTElTVEVEID0gJ0luZmluaXR5LHVuZGVmaW5lZCxOYU4saXNGaW5pdGUsaXNOYU4scGFyc2VGbG9hdCxwYXJzZUludCxkZWNvZGVVUkksJyArXHJcbiAgICAnZGVjb2RlVVJJQ29tcG9uZW50LGVuY29kZVVSSSxlbmNvZGVVUklDb21wb25lbnQsTWF0aCxOdW1iZXIsRGF0ZSxBcnJheSwnICtcclxuICAgICdPYmplY3QsQm9vbGVhbixTdHJpbmcsUmVnRXhwLE1hcCxTZXQsSlNPTixJbnRsLEJpZ0ludCc7XHJcbmNvbnN0IGlzR2xvYmFsbHlXaGl0ZWxpc3RlZCA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcChHTE9CQUxTX1dISVRFX0xJU1RFRCk7XG5cbmNvbnN0IHJhbmdlID0gMjtcclxuZnVuY3Rpb24gZ2VuZXJhdGVDb2RlRnJhbWUoc291cmNlLCBzdGFydCA9IDAsIGVuZCA9IHNvdXJjZS5sZW5ndGgpIHtcclxuICAgIC8vIFNwbGl0IHRoZSBjb250ZW50IGludG8gaW5kaXZpZHVhbCBsaW5lcyBidXQgY2FwdHVyZSB0aGUgbmV3bGluZSBzZXF1ZW5jZVxyXG4gICAgLy8gdGhhdCBzZXBhcmF0ZWQgZWFjaCBsaW5lLiBUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSBhY3R1YWwgc2VxdWVuY2UgaXNcclxuICAgIC8vIG5lZWRlZCB0byBwcm9wZXJseSB0YWtlIGludG8gYWNjb3VudCB0aGUgZnVsbCBsaW5lIGxlbmd0aCBmb3Igb2Zmc2V0XHJcbiAgICAvLyBjb21wYXJpc29uXHJcbiAgICBsZXQgbGluZXMgPSBzb3VyY2Uuc3BsaXQoLyhcXHI/XFxuKS8pO1xyXG4gICAgLy8gU2VwYXJhdGUgdGhlIGxpbmVzIGFuZCBuZXdsaW5lIHNlcXVlbmNlcyBpbnRvIHNlcGFyYXRlIGFycmF5cyBmb3IgZWFzaWVyIHJlZmVyZW5jaW5nXHJcbiAgICBjb25zdCBuZXdsaW5lU2VxdWVuY2VzID0gbGluZXMuZmlsdGVyKChfLCBpZHgpID0+IGlkeCAlIDIgPT09IDEpO1xyXG4gICAgbGluZXMgPSBsaW5lcy5maWx0ZXIoKF8sIGlkeCkgPT4gaWR4ICUgMiA9PT0gMCk7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgY29uc3QgcmVzID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY291bnQgKz1cclxuICAgICAgICAgICAgbGluZXNbaV0ubGVuZ3RoICtcclxuICAgICAgICAgICAgICAgICgobmV3bGluZVNlcXVlbmNlc1tpXSAmJiBuZXdsaW5lU2VxdWVuY2VzW2ldLmxlbmd0aCkgfHwgMCk7XHJcbiAgICAgICAgaWYgKGNvdW50ID49IHN0YXJ0KSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSBpIC0gcmFuZ2U7IGogPD0gaSArIHJhbmdlIHx8IGVuZCA+IGNvdW50OyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChqIDwgMCB8fCBqID49IGxpbmVzLmxlbmd0aClcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBqICsgMTtcclxuICAgICAgICAgICAgICAgIHJlcy5wdXNoKGAke2xpbmV9JHsnICcucmVwZWF0KE1hdGgubWF4KDMgLSBTdHJpbmcobGluZSkubGVuZ3RoLCAwKSl9fCAgJHtsaW5lc1tqXX1gKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVMZW5ndGggPSBsaW5lc1tqXS5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdMaW5lU2VxTGVuZ3RoID0gKG5ld2xpbmVTZXF1ZW5jZXNbal0gJiYgbmV3bGluZVNlcXVlbmNlc1tqXS5sZW5ndGgpIHx8IDA7XHJcbiAgICAgICAgICAgICAgICBpZiAoaiA9PT0gaSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHB1c2ggdW5kZXJsaW5lXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFkID0gc3RhcnQgLSAoY291bnQgLSAobGluZUxlbmd0aCArIG5ld0xpbmVTZXFMZW5ndGgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1heCgxLCBlbmQgPiBjb3VudCA/IGxpbmVMZW5ndGggLSBwYWQgOiBlbmQgLSBzdGFydCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2goYCAgIHwgIGAgKyAnICcucmVwZWF0KHBhZCkgKyAnXicucmVwZWF0KGxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaiA+IGkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZW5kID4gY291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgoTWF0aC5taW4oZW5kIC0gY291bnQsIGxpbmVMZW5ndGgpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2goYCAgIHwgIGAgKyAnXicucmVwZWF0KGxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb3VudCArPSBsaW5lTGVuZ3RoICsgbmV3TGluZVNlcUxlbmd0aDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzLmpvaW4oJ1xcbicpO1xyXG59XG5cbi8qKlxyXG4gKiBPbiB0aGUgY2xpZW50IHdlIG9ubHkgbmVlZCB0byBvZmZlciBzcGVjaWFsIGNhc2VzIGZvciBib29sZWFuIGF0dHJpYnV0ZXMgdGhhdFxyXG4gKiBoYXZlIGRpZmZlcmVudCBuYW1lcyBmcm9tIHRoZWlyIGNvcnJlc3BvbmRpbmcgZG9tIHByb3BlcnRpZXM6XHJcbiAqIC0gaXRlbXNjb3BlIC0+IE4vQVxyXG4gKiAtIGFsbG93ZnVsbHNjcmVlbiAtPiBhbGxvd0Z1bGxzY3JlZW5cclxuICogLSBmb3Jtbm92YWxpZGF0ZSAtPiBmb3JtTm9WYWxpZGF0ZVxyXG4gKiAtIGlzbWFwIC0+IGlzTWFwXHJcbiAqIC0gbm9tb2R1bGUgLT4gbm9Nb2R1bGVcclxuICogLSBub3ZhbGlkYXRlIC0+IG5vVmFsaWRhdGVcclxuICogLSByZWFkb25seSAtPiByZWFkT25seVxyXG4gKi9cclxuY29uc3Qgc3BlY2lhbEJvb2xlYW5BdHRycyA9IGBpdGVtc2NvcGUsYWxsb3dmdWxsc2NyZWVuLGZvcm1ub3ZhbGlkYXRlLGlzbWFwLG5vbW9kdWxlLG5vdmFsaWRhdGUscmVhZG9ubHlgO1xyXG5jb25zdCBpc1NwZWNpYWxCb29sZWFuQXR0ciA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcChzcGVjaWFsQm9vbGVhbkF0dHJzKTtcclxuLyoqXHJcbiAqIFRoZSBmdWxsIGxpc3QgaXMgbmVlZGVkIGR1cmluZyBTU1IgdG8gcHJvZHVjZSB0aGUgY29ycmVjdCBpbml0aWFsIG1hcmt1cC5cclxuICovXHJcbmNvbnN0IGlzQm9vbGVhbkF0dHIgPSAvKiNfX1BVUkVfXyovIG1ha2VNYXAoc3BlY2lhbEJvb2xlYW5BdHRycyArXHJcbiAgICBgLGFzeW5jLGF1dG9mb2N1cyxhdXRvcGxheSxjb250cm9scyxkZWZhdWx0LGRlZmVyLGRpc2FibGVkLGhpZGRlbixgICtcclxuICAgIGBsb29wLG9wZW4scmVxdWlyZWQscmV2ZXJzZWQsc2NvcGVkLHNlYW1sZXNzLGAgK1xyXG4gICAgYGNoZWNrZWQsbXV0ZWQsbXVsdGlwbGUsc2VsZWN0ZWRgKTtcclxuLyoqXHJcbiAqIEJvb2xlYW4gYXR0cmlidXRlcyBzaG91bGQgYmUgaW5jbHVkZWQgaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBvciAnJy5cclxuICogZS5nLiBgPHNlbGVjdCBtdWx0aXBsZT5gIGNvbXBpbGVzIHRvIGB7IG11bHRpcGxlOiAnJyB9YFxyXG4gKi9cclxuZnVuY3Rpb24gaW5jbHVkZUJvb2xlYW5BdHRyKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gISF2YWx1ZSB8fCB2YWx1ZSA9PT0gJyc7XHJcbn1cclxuY29uc3QgdW5zYWZlQXR0ckNoYXJSRSA9IC9bPi89XCInXFx1MDAwOVxcdTAwMGFcXHUwMDBjXFx1MDAyMF0vO1xyXG5jb25zdCBhdHRyVmFsaWRhdGlvbkNhY2hlID0ge307XHJcbmZ1bmN0aW9uIGlzU1NSU2FmZUF0dHJOYW1lKG5hbWUpIHtcclxuICAgIGlmIChhdHRyVmFsaWRhdGlvbkNhY2hlLmhhc093blByb3BlcnR5KG5hbWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIGF0dHJWYWxpZGF0aW9uQ2FjaGVbbmFtZV07XHJcbiAgICB9XHJcbiAgICBjb25zdCBpc1Vuc2FmZSA9IHVuc2FmZUF0dHJDaGFyUkUudGVzdChuYW1lKTtcclxuICAgIGlmIChpc1Vuc2FmZSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYHVuc2FmZSBhdHRyaWJ1dGUgbmFtZTogJHtuYW1lfWApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChhdHRyVmFsaWRhdGlvbkNhY2hlW25hbWVdID0gIWlzVW5zYWZlKTtcclxufVxyXG5jb25zdCBwcm9wc1RvQXR0ck1hcCA9IHtcclxuICAgIGFjY2VwdENoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXHJcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXHJcbiAgICBodG1sRm9yOiAnZm9yJyxcclxuICAgIGh0dHBFcXVpdjogJ2h0dHAtZXF1aXYnXHJcbn07XHJcbi8qKlxyXG4gKiBDU1MgcHJvcGVydGllcyB0aGF0IGFjY2VwdCBwbGFpbiBudW1iZXJzXHJcbiAqL1xyXG5jb25zdCBpc05vVW5pdE51bWVyaWNTdHlsZVByb3AgPSAvKiNfX1BVUkVfXyovIG1ha2VNYXAoYGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsYm9yZGVyLWltYWdlLW91dHNldCxib3JkZXItaW1hZ2Utc2xpY2UsYCArXHJcbiAgICBgYm9yZGVyLWltYWdlLXdpZHRoLGJveC1mbGV4LGJveC1mbGV4LWdyb3VwLGJveC1vcmRpbmFsLWdyb3VwLGNvbHVtbi1jb3VudCxgICtcclxuICAgIGBjb2x1bW5zLGZsZXgsZmxleC1ncm93LGZsZXgtcG9zaXRpdmUsZmxleC1zaHJpbmssZmxleC1uZWdhdGl2ZSxmbGV4LW9yZGVyLGAgK1xyXG4gICAgYGdyaWQtcm93LGdyaWQtcm93LWVuZCxncmlkLXJvdy1zcGFuLGdyaWQtcm93LXN0YXJ0LGdyaWQtY29sdW1uLGAgK1xyXG4gICAgYGdyaWQtY29sdW1uLWVuZCxncmlkLWNvbHVtbi1zcGFuLGdyaWQtY29sdW1uLXN0YXJ0LGZvbnQtd2VpZ2h0LGxpbmUtY2xhbXAsYCArXHJcbiAgICBgbGluZS1oZWlnaHQsb3BhY2l0eSxvcmRlcixvcnBoYW5zLHRhYi1zaXplLHdpZG93cyx6LWluZGV4LHpvb20sYCArXHJcbiAgICAvLyBTVkdcclxuICAgIGBmaWxsLW9wYWNpdHksZmxvb2Qtb3BhY2l0eSxzdG9wLW9wYWNpdHksc3Ryb2tlLWRhc2hhcnJheSxzdHJva2UtZGFzaG9mZnNldCxgICtcclxuICAgIGBzdHJva2UtbWl0ZXJsaW1pdCxzdHJva2Utb3BhY2l0eSxzdHJva2Utd2lkdGhgKTtcclxuLyoqXHJcbiAqIEtub3duIGF0dHJpYnV0ZXMsIHRoaXMgaXMgdXNlZCBmb3Igc3RyaW5naWZpY2F0aW9uIG9mIHJ1bnRpbWUgc3RhdGljIG5vZGVzXHJcbiAqIHNvIHRoYXQgd2UgZG9uJ3Qgc3RyaW5naWZ5IGJpbmRpbmdzIHRoYXQgY2Fubm90IGJlIHNldCBmcm9tIEhUTUwuXHJcbiAqIERvbid0IGFsc28gZm9yZ2V0IHRvIGFsbG93IGBkYXRhLSpgIGFuZCBgYXJpYS0qYCFcclxuICogR2VuZXJhdGVkIGZyb20gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9BdHRyaWJ1dGVzXHJcbiAqL1xyXG5jb25zdCBpc0tub3duSHRtbEF0dHIgPSAvKiNfX1BVUkVfXyovIG1ha2VNYXAoYGFjY2VwdCxhY2NlcHQtY2hhcnNldCxhY2Nlc3NrZXksYWN0aW9uLGFsaWduLGFsbG93LGFsdCxhc3luYyxgICtcclxuICAgIGBhdXRvY2FwaXRhbGl6ZSxhdXRvY29tcGxldGUsYXV0b2ZvY3VzLGF1dG9wbGF5LGJhY2tncm91bmQsYmdjb2xvcixgICtcclxuICAgIGBib3JkZXIsYnVmZmVyZWQsY2FwdHVyZSxjaGFsbGVuZ2UsY2hhcnNldCxjaGVja2VkLGNpdGUsY2xhc3MsY29kZSxgICtcclxuICAgIGBjb2RlYmFzZSxjb2xvcixjb2xzLGNvbHNwYW4sY29udGVudCxjb250ZW50ZWRpdGFibGUsY29udGV4dG1lbnUsY29udHJvbHMsYCArXHJcbiAgICBgY29vcmRzLGNyb3Nzb3JpZ2luLGNzcCxkYXRhLGRhdGV0aW1lLGRlY29kaW5nLGRlZmF1bHQsZGVmZXIsZGlyLGRpcm5hbWUsYCArXHJcbiAgICBgZGlzYWJsZWQsZG93bmxvYWQsZHJhZ2dhYmxlLGRyb3B6b25lLGVuY3R5cGUsZW50ZXJrZXloaW50LGZvcixmb3JtLGAgK1xyXG4gICAgYGZvcm1hY3Rpb24sZm9ybWVuY3R5cGUsZm9ybW1ldGhvZCxmb3Jtbm92YWxpZGF0ZSxmb3JtdGFyZ2V0LGhlYWRlcnMsYCArXHJcbiAgICBgaGVpZ2h0LGhpZGRlbixoaWdoLGhyZWYsaHJlZmxhbmcsaHR0cC1lcXVpdixpY29uLGlkLGltcG9ydGFuY2UsaW50ZWdyaXR5LGAgK1xyXG4gICAgYGlzbWFwLGl0ZW1wcm9wLGtleXR5cGUsa2luZCxsYWJlbCxsYW5nLGxhbmd1YWdlLGxvYWRpbmcsbGlzdCxsb29wLGxvdyxgICtcclxuICAgIGBtYW5pZmVzdCxtYXgsbWF4bGVuZ3RoLG1pbmxlbmd0aCxtZWRpYSxtaW4sbXVsdGlwbGUsbXV0ZWQsbmFtZSxub3ZhbGlkYXRlLGAgK1xyXG4gICAgYG9wZW4sb3B0aW11bSxwYXR0ZXJuLHBpbmcscGxhY2Vob2xkZXIscG9zdGVyLHByZWxvYWQscmFkaW9ncm91cCxyZWFkb25seSxgICtcclxuICAgIGByZWZlcnJlcnBvbGljeSxyZWwscmVxdWlyZWQscmV2ZXJzZWQscm93cyxyb3dzcGFuLHNhbmRib3gsc2NvcGUsc2NvcGVkLGAgK1xyXG4gICAgYHNlbGVjdGVkLHNoYXBlLHNpemUsc2l6ZXMsc2xvdCxzcGFuLHNwZWxsY2hlY2ssc3JjLHNyY2RvYyxzcmNsYW5nLHNyY3NldCxgICtcclxuICAgIGBzdGFydCxzdGVwLHN0eWxlLHN1bW1hcnksdGFiaW5kZXgsdGFyZ2V0LHRpdGxlLHRyYW5zbGF0ZSx0eXBlLHVzZW1hcCxgICtcclxuICAgIGB2YWx1ZSx3aWR0aCx3cmFwYCk7XHJcbi8qKlxyXG4gKiBHZW5lcmF0ZWQgZnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9TVkcvQXR0cmlidXRlXHJcbiAqL1xyXG5jb25zdCBpc0tub3duU3ZnQXR0ciA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcChgeG1sbnMsYWNjZW50LWhlaWdodCxhY2N1bXVsYXRlLGFkZGl0aXZlLGFsaWdubWVudC1iYXNlbGluZSxhbHBoYWJldGljLGFtcGxpdHVkZSxgICtcclxuICAgIGBhcmFiaWMtZm9ybSxhc2NlbnQsYXR0cmlidXRlTmFtZSxhdHRyaWJ1dGVUeXBlLGF6aW11dGgsYmFzZUZyZXF1ZW5jeSxgICtcclxuICAgIGBiYXNlbGluZS1zaGlmdCxiYXNlUHJvZmlsZSxiYm94LGJlZ2luLGJpYXMsYnksY2FsY01vZGUsY2FwLWhlaWdodCxjbGFzcyxgICtcclxuICAgIGBjbGlwLGNsaXBQYXRoVW5pdHMsY2xpcC1wYXRoLGNsaXAtcnVsZSxjb2xvcixjb2xvci1pbnRlcnBvbGF0aW9uLGAgK1xyXG4gICAgYGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyxjb2xvci1wcm9maWxlLGNvbG9yLXJlbmRlcmluZyxgICtcclxuICAgIGBjb250ZW50U2NyaXB0VHlwZSxjb250ZW50U3R5bGVUeXBlLGNyb3Nzb3JpZ2luLGN1cnNvcixjeCxjeSxkLGRlY2VsZXJhdGUsYCArXHJcbiAgICBgZGVzY2VudCxkaWZmdXNlQ29uc3RhbnQsZGlyZWN0aW9uLGRpc3BsYXksZGl2aXNvcixkb21pbmFudC1iYXNlbGluZSxkdXIsZHgsYCArXHJcbiAgICBgZHksZWRnZU1vZGUsZWxldmF0aW9uLGVuYWJsZS1iYWNrZ3JvdW5kLGVuZCxleHBvbmVudCxmaWxsLGZpbGwtb3BhY2l0eSxgICtcclxuICAgIGBmaWxsLXJ1bGUsZmlsdGVyLGZpbHRlclJlcyxmaWx0ZXJVbml0cyxmbG9vZC1jb2xvcixmbG9vZC1vcGFjaXR5LGAgK1xyXG4gICAgYGZvbnQtZmFtaWx5LGZvbnQtc2l6ZSxmb250LXNpemUtYWRqdXN0LGZvbnQtc3RyZXRjaCxmb250LXN0eWxlLGAgK1xyXG4gICAgYGZvbnQtdmFyaWFudCxmb250LXdlaWdodCxmb3JtYXQsZnJvbSxmcixmeCxmeSxnMSxnMixnbHlwaC1uYW1lLGAgK1xyXG4gICAgYGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwsZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwsZ2x5cGhSZWYsYCArXHJcbiAgICBgZ3JhZGllbnRUcmFuc2Zvcm0sZ3JhZGllbnRVbml0cyxoYW5naW5nLGhlaWdodCxocmVmLGhyZWZsYW5nLGhvcml6LWFkdi14LGAgK1xyXG4gICAgYGhvcml6LW9yaWdpbi14LGlkLGlkZW9ncmFwaGljLGltYWdlLXJlbmRlcmluZyxpbixpbjIsaW50ZXJjZXB0LGssazEsazIsazMsYCArXHJcbiAgICBgazQsa2VybmVsTWF0cml4LGtlcm5lbFVuaXRMZW5ndGgsa2VybmluZyxrZXlQb2ludHMsa2V5U3BsaW5lcyxrZXlUaW1lcyxgICtcclxuICAgIGBsYW5nLGxlbmd0aEFkanVzdCxsZXR0ZXItc3BhY2luZyxsaWdodGluZy1jb2xvcixsaW1pdGluZ0NvbmVBbmdsZSxsb2NhbCxgICtcclxuICAgIGBtYXJrZXItZW5kLG1hcmtlci1taWQsbWFya2VyLXN0YXJ0LG1hcmtlckhlaWdodCxtYXJrZXJVbml0cyxtYXJrZXJXaWR0aCxgICtcclxuICAgIGBtYXNrLG1hc2tDb250ZW50VW5pdHMsbWFza1VuaXRzLG1hdGhlbWF0aWNhbCxtYXgsbWVkaWEsbWV0aG9kLG1pbixtb2RlLGAgK1xyXG4gICAgYG5hbWUsbnVtT2N0YXZlcyxvZmZzZXQsb3BhY2l0eSxvcGVyYXRvcixvcmRlcixvcmllbnQsb3JpZW50YXRpb24sb3JpZ2luLGAgK1xyXG4gICAgYG92ZXJmbG93LG92ZXJsaW5lLXBvc2l0aW9uLG92ZXJsaW5lLXRoaWNrbmVzcyxwYW5vc2UtMSxwYWludC1vcmRlcixwYXRoLGAgK1xyXG4gICAgYHBhdGhMZW5ndGgscGF0dGVybkNvbnRlbnRVbml0cyxwYXR0ZXJuVHJhbnNmb3JtLHBhdHRlcm5Vbml0cyxwaW5nLGAgK1xyXG4gICAgYHBvaW50ZXItZXZlbnRzLHBvaW50cyxwb2ludHNBdFgscG9pbnRzQXRZLHBvaW50c0F0WixwcmVzZXJ2ZUFscGhhLGAgK1xyXG4gICAgYHByZXNlcnZlQXNwZWN0UmF0aW8scHJpbWl0aXZlVW5pdHMscixyYWRpdXMscmVmZXJyZXJQb2xpY3kscmVmWCxyZWZZLHJlbCxgICtcclxuICAgIGByZW5kZXJpbmctaW50ZW50LHJlcGVhdENvdW50LHJlcGVhdER1cixyZXF1aXJlZEV4dGVuc2lvbnMscmVxdWlyZWRGZWF0dXJlcyxgICtcclxuICAgIGByZXN0YXJ0LHJlc3VsdCxyb3RhdGUscngscnksc2NhbGUsc2VlZCxzaGFwZS1yZW5kZXJpbmcsc2xvcGUsc3BhY2luZyxgICtcclxuICAgIGBzcGVjdWxhckNvbnN0YW50LHNwZWN1bGFyRXhwb25lbnQsc3BlZWQsc3ByZWFkTWV0aG9kLHN0YXJ0T2Zmc2V0LGAgK1xyXG4gICAgYHN0ZERldmlhdGlvbixzdGVtaCxzdGVtdixzdGl0Y2hUaWxlcyxzdG9wLWNvbG9yLHN0b3Atb3BhY2l0eSxgICtcclxuICAgIGBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uLHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzLHN0cmluZyxzdHJva2UsYCArXHJcbiAgICBgc3Ryb2tlLWRhc2hhcnJheSxzdHJva2UtZGFzaG9mZnNldCxzdHJva2UtbGluZWNhcCxzdHJva2UtbGluZWpvaW4sYCArXHJcbiAgICBgc3Ryb2tlLW1pdGVybGltaXQsc3Ryb2tlLW9wYWNpdHksc3Ryb2tlLXdpZHRoLHN0eWxlLHN1cmZhY2VTY2FsZSxgICtcclxuICAgIGBzeXN0ZW1MYW5ndWFnZSx0YWJpbmRleCx0YWJsZVZhbHVlcyx0YXJnZXQsdGFyZ2V0WCx0YXJnZXRZLHRleHQtYW5jaG9yLGAgK1xyXG4gICAgYHRleHQtZGVjb3JhdGlvbix0ZXh0LXJlbmRlcmluZyx0ZXh0TGVuZ3RoLHRvLHRyYW5zZm9ybSx0cmFuc2Zvcm0tb3JpZ2luLGAgK1xyXG4gICAgYHR5cGUsdTEsdTIsdW5kZXJsaW5lLXBvc2l0aW9uLHVuZGVybGluZS10aGlja25lc3MsdW5pY29kZSx1bmljb2RlLWJpZGksYCArXHJcbiAgICBgdW5pY29kZS1yYW5nZSx1bml0cy1wZXItZW0sdi1hbHBoYWJldGljLHYtaGFuZ2luZyx2LWlkZW9ncmFwaGljLGAgK1xyXG4gICAgYHYtbWF0aGVtYXRpY2FsLHZhbHVlcyx2ZWN0b3ItZWZmZWN0LHZlcnNpb24sdmVydC1hZHYteSx2ZXJ0LW9yaWdpbi14LGAgK1xyXG4gICAgYHZlcnQtb3JpZ2luLXksdmlld0JveCx2aWV3VGFyZ2V0LHZpc2liaWxpdHksd2lkdGgsd2lkdGhzLHdvcmQtc3BhY2luZyxgICtcclxuICAgIGB3cml0aW5nLW1vZGUseCx4LWhlaWdodCx4MSx4Mix4Q2hhbm5lbFNlbGVjdG9yLHhsaW5rOmFjdHVhdGUseGxpbms6YXJjcm9sZSxgICtcclxuICAgIGB4bGluazpocmVmLHhsaW5rOnJvbGUseGxpbms6c2hvdyx4bGluazp0aXRsZSx4bGluazp0eXBlLHhtbDpiYXNlLHhtbDpsYW5nLGAgK1xyXG4gICAgYHhtbDpzcGFjZSx5LHkxLHkyLHlDaGFubmVsU2VsZWN0b3Iseix6b29tQW5kUGFuYCk7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0eWxlKHZhbHVlKSB7XHJcbiAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICBjb25zdCByZXMgPSB7fTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB2YWx1ZVtpXTtcclxuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IGlzU3RyaW5nKGl0ZW0pXHJcbiAgICAgICAgICAgICAgICA/IHBhcnNlU3RyaW5nU3R5bGUoaXRlbSlcclxuICAgICAgICAgICAgICAgIDogbm9ybWFsaXplU3R5bGUoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBub3JtYWxpemVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzW2tleV0gPSBub3JtYWxpemVkW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxufVxyXG5jb25zdCBsaXN0RGVsaW1pdGVyUkUgPSAvOyg/IVteKF0qXFwpKS9nO1xyXG5jb25zdCBwcm9wZXJ0eURlbGltaXRlclJFID0gLzooLispLztcclxuZnVuY3Rpb24gcGFyc2VTdHJpbmdTdHlsZShjc3NUZXh0KSB7XHJcbiAgICBjb25zdCByZXQgPSB7fTtcclxuICAgIGNzc1RleHQuc3BsaXQobGlzdERlbGltaXRlclJFKS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRtcCA9IGl0ZW0uc3BsaXQocHJvcGVydHlEZWxpbWl0ZXJSRSk7XHJcbiAgICAgICAgICAgIHRtcC5sZW5ndGggPiAxICYmIChyZXRbdG1wWzBdLnRyaW0oKV0gPSB0bXBbMV0udHJpbSgpKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXQ7XHJcbn1cclxuZnVuY3Rpb24gc3RyaW5naWZ5U3R5bGUoc3R5bGVzKSB7XHJcbiAgICBsZXQgcmV0ID0gJyc7XHJcbiAgICBpZiAoIXN0eWxlcyB8fCBpc1N0cmluZyhzdHlsZXMpKSB7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3Qga2V5IGluIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gc3R5bGVzW2tleV07XHJcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZEtleSA9IGtleS5zdGFydHNXaXRoKGAtLWApID8ga2V5IDogaHlwaGVuYXRlKGtleSk7XHJcbiAgICAgICAgaWYgKGlzU3RyaW5nKHZhbHVlKSB8fFxyXG4gICAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc05vVW5pdE51bWVyaWNTdHlsZVByb3Aobm9ybWFsaXplZEtleSkpKSB7XHJcbiAgICAgICAgICAgIC8vIG9ubHkgcmVuZGVyIHZhbGlkIHZhbHVlc1xyXG4gICAgICAgICAgICByZXQgKz0gYCR7bm9ybWFsaXplZEtleX06JHt2YWx1ZX07YDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0O1xyXG59XHJcbmZ1bmN0aW9uIG5vcm1hbGl6ZUNsYXNzKHZhbHVlKSB7XHJcbiAgICBsZXQgcmVzID0gJyc7XHJcbiAgICBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgICAgcmVzID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNsYXNzKHZhbHVlW2ldKTtcclxuICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJlcyArPSBub3JtYWxpemVkICsgJyAnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNPYmplY3QodmFsdWUpKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZVtuYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgcmVzICs9IG5hbWUgKyAnICc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzLnRyaW0oKTtcclxufVxyXG5mdW5jdGlvbiBub3JtYWxpemVQcm9wcyhwcm9wcykge1xyXG4gICAgaWYgKCFwcm9wcylcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIGxldCB7IGNsYXNzOiBrbGFzcywgc3R5bGUgfSA9IHByb3BzO1xyXG4gICAgaWYgKGtsYXNzICYmICFpc1N0cmluZyhrbGFzcykpIHtcclxuICAgICAgICBwcm9wcy5jbGFzcyA9IG5vcm1hbGl6ZUNsYXNzKGtsYXNzKTtcclxuICAgIH1cclxuICAgIGlmIChzdHlsZSkge1xyXG4gICAgICAgIHByb3BzLnN0eWxlID0gbm9ybWFsaXplU3R5bGUoc3R5bGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByb3BzO1xyXG59XG5cbi8vIFRoZXNlIHRhZyBjb25maWdzIGFyZSBzaGFyZWQgYmV0d2VlbiBjb21waWxlci1kb20gYW5kIHJ1bnRpbWUtZG9tLCBzbyB0aGV5XHJcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudFxyXG5jb25zdCBIVE1MX1RBR1MgPSAnaHRtbCxib2R5LGJhc2UsaGVhZCxsaW5rLG1ldGEsc3R5bGUsdGl0bGUsYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGZvb3RlciwnICtcclxuICAgICdoZWFkZXIsaDEsaDIsaDMsaDQsaDUsaDYsbmF2LHNlY3Rpb24sZGl2LGRkLGRsLGR0LGZpZ2NhcHRpb24sJyArXHJcbiAgICAnZmlndXJlLHBpY3R1cmUsaHIsaW1nLGxpLG1haW4sb2wscCxwcmUsdWwsYSxiLGFiYnIsYmRpLGJkbyxicixjaXRlLGNvZGUsJyArXHJcbiAgICAnZGF0YSxkZm4sZW0saSxrYmQsbWFyayxxLHJwLHJ0LHJ1YnkscyxzYW1wLHNtYWxsLHNwYW4sc3Ryb25nLHN1YixzdXAsJyArXHJcbiAgICAndGltZSx1LHZhcix3YnIsYXJlYSxhdWRpbyxtYXAsdHJhY2ssdmlkZW8sZW1iZWQsb2JqZWN0LHBhcmFtLHNvdXJjZSwnICtcclxuICAgICdjYW52YXMsc2NyaXB0LG5vc2NyaXB0LGRlbCxpbnMsY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsJyArXHJcbiAgICAndGgsdHIsYnV0dG9uLGRhdGFsaXN0LGZpZWxkc2V0LGZvcm0saW5wdXQsbGFiZWwsbGVnZW5kLG1ldGVyLG9wdGdyb3VwLCcgK1xyXG4gICAgJ29wdGlvbixvdXRwdXQscHJvZ3Jlc3Msc2VsZWN0LHRleHRhcmVhLGRldGFpbHMsZGlhbG9nLG1lbnUsJyArXHJcbiAgICAnc3VtbWFyeSx0ZW1wbGF0ZSxibG9ja3F1b3RlLGlmcmFtZSx0Zm9vdCc7XHJcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL1NWRy9FbGVtZW50XHJcbmNvbnN0IFNWR19UQUdTID0gJ3N2ZyxhbmltYXRlLGFuaW1hdGVNb3Rpb24sYW5pbWF0ZVRyYW5zZm9ybSxjaXJjbGUsY2xpcFBhdGgsY29sb3ItcHJvZmlsZSwnICtcclxuICAgICdkZWZzLGRlc2MsZGlzY2FyZCxlbGxpcHNlLGZlQmxlbmQsZmVDb2xvck1hdHJpeCxmZUNvbXBvbmVudFRyYW5zZmVyLCcgK1xyXG4gICAgJ2ZlQ29tcG9zaXRlLGZlQ29udm9sdmVNYXRyaXgsZmVEaWZmdXNlTGlnaHRpbmcsZmVEaXNwbGFjZW1lbnRNYXAsJyArXHJcbiAgICAnZmVEaXN0YW5jZUxpZ2h0LGZlRHJvcFNoYWRvdyxmZUZsb29kLGZlRnVuY0EsZmVGdW5jQixmZUZ1bmNHLGZlRnVuY1IsJyArXHJcbiAgICAnZmVHYXVzc2lhbkJsdXIsZmVJbWFnZSxmZU1lcmdlLGZlTWVyZ2VOb2RlLGZlTW9ycGhvbG9neSxmZU9mZnNldCwnICtcclxuICAgICdmZVBvaW50TGlnaHQsZmVTcGVjdWxhckxpZ2h0aW5nLGZlU3BvdExpZ2h0LGZlVGlsZSxmZVR1cmJ1bGVuY2UsZmlsdGVyLCcgK1xyXG4gICAgJ2ZvcmVpZ25PYmplY3QsZyxoYXRjaCxoYXRjaHBhdGgsaW1hZ2UsbGluZSxsaW5lYXJHcmFkaWVudCxtYXJrZXIsbWFzaywnICtcclxuICAgICdtZXNoLG1lc2hncmFkaWVudCxtZXNocGF0Y2gsbWVzaHJvdyxtZXRhZGF0YSxtcGF0aCxwYXRoLHBhdHRlcm4sJyArXHJcbiAgICAncG9seWdvbixwb2x5bGluZSxyYWRpYWxHcmFkaWVudCxyZWN0LHNldCxzb2xpZGNvbG9yLHN0b3Asc3dpdGNoLHN5bWJvbCwnICtcclxuICAgICd0ZXh0LHRleHRQYXRoLHRpdGxlLHRzcGFuLHVua25vd24sdXNlLHZpZXcnO1xyXG5jb25zdCBWT0lEX1RBR1MgPSAnYXJlYSxiYXNlLGJyLGNvbCxlbWJlZCxocixpbWcsaW5wdXQsbGluayxtZXRhLHBhcmFtLHNvdXJjZSx0cmFjayx3YnInO1xyXG4vKipcclxuICogQ29tcGlsZXIgb25seS5cclxuICogRG8gTk9UIHVzZSBpbiBydW50aW1lIGNvZGUgcGF0aHMgdW5sZXNzIGJlaGluZCBgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpYCBmbGFnLlxyXG4gKi9cclxuY29uc3QgaXNIVE1MVGFnID0gLyojX19QVVJFX18qLyBtYWtlTWFwKEhUTUxfVEFHUyk7XHJcbi8qKlxyXG4gKiBDb21waWxlciBvbmx5LlxyXG4gKiBEbyBOT1QgdXNlIGluIHJ1bnRpbWUgY29kZSBwYXRocyB1bmxlc3MgYmVoaW5kIGAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylgIGZsYWcuXHJcbiAqL1xyXG5jb25zdCBpc1NWR1RhZyA9IC8qI19fUFVSRV9fKi8gbWFrZU1hcChTVkdfVEFHUyk7XHJcbi8qKlxyXG4gKiBDb21waWxlciBvbmx5LlxyXG4gKiBEbyBOT1QgdXNlIGluIHJ1bnRpbWUgY29kZSBwYXRocyB1bmxlc3MgYmVoaW5kIGAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJylgIGZsYWcuXHJcbiAqL1xyXG5jb25zdCBpc1ZvaWRUYWcgPSAvKiNfX1BVUkVfXyovIG1ha2VNYXAoVk9JRF9UQUdTKTtcblxuY29uc3QgZXNjYXBlUkUgPSAvW1wiJyY8Pl0vO1xyXG5mdW5jdGlvbiBlc2NhcGVIdG1sKHN0cmluZykge1xyXG4gICAgY29uc3Qgc3RyID0gJycgKyBzdHJpbmc7XHJcbiAgICBjb25zdCBtYXRjaCA9IGVzY2FwZVJFLmV4ZWMoc3RyKTtcclxuICAgIGlmICghbWF0Y2gpIHtcclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG4gICAgbGV0IGh0bWwgPSAnJztcclxuICAgIGxldCBlc2NhcGVkO1xyXG4gICAgbGV0IGluZGV4O1xyXG4gICAgbGV0IGxhc3RJbmRleCA9IDA7XHJcbiAgICBmb3IgKGluZGV4ID0gbWF0Y2guaW5kZXg7IGluZGV4IDwgc3RyLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHN3aXRjaCAoc3RyLmNoYXJDb2RlQXQoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgMzQ6IC8vIFwiXHJcbiAgICAgICAgICAgICAgICBlc2NhcGVkID0gJyZxdW90Oyc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAzODogLy8gJlxyXG4gICAgICAgICAgICAgICAgZXNjYXBlZCA9ICcmYW1wOyc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAzOTogLy8gJ1xyXG4gICAgICAgICAgICAgICAgZXNjYXBlZCA9ICcmIzM5Oyc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSA2MDogLy8gPFxyXG4gICAgICAgICAgICAgICAgZXNjYXBlZCA9ICcmbHQ7JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDYyOiAvLyA+XHJcbiAgICAgICAgICAgICAgICBlc2NhcGVkID0gJyZndDsnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhc3RJbmRleCAhPT0gaW5kZXgpIHtcclxuICAgICAgICAgICAgaHRtbCArPSBzdHIuc2xpY2UobGFzdEluZGV4LCBpbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhc3RJbmRleCA9IGluZGV4ICsgMTtcclxuICAgICAgICBodG1sICs9IGVzY2FwZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGFzdEluZGV4ICE9PSBpbmRleCA/IGh0bWwgKyBzdHIuc2xpY2UobGFzdEluZGV4LCBpbmRleCkgOiBodG1sO1xyXG59XHJcbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNTIvc3ludGF4Lmh0bWwjY29tbWVudHNcclxuY29uc3QgY29tbWVudFN0cmlwUkUgPSAvXi0/Pnw8IS0tfC0tPnwtLSE+fDwhLSQvZztcclxuZnVuY3Rpb24gZXNjYXBlSHRtbENvbW1lbnQoc3JjKSB7XHJcbiAgICByZXR1cm4gc3JjLnJlcGxhY2UoY29tbWVudFN0cmlwUkUsICcnKTtcclxufVxuXG5mdW5jdGlvbiBsb29zZUNvbXBhcmVBcnJheXMoYSwgYikge1xyXG4gICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aClcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgZXF1YWwgPSB0cnVlO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGVxdWFsICYmIGkgPCBhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgZXF1YWwgPSBsb29zZUVxdWFsKGFbaV0sIGJbaV0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVxdWFsO1xyXG59XHJcbmZ1bmN0aW9uIGxvb3NlRXF1YWwoYSwgYikge1xyXG4gICAgaWYgKGEgPT09IGIpXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICBsZXQgYVZhbGlkVHlwZSA9IGlzRGF0ZShhKTtcclxuICAgIGxldCBiVmFsaWRUeXBlID0gaXNEYXRlKGIpO1xyXG4gICAgaWYgKGFWYWxpZFR5cGUgfHwgYlZhbGlkVHlwZSkge1xyXG4gICAgICAgIHJldHVybiBhVmFsaWRUeXBlICYmIGJWYWxpZFR5cGUgPyBhLmdldFRpbWUoKSA9PT0gYi5nZXRUaW1lKCkgOiBmYWxzZTtcclxuICAgIH1cclxuICAgIGFWYWxpZFR5cGUgPSBpc1N5bWJvbChhKTtcclxuICAgIGJWYWxpZFR5cGUgPSBpc1N5bWJvbChiKTtcclxuICAgIGlmIChhVmFsaWRUeXBlIHx8IGJWYWxpZFR5cGUpIHtcclxuICAgICAgICByZXR1cm4gYSA9PT0gYjtcclxuICAgIH1cclxuICAgIGFWYWxpZFR5cGUgPSBpc0FycmF5KGEpO1xyXG4gICAgYlZhbGlkVHlwZSA9IGlzQXJyYXkoYik7XHJcbiAgICBpZiAoYVZhbGlkVHlwZSB8fCBiVmFsaWRUeXBlKSB7XHJcbiAgICAgICAgcmV0dXJuIGFWYWxpZFR5cGUgJiYgYlZhbGlkVHlwZSA/IGxvb3NlQ29tcGFyZUFycmF5cyhhLCBiKSA6IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgYVZhbGlkVHlwZSA9IGlzT2JqZWN0KGEpO1xyXG4gICAgYlZhbGlkVHlwZSA9IGlzT2JqZWN0KGIpO1xyXG4gICAgaWYgKGFWYWxpZFR5cGUgfHwgYlZhbGlkVHlwZSkge1xyXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZjogdGhpcyBpZiB3aWxsIHByb2JhYmx5IG5ldmVyIGJlIGNhbGxlZCAqL1xyXG4gICAgICAgIGlmICghYVZhbGlkVHlwZSB8fCAhYlZhbGlkVHlwZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFLZXlzQ291bnQgPSBPYmplY3Qua2V5cyhhKS5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgYktleXNDb3VudCA9IE9iamVjdC5rZXlzKGIpLmxlbmd0aDtcclxuICAgICAgICBpZiAoYUtleXNDb3VudCAhPT0gYktleXNDb3VudCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGEpIHtcclxuICAgICAgICAgICAgY29uc3QgYUhhc0tleSA9IGEuaGFzT3duUHJvcGVydHkoa2V5KTtcclxuICAgICAgICAgICAgY29uc3QgYkhhc0tleSA9IGIuaGFzT3duUHJvcGVydHkoa2V5KTtcclxuICAgICAgICAgICAgaWYgKChhSGFzS2V5ICYmICFiSGFzS2V5KSB8fFxyXG4gICAgICAgICAgICAgICAgKCFhSGFzS2V5ICYmIGJIYXNLZXkpIHx8XHJcbiAgICAgICAgICAgICAgICAhbG9vc2VFcXVhbChhW2tleV0sIGJba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBTdHJpbmcoYSkgPT09IFN0cmluZyhiKTtcclxufVxyXG5mdW5jdGlvbiBsb29zZUluZGV4T2YoYXJyLCB2YWwpIHtcclxuICAgIHJldHVybiBhcnIuZmluZEluZGV4KGl0ZW0gPT4gbG9vc2VFcXVhbChpdGVtLCB2YWwpKTtcclxufVxuXG4vKipcclxuICogRm9yIGNvbnZlcnRpbmcge3sgaW50ZXJwb2xhdGlvbiB9fSB2YWx1ZXMgdG8gZGlzcGxheWVkIHN0cmluZ3MuXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCB0b0Rpc3BsYXlTdHJpbmcgPSAodmFsKSA9PiB7XHJcbiAgICByZXR1cm4gaXNTdHJpbmcodmFsKVxyXG4gICAgICAgID8gdmFsXHJcbiAgICAgICAgOiB2YWwgPT0gbnVsbFxyXG4gICAgICAgICAgICA/ICcnXHJcbiAgICAgICAgICAgIDogaXNBcnJheSh2YWwpIHx8XHJcbiAgICAgICAgICAgICAgICAoaXNPYmplY3QodmFsKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICh2YWwudG9TdHJpbmcgPT09IG9iamVjdFRvU3RyaW5nIHx8ICFpc0Z1bmN0aW9uKHZhbC50b1N0cmluZykpKVxyXG4gICAgICAgICAgICAgICAgPyBKU09OLnN0cmluZ2lmeSh2YWwsIHJlcGxhY2VyLCAyKVxyXG4gICAgICAgICAgICAgICAgOiBTdHJpbmcodmFsKTtcclxufTtcclxuY29uc3QgcmVwbGFjZXIgPSAoX2tleSwgdmFsKSA9PiB7XHJcbiAgICAvLyBjYW4ndCB1c2UgaXNSZWYgaGVyZSBzaW5jZSBAdnVlL3NoYXJlZCBoYXMgbm8gZGVwc1xyXG4gICAgaWYgKHZhbCAmJiB2YWwuX192X2lzUmVmKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VyKF9rZXksIHZhbC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc01hcCh2YWwpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgW2BNYXAoJHt2YWwuc2l6ZX0pYF06IFsuLi52YWwuZW50cmllcygpXS5yZWR1Y2UoKGVudHJpZXMsIFtrZXksIHZhbF0pID0+IHtcclxuICAgICAgICAgICAgICAgIGVudHJpZXNbYCR7a2V5fSA9PmBdID0gdmFsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJpZXM7XHJcbiAgICAgICAgICAgIH0sIHt9KVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc1NldCh2YWwpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgW2BTZXQoJHt2YWwuc2l6ZX0pYF06IFsuLi52YWwudmFsdWVzKCldXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzT2JqZWN0KHZhbCkgJiYgIWlzQXJyYXkodmFsKSAmJiAhaXNQbGFpbk9iamVjdCh2YWwpKSB7XHJcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbDtcclxufTtcblxuY29uc3QgRU1QVFlfT0JKID0gKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpXHJcbiAgICA/IE9iamVjdC5mcmVlemUoe30pXHJcbiAgICA6IHt9O1xyXG5jb25zdCBFTVBUWV9BUlIgPSAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgPyBPYmplY3QuZnJlZXplKFtdKSA6IFtdO1xyXG5jb25zdCBOT09QID0gKCkgPT4geyB9O1xyXG4vKipcclxuICogQWx3YXlzIHJldHVybiBmYWxzZS5cclxuICovXHJcbmNvbnN0IE5PID0gKCkgPT4gZmFsc2U7XHJcbmNvbnN0IG9uUkUgPSAvXm9uW15hLXpdLztcclxuY29uc3QgaXNPbiA9IChrZXkpID0+IG9uUkUudGVzdChrZXkpO1xyXG5jb25zdCBpc01vZGVsTGlzdGVuZXIgPSAoa2V5KSA9PiBrZXkuc3RhcnRzV2l0aCgnb25VcGRhdGU6Jyk7XHJcbmNvbnN0IGV4dGVuZCA9IE9iamVjdC5hc3NpZ247XHJcbmNvbnN0IHJlbW92ZSA9IChhcnIsIGVsKSA9PiB7XHJcbiAgICBjb25zdCBpID0gYXJyLmluZGV4T2YoZWwpO1xyXG4gICAgaWYgKGkgPiAtMSkge1xyXG4gICAgICAgIGFyci5zcGxpY2UoaSwgMSk7XHJcbiAgICB9XHJcbn07XHJcbmNvbnN0IGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcclxuY29uc3QgaGFzT3duID0gKHZhbCwga2V5KSA9PiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KTtcclxuY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XHJcbmNvbnN0IGlzTWFwID0gKHZhbCkgPT4gdG9UeXBlU3RyaW5nKHZhbCkgPT09ICdbb2JqZWN0IE1hcF0nO1xyXG5jb25zdCBpc1NldCA9ICh2YWwpID0+IHRvVHlwZVN0cmluZyh2YWwpID09PSAnW29iamVjdCBTZXRdJztcclxuY29uc3QgaXNEYXRlID0gKHZhbCkgPT4gdG9UeXBlU3RyaW5nKHZhbCkgPT09ICdbb2JqZWN0IERhdGVdJztcclxuY29uc3QgaXNGdW5jdGlvbiA9ICh2YWwpID0+IHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbic7XHJcbmNvbnN0IGlzU3RyaW5nID0gKHZhbCkgPT4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZyc7XHJcbmNvbnN0IGlzU3ltYm9sID0gKHZhbCkgPT4gdHlwZW9mIHZhbCA9PT0gJ3N5bWJvbCc7XHJcbmNvbnN0IGlzT2JqZWN0ID0gKHZhbCkgPT4gdmFsICE9PSBudWxsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnO1xyXG5jb25zdCBpc1Byb21pc2UgPSAodmFsKSA9PiB7XHJcbiAgICByZXR1cm4gaXNPYmplY3QodmFsKSAmJiBpc0Z1bmN0aW9uKHZhbC50aGVuKSAmJiBpc0Z1bmN0aW9uKHZhbC5jYXRjaCk7XHJcbn07XHJcbmNvbnN0IG9iamVjdFRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcclxuY29uc3QgdG9UeXBlU3RyaW5nID0gKHZhbHVlKSA9PiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcclxuY29uc3QgdG9SYXdUeXBlID0gKHZhbHVlKSA9PiB7XHJcbiAgICAvLyBleHRyYWN0IFwiUmF3VHlwZVwiIGZyb20gc3RyaW5ncyBsaWtlIFwiW29iamVjdCBSYXdUeXBlXVwiXHJcbiAgICByZXR1cm4gdG9UeXBlU3RyaW5nKHZhbHVlKS5zbGljZSg4LCAtMSk7XHJcbn07XHJcbmNvbnN0IGlzUGxhaW5PYmplY3QgPSAodmFsKSA9PiB0b1R5cGVTdHJpbmcodmFsKSA9PT0gJ1tvYmplY3QgT2JqZWN0XSc7XHJcbmNvbnN0IGlzSW50ZWdlcktleSA9IChrZXkpID0+IGlzU3RyaW5nKGtleSkgJiZcclxuICAgIGtleSAhPT0gJ05hTicgJiZcclxuICAgIGtleVswXSAhPT0gJy0nICYmXHJcbiAgICAnJyArIHBhcnNlSW50KGtleSwgMTApID09PSBrZXk7XHJcbmNvbnN0IGlzUmVzZXJ2ZWRQcm9wID0gLyojX19QVVJFX18qLyBtYWtlTWFwKFxyXG4vLyB0aGUgbGVhZGluZyBjb21tYSBpcyBpbnRlbnRpb25hbCBzbyBlbXB0eSBzdHJpbmcgXCJcIiBpcyBhbHNvIGluY2x1ZGVkXHJcbicsa2V5LHJlZixyZWZfZm9yLHJlZl9rZXksJyArXHJcbiAgICAnb25Wbm9kZUJlZm9yZU1vdW50LG9uVm5vZGVNb3VudGVkLCcgK1xyXG4gICAgJ29uVm5vZGVCZWZvcmVVcGRhdGUsb25Wbm9kZVVwZGF0ZWQsJyArXHJcbiAgICAnb25Wbm9kZUJlZm9yZVVubW91bnQsb25Wbm9kZVVubW91bnRlZCcpO1xyXG5jb25zdCBpc0J1aWx0SW5EaXJlY3RpdmUgPSAvKiNfX1BVUkVfXyovIG1ha2VNYXAoJ2JpbmQsY2xvYWssZWxzZS1pZixlbHNlLGZvcixodG1sLGlmLG1vZGVsLG9uLG9uY2UscHJlLHNob3csc2xvdCx0ZXh0LG1lbW8nKTtcclxuY29uc3QgY2FjaGVTdHJpbmdGdW5jdGlvbiA9IChmbikgPT4ge1xyXG4gICAgY29uc3QgY2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xyXG4gICAgcmV0dXJuICgoc3RyKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaGl0ID0gY2FjaGVbc3RyXTtcclxuICAgICAgICByZXR1cm4gaGl0IHx8IChjYWNoZVtzdHJdID0gZm4oc3RyKSk7XHJcbiAgICB9KTtcclxufTtcclxuY29uc3QgY2FtZWxpemVSRSA9IC8tKFxcdykvZztcclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBjYW1lbGl6ZSA9IGNhY2hlU3RyaW5nRnVuY3Rpb24oKHN0cikgPT4ge1xyXG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKGNhbWVsaXplUkUsIChfLCBjKSA9PiAoYyA/IGMudG9VcHBlckNhc2UoKSA6ICcnKSk7XHJcbn0pO1xyXG5jb25zdCBoeXBoZW5hdGVSRSA9IC9cXEIoW0EtWl0pL2c7XHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgaHlwaGVuYXRlID0gY2FjaGVTdHJpbmdGdW5jdGlvbigoc3RyKSA9PiBzdHIucmVwbGFjZShoeXBoZW5hdGVSRSwgJy0kMScpLnRvTG93ZXJDYXNlKCkpO1xyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IGNhcGl0YWxpemUgPSBjYWNoZVN0cmluZ0Z1bmN0aW9uKChzdHIpID0+IHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKSk7XHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgdG9IYW5kbGVyS2V5ID0gY2FjaGVTdHJpbmdGdW5jdGlvbigoc3RyKSA9PiBzdHIgPyBgb24ke2NhcGl0YWxpemUoc3RyKX1gIDogYGApO1xyXG4vLyBjb21wYXJlIHdoZXRoZXIgYSB2YWx1ZSBoYXMgY2hhbmdlZCwgYWNjb3VudGluZyBmb3IgTmFOLlxyXG5jb25zdCBoYXNDaGFuZ2VkID0gKHZhbHVlLCBvbGRWYWx1ZSkgPT4gIU9iamVjdC5pcyh2YWx1ZSwgb2xkVmFsdWUpO1xyXG5jb25zdCBpbnZva2VBcnJheUZucyA9IChmbnMsIGFyZykgPT4ge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBmbnNbaV0oYXJnKTtcclxuICAgIH1cclxufTtcclxuY29uc3QgZGVmID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIHZhbHVlXHJcbiAgICB9KTtcclxufTtcclxuY29uc3QgdG9OdW1iZXIgPSAodmFsKSA9PiB7XHJcbiAgICBjb25zdCBuID0gcGFyc2VGbG9hdCh2YWwpO1xyXG4gICAgcmV0dXJuIGlzTmFOKG4pID8gdmFsIDogbjtcclxufTtcclxubGV0IF9nbG9iYWxUaGlzO1xyXG5jb25zdCBnZXRHbG9iYWxUaGlzID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIChfZ2xvYmFsVGhpcyB8fFxyXG4gICAgICAgIChfZ2xvYmFsVGhpcyA9XHJcbiAgICAgICAgICAgIHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJ1xyXG4gICAgICAgICAgICAgICAgPyBnbG9iYWxUaGlzXHJcbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gc2VsZlxyXG4gICAgICAgICAgICAgICAgICAgIDogdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB3aW5kb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBnbG9iYWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pKTtcclxufTtcclxuY29uc3QgaWRlbnRSRSA9IC9eW18kYS16QS1aXFx4QTAtXFx1RkZGRl1bXyRhLXpBLVowLTlcXHhBMC1cXHVGRkZGXSokLztcclxuZnVuY3Rpb24gZ2VuUHJvcHNBY2Nlc3NFeHAobmFtZSkge1xyXG4gICAgcmV0dXJuIGlkZW50UkUudGVzdChuYW1lKVxyXG4gICAgICAgID8gYF9fcHJvcHMuJHtuYW1lfWBcclxuICAgICAgICA6IGBfX3Byb3BzWyR7SlNPTi5zdHJpbmdpZnkobmFtZSl9XWA7XHJcbn1cblxuZXhwb3J0IHsgRU1QVFlfQVJSLCBFTVBUWV9PQkosIE5PLCBOT09QLCBQYXRjaEZsYWdOYW1lcywgY2FtZWxpemUsIGNhcGl0YWxpemUsIGRlZiwgZXNjYXBlSHRtbCwgZXNjYXBlSHRtbENvbW1lbnQsIGV4dGVuZCwgZ2VuUHJvcHNBY2Nlc3NFeHAsIGdlbmVyYXRlQ29kZUZyYW1lLCBnZXRHbG9iYWxUaGlzLCBoYXNDaGFuZ2VkLCBoYXNPd24sIGh5cGhlbmF0ZSwgaW5jbHVkZUJvb2xlYW5BdHRyLCBpbnZva2VBcnJheUZucywgaXNBcnJheSwgaXNCb29sZWFuQXR0ciwgaXNCdWlsdEluRGlyZWN0aXZlLCBpc0RhdGUsIGlzRnVuY3Rpb24sIGlzR2xvYmFsbHlXaGl0ZWxpc3RlZCwgaXNIVE1MVGFnLCBpc0ludGVnZXJLZXksIGlzS25vd25IdG1sQXR0ciwgaXNLbm93blN2Z0F0dHIsIGlzTWFwLCBpc01vZGVsTGlzdGVuZXIsIGlzTm9Vbml0TnVtZXJpY1N0eWxlUHJvcCwgaXNPYmplY3QsIGlzT24sIGlzUGxhaW5PYmplY3QsIGlzUHJvbWlzZSwgaXNSZXNlcnZlZFByb3AsIGlzU1NSU2FmZUF0dHJOYW1lLCBpc1NWR1RhZywgaXNTZXQsIGlzU3BlY2lhbEJvb2xlYW5BdHRyLCBpc1N0cmluZywgaXNTeW1ib2wsIGlzVm9pZFRhZywgbG9vc2VFcXVhbCwgbG9vc2VJbmRleE9mLCBtYWtlTWFwLCBub3JtYWxpemVDbGFzcywgbm9ybWFsaXplUHJvcHMsIG5vcm1hbGl6ZVN0eWxlLCBvYmplY3RUb1N0cmluZywgcGFyc2VTdHJpbmdTdHlsZSwgcHJvcHNUb0F0dHJNYXAsIHJlbW92ZSwgc2xvdEZsYWdzVGV4dCwgc3RyaW5naWZ5U3R5bGUsIHRvRGlzcGxheVN0cmluZywgdG9IYW5kbGVyS2V5LCB0b051bWJlciwgdG9SYXdUeXBlLCB0b1R5cGVTdHJpbmcgfTtcbiIsImltcG9ydCB7IHRvUmVmcywgZ2V0Q3VycmVudEluc3RhbmNlLCByZWYsIGNvbXB1dGVkLCB3YXRjaCwgbmV4dFRpY2ssIG9uTW91bnRlZCwgb3BlbkJsb2NrLCBjcmVhdGVFbGVtZW50QmxvY2ssIG5vcm1hbGl6ZUNsYXNzLCBjcmVhdGVDb21tZW50Vk5vZGUsIG1lcmdlUHJvcHMsIHdpdGhNb2RpZmllcnMsIEZyYWdtZW50LCByZW5kZXJMaXN0LCByZW5kZXJTbG90LCBjcmVhdGVUZXh0Vk5vZGUsIHRvRGlzcGxheVN0cmluZywgY3JlYXRlRWxlbWVudFZOb2RlIH0gZnJvbSAndnVlJztcblxuZnVuY3Rpb24gaXNOdWxsaXNoICh2YWwpIHtcbiAgcmV0dXJuIFtudWxsLCB1bmRlZmluZWRdLmluZGV4T2YodmFsKSAhPT0gLTFcbn1cblxuZnVuY3Rpb24gdXNlRGF0YSAocHJvcHMsIGNvbnRleHQsIGRlcClcbntcbiAgY29uc3QgeyBvYmplY3QsIHZhbHVlUHJvcCwgbW9kZSB9ID0gdG9SZWZzKHByb3BzKTtcblxuICBjb25zdCAkdGhpcyA9IGdldEN1cnJlbnRJbnN0YW5jZSgpLnByb3h5O1xuXG4gIC8vID09PT09PT09PT09PSBERVBFTkRFTkNJRVMgPT09PT09PT09PT09XG5cbiAgY29uc3QgaXYgPSBkZXAuaXY7XG5cbiAgLy8gPT09PT09PT09PT09PT09IE1FVEhPRFMgPT09PT09PT09PT09PT1cblxuICBjb25zdCB1cGRhdGUgPSAodmFsKSA9PiB7XG4gICAgLy8gU2V0dGluZyBvYmplY3QocykgYXMgaW50ZXJuYWwgdmFsdWVcbiAgICBpdi52YWx1ZSA9IG1ha2VJbnRlcm5hbCh2YWwpO1xuXG4gICAgLy8gU2V0dGluZyBvYmplY3Qocykgb3IgcGxhaW4gdmFsdWUgYXMgZXh0ZXJuYWwgXG4gICAgLy8gdmFsdWUgYmFzZWQgb24gYG9wdGlvbmAgc2V0dGluZ1xuICAgIGNvbnN0IGV4dGVybmFsVmFsID0gbWFrZUV4dGVybmFsKHZhbCk7XG5cbiAgICBjb250ZXh0LmVtaXQoJ2NoYW5nZScsIGV4dGVybmFsVmFsLCAkdGhpcyk7XG4gICAgY29udGV4dC5lbWl0KCdpbnB1dCcsIGV4dGVybmFsVmFsKTtcbiAgICBjb250ZXh0LmVtaXQoJ3VwZGF0ZTptb2RlbFZhbHVlJywgZXh0ZXJuYWxWYWwpO1xuICB9OyBcblxuICAvLyBubyBleHBvcnRcbiAgY29uc3QgbWFrZUV4dGVybmFsID0gKHZhbCkgPT4ge1xuICAgIC8vIElmIGV4dGVybmFsIHZhbHVlIHNob3VsZCBiZSBvYmplY3RcbiAgICAvLyBubyB0cmFuc2Zvcm1hdGlvbiBpcyByZXF1aXJlZFxuICAgIGlmIChvYmplY3QudmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWxcbiAgICB9XG5cbiAgICAvLyBObyBuZWVkIHRvIHRyYW5zZm9ybSBpZiBlbXB0eSB2YWx1ZVxuICAgIGlmIChpc051bGxpc2godmFsKSkge1xuICAgICAgcmV0dXJuIHZhbFxuICAgIH1cblxuICAgIC8vIElmIGV4dGVybmFsIHNob3VsZCBiZSBwbGFpbiB0cmFuc2Zvcm1cbiAgICAvLyB2YWx1ZSBvYmplY3QgdG8gcGxhaW4gdmFsdWVzXG4gICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHZhbCkgPyB2YWxbdmFsdWVQcm9wLnZhbHVlXSA6IHZhbC5tYXAodiA9PiB2W3ZhbHVlUHJvcC52YWx1ZV0pXG4gIH07XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IG1ha2VJbnRlcm5hbCA9ICh2YWwpID0+IHtcbiAgICBpZiAoaXNOdWxsaXNoKHZhbCkpIHtcbiAgICAgIHJldHVybiBtb2RlLnZhbHVlID09PSAnc2luZ2xlJyA/IHt9IDogW11cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICB1cGRhdGUsXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlVmFsdWUgKHByb3BzLCBjb250ZXh0KVxue1xuICBjb25zdCB7IHZhbHVlLCBtb2RlbFZhbHVlLCBtb2RlLCB2YWx1ZVByb3AgfSA9IHRvUmVmcyhwcm9wcyk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PSBEQVRBID09PT09PT09PT09PT09PT1cblxuICAvLyBpbnRlcm5hbFZhbHVlXG4gIGNvbnN0IGl2ID0gcmVmKG1vZGUudmFsdWUgIT09ICdzaW5nbGUnID8gW10gOiB7fSk7XG5cbiAgLy8gPT09PT09PT09PT09PT0gQ09NUFVURUQgPT09PT09PT09PT09PT1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAvLyBleHRlcm5hbFZhbHVlXG4gIGNvbnN0IGV2ID0gbW9kZWxWYWx1ZSAmJiBtb2RlbFZhbHVlLnZhbHVlICE9PSB1bmRlZmluZWQgPyBtb2RlbFZhbHVlIDogdmFsdWU7XG5cbiAgY29uc3QgcGxhaW5WYWx1ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gbW9kZS52YWx1ZSA9PT0gJ3NpbmdsZScgPyBpdi52YWx1ZVt2YWx1ZVByb3AudmFsdWVdIDogaXYudmFsdWUubWFwKHY9PnZbdmFsdWVQcm9wLnZhbHVlXSlcbiAgfSk7XG5cbiAgY29uc3QgdGV4dFZhbHVlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBtb2RlLnZhbHVlICE9PSAnc2luZ2xlJyA/IGl2LnZhbHVlLm1hcCh2PT52W3ZhbHVlUHJvcC52YWx1ZV0pLmpvaW4oJywnKSA6IGl2LnZhbHVlW3ZhbHVlUHJvcC52YWx1ZV1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpdixcbiAgICBpbnRlcm5hbFZhbHVlOiBpdixcbiAgICBldixcbiAgICBleHRlcm5hbFZhbHVlOiBldixcbiAgICB0ZXh0VmFsdWUsXG4gICAgcGxhaW5WYWx1ZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VTZWFyY2ggKHByb3BzLCBjb250ZXh0LCBkZXApXG57ICBjb25zdCB7IHJlZ2V4IH0gPSB0b1JlZnMocHJvcHMpO1xuXG4gIGNvbnN0ICR0aGlzID0gZ2V0Q3VycmVudEluc3RhbmNlKCkucHJveHk7XG5cbiAgLy8gPT09PT09PT09PT09IERFUEVOREVOQ0lFUyA9PT09PT09PT09PT1cblxuICBjb25zdCBpc09wZW4gPSBkZXAuaXNPcGVuO1xuICBjb25zdCBvcGVuID0gZGVwLm9wZW47XG5cbiAgLy8gPT09PT09PT09PT09PT09PSBEQVRBID09PT09PT09PT09PT09PT1cblxuICBjb25zdCBzZWFyY2ggPSByZWYobnVsbCk7XG5cbiAgY29uc3QgaW5wdXQgPSByZWYobnVsbCk7XG5cbiAgLy8gPT09PT09PT09PT09PT09IE1FVEhPRFMgPT09PT09PT09PT09PT1cblxuICBjb25zdCBjbGVhclNlYXJjaCA9ICgpID0+IHtcbiAgICBzZWFyY2gudmFsdWUgPSAnJztcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2hJbnB1dCA9IChlKSA9PiB7XG4gICAgc2VhcmNoLnZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlS2V5cHJlc3MgPSAoZSkgPT4ge1xuICAgIGlmIChyZWdleCAmJiByZWdleC52YWx1ZSkge1xuICAgICAgbGV0IHJlZ2V4cCA9IHJlZ2V4LnZhbHVlO1xuXG4gICAgICBpZiAodHlwZW9mIHJlZ2V4cCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVnZXhwID0gbmV3IFJlZ0V4cChyZWdleHApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWUua2V5Lm1hdGNoKHJlZ2V4cCkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVQYXN0ZSA9IChlKSA9PiB7XG4gICAgaWYgKHJlZ2V4ICYmIHJlZ2V4LnZhbHVlKSB7XG4gICAgICBsZXQgY2xpcGJvYXJkRGF0YSA9IGUuY2xpcGJvYXJkRGF0YSB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyB3aW5kb3cuY2xpcGJvYXJkRGF0YTtcbiAgICAgIGxldCBwYXN0ZWREYXRhID0gY2xpcGJvYXJkRGF0YS5nZXREYXRhKCdUZXh0Jyk7XG5cbiAgICAgIGxldCByZWdleHAgPSByZWdleC52YWx1ZTtcblxuICAgICAgaWYgKHR5cGVvZiByZWdleHAgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlZ2V4cCA9IG5ldyBSZWdFeHAocmVnZXhwKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYgKCFwYXN0ZWREYXRhLnNwbGl0KCcnKS5ldmVyeShjID0+ICEhYy5tYXRjaChyZWdleHApKSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29udGV4dC5lbWl0KCdwYXN0ZScsIGUsICR0aGlzKTtcbiAgfTtcblxuICAvLyA9PT09PT09PT09PT09PSBXQVRDSEVSUyA9PT09PT09PT09PT09PVxuXG4gIHdhdGNoKHNlYXJjaCwgKHZhbCkgPT4ge1xuICAgIGlmICghaXNPcGVuLnZhbHVlICYmIHZhbCkge1xuICAgICAgb3BlbigpO1xuICAgIH1cblxuICAgIGNvbnRleHQuZW1pdCgnc2VhcmNoLWNoYW5nZScsIHZhbCwgJHRoaXMpO1xuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHNlYXJjaCxcbiAgICBpbnB1dCxcbiAgICBjbGVhclNlYXJjaCxcbiAgICBoYW5kbGVTZWFyY2hJbnB1dCxcbiAgICBoYW5kbGVLZXlwcmVzcyxcbiAgICBoYW5kbGVQYXN0ZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VQb2ludGVyJDEgKHByb3BzLCBjb250ZXh0LCBkZXApXG57XG4gIGNvbnN0IHsgZ3JvdXBTZWxlY3QsIG1vZGUsIGdyb3VwcywgZGlzYWJsZWRQcm9wIH0gPSB0b1JlZnMocHJvcHMpO1xuXG4gIC8vID09PT09PT09PT09PT09PT0gREFUQSA9PT09PT09PT09PT09PT09XG5cbiAgY29uc3QgcG9pbnRlciA9IHJlZihudWxsKTtcblxuICAvLyA9PT09PT09PT09PT09PT0gTUVUSE9EUyA9PT09PT09PT09PT09PVxuXG4gIGNvbnN0IHNldFBvaW50ZXIgPSAob3B0aW9uKSA9PiB7XG4gICAgaWYgKG9wdGlvbiA9PT0gdW5kZWZpbmVkIHx8IChvcHRpb24gIT09IG51bGwgJiYgb3B0aW9uW2Rpc2FibGVkUHJvcC52YWx1ZV0pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZ3JvdXBzLnZhbHVlICYmIG9wdGlvbiAmJiBvcHRpb24uZ3JvdXAgJiYgKG1vZGUudmFsdWUgPT09ICdzaW5nbGUnIHx8ICFncm91cFNlbGVjdC52YWx1ZSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHBvaW50ZXIudmFsdWUgPSBvcHRpb247XG4gIH07XG5cbiAgY29uc3QgY2xlYXJQb2ludGVyID0gKCkgPT4ge1xuICAgIHNldFBvaW50ZXIobnVsbCk7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBwb2ludGVyLFxuICAgIHNldFBvaW50ZXIsXG4gICAgY2xlYXJQb2ludGVyLFxuICB9XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZSAoc3RyLCBzdHJpY3QgPSB0cnVlKSB7XG4gIHJldHVybiBzdHJpY3RcbiAgICA/IFN0cmluZyhzdHIpLnRvTG93ZXJDYXNlKCkudHJpbSgpXG4gICAgOiBTdHJpbmcoc3RyKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1xccHtEaWFjcml0aWN9L2d1LCAnJykudG9Mb3dlckNhc2UoKS50cmltKClcbn1cblxuZnVuY3Rpb24gaXNPYmplY3QgKHZhcmlhYmxlKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFyaWFibGUpID09PSAnW29iamVjdCBPYmplY3RdJ1xufVxuXG5mdW5jdGlvbiBhcnJheXNFcXVhbCAoYXJyYXkxLCBhcnJheTIpIHtcbiAgY29uc3QgYXJyYXkyU29ydGVkID0gYXJyYXkyLnNsaWNlKCkuc29ydCgpO1xuXG4gIHJldHVybiBhcnJheTEubGVuZ3RoID09PSBhcnJheTIubGVuZ3RoICYmIGFycmF5MS5zbGljZSgpLnNvcnQoKS5ldmVyeShmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gYXJyYXkyU29ydGVkW2luZGV4XTtcbiAgfSlcbn1cblxuZnVuY3Rpb24gdXNlT3B0aW9ucyAocHJvcHMsIGNvbnRleHQsIGRlcClcbntcbiAgY29uc3QgeyBcbiAgICBvcHRpb25zLCBtb2RlLCB0cmFja0J5OiB0cmFja0J5XywgbGltaXQsIGhpZGVTZWxlY3RlZCwgY3JlYXRlVGFnLCBjcmVhdGVPcHRpb246IGNyZWF0ZU9wdGlvbl8sIGxhYmVsLFxuICAgIGFwcGVuZE5ld1RhZywgYXBwZW5kTmV3T3B0aW9uOiBhcHBlbmROZXdPcHRpb25fLCBtdWx0aXBsZUxhYmVsLCBvYmplY3QsIGxvYWRpbmcsIGRlbGF5LCByZXNvbHZlT25Mb2FkLFxuICAgIG1pbkNoYXJzLCBmaWx0ZXJSZXN1bHRzLCBjbGVhck9uU2VhcmNoLCBjbGVhck9uU2VsZWN0LCB2YWx1ZVByb3AsXG4gICAgY2FuRGVzZWxlY3QsIG1heCwgc3RyaWN0LCBjbG9zZU9uU2VsZWN0LCBncm91cHM6IGdyb3VwcGVkLCByZXZlcnNlLCBpbmZpbml0ZSxcbiAgICBncm91cE9wdGlvbnMsIGdyb3VwSGlkZUVtcHR5LCBncm91cFNlbGVjdCwgb25DcmVhdGUsIGRpc2FibGVkUHJvcCwgc2VhcmNoU3RhcnQsXG4gIH0gPSB0b1JlZnMocHJvcHMpO1xuXG4gIGNvbnN0ICR0aGlzID0gZ2V0Q3VycmVudEluc3RhbmNlKCkucHJveHk7XG5cbiAgLy8gPT09PT09PT09PT09IERFUEVOREVOQ0lFUyA9PT09PT09PT09PT1cblxuICBjb25zdCBpdiA9IGRlcC5pdjtcbiAgY29uc3QgZXYgPSBkZXAuZXY7XG4gIGNvbnN0IHNlYXJjaCA9IGRlcC5zZWFyY2g7XG4gIGNvbnN0IGNsZWFyU2VhcmNoID0gZGVwLmNsZWFyU2VhcmNoO1xuICBjb25zdCB1cGRhdGUgPSBkZXAudXBkYXRlO1xuICBjb25zdCBwb2ludGVyID0gZGVwLnBvaW50ZXI7XG4gIGNvbnN0IGNsZWFyUG9pbnRlciA9IGRlcC5jbGVhclBvaW50ZXI7XG4gIGNvbnN0IGZvY3VzID0gZGVwLmZvY3VzO1xuICBjb25zdCBkZWFjdGl2YXRlID0gZGVwLmRlYWN0aXZhdGU7XG4gIGNvbnN0IGNsb3NlID0gZGVwLmNsb3NlO1xuXG4gIC8vID09PT09PT09PT09PT09PT0gREFUQSA9PT09PT09PT09PT09PT09XG5cbiAgLy8gbm8gZXhwb3J0XG4gIC8vIGFwcGVuZGVkT3B0aW9uc1xuICBjb25zdCBhcCA9IHJlZihbXSk7XG5cbiAgLy8gbm8gZXhwb3J0XG4gIC8vIHJlc29sdmVkT3B0aW9uc1xuICBjb25zdCBybyA9IHJlZihbXSk7XG5cbiAgY29uc3QgcmVzb2x2aW5nID0gcmVmKGZhbHNlKTtcblxuICAvLyBubyBleHBvcnRcbiAgY29uc3Qgc2VhcmNoV2F0Y2hlciA9IHJlZihudWxsKTtcblxuICBjb25zdCBvZmZzZXQgPSByZWYoaW5maW5pdGUudmFsdWUgJiYgbGltaXQudmFsdWUgPT09IC0xID8gMTAgOiBsaW1pdC52YWx1ZSk7XG5cbiAgLy8gPT09PT09PT09PT09PT0gQ09NUFVURUQgPT09PT09PT09PT09PT1cblxuICAvLyBubyBleHBvcnRcbiAgY29uc3QgY3JlYXRlT3B0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBjcmVhdGVUYWcudmFsdWUgfHwgY3JlYXRlT3B0aW9uXy52YWx1ZSB8fCBmYWxzZVxuICB9KTtcblxuICAvLyBubyBleHBvcnRcbiAgY29uc3QgYXBwZW5kTmV3T3B0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmIChhcHBlbmROZXdUYWcudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGFwcGVuZE5ld1RhZy52YWx1ZVxuICAgIH0gZWxzZSBpZiAoYXBwZW5kTmV3T3B0aW9uXy52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gYXBwZW5kTmV3T3B0aW9uXy52YWx1ZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0pO1xuXG4gIC8vIG5vIGV4cG9ydFxuICAvLyBleHRlbmRlZE9wdGlvbnNcbiAgY29uc3QgZW8gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKGdyb3VwcGVkLnZhbHVlKSB7XG4gICAgICBsZXQgZ3JvdXBzID0gcm8udmFsdWUgfHwgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gW107XG5cbiAgICAgIGxldCBlbyA9IFtdO1xuXG4gICAgICBncm91cHMuZm9yRWFjaCgoZ3JvdXApID0+IHtcbiAgICAgICAgb3B0aW9uc1RvQXJyYXkoZ3JvdXBbZ3JvdXBPcHRpb25zLnZhbHVlXSkuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgZW8ucHVzaChPYmplY3QuYXNzaWduKHt9LCBvcHRpb24sIGdyb3VwW2Rpc2FibGVkUHJvcC52YWx1ZV0gPyB7IFtkaXNhYmxlZFByb3AudmFsdWVdOiB0cnVlIH0gOiB7fSkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZW9cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGVvID0gb3B0aW9uc1RvQXJyYXkocm8udmFsdWUgfHwgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gW10pO1xuXG4gICAgICBpZiAoYXAudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIGVvID0gZW8uY29uY2F0KGFwLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVvXG4gICAgfVxuICB9KTtcblxuICBjb25zdCBmZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIWdyb3VwcGVkLnZhbHVlKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyR3JvdXBzKChyby52YWx1ZSB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXSkubWFwKChncm91cCkgPT4ge1xuICAgICAgY29uc3QgYXJyYXlPcHRpb25zID0gb3B0aW9uc1RvQXJyYXkoZ3JvdXBbZ3JvdXBPcHRpb25zLnZhbHVlXSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmdyb3VwLFxuICAgICAgICBncm91cDogdHJ1ZSxcbiAgICAgICAgW2dyb3VwT3B0aW9ucy52YWx1ZV06IGZpbHRlck9wdGlvbnMoYXJyYXlPcHRpb25zLCBmYWxzZSkubWFwKG8gPT4gT2JqZWN0LmFzc2lnbih7fSwgbywgZ3JvdXBbZGlzYWJsZWRQcm9wLnZhbHVlXSA/IHsgW2Rpc2FibGVkUHJvcC52YWx1ZV06IHRydWUgfSA6IHt9KSksXG4gICAgICAgIF9fVklTSUJMRV9fOiBmaWx0ZXJPcHRpb25zKGFycmF5T3B0aW9ucykubWFwKG8gPT4gT2JqZWN0LmFzc2lnbih7fSwgbywgZ3JvdXBbZGlzYWJsZWRQcm9wLnZhbHVlXSA/IHsgW2Rpc2FibGVkUHJvcC52YWx1ZV06IHRydWUgfSA6IHt9KSksXG4gICAgICB9XG4gICAgICAvLyBEaWZmZXJlbmNlIGJldHdlZW4gX19WSVNJQkxFX18gYW5kIHtncm91cE9wdGlvbnN9OiB2aXNpYmxlIGRvZXMgbm90IGNvbnRhaW4gc2VsZWN0ZWQgb3B0aW9ucyB3aGVuIGhpZGVTZWxlY3RlZD10cnVlXG4gICAgfSkpXG4gIH0pO1xuXG4gIC8vIHByZUZpbHRlcmVkT3B0aW9uc1xuICBjb25zdCBwZm8gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IG9wdGlvbnMgPSBlby52YWx1ZTtcblxuICAgIGlmIChyZXZlcnNlLnZhbHVlKSB7XG4gICAgICBvcHRpb25zID0gb3B0aW9ucy5yZXZlcnNlKCk7XG4gICAgfVxuXG4gICAgaWYgKGNyZWF0ZWRPcHRpb24udmFsdWUubGVuZ3RoKSB7XG4gICAgICBvcHRpb25zID0gY3JlYXRlZE9wdGlvbi52YWx1ZS5jb25jYXQob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlck9wdGlvbnMob3B0aW9ucylcbiAgfSk7XG5cbiAgLy8gZmlsdGVyZWRPcHRpb25zXG4gIGNvbnN0IGZvID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGxldCBvcHRpb25zID0gcGZvLnZhbHVlO1xuXG4gICAgaWYgKG9mZnNldC52YWx1ZSA+IDApIHtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zLnNsaWNlKDAsIG9mZnNldC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9wdGlvbnNcbiAgfSk7XG5cbiAgY29uc3QgaGFzU2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoIChtb2RlLnZhbHVlKSB7XG4gICAgICBjYXNlICdzaW5nbGUnOlxuICAgICAgICByZXR1cm4gIWlzTnVsbGlzaChpdi52YWx1ZVt2YWx1ZVByb3AudmFsdWVdKVxuXG4gICAgICBjYXNlICdtdWx0aXBsZSc6XG4gICAgICBjYXNlICd0YWdzJzpcbiAgICAgICAgcmV0dXJuICFpc051bGxpc2goaXYudmFsdWUpICYmIGl2LnZhbHVlLmxlbmd0aCA+IDBcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IG11bHRpcGxlTGFiZWxUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBtdWx0aXBsZUxhYmVsICE9PSB1bmRlZmluZWQgJiYgbXVsdGlwbGVMYWJlbC52YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICA/IG11bHRpcGxlTGFiZWwudmFsdWUoaXYudmFsdWUsICR0aGlzKVxuICAgICAgOiAoaXYudmFsdWUgJiYgaXYudmFsdWUubGVuZ3RoID4gMSA/IGAke2l2LnZhbHVlLmxlbmd0aH0gb3B0aW9ucyBzZWxlY3RlZGAgOiBgMSBvcHRpb24gc2VsZWN0ZWRgKVxuICB9KTtcblxuICBjb25zdCBub09wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICFlby52YWx1ZS5sZW5ndGggJiYgIXJlc29sdmluZy52YWx1ZSAmJiAhY3JlYXRlZE9wdGlvbi52YWx1ZS5sZW5ndGhcbiAgfSk7XG5cblxuICBjb25zdCBub1Jlc3VsdHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIGVvLnZhbHVlLmxlbmd0aCA+IDAgJiYgZm8udmFsdWUubGVuZ3RoID09IDAgJiYgKChzZWFyY2gudmFsdWUgJiYgZ3JvdXBwZWQudmFsdWUpIHx8ICFncm91cHBlZC52YWx1ZSlcbiAgfSk7XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IGNyZWF0ZWRPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKGNyZWF0ZU9wdGlvbi52YWx1ZSA9PT0gZmFsc2UgfHwgIXNlYXJjaC52YWx1ZSkge1xuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgcmV0dXJuIGdldE9wdGlvbkJ5VHJhY2tCeShzZWFyY2gudmFsdWUpICE9PSAtMSA/IFtdIDogW3tcbiAgICAgIFt2YWx1ZVByb3AudmFsdWVdOiBzZWFyY2gudmFsdWUsXG4gICAgICBbbGFiZWwudmFsdWVdOiBzZWFyY2gudmFsdWUsXG4gICAgICBbdHJhY2tCeS52YWx1ZV06IHNlYXJjaC52YWx1ZSxcbiAgICAgIF9fQ1JFQVRFX186IHRydWUsXG4gICAgfV1cbiAgfSk7XG5cbiAgY29uc3QgdHJhY2tCeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdHJhY2tCeV8udmFsdWUgfHwgbGFiZWwudmFsdWVcbiAgfSk7XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IG51bGxWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKG1vZGUudmFsdWUpIHtcbiAgICAgIGNhc2UgJ3NpbmdsZSc6XG4gICAgICAgIHJldHVybiBudWxsXG5cbiAgICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICAgIGNhc2UgJ3RhZ3MnOlxuICAgICAgICByZXR1cm4gW11cbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGJ1c3kgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIGxvYWRpbmcudmFsdWUgfHwgcmVzb2x2aW5nLnZhbHVlXG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PSBNRVRIT0RTID09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YXJyYXl8b2JqZWN0fHN0cmluZ3xudW1iZXJ9IG9wdGlvbiBcbiAgICovXG4gIGNvbnN0IHNlbGVjdCA9IChvcHRpb24pID0+IHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbiAhPT0gJ29iamVjdCcpIHtcbiAgICAgIG9wdGlvbiA9IGdldE9wdGlvbihvcHRpb24pO1xuICAgIH1cblxuICAgIHN3aXRjaCAobW9kZS52YWx1ZSkge1xuICAgICAgY2FzZSAnc2luZ2xlJzpcbiAgICAgICAgdXBkYXRlKG9wdGlvbik7XG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICAgIGNhc2UgJ3RhZ3MnOlxuICAgICAgICB1cGRhdGUoKGl2LnZhbHVlKS5jb25jYXQob3B0aW9uKSk7XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY29udGV4dC5lbWl0KCdzZWxlY3QnLCBmaW5hbFZhbHVlKG9wdGlvbiksIG9wdGlvbiwgJHRoaXMpO1xuICB9O1xuXG4gIGNvbnN0IGRlc2VsZWN0ID0gKG9wdGlvbikgPT4ge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uICE9PSAnb2JqZWN0Jykge1xuICAgICAgb3B0aW9uID0gZ2V0T3B0aW9uKG9wdGlvbik7XG4gICAgfVxuXG4gICAgc3dpdGNoIChtb2RlLnZhbHVlKSB7XG4gICAgICBjYXNlICdzaW5nbGUnOlxuICAgICAgICBjbGVhcigpO1xuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICd0YWdzJzpcbiAgICAgIGNhc2UgJ211bHRpcGxlJzpcbiAgICAgICAgdXBkYXRlKEFycmF5LmlzQXJyYXkob3B0aW9uKVxuICAgICAgICAgID8gaXYudmFsdWUuZmlsdGVyKHYgPT4gb3B0aW9uLm1hcChvID0+IG9bdmFsdWVQcm9wLnZhbHVlXSkuaW5kZXhPZih2W3ZhbHVlUHJvcC52YWx1ZV0pID09PSAtMSlcbiAgICAgICAgICA6IGl2LnZhbHVlLmZpbHRlcih2ID0+IHZbdmFsdWVQcm9wLnZhbHVlXSAhPSBvcHRpb25bdmFsdWVQcm9wLnZhbHVlXSkpO1xuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIGNvbnRleHQuZW1pdCgnZGVzZWxlY3QnLCBmaW5hbFZhbHVlKG9wdGlvbiksIG9wdGlvbiwgJHRoaXMpO1xuICB9O1xuXG4gIC8vIG5vIGV4cG9ydFxuICBjb25zdCBmaW5hbFZhbHVlID0gKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiBvYmplY3QudmFsdWUgPyBvcHRpb24gOiBvcHRpb25bdmFsdWVQcm9wLnZhbHVlXVxuICB9O1xuXG4gIGNvbnN0IHJlbW92ZSA9IChvcHRpb24pID0+IHtcbiAgICBkZXNlbGVjdChvcHRpb24pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZSA9IChvcHRpb24sIGUpID0+IHtcbiAgICBpZiAoZS5idXR0b24gIT09IDApIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHJlbW92ZShvcHRpb24pO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFyID0gKCkgPT4ge1xuICAgIGNvbnRleHQuZW1pdCgnY2xlYXInLCAkdGhpcyk7XG4gICAgdXBkYXRlKG51bGxWYWx1ZS52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3QgaXNTZWxlY3RlZCA9IChvcHRpb24pID0+IHtcbiAgICBpZiAob3B0aW9uLmdyb3VwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBtb2RlLnZhbHVlID09PSAnc2luZ2xlJyA/IGZhbHNlIDogYXJlQWxsU2VsZWN0ZWQob3B0aW9uW2dyb3VwT3B0aW9ucy52YWx1ZV0pICYmIG9wdGlvbltncm91cE9wdGlvbnMudmFsdWVdLmxlbmd0aFxuICAgIH1cblxuICAgIHN3aXRjaCAobW9kZS52YWx1ZSkge1xuICAgICAgY2FzZSAnc2luZ2xlJzpcbiAgICAgICAgcmV0dXJuICFpc051bGxpc2goaXYudmFsdWUpICYmIGl2LnZhbHVlW3ZhbHVlUHJvcC52YWx1ZV0gPT0gb3B0aW9uW3ZhbHVlUHJvcC52YWx1ZV1cblxuICAgICAgY2FzZSAndGFncyc6XG4gICAgICBjYXNlICdtdWx0aXBsZSc6XG4gICAgICAgIHJldHVybiAhaXNOdWxsaXNoKGl2LnZhbHVlKSAmJiBpdi52YWx1ZS5tYXAobyA9PiBvW3ZhbHVlUHJvcC52YWx1ZV0pLmluZGV4T2Yob3B0aW9uW3ZhbHVlUHJvcC52YWx1ZV0pICE9PSAtMVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBpc0Rpc2FibGVkID0gKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiBvcHRpb25bZGlzYWJsZWRQcm9wLnZhbHVlXSA9PT0gdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGlzTWF4ID0gKCkgPT4ge1xuICAgIGlmIChtYXggPT09IHVuZGVmaW5lZCB8fCBtYXgudmFsdWUgPT09IC0xIHx8ICghaGFzU2VsZWN0ZWQudmFsdWUgJiYgbWF4LnZhbHVlID4gMCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gaXYudmFsdWUubGVuZ3RoID49IG1heC52YWx1ZVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU9wdGlvbkNsaWNrID0gKG9wdGlvbikgPT4ge1xuICAgIGlmIChpc0Rpc2FibGVkKG9wdGlvbikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChvbkNyZWF0ZSAmJiBvbkNyZWF0ZS52YWx1ZSAmJiAhaXNTZWxlY3RlZChvcHRpb24pICYmIG9wdGlvbi5fX0NSRUFURV9fKSB7XG4gICAgICBvcHRpb24gPSB7IC4uLm9wdGlvbiB9O1xuICAgICAgZGVsZXRlIG9wdGlvbi5fX0NSRUFURV9fO1xuXG4gICAgICBvcHRpb24gPSBvbkNyZWF0ZS52YWx1ZShvcHRpb24sICR0aGlzKTtcbiAgICAgIFxuICAgICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgcmVzb2x2aW5nLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgb3B0aW9uLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmluZy52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgIGhhbmRsZU9wdGlvblNlbGVjdChyZXN1bHQpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm5cbiAgICAgIH0gXG4gICAgfVxuXG4gICAgaGFuZGxlT3B0aW9uU2VsZWN0KG9wdGlvbik7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlT3B0aW9uU2VsZWN0ID0gKG9wdGlvbikgPT4ge1xuICAgIGlmIChvcHRpb24uX19DUkVBVEVfXykge1xuICAgICAgb3B0aW9uID0geyAuLi5vcHRpb24gfTtcbiAgICAgIGRlbGV0ZSBvcHRpb24uX19DUkVBVEVfXztcbiAgICB9XG4gICAgXG4gICAgc3dpdGNoIChtb2RlLnZhbHVlKSB7XG4gICAgICBjYXNlICdzaW5nbGUnOlxuICAgICAgICBpZiAob3B0aW9uICYmIGlzU2VsZWN0ZWQob3B0aW9uKSkge1xuICAgICAgICAgIGlmIChjYW5EZXNlbGVjdC52YWx1ZSkge1xuICAgICAgICAgICAgZGVzZWxlY3Qob3B0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgaGFuZGxlT3B0aW9uQXBwZW5kKG9wdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoY2xlYXJPblNlbGVjdC52YWx1ZSkge1xuICAgICAgICAgIGNsZWFyU2VhcmNoKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2xvc2VPblNlbGVjdC52YWx1ZSkge1xuICAgICAgICAgIGNsZWFyUG9pbnRlcigpO1xuICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgc2VsZWN0KG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnbXVsdGlwbGUnOlxuICAgICAgICBpZiAob3B0aW9uICYmIGlzU2VsZWN0ZWQob3B0aW9uKSkge1xuICAgICAgICAgIGRlc2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNNYXgoKSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgIGhhbmRsZU9wdGlvbkFwcGVuZChvcHRpb24pO1xuICAgICAgICAgIHNlbGVjdChvcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsZWFyT25TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICBjbGVhclNlYXJjaCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhpZGVTZWxlY3RlZC52YWx1ZSkge1xuICAgICAgICAgIGNsZWFyUG9pbnRlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsb3NlT25TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ3RhZ3MnOlxuICAgICAgICBpZiAob3B0aW9uICYmIGlzU2VsZWN0ZWQob3B0aW9uKSkge1xuICAgICAgICAgIGRlc2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNNYXgoKSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgIGhhbmRsZU9wdGlvbkFwcGVuZChvcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsZWFyT25TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICBjbGVhclNlYXJjaCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgIHNlbGVjdChvcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhpZGVTZWxlY3RlZC52YWx1ZSkge1xuICAgICAgICAgIGNsZWFyUG9pbnRlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsb3NlT25TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgaWYgKCFjbG9zZU9uU2VsZWN0LnZhbHVlKSB7XG4gICAgICBmb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVHcm91cENsaWNrID0gKGdyb3VwKSA9PiB7XG4gICAgaWYgKGlzRGlzYWJsZWQoZ3JvdXApIHx8IG1vZGUudmFsdWUgPT09ICdzaW5nbGUnIHx8ICFncm91cFNlbGVjdC52YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgc3dpdGNoIChtb2RlLnZhbHVlKSB7XG4gICAgICBjYXNlICdtdWx0aXBsZSc6XG4gICAgICBjYXNlICd0YWdzJzpcbiAgICAgICAgaWYgKGFyZUFsbEVuYWJsZWRTZWxlY3RlZChncm91cFtncm91cE9wdGlvbnMudmFsdWVdKSkge1xuICAgICAgICAgIGRlc2VsZWN0KGdyb3VwW2dyb3VwT3B0aW9ucy52YWx1ZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGVjdChncm91cFtncm91cE9wdGlvbnMudmFsdWVdXG4gICAgICAgICAgICAuZmlsdGVyKG8gPT4gaXYudmFsdWUubWFwKHYgPT4gdlt2YWx1ZVByb3AudmFsdWVdKS5pbmRleE9mKG9bdmFsdWVQcm9wLnZhbHVlXSkgPT09IC0xKVxuICAgICAgICAgICAgLmZpbHRlcihvID0+ICFvW2Rpc2FibGVkUHJvcC52YWx1ZV0pXG4gICAgICAgICAgICAuZmlsdGVyKChvLCBrKSA9PiBpdi52YWx1ZS5sZW5ndGggKyAxICsgayA8PSBtYXgudmFsdWUgfHwgbWF4LnZhbHVlID09PSAtMSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgaWYgKGNsb3NlT25TZWxlY3QudmFsdWUpIHtcbiAgICAgIGRlYWN0aXZhdGUoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlT3B0aW9uQXBwZW5kID0gKG9wdGlvbikgPT4ge1xuICAgIGlmIChnZXRPcHRpb24ob3B0aW9uW3ZhbHVlUHJvcC52YWx1ZV0pID09PSB1bmRlZmluZWQgJiYgY3JlYXRlT3B0aW9uLnZhbHVlKSB7XG4gICAgICBjb250ZXh0LmVtaXQoJ3RhZycsIG9wdGlvblt2YWx1ZVByb3AudmFsdWVdLCAkdGhpcyk7XG4gICAgICBjb250ZXh0LmVtaXQoJ29wdGlvbicsIG9wdGlvblt2YWx1ZVByb3AudmFsdWVdLCAkdGhpcyk7XG5cbiAgICAgIGlmIChhcHBlbmROZXdPcHRpb24udmFsdWUpIHtcbiAgICAgICAgYXBwZW5kT3B0aW9uKG9wdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNsZWFyU2VhcmNoKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNlbGVjdEFsbCA9ICgpID0+IHtcbiAgICBpZiAobW9kZS52YWx1ZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNlbGVjdChmby52YWx1ZSk7XG4gIH07XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IGFyZUFsbEVuYWJsZWRTZWxlY3RlZCA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZmluZChvID0+ICFpc1NlbGVjdGVkKG8pICYmICFvW2Rpc2FibGVkUHJvcC52YWx1ZV0pID09PSB1bmRlZmluZWRcbiAgfTtcblxuICAvLyBubyBleHBvcnRcbiAgY29uc3QgYXJlQWxsU2VsZWN0ZWQgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBvcHRpb25zLmZpbmQobyA9PiAhaXNTZWxlY3RlZChvKSkgPT09IHVuZGVmaW5lZFxuICB9O1xuXG4gIGNvbnN0IGdldE9wdGlvbiA9ICh2YWwpID0+IHtcbiAgICByZXR1cm4gZW8udmFsdWVbZW8udmFsdWUubWFwKG8gPT4gU3RyaW5nKG9bdmFsdWVQcm9wLnZhbHVlXSkpLmluZGV4T2YoU3RyaW5nKHZhbCkpXVxuICB9O1xuXG4gIC8vIG5vIGV4cG9ydFxuICBjb25zdCBnZXRPcHRpb25CeVRyYWNrQnkgPSAodmFsLCBub3JtID0gdHJ1ZSkgPT4ge1xuICAgIHJldHVybiBlby52YWx1ZS5tYXAobyA9PiBwYXJzZUludChvW3RyYWNrQnkudmFsdWVdKSA9PSBvW3RyYWNrQnkudmFsdWVdID8gcGFyc2VJbnQob1t0cmFja0J5LnZhbHVlXSkgOiBvW3RyYWNrQnkudmFsdWVdKS5pbmRleE9mKFxuICAgICAgcGFyc2VJbnQodmFsKSA9PSB2YWwgPyBwYXJzZUludCh2YWwpIDogdmFsXG4gICAgKVxuICB9O1xuXG4gIC8vIG5vIGV4cG9ydFxuICBjb25zdCBzaG91bGRIaWRlT3B0aW9uID0gKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiBbJ3RhZ3MnLCAnbXVsdGlwbGUnXS5pbmRleE9mKG1vZGUudmFsdWUpICE9PSAtMSAmJiBoaWRlU2VsZWN0ZWQudmFsdWUgJiYgaXNTZWxlY3RlZChvcHRpb24pXG4gIH07XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IGFwcGVuZE9wdGlvbiA9IChvcHRpb24pID0+IHtcbiAgICBhcC52YWx1ZS5wdXNoKG9wdGlvbik7XG4gIH07XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IGZpbHRlckdyb3VwcyA9IChncm91cHMpID0+IHtcbiAgICAvLyBJZiB0aGUgc2VhcmNoIGhhcyB2YWx1ZSB3ZSBuZWVkIHRvIGZpbHRlciBhbW9uZyBcbiAgICAvLyBoZSBvbmVzIHRoYXQgYXJlIHZpc2libGUgdG8gdGhlIHVzZXIgdG8gYXZvaWRcbiAgICAvLyBkaXNwbGF5aW5nIGdyb3VwcyB3aGljaCB0ZWNobmljYWxseSBoYXZlIG9wdGlvbnNcbiAgICAvLyBiYXNlZCBvbiBzZWFyY2ggYnV0IHRoYXQgb3B0aW9uIGlzIGFscmVhZHkgc2VsZWN0ZWQuXG4gICAgcmV0dXJuIGdyb3VwSGlkZUVtcHR5LnZhbHVlXG4gICAgICA/IGdyb3Vwcy5maWx0ZXIoZyA9PiBzZWFyY2gudmFsdWVcbiAgICAgICAgICA/IGcuX19WSVNJQkxFX18ubGVuZ3RoXG4gICAgICAgICAgOiBnW2dyb3VwT3B0aW9ucy52YWx1ZV0ubGVuZ3RoXG4gICAgICAgIClcbiAgICAgIDogZ3JvdXBzLmZpbHRlcihnID0+IHNlYXJjaC52YWx1ZSA/IGcuX19WSVNJQkxFX18ubGVuZ3RoIDogdHJ1ZSlcbiAgfTtcblxuICAvLyBubyBleHBvcnRcbiAgY29uc3QgZmlsdGVyT3B0aW9ucyA9IChvcHRpb25zLCBleGNsdWRlSGlkZVNlbGVjdGVkID0gdHJ1ZSkgPT4ge1xuICAgIGxldCBmbyA9IG9wdGlvbnM7XG4gICAgXG4gICAgaWYgKHNlYXJjaC52YWx1ZSAmJiBmaWx0ZXJSZXN1bHRzLnZhbHVlKSB7XG4gICAgICBmbyA9IGZvLmZpbHRlcigob3B0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBzZWFyY2hTdGFydC52YWx1ZVxuICAgICAgICAgID8gbm9ybWFsaXplKG9wdGlvblt0cmFja0J5LnZhbHVlXSwgc3RyaWN0LnZhbHVlKS5zdGFydHNXaXRoKG5vcm1hbGl6ZShzZWFyY2gudmFsdWUsIHN0cmljdC52YWx1ZSkpXG4gICAgICAgICAgOiBub3JtYWxpemUob3B0aW9uW3RyYWNrQnkudmFsdWVdLCBzdHJpY3QudmFsdWUpLmluZGV4T2Yobm9ybWFsaXplKHNlYXJjaC52YWx1ZSwgc3RyaWN0LnZhbHVlKSkgIT09IC0xXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaGlkZVNlbGVjdGVkLnZhbHVlICYmIGV4Y2x1ZGVIaWRlU2VsZWN0ZWQpIHtcbiAgICAgIGZvID0gZm8uZmlsdGVyKChvcHRpb24pID0+ICFzaG91bGRIaWRlT3B0aW9uKG9wdGlvbikpO1xuICAgIH1cblxuICAgIHJldHVybiBmb1xuICB9O1xuXG4gIC8vIG5vIGV4cG9ydFxuICBjb25zdCBvcHRpb25zVG9BcnJheSA9IChvcHRpb25zKSA9PiB7XG4gICAgbGV0IHVvID0gb3B0aW9ucztcbiAgICBcbiAgICAvLyBUcmFuc2Zvcm1pbmcgYW4gb2JqZWN0IHRvIGFuIGFycmF5IG9mIG9iamVjdHNcbiAgICBpZiAoaXNPYmplY3QodW8pKSB7XG4gICAgICB1byA9IE9iamVjdC5rZXlzKHVvKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICBsZXQgdmFsID0gdW9ba2V5XTtcblxuICAgICAgICByZXR1cm4geyBbdmFsdWVQcm9wLnZhbHVlXToga2V5LCBbdHJhY2tCeS52YWx1ZV06IHZhbCwgW2xhYmVsLnZhbHVlXTogdmFsfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVHJhbnNmb3JtaW5nIGFuIHBsYWluIGFycmF5cyB0byBhbiBhcnJheSBvZiBvYmplY3RzXG4gICAgdW8gPSB1by5tYXAoKHZhbCkgPT4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnID8gdmFsIDogeyBbdmFsdWVQcm9wLnZhbHVlXTogdmFsLCBbdHJhY2tCeS52YWx1ZV06IHZhbCwgW2xhYmVsLnZhbHVlXTogdmFsfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVvXG4gIH07XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IGluaXRJbnRlcm5hbFZhbHVlID0gKCkgPT4ge1xuICAgIGlmICghaXNOdWxsaXNoKGV2LnZhbHVlKSkge1xuICAgICAgaXYudmFsdWUgPSBtYWtlSW50ZXJuYWwoZXYudmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCByZXNvbHZlT3B0aW9ucyA9IChjYWxsYmFjaykgPT4ge1xuICAgIHJlc29sdmluZy52YWx1ZSA9IHRydWU7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgb3B0aW9ucy52YWx1ZShzZWFyY2gudmFsdWUsICR0aGlzKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICByby52YWx1ZSA9IHJlc3BvbnNlIHx8IFtdO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNhbGxiYWNrKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc29sdmluZy52YWx1ZSA9IGZhbHNlO1xuICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcblxuICAgICAgICByby52YWx1ZSA9IFtdO1xuXG4gICAgICAgIHJlc29sdmluZy52YWx1ZSA9IGZhbHNlO1xuICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH07XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IHJlZnJlc2hMYWJlbHMgPSAoKSA9PiB7XG4gICAgaWYgKCFoYXNTZWxlY3RlZC52YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKG1vZGUudmFsdWUgPT09ICdzaW5nbGUnKSB7XG4gICAgICBsZXQgb3B0aW9uID0gZ2V0T3B0aW9uKGl2LnZhbHVlW3ZhbHVlUHJvcC52YWx1ZV0pO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxldCBuZXdMYWJlbCA9IG9wdGlvbltsYWJlbC52YWx1ZV07XG5cbiAgICAgICAgaXYudmFsdWVbbGFiZWwudmFsdWVdID0gbmV3TGFiZWw7XG5cbiAgICAgICAgaWYgKG9iamVjdC52YWx1ZSkge1xuICAgICAgICAgIGV2LnZhbHVlW2xhYmVsLnZhbHVlXSA9IG5ld0xhYmVsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGl2LnZhbHVlLmZvckVhY2goKHZhbCwgaSkgPT4ge1xuICAgICAgICBsZXQgb3B0aW9uID0gZ2V0T3B0aW9uKGl2LnZhbHVlW2ldW3ZhbHVlUHJvcC52YWx1ZV0pO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChvcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGxldCBuZXdMYWJlbCA9IG9wdGlvbltsYWJlbC52YWx1ZV07XG5cbiAgICAgICAgICBpdi52YWx1ZVtpXVtsYWJlbC52YWx1ZV0gPSBuZXdMYWJlbDtcblxuICAgICAgICAgIGlmIChvYmplY3QudmFsdWUpIHtcbiAgICAgICAgICAgIGV2LnZhbHVlW2ldW2xhYmVsLnZhbHVlXSA9IG5ld0xhYmVsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlZnJlc2hPcHRpb25zID0gKGNhbGxiYWNrKSA9PiB7XG4gICAgcmVzb2x2ZU9wdGlvbnMoY2FsbGJhY2spO1xuICB9O1xuXG4gIC8vIG5vIGV4cG9ydFxuICBjb25zdCBtYWtlSW50ZXJuYWwgPSAodmFsKSA9PiB7XG4gICAgaWYgKGlzTnVsbGlzaCh2YWwpKSB7XG4gICAgICByZXR1cm4gbW9kZS52YWx1ZSA9PT0gJ3NpbmdsZScgPyB7fSA6IFtdXG4gICAgfVxuXG4gICAgaWYgKG9iamVjdC52YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbFxuICAgIH1cblxuICAgIC8vIElmIGV4dGVybmFsIHNob3VsZCBiZSBwbGFpbiB0cmFuc2Zvcm1cbiAgICAvLyB2YWx1ZSBvYmplY3QgdG8gcGxhaW4gdmFsdWVzXG4gICAgcmV0dXJuIG1vZGUudmFsdWUgPT09ICdzaW5nbGUnID8gZ2V0T3B0aW9uKHZhbCkgfHwge30gOiB2YWwuZmlsdGVyKHYgPT4gISEgZ2V0T3B0aW9uKHYpKS5tYXAodiA9PiBnZXRPcHRpb24odikpXG4gIH07XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IGluaXRTZWFyY2hXYXRjaGVyID0gKCkgPT4ge1xuICAgIHNlYXJjaFdhdGNoZXIudmFsdWUgPSB3YXRjaChzZWFyY2gsIChxdWVyeSkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5Lmxlbmd0aCA8IG1pbkNoYXJzLnZhbHVlIHx8ICghcXVlcnkgJiYgbWluQ2hhcnMudmFsdWUgIT09IDApKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICByZXNvbHZpbmcudmFsdWUgPSB0cnVlO1xuXG4gICAgICBpZiAoY2xlYXJPblNlYXJjaC52YWx1ZSkge1xuICAgICAgICByby52YWx1ZSA9IFtdO1xuICAgICAgfVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChxdWVyeSAhPSBzZWFyY2gudmFsdWUpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMudmFsdWUoc2VhcmNoLnZhbHVlLCAkdGhpcykudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocXVlcnkgPT0gc2VhcmNoLnZhbHVlIHx8ICFzZWFyY2gudmFsdWUpIHtcbiAgICAgICAgICAgIHJvLnZhbHVlID0gcmVzcG9uc2U7XG4gICAgICAgICAgICBwb2ludGVyLnZhbHVlID0gZm8udmFsdWUuZmlsdGVyKG8gPT4gb1tkaXNhYmxlZFByb3AudmFsdWVdICE9PSB0cnVlKVswXSB8fCBudWxsO1xuICAgICAgICAgICAgcmVzb2x2aW5nLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KS5jYXRjaCggLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gKGUpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGRlbGF5LnZhbHVlKTtcblxuICAgIH0sIHsgZmx1c2g6ICdzeW5jJyB9KTtcbiAgfTtcblxuICAvLyA9PT09PT09PT09PT09PT09IEhPT0tTID09PT09PT09PT09PT09PVxuXG4gIGlmIChtb2RlLnZhbHVlICE9PSAnc2luZ2xlJyAmJiAhaXNOdWxsaXNoKGV2LnZhbHVlKSAmJiAhQXJyYXkuaXNBcnJheShldi52YWx1ZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHYtbW9kZWwgbXVzdCBiZSBhbiBhcnJheSB3aGVuIHVzaW5nIFwiJHttb2RlLnZhbHVlfVwiIG1vZGVgKVxuICB9XG5cbiAgaWYgKG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMudmFsdWUgPT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChyZXNvbHZlT25Mb2FkLnZhbHVlKSB7XG4gICAgICByZXNvbHZlT3B0aW9ucyhpbml0SW50ZXJuYWxWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChvYmplY3QudmFsdWUgPT0gdHJ1ZSkge1xuICAgICAgaW5pdEludGVybmFsVmFsdWUoKTtcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgcm8udmFsdWUgPSBvcHRpb25zLnZhbHVlO1xuXG4gICAgaW5pdEludGVybmFsVmFsdWUoKTtcbiAgfVxuICBcbiAgLy8gPT09PT09PT09PT09PT0gV0FUQ0hFUlMgPT09PT09PT09PT09PT1cblxuICBpZiAoZGVsYXkudmFsdWUgPiAtMSkge1xuICAgIGluaXRTZWFyY2hXYXRjaGVyKCk7XG4gIH1cblxuICB3YXRjaChkZWxheSwgKHZhbHVlLCBvbGQpID0+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChzZWFyY2hXYXRjaGVyLnZhbHVlKSB7XG4gICAgICBzZWFyY2hXYXRjaGVyLnZhbHVlKCk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID49IDApIHtcbiAgICAgIGluaXRTZWFyY2hXYXRjaGVyKCk7XG4gICAgfVxuICB9KTtcblxuICB3YXRjaChldiwgKG5ld1ZhbHVlKSA9PiB7XG4gICAgaWYgKGlzTnVsbGlzaChuZXdWYWx1ZSkpIHtcbiAgICAgIGl2LnZhbHVlID0gbWFrZUludGVybmFsKG5ld1ZhbHVlKTtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHN3aXRjaCAobW9kZS52YWx1ZSkge1xuICAgICAgY2FzZSAnc2luZ2xlJzpcbiAgICAgICAgaWYgKG9iamVjdC52YWx1ZSA/IG5ld1ZhbHVlW3ZhbHVlUHJvcC52YWx1ZV0gIT0gaXYudmFsdWVbdmFsdWVQcm9wLnZhbHVlXSA6IG5ld1ZhbHVlICE9IGl2LnZhbHVlW3ZhbHVlUHJvcC52YWx1ZV0pIHtcbiAgICAgICAgICBpdi52YWx1ZSA9IG1ha2VJbnRlcm5hbChuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnbXVsdGlwbGUnOlxuICAgICAgY2FzZSAndGFncyc6XG4gICAgICAgIGlmICghYXJyYXlzRXF1YWwob2JqZWN0LnZhbHVlID8gbmV3VmFsdWUubWFwKG8gPT4gb1t2YWx1ZVByb3AudmFsdWVdKSA6IG5ld1ZhbHVlLCBpdi52YWx1ZS5tYXAobyA9PiBvW3ZhbHVlUHJvcC52YWx1ZV0pKSkge1xuICAgICAgICAgIGl2LnZhbHVlID0gbWFrZUludGVybmFsKG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfSwgeyBkZWVwOiB0cnVlIH0pO1xuXG4gIHdhdGNoKG9wdGlvbnMsIChuLCBvKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBwcm9wcy5vcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAocmVzb2x2ZU9uTG9hZC52YWx1ZSkge1xuICAgICAgICByZXNvbHZlT3B0aW9ucygpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByby52YWx1ZSA9IHByb3BzLm9wdGlvbnM7XG5cbiAgICAgIGlmICghT2JqZWN0LmtleXMoaXYudmFsdWUpLmxlbmd0aCkge1xuICAgICAgICBpbml0SW50ZXJuYWxWYWx1ZSgpO1xuICAgICAgfVxuXG4gICAgICByZWZyZXNoTGFiZWxzKCk7XG4gICAgfVxuICB9KTtcblxuICB3YXRjaChsYWJlbCwgcmVmcmVzaExhYmVscyk7XG5cbiAgcmV0dXJuIHtcbiAgICBwZm8sXG4gICAgZm8sXG4gICAgZmlsdGVyZWRPcHRpb25zOiBmbyxcbiAgICBoYXNTZWxlY3RlZCxcbiAgICBtdWx0aXBsZUxhYmVsVGV4dCxcbiAgICBlbyxcbiAgICBleHRlbmRlZE9wdGlvbnM6IGVvLFxuICAgIGZnLFxuICAgIGZpbHRlcmVkR3JvdXBzOiBmZyxcbiAgICBub09wdGlvbnMsXG4gICAgbm9SZXN1bHRzLFxuICAgIHJlc29sdmluZyxcbiAgICBidXN5LFxuICAgIG9mZnNldCxcbiAgICBzZWxlY3QsXG4gICAgZGVzZWxlY3QsXG4gICAgcmVtb3ZlLFxuICAgIHNlbGVjdEFsbCxcbiAgICBjbGVhcixcbiAgICBpc1NlbGVjdGVkLFxuICAgIGlzRGlzYWJsZWQsXG4gICAgaXNNYXgsXG4gICAgZ2V0T3B0aW9uLFxuICAgIGhhbmRsZU9wdGlvbkNsaWNrLFxuICAgIGhhbmRsZUdyb3VwQ2xpY2ssXG4gICAgaGFuZGxlVGFnUmVtb3ZlLFxuICAgIHJlZnJlc2hPcHRpb25zLFxuICAgIHJlc29sdmVPcHRpb25zLFxuICAgIHJlZnJlc2hMYWJlbHMsXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlUG9pbnRlciAocHJvcHMsIGNvbnRleHQsIGRlcClcbntcbiAgY29uc3Qge1xuICAgIHZhbHVlUHJvcCwgc2hvd09wdGlvbnMsIHNlYXJjaGFibGUsIGdyb3VwTGFiZWwsXG4gICAgZ3JvdXBzOiBncm91cHBlZCwgbW9kZSwgZ3JvdXBTZWxlY3QsIGRpc2FibGVkUHJvcCxcbiAgfSA9IHRvUmVmcyhwcm9wcyk7XG5cbiAgLy8gPT09PT09PT09PT09IERFUEVOREVOQ0lFUyA9PT09PT09PT09PT1cblxuICBjb25zdCBmbyA9IGRlcC5mbztcbiAgY29uc3QgZmcgPSBkZXAuZmc7XG4gIGNvbnN0IGhhbmRsZU9wdGlvbkNsaWNrID0gZGVwLmhhbmRsZU9wdGlvbkNsaWNrO1xuICBjb25zdCBoYW5kbGVHcm91cENsaWNrID0gZGVwLmhhbmRsZUdyb3VwQ2xpY2s7XG4gIGNvbnN0IHNlYXJjaCA9IGRlcC5zZWFyY2g7XG4gIGNvbnN0IHBvaW50ZXIgPSBkZXAucG9pbnRlcjtcbiAgY29uc3Qgc2V0UG9pbnRlciA9IGRlcC5zZXRQb2ludGVyO1xuICBjb25zdCBjbGVhclBvaW50ZXIgPSBkZXAuY2xlYXJQb2ludGVyO1xuICBjb25zdCBtdWx0aXNlbGVjdCA9IGRlcC5tdWx0aXNlbGVjdDtcbiAgY29uc3QgaXNPcGVuID0gZGVwLmlzT3BlbjtcblxuICAvLyA9PT09PT09PT09PT09PSBDT01QVVRFRCA9PT09PT09PT09PT09PVxuXG4gIC8vIG5vIGV4cG9ydFxuICBjb25zdCBvcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBmby52YWx1ZS5maWx0ZXIobyA9PiAhb1tkaXNhYmxlZFByb3AudmFsdWVdKVxuICB9KTtcblxuICBjb25zdCBncm91cHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIGZnLnZhbHVlLmZpbHRlcihvID0+ICFvW2Rpc2FibGVkUHJvcC52YWx1ZV0pXG4gIH0pO1xuXG4gIGNvbnN0IGNhblBvaW50R3JvdXBzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBtb2RlLnZhbHVlICE9PSAnc2luZ2xlJyAmJiBncm91cFNlbGVjdC52YWx1ZVxuICB9KTtcblxuICBjb25zdCBpc1BvaW50ZXJHcm91cCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gcG9pbnRlci52YWx1ZSAmJiBwb2ludGVyLnZhbHVlLmdyb3VwXG4gIH0pO1xuXG4gIGNvbnN0IGN1cnJlbnRHcm91cCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gZ2V0UGFyZW50R3JvdXAocG9pbnRlci52YWx1ZSlcbiAgfSk7XG5cbiAgY29uc3QgcHJldkdyb3VwID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGdyb3VwID0gaXNQb2ludGVyR3JvdXAudmFsdWUgPyBwb2ludGVyLnZhbHVlIDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZ2V0UGFyZW50R3JvdXAocG9pbnRlci52YWx1ZSk7XG4gICAgY29uc3QgZ3JvdXBJbmRleCA9IGdyb3Vwcy52YWx1ZS5tYXAoZyA9PiBnW2dyb3VwTGFiZWwudmFsdWVdKS5pbmRleE9mKGdyb3VwW2dyb3VwTGFiZWwudmFsdWVdKTtcbiAgICBsZXQgcHJldkdyb3VwID0gZ3JvdXBzLnZhbHVlW2dyb3VwSW5kZXggLSAxXTtcblxuICAgIGlmIChwcmV2R3JvdXAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJldkdyb3VwID0gbGFzdEdyb3VwLnZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBwcmV2R3JvdXBcbiAgfSk7XG4gIFxuICBjb25zdCBuZXh0R3JvdXAgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IG5leHRJbmRleCA9IGdyb3Vwcy52YWx1ZS5tYXAoZyA9PiBnLmxhYmVsKS5pbmRleE9mKGlzUG9pbnRlckdyb3VwLnZhbHVlXG4gICAgICA/IHBvaW50ZXIudmFsdWVbZ3JvdXBMYWJlbC52YWx1ZV1cbiAgICAgIDogZ2V0UGFyZW50R3JvdXAocG9pbnRlci52YWx1ZSlbZ3JvdXBMYWJlbC52YWx1ZV0pICsgMTtcblxuICAgIGlmIChncm91cHMudmFsdWUubGVuZ3RoIDw9IG5leHRJbmRleCkge1xuICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JvdXBzLnZhbHVlW25leHRJbmRleF1cbiAgfSk7XG5cbiAgY29uc3QgbGFzdEdyb3VwID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBbLi4uZ3JvdXBzLnZhbHVlXS5zbGljZSgtMSlbMF1cbiAgfSk7XG4gIFxuICBjb25zdCBjdXJyZW50R3JvdXBGaXJzdEVuYWJsZWRPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHBvaW50ZXIudmFsdWUuX19WSVNJQkxFX18uZmlsdGVyKG8gPT4gIW9bZGlzYWJsZWRQcm9wLnZhbHVlXSlbMF1cbiAgfSk7XG5cbiAgY29uc3QgY3VycmVudEdyb3VwUHJldkVuYWJsZWRPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGN1cnJlbnRHcm91cC52YWx1ZS5fX1ZJU0lCTEVfXy5maWx0ZXIobyA9PiAhb1tkaXNhYmxlZFByb3AudmFsdWVdKTtcbiAgICByZXR1cm4gb3B0aW9uc1tvcHRpb25zLm1hcChvID0+IG9bdmFsdWVQcm9wLnZhbHVlXSkuaW5kZXhPZihwb2ludGVyLnZhbHVlW3ZhbHVlUHJvcC52YWx1ZV0pIC0gMV1cbiAgfSk7XG4gIFxuICBjb25zdCBjdXJyZW50R3JvdXBOZXh0RW5hYmxlZE9wdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gZ2V0UGFyZW50R3JvdXAocG9pbnRlci52YWx1ZSkuX19WSVNJQkxFX18uZmlsdGVyKG8gPT4gIW9bZGlzYWJsZWRQcm9wLnZhbHVlXSk7XG4gICAgcmV0dXJuIG9wdGlvbnNbb3B0aW9ucy5tYXAobyA9PiBvW3ZhbHVlUHJvcC52YWx1ZV0pLmluZGV4T2YocG9pbnRlci52YWx1ZVt2YWx1ZVByb3AudmFsdWVdKSArIDFdXG4gIH0pO1xuXG4gIGNvbnN0IHByZXZHcm91cExhc3RFbmFibGVkT3B0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBbLi4ucHJldkdyb3VwLnZhbHVlLl9fVklTSUJMRV9fLmZpbHRlcihvID0+ICFvW2Rpc2FibGVkUHJvcC52YWx1ZV0pXS5zbGljZSgtMSlbMF1cbiAgfSk7XG5cbiAgY29uc3QgbGFzdEdyb3VwTGFzdEVuYWJsZWRPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIFsuLi5sYXN0R3JvdXAudmFsdWUuX19WSVNJQkxFX18uZmlsdGVyKG8gPT4gIW9bZGlzYWJsZWRQcm9wLnZhbHVlXSldLnNsaWNlKC0xKVswXVxuICB9KTtcblxuICAvLyA9PT09PT09PT09PT09PT0gTUVUSE9EUyA9PT09PT09PT09PT09PVxuXG4gIGNvbnN0IGlzUG9pbnRlZCA9IChvcHRpb24pID0+IHtcbiAgICByZXR1cm4gKCEhcG9pbnRlci52YWx1ZSAmJiAoXG4gICAgICAoIW9wdGlvbi5ncm91cCAmJsKgcG9pbnRlci52YWx1ZVt2YWx1ZVByb3AudmFsdWVdID09IG9wdGlvblt2YWx1ZVByb3AudmFsdWVdKSB8fFxuICAgICAgKG9wdGlvbi5ncm91cCAhPT0gdW5kZWZpbmVkICYmwqBwb2ludGVyLnZhbHVlW2dyb3VwTGFiZWwudmFsdWVdID09IG9wdGlvbltncm91cExhYmVsLnZhbHVlXSlcbiAgICApKSA/IHRydWUgOiB1bmRlZmluZWRcbiAgfTtcblxuICBjb25zdCBzZXRQb2ludGVyRmlyc3QgPSAoKSA9PiB7XG4gICAgc2V0UG9pbnRlcihvcHRpb25zLnZhbHVlWzBdIHx8IG51bGwpO1xuICB9O1xuXG4gIGNvbnN0IHNlbGVjdFBvaW50ZXIgPSAoKSA9PiB7XG4gICAgaWYgKCFwb2ludGVyLnZhbHVlIHx8IHBvaW50ZXIudmFsdWVbZGlzYWJsZWRQcm9wLnZhbHVlXSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzUG9pbnRlckdyb3VwLnZhbHVlKSB7XG4gICAgICBoYW5kbGVHcm91cENsaWNrKHBvaW50ZXIudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVPcHRpb25DbGljayhwb2ludGVyLnZhbHVlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZm9yd2FyZFBvaW50ZXIgPSAoKSA9PiB7XG4gICAgaWYgKHBvaW50ZXIudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHNldFBvaW50ZXIoKGdyb3VwcGVkLnZhbHVlICYmIGNhblBvaW50R3JvdXBzLnZhbHVlID8gZ3JvdXBzLnZhbHVlWzBdIDogb3B0aW9ucy52YWx1ZVswXSkgfHwgbnVsbCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGdyb3VwcGVkLnZhbHVlICYmIGNhblBvaW50R3JvdXBzLnZhbHVlKSB7XG4gICAgICBsZXQgbmV4dFBvaW50ZXIgPSBpc1BvaW50ZXJHcm91cC52YWx1ZSA/IGN1cnJlbnRHcm91cEZpcnN0RW5hYmxlZE9wdGlvbi52YWx1ZSA6IGN1cnJlbnRHcm91cE5leHRFbmFibGVkT3B0aW9uLnZhbHVlO1xuXG4gICAgICBpZiAobmV4dFBvaW50ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBuZXh0UG9pbnRlciA9IG5leHRHcm91cC52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgc2V0UG9pbnRlcihuZXh0UG9pbnRlciB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IG5leHQgPSBvcHRpb25zLnZhbHVlLm1hcChvID0+IG9bdmFsdWVQcm9wLnZhbHVlXSkuaW5kZXhPZihwb2ludGVyLnZhbHVlW3ZhbHVlUHJvcC52YWx1ZV0pICsgMTtcblxuICAgICAgaWYgKG9wdGlvbnMudmFsdWUubGVuZ3RoIDw9IG5leHQpIHtcbiAgICAgICAgbmV4dCA9IDA7XG4gICAgICB9XG5cbiAgICAgIHNldFBvaW50ZXIob3B0aW9ucy52YWx1ZVtuZXh0XSB8fCBudWxsKTtcbiAgICB9XG5cbiAgICBuZXh0VGljaygoKSA9PiB7XG4gICAgICBhZGp1c3RXcmFwcGVyU2Nyb2xsVG9Qb2ludGVyKCk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgYmFja3dhcmRQb2ludGVyID0gKCkgPT4ge1xuICAgIGlmIChwb2ludGVyLnZhbHVlID09PSBudWxsKSB7XG4gICAgICBsZXQgcHJldlBvaW50ZXIgPSBvcHRpb25zLnZhbHVlW29wdGlvbnMudmFsdWUubGVuZ3RoIC0gMV07XG5cbiAgICAgIGlmIChncm91cHBlZC52YWx1ZSAmJiBjYW5Qb2ludEdyb3Vwcy52YWx1ZSkge1xuICAgICAgICBwcmV2UG9pbnRlciA9IGxhc3RHcm91cExhc3RFbmFibGVkT3B0aW9uLnZhbHVlO1xuXG4gICAgICAgIGlmIChwcmV2UG9pbnRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcHJldlBvaW50ZXIgPSBsYXN0R3JvdXAudmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2V0UG9pbnRlcihwcmV2UG9pbnRlciAgfHwgbnVsbCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGdyb3VwcGVkLnZhbHVlICYmIGNhblBvaW50R3JvdXBzLnZhbHVlKSB7XG4gICAgICBsZXQgcHJldlBvaW50ZXIgPSBpc1BvaW50ZXJHcm91cC52YWx1ZSA/IHByZXZHcm91cExhc3RFbmFibGVkT3B0aW9uLnZhbHVlIDogY3VycmVudEdyb3VwUHJldkVuYWJsZWRPcHRpb24udmFsdWU7XG5cbiAgICAgIGlmIChwcmV2UG9pbnRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByZXZQb2ludGVyID0gaXNQb2ludGVyR3JvdXAudmFsdWUgPyBwcmV2R3JvdXAudmFsdWUgOiBjdXJyZW50R3JvdXAudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHNldFBvaW50ZXIocHJldlBvaW50ZXIgfHwgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gbnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBwcmV2SW5kZXggPSBvcHRpb25zLnZhbHVlLm1hcChvID0+IG9bdmFsdWVQcm9wLnZhbHVlXSkuaW5kZXhPZihwb2ludGVyLnZhbHVlW3ZhbHVlUHJvcC52YWx1ZV0pIC0gMTtcblxuICAgICAgaWYgKHByZXZJbmRleCA8IDApIHtcbiAgICAgICAgcHJldkluZGV4ID0gb3B0aW9ucy52YWx1ZS5sZW5ndGggLSAxO1xuICAgICAgfVxuXG4gICAgICBzZXRQb2ludGVyKG9wdGlvbnMudmFsdWVbcHJldkluZGV4XSB8fCBudWxsKTtcbiAgICB9XG5cbiAgICBuZXh0VGljaygoKSA9PiB7XG4gICAgICBhZGp1c3RXcmFwcGVyU2Nyb2xsVG9Qb2ludGVyKCk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZ2V0UGFyZW50R3JvdXAgPSAob3B0aW9uKSA9PiB7XG4gICAgcmV0dXJuIGdyb3Vwcy52YWx1ZS5maW5kKChncm91cCkgPT4ge1xuICAgICAgcmV0dXJuIGdyb3VwLl9fVklTSUJMRV9fLm1hcChvID0+IG9bdmFsdWVQcm9wLnZhbHVlXSkuaW5kZXhPZihvcHRpb25bdmFsdWVQcm9wLnZhbHVlXSkgIT09IC0xXG4gICAgfSlcbiAgfTtcblxuICAvLyBubyBleHBvcnRcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgY29uc3QgYWRqdXN0V3JhcHBlclNjcm9sbFRvUG9pbnRlciA9ICgpID0+IHtcbiAgICBsZXQgcG9pbnRlZE9wdGlvbiA9IG11bHRpc2VsZWN0LnZhbHVlLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXBvaW50ZWRdYCk7XG5cbiAgICBpZiAoIXBvaW50ZWRPcHRpb24pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGxldCB3cmFwcGVyID0gcG9pbnRlZE9wdGlvbi5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICBpZiAoZ3JvdXBwZWQudmFsdWUpIHtcbiAgICAgIHdyYXBwZXIgPSBpc1BvaW50ZXJHcm91cC52YWx1ZVxuICAgICAgICA/IHBvaW50ZWRPcHRpb24ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnRcbiAgICAgICAgOiBwb2ludGVkT3B0aW9uLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgaWYgKHBvaW50ZWRPcHRpb24ub2Zmc2V0VG9wICsgcG9pbnRlZE9wdGlvbi5vZmZzZXRIZWlnaHQgPiB3cmFwcGVyLmNsaWVudEhlaWdodCArIHdyYXBwZXIuc2Nyb2xsVG9wKSB7XG4gICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHBvaW50ZWRPcHRpb24ub2Zmc2V0VG9wICsgcG9pbnRlZE9wdGlvbi5vZmZzZXRIZWlnaHQgLSB3cmFwcGVyLmNsaWVudEhlaWdodDtcbiAgICB9XG4gICAgXG4gICAgaWYgKHBvaW50ZWRPcHRpb24ub2Zmc2V0VG9wIDwgd3JhcHBlci5zY3JvbGxUb3ApIHtcbiAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gcG9pbnRlZE9wdGlvbi5vZmZzZXRUb3A7XG4gICAgfVxuICB9O1xuXG4gIC8vID09PT09PT09PT09PT09IFdBVENIRVJTID09PT09PT09PT09PT09XG5cbiAgd2F0Y2goc2VhcmNoLCAodmFsKSA9PiB7XG4gICAgaWYgKHNlYXJjaGFibGUudmFsdWUpIHtcbiAgICAgIGlmICh2YWwubGVuZ3RoICYmIHNob3dPcHRpb25zLnZhbHVlKSB7XG4gICAgICAgIHNldFBvaW50ZXJGaXJzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xlYXJQb2ludGVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICB3YXRjaChpc09wZW4sICh2YWwpID0+IHtcbiAgICBpZiAodmFsKSB7XG4gICAgICBsZXQgZmlyc3RTZWxlY3RlZCA9IG11bHRpc2VsZWN0LnZhbHVlLnF1ZXJ5U2VsZWN0b3JBbGwoYFtkYXRhLXNlbGVjdGVkXWApWzBdO1xuXG4gICAgICBpZiAoIWZpcnN0U2VsZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCB3cmFwcGVyID0gZmlyc3RTZWxlY3RlZC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICBcbiAgICAgIG5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgaWYgKHdyYXBwZXIuc2Nyb2xsVG9wID4gMCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgd3JhcHBlci5zY3JvbGxUb3AgPSBmaXJzdFNlbGVjdGVkLm9mZnNldFRvcDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBwb2ludGVyLFxuICAgIGNhblBvaW50R3JvdXBzLFxuICAgIGlzUG9pbnRlZCxcbiAgICBzZXRQb2ludGVyRmlyc3QsXG4gICAgc2VsZWN0UG9pbnRlcixcbiAgICBmb3J3YXJkUG9pbnRlcixcbiAgICBiYWNrd2FyZFBvaW50ZXIsXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlRHJvcGRvd24gKHByb3BzLCBjb250ZXh0LCBkZXApXG57XG4gIGNvbnN0IHsgZGlzYWJsZWQgfSA9IHRvUmVmcyhwcm9wcyk7XG5cbiAgY29uc3QgJHRoaXMgPSBnZXRDdXJyZW50SW5zdGFuY2UoKS5wcm94eTtcblxuICAvLyA9PT09PT09PT09PT09PT09IERBVEEgPT09PT09PT09PT09PT09PVxuXG4gIGNvbnN0IGlzT3BlbiA9IHJlZihmYWxzZSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09IE1FVEhPRFMgPT09PT09PT09PT09PT1cblxuICBjb25zdCBvcGVuID0gKCkgPT4ge1xuICAgIGlmIChpc09wZW4udmFsdWUgfHwgZGlzYWJsZWQudmFsdWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlzT3Blbi52YWx1ZSA9IHRydWU7XG4gICAgY29udGV4dC5lbWl0KCdvcGVuJywgJHRoaXMpO1xuICB9O1xuXG4gIGNvbnN0IGNsb3NlID0gKCkgPT4ge1xuICAgIGlmICghaXNPcGVuLnZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpc09wZW4udmFsdWUgPSBmYWxzZTtcbiAgICBjb250ZXh0LmVtaXQoJ2Nsb3NlJywgJHRoaXMpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgaXNPcGVuLFxuICAgIG9wZW4sXG4gICAgY2xvc2UsXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlTXVsdGlzZWxlY3QgKHByb3BzLCBjb250ZXh0LCBkZXApXG57XG4gIGNvbnN0IHsgc2VhcmNoYWJsZSwgZGlzYWJsZWQgfSA9IHRvUmVmcyhwcm9wcyk7XG5cbiAgLy8gPT09PT09PT09PT09IERFUEVOREVOQ0lFUyA9PT09PT09PT09PT1cblxuICBjb25zdCBpbnB1dCA9IGRlcC5pbnB1dDtcbiAgY29uc3Qgb3BlbiA9IGRlcC5vcGVuO1xuICBjb25zdCBjbG9zZSA9IGRlcC5jbG9zZTtcbiAgY29uc3QgY2xlYXJTZWFyY2ggPSBkZXAuY2xlYXJTZWFyY2g7XG4gIGNvbnN0IGlzT3BlbiA9IGRlcC5pc09wZW47XG5cbiAgLy8gPT09PT09PT09PT09PT09PSBEQVRBID09PT09PT09PT09PT09PT1cblxuICBjb25zdCBtdWx0aXNlbGVjdCA9IHJlZihudWxsKTtcbiAgY29uc3QgdGFncyA9IHJlZihudWxsKTtcblxuICBjb25zdCBpc0FjdGl2ZSA9IHJlZihmYWxzZSk7XG5cbiAgLy8gPT09PT09PT09PT09PT0gQ09NUFVURUQgPT09PT09PT09PT09PT1cblxuICBjb25zdCB0YWJpbmRleCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gc2VhcmNoYWJsZS52YWx1ZSB8fCBkaXNhYmxlZC52YWx1ZSA/IC0xIDogMFxuICB9KTtcblxuICAvLyA9PT09PT09PT09PT09PT0gTUVUSE9EUyA9PT09PT09PT09PT09PVxuXG4gIGNvbnN0IGJsdXIgPSAoKSA9PiB7XG4gICAgaWYgKHNlYXJjaGFibGUudmFsdWUpIHtcbiAgICAgIGlucHV0LnZhbHVlLmJsdXIoKTtcbiAgICB9XG5cbiAgICBtdWx0aXNlbGVjdC52YWx1ZS5ibHVyKCk7XG4gIH07XG5cbiAgY29uc3QgZm9jdXMgPSAoKSA9PiB7XG4gICAgaWYgKHNlYXJjaGFibGUudmFsdWUgJiYgIWRpc2FibGVkLnZhbHVlKSB7XG4gICAgICBpbnB1dC52YWx1ZS5mb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICBmb2N1cygpO1xuICB9O1xuXG4gIGNvbnN0IGFjdGl2YXRlID0gKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZC52YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaXNBY3RpdmUudmFsdWUgPSB0cnVlO1xuXG4gICAgb3BlbigpO1xuICB9O1xuXG4gIGNvbnN0IGRlYWN0aXZhdGUgPSAoKSA9PiB7XG4gICAgaXNBY3RpdmUudmFsdWUgPSBmYWxzZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCFpc0FjdGl2ZS52YWx1ZSkge1xuICAgICAgICBjbG9zZSgpO1xuICAgICAgICBjbGVhclNlYXJjaCgpO1xuICAgICAgfVxuICAgIH0sIDEpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNhcmV0Q2xpY2sgPSAoKSA9PiB7XG4gICAgZGVhY3RpdmF0ZSgpO1xuICAgIGJsdXIoKTtcbiAgfTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdCBoYW5kbGVNb3VzZWRvd24gPSAoZSkgPT4ge1xuICAgIGlmIChpc09wZW4udmFsdWUgJiYgKGUudGFyZ2V0LmlzRXF1YWxOb2RlKG11bHRpc2VsZWN0LnZhbHVlKSB8fCBlLnRhcmdldC5pc0VxdWFsTm9kZSh0YWdzLnZhbHVlKSkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBkZWFjdGl2YXRlKCk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaXNFcXVhbE5vZGUobXVsdGlzZWxlY3QudmFsdWUpICYmICFpc09wZW4udmFsdWUpIHtcbiAgICAgIGFjdGl2YXRlKCk7ICAgIFxuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG11bHRpc2VsZWN0LFxuICAgIHRhZ3MsXG4gICAgdGFiaW5kZXgsXG4gICAgaXNBY3RpdmUsXG4gICAgYmx1cixcbiAgICBmb2N1cyxcbiAgICBoYW5kbGVGb2N1cyxcbiAgICBhY3RpdmF0ZSxcbiAgICBkZWFjdGl2YXRlLFxuICAgIGhhbmRsZUNhcmV0Q2xpY2ssXG4gICAgaGFuZGxlTW91c2Vkb3duLFxuICB9XG59XG5cbmZ1bmN0aW9uIHVzZUtleWJvYXJkIChwcm9wcywgY29udGV4dCwgZGVwKVxue1xuICBjb25zdCB7XG4gICAgbW9kZSwgYWRkVGFnT24sIG9wZW5EaXJlY3Rpb24sIHNlYXJjaGFibGUsXG4gICAgc2hvd09wdGlvbnMsIHZhbHVlUHJvcCwgZ3JvdXBzOiBncm91cHBlZCxcbiAgICBhZGRPcHRpb25PbjogYWRkT3B0aW9uT25fLCBjcmVhdGVUYWcsIGNyZWF0ZU9wdGlvbjogY3JlYXRlT3B0aW9uXyxcbiAgICByZXZlcnNlLFxuICB9ID0gdG9SZWZzKHByb3BzKTtcblxuICBjb25zdCAkdGhpcyA9IGdldEN1cnJlbnRJbnN0YW5jZSgpLnByb3h5O1xuXG4gIC8vID09PT09PT09PT09PSBERVBFTkRFTkNJRVMgPT09PT09PT09PT09XG5cbiAgY29uc3QgaXYgPSBkZXAuaXY7XG4gIGNvbnN0IHVwZGF0ZSA9IGRlcC51cGRhdGU7XG4gIGNvbnN0IHNlYXJjaCA9IGRlcC5zZWFyY2g7XG4gIGNvbnN0IHNldFBvaW50ZXIgPSBkZXAuc2V0UG9pbnRlcjtcbiAgY29uc3Qgc2VsZWN0UG9pbnRlciA9IGRlcC5zZWxlY3RQb2ludGVyO1xuICBjb25zdCBiYWNrd2FyZFBvaW50ZXIgPSBkZXAuYmFja3dhcmRQb2ludGVyO1xuICBjb25zdCBmb3J3YXJkUG9pbnRlciA9IGRlcC5mb3J3YXJkUG9pbnRlcjtcbiAgY29uc3QgaXNPcGVuID0gZGVwLmlzT3BlbjtcbiAgY29uc3Qgb3BlbiA9IGRlcC5vcGVuO1xuICBjb25zdCBibHVyID0gZGVwLmJsdXI7XG4gIGNvbnN0IGZvID0gZGVwLmZvO1xuXG4gIC8vID09PT09PT09PT09PT09IENPTVBVVEVEID09PT09PT09PT09PT09XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IGNyZWF0ZU9wdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gY3JlYXRlVGFnLnZhbHVlIHx8IGNyZWF0ZU9wdGlvbl8udmFsdWUgfHwgZmFsc2VcbiAgfSk7XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IGFkZE9wdGlvbk9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmIChhZGRUYWdPbi52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gYWRkVGFnT24udmFsdWVcbiAgICB9XG4gICAgZWxzZSBpZiAoYWRkT3B0aW9uT25fLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBhZGRPcHRpb25Pbl8udmFsdWVcbiAgICB9XG5cbiAgICByZXR1cm4gWydlbnRlciddXG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PSBNRVRIT0RTID09PT09PT09PT09PT09XG5cbiAgLy8gbm8gZXhwb3J0XG4gIGNvbnN0IHByZXBhcmVQb2ludGVyID0gKCkgPT4ge1xuICAgIC8vIFdoZW4gb3B0aW9ucyBhcmUgaGlkZGVuIGFuZCBjcmVhdGluZyB0YWdzIGlzIGFsbG93ZWRcbiAgICAvLyBubyBwb2ludGVyIHdpbGwgYmUgc2V0IChiZWNhdXNlIG9wdGlvbnMgYXJlIGhpZGRlbikuXG4gICAgLy8gSW4gc3VjaCBjYXNlIHdlIG5lZWQgdG8gc2V0IHRoZSBwb2ludGVyIG1hbnVhbGx5IHRvIHRoZSBcbiAgICAvLyBmaXJzdCBvcHRpb24sIHdoaWNoIGVxdWFscyB0byB0aGUgb3B0aW9uIGNyZWF0ZWQgZnJvbVxuICAgIC8vIHRoZSBzZWFyY2ggdmFsdWUuXG4gICAgaWYgKG1vZGUudmFsdWUgPT09ICd0YWdzJyAmJiAhc2hvd09wdGlvbnMudmFsdWUgJiYgY3JlYXRlT3B0aW9uLnZhbHVlICYmIHNlYXJjaGFibGUudmFsdWUgJiYgIWdyb3VwcGVkLnZhbHVlKSB7XG4gICAgICBzZXRQb2ludGVyKGZvLnZhbHVlW2ZvLnZhbHVlLm1hcChvID0+IG9bdmFsdWVQcm9wLnZhbHVlXSkuaW5kZXhPZihzZWFyY2gudmFsdWUpXSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUtleWRvd24gPSAoZSkgPT4ge1xuICAgIGNvbnRleHQuZW1pdCgna2V5ZG93bicsIGUsICR0aGlzKTtcblxuICAgIHN3aXRjaCAoZS5rZXkpIHtcbiAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICAgIGlmIChtb2RlLnZhbHVlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlYXJjaGFibGUudmFsdWUgJiYgW251bGwsICcnXS5pbmRleE9mKHNlYXJjaC52YWx1ZSkgPT09IC0xKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXYudmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHVwZGF0ZShbLi4uaXYudmFsdWVdLnNsaWNlKDAsLTEpKTtcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKGFkZE9wdGlvbk9uLnZhbHVlLmluZGV4T2YoJ2VudGVyJykgPT09IC0xICYmIGNyZWF0ZU9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBwcmVwYXJlUG9pbnRlcigpO1xuICAgICAgICBzZWxlY3RQb2ludGVyKCk7XG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJyAnOlxuICAgICAgICBpZiAoIWNyZWF0ZU9wdGlvbi52YWx1ZSAmJiAhc2VhcmNoYWJsZS52YWx1ZSkge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBcbiAgICAgICAgICBwcmVwYXJlUG9pbnRlcigpO1xuICAgICAgICAgIHNlbGVjdFBvaW50ZXIoKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY3JlYXRlT3B0aW9uLnZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0gXG5cbiAgICAgICAgaWYgKGFkZE9wdGlvbk9uLnZhbHVlLmluZGV4T2YoJ3NwYWNlJykgPT09IC0xICYmIGNyZWF0ZU9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBcbiAgICAgICAgcHJlcGFyZVBvaW50ZXIoKTtcbiAgICAgICAgc2VsZWN0UG9pbnRlcigpO1xuICAgICAgICBicmVha1xuICAgICAgXG4gICAgICBjYXNlICdUYWInOlxuICAgICAgY2FzZSAnOyc6XG4gICAgICBjYXNlICcsJzpcbiAgICAgICAgaWYgKGFkZE9wdGlvbk9uLnZhbHVlLmluZGV4T2YoZS5rZXkudG9Mb3dlckNhc2UoKSkgPT09IC0xIHx8ICFjcmVhdGVPcHRpb24udmFsdWUpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHByZXBhcmVQb2ludGVyKCk7XG4gICAgICAgIHNlbGVjdFBvaW50ZXIoKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICBibHVyKCk7XG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKCFzaG93T3B0aW9ucy52YWx1ZSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKCFpc09wZW4udmFsdWUpIHtcbiAgICAgICAgICBvcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGJhY2t3YXJkUG9pbnRlcigpO1xuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKCFzaG93T3B0aW9ucy52YWx1ZSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKCFpc09wZW4udmFsdWUpIHtcbiAgICAgICAgICBvcGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3J3YXJkUG9pbnRlcigpO1xuICAgICAgICBicmVha1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVLZXl1cCA9IChlKSA9PiB7XG4gICAgY29udGV4dC5lbWl0KCdrZXl1cCcsIGUsICR0aGlzKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGhhbmRsZUtleWRvd24sXG4gICAgaGFuZGxlS2V5dXAsXG4gICAgcHJlcGFyZVBvaW50ZXIsXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlQ2xhc3NlcyAocHJvcHMsIGNvbnRleHQsIGRlcGVuZGVuY2llcylcbntjb25zdCB7IFxuICAgIGNsYXNzZXM6IGNsYXNzZXNfLCBkaXNhYmxlZCwgb3BlbkRpcmVjdGlvbiwgc2hvd09wdGlvbnNcbiAgfSA9IHRvUmVmcyhwcm9wcyk7XG5cbiAgLy8gPT09PT09PT09PT09IERFUEVOREVOQ0lFUyA9PT09PT09PT09PT1cblxuICBjb25zdCBpc09wZW4gPSBkZXBlbmRlbmNpZXMuaXNPcGVuO1xuICBjb25zdCBpc1BvaW50ZWQgPSBkZXBlbmRlbmNpZXMuaXNQb2ludGVkO1xuICBjb25zdCBpc1NlbGVjdGVkID0gZGVwZW5kZW5jaWVzLmlzU2VsZWN0ZWQ7XG4gIGNvbnN0IGlzRGlzYWJsZWQgPSBkZXBlbmRlbmNpZXMuaXNEaXNhYmxlZDtcbiAgY29uc3QgaXNBY3RpdmUgPSBkZXBlbmRlbmNpZXMuaXNBY3RpdmU7XG4gIGNvbnN0IGNhblBvaW50R3JvdXBzID0gZGVwZW5kZW5jaWVzLmNhblBvaW50R3JvdXBzO1xuICBjb25zdCByZXNvbHZpbmcgPSBkZXBlbmRlbmNpZXMucmVzb2x2aW5nO1xuICBjb25zdCBmbyA9IGRlcGVuZGVuY2llcy5mbztcblxuICBjb25zdCBjbGFzc2VzID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICBjb250YWluZXI6ICdtdWx0aXNlbGVjdCcsXG4gICAgY29udGFpbmVyRGlzYWJsZWQ6ICdpcy1kaXNhYmxlZCcsXG4gICAgY29udGFpbmVyT3BlbjogJ2lzLW9wZW4nLFxuICAgIGNvbnRhaW5lck9wZW5Ub3A6ICdpcy1vcGVuLXRvcCcsXG4gICAgY29udGFpbmVyQWN0aXZlOiAnaXMtYWN0aXZlJyxcbiAgICBzaW5nbGVMYWJlbDogJ211bHRpc2VsZWN0LXNpbmdsZS1sYWJlbCcsXG4gICAgc2luZ2xlTGFiZWxUZXh0OiAnbXVsdGlzZWxlY3Qtc2luZ2xlLWxhYmVsLXRleHQnLFxuICAgIG11bHRpcGxlTGFiZWw6ICdtdWx0aXNlbGVjdC1tdWx0aXBsZS1sYWJlbCcsXG4gICAgc2VhcmNoOiAnbXVsdGlzZWxlY3Qtc2VhcmNoJyxcbiAgICB0YWdzOiAnbXVsdGlzZWxlY3QtdGFncycsXG4gICAgdGFnOiAnbXVsdGlzZWxlY3QtdGFnJyxcbiAgICB0YWdEaXNhYmxlZDogJ2lzLWRpc2FibGVkJyxcbiAgICB0YWdSZW1vdmU6ICdtdWx0aXNlbGVjdC10YWctcmVtb3ZlJyxcbiAgICB0YWdSZW1vdmVJY29uOiAnbXVsdGlzZWxlY3QtdGFnLXJlbW92ZS1pY29uJyxcbiAgICB0YWdzU2VhcmNoV3JhcHBlcjogJ211bHRpc2VsZWN0LXRhZ3Mtc2VhcmNoLXdyYXBwZXInLFxuICAgIHRhZ3NTZWFyY2g6ICdtdWx0aXNlbGVjdC10YWdzLXNlYXJjaCcsXG4gICAgdGFnc1NlYXJjaENvcHk6ICdtdWx0aXNlbGVjdC10YWdzLXNlYXJjaC1jb3B5JyxcbiAgICBwbGFjZWhvbGRlcjogJ211bHRpc2VsZWN0LXBsYWNlaG9sZGVyJyxcbiAgICBjYXJldDogJ211bHRpc2VsZWN0LWNhcmV0JyxcbiAgICBjYXJldE9wZW46ICdpcy1vcGVuJyxcbiAgICBjbGVhcjogJ211bHRpc2VsZWN0LWNsZWFyJyxcbiAgICBjbGVhckljb246ICdtdWx0aXNlbGVjdC1jbGVhci1pY29uJyxcbiAgICBzcGlubmVyOiAnbXVsdGlzZWxlY3Qtc3Bpbm5lcicsXG4gICAgaW5pZmluaXRlOiAnbXVsdGlzZWxlY3QtaW5pZml0ZScsXG4gICAgaW5pZmluaXRlU3Bpbm5lcjogJ211bHRpc2VsZWN0LWluaWZpdGUtc3Bpbm5lcicsXG4gICAgZHJvcGRvd246ICdtdWx0aXNlbGVjdC1kcm9wZG93bicsXG4gICAgZHJvcGRvd25Ub3A6ICdpcy10b3AnLFxuICAgIGRyb3Bkb3duSGlkZGVuOiAnaXMtaGlkZGVuJyxcbiAgICBvcHRpb25zOiAnbXVsdGlzZWxlY3Qtb3B0aW9ucycsXG4gICAgb3B0aW9uc1RvcDogJ2lzLXRvcCcsXG4gICAgZ3JvdXA6ICdtdWx0aXNlbGVjdC1ncm91cCcsXG4gICAgZ3JvdXBMYWJlbDogJ211bHRpc2VsZWN0LWdyb3VwLWxhYmVsJyxcbiAgICBncm91cExhYmVsUG9pbnRhYmxlOiAnaXMtcG9pbnRhYmxlJyxcbiAgICBncm91cExhYmVsUG9pbnRlZDogJ2lzLXBvaW50ZWQnLFxuICAgIGdyb3VwTGFiZWxTZWxlY3RlZDogJ2lzLXNlbGVjdGVkJyxcbiAgICBncm91cExhYmVsRGlzYWJsZWQ6ICdpcy1kaXNhYmxlZCcsXG4gICAgZ3JvdXBMYWJlbFNlbGVjdGVkUG9pbnRlZDogJ2lzLXNlbGVjdGVkIGlzLXBvaW50ZWQnLFxuICAgIGdyb3VwTGFiZWxTZWxlY3RlZERpc2FibGVkOiAnaXMtc2VsZWN0ZWQgaXMtZGlzYWJsZWQnLFxuICAgIGdyb3VwT3B0aW9uczogJ211bHRpc2VsZWN0LWdyb3VwLW9wdGlvbnMnLFxuICAgIG9wdGlvbjogJ211bHRpc2VsZWN0LW9wdGlvbicsXG4gICAgb3B0aW9uUG9pbnRlZDogJ2lzLXBvaW50ZWQnLFxuICAgIG9wdGlvblNlbGVjdGVkOiAnaXMtc2VsZWN0ZWQnLFxuICAgIG9wdGlvbkRpc2FibGVkOiAnaXMtZGlzYWJsZWQnLFxuICAgIG9wdGlvblNlbGVjdGVkUG9pbnRlZDogJ2lzLXNlbGVjdGVkIGlzLXBvaW50ZWQnLFxuICAgIG9wdGlvblNlbGVjdGVkRGlzYWJsZWQ6ICdpcy1zZWxlY3RlZCBpcy1kaXNhYmxlZCcsXG4gICAgbm9PcHRpb25zOiAnbXVsdGlzZWxlY3Qtbm8tb3B0aW9ucycsXG4gICAgbm9SZXN1bHRzOiAnbXVsdGlzZWxlY3Qtbm8tcmVzdWx0cycsXG4gICAgZmFrZUlucHV0OiAnbXVsdGlzZWxlY3QtZmFrZS1pbnB1dCcsXG4gICAgc3BhY2VyOiAnbXVsdGlzZWxlY3Qtc3BhY2VyJyxcbiAgICAuLi5jbGFzc2VzXy52YWx1ZSxcbiAgfSkpO1xuXG4gIC8vID09PT09PT09PT09PT09IENPTVBVVEVEID09PT09PT09PT09PT09XG5cbiAgY29uc3Qgc2hvd0Ryb3Bkb3duID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiAhIShpc09wZW4udmFsdWUgJiYgc2hvd09wdGlvbnMudmFsdWUgJiYgKCFyZXNvbHZpbmcudmFsdWUgfHwgKHJlc29sdmluZy52YWx1ZSAmJiBmby52YWx1ZS5sZW5ndGgpKSlcbiAgfSk7XG5cbiAgY29uc3QgY2xhc3NMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGMgPSBjbGFzc2VzLnZhbHVlO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRhaW5lcjogW2MuY29udGFpbmVyXVxuICAgICAgICAuY29uY2F0KGRpc2FibGVkLnZhbHVlID8gYy5jb250YWluZXJEaXNhYmxlZCA6IFtdKVxuICAgICAgICAuY29uY2F0KHNob3dEcm9wZG93bi52YWx1ZSAmJiBvcGVuRGlyZWN0aW9uLnZhbHVlID09PSAndG9wJyAgPyBjLmNvbnRhaW5lck9wZW5Ub3AgOiBbXSlcbiAgICAgICAgLmNvbmNhdChzaG93RHJvcGRvd24udmFsdWUgJiYgb3BlbkRpcmVjdGlvbi52YWx1ZSAhPT0gJ3RvcCcgPyBjLmNvbnRhaW5lck9wZW4gOiBbXSlcbiAgICAgICAgLmNvbmNhdChpc0FjdGl2ZS52YWx1ZSA/IGMuY29udGFpbmVyQWN0aXZlIDogW10pLFxuICAgICAgc3BhY2VyOiBjLnNwYWNlcixcbiAgICAgIHNpbmdsZUxhYmVsOiBjLnNpbmdsZUxhYmVsLFxuICAgICAgc2luZ2xlTGFiZWxUZXh0OiBjLnNpbmdsZUxhYmVsVGV4dCxcbiAgICAgIG11bHRpcGxlTGFiZWw6IGMubXVsdGlwbGVMYWJlbCxcbiAgICAgIHNlYXJjaDogYy5zZWFyY2gsXG4gICAgICB0YWdzOiBjLnRhZ3MsXG4gICAgICB0YWc6IFtjLnRhZ11cbiAgICAgICAgLmNvbmNhdChkaXNhYmxlZC52YWx1ZSA/IGMudGFnRGlzYWJsZWQgOiBbXSksXG4gICAgICB0YWdSZW1vdmU6IGMudGFnUmVtb3ZlLFxuICAgICAgdGFnUmVtb3ZlSWNvbjogYy50YWdSZW1vdmVJY29uLFxuICAgICAgdGFnc1NlYXJjaFdyYXBwZXI6IGMudGFnc1NlYXJjaFdyYXBwZXIsXG4gICAgICB0YWdzU2VhcmNoOiBjLnRhZ3NTZWFyY2gsXG4gICAgICB0YWdzU2VhcmNoQ29weTogYy50YWdzU2VhcmNoQ29weSxcbiAgICAgIHBsYWNlaG9sZGVyOiBjLnBsYWNlaG9sZGVyLFxuICAgICAgY2FyZXQ6IFtjLmNhcmV0XVxuICAgICAgICAuY29uY2F0KGlzT3Blbi52YWx1ZSA/IGMuY2FyZXRPcGVuIDogW10pLFxuICAgICAgY2xlYXI6IGMuY2xlYXIsXG4gICAgICBjbGVhckljb246IGMuY2xlYXJJY29uLFxuICAgICAgc3Bpbm5lcjogYy5zcGlubmVyLFxuICAgICAgaW5pZmluaXRlOiBjLmluaWZpbml0ZSxcbiAgICAgIGluaWZpbml0ZVNwaW5uZXI6IGMuaW5pZmluaXRlU3Bpbm5lcixcbiAgICAgIGRyb3Bkb3duOiBbYy5kcm9wZG93bl1cbiAgICAgICAgLmNvbmNhdChvcGVuRGlyZWN0aW9uLnZhbHVlID09PSAndG9wJyA/IGMuZHJvcGRvd25Ub3AgOiBbXSlcbiAgICAgICAgLmNvbmNhdCghaXNPcGVuLnZhbHVlIHx8ICFzaG93T3B0aW9ucy52YWx1ZSB8fCAhc2hvd0Ryb3Bkb3duLnZhbHVlID8gYy5kcm9wZG93bkhpZGRlbiA6IFtdKSxcbiAgICAgIG9wdGlvbnM6IFtjLm9wdGlvbnNdXG4gICAgICAgIC5jb25jYXQob3BlbkRpcmVjdGlvbi52YWx1ZSA9PT0gJ3RvcCcgPyBjLm9wdGlvbnNUb3AgOiBbXSksXG4gICAgICBncm91cDogYy5ncm91cCxcbiAgICAgIGdyb3VwTGFiZWw6IChnKSA9PiB7XG4gICAgICAgIGxldCBncm91cExhYmVsID0gW2MuZ3JvdXBMYWJlbF07XG5cbiAgICAgICAgaWYgKGlzUG9pbnRlZChnKSkge1xuICAgICAgICAgIGdyb3VwTGFiZWwucHVzaChpc1NlbGVjdGVkKGcpID8gYy5ncm91cExhYmVsU2VsZWN0ZWRQb2ludGVkIDogYy5ncm91cExhYmVsUG9pbnRlZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNTZWxlY3RlZChnKSAmJiBjYW5Qb2ludEdyb3Vwcy52YWx1ZSkge1xuICAgICAgICAgIGdyb3VwTGFiZWwucHVzaChpc0Rpc2FibGVkKGcpID8gYy5ncm91cExhYmVsU2VsZWN0ZWREaXNhYmxlZCA6IGMuZ3JvdXBMYWJlbFNlbGVjdGVkKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0Rpc2FibGVkKGcpKSB7XG4gICAgICAgICAgZ3JvdXBMYWJlbC5wdXNoKGMuZ3JvdXBMYWJlbERpc2FibGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYW5Qb2ludEdyb3Vwcy52YWx1ZSkge1xuICAgICAgICAgIGdyb3VwTGFiZWwucHVzaChjLmdyb3VwTGFiZWxQb2ludGFibGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdyb3VwTGFiZWxcbiAgICAgIH0sXG4gICAgICBncm91cE9wdGlvbnM6IGMuZ3JvdXBPcHRpb25zLFxuICAgICAgb3B0aW9uOiAobywgZykgPT4ge1xuICAgICAgICBsZXQgb3B0aW9uID0gW2Mub3B0aW9uXTtcblxuICAgICAgICBpZiAoaXNQb2ludGVkKG8pKSB7XG4gICAgICAgICAgb3B0aW9uLnB1c2goaXNTZWxlY3RlZChvKSA/IGMub3B0aW9uU2VsZWN0ZWRQb2ludGVkIDogYy5vcHRpb25Qb2ludGVkKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc1NlbGVjdGVkKG8pKSB7XG4gICAgICAgICAgb3B0aW9uLnB1c2goaXNEaXNhYmxlZChvKSA/IGMub3B0aW9uU2VsZWN0ZWREaXNhYmxlZCA6IGMub3B0aW9uU2VsZWN0ZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGlzYWJsZWQobykgfHwgKGcgJiYgaXNEaXNhYmxlZChnKSkpIHtcbiAgICAgICAgICBvcHRpb24ucHVzaChjLm9wdGlvbkRpc2FibGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0sXG4gICAgICBub09wdGlvbnM6IGMubm9PcHRpb25zLFxuICAgICAgbm9SZXN1bHRzOiBjLm5vUmVzdWx0cyxcbiAgICAgIGZha2VJbnB1dDogYy5mYWtlSW5wdXQsXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGNsYXNzTGlzdCxcbiAgICBzaG93RHJvcGRvd24sXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlU2Nyb2xsJDEgKHByb3BzLCBjb250ZXh0LCBkZXApXG57XG4gIGNvbnN0IHtcbiAgICBsaW1pdCwgaW5maW5pdGUsXG4gIH0gPSB0b1JlZnMocHJvcHMpO1xuXG4gIC8vID09PT09PT09PT09PSBERVBFTkRFTkNJRVMgPT09PT09PT09PT09XG5cbiAgY29uc3QgaXNPcGVuID0gZGVwLmlzT3BlbjtcbiAgY29uc3Qgb2Zmc2V0ID0gZGVwLm9mZnNldDtcbiAgY29uc3Qgc2VhcmNoID0gZGVwLnNlYXJjaDtcbiAgY29uc3QgcGZvID0gZGVwLnBmbztcbiAgY29uc3QgZW8gPSBkZXAuZW87XG5cbiAgLy8gPT09PT09PT09PT09PT09PSBEQVRBID09PT09PT09PT09PT09PT1cblxuICAvLyBubyBleHBvcnRcbiAgY29uc3Qgb2JzZXJ2ZXIgPSByZWYobnVsbCk7XG5cbiAgY29uc3QgaW5maW5pdGVMb2FkZXIgPSByZWYobnVsbCk7XG5cbiAgLy8gPT09PT09PT09PT09PT0gQ09NUFVURUQgPT09PT09PT09PT09PT1cblxuICBjb25zdCBoYXNNb3JlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBvZmZzZXQudmFsdWUgPCBwZm8udmFsdWUubGVuZ3RoXG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PSBNRVRIT0RTID09PT09PT09PT09PT09XG5cbiAgLy8gbm8gZXhwb3J0XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0IGhhbmRsZUludGVyc2VjdGlvbk9ic2VydmVyID0gKGVudHJpZXMpID0+IHtcbiAgICBjb25zdCB7IGlzSW50ZXJzZWN0aW5nLCB0YXJnZXQgfSA9IGVudHJpZXNbMF07XG5cbiAgICBpZiAoaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRhcmdldC5vZmZzZXRQYXJlbnQ7XG4gICAgICBjb25zdCBzY3JvbGxUb3AgPSBwYXJlbnQuc2Nyb2xsVG9wO1xuXG4gICAgICBvZmZzZXQudmFsdWUgKz0gbGltaXQudmFsdWUgPT0gLTEgPyAxMCA6IGxpbWl0LnZhbHVlO1xuXG4gICAgICBuZXh0VGljaygoKSA9PiB7XG4gICAgICAgIHBhcmVudC5zY3JvbGxUb3AgPSBzY3JvbGxUb3A7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb2JzZXJ2ZSA9ICgpID0+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpc09wZW4udmFsdWUgJiYgb2Zmc2V0LnZhbHVlIDwgcGZvLnZhbHVlLmxlbmd0aCkge1xuICAgICAgb2JzZXJ2ZXIudmFsdWUub2JzZXJ2ZShpbmZpbml0ZUxvYWRlci52YWx1ZSk7XG4gICAgfSBlbHNlIGlmICghaXNPcGVuLnZhbHVlICYmIG9ic2VydmVyLnZhbHVlKSB7XG4gICAgICBvYnNlcnZlci52YWx1ZS5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9O1xuXG4gIC8vID09PT09PT09PT09PT09IFdBVENIRVJTID09PT09PT09PT09PT09XG5cbiAgd2F0Y2goaXNPcGVuLCAoKSA9PiB7XG4gICAgaWYgKCFpbmZpbml0ZS52YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgb2JzZXJ2ZSgpO1xuICB9KTtcblxuICB3YXRjaChzZWFyY2gsICgpID0+IHtcbiAgICBpZiAoIWluZmluaXRlLnZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBvZmZzZXQudmFsdWUgPSBsaW1pdC52YWx1ZTtcblxuICAgIG9ic2VydmUoKTtcbiAgfSwgeyBmbHVzaDogJ3Bvc3QnIH0pO1xuXG4gIHdhdGNoKGVvLCAoKSA9PiB7XG4gICAgaWYgKCFpbmZpbml0ZS52YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgb2JzZXJ2ZSgpO1xuICB9LCB7IGltbWVkaWF0ZTogZmFsc2UsIGZsdXNoOiAncG9zdCcgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PSBIT09LUyA9PT09PT09PT09PT09PT1cblxuICBvbk1vdW50ZWQoKCkgPT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIG9ic2VydmVyLnZhbHVlID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGhhbmRsZUludGVyc2VjdGlvbk9ic2VydmVyKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgaGFzTW9yZSxcbiAgICBpbmZpbml0ZUxvYWRlcixcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VTY3JvbGwgKHByb3BzLCBjb250ZXh0LCBkZXApXG57XG4gIGNvbnN0IHsgcGxhY2Vob2xkZXIsIGlkLCB2YWx1ZVByb3AsIGxhYmVsOiBsYWJlbFByb3AsIG1vZGUsIGdyb3VwTGFiZWwgfSA9IHRvUmVmcyhwcm9wcyk7XG5cbiAgLy8gPT09PT09PT09PT09IERFUEVOREVOQ0lFUyA9PT09PT09PT09PT1cblxuICBjb25zdCBwb2ludGVyID0gZGVwLnBvaW50ZXI7XG4gIGNvbnN0IGl2ID0gZGVwLml2O1xuICBjb25zdCBpc1NlbGVjdGVkID0gZGVwLmlzU2VsZWN0ZWQ7XG4gIGNvbnN0IGhhc1NlbGVjdGVkID0gZGVwLmhhc1NlbGVjdGVkO1xuICBjb25zdCBtdWx0aXBsZUxhYmVsVGV4dCA9IGRlcC5tdWx0aXBsZUxhYmVsVGV4dDtcblxuICAvLyA9PT09PT09PT09PT09PT09IERBVEEgPT09PT09PT09PT09PT09PVxuXG4gIGNvbnN0IGxhYmVsID0gcmVmKG51bGwpO1xuXG4gIC8vID09PT09PT09PT09PT09IENPTVBVVEVEID09PT09PT09PT09PT09XG5cbiAgY29uc3QgYXJpYU93bnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IHRleHRzID0gW107XG5cbiAgICBpZiAoaWQgJiYgaWQudmFsdWUpIHtcbiAgICAgIHRleHRzLnB1c2goaWQudmFsdWUpO1xuICAgIH1cblxuICAgIHRleHRzLnB1c2goJ211bHRpc2VsZWN0LW9wdGlvbnMnKTtcblxuICAgIHJldHVybiB0ZXh0cy5qb2luKCctJylcbiAgfSk7XG5cbiAgY29uc3QgYXJpYUFjdGl2ZURlc2NlbmRhbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IHRleHRzID0gW107XG5cbiAgICBpZiAoaWQgJiYgaWQudmFsdWUpIHtcbiAgICAgIHRleHRzLnB1c2goaWQudmFsdWUpO1xuICAgIH1cblxuICAgIHRleHRzLnB1c2goJ211bHRpc2VsZWN0LW9wdGlvbicpO1xuXG4gICAgaWYgKHBvaW50ZXIudmFsdWUgJiYgcG9pbnRlci52YWx1ZVt2YWx1ZVByb3AudmFsdWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRleHRzLnB1c2gocG9pbnRlci52YWx1ZVt2YWx1ZVByb3AudmFsdWVdKTtcblxuICAgICAgcmV0dXJuIHRleHRzLmpvaW4oJy0nKVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgYXJpYUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGxldCB0ZXh0cyA9IFtdO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAobGFiZWwudmFsdWUpIHtcbiAgICAgIHRleHRzLnB1c2gobGFiZWwudmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChwbGFjZWhvbGRlci52YWx1ZSAmJiAhaGFzU2VsZWN0ZWQudmFsdWUpIHtcbiAgICAgIHRleHRzLnB1c2gocGxhY2Vob2xkZXIudmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChtb2RlLnZhbHVlID09PSAnc2luZ2xlJyAmJiBpdi52YWx1ZSAmJiBpdi52YWx1ZVtsYWJlbFByb3AudmFsdWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRleHRzLnB1c2goaXYudmFsdWVbbGFiZWxQcm9wLnZhbHVlXSk7XG4gICAgfVxuXG4gICAgaWYgKG1vZGUudmFsdWUgPT09ICdtdWx0aXBsZScgJiYgaGFzU2VsZWN0ZWQudmFsdWUpIHtcbiAgICAgIHRleHRzLnB1c2gobXVsdGlwbGVMYWJlbFRleHQudmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChtb2RlLnZhbHVlID09PSAndGFncycgJiYgaGFzU2VsZWN0ZWQudmFsdWUpIHtcbiAgICAgIHRleHRzLnB1c2goLi4uaXYudmFsdWUubWFwKHYgPT4gdltsYWJlbFByb3AudmFsdWVdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHRzLmpvaW4oJywgJylcbiAgfSk7XG5cbiAgY29uc3QgYXJpYVBsYWNlaG9sZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBhcmlhTGFiZWwudmFsdWVcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09IE1FVEhPRFMgPT09PT09PT09PT09PT1cblxuICBjb25zdCBhcmlhT3B0aW9uSWQgPSAob3B0aW9uKSA9PiB7XG4gICAgbGV0IHRleHRzID0gW107XG5cbiAgICBpZiAoaWQgJiYgaWQudmFsdWUpIHtcbiAgICAgIHRleHRzLnB1c2goaWQudmFsdWUpO1xuICAgIH1cblxuICAgIHRleHRzLnB1c2goJ211bHRpc2VsZWN0LW9wdGlvbicpO1xuXG4gICAgdGV4dHMucHVzaChvcHRpb25bdmFsdWVQcm9wLnZhbHVlXSk7XG5cbiAgICByZXR1cm4gdGV4dHMuam9pbignLScpXG4gIH07XG5cbiAgY29uc3QgYXJpYU9wdGlvbkxhYmVsID0gKG9wdGlvbikgPT4ge1xuICAgIGxldCB0ZXh0cyA9IFtdO1xuXG4gICAgaWYgKGlzU2VsZWN0ZWQob3B0aW9uKSkge1xuICAgICAgdGV4dHMucHVzaCgn4pyTJyk7XG4gICAgfVxuXG4gICAgdGV4dHMucHVzaChvcHRpb25bbGFiZWxQcm9wLnZhbHVlXSk7XG5cbiAgICByZXR1cm4gdGV4dHMuam9pbignICcpXG4gIH07XG5cbiAgY29uc3QgYXJpYUdyb3VwTGFiZWwgPSAoZ3JvdXApID0+IHtcbiAgICBsZXQgdGV4dHMgPSBbXTtcblxuICAgIHRleHRzLnB1c2goZ3JvdXBbZ3JvdXBMYWJlbC52YWx1ZV0pO1xuXG4gICAgcmV0dXJuIHRleHRzLmpvaW4oJyAnKVxuICB9O1xuXG4gIC8vID09PT09PT09PT09PT09PSBIT09LUyA9PT09PT09PT09PT09PT09XG5cbiAgb25Nb3VudGVkKCgpID0+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChpZCAmJiBpZC52YWx1ZSAmJiBkb2N1bWVudCAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKSB7XG4gICAgICBsZXQgZm9yVGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2Zvcj1cIiR7aWQudmFsdWV9XCJdYCk7XG4gICAgICBsYWJlbC52YWx1ZSA9IGZvclRhZyA/IGZvclRhZy5pbm5lclRleHQgOiBudWxsO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBhcmlhT3ducyxcbiAgICBhcmlhTGFiZWwsXG4gICAgYXJpYVBsYWNlaG9sZGVyLFxuICAgIGFyaWFBY3RpdmVEZXNjZW5kYW50LFxuICAgIGFyaWFPcHRpb25JZCxcbiAgICBhcmlhT3B0aW9uTGFiZWwsXG4gICAgYXJpYUdyb3VwTGFiZWwsXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURlcHMgKHByb3BzLCBjb250ZXh0LCBmZWF0dXJlcywgZGVwcyA9IHt9KSB7XG4gIGZlYXR1cmVzLmZvckVhY2goKGNvbXBvc2FibGUpID0+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjb21wb3NhYmxlKSB7XG4gICAgICBkZXBzID0ge1xuICAgICAgICAuLi5kZXBzLFxuICAgICAgICAuLi5jb21wb3NhYmxlKHByb3BzLCBjb250ZXh0LCBkZXBzKVxuICAgICAgfTtcbiAgICB9XG5cbiAgfSk7XG4gIFxuICByZXR1cm4gZGVwc1xufVxuXG52YXIgc2NyaXB0ID0ge1xuICAgIG5hbWU6ICdNdWx0aXNlbGVjdCcsXG4gICAgZW1pdHM6IFtcbiAgICAgICdwYXN0ZScsICdvcGVuJywgJ2Nsb3NlJywgJ3NlbGVjdCcsICdkZXNlbGVjdCcsIFxuICAgICAgJ2lucHV0JywgJ3NlYXJjaC1jaGFuZ2UnLCAndGFnJywgJ29wdGlvbicsICd1cGRhdGU6bW9kZWxWYWx1ZScsXG4gICAgICAnY2hhbmdlJywgJ2NsZWFyJywgJ2tleWRvd24nLCAna2V5dXAnLFxuICAgIF0sXG4gICAgcHJvcHM6IHtcbiAgICAgIHZhbHVlOiB7XG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBtb2RlbFZhbHVlOiB7XG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIHR5cGU6IFtBcnJheSwgT2JqZWN0LCBGdW5jdGlvbl0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogKCkgPT4gKFtdKVxuICAgICAgfSxcbiAgICAgIGlkOiB7XG4gICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBuYW1lOiB7XG4gICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogJ211bHRpc2VsZWN0JyxcbiAgICAgIH0sXG4gICAgICBkaXNhYmxlZDoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGxhYmVsOiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiAnbGFiZWwnLFxuICAgICAgfSxcbiAgICAgIHRyYWNrQnk6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICB2YWx1ZVByb3A6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6ICd2YWx1ZScsXG4gICAgICB9LFxuICAgICAgcGxhY2Vob2xkZXI6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICB9LFxuICAgICAgbW9kZToge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogJ3NpbmdsZScsIC8vIHNpbmdsZXxtdWx0aXBsZXx0YWdzXG4gICAgICB9LFxuICAgICAgc2VhcmNoYWJsZToge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGxpbWl0OiB7XG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiAtMSxcbiAgICAgIH0sXG4gICAgICBoaWRlU2VsZWN0ZWQ6IHtcbiAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGNyZWF0ZVRhZzoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVPcHRpb246IHtcbiAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgYXBwZW5kTmV3VGFnOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGFwcGVuZE5ld09wdGlvbjoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBhZGRUYWdPbjoge1xuICAgICAgICB0eXBlOiBBcnJheSxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgYWRkT3B0aW9uT246IHtcbiAgICAgICAgdHlwZTogQXJyYXksXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGNhcmV0OiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBsb2FkaW5nOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgbm9PcHRpb25zVGV4dDoge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogJ1RoZSBsaXN0IGlzIGVtcHR5JyxcbiAgICAgIH0sXG4gICAgICBub1Jlc3VsdHNUZXh0OiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiAnTm8gcmVzdWx0cyBmb3VuZCcsXG4gICAgICB9LFxuICAgICAgbXVsdGlwbGVMYWJlbDoge1xuICAgICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIG9iamVjdDoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGRlbGF5OiB7XG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiAtMSxcbiAgICAgIH0sXG4gICAgICBtaW5DaGFyczoge1xuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogMCxcbiAgICAgIH0sXG4gICAgICByZXNvbHZlT25Mb2FkOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBmaWx0ZXJSZXN1bHRzOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBjbGVhck9uU2VhcmNoOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgY2xlYXJPblNlbGVjdDoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgY2FuRGVzZWxlY3Q6IHtcbiAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGNhbkNsZWFyOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBtYXg6IHtcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IC0xLFxuICAgICAgfSxcbiAgICAgIHNob3dPcHRpb25zOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICByZXF1aXJlZDoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIG9wZW5EaXJlY3Rpb246IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6ICdib3R0b20nLFxuICAgICAgfSxcbiAgICAgIG5hdGl2ZVN1cHBvcnQ6IHtcbiAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBjbGFzc2VzOiB7XG4gICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiAoKSA9PiAoe30pXG4gICAgICB9LFxuICAgICAgc3RyaWN0OiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBjbG9zZU9uU2VsZWN0OiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBhdXRvY29tcGxldGU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgZ3JvdXBzOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgZ3JvdXBMYWJlbDoge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogJ2xhYmVsJyxcbiAgICAgIH0sXG4gICAgICBncm91cE9wdGlvbnM6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6ICdvcHRpb25zJyxcbiAgICAgIH0sXG4gICAgICBncm91cEhpZGVFbXB0eToge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGdyb3VwU2VsZWN0OiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBpbnB1dFR5cGU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6ICd0ZXh0JyxcbiAgICAgIH0sXG4gICAgICBhdHRyczoge1xuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgICAgZGVmYXVsdDogKCkgPT4gKHt9KSxcbiAgICAgIH0sXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIHR5cGU6IEZ1bmN0aW9uLFxuICAgICAgfSxcbiAgICAgIGRpc2FibGVkUHJvcDoge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogJ2Rpc2FibGVkJyxcbiAgICAgIH0sXG4gICAgICBzZWFyY2hTdGFydDoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHJldmVyc2U6IHtcbiAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICByZWdleDoge1xuICAgICAgICB0eXBlOiBbT2JqZWN0LCBTdHJpbmcsIFJlZ0V4cF0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIHJ0bDoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGluZmluaXRlOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICB9LFxuICAgIH0sXG4gICAgc2V0dXAocHJvcHMsIGNvbnRleHQpXG4gICAgeyBcbiAgICAgIHJldHVybiByZXNvbHZlRGVwcyhwcm9wcywgY29udGV4dCwgW1xuICAgICAgICB1c2VWYWx1ZSxcbiAgICAgICAgdXNlUG9pbnRlciQxLFxuICAgICAgICB1c2VEcm9wZG93bixcbiAgICAgICAgdXNlU2VhcmNoLFxuICAgICAgICB1c2VEYXRhLFxuICAgICAgICB1c2VNdWx0aXNlbGVjdCxcbiAgICAgICAgdXNlT3B0aW9ucyxcbiAgICAgICAgdXNlU2Nyb2xsJDEsXG4gICAgICAgIHVzZVBvaW50ZXIsXG4gICAgICAgIHVzZUtleWJvYXJkLFxuICAgICAgICB1c2VDbGFzc2VzLFxuICAgICAgICB1c2VTY3JvbGwsXG4gICAgICBdKVxuICAgIH1cbiAgfTtcblxuY29uc3QgX2hvaXN0ZWRfMSA9IFtcInRhYmluZGV4XCIsIFwiaWRcIiwgXCJkaXJcIiwgXCJhcmlhLW93bnNcIiwgXCJhcmlhLWV4cGFuZGVkXCIsIFwiYXJpYS1sYWJlbFwiLCBcImFyaWEtcGxhY2Vob2xkZXJcIiwgXCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIl07XG5jb25zdCBfaG9pc3RlZF8yID0gW1widHlwZVwiLCBcIm1vZGVsVmFsdWVcIiwgXCJ2YWx1ZVwiLCBcImF1dG9jb21wbGV0ZVwiLCBcImlkXCIsIFwiYXJpYS1vd25zXCIsIFwiYXJpYS1leHBhbmRlZFwiLCBcImFyaWEtbGFiZWxcIiwgXCJhcmlhLXBsYWNlaG9sZGVyXCIsIFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCJdO1xuY29uc3QgX2hvaXN0ZWRfMyA9IFtcIm9uQ2xpY2tcIl07XG5jb25zdCBfaG9pc3RlZF80ID0gW1widHlwZVwiLCBcIm1vZGVsVmFsdWVcIiwgXCJ2YWx1ZVwiLCBcImlkXCIsIFwiYXV0b2NvbXBsZXRlXCIsIFwiYXJpYS1vd25zXCIsIFwiYXJpYS1leHBhbmRlZFwiLCBcImFyaWEtbGFiZWxcIiwgXCJhcmlhLXBsYWNlaG9sZGVyXCIsIFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCJdO1xuY29uc3QgX2hvaXN0ZWRfNSA9IFtcImlubmVySFRNTFwiXTtcbmNvbnN0IF9ob2lzdGVkXzYgPSBbXCJpbm5lckhUTUxcIl07XG5jb25zdCBfaG9pc3RlZF83ID0gW1wiaWRcIl07XG5jb25zdCBfaG9pc3RlZF84ID0gW1wiZGF0YS1wb2ludGVkXCIsIFwib25Nb3VzZWVudGVyXCIsIFwib25DbGlja1wiXTtcbmNvbnN0IF9ob2lzdGVkXzkgPSBbXCJpbm5lckhUTUxcIl07XG5jb25zdCBfaG9pc3RlZF8xMCA9IFtcImFyaWEtbGFiZWxcIl07XG5jb25zdCBfaG9pc3RlZF8xMSA9IFtcImRhdGEtcG9pbnRlZFwiLCBcImRhdGEtc2VsZWN0ZWRcIiwgXCJpZFwiLCBcImFyaWEtbGFiZWxcIiwgXCJvbk1vdXNlZW50ZXJcIiwgXCJvbkNsaWNrXCJdO1xuY29uc3QgX2hvaXN0ZWRfMTIgPSBbXCJpbm5lckhUTUxcIl07XG5jb25zdCBfaG9pc3RlZF8xMyA9IFtcImlkXCIsIFwiYXJpYS1sYWJlbFwiLCBcImRhdGEtcG9pbnRlZFwiLCBcImRhdGEtc2VsZWN0ZWRcIiwgXCJvbk1vdXNlZW50ZXJcIiwgXCJvbkNsaWNrXCJdO1xuY29uc3QgX2hvaXN0ZWRfMTQgPSBbXCJpbm5lckhUTUxcIl07XG5jb25zdCBfaG9pc3RlZF8xNSA9IFtcImlubmVySFRNTFwiXTtcbmNvbnN0IF9ob2lzdGVkXzE2ID0gW1wiaW5uZXJIVE1MXCJdO1xuY29uc3QgX2hvaXN0ZWRfMTcgPSBbXCJ2YWx1ZVwiXTtcbmNvbnN0IF9ob2lzdGVkXzE4ID0gW1wibmFtZVwiLCBcInZhbHVlXCJdO1xuY29uc3QgX2hvaXN0ZWRfMTkgPSBbXCJuYW1lXCIsIFwidmFsdWVcIl07XG5cbmZ1bmN0aW9uIHJlbmRlcihfY3R4LCBfY2FjaGUsICRwcm9wcywgJHNldHVwLCAkZGF0YSwgJG9wdGlvbnMpIHtcbiAgcmV0dXJuIChvcGVuQmxvY2soKSwgY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIHtcbiAgICByZWY6IFwibXVsdGlzZWxlY3RcIixcbiAgICB0YWJpbmRleDogX2N0eC50YWJpbmRleCxcbiAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3QuY29udGFpbmVyKSxcbiAgICBpZDogJHByb3BzLnNlYXJjaGFibGUgPyB1bmRlZmluZWQgOiAkcHJvcHMuaWQsXG4gICAgZGlyOiAkcHJvcHMucnRsID8gJ3J0bCcgOiB1bmRlZmluZWQsXG4gICAgXCJhcmlhLW93bnNcIjogX2N0eC5hcmlhT3ducyxcbiAgICBcImFyaWEtZXhwYW5kZWRcIjogX2N0eC5pc09wZW4sXG4gICAgXCJhcmlhLWxhYmVsXCI6IF9jdHguYXJpYUxhYmVsLFxuICAgIFwiYXJpYS1wbGFjZWhvbGRlclwiOiBfY3R4LmFyaWFQbGFjZWhvbGRlcixcbiAgICBcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiOiBfY3R4LmFyaWFBY3RpdmVEZXNjZW5kYW50LFxuICAgIG9uRm9jdXNpbjogX2NhY2hlWzhdIHx8IChfY2FjaGVbOF0gPSAoLi4uYXJncykgPT4gKF9jdHguYWN0aXZhdGUgJiYgX2N0eC5hY3RpdmF0ZSguLi5hcmdzKSkpLFxuICAgIG9uRm9jdXNvdXQ6IF9jYWNoZVs5XSB8fCAoX2NhY2hlWzldID0gKC4uLmFyZ3MpID0+IChfY3R4LmRlYWN0aXZhdGUgJiYgX2N0eC5kZWFjdGl2YXRlKC4uLmFyZ3MpKSksXG4gICAgb25LZXlkb3duOiBfY2FjaGVbMTBdIHx8IChfY2FjaGVbMTBdID0gKC4uLmFyZ3MpID0+IChfY3R4LmhhbmRsZUtleWRvd24gJiYgX2N0eC5oYW5kbGVLZXlkb3duKC4uLmFyZ3MpKSksXG4gICAgb25LZXl1cDogX2NhY2hlWzExXSB8fCAoX2NhY2hlWzExXSA9ICguLi5hcmdzKSA9PiAoX2N0eC5oYW5kbGVLZXl1cCAmJiBfY3R4LmhhbmRsZUtleXVwKC4uLmFyZ3MpKSksXG4gICAgb25Gb2N1czogX2NhY2hlWzEyXSB8fCAoX2NhY2hlWzEyXSA9ICguLi5hcmdzKSA9PiAoX2N0eC5oYW5kbGVGb2N1cyAmJiBfY3R4LmhhbmRsZUZvY3VzKC4uLmFyZ3MpKSksXG4gICAgb25Nb3VzZWRvd246IF9jYWNoZVsxM10gfHwgKF9jYWNoZVsxM10gPSAoLi4uYXJncykgPT4gKF9jdHguaGFuZGxlTW91c2Vkb3duICYmIF9jdHguaGFuZGxlTW91c2Vkb3duKC4uLmFyZ3MpKSksXG4gICAgcm9sZTogXCJjb21ib2JveFwiXG4gIH0sIFtcbiAgICBjcmVhdGVDb21tZW50Vk5vZGUoXCIgU2VhcmNoIFwiKSxcbiAgICAoJHByb3BzLm1vZGUgIT09ICd0YWdzJyAmJiAkcHJvcHMuc2VhcmNoYWJsZSAmJiAhJHByb3BzLmRpc2FibGVkKVxuICAgICAgPyAob3BlbkJsb2NrKCksIGNyZWF0ZUVsZW1lbnRCbG9jayhcImlucHV0XCIsIG1lcmdlUHJvcHMoe1xuICAgICAgICAgIGtleTogMCxcbiAgICAgICAgICB0eXBlOiAkcHJvcHMuaW5wdXRUeXBlLFxuICAgICAgICAgIG1vZGVsVmFsdWU6IF9jdHguc2VhcmNoLFxuICAgICAgICAgIHZhbHVlOiBfY3R4LnNlYXJjaCxcbiAgICAgICAgICBjbGFzczogX2N0eC5jbGFzc0xpc3Quc2VhcmNoLFxuICAgICAgICAgIGF1dG9jb21wbGV0ZTogJHByb3BzLmF1dG9jb21wbGV0ZSxcbiAgICAgICAgICBpZDogJHByb3BzLnNlYXJjaGFibGUgPyAkcHJvcHMuaWQgOiB1bmRlZmluZWRcbiAgICAgICAgfSwgJHByb3BzLmF0dHJzLCB7XG4gICAgICAgICAgXCJhcmlhLW93bnNcIjogX2N0eC5hcmlhT3ducyxcbiAgICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogX2N0eC5pc09wZW4sXG4gICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IF9jdHguYXJpYUxhYmVsLFxuICAgICAgICAgIFwiYXJpYS1wbGFjZWhvbGRlclwiOiBfY3R4LmFyaWFQbGFjZWhvbGRlcixcbiAgICAgICAgICBcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiOiBfY3R4LmFyaWFBY3RpdmVEZXNjZW5kYW50LFxuICAgICAgICAgIG9uSW5wdXQ6IF9jYWNoZVswXSB8fCAoX2NhY2hlWzBdID0gKC4uLmFyZ3MpID0+IChfY3R4LmhhbmRsZVNlYXJjaElucHV0ICYmIF9jdHguaGFuZGxlU2VhcmNoSW5wdXQoLi4uYXJncykpKSxcbiAgICAgICAgICBvbktleXByZXNzOiBfY2FjaGVbMV0gfHwgKF9jYWNoZVsxXSA9ICguLi5hcmdzKSA9PiAoX2N0eC5oYW5kbGVLZXlwcmVzcyAmJiBfY3R4LmhhbmRsZUtleXByZXNzKC4uLmFyZ3MpKSksXG4gICAgICAgICAgb25QYXN0ZTogX2NhY2hlWzJdIHx8IChfY2FjaGVbMl0gPSB3aXRoTW9kaWZpZXJzKCguLi5hcmdzKSA9PiAoX2N0eC5oYW5kbGVQYXN0ZSAmJiBfY3R4LmhhbmRsZVBhc3RlKC4uLmFyZ3MpKSwgW1wic3RvcFwiXSkpLFxuICAgICAgICAgIHJlZjogXCJpbnB1dFwiLFxuICAgICAgICAgIHJvbGU6IFwiY29tYm9ib3hcIlxuICAgICAgICB9KSwgbnVsbCwgMTYgLyogRlVMTF9QUk9QUyAqLywgX2hvaXN0ZWRfMikpXG4gICAgICA6IGNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSksXG4gICAgY3JlYXRlQ29tbWVudFZOb2RlKFwiIFRhZ3MgKHdpdGggc2VhcmNoKSBcIiksXG4gICAgKCRwcm9wcy5tb2RlID09ICd0YWdzJylcbiAgICAgID8gKG9wZW5CbG9jaygpLCBjcmVhdGVFbGVtZW50QmxvY2soXCJkaXZcIiwge1xuICAgICAgICAgIGtleTogMSxcbiAgICAgICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3QudGFncylcbiAgICAgICAgfSwgW1xuICAgICAgICAgIChvcGVuQmxvY2sodHJ1ZSksIGNyZWF0ZUVsZW1lbnRCbG9jayhGcmFnbWVudCwgbnVsbCwgcmVuZGVyTGlzdChfY3R4Lml2LCAob3B0aW9uLCBpLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcInRhZ1wiLCB7XG4gICAgICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxuICAgICAgICAgICAgICBoYW5kbGVUYWdSZW1vdmU6IF9jdHguaGFuZGxlVGFnUmVtb3ZlLFxuICAgICAgICAgICAgICBkaXNhYmxlZDogJHByb3BzLmRpc2FibGVkXG4gICAgICAgICAgICB9LCAoKSA9PiBbXG4gICAgICAgICAgICAgIChvcGVuQmxvY2soKSwgY3JlYXRlRWxlbWVudEJsb2NrKFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0LnRhZyksXG4gICAgICAgICAgICAgICAga2V5OiBrZXlcbiAgICAgICAgICAgICAgfSwgW1xuICAgICAgICAgICAgICAgIGNyZWF0ZVRleHRWTm9kZSh0b0Rpc3BsYXlTdHJpbmcob3B0aW9uWyRwcm9wcy5sYWJlbF0pICsgXCIgXCIsIDEgLyogVEVYVCAqLyksXG4gICAgICAgICAgICAgICAgKCEkcHJvcHMuZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICA/IChvcGVuQmxvY2soKSwgY3JlYXRlRWxlbWVudEJsb2NrKFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBub3JtYWxpemVDbGFzcyhfY3R4LmNsYXNzTGlzdC50YWdSZW1vdmUpLFxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICRldmVudCA9PiAoX2N0eC5oYW5kbGVUYWdSZW1vdmUob3B0aW9uLCAkZXZlbnQpKVxuICAgICAgICAgICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3QudGFnUmVtb3ZlSWNvbilcbiAgICAgICAgICAgICAgICAgICAgICB9LCBudWxsLCAyIC8qIENMQVNTICovKVxuICAgICAgICAgICAgICAgICAgICBdLCAxMCAvKiBDTEFTUywgUFJPUFMgKi8sIF9ob2lzdGVkXzMpKVxuICAgICAgICAgICAgICAgICAgOiBjcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpXG4gICAgICAgICAgICAgIF0sIDIgLyogQ0xBU1MgKi8pKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICB9KSwgMjU2IC8qIFVOS0VZRURfRlJBR01FTlQgKi8pKSxcbiAgICAgICAgICBjcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwge1xuICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0LnRhZ3NTZWFyY2hXcmFwcGVyKSxcbiAgICAgICAgICAgIHJlZjogXCJ0YWdzXCJcbiAgICAgICAgICB9LCBbXG4gICAgICAgICAgICBjcmVhdGVDb21tZW50Vk5vZGUoXCIgVXNlZCBmb3IgbWVhc3VyaW5nIHNlYXJjaCB3aWR0aCBcIiksXG4gICAgICAgICAgICBjcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0LnRhZ3NTZWFyY2hDb3B5KVxuICAgICAgICAgICAgfSwgdG9EaXNwbGF5U3RyaW5nKF9jdHguc2VhcmNoKSwgMyAvKiBURVhULCBDTEFTUyAqLyksXG4gICAgICAgICAgICBjcmVhdGVDb21tZW50Vk5vZGUoXCIgQWN0dWFsIHNlYXJjaCBpbnB1dCBcIiksXG4gICAgICAgICAgICAoJHByb3BzLnNlYXJjaGFibGUgJiYgISRwcm9wcy5kaXNhYmxlZClcbiAgICAgICAgICAgICAgPyAob3BlbkJsb2NrKCksIGNyZWF0ZUVsZW1lbnRCbG9jayhcImlucHV0XCIsIG1lcmdlUHJvcHMoe1xuICAgICAgICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJHByb3BzLmlucHV0VHlwZSxcbiAgICAgICAgICAgICAgICAgIG1vZGVsVmFsdWU6IF9jdHguc2VhcmNoLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IF9jdHguc2VhcmNoLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6IF9jdHguY2xhc3NMaXN0LnRhZ3NTZWFyY2gsXG4gICAgICAgICAgICAgICAgICBpZDogJHByb3BzLnNlYXJjaGFibGUgPyAkcHJvcHMuaWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU6ICRwcm9wcy5hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICB9LCAkcHJvcHMuYXR0cnMsIHtcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1vd25zXCI6IF9jdHguYXJpYU93bnMsXG4gICAgICAgICAgICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogX2N0eC5pc09wZW4sXG4gICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogX2N0eC5hcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgICBcImFyaWEtcGxhY2Vob2xkZXJcIjogX2N0eC5hcmlhUGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICBcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiOiBfY3R4LmFyaWFBY3RpdmVEZXNjZW5kYW50LFxuICAgICAgICAgICAgICAgICAgb25JbnB1dDogX2NhY2hlWzNdIHx8IChfY2FjaGVbM10gPSAoLi4uYXJncykgPT4gKF9jdHguaGFuZGxlU2VhcmNoSW5wdXQgJiYgX2N0eC5oYW5kbGVTZWFyY2hJbnB1dCguLi5hcmdzKSkpLFxuICAgICAgICAgICAgICAgICAgb25LZXlwcmVzczogX2NhY2hlWzRdIHx8IChfY2FjaGVbNF0gPSAoLi4uYXJncykgPT4gKF9jdHguaGFuZGxlS2V5cHJlc3MgJiYgX2N0eC5oYW5kbGVLZXlwcmVzcyguLi5hcmdzKSkpLFxuICAgICAgICAgICAgICAgICAgb25QYXN0ZTogX2NhY2hlWzVdIHx8IChfY2FjaGVbNV0gPSB3aXRoTW9kaWZpZXJzKCguLi5hcmdzKSA9PiAoX2N0eC5oYW5kbGVQYXN0ZSAmJiBfY3R4LmhhbmRsZVBhc3RlKC4uLmFyZ3MpKSwgW1wic3RvcFwiXSkpLFxuICAgICAgICAgICAgICAgICAgcmVmOiBcImlucHV0XCIsXG4gICAgICAgICAgICAgICAgICByb2xlOiBcImNvbWJvYm94XCJcbiAgICAgICAgICAgICAgICB9KSwgbnVsbCwgMTYgLyogRlVMTF9QUk9QUyAqLywgX2hvaXN0ZWRfNCkpXG4gICAgICAgICAgICAgIDogY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKVxuICAgICAgICAgIF0sIDIgLyogQ0xBU1MgKi8pXG4gICAgICAgIF0sIDIgLyogQ0xBU1MgKi8pKVxuICAgICAgOiBjcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpLFxuICAgIGNyZWF0ZUNvbW1lbnRWTm9kZShcIiBTaW5nbGUgbGFiZWwgXCIpLFxuICAgICgkcHJvcHMubW9kZSA9PSAnc2luZ2xlJyAmJiBfY3R4Lmhhc1NlbGVjdGVkICYmICFfY3R4LnNlYXJjaCAmJiBfY3R4Lml2KVxuICAgICAgPyByZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcInNpbmdsZWxhYmVsXCIsIHtcbiAgICAgICAgICBrZXk6IDIsXG4gICAgICAgICAgdmFsdWU6IF9jdHguaXZcbiAgICAgICAgfSwgKCkgPT4gW1xuICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7XG4gICAgICAgICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3Quc2luZ2xlTGFiZWwpXG4gICAgICAgICAgfSwgW1xuICAgICAgICAgICAgY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7XG4gICAgICAgICAgICAgIGNsYXNzOiBub3JtYWxpemVDbGFzcyhfY3R4LmNsYXNzTGlzdC5zaW5nbGVMYWJlbFRleHQpLFxuICAgICAgICAgICAgICBpbm5lckhUTUw6IF9jdHguaXZbJHByb3BzLmxhYmVsXVxuICAgICAgICAgICAgfSwgbnVsbCwgMTAgLyogQ0xBU1MsIFBST1BTICovLCBfaG9pc3RlZF81KVxuICAgICAgICAgIF0sIDIgLyogQ0xBU1MgKi8pXG4gICAgICAgIF0pXG4gICAgICA6IGNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSksXG4gICAgY3JlYXRlQ29tbWVudFZOb2RlKFwiIE11bHRpcGxlIGxhYmVsIFwiKSxcbiAgICAoJHByb3BzLm1vZGUgPT0gJ211bHRpcGxlJyAmJiBfY3R4Lmhhc1NlbGVjdGVkICYmICFfY3R4LnNlYXJjaClcbiAgICAgID8gcmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJtdWx0aXBsZWxhYmVsXCIsIHtcbiAgICAgICAgICBrZXk6IDMsXG4gICAgICAgICAgdmFsdWVzOiBfY3R4Lml2XG4gICAgICAgIH0sICgpID0+IFtcbiAgICAgICAgICBjcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwge1xuICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0Lm11bHRpcGxlTGFiZWwpLFxuICAgICAgICAgICAgaW5uZXJIVE1MOiBfY3R4Lm11bHRpcGxlTGFiZWxUZXh0XG4gICAgICAgICAgfSwgbnVsbCwgMTAgLyogQ0xBU1MsIFBST1BTICovLCBfaG9pc3RlZF82KVxuICAgICAgICBdKVxuICAgICAgOiBjcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpLFxuICAgIGNyZWF0ZUNvbW1lbnRWTm9kZShcIiBQbGFjZWhvbGRlciBcIiksXG4gICAgKCRwcm9wcy5wbGFjZWhvbGRlciAmJiAhX2N0eC5oYXNTZWxlY3RlZCAmJiAhX2N0eC5zZWFyY2gpXG4gICAgICA/IHJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwicGxhY2Vob2xkZXJcIiwgeyBrZXk6IDQgfSwgKCkgPT4gW1xuICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7XG4gICAgICAgICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3QucGxhY2Vob2xkZXIpXG4gICAgICAgICAgfSwgdG9EaXNwbGF5U3RyaW5nKCRwcm9wcy5wbGFjZWhvbGRlciksIDMgLyogVEVYVCwgQ0xBU1MgKi8pXG4gICAgICAgIF0pXG4gICAgICA6IGNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSksXG4gICAgY3JlYXRlQ29tbWVudFZOb2RlKFwiIFNwaW5uZXIgXCIpLFxuICAgICgkcHJvcHMubG9hZGluZyB8fCBfY3R4LnJlc29sdmluZylcbiAgICAgID8gcmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJzcGlubmVyXCIsIHsga2V5OiA1IH0sICgpID0+IFtcbiAgICAgICAgICBjcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBub3JtYWxpemVDbGFzcyhfY3R4LmNsYXNzTGlzdC5zcGlubmVyKVxuICAgICAgICAgIH0sIG51bGwsIDIgLyogQ0xBU1MgKi8pXG4gICAgICAgIF0pXG4gICAgICA6IGNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSksXG4gICAgY3JlYXRlQ29tbWVudFZOb2RlKFwiIENsZWFyIFwiKSxcbiAgICAoX2N0eC5oYXNTZWxlY3RlZCAmJiAhJHByb3BzLmRpc2FibGVkICYmICRwcm9wcy5jYW5DbGVhciAmJiAhX2N0eC5idXN5KVxuICAgICAgPyByZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcImNsZWFyXCIsIHtcbiAgICAgICAgICBrZXk6IDYsXG4gICAgICAgICAgY2xlYXI6IF9jdHguY2xlYXJcbiAgICAgICAgfSwgKCkgPT4gW1xuICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0LmNsZWFyKSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IF9jYWNoZVs2XSB8fCAoX2NhY2hlWzZdID0gKC4uLmFyZ3MpID0+IChfY3R4LmNsZWFyICYmIF9jdHguY2xlYXIoLi4uYXJncykpKVxuICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3QuY2xlYXJJY29uKVxuICAgICAgICAgICAgfSwgbnVsbCwgMiAvKiBDTEFTUyAqLylcbiAgICAgICAgICBdLCAyIC8qIENMQVNTICovKVxuICAgICAgICBdKVxuICAgICAgOiBjcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpLFxuICAgIGNyZWF0ZUNvbW1lbnRWTm9kZShcIiBDYXJldCBcIiksXG4gICAgKCRwcm9wcy5jYXJldCAmJiAkcHJvcHMuc2hvd09wdGlvbnMpXG4gICAgICA/IHJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiY2FyZXRcIiwgeyBrZXk6IDcgfSwgKCkgPT4gW1xuICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0LmNhcmV0KSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IF9jYWNoZVs3XSB8fCAoX2NhY2hlWzddID0gKC4uLmFyZ3MpID0+IChfY3R4LmhhbmRsZUNhcmV0Q2xpY2sgJiYgX2N0eC5oYW5kbGVDYXJldENsaWNrKC4uLmFyZ3MpKSlcbiAgICAgICAgICB9LCBudWxsLCAyIC8qIENMQVNTICovKVxuICAgICAgICBdKVxuICAgICAgOiBjcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpLFxuICAgIGNyZWF0ZUNvbW1lbnRWTm9kZShcIiBPcHRpb25zIFwiKSxcbiAgICBjcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0LmRyb3Bkb3duKSxcbiAgICAgIHRhYmluZGV4OiBcIi0xXCJcbiAgICB9LCBbXG4gICAgICByZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcImJlZm9yZWxpc3RcIiwgeyBvcHRpb25zOiBfY3R4LmZvIH0pLFxuICAgICAgY3JlYXRlRWxlbWVudFZOb2RlKFwidWxcIiwge1xuICAgICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3Qub3B0aW9ucyksXG4gICAgICAgIGlkOiBfY3R4LmFyaWFPd25zLFxuICAgICAgICByb2xlOiBcImxpc3Rib3hcIlxuICAgICAgfSwgW1xuICAgICAgICAoJHByb3BzLmdyb3VwcylcbiAgICAgICAgICA/IChvcGVuQmxvY2sodHJ1ZSksIGNyZWF0ZUVsZW1lbnRCbG9jayhGcmFnbWVudCwgeyBrZXk6IDAgfSwgcmVuZGVyTGlzdChfY3R4LmZnLCAoZ3JvdXAsIGksIGtleSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKG9wZW5CbG9jaygpLCBjcmVhdGVFbGVtZW50QmxvY2soXCJsaVwiLCB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0Lmdyb3VwKSxcbiAgICAgICAgICAgICAgICBrZXk6IGtleVxuICAgICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiBub3JtYWxpemVDbGFzcyhfY3R4LmNsYXNzTGlzdC5ncm91cExhYmVsKGdyb3VwKSksXG4gICAgICAgICAgICAgICAgICBcImRhdGEtcG9pbnRlZFwiOiBfY3R4LmlzUG9pbnRlZChncm91cCksXG4gICAgICAgICAgICAgICAgICBvbk1vdXNlZW50ZXI6ICRldmVudCA9PiAoX2N0eC5zZXRQb2ludGVyKGdyb3VwKSksXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrOiAkZXZlbnQgPT4gKF9jdHguaGFuZGxlR3JvdXBDbGljayhncm91cCkpLFxuICAgICAgICAgICAgICAgICAgcm9sZTogXCJub25lXCJcbiAgICAgICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICAgICByZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcImdyb3VwbGFiZWxcIiwge1xuICAgICAgICAgICAgICAgICAgICBncm91cDogZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IF9jdHguaXNTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgaXNQb2ludGVkOiBfY3R4LmlzUG9pbnRlZFxuICAgICAgICAgICAgICAgICAgfSwgKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBpbm5lckhUTUw6IGdyb3VwWyRwcm9wcy5ncm91cExhYmVsXVxuICAgICAgICAgICAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF85KVxuICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICBdLCA0MiAvKiBDTEFTUywgUFJPUFMsIEhZRFJBVEVfRVZFTlRTICovLCBfaG9pc3RlZF84KSxcbiAgICAgICAgICAgICAgICBjcmVhdGVFbGVtZW50Vk5vZGUoXCJ1bFwiLCB7XG4gICAgICAgICAgICAgICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3QuZ3JvdXBPcHRpb25zKSxcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBfY3R4LmFyaWFHcm91cExhYmVsKGdyb3VwKSxcbiAgICAgICAgICAgICAgICAgIHJvbGU6IFwiZ3JvdXBcIlxuICAgICAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgICAgIChvcGVuQmxvY2sodHJ1ZSksIGNyZWF0ZUVsZW1lbnRCbG9jayhGcmFnbWVudCwgbnVsbCwgcmVuZGVyTGlzdChncm91cC5fX1ZJU0lCTEVfXywgKG9wdGlvbiwgaSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAob3BlbkJsb2NrKCksIGNyZWF0ZUVsZW1lbnRCbG9jayhcImxpXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3Qub3B0aW9uKG9wdGlvbiwgZ3JvdXApKSxcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICBcImRhdGEtcG9pbnRlZFwiOiBfY3R4LmlzUG9pbnRlZChvcHRpb24pLFxuICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1zZWxlY3RlZFwiOiBfY3R4LmlzU2VsZWN0ZWQob3B0aW9uKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IF9jdHguYXJpYU9wdGlvbklkKG9wdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IF9jdHguYXJpYU9wdGlvbkxhYmVsKG9wdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZWVudGVyOiAkZXZlbnQgPT4gKF9jdHguc2V0UG9pbnRlcihvcHRpb24pKSxcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAkZXZlbnQgPT4gKF9jdHguaGFuZGxlT3B0aW9uQ2xpY2sob3B0aW9uKSksXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZTogXCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgcmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJvcHRpb25cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uOiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkOiBfY3R4LmlzU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1BvaW50ZWQ6IF9jdHguaXNQb2ludGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoOiBfY3R4LnNlYXJjaFxuICAgICAgICAgICAgICAgICAgICAgIH0sICgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lckhUTUw6IG9wdGlvblskcHJvcHMubGFiZWxdXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8xMilcbiAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICBdLCA0MiAvKiBDTEFTUywgUFJPUFMsIEhZRFJBVEVfRVZFTlRTICovLCBfaG9pc3RlZF8xMSkpXG4gICAgICAgICAgICAgICAgICB9KSwgMTI4IC8qIEtFWUVEX0ZSQUdNRU5UICovKSlcbiAgICAgICAgICAgICAgICBdLCAxMCAvKiBDTEFTUywgUFJPUFMgKi8sIF9ob2lzdGVkXzEwKVxuICAgICAgICAgICAgICBdLCAyIC8qIENMQVNTICovKSlcbiAgICAgICAgICAgIH0pLCAxMjggLyogS0VZRURfRlJBR01FTlQgKi8pKVxuICAgICAgICAgIDogKG9wZW5CbG9jayh0cnVlKSwgY3JlYXRlRWxlbWVudEJsb2NrKEZyYWdtZW50LCB7IGtleTogMSB9LCByZW5kZXJMaXN0KF9jdHguZm8sIChvcHRpb24sIGksIGtleSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKG9wZW5CbG9jaygpLCBjcmVhdGVFbGVtZW50QmxvY2soXCJsaVwiLCB7XG4gICAgICAgICAgICAgICAgaWQ6IF9jdHguYXJpYU9wdGlvbklkKG9wdGlvbiksXG4gICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IF9jdHguYXJpYU9wdGlvbkxhYmVsKG9wdGlvbiksXG4gICAgICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0Lm9wdGlvbihvcHRpb24pKSxcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICBcImRhdGEtcG9pbnRlZFwiOiBfY3R4LmlzUG9pbnRlZChvcHRpb24pLFxuICAgICAgICAgICAgICAgIFwiZGF0YS1zZWxlY3RlZFwiOiBfY3R4LmlzU2VsZWN0ZWQob3B0aW9uKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgb25Nb3VzZWVudGVyOiAkZXZlbnQgPT4gKF9jdHguc2V0UG9pbnRlcihvcHRpb24pKSxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAkZXZlbnQgPT4gKF9jdHguaGFuZGxlT3B0aW9uQ2xpY2sob3B0aW9uKSksXG4gICAgICAgICAgICAgICAgcm9sZTogXCJvcHRpb25cIlxuICAgICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICAgcmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJvcHRpb25cIiwge1xuICAgICAgICAgICAgICAgICAgb3B0aW9uOiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkOiBfY3R4LmlzU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICBpc1BvaW50ZWQ6IF9jdHguaXNQb2ludGVkLFxuICAgICAgICAgICAgICAgICAgc2VhcmNoOiBfY3R4LnNlYXJjaFxuICAgICAgICAgICAgICAgIH0sICgpID0+IFtcbiAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgICAgICAgICAgICBpbm5lckhUTUw6IG9wdGlvblskcHJvcHMubGFiZWxdXG4gICAgICAgICAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8xNClcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICBdLCA0MiAvKiBDTEFTUywgUFJPUFMsIEhZRFJBVEVfRVZFTlRTICovLCBfaG9pc3RlZF8xMykpXG4gICAgICAgICAgICB9KSwgMTI4IC8qIEtFWUVEX0ZSQUdNRU5UICovKSlcbiAgICAgIF0sIDEwIC8qIENMQVNTLCBQUk9QUyAqLywgX2hvaXN0ZWRfNyksXG4gICAgICAoX2N0eC5ub09wdGlvbnMpXG4gICAgICAgID8gcmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJub29wdGlvbnNcIiwgeyBrZXk6IDAgfSwgKCkgPT4gW1xuICAgICAgICAgICAgY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0Lm5vT3B0aW9ucyksXG4gICAgICAgICAgICAgIGlubmVySFRNTDogJHByb3BzLm5vT3B0aW9uc1RleHRcbiAgICAgICAgICAgIH0sIG51bGwsIDEwIC8qIENMQVNTLCBQUk9QUyAqLywgX2hvaXN0ZWRfMTUpXG4gICAgICAgICAgXSlcbiAgICAgICAgOiBjcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpLFxuICAgICAgKF9jdHgubm9SZXN1bHRzKVxuICAgICAgICA/IHJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwibm9yZXN1bHRzXCIsIHsga2V5OiAxIH0sICgpID0+IFtcbiAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7XG4gICAgICAgICAgICAgIGNsYXNzOiBub3JtYWxpemVDbGFzcyhfY3R4LmNsYXNzTGlzdC5ub1Jlc3VsdHMpLFxuICAgICAgICAgICAgICBpbm5lckhUTUw6ICRwcm9wcy5ub1Jlc3VsdHNUZXh0XG4gICAgICAgICAgICB9LCBudWxsLCAxMCAvKiBDTEFTUywgUFJPUFMgKi8sIF9ob2lzdGVkXzE2KVxuICAgICAgICAgIF0pXG4gICAgICAgIDogY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKSxcbiAgICAgICgkcHJvcHMuaW5maW5pdGUgJiYgX2N0eC5oYXNNb3JlKVxuICAgICAgICA/IChvcGVuQmxvY2soKSwgY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGtleTogMixcbiAgICAgICAgICAgIGNsYXNzOiBub3JtYWxpemVDbGFzcyhfY3R4LmNsYXNzTGlzdC5pbmlmaW5pdGUpLFxuICAgICAgICAgICAgcmVmOiBcImluZmluaXRlTG9hZGVyXCJcbiAgICAgICAgICB9LCBbXG4gICAgICAgICAgICByZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcImluZmluaXRlXCIsIHt9LCAoKSA9PiBbXG4gICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBub3JtYWxpemVDbGFzcyhfY3R4LmNsYXNzTGlzdC5pbmlmaW5pdGVTcGlubmVyKVxuICAgICAgICAgICAgICB9LCBudWxsLCAyIC8qIENMQVNTICovKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICBdLCAyIC8qIENMQVNTICovKSlcbiAgICAgICAgOiBjcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpLFxuICAgICAgcmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJhZnRlcmxpc3RcIiwgeyBvcHRpb25zOiBfY3R4LmZvIH0pXG4gICAgXSwgMiAvKiBDTEFTUyAqLyksXG4gICAgY3JlYXRlQ29tbWVudFZOb2RlKFwiIEhhY2t5IGlucHV0IGVsZW1lbnQgdG8gc2hvdyBIVE1MNSByZXF1aXJlZCB3YXJuaW5nIFwiKSxcbiAgICAoJHByb3BzLnJlcXVpcmVkKVxuICAgICAgPyAob3BlbkJsb2NrKCksIGNyZWF0ZUVsZW1lbnRCbG9jayhcImlucHV0XCIsIHtcbiAgICAgICAgICBrZXk6IDgsXG4gICAgICAgICAgY2xhc3M6IG5vcm1hbGl6ZUNsYXNzKF9jdHguY2xhc3NMaXN0LmZha2VJbnB1dCksXG4gICAgICAgICAgdGFiaW5kZXg6IFwiLTFcIixcbiAgICAgICAgICB2YWx1ZTogX2N0eC50ZXh0VmFsdWUsXG4gICAgICAgICAgcmVxdWlyZWQ6IFwiXCJcbiAgICAgICAgfSwgbnVsbCwgMTAgLyogQ0xBU1MsIFBST1BTICovLCBfaG9pc3RlZF8xNykpXG4gICAgICA6IGNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSksXG4gICAgY3JlYXRlQ29tbWVudFZOb2RlKFwiIE5hdGl2ZSBpbnB1dCBzdXBwb3J0IFwiKSxcbiAgICAoJHByb3BzLm5hdGl2ZVN1cHBvcnQpXG4gICAgICA/IChvcGVuQmxvY2soKSwgY3JlYXRlRWxlbWVudEJsb2NrKEZyYWdtZW50LCB7IGtleTogOSB9LCBbXG4gICAgICAgICAgKCRwcm9wcy5tb2RlID09ICdzaW5nbGUnKVxuICAgICAgICAgICAgPyAob3BlbkJsb2NrKCksIGNyZWF0ZUVsZW1lbnRCbG9jayhcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgICBrZXk6IDAsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICBuYW1lOiAkcHJvcHMubmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogX2N0eC5wbGFpblZhbHVlICE9PSB1bmRlZmluZWQgPyBfY3R4LnBsYWluVmFsdWUgOiAnJ1xuICAgICAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8xOCkpXG4gICAgICAgICAgICA6IChvcGVuQmxvY2sodHJ1ZSksIGNyZWF0ZUVsZW1lbnRCbG9jayhGcmFnbWVudCwgeyBrZXk6IDEgfSwgcmVuZGVyTGlzdChfY3R4LnBsYWluVmFsdWUsICh2LCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChvcGVuQmxvY2soKSwgY3JlYXRlRWxlbWVudEJsb2NrKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGAkeyRwcm9wcy5uYW1lfVtdYCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgICAgICAga2V5OiBpXG4gICAgICAgICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMTkpKVxuICAgICAgICAgICAgICB9KSwgMTI4IC8qIEtFWUVEX0ZSQUdNRU5UICovKSlcbiAgICAgICAgXSwgNjQgLyogU1RBQkxFX0ZSQUdNRU5UICovKSlcbiAgICAgIDogY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKSxcbiAgICBjcmVhdGVDb21tZW50Vk5vZGUoXCIgQ3JlYXRlIGhlaWdodCBmb3IgZW1wdHkgaW5wdXQgXCIpLFxuICAgIGNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7XG4gICAgICBjbGFzczogbm9ybWFsaXplQ2xhc3MoX2N0eC5jbGFzc0xpc3Quc3BhY2VyKVxuICAgIH0sIG51bGwsIDIgLyogQ0xBU1MgKi8pXG4gIF0sIDQyIC8qIENMQVNTLCBQUk9QUywgSFlEUkFURV9FVkVOVFMgKi8sIF9ob2lzdGVkXzEpKVxufVxuXG5zY3JpcHQucmVuZGVyID0gcmVuZGVyO1xuc2NyaXB0Ll9fZmlsZSA9IFwic3JjL011bHRpc2VsZWN0LnZ1ZVwiO1xuXG5leHBvcnQgeyBzY3JpcHQgYXMgZGVmYXVsdCB9O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYi9heGlvcycpOyIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi8uLi91dGlscycpO1xudmFyIHNldHRsZSA9IHJlcXVpcmUoJy4vLi4vY29yZS9zZXR0bGUnKTtcbnZhciBjb29raWVzID0gcmVxdWlyZSgnLi8uLi9oZWxwZXJzL2Nvb2tpZXMnKTtcbnZhciBidWlsZFVSTCA9IHJlcXVpcmUoJy4vLi4vaGVscGVycy9idWlsZFVSTCcpO1xudmFyIGJ1aWxkRnVsbFBhdGggPSByZXF1aXJlKCcuLi9jb3JlL2J1aWxkRnVsbFBhdGgnKTtcbnZhciBwYXJzZUhlYWRlcnMgPSByZXF1aXJlKCcuLy4uL2hlbHBlcnMvcGFyc2VIZWFkZXJzJyk7XG52YXIgaXNVUkxTYW1lT3JpZ2luID0gcmVxdWlyZSgnLi8uLi9oZWxwZXJzL2lzVVJMU2FtZU9yaWdpbicpO1xudmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZSgnLi4vY29yZS9jcmVhdGVFcnJvcicpO1xudmFyIGRlZmF1bHRzID0gcmVxdWlyZSgnLi4vZGVmYXVsdHMnKTtcbnZhciBDYW5jZWwgPSByZXF1aXJlKCcuLi9jYW5jZWwvQ2FuY2VsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24geGhyQWRhcHRlcihjb25maWcpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIGRpc3BhdGNoWGhyUmVxdWVzdChyZXNvbHZlLCByZWplY3QpIHtcbiAgICB2YXIgcmVxdWVzdERhdGEgPSBjb25maWcuZGF0YTtcbiAgICB2YXIgcmVxdWVzdEhlYWRlcnMgPSBjb25maWcuaGVhZGVycztcbiAgICB2YXIgcmVzcG9uc2VUeXBlID0gY29uZmlnLnJlc3BvbnNlVHlwZTtcbiAgICB2YXIgb25DYW5jZWxlZDtcbiAgICBmdW5jdGlvbiBkb25lKCkge1xuICAgICAgaWYgKGNvbmZpZy5jYW5jZWxUb2tlbikge1xuICAgICAgICBjb25maWcuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUob25DYW5jZWxlZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25maWcuc2lnbmFsKSB7XG4gICAgICAgIGNvbmZpZy5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkNhbmNlbGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXRpbHMuaXNGb3JtRGF0YShyZXF1ZXN0RGF0YSkpIHtcbiAgICAgIGRlbGV0ZSByZXF1ZXN0SGVhZGVyc1snQ29udGVudC1UeXBlJ107IC8vIExldCB0aGUgYnJvd3NlciBzZXQgaXRcbiAgICB9XG5cbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuXG4gICAgLy8gSFRUUCBiYXNpYyBhdXRoZW50aWNhdGlvblxuICAgIGlmIChjb25maWcuYXV0aCkge1xuICAgICAgdmFyIHVzZXJuYW1lID0gY29uZmlnLmF1dGgudXNlcm5hbWUgfHwgJyc7XG4gICAgICB2YXIgcGFzc3dvcmQgPSBjb25maWcuYXV0aC5wYXNzd29yZCA/IHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChjb25maWcuYXV0aC5wYXNzd29yZCkpIDogJyc7XG4gICAgICByZXF1ZXN0SGVhZGVycy5BdXRob3JpemF0aW9uID0gJ0Jhc2ljICcgKyBidG9hKHVzZXJuYW1lICsgJzonICsgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIHZhciBmdWxsUGF0aCA9IGJ1aWxkRnVsbFBhdGgoY29uZmlnLmJhc2VVUkwsIGNvbmZpZy51cmwpO1xuICAgIHJlcXVlc3Qub3Blbihjb25maWcubWV0aG9kLnRvVXBwZXJDYXNlKCksIGJ1aWxkVVJMKGZ1bGxQYXRoLCBjb25maWcucGFyYW1zLCBjb25maWcucGFyYW1zU2VyaWFsaXplciksIHRydWUpO1xuXG4gICAgLy8gU2V0IHRoZSByZXF1ZXN0IHRpbWVvdXQgaW4gTVNcbiAgICByZXF1ZXN0LnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcblxuICAgIGZ1bmN0aW9uIG9ubG9hZGVuZCgpIHtcbiAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBQcmVwYXJlIHRoZSByZXNwb25zZVxuICAgICAgdmFyIHJlc3BvbnNlSGVhZGVycyA9ICdnZXRBbGxSZXNwb25zZUhlYWRlcnMnIGluIHJlcXVlc3QgPyBwYXJzZUhlYWRlcnMocmVxdWVzdC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkgOiBudWxsO1xuICAgICAgdmFyIHJlc3BvbnNlRGF0YSA9ICFyZXNwb25zZVR5cGUgfHwgcmVzcG9uc2VUeXBlID09PSAndGV4dCcgfHwgIHJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nID9cbiAgICAgICAgcmVxdWVzdC5yZXNwb25zZVRleHQgOiByZXF1ZXN0LnJlc3BvbnNlO1xuICAgICAgdmFyIHJlc3BvbnNlID0ge1xuICAgICAgICBkYXRhOiByZXNwb25zZURhdGEsXG4gICAgICAgIHN0YXR1czogcmVxdWVzdC5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IHJlcXVlc3Quc3RhdHVzVGV4dCxcbiAgICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgcmVxdWVzdDogcmVxdWVzdFxuICAgICAgfTtcblxuICAgICAgc2V0dGxlKGZ1bmN0aW9uIF9yZXNvbHZlKHZhbHVlKSB7XG4gICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICBkb25lKCk7XG4gICAgICB9LCBmdW5jdGlvbiBfcmVqZWN0KGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSwgcmVzcG9uc2UpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoJ29ubG9hZGVuZCcgaW4gcmVxdWVzdCkge1xuICAgICAgLy8gVXNlIG9ubG9hZGVuZCBpZiBhdmFpbGFibGVcbiAgICAgIHJlcXVlc3Qub25sb2FkZW5kID0gb25sb2FkZW5kO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBMaXN0ZW4gZm9yIHJlYWR5IHN0YXRlIHRvIGVtdWxhdGUgb25sb2FkZW5kXG4gICAgICByZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uIGhhbmRsZUxvYWQoKSB7XG4gICAgICAgIGlmICghcmVxdWVzdCB8fCByZXF1ZXN0LnJlYWR5U3RhdGUgIT09IDQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgcmVxdWVzdCBlcnJvcmVkIG91dCBhbmQgd2UgZGlkbid0IGdldCBhIHJlc3BvbnNlLCB0aGlzIHdpbGwgYmVcbiAgICAgICAgLy8gaGFuZGxlZCBieSBvbmVycm9yIGluc3RlYWRcbiAgICAgICAgLy8gV2l0aCBvbmUgZXhjZXB0aW9uOiByZXF1ZXN0IHRoYXQgdXNpbmcgZmlsZTogcHJvdG9jb2wsIG1vc3QgYnJvd3NlcnNcbiAgICAgICAgLy8gd2lsbCByZXR1cm4gc3RhdHVzIGFzIDAgZXZlbiB0aG91Z2ggaXQncyBhIHN1Y2Nlc3NmdWwgcmVxdWVzdFxuICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDAgJiYgIShyZXF1ZXN0LnJlc3BvbnNlVVJMICYmIHJlcXVlc3QucmVzcG9uc2VVUkwuaW5kZXhPZignZmlsZTonKSA9PT0gMCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmVhZHlzdGF0ZSBoYW5kbGVyIGlzIGNhbGxpbmcgYmVmb3JlIG9uZXJyb3Igb3Igb250aW1lb3V0IGhhbmRsZXJzLFxuICAgICAgICAvLyBzbyB3ZSBzaG91bGQgY2FsbCBvbmxvYWRlbmQgb24gdGhlIG5leHQgJ3RpY2snXG4gICAgICAgIHNldFRpbWVvdXQob25sb2FkZW5kKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGJyb3dzZXIgcmVxdWVzdCBjYW5jZWxsYXRpb24gKGFzIG9wcG9zZWQgdG8gYSBtYW51YWwgY2FuY2VsbGF0aW9uKVxuICAgIHJlcXVlc3Qub25hYm9ydCA9IGZ1bmN0aW9uIGhhbmRsZUFib3J0KCkge1xuICAgICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KGNyZWF0ZUVycm9yKCdSZXF1ZXN0IGFib3J0ZWQnLCBjb25maWcsICdFQ09OTkFCT1JURUQnLCByZXF1ZXN0KSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgIH07XG5cbiAgICAvLyBIYW5kbGUgbG93IGxldmVsIG5ldHdvcmsgZXJyb3JzXG4gICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24gaGFuZGxlRXJyb3IoKSB7XG4gICAgICAvLyBSZWFsIGVycm9ycyBhcmUgaGlkZGVuIGZyb20gdXMgYnkgdGhlIGJyb3dzZXJcbiAgICAgIC8vIG9uZXJyb3Igc2hvdWxkIG9ubHkgZmlyZSBpZiBpdCdzIGEgbmV0d29yayBlcnJvclxuICAgICAgcmVqZWN0KGNyZWF0ZUVycm9yKCdOZXR3b3JrIEVycm9yJywgY29uZmlnLCBudWxsLCByZXF1ZXN0KSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgIH07XG5cbiAgICAvLyBIYW5kbGUgdGltZW91dFxuICAgIHJlcXVlc3Qub250aW1lb3V0ID0gZnVuY3Rpb24gaGFuZGxlVGltZW91dCgpIHtcbiAgICAgIHZhciB0aW1lb3V0RXJyb3JNZXNzYWdlID0gY29uZmlnLnRpbWVvdXQgPyAndGltZW91dCBvZiAnICsgY29uZmlnLnRpbWVvdXQgKyAnbXMgZXhjZWVkZWQnIDogJ3RpbWVvdXQgZXhjZWVkZWQnO1xuICAgICAgdmFyIHRyYW5zaXRpb25hbCA9IGNvbmZpZy50cmFuc2l0aW9uYWwgfHwgZGVmYXVsdHMudHJhbnNpdGlvbmFsO1xuICAgICAgaWYgKGNvbmZpZy50aW1lb3V0RXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIHRpbWVvdXRFcnJvck1lc3NhZ2UgPSBjb25maWcudGltZW91dEVycm9yTWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHJlamVjdChjcmVhdGVFcnJvcihcbiAgICAgICAgdGltZW91dEVycm9yTWVzc2FnZSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICB0cmFuc2l0aW9uYWwuY2xhcmlmeVRpbWVvdXRFcnJvciA/ICdFVElNRURPVVQnIDogJ0VDT05OQUJPUlRFRCcsXG4gICAgICAgIHJlcXVlc3QpKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgcmVxdWVzdFxuICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgfTtcblxuICAgIC8vIEFkZCB4c3JmIGhlYWRlclxuICAgIC8vIFRoaXMgaXMgb25seSBkb25lIGlmIHJ1bm5pbmcgaW4gYSBzdGFuZGFyZCBicm93c2VyIGVudmlyb25tZW50LlxuICAgIC8vIFNwZWNpZmljYWxseSBub3QgaWYgd2UncmUgaW4gYSB3ZWIgd29ya2VyLCBvciByZWFjdC1uYXRpdmUuXG4gICAgaWYgKHV0aWxzLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpIHtcbiAgICAgIC8vIEFkZCB4c3JmIGhlYWRlclxuICAgICAgdmFyIHhzcmZWYWx1ZSA9IChjb25maWcud2l0aENyZWRlbnRpYWxzIHx8IGlzVVJMU2FtZU9yaWdpbihmdWxsUGF0aCkpICYmIGNvbmZpZy54c3JmQ29va2llTmFtZSA/XG4gICAgICAgIGNvb2tpZXMucmVhZChjb25maWcueHNyZkNvb2tpZU5hbWUpIDpcbiAgICAgICAgdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoeHNyZlZhbHVlKSB7XG4gICAgICAgIHJlcXVlc3RIZWFkZXJzW2NvbmZpZy54c3JmSGVhZGVyTmFtZV0gPSB4c3JmVmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3RcbiAgICBpZiAoJ3NldFJlcXVlc3RIZWFkZXInIGluIHJlcXVlc3QpIHtcbiAgICAgIHV0aWxzLmZvckVhY2gocmVxdWVzdEhlYWRlcnMsIGZ1bmN0aW9uIHNldFJlcXVlc3RIZWFkZXIodmFsLCBrZXkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0RGF0YSA9PT0gJ3VuZGVmaW5lZCcgJiYga2V5LnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LXR5cGUnKSB7XG4gICAgICAgICAgLy8gUmVtb3ZlIENvbnRlbnQtVHlwZSBpZiBkYXRhIGlzIHVuZGVmaW5lZFxuICAgICAgICAgIGRlbGV0ZSByZXF1ZXN0SGVhZGVyc1trZXldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSBhZGQgaGVhZGVyIHRvIHRoZSByZXF1ZXN0XG4gICAgICAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKGtleSwgdmFsKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIHdpdGhDcmVkZW50aWFscyB0byByZXF1ZXN0IGlmIG5lZWRlZFxuICAgIGlmICghdXRpbHMuaXNVbmRlZmluZWQoY29uZmlnLndpdGhDcmVkZW50aWFscykpIHtcbiAgICAgIHJlcXVlc3Qud2l0aENyZWRlbnRpYWxzID0gISFjb25maWcud2l0aENyZWRlbnRpYWxzO1xuICAgIH1cblxuICAgIC8vIEFkZCByZXNwb25zZVR5cGUgdG8gcmVxdWVzdCBpZiBuZWVkZWRcbiAgICBpZiAocmVzcG9uc2VUeXBlICYmIHJlc3BvbnNlVHlwZSAhPT0gJ2pzb24nKSB7XG4gICAgICByZXF1ZXN0LnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5yZXNwb25zZVR5cGU7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHByb2dyZXNzIGlmIG5lZWRlZFxuICAgIGlmICh0eXBlb2YgY29uZmlnLm9uRG93bmxvYWRQcm9ncmVzcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGNvbmZpZy5vbkRvd25sb2FkUHJvZ3Jlc3MpO1xuICAgIH1cblxuICAgIC8vIE5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCB1cGxvYWQgZXZlbnRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcub25VcGxvYWRQcm9ncmVzcyA9PT0gJ2Z1bmN0aW9uJyAmJiByZXF1ZXN0LnVwbG9hZCkge1xuICAgICAgcmVxdWVzdC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCBjb25maWcub25VcGxvYWRQcm9ncmVzcyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5jYW5jZWxUb2tlbiB8fCBjb25maWcuc2lnbmFsKSB7XG4gICAgICAvLyBIYW5kbGUgY2FuY2VsbGF0aW9uXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgICAgb25DYW5jZWxlZCA9IGZ1bmN0aW9uKGNhbmNlbCkge1xuICAgICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVqZWN0KCFjYW5jZWwgfHwgKGNhbmNlbCAmJiBjYW5jZWwudHlwZSkgPyBuZXcgQ2FuY2VsKCdjYW5jZWxlZCcpIDogY2FuY2VsKTtcbiAgICAgICAgcmVxdWVzdC5hYm9ydCgpO1xuICAgICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICAgIH07XG5cbiAgICAgIGNvbmZpZy5jYW5jZWxUb2tlbiAmJiBjb25maWcuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKG9uQ2FuY2VsZWQpO1xuICAgICAgaWYgKGNvbmZpZy5zaWduYWwpIHtcbiAgICAgICAgY29uZmlnLnNpZ25hbC5hYm9ydGVkID8gb25DYW5jZWxlZCgpIDogY29uZmlnLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQ2FuY2VsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcmVxdWVzdERhdGEpIHtcbiAgICAgIHJlcXVlc3REYXRhID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBTZW5kIHRoZSByZXF1ZXN0XG4gICAgcmVxdWVzdC5zZW5kKHJlcXVlc3REYXRhKTtcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4vaGVscGVycy9iaW5kJyk7XG52YXIgQXhpb3MgPSByZXF1aXJlKCcuL2NvcmUvQXhpb3MnKTtcbnZhciBtZXJnZUNvbmZpZyA9IHJlcXVpcmUoJy4vY29yZS9tZXJnZUNvbmZpZycpO1xudmFyIGRlZmF1bHRzID0gcmVxdWlyZSgnLi9kZWZhdWx0cycpO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBeGlvc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZhdWx0Q29uZmlnIFRoZSBkZWZhdWx0IGNvbmZpZyBmb3IgdGhlIGluc3RhbmNlXG4gKiBAcmV0dXJuIHtBeGlvc30gQSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2UoZGVmYXVsdENvbmZpZykge1xuICB2YXIgY29udGV4dCA9IG5ldyBBeGlvcyhkZWZhdWx0Q29uZmlnKTtcbiAgdmFyIGluc3RhbmNlID0gYmluZChBeGlvcy5wcm90b3R5cGUucmVxdWVzdCwgY29udGV4dCk7XG5cbiAgLy8gQ29weSBheGlvcy5wcm90b3R5cGUgdG8gaW5zdGFuY2VcbiAgdXRpbHMuZXh0ZW5kKGluc3RhbmNlLCBBeGlvcy5wcm90b3R5cGUsIGNvbnRleHQpO1xuXG4gIC8vIENvcHkgY29udGV4dCB0byBpbnN0YW5jZVxuICB1dGlscy5leHRlbmQoaW5zdGFuY2UsIGNvbnRleHQpO1xuXG4gIC8vIEZhY3RvcnkgZm9yIGNyZWF0aW5nIG5ldyBpbnN0YW5jZXNcbiAgaW5zdGFuY2UuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKGluc3RhbmNlQ29uZmlnKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUluc3RhbmNlKG1lcmdlQ29uZmlnKGRlZmF1bHRDb25maWcsIGluc3RhbmNlQ29uZmlnKSk7XG4gIH07XG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG4vLyBDcmVhdGUgdGhlIGRlZmF1bHQgaW5zdGFuY2UgdG8gYmUgZXhwb3J0ZWRcbnZhciBheGlvcyA9IGNyZWF0ZUluc3RhbmNlKGRlZmF1bHRzKTtcblxuLy8gRXhwb3NlIEF4aW9zIGNsYXNzIHRvIGFsbG93IGNsYXNzIGluaGVyaXRhbmNlXG5heGlvcy5BeGlvcyA9IEF4aW9zO1xuXG4vLyBFeHBvc2UgQ2FuY2VsICYgQ2FuY2VsVG9rZW5cbmF4aW9zLkNhbmNlbCA9IHJlcXVpcmUoJy4vY2FuY2VsL0NhbmNlbCcpO1xuYXhpb3MuQ2FuY2VsVG9rZW4gPSByZXF1aXJlKCcuL2NhbmNlbC9DYW5jZWxUb2tlbicpO1xuYXhpb3MuaXNDYW5jZWwgPSByZXF1aXJlKCcuL2NhbmNlbC9pc0NhbmNlbCcpO1xuYXhpb3MuVkVSU0lPTiA9IHJlcXVpcmUoJy4vZW52L2RhdGEnKS52ZXJzaW9uO1xuXG4vLyBFeHBvc2UgYWxsL3NwcmVhZFxuYXhpb3MuYWxsID0gZnVuY3Rpb24gYWxsKHByb21pc2VzKSB7XG4gIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG59O1xuYXhpb3Muc3ByZWFkID0gcmVxdWlyZSgnLi9oZWxwZXJzL3NwcmVhZCcpO1xuXG4vLyBFeHBvc2UgaXNBeGlvc0Vycm9yXG5heGlvcy5pc0F4aW9zRXJyb3IgPSByZXF1aXJlKCcuL2hlbHBlcnMvaXNBeGlvc0Vycm9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gYXhpb3M7XG5cbi8vIEFsbG93IHVzZSBvZiBkZWZhdWx0IGltcG9ydCBzeW50YXggaW4gVHlwZVNjcmlwdFxubW9kdWxlLmV4cG9ydHMuZGVmYXVsdCA9IGF4aW9zO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEEgYENhbmNlbGAgaXMgYW4gb2JqZWN0IHRoYXQgaXMgdGhyb3duIHdoZW4gYW4gb3BlcmF0aW9uIGlzIGNhbmNlbGVkLlxuICpcbiAqIEBjbGFzc1xuICogQHBhcmFtIHtzdHJpbmc9fSBtZXNzYWdlIFRoZSBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBDYW5jZWwobWVzc2FnZSkge1xuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xufVxuXG5DYW5jZWwucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiAnQ2FuY2VsJyArICh0aGlzLm1lc3NhZ2UgPyAnOiAnICsgdGhpcy5tZXNzYWdlIDogJycpO1xufTtcblxuQ2FuY2VsLnByb3RvdHlwZS5fX0NBTkNFTF9fID0gdHJ1ZTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYW5jZWw7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBDYW5jZWwgPSByZXF1aXJlKCcuL0NhbmNlbCcpO1xuXG4vKipcbiAqIEEgYENhbmNlbFRva2VuYCBpcyBhbiBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byByZXF1ZXN0IGNhbmNlbGxhdGlvbiBvZiBhbiBvcGVyYXRpb24uXG4gKlxuICogQGNsYXNzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBleGVjdXRvciBUaGUgZXhlY3V0b3IgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIENhbmNlbFRva2VuKGV4ZWN1dG9yKSB7XG4gIGlmICh0eXBlb2YgZXhlY3V0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XG4gIH1cblxuICB2YXIgcmVzb2x2ZVByb21pc2U7XG5cbiAgdGhpcy5wcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gcHJvbWlzZUV4ZWN1dG9yKHJlc29sdmUpIHtcbiAgICByZXNvbHZlUHJvbWlzZSA9IHJlc29sdmU7XG4gIH0pO1xuXG4gIHZhciB0b2tlbiA9IHRoaXM7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgdGhpcy5wcm9taXNlLnRoZW4oZnVuY3Rpb24oY2FuY2VsKSB7XG4gICAgaWYgKCF0b2tlbi5fbGlzdGVuZXJzKSByZXR1cm47XG5cbiAgICB2YXIgaTtcbiAgICB2YXIgbCA9IHRva2VuLl9saXN0ZW5lcnMubGVuZ3RoO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgdG9rZW4uX2xpc3RlbmVyc1tpXShjYW5jZWwpO1xuICAgIH1cbiAgICB0b2tlbi5fbGlzdGVuZXJzID0gbnVsbDtcbiAgfSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgdGhpcy5wcm9taXNlLnRoZW4gPSBmdW5jdGlvbihvbmZ1bGZpbGxlZCkge1xuICAgIHZhciBfcmVzb2x2ZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkge1xuICAgICAgdG9rZW4uc3Vic2NyaWJlKHJlc29sdmUpO1xuICAgICAgX3Jlc29sdmUgPSByZXNvbHZlO1xuICAgIH0pLnRoZW4ob25mdWxmaWxsZWQpO1xuXG4gICAgcHJvbWlzZS5jYW5jZWwgPSBmdW5jdGlvbiByZWplY3QoKSB7XG4gICAgICB0b2tlbi51bnN1YnNjcmliZShfcmVzb2x2ZSk7XG4gICAgfTtcblxuICAgIHJldHVybiBwcm9taXNlO1xuICB9O1xuXG4gIGV4ZWN1dG9yKGZ1bmN0aW9uIGNhbmNlbChtZXNzYWdlKSB7XG4gICAgaWYgKHRva2VuLnJlYXNvbikge1xuICAgICAgLy8gQ2FuY2VsbGF0aW9uIGhhcyBhbHJlYWR5IGJlZW4gcmVxdWVzdGVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdG9rZW4ucmVhc29uID0gbmV3IENhbmNlbChtZXNzYWdlKTtcbiAgICByZXNvbHZlUHJvbWlzZSh0b2tlbi5yZWFzb24pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBUaHJvd3MgYSBgQ2FuY2VsYCBpZiBjYW5jZWxsYXRpb24gaGFzIGJlZW4gcmVxdWVzdGVkLlxuICovXG5DYW5jZWxUb2tlbi5wcm90b3R5cGUudGhyb3dJZlJlcXVlc3RlZCA9IGZ1bmN0aW9uIHRocm93SWZSZXF1ZXN0ZWQoKSB7XG4gIGlmICh0aGlzLnJlYXNvbikge1xuICAgIHRocm93IHRoaXMucmVhc29uO1xuICB9XG59O1xuXG4vKipcbiAqIFN1YnNjcmliZSB0byB0aGUgY2FuY2VsIHNpZ25hbFxuICovXG5cbkNhbmNlbFRva2VuLnByb3RvdHlwZS5zdWJzY3JpYmUgPSBmdW5jdGlvbiBzdWJzY3JpYmUobGlzdGVuZXIpIHtcbiAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgbGlzdGVuZXIodGhpcy5yZWFzb24pO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh0aGlzLl9saXN0ZW5lcnMpIHtcbiAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fbGlzdGVuZXJzID0gW2xpc3RlbmVyXTtcbiAgfVxufTtcblxuLyoqXG4gKiBVbnN1YnNjcmliZSBmcm9tIHRoZSBjYW5jZWwgc2lnbmFsXG4gKi9cblxuQ2FuY2VsVG9rZW4ucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24gdW5zdWJzY3JpYmUobGlzdGVuZXIpIHtcbiAgaWYgKCF0aGlzLl9saXN0ZW5lcnMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIGluZGV4ID0gdGhpcy5fbGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgdGhpcy5fbGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBhIG5ldyBgQ2FuY2VsVG9rZW5gIGFuZCBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLFxuICogY2FuY2VscyB0aGUgYENhbmNlbFRva2VuYC5cbiAqL1xuQ2FuY2VsVG9rZW4uc291cmNlID0gZnVuY3Rpb24gc291cmNlKCkge1xuICB2YXIgY2FuY2VsO1xuICB2YXIgdG9rZW4gPSBuZXcgQ2FuY2VsVG9rZW4oZnVuY3Rpb24gZXhlY3V0b3IoYykge1xuICAgIGNhbmNlbCA9IGM7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHRva2VuOiB0b2tlbixcbiAgICBjYW5jZWw6IGNhbmNlbFxuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYW5jZWxUb2tlbjtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0NhbmNlbCh2YWx1ZSkge1xuICByZXR1cm4gISEodmFsdWUgJiYgdmFsdWUuX19DQU5DRUxfXyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG52YXIgYnVpbGRVUkwgPSByZXF1aXJlKCcuLi9oZWxwZXJzL2J1aWxkVVJMJyk7XG52YXIgSW50ZXJjZXB0b3JNYW5hZ2VyID0gcmVxdWlyZSgnLi9JbnRlcmNlcHRvck1hbmFnZXInKTtcbnZhciBkaXNwYXRjaFJlcXVlc3QgPSByZXF1aXJlKCcuL2Rpc3BhdGNoUmVxdWVzdCcpO1xudmFyIG1lcmdlQ29uZmlnID0gcmVxdWlyZSgnLi9tZXJnZUNvbmZpZycpO1xudmFyIHZhbGlkYXRvciA9IHJlcXVpcmUoJy4uL2hlbHBlcnMvdmFsaWRhdG9yJyk7XG5cbnZhciB2YWxpZGF0b3JzID0gdmFsaWRhdG9yLnZhbGlkYXRvcnM7XG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBBeGlvc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBpbnN0YW5jZUNvbmZpZyBUaGUgZGVmYXVsdCBjb25maWcgZm9yIHRoZSBpbnN0YW5jZVxuICovXG5mdW5jdGlvbiBBeGlvcyhpbnN0YW5jZUNvbmZpZykge1xuICB0aGlzLmRlZmF1bHRzID0gaW5zdGFuY2VDb25maWc7XG4gIHRoaXMuaW50ZXJjZXB0b3JzID0ge1xuICAgIHJlcXVlc3Q6IG5ldyBJbnRlcmNlcHRvck1hbmFnZXIoKSxcbiAgICByZXNwb25zZTogbmV3IEludGVyY2VwdG9yTWFuYWdlcigpXG4gIH07XG59XG5cbi8qKlxuICogRGlzcGF0Y2ggYSByZXF1ZXN0XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyBUaGUgY29uZmlnIHNwZWNpZmljIGZvciB0aGlzIHJlcXVlc3QgKG1lcmdlZCB3aXRoIHRoaXMuZGVmYXVsdHMpXG4gKi9cbkF4aW9zLnByb3RvdHlwZS5yZXF1ZXN0ID0gZnVuY3Rpb24gcmVxdWVzdChjb25maWdPclVybCwgY29uZmlnKSB7XG4gIC8qZXNsaW50IG5vLXBhcmFtLXJlYXNzaWduOjAqL1xuICAvLyBBbGxvdyBmb3IgYXhpb3MoJ2V4YW1wbGUvdXJsJ1ssIGNvbmZpZ10pIGEgbGEgZmV0Y2ggQVBJXG4gIGlmICh0eXBlb2YgY29uZmlnT3JVcmwgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uZmlnID0gY29uZmlnIHx8IHt9O1xuICAgIGNvbmZpZy51cmwgPSBjb25maWdPclVybDtcbiAgfSBlbHNlIHtcbiAgICBjb25maWcgPSBjb25maWdPclVybCB8fCB7fTtcbiAgfVxuXG4gIGlmICghY29uZmlnLnVybCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZWQgY29uZmlnIHVybCBpcyBub3QgdmFsaWQnKTtcbiAgfVxuXG4gIGNvbmZpZyA9IG1lcmdlQ29uZmlnKHRoaXMuZGVmYXVsdHMsIGNvbmZpZyk7XG5cbiAgLy8gU2V0IGNvbmZpZy5tZXRob2RcbiAgaWYgKGNvbmZpZy5tZXRob2QpIHtcbiAgICBjb25maWcubWV0aG9kID0gY29uZmlnLm1ldGhvZC50b0xvd2VyQ2FzZSgpO1xuICB9IGVsc2UgaWYgKHRoaXMuZGVmYXVsdHMubWV0aG9kKSB7XG4gICAgY29uZmlnLm1ldGhvZCA9IHRoaXMuZGVmYXVsdHMubWV0aG9kLnRvTG93ZXJDYXNlKCk7XG4gIH0gZWxzZSB7XG4gICAgY29uZmlnLm1ldGhvZCA9ICdnZXQnO1xuICB9XG5cbiAgdmFyIHRyYW5zaXRpb25hbCA9IGNvbmZpZy50cmFuc2l0aW9uYWw7XG5cbiAgaWYgKHRyYW5zaXRpb25hbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsaWRhdG9yLmFzc2VydE9wdGlvbnModHJhbnNpdGlvbmFsLCB7XG4gICAgICBzaWxlbnRKU09OUGFyc2luZzogdmFsaWRhdG9ycy50cmFuc2l0aW9uYWwodmFsaWRhdG9ycy5ib29sZWFuKSxcbiAgICAgIGZvcmNlZEpTT05QYXJzaW5nOiB2YWxpZGF0b3JzLnRyYW5zaXRpb25hbCh2YWxpZGF0b3JzLmJvb2xlYW4pLFxuICAgICAgY2xhcmlmeVRpbWVvdXRFcnJvcjogdmFsaWRhdG9ycy50cmFuc2l0aW9uYWwodmFsaWRhdG9ycy5ib29sZWFuKVxuICAgIH0sIGZhbHNlKTtcbiAgfVxuXG4gIC8vIGZpbHRlciBvdXQgc2tpcHBlZCBpbnRlcmNlcHRvcnNcbiAgdmFyIHJlcXVlc3RJbnRlcmNlcHRvckNoYWluID0gW107XG4gIHZhciBzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMgPSB0cnVlO1xuICB0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24gdW5zaGlmdFJlcXVlc3RJbnRlcmNlcHRvcnMoaW50ZXJjZXB0b3IpIHtcbiAgICBpZiAodHlwZW9mIGludGVyY2VwdG9yLnJ1bldoZW4gPT09ICdmdW5jdGlvbicgJiYgaW50ZXJjZXB0b3IucnVuV2hlbihjb25maWcpID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN5bmNocm9ub3VzUmVxdWVzdEludGVyY2VwdG9ycyA9IHN5bmNocm9ub3VzUmVxdWVzdEludGVyY2VwdG9ycyAmJiBpbnRlcmNlcHRvci5zeW5jaHJvbm91cztcblxuICAgIHJlcXVlc3RJbnRlcmNlcHRvckNoYWluLnVuc2hpZnQoaW50ZXJjZXB0b3IuZnVsZmlsbGVkLCBpbnRlcmNlcHRvci5yZWplY3RlZCk7XG4gIH0pO1xuXG4gIHZhciByZXNwb25zZUludGVyY2VwdG9yQ2hhaW4gPSBbXTtcbiAgdGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbiBwdXNoUmVzcG9uc2VJbnRlcmNlcHRvcnMoaW50ZXJjZXB0b3IpIHtcbiAgICByZXNwb25zZUludGVyY2VwdG9yQ2hhaW4ucHVzaChpbnRlcmNlcHRvci5mdWxmaWxsZWQsIGludGVyY2VwdG9yLnJlamVjdGVkKTtcbiAgfSk7XG5cbiAgdmFyIHByb21pc2U7XG5cbiAgaWYgKCFzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMpIHtcbiAgICB2YXIgY2hhaW4gPSBbZGlzcGF0Y2hSZXF1ZXN0LCB1bmRlZmluZWRdO1xuXG4gICAgQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkoY2hhaW4sIHJlcXVlc3RJbnRlcmNlcHRvckNoYWluKTtcbiAgICBjaGFpbiA9IGNoYWluLmNvbmNhdChyZXNwb25zZUludGVyY2VwdG9yQ2hhaW4pO1xuXG4gICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShjb25maWcpO1xuICAgIHdoaWxlIChjaGFpbi5sZW5ndGgpIHtcbiAgICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oY2hhaW4uc2hpZnQoKSwgY2hhaW4uc2hpZnQoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuXG4gIHZhciBuZXdDb25maWcgPSBjb25maWc7XG4gIHdoaWxlIChyZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbi5sZW5ndGgpIHtcbiAgICB2YXIgb25GdWxmaWxsZWQgPSByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbi5zaGlmdCgpO1xuICAgIHZhciBvblJlamVjdGVkID0gcmVxdWVzdEludGVyY2VwdG9yQ2hhaW4uc2hpZnQoKTtcbiAgICB0cnkge1xuICAgICAgbmV3Q29uZmlnID0gb25GdWxmaWxsZWQobmV3Q29uZmlnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25SZWplY3RlZChlcnJvcik7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0cnkge1xuICAgIHByb21pc2UgPSBkaXNwYXRjaFJlcXVlc3QobmV3Q29uZmlnKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICB9XG5cbiAgd2hpbGUgKHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbi5sZW5ndGgpIHtcbiAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbi5zaGlmdCgpLCByZXNwb25zZUludGVyY2VwdG9yQ2hhaW4uc2hpZnQoKSk7XG4gIH1cblxuICByZXR1cm4gcHJvbWlzZTtcbn07XG5cbkF4aW9zLnByb3RvdHlwZS5nZXRVcmkgPSBmdW5jdGlvbiBnZXRVcmkoY29uZmlnKSB7XG4gIGlmICghY29uZmlnLnVybCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZWQgY29uZmlnIHVybCBpcyBub3QgdmFsaWQnKTtcbiAgfVxuICBjb25maWcgPSBtZXJnZUNvbmZpZyh0aGlzLmRlZmF1bHRzLCBjb25maWcpO1xuICByZXR1cm4gYnVpbGRVUkwoY29uZmlnLnVybCwgY29uZmlnLnBhcmFtcywgY29uZmlnLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cXD8vLCAnJyk7XG59O1xuXG4vLyBQcm92aWRlIGFsaWFzZXMgZm9yIHN1cHBvcnRlZCByZXF1ZXN0IG1ldGhvZHNcbnV0aWxzLmZvckVhY2goWydkZWxldGUnLCAnZ2V0JywgJ2hlYWQnLCAnb3B0aW9ucyddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kTm9EYXRhKG1ldGhvZCkge1xuICAvKmVzbGludCBmdW5jLW5hbWVzOjAqL1xuICBBeGlvcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uKHVybCwgY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdChtZXJnZUNvbmZpZyhjb25maWcgfHwge30sIHtcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBkYXRhOiAoY29uZmlnIHx8IHt9KS5kYXRhXG4gICAgfSkpO1xuICB9O1xufSk7XG5cbnV0aWxzLmZvckVhY2goWydwb3N0JywgJ3B1dCcsICdwYXRjaCddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kV2l0aERhdGEobWV0aG9kKSB7XG4gIC8qZXNsaW50IGZ1bmMtbmFtZXM6MCovXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24odXJsLCBkYXRhLCBjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KG1lcmdlQ29uZmlnKGNvbmZpZyB8fCB7fSwge1xuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGRhdGE6IGRhdGFcbiAgICB9KSk7XG4gIH07XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBeGlvcztcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi8uLi91dGlscycpO1xuXG5mdW5jdGlvbiBJbnRlcmNlcHRvck1hbmFnZXIoKSB7XG4gIHRoaXMuaGFuZGxlcnMgPSBbXTtcbn1cblxuLyoqXG4gKiBBZGQgYSBuZXcgaW50ZXJjZXB0b3IgdG8gdGhlIHN0YWNrXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVsZmlsbGVkIFRoZSBmdW5jdGlvbiB0byBoYW5kbGUgYHRoZW5gIGZvciBhIGBQcm9taXNlYFxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVqZWN0ZWQgVGhlIGZ1bmN0aW9uIHRvIGhhbmRsZSBgcmVqZWN0YCBmb3IgYSBgUHJvbWlzZWBcbiAqXG4gKiBAcmV0dXJuIHtOdW1iZXJ9IEFuIElEIHVzZWQgdG8gcmVtb3ZlIGludGVyY2VwdG9yIGxhdGVyXG4gKi9cbkludGVyY2VwdG9yTWFuYWdlci5wcm90b3R5cGUudXNlID0gZnVuY3Rpb24gdXNlKGZ1bGZpbGxlZCwgcmVqZWN0ZWQsIG9wdGlvbnMpIHtcbiAgdGhpcy5oYW5kbGVycy5wdXNoKHtcbiAgICBmdWxmaWxsZWQ6IGZ1bGZpbGxlZCxcbiAgICByZWplY3RlZDogcmVqZWN0ZWQsXG4gICAgc3luY2hyb25vdXM6IG9wdGlvbnMgPyBvcHRpb25zLnN5bmNocm9ub3VzIDogZmFsc2UsXG4gICAgcnVuV2hlbjogb3B0aW9ucyA/IG9wdGlvbnMucnVuV2hlbiA6IG51bGxcbiAgfSk7XG4gIHJldHVybiB0aGlzLmhhbmRsZXJzLmxlbmd0aCAtIDE7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBhbiBpbnRlcmNlcHRvciBmcm9tIHRoZSBzdGFja1xuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBpZCBUaGUgSUQgdGhhdCB3YXMgcmV0dXJuZWQgYnkgYHVzZWBcbiAqL1xuSW50ZXJjZXB0b3JNYW5hZ2VyLnByb3RvdHlwZS5lamVjdCA9IGZ1bmN0aW9uIGVqZWN0KGlkKSB7XG4gIGlmICh0aGlzLmhhbmRsZXJzW2lkXSkge1xuICAgIHRoaXMuaGFuZGxlcnNbaWRdID0gbnVsbDtcbiAgfVxufTtcblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgYWxsIHRoZSByZWdpc3RlcmVkIGludGVyY2VwdG9yc1xuICpcbiAqIFRoaXMgbWV0aG9kIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIHNraXBwaW5nIG92ZXIgYW55XG4gKiBpbnRlcmNlcHRvcnMgdGhhdCBtYXkgaGF2ZSBiZWNvbWUgYG51bGxgIGNhbGxpbmcgYGVqZWN0YC5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCBpbnRlcmNlcHRvclxuICovXG5JbnRlcmNlcHRvck1hbmFnZXIucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbiBmb3JFYWNoKGZuKSB7XG4gIHV0aWxzLmZvckVhY2godGhpcy5oYW5kbGVycywgZnVuY3Rpb24gZm9yRWFjaEhhbmRsZXIoaCkge1xuICAgIGlmIChoICE9PSBudWxsKSB7XG4gICAgICBmbihoKTtcbiAgICB9XG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBJbnRlcmNlcHRvck1hbmFnZXI7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpc0Fic29sdXRlVVJMID0gcmVxdWlyZSgnLi4vaGVscGVycy9pc0Fic29sdXRlVVJMJyk7XG52YXIgY29tYmluZVVSTHMgPSByZXF1aXJlKCcuLi9oZWxwZXJzL2NvbWJpbmVVUkxzJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBVUkwgYnkgY29tYmluaW5nIHRoZSBiYXNlVVJMIHdpdGggdGhlIHJlcXVlc3RlZFVSTCxcbiAqIG9ubHkgd2hlbiB0aGUgcmVxdWVzdGVkVVJMIGlzIG5vdCBhbHJlYWR5IGFuIGFic29sdXRlIFVSTC5cbiAqIElmIHRoZSByZXF1ZXN0VVJMIGlzIGFic29sdXRlLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHJlcXVlc3RlZFVSTCB1bnRvdWNoZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGJhc2VVUkwgVGhlIGJhc2UgVVJMXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVxdWVzdGVkVVJMIEFic29sdXRlIG9yIHJlbGF0aXZlIFVSTCB0byBjb21iaW5lXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tYmluZWQgZnVsbCBwYXRoXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gYnVpbGRGdWxsUGF0aChiYXNlVVJMLCByZXF1ZXN0ZWRVUkwpIHtcbiAgaWYgKGJhc2VVUkwgJiYgIWlzQWJzb2x1dGVVUkwocmVxdWVzdGVkVVJMKSkge1xuICAgIHJldHVybiBjb21iaW5lVVJMcyhiYXNlVVJMLCByZXF1ZXN0ZWRVUkwpO1xuICB9XG4gIHJldHVybiByZXF1ZXN0ZWRVUkw7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW5oYW5jZUVycm9yID0gcmVxdWlyZSgnLi9lbmhhbmNlRXJyb3InKTtcblxuLyoqXG4gKiBDcmVhdGUgYW4gRXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UsIGNvbmZpZywgZXJyb3IgY29kZSwgcmVxdWVzdCBhbmQgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIFRoZSBjb25maWcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NvZGVdIFRoZSBlcnJvciBjb2RlIChmb3IgZXhhbXBsZSwgJ0VDT05OQUJPUlRFRCcpLlxuICogQHBhcmFtIHtPYmplY3R9IFtyZXF1ZXN0XSBUaGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVzcG9uc2VdIFRoZSByZXNwb25zZS5cbiAqIEByZXR1cm5zIHtFcnJvcn0gVGhlIGNyZWF0ZWQgZXJyb3IuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlRXJyb3IobWVzc2FnZSwgY29uZmlnLCBjb2RlLCByZXF1ZXN0LCByZXNwb25zZSkge1xuICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlbmhhbmNlRXJyb3IoZXJyb3IsIGNvbmZpZywgY29kZSwgcmVxdWVzdCwgcmVzcG9uc2UpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi8uLi91dGlscycpO1xudmFyIHRyYW5zZm9ybURhdGEgPSByZXF1aXJlKCcuL3RyYW5zZm9ybURhdGEnKTtcbnZhciBpc0NhbmNlbCA9IHJlcXVpcmUoJy4uL2NhbmNlbC9pc0NhbmNlbCcpO1xudmFyIGRlZmF1bHRzID0gcmVxdWlyZSgnLi4vZGVmYXVsdHMnKTtcbnZhciBDYW5jZWwgPSByZXF1aXJlKCcuLi9jYW5jZWwvQ2FuY2VsJyk7XG5cbi8qKlxuICogVGhyb3dzIGEgYENhbmNlbGAgaWYgY2FuY2VsbGF0aW9uIGhhcyBiZWVuIHJlcXVlc3RlZC5cbiAqL1xuZnVuY3Rpb24gdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpIHtcbiAgaWYgKGNvbmZpZy5jYW5jZWxUb2tlbikge1xuICAgIGNvbmZpZy5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCk7XG4gIH1cblxuICBpZiAoY29uZmlnLnNpZ25hbCAmJiBjb25maWcuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICB0aHJvdyBuZXcgQ2FuY2VsKCdjYW5jZWxlZCcpO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGF0Y2ggYSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgdXNpbmcgdGhlIGNvbmZpZ3VyZWQgYWRhcHRlci5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIFRoZSBjb25maWcgdGhhdCBpcyB0byBiZSB1c2VkIGZvciB0aGUgcmVxdWVzdFxuICogQHJldHVybnMge1Byb21pc2V9IFRoZSBQcm9taXNlIHRvIGJlIGZ1bGZpbGxlZFxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRpc3BhdGNoUmVxdWVzdChjb25maWcpIHtcbiAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gIC8vIEVuc3VyZSBoZWFkZXJzIGV4aXN0XG4gIGNvbmZpZy5oZWFkZXJzID0gY29uZmlnLmhlYWRlcnMgfHwge307XG5cbiAgLy8gVHJhbnNmb3JtIHJlcXVlc3QgZGF0YVxuICBjb25maWcuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICBjb25maWcsXG4gICAgY29uZmlnLmRhdGEsXG4gICAgY29uZmlnLmhlYWRlcnMsXG4gICAgY29uZmlnLnRyYW5zZm9ybVJlcXVlc3RcbiAgKTtcblxuICAvLyBGbGF0dGVuIGhlYWRlcnNcbiAgY29uZmlnLmhlYWRlcnMgPSB1dGlscy5tZXJnZShcbiAgICBjb25maWcuaGVhZGVycy5jb21tb24gfHwge30sXG4gICAgY29uZmlnLmhlYWRlcnNbY29uZmlnLm1ldGhvZF0gfHwge30sXG4gICAgY29uZmlnLmhlYWRlcnNcbiAgKTtcblxuICB1dGlscy5mb3JFYWNoKFxuICAgIFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ3Bvc3QnLCAncHV0JywgJ3BhdGNoJywgJ2NvbW1vbiddLFxuICAgIGZ1bmN0aW9uIGNsZWFuSGVhZGVyQ29uZmlnKG1ldGhvZCkge1xuICAgICAgZGVsZXRlIGNvbmZpZy5oZWFkZXJzW21ldGhvZF07XG4gICAgfVxuICApO1xuXG4gIHZhciBhZGFwdGVyID0gY29uZmlnLmFkYXB0ZXIgfHwgZGVmYXVsdHMuYWRhcHRlcjtcblxuICByZXR1cm4gYWRhcHRlcihjb25maWcpLnRoZW4oZnVuY3Rpb24gb25BZGFwdGVyUmVzb2x1dGlvbihyZXNwb25zZSkge1xuICAgIHRocm93SWZDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY29uZmlnKTtcblxuICAgIC8vIFRyYW5zZm9ybSByZXNwb25zZSBkYXRhXG4gICAgcmVzcG9uc2UuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICAgIGNvbmZpZyxcbiAgICAgIHJlc3BvbnNlLmRhdGEsXG4gICAgICByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgY29uZmlnLnRyYW5zZm9ybVJlc3BvbnNlXG4gICAgKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfSwgZnVuY3Rpb24gb25BZGFwdGVyUmVqZWN0aW9uKHJlYXNvbikge1xuICAgIGlmICghaXNDYW5jZWwocmVhc29uKSkge1xuICAgICAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gICAgICAvLyBUcmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxuICAgICAgaWYgKHJlYXNvbiAmJiByZWFzb24ucmVzcG9uc2UpIHtcbiAgICAgICAgcmVhc29uLnJlc3BvbnNlLmRhdGEgPSB0cmFuc2Zvcm1EYXRhLmNhbGwoXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIHJlYXNvbi5yZXNwb25zZS5kYXRhLFxuICAgICAgICAgIHJlYXNvbi5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIGNvbmZpZy50cmFuc2Zvcm1SZXNwb25zZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZWFzb24pO1xuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogVXBkYXRlIGFuIEVycm9yIHdpdGggdGhlIHNwZWNpZmllZCBjb25maWcsIGVycm9yIGNvZGUsIGFuZCByZXNwb25zZS5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvciBUaGUgZXJyb3IgdG8gdXBkYXRlLlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2RlXSBUaGUgZXJyb3IgY29kZSAoZm9yIGV4YW1wbGUsICdFQ09OTkFCT1JURUQnKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVxdWVzdF0gVGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW3Jlc3BvbnNlXSBUaGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJucyB7RXJyb3J9IFRoZSBlcnJvci5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBlbmhhbmNlRXJyb3IoZXJyb3IsIGNvbmZpZywgY29kZSwgcmVxdWVzdCwgcmVzcG9uc2UpIHtcbiAgZXJyb3IuY29uZmlnID0gY29uZmlnO1xuICBpZiAoY29kZSkge1xuICAgIGVycm9yLmNvZGUgPSBjb2RlO1xuICB9XG5cbiAgZXJyb3IucmVxdWVzdCA9IHJlcXVlc3Q7XG4gIGVycm9yLnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gIGVycm9yLmlzQXhpb3NFcnJvciA9IHRydWU7XG5cbiAgZXJyb3IudG9KU09OID0gZnVuY3Rpb24gdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICAvLyBTdGFuZGFyZFxuICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgLy8gTWljcm9zb2Z0XG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIG51bWJlcjogdGhpcy5udW1iZXIsXG4gICAgICAvLyBNb3ppbGxhXG4gICAgICBmaWxlTmFtZTogdGhpcy5maWxlTmFtZSxcbiAgICAgIGxpbmVOdW1iZXI6IHRoaXMubGluZU51bWJlcixcbiAgICAgIGNvbHVtbk51bWJlcjogdGhpcy5jb2x1bW5OdW1iZXIsXG4gICAgICBzdGFjazogdGhpcy5zdGFjayxcbiAgICAgIC8vIEF4aW9zXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgY29kZTogdGhpcy5jb2RlLFxuICAgICAgc3RhdHVzOiB0aGlzLnJlc3BvbnNlICYmIHRoaXMucmVzcG9uc2Uuc3RhdHVzID8gdGhpcy5yZXNwb25zZS5zdGF0dXMgOiBudWxsXG4gICAgfTtcbiAgfTtcbiAgcmV0dXJuIGVycm9yO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcblxuLyoqXG4gKiBDb25maWctc3BlY2lmaWMgbWVyZ2UtZnVuY3Rpb24gd2hpY2ggY3JlYXRlcyBhIG5ldyBjb25maWctb2JqZWN0XG4gKiBieSBtZXJnaW5nIHR3byBjb25maWd1cmF0aW9uIG9iamVjdHMgdG9nZXRoZXIuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZzFcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBOZXcgb2JqZWN0IHJlc3VsdGluZyBmcm9tIG1lcmdpbmcgY29uZmlnMiB0byBjb25maWcxXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbWVyZ2VDb25maWcoY29uZmlnMSwgY29uZmlnMikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgY29uZmlnMiA9IGNvbmZpZzIgfHwge307XG4gIHZhciBjb25maWcgPSB7fTtcblxuICBmdW5jdGlvbiBnZXRNZXJnZWRWYWx1ZSh0YXJnZXQsIHNvdXJjZSkge1xuICAgIGlmICh1dGlscy5pc1BsYWluT2JqZWN0KHRhcmdldCkgJiYgdXRpbHMuaXNQbGFpbk9iamVjdChzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gdXRpbHMubWVyZ2UodGFyZ2V0LCBzb3VyY2UpO1xuICAgIH0gZWxzZSBpZiAodXRpbHMuaXNQbGFpbk9iamVjdChzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gdXRpbHMubWVyZ2Uoe30sIHNvdXJjZSk7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBzb3VyY2Uuc2xpY2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiBtZXJnZURlZXBQcm9wZXJ0aWVzKHByb3ApIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGNvbmZpZzJbcHJvcF0pKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUoY29uZmlnMVtwcm9wXSwgY29uZmlnMltwcm9wXSk7XG4gICAgfSBlbHNlIGlmICghdXRpbHMuaXNVbmRlZmluZWQoY29uZmlnMVtwcm9wXSkpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGNvbmZpZzFbcHJvcF0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiB2YWx1ZUZyb21Db25maWcyKHByb3ApIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGNvbmZpZzJbcHJvcF0pKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBjb25maWcyW3Byb3BdKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbiAgZnVuY3Rpb24gZGVmYXVsdFRvQ29uZmlnMihwcm9wKSB7XG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChjb25maWcyW3Byb3BdKSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgY29uZmlnMltwcm9wXSk7XG4gICAgfSBlbHNlIGlmICghdXRpbHMuaXNVbmRlZmluZWQoY29uZmlnMVtwcm9wXSkpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGNvbmZpZzFbcHJvcF0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiBtZXJnZURpcmVjdEtleXMocHJvcCkge1xuICAgIGlmIChwcm9wIGluIGNvbmZpZzIpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZShjb25maWcxW3Byb3BdLCBjb25maWcyW3Byb3BdKTtcbiAgICB9IGVsc2UgaWYgKHByb3AgaW4gY29uZmlnMSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgY29uZmlnMVtwcm9wXSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIG1lcmdlTWFwID0ge1xuICAgICd1cmwnOiB2YWx1ZUZyb21Db25maWcyLFxuICAgICdtZXRob2QnOiB2YWx1ZUZyb21Db25maWcyLFxuICAgICdkYXRhJzogdmFsdWVGcm9tQ29uZmlnMixcbiAgICAnYmFzZVVSTCc6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgJ3RyYW5zZm9ybVJlcXVlc3QnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICd0cmFuc2Zvcm1SZXNwb25zZSc6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgJ3BhcmFtc1NlcmlhbGl6ZXInOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICd0aW1lb3V0JzogZGVmYXVsdFRvQ29uZmlnMixcbiAgICAndGltZW91dE1lc3NhZ2UnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICd3aXRoQ3JlZGVudGlhbHMnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICdhZGFwdGVyJzogZGVmYXVsdFRvQ29uZmlnMixcbiAgICAncmVzcG9uc2VUeXBlJzogZGVmYXVsdFRvQ29uZmlnMixcbiAgICAneHNyZkNvb2tpZU5hbWUnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICd4c3JmSGVhZGVyTmFtZSc6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgJ29uVXBsb2FkUHJvZ3Jlc3MnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICdvbkRvd25sb2FkUHJvZ3Jlc3MnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICdkZWNvbXByZXNzJzogZGVmYXVsdFRvQ29uZmlnMixcbiAgICAnbWF4Q29udGVudExlbmd0aCc6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgJ21heEJvZHlMZW5ndGgnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICd0cmFuc3BvcnQnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICdodHRwQWdlbnQnOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICdodHRwc0FnZW50JzogZGVmYXVsdFRvQ29uZmlnMixcbiAgICAnY2FuY2VsVG9rZW4nOiBkZWZhdWx0VG9Db25maWcyLFxuICAgICdzb2NrZXRQYXRoJzogZGVmYXVsdFRvQ29uZmlnMixcbiAgICAncmVzcG9uc2VFbmNvZGluZyc6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgJ3ZhbGlkYXRlU3RhdHVzJzogbWVyZ2VEaXJlY3RLZXlzXG4gIH07XG5cbiAgdXRpbHMuZm9yRWFjaChPYmplY3Qua2V5cyhjb25maWcxKS5jb25jYXQoT2JqZWN0LmtleXMoY29uZmlnMikpLCBmdW5jdGlvbiBjb21wdXRlQ29uZmlnVmFsdWUocHJvcCkge1xuICAgIHZhciBtZXJnZSA9IG1lcmdlTWFwW3Byb3BdIHx8IG1lcmdlRGVlcFByb3BlcnRpZXM7XG4gICAgdmFyIGNvbmZpZ1ZhbHVlID0gbWVyZ2UocHJvcCk7XG4gICAgKHV0aWxzLmlzVW5kZWZpbmVkKGNvbmZpZ1ZhbHVlKSAmJiBtZXJnZSAhPT0gbWVyZ2VEaXJlY3RLZXlzKSB8fCAoY29uZmlnW3Byb3BdID0gY29uZmlnVmFsdWUpO1xuICB9KTtcblxuICByZXR1cm4gY29uZmlnO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZSgnLi9jcmVhdGVFcnJvcicpO1xuXG4vKipcbiAqIFJlc29sdmUgb3IgcmVqZWN0IGEgUHJvbWlzZSBiYXNlZCBvbiByZXNwb25zZSBzdGF0dXMuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVzb2x2ZSBBIGZ1bmN0aW9uIHRoYXQgcmVzb2x2ZXMgdGhlIHByb21pc2UuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWplY3QgQSBmdW5jdGlvbiB0aGF0IHJlamVjdHMgdGhlIHByb21pc2UuXG4gKiBAcGFyYW0ge29iamVjdH0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlLlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHJlc3BvbnNlKSB7XG4gIHZhciB2YWxpZGF0ZVN0YXR1cyA9IHJlc3BvbnNlLmNvbmZpZy52YWxpZGF0ZVN0YXR1cztcbiAgaWYgKCFyZXNwb25zZS5zdGF0dXMgfHwgIXZhbGlkYXRlU3RhdHVzIHx8IHZhbGlkYXRlU3RhdHVzKHJlc3BvbnNlLnN0YXR1cykpIHtcbiAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgfSBlbHNlIHtcbiAgICByZWplY3QoY3JlYXRlRXJyb3IoXG4gICAgICAnUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAnICsgcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgcmVzcG9uc2UuY29uZmlnLFxuICAgICAgbnVsbCxcbiAgICAgIHJlc3BvbnNlLnJlcXVlc3QsXG4gICAgICByZXNwb25zZVxuICAgICkpO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLy4uL3V0aWxzJyk7XG52YXIgZGVmYXVsdHMgPSByZXF1aXJlKCcuLy4uL2RlZmF1bHRzJyk7XG5cbi8qKlxuICogVHJhbnNmb3JtIHRoZSBkYXRhIGZvciBhIHJlcXVlc3Qgb3IgYSByZXNwb25zZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fFN0cmluZ30gZGF0YSBUaGUgZGF0YSB0byBiZSB0cmFuc2Zvcm1lZFxuICogQHBhcmFtIHtBcnJheX0gaGVhZGVycyBUaGUgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3Qgb3IgcmVzcG9uc2VcbiAqIEBwYXJhbSB7QXJyYXl8RnVuY3Rpb259IGZucyBBIHNpbmdsZSBmdW5jdGlvbiBvciBBcnJheSBvZiBmdW5jdGlvbnNcbiAqIEByZXR1cm5zIHsqfSBUaGUgcmVzdWx0aW5nIHRyYW5zZm9ybWVkIGRhdGFcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRhKGRhdGEsIGhlYWRlcnMsIGZucykge1xuICB2YXIgY29udGV4dCA9IHRoaXMgfHwgZGVmYXVsdHM7XG4gIC8qZXNsaW50IG5vLXBhcmFtLXJlYXNzaWduOjAqL1xuICB1dGlscy5mb3JFYWNoKGZucywgZnVuY3Rpb24gdHJhbnNmb3JtKGZuKSB7XG4gICAgZGF0YSA9IGZuLmNhbGwoY29udGV4dCwgZGF0YSwgaGVhZGVycyk7XG4gIH0pO1xuXG4gIHJldHVybiBkYXRhO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xudmFyIG5vcm1hbGl6ZUhlYWRlck5hbWUgPSByZXF1aXJlKCcuL2hlbHBlcnMvbm9ybWFsaXplSGVhZGVyTmFtZScpO1xudmFyIGVuaGFuY2VFcnJvciA9IHJlcXVpcmUoJy4vY29yZS9lbmhhbmNlRXJyb3InKTtcblxudmFyIERFRkFVTFRfQ09OVEVOVF9UWVBFID0ge1xuICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbn07XG5cbmZ1bmN0aW9uIHNldENvbnRlbnRUeXBlSWZVbnNldChoZWFkZXJzLCB2YWx1ZSkge1xuICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGhlYWRlcnMpICYmIHV0aWxzLmlzVW5kZWZpbmVkKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddKSkge1xuICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gdmFsdWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdEFkYXB0ZXIoKSB7XG4gIHZhciBhZGFwdGVyO1xuICBpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEZvciBicm93c2VycyB1c2UgWEhSIGFkYXB0ZXJcbiAgICBhZGFwdGVyID0gcmVxdWlyZSgnLi9hZGFwdGVycy94aHInKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpID09PSAnW29iamVjdCBwcm9jZXNzXScpIHtcbiAgICAvLyBGb3Igbm9kZSB1c2UgSFRUUCBhZGFwdGVyXG4gICAgYWRhcHRlciA9IHJlcXVpcmUoJy4vYWRhcHRlcnMvaHR0cCcpO1xuICB9XG4gIHJldHVybiBhZGFwdGVyO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlTYWZlbHkocmF3VmFsdWUsIHBhcnNlciwgZW5jb2Rlcikge1xuICBpZiAodXRpbHMuaXNTdHJpbmcocmF3VmFsdWUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIChwYXJzZXIgfHwgSlNPTi5wYXJzZSkocmF3VmFsdWUpO1xuICAgICAgcmV0dXJuIHV0aWxzLnRyaW0ocmF3VmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdTeW50YXhFcnJvcicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKGVuY29kZXIgfHwgSlNPTi5zdHJpbmdpZnkpKHJhd1ZhbHVlKTtcbn1cblxudmFyIGRlZmF1bHRzID0ge1xuXG4gIHRyYW5zaXRpb25hbDoge1xuICAgIHNpbGVudEpTT05QYXJzaW5nOiB0cnVlLFxuICAgIGZvcmNlZEpTT05QYXJzaW5nOiB0cnVlLFxuICAgIGNsYXJpZnlUaW1lb3V0RXJyb3I6IGZhbHNlXG4gIH0sXG5cbiAgYWRhcHRlcjogZ2V0RGVmYXVsdEFkYXB0ZXIoKSxcblxuICB0cmFuc2Zvcm1SZXF1ZXN0OiBbZnVuY3Rpb24gdHJhbnNmb3JtUmVxdWVzdChkYXRhLCBoZWFkZXJzKSB7XG4gICAgbm9ybWFsaXplSGVhZGVyTmFtZShoZWFkZXJzLCAnQWNjZXB0Jyk7XG4gICAgbm9ybWFsaXplSGVhZGVyTmFtZShoZWFkZXJzLCAnQ29udGVudC1UeXBlJyk7XG5cbiAgICBpZiAodXRpbHMuaXNGb3JtRGF0YShkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNBcnJheUJ1ZmZlcihkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNCdWZmZXIoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzU3RyZWFtKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc0ZpbGUoZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzQmxvYihkYXRhKVxuICAgICkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyVmlldyhkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGEuYnVmZmVyO1xuICAgIH1cbiAgICBpZiAodXRpbHMuaXNVUkxTZWFyY2hQYXJhbXMoZGF0YSkpIHtcbiAgICAgIHNldENvbnRlbnRUeXBlSWZVbnNldChoZWFkZXJzLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgnKTtcbiAgICAgIHJldHVybiBkYXRhLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc09iamVjdChkYXRhKSB8fCAoaGVhZGVycyAmJiBoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgc2V0Q29udGVudFR5cGVJZlVuc2V0KGhlYWRlcnMsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICByZXR1cm4gc3RyaW5naWZ5U2FmZWx5KGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfV0sXG5cbiAgdHJhbnNmb3JtUmVzcG9uc2U6IFtmdW5jdGlvbiB0cmFuc2Zvcm1SZXNwb25zZShkYXRhKSB7XG4gICAgdmFyIHRyYW5zaXRpb25hbCA9IHRoaXMudHJhbnNpdGlvbmFsIHx8IGRlZmF1bHRzLnRyYW5zaXRpb25hbDtcbiAgICB2YXIgc2lsZW50SlNPTlBhcnNpbmcgPSB0cmFuc2l0aW9uYWwgJiYgdHJhbnNpdGlvbmFsLnNpbGVudEpTT05QYXJzaW5nO1xuICAgIHZhciBmb3JjZWRKU09OUGFyc2luZyA9IHRyYW5zaXRpb25hbCAmJiB0cmFuc2l0aW9uYWwuZm9yY2VkSlNPTlBhcnNpbmc7XG4gICAgdmFyIHN0cmljdEpTT05QYXJzaW5nID0gIXNpbGVudEpTT05QYXJzaW5nICYmIHRoaXMucmVzcG9uc2VUeXBlID09PSAnanNvbic7XG5cbiAgICBpZiAoc3RyaWN0SlNPTlBhcnNpbmcgfHwgKGZvcmNlZEpTT05QYXJzaW5nICYmIHV0aWxzLmlzU3RyaW5nKGRhdGEpICYmIGRhdGEubGVuZ3RoKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChzdHJpY3RKU09OUGFyc2luZykge1xuICAgICAgICAgIGlmIChlLm5hbWUgPT09ICdTeW50YXhFcnJvcicpIHtcbiAgICAgICAgICAgIHRocm93IGVuaGFuY2VFcnJvcihlLCB0aGlzLCAnRV9KU09OX1BBUlNFJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfV0sXG5cbiAgLyoqXG4gICAqIEEgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gYWJvcnQgYSByZXF1ZXN0LiBJZiBzZXQgdG8gMCAoZGVmYXVsdCkgYVxuICAgKiB0aW1lb3V0IGlzIG5vdCBjcmVhdGVkLlxuICAgKi9cbiAgdGltZW91dDogMCxcblxuICB4c3JmQ29va2llTmFtZTogJ1hTUkYtVE9LRU4nLFxuICB4c3JmSGVhZGVyTmFtZTogJ1gtWFNSRi1UT0tFTicsXG5cbiAgbWF4Q29udGVudExlbmd0aDogLTEsXG4gIG1heEJvZHlMZW5ndGg6IC0xLFxuXG4gIHZhbGlkYXRlU3RhdHVzOiBmdW5jdGlvbiB2YWxpZGF0ZVN0YXR1cyhzdGF0dXMpIHtcbiAgICByZXR1cm4gc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDA7XG4gIH0sXG5cbiAgaGVhZGVyczoge1xuICAgIGNvbW1vbjoge1xuICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonXG4gICAgfVxuICB9XG59O1xuXG51dGlscy5mb3JFYWNoKFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJ10sIGZ1bmN0aW9uIGZvckVhY2hNZXRob2ROb0RhdGEobWV0aG9kKSB7XG4gIGRlZmF1bHRzLmhlYWRlcnNbbWV0aG9kXSA9IHt9O1xufSk7XG5cbnV0aWxzLmZvckVhY2goWydwb3N0JywgJ3B1dCcsICdwYXRjaCddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kV2l0aERhdGEobWV0aG9kKSB7XG4gIGRlZmF1bHRzLmhlYWRlcnNbbWV0aG9kXSA9IHV0aWxzLm1lcmdlKERFRkFVTFRfQ09OVEVOVF9UWVBFKTtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlZmF1bHRzO1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIFwidmVyc2lvblwiOiBcIjAuMjUuMFwiXG59OyIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBiaW5kKGZuLCB0aGlzQXJnKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3cmFwKCkge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi8uLi91dGlscycpO1xuXG5mdW5jdGlvbiBlbmNvZGUodmFsKSB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsKS5cbiAgICByZXBsYWNlKC8lM0EvZ2ksICc6JykuXG4gICAgcmVwbGFjZSgvJTI0L2csICckJykuXG4gICAgcmVwbGFjZSgvJTJDL2dpLCAnLCcpLlxuICAgIHJlcGxhY2UoLyUyMC9nLCAnKycpLlxuICAgIHJlcGxhY2UoLyU1Qi9naSwgJ1snKS5cbiAgICByZXBsYWNlKC8lNUQvZ2ksICddJyk7XG59XG5cbi8qKlxuICogQnVpbGQgYSBVUkwgYnkgYXBwZW5kaW5nIHBhcmFtcyB0byB0aGUgZW5kXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgYmFzZSBvZiB0aGUgdXJsIChlLmcuLCBodHRwOi8vd3d3Lmdvb2dsZS5jb20pXG4gKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gVGhlIHBhcmFtcyB0byBiZSBhcHBlbmRlZFxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGZvcm1hdHRlZCB1cmxcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBidWlsZFVSTCh1cmwsIHBhcmFtcywgcGFyYW1zU2VyaWFsaXplcikge1xuICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgaWYgKCFwYXJhbXMpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgdmFyIHNlcmlhbGl6ZWRQYXJhbXM7XG4gIGlmIChwYXJhbXNTZXJpYWxpemVyKSB7XG4gICAgc2VyaWFsaXplZFBhcmFtcyA9IHBhcmFtc1NlcmlhbGl6ZXIocGFyYW1zKTtcbiAgfSBlbHNlIGlmICh1dGlscy5pc1VSTFNlYXJjaFBhcmFtcyhwYXJhbXMpKSB7XG4gICAgc2VyaWFsaXplZFBhcmFtcyA9IHBhcmFtcy50b1N0cmluZygpO1xuICB9IGVsc2Uge1xuICAgIHZhciBwYXJ0cyA9IFtdO1xuXG4gICAgdXRpbHMuZm9yRWFjaChwYXJhbXMsIGZ1bmN0aW9uIHNlcmlhbGl6ZSh2YWwsIGtleSkge1xuICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh1dGlscy5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAga2V5ID0ga2V5ICsgJ1tdJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbCA9IFt2YWxdO1xuICAgICAgfVxuXG4gICAgICB1dGlscy5mb3JFYWNoKHZhbCwgZnVuY3Rpb24gcGFyc2VWYWx1ZSh2KSB7XG4gICAgICAgIGlmICh1dGlscy5pc0RhdGUodikpIHtcbiAgICAgICAgICB2ID0gdi50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2UgaWYgKHV0aWxzLmlzT2JqZWN0KHYpKSB7XG4gICAgICAgICAgdiA9IEpTT04uc3RyaW5naWZ5KHYpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnRzLnB1c2goZW5jb2RlKGtleSkgKyAnPScgKyBlbmNvZGUodikpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzZXJpYWxpemVkUGFyYW1zID0gcGFydHMuam9pbignJicpO1xuICB9XG5cbiAgaWYgKHNlcmlhbGl6ZWRQYXJhbXMpIHtcbiAgICB2YXIgaGFzaG1hcmtJbmRleCA9IHVybC5pbmRleE9mKCcjJyk7XG4gICAgaWYgKGhhc2htYXJrSW5kZXggIT09IC0xKSB7XG4gICAgICB1cmwgPSB1cmwuc2xpY2UoMCwgaGFzaG1hcmtJbmRleCk7XG4gICAgfVxuXG4gICAgdXJsICs9ICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyBzZXJpYWxpemVkUGFyYW1zO1xuICB9XG5cbiAgcmV0dXJuIHVybDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBVUkwgYnkgY29tYmluaW5nIHRoZSBzcGVjaWZpZWQgVVJMc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlVVJMIFRoZSBiYXNlIFVSTFxuICogQHBhcmFtIHtzdHJpbmd9IHJlbGF0aXZlVVJMIFRoZSByZWxhdGl2ZSBVUkxcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21iaW5lZCBVUkxcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjb21iaW5lVVJMcyhiYXNlVVJMLCByZWxhdGl2ZVVSTCkge1xuICByZXR1cm4gcmVsYXRpdmVVUkxcbiAgICA/IGJhc2VVUkwucmVwbGFjZSgvXFwvKyQvLCAnJykgKyAnLycgKyByZWxhdGl2ZVVSTC5yZXBsYWNlKC9eXFwvKy8sICcnKVxuICAgIDogYmFzZVVSTDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAoXG4gIHV0aWxzLmlzU3RhbmRhcmRCcm93c2VyRW52KCkgP1xuXG4gIC8vIFN0YW5kYXJkIGJyb3dzZXIgZW52cyBzdXBwb3J0IGRvY3VtZW50LmNvb2tpZVxuICAgIChmdW5jdGlvbiBzdGFuZGFyZEJyb3dzZXJFbnYoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3cml0ZTogZnVuY3Rpb24gd3JpdGUobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlKSB7XG4gICAgICAgICAgdmFyIGNvb2tpZSA9IFtdO1xuICAgICAgICAgIGNvb2tpZS5wdXNoKG5hbWUgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpKTtcblxuICAgICAgICAgIGlmICh1dGlscy5pc051bWJlcihleHBpcmVzKSkge1xuICAgICAgICAgICAgY29va2llLnB1c2goJ2V4cGlyZXM9JyArIG5ldyBEYXRlKGV4cGlyZXMpLnRvR01UU3RyaW5nKCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh1dGlscy5pc1N0cmluZyhwYXRoKSkge1xuICAgICAgICAgICAgY29va2llLnB1c2goJ3BhdGg9JyArIHBhdGgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh1dGlscy5pc1N0cmluZyhkb21haW4pKSB7XG4gICAgICAgICAgICBjb29raWUucHVzaCgnZG9tYWluPScgKyBkb21haW4pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzZWN1cmUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGNvb2tpZS5wdXNoKCdzZWN1cmUnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUuam9pbignOyAnKTtcbiAgICAgICAgfSxcblxuICAgICAgICByZWFkOiBmdW5jdGlvbiByZWFkKG5hbWUpIHtcbiAgICAgICAgICB2YXIgbWF0Y2ggPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgnKF58O1xcXFxzKikoJyArIG5hbWUgKyAnKT0oW147XSopJykpO1xuICAgICAgICAgIHJldHVybiAobWF0Y2ggPyBkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbM10pIDogbnVsbCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUobmFtZSkge1xuICAgICAgICAgIHRoaXMud3JpdGUobmFtZSwgJycsIERhdGUubm93KCkgLSA4NjQwMDAwMCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSkoKSA6XG5cbiAgLy8gTm9uIHN0YW5kYXJkIGJyb3dzZXIgZW52ICh3ZWIgd29ya2VycywgcmVhY3QtbmF0aXZlKSBsYWNrIG5lZWRlZCBzdXBwb3J0LlxuICAgIChmdW5jdGlvbiBub25TdGFuZGFyZEJyb3dzZXJFbnYoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3cml0ZTogZnVuY3Rpb24gd3JpdGUoKSB7fSxcbiAgICAgICAgcmVhZDogZnVuY3Rpb24gcmVhZCgpIHsgcmV0dXJuIG51bGw7IH0sXG4gICAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge31cbiAgICAgIH07XG4gICAgfSkoKVxuKTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBVUkwgaXMgYWJzb2x1dGVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSBVUkwgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHNwZWNpZmllZCBVUkwgaXMgYWJzb2x1dGUsIG90aGVyd2lzZSBmYWxzZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGlzQWJzb2x1dGVVUkwodXJsKSB7XG4gIC8vIEEgVVJMIGlzIGNvbnNpZGVyZWQgYWJzb2x1dGUgaWYgaXQgYmVnaW5zIHdpdGggXCI8c2NoZW1lPjovL1wiIG9yIFwiLy9cIiAocHJvdG9jb2wtcmVsYXRpdmUgVVJMKS5cbiAgLy8gUkZDIDM5ODYgZGVmaW5lcyBzY2hlbWUgbmFtZSBhcyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgYmVnaW5uaW5nIHdpdGggYSBsZXR0ZXIgYW5kIGZvbGxvd2VkXG4gIC8vIGJ5IGFueSBjb21iaW5hdGlvbiBvZiBsZXR0ZXJzLCBkaWdpdHMsIHBsdXMsIHBlcmlvZCwgb3IgaHlwaGVuLlxuICByZXR1cm4gL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QodXJsKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zXG4gKlxuICogQHBhcmFtIHsqfSBwYXlsb2FkIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgcGF5bG9hZCBpcyBhbiBlcnJvciB0aHJvd24gYnkgQXhpb3MsIG90aGVyd2lzZSBmYWxzZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGlzQXhpb3NFcnJvcihwYXlsb2FkKSB7XG4gIHJldHVybiB1dGlscy5pc09iamVjdChwYXlsb2FkKSAmJiAocGF5bG9hZC5pc0F4aW9zRXJyb3IgPT09IHRydWUpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi8uLi91dGlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChcbiAgdXRpbHMuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSA/XG5cbiAgLy8gU3RhbmRhcmQgYnJvd3NlciBlbnZzIGhhdmUgZnVsbCBzdXBwb3J0IG9mIHRoZSBBUElzIG5lZWRlZCB0byB0ZXN0XG4gIC8vIHdoZXRoZXIgdGhlIHJlcXVlc3QgVVJMIGlzIG9mIHRoZSBzYW1lIG9yaWdpbiBhcyBjdXJyZW50IGxvY2F0aW9uLlxuICAgIChmdW5jdGlvbiBzdGFuZGFyZEJyb3dzZXJFbnYoKSB7XG4gICAgICB2YXIgbXNpZSA9IC8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgICB2YXIgdXJsUGFyc2luZ05vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICB2YXIgb3JpZ2luVVJMO1xuXG4gICAgICAvKipcbiAgICAqIFBhcnNlIGEgVVJMIHRvIGRpc2NvdmVyIGl0J3MgY29tcG9uZW50c1xuICAgICpcbiAgICAqIEBwYXJhbSB7U3RyaW5nfSB1cmwgVGhlIFVSTCB0byBiZSBwYXJzZWRcbiAgICAqIEByZXR1cm5zIHtPYmplY3R9XG4gICAgKi9cbiAgICAgIGZ1bmN0aW9uIHJlc29sdmVVUkwodXJsKSB7XG4gICAgICAgIHZhciBocmVmID0gdXJsO1xuXG4gICAgICAgIGlmIChtc2llKSB7XG4gICAgICAgIC8vIElFIG5lZWRzIGF0dHJpYnV0ZSBzZXQgdHdpY2UgdG8gbm9ybWFsaXplIHByb3BlcnRpZXNcbiAgICAgICAgICB1cmxQYXJzaW5nTm9kZS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTtcbiAgICAgICAgICBocmVmID0gdXJsUGFyc2luZ05vZGUuaHJlZjtcbiAgICAgICAgfVxuXG4gICAgICAgIHVybFBhcnNpbmdOb2RlLnNldEF0dHJpYnV0ZSgnaHJlZicsIGhyZWYpO1xuXG4gICAgICAgIC8vIHVybFBhcnNpbmdOb2RlIHByb3ZpZGVzIHRoZSBVcmxVdGlscyBpbnRlcmZhY2UgLSBodHRwOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jdXJsdXRpbHNcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBocmVmOiB1cmxQYXJzaW5nTm9kZS5ocmVmLFxuICAgICAgICAgIHByb3RvY29sOiB1cmxQYXJzaW5nTm9kZS5wcm90b2NvbCA/IHVybFBhcnNpbmdOb2RlLnByb3RvY29sLnJlcGxhY2UoLzokLywgJycpIDogJycsXG4gICAgICAgICAgaG9zdDogdXJsUGFyc2luZ05vZGUuaG9zdCxcbiAgICAgICAgICBzZWFyY2g6IHVybFBhcnNpbmdOb2RlLnNlYXJjaCA/IHVybFBhcnNpbmdOb2RlLnNlYXJjaC5yZXBsYWNlKC9eXFw/LywgJycpIDogJycsXG4gICAgICAgICAgaGFzaDogdXJsUGFyc2luZ05vZGUuaGFzaCA/IHVybFBhcnNpbmdOb2RlLmhhc2gucmVwbGFjZSgvXiMvLCAnJykgOiAnJyxcbiAgICAgICAgICBob3N0bmFtZTogdXJsUGFyc2luZ05vZGUuaG9zdG5hbWUsXG4gICAgICAgICAgcG9ydDogdXJsUGFyc2luZ05vZGUucG9ydCxcbiAgICAgICAgICBwYXRobmFtZTogKHVybFBhcnNpbmdOb2RlLnBhdGhuYW1lLmNoYXJBdCgwKSA9PT0gJy8nKSA/XG4gICAgICAgICAgICB1cmxQYXJzaW5nTm9kZS5wYXRobmFtZSA6XG4gICAgICAgICAgICAnLycgKyB1cmxQYXJzaW5nTm9kZS5wYXRobmFtZVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBvcmlnaW5VUkwgPSByZXNvbHZlVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcblxuICAgICAgLyoqXG4gICAgKiBEZXRlcm1pbmUgaWYgYSBVUkwgc2hhcmVzIHRoZSBzYW1lIG9yaWdpbiBhcyB0aGUgY3VycmVudCBsb2NhdGlvblxuICAgICpcbiAgICAqIEBwYXJhbSB7U3RyaW5nfSByZXF1ZXN0VVJMIFRoZSBVUkwgdG8gdGVzdFxuICAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgVVJMIHNoYXJlcyB0aGUgc2FtZSBvcmlnaW4sIG90aGVyd2lzZSBmYWxzZVxuICAgICovXG4gICAgICByZXR1cm4gZnVuY3Rpb24gaXNVUkxTYW1lT3JpZ2luKHJlcXVlc3RVUkwpIHtcbiAgICAgICAgdmFyIHBhcnNlZCA9ICh1dGlscy5pc1N0cmluZyhyZXF1ZXN0VVJMKSkgPyByZXNvbHZlVVJMKHJlcXVlc3RVUkwpIDogcmVxdWVzdFVSTDtcbiAgICAgICAgcmV0dXJuIChwYXJzZWQucHJvdG9jb2wgPT09IG9yaWdpblVSTC5wcm90b2NvbCAmJlxuICAgICAgICAgICAgcGFyc2VkLmhvc3QgPT09IG9yaWdpblVSTC5ob3N0KTtcbiAgICAgIH07XG4gICAgfSkoKSA6XG5cbiAgLy8gTm9uIHN0YW5kYXJkIGJyb3dzZXIgZW52cyAod2ViIHdvcmtlcnMsIHJlYWN0LW5hdGl2ZSkgbGFjayBuZWVkZWQgc3VwcG9ydC5cbiAgICAoZnVuY3Rpb24gbm9uU3RhbmRhcmRCcm93c2VyRW52KCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIGlzVVJMU2FtZU9yaWdpbigpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgIH0pKClcbik7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbm9ybWFsaXplSGVhZGVyTmFtZShoZWFkZXJzLCBub3JtYWxpemVkTmFtZSkge1xuICB1dGlscy5mb3JFYWNoKGhlYWRlcnMsIGZ1bmN0aW9uIHByb2Nlc3NIZWFkZXIodmFsdWUsIG5hbWUpIHtcbiAgICBpZiAobmFtZSAhPT0gbm9ybWFsaXplZE5hbWUgJiYgbmFtZS50b1VwcGVyQ2FzZSgpID09PSBub3JtYWxpemVkTmFtZS50b1VwcGVyQ2FzZSgpKSB7XG4gICAgICBoZWFkZXJzW25vcm1hbGl6ZWROYW1lXSA9IHZhbHVlO1xuICAgICAgZGVsZXRlIGhlYWRlcnNbbmFtZV07XG4gICAgfVxuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vLi4vdXRpbHMnKTtcblxuLy8gSGVhZGVycyB3aG9zZSBkdXBsaWNhdGVzIGFyZSBpZ25vcmVkIGJ5IG5vZGVcbi8vIGMuZi4gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9odHRwLmh0bWwjaHR0cF9tZXNzYWdlX2hlYWRlcnNcbnZhciBpZ25vcmVEdXBsaWNhdGVPZiA9IFtcbiAgJ2FnZScsICdhdXRob3JpemF0aW9uJywgJ2NvbnRlbnQtbGVuZ3RoJywgJ2NvbnRlbnQtdHlwZScsICdldGFnJyxcbiAgJ2V4cGlyZXMnLCAnZnJvbScsICdob3N0JywgJ2lmLW1vZGlmaWVkLXNpbmNlJywgJ2lmLXVubW9kaWZpZWQtc2luY2UnLFxuICAnbGFzdC1tb2RpZmllZCcsICdsb2NhdGlvbicsICdtYXgtZm9yd2FyZHMnLCAncHJveHktYXV0aG9yaXphdGlvbicsXG4gICdyZWZlcmVyJywgJ3JldHJ5LWFmdGVyJywgJ3VzZXItYWdlbnQnXG5dO1xuXG4vKipcbiAqIFBhcnNlIGhlYWRlcnMgaW50byBhbiBvYmplY3RcbiAqXG4gKiBgYGBcbiAqIERhdGU6IFdlZCwgMjcgQXVnIDIwMTQgMDg6NTg6NDkgR01UXG4gKiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cbiAqIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAqIFRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaGVhZGVycyBIZWFkZXJzIG5lZWRpbmcgdG8gYmUgcGFyc2VkXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBIZWFkZXJzIHBhcnNlZCBpbnRvIGFuIG9iamVjdFxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlSGVhZGVycyhoZWFkZXJzKSB7XG4gIHZhciBwYXJzZWQgPSB7fTtcbiAgdmFyIGtleTtcbiAgdmFyIHZhbDtcbiAgdmFyIGk7XG5cbiAgaWYgKCFoZWFkZXJzKSB7IHJldHVybiBwYXJzZWQ7IH1cblxuICB1dGlscy5mb3JFYWNoKGhlYWRlcnMuc3BsaXQoJ1xcbicpLCBmdW5jdGlvbiBwYXJzZXIobGluZSkge1xuICAgIGkgPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICBrZXkgPSB1dGlscy50cmltKGxpbmUuc3Vic3RyKDAsIGkpKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IHV0aWxzLnRyaW0obGluZS5zdWJzdHIoaSArIDEpKTtcblxuICAgIGlmIChrZXkpIHtcbiAgICAgIGlmIChwYXJzZWRba2V5XSAmJiBpZ25vcmVEdXBsaWNhdGVPZi5pbmRleE9mKGtleSkgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoa2V5ID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgICAgcGFyc2VkW2tleV0gPSAocGFyc2VkW2tleV0gPyBwYXJzZWRba2V5XSA6IFtdKS5jb25jYXQoW3ZhbF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyc2VkW2tleV0gPSBwYXJzZWRba2V5XSA/IHBhcnNlZFtrZXldICsgJywgJyArIHZhbCA6IHZhbDtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwYXJzZWQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFN5bnRhY3RpYyBzdWdhciBmb3IgaW52b2tpbmcgYSBmdW5jdGlvbiBhbmQgZXhwYW5kaW5nIGFuIGFycmF5IGZvciBhcmd1bWVudHMuXG4gKlxuICogQ29tbW9uIHVzZSBjYXNlIHdvdWxkIGJlIHRvIHVzZSBgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5YC5cbiAqXG4gKiAgYGBganNcbiAqICBmdW5jdGlvbiBmKHgsIHksIHopIHt9XG4gKiAgdmFyIGFyZ3MgPSBbMSwgMiwgM107XG4gKiAgZi5hcHBseShudWxsLCBhcmdzKTtcbiAqICBgYGBcbiAqXG4gKiBXaXRoIGBzcHJlYWRgIHRoaXMgZXhhbXBsZSBjYW4gYmUgcmUtd3JpdHRlbi5cbiAqXG4gKiAgYGBganNcbiAqICBzcHJlYWQoZnVuY3Rpb24oeCwgeSwgeikge30pKFsxLCAyLCAzXSk7XG4gKiAgYGBgXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBzcHJlYWQoY2FsbGJhY2spIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHdyYXAoYXJyKSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrLmFwcGx5KG51bGwsIGFycik7XG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2Vudi9kYXRhJykudmVyc2lvbjtcblxudmFyIHZhbGlkYXRvcnMgPSB7fTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcblsnb2JqZWN0JywgJ2Jvb2xlYW4nLCAnbnVtYmVyJywgJ2Z1bmN0aW9uJywgJ3N0cmluZycsICdzeW1ib2wnXS5mb3JFYWNoKGZ1bmN0aW9uKHR5cGUsIGkpIHtcbiAgdmFsaWRhdG9yc1t0eXBlXSA9IGZ1bmN0aW9uIHZhbGlkYXRvcih0aGluZykge1xuICAgIHJldHVybiB0eXBlb2YgdGhpbmcgPT09IHR5cGUgfHwgJ2EnICsgKGkgPCAxID8gJ24gJyA6ICcgJykgKyB0eXBlO1xuICB9O1xufSk7XG5cbnZhciBkZXByZWNhdGVkV2FybmluZ3MgPSB7fTtcblxuLyoqXG4gKiBUcmFuc2l0aW9uYWwgb3B0aW9uIHZhbGlkYXRvclxuICogQHBhcmFtIHtmdW5jdGlvbnxib29sZWFuP30gdmFsaWRhdG9yIC0gc2V0IHRvIGZhbHNlIGlmIHRoZSB0cmFuc2l0aW9uYWwgb3B0aW9uIGhhcyBiZWVuIHJlbW92ZWRcbiAqIEBwYXJhbSB7c3RyaW5nP30gdmVyc2lvbiAtIGRlcHJlY2F0ZWQgdmVyc2lvbiAvIHJlbW92ZWQgc2luY2UgdmVyc2lvblxuICogQHBhcmFtIHtzdHJpbmc/fSBtZXNzYWdlIC0gc29tZSBtZXNzYWdlIHdpdGggYWRkaXRpb25hbCBpbmZvXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259XG4gKi9cbnZhbGlkYXRvcnMudHJhbnNpdGlvbmFsID0gZnVuY3Rpb24gdHJhbnNpdGlvbmFsKHZhbGlkYXRvciwgdmVyc2lvbiwgbWVzc2FnZSkge1xuICBmdW5jdGlvbiBmb3JtYXRNZXNzYWdlKG9wdCwgZGVzYykge1xuICAgIHJldHVybiAnW0F4aW9zIHYnICsgVkVSU0lPTiArICddIFRyYW5zaXRpb25hbCBvcHRpb24gXFwnJyArIG9wdCArICdcXCcnICsgZGVzYyArIChtZXNzYWdlID8gJy4gJyArIG1lc3NhZ2UgOiAnJyk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG9wdCwgb3B0cykge1xuICAgIGlmICh2YWxpZGF0b3IgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZm9ybWF0TWVzc2FnZShvcHQsICcgaGFzIGJlZW4gcmVtb3ZlZCcgKyAodmVyc2lvbiA/ICcgaW4gJyArIHZlcnNpb24gOiAnJykpKTtcbiAgICB9XG5cbiAgICBpZiAodmVyc2lvbiAmJiAhZGVwcmVjYXRlZFdhcm5pbmdzW29wdF0pIHtcbiAgICAgIGRlcHJlY2F0ZWRXYXJuaW5nc1tvcHRdID0gdHJ1ZTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGZvcm1hdE1lc3NhZ2UoXG4gICAgICAgICAgb3B0LFxuICAgICAgICAgICcgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2JyArIHZlcnNpb24gKyAnIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlJ1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3IgPyB2YWxpZGF0b3IodmFsdWUsIG9wdCwgb3B0cykgOiB0cnVlO1xuICB9O1xufTtcblxuLyoqXG4gKiBBc3NlcnQgb2JqZWN0J3MgcHJvcGVydGllcyB0eXBlXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtvYmplY3R9IHNjaGVtYVxuICogQHBhcmFtIHtib29sZWFuP30gYWxsb3dVbmtub3duXG4gKi9cblxuZnVuY3Rpb24gYXNzZXJ0T3B0aW9ucyhvcHRpb25zLCBzY2hlbWEsIGFsbG93VW5rbm93bikge1xuICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICB9XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob3B0aW9ucyk7XG4gIHZhciBpID0ga2V5cy5sZW5ndGg7XG4gIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgdmFyIG9wdCA9IGtleXNbaV07XG4gICAgdmFyIHZhbGlkYXRvciA9IHNjaGVtYVtvcHRdO1xuICAgIGlmICh2YWxpZGF0b3IpIHtcbiAgICAgIHZhciB2YWx1ZSA9IG9wdGlvbnNbb3B0XTtcbiAgICAgIHZhciByZXN1bHQgPSB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbGlkYXRvcih2YWx1ZSwgb3B0LCBvcHRpb25zKTtcbiAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uICcgKyBvcHQgKyAnIG11c3QgYmUgJyArIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGFsbG93VW5rbm93biAhPT0gdHJ1ZSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1Vua25vd24gb3B0aW9uICcgKyBvcHQpO1xuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYXNzZXJ0T3B0aW9uczogYXNzZXJ0T3B0aW9ucyxcbiAgdmFsaWRhdG9yczogdmFsaWRhdG9yc1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGJpbmQgPSByZXF1aXJlKCcuL2hlbHBlcnMvYmluZCcpO1xuXG4vLyB1dGlscyBpcyBhIGxpYnJhcnkgb2YgZ2VuZXJpYyBoZWxwZXIgZnVuY3Rpb25zIG5vbi1zcGVjaWZpYyB0byBheGlvc1xuXG52YXIgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGFuIEFycmF5XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gQXJyYXksIG90aGVyd2lzZSBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0FycmF5KHZhbCkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIHVuZGVmaW5lZFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB1bmRlZmluZWQsIG90aGVyd2lzZSBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWwpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICd1bmRlZmluZWQnO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQnVmZmVyXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBCdWZmZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0J1ZmZlcih2YWwpIHtcbiAgcmV0dXJuIHZhbCAhPT0gbnVsbCAmJiAhaXNVbmRlZmluZWQodmFsKSAmJiB2YWwuY29uc3RydWN0b3IgIT09IG51bGwgJiYgIWlzVW5kZWZpbmVkKHZhbC5jb25zdHJ1Y3RvcilcbiAgICAmJiB0eXBlb2YgdmFsLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIHZhbC5jb25zdHJ1Y3Rvci5pc0J1ZmZlcih2YWwpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGFuIEFycmF5QnVmZmVyXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gQXJyYXlCdWZmZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0FycmF5QnVmZmVyKHZhbCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRm9ybURhdGFcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBGb3JtRGF0YSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRm9ybURhdGEodmFsKSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IEZvcm1EYXRhXSc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSB2aWV3IG9uIGFuIEFycmF5QnVmZmVyXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSB2aWV3IG9uIGFuIEFycmF5QnVmZmVyLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUJ1ZmZlclZpZXcodmFsKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmICgodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJykgJiYgKEFycmF5QnVmZmVyLmlzVmlldykpIHtcbiAgICByZXN1bHQgPSBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsKTtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSAodmFsKSAmJiAodmFsLmJ1ZmZlcikgJiYgKGlzQXJyYXlCdWZmZXIodmFsLmJ1ZmZlcikpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBTdHJpbmdcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFN0cmluZywgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZyc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBOdW1iZXJcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIE51bWJlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTnVtYmVyKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcic7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gT2JqZWN0XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XG4gIHJldHVybiB2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBwbGFpbiBPYmplY3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgcGxhaW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWwpIHtcbiAgaWYgKHRvU3RyaW5nLmNhbGwodmFsKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbCk7XG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRGF0ZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRGF0ZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRGF0ZSh2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRmlsZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRmlsZSh2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRmlsZV0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQmxvYlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgQmxvYiwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQmxvYih2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgQmxvYl0nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEZ1bmN0aW9uLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWwpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIFN0cmVhbVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgU3RyZWFtLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTdHJlYW0odmFsKSB7XG4gIHJldHVybiBpc09iamVjdCh2YWwpICYmIGlzRnVuY3Rpb24odmFsLnBpcGUpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVVJMU2VhcmNoUGFyYW1zKHZhbCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBVUkxTZWFyY2hQYXJhbXNdJztcbn1cblxuLyoqXG4gKiBUcmltIGV4Y2VzcyB3aGl0ZXNwYWNlIG9mZiB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyIFRoZSBTdHJpbmcgdG8gdHJpbVxuICogQHJldHVybnMge1N0cmluZ30gVGhlIFN0cmluZyBmcmVlZCBvZiBleGNlc3Mgd2hpdGVzcGFjZVxuICovXG5mdW5jdGlvbiB0cmltKHN0cikge1xuICByZXR1cm4gc3RyLnRyaW0gPyBzdHIudHJpbSgpIDogc3RyLnJlcGxhY2UoL15cXHMrfFxccyskL2csICcnKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgd2UncmUgcnVubmluZyBpbiBhIHN0YW5kYXJkIGJyb3dzZXIgZW52aXJvbm1lbnRcbiAqXG4gKiBUaGlzIGFsbG93cyBheGlvcyB0byBydW4gaW4gYSB3ZWIgd29ya2VyLCBhbmQgcmVhY3QtbmF0aXZlLlxuICogQm90aCBlbnZpcm9ubWVudHMgc3VwcG9ydCBYTUxIdHRwUmVxdWVzdCwgYnV0IG5vdCBmdWxseSBzdGFuZGFyZCBnbG9iYWxzLlxuICpcbiAqIHdlYiB3b3JrZXJzOlxuICogIHR5cGVvZiB3aW5kb3cgLT4gdW5kZWZpbmVkXG4gKiAgdHlwZW9mIGRvY3VtZW50IC0+IHVuZGVmaW5lZFxuICpcbiAqIHJlYWN0LW5hdGl2ZTpcbiAqICBuYXZpZ2F0b3IucHJvZHVjdCAtPiAnUmVhY3ROYXRpdmUnXG4gKiBuYXRpdmVzY3JpcHRcbiAqICBuYXZpZ2F0b3IucHJvZHVjdCAtPiAnTmF0aXZlU2NyaXB0JyBvciAnTlMnXG4gKi9cbmZ1bmN0aW9uIGlzU3RhbmRhcmRCcm93c2VyRW52KCkge1xuICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgKG5hdmlnYXRvci5wcm9kdWN0ID09PSAnUmVhY3ROYXRpdmUnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdOYXRpdmVTY3JpcHQnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdOUycpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnXG4gICk7XG59XG5cbi8qKlxuICogSXRlcmF0ZSBvdmVyIGFuIEFycmF5IG9yIGFuIE9iamVjdCBpbnZva2luZyBhIGZ1bmN0aW9uIGZvciBlYWNoIGl0ZW0uXG4gKlxuICogSWYgYG9iamAgaXMgYW4gQXJyYXkgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgcGFzc2luZ1xuICogdGhlIHZhbHVlLCBpbmRleCwgYW5kIGNvbXBsZXRlIGFycmF5IGZvciBlYWNoIGl0ZW0uXG4gKlxuICogSWYgJ29iaicgaXMgYW4gT2JqZWN0IGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHBhc3NpbmdcbiAqIHRoZSB2YWx1ZSwga2V5LCBhbmQgY29tcGxldGUgb2JqZWN0IGZvciBlYWNoIHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fEFycmF5fSBvYmogVGhlIG9iamVjdCB0byBpdGVyYXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgY2FsbGJhY2sgdG8gaW52b2tlIGZvciBlYWNoIGl0ZW1cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaChvYmosIGZuKSB7XG4gIC8vIERvbid0IGJvdGhlciBpZiBubyB2YWx1ZSBwcm92aWRlZFxuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gRm9yY2UgYW4gYXJyYXkgaWYgbm90IGFscmVhZHkgc29tZXRoaW5nIGl0ZXJhYmxlXG4gIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIC8qZXNsaW50IG5vLXBhcmFtLXJlYXNzaWduOjAqL1xuICAgIG9iaiA9IFtvYmpdO1xuICB9XG5cbiAgaWYgKGlzQXJyYXkob2JqKSkge1xuICAgIC8vIEl0ZXJhdGUgb3ZlciBhcnJheSB2YWx1ZXNcbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IG9iai5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGZuLmNhbGwobnVsbCwgb2JqW2ldLCBpLCBvYmopO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJdGVyYXRlIG92ZXIgb2JqZWN0IGtleXNcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICBmbi5jYWxsKG51bGwsIG9ialtrZXldLCBrZXksIG9iaik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWNjZXB0cyB2YXJhcmdzIGV4cGVjdGluZyBlYWNoIGFyZ3VtZW50IHRvIGJlIGFuIG9iamVjdCwgdGhlblxuICogaW1tdXRhYmx5IG1lcmdlcyB0aGUgcHJvcGVydGllcyBvZiBlYWNoIG9iamVjdCBhbmQgcmV0dXJucyByZXN1bHQuXG4gKlxuICogV2hlbiBtdWx0aXBsZSBvYmplY3RzIGNvbnRhaW4gdGhlIHNhbWUga2V5IHRoZSBsYXRlciBvYmplY3QgaW5cbiAqIHRoZSBhcmd1bWVudHMgbGlzdCB3aWxsIHRha2UgcHJlY2VkZW5jZS5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGpzXG4gKiB2YXIgcmVzdWx0ID0gbWVyZ2Uoe2ZvbzogMTIzfSwge2ZvbzogNDU2fSk7XG4gKiBjb25zb2xlLmxvZyhyZXN1bHQuZm9vKTsgLy8gb3V0cHV0cyA0NTZcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmoxIE9iamVjdCB0byBtZXJnZVxuICogQHJldHVybnMge09iamVjdH0gUmVzdWx0IG9mIGFsbCBtZXJnZSBwcm9wZXJ0aWVzXG4gKi9cbmZ1bmN0aW9uIG1lcmdlKC8qIG9iajEsIG9iajIsIG9iajMsIC4uLiAqLykge1xuICB2YXIgcmVzdWx0ID0ge307XG4gIGZ1bmN0aW9uIGFzc2lnblZhbHVlKHZhbCwga2V5KSB7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QocmVzdWx0W2tleV0pICYmIGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgcmVzdWx0W2tleV0gPSBtZXJnZShyZXN1bHRba2V5XSwgdmFsKTtcbiAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgcmVzdWx0W2tleV0gPSBtZXJnZSh7fSwgdmFsKTtcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsKSkge1xuICAgICAgcmVzdWx0W2tleV0gPSB2YWwuc2xpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2tleV0gPSB2YWw7XG4gICAgfVxuICB9XG5cbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgZm9yRWFjaChhcmd1bWVudHNbaV0sIGFzc2lnblZhbHVlKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEV4dGVuZHMgb2JqZWN0IGEgYnkgbXV0YWJseSBhZGRpbmcgdG8gaXQgdGhlIHByb3BlcnRpZXMgb2Ygb2JqZWN0IGIuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGEgVGhlIG9iamVjdCB0byBiZSBleHRlbmRlZFxuICogQHBhcmFtIHtPYmplY3R9IGIgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbVxuICogQHBhcmFtIHtPYmplY3R9IHRoaXNBcmcgVGhlIG9iamVjdCB0byBiaW5kIGZ1bmN0aW9uIHRvXG4gKiBAcmV0dXJuIHtPYmplY3R9IFRoZSByZXN1bHRpbmcgdmFsdWUgb2Ygb2JqZWN0IGFcbiAqL1xuZnVuY3Rpb24gZXh0ZW5kKGEsIGIsIHRoaXNBcmcpIHtcbiAgZm9yRWFjaChiLCBmdW5jdGlvbiBhc3NpZ25WYWx1ZSh2YWwsIGtleSkge1xuICAgIGlmICh0aGlzQXJnICYmIHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGFba2V5XSA9IGJpbmQodmFsLCB0aGlzQXJnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYVtrZXldID0gdmFsO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBhO1xufVxuXG4vKipcbiAqIFJlbW92ZSBieXRlIG9yZGVyIG1hcmtlci4gVGhpcyBjYXRjaGVzIEVGIEJCIEJGICh0aGUgVVRGLTggQk9NKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IHdpdGggQk9NXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGNvbnRlbnQgdmFsdWUgd2l0aG91dCBCT01cbiAqL1xuZnVuY3Rpb24gc3RyaXBCT00oY29udGVudCkge1xuICBpZiAoY29udGVudC5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcbiAgICBjb250ZW50ID0gY29udGVudC5zbGljZSgxKTtcbiAgfVxuICByZXR1cm4gY29udGVudDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGlzQXJyYXk6IGlzQXJyYXksXG4gIGlzQXJyYXlCdWZmZXI6IGlzQXJyYXlCdWZmZXIsXG4gIGlzQnVmZmVyOiBpc0J1ZmZlcixcbiAgaXNGb3JtRGF0YTogaXNGb3JtRGF0YSxcbiAgaXNBcnJheUJ1ZmZlclZpZXc6IGlzQXJyYXlCdWZmZXJWaWV3LFxuICBpc1N0cmluZzogaXNTdHJpbmcsXG4gIGlzTnVtYmVyOiBpc051bWJlcixcbiAgaXNPYmplY3Q6IGlzT2JqZWN0LFxuICBpc1BsYWluT2JqZWN0OiBpc1BsYWluT2JqZWN0LFxuICBpc1VuZGVmaW5lZDogaXNVbmRlZmluZWQsXG4gIGlzRGF0ZTogaXNEYXRlLFxuICBpc0ZpbGU6IGlzRmlsZSxcbiAgaXNCbG9iOiBpc0Jsb2IsXG4gIGlzRnVuY3Rpb246IGlzRnVuY3Rpb24sXG4gIGlzU3RyZWFtOiBpc1N0cmVhbSxcbiAgaXNVUkxTZWFyY2hQYXJhbXM6IGlzVVJMU2VhcmNoUGFyYW1zLFxuICBpc1N0YW5kYXJkQnJvd3NlckVudjogaXNTdGFuZGFyZEJyb3dzZXJFbnYsXG4gIGZvckVhY2g6IGZvckVhY2gsXG4gIG1lcmdlOiBtZXJnZSxcbiAgZXh0ZW5kOiBleHRlbmQsXG4gIHRyaW06IHRyaW0sXG4gIHN0cmlwQk9NOiBzdHJpcEJPTVxufTtcbiIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnksIHVuZGVmKSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpLCByZXF1aXJlKFwiLi9lbmMtYmFzZTY0XCIpLCByZXF1aXJlKFwiLi9tZDVcIiksIHJlcXVpcmUoXCIuL2V2cGtkZlwiKSwgcmVxdWlyZShcIi4vY2lwaGVyLWNvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4vZW5jLWJhc2U2NFwiLCBcIi4vbWQ1XCIsIFwiLi9ldnBrZGZcIiwgXCIuL2NpcGhlci1jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQoZnVuY3Rpb24gKCkge1xuXHQgICAgLy8gU2hvcnRjdXRzXG5cdCAgICB2YXIgQyA9IENyeXB0b0pTO1xuXHQgICAgdmFyIENfbGliID0gQy5saWI7XG5cdCAgICB2YXIgQmxvY2tDaXBoZXIgPSBDX2xpYi5CbG9ja0NpcGhlcjtcblx0ICAgIHZhciBDX2FsZ28gPSBDLmFsZ287XG5cblx0ICAgIC8vIExvb2t1cCB0YWJsZXNcblx0ICAgIHZhciBTQk9YID0gW107XG5cdCAgICB2YXIgSU5WX1NCT1ggPSBbXTtcblx0ICAgIHZhciBTVUJfTUlYXzAgPSBbXTtcblx0ICAgIHZhciBTVUJfTUlYXzEgPSBbXTtcblx0ICAgIHZhciBTVUJfTUlYXzIgPSBbXTtcblx0ICAgIHZhciBTVUJfTUlYXzMgPSBbXTtcblx0ICAgIHZhciBJTlZfU1VCX01JWF8wID0gW107XG5cdCAgICB2YXIgSU5WX1NVQl9NSVhfMSA9IFtdO1xuXHQgICAgdmFyIElOVl9TVUJfTUlYXzIgPSBbXTtcblx0ICAgIHZhciBJTlZfU1VCX01JWF8zID0gW107XG5cblx0ICAgIC8vIENvbXB1dGUgbG9va3VwIHRhYmxlc1xuXHQgICAgKGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAvLyBDb21wdXRlIGRvdWJsZSB0YWJsZVxuXHQgICAgICAgIHZhciBkID0gW107XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuXHQgICAgICAgICAgICBpZiAoaSA8IDEyOCkge1xuXHQgICAgICAgICAgICAgICAgZFtpXSA9IGkgPDwgMTtcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIGRbaV0gPSAoaSA8PCAxKSBeIDB4MTFiO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gV2FsayBHRigyXjgpXG5cdCAgICAgICAgdmFyIHggPSAwO1xuXHQgICAgICAgIHZhciB4aSA9IDA7XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuXHQgICAgICAgICAgICAvLyBDb21wdXRlIHNib3hcblx0ICAgICAgICAgICAgdmFyIHN4ID0geGkgXiAoeGkgPDwgMSkgXiAoeGkgPDwgMikgXiAoeGkgPDwgMykgXiAoeGkgPDwgNCk7XG5cdCAgICAgICAgICAgIHN4ID0gKHN4ID4+PiA4KSBeIChzeCAmIDB4ZmYpIF4gMHg2Mztcblx0ICAgICAgICAgICAgU0JPWFt4XSA9IHN4O1xuXHQgICAgICAgICAgICBJTlZfU0JPWFtzeF0gPSB4O1xuXG5cdCAgICAgICAgICAgIC8vIENvbXB1dGUgbXVsdGlwbGljYXRpb25cblx0ICAgICAgICAgICAgdmFyIHgyID0gZFt4XTtcblx0ICAgICAgICAgICAgdmFyIHg0ID0gZFt4Ml07XG5cdCAgICAgICAgICAgIHZhciB4OCA9IGRbeDRdO1xuXG5cdCAgICAgICAgICAgIC8vIENvbXB1dGUgc3ViIGJ5dGVzLCBtaXggY29sdW1ucyB0YWJsZXNcblx0ICAgICAgICAgICAgdmFyIHQgPSAoZFtzeF0gKiAweDEwMSkgXiAoc3ggKiAweDEwMTAxMDApO1xuXHQgICAgICAgICAgICBTVUJfTUlYXzBbeF0gPSAodCA8PCAyNCkgfCAodCA+Pj4gOCk7XG5cdCAgICAgICAgICAgIFNVQl9NSVhfMVt4XSA9ICh0IDw8IDE2KSB8ICh0ID4+PiAxNik7XG5cdCAgICAgICAgICAgIFNVQl9NSVhfMlt4XSA9ICh0IDw8IDgpICB8ICh0ID4+PiAyNCk7XG5cdCAgICAgICAgICAgIFNVQl9NSVhfM1t4XSA9IHQ7XG5cblx0ICAgICAgICAgICAgLy8gQ29tcHV0ZSBpbnYgc3ViIGJ5dGVzLCBpbnYgbWl4IGNvbHVtbnMgdGFibGVzXG5cdCAgICAgICAgICAgIHZhciB0ID0gKHg4ICogMHgxMDEwMTAxKSBeICh4NCAqIDB4MTAwMDEpIF4gKHgyICogMHgxMDEpIF4gKHggKiAweDEwMTAxMDApO1xuXHQgICAgICAgICAgICBJTlZfU1VCX01JWF8wW3N4XSA9ICh0IDw8IDI0KSB8ICh0ID4+PiA4KTtcblx0ICAgICAgICAgICAgSU5WX1NVQl9NSVhfMVtzeF0gPSAodCA8PCAxNikgfCAodCA+Pj4gMTYpO1xuXHQgICAgICAgICAgICBJTlZfU1VCX01JWF8yW3N4XSA9ICh0IDw8IDgpICB8ICh0ID4+PiAyNCk7XG5cdCAgICAgICAgICAgIElOVl9TVUJfTUlYXzNbc3hdID0gdDtcblxuXHQgICAgICAgICAgICAvLyBDb21wdXRlIG5leHQgY291bnRlclxuXHQgICAgICAgICAgICBpZiAoIXgpIHtcblx0ICAgICAgICAgICAgICAgIHggPSB4aSA9IDE7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB4ID0geDIgXiBkW2RbZFt4OCBeIHgyXV1dO1xuXHQgICAgICAgICAgICAgICAgeGkgXj0gZFtkW3hpXV07XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdCAgICB9KCkpO1xuXG5cdCAgICAvLyBQcmVjb21wdXRlZCBSY29uIGxvb2t1cFxuXHQgICAgdmFyIFJDT04gPSBbMHgwMCwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHgxYiwgMHgzNl07XG5cblx0ICAgIC8qKlxuXHQgICAgICogQUVTIGJsb2NrIGNpcGhlciBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBBRVMgPSBDX2FsZ28uQUVTID0gQmxvY2tDaXBoZXIuZXh0ZW5kKHtcblx0ICAgICAgICBfZG9SZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgdDtcblxuXHQgICAgICAgICAgICAvLyBTa2lwIHJlc2V0IG9mIG5Sb3VuZHMgaGFzIGJlZW4gc2V0IGJlZm9yZSBhbmQga2V5IGRpZCBub3QgY2hhbmdlXG5cdCAgICAgICAgICAgIGlmICh0aGlzLl9uUm91bmRzICYmIHRoaXMuX2tleVByaW9yUmVzZXQgPT09IHRoaXMuX2tleSkge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBrZXkgPSB0aGlzLl9rZXlQcmlvclJlc2V0ID0gdGhpcy5fa2V5O1xuXHQgICAgICAgICAgICB2YXIga2V5V29yZHMgPSBrZXkud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBrZXlTaXplID0ga2V5LnNpZ0J5dGVzIC8gNDtcblxuXHQgICAgICAgICAgICAvLyBDb21wdXRlIG51bWJlciBvZiByb3VuZHNcblx0ICAgICAgICAgICAgdmFyIG5Sb3VuZHMgPSB0aGlzLl9uUm91bmRzID0ga2V5U2l6ZSArIDY7XG5cblx0ICAgICAgICAgICAgLy8gQ29tcHV0ZSBudW1iZXIgb2Yga2V5IHNjaGVkdWxlIHJvd3Ncblx0ICAgICAgICAgICAgdmFyIGtzUm93cyA9IChuUm91bmRzICsgMSkgKiA0O1xuXG5cdCAgICAgICAgICAgIC8vIENvbXB1dGUga2V5IHNjaGVkdWxlXG5cdCAgICAgICAgICAgIHZhciBrZXlTY2hlZHVsZSA9IHRoaXMuX2tleVNjaGVkdWxlID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGtzUm93ID0gMDsga3NSb3cgPCBrc1Jvd3M7IGtzUm93KyspIHtcblx0ICAgICAgICAgICAgICAgIGlmIChrc1JvdyA8IGtleVNpemUpIHtcblx0ICAgICAgICAgICAgICAgICAgICBrZXlTY2hlZHVsZVtrc1Jvd10gPSBrZXlXb3Jkc1trc1Jvd107XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIHQgPSBrZXlTY2hlZHVsZVtrc1JvdyAtIDFdO1xuXG5cdCAgICAgICAgICAgICAgICAgICAgaWYgKCEoa3NSb3cgJSBrZXlTaXplKSkge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICAvLyBSb3Qgd29yZFxuXHQgICAgICAgICAgICAgICAgICAgICAgICB0ID0gKHQgPDwgOCkgfCAodCA+Pj4gMjQpO1xuXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN1YiB3b3JkXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHQgPSAoU0JPWFt0ID4+PiAyNF0gPDwgMjQpIHwgKFNCT1hbKHQgPj4+IDE2KSAmIDB4ZmZdIDw8IDE2KSB8IChTQk9YWyh0ID4+PiA4KSAmIDB4ZmZdIDw8IDgpIHwgU0JPWFt0ICYgMHhmZl07XG5cblx0ICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWl4IFJjb25cblx0ICAgICAgICAgICAgICAgICAgICAgICAgdCBePSBSQ09OWyhrc1JvdyAvIGtleVNpemUpIHwgMF0gPDwgMjQ7XG5cdCAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXlTaXplID4gNiAmJiBrc1JvdyAlIGtleVNpemUgPT0gNCkge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWIgd29yZFxuXHQgICAgICAgICAgICAgICAgICAgICAgICB0ID0gKFNCT1hbdCA+Pj4gMjRdIDw8IDI0KSB8IChTQk9YWyh0ID4+PiAxNikgJiAweGZmXSA8PCAxNikgfCAoU0JPWFsodCA+Pj4gOCkgJiAweGZmXSA8PCA4KSB8IFNCT1hbdCAmIDB4ZmZdO1xuXHQgICAgICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgICAgIGtleVNjaGVkdWxlW2tzUm93XSA9IGtleVNjaGVkdWxlW2tzUm93IC0ga2V5U2l6ZV0gXiB0O1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gQ29tcHV0ZSBpbnYga2V5IHNjaGVkdWxlXG5cdCAgICAgICAgICAgIHZhciBpbnZLZXlTY2hlZHVsZSA9IHRoaXMuX2ludktleVNjaGVkdWxlID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGludktzUm93ID0gMDsgaW52S3NSb3cgPCBrc1Jvd3M7IGludktzUm93KyspIHtcblx0ICAgICAgICAgICAgICAgIHZhciBrc1JvdyA9IGtzUm93cyAtIGludktzUm93O1xuXG5cdCAgICAgICAgICAgICAgICBpZiAoaW52S3NSb3cgJSA0KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBrZXlTY2hlZHVsZVtrc1Jvd107XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciB0ID0ga2V5U2NoZWR1bGVba3NSb3cgLSA0XTtcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgaWYgKGludktzUm93IDwgNCB8fCBrc1JvdyA8PSA0KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgaW52S2V5U2NoZWR1bGVbaW52S3NSb3ddID0gdDtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAgICAgaW52S2V5U2NoZWR1bGVbaW52S3NSb3ddID0gSU5WX1NVQl9NSVhfMFtTQk9YW3QgPj4+IDI0XV0gXiBJTlZfU1VCX01JWF8xW1NCT1hbKHQgPj4+IDE2KSAmIDB4ZmZdXSBeXG5cdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5WX1NVQl9NSVhfMltTQk9YWyh0ID4+PiA4KSAmIDB4ZmZdXSBeIElOVl9TVUJfTUlYXzNbU0JPWFt0ICYgMHhmZl1dO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGVuY3J5cHRCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCkge1xuXHQgICAgICAgICAgICB0aGlzLl9kb0NyeXB0QmxvY2soTSwgb2Zmc2V0LCB0aGlzLl9rZXlTY2hlZHVsZSwgU1VCX01JWF8wLCBTVUJfTUlYXzEsIFNVQl9NSVhfMiwgU1VCX01JWF8zLCBTQk9YKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgZGVjcnlwdEJsb2NrOiBmdW5jdGlvbiAoTSwgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIC8vIFN3YXAgMm5kIGFuZCA0dGggcm93c1xuXHQgICAgICAgICAgICB2YXIgdCA9IE1bb2Zmc2V0ICsgMV07XG5cdCAgICAgICAgICAgIE1bb2Zmc2V0ICsgMV0gPSBNW29mZnNldCArIDNdO1xuXHQgICAgICAgICAgICBNW29mZnNldCArIDNdID0gdDtcblxuXHQgICAgICAgICAgICB0aGlzLl9kb0NyeXB0QmxvY2soTSwgb2Zmc2V0LCB0aGlzLl9pbnZLZXlTY2hlZHVsZSwgSU5WX1NVQl9NSVhfMCwgSU5WX1NVQl9NSVhfMSwgSU5WX1NVQl9NSVhfMiwgSU5WX1NVQl9NSVhfMywgSU5WX1NCT1gpO1xuXG5cdCAgICAgICAgICAgIC8vIEludiBzd2FwIDJuZCBhbmQgNHRoIHJvd3Ncblx0ICAgICAgICAgICAgdmFyIHQgPSBNW29mZnNldCArIDFdO1xuXHQgICAgICAgICAgICBNW29mZnNldCArIDFdID0gTVtvZmZzZXQgKyAzXTtcblx0ICAgICAgICAgICAgTVtvZmZzZXQgKyAzXSA9IHQ7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9kb0NyeXB0QmxvY2s6IGZ1bmN0aW9uIChNLCBvZmZzZXQsIGtleVNjaGVkdWxlLCBTVUJfTUlYXzAsIFNVQl9NSVhfMSwgU1VCX01JWF8yLCBTVUJfTUlYXzMsIFNCT1gpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRcblx0ICAgICAgICAgICAgdmFyIG5Sb3VuZHMgPSB0aGlzLl9uUm91bmRzO1xuXG5cdCAgICAgICAgICAgIC8vIEdldCBpbnB1dCwgYWRkIHJvdW5kIGtleVxuXHQgICAgICAgICAgICB2YXIgczAgPSBNW29mZnNldF0gICAgIF4ga2V5U2NoZWR1bGVbMF07XG5cdCAgICAgICAgICAgIHZhciBzMSA9IE1bb2Zmc2V0ICsgMV0gXiBrZXlTY2hlZHVsZVsxXTtcblx0ICAgICAgICAgICAgdmFyIHMyID0gTVtvZmZzZXQgKyAyXSBeIGtleVNjaGVkdWxlWzJdO1xuXHQgICAgICAgICAgICB2YXIgczMgPSBNW29mZnNldCArIDNdIF4ga2V5U2NoZWR1bGVbM107XG5cblx0ICAgICAgICAgICAgLy8gS2V5IHNjaGVkdWxlIHJvdyBjb3VudGVyXG5cdCAgICAgICAgICAgIHZhciBrc1JvdyA9IDQ7XG5cblx0ICAgICAgICAgICAgLy8gUm91bmRzXG5cdCAgICAgICAgICAgIGZvciAodmFyIHJvdW5kID0gMTsgcm91bmQgPCBuUm91bmRzOyByb3VuZCsrKSB7XG5cdCAgICAgICAgICAgICAgICAvLyBTaGlmdCByb3dzLCBzdWIgYnl0ZXMsIG1peCBjb2x1bW5zLCBhZGQgcm91bmQga2V5XG5cdCAgICAgICAgICAgICAgICB2YXIgdDAgPSBTVUJfTUlYXzBbczAgPj4+IDI0XSBeIFNVQl9NSVhfMVsoczEgPj4+IDE2KSAmIDB4ZmZdIF4gU1VCX01JWF8yWyhzMiA+Pj4gOCkgJiAweGZmXSBeIFNVQl9NSVhfM1tzMyAmIDB4ZmZdIF4ga2V5U2NoZWR1bGVba3NSb3crK107XG5cdCAgICAgICAgICAgICAgICB2YXIgdDEgPSBTVUJfTUlYXzBbczEgPj4+IDI0XSBeIFNVQl9NSVhfMVsoczIgPj4+IDE2KSAmIDB4ZmZdIF4gU1VCX01JWF8yWyhzMyA+Pj4gOCkgJiAweGZmXSBeIFNVQl9NSVhfM1tzMCAmIDB4ZmZdIF4ga2V5U2NoZWR1bGVba3NSb3crK107XG5cdCAgICAgICAgICAgICAgICB2YXIgdDIgPSBTVUJfTUlYXzBbczIgPj4+IDI0XSBeIFNVQl9NSVhfMVsoczMgPj4+IDE2KSAmIDB4ZmZdIF4gU1VCX01JWF8yWyhzMCA+Pj4gOCkgJiAweGZmXSBeIFNVQl9NSVhfM1tzMSAmIDB4ZmZdIF4ga2V5U2NoZWR1bGVba3NSb3crK107XG5cdCAgICAgICAgICAgICAgICB2YXIgdDMgPSBTVUJfTUlYXzBbczMgPj4+IDI0XSBeIFNVQl9NSVhfMVsoczAgPj4+IDE2KSAmIDB4ZmZdIF4gU1VCX01JWF8yWyhzMSA+Pj4gOCkgJiAweGZmXSBeIFNVQl9NSVhfM1tzMiAmIDB4ZmZdIF4ga2V5U2NoZWR1bGVba3NSb3crK107XG5cblx0ICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBzdGF0ZVxuXHQgICAgICAgICAgICAgICAgczAgPSB0MDtcblx0ICAgICAgICAgICAgICAgIHMxID0gdDE7XG5cdCAgICAgICAgICAgICAgICBzMiA9IHQyO1xuXHQgICAgICAgICAgICAgICAgczMgPSB0Mztcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIFNoaWZ0IHJvd3MsIHN1YiBieXRlcywgYWRkIHJvdW5kIGtleVxuXHQgICAgICAgICAgICB2YXIgdDAgPSAoKFNCT1hbczAgPj4+IDI0XSA8PCAyNCkgfCAoU0JPWFsoczEgPj4+IDE2KSAmIDB4ZmZdIDw8IDE2KSB8IChTQk9YWyhzMiA+Pj4gOCkgJiAweGZmXSA8PCA4KSB8IFNCT1hbczMgJiAweGZmXSkgXiBrZXlTY2hlZHVsZVtrc1JvdysrXTtcblx0ICAgICAgICAgICAgdmFyIHQxID0gKChTQk9YW3MxID4+PiAyNF0gPDwgMjQpIHwgKFNCT1hbKHMyID4+PiAxNikgJiAweGZmXSA8PCAxNikgfCAoU0JPWFsoczMgPj4+IDgpICYgMHhmZl0gPDwgOCkgfCBTQk9YW3MwICYgMHhmZl0pIF4ga2V5U2NoZWR1bGVba3NSb3crK107XG5cdCAgICAgICAgICAgIHZhciB0MiA9ICgoU0JPWFtzMiA+Pj4gMjRdIDw8IDI0KSB8IChTQk9YWyhzMyA+Pj4gMTYpICYgMHhmZl0gPDwgMTYpIHwgKFNCT1hbKHMwID4+PiA4KSAmIDB4ZmZdIDw8IDgpIHwgU0JPWFtzMSAmIDB4ZmZdKSBeIGtleVNjaGVkdWxlW2tzUm93KytdO1xuXHQgICAgICAgICAgICB2YXIgdDMgPSAoKFNCT1hbczMgPj4+IDI0XSA8PCAyNCkgfCAoU0JPWFsoczAgPj4+IDE2KSAmIDB4ZmZdIDw8IDE2KSB8IChTQk9YWyhzMSA+Pj4gOCkgJiAweGZmXSA8PCA4KSB8IFNCT1hbczIgJiAweGZmXSkgXiBrZXlTY2hlZHVsZVtrc1JvdysrXTtcblxuXHQgICAgICAgICAgICAvLyBTZXQgb3V0cHV0XG5cdCAgICAgICAgICAgIE1bb2Zmc2V0XSAgICAgPSB0MDtcblx0ICAgICAgICAgICAgTVtvZmZzZXQgKyAxXSA9IHQxO1xuXHQgICAgICAgICAgICBNW29mZnNldCArIDJdID0gdDI7XG5cdCAgICAgICAgICAgIE1bb2Zmc2V0ICsgM10gPSB0Mztcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAga2V5U2l6ZTogMjU2LzMyXG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbnMgdG8gdGhlIGNpcGhlcidzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQGV4YW1wbGVcblx0ICAgICAqXG5cdCAgICAgKiAgICAgdmFyIGNpcGhlcnRleHQgPSBDcnlwdG9KUy5BRVMuZW5jcnlwdChtZXNzYWdlLCBrZXksIGNmZyk7XG5cdCAgICAgKiAgICAgdmFyIHBsYWludGV4dCAgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdChjaXBoZXJ0ZXh0LCBrZXksIGNmZyk7XG5cdCAgICAgKi9cblx0ICAgIEMuQUVTID0gQmxvY2tDaXBoZXIuX2NyZWF0ZUhlbHBlcihBRVMpO1xuXHR9KCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLkFFUztcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnksIHVuZGVmKSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpLCByZXF1aXJlKFwiLi9ldnBrZGZcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4vZXZwa2RmXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQvKipcblx0ICogQ2lwaGVyIGNvcmUgY29tcG9uZW50cy5cblx0ICovXG5cdENyeXB0b0pTLmxpYi5DaXBoZXIgfHwgKGZ1bmN0aW9uICh1bmRlZmluZWQpIHtcblx0ICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgdmFyIEMgPSBDcnlwdG9KUztcblx0ICAgIHZhciBDX2xpYiA9IEMubGliO1xuXHQgICAgdmFyIEJhc2UgPSBDX2xpYi5CYXNlO1xuXHQgICAgdmFyIFdvcmRBcnJheSA9IENfbGliLldvcmRBcnJheTtcblx0ICAgIHZhciBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtID0gQ19saWIuQnVmZmVyZWRCbG9ja0FsZ29yaXRobTtcblx0ICAgIHZhciBDX2VuYyA9IEMuZW5jO1xuXHQgICAgdmFyIFV0ZjggPSBDX2VuYy5VdGY4O1xuXHQgICAgdmFyIEJhc2U2NCA9IENfZW5jLkJhc2U2NDtcblx0ICAgIHZhciBDX2FsZ28gPSBDLmFsZ287XG5cdCAgICB2YXIgRXZwS0RGID0gQ19hbGdvLkV2cEtERjtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBYnN0cmFjdCBiYXNlIGNpcGhlciB0ZW1wbGF0ZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcHJvcGVydHkge251bWJlcn0ga2V5U2l6ZSBUaGlzIGNpcGhlcidzIGtleSBzaXplLiBEZWZhdWx0OiA0ICgxMjggYml0cylcblx0ICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBpdlNpemUgVGhpcyBjaXBoZXIncyBJViBzaXplLiBEZWZhdWx0OiA0ICgxMjggYml0cylcblx0ICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBfRU5DX1hGT1JNX01PREUgQSBjb25zdGFudCByZXByZXNlbnRpbmcgZW5jcnlwdGlvbiBtb2RlLlxuXHQgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IF9ERUNfWEZPUk1fTU9ERSBBIGNvbnN0YW50IHJlcHJlc2VudGluZyBkZWNyeXB0aW9uIG1vZGUuXG5cdCAgICAgKi9cblx0ICAgIHZhciBDaXBoZXIgPSBDX2xpYi5DaXBoZXIgPSBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHByb3BlcnR5IHtXb3JkQXJyYXl9IGl2IFRoZSBJViB0byB1c2UgZm9yIHRoaXMgb3BlcmF0aW9uLlxuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGNmZzogQmFzZS5leHRlbmQoKSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENyZWF0ZXMgdGhpcyBjaXBoZXIgaW4gZW5jcnlwdGlvbiBtb2RlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl9IGtleSBUaGUga2V5LlxuXHQgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjZmcgKE9wdGlvbmFsKSBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIHVzZSBmb3IgdGhpcyBvcGVyYXRpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtDaXBoZXJ9IEEgY2lwaGVyIGluc3RhbmNlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgY2lwaGVyID0gQ3J5cHRvSlMuYWxnby5BRVMuY3JlYXRlRW5jcnlwdG9yKGtleVdvcmRBcnJheSwgeyBpdjogaXZXb3JkQXJyYXkgfSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY3JlYXRlRW5jcnlwdG9yOiBmdW5jdGlvbiAoa2V5LCBjZmcpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0VOQ19YRk9STV9NT0RFLCBrZXksIGNmZyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENyZWF0ZXMgdGhpcyBjaXBoZXIgaW4gZGVjcnlwdGlvbiBtb2RlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl9IGtleSBUaGUga2V5LlxuXHQgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjZmcgKE9wdGlvbmFsKSBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIHVzZSBmb3IgdGhpcyBvcGVyYXRpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtDaXBoZXJ9IEEgY2lwaGVyIGluc3RhbmNlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgY2lwaGVyID0gQ3J5cHRvSlMuYWxnby5BRVMuY3JlYXRlRGVjcnlwdG9yKGtleVdvcmRBcnJheSwgeyBpdjogaXZXb3JkQXJyYXkgfSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY3JlYXRlRGVjcnlwdG9yOiBmdW5jdGlvbiAoa2V5LCBjZmcpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0RFQ19YRk9STV9NT0RFLCBrZXksIGNmZyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEluaXRpYWxpemVzIGEgbmV3bHkgY3JlYXRlZCBjaXBoZXIuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0geGZvcm1Nb2RlIEVpdGhlciB0aGUgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIHRyYW5zb3JtYXRpb24gbW9kZSBjb25zdGFudC5cblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheX0ga2V5IFRoZSBrZXkuXG5cdCAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IGNmZyAoT3B0aW9uYWwpIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gdXNlIGZvciB0aGlzIG9wZXJhdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGNpcGhlciA9IENyeXB0b0pTLmFsZ28uQUVTLmNyZWF0ZShDcnlwdG9KUy5hbGdvLkFFUy5fRU5DX1hGT1JNX01PREUsIGtleVdvcmRBcnJheSwgeyBpdjogaXZXb3JkQXJyYXkgfSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgaW5pdDogZnVuY3Rpb24gKHhmb3JtTW9kZSwga2V5LCBjZmcpIHtcblx0ICAgICAgICAgICAgLy8gQXBwbHkgY29uZmlnIGRlZmF1bHRzXG5cdCAgICAgICAgICAgIHRoaXMuY2ZnID0gdGhpcy5jZmcuZXh0ZW5kKGNmZyk7XG5cblx0ICAgICAgICAgICAgLy8gU3RvcmUgdHJhbnNmb3JtIG1vZGUgYW5kIGtleVxuXHQgICAgICAgICAgICB0aGlzLl94Zm9ybU1vZGUgPSB4Zm9ybU1vZGU7XG5cdCAgICAgICAgICAgIHRoaXMuX2tleSA9IGtleTtcblxuXHQgICAgICAgICAgICAvLyBTZXQgaW5pdGlhbCB2YWx1ZXNcblx0ICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBSZXNldHMgdGhpcyBjaXBoZXIgdG8gaXRzIGluaXRpYWwgc3RhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIGNpcGhlci5yZXNldCgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHJlc2V0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIFJlc2V0IGRhdGEgYnVmZmVyXG5cdCAgICAgICAgICAgIEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ucmVzZXQuY2FsbCh0aGlzKTtcblxuXHQgICAgICAgICAgICAvLyBQZXJmb3JtIGNvbmNyZXRlLWNpcGhlciBsb2dpY1xuXHQgICAgICAgICAgICB0aGlzLl9kb1Jlc2V0KCk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEFkZHMgZGF0YSB0byBiZSBlbmNyeXB0ZWQgb3IgZGVjcnlwdGVkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBkYXRhVXBkYXRlIFRoZSBkYXRhIHRvIGVuY3J5cHQgb3IgZGVjcnlwdC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGRhdGEgYWZ0ZXIgcHJvY2Vzc2luZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGVuY3J5cHRlZCA9IGNpcGhlci5wcm9jZXNzKCdkYXRhJyk7XG5cdCAgICAgICAgICogICAgIHZhciBlbmNyeXB0ZWQgPSBjaXBoZXIucHJvY2Vzcyh3b3JkQXJyYXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHByb2Nlc3M6IGZ1bmN0aW9uIChkYXRhVXBkYXRlKSB7XG5cdCAgICAgICAgICAgIC8vIEFwcGVuZFxuXHQgICAgICAgICAgICB0aGlzLl9hcHBlbmQoZGF0YVVwZGF0ZSk7XG5cblx0ICAgICAgICAgICAgLy8gUHJvY2VzcyBhdmFpbGFibGUgYmxvY2tzXG5cdCAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcm9jZXNzKCk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEZpbmFsaXplcyB0aGUgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIHByb2Nlc3MuXG5cdCAgICAgICAgICogTm90ZSB0aGF0IHRoZSBmaW5hbGl6ZSBvcGVyYXRpb24gaXMgZWZmZWN0aXZlbHkgYSBkZXN0cnVjdGl2ZSwgcmVhZC1vbmNlIG9wZXJhdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gZGF0YVVwZGF0ZSBUaGUgZmluYWwgZGF0YSB0byBlbmNyeXB0IG9yIGRlY3J5cHQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBkYXRhIGFmdGVyIGZpbmFsIHByb2Nlc3NpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBlbmNyeXB0ZWQgPSBjaXBoZXIuZmluYWxpemUoKTtcblx0ICAgICAgICAgKiAgICAgdmFyIGVuY3J5cHRlZCA9IGNpcGhlci5maW5hbGl6ZSgnZGF0YScpO1xuXHQgICAgICAgICAqICAgICB2YXIgZW5jcnlwdGVkID0gY2lwaGVyLmZpbmFsaXplKHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgZmluYWxpemU6IGZ1bmN0aW9uIChkYXRhVXBkYXRlKSB7XG5cdCAgICAgICAgICAgIC8vIEZpbmFsIGRhdGEgdXBkYXRlXG5cdCAgICAgICAgICAgIGlmIChkYXRhVXBkYXRlKSB7XG5cdCAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmQoZGF0YVVwZGF0ZSk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBQZXJmb3JtIGNvbmNyZXRlLWNpcGhlciBsb2dpY1xuXHQgICAgICAgICAgICB2YXIgZmluYWxQcm9jZXNzZWREYXRhID0gdGhpcy5fZG9GaW5hbGl6ZSgpO1xuXG5cdCAgICAgICAgICAgIHJldHVybiBmaW5hbFByb2Nlc3NlZERhdGE7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGtleVNpemU6IDEyOC8zMixcblxuXHQgICAgICAgIGl2U2l6ZTogMTI4LzMyLFxuXG5cdCAgICAgICAgX0VOQ19YRk9STV9NT0RFOiAxLFxuXG5cdCAgICAgICAgX0RFQ19YRk9STV9NT0RFOiAyLFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ3JlYXRlcyBzaG9ydGN1dCBmdW5jdGlvbnMgdG8gYSBjaXBoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtDaXBoZXJ9IGNpcGhlciBUaGUgY2lwaGVyIHRvIGNyZWF0ZSBhIGhlbHBlciBmb3IuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtPYmplY3R9IEFuIG9iamVjdCB3aXRoIGVuY3J5cHQgYW5kIGRlY3J5cHQgc2hvcnRjdXQgZnVuY3Rpb25zLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgQUVTID0gQ3J5cHRvSlMubGliLkNpcGhlci5fY3JlYXRlSGVscGVyKENyeXB0b0pTLmFsZ28uQUVTKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBfY3JlYXRlSGVscGVyOiAoZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICBmdW5jdGlvbiBzZWxlY3RDaXBoZXJTdHJhdGVneShrZXkpIHtcblx0ICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yga2V5ID09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBhc3N3b3JkQmFzZWRDaXBoZXI7XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIHJldHVybiBTZXJpYWxpemFibGVDaXBoZXI7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGNpcGhlcikge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIHtcblx0ICAgICAgICAgICAgICAgICAgICBlbmNyeXB0OiBmdW5jdGlvbiAobWVzc2FnZSwga2V5LCBjZmcpIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdENpcGhlclN0cmF0ZWd5KGtleSkuZW5jcnlwdChjaXBoZXIsIG1lc3NhZ2UsIGtleSwgY2ZnKTtcblx0ICAgICAgICAgICAgICAgICAgICB9LFxuXG5cdCAgICAgICAgICAgICAgICAgICAgZGVjcnlwdDogZnVuY3Rpb24gKGNpcGhlcnRleHQsIGtleSwgY2ZnKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RDaXBoZXJTdHJhdGVneShrZXkpLmRlY3J5cHQoY2lwaGVyLCBjaXBoZXJ0ZXh0LCBrZXksIGNmZyk7XG5cdCAgICAgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgICAgfTtcblx0ICAgICAgICAgICAgfTtcblx0ICAgICAgICB9KCkpXG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBYnN0cmFjdCBiYXNlIHN0cmVhbSBjaXBoZXIgdGVtcGxhdGUuXG5cdCAgICAgKlxuXHQgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IGJsb2NrU2l6ZSBUaGUgbnVtYmVyIG9mIDMyLWJpdCB3b3JkcyB0aGlzIGNpcGhlciBvcGVyYXRlcyBvbi4gRGVmYXVsdDogMSAoMzIgYml0cylcblx0ICAgICAqL1xuXHQgICAgdmFyIFN0cmVhbUNpcGhlciA9IENfbGliLlN0cmVhbUNpcGhlciA9IENpcGhlci5leHRlbmQoe1xuXHQgICAgICAgIF9kb0ZpbmFsaXplOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIFByb2Nlc3MgcGFydGlhbCBibG9ja3Ncblx0ICAgICAgICAgICAgdmFyIGZpbmFsUHJvY2Vzc2VkQmxvY2tzID0gdGhpcy5fcHJvY2VzcyghISdmbHVzaCcpO1xuXG5cdCAgICAgICAgICAgIHJldHVybiBmaW5hbFByb2Nlc3NlZEJsb2Nrcztcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgYmxvY2tTaXplOiAxXG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBNb2RlIG5hbWVzcGFjZS5cblx0ICAgICAqL1xuXHQgICAgdmFyIENfbW9kZSA9IEMubW9kZSA9IHt9O1xuXG5cdCAgICAvKipcblx0ICAgICAqIEFic3RyYWN0IGJhc2UgYmxvY2sgY2lwaGVyIG1vZGUgdGVtcGxhdGUuXG5cdCAgICAgKi9cblx0ICAgIHZhciBCbG9ja0NpcGhlck1vZGUgPSBDX2xpYi5CbG9ja0NpcGhlck1vZGUgPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ3JlYXRlcyB0aGlzIG1vZGUgZm9yIGVuY3J5cHRpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0NpcGhlcn0gY2lwaGVyIEEgYmxvY2sgY2lwaGVyIGluc3RhbmNlLlxuXHQgICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IGl2IFRoZSBJViB3b3Jkcy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIG1vZGUgPSBDcnlwdG9KUy5tb2RlLkNCQy5jcmVhdGVFbmNyeXB0b3IoY2lwaGVyLCBpdi53b3Jkcyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY3JlYXRlRW5jcnlwdG9yOiBmdW5jdGlvbiAoY2lwaGVyLCBpdikge1xuXHQgICAgICAgICAgICByZXR1cm4gdGhpcy5FbmNyeXB0b3IuY3JlYXRlKGNpcGhlciwgaXYpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDcmVhdGVzIHRoaXMgbW9kZSBmb3IgZGVjcnlwdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7Q2lwaGVyfSBjaXBoZXIgQSBibG9jayBjaXBoZXIgaW5zdGFuY2UuXG5cdCAgICAgICAgICogQHBhcmFtIHtBcnJheX0gaXYgVGhlIElWIHdvcmRzLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgbW9kZSA9IENyeXB0b0pTLm1vZGUuQ0JDLmNyZWF0ZURlY3J5cHRvcihjaXBoZXIsIGl2LndvcmRzKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBjcmVhdGVEZWNyeXB0b3I6IGZ1bmN0aW9uIChjaXBoZXIsIGl2KSB7XG5cdCAgICAgICAgICAgIHJldHVybiB0aGlzLkRlY3J5cHRvci5jcmVhdGUoY2lwaGVyLCBpdik7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEluaXRpYWxpemVzIGEgbmV3bHkgY3JlYXRlZCBtb2RlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtDaXBoZXJ9IGNpcGhlciBBIGJsb2NrIGNpcGhlciBpbnN0YW5jZS5cblx0ICAgICAgICAgKiBAcGFyYW0ge0FycmF5fSBpdiBUaGUgSVYgd29yZHMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBtb2RlID0gQ3J5cHRvSlMubW9kZS5DQkMuRW5jcnlwdG9yLmNyZWF0ZShjaXBoZXIsIGl2LndvcmRzKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBpbml0OiBmdW5jdGlvbiAoY2lwaGVyLCBpdikge1xuXHQgICAgICAgICAgICB0aGlzLl9jaXBoZXIgPSBjaXBoZXI7XG5cdCAgICAgICAgICAgIHRoaXMuX2l2ID0gaXY7XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogQ2lwaGVyIEJsb2NrIENoYWluaW5nIG1vZGUuXG5cdCAgICAgKi9cblx0ICAgIHZhciBDQkMgPSBDX21vZGUuQ0JDID0gKGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBBYnN0cmFjdCBiYXNlIENCQyBtb2RlLlxuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHZhciBDQkMgPSBCbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7XG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDQkMgZW5jcnlwdG9yLlxuXHQgICAgICAgICAqL1xuXHQgICAgICAgIENCQy5FbmNyeXB0b3IgPSBDQkMuZXh0ZW5kKHtcblx0ICAgICAgICAgICAgLyoqXG5cdCAgICAgICAgICAgICAqIFByb2Nlc3NlcyB0aGUgZGF0YSBibG9jayBhdCBvZmZzZXQuXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IHdvcmRzIFRoZSBkYXRhIHdvcmRzIHRvIG9wZXJhdGUgb24uXG5cdCAgICAgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQgVGhlIG9mZnNldCB3aGVyZSB0aGUgYmxvY2sgc3RhcnRzLlxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiAgICAgbW9kZS5wcm9jZXNzQmxvY2soZGF0YS53b3Jkcywgb2Zmc2V0KTtcblx0ICAgICAgICAgICAgICovXG5cdCAgICAgICAgICAgIHByb2Nlc3NCbG9jazogZnVuY3Rpb24gKHdvcmRzLCBvZmZzZXQpIHtcblx0ICAgICAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICAgICAgdmFyIGNpcGhlciA9IHRoaXMuX2NpcGhlcjtcblx0ICAgICAgICAgICAgICAgIHZhciBibG9ja1NpemUgPSBjaXBoZXIuYmxvY2tTaXplO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBYT1IgYW5kIGVuY3J5cHRcblx0ICAgICAgICAgICAgICAgIHhvckJsb2NrLmNhbGwodGhpcywgd29yZHMsIG9mZnNldCwgYmxvY2tTaXplKTtcblx0ICAgICAgICAgICAgICAgIGNpcGhlci5lbmNyeXB0QmxvY2sod29yZHMsIG9mZnNldCk7XG5cblx0ICAgICAgICAgICAgICAgIC8vIFJlbWVtYmVyIHRoaXMgYmxvY2sgdG8gdXNlIHdpdGggbmV4dCBibG9ja1xuXHQgICAgICAgICAgICAgICAgdGhpcy5fcHJldkJsb2NrID0gd29yZHMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBibG9ja1NpemUpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSk7XG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDQkMgZGVjcnlwdG9yLlxuXHQgICAgICAgICAqL1xuXHQgICAgICAgIENCQy5EZWNyeXB0b3IgPSBDQkMuZXh0ZW5kKHtcblx0ICAgICAgICAgICAgLyoqXG5cdCAgICAgICAgICAgICAqIFByb2Nlc3NlcyB0aGUgZGF0YSBibG9jayBhdCBvZmZzZXQuXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IHdvcmRzIFRoZSBkYXRhIHdvcmRzIHRvIG9wZXJhdGUgb24uXG5cdCAgICAgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQgVGhlIG9mZnNldCB3aGVyZSB0aGUgYmxvY2sgc3RhcnRzLlxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiAgICAgbW9kZS5wcm9jZXNzQmxvY2soZGF0YS53b3Jkcywgb2Zmc2V0KTtcblx0ICAgICAgICAgICAgICovXG5cdCAgICAgICAgICAgIHByb2Nlc3NCbG9jazogZnVuY3Rpb24gKHdvcmRzLCBvZmZzZXQpIHtcblx0ICAgICAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICAgICAgdmFyIGNpcGhlciA9IHRoaXMuX2NpcGhlcjtcblx0ICAgICAgICAgICAgICAgIHZhciBibG9ja1NpemUgPSBjaXBoZXIuYmxvY2tTaXplO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBSZW1lbWJlciB0aGlzIGJsb2NrIHRvIHVzZSB3aXRoIG5leHQgYmxvY2tcblx0ICAgICAgICAgICAgICAgIHZhciB0aGlzQmxvY2sgPSB3b3Jkcy5zbGljZShvZmZzZXQsIG9mZnNldCArIGJsb2NrU2l6ZSk7XG5cblx0ICAgICAgICAgICAgICAgIC8vIERlY3J5cHQgYW5kIFhPUlxuXHQgICAgICAgICAgICAgICAgY2lwaGVyLmRlY3J5cHRCbG9jayh3b3Jkcywgb2Zmc2V0KTtcblx0ICAgICAgICAgICAgICAgIHhvckJsb2NrLmNhbGwodGhpcywgd29yZHMsIG9mZnNldCwgYmxvY2tTaXplKTtcblxuXHQgICAgICAgICAgICAgICAgLy8gVGhpcyBibG9jayBiZWNvbWVzIHRoZSBwcmV2aW91cyBibG9ja1xuXHQgICAgICAgICAgICAgICAgdGhpcy5fcHJldkJsb2NrID0gdGhpc0Jsb2NrO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSk7XG5cblx0ICAgICAgICBmdW5jdGlvbiB4b3JCbG9jayh3b3Jkcywgb2Zmc2V0LCBibG9ja1NpemUpIHtcblx0ICAgICAgICAgICAgdmFyIGJsb2NrO1xuXG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgIHZhciBpdiA9IHRoaXMuX2l2O1xuXG5cdCAgICAgICAgICAgIC8vIENob29zZSBtaXhpbmcgYmxvY2tcblx0ICAgICAgICAgICAgaWYgKGl2KSB7XG5cdCAgICAgICAgICAgICAgICBibG9jayA9IGl2O1xuXG5cdCAgICAgICAgICAgICAgICAvLyBSZW1vdmUgSVYgZm9yIHN1YnNlcXVlbnQgYmxvY2tzXG5cdCAgICAgICAgICAgICAgICB0aGlzLl9pdiA9IHVuZGVmaW5lZDtcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIGJsb2NrID0gdGhpcy5fcHJldkJsb2NrO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gWE9SIGJsb2Nrc1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJsb2NrU2l6ZTsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB3b3Jkc1tvZmZzZXQgKyBpXSBePSBibG9ja1tpXTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBDQkM7XG5cdCAgICB9KCkpO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFBhZGRpbmcgbmFtZXNwYWNlLlxuXHQgICAgICovXG5cdCAgICB2YXIgQ19wYWQgPSBDLnBhZCA9IHt9O1xuXG5cdCAgICAvKipcblx0ICAgICAqIFBLQ1MgIzUvNyBwYWRkaW5nIHN0cmF0ZWd5LlxuXHQgICAgICovXG5cdCAgICB2YXIgUGtjczcgPSBDX3BhZC5Qa2NzNyA9IHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBQYWRzIGRhdGEgdXNpbmcgdGhlIGFsZ29yaXRobSBkZWZpbmVkIGluIFBLQ1MgIzUvNy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fSBkYXRhIFRoZSBkYXRhIHRvIHBhZC5cblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gYmxvY2tTaXplIFRoZSBtdWx0aXBsZSB0aGF0IHRoZSBkYXRhIHNob3VsZCBiZSBwYWRkZWQgdG8uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIENyeXB0b0pTLnBhZC5Qa2NzNy5wYWQod29yZEFycmF5LCA0KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBwYWQ6IGZ1bmN0aW9uIChkYXRhLCBibG9ja1NpemUpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRcblx0ICAgICAgICAgICAgdmFyIGJsb2NrU2l6ZUJ5dGVzID0gYmxvY2tTaXplICogNDtcblxuXHQgICAgICAgICAgICAvLyBDb3VudCBwYWRkaW5nIGJ5dGVzXG5cdCAgICAgICAgICAgIHZhciBuUGFkZGluZ0J5dGVzID0gYmxvY2tTaXplQnl0ZXMgLSBkYXRhLnNpZ0J5dGVzICUgYmxvY2tTaXplQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gQ3JlYXRlIHBhZGRpbmcgd29yZFxuXHQgICAgICAgICAgICB2YXIgcGFkZGluZ1dvcmQgPSAoblBhZGRpbmdCeXRlcyA8PCAyNCkgfCAoblBhZGRpbmdCeXRlcyA8PCAxNikgfCAoblBhZGRpbmdCeXRlcyA8PCA4KSB8IG5QYWRkaW5nQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gQ3JlYXRlIHBhZGRpbmdcblx0ICAgICAgICAgICAgdmFyIHBhZGRpbmdXb3JkcyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5QYWRkaW5nQnl0ZXM7IGkgKz0gNCkge1xuXHQgICAgICAgICAgICAgICAgcGFkZGluZ1dvcmRzLnB1c2gocGFkZGluZ1dvcmQpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIHZhciBwYWRkaW5nID0gV29yZEFycmF5LmNyZWF0ZShwYWRkaW5nV29yZHMsIG5QYWRkaW5nQnl0ZXMpO1xuXG5cdCAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nXG5cdCAgICAgICAgICAgIGRhdGEuY29uY2F0KHBhZGRpbmcpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBVbnBhZHMgZGF0YSB0aGF0IGhhZCBiZWVuIHBhZGRlZCB1c2luZyB0aGUgYWxnb3JpdGhtIGRlZmluZWQgaW4gUEtDUyAjNS83LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl9IGRhdGEgVGhlIGRhdGEgdG8gdW5wYWQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIENyeXB0b0pTLnBhZC5Qa2NzNy51bnBhZCh3b3JkQXJyYXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHVucGFkOiBmdW5jdGlvbiAoZGF0YSkge1xuXHQgICAgICAgICAgICAvLyBHZXQgbnVtYmVyIG9mIHBhZGRpbmcgYnl0ZXMgZnJvbSBsYXN0IGJ5dGVcblx0ICAgICAgICAgICAgdmFyIG5QYWRkaW5nQnl0ZXMgPSBkYXRhLndvcmRzWyhkYXRhLnNpZ0J5dGVzIC0gMSkgPj4+IDJdICYgMHhmZjtcblxuXHQgICAgICAgICAgICAvLyBSZW1vdmUgcGFkZGluZ1xuXHQgICAgICAgICAgICBkYXRhLnNpZ0J5dGVzIC09IG5QYWRkaW5nQnl0ZXM7XG5cdCAgICAgICAgfVxuXHQgICAgfTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBYnN0cmFjdCBiYXNlIGJsb2NrIGNpcGhlciB0ZW1wbGF0ZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcHJvcGVydHkge251bWJlcn0gYmxvY2tTaXplIFRoZSBudW1iZXIgb2YgMzItYml0IHdvcmRzIHRoaXMgY2lwaGVyIG9wZXJhdGVzIG9uLiBEZWZhdWx0OiA0ICgxMjggYml0cylcblx0ICAgICAqL1xuXHQgICAgdmFyIEJsb2NrQ2lwaGVyID0gQ19saWIuQmxvY2tDaXBoZXIgPSBDaXBoZXIuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcHJvcGVydHkge01vZGV9IG1vZGUgVGhlIGJsb2NrIG1vZGUgdG8gdXNlLiBEZWZhdWx0OiBDQkNcblx0ICAgICAgICAgKiBAcHJvcGVydHkge1BhZGRpbmd9IHBhZGRpbmcgVGhlIHBhZGRpbmcgc3RyYXRlZ3kgdG8gdXNlLiBEZWZhdWx0OiBQa2NzN1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGNmZzogQ2lwaGVyLmNmZy5leHRlbmQoe1xuXHQgICAgICAgICAgICBtb2RlOiBDQkMsXG5cdCAgICAgICAgICAgIHBhZGRpbmc6IFBrY3M3XG5cdCAgICAgICAgfSksXG5cblx0ICAgICAgICByZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgbW9kZUNyZWF0b3I7XG5cblx0ICAgICAgICAgICAgLy8gUmVzZXQgY2lwaGVyXG5cdCAgICAgICAgICAgIENpcGhlci5yZXNldC5jYWxsKHRoaXMpO1xuXG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgY2ZnID0gdGhpcy5jZmc7XG5cdCAgICAgICAgICAgIHZhciBpdiA9IGNmZy5pdjtcblx0ICAgICAgICAgICAgdmFyIG1vZGUgPSBjZmcubW9kZTtcblxuXHQgICAgICAgICAgICAvLyBSZXNldCBibG9jayBtb2RlXG5cdCAgICAgICAgICAgIGlmICh0aGlzLl94Zm9ybU1vZGUgPT0gdGhpcy5fRU5DX1hGT1JNX01PREUpIHtcblx0ICAgICAgICAgICAgICAgIG1vZGVDcmVhdG9yID0gbW9kZS5jcmVhdGVFbmNyeXB0b3I7XG5cdCAgICAgICAgICAgIH0gZWxzZSAvKiBpZiAodGhpcy5feGZvcm1Nb2RlID09IHRoaXMuX0RFQ19YRk9STV9NT0RFKSAqLyB7XG5cdCAgICAgICAgICAgICAgICBtb2RlQ3JlYXRvciA9IG1vZGUuY3JlYXRlRGVjcnlwdG9yO1xuXHQgICAgICAgICAgICAgICAgLy8gS2VlcCBhdCBsZWFzdCBvbmUgYmxvY2sgaW4gdGhlIGJ1ZmZlciBmb3IgdW5wYWRkaW5nXG5cdCAgICAgICAgICAgICAgICB0aGlzLl9taW5CdWZmZXJTaXplID0gMTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmICh0aGlzLl9tb2RlICYmIHRoaXMuX21vZGUuX19jcmVhdG9yID09IG1vZGVDcmVhdG9yKSB7XG5cdCAgICAgICAgICAgICAgICB0aGlzLl9tb2RlLmluaXQodGhpcywgaXYgJiYgaXYud29yZHMpO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgdGhpcy5fbW9kZSA9IG1vZGVDcmVhdG9yLmNhbGwobW9kZSwgdGhpcywgaXYgJiYgaXYud29yZHMpO1xuXHQgICAgICAgICAgICAgICAgdGhpcy5fbW9kZS5fX2NyZWF0b3IgPSBtb2RlQ3JlYXRvcjtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9Qcm9jZXNzQmxvY2s6IGZ1bmN0aW9uICh3b3Jkcywgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIHRoaXMuX21vZGUucHJvY2Vzc0Jsb2NrKHdvcmRzLCBvZmZzZXQpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9GaW5hbGl6ZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgZmluYWxQcm9jZXNzZWRCbG9ja3M7XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRcblx0ICAgICAgICAgICAgdmFyIHBhZGRpbmcgPSB0aGlzLmNmZy5wYWRkaW5nO1xuXG5cdCAgICAgICAgICAgIC8vIEZpbmFsaXplXG5cdCAgICAgICAgICAgIGlmICh0aGlzLl94Zm9ybU1vZGUgPT0gdGhpcy5fRU5DX1hGT1JNX01PREUpIHtcblx0ICAgICAgICAgICAgICAgIC8vIFBhZCBkYXRhXG5cdCAgICAgICAgICAgICAgICBwYWRkaW5nLnBhZCh0aGlzLl9kYXRhLCB0aGlzLmJsb2NrU2l6ZSk7XG5cblx0ICAgICAgICAgICAgICAgIC8vIFByb2Nlc3MgZmluYWwgYmxvY2tzXG5cdCAgICAgICAgICAgICAgICBmaW5hbFByb2Nlc3NlZEJsb2NrcyA9IHRoaXMuX3Byb2Nlc3MoISEnZmx1c2gnKTtcblx0ICAgICAgICAgICAgfSBlbHNlIC8qIGlmICh0aGlzLl94Zm9ybU1vZGUgPT0gdGhpcy5fREVDX1hGT1JNX01PREUpICovIHtcblx0ICAgICAgICAgICAgICAgIC8vIFByb2Nlc3MgZmluYWwgYmxvY2tzXG5cdCAgICAgICAgICAgICAgICBmaW5hbFByb2Nlc3NlZEJsb2NrcyA9IHRoaXMuX3Byb2Nlc3MoISEnZmx1c2gnKTtcblxuXHQgICAgICAgICAgICAgICAgLy8gVW5wYWQgZGF0YVxuXHQgICAgICAgICAgICAgICAgcGFkZGluZy51bnBhZChmaW5hbFByb2Nlc3NlZEJsb2Nrcyk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gZmluYWxQcm9jZXNzZWRCbG9ja3M7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGJsb2NrU2l6ZTogMTI4LzMyXG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBIGNvbGxlY3Rpb24gb2YgY2lwaGVyIHBhcmFtZXRlcnMuXG5cdCAgICAgKlxuXHQgICAgICogQHByb3BlcnR5IHtXb3JkQXJyYXl9IGNpcGhlcnRleHQgVGhlIHJhdyBjaXBoZXJ0ZXh0LlxuXHQgICAgICogQHByb3BlcnR5IHtXb3JkQXJyYXl9IGtleSBUaGUga2V5IHRvIHRoaXMgY2lwaGVydGV4dC5cblx0ICAgICAqIEBwcm9wZXJ0eSB7V29yZEFycmF5fSBpdiBUaGUgSVYgdXNlZCBpbiB0aGUgY2lwaGVyaW5nIG9wZXJhdGlvbi5cblx0ICAgICAqIEBwcm9wZXJ0eSB7V29yZEFycmF5fSBzYWx0IFRoZSBzYWx0IHVzZWQgd2l0aCBhIGtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uLlxuXHQgICAgICogQHByb3BlcnR5IHtDaXBoZXJ9IGFsZ29yaXRobSBUaGUgY2lwaGVyIGFsZ29yaXRobS5cblx0ICAgICAqIEBwcm9wZXJ0eSB7TW9kZX0gbW9kZSBUaGUgYmxvY2sgbW9kZSB1c2VkIGluIHRoZSBjaXBoZXJpbmcgb3BlcmF0aW9uLlxuXHQgICAgICogQHByb3BlcnR5IHtQYWRkaW5nfSBwYWRkaW5nIFRoZSBwYWRkaW5nIHNjaGVtZSB1c2VkIGluIHRoZSBjaXBoZXJpbmcgb3BlcmF0aW9uLlxuXHQgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IGJsb2NrU2l6ZSBUaGUgYmxvY2sgc2l6ZSBvZiB0aGUgY2lwaGVyLlxuXHQgICAgICogQHByb3BlcnR5IHtGb3JtYXR9IGZvcm1hdHRlciBUaGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0cmF0ZWd5IHRvIGNvbnZlcnQgdGhpcyBjaXBoZXIgcGFyYW1zIG9iamVjdCB0byBhIHN0cmluZy5cblx0ICAgICAqL1xuXHQgICAgdmFyIENpcGhlclBhcmFtcyA9IENfbGliLkNpcGhlclBhcmFtcyA9IEJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBJbml0aWFsaXplcyBhIG5ld2x5IGNyZWF0ZWQgY2lwaGVyIHBhcmFtcyBvYmplY3QuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gY2lwaGVyUGFyYW1zIEFuIG9iamVjdCB3aXRoIGFueSBvZiB0aGUgcG9zc2libGUgY2lwaGVyIHBhcmFtZXRlcnMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBjaXBoZXJQYXJhbXMgPSBDcnlwdG9KUy5saWIuQ2lwaGVyUGFyYW1zLmNyZWF0ZSh7XG5cdCAgICAgICAgICogICAgICAgICBjaXBoZXJ0ZXh0OiBjaXBoZXJ0ZXh0V29yZEFycmF5LFxuXHQgICAgICAgICAqICAgICAgICAga2V5OiBrZXlXb3JkQXJyYXksXG5cdCAgICAgICAgICogICAgICAgICBpdjogaXZXb3JkQXJyYXksXG5cdCAgICAgICAgICogICAgICAgICBzYWx0OiBzYWx0V29yZEFycmF5LFxuXHQgICAgICAgICAqICAgICAgICAgYWxnb3JpdGhtOiBDcnlwdG9KUy5hbGdvLkFFUyxcblx0ICAgICAgICAgKiAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxuXHQgICAgICAgICAqICAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBLQ1M3LFxuXHQgICAgICAgICAqICAgICAgICAgYmxvY2tTaXplOiA0LFxuXHQgICAgICAgICAqICAgICAgICAgZm9ybWF0dGVyOiBDcnlwdG9KUy5mb3JtYXQuT3BlblNTTFxuXHQgICAgICAgICAqICAgICB9KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBpbml0OiBmdW5jdGlvbiAoY2lwaGVyUGFyYW1zKSB7XG5cdCAgICAgICAgICAgIHRoaXMubWl4SW4oY2lwaGVyUGFyYW1zKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29udmVydHMgdGhpcyBjaXBoZXIgcGFyYW1zIG9iamVjdCB0byBhIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7Rm9ybWF0fSBmb3JtYXR0ZXIgKE9wdGlvbmFsKSBUaGUgZm9ybWF0dGluZyBzdHJhdGVneSB0byB1c2UuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBzdHJpbmdpZmllZCBjaXBoZXIgcGFyYW1zLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHRocm93cyBFcnJvciBJZiBuZWl0aGVyIHRoZSBmb3JtYXR0ZXIgbm9yIHRoZSBkZWZhdWx0IGZvcm1hdHRlciBpcyBzZXQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBzdHJpbmcgPSBjaXBoZXJQYXJhbXMgKyAnJztcblx0ICAgICAgICAgKiAgICAgdmFyIHN0cmluZyA9IGNpcGhlclBhcmFtcy50b1N0cmluZygpO1xuXHQgICAgICAgICAqICAgICB2YXIgc3RyaW5nID0gY2lwaGVyUGFyYW1zLnRvU3RyaW5nKENyeXB0b0pTLmZvcm1hdC5PcGVuU1NMKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICB0b1N0cmluZzogZnVuY3Rpb24gKGZvcm1hdHRlcikge1xuXHQgICAgICAgICAgICByZXR1cm4gKGZvcm1hdHRlciB8fCB0aGlzLmZvcm1hdHRlcikuc3RyaW5naWZ5KHRoaXMpO1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIEZvcm1hdCBuYW1lc3BhY2UuXG5cdCAgICAgKi9cblx0ICAgIHZhciBDX2Zvcm1hdCA9IEMuZm9ybWF0ID0ge307XG5cblx0ICAgIC8qKlxuXHQgICAgICogT3BlblNTTCBmb3JtYXR0aW5nIHN0cmF0ZWd5LlxuXHQgICAgICovXG5cdCAgICB2YXIgT3BlblNTTEZvcm1hdHRlciA9IENfZm9ybWF0Lk9wZW5TU0wgPSB7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29udmVydHMgYSBjaXBoZXIgcGFyYW1zIG9iamVjdCB0byBhbiBPcGVuU1NMLWNvbXBhdGlibGUgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtDaXBoZXJQYXJhbXN9IGNpcGhlclBhcmFtcyBUaGUgY2lwaGVyIHBhcmFtcyBvYmplY3QuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBPcGVuU1NMLWNvbXBhdGlibGUgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgb3BlblNTTFN0cmluZyA9IENyeXB0b0pTLmZvcm1hdC5PcGVuU1NMLnN0cmluZ2lmeShjaXBoZXJQYXJhbXMpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHN0cmluZ2lmeTogZnVuY3Rpb24gKGNpcGhlclBhcmFtcykge1xuXHQgICAgICAgICAgICB2YXIgd29yZEFycmF5O1xuXG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgY2lwaGVydGV4dCA9IGNpcGhlclBhcmFtcy5jaXBoZXJ0ZXh0O1xuXHQgICAgICAgICAgICB2YXIgc2FsdCA9IGNpcGhlclBhcmFtcy5zYWx0O1xuXG5cdCAgICAgICAgICAgIC8vIEZvcm1hdFxuXHQgICAgICAgICAgICBpZiAoc2FsdCkge1xuXHQgICAgICAgICAgICAgICAgd29yZEFycmF5ID0gV29yZEFycmF5LmNyZWF0ZShbMHg1MzYxNmM3NCwgMHg2NTY0NWY1Zl0pLmNvbmNhdChzYWx0KS5jb25jYXQoY2lwaGVydGV4dCk7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB3b3JkQXJyYXkgPSBjaXBoZXJ0ZXh0O1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIHdvcmRBcnJheS50b1N0cmluZyhCYXNlNjQpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhbiBPcGVuU1NMLWNvbXBhdGlibGUgc3RyaW5nIHRvIGEgY2lwaGVyIHBhcmFtcyBvYmplY3QuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3BlblNTTFN0ciBUaGUgT3BlblNTTC1jb21wYXRpYmxlIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge0NpcGhlclBhcmFtc30gVGhlIGNpcGhlciBwYXJhbXMgb2JqZWN0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgY2lwaGVyUGFyYW1zID0gQ3J5cHRvSlMuZm9ybWF0Lk9wZW5TU0wucGFyc2Uob3BlblNTTFN0cmluZyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgcGFyc2U6IGZ1bmN0aW9uIChvcGVuU1NMU3RyKSB7XG5cdCAgICAgICAgICAgIHZhciBzYWx0O1xuXG5cdCAgICAgICAgICAgIC8vIFBhcnNlIGJhc2U2NFxuXHQgICAgICAgICAgICB2YXIgY2lwaGVydGV4dCA9IEJhc2U2NC5wYXJzZShvcGVuU1NMU3RyKTtcblxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgY2lwaGVydGV4dFdvcmRzID0gY2lwaGVydGV4dC53b3JkcztcblxuXHQgICAgICAgICAgICAvLyBUZXN0IGZvciBzYWx0XG5cdCAgICAgICAgICAgIGlmIChjaXBoZXJ0ZXh0V29yZHNbMF0gPT0gMHg1MzYxNmM3NCAmJiBjaXBoZXJ0ZXh0V29yZHNbMV0gPT0gMHg2NTY0NWY1Zikge1xuXHQgICAgICAgICAgICAgICAgLy8gRXh0cmFjdCBzYWx0XG5cdCAgICAgICAgICAgICAgICBzYWx0ID0gV29yZEFycmF5LmNyZWF0ZShjaXBoZXJ0ZXh0V29yZHMuc2xpY2UoMiwgNCkpO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBSZW1vdmUgc2FsdCBmcm9tIGNpcGhlcnRleHRcblx0ICAgICAgICAgICAgICAgIGNpcGhlcnRleHRXb3Jkcy5zcGxpY2UoMCwgNCk7XG5cdCAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0LnNpZ0J5dGVzIC09IDE2O1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIENpcGhlclBhcmFtcy5jcmVhdGUoeyBjaXBoZXJ0ZXh0OiBjaXBoZXJ0ZXh0LCBzYWx0OiBzYWx0IH0pO1xuXHQgICAgICAgIH1cblx0ICAgIH07XG5cblx0ICAgIC8qKlxuXHQgICAgICogQSBjaXBoZXIgd3JhcHBlciB0aGF0IHJldHVybnMgY2lwaGVydGV4dCBhcyBhIHNlcmlhbGl6YWJsZSBjaXBoZXIgcGFyYW1zIG9iamVjdC5cblx0ICAgICAqL1xuXHQgICAgdmFyIFNlcmlhbGl6YWJsZUNpcGhlciA9IENfbGliLlNlcmlhbGl6YWJsZUNpcGhlciA9IEJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcHJvcGVydHkge0Zvcm1hdHRlcn0gZm9ybWF0IFRoZSBmb3JtYXR0aW5nIHN0cmF0ZWd5IHRvIGNvbnZlcnQgY2lwaGVyIHBhcmFtIG9iamVjdHMgdG8gYW5kIGZyb20gYSBzdHJpbmcuIERlZmF1bHQ6IE9wZW5TU0xcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBjZmc6IEJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAgICAgZm9ybWF0OiBPcGVuU1NMRm9ybWF0dGVyXG5cdCAgICAgICAgfSksXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBFbmNyeXB0cyBhIG1lc3NhZ2UuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0NpcGhlcn0gY2lwaGVyIFRoZSBjaXBoZXIgYWxnb3JpdGhtIHRvIHVzZS5cblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gZW5jcnlwdC5cblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheX0ga2V5IFRoZSBrZXkuXG5cdCAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IGNmZyAoT3B0aW9uYWwpIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gdXNlIGZvciB0aGlzIG9wZXJhdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge0NpcGhlclBhcmFtc30gQSBjaXBoZXIgcGFyYW1zIG9iamVjdC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGNpcGhlcnRleHRQYXJhbXMgPSBDcnlwdG9KUy5saWIuU2VyaWFsaXphYmxlQ2lwaGVyLmVuY3J5cHQoQ3J5cHRvSlMuYWxnby5BRVMsIG1lc3NhZ2UsIGtleSk7XG5cdCAgICAgICAgICogICAgIHZhciBjaXBoZXJ0ZXh0UGFyYW1zID0gQ3J5cHRvSlMubGliLlNlcmlhbGl6YWJsZUNpcGhlci5lbmNyeXB0KENyeXB0b0pTLmFsZ28uQUVTLCBtZXNzYWdlLCBrZXksIHsgaXY6IGl2IH0pO1xuXHQgICAgICAgICAqICAgICB2YXIgY2lwaGVydGV4dFBhcmFtcyA9IENyeXB0b0pTLmxpYi5TZXJpYWxpemFibGVDaXBoZXIuZW5jcnlwdChDcnlwdG9KUy5hbGdvLkFFUywgbWVzc2FnZSwga2V5LCB7IGl2OiBpdiwgZm9ybWF0OiBDcnlwdG9KUy5mb3JtYXQuT3BlblNTTCB9KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBlbmNyeXB0OiBmdW5jdGlvbiAoY2lwaGVyLCBtZXNzYWdlLCBrZXksIGNmZykge1xuXHQgICAgICAgICAgICAvLyBBcHBseSBjb25maWcgZGVmYXVsdHNcblx0ICAgICAgICAgICAgY2ZnID0gdGhpcy5jZmcuZXh0ZW5kKGNmZyk7XG5cblx0ICAgICAgICAgICAgLy8gRW5jcnlwdFxuXHQgICAgICAgICAgICB2YXIgZW5jcnlwdG9yID0gY2lwaGVyLmNyZWF0ZUVuY3J5cHRvcihrZXksIGNmZyk7XG5cdCAgICAgICAgICAgIHZhciBjaXBoZXJ0ZXh0ID0gZW5jcnlwdG9yLmZpbmFsaXplKG1lc3NhZ2UpO1xuXG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgIHZhciBjaXBoZXJDZmcgPSBlbmNyeXB0b3IuY2ZnO1xuXG5cdCAgICAgICAgICAgIC8vIENyZWF0ZSBhbmQgcmV0dXJuIHNlcmlhbGl6YWJsZSBjaXBoZXIgcGFyYW1zXG5cdCAgICAgICAgICAgIHJldHVybiBDaXBoZXJQYXJhbXMuY3JlYXRlKHtcblx0ICAgICAgICAgICAgICAgIGNpcGhlcnRleHQ6IGNpcGhlcnRleHQsXG5cdCAgICAgICAgICAgICAgICBrZXk6IGtleSxcblx0ICAgICAgICAgICAgICAgIGl2OiBjaXBoZXJDZmcuaXYsXG5cdCAgICAgICAgICAgICAgICBhbGdvcml0aG06IGNpcGhlcixcblx0ICAgICAgICAgICAgICAgIG1vZGU6IGNpcGhlckNmZy5tb2RlLFxuXHQgICAgICAgICAgICAgICAgcGFkZGluZzogY2lwaGVyQ2ZnLnBhZGRpbmcsXG5cdCAgICAgICAgICAgICAgICBibG9ja1NpemU6IGNpcGhlci5ibG9ja1NpemUsXG5cdCAgICAgICAgICAgICAgICBmb3JtYXR0ZXI6IGNmZy5mb3JtYXRcblx0ICAgICAgICAgICAgfSk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIERlY3J5cHRzIHNlcmlhbGl6ZWQgY2lwaGVydGV4dC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7Q2lwaGVyfSBjaXBoZXIgVGhlIGNpcGhlciBhbGdvcml0aG0gdG8gdXNlLlxuXHQgICAgICAgICAqIEBwYXJhbSB7Q2lwaGVyUGFyYW1zfHN0cmluZ30gY2lwaGVydGV4dCBUaGUgY2lwaGVydGV4dCB0byBkZWNyeXB0LlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fSBrZXkgVGhlIGtleS5cblx0ICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gY2ZnIChPcHRpb25hbCkgVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byB1c2UgZm9yIHRoaXMgb3BlcmF0aW9uLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgcGxhaW50ZXh0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgcGxhaW50ZXh0ID0gQ3J5cHRvSlMubGliLlNlcmlhbGl6YWJsZUNpcGhlci5kZWNyeXB0KENyeXB0b0pTLmFsZ28uQUVTLCBmb3JtYXR0ZWRDaXBoZXJ0ZXh0LCBrZXksIHsgaXY6IGl2LCBmb3JtYXQ6IENyeXB0b0pTLmZvcm1hdC5PcGVuU1NMIH0pO1xuXHQgICAgICAgICAqICAgICB2YXIgcGxhaW50ZXh0ID0gQ3J5cHRvSlMubGliLlNlcmlhbGl6YWJsZUNpcGhlci5kZWNyeXB0KENyeXB0b0pTLmFsZ28uQUVTLCBjaXBoZXJ0ZXh0UGFyYW1zLCBrZXksIHsgaXY6IGl2LCBmb3JtYXQ6IENyeXB0b0pTLmZvcm1hdC5PcGVuU1NMIH0pO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGRlY3J5cHQ6IGZ1bmN0aW9uIChjaXBoZXIsIGNpcGhlcnRleHQsIGtleSwgY2ZnKSB7XG5cdCAgICAgICAgICAgIC8vIEFwcGx5IGNvbmZpZyBkZWZhdWx0c1xuXHQgICAgICAgICAgICBjZmcgPSB0aGlzLmNmZy5leHRlbmQoY2ZnKTtcblxuXHQgICAgICAgICAgICAvLyBDb252ZXJ0IHN0cmluZyB0byBDaXBoZXJQYXJhbXNcblx0ICAgICAgICAgICAgY2lwaGVydGV4dCA9IHRoaXMuX3BhcnNlKGNpcGhlcnRleHQsIGNmZy5mb3JtYXQpO1xuXG5cdCAgICAgICAgICAgIC8vIERlY3J5cHRcblx0ICAgICAgICAgICAgdmFyIHBsYWludGV4dCA9IGNpcGhlci5jcmVhdGVEZWNyeXB0b3Ioa2V5LCBjZmcpLmZpbmFsaXplKGNpcGhlcnRleHQuY2lwaGVydGV4dCk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIHBsYWludGV4dDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29udmVydHMgc2VyaWFsaXplZCBjaXBoZXJ0ZXh0IHRvIENpcGhlclBhcmFtcyxcblx0ICAgICAgICAgKiBlbHNlIGFzc3VtZWQgQ2lwaGVyUGFyYW1zIGFscmVhZHkgYW5kIHJldHVybnMgY2lwaGVydGV4dCB1bmNoYW5nZWQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0NpcGhlclBhcmFtc3xzdHJpbmd9IGNpcGhlcnRleHQgVGhlIGNpcGhlcnRleHQuXG5cdCAgICAgICAgICogQHBhcmFtIHtGb3JtYXR0ZXJ9IGZvcm1hdCBUaGUgZm9ybWF0dGluZyBzdHJhdGVneSB0byB1c2UgdG8gcGFyc2Ugc2VyaWFsaXplZCBjaXBoZXJ0ZXh0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7Q2lwaGVyUGFyYW1zfSBUaGUgdW5zZXJpYWxpemVkIGNpcGhlcnRleHQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBjaXBoZXJ0ZXh0UGFyYW1zID0gQ3J5cHRvSlMubGliLlNlcmlhbGl6YWJsZUNpcGhlci5fcGFyc2UoY2lwaGVydGV4dFN0cmluZ09yUGFyYW1zLCBmb3JtYXQpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIF9wYXJzZTogZnVuY3Rpb24gKGNpcGhlcnRleHQsIGZvcm1hdCkge1xuXHQgICAgICAgICAgICBpZiAodHlwZW9mIGNpcGhlcnRleHQgPT0gJ3N0cmluZycpIHtcblx0ICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXQucGFyc2UoY2lwaGVydGV4dCwgdGhpcyk7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gY2lwaGVydGV4dDtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIEtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uIG5hbWVzcGFjZS5cblx0ICAgICAqL1xuXHQgICAgdmFyIENfa2RmID0gQy5rZGYgPSB7fTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBPcGVuU1NMIGtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uLlxuXHQgICAgICovXG5cdCAgICB2YXIgT3BlblNTTEtkZiA9IENfa2RmLk9wZW5TU0wgPSB7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogRGVyaXZlcyBhIGtleSBhbmQgSVYgZnJvbSBhIHBhc3N3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHBhc3N3b3JkIFRoZSBwYXNzd29yZCB0byBkZXJpdmUgZnJvbS5cblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0ga2V5U2l6ZSBUaGUgc2l6ZSBpbiB3b3JkcyBvZiB0aGUga2V5IHRvIGdlbmVyYXRlLlxuXHQgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpdlNpemUgVGhlIHNpemUgaW4gd29yZHMgb2YgdGhlIElWIHRvIGdlbmVyYXRlLlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gc2FsdCAoT3B0aW9uYWwpIEEgNjQtYml0IHNhbHQgdG8gdXNlLiBJZiBvbWl0dGVkLCBhIHNhbHQgd2lsbCBiZSBnZW5lcmF0ZWQgcmFuZG9tbHkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtDaXBoZXJQYXJhbXN9IEEgY2lwaGVyIHBhcmFtcyBvYmplY3Qgd2l0aCB0aGUga2V5LCBJViwgYW5kIHNhbHQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBkZXJpdmVkUGFyYW1zID0gQ3J5cHRvSlMua2RmLk9wZW5TU0wuZXhlY3V0ZSgnUGFzc3dvcmQnLCAyNTYvMzIsIDEyOC8zMik7XG5cdCAgICAgICAgICogICAgIHZhciBkZXJpdmVkUGFyYW1zID0gQ3J5cHRvSlMua2RmLk9wZW5TU0wuZXhlY3V0ZSgnUGFzc3dvcmQnLCAyNTYvMzIsIDEyOC8zMiwgJ3NhbHRzYWx0Jyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgZXhlY3V0ZTogZnVuY3Rpb24gKHBhc3N3b3JkLCBrZXlTaXplLCBpdlNpemUsIHNhbHQpIHtcblx0ICAgICAgICAgICAgLy8gR2VuZXJhdGUgcmFuZG9tIHNhbHRcblx0ICAgICAgICAgICAgaWYgKCFzYWx0KSB7XG5cdCAgICAgICAgICAgICAgICBzYWx0ID0gV29yZEFycmF5LnJhbmRvbSg2NC84KTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIERlcml2ZSBrZXkgYW5kIElWXG5cdCAgICAgICAgICAgIHZhciBrZXkgPSBFdnBLREYuY3JlYXRlKHsga2V5U2l6ZToga2V5U2l6ZSArIGl2U2l6ZSB9KS5jb21wdXRlKHBhc3N3b3JkLCBzYWx0KTtcblxuXHQgICAgICAgICAgICAvLyBTZXBhcmF0ZSBrZXkgYW5kIElWXG5cdCAgICAgICAgICAgIHZhciBpdiA9IFdvcmRBcnJheS5jcmVhdGUoa2V5LndvcmRzLnNsaWNlKGtleVNpemUpLCBpdlNpemUgKiA0KTtcblx0ICAgICAgICAgICAga2V5LnNpZ0J5dGVzID0ga2V5U2l6ZSAqIDQ7XG5cblx0ICAgICAgICAgICAgLy8gUmV0dXJuIHBhcmFtc1xuXHQgICAgICAgICAgICByZXR1cm4gQ2lwaGVyUGFyYW1zLmNyZWF0ZSh7IGtleToga2V5LCBpdjogaXYsIHNhbHQ6IHNhbHQgfSk7XG5cdCAgICAgICAgfVxuXHQgICAgfTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBIHNlcmlhbGl6YWJsZSBjaXBoZXIgd3JhcHBlciB0aGF0IGRlcml2ZXMgdGhlIGtleSBmcm9tIGEgcGFzc3dvcmQsXG5cdCAgICAgKiBhbmQgcmV0dXJucyBjaXBoZXJ0ZXh0IGFzIGEgc2VyaWFsaXphYmxlIGNpcGhlciBwYXJhbXMgb2JqZWN0LlxuXHQgICAgICovXG5cdCAgICB2YXIgUGFzc3dvcmRCYXNlZENpcGhlciA9IENfbGliLlBhc3N3b3JkQmFzZWRDaXBoZXIgPSBTZXJpYWxpemFibGVDaXBoZXIuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcHJvcGVydHkge0tERn0ga2RmIFRoZSBrZXkgZGVyaXZhdGlvbiBmdW5jdGlvbiB0byB1c2UgdG8gZ2VuZXJhdGUgYSBrZXkgYW5kIElWIGZyb20gYSBwYXNzd29yZC4gRGVmYXVsdDogT3BlblNTTFxuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGNmZzogU2VyaWFsaXphYmxlQ2lwaGVyLmNmZy5leHRlbmQoe1xuXHQgICAgICAgICAgICBrZGY6IE9wZW5TU0xLZGZcblx0ICAgICAgICB9KSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEVuY3J5cHRzIGEgbWVzc2FnZSB1c2luZyBhIHBhc3N3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtDaXBoZXJ9IGNpcGhlciBUaGUgY2lwaGVyIGFsZ29yaXRobSB0byB1c2UuXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGVuY3J5cHQuXG5cdCAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHBhc3N3b3JkIFRoZSBwYXNzd29yZC5cblx0ICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gY2ZnIChPcHRpb25hbCkgVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byB1c2UgZm9yIHRoaXMgb3BlcmF0aW9uLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7Q2lwaGVyUGFyYW1zfSBBIGNpcGhlciBwYXJhbXMgb2JqZWN0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgY2lwaGVydGV4dFBhcmFtcyA9IENyeXB0b0pTLmxpYi5QYXNzd29yZEJhc2VkQ2lwaGVyLmVuY3J5cHQoQ3J5cHRvSlMuYWxnby5BRVMsIG1lc3NhZ2UsICdwYXNzd29yZCcpO1xuXHQgICAgICAgICAqICAgICB2YXIgY2lwaGVydGV4dFBhcmFtcyA9IENyeXB0b0pTLmxpYi5QYXNzd29yZEJhc2VkQ2lwaGVyLmVuY3J5cHQoQ3J5cHRvSlMuYWxnby5BRVMsIG1lc3NhZ2UsICdwYXNzd29yZCcsIHsgZm9ybWF0OiBDcnlwdG9KUy5mb3JtYXQuT3BlblNTTCB9KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBlbmNyeXB0OiBmdW5jdGlvbiAoY2lwaGVyLCBtZXNzYWdlLCBwYXNzd29yZCwgY2ZnKSB7XG5cdCAgICAgICAgICAgIC8vIEFwcGx5IGNvbmZpZyBkZWZhdWx0c1xuXHQgICAgICAgICAgICBjZmcgPSB0aGlzLmNmZy5leHRlbmQoY2ZnKTtcblxuXHQgICAgICAgICAgICAvLyBEZXJpdmUga2V5IGFuZCBvdGhlciBwYXJhbXNcblx0ICAgICAgICAgICAgdmFyIGRlcml2ZWRQYXJhbXMgPSBjZmcua2RmLmV4ZWN1dGUocGFzc3dvcmQsIGNpcGhlci5rZXlTaXplLCBjaXBoZXIuaXZTaXplKTtcblxuXHQgICAgICAgICAgICAvLyBBZGQgSVYgdG8gY29uZmlnXG5cdCAgICAgICAgICAgIGNmZy5pdiA9IGRlcml2ZWRQYXJhbXMuaXY7XG5cblx0ICAgICAgICAgICAgLy8gRW5jcnlwdFxuXHQgICAgICAgICAgICB2YXIgY2lwaGVydGV4dCA9IFNlcmlhbGl6YWJsZUNpcGhlci5lbmNyeXB0LmNhbGwodGhpcywgY2lwaGVyLCBtZXNzYWdlLCBkZXJpdmVkUGFyYW1zLmtleSwgY2ZnKTtcblxuXHQgICAgICAgICAgICAvLyBNaXggaW4gZGVyaXZlZCBwYXJhbXNcblx0ICAgICAgICAgICAgY2lwaGVydGV4dC5taXhJbihkZXJpdmVkUGFyYW1zKTtcblxuXHQgICAgICAgICAgICByZXR1cm4gY2lwaGVydGV4dDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogRGVjcnlwdHMgc2VyaWFsaXplZCBjaXBoZXJ0ZXh0IHVzaW5nIGEgcGFzc3dvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0NpcGhlcn0gY2lwaGVyIFRoZSBjaXBoZXIgYWxnb3JpdGhtIHRvIHVzZS5cblx0ICAgICAgICAgKiBAcGFyYW0ge0NpcGhlclBhcmFtc3xzdHJpbmd9IGNpcGhlcnRleHQgVGhlIGNpcGhlcnRleHQgdG8gZGVjcnlwdC5cblx0ICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGFzc3dvcmQgVGhlIHBhc3N3b3JkLlxuXHQgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjZmcgKE9wdGlvbmFsKSBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIHVzZSBmb3IgdGhpcyBvcGVyYXRpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBwbGFpbnRleHQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBwbGFpbnRleHQgPSBDcnlwdG9KUy5saWIuUGFzc3dvcmRCYXNlZENpcGhlci5kZWNyeXB0KENyeXB0b0pTLmFsZ28uQUVTLCBmb3JtYXR0ZWRDaXBoZXJ0ZXh0LCAncGFzc3dvcmQnLCB7IGZvcm1hdDogQ3J5cHRvSlMuZm9ybWF0Lk9wZW5TU0wgfSk7XG5cdCAgICAgICAgICogICAgIHZhciBwbGFpbnRleHQgPSBDcnlwdG9KUy5saWIuUGFzc3dvcmRCYXNlZENpcGhlci5kZWNyeXB0KENyeXB0b0pTLmFsZ28uQUVTLCBjaXBoZXJ0ZXh0UGFyYW1zLCAncGFzc3dvcmQnLCB7IGZvcm1hdDogQ3J5cHRvSlMuZm9ybWF0Lk9wZW5TU0wgfSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgZGVjcnlwdDogZnVuY3Rpb24gKGNpcGhlciwgY2lwaGVydGV4dCwgcGFzc3dvcmQsIGNmZykge1xuXHQgICAgICAgICAgICAvLyBBcHBseSBjb25maWcgZGVmYXVsdHNcblx0ICAgICAgICAgICAgY2ZnID0gdGhpcy5jZmcuZXh0ZW5kKGNmZyk7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydCBzdHJpbmcgdG8gQ2lwaGVyUGFyYW1zXG5cdCAgICAgICAgICAgIGNpcGhlcnRleHQgPSB0aGlzLl9wYXJzZShjaXBoZXJ0ZXh0LCBjZmcuZm9ybWF0KTtcblxuXHQgICAgICAgICAgICAvLyBEZXJpdmUga2V5IGFuZCBvdGhlciBwYXJhbXNcblx0ICAgICAgICAgICAgdmFyIGRlcml2ZWRQYXJhbXMgPSBjZmcua2RmLmV4ZWN1dGUocGFzc3dvcmQsIGNpcGhlci5rZXlTaXplLCBjaXBoZXIuaXZTaXplLCBjaXBoZXJ0ZXh0LnNhbHQpO1xuXG5cdCAgICAgICAgICAgIC8vIEFkZCBJViB0byBjb25maWdcblx0ICAgICAgICAgICAgY2ZnLml2ID0gZGVyaXZlZFBhcmFtcy5pdjtcblxuXHQgICAgICAgICAgICAvLyBEZWNyeXB0XG5cdCAgICAgICAgICAgIHZhciBwbGFpbnRleHQgPSBTZXJpYWxpemFibGVDaXBoZXIuZGVjcnlwdC5jYWxsKHRoaXMsIGNpcGhlciwgY2lwaGVydGV4dCwgZGVyaXZlZFBhcmFtcy5rZXksIGNmZyk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIHBsYWludGV4dDtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblx0fSgpKTtcblxuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdHJvb3QuQ3J5cHRvSlMgPSBmYWN0b3J5KCk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKCkge1xuXG5cdC8qZ2xvYmFscyB3aW5kb3csIGdsb2JhbCwgcmVxdWlyZSovXG5cblx0LyoqXG5cdCAqIENyeXB0b0pTIGNvcmUgY29tcG9uZW50cy5cblx0ICovXG5cdHZhciBDcnlwdG9KUyA9IENyeXB0b0pTIHx8IChmdW5jdGlvbiAoTWF0aCwgdW5kZWZpbmVkKSB7XG5cblx0ICAgIHZhciBjcnlwdG87XG5cblx0ICAgIC8vIE5hdGl2ZSBjcnlwdG8gZnJvbSB3aW5kb3cgKEJyb3dzZXIpXG5cdCAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmNyeXB0bykge1xuXHQgICAgICAgIGNyeXB0byA9IHdpbmRvdy5jcnlwdG87XG5cdCAgICB9XG5cblx0ICAgIC8vIE5hdGl2ZSBjcnlwdG8gaW4gd2ViIHdvcmtlciAoQnJvd3Nlcilcblx0ICAgIGlmICh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5jcnlwdG8pIHtcblx0ICAgICAgICBjcnlwdG8gPSBzZWxmLmNyeXB0bztcblx0ICAgIH1cblxuXHQgICAgLy8gTmF0aXZlIGNyeXB0byBmcm9tIHdvcmtlclxuXHQgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWxUaGlzLmNyeXB0bykge1xuXHQgICAgICAgIGNyeXB0byA9IGdsb2JhbFRoaXMuY3J5cHRvO1xuXHQgICAgfVxuXG5cdCAgICAvLyBOYXRpdmUgKGV4cGVyaW1lbnRhbCBJRSAxMSkgY3J5cHRvIGZyb20gd2luZG93IChCcm93c2VyKVxuXHQgICAgaWYgKCFjcnlwdG8gJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm1zQ3J5cHRvKSB7XG5cdCAgICAgICAgY3J5cHRvID0gd2luZG93Lm1zQ3J5cHRvO1xuXHQgICAgfVxuXG5cdCAgICAvLyBOYXRpdmUgY3J5cHRvIGZyb20gZ2xvYmFsIChOb2RlSlMpXG5cdCAgICBpZiAoIWNyeXB0byAmJiB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwuY3J5cHRvKSB7XG5cdCAgICAgICAgY3J5cHRvID0gZ2xvYmFsLmNyeXB0bztcblx0ICAgIH1cblxuXHQgICAgLy8gTmF0aXZlIGNyeXB0byBpbXBvcnQgdmlhIHJlcXVpcmUgKE5vZGVKUylcblx0ICAgIGlmICghY3J5cHRvICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgdHJ5IHtcblx0ICAgICAgICAgICAgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyk7XG5cdCAgICAgICAgfSBjYXRjaCAoZXJyKSB7fVxuXHQgICAgfVxuXG5cdCAgICAvKlxuXHQgICAgICogQ3J5cHRvZ3JhcGhpY2FsbHkgc2VjdXJlIHBzZXVkb3JhbmRvbSBudW1iZXIgZ2VuZXJhdG9yXG5cdCAgICAgKlxuXHQgICAgICogQXMgTWF0aC5yYW5kb20oKSBpcyBjcnlwdG9ncmFwaGljYWxseSBub3Qgc2FmZSB0byB1c2Vcblx0ICAgICAqL1xuXHQgICAgdmFyIGNyeXB0b1NlY3VyZVJhbmRvbUludCA9IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICBpZiAoY3J5cHRvKSB7XG5cdCAgICAgICAgICAgIC8vIFVzZSBnZXRSYW5kb21WYWx1ZXMgbWV0aG9kIChCcm93c2VyKVxuXHQgICAgICAgICAgICBpZiAodHlwZW9mIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICAgICAgICAgIHRyeSB7XG5cdCAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDEpKVswXTtcblx0ICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge31cblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIFVzZSByYW5kb21CeXRlcyBtZXRob2QgKE5vZGVKUylcblx0ICAgICAgICAgICAgaWYgKHR5cGVvZiBjcnlwdG8ucmFuZG9tQnl0ZXMgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICAgICAgICAgIHRyeSB7XG5cdCAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyeXB0by5yYW5kb21CeXRlcyg0KS5yZWFkSW50MzJMRSgpO1xuXHQgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7fVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOYXRpdmUgY3J5cHRvIG1vZHVsZSBjb3VsZCBub3QgYmUgdXNlZCB0byBnZXQgc2VjdXJlIHJhbmRvbSBudW1iZXIuJyk7XG5cdCAgICB9O1xuXG5cdCAgICAvKlxuXHQgICAgICogTG9jYWwgcG9seWZpbGwgb2YgT2JqZWN0LmNyZWF0ZVxuXG5cdCAgICAgKi9cblx0ICAgIHZhciBjcmVhdGUgPSBPYmplY3QuY3JlYXRlIHx8IChmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgZnVuY3Rpb24gRigpIHt9XG5cblx0ICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG9iaikge1xuXHQgICAgICAgICAgICB2YXIgc3VidHlwZTtcblxuXHQgICAgICAgICAgICBGLnByb3RvdHlwZSA9IG9iajtcblxuXHQgICAgICAgICAgICBzdWJ0eXBlID0gbmV3IEYoKTtcblxuXHQgICAgICAgICAgICBGLnByb3RvdHlwZSA9IG51bGw7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIHN1YnR5cGU7XG5cdCAgICAgICAgfTtcblx0ICAgIH0oKSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogQ3J5cHRvSlMgbmFtZXNwYWNlLlxuXHQgICAgICovXG5cdCAgICB2YXIgQyA9IHt9O1xuXG5cdCAgICAvKipcblx0ICAgICAqIExpYnJhcnkgbmFtZXNwYWNlLlxuXHQgICAgICovXG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYiA9IHt9O1xuXG5cdCAgICAvKipcblx0ICAgICAqIEJhc2Ugb2JqZWN0IGZvciBwcm90b3R5cGFsIGluaGVyaXRhbmNlLlxuXHQgICAgICovXG5cdCAgICB2YXIgQmFzZSA9IENfbGliLkJhc2UgPSAoZnVuY3Rpb24gKCkge1xuXG5cblx0ICAgICAgICByZXR1cm4ge1xuXHQgICAgICAgICAgICAvKipcblx0ICAgICAgICAgICAgICogQ3JlYXRlcyBhIG5ldyBvYmplY3QgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgb2JqZWN0LlxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb3ZlcnJpZGVzIFByb3BlcnRpZXMgdG8gY29weSBpbnRvIHRoZSBuZXcgb2JqZWN0LlxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAcmV0dXJuIHtPYmplY3R9IFRoZSBuZXcgb2JqZWN0LlxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqICAgICB2YXIgTXlUeXBlID0gQ3J5cHRvSlMubGliLkJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAgICAgICogICAgICAgICBmaWVsZDogJ3ZhbHVlJyxcblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogICAgICAgICBtZXRob2Q6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgICogICAgICAgICB9XG5cdCAgICAgICAgICAgICAqICAgICB9KTtcblx0ICAgICAgICAgICAgICovXG5cdCAgICAgICAgICAgIGV4dGVuZDogZnVuY3Rpb24gKG92ZXJyaWRlcykge1xuXHQgICAgICAgICAgICAgICAgLy8gU3Bhd25cblx0ICAgICAgICAgICAgICAgIHZhciBzdWJ0eXBlID0gY3JlYXRlKHRoaXMpO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBBdWdtZW50XG5cdCAgICAgICAgICAgICAgICBpZiAob3ZlcnJpZGVzKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgc3VidHlwZS5taXhJbihvdmVycmlkZXMpO1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICAvLyBDcmVhdGUgZGVmYXVsdCBpbml0aWFsaXplclxuXHQgICAgICAgICAgICAgICAgaWYgKCFzdWJ0eXBlLmhhc093blByb3BlcnR5KCdpbml0JykgfHwgdGhpcy5pbml0ID09PSBzdWJ0eXBlLmluaXQpIHtcblx0ICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHN1YnR5cGUuJHN1cGVyLmluaXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblx0ICAgICAgICAgICAgICAgICAgICB9O1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICAvLyBJbml0aWFsaXplcidzIHByb3RvdHlwZSBpcyB0aGUgc3VidHlwZSBvYmplY3Rcblx0ICAgICAgICAgICAgICAgIHN1YnR5cGUuaW5pdC5wcm90b3R5cGUgPSBzdWJ0eXBlO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBSZWZlcmVuY2Ugc3VwZXJ0eXBlXG5cdCAgICAgICAgICAgICAgICBzdWJ0eXBlLiRzdXBlciA9IHRoaXM7XG5cblx0ICAgICAgICAgICAgICAgIHJldHVybiBzdWJ0eXBlO1xuXHQgICAgICAgICAgICB9LFxuXG5cdCAgICAgICAgICAgIC8qKlxuXHQgICAgICAgICAgICAgKiBFeHRlbmRzIHRoaXMgb2JqZWN0IGFuZCBydW5zIHRoZSBpbml0IG1ldGhvZC5cblx0ICAgICAgICAgICAgICogQXJndW1lbnRzIHRvIGNyZWF0ZSgpIHdpbGwgYmUgcGFzc2VkIHRvIGluaXQoKS5cblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgbmV3IG9iamVjdC5cblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiAgICAgdmFyIGluc3RhbmNlID0gTXlUeXBlLmNyZWF0ZSgpO1xuXHQgICAgICAgICAgICAgKi9cblx0ICAgICAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSB0aGlzLmV4dGVuZCgpO1xuXHQgICAgICAgICAgICAgICAgaW5zdGFuY2UuaW5pdC5hcHBseShpbnN0YW5jZSwgYXJndW1lbnRzKTtcblxuXHQgICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuXHQgICAgICAgICAgICB9LFxuXG5cdCAgICAgICAgICAgIC8qKlxuXHQgICAgICAgICAgICAgKiBJbml0aWFsaXplcyBhIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LlxuXHQgICAgICAgICAgICAgKiBPdmVycmlkZSB0aGlzIG1ldGhvZCB0byBhZGQgc29tZSBsb2dpYyB3aGVuIHlvdXIgb2JqZWN0cyBhcmUgY3JlYXRlZC5cblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogICAgIHZhciBNeVR5cGUgPSBDcnlwdG9KUy5saWIuQmFzZS5leHRlbmQoe1xuXHQgICAgICAgICAgICAgKiAgICAgICAgIGluaXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgICogICAgICAgICAgICAgLy8gLi4uXG5cdCAgICAgICAgICAgICAqICAgICAgICAgfVxuXHQgICAgICAgICAgICAgKiAgICAgfSk7XG5cdCAgICAgICAgICAgICAqL1xuXHQgICAgICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIH0sXG5cblx0ICAgICAgICAgICAgLyoqXG5cdCAgICAgICAgICAgICAqIENvcGllcyBwcm9wZXJ0aWVzIGludG8gdGhpcyBvYmplY3QuXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIHRvIG1peCBpbi5cblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgICAgICpcblx0ICAgICAgICAgICAgICogICAgIE15VHlwZS5taXhJbih7XG5cdCAgICAgICAgICAgICAqICAgICAgICAgZmllbGQ6ICd2YWx1ZSdcblx0ICAgICAgICAgICAgICogICAgIH0pO1xuXHQgICAgICAgICAgICAgKi9cblx0ICAgICAgICAgICAgbWl4SW46IGZ1bmN0aW9uIChwcm9wZXJ0aWVzKSB7XG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBwcm9wZXJ0eU5hbWUgaW4gcHJvcGVydGllcykge1xuXHQgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSkpIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1twcm9wZXJ0eU5hbWVdID0gcHJvcGVydGllc1twcm9wZXJ0eU5hbWVdO1xuXHQgICAgICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgLy8gSUUgd29uJ3QgY29weSB0b1N0cmluZyB1c2luZyB0aGUgbG9vcCBhYm92ZVxuXHQgICAgICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoJ3RvU3RyaW5nJykpIHtcblx0ICAgICAgICAgICAgICAgICAgICB0aGlzLnRvU3RyaW5nID0gcHJvcGVydGllcy50b1N0cmluZztcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfSxcblxuXHQgICAgICAgICAgICAvKipcblx0ICAgICAgICAgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBvYmplY3QuXG5cdCAgICAgICAgICAgICAqXG5cdCAgICAgICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gVGhlIGNsb25lLlxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAgICAgKlxuXHQgICAgICAgICAgICAgKiAgICAgdmFyIGNsb25lID0gaW5zdGFuY2UuY2xvbmUoKTtcblx0ICAgICAgICAgICAgICovXG5cdCAgICAgICAgICAgIGNsb25lOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbml0LnByb3RvdHlwZS5leHRlbmQodGhpcyk7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9O1xuXHQgICAgfSgpKTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBbiBhcnJheSBvZiAzMi1iaXQgd29yZHMuXG5cdCAgICAgKlxuXHQgICAgICogQHByb3BlcnR5IHtBcnJheX0gd29yZHMgVGhlIGFycmF5IG9mIDMyLWJpdCB3b3Jkcy5cblx0ICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzaWdCeXRlcyBUaGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGJ5dGVzIGluIHRoaXMgd29yZCBhcnJheS5cblx0ICAgICAqL1xuXHQgICAgdmFyIFdvcmRBcnJheSA9IENfbGliLldvcmRBcnJheSA9IEJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBJbml0aWFsaXplcyBhIG5ld2x5IGNyZWF0ZWQgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IHdvcmRzIChPcHRpb25hbCkgQW4gYXJyYXkgb2YgMzItYml0IHdvcmRzLlxuXHQgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzaWdCeXRlcyAoT3B0aW9uYWwpIFRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgYnl0ZXMgaW4gdGhlIHdvcmRzLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgd29yZEFycmF5ID0gQ3J5cHRvSlMubGliLldvcmRBcnJheS5jcmVhdGUoKTtcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFsweDAwMDEwMjAzLCAweDA0MDUwNjA3XSk7XG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy5saWIuV29yZEFycmF5LmNyZWF0ZShbMHgwMDAxMDIwMywgMHgwNDA1MDYwN10sIDYpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGluaXQ6IGZ1bmN0aW9uICh3b3Jkcywgc2lnQnl0ZXMpIHtcblx0ICAgICAgICAgICAgd29yZHMgPSB0aGlzLndvcmRzID0gd29yZHMgfHwgW107XG5cblx0ICAgICAgICAgICAgaWYgKHNpZ0J5dGVzICE9IHVuZGVmaW5lZCkge1xuXHQgICAgICAgICAgICAgICAgdGhpcy5zaWdCeXRlcyA9IHNpZ0J5dGVzO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgdGhpcy5zaWdCeXRlcyA9IHdvcmRzLmxlbmd0aCAqIDQ7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29udmVydHMgdGhpcyB3b3JkIGFycmF5IHRvIGEgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtFbmNvZGVyfSBlbmNvZGVyIChPcHRpb25hbCkgVGhlIGVuY29kaW5nIHN0cmF0ZWd5IHRvIHVzZS4gRGVmYXVsdDogQ3J5cHRvSlMuZW5jLkhleFxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgc3RyaW5naWZpZWQgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHN0cmluZyA9IHdvcmRBcnJheSArICcnO1xuXHQgICAgICAgICAqICAgICB2YXIgc3RyaW5nID0gd29yZEFycmF5LnRvU3RyaW5nKCk7XG5cdCAgICAgICAgICogICAgIHZhciBzdHJpbmcgPSB3b3JkQXJyYXkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoZW5jb2Rlcikge1xuXHQgICAgICAgICAgICByZXR1cm4gKGVuY29kZXIgfHwgSGV4KS5zdHJpbmdpZnkodGhpcyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbmNhdGVuYXRlcyBhIHdvcmQgYXJyYXkgdG8gdGhpcyB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl9IHdvcmRBcnJheSBUaGUgd29yZCBhcnJheSB0byBhcHBlbmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoaXMgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgd29yZEFycmF5MS5jb25jYXQod29yZEFycmF5Mik7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY29uY2F0OiBmdW5jdGlvbiAod29yZEFycmF5KSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgdGhpc1dvcmRzID0gdGhpcy53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHRoYXRXb3JkcyA9IHdvcmRBcnJheS53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHRoaXNTaWdCeXRlcyA9IHRoaXMuc2lnQnl0ZXM7XG5cdCAgICAgICAgICAgIHZhciB0aGF0U2lnQnl0ZXMgPSB3b3JkQXJyYXkuc2lnQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gQ2xhbXAgZXhjZXNzIGJpdHNcblx0ICAgICAgICAgICAgdGhpcy5jbGFtcCgpO1xuXG5cdCAgICAgICAgICAgIC8vIENvbmNhdFxuXHQgICAgICAgICAgICBpZiAodGhpc1NpZ0J5dGVzICUgNCkge1xuXHQgICAgICAgICAgICAgICAgLy8gQ29weSBvbmUgYnl0ZSBhdCBhIHRpbWVcblx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhhdFNpZ0J5dGVzOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgdGhhdEJ5dGUgPSAodGhhdFdvcmRzW2kgPj4+IDJdID4+PiAoMjQgLSAoaSAlIDQpICogOCkpICYgMHhmZjtcblx0ICAgICAgICAgICAgICAgICAgICB0aGlzV29yZHNbKHRoaXNTaWdCeXRlcyArIGkpID4+PiAyXSB8PSB0aGF0Qnl0ZSA8PCAoMjQgLSAoKHRoaXNTaWdCeXRlcyArIGkpICUgNCkgKiA4KTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIC8vIENvcHkgb25lIHdvcmQgYXQgYSB0aW1lXG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoYXRTaWdCeXRlczsgaiArPSA0KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgdGhpc1dvcmRzWyh0aGlzU2lnQnl0ZXMgKyBqKSA+Pj4gMl0gPSB0aGF0V29yZHNbaiA+Pj4gMl07XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgdGhpcy5zaWdCeXRlcyArPSB0aGF0U2lnQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gQ2hhaW5hYmxlXG5cdCAgICAgICAgICAgIHJldHVybiB0aGlzO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBSZW1vdmVzIGluc2lnbmlmaWNhbnQgYml0cy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgd29yZEFycmF5LmNsYW1wKCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2xhbXA6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IHRoaXMud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBzaWdCeXRlcyA9IHRoaXMuc2lnQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gQ2xhbXBcblx0ICAgICAgICAgICAgd29yZHNbc2lnQnl0ZXMgPj4+IDJdICY9IDB4ZmZmZmZmZmYgPDwgKDMyIC0gKHNpZ0J5dGVzICUgNCkgKiA4KTtcblx0ICAgICAgICAgICAgd29yZHMubGVuZ3RoID0gTWF0aC5jZWlsKHNpZ0J5dGVzIC8gNCk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGNsb25lLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgY2xvbmUgPSB3b3JkQXJyYXkuY2xvbmUoKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBjbG9uZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgY2xvbmUgPSBCYXNlLmNsb25lLmNhbGwodGhpcyk7XG5cdCAgICAgICAgICAgIGNsb25lLndvcmRzID0gdGhpcy53b3Jkcy5zbGljZSgwKTtcblxuXHQgICAgICAgICAgICByZXR1cm4gY2xvbmU7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENyZWF0ZXMgYSB3b3JkIGFycmF5IGZpbGxlZCB3aXRoIHJhbmRvbSBieXRlcy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuQnl0ZXMgVGhlIG51bWJlciBvZiByYW5kb20gYnl0ZXMgdG8gZ2VuZXJhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSByYW5kb20gd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLmxpYi5Xb3JkQXJyYXkucmFuZG9tKDE2KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICByYW5kb206IGZ1bmN0aW9uIChuQnl0ZXMpIHtcblx0ICAgICAgICAgICAgdmFyIHdvcmRzID0gW107XG5cblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuQnl0ZXM7IGkgKz0gNCkge1xuXHQgICAgICAgICAgICAgICAgd29yZHMucHVzaChjcnlwdG9TZWN1cmVSYW5kb21JbnQoKSk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gbmV3IFdvcmRBcnJheS5pbml0KHdvcmRzLCBuQnl0ZXMpO1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIEVuY29kZXIgbmFtZXNwYWNlLlxuXHQgICAgICovXG5cdCAgICB2YXIgQ19lbmMgPSBDLmVuYyA9IHt9O1xuXG5cdCAgICAvKipcblx0ICAgICAqIEhleCBlbmNvZGluZyBzdHJhdGVneS5cblx0ICAgICAqL1xuXHQgICAgdmFyIEhleCA9IENfZW5jLkhleCA9IHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIHdvcmQgYXJyYXkgdG8gYSBoZXggc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl9IHdvcmRBcnJheSBUaGUgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGhleCBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBoZXhTdHJpbmcgPSBDcnlwdG9KUy5lbmMuSGV4LnN0cmluZ2lmeSh3b3JkQXJyYXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHN0cmluZ2lmeTogZnVuY3Rpb24gKHdvcmRBcnJheSkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIHdvcmRzID0gd29yZEFycmF5LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgc2lnQnl0ZXMgPSB3b3JkQXJyYXkuc2lnQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydFxuXHQgICAgICAgICAgICB2YXIgaGV4Q2hhcnMgPSBbXTtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaWdCeXRlczsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgYml0ZSA9ICh3b3Jkc1tpID4+PiAyXSA+Pj4gKDI0IC0gKGkgJSA0KSAqIDgpKSAmIDB4ZmY7XG5cdCAgICAgICAgICAgICAgICBoZXhDaGFycy5wdXNoKChiaXRlID4+PiA0KS50b1N0cmluZygxNikpO1xuXHQgICAgICAgICAgICAgICAgaGV4Q2hhcnMucHVzaCgoYml0ZSAmIDB4MGYpLnRvU3RyaW5nKDE2KSk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gaGV4Q2hhcnMuam9pbignJyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIGEgaGV4IHN0cmluZyB0byBhIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gaGV4U3RyIFRoZSBoZXggc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLmVuYy5IZXgucGFyc2UoaGV4U3RyaW5nKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBwYXJzZTogZnVuY3Rpb24gKGhleFN0cikge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgaGV4U3RyTGVuZ3RoID0gaGV4U3RyLmxlbmd0aDtcblxuXHQgICAgICAgICAgICAvLyBDb252ZXJ0XG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhleFN0ckxlbmd0aDsgaSArPSAyKSB7XG5cdCAgICAgICAgICAgICAgICB3b3Jkc1tpID4+PiAzXSB8PSBwYXJzZUludChoZXhTdHIuc3Vic3RyKGksIDIpLCAxNikgPDwgKDI0IC0gKGkgJSA4KSAqIDQpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkuaW5pdCh3b3JkcywgaGV4U3RyTGVuZ3RoIC8gMik7XG5cdCAgICAgICAgfVxuXHQgICAgfTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBMYXRpbjEgZW5jb2Rpbmcgc3RyYXRlZ3kuXG5cdCAgICAgKi9cblx0ICAgIHZhciBMYXRpbjEgPSBDX2VuYy5MYXRpbjEgPSB7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29udmVydHMgYSB3b3JkIGFycmF5IHRvIGEgTGF0aW4xIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fSB3b3JkQXJyYXkgVGhlIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBMYXRpbjEgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgbGF0aW4xU3RyaW5nID0gQ3J5cHRvSlMuZW5jLkxhdGluMS5zdHJpbmdpZnkod29yZEFycmF5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uICh3b3JkQXJyYXkpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IHdvcmRBcnJheS53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHNpZ0J5dGVzID0gd29yZEFycmF5LnNpZ0J5dGVzO1xuXG5cdCAgICAgICAgICAgIC8vIENvbnZlcnRcblx0ICAgICAgICAgICAgdmFyIGxhdGluMUNoYXJzID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2lnQnl0ZXM7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgdmFyIGJpdGUgPSAod29yZHNbaSA+Pj4gMl0gPj4+ICgyNCAtIChpICUgNCkgKiA4KSkgJiAweGZmO1xuXHQgICAgICAgICAgICAgICAgbGF0aW4xQ2hhcnMucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGJpdGUpKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHJldHVybiBsYXRpbjFDaGFycy5qb2luKCcnKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29udmVydHMgYSBMYXRpbjEgc3RyaW5nIHRvIGEgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsYXRpbjFTdHIgVGhlIExhdGluMSBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgd29yZEFycmF5ID0gQ3J5cHRvSlMuZW5jLkxhdGluMS5wYXJzZShsYXRpbjFTdHJpbmcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHBhcnNlOiBmdW5jdGlvbiAobGF0aW4xU3RyKSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgIHZhciBsYXRpbjFTdHJMZW5ndGggPSBsYXRpbjFTdHIubGVuZ3RoO1xuXG5cdCAgICAgICAgICAgIC8vIENvbnZlcnRcblx0ICAgICAgICAgICAgdmFyIHdvcmRzID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGF0aW4xU3RyTGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIHdvcmRzW2kgPj4+IDJdIHw9IChsYXRpbjFTdHIuY2hhckNvZGVBdChpKSAmIDB4ZmYpIDw8ICgyNCAtIChpICUgNCkgKiA4KTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHJldHVybiBuZXcgV29yZEFycmF5LmluaXQod29yZHMsIGxhdGluMVN0ckxlbmd0aCk7XG5cdCAgICAgICAgfVxuXHQgICAgfTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBVVEYtOCBlbmNvZGluZyBzdHJhdGVneS5cblx0ICAgICAqL1xuXHQgICAgdmFyIFV0ZjggPSBDX2VuYy5VdGY4ID0ge1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIGEgd29yZCBhcnJheSB0byBhIFVURi04IHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fSB3b3JkQXJyYXkgVGhlIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVVEYtOCBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB1dGY4U3RyaW5nID0gQ3J5cHRvSlMuZW5jLlV0Zjguc3RyaW5naWZ5KHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAod29yZEFycmF5KSB7XG5cdCAgICAgICAgICAgIHRyeSB7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShMYXRpbjEuc3RyaW5naWZ5KHdvcmRBcnJheSkpKTtcblx0ICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYWxmb3JtZWQgVVRGLTggZGF0YScpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIGEgVVRGLTggc3RyaW5nIHRvIGEgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1dGY4U3RyIFRoZSBVVEYtOCBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgd29yZEFycmF5ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UodXRmOFN0cmluZyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh1dGY4U3RyKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBMYXRpbjEucGFyc2UodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHV0ZjhTdHIpKSk7XG5cdCAgICAgICAgfVxuXHQgICAgfTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBYnN0cmFjdCBidWZmZXJlZCBibG9jayBhbGdvcml0aG0gdGVtcGxhdGUuXG5cdCAgICAgKlxuXHQgICAgICogVGhlIHByb3BlcnR5IGJsb2NrU2l6ZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGEgY29uY3JldGUgc3VidHlwZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcHJvcGVydHkge251bWJlcn0gX21pbkJ1ZmZlclNpemUgVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCBzaG91bGQgYmUga2VwdCB1bnByb2Nlc3NlZCBpbiB0aGUgYnVmZmVyLiBEZWZhdWx0OiAwXG5cdCAgICAgKi9cblx0ICAgIHZhciBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtID0gQ19saWIuQnVmZmVyZWRCbG9ja0FsZ29yaXRobSA9IEJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBSZXNldHMgdGhpcyBibG9jayBhbGdvcml0aG0ncyBkYXRhIGJ1ZmZlciB0byBpdHMgaW5pdGlhbCBzdGF0ZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgYnVmZmVyZWRCbG9ja0FsZ29yaXRobS5yZXNldCgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHJlc2V0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIEluaXRpYWwgdmFsdWVzXG5cdCAgICAgICAgICAgIHRoaXMuX2RhdGEgPSBuZXcgV29yZEFycmF5LmluaXQoKTtcblx0ICAgICAgICAgICAgdGhpcy5fbkRhdGFCeXRlcyA9IDA7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEFkZHMgbmV3IGRhdGEgdG8gdGhpcyBibG9jayBhbGdvcml0aG0ncyBidWZmZXIuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IGRhdGEgVGhlIGRhdGEgdG8gYXBwZW5kLiBTdHJpbmdzIGFyZSBjb252ZXJ0ZWQgdG8gYSBXb3JkQXJyYXkgdXNpbmcgVVRGLTguXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIGJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0uX2FwcGVuZCgnZGF0YScpO1xuXHQgICAgICAgICAqICAgICBidWZmZXJlZEJsb2NrQWxnb3JpdGhtLl9hcHBlbmQod29yZEFycmF5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBfYXBwZW5kOiBmdW5jdGlvbiAoZGF0YSkge1xuXHQgICAgICAgICAgICAvLyBDb252ZXJ0IHN0cmluZyB0byBXb3JkQXJyYXksIGVsc2UgYXNzdW1lIFdvcmRBcnJheSBhbHJlYWR5XG5cdCAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PSAnc3RyaW5nJykge1xuXHQgICAgICAgICAgICAgICAgZGF0YSA9IFV0ZjgucGFyc2UoZGF0YSk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBBcHBlbmRcblx0ICAgICAgICAgICAgdGhpcy5fZGF0YS5jb25jYXQoZGF0YSk7XG5cdCAgICAgICAgICAgIHRoaXMuX25EYXRhQnl0ZXMgKz0gZGF0YS5zaWdCeXRlcztcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogUHJvY2Vzc2VzIGF2YWlsYWJsZSBkYXRhIGJsb2Nrcy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIFRoaXMgbWV0aG9kIGludm9rZXMgX2RvUHJvY2Vzc0Jsb2NrKG9mZnNldCksIHdoaWNoIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYSBjb25jcmV0ZSBzdWJ0eXBlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtib29sZWFufSBkb0ZsdXNoIFdoZXRoZXIgYWxsIGJsb2NrcyBhbmQgcGFydGlhbCBibG9ja3Mgc2hvdWxkIGJlIHByb2Nlc3NlZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIHByb2Nlc3NlZCBkYXRhLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgcHJvY2Vzc2VkRGF0YSA9IGJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0uX3Byb2Nlc3MoKTtcblx0ICAgICAgICAgKiAgICAgdmFyIHByb2Nlc3NlZERhdGEgPSBidWZmZXJlZEJsb2NrQWxnb3JpdGhtLl9wcm9jZXNzKCEhJ2ZsdXNoJyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgX3Byb2Nlc3M6IGZ1bmN0aW9uIChkb0ZsdXNoKSB7XG5cdCAgICAgICAgICAgIHZhciBwcm9jZXNzZWRXb3JkcztcblxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuXHQgICAgICAgICAgICB2YXIgZGF0YVdvcmRzID0gZGF0YS53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIGRhdGFTaWdCeXRlcyA9IGRhdGEuc2lnQnl0ZXM7XG5cdCAgICAgICAgICAgIHZhciBibG9ja1NpemUgPSB0aGlzLmJsb2NrU2l6ZTtcblx0ICAgICAgICAgICAgdmFyIGJsb2NrU2l6ZUJ5dGVzID0gYmxvY2tTaXplICogNDtcblxuXHQgICAgICAgICAgICAvLyBDb3VudCBibG9ja3MgcmVhZHlcblx0ICAgICAgICAgICAgdmFyIG5CbG9ja3NSZWFkeSA9IGRhdGFTaWdCeXRlcyAvIGJsb2NrU2l6ZUJ5dGVzO1xuXHQgICAgICAgICAgICBpZiAoZG9GbHVzaCkge1xuXHQgICAgICAgICAgICAgICAgLy8gUm91bmQgdXAgdG8gaW5jbHVkZSBwYXJ0aWFsIGJsb2Nrc1xuXHQgICAgICAgICAgICAgICAgbkJsb2Nrc1JlYWR5ID0gTWF0aC5jZWlsKG5CbG9ja3NSZWFkeSk7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAvLyBSb3VuZCBkb3duIHRvIGluY2x1ZGUgb25seSBmdWxsIGJsb2Nrcyxcblx0ICAgICAgICAgICAgICAgIC8vIGxlc3MgdGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCBtdXN0IHJlbWFpbiBpbiB0aGUgYnVmZmVyXG5cdCAgICAgICAgICAgICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLm1heCgobkJsb2Nrc1JlYWR5IHwgMCkgLSB0aGlzLl9taW5CdWZmZXJTaXplLCAwKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIENvdW50IHdvcmRzIHJlYWR5XG5cdCAgICAgICAgICAgIHZhciBuV29yZHNSZWFkeSA9IG5CbG9ja3NSZWFkeSAqIGJsb2NrU2l6ZTtcblxuXHQgICAgICAgICAgICAvLyBDb3VudCBieXRlcyByZWFkeVxuXHQgICAgICAgICAgICB2YXIgbkJ5dGVzUmVhZHkgPSBNYXRoLm1pbihuV29yZHNSZWFkeSAqIDQsIGRhdGFTaWdCeXRlcyk7XG5cblx0ICAgICAgICAgICAgLy8gUHJvY2VzcyBibG9ja3Ncblx0ICAgICAgICAgICAgaWYgKG5Xb3Jkc1JlYWR5KSB7XG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBvZmZzZXQgPSAwOyBvZmZzZXQgPCBuV29yZHNSZWFkeTsgb2Zmc2V0ICs9IGJsb2NrU2l6ZSkge1xuXHQgICAgICAgICAgICAgICAgICAgIC8vIFBlcmZvcm0gY29uY3JldGUtYWxnb3JpdGhtIGxvZ2ljXG5cdCAgICAgICAgICAgICAgICAgICAgdGhpcy5fZG9Qcm9jZXNzQmxvY2soZGF0YVdvcmRzLCBvZmZzZXQpO1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICAvLyBSZW1vdmUgcHJvY2Vzc2VkIHdvcmRzXG5cdCAgICAgICAgICAgICAgICBwcm9jZXNzZWRXb3JkcyA9IGRhdGFXb3Jkcy5zcGxpY2UoMCwgbldvcmRzUmVhZHkpO1xuXHQgICAgICAgICAgICAgICAgZGF0YS5zaWdCeXRlcyAtPSBuQnl0ZXNSZWFkeTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIFJldHVybiBwcm9jZXNzZWQgd29yZHNcblx0ICAgICAgICAgICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkuaW5pdChwcm9jZXNzZWRXb3JkcywgbkJ5dGVzUmVhZHkpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIG9iamVjdC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gVGhlIGNsb25lLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgY2xvbmUgPSBidWZmZXJlZEJsb2NrQWxnb3JpdGhtLmNsb25lKCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2xvbmU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdmFyIGNsb25lID0gQmFzZS5jbG9uZS5jYWxsKHRoaXMpO1xuXHQgICAgICAgICAgICBjbG9uZS5fZGF0YSA9IHRoaXMuX2RhdGEuY2xvbmUoKTtcblxuXHQgICAgICAgICAgICByZXR1cm4gY2xvbmU7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9taW5CdWZmZXJTaXplOiAwXG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBYnN0cmFjdCBoYXNoZXIgdGVtcGxhdGUuXG5cdCAgICAgKlxuXHQgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IGJsb2NrU2l6ZSBUaGUgbnVtYmVyIG9mIDMyLWJpdCB3b3JkcyB0aGlzIGhhc2hlciBvcGVyYXRlcyBvbi4gRGVmYXVsdDogMTYgKDUxMiBiaXRzKVxuXHQgICAgICovXG5cdCAgICB2YXIgSGFzaGVyID0gQ19saWIuSGFzaGVyID0gQnVmZmVyZWRCbG9ja0FsZ29yaXRobS5leHRlbmQoe1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblx0ICAgICAgICAgKi9cblx0ICAgICAgICBjZmc6IEJhc2UuZXh0ZW5kKCksXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBJbml0aWFsaXplcyBhIG5ld2x5IGNyZWF0ZWQgaGFzaGVyLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IGNmZyAoT3B0aW9uYWwpIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gdXNlIGZvciB0aGlzIGhhc2ggY29tcHV0YXRpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBoYXNoZXIgPSBDcnlwdG9KUy5hbGdvLlNIQTI1Ni5jcmVhdGUoKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBpbml0OiBmdW5jdGlvbiAoY2ZnKSB7XG5cdCAgICAgICAgICAgIC8vIEFwcGx5IGNvbmZpZyBkZWZhdWx0c1xuXHQgICAgICAgICAgICB0aGlzLmNmZyA9IHRoaXMuY2ZnLmV4dGVuZChjZmcpO1xuXG5cdCAgICAgICAgICAgIC8vIFNldCBpbml0aWFsIHZhbHVlc1xuXHQgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIFJlc2V0cyB0aGlzIGhhc2hlciB0byBpdHMgaW5pdGlhbCBzdGF0ZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgaGFzaGVyLnJlc2V0KCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgcmVzZXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgLy8gUmVzZXQgZGF0YSBidWZmZXJcblx0ICAgICAgICAgICAgQnVmZmVyZWRCbG9ja0FsZ29yaXRobS5yZXNldC5jYWxsKHRoaXMpO1xuXG5cdCAgICAgICAgICAgIC8vIFBlcmZvcm0gY29uY3JldGUtaGFzaGVyIGxvZ2ljXG5cdCAgICAgICAgICAgIHRoaXMuX2RvUmVzZXQoKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogVXBkYXRlcyB0aGlzIGhhc2hlciB3aXRoIGEgbWVzc2FnZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZVVwZGF0ZSBUaGUgbWVzc2FnZSB0byBhcHBlbmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtIYXNoZXJ9IFRoaXMgaGFzaGVyLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICBoYXNoZXIudXBkYXRlKCdtZXNzYWdlJyk7XG5cdCAgICAgICAgICogICAgIGhhc2hlci51cGRhdGUod29yZEFycmF5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uIChtZXNzYWdlVXBkYXRlKSB7XG5cdCAgICAgICAgICAgIC8vIEFwcGVuZFxuXHQgICAgICAgICAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG5cblx0ICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBoYXNoXG5cdCAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3MoKTtcblxuXHQgICAgICAgICAgICAvLyBDaGFpbmFibGVcblx0ICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEZpbmFsaXplcyB0aGUgaGFzaCBjb21wdXRhdGlvbi5cblx0ICAgICAgICAgKiBOb3RlIHRoYXQgdGhlIGZpbmFsaXplIG9wZXJhdGlvbiBpcyBlZmZlY3RpdmVseSBhIGRlc3RydWN0aXZlLCByZWFkLW9uY2Ugb3BlcmF0aW9uLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlVXBkYXRlIChPcHRpb25hbCkgQSBmaW5hbCBtZXNzYWdlIHVwZGF0ZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGhhc2guXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBoYXNoID0gaGFzaGVyLmZpbmFsaXplKCk7XG5cdCAgICAgICAgICogICAgIHZhciBoYXNoID0gaGFzaGVyLmZpbmFsaXplKCdtZXNzYWdlJyk7XG5cdCAgICAgICAgICogICAgIHZhciBoYXNoID0gaGFzaGVyLmZpbmFsaXplKHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgZmluYWxpemU6IGZ1bmN0aW9uIChtZXNzYWdlVXBkYXRlKSB7XG5cdCAgICAgICAgICAgIC8vIEZpbmFsIG1lc3NhZ2UgdXBkYXRlXG5cdCAgICAgICAgICAgIGlmIChtZXNzYWdlVXBkYXRlKSB7XG5cdCAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBQZXJmb3JtIGNvbmNyZXRlLWhhc2hlciBsb2dpY1xuXHQgICAgICAgICAgICB2YXIgaGFzaCA9IHRoaXMuX2RvRmluYWxpemUoKTtcblxuXHQgICAgICAgICAgICByZXR1cm4gaGFzaDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgYmxvY2tTaXplOiA1MTIvMzIsXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDcmVhdGVzIGEgc2hvcnRjdXQgZnVuY3Rpb24gdG8gYSBoYXNoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtIYXNoZXJ9IGhhc2hlciBUaGUgaGFzaGVyIHRvIGNyZWF0ZSBhIGhlbHBlciBmb3IuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtGdW5jdGlvbn0gVGhlIHNob3J0Y3V0IGZ1bmN0aW9uLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgU0hBMjU2ID0gQ3J5cHRvSlMubGliLkhhc2hlci5fY3JlYXRlSGVscGVyKENyeXB0b0pTLmFsZ28uU0hBMjU2KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBfY3JlYXRlSGVscGVyOiBmdW5jdGlvbiAoaGFzaGVyKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAobWVzc2FnZSwgY2ZnKSB7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGhhc2hlci5pbml0KGNmZykuZmluYWxpemUobWVzc2FnZSk7XG5cdCAgICAgICAgICAgIH07XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENyZWF0ZXMgYSBzaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgSE1BQydzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge0hhc2hlcn0gaGFzaGVyIFRoZSBoYXNoZXIgdG8gdXNlIGluIHRoaXMgSE1BQyBoZWxwZXIuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtGdW5jdGlvbn0gVGhlIHNob3J0Y3V0IGZ1bmN0aW9uLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgSG1hY1NIQTI1NiA9IENyeXB0b0pTLmxpYi5IYXNoZXIuX2NyZWF0ZUhtYWNIZWxwZXIoQ3J5cHRvSlMuYWxnby5TSEEyNTYpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIF9jcmVhdGVIbWFjSGVscGVyOiBmdW5jdGlvbiAoaGFzaGVyKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAobWVzc2FnZSwga2V5KSB7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENfYWxnby5ITUFDLmluaXQoaGFzaGVyLCBrZXkpLmZpbmFsaXplKG1lc3NhZ2UpO1xuXHQgICAgICAgICAgICB9O1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIEFsZ29yaXRobSBuYW1lc3BhY2UuXG5cdCAgICAgKi9cblx0ICAgIHZhciBDX2FsZ28gPSBDLmFsZ28gPSB7fTtcblxuXHQgICAgcmV0dXJuIEM7XG5cdH0oTWF0aCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTO1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQoZnVuY3Rpb24gKCkge1xuXHQgICAgLy8gU2hvcnRjdXRzXG5cdCAgICB2YXIgQyA9IENyeXB0b0pTO1xuXHQgICAgdmFyIENfbGliID0gQy5saWI7XG5cdCAgICB2YXIgV29yZEFycmF5ID0gQ19saWIuV29yZEFycmF5O1xuXHQgICAgdmFyIENfZW5jID0gQy5lbmM7XG5cblx0ICAgIC8qKlxuXHQgICAgICogQmFzZTY0IGVuY29kaW5nIHN0cmF0ZWd5LlxuXHQgICAgICovXG5cdCAgICB2YXIgQmFzZTY0ID0gQ19lbmMuQmFzZTY0ID0ge1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIGEgd29yZCBhcnJheSB0byBhIEJhc2U2NCBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheX0gd29yZEFycmF5IFRoZSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgQmFzZTY0IHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGJhc2U2NFN0cmluZyA9IENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAod29yZEFycmF5KSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgd29yZHMgPSB3b3JkQXJyYXkud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBzaWdCeXRlcyA9IHdvcmRBcnJheS5zaWdCeXRlcztcblx0ICAgICAgICAgICAgdmFyIG1hcCA9IHRoaXMuX21hcDtcblxuXHQgICAgICAgICAgICAvLyBDbGFtcCBleGNlc3MgYml0c1xuXHQgICAgICAgICAgICB3b3JkQXJyYXkuY2xhbXAoKTtcblxuXHQgICAgICAgICAgICAvLyBDb252ZXJ0XG5cdCAgICAgICAgICAgIHZhciBiYXNlNjRDaGFycyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpZ0J5dGVzOyBpICs9IDMpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBieXRlMSA9ICh3b3Jkc1tpID4+PiAyXSAgICAgICA+Pj4gKDI0IC0gKGkgJSA0KSAqIDgpKSAgICAgICAmIDB4ZmY7XG5cdCAgICAgICAgICAgICAgICB2YXIgYnl0ZTIgPSAod29yZHNbKGkgKyAxKSA+Pj4gMl0gPj4+ICgyNCAtICgoaSArIDEpICUgNCkgKiA4KSkgJiAweGZmO1xuXHQgICAgICAgICAgICAgICAgdmFyIGJ5dGUzID0gKHdvcmRzWyhpICsgMikgPj4+IDJdID4+PiAoMjQgLSAoKGkgKyAyKSAlIDQpICogOCkpICYgMHhmZjtcblxuXHQgICAgICAgICAgICAgICAgdmFyIHRyaXBsZXQgPSAoYnl0ZTEgPDwgMTYpIHwgKGJ5dGUyIDw8IDgpIHwgYnl0ZTM7XG5cblx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyAoaiA8IDQpICYmIChpICsgaiAqIDAuNzUgPCBzaWdCeXRlcyk7IGorKykge1xuXHQgICAgICAgICAgICAgICAgICAgIGJhc2U2NENoYXJzLnB1c2gobWFwLmNoYXJBdCgodHJpcGxldCA+Pj4gKDYgKiAoMyAtIGopKSkgJiAweDNmKSk7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBBZGQgcGFkZGluZ1xuXHQgICAgICAgICAgICB2YXIgcGFkZGluZ0NoYXIgPSBtYXAuY2hhckF0KDY0KTtcblx0ICAgICAgICAgICAgaWYgKHBhZGRpbmdDaGFyKSB7XG5cdCAgICAgICAgICAgICAgICB3aGlsZSAoYmFzZTY0Q2hhcnMubGVuZ3RoICUgNCkge1xuXHQgICAgICAgICAgICAgICAgICAgIGJhc2U2NENoYXJzLnB1c2gocGFkZGluZ0NoYXIpO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGJhc2U2NENoYXJzLmpvaW4oJycpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIEJhc2U2NCBzdHJpbmcgdG8gYSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGJhc2U2NFN0ciBUaGUgQmFzZTY0IHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB3b3JkQXJyYXkgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKGJhc2U2NFN0cmluZyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgcGFyc2U6IGZ1bmN0aW9uIChiYXNlNjRTdHIpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBiYXNlNjRTdHJMZW5ndGggPSBiYXNlNjRTdHIubGVuZ3RoO1xuXHQgICAgICAgICAgICB2YXIgbWFwID0gdGhpcy5fbWFwO1xuXHQgICAgICAgICAgICB2YXIgcmV2ZXJzZU1hcCA9IHRoaXMuX3JldmVyc2VNYXA7XG5cblx0ICAgICAgICAgICAgaWYgKCFyZXZlcnNlTWFwKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgcmV2ZXJzZU1hcCA9IHRoaXMuX3JldmVyc2VNYXAgPSBbXTtcblx0ICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG1hcC5sZW5ndGg7IGorKykge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICByZXZlcnNlTWFwW21hcC5jaGFyQ29kZUF0KGopXSA9IGo7XG5cdCAgICAgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gSWdub3JlIHBhZGRpbmdcblx0ICAgICAgICAgICAgdmFyIHBhZGRpbmdDaGFyID0gbWFwLmNoYXJBdCg2NCk7XG5cdCAgICAgICAgICAgIGlmIChwYWRkaW5nQ2hhcikge1xuXHQgICAgICAgICAgICAgICAgdmFyIHBhZGRpbmdJbmRleCA9IGJhc2U2NFN0ci5pbmRleE9mKHBhZGRpbmdDaGFyKTtcblx0ICAgICAgICAgICAgICAgIGlmIChwYWRkaW5nSW5kZXggIT09IC0xKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgYmFzZTY0U3RyTGVuZ3RoID0gcGFkZGluZ0luZGV4O1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydFxuXHQgICAgICAgICAgICByZXR1cm4gcGFyc2VMb29wKGJhc2U2NFN0ciwgYmFzZTY0U3RyTGVuZ3RoLCByZXZlcnNlTWFwKTtcblxuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfbWFwOiAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0nXG5cdCAgICB9O1xuXG5cdCAgICBmdW5jdGlvbiBwYXJzZUxvb3AoYmFzZTY0U3RyLCBiYXNlNjRTdHJMZW5ndGgsIHJldmVyc2VNYXApIHtcblx0ICAgICAgdmFyIHdvcmRzID0gW107XG5cdCAgICAgIHZhciBuQnl0ZXMgPSAwO1xuXHQgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJhc2U2NFN0ckxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICBpZiAoaSAlIDQpIHtcblx0ICAgICAgICAgICAgICB2YXIgYml0czEgPSByZXZlcnNlTWFwW2Jhc2U2NFN0ci5jaGFyQ29kZUF0KGkgLSAxKV0gPDwgKChpICUgNCkgKiAyKTtcblx0ICAgICAgICAgICAgICB2YXIgYml0czIgPSByZXZlcnNlTWFwW2Jhc2U2NFN0ci5jaGFyQ29kZUF0KGkpXSA+Pj4gKDYgLSAoaSAlIDQpICogMik7XG5cdCAgICAgICAgICAgICAgdmFyIGJpdHNDb21iaW5lZCA9IGJpdHMxIHwgYml0czI7XG5cdCAgICAgICAgICAgICAgd29yZHNbbkJ5dGVzID4+PiAyXSB8PSBiaXRzQ29tYmluZWQgPDwgKDI0IC0gKG5CeXRlcyAlIDQpICogOCk7XG5cdCAgICAgICAgICAgICAgbkJ5dGVzKys7XG5cdCAgICAgICAgICB9XG5cdCAgICAgIH1cblx0ICAgICAgcmV0dXJuIFdvcmRBcnJheS5jcmVhdGUod29yZHMsIG5CeXRlcyk7XG5cdCAgICB9XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMuZW5jLkJhc2U2NDtcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0KGZ1bmN0aW9uICgpIHtcblx0ICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgdmFyIEMgPSBDcnlwdG9KUztcblx0ICAgIHZhciBDX2xpYiA9IEMubGliO1xuXHQgICAgdmFyIFdvcmRBcnJheSA9IENfbGliLldvcmRBcnJheTtcblx0ICAgIHZhciBDX2VuYyA9IEMuZW5jO1xuXG5cdCAgICAvKipcblx0ICAgICAqIEJhc2U2NHVybCBlbmNvZGluZyBzdHJhdGVneS5cblx0ICAgICAqL1xuXHQgICAgdmFyIEJhc2U2NHVybCA9IENfZW5jLkJhc2U2NHVybCA9IHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIHdvcmQgYXJyYXkgdG8gYSBCYXNlNjR1cmwgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl9IHdvcmRBcnJheSBUaGUgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdXJsU2FmZSBXaGV0aGVyIHRvIHVzZSB1cmwgc2FmZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgQmFzZTY0dXJsIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGJhc2U2NFN0cmluZyA9IENyeXB0b0pTLmVuYy5CYXNlNjR1cmwuc3RyaW5naWZ5KHdvcmRBcnJheSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAod29yZEFycmF5LCB1cmxTYWZlPXRydWUpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IHdvcmRBcnJheS53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHNpZ0J5dGVzID0gd29yZEFycmF5LnNpZ0J5dGVzO1xuXHQgICAgICAgICAgICB2YXIgbWFwID0gdXJsU2FmZSA/IHRoaXMuX3NhZmVfbWFwIDogdGhpcy5fbWFwO1xuXG5cdCAgICAgICAgICAgIC8vIENsYW1wIGV4Y2VzcyBiaXRzXG5cdCAgICAgICAgICAgIHdvcmRBcnJheS5jbGFtcCgpO1xuXG5cdCAgICAgICAgICAgIC8vIENvbnZlcnRcblx0ICAgICAgICAgICAgdmFyIGJhc2U2NENoYXJzID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2lnQnl0ZXM7IGkgKz0gMykge1xuXHQgICAgICAgICAgICAgICAgdmFyIGJ5dGUxID0gKHdvcmRzW2kgPj4+IDJdICAgICAgID4+PiAoMjQgLSAoaSAlIDQpICogOCkpICAgICAgICYgMHhmZjtcblx0ICAgICAgICAgICAgICAgIHZhciBieXRlMiA9ICh3b3Jkc1soaSArIDEpID4+PiAyXSA+Pj4gKDI0IC0gKChpICsgMSkgJSA0KSAqIDgpKSAmIDB4ZmY7XG5cdCAgICAgICAgICAgICAgICB2YXIgYnl0ZTMgPSAod29yZHNbKGkgKyAyKSA+Pj4gMl0gPj4+ICgyNCAtICgoaSArIDIpICUgNCkgKiA4KSkgJiAweGZmO1xuXG5cdCAgICAgICAgICAgICAgICB2YXIgdHJpcGxldCA9IChieXRlMSA8PCAxNikgfCAoYnl0ZTIgPDwgOCkgfCBieXRlMztcblxuXHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IChqIDwgNCkgJiYgKGkgKyBqICogMC43NSA8IHNpZ0J5dGVzKTsgaisrKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgYmFzZTY0Q2hhcnMucHVzaChtYXAuY2hhckF0KCh0cmlwbGV0ID4+PiAoNiAqICgzIC0gaikpKSAmIDB4M2YpKTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nXG5cdCAgICAgICAgICAgIHZhciBwYWRkaW5nQ2hhciA9IG1hcC5jaGFyQXQoNjQpO1xuXHQgICAgICAgICAgICBpZiAocGFkZGluZ0NoYXIpIHtcblx0ICAgICAgICAgICAgICAgIHdoaWxlIChiYXNlNjRDaGFycy5sZW5ndGggJSA0KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgYmFzZTY0Q2hhcnMucHVzaChwYWRkaW5nQ2hhcik7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gYmFzZTY0Q2hhcnMuam9pbignJyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIGEgQmFzZTY0dXJsIHN0cmluZyB0byBhIHdvcmQgYXJyYXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZTY0U3RyIFRoZSBCYXNlNjR1cmwgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtib29sZWFufSB1cmxTYWZlIFdoZXRoZXIgdG8gdXNlIHVybCBzYWZlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHN0YXRpY1xuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgd29yZEFycmF5ID0gQ3J5cHRvSlMuZW5jLkJhc2U2NHVybC5wYXJzZShiYXNlNjRTdHJpbmcpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHBhcnNlOiBmdW5jdGlvbiAoYmFzZTY0U3RyLCB1cmxTYWZlPXRydWUpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBiYXNlNjRTdHJMZW5ndGggPSBiYXNlNjRTdHIubGVuZ3RoO1xuXHQgICAgICAgICAgICB2YXIgbWFwID0gdXJsU2FmZSA/IHRoaXMuX3NhZmVfbWFwIDogdGhpcy5fbWFwO1xuXHQgICAgICAgICAgICB2YXIgcmV2ZXJzZU1hcCA9IHRoaXMuX3JldmVyc2VNYXA7XG5cblx0ICAgICAgICAgICAgaWYgKCFyZXZlcnNlTWFwKSB7XG5cdCAgICAgICAgICAgICAgICByZXZlcnNlTWFwID0gdGhpcy5fcmV2ZXJzZU1hcCA9IFtdO1xuXHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBtYXAubGVuZ3RoOyBqKyspIHtcblx0ICAgICAgICAgICAgICAgICAgICByZXZlcnNlTWFwW21hcC5jaGFyQ29kZUF0KGopXSA9IGo7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBJZ25vcmUgcGFkZGluZ1xuXHQgICAgICAgICAgICB2YXIgcGFkZGluZ0NoYXIgPSBtYXAuY2hhckF0KDY0KTtcblx0ICAgICAgICAgICAgaWYgKHBhZGRpbmdDaGFyKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgcGFkZGluZ0luZGV4ID0gYmFzZTY0U3RyLmluZGV4T2YocGFkZGluZ0NoYXIpO1xuXHQgICAgICAgICAgICAgICAgaWYgKHBhZGRpbmdJbmRleCAhPT0gLTEpIHtcblx0ICAgICAgICAgICAgICAgICAgICBiYXNlNjRTdHJMZW5ndGggPSBwYWRkaW5nSW5kZXg7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBDb252ZXJ0XG5cdCAgICAgICAgICAgIHJldHVybiBwYXJzZUxvb3AoYmFzZTY0U3RyLCBiYXNlNjRTdHJMZW5ndGgsIHJldmVyc2VNYXApO1xuXG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9tYXA6ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPScsXG5cdCAgICAgICAgX3NhZmVfbWFwOiAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXycsXG5cdCAgICB9O1xuXG5cdCAgICBmdW5jdGlvbiBwYXJzZUxvb3AoYmFzZTY0U3RyLCBiYXNlNjRTdHJMZW5ndGgsIHJldmVyc2VNYXApIHtcblx0ICAgICAgICB2YXIgd29yZHMgPSBbXTtcblx0ICAgICAgICB2YXIgbkJ5dGVzID0gMDtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJhc2U2NFN0ckxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgIGlmIChpICUgNCkge1xuXHQgICAgICAgICAgICAgICAgdmFyIGJpdHMxID0gcmV2ZXJzZU1hcFtiYXNlNjRTdHIuY2hhckNvZGVBdChpIC0gMSldIDw8ICgoaSAlIDQpICogMik7XG5cdCAgICAgICAgICAgICAgICB2YXIgYml0czIgPSByZXZlcnNlTWFwW2Jhc2U2NFN0ci5jaGFyQ29kZUF0KGkpXSA+Pj4gKDYgLSAoaSAlIDQpICogMik7XG5cdCAgICAgICAgICAgICAgICB2YXIgYml0c0NvbWJpbmVkID0gYml0czEgfCBiaXRzMjtcblx0ICAgICAgICAgICAgICAgIHdvcmRzW25CeXRlcyA+Pj4gMl0gfD0gYml0c0NvbWJpbmVkIDw8ICgyNCAtIChuQnl0ZXMgJSA0KSAqIDgpO1xuXHQgICAgICAgICAgICAgICAgbkJ5dGVzKys7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdCAgICAgICAgcmV0dXJuIFdvcmRBcnJheS5jcmVhdGUod29yZHMsIG5CeXRlcyk7XG5cdCAgICB9XG5cdH0oKSk7XG5cblx0cmV0dXJuIENyeXB0b0pTLmVuYy5CYXNlNjR1cmw7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXk7XG5cdCAgICB2YXIgQ19lbmMgPSBDLmVuYztcblxuXHQgICAgLyoqXG5cdCAgICAgKiBVVEYtMTYgQkUgZW5jb2Rpbmcgc3RyYXRlZ3kuXG5cdCAgICAgKi9cblx0ICAgIHZhciBVdGYxNkJFID0gQ19lbmMuVXRmMTYgPSBDX2VuYy5VdGYxNkJFID0ge1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIGEgd29yZCBhcnJheSB0byBhIFVURi0xNiBCRSBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheX0gd29yZEFycmF5IFRoZSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVRGLTE2IEJFIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHV0ZjE2U3RyaW5nID0gQ3J5cHRvSlMuZW5jLlV0ZjE2LnN0cmluZ2lmeSh3b3JkQXJyYXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHN0cmluZ2lmeTogZnVuY3Rpb24gKHdvcmRBcnJheSkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIHdvcmRzID0gd29yZEFycmF5LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgc2lnQnl0ZXMgPSB3b3JkQXJyYXkuc2lnQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydFxuXHQgICAgICAgICAgICB2YXIgdXRmMTZDaGFycyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpZ0J5dGVzOyBpICs9IDIpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSAod29yZHNbaSA+Pj4gMl0gPj4+ICgxNiAtIChpICUgNCkgKiA4KSkgJiAweGZmZmY7XG5cdCAgICAgICAgICAgICAgICB1dGYxNkNoYXJzLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlUG9pbnQpKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHJldHVybiB1dGYxNkNoYXJzLmpvaW4oJycpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIFVURi0xNiBCRSBzdHJpbmcgdG8gYSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHV0ZjE2U3RyIFRoZSBVVEYtMTYgQkUgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLmVuYy5VdGYxNi5wYXJzZSh1dGYxNlN0cmluZyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh1dGYxNlN0cikge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgdXRmMTZTdHJMZW5ndGggPSB1dGYxNlN0ci5sZW5ndGg7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydFxuXHQgICAgICAgICAgICB2YXIgd29yZHMgPSBbXTtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1dGYxNlN0ckxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB3b3Jkc1tpID4+PiAxXSB8PSB1dGYxNlN0ci5jaGFyQ29kZUF0KGkpIDw8ICgxNiAtIChpICUgMikgKiAxNik7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gV29yZEFycmF5LmNyZWF0ZSh3b3JkcywgdXRmMTZTdHJMZW5ndGggKiAyKTtcblx0ICAgICAgICB9XG5cdCAgICB9O1xuXG5cdCAgICAvKipcblx0ICAgICAqIFVURi0xNiBMRSBlbmNvZGluZyBzdHJhdGVneS5cblx0ICAgICAqL1xuXHQgICAgQ19lbmMuVXRmMTZMRSA9IHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIHdvcmQgYXJyYXkgdG8gYSBVVEYtMTYgTEUgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl9IHdvcmRBcnJheSBUaGUgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVURi0xNiBMRSBzdHJpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB1dGYxNlN0ciA9IENyeXB0b0pTLmVuYy5VdGYxNkxFLnN0cmluZ2lmeSh3b3JkQXJyYXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHN0cmluZ2lmeTogZnVuY3Rpb24gKHdvcmRBcnJheSkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIHdvcmRzID0gd29yZEFycmF5LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgc2lnQnl0ZXMgPSB3b3JkQXJyYXkuc2lnQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydFxuXHQgICAgICAgICAgICB2YXIgdXRmMTZDaGFycyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpZ0J5dGVzOyBpICs9IDIpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSBzd2FwRW5kaWFuKCh3b3Jkc1tpID4+PiAyXSA+Pj4gKDE2IC0gKGkgJSA0KSAqIDgpKSAmIDB4ZmZmZik7XG5cdCAgICAgICAgICAgICAgICB1dGYxNkNoYXJzLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlUG9pbnQpKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHJldHVybiB1dGYxNkNoYXJzLmpvaW4oJycpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIFVURi0xNiBMRSBzdHJpbmcgdG8gYSB3b3JkIGFycmF5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHV0ZjE2U3RyIFRoZSBVVEYtMTYgTEUgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLmVuYy5VdGYxNkxFLnBhcnNlKHV0ZjE2U3RyKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHV0ZjE2U3RyKSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgIHZhciB1dGYxNlN0ckxlbmd0aCA9IHV0ZjE2U3RyLmxlbmd0aDtcblxuXHQgICAgICAgICAgICAvLyBDb252ZXJ0XG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHV0ZjE2U3RyTGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIHdvcmRzW2kgPj4+IDFdIHw9IHN3YXBFbmRpYW4odXRmMTZTdHIuY2hhckNvZGVBdChpKSA8PCAoMTYgLSAoaSAlIDIpICogMTYpKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHJldHVybiBXb3JkQXJyYXkuY3JlYXRlKHdvcmRzLCB1dGYxNlN0ckxlbmd0aCAqIDIpO1xuXHQgICAgICAgIH1cblx0ICAgIH07XG5cblx0ICAgIGZ1bmN0aW9uIHN3YXBFbmRpYW4od29yZCkge1xuXHQgICAgICAgIHJldHVybiAoKHdvcmQgPDwgOCkgJiAweGZmMDBmZjAwKSB8ICgod29yZCA+Pj4gOCkgJiAweDAwZmYwMGZmKTtcblx0ICAgIH1cblx0fSgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5lbmMuVXRmMTY7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5LCB1bmRlZikge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSwgcmVxdWlyZShcIi4vc2hhMVwiKSwgcmVxdWlyZShcIi4vaG1hY1wiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCIsIFwiLi9zaGExXCIsIFwiLi9obWFjXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQoZnVuY3Rpb24gKCkge1xuXHQgICAgLy8gU2hvcnRjdXRzXG5cdCAgICB2YXIgQyA9IENyeXB0b0pTO1xuXHQgICAgdmFyIENfbGliID0gQy5saWI7XG5cdCAgICB2YXIgQmFzZSA9IENfbGliLkJhc2U7XG5cdCAgICB2YXIgV29yZEFycmF5ID0gQ19saWIuV29yZEFycmF5O1xuXHQgICAgdmFyIENfYWxnbyA9IEMuYWxnbztcblx0ICAgIHZhciBNRDUgPSBDX2FsZ28uTUQ1O1xuXG5cdCAgICAvKipcblx0ICAgICAqIFRoaXMga2V5IGRlcml2YXRpb24gZnVuY3Rpb24gaXMgbWVhbnQgdG8gY29uZm9ybSB3aXRoIEVWUF9CeXRlc1RvS2V5LlxuXHQgICAgICogd3d3Lm9wZW5zc2wub3JnL2RvY3MvY3J5cHRvL0VWUF9CeXRlc1RvS2V5Lmh0bWxcblx0ICAgICAqL1xuXHQgICAgdmFyIEV2cEtERiA9IENfYWxnby5FdnBLREYgPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IGtleVNpemUgVGhlIGtleSBzaXplIGluIHdvcmRzIHRvIGdlbmVyYXRlLiBEZWZhdWx0OiA0ICgxMjggYml0cylcblx0ICAgICAgICAgKiBAcHJvcGVydHkge0hhc2hlcn0gaGFzaGVyIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuIERlZmF1bHQ6IE1ENVxuXHQgICAgICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBpdGVyYXRpb25zIFRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB0byBwZXJmb3JtLiBEZWZhdWx0OiAxXG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2ZnOiBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgICAgIGtleVNpemU6IDEyOC8zMixcblx0ICAgICAgICAgICAgaGFzaGVyOiBNRDUsXG5cdCAgICAgICAgICAgIGl0ZXJhdGlvbnM6IDFcblx0ICAgICAgICB9KSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEluaXRpYWxpemVzIGEgbmV3bHkgY3JlYXRlZCBrZXkgZGVyaXZhdGlvbiBmdW5jdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjZmcgKE9wdGlvbmFsKSBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIHVzZSBmb3IgdGhlIGRlcml2YXRpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBrZGYgPSBDcnlwdG9KUy5hbGdvLkV2cEtERi5jcmVhdGUoKTtcblx0ICAgICAgICAgKiAgICAgdmFyIGtkZiA9IENyeXB0b0pTLmFsZ28uRXZwS0RGLmNyZWF0ZSh7IGtleVNpemU6IDggfSk7XG5cdCAgICAgICAgICogICAgIHZhciBrZGYgPSBDcnlwdG9KUy5hbGdvLkV2cEtERi5jcmVhdGUoeyBrZXlTaXplOiA4LCBpdGVyYXRpb25zOiAxMDAwIH0pO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGluaXQ6IGZ1bmN0aW9uIChjZmcpIHtcblx0ICAgICAgICAgICAgdGhpcy5jZmcgPSB0aGlzLmNmZy5leHRlbmQoY2ZnKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogRGVyaXZlcyBhIGtleSBmcm9tIGEgcGFzc3dvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IHBhc3N3b3JkIFRoZSBwYXNzd29yZC5cblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IHNhbHQgQSBzYWx0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgZGVyaXZlZCBrZXkuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBrZXkgPSBrZGYuY29tcHV0ZShwYXNzd29yZCwgc2FsdCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY29tcHV0ZTogZnVuY3Rpb24gKHBhc3N3b3JkLCBzYWx0KSB7XG5cdCAgICAgICAgICAgIHZhciBibG9jaztcblxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgY2ZnID0gdGhpcy5jZmc7XG5cblx0ICAgICAgICAgICAgLy8gSW5pdCBoYXNoZXJcblx0ICAgICAgICAgICAgdmFyIGhhc2hlciA9IGNmZy5oYXNoZXIuY3JlYXRlKCk7XG5cblx0ICAgICAgICAgICAgLy8gSW5pdGlhbCB2YWx1ZXNcblx0ICAgICAgICAgICAgdmFyIGRlcml2ZWRLZXkgPSBXb3JkQXJyYXkuY3JlYXRlKCk7XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBkZXJpdmVkS2V5V29yZHMgPSBkZXJpdmVkS2V5LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIga2V5U2l6ZSA9IGNmZy5rZXlTaXplO1xuXHQgICAgICAgICAgICB2YXIgaXRlcmF0aW9ucyA9IGNmZy5pdGVyYXRpb25zO1xuXG5cdCAgICAgICAgICAgIC8vIEdlbmVyYXRlIGtleVxuXHQgICAgICAgICAgICB3aGlsZSAoZGVyaXZlZEtleVdvcmRzLmxlbmd0aCA8IGtleVNpemUpIHtcblx0ICAgICAgICAgICAgICAgIGlmIChibG9jaykge1xuXHQgICAgICAgICAgICAgICAgICAgIGhhc2hlci51cGRhdGUoYmxvY2spO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgICAgYmxvY2sgPSBoYXNoZXIudXBkYXRlKHBhc3N3b3JkKS5maW5hbGl6ZShzYWx0KTtcblx0ICAgICAgICAgICAgICAgIGhhc2hlci5yZXNldCgpO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBJdGVyYXRpb25zXG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGl0ZXJhdGlvbnM7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIGJsb2NrID0gaGFzaGVyLmZpbmFsaXplKGJsb2NrKTtcblx0ICAgICAgICAgICAgICAgICAgICBoYXNoZXIucmVzZXQoKTtcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgZGVyaXZlZEtleS5jb25jYXQoYmxvY2spO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIGRlcml2ZWRLZXkuc2lnQnl0ZXMgPSBrZXlTaXplICogNDtcblxuXHQgICAgICAgICAgICByZXR1cm4gZGVyaXZlZEtleTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBEZXJpdmVzIGEga2V5IGZyb20gYSBwYXNzd29yZC5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IHBhc3N3b3JkIFRoZSBwYXNzd29yZC5cblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gc2FsdCBBIHNhbHQuXG5cdCAgICAgKiBAcGFyYW0ge09iamVjdH0gY2ZnIChPcHRpb25hbCkgVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byB1c2UgZm9yIHRoaXMgY29tcHV0YXRpb24uXG5cdCAgICAgKlxuXHQgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgZGVyaXZlZCBrZXkuXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBrZXkgPSBDcnlwdG9KUy5FdnBLREYocGFzc3dvcmQsIHNhbHQpO1xuXHQgICAgICogICAgIHZhciBrZXkgPSBDcnlwdG9KUy5FdnBLREYocGFzc3dvcmQsIHNhbHQsIHsga2V5U2l6ZTogOCB9KTtcblx0ICAgICAqICAgICB2YXIga2V5ID0gQ3J5cHRvSlMuRXZwS0RGKHBhc3N3b3JkLCBzYWx0LCB7IGtleVNpemU6IDgsIGl0ZXJhdGlvbnM6IDEwMDAgfSk7XG5cdCAgICAgKi9cblx0ICAgIEMuRXZwS0RGID0gZnVuY3Rpb24gKHBhc3N3b3JkLCBzYWx0LCBjZmcpIHtcblx0ICAgICAgICByZXR1cm4gRXZwS0RGLmNyZWF0ZShjZmcpLmNvbXB1dGUocGFzc3dvcmQsIHNhbHQpO1xuXHQgICAgfTtcblx0fSgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5FdnBLREY7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5LCB1bmRlZikge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSwgcmVxdWlyZShcIi4vY2lwaGVyLWNvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4vY2lwaGVyLWNvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAodW5kZWZpbmVkKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBDaXBoZXJQYXJhbXMgPSBDX2xpYi5DaXBoZXJQYXJhbXM7XG5cdCAgICB2YXIgQ19lbmMgPSBDLmVuYztcblx0ICAgIHZhciBIZXggPSBDX2VuYy5IZXg7XG5cdCAgICB2YXIgQ19mb3JtYXQgPSBDLmZvcm1hdDtcblxuXHQgICAgdmFyIEhleEZvcm1hdHRlciA9IENfZm9ybWF0LkhleCA9IHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyB0aGUgY2lwaGVydGV4dCBvZiBhIGNpcGhlciBwYXJhbXMgb2JqZWN0IHRvIGEgaGV4YWRlY2ltYWxseSBlbmNvZGVkIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7Q2lwaGVyUGFyYW1zfSBjaXBoZXJQYXJhbXMgVGhlIGNpcGhlciBwYXJhbXMgb2JqZWN0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgaGV4YWRlY2ltYWxseSBlbmNvZGVkIHN0cmluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBzdGF0aWNcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGhleFN0cmluZyA9IENyeXB0b0pTLmZvcm1hdC5IZXguc3RyaW5naWZ5KGNpcGhlclBhcmFtcyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAoY2lwaGVyUGFyYW1zKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBjaXBoZXJQYXJhbXMuY2lwaGVydGV4dC50b1N0cmluZyhIZXgpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb252ZXJ0cyBhIGhleGFkZWNpbWFsbHkgZW5jb2RlZCBjaXBoZXJ0ZXh0IHN0cmluZyB0byBhIGNpcGhlciBwYXJhbXMgb2JqZWN0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0IFRoZSBoZXhhZGVjaW1hbGx5IGVuY29kZWQgc3RyaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7Q2lwaGVyUGFyYW1zfSBUaGUgY2lwaGVyIHBhcmFtcyBvYmplY3QuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAc3RhdGljXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBjaXBoZXJQYXJhbXMgPSBDcnlwdG9KUy5mb3JtYXQuSGV4LnBhcnNlKGhleFN0cmluZyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgcGFyc2U6IGZ1bmN0aW9uIChpbnB1dCkge1xuXHQgICAgICAgICAgICB2YXIgY2lwaGVydGV4dCA9IEhleC5wYXJzZShpbnB1dCk7XG5cdCAgICAgICAgICAgIHJldHVybiBDaXBoZXJQYXJhbXMuY3JlYXRlKHsgY2lwaGVydGV4dDogY2lwaGVydGV4dCB9KTtcblx0ICAgICAgICB9XG5cdCAgICB9O1xuXHR9KCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLmZvcm1hdC5IZXg7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBCYXNlID0gQ19saWIuQmFzZTtcblx0ICAgIHZhciBDX2VuYyA9IEMuZW5jO1xuXHQgICAgdmFyIFV0ZjggPSBDX2VuYy5VdGY4O1xuXHQgICAgdmFyIENfYWxnbyA9IEMuYWxnbztcblxuXHQgICAgLyoqXG5cdCAgICAgKiBITUFDIGFsZ29yaXRobS5cblx0ICAgICAqL1xuXHQgICAgdmFyIEhNQUMgPSBDX2FsZ28uSE1BQyA9IEJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBJbml0aWFsaXplcyBhIG5ld2x5IGNyZWF0ZWQgSE1BQy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7SGFzaGVyfSBoYXNoZXIgVGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZS5cblx0ICAgICAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IGtleSBUaGUgc2VjcmV0IGtleS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGhtYWNIYXNoZXIgPSBDcnlwdG9KUy5hbGdvLkhNQUMuY3JlYXRlKENyeXB0b0pTLmFsZ28uU0hBMjU2LCBrZXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGluaXQ6IGZ1bmN0aW9uIChoYXNoZXIsIGtleSkge1xuXHQgICAgICAgICAgICAvLyBJbml0IGhhc2hlclxuXHQgICAgICAgICAgICBoYXNoZXIgPSB0aGlzLl9oYXNoZXIgPSBuZXcgaGFzaGVyLmluaXQoKTtcblxuXHQgICAgICAgICAgICAvLyBDb252ZXJ0IHN0cmluZyB0byBXb3JkQXJyYXksIGVsc2UgYXNzdW1lIFdvcmRBcnJheSBhbHJlYWR5XG5cdCAgICAgICAgICAgIGlmICh0eXBlb2Yga2V5ID09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgICAgICAgICBrZXkgPSBVdGY4LnBhcnNlKGtleSk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGhhc2hlckJsb2NrU2l6ZSA9IGhhc2hlci5ibG9ja1NpemU7XG5cdCAgICAgICAgICAgIHZhciBoYXNoZXJCbG9ja1NpemVCeXRlcyA9IGhhc2hlckJsb2NrU2l6ZSAqIDQ7XG5cblx0ICAgICAgICAgICAgLy8gQWxsb3cgYXJiaXRyYXJ5IGxlbmd0aCBrZXlzXG5cdCAgICAgICAgICAgIGlmIChrZXkuc2lnQnl0ZXMgPiBoYXNoZXJCbG9ja1NpemVCeXRlcykge1xuXHQgICAgICAgICAgICAgICAga2V5ID0gaGFzaGVyLmZpbmFsaXplKGtleSk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBDbGFtcCBleGNlc3MgYml0c1xuXHQgICAgICAgICAgICBrZXkuY2xhbXAoKTtcblxuXHQgICAgICAgICAgICAvLyBDbG9uZSBrZXkgZm9yIGlubmVyIGFuZCBvdXRlciBwYWRzXG5cdCAgICAgICAgICAgIHZhciBvS2V5ID0gdGhpcy5fb0tleSA9IGtleS5jbG9uZSgpO1xuXHQgICAgICAgICAgICB2YXIgaUtleSA9IHRoaXMuX2lLZXkgPSBrZXkuY2xvbmUoKTtcblxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIG9LZXlXb3JkcyA9IG9LZXkud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBpS2V5V29yZHMgPSBpS2V5LndvcmRzO1xuXG5cdCAgICAgICAgICAgIC8vIFhPUiBrZXlzIHdpdGggcGFkIGNvbnN0YW50c1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhhc2hlckJsb2NrU2l6ZTsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICBvS2V5V29yZHNbaV0gXj0gMHg1YzVjNWM1Yztcblx0ICAgICAgICAgICAgICAgIGlLZXlXb3Jkc1tpXSBePSAweDM2MzYzNjM2O1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIG9LZXkuc2lnQnl0ZXMgPSBpS2V5LnNpZ0J5dGVzID0gaGFzaGVyQmxvY2tTaXplQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gU2V0IGluaXRpYWwgdmFsdWVzXG5cdCAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogUmVzZXRzIHRoaXMgSE1BQyB0byBpdHMgaW5pdGlhbCBzdGF0ZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgaG1hY0hhc2hlci5yZXNldCgpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHJlc2V0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgIHZhciBoYXNoZXIgPSB0aGlzLl9oYXNoZXI7XG5cblx0ICAgICAgICAgICAgLy8gUmVzZXRcblx0ICAgICAgICAgICAgaGFzaGVyLnJlc2V0KCk7XG5cdCAgICAgICAgICAgIGhhc2hlci51cGRhdGUodGhpcy5faUtleSk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIFVwZGF0ZXMgdGhpcyBITUFDIHdpdGggYSBtZXNzYWdlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlVXBkYXRlIFRoZSBtZXNzYWdlIHRvIGFwcGVuZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge0hNQUN9IFRoaXMgSE1BQyBpbnN0YW5jZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgaG1hY0hhc2hlci51cGRhdGUoJ21lc3NhZ2UnKTtcblx0ICAgICAgICAgKiAgICAgaG1hY0hhc2hlci51cGRhdGUod29yZEFycmF5KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uIChtZXNzYWdlVXBkYXRlKSB7XG5cdCAgICAgICAgICAgIHRoaXMuX2hhc2hlci51cGRhdGUobWVzc2FnZVVwZGF0ZSk7XG5cblx0ICAgICAgICAgICAgLy8gQ2hhaW5hYmxlXG5cdCAgICAgICAgICAgIHJldHVybiB0aGlzO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBGaW5hbGl6ZXMgdGhlIEhNQUMgY29tcHV0YXRpb24uXG5cdCAgICAgICAgICogTm90ZSB0aGF0IHRoZSBmaW5hbGl6ZSBvcGVyYXRpb24gaXMgZWZmZWN0aXZlbHkgYSBkZXN0cnVjdGl2ZSwgcmVhZC1vbmNlIG9wZXJhdGlvbi5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZVVwZGF0ZSAoT3B0aW9uYWwpIEEgZmluYWwgbWVzc2FnZSB1cGRhdGUuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBITUFDLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgaG1hYyA9IGhtYWNIYXNoZXIuZmluYWxpemUoKTtcblx0ICAgICAgICAgKiAgICAgdmFyIGhtYWMgPSBobWFjSGFzaGVyLmZpbmFsaXplKCdtZXNzYWdlJyk7XG5cdCAgICAgICAgICogICAgIHZhciBobWFjID0gaG1hY0hhc2hlci5maW5hbGl6ZSh3b3JkQXJyYXkpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGZpbmFsaXplOiBmdW5jdGlvbiAobWVzc2FnZVVwZGF0ZSkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgaGFzaGVyID0gdGhpcy5faGFzaGVyO1xuXG5cdCAgICAgICAgICAgIC8vIENvbXB1dGUgSE1BQ1xuXHQgICAgICAgICAgICB2YXIgaW5uZXJIYXNoID0gaGFzaGVyLmZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpO1xuXHQgICAgICAgICAgICBoYXNoZXIucmVzZXQoKTtcblx0ICAgICAgICAgICAgdmFyIGhtYWMgPSBoYXNoZXIuZmluYWxpemUodGhpcy5fb0tleS5jbG9uZSgpLmNvbmNhdChpbm5lckhhc2gpKTtcblxuXHQgICAgICAgICAgICByZXR1cm4gaG1hYztcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblx0fSgpKTtcblxuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL3g2NC1jb3JlXCIpLCByZXF1aXJlKFwiLi9saWItdHlwZWRhcnJheXNcIiksIHJlcXVpcmUoXCIuL2VuYy11dGYxNlwiKSwgcmVxdWlyZShcIi4vZW5jLWJhc2U2NFwiKSwgcmVxdWlyZShcIi4vZW5jLWJhc2U2NHVybFwiKSwgcmVxdWlyZShcIi4vbWQ1XCIpLCByZXF1aXJlKFwiLi9zaGExXCIpLCByZXF1aXJlKFwiLi9zaGEyNTZcIiksIHJlcXVpcmUoXCIuL3NoYTIyNFwiKSwgcmVxdWlyZShcIi4vc2hhNTEyXCIpLCByZXF1aXJlKFwiLi9zaGEzODRcIiksIHJlcXVpcmUoXCIuL3NoYTNcIiksIHJlcXVpcmUoXCIuL3JpcGVtZDE2MFwiKSwgcmVxdWlyZShcIi4vaG1hY1wiKSwgcmVxdWlyZShcIi4vcGJrZGYyXCIpLCByZXF1aXJlKFwiLi9ldnBrZGZcIiksIHJlcXVpcmUoXCIuL2NpcGhlci1jb3JlXCIpLCByZXF1aXJlKFwiLi9tb2RlLWNmYlwiKSwgcmVxdWlyZShcIi4vbW9kZS1jdHJcIiksIHJlcXVpcmUoXCIuL21vZGUtY3RyLWdsYWRtYW5cIiksIHJlcXVpcmUoXCIuL21vZGUtb2ZiXCIpLCByZXF1aXJlKFwiLi9tb2RlLWVjYlwiKSwgcmVxdWlyZShcIi4vcGFkLWFuc2l4OTIzXCIpLCByZXF1aXJlKFwiLi9wYWQtaXNvMTAxMjZcIiksIHJlcXVpcmUoXCIuL3BhZC1pc285Nzk3MVwiKSwgcmVxdWlyZShcIi4vcGFkLXplcm9wYWRkaW5nXCIpLCByZXF1aXJlKFwiLi9wYWQtbm9wYWRkaW5nXCIpLCByZXF1aXJlKFwiLi9mb3JtYXQtaGV4XCIpLCByZXF1aXJlKFwiLi9hZXNcIiksIHJlcXVpcmUoXCIuL3RyaXBsZWRlc1wiKSwgcmVxdWlyZShcIi4vcmM0XCIpLCByZXF1aXJlKFwiLi9yYWJiaXRcIiksIHJlcXVpcmUoXCIuL3JhYmJpdC1sZWdhY3lcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4veDY0LWNvcmVcIiwgXCIuL2xpYi10eXBlZGFycmF5c1wiLCBcIi4vZW5jLXV0ZjE2XCIsIFwiLi9lbmMtYmFzZTY0XCIsIFwiLi9lbmMtYmFzZTY0dXJsXCIsIFwiLi9tZDVcIiwgXCIuL3NoYTFcIiwgXCIuL3NoYTI1NlwiLCBcIi4vc2hhMjI0XCIsIFwiLi9zaGE1MTJcIiwgXCIuL3NoYTM4NFwiLCBcIi4vc2hhM1wiLCBcIi4vcmlwZW1kMTYwXCIsIFwiLi9obWFjXCIsIFwiLi9wYmtkZjJcIiwgXCIuL2V2cGtkZlwiLCBcIi4vY2lwaGVyLWNvcmVcIiwgXCIuL21vZGUtY2ZiXCIsIFwiLi9tb2RlLWN0clwiLCBcIi4vbW9kZS1jdHItZ2xhZG1hblwiLCBcIi4vbW9kZS1vZmJcIiwgXCIuL21vZGUtZWNiXCIsIFwiLi9wYWQtYW5zaXg5MjNcIiwgXCIuL3BhZC1pc28xMDEyNlwiLCBcIi4vcGFkLWlzbzk3OTcxXCIsIFwiLi9wYWQtemVyb3BhZGRpbmdcIiwgXCIuL3BhZC1ub3BhZGRpbmdcIiwgXCIuL2Zvcm1hdC1oZXhcIiwgXCIuL2Flc1wiLCBcIi4vdHJpcGxlZGVzXCIsIFwiLi9yYzRcIiwgXCIuL3JhYmJpdFwiLCBcIi4vcmFiYml0LWxlZ2FjeVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdHJvb3QuQ3J5cHRvSlMgPSBmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdHJldHVybiBDcnlwdG9KUztcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0KGZ1bmN0aW9uICgpIHtcblx0ICAgIC8vIENoZWNrIGlmIHR5cGVkIGFycmF5cyBhcmUgc3VwcG9ydGVkXG5cdCAgICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICByZXR1cm47XG5cdCAgICB9XG5cblx0ICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgdmFyIEMgPSBDcnlwdG9KUztcblx0ICAgIHZhciBDX2xpYiA9IEMubGliO1xuXHQgICAgdmFyIFdvcmRBcnJheSA9IENfbGliLldvcmRBcnJheTtcblxuXHQgICAgLy8gUmVmZXJlbmNlIG9yaWdpbmFsIGluaXRcblx0ICAgIHZhciBzdXBlckluaXQgPSBXb3JkQXJyYXkuaW5pdDtcblxuXHQgICAgLy8gQXVnbWVudCBXb3JkQXJyYXkuaW5pdCB0byBoYW5kbGUgdHlwZWQgYXJyYXlzXG5cdCAgICB2YXIgc3ViSW5pdCA9IFdvcmRBcnJheS5pbml0ID0gZnVuY3Rpb24gKHR5cGVkQXJyYXkpIHtcblx0ICAgICAgICAvLyBDb252ZXJ0IGJ1ZmZlcnMgdG8gdWludDhcblx0ICAgICAgICBpZiAodHlwZWRBcnJheSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG5cdCAgICAgICAgICAgIHR5cGVkQXJyYXkgPSBuZXcgVWludDhBcnJheSh0eXBlZEFycmF5KTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBDb252ZXJ0IG90aGVyIGFycmF5IHZpZXdzIHRvIHVpbnQ4XG5cdCAgICAgICAgaWYgKFxuXHQgICAgICAgICAgICB0eXBlZEFycmF5IGluc3RhbmNlb2YgSW50OEFycmF5IHx8XG5cdCAgICAgICAgICAgICh0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZWRBcnJheSBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5KSB8fFxuXHQgICAgICAgICAgICB0eXBlZEFycmF5IGluc3RhbmNlb2YgSW50MTZBcnJheSB8fFxuXHQgICAgICAgICAgICB0eXBlZEFycmF5IGluc3RhbmNlb2YgVWludDE2QXJyYXkgfHxcblx0ICAgICAgICAgICAgdHlwZWRBcnJheSBpbnN0YW5jZW9mIEludDMyQXJyYXkgfHxcblx0ICAgICAgICAgICAgdHlwZWRBcnJheSBpbnN0YW5jZW9mIFVpbnQzMkFycmF5IHx8XG5cdCAgICAgICAgICAgIHR5cGVkQXJyYXkgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkgfHxcblx0ICAgICAgICAgICAgdHlwZWRBcnJheSBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheVxuXHQgICAgICAgICkge1xuXHQgICAgICAgICAgICB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkodHlwZWRBcnJheS5idWZmZXIsIHR5cGVkQXJyYXkuYnl0ZU9mZnNldCwgdHlwZWRBcnJheS5ieXRlTGVuZ3RoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBIYW5kbGUgVWludDhBcnJheVxuXHQgICAgICAgIGlmICh0eXBlZEFycmF5IGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgdHlwZWRBcnJheUJ5dGVMZW5ndGggPSB0eXBlZEFycmF5LmJ5dGVMZW5ndGg7XG5cblx0ICAgICAgICAgICAgLy8gRXh0cmFjdCBieXRlc1xuXHQgICAgICAgICAgICB2YXIgd29yZHMgPSBbXTtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlZEFycmF5Qnl0ZUxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB3b3Jkc1tpID4+PiAyXSB8PSB0eXBlZEFycmF5W2ldIDw8ICgyNCAtIChpICUgNCkgKiA4KTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhpcyB3b3JkIGFycmF5XG5cdCAgICAgICAgICAgIHN1cGVySW5pdC5jYWxsKHRoaXMsIHdvcmRzLCB0eXBlZEFycmF5Qnl0ZUxlbmd0aCk7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgLy8gRWxzZSBjYWxsIG5vcm1hbCBpbml0XG5cdCAgICAgICAgICAgIHN1cGVySW5pdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXHQgICAgICAgIH1cblx0ICAgIH07XG5cblx0ICAgIHN1YkluaXQucHJvdG90eXBlID0gV29yZEFycmF5O1xuXHR9KCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLmxpYi5Xb3JkQXJyYXk7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoTWF0aCkge1xuXHQgICAgLy8gU2hvcnRjdXRzXG5cdCAgICB2YXIgQyA9IENyeXB0b0pTO1xuXHQgICAgdmFyIENfbGliID0gQy5saWI7XG5cdCAgICB2YXIgV29yZEFycmF5ID0gQ19saWIuV29yZEFycmF5O1xuXHQgICAgdmFyIEhhc2hlciA9IENfbGliLkhhc2hlcjtcblx0ICAgIHZhciBDX2FsZ28gPSBDLmFsZ287XG5cblx0ICAgIC8vIENvbnN0YW50cyB0YWJsZVxuXHQgICAgdmFyIFQgPSBbXTtcblxuXHQgICAgLy8gQ29tcHV0ZSBjb25zdGFudHNcblx0ICAgIChmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG5cdCAgICAgICAgICAgIFRbaV0gPSAoTWF0aC5hYnMoTWF0aC5zaW4oaSArIDEpKSAqIDB4MTAwMDAwMDAwKSB8IDA7XG5cdCAgICAgICAgfVxuXHQgICAgfSgpKTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBNRDUgaGFzaCBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBNRDUgPSBDX2FsZ28uTUQ1ID0gSGFzaGVyLmV4dGVuZCh7XG5cdCAgICAgICAgX2RvUmVzZXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdGhpcy5faGFzaCA9IG5ldyBXb3JkQXJyYXkuaW5pdChbXG5cdCAgICAgICAgICAgICAgICAweDY3NDUyMzAxLCAweGVmY2RhYjg5LFxuXHQgICAgICAgICAgICAgICAgMHg5OGJhZGNmZSwgMHgxMDMyNTQ3NlxuXHQgICAgICAgICAgICBdKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvUHJvY2Vzc0Jsb2NrOiBmdW5jdGlvbiAoTSwgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIC8vIFN3YXAgZW5kaWFuXG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgICAgICB2YXIgb2Zmc2V0X2kgPSBvZmZzZXQgKyBpO1xuXHQgICAgICAgICAgICAgICAgdmFyIE1fb2Zmc2V0X2kgPSBNW29mZnNldF9pXTtcblxuXHQgICAgICAgICAgICAgICAgTVtvZmZzZXRfaV0gPSAoXG5cdCAgICAgICAgICAgICAgICAgICAgKCgoTV9vZmZzZXRfaSA8PCA4KSAgfCAoTV9vZmZzZXRfaSA+Pj4gMjQpKSAmIDB4MDBmZjAwZmYpIHxcblx0ICAgICAgICAgICAgICAgICAgICAoKChNX29mZnNldF9pIDw8IDI0KSB8IChNX29mZnNldF9pID4+PiA4KSkgICYgMHhmZjAwZmYwMClcblx0ICAgICAgICAgICAgICAgICk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIEggPSB0aGlzLl9oYXNoLndvcmRzO1xuXG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF8wICA9IE1bb2Zmc2V0ICsgMF07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF8xICA9IE1bb2Zmc2V0ICsgMV07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF8yICA9IE1bb2Zmc2V0ICsgMl07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF8zICA9IE1bb2Zmc2V0ICsgM107XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF80ICA9IE1bb2Zmc2V0ICsgNF07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF81ICA9IE1bb2Zmc2V0ICsgNV07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF82ICA9IE1bb2Zmc2V0ICsgNl07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF83ICA9IE1bb2Zmc2V0ICsgN107XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF84ICA9IE1bb2Zmc2V0ICsgOF07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF85ICA9IE1bb2Zmc2V0ICsgOV07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF8xMCA9IE1bb2Zmc2V0ICsgMTBdO1xuXHQgICAgICAgICAgICB2YXIgTV9vZmZzZXRfMTEgPSBNW29mZnNldCArIDExXTtcblx0ICAgICAgICAgICAgdmFyIE1fb2Zmc2V0XzEyID0gTVtvZmZzZXQgKyAxMl07XG5cdCAgICAgICAgICAgIHZhciBNX29mZnNldF8xMyA9IE1bb2Zmc2V0ICsgMTNdO1xuXHQgICAgICAgICAgICB2YXIgTV9vZmZzZXRfMTQgPSBNW29mZnNldCArIDE0XTtcblx0ICAgICAgICAgICAgdmFyIE1fb2Zmc2V0XzE1ID0gTVtvZmZzZXQgKyAxNV07XG5cblx0ICAgICAgICAgICAgLy8gV29ya2luZyB2YXJpYWxiZXNcblx0ICAgICAgICAgICAgdmFyIGEgPSBIWzBdO1xuXHQgICAgICAgICAgICB2YXIgYiA9IEhbMV07XG5cdCAgICAgICAgICAgIHZhciBjID0gSFsyXTtcblx0ICAgICAgICAgICAgdmFyIGQgPSBIWzNdO1xuXG5cdCAgICAgICAgICAgIC8vIENvbXB1dGF0aW9uXG5cdCAgICAgICAgICAgIGEgPSBGRihhLCBiLCBjLCBkLCBNX29mZnNldF8wLCAgNywgIFRbMF0pO1xuXHQgICAgICAgICAgICBkID0gRkYoZCwgYSwgYiwgYywgTV9vZmZzZXRfMSwgIDEyLCBUWzFdKTtcblx0ICAgICAgICAgICAgYyA9IEZGKGMsIGQsIGEsIGIsIE1fb2Zmc2V0XzIsICAxNywgVFsyXSk7XG5cdCAgICAgICAgICAgIGIgPSBGRihiLCBjLCBkLCBhLCBNX29mZnNldF8zLCAgMjIsIFRbM10pO1xuXHQgICAgICAgICAgICBhID0gRkYoYSwgYiwgYywgZCwgTV9vZmZzZXRfNCwgIDcsICBUWzRdKTtcblx0ICAgICAgICAgICAgZCA9IEZGKGQsIGEsIGIsIGMsIE1fb2Zmc2V0XzUsICAxMiwgVFs1XSk7XG5cdCAgICAgICAgICAgIGMgPSBGRihjLCBkLCBhLCBiLCBNX29mZnNldF82LCAgMTcsIFRbNl0pO1xuXHQgICAgICAgICAgICBiID0gRkYoYiwgYywgZCwgYSwgTV9vZmZzZXRfNywgIDIyLCBUWzddKTtcblx0ICAgICAgICAgICAgYSA9IEZGKGEsIGIsIGMsIGQsIE1fb2Zmc2V0XzgsICA3LCAgVFs4XSk7XG5cdCAgICAgICAgICAgIGQgPSBGRihkLCBhLCBiLCBjLCBNX29mZnNldF85LCAgMTIsIFRbOV0pO1xuXHQgICAgICAgICAgICBjID0gRkYoYywgZCwgYSwgYiwgTV9vZmZzZXRfMTAsIDE3LCBUWzEwXSk7XG5cdCAgICAgICAgICAgIGIgPSBGRihiLCBjLCBkLCBhLCBNX29mZnNldF8xMSwgMjIsIFRbMTFdKTtcblx0ICAgICAgICAgICAgYSA9IEZGKGEsIGIsIGMsIGQsIE1fb2Zmc2V0XzEyLCA3LCAgVFsxMl0pO1xuXHQgICAgICAgICAgICBkID0gRkYoZCwgYSwgYiwgYywgTV9vZmZzZXRfMTMsIDEyLCBUWzEzXSk7XG5cdCAgICAgICAgICAgIGMgPSBGRihjLCBkLCBhLCBiLCBNX29mZnNldF8xNCwgMTcsIFRbMTRdKTtcblx0ICAgICAgICAgICAgYiA9IEZGKGIsIGMsIGQsIGEsIE1fb2Zmc2V0XzE1LCAyMiwgVFsxNV0pO1xuXG5cdCAgICAgICAgICAgIGEgPSBHRyhhLCBiLCBjLCBkLCBNX29mZnNldF8xLCAgNSwgIFRbMTZdKTtcblx0ICAgICAgICAgICAgZCA9IEdHKGQsIGEsIGIsIGMsIE1fb2Zmc2V0XzYsICA5LCAgVFsxN10pO1xuXHQgICAgICAgICAgICBjID0gR0coYywgZCwgYSwgYiwgTV9vZmZzZXRfMTEsIDE0LCBUWzE4XSk7XG5cdCAgICAgICAgICAgIGIgPSBHRyhiLCBjLCBkLCBhLCBNX29mZnNldF8wLCAgMjAsIFRbMTldKTtcblx0ICAgICAgICAgICAgYSA9IEdHKGEsIGIsIGMsIGQsIE1fb2Zmc2V0XzUsICA1LCAgVFsyMF0pO1xuXHQgICAgICAgICAgICBkID0gR0coZCwgYSwgYiwgYywgTV9vZmZzZXRfMTAsIDksICBUWzIxXSk7XG5cdCAgICAgICAgICAgIGMgPSBHRyhjLCBkLCBhLCBiLCBNX29mZnNldF8xNSwgMTQsIFRbMjJdKTtcblx0ICAgICAgICAgICAgYiA9IEdHKGIsIGMsIGQsIGEsIE1fb2Zmc2V0XzQsICAyMCwgVFsyM10pO1xuXHQgICAgICAgICAgICBhID0gR0coYSwgYiwgYywgZCwgTV9vZmZzZXRfOSwgIDUsICBUWzI0XSk7XG5cdCAgICAgICAgICAgIGQgPSBHRyhkLCBhLCBiLCBjLCBNX29mZnNldF8xNCwgOSwgIFRbMjVdKTtcblx0ICAgICAgICAgICAgYyA9IEdHKGMsIGQsIGEsIGIsIE1fb2Zmc2V0XzMsICAxNCwgVFsyNl0pO1xuXHQgICAgICAgICAgICBiID0gR0coYiwgYywgZCwgYSwgTV9vZmZzZXRfOCwgIDIwLCBUWzI3XSk7XG5cdCAgICAgICAgICAgIGEgPSBHRyhhLCBiLCBjLCBkLCBNX29mZnNldF8xMywgNSwgIFRbMjhdKTtcblx0ICAgICAgICAgICAgZCA9IEdHKGQsIGEsIGIsIGMsIE1fb2Zmc2V0XzIsICA5LCAgVFsyOV0pO1xuXHQgICAgICAgICAgICBjID0gR0coYywgZCwgYSwgYiwgTV9vZmZzZXRfNywgIDE0LCBUWzMwXSk7XG5cdCAgICAgICAgICAgIGIgPSBHRyhiLCBjLCBkLCBhLCBNX29mZnNldF8xMiwgMjAsIFRbMzFdKTtcblxuXHQgICAgICAgICAgICBhID0gSEgoYSwgYiwgYywgZCwgTV9vZmZzZXRfNSwgIDQsICBUWzMyXSk7XG5cdCAgICAgICAgICAgIGQgPSBISChkLCBhLCBiLCBjLCBNX29mZnNldF84LCAgMTEsIFRbMzNdKTtcblx0ICAgICAgICAgICAgYyA9IEhIKGMsIGQsIGEsIGIsIE1fb2Zmc2V0XzExLCAxNiwgVFszNF0pO1xuXHQgICAgICAgICAgICBiID0gSEgoYiwgYywgZCwgYSwgTV9vZmZzZXRfMTQsIDIzLCBUWzM1XSk7XG5cdCAgICAgICAgICAgIGEgPSBISChhLCBiLCBjLCBkLCBNX29mZnNldF8xLCAgNCwgIFRbMzZdKTtcblx0ICAgICAgICAgICAgZCA9IEhIKGQsIGEsIGIsIGMsIE1fb2Zmc2V0XzQsICAxMSwgVFszN10pO1xuXHQgICAgICAgICAgICBjID0gSEgoYywgZCwgYSwgYiwgTV9vZmZzZXRfNywgIDE2LCBUWzM4XSk7XG5cdCAgICAgICAgICAgIGIgPSBISChiLCBjLCBkLCBhLCBNX29mZnNldF8xMCwgMjMsIFRbMzldKTtcblx0ICAgICAgICAgICAgYSA9IEhIKGEsIGIsIGMsIGQsIE1fb2Zmc2V0XzEzLCA0LCAgVFs0MF0pO1xuXHQgICAgICAgICAgICBkID0gSEgoZCwgYSwgYiwgYywgTV9vZmZzZXRfMCwgIDExLCBUWzQxXSk7XG5cdCAgICAgICAgICAgIGMgPSBISChjLCBkLCBhLCBiLCBNX29mZnNldF8zLCAgMTYsIFRbNDJdKTtcblx0ICAgICAgICAgICAgYiA9IEhIKGIsIGMsIGQsIGEsIE1fb2Zmc2V0XzYsICAyMywgVFs0M10pO1xuXHQgICAgICAgICAgICBhID0gSEgoYSwgYiwgYywgZCwgTV9vZmZzZXRfOSwgIDQsICBUWzQ0XSk7XG5cdCAgICAgICAgICAgIGQgPSBISChkLCBhLCBiLCBjLCBNX29mZnNldF8xMiwgMTEsIFRbNDVdKTtcblx0ICAgICAgICAgICAgYyA9IEhIKGMsIGQsIGEsIGIsIE1fb2Zmc2V0XzE1LCAxNiwgVFs0Nl0pO1xuXHQgICAgICAgICAgICBiID0gSEgoYiwgYywgZCwgYSwgTV9vZmZzZXRfMiwgIDIzLCBUWzQ3XSk7XG5cblx0ICAgICAgICAgICAgYSA9IElJKGEsIGIsIGMsIGQsIE1fb2Zmc2V0XzAsICA2LCAgVFs0OF0pO1xuXHQgICAgICAgICAgICBkID0gSUkoZCwgYSwgYiwgYywgTV9vZmZzZXRfNywgIDEwLCBUWzQ5XSk7XG5cdCAgICAgICAgICAgIGMgPSBJSShjLCBkLCBhLCBiLCBNX29mZnNldF8xNCwgMTUsIFRbNTBdKTtcblx0ICAgICAgICAgICAgYiA9IElJKGIsIGMsIGQsIGEsIE1fb2Zmc2V0XzUsICAyMSwgVFs1MV0pO1xuXHQgICAgICAgICAgICBhID0gSUkoYSwgYiwgYywgZCwgTV9vZmZzZXRfMTIsIDYsICBUWzUyXSk7XG5cdCAgICAgICAgICAgIGQgPSBJSShkLCBhLCBiLCBjLCBNX29mZnNldF8zLCAgMTAsIFRbNTNdKTtcblx0ICAgICAgICAgICAgYyA9IElJKGMsIGQsIGEsIGIsIE1fb2Zmc2V0XzEwLCAxNSwgVFs1NF0pO1xuXHQgICAgICAgICAgICBiID0gSUkoYiwgYywgZCwgYSwgTV9vZmZzZXRfMSwgIDIxLCBUWzU1XSk7XG5cdCAgICAgICAgICAgIGEgPSBJSShhLCBiLCBjLCBkLCBNX29mZnNldF84LCAgNiwgIFRbNTZdKTtcblx0ICAgICAgICAgICAgZCA9IElJKGQsIGEsIGIsIGMsIE1fb2Zmc2V0XzE1LCAxMCwgVFs1N10pO1xuXHQgICAgICAgICAgICBjID0gSUkoYywgZCwgYSwgYiwgTV9vZmZzZXRfNiwgIDE1LCBUWzU4XSk7XG5cdCAgICAgICAgICAgIGIgPSBJSShiLCBjLCBkLCBhLCBNX29mZnNldF8xMywgMjEsIFRbNTldKTtcblx0ICAgICAgICAgICAgYSA9IElJKGEsIGIsIGMsIGQsIE1fb2Zmc2V0XzQsICA2LCAgVFs2MF0pO1xuXHQgICAgICAgICAgICBkID0gSUkoZCwgYSwgYiwgYywgTV9vZmZzZXRfMTEsIDEwLCBUWzYxXSk7XG5cdCAgICAgICAgICAgIGMgPSBJSShjLCBkLCBhLCBiLCBNX29mZnNldF8yLCAgMTUsIFRbNjJdKTtcblx0ICAgICAgICAgICAgYiA9IElJKGIsIGMsIGQsIGEsIE1fb2Zmc2V0XzksICAyMSwgVFs2M10pO1xuXG5cdCAgICAgICAgICAgIC8vIEludGVybWVkaWF0ZSBoYXNoIHZhbHVlXG5cdCAgICAgICAgICAgIEhbMF0gPSAoSFswXSArIGEpIHwgMDtcblx0ICAgICAgICAgICAgSFsxXSA9IChIWzFdICsgYikgfCAwO1xuXHQgICAgICAgICAgICBIWzJdID0gKEhbMl0gKyBjKSB8IDA7XG5cdCAgICAgICAgICAgIEhbM10gPSAoSFszXSArIGQpIHwgMDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvRmluYWxpemU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fZGF0YTtcblx0ICAgICAgICAgICAgdmFyIGRhdGFXb3JkcyA9IGRhdGEud29yZHM7XG5cblx0ICAgICAgICAgICAgdmFyIG5CaXRzVG90YWwgPSB0aGlzLl9uRGF0YUJ5dGVzICogODtcblx0ICAgICAgICAgICAgdmFyIG5CaXRzTGVmdCA9IGRhdGEuc2lnQnl0ZXMgKiA4O1xuXG5cdCAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nXG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1tuQml0c0xlZnQgPj4+IDVdIHw9IDB4ODAgPDwgKDI0IC0gbkJpdHNMZWZ0ICUgMzIpO1xuXG5cdCAgICAgICAgICAgIHZhciBuQml0c1RvdGFsSCA9IE1hdGguZmxvb3IobkJpdHNUb3RhbCAvIDB4MTAwMDAwMDAwKTtcblx0ICAgICAgICAgICAgdmFyIG5CaXRzVG90YWxMID0gbkJpdHNUb3RhbDtcblx0ICAgICAgICAgICAgZGF0YVdvcmRzWygoKG5CaXRzTGVmdCArIDY0KSA+Pj4gOSkgPDwgNCkgKyAxNV0gPSAoXG5cdCAgICAgICAgICAgICAgICAoKChuQml0c1RvdGFsSCA8PCA4KSAgfCAobkJpdHNUb3RhbEggPj4+IDI0KSkgJiAweDAwZmYwMGZmKSB8XG5cdCAgICAgICAgICAgICAgICAoKChuQml0c1RvdGFsSCA8PCAyNCkgfCAobkJpdHNUb3RhbEggPj4+IDgpKSAgJiAweGZmMDBmZjAwKVxuXHQgICAgICAgICAgICApO1xuXHQgICAgICAgICAgICBkYXRhV29yZHNbKCgobkJpdHNMZWZ0ICsgNjQpID4+PiA5KSA8PCA0KSArIDE0XSA9IChcblx0ICAgICAgICAgICAgICAgICgoKG5CaXRzVG90YWxMIDw8IDgpICB8IChuQml0c1RvdGFsTCA+Pj4gMjQpKSAmIDB4MDBmZjAwZmYpIHxcblx0ICAgICAgICAgICAgICAgICgoKG5CaXRzVG90YWxMIDw8IDI0KSB8IChuQml0c1RvdGFsTCA+Pj4gOCkpICAmIDB4ZmYwMGZmMDApXG5cdCAgICAgICAgICAgICk7XG5cblx0ICAgICAgICAgICAgZGF0YS5zaWdCeXRlcyA9IChkYXRhV29yZHMubGVuZ3RoICsgMSkgKiA0O1xuXG5cdCAgICAgICAgICAgIC8vIEhhc2ggZmluYWwgYmxvY2tzXG5cdCAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3MoKTtcblxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGhhc2ggPSB0aGlzLl9oYXNoO1xuXHQgICAgICAgICAgICB2YXIgSCA9IGhhc2gud29yZHM7XG5cblx0ICAgICAgICAgICAgLy8gU3dhcCBlbmRpYW5cblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgICAgICB2YXIgSF9pID0gSFtpXTtcblxuXHQgICAgICAgICAgICAgICAgSFtpXSA9ICgoKEhfaSA8PCA4KSAgfCAoSF9pID4+PiAyNCkpICYgMHgwMGZmMDBmZikgfFxuXHQgICAgICAgICAgICAgICAgICAgICAgICgoKEhfaSA8PCAyNCkgfCAoSF9pID4+PiA4KSkgICYgMHhmZjAwZmYwMCk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBSZXR1cm4gZmluYWwgY29tcHV0ZWQgaGFzaFxuXHQgICAgICAgICAgICByZXR1cm4gaGFzaDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgY2xvbmU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdmFyIGNsb25lID0gSGFzaGVyLmNsb25lLmNhbGwodGhpcyk7XG5cdCAgICAgICAgICAgIGNsb25lLl9oYXNoID0gdGhpcy5faGFzaC5jbG9uZSgpO1xuXG5cdCAgICAgICAgICAgIHJldHVybiBjbG9uZTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgZnVuY3Rpb24gRkYoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuXHQgICAgICAgIHZhciBuID0gYSArICgoYiAmIGMpIHwgKH5iICYgZCkpICsgeCArIHQ7XG5cdCAgICAgICAgcmV0dXJuICgobiA8PCBzKSB8IChuID4+PiAoMzIgLSBzKSkpICsgYjtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gR0coYSwgYiwgYywgZCwgeCwgcywgdCkge1xuXHQgICAgICAgIHZhciBuID0gYSArICgoYiAmIGQpIHwgKGMgJiB+ZCkpICsgeCArIHQ7XG5cdCAgICAgICAgcmV0dXJuICgobiA8PCBzKSB8IChuID4+PiAoMzIgLSBzKSkpICsgYjtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gSEgoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuXHQgICAgICAgIHZhciBuID0gYSArIChiIF4gYyBeIGQpICsgeCArIHQ7XG5cdCAgICAgICAgcmV0dXJuICgobiA8PCBzKSB8IChuID4+PiAoMzIgLSBzKSkpICsgYjtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gSUkoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuXHQgICAgICAgIHZhciBuID0gYSArIChjIF4gKGIgfCB+ZCkpICsgeCArIHQ7XG5cdCAgICAgICAgcmV0dXJuICgobiA8PCBzKSB8IChuID4+PiAoMzIgLSBzKSkpICsgYjtcblx0ICAgIH1cblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgaGFzaGVyJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaGFzaCA9IENyeXB0b0pTLk1ENSgnbWVzc2FnZScpO1xuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuTUQ1KHdvcmRBcnJheSk7XG5cdCAgICAgKi9cblx0ICAgIEMuTUQ1ID0gSGFzaGVyLl9jcmVhdGVIZWxwZXIoTUQ1KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgSE1BQydzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGhhc2guXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IGtleSBUaGUgc2VjcmV0IGtleS5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBITUFDLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaG1hYyA9IENyeXB0b0pTLkhtYWNNRDUobWVzc2FnZSwga2V5KTtcblx0ICAgICAqL1xuXHQgICAgQy5IbWFjTUQ1ID0gSGFzaGVyLl9jcmVhdGVIbWFjSGVscGVyKE1ENSk7XG5cdH0oTWF0aCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLk1ENTtcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnksIHVuZGVmKSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpLCByZXF1aXJlKFwiLi9jaXBoZXItY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCIsIFwiLi9jaXBoZXItY29yZVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0LyoqXG5cdCAqIENpcGhlciBGZWVkYmFjayBibG9jayBtb2RlLlxuXHQgKi9cblx0Q3J5cHRvSlMubW9kZS5DRkIgPSAoZnVuY3Rpb24gKCkge1xuXHQgICAgdmFyIENGQiA9IENyeXB0b0pTLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7XG5cblx0ICAgIENGQi5FbmNyeXB0b3IgPSBDRkIuZXh0ZW5kKHtcblx0ICAgICAgICBwcm9jZXNzQmxvY2s6IGZ1bmN0aW9uICh3b3Jkcywgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgY2lwaGVyID0gdGhpcy5fY2lwaGVyO1xuXHQgICAgICAgICAgICB2YXIgYmxvY2tTaXplID0gY2lwaGVyLmJsb2NrU2l6ZTtcblxuXHQgICAgICAgICAgICBnZW5lcmF0ZUtleXN0cmVhbUFuZEVuY3J5cHQuY2FsbCh0aGlzLCB3b3Jkcywgb2Zmc2V0LCBibG9ja1NpemUsIGNpcGhlcik7XG5cblx0ICAgICAgICAgICAgLy8gUmVtZW1iZXIgdGhpcyBibG9jayB0byB1c2Ugd2l0aCBuZXh0IGJsb2NrXG5cdCAgICAgICAgICAgIHRoaXMuX3ByZXZCbG9jayA9IHdvcmRzLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgYmxvY2tTaXplKTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgQ0ZCLkRlY3J5cHRvciA9IENGQi5leHRlbmQoe1xuXHQgICAgICAgIHByb2Nlc3NCbG9jazogZnVuY3Rpb24gKHdvcmRzLCBvZmZzZXQpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBjaXBoZXIgPSB0aGlzLl9jaXBoZXI7XG5cdCAgICAgICAgICAgIHZhciBibG9ja1NpemUgPSBjaXBoZXIuYmxvY2tTaXplO1xuXG5cdCAgICAgICAgICAgIC8vIFJlbWVtYmVyIHRoaXMgYmxvY2sgdG8gdXNlIHdpdGggbmV4dCBibG9ja1xuXHQgICAgICAgICAgICB2YXIgdGhpc0Jsb2NrID0gd29yZHMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBibG9ja1NpemUpO1xuXG5cdCAgICAgICAgICAgIGdlbmVyYXRlS2V5c3RyZWFtQW5kRW5jcnlwdC5jYWxsKHRoaXMsIHdvcmRzLCBvZmZzZXQsIGJsb2NrU2l6ZSwgY2lwaGVyKTtcblxuXHQgICAgICAgICAgICAvLyBUaGlzIGJsb2NrIGJlY29tZXMgdGhlIHByZXZpb3VzIGJsb2NrXG5cdCAgICAgICAgICAgIHRoaXMuX3ByZXZCbG9jayA9IHRoaXNCbG9jaztcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlzdHJlYW1BbmRFbmNyeXB0KHdvcmRzLCBvZmZzZXQsIGJsb2NrU2l6ZSwgY2lwaGVyKSB7XG5cdCAgICAgICAgdmFyIGtleXN0cmVhbTtcblxuXHQgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgdmFyIGl2ID0gdGhpcy5faXY7XG5cblx0ICAgICAgICAvLyBHZW5lcmF0ZSBrZXlzdHJlYW1cblx0ICAgICAgICBpZiAoaXYpIHtcblx0ICAgICAgICAgICAga2V5c3RyZWFtID0gaXYuc2xpY2UoMCk7XG5cblx0ICAgICAgICAgICAgLy8gUmVtb3ZlIElWIGZvciBzdWJzZXF1ZW50IGJsb2Nrc1xuXHQgICAgICAgICAgICB0aGlzLl9pdiA9IHVuZGVmaW5lZDtcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBrZXlzdHJlYW0gPSB0aGlzLl9wcmV2QmxvY2s7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGNpcGhlci5lbmNyeXB0QmxvY2soa2V5c3RyZWFtLCAwKTtcblxuXHQgICAgICAgIC8vIEVuY3J5cHRcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJsb2NrU2l6ZTsgaSsrKSB7XG5cdCAgICAgICAgICAgIHdvcmRzW29mZnNldCArIGldIF49IGtleXN0cmVhbVtpXTtcblx0ICAgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBDRkI7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMubW9kZS5DRkI7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5LCB1bmRlZikge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSwgcmVxdWlyZShcIi4vY2lwaGVyLWNvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4vY2lwaGVyLWNvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdC8qKiBAcHJlc2VydmVcblx0ICogQ291bnRlciBibG9jayBtb2RlIGNvbXBhdGlibGUgd2l0aCAgRHIgQnJpYW4gR2xhZG1hbiBmaWxlZW5jLmNcblx0ICogZGVyaXZlZCBmcm9tIENyeXB0b0pTLm1vZGUuQ1RSXG5cdCAqIEphbiBIcnVieSBqaHJ1Ynkud2ViQGdtYWlsLmNvbVxuXHQgKi9cblx0Q3J5cHRvSlMubW9kZS5DVFJHbGFkbWFuID0gKGZ1bmN0aW9uICgpIHtcblx0ICAgIHZhciBDVFJHbGFkbWFuID0gQ3J5cHRvSlMubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtcblxuXHRcdGZ1bmN0aW9uIGluY1dvcmQod29yZClcblx0XHR7XG5cdFx0XHRpZiAoKCh3b3JkID4+IDI0KSAmIDB4ZmYpID09PSAweGZmKSB7IC8vb3ZlcmZsb3dcblx0XHRcdHZhciBiMSA9ICh3b3JkID4+IDE2KSYweGZmO1xuXHRcdFx0dmFyIGIyID0gKHdvcmQgPj4gOCkmMHhmZjtcblx0XHRcdHZhciBiMyA9IHdvcmQgJiAweGZmO1xuXG5cdFx0XHRpZiAoYjEgPT09IDB4ZmYpIC8vIG92ZXJmbG93IGIxXG5cdFx0XHR7XG5cdFx0XHRiMSA9IDA7XG5cdFx0XHRpZiAoYjIgPT09IDB4ZmYpXG5cdFx0XHR7XG5cdFx0XHRcdGIyID0gMDtcblx0XHRcdFx0aWYgKGIzID09PSAweGZmKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YjMgPSAwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0e1xuXHRcdFx0XHRcdCsrYjM7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGVsc2Vcblx0XHRcdHtcblx0XHRcdFx0KytiMjtcblx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGVsc2Vcblx0XHRcdHtcblx0XHRcdCsrYjE7XG5cdFx0XHR9XG5cblx0XHRcdHdvcmQgPSAwO1xuXHRcdFx0d29yZCArPSAoYjEgPDwgMTYpO1xuXHRcdFx0d29yZCArPSAoYjIgPDwgOCk7XG5cdFx0XHR3b3JkICs9IGIzO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZVxuXHRcdFx0e1xuXHRcdFx0d29yZCArPSAoMHgwMSA8PCAyNCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gd29yZDtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBpbmNDb3VudGVyKGNvdW50ZXIpXG5cdFx0e1xuXHRcdFx0aWYgKChjb3VudGVyWzBdID0gaW5jV29yZChjb3VudGVyWzBdKSkgPT09IDApXG5cdFx0XHR7XG5cdFx0XHRcdC8vIGVuY3JfZGF0YSBpbiBmaWxlZW5jLmMgZnJvbSAgRHIgQnJpYW4gR2xhZG1hbidzIGNvdW50cyBvbmx5IHdpdGggRFdPUkQgaiA8IDhcblx0XHRcdFx0Y291bnRlclsxXSA9IGluY1dvcmQoY291bnRlclsxXSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY291bnRlcjtcblx0XHR9XG5cblx0ICAgIHZhciBFbmNyeXB0b3IgPSBDVFJHbGFkbWFuLkVuY3J5cHRvciA9IENUUkdsYWRtYW4uZXh0ZW5kKHtcblx0ICAgICAgICBwcm9jZXNzQmxvY2s6IGZ1bmN0aW9uICh3b3Jkcywgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgY2lwaGVyID0gdGhpcy5fY2lwaGVyXG5cdCAgICAgICAgICAgIHZhciBibG9ja1NpemUgPSBjaXBoZXIuYmxvY2tTaXplO1xuXHQgICAgICAgICAgICB2YXIgaXYgPSB0aGlzLl9pdjtcblx0ICAgICAgICAgICAgdmFyIGNvdW50ZXIgPSB0aGlzLl9jb3VudGVyO1xuXG5cdCAgICAgICAgICAgIC8vIEdlbmVyYXRlIGtleXN0cmVhbVxuXHQgICAgICAgICAgICBpZiAoaXYpIHtcblx0ICAgICAgICAgICAgICAgIGNvdW50ZXIgPSB0aGlzLl9jb3VudGVyID0gaXYuc2xpY2UoMCk7XG5cblx0ICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBJViBmb3Igc3Vic2VxdWVudCBibG9ja3Ncblx0ICAgICAgICAgICAgICAgIHRoaXMuX2l2ID0gdW5kZWZpbmVkO1xuXHQgICAgICAgICAgICB9XG5cblx0XHRcdFx0aW5jQ291bnRlcihjb3VudGVyKTtcblxuXHRcdFx0XHR2YXIga2V5c3RyZWFtID0gY291bnRlci5zbGljZSgwKTtcblx0ICAgICAgICAgICAgY2lwaGVyLmVuY3J5cHRCbG9jayhrZXlzdHJlYW0sIDApO1xuXG5cdCAgICAgICAgICAgIC8vIEVuY3J5cHRcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBibG9ja1NpemU7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgd29yZHNbb2Zmc2V0ICsgaV0gXj0ga2V5c3RyZWFtW2ldO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cblx0ICAgIENUUkdsYWRtYW4uRGVjcnlwdG9yID0gRW5jcnlwdG9yO1xuXG5cdCAgICByZXR1cm4gQ1RSR2xhZG1hbjtcblx0fSgpKTtcblxuXG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMubW9kZS5DVFJHbGFkbWFuO1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL2NpcGhlci1jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIiwgXCIuL2NpcGhlci1jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQvKipcblx0ICogQ291bnRlciBibG9jayBtb2RlLlxuXHQgKi9cblx0Q3J5cHRvSlMubW9kZS5DVFIgPSAoZnVuY3Rpb24gKCkge1xuXHQgICAgdmFyIENUUiA9IENyeXB0b0pTLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7XG5cblx0ICAgIHZhciBFbmNyeXB0b3IgPSBDVFIuRW5jcnlwdG9yID0gQ1RSLmV4dGVuZCh7XG5cdCAgICAgICAgcHJvY2Vzc0Jsb2NrOiBmdW5jdGlvbiAod29yZHMsIG9mZnNldCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGNpcGhlciA9IHRoaXMuX2NpcGhlclxuXHQgICAgICAgICAgICB2YXIgYmxvY2tTaXplID0gY2lwaGVyLmJsb2NrU2l6ZTtcblx0ICAgICAgICAgICAgdmFyIGl2ID0gdGhpcy5faXY7XG5cdCAgICAgICAgICAgIHZhciBjb3VudGVyID0gdGhpcy5fY291bnRlcjtcblxuXHQgICAgICAgICAgICAvLyBHZW5lcmF0ZSBrZXlzdHJlYW1cblx0ICAgICAgICAgICAgaWYgKGl2KSB7XG5cdCAgICAgICAgICAgICAgICBjb3VudGVyID0gdGhpcy5fY291bnRlciA9IGl2LnNsaWNlKDApO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBSZW1vdmUgSVYgZm9yIHN1YnNlcXVlbnQgYmxvY2tzXG5cdCAgICAgICAgICAgICAgICB0aGlzLl9pdiA9IHVuZGVmaW5lZDtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB2YXIga2V5c3RyZWFtID0gY291bnRlci5zbGljZSgwKTtcblx0ICAgICAgICAgICAgY2lwaGVyLmVuY3J5cHRCbG9jayhrZXlzdHJlYW0sIDApO1xuXG5cdCAgICAgICAgICAgIC8vIEluY3JlbWVudCBjb3VudGVyXG5cdCAgICAgICAgICAgIGNvdW50ZXJbYmxvY2tTaXplIC0gMV0gPSAoY291bnRlcltibG9ja1NpemUgLSAxXSArIDEpIHwgMFxuXG5cdCAgICAgICAgICAgIC8vIEVuY3J5cHRcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBibG9ja1NpemU7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgd29yZHNbb2Zmc2V0ICsgaV0gXj0ga2V5c3RyZWFtW2ldO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cblx0ICAgIENUUi5EZWNyeXB0b3IgPSBFbmNyeXB0b3I7XG5cblx0ICAgIHJldHVybiBDVFI7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMubW9kZS5DVFI7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5LCB1bmRlZikge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSwgcmVxdWlyZShcIi4vY2lwaGVyLWNvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4vY2lwaGVyLWNvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdC8qKlxuXHQgKiBFbGVjdHJvbmljIENvZGVib29rIGJsb2NrIG1vZGUuXG5cdCAqL1xuXHRDcnlwdG9KUy5tb2RlLkVDQiA9IChmdW5jdGlvbiAoKSB7XG5cdCAgICB2YXIgRUNCID0gQ3J5cHRvSlMubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtcblxuXHQgICAgRUNCLkVuY3J5cHRvciA9IEVDQi5leHRlbmQoe1xuXHQgICAgICAgIHByb2Nlc3NCbG9jazogZnVuY3Rpb24gKHdvcmRzLCBvZmZzZXQpIHtcblx0ICAgICAgICAgICAgdGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh3b3Jkcywgb2Zmc2V0KTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgRUNCLkRlY3J5cHRvciA9IEVDQi5leHRlbmQoe1xuXHQgICAgICAgIHByb2Nlc3NCbG9jazogZnVuY3Rpb24gKHdvcmRzLCBvZmZzZXQpIHtcblx0ICAgICAgICAgICAgdGhpcy5fY2lwaGVyLmRlY3J5cHRCbG9jayh3b3Jkcywgb2Zmc2V0KTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgcmV0dXJuIEVDQjtcblx0fSgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5tb2RlLkVDQjtcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnksIHVuZGVmKSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpLCByZXF1aXJlKFwiLi9jaXBoZXItY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCIsIFwiLi9jaXBoZXItY29yZVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0LyoqXG5cdCAqIE91dHB1dCBGZWVkYmFjayBibG9jayBtb2RlLlxuXHQgKi9cblx0Q3J5cHRvSlMubW9kZS5PRkIgPSAoZnVuY3Rpb24gKCkge1xuXHQgICAgdmFyIE9GQiA9IENyeXB0b0pTLmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7XG5cblx0ICAgIHZhciBFbmNyeXB0b3IgPSBPRkIuRW5jcnlwdG9yID0gT0ZCLmV4dGVuZCh7XG5cdCAgICAgICAgcHJvY2Vzc0Jsb2NrOiBmdW5jdGlvbiAod29yZHMsIG9mZnNldCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGNpcGhlciA9IHRoaXMuX2NpcGhlclxuXHQgICAgICAgICAgICB2YXIgYmxvY2tTaXplID0gY2lwaGVyLmJsb2NrU2l6ZTtcblx0ICAgICAgICAgICAgdmFyIGl2ID0gdGhpcy5faXY7XG5cdCAgICAgICAgICAgIHZhciBrZXlzdHJlYW0gPSB0aGlzLl9rZXlzdHJlYW07XG5cblx0ICAgICAgICAgICAgLy8gR2VuZXJhdGUga2V5c3RyZWFtXG5cdCAgICAgICAgICAgIGlmIChpdikge1xuXHQgICAgICAgICAgICAgICAga2V5c3RyZWFtID0gdGhpcy5fa2V5c3RyZWFtID0gaXYuc2xpY2UoMCk7XG5cblx0ICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBJViBmb3Igc3Vic2VxdWVudCBibG9ja3Ncblx0ICAgICAgICAgICAgICAgIHRoaXMuX2l2ID0gdW5kZWZpbmVkO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIGNpcGhlci5lbmNyeXB0QmxvY2soa2V5c3RyZWFtLCAwKTtcblxuXHQgICAgICAgICAgICAvLyBFbmNyeXB0XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmxvY2tTaXplOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIHdvcmRzW29mZnNldCArIGldIF49IGtleXN0cmVhbVtpXTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICBPRkIuRGVjcnlwdG9yID0gRW5jcnlwdG9yO1xuXG5cdCAgICByZXR1cm4gT0ZCO1xuXHR9KCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLm1vZGUuT0ZCO1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL2NpcGhlci1jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIiwgXCIuL2NpcGhlci1jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQvKipcblx0ICogQU5TSSBYLjkyMyBwYWRkaW5nIHN0cmF0ZWd5LlxuXHQgKi9cblx0Q3J5cHRvSlMucGFkLkFuc2lYOTIzID0ge1xuXHQgICAgcGFkOiBmdW5jdGlvbiAoZGF0YSwgYmxvY2tTaXplKSB7XG5cdCAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgdmFyIGRhdGFTaWdCeXRlcyA9IGRhdGEuc2lnQnl0ZXM7XG5cdCAgICAgICAgdmFyIGJsb2NrU2l6ZUJ5dGVzID0gYmxvY2tTaXplICogNDtcblxuXHQgICAgICAgIC8vIENvdW50IHBhZGRpbmcgYnl0ZXNcblx0ICAgICAgICB2YXIgblBhZGRpbmdCeXRlcyA9IGJsb2NrU2l6ZUJ5dGVzIC0gZGF0YVNpZ0J5dGVzICUgYmxvY2tTaXplQnl0ZXM7XG5cblx0ICAgICAgICAvLyBDb21wdXRlIGxhc3QgYnl0ZSBwb3NpdGlvblxuXHQgICAgICAgIHZhciBsYXN0Qnl0ZVBvcyA9IGRhdGFTaWdCeXRlcyArIG5QYWRkaW5nQnl0ZXMgLSAxO1xuXG5cdCAgICAgICAgLy8gUGFkXG5cdCAgICAgICAgZGF0YS5jbGFtcCgpO1xuXHQgICAgICAgIGRhdGEud29yZHNbbGFzdEJ5dGVQb3MgPj4+IDJdIHw9IG5QYWRkaW5nQnl0ZXMgPDwgKDI0IC0gKGxhc3RCeXRlUG9zICUgNCkgKiA4KTtcblx0ICAgICAgICBkYXRhLnNpZ0J5dGVzICs9IG5QYWRkaW5nQnl0ZXM7XG5cdCAgICB9LFxuXG5cdCAgICB1bnBhZDogZnVuY3Rpb24gKGRhdGEpIHtcblx0ICAgICAgICAvLyBHZXQgbnVtYmVyIG9mIHBhZGRpbmcgYnl0ZXMgZnJvbSBsYXN0IGJ5dGVcblx0ICAgICAgICB2YXIgblBhZGRpbmdCeXRlcyA9IGRhdGEud29yZHNbKGRhdGEuc2lnQnl0ZXMgLSAxKSA+Pj4gMl0gJiAweGZmO1xuXG5cdCAgICAgICAgLy8gUmVtb3ZlIHBhZGRpbmdcblx0ICAgICAgICBkYXRhLnNpZ0J5dGVzIC09IG5QYWRkaW5nQnl0ZXM7XG5cdCAgICB9XG5cdH07XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMucGFkLkFuc2l4OTIzO1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL2NpcGhlci1jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIiwgXCIuL2NpcGhlci1jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQvKipcblx0ICogSVNPIDEwMTI2IHBhZGRpbmcgc3RyYXRlZ3kuXG5cdCAqL1xuXHRDcnlwdG9KUy5wYWQuSXNvMTAxMjYgPSB7XG5cdCAgICBwYWQ6IGZ1bmN0aW9uIChkYXRhLCBibG9ja1NpemUpIHtcblx0ICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgIHZhciBibG9ja1NpemVCeXRlcyA9IGJsb2NrU2l6ZSAqIDQ7XG5cblx0ICAgICAgICAvLyBDb3VudCBwYWRkaW5nIGJ5dGVzXG5cdCAgICAgICAgdmFyIG5QYWRkaW5nQnl0ZXMgPSBibG9ja1NpemVCeXRlcyAtIGRhdGEuc2lnQnl0ZXMgJSBibG9ja1NpemVCeXRlcztcblxuXHQgICAgICAgIC8vIFBhZFxuXHQgICAgICAgIGRhdGEuY29uY2F0KENyeXB0b0pTLmxpYi5Xb3JkQXJyYXkucmFuZG9tKG5QYWRkaW5nQnl0ZXMgLSAxKSkuXG5cdCAgICAgICAgICAgICBjb25jYXQoQ3J5cHRvSlMubGliLldvcmRBcnJheS5jcmVhdGUoW25QYWRkaW5nQnl0ZXMgPDwgMjRdLCAxKSk7XG5cdCAgICB9LFxuXG5cdCAgICB1bnBhZDogZnVuY3Rpb24gKGRhdGEpIHtcblx0ICAgICAgICAvLyBHZXQgbnVtYmVyIG9mIHBhZGRpbmcgYnl0ZXMgZnJvbSBsYXN0IGJ5dGVcblx0ICAgICAgICB2YXIgblBhZGRpbmdCeXRlcyA9IGRhdGEud29yZHNbKGRhdGEuc2lnQnl0ZXMgLSAxKSA+Pj4gMl0gJiAweGZmO1xuXG5cdCAgICAgICAgLy8gUmVtb3ZlIHBhZGRpbmdcblx0ICAgICAgICBkYXRhLnNpZ0J5dGVzIC09IG5QYWRkaW5nQnl0ZXM7XG5cdCAgICB9XG5cdH07XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMucGFkLklzbzEwMTI2O1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL2NpcGhlci1jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIiwgXCIuL2NpcGhlci1jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQvKipcblx0ICogSVNPL0lFQyA5Nzk3LTEgUGFkZGluZyBNZXRob2QgMi5cblx0ICovXG5cdENyeXB0b0pTLnBhZC5Jc285Nzk3MSA9IHtcblx0ICAgIHBhZDogZnVuY3Rpb24gKGRhdGEsIGJsb2NrU2l6ZSkge1xuXHQgICAgICAgIC8vIEFkZCAweDgwIGJ5dGVcblx0ICAgICAgICBkYXRhLmNvbmNhdChDcnlwdG9KUy5saWIuV29yZEFycmF5LmNyZWF0ZShbMHg4MDAwMDAwMF0sIDEpKTtcblxuXHQgICAgICAgIC8vIFplcm8gcGFkIHRoZSByZXN0XG5cdCAgICAgICAgQ3J5cHRvSlMucGFkLlplcm9QYWRkaW5nLnBhZChkYXRhLCBibG9ja1NpemUpO1xuXHQgICAgfSxcblxuXHQgICAgdW5wYWQ6IGZ1bmN0aW9uIChkYXRhKSB7XG5cdCAgICAgICAgLy8gUmVtb3ZlIHplcm8gcGFkZGluZ1xuXHQgICAgICAgIENyeXB0b0pTLnBhZC5aZXJvUGFkZGluZy51bnBhZChkYXRhKTtcblxuXHQgICAgICAgIC8vIFJlbW92ZSBvbmUgbW9yZSBieXRlIC0tIHRoZSAweDgwIGJ5dGVcblx0ICAgICAgICBkYXRhLnNpZ0J5dGVzLS07XG5cdCAgICB9XG5cdH07XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMucGFkLklzbzk3OTcxO1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL2NpcGhlci1jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIiwgXCIuL2NpcGhlci1jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQvKipcblx0ICogQSBub29wIHBhZGRpbmcgc3RyYXRlZ3kuXG5cdCAqL1xuXHRDcnlwdG9KUy5wYWQuTm9QYWRkaW5nID0ge1xuXHQgICAgcGFkOiBmdW5jdGlvbiAoKSB7XG5cdCAgICB9LFxuXG5cdCAgICB1bnBhZDogZnVuY3Rpb24gKCkge1xuXHQgICAgfVxuXHR9O1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLnBhZC5Ob1BhZGRpbmc7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5LCB1bmRlZikge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSwgcmVxdWlyZShcIi4vY2lwaGVyLWNvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4vY2lwaGVyLWNvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdC8qKlxuXHQgKiBaZXJvIHBhZGRpbmcgc3RyYXRlZ3kuXG5cdCAqL1xuXHRDcnlwdG9KUy5wYWQuWmVyb1BhZGRpbmcgPSB7XG5cdCAgICBwYWQ6IGZ1bmN0aW9uIChkYXRhLCBibG9ja1NpemUpIHtcblx0ICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgIHZhciBibG9ja1NpemVCeXRlcyA9IGJsb2NrU2l6ZSAqIDQ7XG5cblx0ICAgICAgICAvLyBQYWRcblx0ICAgICAgICBkYXRhLmNsYW1wKCk7XG5cdCAgICAgICAgZGF0YS5zaWdCeXRlcyArPSBibG9ja1NpemVCeXRlcyAtICgoZGF0YS5zaWdCeXRlcyAlIGJsb2NrU2l6ZUJ5dGVzKSB8fCBibG9ja1NpemVCeXRlcyk7XG5cdCAgICB9LFxuXG5cdCAgICB1bnBhZDogZnVuY3Rpb24gKGRhdGEpIHtcblx0ICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgIHZhciBkYXRhV29yZHMgPSBkYXRhLndvcmRzO1xuXG5cdCAgICAgICAgLy8gVW5wYWRcblx0ICAgICAgICB2YXIgaSA9IGRhdGEuc2lnQnl0ZXMgLSAxO1xuXHQgICAgICAgIGZvciAodmFyIGkgPSBkYXRhLnNpZ0J5dGVzIC0gMTsgaSA+PSAwOyBpLS0pIHtcblx0ICAgICAgICAgICAgaWYgKCgoZGF0YVdvcmRzW2kgPj4+IDJdID4+PiAoMjQgLSAoaSAlIDQpICogOCkpICYgMHhmZikpIHtcblx0ICAgICAgICAgICAgICAgIGRhdGEuc2lnQnl0ZXMgPSBpICsgMTtcblx0ICAgICAgICAgICAgICAgIGJyZWFrO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXHR9O1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLnBhZC5aZXJvUGFkZGluZztcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnksIHVuZGVmKSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpLCByZXF1aXJlKFwiLi9zaGExXCIpLCByZXF1aXJlKFwiLi9obWFjXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIiwgXCIuL3NoYTFcIiwgXCIuL2htYWNcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBCYXNlID0gQ19saWIuQmFzZTtcblx0ICAgIHZhciBXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXk7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXHQgICAgdmFyIFNIQTEgPSBDX2FsZ28uU0hBMTtcblx0ICAgIHZhciBITUFDID0gQ19hbGdvLkhNQUM7XG5cblx0ICAgIC8qKlxuXHQgICAgICogUGFzc3dvcmQtQmFzZWQgS2V5IERlcml2YXRpb24gRnVuY3Rpb24gMiBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBQQktERjIgPSBDX2FsZ28uUEJLREYyID0gQmFzZS5leHRlbmQoe1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBrZXlTaXplIFRoZSBrZXkgc2l6ZSBpbiB3b3JkcyB0byBnZW5lcmF0ZS4gRGVmYXVsdDogNCAoMTI4IGJpdHMpXG5cdCAgICAgICAgICogQHByb3BlcnR5IHtIYXNoZXJ9IGhhc2hlciBUaGUgaGFzaGVyIHRvIHVzZS4gRGVmYXVsdDogU0hBMVxuXHQgICAgICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBpdGVyYXRpb25zIFRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB0byBwZXJmb3JtLiBEZWZhdWx0OiAxXG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2ZnOiBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgICAgIGtleVNpemU6IDEyOC8zMixcblx0ICAgICAgICAgICAgaGFzaGVyOiBTSEExLFxuXHQgICAgICAgICAgICBpdGVyYXRpb25zOiAxXG5cdCAgICAgICAgfSksXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBJbml0aWFsaXplcyBhIG5ld2x5IGNyZWF0ZWQga2V5IGRlcml2YXRpb24gZnVuY3Rpb24uXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gY2ZnIChPcHRpb25hbCkgVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byB1c2UgZm9yIHRoZSBkZXJpdmF0aW9uLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIga2RmID0gQ3J5cHRvSlMuYWxnby5QQktERjIuY3JlYXRlKCk7XG5cdCAgICAgICAgICogICAgIHZhciBrZGYgPSBDcnlwdG9KUy5hbGdvLlBCS0RGMi5jcmVhdGUoeyBrZXlTaXplOiA4IH0pO1xuXHQgICAgICAgICAqICAgICB2YXIga2RmID0gQ3J5cHRvSlMuYWxnby5QQktERjIuY3JlYXRlKHsga2V5U2l6ZTogOCwgaXRlcmF0aW9uczogMTAwMCB9KTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBpbml0OiBmdW5jdGlvbiAoY2ZnKSB7XG5cdCAgICAgICAgICAgIHRoaXMuY2ZnID0gdGhpcy5jZmcuZXh0ZW5kKGNmZyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbXB1dGVzIHRoZSBQYXNzd29yZC1CYXNlZCBLZXkgRGVyaXZhdGlvbiBGdW5jdGlvbiAyLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBwYXNzd29yZCBUaGUgcGFzc3dvcmQuXG5cdCAgICAgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBzYWx0IEEgc2FsdC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGRlcml2ZWQga2V5LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIga2V5ID0ga2RmLmNvbXB1dGUocGFzc3dvcmQsIHNhbHQpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIGNvbXB1dGU6IGZ1bmN0aW9uIChwYXNzd29yZCwgc2FsdCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgY2ZnID0gdGhpcy5jZmc7XG5cblx0ICAgICAgICAgICAgLy8gSW5pdCBITUFDXG5cdCAgICAgICAgICAgIHZhciBobWFjID0gSE1BQy5jcmVhdGUoY2ZnLmhhc2hlciwgcGFzc3dvcmQpO1xuXG5cdCAgICAgICAgICAgIC8vIEluaXRpYWwgdmFsdWVzXG5cdCAgICAgICAgICAgIHZhciBkZXJpdmVkS2V5ID0gV29yZEFycmF5LmNyZWF0ZSgpO1xuXHQgICAgICAgICAgICB2YXIgYmxvY2tJbmRleCA9IFdvcmRBcnJheS5jcmVhdGUoWzB4MDAwMDAwMDFdKTtcblxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGRlcml2ZWRLZXlXb3JkcyA9IGRlcml2ZWRLZXkud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBibG9ja0luZGV4V29yZHMgPSBibG9ja0luZGV4LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIga2V5U2l6ZSA9IGNmZy5rZXlTaXplO1xuXHQgICAgICAgICAgICB2YXIgaXRlcmF0aW9ucyA9IGNmZy5pdGVyYXRpb25zO1xuXG5cdCAgICAgICAgICAgIC8vIEdlbmVyYXRlIGtleVxuXHQgICAgICAgICAgICB3aGlsZSAoZGVyaXZlZEtleVdvcmRzLmxlbmd0aCA8IGtleVNpemUpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBibG9jayA9IGhtYWMudXBkYXRlKHNhbHQpLmZpbmFsaXplKGJsb2NrSW5kZXgpO1xuXHQgICAgICAgICAgICAgICAgaG1hYy5yZXNldCgpO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgICAgIHZhciBibG9ja1dvcmRzID0gYmxvY2sud29yZHM7XG5cdCAgICAgICAgICAgICAgICB2YXIgYmxvY2tXb3Jkc0xlbmd0aCA9IGJsb2NrV29yZHMubGVuZ3RoO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBJdGVyYXRpb25zXG5cdCAgICAgICAgICAgICAgICB2YXIgaW50ZXJtZWRpYXRlID0gYmxvY2s7XG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGl0ZXJhdGlvbnM7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIGludGVybWVkaWF0ZSA9IGhtYWMuZmluYWxpemUoaW50ZXJtZWRpYXRlKTtcblx0ICAgICAgICAgICAgICAgICAgICBobWFjLnJlc2V0KCk7XG5cblx0ICAgICAgICAgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICAgICAgICAgIHZhciBpbnRlcm1lZGlhdGVXb3JkcyA9IGludGVybWVkaWF0ZS53b3JkcztcblxuXHQgICAgICAgICAgICAgICAgICAgIC8vIFhPUiBpbnRlcm1lZGlhdGUgd2l0aCBibG9ja1xuXHQgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYmxvY2tXb3Jkc0xlbmd0aDsgaisrKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrV29yZHNbal0gXj0gaW50ZXJtZWRpYXRlV29yZHNbal07XG5cdCAgICAgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICBkZXJpdmVkS2V5LmNvbmNhdChibG9jayk7XG5cdCAgICAgICAgICAgICAgICBibG9ja0luZGV4V29yZHNbMF0rKztcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICBkZXJpdmVkS2V5LnNpZ0J5dGVzID0ga2V5U2l6ZSAqIDQ7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGRlcml2ZWRLZXk7XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogQ29tcHV0ZXMgdGhlIFBhc3N3b3JkLUJhc2VkIEtleSBEZXJpdmF0aW9uIEZ1bmN0aW9uIDIuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBwYXNzd29yZCBUaGUgcGFzc3dvcmQuXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IHNhbHQgQSBzYWx0LlxuXHQgICAgICogQHBhcmFtIHtPYmplY3R9IGNmZyAoT3B0aW9uYWwpIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gdXNlIGZvciB0aGlzIGNvbXB1dGF0aW9uLlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGRlcml2ZWQga2V5LlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIga2V5ID0gQ3J5cHRvSlMuUEJLREYyKHBhc3N3b3JkLCBzYWx0KTtcblx0ICAgICAqICAgICB2YXIga2V5ID0gQ3J5cHRvSlMuUEJLREYyKHBhc3N3b3JkLCBzYWx0LCB7IGtleVNpemU6IDggfSk7XG5cdCAgICAgKiAgICAgdmFyIGtleSA9IENyeXB0b0pTLlBCS0RGMihwYXNzd29yZCwgc2FsdCwgeyBrZXlTaXplOiA4LCBpdGVyYXRpb25zOiAxMDAwIH0pO1xuXHQgICAgICovXG5cdCAgICBDLlBCS0RGMiA9IGZ1bmN0aW9uIChwYXNzd29yZCwgc2FsdCwgY2ZnKSB7XG5cdCAgICAgICAgcmV0dXJuIFBCS0RGMi5jcmVhdGUoY2ZnKS5jb21wdXRlKHBhc3N3b3JkLCBzYWx0KTtcblx0ICAgIH07XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMuUEJLREYyO1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL2VuYy1iYXNlNjRcIiksIHJlcXVpcmUoXCIuL21kNVwiKSwgcmVxdWlyZShcIi4vZXZwa2RmXCIpLCByZXF1aXJlKFwiLi9jaXBoZXItY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCIsIFwiLi9lbmMtYmFzZTY0XCIsIFwiLi9tZDVcIiwgXCIuL2V2cGtkZlwiLCBcIi4vY2lwaGVyLWNvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBTdHJlYW1DaXBoZXIgPSBDX2xpYi5TdHJlYW1DaXBoZXI7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXG5cdCAgICAvLyBSZXVzYWJsZSBvYmplY3RzXG5cdCAgICB2YXIgUyAgPSBbXTtcblx0ICAgIHZhciBDXyA9IFtdO1xuXHQgICAgdmFyIEcgID0gW107XG5cblx0ICAgIC8qKlxuXHQgICAgICogUmFiYml0IHN0cmVhbSBjaXBoZXIgYWxnb3JpdGhtLlxuXHQgICAgICpcblx0ICAgICAqIFRoaXMgaXMgYSBsZWdhY3kgdmVyc2lvbiB0aGF0IG5lZ2xlY3RlZCB0byBjb252ZXJ0IHRoZSBrZXkgdG8gbGl0dGxlLWVuZGlhbi5cblx0ICAgICAqIFRoaXMgZXJyb3IgZG9lc24ndCBhZmZlY3QgdGhlIGNpcGhlcidzIHNlY3VyaXR5LFxuXHQgICAgICogYnV0IGl0IGRvZXMgYWZmZWN0IGl0cyBjb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgaW1wbGVtZW50YXRpb25zLlxuXHQgICAgICovXG5cdCAgICB2YXIgUmFiYml0TGVnYWN5ID0gQ19hbGdvLlJhYmJpdExlZ2FjeSA9IFN0cmVhbUNpcGhlci5leHRlbmQoe1xuXHQgICAgICAgIF9kb1Jlc2V0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgSyA9IHRoaXMuX2tleS53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIGl2ID0gdGhpcy5jZmcuaXY7XG5cblx0ICAgICAgICAgICAgLy8gR2VuZXJhdGUgaW5pdGlhbCBzdGF0ZSB2YWx1ZXNcblx0ICAgICAgICAgICAgdmFyIFggPSB0aGlzLl9YID0gW1xuXHQgICAgICAgICAgICAgICAgS1swXSwgKEtbM10gPDwgMTYpIHwgKEtbMl0gPj4+IDE2KSxcblx0ICAgICAgICAgICAgICAgIEtbMV0sIChLWzBdIDw8IDE2KSB8IChLWzNdID4+PiAxNiksXG5cdCAgICAgICAgICAgICAgICBLWzJdLCAoS1sxXSA8PCAxNikgfCAoS1swXSA+Pj4gMTYpLFxuXHQgICAgICAgICAgICAgICAgS1szXSwgKEtbMl0gPDwgMTYpIHwgKEtbMV0gPj4+IDE2KVxuXHQgICAgICAgICAgICBdO1xuXG5cdCAgICAgICAgICAgIC8vIEdlbmVyYXRlIGluaXRpYWwgY291bnRlciB2YWx1ZXNcblx0ICAgICAgICAgICAgdmFyIEMgPSB0aGlzLl9DID0gW1xuXHQgICAgICAgICAgICAgICAgKEtbMl0gPDwgMTYpIHwgKEtbMl0gPj4+IDE2KSwgKEtbMF0gJiAweGZmZmYwMDAwKSB8IChLWzFdICYgMHgwMDAwZmZmZiksXG5cdCAgICAgICAgICAgICAgICAoS1szXSA8PCAxNikgfCAoS1szXSA+Pj4gMTYpLCAoS1sxXSAmIDB4ZmZmZjAwMDApIHwgKEtbMl0gJiAweDAwMDBmZmZmKSxcblx0ICAgICAgICAgICAgICAgIChLWzBdIDw8IDE2KSB8IChLWzBdID4+PiAxNiksIChLWzJdICYgMHhmZmZmMDAwMCkgfCAoS1szXSAmIDB4MDAwMGZmZmYpLFxuXHQgICAgICAgICAgICAgICAgKEtbMV0gPDwgMTYpIHwgKEtbMV0gPj4+IDE2KSwgKEtbM10gJiAweGZmZmYwMDAwKSB8IChLWzBdICYgMHgwMDAwZmZmZilcblx0ICAgICAgICAgICAgXTtcblxuXHQgICAgICAgICAgICAvLyBDYXJyeSBiaXRcblx0ICAgICAgICAgICAgdGhpcy5fYiA9IDA7XG5cblx0ICAgICAgICAgICAgLy8gSXRlcmF0ZSB0aGUgc3lzdGVtIGZvdXIgdGltZXNcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIG5leHRTdGF0ZS5jYWxsKHRoaXMpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gTW9kaWZ5IHRoZSBjb3VudGVyc1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgQ1tpXSBePSBYWyhpICsgNCkgJiA3XTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIElWIHNldHVwXG5cdCAgICAgICAgICAgIGlmIChpdikge1xuXHQgICAgICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgICAgICB2YXIgSVYgPSBpdi53b3Jkcztcblx0ICAgICAgICAgICAgICAgIHZhciBJVl8wID0gSVZbMF07XG5cdCAgICAgICAgICAgICAgICB2YXIgSVZfMSA9IElWWzFdO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBHZW5lcmF0ZSBmb3VyIHN1YnZlY3RvcnNcblx0ICAgICAgICAgICAgICAgIHZhciBpMCA9ICgoKElWXzAgPDwgOCkgfCAoSVZfMCA+Pj4gMjQpKSAmIDB4MDBmZjAwZmYpIHwgKCgoSVZfMCA8PCAyNCkgfCAoSVZfMCA+Pj4gOCkpICYgMHhmZjAwZmYwMCk7XG5cdCAgICAgICAgICAgICAgICB2YXIgaTIgPSAoKChJVl8xIDw8IDgpIHwgKElWXzEgPj4+IDI0KSkgJiAweDAwZmYwMGZmKSB8ICgoKElWXzEgPDwgMjQpIHwgKElWXzEgPj4+IDgpKSAmIDB4ZmYwMGZmMDApO1xuXHQgICAgICAgICAgICAgICAgdmFyIGkxID0gKGkwID4+PiAxNikgfCAoaTIgJiAweGZmZmYwMDAwKTtcblx0ICAgICAgICAgICAgICAgIHZhciBpMyA9IChpMiA8PCAxNikgIHwgKGkwICYgMHgwMDAwZmZmZik7XG5cblx0ICAgICAgICAgICAgICAgIC8vIE1vZGlmeSBjb3VudGVyIHZhbHVlc1xuXHQgICAgICAgICAgICAgICAgQ1swXSBePSBpMDtcblx0ICAgICAgICAgICAgICAgIENbMV0gXj0gaTE7XG5cdCAgICAgICAgICAgICAgICBDWzJdIF49IGkyO1xuXHQgICAgICAgICAgICAgICAgQ1szXSBePSBpMztcblx0ICAgICAgICAgICAgICAgIENbNF0gXj0gaTA7XG5cdCAgICAgICAgICAgICAgICBDWzVdIF49IGkxO1xuXHQgICAgICAgICAgICAgICAgQ1s2XSBePSBpMjtcblx0ICAgICAgICAgICAgICAgIENbN10gXj0gaTM7XG5cblx0ICAgICAgICAgICAgICAgIC8vIEl0ZXJhdGUgdGhlIHN5c3RlbSBmb3VyIHRpbWVzXG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZS5jYWxsKHRoaXMpO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9kb1Byb2Nlc3NCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgWCA9IHRoaXMuX1g7XG5cblx0ICAgICAgICAgICAgLy8gSXRlcmF0ZSB0aGUgc3lzdGVtXG5cdCAgICAgICAgICAgIG5leHRTdGF0ZS5jYWxsKHRoaXMpO1xuXG5cdCAgICAgICAgICAgIC8vIEdlbmVyYXRlIGZvdXIga2V5c3RyZWFtIHdvcmRzXG5cdCAgICAgICAgICAgIFNbMF0gPSBYWzBdIF4gKFhbNV0gPj4+IDE2KSBeIChYWzNdIDw8IDE2KTtcblx0ICAgICAgICAgICAgU1sxXSA9IFhbMl0gXiAoWFs3XSA+Pj4gMTYpIF4gKFhbNV0gPDwgMTYpO1xuXHQgICAgICAgICAgICBTWzJdID0gWFs0XSBeIChYWzFdID4+PiAxNikgXiAoWFs3XSA8PCAxNik7XG5cdCAgICAgICAgICAgIFNbM10gPSBYWzZdIF4gKFhbM10gPj4+IDE2KSBeIChYWzFdIDw8IDE2KTtcblxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgLy8gU3dhcCBlbmRpYW5cblx0ICAgICAgICAgICAgICAgIFNbaV0gPSAoKChTW2ldIDw8IDgpICB8IChTW2ldID4+PiAyNCkpICYgMHgwMGZmMDBmZikgfFxuXHQgICAgICAgICAgICAgICAgICAgICAgICgoKFNbaV0gPDwgMjQpIHwgKFNbaV0gPj4+IDgpKSAgJiAweGZmMDBmZjAwKTtcblxuXHQgICAgICAgICAgICAgICAgLy8gRW5jcnlwdFxuXHQgICAgICAgICAgICAgICAgTVtvZmZzZXQgKyBpXSBePSBTW2ldO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGJsb2NrU2l6ZTogMTI4LzMyLFxuXG5cdCAgICAgICAgaXZTaXplOiA2NC8zMlxuXHQgICAgfSk7XG5cblx0ICAgIGZ1bmN0aW9uIG5leHRTdGF0ZSgpIHtcblx0ICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICB2YXIgWCA9IHRoaXMuX1g7XG5cdCAgICAgICAgdmFyIEMgPSB0aGlzLl9DO1xuXG5cdCAgICAgICAgLy8gU2F2ZSBvbGQgY291bnRlciB2YWx1ZXNcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuXHQgICAgICAgICAgICBDX1tpXSA9IENbaV07XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gQ2FsY3VsYXRlIG5ldyBjb3VudGVyIHZhbHVlc1xuXHQgICAgICAgIENbMF0gPSAoQ1swXSArIDB4NGQzNGQzNGQgKyB0aGlzLl9iKSB8IDA7XG5cdCAgICAgICAgQ1sxXSA9IChDWzFdICsgMHhkMzRkMzRkMyArICgoQ1swXSA+Pj4gMCkgPCAoQ19bMF0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1syXSA9IChDWzJdICsgMHgzNGQzNGQzNCArICgoQ1sxXSA+Pj4gMCkgPCAoQ19bMV0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1szXSA9IChDWzNdICsgMHg0ZDM0ZDM0ZCArICgoQ1syXSA+Pj4gMCkgPCAoQ19bMl0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1s0XSA9IChDWzRdICsgMHhkMzRkMzRkMyArICgoQ1szXSA+Pj4gMCkgPCAoQ19bM10gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1s1XSA9IChDWzVdICsgMHgzNGQzNGQzNCArICgoQ1s0XSA+Pj4gMCkgPCAoQ19bNF0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1s2XSA9IChDWzZdICsgMHg0ZDM0ZDM0ZCArICgoQ1s1XSA+Pj4gMCkgPCAoQ19bNV0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1s3XSA9IChDWzddICsgMHhkMzRkMzRkMyArICgoQ1s2XSA+Pj4gMCkgPCAoQ19bNl0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgdGhpcy5fYiA9IChDWzddID4+PiAwKSA8IChDX1s3XSA+Pj4gMCkgPyAxIDogMDtcblxuXHQgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZy12YWx1ZXNcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuXHQgICAgICAgICAgICB2YXIgZ3ggPSBYW2ldICsgQ1tpXTtcblxuXHQgICAgICAgICAgICAvLyBDb25zdHJ1Y3QgaGlnaCBhbmQgbG93IGFyZ3VtZW50IGZvciBzcXVhcmluZ1xuXHQgICAgICAgICAgICB2YXIgZ2EgPSBneCAmIDB4ZmZmZjtcblx0ICAgICAgICAgICAgdmFyIGdiID0gZ3ggPj4+IDE2O1xuXG5cdCAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBoaWdoIGFuZCBsb3cgcmVzdWx0IG9mIHNxdWFyaW5nXG5cdCAgICAgICAgICAgIHZhciBnaCA9ICgoKChnYSAqIGdhKSA+Pj4gMTcpICsgZ2EgKiBnYikgPj4+IDE1KSArIGdiICogZ2I7XG5cdCAgICAgICAgICAgIHZhciBnbCA9ICgoKGd4ICYgMHhmZmZmMDAwMCkgKiBneCkgfCAwKSArICgoKGd4ICYgMHgwMDAwZmZmZikgKiBneCkgfCAwKTtcblxuXHQgICAgICAgICAgICAvLyBIaWdoIFhPUiBsb3dcblx0ICAgICAgICAgICAgR1tpXSA9IGdoIF4gZ2w7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gQ2FsY3VsYXRlIG5ldyBzdGF0ZSB2YWx1ZXNcblx0ICAgICAgICBYWzBdID0gKEdbMF0gKyAoKEdbN10gPDwgMTYpIHwgKEdbN10gPj4+IDE2KSkgKyAoKEdbNl0gPDwgMTYpIHwgKEdbNl0gPj4+IDE2KSkpIHwgMDtcblx0ICAgICAgICBYWzFdID0gKEdbMV0gKyAoKEdbMF0gPDwgOCkgIHwgKEdbMF0gPj4+IDI0KSkgKyBHWzddKSB8IDA7XG5cdCAgICAgICAgWFsyXSA9IChHWzJdICsgKChHWzFdIDw8IDE2KSB8IChHWzFdID4+PiAxNikpICsgKChHWzBdIDw8IDE2KSB8IChHWzBdID4+PiAxNikpKSB8IDA7XG5cdCAgICAgICAgWFszXSA9IChHWzNdICsgKChHWzJdIDw8IDgpICB8IChHWzJdID4+PiAyNCkpICsgR1sxXSkgfCAwO1xuXHQgICAgICAgIFhbNF0gPSAoR1s0XSArICgoR1szXSA8PCAxNikgfCAoR1szXSA+Pj4gMTYpKSArICgoR1syXSA8PCAxNikgfCAoR1syXSA+Pj4gMTYpKSkgfCAwO1xuXHQgICAgICAgIFhbNV0gPSAoR1s1XSArICgoR1s0XSA8PCA4KSAgfCAoR1s0XSA+Pj4gMjQpKSArIEdbM10pIHwgMDtcblx0ICAgICAgICBYWzZdID0gKEdbNl0gKyAoKEdbNV0gPDwgMTYpIHwgKEdbNV0gPj4+IDE2KSkgKyAoKEdbNF0gPDwgMTYpIHwgKEdbNF0gPj4+IDE2KSkpIHwgMDtcblx0ICAgICAgICBYWzddID0gKEdbN10gKyAoKEdbNl0gPDwgOCkgIHwgKEdbNl0gPj4+IDI0KSkgKyBHWzVdKSB8IDA7XG5cdCAgICB9XG5cblx0ICAgIC8qKlxuXHQgICAgICogU2hvcnRjdXQgZnVuY3Rpb25zIHRvIHRoZSBjaXBoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBjaXBoZXJ0ZXh0ID0gQ3J5cHRvSlMuUmFiYml0TGVnYWN5LmVuY3J5cHQobWVzc2FnZSwga2V5LCBjZmcpO1xuXHQgICAgICogICAgIHZhciBwbGFpbnRleHQgID0gQ3J5cHRvSlMuUmFiYml0TGVnYWN5LmRlY3J5cHQoY2lwaGVydGV4dCwga2V5LCBjZmcpO1xuXHQgICAgICovXG5cdCAgICBDLlJhYmJpdExlZ2FjeSA9IFN0cmVhbUNpcGhlci5fY3JlYXRlSGVscGVyKFJhYmJpdExlZ2FjeSk7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMuUmFiYml0TGVnYWN5O1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL2VuYy1iYXNlNjRcIiksIHJlcXVpcmUoXCIuL21kNVwiKSwgcmVxdWlyZShcIi4vZXZwa2RmXCIpLCByZXF1aXJlKFwiLi9jaXBoZXItY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCIsIFwiLi9lbmMtYmFzZTY0XCIsIFwiLi9tZDVcIiwgXCIuL2V2cGtkZlwiLCBcIi4vY2lwaGVyLWNvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBTdHJlYW1DaXBoZXIgPSBDX2xpYi5TdHJlYW1DaXBoZXI7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXG5cdCAgICAvLyBSZXVzYWJsZSBvYmplY3RzXG5cdCAgICB2YXIgUyAgPSBbXTtcblx0ICAgIHZhciBDXyA9IFtdO1xuXHQgICAgdmFyIEcgID0gW107XG5cblx0ICAgIC8qKlxuXHQgICAgICogUmFiYml0IHN0cmVhbSBjaXBoZXIgYWxnb3JpdGhtXG5cdCAgICAgKi9cblx0ICAgIHZhciBSYWJiaXQgPSBDX2FsZ28uUmFiYml0ID0gU3RyZWFtQ2lwaGVyLmV4dGVuZCh7XG5cdCAgICAgICAgX2RvUmVzZXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBLID0gdGhpcy5fa2V5LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgaXYgPSB0aGlzLmNmZy5pdjtcblxuXHQgICAgICAgICAgICAvLyBTd2FwIGVuZGlhblxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgS1tpXSA9ICgoKEtbaV0gPDwgOCkgIHwgKEtbaV0gPj4+IDI0KSkgJiAweDAwZmYwMGZmKSB8XG5cdCAgICAgICAgICAgICAgICAgICAgICAgKCgoS1tpXSA8PCAyNCkgfCAoS1tpXSA+Pj4gOCkpICAmIDB4ZmYwMGZmMDApO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gR2VuZXJhdGUgaW5pdGlhbCBzdGF0ZSB2YWx1ZXNcblx0ICAgICAgICAgICAgdmFyIFggPSB0aGlzLl9YID0gW1xuXHQgICAgICAgICAgICAgICAgS1swXSwgKEtbM10gPDwgMTYpIHwgKEtbMl0gPj4+IDE2KSxcblx0ICAgICAgICAgICAgICAgIEtbMV0sIChLWzBdIDw8IDE2KSB8IChLWzNdID4+PiAxNiksXG5cdCAgICAgICAgICAgICAgICBLWzJdLCAoS1sxXSA8PCAxNikgfCAoS1swXSA+Pj4gMTYpLFxuXHQgICAgICAgICAgICAgICAgS1szXSwgKEtbMl0gPDwgMTYpIHwgKEtbMV0gPj4+IDE2KVxuXHQgICAgICAgICAgICBdO1xuXG5cdCAgICAgICAgICAgIC8vIEdlbmVyYXRlIGluaXRpYWwgY291bnRlciB2YWx1ZXNcblx0ICAgICAgICAgICAgdmFyIEMgPSB0aGlzLl9DID0gW1xuXHQgICAgICAgICAgICAgICAgKEtbMl0gPDwgMTYpIHwgKEtbMl0gPj4+IDE2KSwgKEtbMF0gJiAweGZmZmYwMDAwKSB8IChLWzFdICYgMHgwMDAwZmZmZiksXG5cdCAgICAgICAgICAgICAgICAoS1szXSA8PCAxNikgfCAoS1szXSA+Pj4gMTYpLCAoS1sxXSAmIDB4ZmZmZjAwMDApIHwgKEtbMl0gJiAweDAwMDBmZmZmKSxcblx0ICAgICAgICAgICAgICAgIChLWzBdIDw8IDE2KSB8IChLWzBdID4+PiAxNiksIChLWzJdICYgMHhmZmZmMDAwMCkgfCAoS1szXSAmIDB4MDAwMGZmZmYpLFxuXHQgICAgICAgICAgICAgICAgKEtbMV0gPDwgMTYpIHwgKEtbMV0gPj4+IDE2KSwgKEtbM10gJiAweGZmZmYwMDAwKSB8IChLWzBdICYgMHgwMDAwZmZmZilcblx0ICAgICAgICAgICAgXTtcblxuXHQgICAgICAgICAgICAvLyBDYXJyeSBiaXRcblx0ICAgICAgICAgICAgdGhpcy5fYiA9IDA7XG5cblx0ICAgICAgICAgICAgLy8gSXRlcmF0ZSB0aGUgc3lzdGVtIGZvdXIgdGltZXNcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIG5leHRTdGF0ZS5jYWxsKHRoaXMpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gTW9kaWZ5IHRoZSBjb3VudGVyc1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgQ1tpXSBePSBYWyhpICsgNCkgJiA3XTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIElWIHNldHVwXG5cdCAgICAgICAgICAgIGlmIChpdikge1xuXHQgICAgICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgICAgICB2YXIgSVYgPSBpdi53b3Jkcztcblx0ICAgICAgICAgICAgICAgIHZhciBJVl8wID0gSVZbMF07XG5cdCAgICAgICAgICAgICAgICB2YXIgSVZfMSA9IElWWzFdO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBHZW5lcmF0ZSBmb3VyIHN1YnZlY3RvcnNcblx0ICAgICAgICAgICAgICAgIHZhciBpMCA9ICgoKElWXzAgPDwgOCkgfCAoSVZfMCA+Pj4gMjQpKSAmIDB4MDBmZjAwZmYpIHwgKCgoSVZfMCA8PCAyNCkgfCAoSVZfMCA+Pj4gOCkpICYgMHhmZjAwZmYwMCk7XG5cdCAgICAgICAgICAgICAgICB2YXIgaTIgPSAoKChJVl8xIDw8IDgpIHwgKElWXzEgPj4+IDI0KSkgJiAweDAwZmYwMGZmKSB8ICgoKElWXzEgPDwgMjQpIHwgKElWXzEgPj4+IDgpKSAmIDB4ZmYwMGZmMDApO1xuXHQgICAgICAgICAgICAgICAgdmFyIGkxID0gKGkwID4+PiAxNikgfCAoaTIgJiAweGZmZmYwMDAwKTtcblx0ICAgICAgICAgICAgICAgIHZhciBpMyA9IChpMiA8PCAxNikgIHwgKGkwICYgMHgwMDAwZmZmZik7XG5cblx0ICAgICAgICAgICAgICAgIC8vIE1vZGlmeSBjb3VudGVyIHZhbHVlc1xuXHQgICAgICAgICAgICAgICAgQ1swXSBePSBpMDtcblx0ICAgICAgICAgICAgICAgIENbMV0gXj0gaTE7XG5cdCAgICAgICAgICAgICAgICBDWzJdIF49IGkyO1xuXHQgICAgICAgICAgICAgICAgQ1szXSBePSBpMztcblx0ICAgICAgICAgICAgICAgIENbNF0gXj0gaTA7XG5cdCAgICAgICAgICAgICAgICBDWzVdIF49IGkxO1xuXHQgICAgICAgICAgICAgICAgQ1s2XSBePSBpMjtcblx0ICAgICAgICAgICAgICAgIENbN10gXj0gaTM7XG5cblx0ICAgICAgICAgICAgICAgIC8vIEl0ZXJhdGUgdGhlIHN5c3RlbSBmb3VyIHRpbWVzXG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZS5jYWxsKHRoaXMpO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9kb1Byb2Nlc3NCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgWCA9IHRoaXMuX1g7XG5cblx0ICAgICAgICAgICAgLy8gSXRlcmF0ZSB0aGUgc3lzdGVtXG5cdCAgICAgICAgICAgIG5leHRTdGF0ZS5jYWxsKHRoaXMpO1xuXG5cdCAgICAgICAgICAgIC8vIEdlbmVyYXRlIGZvdXIga2V5c3RyZWFtIHdvcmRzXG5cdCAgICAgICAgICAgIFNbMF0gPSBYWzBdIF4gKFhbNV0gPj4+IDE2KSBeIChYWzNdIDw8IDE2KTtcblx0ICAgICAgICAgICAgU1sxXSA9IFhbMl0gXiAoWFs3XSA+Pj4gMTYpIF4gKFhbNV0gPDwgMTYpO1xuXHQgICAgICAgICAgICBTWzJdID0gWFs0XSBeIChYWzFdID4+PiAxNikgXiAoWFs3XSA8PCAxNik7XG5cdCAgICAgICAgICAgIFNbM10gPSBYWzZdIF4gKFhbM10gPj4+IDE2KSBeIChYWzFdIDw8IDE2KTtcblxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgLy8gU3dhcCBlbmRpYW5cblx0ICAgICAgICAgICAgICAgIFNbaV0gPSAoKChTW2ldIDw8IDgpICB8IChTW2ldID4+PiAyNCkpICYgMHgwMGZmMDBmZikgfFxuXHQgICAgICAgICAgICAgICAgICAgICAgICgoKFNbaV0gPDwgMjQpIHwgKFNbaV0gPj4+IDgpKSAgJiAweGZmMDBmZjAwKTtcblxuXHQgICAgICAgICAgICAgICAgLy8gRW5jcnlwdFxuXHQgICAgICAgICAgICAgICAgTVtvZmZzZXQgKyBpXSBePSBTW2ldO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGJsb2NrU2l6ZTogMTI4LzMyLFxuXG5cdCAgICAgICAgaXZTaXplOiA2NC8zMlxuXHQgICAgfSk7XG5cblx0ICAgIGZ1bmN0aW9uIG5leHRTdGF0ZSgpIHtcblx0ICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICB2YXIgWCA9IHRoaXMuX1g7XG5cdCAgICAgICAgdmFyIEMgPSB0aGlzLl9DO1xuXG5cdCAgICAgICAgLy8gU2F2ZSBvbGQgY291bnRlciB2YWx1ZXNcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuXHQgICAgICAgICAgICBDX1tpXSA9IENbaV07XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gQ2FsY3VsYXRlIG5ldyBjb3VudGVyIHZhbHVlc1xuXHQgICAgICAgIENbMF0gPSAoQ1swXSArIDB4NGQzNGQzNGQgKyB0aGlzLl9iKSB8IDA7XG5cdCAgICAgICAgQ1sxXSA9IChDWzFdICsgMHhkMzRkMzRkMyArICgoQ1swXSA+Pj4gMCkgPCAoQ19bMF0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1syXSA9IChDWzJdICsgMHgzNGQzNGQzNCArICgoQ1sxXSA+Pj4gMCkgPCAoQ19bMV0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1szXSA9IChDWzNdICsgMHg0ZDM0ZDM0ZCArICgoQ1syXSA+Pj4gMCkgPCAoQ19bMl0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1s0XSA9IChDWzRdICsgMHhkMzRkMzRkMyArICgoQ1szXSA+Pj4gMCkgPCAoQ19bM10gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1s1XSA9IChDWzVdICsgMHgzNGQzNGQzNCArICgoQ1s0XSA+Pj4gMCkgPCAoQ19bNF0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1s2XSA9IChDWzZdICsgMHg0ZDM0ZDM0ZCArICgoQ1s1XSA+Pj4gMCkgPCAoQ19bNV0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgQ1s3XSA9IChDWzddICsgMHhkMzRkMzRkMyArICgoQ1s2XSA+Pj4gMCkgPCAoQ19bNl0gPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgdGhpcy5fYiA9IChDWzddID4+PiAwKSA8IChDX1s3XSA+Pj4gMCkgPyAxIDogMDtcblxuXHQgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZy12YWx1ZXNcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuXHQgICAgICAgICAgICB2YXIgZ3ggPSBYW2ldICsgQ1tpXTtcblxuXHQgICAgICAgICAgICAvLyBDb25zdHJ1Y3QgaGlnaCBhbmQgbG93IGFyZ3VtZW50IGZvciBzcXVhcmluZ1xuXHQgICAgICAgICAgICB2YXIgZ2EgPSBneCAmIDB4ZmZmZjtcblx0ICAgICAgICAgICAgdmFyIGdiID0gZ3ggPj4+IDE2O1xuXG5cdCAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBoaWdoIGFuZCBsb3cgcmVzdWx0IG9mIHNxdWFyaW5nXG5cdCAgICAgICAgICAgIHZhciBnaCA9ICgoKChnYSAqIGdhKSA+Pj4gMTcpICsgZ2EgKiBnYikgPj4+IDE1KSArIGdiICogZ2I7XG5cdCAgICAgICAgICAgIHZhciBnbCA9ICgoKGd4ICYgMHhmZmZmMDAwMCkgKiBneCkgfCAwKSArICgoKGd4ICYgMHgwMDAwZmZmZikgKiBneCkgfCAwKTtcblxuXHQgICAgICAgICAgICAvLyBIaWdoIFhPUiBsb3dcblx0ICAgICAgICAgICAgR1tpXSA9IGdoIF4gZ2w7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gQ2FsY3VsYXRlIG5ldyBzdGF0ZSB2YWx1ZXNcblx0ICAgICAgICBYWzBdID0gKEdbMF0gKyAoKEdbN10gPDwgMTYpIHwgKEdbN10gPj4+IDE2KSkgKyAoKEdbNl0gPDwgMTYpIHwgKEdbNl0gPj4+IDE2KSkpIHwgMDtcblx0ICAgICAgICBYWzFdID0gKEdbMV0gKyAoKEdbMF0gPDwgOCkgIHwgKEdbMF0gPj4+IDI0KSkgKyBHWzddKSB8IDA7XG5cdCAgICAgICAgWFsyXSA9IChHWzJdICsgKChHWzFdIDw8IDE2KSB8IChHWzFdID4+PiAxNikpICsgKChHWzBdIDw8IDE2KSB8IChHWzBdID4+PiAxNikpKSB8IDA7XG5cdCAgICAgICAgWFszXSA9IChHWzNdICsgKChHWzJdIDw8IDgpICB8IChHWzJdID4+PiAyNCkpICsgR1sxXSkgfCAwO1xuXHQgICAgICAgIFhbNF0gPSAoR1s0XSArICgoR1szXSA8PCAxNikgfCAoR1szXSA+Pj4gMTYpKSArICgoR1syXSA8PCAxNikgfCAoR1syXSA+Pj4gMTYpKSkgfCAwO1xuXHQgICAgICAgIFhbNV0gPSAoR1s1XSArICgoR1s0XSA8PCA4KSAgfCAoR1s0XSA+Pj4gMjQpKSArIEdbM10pIHwgMDtcblx0ICAgICAgICBYWzZdID0gKEdbNl0gKyAoKEdbNV0gPDwgMTYpIHwgKEdbNV0gPj4+IDE2KSkgKyAoKEdbNF0gPDwgMTYpIHwgKEdbNF0gPj4+IDE2KSkpIHwgMDtcblx0ICAgICAgICBYWzddID0gKEdbN10gKyAoKEdbNl0gPDwgOCkgIHwgKEdbNl0gPj4+IDI0KSkgKyBHWzVdKSB8IDA7XG5cdCAgICB9XG5cblx0ICAgIC8qKlxuXHQgICAgICogU2hvcnRjdXQgZnVuY3Rpb25zIHRvIHRoZSBjaXBoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBjaXBoZXJ0ZXh0ID0gQ3J5cHRvSlMuUmFiYml0LmVuY3J5cHQobWVzc2FnZSwga2V5LCBjZmcpO1xuXHQgICAgICogICAgIHZhciBwbGFpbnRleHQgID0gQ3J5cHRvSlMuUmFiYml0LmRlY3J5cHQoY2lwaGVydGV4dCwga2V5LCBjZmcpO1xuXHQgICAgICovXG5cdCAgICBDLlJhYmJpdCA9IFN0cmVhbUNpcGhlci5fY3JlYXRlSGVscGVyKFJhYmJpdCk7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMuUmFiYml0O1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL2VuYy1iYXNlNjRcIiksIHJlcXVpcmUoXCIuL21kNVwiKSwgcmVxdWlyZShcIi4vZXZwa2RmXCIpLCByZXF1aXJlKFwiLi9jaXBoZXItY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCIsIFwiLi9lbmMtYmFzZTY0XCIsIFwiLi9tZDVcIiwgXCIuL2V2cGtkZlwiLCBcIi4vY2lwaGVyLWNvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBTdHJlYW1DaXBoZXIgPSBDX2xpYi5TdHJlYW1DaXBoZXI7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFJDNCBzdHJlYW0gY2lwaGVyIGFsZ29yaXRobS5cblx0ICAgICAqL1xuXHQgICAgdmFyIFJDNCA9IENfYWxnby5SQzQgPSBTdHJlYW1DaXBoZXIuZXh0ZW5kKHtcblx0ICAgICAgICBfZG9SZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGtleSA9IHRoaXMuX2tleTtcblx0ICAgICAgICAgICAgdmFyIGtleVdvcmRzID0ga2V5LndvcmRzO1xuXHQgICAgICAgICAgICB2YXIga2V5U2lnQnl0ZXMgPSBrZXkuc2lnQnl0ZXM7XG5cblx0ICAgICAgICAgICAgLy8gSW5pdCBzYm94XG5cdCAgICAgICAgICAgIHZhciBTID0gdGhpcy5fUyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICBTW2ldID0gaTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIEtleSBzZXR1cFxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCAyNTY7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgdmFyIGtleUJ5dGVJbmRleCA9IGkgJSBrZXlTaWdCeXRlcztcblx0ICAgICAgICAgICAgICAgIHZhciBrZXlCeXRlID0gKGtleVdvcmRzW2tleUJ5dGVJbmRleCA+Pj4gMl0gPj4+ICgyNCAtIChrZXlCeXRlSW5kZXggJSA0KSAqIDgpKSAmIDB4ZmY7XG5cblx0ICAgICAgICAgICAgICAgIGogPSAoaiArIFNbaV0gKyBrZXlCeXRlKSAlIDI1NjtcblxuXHQgICAgICAgICAgICAgICAgLy8gU3dhcFxuXHQgICAgICAgICAgICAgICAgdmFyIHQgPSBTW2ldO1xuXHQgICAgICAgICAgICAgICAgU1tpXSA9IFNbal07XG5cdCAgICAgICAgICAgICAgICBTW2pdID0gdDtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIENvdW50ZXJzXG5cdCAgICAgICAgICAgIHRoaXMuX2kgPSB0aGlzLl9qID0gMDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvUHJvY2Vzc0Jsb2NrOiBmdW5jdGlvbiAoTSwgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIE1bb2Zmc2V0XSBePSBnZW5lcmF0ZUtleXN0cmVhbVdvcmQuY2FsbCh0aGlzKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAga2V5U2l6ZTogMjU2LzMyLFxuXG5cdCAgICAgICAgaXZTaXplOiAwXG5cdCAgICB9KTtcblxuXHQgICAgZnVuY3Rpb24gZ2VuZXJhdGVLZXlzdHJlYW1Xb3JkKCkge1xuXHQgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgIHZhciBTID0gdGhpcy5fUztcblx0ICAgICAgICB2YXIgaSA9IHRoaXMuX2k7XG5cdCAgICAgICAgdmFyIGogPSB0aGlzLl9qO1xuXG5cdCAgICAgICAgLy8gR2VuZXJhdGUga2V5c3RyZWFtIHdvcmRcblx0ICAgICAgICB2YXIga2V5c3RyZWFtV29yZCA9IDA7XG5cdCAgICAgICAgZm9yICh2YXIgbiA9IDA7IG4gPCA0OyBuKyspIHtcblx0ICAgICAgICAgICAgaSA9IChpICsgMSkgJSAyNTY7XG5cdCAgICAgICAgICAgIGogPSAoaiArIFNbaV0pICUgMjU2O1xuXG5cdCAgICAgICAgICAgIC8vIFN3YXBcblx0ICAgICAgICAgICAgdmFyIHQgPSBTW2ldO1xuXHQgICAgICAgICAgICBTW2ldID0gU1tqXTtcblx0ICAgICAgICAgICAgU1tqXSA9IHQ7XG5cblx0ICAgICAgICAgICAga2V5c3RyZWFtV29yZCB8PSBTWyhTW2ldICsgU1tqXSkgJSAyNTZdIDw8ICgyNCAtIG4gKiA4KTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBVcGRhdGUgY291bnRlcnNcblx0ICAgICAgICB0aGlzLl9pID0gaTtcblx0ICAgICAgICB0aGlzLl9qID0gajtcblxuXHQgICAgICAgIHJldHVybiBrZXlzdHJlYW1Xb3JkO1xuXHQgICAgfVxuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9ucyB0byB0aGUgY2lwaGVyJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgY2lwaGVydGV4dCA9IENyeXB0b0pTLlJDNC5lbmNyeXB0KG1lc3NhZ2UsIGtleSwgY2ZnKTtcblx0ICAgICAqICAgICB2YXIgcGxhaW50ZXh0ICA9IENyeXB0b0pTLlJDNC5kZWNyeXB0KGNpcGhlcnRleHQsIGtleSwgY2ZnKTtcblx0ICAgICAqL1xuXHQgICAgQy5SQzQgPSBTdHJlYW1DaXBoZXIuX2NyZWF0ZUhlbHBlcihSQzQpO1xuXG5cdCAgICAvKipcblx0ICAgICAqIE1vZGlmaWVkIFJDNCBzdHJlYW0gY2lwaGVyIGFsZ29yaXRobS5cblx0ICAgICAqL1xuXHQgICAgdmFyIFJDNERyb3AgPSBDX2FsZ28uUkM0RHJvcCA9IFJDNC5leHRlbmQoe1xuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBkcm9wIFRoZSBudW1iZXIgb2Yga2V5c3RyZWFtIHdvcmRzIHRvIGRyb3AuIERlZmF1bHQgMTkyXG5cdCAgICAgICAgICovXG5cdCAgICAgICAgY2ZnOiBSQzQuY2ZnLmV4dGVuZCh7XG5cdCAgICAgICAgICAgIGRyb3A6IDE5MlxuXHQgICAgICAgIH0pLFxuXG5cdCAgICAgICAgX2RvUmVzZXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgUkM0Ll9kb1Jlc2V0LmNhbGwodGhpcyk7XG5cblx0ICAgICAgICAgICAgLy8gRHJvcFxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5jZmcuZHJvcDsgaSA+IDA7IGktLSkge1xuXHQgICAgICAgICAgICAgICAgZ2VuZXJhdGVLZXlzdHJlYW1Xb3JkLmNhbGwodGhpcyk7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbnMgdG8gdGhlIGNpcGhlcidzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQGV4YW1wbGVcblx0ICAgICAqXG5cdCAgICAgKiAgICAgdmFyIGNpcGhlcnRleHQgPSBDcnlwdG9KUy5SQzREcm9wLmVuY3J5cHQobWVzc2FnZSwga2V5LCBjZmcpO1xuXHQgICAgICogICAgIHZhciBwbGFpbnRleHQgID0gQ3J5cHRvSlMuUkM0RHJvcC5kZWNyeXB0KGNpcGhlcnRleHQsIGtleSwgY2ZnKTtcblx0ICAgICAqL1xuXHQgICAgQy5SQzREcm9wID0gU3RyZWFtQ2lwaGVyLl9jcmVhdGVIZWxwZXIoUkM0RHJvcCk7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMuUkM0O1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQvKiogQHByZXNlcnZlXG5cdChjKSAyMDEyIGJ5IEPDqWRyaWMgTWVzbmlsLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuXG5cdFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDpcblxuXHQgICAgLSBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG5cdCAgICAtIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi5cblxuXHRUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTIFwiQVMgSVNcIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG5cdCovXG5cblx0KGZ1bmN0aW9uIChNYXRoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXk7XG5cdCAgICB2YXIgSGFzaGVyID0gQ19saWIuSGFzaGVyO1xuXHQgICAgdmFyIENfYWxnbyA9IEMuYWxnbztcblxuXHQgICAgLy8gQ29uc3RhbnRzIHRhYmxlXG5cdCAgICB2YXIgX3psID0gV29yZEFycmF5LmNyZWF0ZShbXG5cdCAgICAgICAgMCwgIDEsICAyLCAgMywgIDQsICA1LCAgNiwgIDcsICA4LCAgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSxcblx0ICAgICAgICA3LCAgNCwgMTMsICAxLCAxMCwgIDYsIDE1LCAgMywgMTIsICAwLCAgOSwgIDUsICAyLCAxNCwgMTEsICA4LFxuXHQgICAgICAgIDMsIDEwLCAxNCwgIDQsICA5LCAxNSwgIDgsICAxLCAgMiwgIDcsICAwLCAgNiwgMTMsIDExLCAgNSwgMTIsXG5cdCAgICAgICAgMSwgIDksIDExLCAxMCwgIDAsICA4LCAxMiwgIDQsIDEzLCAgMywgIDcsIDE1LCAxNCwgIDUsICA2LCAgMixcblx0ICAgICAgICA0LCAgMCwgIDUsICA5LCAgNywgMTIsICAyLCAxMCwgMTQsICAxLCAgMywgIDgsIDExLCAgNiwgMTUsIDEzXSk7XG5cdCAgICB2YXIgX3pyID0gV29yZEFycmF5LmNyZWF0ZShbXG5cdCAgICAgICAgNSwgMTQsICA3LCAgMCwgIDksICAyLCAxMSwgIDQsIDEzLCAgNiwgMTUsICA4LCAgMSwgMTAsICAzLCAxMixcblx0ICAgICAgICA2LCAxMSwgIDMsICA3LCAgMCwgMTMsICA1LCAxMCwgMTQsIDE1LCAgOCwgMTIsICA0LCAgOSwgIDEsICAyLFxuXHQgICAgICAgIDE1LCAgNSwgIDEsICAzLCAgNywgMTQsICA2LCAgOSwgMTEsICA4LCAxMiwgIDIsIDEwLCAgMCwgIDQsIDEzLFxuXHQgICAgICAgIDgsICA2LCAgNCwgIDEsICAzLCAxMSwgMTUsICAwLCAgNSwgMTIsICAyLCAxMywgIDksICA3LCAxMCwgMTQsXG5cdCAgICAgICAgMTIsIDE1LCAxMCwgIDQsICAxLCAgNSwgIDgsICA3LCAgNiwgIDIsIDEzLCAxNCwgIDAsICAzLCAgOSwgMTFdKTtcblx0ICAgIHZhciBfc2wgPSBXb3JkQXJyYXkuY3JlYXRlKFtcblx0ICAgICAgICAgMTEsIDE0LCAxNSwgMTIsICA1LCAgOCwgIDcsICA5LCAxMSwgMTMsIDE0LCAxNSwgIDYsICA3LCAgOSwgIDgsXG5cdCAgICAgICAgNywgNiwgICA4LCAxMywgMTEsICA5LCAgNywgMTUsICA3LCAxMiwgMTUsICA5LCAxMSwgIDcsIDEzLCAxMixcblx0ICAgICAgICAxMSwgMTMsICA2LCAgNywgMTQsICA5LCAxMywgMTUsIDE0LCAgOCwgMTMsICA2LCAgNSwgMTIsICA3LCAgNSxcblx0ICAgICAgICAgIDExLCAxMiwgMTQsIDE1LCAxNCwgMTUsICA5LCAgOCwgIDksIDE0LCAgNSwgIDYsICA4LCAgNiwgIDUsIDEyLFxuXHQgICAgICAgIDksIDE1LCAgNSwgMTEsICA2LCAgOCwgMTMsIDEyLCAgNSwgMTIsIDEzLCAxNCwgMTEsICA4LCAgNSwgIDYgXSk7XG5cdCAgICB2YXIgX3NyID0gV29yZEFycmF5LmNyZWF0ZShbXG5cdCAgICAgICAgOCwgIDksICA5LCAxMSwgMTMsIDE1LCAxNSwgIDUsICA3LCAgNywgIDgsIDExLCAxNCwgMTQsIDEyLCAgNixcblx0ICAgICAgICA5LCAxMywgMTUsICA3LCAxMiwgIDgsICA5LCAxMSwgIDcsICA3LCAxMiwgIDcsICA2LCAxNSwgMTMsIDExLFxuXHQgICAgICAgIDksICA3LCAxNSwgMTEsICA4LCAgNiwgIDYsIDE0LCAxMiwgMTMsICA1LCAxNCwgMTMsIDEzLCAgNywgIDUsXG5cdCAgICAgICAgMTUsICA1LCAgOCwgMTEsIDE0LCAxNCwgIDYsIDE0LCAgNiwgIDksIDEyLCAgOSwgMTIsICA1LCAxNSwgIDgsXG5cdCAgICAgICAgOCwgIDUsIDEyLCAgOSwgMTIsICA1LCAxNCwgIDYsICA4LCAxMywgIDYsICA1LCAxNSwgMTMsIDExLCAxMSBdKTtcblxuXHQgICAgdmFyIF9obCA9ICBXb3JkQXJyYXkuY3JlYXRlKFsgMHgwMDAwMDAwMCwgMHg1QTgyNzk5OSwgMHg2RUQ5RUJBMSwgMHg4RjFCQkNEQywgMHhBOTUzRkQ0RV0pO1xuXHQgICAgdmFyIF9ociA9ICBXb3JkQXJyYXkuY3JlYXRlKFsgMHg1MEEyOEJFNiwgMHg1QzRERDEyNCwgMHg2RDcwM0VGMywgMHg3QTZENzZFOSwgMHgwMDAwMDAwMF0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFJJUEVNRDE2MCBoYXNoIGFsZ29yaXRobS5cblx0ICAgICAqL1xuXHQgICAgdmFyIFJJUEVNRDE2MCA9IENfYWxnby5SSVBFTUQxNjAgPSBIYXNoZXIuZXh0ZW5kKHtcblx0ICAgICAgICBfZG9SZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB0aGlzLl9oYXNoICA9IFdvcmRBcnJheS5jcmVhdGUoWzB4Njc0NTIzMDEsIDB4RUZDREFCODksIDB4OThCQURDRkUsIDB4MTAzMjU0NzYsIDB4QzNEMkUxRjBdKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvUHJvY2Vzc0Jsb2NrOiBmdW5jdGlvbiAoTSwgb2Zmc2V0KSB7XG5cblx0ICAgICAgICAgICAgLy8gU3dhcCBlbmRpYW5cblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgICAgIHZhciBvZmZzZXRfaSA9IG9mZnNldCArIGk7XG5cdCAgICAgICAgICAgICAgICB2YXIgTV9vZmZzZXRfaSA9IE1bb2Zmc2V0X2ldO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBTd2FwXG5cdCAgICAgICAgICAgICAgICBNW29mZnNldF9pXSA9IChcblx0ICAgICAgICAgICAgICAgICAgICAoKChNX29mZnNldF9pIDw8IDgpICB8IChNX29mZnNldF9pID4+PiAyNCkpICYgMHgwMGZmMDBmZikgfFxuXHQgICAgICAgICAgICAgICAgICAgICgoKE1fb2Zmc2V0X2kgPDwgMjQpIHwgKE1fb2Zmc2V0X2kgPj4+IDgpKSAgJiAweGZmMDBmZjAwKVxuXHQgICAgICAgICAgICAgICAgKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgSCAgPSB0aGlzLl9oYXNoLndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgaGwgPSBfaGwud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBociA9IF9oci53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHpsID0gX3psLndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgenIgPSBfenIud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBzbCA9IF9zbC53b3Jkcztcblx0ICAgICAgICAgICAgdmFyIHNyID0gX3NyLndvcmRzO1xuXG5cdCAgICAgICAgICAgIC8vIFdvcmtpbmcgdmFyaWFibGVzXG5cdCAgICAgICAgICAgIHZhciBhbCwgYmwsIGNsLCBkbCwgZWw7XG5cdCAgICAgICAgICAgIHZhciBhciwgYnIsIGNyLCBkciwgZXI7XG5cblx0ICAgICAgICAgICAgYXIgPSBhbCA9IEhbMF07XG5cdCAgICAgICAgICAgIGJyID0gYmwgPSBIWzFdO1xuXHQgICAgICAgICAgICBjciA9IGNsID0gSFsyXTtcblx0ICAgICAgICAgICAgZHIgPSBkbCA9IEhbM107XG5cdCAgICAgICAgICAgIGVyID0gZWwgPSBIWzRdO1xuXHQgICAgICAgICAgICAvLyBDb21wdXRhdGlvblxuXHQgICAgICAgICAgICB2YXIgdDtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4MDsgaSArPSAxKSB7XG5cdCAgICAgICAgICAgICAgICB0ID0gKGFsICsgIE1bb2Zmc2V0K3psW2ldXSl8MDtcblx0ICAgICAgICAgICAgICAgIGlmIChpPDE2KXtcblx0XHQgICAgICAgICAgICB0ICs9ICBmMShibCxjbCxkbCkgKyBobFswXTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaTwzMikge1xuXHRcdCAgICAgICAgICAgIHQgKz0gIGYyKGJsLGNsLGRsKSArIGhsWzFdO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpPDQ4KSB7XG5cdFx0ICAgICAgICAgICAgdCArPSAgZjMoYmwsY2wsZGwpICsgaGxbMl07XG5cdCAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGk8NjQpIHtcblx0XHQgICAgICAgICAgICB0ICs9ICBmNChibCxjbCxkbCkgKyBobFszXTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ly8gaWYgKGk8ODApIHtcblx0XHQgICAgICAgICAgICB0ICs9ICBmNShibCxjbCxkbCkgKyBobFs0XTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIHQgPSB0fDA7XG5cdCAgICAgICAgICAgICAgICB0ID0gIHJvdGwodCxzbFtpXSk7XG5cdCAgICAgICAgICAgICAgICB0ID0gKHQrZWwpfDA7XG5cdCAgICAgICAgICAgICAgICBhbCA9IGVsO1xuXHQgICAgICAgICAgICAgICAgZWwgPSBkbDtcblx0ICAgICAgICAgICAgICAgIGRsID0gcm90bChjbCwgMTApO1xuXHQgICAgICAgICAgICAgICAgY2wgPSBibDtcblx0ICAgICAgICAgICAgICAgIGJsID0gdDtcblxuXHQgICAgICAgICAgICAgICAgdCA9IChhciArIE1bb2Zmc2V0K3pyW2ldXSl8MDtcblx0ICAgICAgICAgICAgICAgIGlmIChpPDE2KXtcblx0XHQgICAgICAgICAgICB0ICs9ICBmNShicixjcixkcikgKyBoclswXTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaTwzMikge1xuXHRcdCAgICAgICAgICAgIHQgKz0gIGY0KGJyLGNyLGRyKSArIGhyWzFdO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpPDQ4KSB7XG5cdFx0ICAgICAgICAgICAgdCArPSAgZjMoYnIsY3IsZHIpICsgaHJbMl07XG5cdCAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGk8NjQpIHtcblx0XHQgICAgICAgICAgICB0ICs9ICBmMihicixjcixkcikgKyBoclszXTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ly8gaWYgKGk8ODApIHtcblx0XHQgICAgICAgICAgICB0ICs9ICBmMShicixjcixkcikgKyBocls0XTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIHQgPSB0fDA7XG5cdCAgICAgICAgICAgICAgICB0ID0gIHJvdGwodCxzcltpXSkgO1xuXHQgICAgICAgICAgICAgICAgdCA9ICh0K2VyKXwwO1xuXHQgICAgICAgICAgICAgICAgYXIgPSBlcjtcblx0ICAgICAgICAgICAgICAgIGVyID0gZHI7XG5cdCAgICAgICAgICAgICAgICBkciA9IHJvdGwoY3IsIDEwKTtcblx0ICAgICAgICAgICAgICAgIGNyID0gYnI7XG5cdCAgICAgICAgICAgICAgICBiciA9IHQ7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgLy8gSW50ZXJtZWRpYXRlIGhhc2ggdmFsdWVcblx0ICAgICAgICAgICAgdCAgICA9IChIWzFdICsgY2wgKyBkcil8MDtcblx0ICAgICAgICAgICAgSFsxXSA9IChIWzJdICsgZGwgKyBlcil8MDtcblx0ICAgICAgICAgICAgSFsyXSA9IChIWzNdICsgZWwgKyBhcil8MDtcblx0ICAgICAgICAgICAgSFszXSA9IChIWzRdICsgYWwgKyBicil8MDtcblx0ICAgICAgICAgICAgSFs0XSA9IChIWzBdICsgYmwgKyBjcil8MDtcblx0ICAgICAgICAgICAgSFswXSA9ICB0O1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9GaW5hbGl6ZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuXHQgICAgICAgICAgICB2YXIgZGF0YVdvcmRzID0gZGF0YS53b3JkcztcblxuXHQgICAgICAgICAgICB2YXIgbkJpdHNUb3RhbCA9IHRoaXMuX25EYXRhQnl0ZXMgKiA4O1xuXHQgICAgICAgICAgICB2YXIgbkJpdHNMZWZ0ID0gZGF0YS5zaWdCeXRlcyAqIDg7XG5cblx0ICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmdcblx0ICAgICAgICAgICAgZGF0YVdvcmRzW25CaXRzTGVmdCA+Pj4gNV0gfD0gMHg4MCA8PCAoMjQgLSBuQml0c0xlZnQgJSAzMik7XG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1soKChuQml0c0xlZnQgKyA2NCkgPj4+IDkpIDw8IDQpICsgMTRdID0gKFxuXHQgICAgICAgICAgICAgICAgKCgobkJpdHNUb3RhbCA8PCA4KSAgfCAobkJpdHNUb3RhbCA+Pj4gMjQpKSAmIDB4MDBmZjAwZmYpIHxcblx0ICAgICAgICAgICAgICAgICgoKG5CaXRzVG90YWwgPDwgMjQpIHwgKG5CaXRzVG90YWwgPj4+IDgpKSAgJiAweGZmMDBmZjAwKVxuXHQgICAgICAgICAgICApO1xuXHQgICAgICAgICAgICBkYXRhLnNpZ0J5dGVzID0gKGRhdGFXb3Jkcy5sZW5ndGggKyAxKSAqIDQ7XG5cblx0ICAgICAgICAgICAgLy8gSGFzaCBmaW5hbCBibG9ja3Ncblx0ICAgICAgICAgICAgdGhpcy5fcHJvY2VzcygpO1xuXG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgaGFzaCA9IHRoaXMuX2hhc2g7XG5cdCAgICAgICAgICAgIHZhciBIID0gaGFzaC53b3JkcztcblxuXHQgICAgICAgICAgICAvLyBTd2FwIGVuZGlhblxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDU7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgLy8gU2hvcnRjdXRcblx0ICAgICAgICAgICAgICAgIHZhciBIX2kgPSBIW2ldO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBTd2FwXG5cdCAgICAgICAgICAgICAgICBIW2ldID0gKCgoSF9pIDw8IDgpICB8IChIX2kgPj4+IDI0KSkgJiAweDAwZmYwMGZmKSB8XG5cdCAgICAgICAgICAgICAgICAgICAgICAgKCgoSF9pIDw8IDI0KSB8IChIX2kgPj4+IDgpKSAgJiAweGZmMDBmZjAwKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIFJldHVybiBmaW5hbCBjb21wdXRlZCBoYXNoXG5cdCAgICAgICAgICAgIHJldHVybiBoYXNoO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBjbG9uZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgY2xvbmUgPSBIYXNoZXIuY2xvbmUuY2FsbCh0aGlzKTtcblx0ICAgICAgICAgICAgY2xvbmUuX2hhc2ggPSB0aGlzLl9oYXNoLmNsb25lKCk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGNsb25lO1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cblx0ICAgIGZ1bmN0aW9uIGYxKHgsIHksIHopIHtcblx0ICAgICAgICByZXR1cm4gKCh4KSBeICh5KSBeICh6KSk7XG5cblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gZjIoeCwgeSwgeikge1xuXHQgICAgICAgIHJldHVybiAoKCh4KSYoeSkpIHwgKCh+eCkmKHopKSk7XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIGYzKHgsIHksIHopIHtcblx0ICAgICAgICByZXR1cm4gKCgoeCkgfCAofih5KSkpIF4gKHopKTtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gZjQoeCwgeSwgeikge1xuXHQgICAgICAgIHJldHVybiAoKCh4KSAmICh6KSkgfCAoKHkpJih+KHopKSkpO1xuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBmNSh4LCB5LCB6KSB7XG5cdCAgICAgICAgcmV0dXJuICgoeCkgXiAoKHkpIHwofih6KSkpKTtcblxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiByb3RsKHgsbikge1xuXHQgICAgICAgIHJldHVybiAoeDw8bikgfCAoeD4+PigzMi1uKSk7XG5cdCAgICB9XG5cblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgaGFzaGVyJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaGFzaCA9IENyeXB0b0pTLlJJUEVNRDE2MCgnbWVzc2FnZScpO1xuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuUklQRU1EMTYwKHdvcmRBcnJheSk7XG5cdCAgICAgKi9cblx0ICAgIEMuUklQRU1EMTYwID0gSGFzaGVyLl9jcmVhdGVIZWxwZXIoUklQRU1EMTYwKTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgSE1BQydzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGhhc2guXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IGtleSBUaGUgc2VjcmV0IGtleS5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBITUFDLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaG1hYyA9IENyeXB0b0pTLkhtYWNSSVBFTUQxNjAobWVzc2FnZSwga2V5KTtcblx0ICAgICAqL1xuXHQgICAgQy5IbWFjUklQRU1EMTYwID0gSGFzaGVyLl9jcmVhdGVIbWFjSGVscGVyKFJJUEVNRDE2MCk7XG5cdH0oTWF0aCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLlJJUEVNRDE2MDtcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0KGZ1bmN0aW9uICgpIHtcblx0ICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgdmFyIEMgPSBDcnlwdG9KUztcblx0ICAgIHZhciBDX2xpYiA9IEMubGliO1xuXHQgICAgdmFyIFdvcmRBcnJheSA9IENfbGliLldvcmRBcnJheTtcblx0ICAgIHZhciBIYXNoZXIgPSBDX2xpYi5IYXNoZXI7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXG5cdCAgICAvLyBSZXVzYWJsZSBvYmplY3Rcblx0ICAgIHZhciBXID0gW107XG5cblx0ICAgIC8qKlxuXHQgICAgICogU0hBLTEgaGFzaCBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBTSEExID0gQ19hbGdvLlNIQTEgPSBIYXNoZXIuZXh0ZW5kKHtcblx0ICAgICAgICBfZG9SZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB0aGlzLl9oYXNoID0gbmV3IFdvcmRBcnJheS5pbml0KFtcblx0ICAgICAgICAgICAgICAgIDB4Njc0NTIzMDEsIDB4ZWZjZGFiODksXG5cdCAgICAgICAgICAgICAgICAweDk4YmFkY2ZlLCAweDEwMzI1NDc2LFxuXHQgICAgICAgICAgICAgICAgMHhjM2QyZTFmMFxuXHQgICAgICAgICAgICBdKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvUHJvY2Vzc0Jsb2NrOiBmdW5jdGlvbiAoTSwgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgIHZhciBIID0gdGhpcy5faGFzaC53b3JkcztcblxuXHQgICAgICAgICAgICAvLyBXb3JraW5nIHZhcmlhYmxlc1xuXHQgICAgICAgICAgICB2YXIgYSA9IEhbMF07XG5cdCAgICAgICAgICAgIHZhciBiID0gSFsxXTtcblx0ICAgICAgICAgICAgdmFyIGMgPSBIWzJdO1xuXHQgICAgICAgICAgICB2YXIgZCA9IEhbM107XG5cdCAgICAgICAgICAgIHZhciBlID0gSFs0XTtcblxuXHQgICAgICAgICAgICAvLyBDb21wdXRhdGlvblxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDgwOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIGlmIChpIDwgMTYpIHtcblx0ICAgICAgICAgICAgICAgICAgICBXW2ldID0gTVtvZmZzZXQgKyBpXSB8IDA7XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBuID0gV1tpIC0gM10gXiBXW2kgLSA4XSBeIFdbaSAtIDE0XSBeIFdbaSAtIDE2XTtcblx0ICAgICAgICAgICAgICAgICAgICBXW2ldID0gKG4gPDwgMSkgfCAobiA+Pj4gMzEpO1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICB2YXIgdCA9ICgoYSA8PCA1KSB8IChhID4+PiAyNykpICsgZSArIFdbaV07XG5cdCAgICAgICAgICAgICAgICBpZiAoaSA8IDIwKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgdCArPSAoKGIgJiBjKSB8ICh+YiAmIGQpKSArIDB4NWE4Mjc5OTk7XG5cdCAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPCA0MCkge1xuXHQgICAgICAgICAgICAgICAgICAgIHQgKz0gKGIgXiBjIF4gZCkgKyAweDZlZDllYmExO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgNjApIHtcblx0ICAgICAgICAgICAgICAgICAgICB0ICs9ICgoYiAmIGMpIHwgKGIgJiBkKSB8IChjICYgZCkpIC0gMHg3MGU0NDMyNDtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpZiAoaSA8IDgwKSAqLyB7XG5cdCAgICAgICAgICAgICAgICAgICAgdCArPSAoYiBeIGMgXiBkKSAtIDB4MzU5ZDNlMmE7XG5cdCAgICAgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgICAgIGUgPSBkO1xuXHQgICAgICAgICAgICAgICAgZCA9IGM7XG5cdCAgICAgICAgICAgICAgICBjID0gKGIgPDwgMzApIHwgKGIgPj4+IDIpO1xuXHQgICAgICAgICAgICAgICAgYiA9IGE7XG5cdCAgICAgICAgICAgICAgICBhID0gdDtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIEludGVybWVkaWF0ZSBoYXNoIHZhbHVlXG5cdCAgICAgICAgICAgIEhbMF0gPSAoSFswXSArIGEpIHwgMDtcblx0ICAgICAgICAgICAgSFsxXSA9IChIWzFdICsgYikgfCAwO1xuXHQgICAgICAgICAgICBIWzJdID0gKEhbMl0gKyBjKSB8IDA7XG5cdCAgICAgICAgICAgIEhbM10gPSAoSFszXSArIGQpIHwgMDtcblx0ICAgICAgICAgICAgSFs0XSA9IChIWzRdICsgZSkgfCAwO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9GaW5hbGl6ZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuXHQgICAgICAgICAgICB2YXIgZGF0YVdvcmRzID0gZGF0YS53b3JkcztcblxuXHQgICAgICAgICAgICB2YXIgbkJpdHNUb3RhbCA9IHRoaXMuX25EYXRhQnl0ZXMgKiA4O1xuXHQgICAgICAgICAgICB2YXIgbkJpdHNMZWZ0ID0gZGF0YS5zaWdCeXRlcyAqIDg7XG5cblx0ICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmdcblx0ICAgICAgICAgICAgZGF0YVdvcmRzW25CaXRzTGVmdCA+Pj4gNV0gfD0gMHg4MCA8PCAoMjQgLSBuQml0c0xlZnQgJSAzMik7XG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1soKChuQml0c0xlZnQgKyA2NCkgPj4+IDkpIDw8IDQpICsgMTRdID0gTWF0aC5mbG9vcihuQml0c1RvdGFsIC8gMHgxMDAwMDAwMDApO1xuXHQgICAgICAgICAgICBkYXRhV29yZHNbKCgobkJpdHNMZWZ0ICsgNjQpID4+PiA5KSA8PCA0KSArIDE1XSA9IG5CaXRzVG90YWw7XG5cdCAgICAgICAgICAgIGRhdGEuc2lnQnl0ZXMgPSBkYXRhV29yZHMubGVuZ3RoICogNDtcblxuXHQgICAgICAgICAgICAvLyBIYXNoIGZpbmFsIGJsb2Nrc1xuXHQgICAgICAgICAgICB0aGlzLl9wcm9jZXNzKCk7XG5cblx0ICAgICAgICAgICAgLy8gUmV0dXJuIGZpbmFsIGNvbXB1dGVkIGhhc2hcblx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2hhc2g7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGNsb25lOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIHZhciBjbG9uZSA9IEhhc2hlci5jbG9uZS5jYWxsKHRoaXMpO1xuXHQgICAgICAgICAgICBjbG9uZS5faGFzaCA9IHRoaXMuX2hhc2guY2xvbmUoKTtcblxuXHQgICAgICAgICAgICByZXR1cm4gY2xvbmU7XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogU2hvcnRjdXQgZnVuY3Rpb24gdG8gdGhlIGhhc2hlcidzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGhhc2guXG5cdCAgICAgKlxuXHQgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgaGFzaC5cblx0ICAgICAqXG5cdCAgICAgKiBAc3RhdGljXG5cdCAgICAgKlxuXHQgICAgICogQGV4YW1wbGVcblx0ICAgICAqXG5cdCAgICAgKiAgICAgdmFyIGhhc2ggPSBDcnlwdG9KUy5TSEExKCdtZXNzYWdlJyk7XG5cdCAgICAgKiAgICAgdmFyIGhhc2ggPSBDcnlwdG9KUy5TSEExKHdvcmRBcnJheSk7XG5cdCAgICAgKi9cblx0ICAgIEMuU0hBMSA9IEhhc2hlci5fY3JlYXRlSGVscGVyKFNIQTEpO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIHRoZSBITUFDJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30ga2V5IFRoZSBzZWNyZXQga2V5LlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIEhNQUMuXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBobWFjID0gQ3J5cHRvSlMuSG1hY1NIQTEobWVzc2FnZSwga2V5KTtcblx0ICAgICAqL1xuXHQgICAgQy5IbWFjU0hBMSA9IEhhc2hlci5fY3JlYXRlSG1hY0hlbHBlcihTSEExKTtcblx0fSgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5TSEExO1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL3NoYTI1NlwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCIsIFwiLi9zaGEyNTZcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXk7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXHQgICAgdmFyIFNIQTI1NiA9IENfYWxnby5TSEEyNTY7XG5cblx0ICAgIC8qKlxuXHQgICAgICogU0hBLTIyNCBoYXNoIGFsZ29yaXRobS5cblx0ICAgICAqL1xuXHQgICAgdmFyIFNIQTIyNCA9IENfYWxnby5TSEEyMjQgPSBTSEEyNTYuZXh0ZW5kKHtcblx0ICAgICAgICBfZG9SZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB0aGlzLl9oYXNoID0gbmV3IFdvcmRBcnJheS5pbml0KFtcblx0ICAgICAgICAgICAgICAgIDB4YzEwNTllZDgsIDB4MzY3Y2Q1MDcsIDB4MzA3MGRkMTcsIDB4ZjcwZTU5MzksXG5cdCAgICAgICAgICAgICAgICAweGZmYzAwYjMxLCAweDY4NTgxNTExLCAweDY0Zjk4ZmE3LCAweGJlZmE0ZmE0XG5cdCAgICAgICAgICAgIF0pO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9GaW5hbGl6ZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgaGFzaCA9IFNIQTI1Ni5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO1xuXG5cdCAgICAgICAgICAgIGhhc2guc2lnQnl0ZXMgLT0gNDtcblxuXHQgICAgICAgICAgICByZXR1cm4gaGFzaDtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgaGFzaGVyJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaGFzaCA9IENyeXB0b0pTLlNIQTIyNCgnbWVzc2FnZScpO1xuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuU0hBMjI0KHdvcmRBcnJheSk7XG5cdCAgICAgKi9cblx0ICAgIEMuU0hBMjI0ID0gU0hBMjU2Ll9jcmVhdGVIZWxwZXIoU0hBMjI0KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgSE1BQydzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGhhc2guXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IGtleSBUaGUgc2VjcmV0IGtleS5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBITUFDLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaG1hYyA9IENyeXB0b0pTLkhtYWNTSEEyMjQobWVzc2FnZSwga2V5KTtcblx0ICAgICAqL1xuXHQgICAgQy5IbWFjU0hBMjI0ID0gU0hBMjU2Ll9jcmVhdGVIbWFjSGVscGVyKFNIQTIyNCk7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlMuU0hBMjI0O1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCJdLCBmYWN0b3J5KTtcblx0fVxuXHRlbHNlIHtcblx0XHQvLyBHbG9iYWwgKGJyb3dzZXIpXG5cdFx0ZmFjdG9yeShyb290LkNyeXB0b0pTKTtcblx0fVxufSh0aGlzLCBmdW5jdGlvbiAoQ3J5cHRvSlMpIHtcblxuXHQoZnVuY3Rpb24gKE1hdGgpIHtcblx0ICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgdmFyIEMgPSBDcnlwdG9KUztcblx0ICAgIHZhciBDX2xpYiA9IEMubGliO1xuXHQgICAgdmFyIFdvcmRBcnJheSA9IENfbGliLldvcmRBcnJheTtcblx0ICAgIHZhciBIYXNoZXIgPSBDX2xpYi5IYXNoZXI7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXG5cdCAgICAvLyBJbml0aWFsaXphdGlvbiBhbmQgcm91bmQgY29uc3RhbnRzIHRhYmxlc1xuXHQgICAgdmFyIEggPSBbXTtcblx0ICAgIHZhciBLID0gW107XG5cblx0ICAgIC8vIENvbXB1dGUgY29uc3RhbnRzXG5cdCAgICAoZnVuY3Rpb24gKCkge1xuXHQgICAgICAgIGZ1bmN0aW9uIGlzUHJpbWUobikge1xuXHQgICAgICAgICAgICB2YXIgc3FydE4gPSBNYXRoLnNxcnQobik7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGZhY3RvciA9IDI7IGZhY3RvciA8PSBzcXJ0TjsgZmFjdG9yKyspIHtcblx0ICAgICAgICAgICAgICAgIGlmICghKG4gJSBmYWN0b3IpKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcmV0dXJuIHRydWU7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgZnVuY3Rpb24gZ2V0RnJhY3Rpb25hbEJpdHMobikge1xuXHQgICAgICAgICAgICByZXR1cm4gKChuIC0gKG4gfCAwKSkgKiAweDEwMDAwMDAwMCkgfCAwO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBuID0gMjtcblx0ICAgICAgICB2YXIgblByaW1lID0gMDtcblx0ICAgICAgICB3aGlsZSAoblByaW1lIDwgNjQpIHtcblx0ICAgICAgICAgICAgaWYgKGlzUHJpbWUobikpIHtcblx0ICAgICAgICAgICAgICAgIGlmIChuUHJpbWUgPCA4KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgSFtuUHJpbWVdID0gZ2V0RnJhY3Rpb25hbEJpdHMoTWF0aC5wb3cobiwgMSAvIDIpKTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIEtbblByaW1lXSA9IGdldEZyYWN0aW9uYWxCaXRzKE1hdGgucG93KG4sIDEgLyAzKSk7XG5cblx0ICAgICAgICAgICAgICAgIG5QcmltZSsrO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgbisrO1xuXHQgICAgICAgIH1cblx0ICAgIH0oKSk7XG5cblx0ICAgIC8vIFJldXNhYmxlIG9iamVjdFxuXHQgICAgdmFyIFcgPSBbXTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTSEEtMjU2IGhhc2ggYWxnb3JpdGhtLlxuXHQgICAgICovXG5cdCAgICB2YXIgU0hBMjU2ID0gQ19hbGdvLlNIQTI1NiA9IEhhc2hlci5leHRlbmQoe1xuXHQgICAgICAgIF9kb1Jlc2V0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIHRoaXMuX2hhc2ggPSBuZXcgV29yZEFycmF5LmluaXQoSC5zbGljZSgwKSk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9kb1Byb2Nlc3NCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dFxuXHQgICAgICAgICAgICB2YXIgSCA9IHRoaXMuX2hhc2gud29yZHM7XG5cblx0ICAgICAgICAgICAgLy8gV29ya2luZyB2YXJpYWJsZXNcblx0ICAgICAgICAgICAgdmFyIGEgPSBIWzBdO1xuXHQgICAgICAgICAgICB2YXIgYiA9IEhbMV07XG5cdCAgICAgICAgICAgIHZhciBjID0gSFsyXTtcblx0ICAgICAgICAgICAgdmFyIGQgPSBIWzNdO1xuXHQgICAgICAgICAgICB2YXIgZSA9IEhbNF07XG5cdCAgICAgICAgICAgIHZhciBmID0gSFs1XTtcblx0ICAgICAgICAgICAgdmFyIGcgPSBIWzZdO1xuXHQgICAgICAgICAgICB2YXIgaCA9IEhbN107XG5cblx0ICAgICAgICAgICAgLy8gQ29tcHV0YXRpb25cblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICBpZiAoaSA8IDE2KSB7XG5cdCAgICAgICAgICAgICAgICAgICAgV1tpXSA9IE1bb2Zmc2V0ICsgaV0gfCAwO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgZ2FtbWEweCA9IFdbaSAtIDE1XTtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgZ2FtbWEwICA9ICgoZ2FtbWEweCA8PCAyNSkgfCAoZ2FtbWEweCA+Pj4gNykpICBeXG5cdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGdhbW1hMHggPDwgMTQpIHwgKGdhbW1hMHggPj4+IDE4KSkgXlxuXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnYW1tYTB4ID4+PiAzKTtcblxuXHQgICAgICAgICAgICAgICAgICAgIHZhciBnYW1tYTF4ID0gV1tpIC0gMl07XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIGdhbW1hMSAgPSAoKGdhbW1hMXggPDwgMTUpIHwgKGdhbW1hMXggPj4+IDE3KSkgXlxuXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChnYW1tYTF4IDw8IDEzKSB8IChnYW1tYTF4ID4+PiAxOSkpIF5cblx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2FtbWExeCA+Pj4gMTApO1xuXG5cdCAgICAgICAgICAgICAgICAgICAgV1tpXSA9IGdhbW1hMCArIFdbaSAtIDddICsgZ2FtbWExICsgV1tpIC0gMTZdO1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICB2YXIgY2ggID0gKGUgJiBmKSBeICh+ZSAmIGcpO1xuXHQgICAgICAgICAgICAgICAgdmFyIG1haiA9IChhICYgYikgXiAoYSAmIGMpIF4gKGIgJiBjKTtcblxuXHQgICAgICAgICAgICAgICAgdmFyIHNpZ21hMCA9ICgoYSA8PCAzMCkgfCAoYSA+Pj4gMikpIF4gKChhIDw8IDE5KSB8IChhID4+PiAxMykpIF4gKChhIDw8IDEwKSB8IChhID4+PiAyMikpO1xuXHQgICAgICAgICAgICAgICAgdmFyIHNpZ21hMSA9ICgoZSA8PCAyNikgfCAoZSA+Pj4gNikpIF4gKChlIDw8IDIxKSB8IChlID4+PiAxMSkpIF4gKChlIDw8IDcpICB8IChlID4+PiAyNSkpO1xuXG5cdCAgICAgICAgICAgICAgICB2YXIgdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2ldICsgV1tpXTtcblx0ICAgICAgICAgICAgICAgIHZhciB0MiA9IHNpZ21hMCArIG1hajtcblxuXHQgICAgICAgICAgICAgICAgaCA9IGc7XG5cdCAgICAgICAgICAgICAgICBnID0gZjtcblx0ICAgICAgICAgICAgICAgIGYgPSBlO1xuXHQgICAgICAgICAgICAgICAgZSA9IChkICsgdDEpIHwgMDtcblx0ICAgICAgICAgICAgICAgIGQgPSBjO1xuXHQgICAgICAgICAgICAgICAgYyA9IGI7XG5cdCAgICAgICAgICAgICAgICBiID0gYTtcblx0ICAgICAgICAgICAgICAgIGEgPSAodDEgKyB0MikgfCAwO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gSW50ZXJtZWRpYXRlIGhhc2ggdmFsdWVcblx0ICAgICAgICAgICAgSFswXSA9IChIWzBdICsgYSkgfCAwO1xuXHQgICAgICAgICAgICBIWzFdID0gKEhbMV0gKyBiKSB8IDA7XG5cdCAgICAgICAgICAgIEhbMl0gPSAoSFsyXSArIGMpIHwgMDtcblx0ICAgICAgICAgICAgSFszXSA9IChIWzNdICsgZCkgfCAwO1xuXHQgICAgICAgICAgICBIWzRdID0gKEhbNF0gKyBlKSB8IDA7XG5cdCAgICAgICAgICAgIEhbNV0gPSAoSFs1XSArIGYpIHwgMDtcblx0ICAgICAgICAgICAgSFs2XSA9IChIWzZdICsgZykgfCAwO1xuXHQgICAgICAgICAgICBIWzddID0gKEhbN10gKyBoKSB8IDA7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIF9kb0ZpbmFsaXplOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX2RhdGE7XG5cdCAgICAgICAgICAgIHZhciBkYXRhV29yZHMgPSBkYXRhLndvcmRzO1xuXG5cdCAgICAgICAgICAgIHZhciBuQml0c1RvdGFsID0gdGhpcy5fbkRhdGFCeXRlcyAqIDg7XG5cdCAgICAgICAgICAgIHZhciBuQml0c0xlZnQgPSBkYXRhLnNpZ0J5dGVzICogODtcblxuXHQgICAgICAgICAgICAvLyBBZGQgcGFkZGluZ1xuXHQgICAgICAgICAgICBkYXRhV29yZHNbbkJpdHNMZWZ0ID4+PiA1XSB8PSAweDgwIDw8ICgyNCAtIG5CaXRzTGVmdCAlIDMyKTtcblx0ICAgICAgICAgICAgZGF0YVdvcmRzWygoKG5CaXRzTGVmdCArIDY0KSA+Pj4gOSkgPDwgNCkgKyAxNF0gPSBNYXRoLmZsb29yKG5CaXRzVG90YWwgLyAweDEwMDAwMDAwMCk7XG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1soKChuQml0c0xlZnQgKyA2NCkgPj4+IDkpIDw8IDQpICsgMTVdID0gbkJpdHNUb3RhbDtcblx0ICAgICAgICAgICAgZGF0YS5zaWdCeXRlcyA9IGRhdGFXb3Jkcy5sZW5ndGggKiA0O1xuXG5cdCAgICAgICAgICAgIC8vIEhhc2ggZmluYWwgYmxvY2tzXG5cdCAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3MoKTtcblxuXHQgICAgICAgICAgICAvLyBSZXR1cm4gZmluYWwgY29tcHV0ZWQgaGFzaFxuXHQgICAgICAgICAgICByZXR1cm4gdGhpcy5faGFzaDtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgY2xvbmU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdmFyIGNsb25lID0gSGFzaGVyLmNsb25lLmNhbGwodGhpcyk7XG5cdCAgICAgICAgICAgIGNsb25lLl9oYXNoID0gdGhpcy5faGFzaC5jbG9uZSgpO1xuXG5cdCAgICAgICAgICAgIHJldHVybiBjbG9uZTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgaGFzaGVyJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaGFzaCA9IENyeXB0b0pTLlNIQTI1NignbWVzc2FnZScpO1xuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuU0hBMjU2KHdvcmRBcnJheSk7XG5cdCAgICAgKi9cblx0ICAgIEMuU0hBMjU2ID0gSGFzaGVyLl9jcmVhdGVIZWxwZXIoU0hBMjU2KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgSE1BQydzIG9iamVjdCBpbnRlcmZhY2UuXG5cdCAgICAgKlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGhhc2guXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IGtleSBUaGUgc2VjcmV0IGtleS5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBITUFDLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaG1hYyA9IENyeXB0b0pTLkhtYWNTSEEyNTYobWVzc2FnZSwga2V5KTtcblx0ICAgICAqL1xuXHQgICAgQy5IbWFjU0hBMjU2ID0gSGFzaGVyLl9jcmVhdGVIbWFjSGVscGVyKFNIQTI1Nik7XG5cdH0oTWF0aCkpO1xuXG5cblx0cmV0dXJuIENyeXB0b0pTLlNIQTI1NjtcblxufSkpOyIsIjsoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnksIHVuZGVmKSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpLCByZXF1aXJlKFwiLi94NjQtY29yZVwiKSk7XG5cdH1cblx0ZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyBBTURcblx0XHRkZWZpbmUoW1wiLi9jb3JlXCIsIFwiLi94NjQtY29yZVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0KGZ1bmN0aW9uIChNYXRoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXk7XG5cdCAgICB2YXIgSGFzaGVyID0gQ19saWIuSGFzaGVyO1xuXHQgICAgdmFyIENfeDY0ID0gQy54NjQ7XG5cdCAgICB2YXIgWDY0V29yZCA9IENfeDY0LldvcmQ7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXG5cdCAgICAvLyBDb25zdGFudHMgdGFibGVzXG5cdCAgICB2YXIgUkhPX09GRlNFVFMgPSBbXTtcblx0ICAgIHZhciBQSV9JTkRFWEVTICA9IFtdO1xuXHQgICAgdmFyIFJPVU5EX0NPTlNUQU5UUyA9IFtdO1xuXG5cdCAgICAvLyBDb21wdXRlIENvbnN0YW50c1xuXHQgICAgKGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAvLyBDb21wdXRlIHJobyBvZmZzZXQgY29uc3RhbnRzXG5cdCAgICAgICAgdmFyIHggPSAxLCB5ID0gMDtcblx0ICAgICAgICBmb3IgKHZhciB0ID0gMDsgdCA8IDI0OyB0KyspIHtcblx0ICAgICAgICAgICAgUkhPX09GRlNFVFNbeCArIDUgKiB5XSA9ICgodCArIDEpICogKHQgKyAyKSAvIDIpICUgNjQ7XG5cblx0ICAgICAgICAgICAgdmFyIG5ld1ggPSB5ICUgNTtcblx0ICAgICAgICAgICAgdmFyIG5ld1kgPSAoMiAqIHggKyAzICogeSkgJSA1O1xuXHQgICAgICAgICAgICB4ID0gbmV3WDtcblx0ICAgICAgICAgICAgeSA9IG5ld1k7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gQ29tcHV0ZSBwaSBpbmRleCBjb25zdGFudHNcblx0ICAgICAgICBmb3IgKHZhciB4ID0gMDsgeCA8IDU7IHgrKykge1xuXHQgICAgICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IDU7IHkrKykge1xuXHQgICAgICAgICAgICAgICAgUElfSU5ERVhFU1t4ICsgNSAqIHldID0geSArICgoMiAqIHggKyAzICogeSkgJSA1KSAqIDU7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBDb21wdXRlIHJvdW5kIGNvbnN0YW50c1xuXHQgICAgICAgIHZhciBMRlNSID0gMHgwMTtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI0OyBpKyspIHtcblx0ICAgICAgICAgICAgdmFyIHJvdW5kQ29uc3RhbnRNc3cgPSAwO1xuXHQgICAgICAgICAgICB2YXIgcm91bmRDb25zdGFudExzdyA9IDA7XG5cblx0ICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA3OyBqKyspIHtcblx0ICAgICAgICAgICAgICAgIGlmIChMRlNSICYgMHgwMSkge1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBiaXRQb3NpdGlvbiA9ICgxIDw8IGopIC0gMTtcblx0ICAgICAgICAgICAgICAgICAgICBpZiAoYml0UG9zaXRpb24gPCAzMikge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICByb3VuZENvbnN0YW50THN3IF49IDEgPDwgYml0UG9zaXRpb247XG5cdCAgICAgICAgICAgICAgICAgICAgfSBlbHNlIC8qIGlmIChiaXRQb3NpdGlvbiA+PSAzMikgKi8ge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICByb3VuZENvbnN0YW50TXN3IF49IDEgPDwgKGJpdFBvc2l0aW9uIC0gMzIpO1xuXHQgICAgICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSBuZXh0IExGU1Jcblx0ICAgICAgICAgICAgICAgIGlmIChMRlNSICYgMHg4MCkge1xuXHQgICAgICAgICAgICAgICAgICAgIC8vIFByaW1pdGl2ZSBwb2x5bm9taWFsIG92ZXIgR0YoMik6IHheOCArIHheNiArIHheNSArIHheNCArIDFcblx0ICAgICAgICAgICAgICAgICAgICBMRlNSID0gKExGU1IgPDwgMSkgXiAweDcxO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICBMRlNSIDw8PSAxO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgUk9VTkRfQ09OU1RBTlRTW2ldID0gWDY0V29yZC5jcmVhdGUocm91bmRDb25zdGFudE1zdywgcm91bmRDb25zdGFudExzdyk7XG5cdCAgICAgICAgfVxuXHQgICAgfSgpKTtcblxuXHQgICAgLy8gUmV1c2FibGUgb2JqZWN0cyBmb3IgdGVtcG9yYXJ5IHZhbHVlc1xuXHQgICAgdmFyIFQgPSBbXTtcblx0ICAgIChmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTsgaSsrKSB7XG5cdCAgICAgICAgICAgIFRbaV0gPSBYNjRXb3JkLmNyZWF0ZSgpO1xuXHQgICAgICAgIH1cblx0ICAgIH0oKSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogU0hBLTMgaGFzaCBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBTSEEzID0gQ19hbGdvLlNIQTMgPSBIYXNoZXIuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcHJvcGVydHkge251bWJlcn0gb3V0cHV0TGVuZ3RoXG5cdCAgICAgICAgICogICBUaGUgZGVzaXJlZCBudW1iZXIgb2YgYml0cyBpbiB0aGUgb3V0cHV0IGhhc2guXG5cdCAgICAgICAgICogICBPbmx5IHZhbHVlcyBwZXJtaXR0ZWQgYXJlOiAyMjQsIDI1NiwgMzg0LCA1MTIuXG5cdCAgICAgICAgICogICBEZWZhdWx0OiA1MTJcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBjZmc6IEhhc2hlci5jZmcuZXh0ZW5kKHtcblx0ICAgICAgICAgICAgb3V0cHV0TGVuZ3RoOiA1MTJcblx0ICAgICAgICB9KSxcblxuXHQgICAgICAgIF9kb1Jlc2V0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3N0YXRlID0gW11cblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICBzdGF0ZVtpXSA9IG5ldyBYNjRXb3JkLmluaXQoKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHRoaXMuYmxvY2tTaXplID0gKDE2MDAgLSAyICogdGhpcy5jZmcub3V0cHV0TGVuZ3RoKSAvIDMyO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9Qcm9jZXNzQmxvY2s6IGZ1bmN0aW9uIChNLCBvZmZzZXQpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3N0YXRlO1xuXHQgICAgICAgICAgICB2YXIgbkJsb2NrU2l6ZUxhbmVzID0gdGhpcy5ibG9ja1NpemUgLyAyO1xuXG5cdCAgICAgICAgICAgIC8vIEFic29yYlxuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5CbG9ja1NpemVMYW5lczsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgICAgIHZhciBNMmkgID0gTVtvZmZzZXQgKyAyICogaV07XG5cdCAgICAgICAgICAgICAgICB2YXIgTTJpMSA9IE1bb2Zmc2V0ICsgMiAqIGkgKyAxXTtcblxuXHQgICAgICAgICAgICAgICAgLy8gU3dhcCBlbmRpYW5cblx0ICAgICAgICAgICAgICAgIE0yaSA9IChcblx0ICAgICAgICAgICAgICAgICAgICAoKChNMmkgPDwgOCkgIHwgKE0yaSA+Pj4gMjQpKSAmIDB4MDBmZjAwZmYpIHxcblx0ICAgICAgICAgICAgICAgICAgICAoKChNMmkgPDwgMjQpIHwgKE0yaSA+Pj4gOCkpICAmIDB4ZmYwMGZmMDApXG5cdCAgICAgICAgICAgICAgICApO1xuXHQgICAgICAgICAgICAgICAgTTJpMSA9IChcblx0ICAgICAgICAgICAgICAgICAgICAoKChNMmkxIDw8IDgpICB8IChNMmkxID4+PiAyNCkpICYgMHgwMGZmMDBmZikgfFxuXHQgICAgICAgICAgICAgICAgICAgICgoKE0yaTEgPDwgMjQpIHwgKE0yaTEgPj4+IDgpKSAgJiAweGZmMDBmZjAwKVxuXHQgICAgICAgICAgICAgICAgKTtcblxuXHQgICAgICAgICAgICAgICAgLy8gQWJzb3JiIG1lc3NhZ2UgaW50byBzdGF0ZVxuXHQgICAgICAgICAgICAgICAgdmFyIGxhbmUgPSBzdGF0ZVtpXTtcblx0ICAgICAgICAgICAgICAgIGxhbmUuaGlnaCBePSBNMmkxO1xuXHQgICAgICAgICAgICAgICAgbGFuZS5sb3cgIF49IE0yaTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIFJvdW5kc1xuXHQgICAgICAgICAgICBmb3IgKHZhciByb3VuZCA9IDA7IHJvdW5kIDwgMjQ7IHJvdW5kKyspIHtcblx0ICAgICAgICAgICAgICAgIC8vIFRoZXRhXG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciB4ID0gMDsgeCA8IDU7IHgrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIC8vIE1peCBjb2x1bW4gbGFuZXNcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgdE1zdyA9IDAsIHRMc3cgPSAwO1xuXHQgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgNTsgeSsrKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYW5lID0gc3RhdGVbeCArIDUgKiB5XTtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdE1zdyBePSBsYW5lLmhpZ2g7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHRMc3cgXj0gbGFuZS5sb3c7XG5cdCAgICAgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICAgICAgLy8gVGVtcG9yYXJ5IHZhbHVlc1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBUeCA9IFRbeF07XG5cdCAgICAgICAgICAgICAgICAgICAgVHguaGlnaCA9IHRNc3c7XG5cdCAgICAgICAgICAgICAgICAgICAgVHgubG93ICA9IHRMc3c7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciB4ID0gMDsgeCA8IDU7IHgrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBUeDQgPSBUWyh4ICsgNCkgJSA1XTtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgVHgxID0gVFsoeCArIDEpICUgNV07XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIFR4MU1zdyA9IFR4MS5oaWdoO1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBUeDFMc3cgPSBUeDEubG93O1xuXG5cdCAgICAgICAgICAgICAgICAgICAgLy8gTWl4IHN1cnJvdW5kaW5nIGNvbHVtbnNcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgdE1zdyA9IFR4NC5oaWdoIF4gKChUeDFNc3cgPDwgMSkgfCAoVHgxTHN3ID4+PiAzMSkpO1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciB0THN3ID0gVHg0LmxvdyAgXiAoKFR4MUxzdyA8PCAxKSB8IChUeDFNc3cgPj4+IDMxKSk7XG5cdCAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCA1OyB5KyspIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxhbmUgPSBzdGF0ZVt4ICsgNSAqIHldO1xuXHQgICAgICAgICAgICAgICAgICAgICAgICBsYW5lLmhpZ2ggXj0gdE1zdztcblx0ICAgICAgICAgICAgICAgICAgICAgICAgbGFuZS5sb3cgIF49IHRMc3c7XG5cdCAgICAgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICAvLyBSaG8gUGlcblx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGxhbmVJbmRleCA9IDE7IGxhbmVJbmRleCA8IDI1OyBsYW5lSW5kZXgrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciB0TXN3O1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciB0THN3O1xuXG5cdCAgICAgICAgICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIGxhbmUgPSBzdGF0ZVtsYW5lSW5kZXhdO1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBsYW5lTXN3ID0gbGFuZS5oaWdoO1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBsYW5lTHN3ID0gbGFuZS5sb3c7XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIHJob09mZnNldCA9IFJIT19PRkZTRVRTW2xhbmVJbmRleF07XG5cblx0ICAgICAgICAgICAgICAgICAgICAvLyBSb3RhdGUgbGFuZXNcblx0ICAgICAgICAgICAgICAgICAgICBpZiAocmhvT2Zmc2V0IDwgMzIpIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdE1zdyA9IChsYW5lTXN3IDw8IHJob09mZnNldCkgfCAobGFuZUxzdyA+Pj4gKDMyIC0gcmhvT2Zmc2V0KSk7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHRMc3cgPSAobGFuZUxzdyA8PCByaG9PZmZzZXQpIHwgKGxhbmVNc3cgPj4+ICgzMiAtIHJob09mZnNldCkpO1xuXHQgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpZiAocmhvT2Zmc2V0ID49IDMyKSAqLyB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHRNc3cgPSAobGFuZUxzdyA8PCAocmhvT2Zmc2V0IC0gMzIpKSB8IChsYW5lTXN3ID4+PiAoNjQgLSByaG9PZmZzZXQpKTtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdExzdyA9IChsYW5lTXN3IDw8IChyaG9PZmZzZXQgLSAzMikpIHwgKGxhbmVMc3cgPj4+ICg2NCAtIHJob09mZnNldCkpO1xuXHQgICAgICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zcG9zZSBsYW5lc1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBUUGlMYW5lID0gVFtQSV9JTkRFWEVTW2xhbmVJbmRleF1dO1xuXHQgICAgICAgICAgICAgICAgICAgIFRQaUxhbmUuaGlnaCA9IHRNc3c7XG5cdCAgICAgICAgICAgICAgICAgICAgVFBpTGFuZS5sb3cgID0gdExzdztcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgLy8gUmhvIHBpIGF0IHggPSB5ID0gMFxuXHQgICAgICAgICAgICAgICAgdmFyIFQwID0gVFswXTtcblx0ICAgICAgICAgICAgICAgIHZhciBzdGF0ZTAgPSBzdGF0ZVswXTtcblx0ICAgICAgICAgICAgICAgIFQwLmhpZ2ggPSBzdGF0ZTAuaGlnaDtcblx0ICAgICAgICAgICAgICAgIFQwLmxvdyAgPSBzdGF0ZTAubG93O1xuXG5cdCAgICAgICAgICAgICAgICAvLyBDaGlcblx0ICAgICAgICAgICAgICAgIGZvciAodmFyIHggPSAwOyB4IDwgNTsgeCsrKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCA1OyB5KyspIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYW5lSW5kZXggPSB4ICsgNSAqIHk7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYW5lID0gc3RhdGVbbGFuZUluZGV4XTtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFRMYW5lID0gVFtsYW5lSW5kZXhdO1xuXHQgICAgICAgICAgICAgICAgICAgICAgICB2YXIgVHgxTGFuZSA9IFRbKCh4ICsgMSkgJSA1KSArIDUgKiB5XTtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFR4MkxhbmUgPSBUWygoeCArIDIpICUgNSkgKyA1ICogeV07XG5cblx0ICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWl4IHJvd3Ncblx0ICAgICAgICAgICAgICAgICAgICAgICAgbGFuZS5oaWdoID0gVExhbmUuaGlnaCBeICh+VHgxTGFuZS5oaWdoICYgVHgyTGFuZS5oaWdoKTtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgbGFuZS5sb3cgID0gVExhbmUubG93ICBeICh+VHgxTGFuZS5sb3cgICYgVHgyTGFuZS5sb3cpO1xuXHQgICAgICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgLy8gSW90YVxuXHQgICAgICAgICAgICAgICAgdmFyIGxhbmUgPSBzdGF0ZVswXTtcblx0ICAgICAgICAgICAgICAgIHZhciByb3VuZENvbnN0YW50ID0gUk9VTkRfQ09OU1RBTlRTW3JvdW5kXTtcblx0ICAgICAgICAgICAgICAgIGxhbmUuaGlnaCBePSByb3VuZENvbnN0YW50LmhpZ2g7XG5cdCAgICAgICAgICAgICAgICBsYW5lLmxvdyAgXj0gcm91bmRDb25zdGFudC5sb3c7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvRmluYWxpemU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fZGF0YTtcblx0ICAgICAgICAgICAgdmFyIGRhdGFXb3JkcyA9IGRhdGEud29yZHM7XG5cdCAgICAgICAgICAgIHZhciBuQml0c1RvdGFsID0gdGhpcy5fbkRhdGFCeXRlcyAqIDg7XG5cdCAgICAgICAgICAgIHZhciBuQml0c0xlZnQgPSBkYXRhLnNpZ0J5dGVzICogODtcblx0ICAgICAgICAgICAgdmFyIGJsb2NrU2l6ZUJpdHMgPSB0aGlzLmJsb2NrU2l6ZSAqIDMyO1xuXG5cdCAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nXG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1tuQml0c0xlZnQgPj4+IDVdIHw9IDB4MSA8PCAoMjQgLSBuQml0c0xlZnQgJSAzMik7XG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1soKE1hdGguY2VpbCgobkJpdHNMZWZ0ICsgMSkgLyBibG9ja1NpemVCaXRzKSAqIGJsb2NrU2l6ZUJpdHMpID4+PiA1KSAtIDFdIHw9IDB4ODA7XG5cdCAgICAgICAgICAgIGRhdGEuc2lnQnl0ZXMgPSBkYXRhV29yZHMubGVuZ3RoICogNDtcblxuXHQgICAgICAgICAgICAvLyBIYXNoIGZpbmFsIGJsb2Nrc1xuXHQgICAgICAgICAgICB0aGlzLl9wcm9jZXNzKCk7XG5cblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3N0YXRlO1xuXHQgICAgICAgICAgICB2YXIgb3V0cHV0TGVuZ3RoQnl0ZXMgPSB0aGlzLmNmZy5vdXRwdXRMZW5ndGggLyA4O1xuXHQgICAgICAgICAgICB2YXIgb3V0cHV0TGVuZ3RoTGFuZXMgPSBvdXRwdXRMZW5ndGhCeXRlcyAvIDg7XG5cblx0ICAgICAgICAgICAgLy8gU3F1ZWV6ZVxuXHQgICAgICAgICAgICB2YXIgaGFzaFdvcmRzID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3V0cHV0TGVuZ3RoTGFuZXM7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgICAgICB2YXIgbGFuZSA9IHN0YXRlW2ldO1xuXHQgICAgICAgICAgICAgICAgdmFyIGxhbmVNc3cgPSBsYW5lLmhpZ2g7XG5cdCAgICAgICAgICAgICAgICB2YXIgbGFuZUxzdyA9IGxhbmUubG93O1xuXG5cdCAgICAgICAgICAgICAgICAvLyBTd2FwIGVuZGlhblxuXHQgICAgICAgICAgICAgICAgbGFuZU1zdyA9IChcblx0ICAgICAgICAgICAgICAgICAgICAoKChsYW5lTXN3IDw8IDgpICB8IChsYW5lTXN3ID4+PiAyNCkpICYgMHgwMGZmMDBmZikgfFxuXHQgICAgICAgICAgICAgICAgICAgICgoKGxhbmVNc3cgPDwgMjQpIHwgKGxhbmVNc3cgPj4+IDgpKSAgJiAweGZmMDBmZjAwKVxuXHQgICAgICAgICAgICAgICAgKTtcblx0ICAgICAgICAgICAgICAgIGxhbmVMc3cgPSAoXG5cdCAgICAgICAgICAgICAgICAgICAgKCgobGFuZUxzdyA8PCA4KSAgfCAobGFuZUxzdyA+Pj4gMjQpKSAmIDB4MDBmZjAwZmYpIHxcblx0ICAgICAgICAgICAgICAgICAgICAoKChsYW5lTHN3IDw8IDI0KSB8IChsYW5lTHN3ID4+PiA4KSkgICYgMHhmZjAwZmYwMClcblx0ICAgICAgICAgICAgICAgICk7XG5cblx0ICAgICAgICAgICAgICAgIC8vIFNxdWVlemUgc3RhdGUgdG8gcmV0cmlldmUgaGFzaFxuXHQgICAgICAgICAgICAgICAgaGFzaFdvcmRzLnB1c2gobGFuZUxzdyk7XG5cdCAgICAgICAgICAgICAgICBoYXNoV29yZHMucHVzaChsYW5lTXN3KTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIFJldHVybiBmaW5hbCBjb21wdXRlZCBoYXNoXG5cdCAgICAgICAgICAgIHJldHVybiBuZXcgV29yZEFycmF5LmluaXQoaGFzaFdvcmRzLCBvdXRwdXRMZW5ndGhCeXRlcyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGNsb25lOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIHZhciBjbG9uZSA9IEhhc2hlci5jbG9uZS5jYWxsKHRoaXMpO1xuXG5cdCAgICAgICAgICAgIHZhciBzdGF0ZSA9IGNsb25lLl9zdGF0ZSA9IHRoaXMuX3N0YXRlLnNsaWNlKDApO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1OyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIHN0YXRlW2ldID0gc3RhdGVbaV0uY2xvbmUoKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIHJldHVybiBjbG9uZTtcblx0ICAgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTaG9ydGN1dCBmdW5jdGlvbiB0byB0aGUgaGFzaGVyJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqXG5cdCAgICAgKiBAcmV0dXJuIHtXb3JkQXJyYXl9IFRoZSBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEBzdGF0aWNcblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgaGFzaCA9IENyeXB0b0pTLlNIQTMoJ21lc3NhZ2UnKTtcblx0ICAgICAqICAgICB2YXIgaGFzaCA9IENyeXB0b0pTLlNIQTMod29yZEFycmF5KTtcblx0ICAgICAqL1xuXHQgICAgQy5TSEEzID0gSGFzaGVyLl9jcmVhdGVIZWxwZXIoU0hBMyk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogU2hvcnRjdXQgZnVuY3Rpb24gdG8gdGhlIEhNQUMncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICpcblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBoYXNoLlxuXHQgICAgICogQHBhcmFtIHtXb3JkQXJyYXl8c3RyaW5nfSBrZXkgVGhlIHNlY3JldCBrZXkuXG5cdCAgICAgKlxuXHQgICAgICogQHJldHVybiB7V29yZEFycmF5fSBUaGUgSE1BQy5cblx0ICAgICAqXG5cdCAgICAgKiBAc3RhdGljXG5cdCAgICAgKlxuXHQgICAgICogQGV4YW1wbGVcblx0ICAgICAqXG5cdCAgICAgKiAgICAgdmFyIGhtYWMgPSBDcnlwdG9KUy5IbWFjU0hBMyhtZXNzYWdlLCBrZXkpO1xuXHQgICAgICovXG5cdCAgICBDLkhtYWNTSEEzID0gSGFzaGVyLl9jcmVhdGVIbWFjSGVscGVyKFNIQTMpO1xuXHR9KE1hdGgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5TSEEzO1xuXG59KSk7IiwiOyhmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSwgdW5kZWYpIHtcblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0Ly8gQ29tbW9uSlNcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCIuL2NvcmVcIiksIHJlcXVpcmUoXCIuL3g2NC1jb3JlXCIpLCByZXF1aXJlKFwiLi9zaGE1MTJcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4veDY0LWNvcmVcIiwgXCIuL3NoYTUxMlwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0KGZ1bmN0aW9uICgpIHtcblx0ICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgdmFyIEMgPSBDcnlwdG9KUztcblx0ICAgIHZhciBDX3g2NCA9IEMueDY0O1xuXHQgICAgdmFyIFg2NFdvcmQgPSBDX3g2NC5Xb3JkO1xuXHQgICAgdmFyIFg2NFdvcmRBcnJheSA9IENfeDY0LldvcmRBcnJheTtcblx0ICAgIHZhciBDX2FsZ28gPSBDLmFsZ287XG5cdCAgICB2YXIgU0hBNTEyID0gQ19hbGdvLlNIQTUxMjtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBTSEEtMzg0IGhhc2ggYWxnb3JpdGhtLlxuXHQgICAgICovXG5cdCAgICB2YXIgU0hBMzg0ID0gQ19hbGdvLlNIQTM4NCA9IFNIQTUxMi5leHRlbmQoe1xuXHQgICAgICAgIF9kb1Jlc2V0OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIHRoaXMuX2hhc2ggPSBuZXcgWDY0V29yZEFycmF5LmluaXQoW1xuXHQgICAgICAgICAgICAgICAgbmV3IFg2NFdvcmQuaW5pdCgweGNiYmI5ZDVkLCAweGMxMDU5ZWQ4KSwgbmV3IFg2NFdvcmQuaW5pdCgweDYyOWEyOTJhLCAweDM2N2NkNTA3KSxcblx0ICAgICAgICAgICAgICAgIG5ldyBYNjRXb3JkLmluaXQoMHg5MTU5MDE1YSwgMHgzMDcwZGQxNyksIG5ldyBYNjRXb3JkLmluaXQoMHgxNTJmZWNkOCwgMHhmNzBlNTkzOSksXG5cdCAgICAgICAgICAgICAgICBuZXcgWDY0V29yZC5pbml0KDB4NjczMzI2NjcsIDB4ZmZjMDBiMzEpLCBuZXcgWDY0V29yZC5pbml0KDB4OGViNDRhODcsIDB4Njg1ODE1MTEpLFxuXHQgICAgICAgICAgICAgICAgbmV3IFg2NFdvcmQuaW5pdCgweGRiMGMyZTBkLCAweDY0Zjk4ZmE3KSwgbmV3IFg2NFdvcmQuaW5pdCgweDQ3YjU0ODFkLCAweGJlZmE0ZmE0KVxuXHQgICAgICAgICAgICBdKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvRmluYWxpemU6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdmFyIGhhc2ggPSBTSEE1MTIuX2RvRmluYWxpemUuY2FsbCh0aGlzKTtcblxuXHQgICAgICAgICAgICBoYXNoLnNpZ0J5dGVzIC09IDE2O1xuXG5cdCAgICAgICAgICAgIHJldHVybiBoYXNoO1xuXHQgICAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIHRoZSBoYXNoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICpcblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGhhc2guXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuU0hBMzg0KCdtZXNzYWdlJyk7XG5cdCAgICAgKiAgICAgdmFyIGhhc2ggPSBDcnlwdG9KUy5TSEEzODQod29yZEFycmF5KTtcblx0ICAgICAqL1xuXHQgICAgQy5TSEEzODQgPSBTSEE1MTIuX2NyZWF0ZUhlbHBlcihTSEEzODQpO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIHRoZSBITUFDJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30ga2V5IFRoZSBzZWNyZXQga2V5LlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIEhNQUMuXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBobWFjID0gQ3J5cHRvSlMuSG1hY1NIQTM4NChtZXNzYWdlLCBrZXkpO1xuXHQgICAgICovXG5cdCAgICBDLkhtYWNTSEEzODQgPSBTSEE1MTIuX2NyZWF0ZUhtYWNIZWxwZXIoU0hBMzg0KTtcblx0fSgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5TSEEzODQ7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5LCB1bmRlZikge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSwgcmVxdWlyZShcIi4veDY0LWNvcmVcIikpO1xuXHR9XG5cdGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gQU1EXG5cdFx0ZGVmaW5lKFtcIi4vY29yZVwiLCBcIi4veDY0LWNvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAoKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBIYXNoZXIgPSBDX2xpYi5IYXNoZXI7XG5cdCAgICB2YXIgQ194NjQgPSBDLng2NDtcblx0ICAgIHZhciBYNjRXb3JkID0gQ194NjQuV29yZDtcblx0ICAgIHZhciBYNjRXb3JkQXJyYXkgPSBDX3g2NC5Xb3JkQXJyYXk7XG5cdCAgICB2YXIgQ19hbGdvID0gQy5hbGdvO1xuXG5cdCAgICBmdW5jdGlvbiBYNjRXb3JkX2NyZWF0ZSgpIHtcblx0ICAgICAgICByZXR1cm4gWDY0V29yZC5jcmVhdGUuYXBwbHkoWDY0V29yZCwgYXJndW1lbnRzKTtcblx0ICAgIH1cblxuXHQgICAgLy8gQ29uc3RhbnRzXG5cdCAgICB2YXIgSyA9IFtcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDQyOGEyZjk4LCAweGQ3MjhhZTIyKSwgWDY0V29yZF9jcmVhdGUoMHg3MTM3NDQ5MSwgMHgyM2VmNjVjZCksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHhiNWMwZmJjZiwgMHhlYzRkM2IyZiksIFg2NFdvcmRfY3JlYXRlKDB4ZTliNWRiYTUsIDB4ODE4OWRiYmMpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4Mzk1NmMyNWIsIDB4ZjM0OGI1MzgpLCBYNjRXb3JkX2NyZWF0ZSgweDU5ZjExMWYxLCAweGI2MDVkMDE5KSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDkyM2Y4MmE0LCAweGFmMTk0ZjliKSwgWDY0V29yZF9jcmVhdGUoMHhhYjFjNWVkNSwgMHhkYTZkODExOCksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHhkODA3YWE5OCwgMHhhMzAzMDI0MiksIFg2NFdvcmRfY3JlYXRlKDB4MTI4MzViMDEsIDB4NDU3MDZmYmUpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4MjQzMTg1YmUsIDB4NGVlNGIyOGMpLCBYNjRXb3JkX2NyZWF0ZSgweDU1MGM3ZGMzLCAweGQ1ZmZiNGUyKSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDcyYmU1ZDc0LCAweGYyN2I4OTZmKSwgWDY0V29yZF9jcmVhdGUoMHg4MGRlYjFmZSwgMHgzYjE2OTZiMSksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHg5YmRjMDZhNywgMHgyNWM3MTIzNSksIFg2NFdvcmRfY3JlYXRlKDB4YzE5YmYxNzQsIDB4Y2Y2OTI2OTQpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4ZTQ5YjY5YzEsIDB4OWVmMTRhZDIpLCBYNjRXb3JkX2NyZWF0ZSgweGVmYmU0Nzg2LCAweDM4NGYyNWUzKSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDBmYzE5ZGM2LCAweDhiOGNkNWI1KSwgWDY0V29yZF9jcmVhdGUoMHgyNDBjYTFjYywgMHg3N2FjOWM2NSksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHgyZGU5MmM2ZiwgMHg1OTJiMDI3NSksIFg2NFdvcmRfY3JlYXRlKDB4NGE3NDg0YWEsIDB4NmVhNmU0ODMpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4NWNiMGE5ZGMsIDB4YmQ0MWZiZDQpLCBYNjRXb3JkX2NyZWF0ZSgweDc2Zjk4OGRhLCAweDgzMTE1M2I1KSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDk4M2U1MTUyLCAweGVlNjZkZmFiKSwgWDY0V29yZF9jcmVhdGUoMHhhODMxYzY2ZCwgMHgyZGI0MzIxMCksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHhiMDAzMjdjOCwgMHg5OGZiMjEzZiksIFg2NFdvcmRfY3JlYXRlKDB4YmY1OTdmYzcsIDB4YmVlZjBlZTQpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4YzZlMDBiZjMsIDB4M2RhODhmYzIpLCBYNjRXb3JkX2NyZWF0ZSgweGQ1YTc5MTQ3LCAweDkzMGFhNzI1KSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDA2Y2E2MzUxLCAweGUwMDM4MjZmKSwgWDY0V29yZF9jcmVhdGUoMHgxNDI5Mjk2NywgMHgwYTBlNmU3MCksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHgyN2I3MGE4NSwgMHg0NmQyMmZmYyksIFg2NFdvcmRfY3JlYXRlKDB4MmUxYjIxMzgsIDB4NWMyNmM5MjYpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4NGQyYzZkZmMsIDB4NWFjNDJhZWQpLCBYNjRXb3JkX2NyZWF0ZSgweDUzMzgwZDEzLCAweDlkOTViM2RmKSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDY1MGE3MzU0LCAweDhiYWY2M2RlKSwgWDY0V29yZF9jcmVhdGUoMHg3NjZhMGFiYiwgMHgzYzc3YjJhOCksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHg4MWMyYzkyZSwgMHg0N2VkYWVlNiksIFg2NFdvcmRfY3JlYXRlKDB4OTI3MjJjODUsIDB4MTQ4MjM1M2IpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4YTJiZmU4YTEsIDB4NGNmMTAzNjQpLCBYNjRXb3JkX2NyZWF0ZSgweGE4MWE2NjRiLCAweGJjNDIzMDAxKSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweGMyNGI4YjcwLCAweGQwZjg5NzkxKSwgWDY0V29yZF9jcmVhdGUoMHhjNzZjNTFhMywgMHgwNjU0YmUzMCksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHhkMTkyZTgxOSwgMHhkNmVmNTIxOCksIFg2NFdvcmRfY3JlYXRlKDB4ZDY5OTA2MjQsIDB4NTU2NWE5MTApLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4ZjQwZTM1ODUsIDB4NTc3MTIwMmEpLCBYNjRXb3JkX2NyZWF0ZSgweDEwNmFhMDcwLCAweDMyYmJkMWI4KSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDE5YTRjMTE2LCAweGI4ZDJkMGM4KSwgWDY0V29yZF9jcmVhdGUoMHgxZTM3NmMwOCwgMHg1MTQxYWI1MyksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHgyNzQ4Nzc0YywgMHhkZjhlZWI5OSksIFg2NFdvcmRfY3JlYXRlKDB4MzRiMGJjYjUsIDB4ZTE5YjQ4YTgpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4MzkxYzBjYjMsIDB4YzVjOTVhNjMpLCBYNjRXb3JkX2NyZWF0ZSgweDRlZDhhYTRhLCAweGUzNDE4YWNiKSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDViOWNjYTRmLCAweDc3NjNlMzczKSwgWDY0V29yZF9jcmVhdGUoMHg2ODJlNmZmMywgMHhkNmIyYjhhMyksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHg3NDhmODJlZSwgMHg1ZGVmYjJmYyksIFg2NFdvcmRfY3JlYXRlKDB4NzhhNTYzNmYsIDB4NDMxNzJmNjApLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4ODRjODc4MTQsIDB4YTFmMGFiNzIpLCBYNjRXb3JkX2NyZWF0ZSgweDhjYzcwMjA4LCAweDFhNjQzOWVjKSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDkwYmVmZmZhLCAweDIzNjMxZTI4KSwgWDY0V29yZF9jcmVhdGUoMHhhNDUwNmNlYiwgMHhkZTgyYmRlOSksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHhiZWY5YTNmNywgMHhiMmM2NzkxNSksIFg2NFdvcmRfY3JlYXRlKDB4YzY3MTc4ZjIsIDB4ZTM3MjUzMmIpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4Y2EyNzNlY2UsIDB4ZWEyNjYxOWMpLCBYNjRXb3JkX2NyZWF0ZSgweGQxODZiOGM3LCAweDIxYzBjMjA3KSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweGVhZGE3ZGQ2LCAweGNkZTBlYjFlKSwgWDY0V29yZF9jcmVhdGUoMHhmNTdkNGY3ZiwgMHhlZTZlZDE3OCksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHgwNmYwNjdhYSwgMHg3MjE3NmZiYSksIFg2NFdvcmRfY3JlYXRlKDB4MGE2MzdkYzUsIDB4YTJjODk4YTYpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4MTEzZjk4MDQsIDB4YmVmOTBkYWUpLCBYNjRXb3JkX2NyZWF0ZSgweDFiNzEwYjM1LCAweDEzMWM0NzFiKSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDI4ZGI3N2Y1LCAweDIzMDQ3ZDg0KSwgWDY0V29yZF9jcmVhdGUoMHgzMmNhYWI3YiwgMHg0MGM3MjQ5MyksXG5cdCAgICAgICAgWDY0V29yZF9jcmVhdGUoMHgzYzllYmUwYSwgMHgxNWM5YmViYyksIFg2NFdvcmRfY3JlYXRlKDB4NDMxZDY3YzQsIDB4OWMxMDBkNGMpLFxuXHQgICAgICAgIFg2NFdvcmRfY3JlYXRlKDB4NGNjNWQ0YmUsIDB4Y2IzZTQyYjYpLCBYNjRXb3JkX2NyZWF0ZSgweDU5N2YyOTljLCAweGZjNjU3ZTJhKSxcblx0ICAgICAgICBYNjRXb3JkX2NyZWF0ZSgweDVmY2I2ZmFiLCAweDNhZDZmYWVjKSwgWDY0V29yZF9jcmVhdGUoMHg2YzQ0MTk4YywgMHg0YTQ3NTgxNylcblx0ICAgIF07XG5cblx0ICAgIC8vIFJldXNhYmxlIG9iamVjdHNcblx0ICAgIHZhciBXID0gW107XG5cdCAgICAoZnVuY3Rpb24gKCkge1xuXHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODA7IGkrKykge1xuXHQgICAgICAgICAgICBXW2ldID0gWDY0V29yZF9jcmVhdGUoKTtcblx0ICAgICAgICB9XG5cdCAgICB9KCkpO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNIQS01MTIgaGFzaCBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBTSEE1MTIgPSBDX2FsZ28uU0hBNTEyID0gSGFzaGVyLmV4dGVuZCh7XG5cdCAgICAgICAgX2RvUmVzZXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdGhpcy5faGFzaCA9IG5ldyBYNjRXb3JkQXJyYXkuaW5pdChbXG5cdCAgICAgICAgICAgICAgICBuZXcgWDY0V29yZC5pbml0KDB4NmEwOWU2NjcsIDB4ZjNiY2M5MDgpLCBuZXcgWDY0V29yZC5pbml0KDB4YmI2N2FlODUsIDB4ODRjYWE3M2IpLFxuXHQgICAgICAgICAgICAgICAgbmV3IFg2NFdvcmQuaW5pdCgweDNjNmVmMzcyLCAweGZlOTRmODJiKSwgbmV3IFg2NFdvcmQuaW5pdCgweGE1NGZmNTNhLCAweDVmMWQzNmYxKSxcblx0ICAgICAgICAgICAgICAgIG5ldyBYNjRXb3JkLmluaXQoMHg1MTBlNTI3ZiwgMHhhZGU2ODJkMSksIG5ldyBYNjRXb3JkLmluaXQoMHg5YjA1Njg4YywgMHgyYjNlNmMxZiksXG5cdCAgICAgICAgICAgICAgICBuZXcgWDY0V29yZC5pbml0KDB4MWY4M2Q5YWIsIDB4ZmI0MWJkNmIpLCBuZXcgWDY0V29yZC5pbml0KDB4NWJlMGNkMTksIDB4MTM3ZTIxNzkpXG5cdCAgICAgICAgICAgIF0pO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9Qcm9jZXNzQmxvY2s6IGZ1bmN0aW9uIChNLCBvZmZzZXQpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBIID0gdGhpcy5faGFzaC53b3JkcztcblxuXHQgICAgICAgICAgICB2YXIgSDAgPSBIWzBdO1xuXHQgICAgICAgICAgICB2YXIgSDEgPSBIWzFdO1xuXHQgICAgICAgICAgICB2YXIgSDIgPSBIWzJdO1xuXHQgICAgICAgICAgICB2YXIgSDMgPSBIWzNdO1xuXHQgICAgICAgICAgICB2YXIgSDQgPSBIWzRdO1xuXHQgICAgICAgICAgICB2YXIgSDUgPSBIWzVdO1xuXHQgICAgICAgICAgICB2YXIgSDYgPSBIWzZdO1xuXHQgICAgICAgICAgICB2YXIgSDcgPSBIWzddO1xuXG5cdCAgICAgICAgICAgIHZhciBIMGggPSBIMC5oaWdoO1xuXHQgICAgICAgICAgICB2YXIgSDBsID0gSDAubG93O1xuXHQgICAgICAgICAgICB2YXIgSDFoID0gSDEuaGlnaDtcblx0ICAgICAgICAgICAgdmFyIEgxbCA9IEgxLmxvdztcblx0ICAgICAgICAgICAgdmFyIEgyaCA9IEgyLmhpZ2g7XG5cdCAgICAgICAgICAgIHZhciBIMmwgPSBIMi5sb3c7XG5cdCAgICAgICAgICAgIHZhciBIM2ggPSBIMy5oaWdoO1xuXHQgICAgICAgICAgICB2YXIgSDNsID0gSDMubG93O1xuXHQgICAgICAgICAgICB2YXIgSDRoID0gSDQuaGlnaDtcblx0ICAgICAgICAgICAgdmFyIEg0bCA9IEg0Lmxvdztcblx0ICAgICAgICAgICAgdmFyIEg1aCA9IEg1LmhpZ2g7XG5cdCAgICAgICAgICAgIHZhciBINWwgPSBINS5sb3c7XG5cdCAgICAgICAgICAgIHZhciBINmggPSBINi5oaWdoO1xuXHQgICAgICAgICAgICB2YXIgSDZsID0gSDYubG93O1xuXHQgICAgICAgICAgICB2YXIgSDdoID0gSDcuaGlnaDtcblx0ICAgICAgICAgICAgdmFyIEg3bCA9IEg3LmxvdztcblxuXHQgICAgICAgICAgICAvLyBXb3JraW5nIHZhcmlhYmxlc1xuXHQgICAgICAgICAgICB2YXIgYWggPSBIMGg7XG5cdCAgICAgICAgICAgIHZhciBhbCA9IEgwbDtcblx0ICAgICAgICAgICAgdmFyIGJoID0gSDFoO1xuXHQgICAgICAgICAgICB2YXIgYmwgPSBIMWw7XG5cdCAgICAgICAgICAgIHZhciBjaCA9IEgyaDtcblx0ICAgICAgICAgICAgdmFyIGNsID0gSDJsO1xuXHQgICAgICAgICAgICB2YXIgZGggPSBIM2g7XG5cdCAgICAgICAgICAgIHZhciBkbCA9IEgzbDtcblx0ICAgICAgICAgICAgdmFyIGVoID0gSDRoO1xuXHQgICAgICAgICAgICB2YXIgZWwgPSBINGw7XG5cdCAgICAgICAgICAgIHZhciBmaCA9IEg1aDtcblx0ICAgICAgICAgICAgdmFyIGZsID0gSDVsO1xuXHQgICAgICAgICAgICB2YXIgZ2ggPSBINmg7XG5cdCAgICAgICAgICAgIHZhciBnbCA9IEg2bDtcblx0ICAgICAgICAgICAgdmFyIGhoID0gSDdoO1xuXHQgICAgICAgICAgICB2YXIgaGwgPSBIN2w7XG5cblx0ICAgICAgICAgICAgLy8gUm91bmRzXG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODA7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgdmFyIFdpbDtcblx0ICAgICAgICAgICAgICAgIHZhciBXaWg7XG5cblx0ICAgICAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgICAgICB2YXIgV2kgPSBXW2ldO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBFeHRlbmQgbWVzc2FnZVxuXHQgICAgICAgICAgICAgICAgaWYgKGkgPCAxNikge1xuXHQgICAgICAgICAgICAgICAgICAgIFdpaCA9IFdpLmhpZ2ggPSBNW29mZnNldCArIGkgKiAyXSAgICAgfCAwO1xuXHQgICAgICAgICAgICAgICAgICAgIFdpbCA9IFdpLmxvdyAgPSBNW29mZnNldCArIGkgKiAyICsgMV0gfCAwO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICAvLyBHYW1tYTBcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgZ2FtbWEweCAgPSBXW2kgLSAxNV07XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIGdhbW1hMHhoID0gZ2FtbWEweC5oaWdoO1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBnYW1tYTB4bCA9IGdhbW1hMHgubG93O1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBnYW1tYTBoICA9ICgoZ2FtbWEweGggPj4+IDEpIHwgKGdhbW1hMHhsIDw8IDMxKSkgXiAoKGdhbW1hMHhoID4+PiA4KSB8IChnYW1tYTB4bCA8PCAyNCkpIF4gKGdhbW1hMHhoID4+PiA3KTtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgZ2FtbWEwbCAgPSAoKGdhbW1hMHhsID4+PiAxKSB8IChnYW1tYTB4aCA8PCAzMSkpIF4gKChnYW1tYTB4bCA+Pj4gOCkgfCAoZ2FtbWEweGggPDwgMjQpKSBeICgoZ2FtbWEweGwgPj4+IDcpIHwgKGdhbW1hMHhoIDw8IDI1KSk7XG5cblx0ICAgICAgICAgICAgICAgICAgICAvLyBHYW1tYTFcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgZ2FtbWExeCAgPSBXW2kgLSAyXTtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgZ2FtbWExeGggPSBnYW1tYTF4LmhpZ2g7XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIGdhbW1hMXhsID0gZ2FtbWExeC5sb3c7XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIGdhbW1hMWggID0gKChnYW1tYTF4aCA+Pj4gMTkpIHwgKGdhbW1hMXhsIDw8IDEzKSkgXiAoKGdhbW1hMXhoIDw8IDMpIHwgKGdhbW1hMXhsID4+PiAyOSkpIF4gKGdhbW1hMXhoID4+PiA2KTtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgZ2FtbWExbCAgPSAoKGdhbW1hMXhsID4+PiAxOSkgfCAoZ2FtbWExeGggPDwgMTMpKSBeICgoZ2FtbWExeGwgPDwgMykgfCAoZ2FtbWExeGggPj4+IDI5KSkgXiAoKGdhbW1hMXhsID4+PiA2KSB8IChnYW1tYTF4aCA8PCAyNikpO1xuXG5cdCAgICAgICAgICAgICAgICAgICAgLy8gV1tpXSA9IGdhbW1hMCArIFdbaSAtIDddICsgZ2FtbWExICsgV1tpIC0gMTZdXG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIFdpNyAgPSBXW2kgLSA3XTtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgV2k3aCA9IFdpNy5oaWdoO1xuXHQgICAgICAgICAgICAgICAgICAgIHZhciBXaTdsID0gV2k3LmxvdztcblxuXHQgICAgICAgICAgICAgICAgICAgIHZhciBXaTE2ICA9IFdbaSAtIDE2XTtcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgV2kxNmggPSBXaTE2LmhpZ2g7XG5cdCAgICAgICAgICAgICAgICAgICAgdmFyIFdpMTZsID0gV2kxNi5sb3c7XG5cblx0ICAgICAgICAgICAgICAgICAgICBXaWwgPSBnYW1tYTBsICsgV2k3bDtcblx0ICAgICAgICAgICAgICAgICAgICBXaWggPSBnYW1tYTBoICsgV2k3aCArICgoV2lsID4+PiAwKSA8IChnYW1tYTBsID4+PiAwKSA/IDEgOiAwKTtcblx0ICAgICAgICAgICAgICAgICAgICBXaWwgPSBXaWwgKyBnYW1tYTFsO1xuXHQgICAgICAgICAgICAgICAgICAgIFdpaCA9IFdpaCArIGdhbW1hMWggKyAoKFdpbCA+Pj4gMCkgPCAoZ2FtbWExbCA+Pj4gMCkgPyAxIDogMCk7XG5cdCAgICAgICAgICAgICAgICAgICAgV2lsID0gV2lsICsgV2kxNmw7XG5cdCAgICAgICAgICAgICAgICAgICAgV2loID0gV2loICsgV2kxNmggKyAoKFdpbCA+Pj4gMCkgPCAoV2kxNmwgPj4+IDApID8gMSA6IDApO1xuXG5cdCAgICAgICAgICAgICAgICAgICAgV2kuaGlnaCA9IFdpaDtcblx0ICAgICAgICAgICAgICAgICAgICBXaS5sb3cgID0gV2lsO1xuXHQgICAgICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgICAgICB2YXIgY2hoICA9IChlaCAmIGZoKSBeICh+ZWggJiBnaCk7XG5cdCAgICAgICAgICAgICAgICB2YXIgY2hsICA9IChlbCAmIGZsKSBeICh+ZWwgJiBnbCk7XG5cdCAgICAgICAgICAgICAgICB2YXIgbWFqaCA9IChhaCAmIGJoKSBeIChhaCAmIGNoKSBeIChiaCAmIGNoKTtcblx0ICAgICAgICAgICAgICAgIHZhciBtYWpsID0gKGFsICYgYmwpIF4gKGFsICYgY2wpIF4gKGJsICYgY2wpO1xuXG5cdCAgICAgICAgICAgICAgICB2YXIgc2lnbWEwaCA9ICgoYWggPj4+IDI4KSB8IChhbCA8PCA0KSkgIF4gKChhaCA8PCAzMCkgIHwgKGFsID4+PiAyKSkgXiAoKGFoIDw8IDI1KSB8IChhbCA+Pj4gNykpO1xuXHQgICAgICAgICAgICAgICAgdmFyIHNpZ21hMGwgPSAoKGFsID4+PiAyOCkgfCAoYWggPDwgNCkpICBeICgoYWwgPDwgMzApICB8IChhaCA+Pj4gMikpIF4gKChhbCA8PCAyNSkgfCAoYWggPj4+IDcpKTtcblx0ICAgICAgICAgICAgICAgIHZhciBzaWdtYTFoID0gKChlaCA+Pj4gMTQpIHwgKGVsIDw8IDE4KSkgXiAoKGVoID4+PiAxOCkgfCAoZWwgPDwgMTQpKSBeICgoZWggPDwgMjMpIHwgKGVsID4+PiA5KSk7XG5cdCAgICAgICAgICAgICAgICB2YXIgc2lnbWExbCA9ICgoZWwgPj4+IDE0KSB8IChlaCA8PCAxOCkpIF4gKChlbCA+Pj4gMTgpIHwgKGVoIDw8IDE0KSkgXiAoKGVsIDw8IDIzKSB8IChlaCA+Pj4gOSkpO1xuXG5cdCAgICAgICAgICAgICAgICAvLyB0MSA9IGggKyBzaWdtYTEgKyBjaCArIEtbaV0gKyBXW2ldXG5cdCAgICAgICAgICAgICAgICB2YXIgS2kgID0gS1tpXTtcblx0ICAgICAgICAgICAgICAgIHZhciBLaWggPSBLaS5oaWdoO1xuXHQgICAgICAgICAgICAgICAgdmFyIEtpbCA9IEtpLmxvdztcblxuXHQgICAgICAgICAgICAgICAgdmFyIHQxbCA9IGhsICsgc2lnbWExbDtcblx0ICAgICAgICAgICAgICAgIHZhciB0MWggPSBoaCArIHNpZ21hMWggKyAoKHQxbCA+Pj4gMCkgPCAoaGwgPj4+IDApID8gMSA6IDApO1xuXHQgICAgICAgICAgICAgICAgdmFyIHQxbCA9IHQxbCArIGNobDtcblx0ICAgICAgICAgICAgICAgIHZhciB0MWggPSB0MWggKyBjaGggKyAoKHQxbCA+Pj4gMCkgPCAoY2hsID4+PiAwKSA/IDEgOiAwKTtcblx0ICAgICAgICAgICAgICAgIHZhciB0MWwgPSB0MWwgKyBLaWw7XG5cdCAgICAgICAgICAgICAgICB2YXIgdDFoID0gdDFoICsgS2loICsgKCh0MWwgPj4+IDApIDwgKEtpbCA+Pj4gMCkgPyAxIDogMCk7XG5cdCAgICAgICAgICAgICAgICB2YXIgdDFsID0gdDFsICsgV2lsO1xuXHQgICAgICAgICAgICAgICAgdmFyIHQxaCA9IHQxaCArIFdpaCArICgodDFsID4+PiAwKSA8IChXaWwgPj4+IDApID8gMSA6IDApO1xuXG5cdCAgICAgICAgICAgICAgICAvLyB0MiA9IHNpZ21hMCArIG1halxuXHQgICAgICAgICAgICAgICAgdmFyIHQybCA9IHNpZ21hMGwgKyBtYWpsO1xuXHQgICAgICAgICAgICAgICAgdmFyIHQyaCA9IHNpZ21hMGggKyBtYWpoICsgKCh0MmwgPj4+IDApIDwgKHNpZ21hMGwgPj4+IDApID8gMSA6IDApO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBVcGRhdGUgd29ya2luZyB2YXJpYWJsZXNcblx0ICAgICAgICAgICAgICAgIGhoID0gZ2g7XG5cdCAgICAgICAgICAgICAgICBobCA9IGdsO1xuXHQgICAgICAgICAgICAgICAgZ2ggPSBmaDtcblx0ICAgICAgICAgICAgICAgIGdsID0gZmw7XG5cdCAgICAgICAgICAgICAgICBmaCA9IGVoO1xuXHQgICAgICAgICAgICAgICAgZmwgPSBlbDtcblx0ICAgICAgICAgICAgICAgIGVsID0gKGRsICsgdDFsKSB8IDA7XG5cdCAgICAgICAgICAgICAgICBlaCA9IChkaCArIHQxaCArICgoZWwgPj4+IDApIDwgKGRsID4+PiAwKSA/IDEgOiAwKSkgfCAwO1xuXHQgICAgICAgICAgICAgICAgZGggPSBjaDtcblx0ICAgICAgICAgICAgICAgIGRsID0gY2w7XG5cdCAgICAgICAgICAgICAgICBjaCA9IGJoO1xuXHQgICAgICAgICAgICAgICAgY2wgPSBibDtcblx0ICAgICAgICAgICAgICAgIGJoID0gYWg7XG5cdCAgICAgICAgICAgICAgICBibCA9IGFsO1xuXHQgICAgICAgICAgICAgICAgYWwgPSAodDFsICsgdDJsKSB8IDA7XG5cdCAgICAgICAgICAgICAgICBhaCA9ICh0MWggKyB0MmggKyAoKGFsID4+PiAwKSA8ICh0MWwgPj4+IDApID8gMSA6IDApKSB8IDA7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBJbnRlcm1lZGlhdGUgaGFzaCB2YWx1ZVxuXHQgICAgICAgICAgICBIMGwgPSBIMC5sb3cgID0gKEgwbCArIGFsKTtcblx0ICAgICAgICAgICAgSDAuaGlnaCA9IChIMGggKyBhaCArICgoSDBsID4+PiAwKSA8IChhbCA+Pj4gMCkgPyAxIDogMCkpO1xuXHQgICAgICAgICAgICBIMWwgPSBIMS5sb3cgID0gKEgxbCArIGJsKTtcblx0ICAgICAgICAgICAgSDEuaGlnaCA9IChIMWggKyBiaCArICgoSDFsID4+PiAwKSA8IChibCA+Pj4gMCkgPyAxIDogMCkpO1xuXHQgICAgICAgICAgICBIMmwgPSBIMi5sb3cgID0gKEgybCArIGNsKTtcblx0ICAgICAgICAgICAgSDIuaGlnaCA9IChIMmggKyBjaCArICgoSDJsID4+PiAwKSA8IChjbCA+Pj4gMCkgPyAxIDogMCkpO1xuXHQgICAgICAgICAgICBIM2wgPSBIMy5sb3cgID0gKEgzbCArIGRsKTtcblx0ICAgICAgICAgICAgSDMuaGlnaCA9IChIM2ggKyBkaCArICgoSDNsID4+PiAwKSA8IChkbCA+Pj4gMCkgPyAxIDogMCkpO1xuXHQgICAgICAgICAgICBINGwgPSBINC5sb3cgID0gKEg0bCArIGVsKTtcblx0ICAgICAgICAgICAgSDQuaGlnaCA9IChINGggKyBlaCArICgoSDRsID4+PiAwKSA8IChlbCA+Pj4gMCkgPyAxIDogMCkpO1xuXHQgICAgICAgICAgICBINWwgPSBINS5sb3cgID0gKEg1bCArIGZsKTtcblx0ICAgICAgICAgICAgSDUuaGlnaCA9IChINWggKyBmaCArICgoSDVsID4+PiAwKSA8IChmbCA+Pj4gMCkgPyAxIDogMCkpO1xuXHQgICAgICAgICAgICBINmwgPSBINi5sb3cgID0gKEg2bCArIGdsKTtcblx0ICAgICAgICAgICAgSDYuaGlnaCA9IChINmggKyBnaCArICgoSDZsID4+PiAwKSA8IChnbCA+Pj4gMCkgPyAxIDogMCkpO1xuXHQgICAgICAgICAgICBIN2wgPSBINy5sb3cgID0gKEg3bCArIGhsKTtcblx0ICAgICAgICAgICAgSDcuaGlnaCA9IChIN2ggKyBoaCArICgoSDdsID4+PiAwKSA8IChobCA+Pj4gMCkgPyAxIDogMCkpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBfZG9GaW5hbGl6ZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuXHQgICAgICAgICAgICB2YXIgZGF0YVdvcmRzID0gZGF0YS53b3JkcztcblxuXHQgICAgICAgICAgICB2YXIgbkJpdHNUb3RhbCA9IHRoaXMuX25EYXRhQnl0ZXMgKiA4O1xuXHQgICAgICAgICAgICB2YXIgbkJpdHNMZWZ0ID0gZGF0YS5zaWdCeXRlcyAqIDg7XG5cblx0ICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmdcblx0ICAgICAgICAgICAgZGF0YVdvcmRzW25CaXRzTGVmdCA+Pj4gNV0gfD0gMHg4MCA8PCAoMjQgLSBuQml0c0xlZnQgJSAzMik7XG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1soKChuQml0c0xlZnQgKyAxMjgpID4+PiAxMCkgPDwgNSkgKyAzMF0gPSBNYXRoLmZsb29yKG5CaXRzVG90YWwgLyAweDEwMDAwMDAwMCk7XG5cdCAgICAgICAgICAgIGRhdGFXb3Jkc1soKChuQml0c0xlZnQgKyAxMjgpID4+PiAxMCkgPDwgNSkgKyAzMV0gPSBuQml0c1RvdGFsO1xuXHQgICAgICAgICAgICBkYXRhLnNpZ0J5dGVzID0gZGF0YVdvcmRzLmxlbmd0aCAqIDQ7XG5cblx0ICAgICAgICAgICAgLy8gSGFzaCBmaW5hbCBibG9ja3Ncblx0ICAgICAgICAgICAgdGhpcy5fcHJvY2VzcygpO1xuXG5cdCAgICAgICAgICAgIC8vIENvbnZlcnQgaGFzaCB0byAzMi1iaXQgd29yZCBhcnJheSBiZWZvcmUgcmV0dXJuaW5nXG5cdCAgICAgICAgICAgIHZhciBoYXNoID0gdGhpcy5faGFzaC50b1gzMigpO1xuXG5cdCAgICAgICAgICAgIC8vIFJldHVybiBmaW5hbCBjb21wdXRlZCBoYXNoXG5cdCAgICAgICAgICAgIHJldHVybiBoYXNoO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBjbG9uZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgY2xvbmUgPSBIYXNoZXIuY2xvbmUuY2FsbCh0aGlzKTtcblx0ICAgICAgICAgICAgY2xvbmUuX2hhc2ggPSB0aGlzLl9oYXNoLmNsb25lKCk7XG5cblx0ICAgICAgICAgICAgcmV0dXJuIGNsb25lO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBibG9ja1NpemU6IDEwMjQvMzJcblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIHRoZSBoYXNoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICpcblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBoYXNoLlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIGhhc2guXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBoYXNoID0gQ3J5cHRvSlMuU0hBNTEyKCdtZXNzYWdlJyk7XG5cdCAgICAgKiAgICAgdmFyIGhhc2ggPSBDcnlwdG9KUy5TSEE1MTIod29yZEFycmF5KTtcblx0ICAgICAqL1xuXHQgICAgQy5TSEE1MTIgPSBIYXNoZXIuX2NyZWF0ZUhlbHBlcihTSEE1MTIpO1xuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIHRoZSBITUFDJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAcGFyYW0ge1dvcmRBcnJheXxzdHJpbmd9IG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gaGFzaC5cblx0ICAgICAqIEBwYXJhbSB7V29yZEFycmF5fHN0cmluZ30ga2V5IFRoZSBzZWNyZXQga2V5LlxuXHQgICAgICpcblx0ICAgICAqIEByZXR1cm4ge1dvcmRBcnJheX0gVGhlIEhNQUMuXG5cdCAgICAgKlxuXHQgICAgICogQHN0YXRpY1xuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBobWFjID0gQ3J5cHRvSlMuSG1hY1NIQTUxMihtZXNzYWdlLCBrZXkpO1xuXHQgICAgICovXG5cdCAgICBDLkhtYWNTSEE1MTIgPSBIYXNoZXIuX2NyZWF0ZUhtYWNIZWxwZXIoU0hBNTEyKTtcblx0fSgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5TSEE1MTI7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5LCB1bmRlZikge1xuXHRpZiAodHlwZW9mIGV4cG9ydHMgPT09IFwib2JqZWN0XCIpIHtcblx0XHQvLyBDb21tb25KU1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIi4vY29yZVwiKSwgcmVxdWlyZShcIi4vZW5jLWJhc2U2NFwiKSwgcmVxdWlyZShcIi4vbWQ1XCIpLCByZXF1aXJlKFwiLi9ldnBrZGZcIiksIHJlcXVpcmUoXCIuL2NpcGhlci1jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIiwgXCIuL2VuYy1iYXNlNjRcIiwgXCIuL21kNVwiLCBcIi4vZXZwa2RmXCIsIFwiLi9jaXBoZXItY29yZVwiXSwgZmFjdG9yeSk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0Ly8gR2xvYmFsIChicm93c2VyKVxuXHRcdGZhY3Rvcnkocm9vdC5DcnlwdG9KUyk7XG5cdH1cbn0odGhpcywgZnVuY3Rpb24gKENyeXB0b0pTKSB7XG5cblx0KGZ1bmN0aW9uICgpIHtcblx0ICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgdmFyIEMgPSBDcnlwdG9KUztcblx0ICAgIHZhciBDX2xpYiA9IEMubGliO1xuXHQgICAgdmFyIFdvcmRBcnJheSA9IENfbGliLldvcmRBcnJheTtcblx0ICAgIHZhciBCbG9ja0NpcGhlciA9IENfbGliLkJsb2NrQ2lwaGVyO1xuXHQgICAgdmFyIENfYWxnbyA9IEMuYWxnbztcblxuXHQgICAgLy8gUGVybXV0ZWQgQ2hvaWNlIDEgY29uc3RhbnRzXG5cdCAgICB2YXIgUEMxID0gW1xuXHQgICAgICAgIDU3LCA0OSwgNDEsIDMzLCAyNSwgMTcsIDksICAxLFxuXHQgICAgICAgIDU4LCA1MCwgNDIsIDM0LCAyNiwgMTgsIDEwLCAyLFxuXHQgICAgICAgIDU5LCA1MSwgNDMsIDM1LCAyNywgMTksIDExLCAzLFxuXHQgICAgICAgIDYwLCA1MiwgNDQsIDM2LCA2MywgNTUsIDQ3LCAzOSxcblx0ICAgICAgICAzMSwgMjMsIDE1LCA3LCAgNjIsIDU0LCA0NiwgMzgsXG5cdCAgICAgICAgMzAsIDIyLCAxNCwgNiwgIDYxLCA1MywgNDUsIDM3LFxuXHQgICAgICAgIDI5LCAyMSwgMTMsIDUsICAyOCwgMjAsIDEyLCA0XG5cdCAgICBdO1xuXG5cdCAgICAvLyBQZXJtdXRlZCBDaG9pY2UgMiBjb25zdGFudHNcblx0ICAgIHZhciBQQzIgPSBbXG5cdCAgICAgICAgMTQsIDE3LCAxMSwgMjQsIDEsICA1LFxuXHQgICAgICAgIDMsICAyOCwgMTUsIDYsICAyMSwgMTAsXG5cdCAgICAgICAgMjMsIDE5LCAxMiwgNCwgIDI2LCA4LFxuXHQgICAgICAgIDE2LCA3LCAgMjcsIDIwLCAxMywgMixcblx0ICAgICAgICA0MSwgNTIsIDMxLCAzNywgNDcsIDU1LFxuXHQgICAgICAgIDMwLCA0MCwgNTEsIDQ1LCAzMywgNDgsXG5cdCAgICAgICAgNDQsIDQ5LCAzOSwgNTYsIDM0LCA1Myxcblx0ICAgICAgICA0NiwgNDIsIDUwLCAzNiwgMjksIDMyXG5cdCAgICBdO1xuXG5cdCAgICAvLyBDdW11bGF0aXZlIGJpdCBzaGlmdCBjb25zdGFudHNcblx0ICAgIHZhciBCSVRfU0hJRlRTID0gWzEsICAyLCAgNCwgIDYsICA4LCAgMTAsIDEyLCAxNCwgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcsIDI4XTtcblxuXHQgICAgLy8gU0JPWGVzIGFuZCByb3VuZCBwZXJtdXRhdGlvbiBjb25zdGFudHNcblx0ICAgIHZhciBTQk9YX1AgPSBbXG5cdCAgICAgICAge1xuXHQgICAgICAgICAgICAweDA6IDB4ODA4MjAwLFxuXHQgICAgICAgICAgICAweDEwMDAwMDAwOiAweDgwMDAsXG5cdCAgICAgICAgICAgIDB4MjAwMDAwMDA6IDB4ODA4MDAyLFxuXHQgICAgICAgICAgICAweDMwMDAwMDAwOiAweDIsXG5cdCAgICAgICAgICAgIDB4NDAwMDAwMDA6IDB4MjAwLFxuXHQgICAgICAgICAgICAweDUwMDAwMDAwOiAweDgwODIwMixcblx0ICAgICAgICAgICAgMHg2MDAwMDAwMDogMHg4MDAyMDIsXG5cdCAgICAgICAgICAgIDB4NzAwMDAwMDA6IDB4ODAwMDAwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDAwOiAweDIwMixcblx0ICAgICAgICAgICAgMHg5MDAwMDAwMDogMHg4MDAyMDAsXG5cdCAgICAgICAgICAgIDB4YTAwMDAwMDA6IDB4ODIwMCxcblx0ICAgICAgICAgICAgMHhiMDAwMDAwMDogMHg4MDgwMDAsXG5cdCAgICAgICAgICAgIDB4YzAwMDAwMDA6IDB4ODAwMixcblx0ICAgICAgICAgICAgMHhkMDAwMDAwMDogMHg4MDAwMDIsXG5cdCAgICAgICAgICAgIDB4ZTAwMDAwMDA6IDB4MCxcblx0ICAgICAgICAgICAgMHhmMDAwMDAwMDogMHg4MjAyLFxuXHQgICAgICAgICAgICAweDgwMDAwMDA6IDB4MCxcblx0ICAgICAgICAgICAgMHgxODAwMDAwMDogMHg4MDgyMDIsXG5cdCAgICAgICAgICAgIDB4MjgwMDAwMDA6IDB4ODIwMixcblx0ICAgICAgICAgICAgMHgzODAwMDAwMDogMHg4MDAwLFxuXHQgICAgICAgICAgICAweDQ4MDAwMDAwOiAweDgwODIwMCxcblx0ICAgICAgICAgICAgMHg1ODAwMDAwMDogMHgyMDAsXG5cdCAgICAgICAgICAgIDB4NjgwMDAwMDA6IDB4ODA4MDAyLFxuXHQgICAgICAgICAgICAweDc4MDAwMDAwOiAweDIsXG5cdCAgICAgICAgICAgIDB4ODgwMDAwMDA6IDB4ODAwMjAwLFxuXHQgICAgICAgICAgICAweDk4MDAwMDAwOiAweDgyMDAsXG5cdCAgICAgICAgICAgIDB4YTgwMDAwMDA6IDB4ODA4MDAwLFxuXHQgICAgICAgICAgICAweGI4MDAwMDAwOiAweDgwMDIwMixcblx0ICAgICAgICAgICAgMHhjODAwMDAwMDogMHg4MDAwMDIsXG5cdCAgICAgICAgICAgIDB4ZDgwMDAwMDA6IDB4ODAwMixcblx0ICAgICAgICAgICAgMHhlODAwMDAwMDogMHgyMDIsXG5cdCAgICAgICAgICAgIDB4ZjgwMDAwMDA6IDB4ODAwMDAwLFxuXHQgICAgICAgICAgICAweDE6IDB4ODAwMCxcblx0ICAgICAgICAgICAgMHgxMDAwMDAwMTogMHgyLFxuXHQgICAgICAgICAgICAweDIwMDAwMDAxOiAweDgwODIwMCxcblx0ICAgICAgICAgICAgMHgzMDAwMDAwMTogMHg4MDAwMDAsXG5cdCAgICAgICAgICAgIDB4NDAwMDAwMDE6IDB4ODA4MDAyLFxuXHQgICAgICAgICAgICAweDUwMDAwMDAxOiAweDgyMDAsXG5cdCAgICAgICAgICAgIDB4NjAwMDAwMDE6IDB4MjAwLFxuXHQgICAgICAgICAgICAweDcwMDAwMDAxOiAweDgwMDIwMixcblx0ICAgICAgICAgICAgMHg4MDAwMDAwMTogMHg4MDgyMDIsXG5cdCAgICAgICAgICAgIDB4OTAwMDAwMDE6IDB4ODA4MDAwLFxuXHQgICAgICAgICAgICAweGEwMDAwMDAxOiAweDgwMDAwMixcblx0ICAgICAgICAgICAgMHhiMDAwMDAwMTogMHg4MjAyLFxuXHQgICAgICAgICAgICAweGMwMDAwMDAxOiAweDIwMixcblx0ICAgICAgICAgICAgMHhkMDAwMDAwMTogMHg4MDAyMDAsXG5cdCAgICAgICAgICAgIDB4ZTAwMDAwMDE6IDB4ODAwMixcblx0ICAgICAgICAgICAgMHhmMDAwMDAwMTogMHgwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDE6IDB4ODA4MjAyLFxuXHQgICAgICAgICAgICAweDE4MDAwMDAxOiAweDgwODAwMCxcblx0ICAgICAgICAgICAgMHgyODAwMDAwMTogMHg4MDAwMDAsXG5cdCAgICAgICAgICAgIDB4MzgwMDAwMDE6IDB4MjAwLFxuXHQgICAgICAgICAgICAweDQ4MDAwMDAxOiAweDgwMDAsXG5cdCAgICAgICAgICAgIDB4NTgwMDAwMDE6IDB4ODAwMDAyLFxuXHQgICAgICAgICAgICAweDY4MDAwMDAxOiAweDIsXG5cdCAgICAgICAgICAgIDB4NzgwMDAwMDE6IDB4ODIwMixcblx0ICAgICAgICAgICAgMHg4ODAwMDAwMTogMHg4MDAyLFxuXHQgICAgICAgICAgICAweDk4MDAwMDAxOiAweDgwMDIwMixcblx0ICAgICAgICAgICAgMHhhODAwMDAwMTogMHgyMDIsXG5cdCAgICAgICAgICAgIDB4YjgwMDAwMDE6IDB4ODA4MjAwLFxuXHQgICAgICAgICAgICAweGM4MDAwMDAxOiAweDgwMDIwMCxcblx0ICAgICAgICAgICAgMHhkODAwMDAwMTogMHgwLFxuXHQgICAgICAgICAgICAweGU4MDAwMDAxOiAweDgyMDAsXG5cdCAgICAgICAgICAgIDB4ZjgwMDAwMDE6IDB4ODA4MDAyXG5cdCAgICAgICAgfSxcblx0ICAgICAgICB7XG5cdCAgICAgICAgICAgIDB4MDogMHg0MDA4NDAxMCxcblx0ICAgICAgICAgICAgMHgxMDAwMDAwOiAweDQwMDAsXG5cdCAgICAgICAgICAgIDB4MjAwMDAwMDogMHg4MDAwMCxcblx0ICAgICAgICAgICAgMHgzMDAwMDAwOiAweDQwMDgwMDEwLFxuXHQgICAgICAgICAgICAweDQwMDAwMDA6IDB4NDAwMDAwMTAsXG5cdCAgICAgICAgICAgIDB4NTAwMDAwMDogMHg0MDA4NDAwMCxcblx0ICAgICAgICAgICAgMHg2MDAwMDAwOiAweDQwMDA0MDAwLFxuXHQgICAgICAgICAgICAweDcwMDAwMDA6IDB4MTAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMDogMHg4NDAwMCxcblx0ICAgICAgICAgICAgMHg5MDAwMDAwOiAweDQwMDA0MDEwLFxuXHQgICAgICAgICAgICAweGEwMDAwMDA6IDB4NDAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4YjAwMDAwMDogMHg4NDAxMCxcblx0ICAgICAgICAgICAgMHhjMDAwMDAwOiAweDgwMDEwLFxuXHQgICAgICAgICAgICAweGQwMDAwMDA6IDB4MCxcblx0ICAgICAgICAgICAgMHhlMDAwMDAwOiAweDQwMTAsXG5cdCAgICAgICAgICAgIDB4ZjAwMDAwMDogMHg0MDA4MDAwMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDA6IDB4NDAwMDQwMDAsXG5cdCAgICAgICAgICAgIDB4MTgwMDAwMDogMHg4NDAxMCxcblx0ICAgICAgICAgICAgMHgyODAwMDAwOiAweDEwLFxuXHQgICAgICAgICAgICAweDM4MDAwMDA6IDB4NDAwMDQwMTAsXG5cdCAgICAgICAgICAgIDB4NDgwMDAwMDogMHg0MDA4NDAxMCxcblx0ICAgICAgICAgICAgMHg1ODAwMDAwOiAweDQwMDAwMDAwLFxuXHQgICAgICAgICAgICAweDY4MDAwMDA6IDB4ODAwMDAsXG5cdCAgICAgICAgICAgIDB4NzgwMDAwMDogMHg0MDA4MDAxMCxcblx0ICAgICAgICAgICAgMHg4ODAwMDAwOiAweDgwMDEwLFxuXHQgICAgICAgICAgICAweDk4MDAwMDA6IDB4MCxcblx0ICAgICAgICAgICAgMHhhODAwMDAwOiAweDQwMDAsXG5cdCAgICAgICAgICAgIDB4YjgwMDAwMDogMHg0MDA4MDAwMCxcblx0ICAgICAgICAgICAgMHhjODAwMDAwOiAweDQwMDAwMDEwLFxuXHQgICAgICAgICAgICAweGQ4MDAwMDA6IDB4ODQwMDAsXG5cdCAgICAgICAgICAgIDB4ZTgwMDAwMDogMHg0MDA4NDAwMCxcblx0ICAgICAgICAgICAgMHhmODAwMDAwOiAweDQwMTAsXG5cdCAgICAgICAgICAgIDB4MTAwMDAwMDA6IDB4MCxcblx0ICAgICAgICAgICAgMHgxMTAwMDAwMDogMHg0MDA4MDAxMCxcblx0ICAgICAgICAgICAgMHgxMjAwMDAwMDogMHg0MDAwNDAxMCxcblx0ICAgICAgICAgICAgMHgxMzAwMDAwMDogMHg0MDA4NDAwMCxcblx0ICAgICAgICAgICAgMHgxNDAwMDAwMDogMHg0MDA4MDAwMCxcblx0ICAgICAgICAgICAgMHgxNTAwMDAwMDogMHgxMCxcblx0ICAgICAgICAgICAgMHgxNjAwMDAwMDogMHg4NDAxMCxcblx0ICAgICAgICAgICAgMHgxNzAwMDAwMDogMHg0MDAwLFxuXHQgICAgICAgICAgICAweDE4MDAwMDAwOiAweDQwMTAsXG5cdCAgICAgICAgICAgIDB4MTkwMDAwMDA6IDB4ODAwMDAsXG5cdCAgICAgICAgICAgIDB4MWEwMDAwMDA6IDB4ODAwMTAsXG5cdCAgICAgICAgICAgIDB4MWIwMDAwMDA6IDB4NDAwMDAwMTAsXG5cdCAgICAgICAgICAgIDB4MWMwMDAwMDA6IDB4ODQwMDAsXG5cdCAgICAgICAgICAgIDB4MWQwMDAwMDA6IDB4NDAwMDQwMDAsXG5cdCAgICAgICAgICAgIDB4MWUwMDAwMDA6IDB4NDAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4MWYwMDAwMDA6IDB4NDAwODQwMTAsXG5cdCAgICAgICAgICAgIDB4MTA4MDAwMDA6IDB4ODQwMTAsXG5cdCAgICAgICAgICAgIDB4MTE4MDAwMDA6IDB4ODAwMDAsXG5cdCAgICAgICAgICAgIDB4MTI4MDAwMDA6IDB4NDAwODAwMDAsXG5cdCAgICAgICAgICAgIDB4MTM4MDAwMDA6IDB4NDAwMCxcblx0ICAgICAgICAgICAgMHgxNDgwMDAwMDogMHg0MDAwNDAwMCxcblx0ICAgICAgICAgICAgMHgxNTgwMDAwMDogMHg0MDA4NDAxMCxcblx0ICAgICAgICAgICAgMHgxNjgwMDAwMDogMHgxMCxcblx0ICAgICAgICAgICAgMHgxNzgwMDAwMDogMHg0MDAwMDAwMCxcblx0ICAgICAgICAgICAgMHgxODgwMDAwMDogMHg0MDA4NDAwMCxcblx0ICAgICAgICAgICAgMHgxOTgwMDAwMDogMHg0MDAwMDAxMCxcblx0ICAgICAgICAgICAgMHgxYTgwMDAwMDogMHg0MDAwNDAxMCxcblx0ICAgICAgICAgICAgMHgxYjgwMDAwMDogMHg4MDAxMCxcblx0ICAgICAgICAgICAgMHgxYzgwMDAwMDogMHgwLFxuXHQgICAgICAgICAgICAweDFkODAwMDAwOiAweDQwMTAsXG5cdCAgICAgICAgICAgIDB4MWU4MDAwMDA6IDB4NDAwODAwMTAsXG5cdCAgICAgICAgICAgIDB4MWY4MDAwMDA6IDB4ODQwMDBcblx0ICAgICAgICB9LFxuXHQgICAgICAgIHtcblx0ICAgICAgICAgICAgMHgwOiAweDEwNCxcblx0ICAgICAgICAgICAgMHgxMDAwMDA6IDB4MCxcblx0ICAgICAgICAgICAgMHgyMDAwMDA6IDB4NDAwMDEwMCxcblx0ICAgICAgICAgICAgMHgzMDAwMDA6IDB4MTAxMDQsXG5cdCAgICAgICAgICAgIDB4NDAwMDAwOiAweDEwMDA0LFxuXHQgICAgICAgICAgICAweDUwMDAwMDogMHg0MDAwMDA0LFxuXHQgICAgICAgICAgICAweDYwMDAwMDogMHg0MDEwMTA0LFxuXHQgICAgICAgICAgICAweDcwMDAwMDogMHg0MDEwMDAwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDogMHg0MDAwMDAwLFxuXHQgICAgICAgICAgICAweDkwMDAwMDogMHg0MDEwMTAwLFxuXHQgICAgICAgICAgICAweGEwMDAwMDogMHgxMDEwMCxcblx0ICAgICAgICAgICAgMHhiMDAwMDA6IDB4NDAxMDAwNCxcblx0ICAgICAgICAgICAgMHhjMDAwMDA6IDB4NDAwMDEwNCxcblx0ICAgICAgICAgICAgMHhkMDAwMDA6IDB4MTAwMDAsXG5cdCAgICAgICAgICAgIDB4ZTAwMDAwOiAweDQsXG5cdCAgICAgICAgICAgIDB4ZjAwMDAwOiAweDEwMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDogMHg0MDEwMTAwLFxuXHQgICAgICAgICAgICAweDE4MDAwMDogMHg0MDEwMDA0LFxuXHQgICAgICAgICAgICAweDI4MDAwMDogMHgwLFxuXHQgICAgICAgICAgICAweDM4MDAwMDogMHg0MDAwMTAwLFxuXHQgICAgICAgICAgICAweDQ4MDAwMDogMHg0MDAwMDA0LFxuXHQgICAgICAgICAgICAweDU4MDAwMDogMHgxMDAwMCxcblx0ICAgICAgICAgICAgMHg2ODAwMDA6IDB4MTAwMDQsXG5cdCAgICAgICAgICAgIDB4NzgwMDAwOiAweDEwNCxcblx0ICAgICAgICAgICAgMHg4ODAwMDA6IDB4NCxcblx0ICAgICAgICAgICAgMHg5ODAwMDA6IDB4MTAwLFxuXHQgICAgICAgICAgICAweGE4MDAwMDogMHg0MDEwMDAwLFxuXHQgICAgICAgICAgICAweGI4MDAwMDogMHgxMDEwNCxcblx0ICAgICAgICAgICAgMHhjODAwMDA6IDB4MTAxMDAsXG5cdCAgICAgICAgICAgIDB4ZDgwMDAwOiAweDQwMDAxMDQsXG5cdCAgICAgICAgICAgIDB4ZTgwMDAwOiAweDQwMTAxMDQsXG5cdCAgICAgICAgICAgIDB4ZjgwMDAwOiAweDQwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4MTAwMDAwMDogMHg0MDEwMTAwLFxuXHQgICAgICAgICAgICAweDExMDAwMDA6IDB4MTAwMDQsXG5cdCAgICAgICAgICAgIDB4MTIwMDAwMDogMHgxMDAwMCxcblx0ICAgICAgICAgICAgMHgxMzAwMDAwOiAweDQwMDAxMDAsXG5cdCAgICAgICAgICAgIDB4MTQwMDAwMDogMHgxMDAsXG5cdCAgICAgICAgICAgIDB4MTUwMDAwMDogMHg0MDEwMTA0LFxuXHQgICAgICAgICAgICAweDE2MDAwMDA6IDB4NDAwMDAwNCxcblx0ICAgICAgICAgICAgMHgxNzAwMDAwOiAweDAsXG5cdCAgICAgICAgICAgIDB4MTgwMDAwMDogMHg0MDAwMTA0LFxuXHQgICAgICAgICAgICAweDE5MDAwMDA6IDB4NDAwMDAwMCxcblx0ICAgICAgICAgICAgMHgxYTAwMDAwOiAweDQsXG5cdCAgICAgICAgICAgIDB4MWIwMDAwMDogMHgxMDEwMCxcblx0ICAgICAgICAgICAgMHgxYzAwMDAwOiAweDQwMTAwMDAsXG5cdCAgICAgICAgICAgIDB4MWQwMDAwMDogMHgxMDQsXG5cdCAgICAgICAgICAgIDB4MWUwMDAwMDogMHgxMDEwNCxcblx0ICAgICAgICAgICAgMHgxZjAwMDAwOiAweDQwMTAwMDQsXG5cdCAgICAgICAgICAgIDB4MTA4MDAwMDogMHg0MDAwMDAwLFxuXHQgICAgICAgICAgICAweDExODAwMDA6IDB4MTA0LFxuXHQgICAgICAgICAgICAweDEyODAwMDA6IDB4NDAxMDEwMCxcblx0ICAgICAgICAgICAgMHgxMzgwMDAwOiAweDAsXG5cdCAgICAgICAgICAgIDB4MTQ4MDAwMDogMHgxMDAwNCxcblx0ICAgICAgICAgICAgMHgxNTgwMDAwOiAweDQwMDAxMDAsXG5cdCAgICAgICAgICAgIDB4MTY4MDAwMDogMHgxMDAsXG5cdCAgICAgICAgICAgIDB4MTc4MDAwMDogMHg0MDEwMDA0LFxuXHQgICAgICAgICAgICAweDE4ODAwMDA6IDB4MTAwMDAsXG5cdCAgICAgICAgICAgIDB4MTk4MDAwMDogMHg0MDEwMTA0LFxuXHQgICAgICAgICAgICAweDFhODAwMDA6IDB4MTAxMDQsXG5cdCAgICAgICAgICAgIDB4MWI4MDAwMDogMHg0MDAwMDA0LFxuXHQgICAgICAgICAgICAweDFjODAwMDA6IDB4NDAwMDEwNCxcblx0ICAgICAgICAgICAgMHgxZDgwMDAwOiAweDQwMTAwMDAsXG5cdCAgICAgICAgICAgIDB4MWU4MDAwMDogMHg0LFxuXHQgICAgICAgICAgICAweDFmODAwMDA6IDB4MTAxMDBcblx0ICAgICAgICB9LFxuXHQgICAgICAgIHtcblx0ICAgICAgICAgICAgMHgwOiAweDgwNDAxMDAwLFxuXHQgICAgICAgICAgICAweDEwMDAwOiAweDgwMDAxMDQwLFxuXHQgICAgICAgICAgICAweDIwMDAwOiAweDQwMTA0MCxcblx0ICAgICAgICAgICAgMHgzMDAwMDogMHg4MDQwMDAwMCxcblx0ICAgICAgICAgICAgMHg0MDAwMDogMHgwLFxuXHQgICAgICAgICAgICAweDUwMDAwOiAweDQwMTAwMCxcblx0ICAgICAgICAgICAgMHg2MDAwMDogMHg4MDAwMDA0MCxcblx0ICAgICAgICAgICAgMHg3MDAwMDogMHg0MDAwNDAsXG5cdCAgICAgICAgICAgIDB4ODAwMDA6IDB4ODAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4OTAwMDA6IDB4NDAwMDAwLFxuXHQgICAgICAgICAgICAweGEwMDAwOiAweDQwLFxuXHQgICAgICAgICAgICAweGIwMDAwOiAweDgwMDAxMDAwLFxuXHQgICAgICAgICAgICAweGMwMDAwOiAweDgwNDAwMDQwLFxuXHQgICAgICAgICAgICAweGQwMDAwOiAweDEwNDAsXG5cdCAgICAgICAgICAgIDB4ZTAwMDA6IDB4MTAwMCxcblx0ICAgICAgICAgICAgMHhmMDAwMDogMHg4MDQwMTA0MCxcblx0ICAgICAgICAgICAgMHg4MDAwOiAweDgwMDAxMDQwLFxuXHQgICAgICAgICAgICAweDE4MDAwOiAweDQwLFxuXHQgICAgICAgICAgICAweDI4MDAwOiAweDgwNDAwMDQwLFxuXHQgICAgICAgICAgICAweDM4MDAwOiAweDgwMDAxMDAwLFxuXHQgICAgICAgICAgICAweDQ4MDAwOiAweDQwMTAwMCxcblx0ICAgICAgICAgICAgMHg1ODAwMDogMHg4MDQwMTA0MCxcblx0ICAgICAgICAgICAgMHg2ODAwMDogMHgwLFxuXHQgICAgICAgICAgICAweDc4MDAwOiAweDgwNDAwMDAwLFxuXHQgICAgICAgICAgICAweDg4MDAwOiAweDEwMDAsXG5cdCAgICAgICAgICAgIDB4OTgwMDA6IDB4ODA0MDEwMDAsXG5cdCAgICAgICAgICAgIDB4YTgwMDA6IDB4NDAwMDAwLFxuXHQgICAgICAgICAgICAweGI4MDAwOiAweDEwNDAsXG5cdCAgICAgICAgICAgIDB4YzgwMDA6IDB4ODAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4ZDgwMDA6IDB4NDAwMDQwLFxuXHQgICAgICAgICAgICAweGU4MDAwOiAweDQwMTA0MCxcblx0ICAgICAgICAgICAgMHhmODAwMDogMHg4MDAwMDA0MCxcblx0ICAgICAgICAgICAgMHgxMDAwMDA6IDB4NDAwMDQwLFxuXHQgICAgICAgICAgICAweDExMDAwMDogMHg0MDEwMDAsXG5cdCAgICAgICAgICAgIDB4MTIwMDAwOiAweDgwMDAwMDQwLFxuXHQgICAgICAgICAgICAweDEzMDAwMDogMHgwLFxuXHQgICAgICAgICAgICAweDE0MDAwMDogMHgxMDQwLFxuXHQgICAgICAgICAgICAweDE1MDAwMDogMHg4MDQwMDA0MCxcblx0ICAgICAgICAgICAgMHgxNjAwMDA6IDB4ODA0MDEwMDAsXG5cdCAgICAgICAgICAgIDB4MTcwMDAwOiAweDgwMDAxMDQwLFxuXHQgICAgICAgICAgICAweDE4MDAwMDogMHg4MDQwMTA0MCxcblx0ICAgICAgICAgICAgMHgxOTAwMDA6IDB4ODAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4MWEwMDAwOiAweDgwNDAwMDAwLFxuXHQgICAgICAgICAgICAweDFiMDAwMDogMHg0MDEwNDAsXG5cdCAgICAgICAgICAgIDB4MWMwMDAwOiAweDgwMDAxMDAwLFxuXHQgICAgICAgICAgICAweDFkMDAwMDogMHg0MDAwMDAsXG5cdCAgICAgICAgICAgIDB4MWUwMDAwOiAweDQwLFxuXHQgICAgICAgICAgICAweDFmMDAwMDogMHgxMDAwLFxuXHQgICAgICAgICAgICAweDEwODAwMDogMHg4MDQwMDAwMCxcblx0ICAgICAgICAgICAgMHgxMTgwMDA6IDB4ODA0MDEwNDAsXG5cdCAgICAgICAgICAgIDB4MTI4MDAwOiAweDAsXG5cdCAgICAgICAgICAgIDB4MTM4MDAwOiAweDQwMTAwMCxcblx0ICAgICAgICAgICAgMHgxNDgwMDA6IDB4NDAwMDQwLFxuXHQgICAgICAgICAgICAweDE1ODAwMDogMHg4MDAwMDAwMCxcblx0ICAgICAgICAgICAgMHgxNjgwMDA6IDB4ODAwMDEwNDAsXG5cdCAgICAgICAgICAgIDB4MTc4MDAwOiAweDQwLFxuXHQgICAgICAgICAgICAweDE4ODAwMDogMHg4MDAwMDA0MCxcblx0ICAgICAgICAgICAgMHgxOTgwMDA6IDB4MTAwMCxcblx0ICAgICAgICAgICAgMHgxYTgwMDA6IDB4ODAwMDEwMDAsXG5cdCAgICAgICAgICAgIDB4MWI4MDAwOiAweDgwNDAwMDQwLFxuXHQgICAgICAgICAgICAweDFjODAwMDogMHgxMDQwLFxuXHQgICAgICAgICAgICAweDFkODAwMDogMHg4MDQwMTAwMCxcblx0ICAgICAgICAgICAgMHgxZTgwMDA6IDB4NDAwMDAwLFxuXHQgICAgICAgICAgICAweDFmODAwMDogMHg0MDEwNDBcblx0ICAgICAgICB9LFxuXHQgICAgICAgIHtcblx0ICAgICAgICAgICAgMHgwOiAweDgwLFxuXHQgICAgICAgICAgICAweDEwMDA6IDB4MTA0MDAwMCxcblx0ICAgICAgICAgICAgMHgyMDAwOiAweDQwMDAwLFxuXHQgICAgICAgICAgICAweDMwMDA6IDB4MjAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4NDAwMDogMHgyMDA0MDA4MCxcblx0ICAgICAgICAgICAgMHg1MDAwOiAweDEwMDAwODAsXG5cdCAgICAgICAgICAgIDB4NjAwMDogMHgyMTAwMDA4MCxcblx0ICAgICAgICAgICAgMHg3MDAwOiAweDQwMDgwLFxuXHQgICAgICAgICAgICAweDgwMDA6IDB4MTAwMDAwMCxcblx0ICAgICAgICAgICAgMHg5MDAwOiAweDIwMDQwMDAwLFxuXHQgICAgICAgICAgICAweGEwMDA6IDB4MjAwMDAwODAsXG5cdCAgICAgICAgICAgIDB4YjAwMDogMHgyMTA0MDA4MCxcblx0ICAgICAgICAgICAgMHhjMDAwOiAweDIxMDQwMDAwLFxuXHQgICAgICAgICAgICAweGQwMDA6IDB4MCxcblx0ICAgICAgICAgICAgMHhlMDAwOiAweDEwNDAwODAsXG5cdCAgICAgICAgICAgIDB4ZjAwMDogMHgyMTAwMDAwMCxcblx0ICAgICAgICAgICAgMHg4MDA6IDB4MTA0MDA4MCxcblx0ICAgICAgICAgICAgMHgxODAwOiAweDIxMDAwMDgwLFxuXHQgICAgICAgICAgICAweDI4MDA6IDB4ODAsXG5cdCAgICAgICAgICAgIDB4MzgwMDogMHgxMDQwMDAwLFxuXHQgICAgICAgICAgICAweDQ4MDA6IDB4NDAwMDAsXG5cdCAgICAgICAgICAgIDB4NTgwMDogMHgyMDA0MDA4MCxcblx0ICAgICAgICAgICAgMHg2ODAwOiAweDIxMDQwMDAwLFxuXHQgICAgICAgICAgICAweDc4MDA6IDB4MjAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4ODgwMDogMHgyMDA0MDAwMCxcblx0ICAgICAgICAgICAgMHg5ODAwOiAweDAsXG5cdCAgICAgICAgICAgIDB4YTgwMDogMHgyMTA0MDA4MCxcblx0ICAgICAgICAgICAgMHhiODAwOiAweDEwMDAwODAsXG5cdCAgICAgICAgICAgIDB4YzgwMDogMHgyMDAwMDA4MCxcblx0ICAgICAgICAgICAgMHhkODAwOiAweDIxMDAwMDAwLFxuXHQgICAgICAgICAgICAweGU4MDA6IDB4MTAwMDAwMCxcblx0ICAgICAgICAgICAgMHhmODAwOiAweDQwMDgwLFxuXHQgICAgICAgICAgICAweDEwMDAwOiAweDQwMDAwLFxuXHQgICAgICAgICAgICAweDExMDAwOiAweDgwLFxuXHQgICAgICAgICAgICAweDEyMDAwOiAweDIwMDAwMDAwLFxuXHQgICAgICAgICAgICAweDEzMDAwOiAweDIxMDAwMDgwLFxuXHQgICAgICAgICAgICAweDE0MDAwOiAweDEwMDAwODAsXG5cdCAgICAgICAgICAgIDB4MTUwMDA6IDB4MjEwNDAwMDAsXG5cdCAgICAgICAgICAgIDB4MTYwMDA6IDB4MjAwNDAwODAsXG5cdCAgICAgICAgICAgIDB4MTcwMDA6IDB4MTAwMDAwMCxcblx0ICAgICAgICAgICAgMHgxODAwMDogMHgyMTA0MDA4MCxcblx0ICAgICAgICAgICAgMHgxOTAwMDogMHgyMTAwMDAwMCxcblx0ICAgICAgICAgICAgMHgxYTAwMDogMHgxMDQwMDAwLFxuXHQgICAgICAgICAgICAweDFiMDAwOiAweDIwMDQwMDAwLFxuXHQgICAgICAgICAgICAweDFjMDAwOiAweDQwMDgwLFxuXHQgICAgICAgICAgICAweDFkMDAwOiAweDIwMDAwMDgwLFxuXHQgICAgICAgICAgICAweDFlMDAwOiAweDAsXG5cdCAgICAgICAgICAgIDB4MWYwMDA6IDB4MTA0MDA4MCxcblx0ICAgICAgICAgICAgMHgxMDgwMDogMHgyMTAwMDA4MCxcblx0ICAgICAgICAgICAgMHgxMTgwMDogMHgxMDAwMDAwLFxuXHQgICAgICAgICAgICAweDEyODAwOiAweDEwNDAwMDAsXG5cdCAgICAgICAgICAgIDB4MTM4MDA6IDB4MjAwNDAwODAsXG5cdCAgICAgICAgICAgIDB4MTQ4MDA6IDB4MjAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4MTU4MDA6IDB4MTA0MDA4MCxcblx0ICAgICAgICAgICAgMHgxNjgwMDogMHg4MCxcblx0ICAgICAgICAgICAgMHgxNzgwMDogMHgyMTA0MDAwMCxcblx0ICAgICAgICAgICAgMHgxODgwMDogMHg0MDA4MCxcblx0ICAgICAgICAgICAgMHgxOTgwMDogMHgyMTA0MDA4MCxcblx0ICAgICAgICAgICAgMHgxYTgwMDogMHgwLFxuXHQgICAgICAgICAgICAweDFiODAwOiAweDIxMDAwMDAwLFxuXHQgICAgICAgICAgICAweDFjODAwOiAweDEwMDAwODAsXG5cdCAgICAgICAgICAgIDB4MWQ4MDA6IDB4NDAwMDAsXG5cdCAgICAgICAgICAgIDB4MWU4MDA6IDB4MjAwNDAwMDAsXG5cdCAgICAgICAgICAgIDB4MWY4MDA6IDB4MjAwMDAwODBcblx0ICAgICAgICB9LFxuXHQgICAgICAgIHtcblx0ICAgICAgICAgICAgMHgwOiAweDEwMDAwMDA4LFxuXHQgICAgICAgICAgICAweDEwMDogMHgyMDAwLFxuXHQgICAgICAgICAgICAweDIwMDogMHgxMDIwMDAwMCxcblx0ICAgICAgICAgICAgMHgzMDA6IDB4MTAyMDIwMDgsXG5cdCAgICAgICAgICAgIDB4NDAwOiAweDEwMDAyMDAwLFxuXHQgICAgICAgICAgICAweDUwMDogMHgyMDAwMDAsXG5cdCAgICAgICAgICAgIDB4NjAwOiAweDIwMDAwOCxcblx0ICAgICAgICAgICAgMHg3MDA6IDB4MTAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4ODAwOiAweDAsXG5cdCAgICAgICAgICAgIDB4OTAwOiAweDEwMDAyMDA4LFxuXHQgICAgICAgICAgICAweGEwMDogMHgyMDIwMDAsXG5cdCAgICAgICAgICAgIDB4YjAwOiAweDgsXG5cdCAgICAgICAgICAgIDB4YzAwOiAweDEwMjAwMDA4LFxuXHQgICAgICAgICAgICAweGQwMDogMHgyMDIwMDgsXG5cdCAgICAgICAgICAgIDB4ZTAwOiAweDIwMDgsXG5cdCAgICAgICAgICAgIDB4ZjAwOiAweDEwMjAyMDAwLFxuXHQgICAgICAgICAgICAweDgwOiAweDEwMjAwMDAwLFxuXHQgICAgICAgICAgICAweDE4MDogMHgxMDIwMjAwOCxcblx0ICAgICAgICAgICAgMHgyODA6IDB4OCxcblx0ICAgICAgICAgICAgMHgzODA6IDB4MjAwMDAwLFxuXHQgICAgICAgICAgICAweDQ4MDogMHgyMDIwMDgsXG5cdCAgICAgICAgICAgIDB4NTgwOiAweDEwMDAwMDA4LFxuXHQgICAgICAgICAgICAweDY4MDogMHgxMDAwMjAwMCxcblx0ICAgICAgICAgICAgMHg3ODA6IDB4MjAwOCxcblx0ICAgICAgICAgICAgMHg4ODA6IDB4MjAwMDA4LFxuXHQgICAgICAgICAgICAweDk4MDogMHgyMDAwLFxuXHQgICAgICAgICAgICAweGE4MDogMHgxMDAwMjAwOCxcblx0ICAgICAgICAgICAgMHhiODA6IDB4MTAyMDAwMDgsXG5cdCAgICAgICAgICAgIDB4YzgwOiAweDAsXG5cdCAgICAgICAgICAgIDB4ZDgwOiAweDEwMjAyMDAwLFxuXHQgICAgICAgICAgICAweGU4MDogMHgyMDIwMDAsXG5cdCAgICAgICAgICAgIDB4ZjgwOiAweDEwMDAwMDAwLFxuXHQgICAgICAgICAgICAweDEwMDA6IDB4MTAwMDIwMDAsXG5cdCAgICAgICAgICAgIDB4MTEwMDogMHgxMDIwMDAwOCxcblx0ICAgICAgICAgICAgMHgxMjAwOiAweDEwMjAyMDA4LFxuXHQgICAgICAgICAgICAweDEzMDA6IDB4MjAwOCxcblx0ICAgICAgICAgICAgMHgxNDAwOiAweDIwMDAwMCxcblx0ICAgICAgICAgICAgMHgxNTAwOiAweDEwMDAwMDAwLFxuXHQgICAgICAgICAgICAweDE2MDA6IDB4MTAwMDAwMDgsXG5cdCAgICAgICAgICAgIDB4MTcwMDogMHgyMDIwMDAsXG5cdCAgICAgICAgICAgIDB4MTgwMDogMHgyMDIwMDgsXG5cdCAgICAgICAgICAgIDB4MTkwMDogMHgwLFxuXHQgICAgICAgICAgICAweDFhMDA6IDB4OCxcblx0ICAgICAgICAgICAgMHgxYjAwOiAweDEwMjAwMDAwLFxuXHQgICAgICAgICAgICAweDFjMDA6IDB4MjAwMCxcblx0ICAgICAgICAgICAgMHgxZDAwOiAweDEwMDAyMDA4LFxuXHQgICAgICAgICAgICAweDFlMDA6IDB4MTAyMDIwMDAsXG5cdCAgICAgICAgICAgIDB4MWYwMDogMHgyMDAwMDgsXG5cdCAgICAgICAgICAgIDB4MTA4MDogMHg4LFxuXHQgICAgICAgICAgICAweDExODA6IDB4MjAyMDAwLFxuXHQgICAgICAgICAgICAweDEyODA6IDB4MjAwMDAwLFxuXHQgICAgICAgICAgICAweDEzODA6IDB4MTAwMDAwMDgsXG5cdCAgICAgICAgICAgIDB4MTQ4MDogMHgxMDAwMjAwMCxcblx0ICAgICAgICAgICAgMHgxNTgwOiAweDIwMDgsXG5cdCAgICAgICAgICAgIDB4MTY4MDogMHgxMDIwMjAwOCxcblx0ICAgICAgICAgICAgMHgxNzgwOiAweDEwMjAwMDAwLFxuXHQgICAgICAgICAgICAweDE4ODA6IDB4MTAyMDIwMDAsXG5cdCAgICAgICAgICAgIDB4MTk4MDogMHgxMDIwMDAwOCxcblx0ICAgICAgICAgICAgMHgxYTgwOiAweDIwMDAsXG5cdCAgICAgICAgICAgIDB4MWI4MDogMHgyMDIwMDgsXG5cdCAgICAgICAgICAgIDB4MWM4MDogMHgyMDAwMDgsXG5cdCAgICAgICAgICAgIDB4MWQ4MDogMHgwLFxuXHQgICAgICAgICAgICAweDFlODA6IDB4MTAwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4MWY4MDogMHgxMDAwMjAwOFxuXHQgICAgICAgIH0sXG5cdCAgICAgICAge1xuXHQgICAgICAgICAgICAweDA6IDB4MTAwMDAwLFxuXHQgICAgICAgICAgICAweDEwOiAweDIwMDA0MDEsXG5cdCAgICAgICAgICAgIDB4MjA6IDB4NDAwLFxuXHQgICAgICAgICAgICAweDMwOiAweDEwMDQwMSxcblx0ICAgICAgICAgICAgMHg0MDogMHgyMTAwNDAxLFxuXHQgICAgICAgICAgICAweDUwOiAweDAsXG5cdCAgICAgICAgICAgIDB4NjA6IDB4MSxcblx0ICAgICAgICAgICAgMHg3MDogMHgyMTAwMDAxLFxuXHQgICAgICAgICAgICAweDgwOiAweDIwMDA0MDAsXG5cdCAgICAgICAgICAgIDB4OTA6IDB4MTAwMDAxLFxuXHQgICAgICAgICAgICAweGEwOiAweDIwMDAwMDEsXG5cdCAgICAgICAgICAgIDB4YjA6IDB4MjEwMDQwMCxcblx0ICAgICAgICAgICAgMHhjMDogMHgyMTAwMDAwLFxuXHQgICAgICAgICAgICAweGQwOiAweDQwMSxcblx0ICAgICAgICAgICAgMHhlMDogMHgxMDA0MDAsXG5cdCAgICAgICAgICAgIDB4ZjA6IDB4MjAwMDAwMCxcblx0ICAgICAgICAgICAgMHg4OiAweDIxMDAwMDEsXG5cdCAgICAgICAgICAgIDB4MTg6IDB4MCxcblx0ICAgICAgICAgICAgMHgyODogMHgyMDAwNDAxLFxuXHQgICAgICAgICAgICAweDM4OiAweDIxMDA0MDAsXG5cdCAgICAgICAgICAgIDB4NDg6IDB4MTAwMDAwLFxuXHQgICAgICAgICAgICAweDU4OiAweDIwMDAwMDEsXG5cdCAgICAgICAgICAgIDB4Njg6IDB4MjAwMDAwMCxcblx0ICAgICAgICAgICAgMHg3ODogMHg0MDEsXG5cdCAgICAgICAgICAgIDB4ODg6IDB4MTAwNDAxLFxuXHQgICAgICAgICAgICAweDk4OiAweDIwMDA0MDAsXG5cdCAgICAgICAgICAgIDB4YTg6IDB4MjEwMDAwMCxcblx0ICAgICAgICAgICAgMHhiODogMHgxMDAwMDEsXG5cdCAgICAgICAgICAgIDB4Yzg6IDB4NDAwLFxuXHQgICAgICAgICAgICAweGQ4OiAweDIxMDA0MDEsXG5cdCAgICAgICAgICAgIDB4ZTg6IDB4MSxcblx0ICAgICAgICAgICAgMHhmODogMHgxMDA0MDAsXG5cdCAgICAgICAgICAgIDB4MTAwOiAweDIwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4MTEwOiAweDEwMDAwMCxcblx0ICAgICAgICAgICAgMHgxMjA6IDB4MjAwMDQwMSxcblx0ICAgICAgICAgICAgMHgxMzA6IDB4MjEwMDAwMSxcblx0ICAgICAgICAgICAgMHgxNDA6IDB4MTAwMDAxLFxuXHQgICAgICAgICAgICAweDE1MDogMHgyMDAwNDAwLFxuXHQgICAgICAgICAgICAweDE2MDogMHgyMTAwNDAwLFxuXHQgICAgICAgICAgICAweDE3MDogMHgxMDA0MDEsXG5cdCAgICAgICAgICAgIDB4MTgwOiAweDQwMSxcblx0ICAgICAgICAgICAgMHgxOTA6IDB4MjEwMDQwMSxcblx0ICAgICAgICAgICAgMHgxYTA6IDB4MTAwNDAwLFxuXHQgICAgICAgICAgICAweDFiMDogMHgxLFxuXHQgICAgICAgICAgICAweDFjMDogMHgwLFxuXHQgICAgICAgICAgICAweDFkMDogMHgyMTAwMDAwLFxuXHQgICAgICAgICAgICAweDFlMDogMHgyMDAwMDAxLFxuXHQgICAgICAgICAgICAweDFmMDogMHg0MDAsXG5cdCAgICAgICAgICAgIDB4MTA4OiAweDEwMDQwMCxcblx0ICAgICAgICAgICAgMHgxMTg6IDB4MjAwMDQwMSxcblx0ICAgICAgICAgICAgMHgxMjg6IDB4MjEwMDAwMSxcblx0ICAgICAgICAgICAgMHgxMzg6IDB4MSxcblx0ICAgICAgICAgICAgMHgxNDg6IDB4MjAwMDAwMCxcblx0ICAgICAgICAgICAgMHgxNTg6IDB4MTAwMDAwLFxuXHQgICAgICAgICAgICAweDE2ODogMHg0MDEsXG5cdCAgICAgICAgICAgIDB4MTc4OiAweDIxMDA0MDAsXG5cdCAgICAgICAgICAgIDB4MTg4OiAweDIwMDAwMDEsXG5cdCAgICAgICAgICAgIDB4MTk4OiAweDIxMDAwMDAsXG5cdCAgICAgICAgICAgIDB4MWE4OiAweDAsXG5cdCAgICAgICAgICAgIDB4MWI4OiAweDIxMDA0MDEsXG5cdCAgICAgICAgICAgIDB4MWM4OiAweDEwMDQwMSxcblx0ICAgICAgICAgICAgMHgxZDg6IDB4NDAwLFxuXHQgICAgICAgICAgICAweDFlODogMHgyMDAwNDAwLFxuXHQgICAgICAgICAgICAweDFmODogMHgxMDAwMDFcblx0ICAgICAgICB9LFxuXHQgICAgICAgIHtcblx0ICAgICAgICAgICAgMHgwOiAweDgwMDA4MjAsXG5cdCAgICAgICAgICAgIDB4MTogMHgyMDAwMCxcblx0ICAgICAgICAgICAgMHgyOiAweDgwMDAwMDAsXG5cdCAgICAgICAgICAgIDB4MzogMHgyMCxcblx0ICAgICAgICAgICAgMHg0OiAweDIwMDIwLFxuXHQgICAgICAgICAgICAweDU6IDB4ODAyMDgyMCxcblx0ICAgICAgICAgICAgMHg2OiAweDgwMjA4MDAsXG5cdCAgICAgICAgICAgIDB4NzogMHg4MDAsXG5cdCAgICAgICAgICAgIDB4ODogMHg4MDIwMDAwLFxuXHQgICAgICAgICAgICAweDk6IDB4ODAwMDgwMCxcblx0ICAgICAgICAgICAgMHhhOiAweDIwODAwLFxuXHQgICAgICAgICAgICAweGI6IDB4ODAyMDAyMCxcblx0ICAgICAgICAgICAgMHhjOiAweDgyMCxcblx0ICAgICAgICAgICAgMHhkOiAweDAsXG5cdCAgICAgICAgICAgIDB4ZTogMHg4MDAwMDIwLFxuXHQgICAgICAgICAgICAweGY6IDB4MjA4MjAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMDA6IDB4ODAwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDAxOiAweDgwMjA4MjAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMDI6IDB4ODAwMDgyMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDAwMzogMHg4MDAwMDAwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDA0OiAweDgwMjAwMDAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMDU6IDB4MjA4MDAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMDY6IDB4MjA4MjAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMDc6IDB4MjAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMDg6IDB4ODAwMDAyMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDAwOTogMHg4MjAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMGE6IDB4MjAwMjAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMGI6IDB4ODAyMDgwMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDAwYzogMHgwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDBkOiAweDgwMjAwMjAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMGU6IDB4ODAwMDgwMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDAwZjogMHgyMDAwMCxcblx0ICAgICAgICAgICAgMHgxMDogMHgyMDgyMCxcblx0ICAgICAgICAgICAgMHgxMTogMHg4MDIwODAwLFxuXHQgICAgICAgICAgICAweDEyOiAweDIwLFxuXHQgICAgICAgICAgICAweDEzOiAweDgwMCxcblx0ICAgICAgICAgICAgMHgxNDogMHg4MDAwODAwLFxuXHQgICAgICAgICAgICAweDE1OiAweDgwMDAwMjAsXG5cdCAgICAgICAgICAgIDB4MTY6IDB4ODAyMDAyMCxcblx0ICAgICAgICAgICAgMHgxNzogMHgyMDAwMCxcblx0ICAgICAgICAgICAgMHgxODogMHgwLFxuXHQgICAgICAgICAgICAweDE5OiAweDIwMDIwLFxuXHQgICAgICAgICAgICAweDFhOiAweDgwMjAwMDAsXG5cdCAgICAgICAgICAgIDB4MWI6IDB4ODAwMDgyMCxcblx0ICAgICAgICAgICAgMHgxYzogMHg4MDIwODIwLFxuXHQgICAgICAgICAgICAweDFkOiAweDIwODAwLFxuXHQgICAgICAgICAgICAweDFlOiAweDgyMCxcblx0ICAgICAgICAgICAgMHgxZjogMHg4MDAwMDAwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDEwOiAweDIwMDAwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDExOiAweDgwMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDAxMjogMHg4MDIwMDIwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDEzOiAweDIwODIwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDE0OiAweDIwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDE1OiAweDgwMjAwMDAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMTY6IDB4ODAwMDAwMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDAxNzogMHg4MDAwODIwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDE4OiAweDgwMjA4MjAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMTk6IDB4ODAwMDAyMCxcblx0ICAgICAgICAgICAgMHg4MDAwMDAxYTogMHg4MDAwODAwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDFiOiAweDAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMWM6IDB4MjA4MDAsXG5cdCAgICAgICAgICAgIDB4ODAwMDAwMWQ6IDB4ODIwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDFlOiAweDIwMDIwLFxuXHQgICAgICAgICAgICAweDgwMDAwMDFmOiAweDgwMjA4MDBcblx0ICAgICAgICB9XG5cdCAgICBdO1xuXG5cdCAgICAvLyBNYXNrcyB0aGF0IHNlbGVjdCB0aGUgU0JPWCBpbnB1dFxuXHQgICAgdmFyIFNCT1hfTUFTSyA9IFtcblx0ICAgICAgICAweGY4MDAwMDAxLCAweDFmODAwMDAwLCAweDAxZjgwMDAwLCAweDAwMWY4MDAwLFxuXHQgICAgICAgIDB4MDAwMWY4MDAsIDB4MDAwMDFmODAsIDB4MDAwMDAxZjgsIDB4ODAwMDAwMWZcblx0ICAgIF07XG5cblx0ICAgIC8qKlxuXHQgICAgICogREVTIGJsb2NrIGNpcGhlciBhbGdvcml0aG0uXG5cdCAgICAgKi9cblx0ICAgIHZhciBERVMgPSBDX2FsZ28uREVTID0gQmxvY2tDaXBoZXIuZXh0ZW5kKHtcblx0ICAgICAgICBfZG9SZXNldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgdmFyIGtleSA9IHRoaXMuX2tleTtcblx0ICAgICAgICAgICAgdmFyIGtleVdvcmRzID0ga2V5LndvcmRzO1xuXG5cdCAgICAgICAgICAgIC8vIFNlbGVjdCA1NiBiaXRzIGFjY29yZGluZyB0byBQQzFcblx0ICAgICAgICAgICAgdmFyIGtleUJpdHMgPSBbXTtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1NjsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIga2V5Qml0UG9zID0gUEMxW2ldIC0gMTtcblx0ICAgICAgICAgICAgICAgIGtleUJpdHNbaV0gPSAoa2V5V29yZHNba2V5Qml0UG9zID4+PiA1XSA+Pj4gKDMxIC0ga2V5Qml0UG9zICUgMzIpKSAmIDE7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAvLyBBc3NlbWJsZSAxNiBzdWJrZXlzXG5cdCAgICAgICAgICAgIHZhciBzdWJLZXlzID0gdGhpcy5fc3ViS2V5cyA9IFtdO1xuXHQgICAgICAgICAgICBmb3IgKHZhciBuU3ViS2V5ID0gMDsgblN1YktleSA8IDE2OyBuU3ViS2V5KyspIHtcblx0ICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBzdWJrZXlcblx0ICAgICAgICAgICAgICAgIHZhciBzdWJLZXkgPSBzdWJLZXlzW25TdWJLZXldID0gW107XG5cblx0ICAgICAgICAgICAgICAgIC8vIFNob3J0Y3V0XG5cdCAgICAgICAgICAgICAgICB2YXIgYml0U2hpZnQgPSBCSVRfU0hJRlRTW25TdWJLZXldO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBTZWxlY3QgNDggYml0cyBhY2NvcmRpbmcgdG8gUEMyXG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI0OyBpKyspIHtcblx0ICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgZnJvbSB0aGUgbGVmdCAyOCBrZXkgYml0c1xuXHQgICAgICAgICAgICAgICAgICAgIHN1YktleVsoaSAvIDYpIHwgMF0gfD0ga2V5Qml0c1soKFBDMltpXSAtIDEpICsgYml0U2hpZnQpICUgMjhdIDw8ICgzMSAtIGkgJSA2KTtcblxuXHQgICAgICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBmcm9tIHRoZSByaWdodCAyOCBrZXkgYml0c1xuXHQgICAgICAgICAgICAgICAgICAgIHN1YktleVs0ICsgKChpIC8gNikgfCAwKV0gfD0ga2V5Qml0c1syOCArICgoKFBDMltpICsgMjRdIC0gMSkgKyBiaXRTaGlmdCkgJSAyOCldIDw8ICgzMSAtIGkgJSA2KTtcblx0ICAgICAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICAgICAgLy8gU2luY2UgZWFjaCBzdWJrZXkgaXMgYXBwbGllZCB0byBhbiBleHBhbmRlZCAzMi1iaXQgaW5wdXQsXG5cdCAgICAgICAgICAgICAgICAvLyB0aGUgc3Via2V5IGNhbiBiZSBicm9rZW4gaW50byA4IHZhbHVlcyBzY2FsZWQgdG8gMzItYml0cyxcblx0ICAgICAgICAgICAgICAgIC8vIHdoaWNoIGFsbG93cyB0aGUga2V5IHRvIGJlIHVzZWQgd2l0aG91dCBleHBhbnNpb25cblx0ICAgICAgICAgICAgICAgIHN1YktleVswXSA9IChzdWJLZXlbMF0gPDwgMSkgfCAoc3ViS2V5WzBdID4+PiAzMSk7XG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IDc7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIHN1YktleVtpXSA9IHN1YktleVtpXSA+Pj4gKChpIC0gMSkgKiA0ICsgMyk7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgICAgICBzdWJLZXlbN10gPSAoc3ViS2V5WzddIDw8IDUpIHwgKHN1YktleVs3XSA+Pj4gMjcpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgLy8gQ29tcHV0ZSBpbnZlcnNlIHN1YmtleXNcblx0ICAgICAgICAgICAgdmFyIGludlN1YktleXMgPSB0aGlzLl9pbnZTdWJLZXlzID0gW107XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgaW52U3ViS2V5c1tpXSA9IHN1YktleXNbMTUgLSBpXTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBlbmNyeXB0QmxvY2s6IGZ1bmN0aW9uIChNLCBvZmZzZXQpIHtcblx0ICAgICAgICAgICAgdGhpcy5fZG9DcnlwdEJsb2NrKE0sIG9mZnNldCwgdGhpcy5fc3ViS2V5cyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGRlY3J5cHRCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCkge1xuXHQgICAgICAgICAgICB0aGlzLl9kb0NyeXB0QmxvY2soTSwgb2Zmc2V0LCB0aGlzLl9pbnZTdWJLZXlzKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgX2RvQ3J5cHRCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCwgc3ViS2V5cykge1xuXHQgICAgICAgICAgICAvLyBHZXQgaW5wdXRcblx0ICAgICAgICAgICAgdGhpcy5fbEJsb2NrID0gTVtvZmZzZXRdO1xuXHQgICAgICAgICAgICB0aGlzLl9yQmxvY2sgPSBNW29mZnNldCArIDFdO1xuXG5cdCAgICAgICAgICAgIC8vIEluaXRpYWwgcGVybXV0YXRpb25cblx0ICAgICAgICAgICAgZXhjaGFuZ2VMUi5jYWxsKHRoaXMsIDQsICAweDBmMGYwZjBmKTtcblx0ICAgICAgICAgICAgZXhjaGFuZ2VMUi5jYWxsKHRoaXMsIDE2LCAweDAwMDBmZmZmKTtcblx0ICAgICAgICAgICAgZXhjaGFuZ2VSTC5jYWxsKHRoaXMsIDIsICAweDMzMzMzMzMzKTtcblx0ICAgICAgICAgICAgZXhjaGFuZ2VSTC5jYWxsKHRoaXMsIDgsICAweDAwZmYwMGZmKTtcblx0ICAgICAgICAgICAgZXhjaGFuZ2VMUi5jYWxsKHRoaXMsIDEsICAweDU1NTU1NTU1KTtcblxuXHQgICAgICAgICAgICAvLyBSb3VuZHNcblx0ICAgICAgICAgICAgZm9yICh2YXIgcm91bmQgPSAwOyByb3VuZCA8IDE2OyByb3VuZCsrKSB7XG5cdCAgICAgICAgICAgICAgICAvLyBTaG9ydGN1dHNcblx0ICAgICAgICAgICAgICAgIHZhciBzdWJLZXkgPSBzdWJLZXlzW3JvdW5kXTtcblx0ICAgICAgICAgICAgICAgIHZhciBsQmxvY2sgPSB0aGlzLl9sQmxvY2s7XG5cdCAgICAgICAgICAgICAgICB2YXIgckJsb2NrID0gdGhpcy5fckJsb2NrO1xuXG5cdCAgICAgICAgICAgICAgICAvLyBGZWlzdGVsIGZ1bmN0aW9uXG5cdCAgICAgICAgICAgICAgICB2YXIgZiA9IDA7XG5cdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgICAgIGYgfD0gU0JPWF9QW2ldWygockJsb2NrIF4gc3ViS2V5W2ldKSAmIFNCT1hfTUFTS1tpXSkgPj4+IDBdO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgICAgdGhpcy5fbEJsb2NrID0gckJsb2NrO1xuXHQgICAgICAgICAgICAgICAgdGhpcy5fckJsb2NrID0gbEJsb2NrIF4gZjtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIFVuZG8gc3dhcCBmcm9tIGxhc3Qgcm91bmRcblx0ICAgICAgICAgICAgdmFyIHQgPSB0aGlzLl9sQmxvY2s7XG5cdCAgICAgICAgICAgIHRoaXMuX2xCbG9jayA9IHRoaXMuX3JCbG9jaztcblx0ICAgICAgICAgICAgdGhpcy5fckJsb2NrID0gdDtcblxuXHQgICAgICAgICAgICAvLyBGaW5hbCBwZXJtdXRhdGlvblxuXHQgICAgICAgICAgICBleGNoYW5nZUxSLmNhbGwodGhpcywgMSwgIDB4NTU1NTU1NTUpO1xuXHQgICAgICAgICAgICBleGNoYW5nZVJMLmNhbGwodGhpcywgOCwgIDB4MDBmZjAwZmYpO1xuXHQgICAgICAgICAgICBleGNoYW5nZVJMLmNhbGwodGhpcywgMiwgIDB4MzMzMzMzMzMpO1xuXHQgICAgICAgICAgICBleGNoYW5nZUxSLmNhbGwodGhpcywgMTYsIDB4MDAwMGZmZmYpO1xuXHQgICAgICAgICAgICBleGNoYW5nZUxSLmNhbGwodGhpcywgNCwgIDB4MGYwZjBmMGYpO1xuXG5cdCAgICAgICAgICAgIC8vIFNldCBvdXRwdXRcblx0ICAgICAgICAgICAgTVtvZmZzZXRdID0gdGhpcy5fbEJsb2NrO1xuXHQgICAgICAgICAgICBNW29mZnNldCArIDFdID0gdGhpcy5fckJsb2NrO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBrZXlTaXplOiA2NC8zMixcblxuXHQgICAgICAgIGl2U2l6ZTogNjQvMzIsXG5cblx0ICAgICAgICBibG9ja1NpemU6IDY0LzMyXG5cdCAgICB9KTtcblxuXHQgICAgLy8gU3dhcCBiaXRzIGFjcm9zcyB0aGUgbGVmdCBhbmQgcmlnaHQgd29yZHNcblx0ICAgIGZ1bmN0aW9uIGV4Y2hhbmdlTFIob2Zmc2V0LCBtYXNrKSB7XG5cdCAgICAgICAgdmFyIHQgPSAoKHRoaXMuX2xCbG9jayA+Pj4gb2Zmc2V0KSBeIHRoaXMuX3JCbG9jaykgJiBtYXNrO1xuXHQgICAgICAgIHRoaXMuX3JCbG9jayBePSB0O1xuXHQgICAgICAgIHRoaXMuX2xCbG9jayBePSB0IDw8IG9mZnNldDtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gZXhjaGFuZ2VSTChvZmZzZXQsIG1hc2spIHtcblx0ICAgICAgICB2YXIgdCA9ICgodGhpcy5fckJsb2NrID4+PiBvZmZzZXQpIF4gdGhpcy5fbEJsb2NrKSAmIG1hc2s7XG5cdCAgICAgICAgdGhpcy5fbEJsb2NrIF49IHQ7XG5cdCAgICAgICAgdGhpcy5fckJsb2NrIF49IHQgPDwgb2Zmc2V0O1xuXHQgICAgfVxuXG5cdCAgICAvKipcblx0ICAgICAqIFNob3J0Y3V0IGZ1bmN0aW9ucyB0byB0aGUgY2lwaGVyJ3Mgb2JqZWN0IGludGVyZmFjZS5cblx0ICAgICAqXG5cdCAgICAgKiBAZXhhbXBsZVxuXHQgICAgICpcblx0ICAgICAqICAgICB2YXIgY2lwaGVydGV4dCA9IENyeXB0b0pTLkRFUy5lbmNyeXB0KG1lc3NhZ2UsIGtleSwgY2ZnKTtcblx0ICAgICAqICAgICB2YXIgcGxhaW50ZXh0ICA9IENyeXB0b0pTLkRFUy5kZWNyeXB0KGNpcGhlcnRleHQsIGtleSwgY2ZnKTtcblx0ICAgICAqL1xuXHQgICAgQy5ERVMgPSBCbG9ja0NpcGhlci5fY3JlYXRlSGVscGVyKERFUyk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogVHJpcGxlLURFUyBibG9jayBjaXBoZXIgYWxnb3JpdGhtLlxuXHQgICAgICovXG5cdCAgICB2YXIgVHJpcGxlREVTID0gQ19hbGdvLlRyaXBsZURFUyA9IEJsb2NrQ2lwaGVyLmV4dGVuZCh7XG5cdCAgICAgICAgX2RvUmVzZXQ6IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgLy8gU2hvcnRjdXRzXG5cdCAgICAgICAgICAgIHZhciBrZXkgPSB0aGlzLl9rZXk7XG5cdCAgICAgICAgICAgIHZhciBrZXlXb3JkcyA9IGtleS53b3Jkcztcblx0ICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBrZXkgbGVuZ3RoIGlzIHZhbGlkICg2NCwgMTI4IG9yID49IDE5MiBiaXQpXG5cdCAgICAgICAgICAgIGlmIChrZXlXb3Jkcy5sZW5ndGggIT09IDIgJiYga2V5V29yZHMubGVuZ3RoICE9PSA0ICYmIGtleVdvcmRzLmxlbmd0aCA8IDYpIHtcblx0ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgbGVuZ3RoIC0gM0RFUyByZXF1aXJlcyB0aGUga2V5IGxlbmd0aCB0byBiZSA2NCwgMTI4LCAxOTIgb3IgPjE5Mi4nKTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIC8vIEV4dGVuZCB0aGUga2V5IGFjY29yZGluZyB0byB0aGUga2V5aW5nIG9wdGlvbnMgZGVmaW5lZCBpbiAzREVTIHN0YW5kYXJkXG5cdCAgICAgICAgICAgIHZhciBrZXkxID0ga2V5V29yZHMuc2xpY2UoMCwgMik7XG5cdCAgICAgICAgICAgIHZhciBrZXkyID0ga2V5V29yZHMubGVuZ3RoIDwgNCA/IGtleVdvcmRzLnNsaWNlKDAsIDIpIDoga2V5V29yZHMuc2xpY2UoMiwgNCk7XG5cdCAgICAgICAgICAgIHZhciBrZXkzID0ga2V5V29yZHMubGVuZ3RoIDwgNiA/IGtleVdvcmRzLnNsaWNlKDAsIDIpIDoga2V5V29yZHMuc2xpY2UoNCwgNik7XG5cblx0ICAgICAgICAgICAgLy8gQ3JlYXRlIERFUyBpbnN0YW5jZXNcblx0ICAgICAgICAgICAgdGhpcy5fZGVzMSA9IERFUy5jcmVhdGVFbmNyeXB0b3IoV29yZEFycmF5LmNyZWF0ZShrZXkxKSk7XG5cdCAgICAgICAgICAgIHRoaXMuX2RlczIgPSBERVMuY3JlYXRlRW5jcnlwdG9yKFdvcmRBcnJheS5jcmVhdGUoa2V5MikpO1xuXHQgICAgICAgICAgICB0aGlzLl9kZXMzID0gREVTLmNyZWF0ZUVuY3J5cHRvcihXb3JkQXJyYXkuY3JlYXRlKGtleTMpKTtcblx0ICAgICAgICB9LFxuXG5cdCAgICAgICAgZW5jcnlwdEJsb2NrOiBmdW5jdGlvbiAoTSwgb2Zmc2V0KSB7XG5cdCAgICAgICAgICAgIHRoaXMuX2RlczEuZW5jcnlwdEJsb2NrKE0sIG9mZnNldCk7XG5cdCAgICAgICAgICAgIHRoaXMuX2RlczIuZGVjcnlwdEJsb2NrKE0sIG9mZnNldCk7XG5cdCAgICAgICAgICAgIHRoaXMuX2RlczMuZW5jcnlwdEJsb2NrKE0sIG9mZnNldCk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIGRlY3J5cHRCbG9jazogZnVuY3Rpb24gKE0sIG9mZnNldCkge1xuXHQgICAgICAgICAgICB0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayhNLCBvZmZzZXQpO1xuXHQgICAgICAgICAgICB0aGlzLl9kZXMyLmVuY3J5cHRCbG9jayhNLCBvZmZzZXQpO1xuXHQgICAgICAgICAgICB0aGlzLl9kZXMxLmRlY3J5cHRCbG9jayhNLCBvZmZzZXQpO1xuXHQgICAgICAgIH0sXG5cblx0ICAgICAgICBrZXlTaXplOiAxOTIvMzIsXG5cblx0ICAgICAgICBpdlNpemU6IDY0LzMyLFxuXG5cdCAgICAgICAgYmxvY2tTaXplOiA2NC8zMlxuXHQgICAgfSk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogU2hvcnRjdXQgZnVuY3Rpb25zIHRvIHRoZSBjaXBoZXIncyBvYmplY3QgaW50ZXJmYWNlLlxuXHQgICAgICpcblx0ICAgICAqIEBleGFtcGxlXG5cdCAgICAgKlxuXHQgICAgICogICAgIHZhciBjaXBoZXJ0ZXh0ID0gQ3J5cHRvSlMuVHJpcGxlREVTLmVuY3J5cHQobWVzc2FnZSwga2V5LCBjZmcpO1xuXHQgICAgICogICAgIHZhciBwbGFpbnRleHQgID0gQ3J5cHRvSlMuVHJpcGxlREVTLmRlY3J5cHQoY2lwaGVydGV4dCwga2V5LCBjZmcpO1xuXHQgICAgICovXG5cdCAgICBDLlRyaXBsZURFUyA9IEJsb2NrQ2lwaGVyLl9jcmVhdGVIZWxwZXIoVHJpcGxlREVTKTtcblx0fSgpKTtcblxuXG5cdHJldHVybiBDcnlwdG9KUy5UcmlwbGVERVM7XG5cbn0pKTsiLCI7KGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuXHRcdC8vIENvbW1vbkpTXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiLi9jb3JlXCIpKTtcblx0fVxuXHRlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEFNRFxuXHRcdGRlZmluZShbXCIuL2NvcmVcIl0sIGZhY3RvcnkpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdC8vIEdsb2JhbCAoYnJvd3Nlcilcblx0XHRmYWN0b3J5KHJvb3QuQ3J5cHRvSlMpO1xuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChDcnlwdG9KUykge1xuXG5cdChmdW5jdGlvbiAodW5kZWZpbmVkKSB7XG5cdCAgICAvLyBTaG9ydGN1dHNcblx0ICAgIHZhciBDID0gQ3J5cHRvSlM7XG5cdCAgICB2YXIgQ19saWIgPSBDLmxpYjtcblx0ICAgIHZhciBCYXNlID0gQ19saWIuQmFzZTtcblx0ICAgIHZhciBYMzJXb3JkQXJyYXkgPSBDX2xpYi5Xb3JkQXJyYXk7XG5cblx0ICAgIC8qKlxuXHQgICAgICogeDY0IG5hbWVzcGFjZS5cblx0ICAgICAqL1xuXHQgICAgdmFyIENfeDY0ID0gQy54NjQgPSB7fTtcblxuXHQgICAgLyoqXG5cdCAgICAgKiBBIDY0LWJpdCB3b3JkLlxuXHQgICAgICovXG5cdCAgICB2YXIgWDY0V29yZCA9IENfeDY0LldvcmQgPSBCYXNlLmV4dGVuZCh7XG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogSW5pdGlhbGl6ZXMgYSBuZXdseSBjcmVhdGVkIDY0LWJpdCB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IGhpZ2ggVGhlIGhpZ2ggMzIgYml0cy5cblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gbG93IFRoZSBsb3cgMzIgYml0cy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHg2NFdvcmQgPSBDcnlwdG9KUy54NjQuV29yZC5jcmVhdGUoMHgwMDAxMDIwMywgMHgwNDA1MDYwNyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgaW5pdDogZnVuY3Rpb24gKGhpZ2gsIGxvdykge1xuXHQgICAgICAgICAgICB0aGlzLmhpZ2ggPSBoaWdoO1xuXHQgICAgICAgICAgICB0aGlzLmxvdyA9IGxvdztcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBCaXR3aXNlIE5PVHMgdGhpcyB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIG5lZ2F0aW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgbmVnYXRlZCA9IHg2NFdvcmQubm90KCk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgLy8gbm90OiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIHZhciBoaWdoID0gfnRoaXMuaGlnaDtcblx0ICAgICAgICAgICAgLy8gdmFyIGxvdyA9IH50aGlzLmxvdztcblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogQml0d2lzZSBBTkRzIHRoaXMgd29yZCB3aXRoIHRoZSBwYXNzZWQgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7WDY0V29yZH0gd29yZCBUaGUgeDY0LVdvcmQgdG8gQU5EIHdpdGggdGhpcyB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIEFORGluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGFuZGVkID0geDY0V29yZC5hbmQoYW5vdGhlclg2NFdvcmQpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIGFuZDogZnVuY3Rpb24gKHdvcmQpIHtcblx0ICAgICAgICAgICAgLy8gdmFyIGhpZ2ggPSB0aGlzLmhpZ2ggJiB3b3JkLmhpZ2g7XG5cdCAgICAgICAgICAgIC8vIHZhciBsb3cgPSB0aGlzLmxvdyAmIHdvcmQubG93O1xuXG5cdCAgICAgICAgICAgIC8vIHJldHVybiBYNjRXb3JkLmNyZWF0ZShoaWdoLCBsb3cpO1xuXHQgICAgICAgIC8vIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBCaXR3aXNlIE9ScyB0aGlzIHdvcmQgd2l0aCB0aGUgcGFzc2VkIHdvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1g2NFdvcmR9IHdvcmQgVGhlIHg2NC1Xb3JkIHRvIE9SIHdpdGggdGhpcyB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIE9SaW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgb3JlZCA9IHg2NFdvcmQub3IoYW5vdGhlclg2NFdvcmQpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIG9yOiBmdW5jdGlvbiAod29yZCkge1xuXHQgICAgICAgICAgICAvLyB2YXIgaGlnaCA9IHRoaXMuaGlnaCB8IHdvcmQuaGlnaDtcblx0ICAgICAgICAgICAgLy8gdmFyIGxvdyA9IHRoaXMubG93IHwgd29yZC5sb3c7XG5cblx0ICAgICAgICAgICAgLy8gcmV0dXJuIFg2NFdvcmQuY3JlYXRlKGhpZ2gsIGxvdyk7XG5cdCAgICAgICAgLy8gfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIEJpdHdpc2UgWE9ScyB0aGlzIHdvcmQgd2l0aCB0aGUgcGFzc2VkIHdvcmQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge1g2NFdvcmR9IHdvcmQgVGhlIHg2NC1Xb3JkIHRvIFhPUiB3aXRoIHRoaXMgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciBYT1JpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciB4b3JlZCA9IHg2NFdvcmQueG9yKGFub3RoZXJYNjRXb3JkKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICAvLyB4b3I6IGZ1bmN0aW9uICh3b3JkKSB7XG5cdCAgICAgICAgICAgIC8vIHZhciBoaWdoID0gdGhpcy5oaWdoIF4gd29yZC5oaWdoO1xuXHQgICAgICAgICAgICAvLyB2YXIgbG93ID0gdGhpcy5sb3cgXiB3b3JkLmxvdztcblxuXHQgICAgICAgICAgICAvLyByZXR1cm4gWDY0V29yZC5jcmVhdGUoaGlnaCwgbG93KTtcblx0ICAgICAgICAvLyB9LFxuXG5cdCAgICAgICAgLyoqXG5cdCAgICAgICAgICogU2hpZnRzIHRoaXMgd29yZCBuIGJpdHMgdG8gdGhlIGxlZnQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGJpdHMgdG8gc2hpZnQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtYNjRXb3JkfSBBIG5ldyB4NjQtV29yZCBvYmplY3QgYWZ0ZXIgc2hpZnRpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBzaGlmdGVkID0geDY0V29yZC5zaGlmdEwoMjUpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIHNoaWZ0TDogZnVuY3Rpb24gKG4pIHtcblx0ICAgICAgICAgICAgLy8gaWYgKG4gPCAzMikge1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGhpZ2ggPSAodGhpcy5oaWdoIDw8IG4pIHwgKHRoaXMubG93ID4+PiAoMzIgLSBuKSk7XG5cdCAgICAgICAgICAgICAgICAvLyB2YXIgbG93ID0gdGhpcy5sb3cgPDwgbjtcblx0ICAgICAgICAgICAgLy8gfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIC8vIHZhciBoaWdoID0gdGhpcy5sb3cgPDwgKG4gLSAzMik7XG5cdCAgICAgICAgICAgICAgICAvLyB2YXIgbG93ID0gMDtcblx0ICAgICAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgICAgIC8vIHJldHVybiBYNjRXb3JkLmNyZWF0ZShoaWdoLCBsb3cpO1xuXHQgICAgICAgIC8vIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBTaGlmdHMgdGhpcyB3b3JkIG4gYml0cyB0byB0aGUgcmlnaHQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGJpdHMgdG8gc2hpZnQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcmV0dXJuIHtYNjRXb3JkfSBBIG5ldyB4NjQtV29yZCBvYmplY3QgYWZ0ZXIgc2hpZnRpbmcuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAZXhhbXBsZVxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogICAgIHZhciBzaGlmdGVkID0geDY0V29yZC5zaGlmdFIoNyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgLy8gc2hpZnRSOiBmdW5jdGlvbiAobikge1xuXHQgICAgICAgICAgICAvLyBpZiAobiA8IDMyKSB7XG5cdCAgICAgICAgICAgICAgICAvLyB2YXIgbG93ID0gKHRoaXMubG93ID4+PiBuKSB8ICh0aGlzLmhpZ2ggPDwgKDMyIC0gbikpO1xuXHQgICAgICAgICAgICAgICAgLy8gdmFyIGhpZ2ggPSB0aGlzLmhpZ2ggPj4+IG47XG5cdCAgICAgICAgICAgIC8vIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAvLyB2YXIgbG93ID0gdGhpcy5oaWdoID4+PiAobiAtIDMyKTtcblx0ICAgICAgICAgICAgICAgIC8vIHZhciBoaWdoID0gMDtcblx0ICAgICAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgICAgIC8vIHJldHVybiBYNjRXb3JkLmNyZWF0ZShoaWdoLCBsb3cpO1xuXHQgICAgICAgIC8vIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBSb3RhdGVzIHRoaXMgd29yZCBuIGJpdHMgdG8gdGhlIGxlZnQuXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGJpdHMgdG8gcm90YXRlLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIHJvdGF0aW5nLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgcm90YXRlZCA9IHg2NFdvcmQucm90TCgyNSk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgLy8gcm90TDogZnVuY3Rpb24gKG4pIHtcblx0ICAgICAgICAgICAgLy8gcmV0dXJuIHRoaXMuc2hpZnRMKG4pLm9yKHRoaXMuc2hpZnRSKDY0IC0gbikpO1xuXHQgICAgICAgIC8vIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBSb3RhdGVzIHRoaXMgd29yZCBuIGJpdHMgdG8gdGhlIHJpZ2h0LlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBiaXRzIHRvIHJvdGF0ZS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmR9IEEgbmV3IHg2NC1Xb3JkIG9iamVjdCBhZnRlciByb3RhdGluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHJvdGF0ZWQgPSB4NjRXb3JkLnJvdFIoNyk7XG5cdCAgICAgICAgICovXG5cdCAgICAgICAgLy8gcm90UjogZnVuY3Rpb24gKG4pIHtcblx0ICAgICAgICAgICAgLy8gcmV0dXJuIHRoaXMuc2hpZnRSKG4pLm9yKHRoaXMuc2hpZnRMKDY0IC0gbikpO1xuXHQgICAgICAgIC8vIH0sXG5cblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBBZGRzIHRoaXMgd29yZCB3aXRoIHRoZSBwYXNzZWQgd29yZC5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7WDY0V29yZH0gd29yZCBUaGUgeDY0LVdvcmQgdG8gYWRkIHdpdGggdGhpcyB3b3JkLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQHJldHVybiB7WDY0V29yZH0gQSBuZXcgeDY0LVdvcmQgb2JqZWN0IGFmdGVyIGFkZGluZy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIGFkZGVkID0geDY0V29yZC5hZGQoYW5vdGhlclg2NFdvcmQpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIC8vIGFkZDogZnVuY3Rpb24gKHdvcmQpIHtcblx0ICAgICAgICAgICAgLy8gdmFyIGxvdyA9ICh0aGlzLmxvdyArIHdvcmQubG93KSB8IDA7XG5cdCAgICAgICAgICAgIC8vIHZhciBjYXJyeSA9IChsb3cgPj4+IDApIDwgKHRoaXMubG93ID4+PiAwKSA/IDEgOiAwO1xuXHQgICAgICAgICAgICAvLyB2YXIgaGlnaCA9ICh0aGlzLmhpZ2ggKyB3b3JkLmhpZ2ggKyBjYXJyeSkgfCAwO1xuXG5cdCAgICAgICAgICAgIC8vIHJldHVybiBYNjRXb3JkLmNyZWF0ZShoaWdoLCBsb3cpO1xuXHQgICAgICAgIC8vIH1cblx0ICAgIH0pO1xuXG5cdCAgICAvKipcblx0ICAgICAqIEFuIGFycmF5IG9mIDY0LWJpdCB3b3Jkcy5cblx0ICAgICAqXG5cdCAgICAgKiBAcHJvcGVydHkge0FycmF5fSB3b3JkcyBUaGUgYXJyYXkgb2YgQ3J5cHRvSlMueDY0LldvcmQgb2JqZWN0cy5cblx0ICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzaWdCeXRlcyBUaGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGJ5dGVzIGluIHRoaXMgd29yZCBhcnJheS5cblx0ICAgICAqL1xuXHQgICAgdmFyIFg2NFdvcmRBcnJheSA9IENfeDY0LldvcmRBcnJheSA9IEJhc2UuZXh0ZW5kKHtcblx0ICAgICAgICAvKipcblx0ICAgICAgICAgKiBJbml0aWFsaXplcyBhIG5ld2x5IGNyZWF0ZWQgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IHdvcmRzIChPcHRpb25hbCkgQW4gYXJyYXkgb2YgQ3J5cHRvSlMueDY0LldvcmQgb2JqZWN0cy5cblx0ICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gc2lnQnl0ZXMgKE9wdGlvbmFsKSBUaGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGJ5dGVzIGluIHRoZSB3b3Jkcy5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLng2NC5Xb3JkQXJyYXkuY3JlYXRlKCk7XG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHdvcmRBcnJheSA9IENyeXB0b0pTLng2NC5Xb3JkQXJyYXkuY3JlYXRlKFtcblx0ICAgICAgICAgKiAgICAgICAgIENyeXB0b0pTLng2NC5Xb3JkLmNyZWF0ZSgweDAwMDEwMjAzLCAweDA0MDUwNjA3KSxcblx0ICAgICAgICAgKiAgICAgICAgIENyeXB0b0pTLng2NC5Xb3JkLmNyZWF0ZSgweDE4MTkxYTFiLCAweDFjMWQxZTFmKVxuXHQgICAgICAgICAqICAgICBdKTtcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgd29yZEFycmF5ID0gQ3J5cHRvSlMueDY0LldvcmRBcnJheS5jcmVhdGUoW1xuXHQgICAgICAgICAqICAgICAgICAgQ3J5cHRvSlMueDY0LldvcmQuY3JlYXRlKDB4MDAwMTAyMDMsIDB4MDQwNTA2MDcpLFxuXHQgICAgICAgICAqICAgICAgICAgQ3J5cHRvSlMueDY0LldvcmQuY3JlYXRlKDB4MTgxOTFhMWIsIDB4MWMxZDFlMWYpXG5cdCAgICAgICAgICogICAgIF0sIDEwKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBpbml0OiBmdW5jdGlvbiAod29yZHMsIHNpZ0J5dGVzKSB7XG5cdCAgICAgICAgICAgIHdvcmRzID0gdGhpcy53b3JkcyA9IHdvcmRzIHx8IFtdO1xuXG5cdCAgICAgICAgICAgIGlmIChzaWdCeXRlcyAhPSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgIHRoaXMuc2lnQnl0ZXMgPSBzaWdCeXRlcztcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIHRoaXMuc2lnQnl0ZXMgPSB3b3Jkcy5sZW5ndGggKiA4O1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENvbnZlcnRzIHRoaXMgNjQtYml0IHdvcmQgYXJyYXkgdG8gYSAzMi1iaXQgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge0NyeXB0b0pTLmxpYi5Xb3JkQXJyYXl9IFRoaXMgd29yZCBhcnJheSdzIGRhdGEgYXMgYSAzMi1iaXQgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEBleGFtcGxlXG5cdCAgICAgICAgICpcblx0ICAgICAgICAgKiAgICAgdmFyIHgzMldvcmRBcnJheSA9IHg2NFdvcmRBcnJheS50b1gzMigpO1xuXHQgICAgICAgICAqL1xuXHQgICAgICAgIHRvWDMyOiBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICAgIC8vIFNob3J0Y3V0c1xuXHQgICAgICAgICAgICB2YXIgeDY0V29yZHMgPSB0aGlzLndvcmRzO1xuXHQgICAgICAgICAgICB2YXIgeDY0V29yZHNMZW5ndGggPSB4NjRXb3Jkcy5sZW5ndGg7XG5cblx0ICAgICAgICAgICAgLy8gQ29udmVydFxuXHQgICAgICAgICAgICB2YXIgeDMyV29yZHMgPSBbXTtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB4NjRXb3Jkc0xlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgeDY0V29yZCA9IHg2NFdvcmRzW2ldO1xuXHQgICAgICAgICAgICAgICAgeDMyV29yZHMucHVzaCh4NjRXb3JkLmhpZ2gpO1xuXHQgICAgICAgICAgICAgICAgeDMyV29yZHMucHVzaCh4NjRXb3JkLmxvdyk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gWDMyV29yZEFycmF5LmNyZWF0ZSh4MzJXb3JkcywgdGhpcy5zaWdCeXRlcyk7XG5cdCAgICAgICAgfSxcblxuXHQgICAgICAgIC8qKlxuXHQgICAgICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgd29yZCBhcnJheS5cblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqIEByZXR1cm4ge1g2NFdvcmRBcnJheX0gVGhlIGNsb25lLlxuXHQgICAgICAgICAqXG5cdCAgICAgICAgICogQGV4YW1wbGVcblx0ICAgICAgICAgKlxuXHQgICAgICAgICAqICAgICB2YXIgY2xvbmUgPSB4NjRXb3JkQXJyYXkuY2xvbmUoKTtcblx0ICAgICAgICAgKi9cblx0ICAgICAgICBjbG9uZTogZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICB2YXIgY2xvbmUgPSBCYXNlLmNsb25lLmNhbGwodGhpcyk7XG5cblx0ICAgICAgICAgICAgLy8gQ2xvbmUgXCJ3b3Jkc1wiIGFycmF5XG5cdCAgICAgICAgICAgIHZhciB3b3JkcyA9IGNsb25lLndvcmRzID0gdGhpcy53b3Jkcy5zbGljZSgwKTtcblxuXHQgICAgICAgICAgICAvLyBDbG9uZSBlYWNoIFg2NFdvcmQgb2JqZWN0XG5cdCAgICAgICAgICAgIHZhciB3b3Jkc0xlbmd0aCA9IHdvcmRzLmxlbmd0aDtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3Jkc0xlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgICAgICB3b3Jkc1tpXSA9IHdvcmRzW2ldLmNsb25lKCk7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICByZXR1cm4gY2xvbmU7XG5cdCAgICAgICAgfVxuXHQgICAgfSk7XG5cdH0oKSk7XG5cblxuXHRyZXR1cm4gQ3J5cHRvSlM7XG5cbn0pKTsiLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIubXVsdGlzZWxlY3R7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tbXMtYmcsI2ZmZik7Ym9yZGVyOnZhcigtLW1zLWJvcmRlci13aWR0aCwxcHgpIHNvbGlkIHZhcigtLW1zLWJvcmRlci1jb2xvciwjZDFkNWRiKTtib3JkZXItcmFkaXVzOnZhcigtLW1zLXJhZGl1cyw0cHgpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOnZhcigtLW1zLWZvbnQtc2l6ZSwxcmVtKTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luOjAgYXV0bzttaW4taGVpZ2h0OmNhbGModmFyKC0tbXMtYm9yZGVyLXdpZHRoLCAxcHgpKjIgKyB2YXIoLS1tcy1mb250LXNpemUsIDFyZW0pKnZhcigtLW1zLWxpbmUtaGVpZ2h0LCAxLjM3NSkgKyB2YXIoLS1tcy1weSwgLjVyZW0pKjIpO291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5tdWx0aXNlbGVjdC5pcy1vcGVue2JvcmRlci1yYWRpdXM6dmFyKC0tbXMtcmFkaXVzLDRweCkgdmFyKC0tbXMtcmFkaXVzLDRweCkgMCAwfS5tdWx0aXNlbGVjdC5pcy1vcGVuLXRvcHtib3JkZXItcmFkaXVzOjAgMCB2YXIoLS1tcy1yYWRpdXMsNHB4KSB2YXIoLS1tcy1yYWRpdXMsNHB4KX0ubXVsdGlzZWxlY3QuaXMtZGlzYWJsZWR7YmFja2dyb3VuZDp2YXIoLS1tcy1iZy1kaXNhYmxlZCwjZjNmNGY2KTtjdXJzb3I6ZGVmYXVsdH0ubXVsdGlzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgdmFyKC0tbXMtcmluZy13aWR0aCwzcHgpIHZhcigtLW1zLXJpbmctY29sb3IscmdiYSgxNiwxODUsMTI5LC4xODgpKX0ubXVsdGlzZWxlY3QtbXVsdGlwbGUtbGFiZWwsLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyLC5tdWx0aXNlbGVjdC1zaW5nbGUtbGFiZWx7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtsZWZ0OjA7bGluZS1oZWlnaHQ6dmFyKC0tbXMtbGluZS1oZWlnaHQsMS4zNzUpO21heC13aWR0aDoxMDAlO3BhZGRpbmctbGVmdDp2YXIoLS1tcy1weCwuODc1cmVtKTtwYWRkaW5nLXJpZ2h0OmNhbGMoMS4yNXJlbSArIHZhcigtLW1zLXB4LCAuODc1cmVtKSozKTtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5tdWx0aXNlbGVjdC1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1tcy1wbGFjZWhvbGRlci1jb2xvciwjOWNhM2FmKX0ubXVsdGlzZWxlY3Qtc2luZ2xlLWxhYmVsLXRleHR7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lm11bHRpc2VsZWN0LXNlYXJjaHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDp2YXIoLS1tcy1iZywjZmZmKTtib3JkZXI6MDtib3JkZXItcmFkaXVzOnZhcigtLW1zLXJhZGl1cyw0cHgpO2JvdHRvbTowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDoxMDAlO2xlZnQ6MDtvdXRsaW5lOm5vbmU7cGFkZGluZy1sZWZ0OnZhcigtLW1zLXB4LC44NzVyZW0pO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7d2lkdGg6MTAwJX0ubXVsdGlzZWxlY3Qtc2VhcmNoOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLC5tdWx0aXNlbGVjdC1zZWFyY2g6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sLm11bHRpc2VsZWN0LXNlYXJjaDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLm11bHRpc2VsZWN0LXNlYXJjaDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5tdWx0aXNlbGVjdC10YWdze2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MTtmbGV4LXdyYXA6d3JhcDttYXJnaW46dmFyKC0tbXMtdGFnLW15LC4yNXJlbSkgMCAwO3BhZGRpbmctbGVmdDp2YXIoLS1tcy1weSwuNXJlbSl9Lm11bHRpc2VsZWN0LXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS1tcy10YWctYmcsIzEwYjk4MSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1tcy10YWctcmFkaXVzLDRweCk7Y29sb3I6dmFyKC0tbXMtdGFnLWNvbG9yLCNmZmYpO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6dmFyKC0tbXMtdGFnLWZvbnQtc2l6ZSwuODc1cmVtKTtmb250LXdlaWdodDp2YXIoLS1tcy10YWctZm9udC13ZWlnaHQsNjAwKTtsaW5lLWhlaWdodDp2YXIoLS1tcy10YWctbGluZS1oZWlnaHQsMS4yNXJlbSk7bWFyZ2luLWJvdHRvbTp2YXIoLS1tcy10YWctbXksLjI1cmVtKTttYXJnaW4tcmlnaHQ6dmFyKC0tbXMtdGFnLW14LC4yNXJlbSk7cGFkZGluZzp2YXIoLS1tcy10YWctcHksLjEyNXJlbSkgMCB2YXIoLS1tcy10YWctcHksLjEyNXJlbSkgdmFyKC0tbXMtdGFnLXB4LC41cmVtKTt3aGl0ZS1zcGFjZTpub3dyYXB9Lm11bHRpc2VsZWN0LXRhZy5pcy1kaXNhYmxlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLXRhZy1iZy1kaXNhYmxlZCwjOWNhM2FmKTtjb2xvcjp2YXIoLS1tcy10YWctY29sb3ItZGlzYWJsZWQsI2ZmZik7cGFkZGluZy1yaWdodDp2YXIoLS1tcy10YWctcHgsLjVyZW0pfS5tdWx0aXNlbGVjdC10YWctcmVtb3Zle2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOnZhcigtLW1zLXRhZy1yZW1vdmUtcmFkaXVzLDRweCk7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOnZhcigtLW1zLXRhZy1yZW1vdmUtbXksMCkgdmFyKC0tbXMtdGFnLXJlbW92ZS1teCwuMTI1cmVtKTtwYWRkaW5nOnZhcigtLW1zLXRhZy1yZW1vdmUtcHksLjI1cmVtKSB2YXIoLS1tcy10YWctcmVtb3ZlLXB4LC4yNXJlbSl9Lm11bHRpc2VsZWN0LXRhZy1yZW1vdmU6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNjMpfS5tdWx0aXNlbGVjdC10YWctcmVtb3ZlLWljb257YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0Oi43NXJlbTstd2Via2l0LW1hc2staW1hZ2U6dXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0Nzdmcgdmlld0JveD0nMCAwIDMyMCA1MTInIGZpbGw9J2N1cnJlbnRDb2xvcicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nbTIwNy42IDI1NiAxMDcuNzItMTA3LjcyYzYuMjMtNi4yMyA2LjIzLTE2LjM0IDAtMjIuNThsLTI1LjAzLTI1LjAzYy02LjIzLTYuMjMtMTYuMzQtNi4yMy0yMi41OCAwTDE2MCAyMDguNCA1Mi4yOCAxMDAuNjhjLTYuMjMtNi4yMy0xNi4zNC02LjIzLTIyLjU4IDBMNC42OCAxMjUuN2MtNi4yMyA2LjIzLTYuMjMgMTYuMzQgMCAyMi41OEwxMTIuNCAyNTYgNC42OCAzNjMuNzJjLTYuMjMgNi4yMy02LjIzIDE2LjM0IDAgMjIuNThsMjUuMDMgMjUuMDNjNi4yMyA2LjIzIDE2LjM0IDYuMjMgMjIuNTggMEwxNjAgMzAzLjZsMTA3LjcyIDEwNy43MmM2LjIzIDYuMjMgMTYuMzQgNi4yMyAyMi41OCAwbDI1LjAzLTI1LjAzYzYuMjMtNi4yMyA2LjIzLTE2LjM0IDAtMjIuNThMMjA3LjYgMjU2eicvJTNFJTNDL3N2ZyUzRVxcXCIpO21hc2staW1hZ2U6dXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0Nzdmcgdmlld0JveD0nMCAwIDMyMCA1MTInIGZpbGw9J2N1cnJlbnRDb2xvcicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nbTIwNy42IDI1NiAxMDcuNzItMTA3LjcyYzYuMjMtNi4yMyA2LjIzLTE2LjM0IDAtMjIuNThsLTI1LjAzLTI1LjAzYy02LjIzLTYuMjMtMTYuMzQtNi4yMy0yMi41OCAwTDE2MCAyMDguNCA1Mi4yOCAxMDAuNjhjLTYuMjMtNi4yMy0xNi4zNC02LjIzLTIyLjU4IDBMNC42OCAxMjUuN2MtNi4yMyA2LjIzLTYuMjMgMTYuMzQgMCAyMi41OEwxMTIuNCAyNTYgNC42OCAzNjMuNzJjLTYuMjMgNi4yMy02LjIzIDE2LjM0IDAgMjIuNThsMjUuMDMgMjUuMDNjNi4yMyA2LjIzIDE2LjM0IDYuMjMgMjIuNTggMEwxNjAgMzAzLjZsMTA3LjcyIDEwNy43MmM2LjIzIDYuMjMgMTYuMzQgNi4yMyAyMi41OCAwbDI1LjAzLTI1LjAzYzYuMjMtNi4yMyA2LjIzLTE2LjM0IDAtMjIuNThMMjA3LjYgMjU2eicvJTNFJTNDL3N2ZyUzRVxcXCIpOy13ZWJraXQtbWFzay1wb3NpdGlvbjpjZW50ZXI7bWFzay1wb3NpdGlvbjpjZW50ZXI7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW47bWFzay1zaXplOmNvbnRhaW47b3BhY2l0eTouODt3aWR0aDouNzVyZW19Lm11bHRpc2VsZWN0LXRhZ3Mtc2VhcmNoLXdyYXBwZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MTtoZWlnaHQ6MTAwJTttYXJnaW46MCB2YXIoLS1tcy10YWctbXgsNHB4KSB2YXIoLS1tcy10YWctbXksNHB4KTtwb3NpdGlvbjpyZWxhdGl2ZX0ubXVsdGlzZWxlY3QtdGFncy1zZWFyY2gtY29weXtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MXB4O3Zpc2liaWxpdHk6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dpZHRoOjEwMCV9Lm11bHRpc2VsZWN0LXRhZ3Mtc2VhcmNoey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtib3JkZXI6MDtib3R0b206MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtsZWZ0OjA7b3V0bGluZTpub25lO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3dpZHRoOjEwMCV9Lm11bHRpc2VsZWN0LXRhZ3Mtc2VhcmNoOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLC5tdWx0aXNlbGVjdC10YWdzLXNlYXJjaDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwubXVsdGlzZWxlY3QtdGFncy1zZWFyY2g6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLC5tdWx0aXNlbGVjdC10YWdzLXNlYXJjaDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5tdWx0aXNlbGVjdC1pbmlmaXRle2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4taGVpZ2h0OmNhbGModmFyKC0tbXMtYm9yZGVyLXdpZHRoLCAxcHgpKjIgKyB2YXIoLS1tcy1mb250LXNpemUsIDFyZW0pKnZhcigtLW1zLWxpbmUtaGVpZ2h0LCAxLjM3NSkgKyB2YXIoLS1tcy1weSwgLjVyZW0pKjIpO3dpZHRoOjEwMCV9Lm11bHRpc2VsZWN0LWluaWZpdGUtc3Bpbm5lciwubXVsdGlzZWxlY3Qtc3Bpbm5lcnstd2Via2l0LWFuaW1hdGlvbjptdWx0aXNlbGVjdC1zcGluIDFzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246bXVsdGlzZWxlY3Qtc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tcy1zcGlubmVyLWNvbG9yLCMxMGI5ODEpO2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjFyZW07LXdlYmtpdC1tYXNrLWltYWdlOnVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyBmaWxsPSdjdXJyZW50Q29sb3InIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J200NTYuNDMzIDM3MS43Mi0yNy43OS0xNi4wNDVjLTcuMTkyLTQuMTUyLTEwLjA1Mi0xMy4xMzYtNi40ODctMjAuNjM2IDI1LjgyLTU0LjMyOCAyMy41NjYtMTE4LjYwMi02Ljc2OC0xNzEuMDMtMzAuMjY1LTUyLjUyOS04NC44MDItODYuNjIxLTE0NC43Ni05MS40MjRDMjYyLjM1IDcxLjkyMiAyNTYgNjQuOTUzIDI1NiA1Ni42NDlWMjQuNTZjMC05LjMxIDcuOTE2LTE2LjYwOSAxNy4yMDQtMTUuOTYgODEuNzk1IDUuNzE3IDE1Ni40MTIgNTEuOTAyIDE5Ny42MTEgMTIzLjQwOCA0MS4zMDEgNzEuMzg1IDQzLjk5IDE1OS4wOTYgOC4wNDIgMjMyLjc5Mi00LjA4MiA4LjM2OS0xNC4zNjEgMTEuNTc1LTIyLjQyNCA2LjkyeicvJTNFJTNDL3N2ZyUzRVxcXCIpO21hc2staW1hZ2U6dXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0Nzdmcgdmlld0JveD0nMCAwIDUxMiA1MTInIGZpbGw9J2N1cnJlbnRDb2xvcicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nbTQ1Ni40MzMgMzcxLjcyLTI3Ljc5LTE2LjA0NWMtNy4xOTItNC4xNTItMTAuMDUyLTEzLjEzNi02LjQ4Ny0yMC42MzYgMjUuODItNTQuMzI4IDIzLjU2Ni0xMTguNjAyLTYuNzY4LTE3MS4wMy0zMC4yNjUtNTIuNTI5LTg0LjgwMi04Ni42MjEtMTQ0Ljc2LTkxLjQyNEMyNjIuMzUgNzEuOTIyIDI1NiA2NC45NTMgMjU2IDU2LjY0OVYyNC41NmMwLTkuMzEgNy45MTYtMTYuNjA5IDE3LjIwNC0xNS45NiA4MS43OTUgNS43MTcgMTU2LjQxMiA1MS45MDIgMTk3LjYxMSAxMjMuNDA4IDQxLjMwMSA3MS4zODUgNDMuOTkgMTU5LjA5NiA4LjA0MiAyMzIuNzkyLTQuMDgyIDguMzY5LTE0LjM2MSAxMS41NzUtMjIuNDI0IDYuOTJ6Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOmNlbnRlcjttYXNrLXBvc2l0aW9uOmNlbnRlcjstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdDttYXNrLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbjttYXNrLXNpemU6Y29udGFpbjt3aWR0aDoxcmVtO3otaW5kZXg6MTB9Lm11bHRpc2VsZWN0LXNwaW5uZXJ7bWFyZ2luOjAgdmFyKC0tbXMtcHgsLjg3NXJlbSkgMCAwfS5tdWx0aXNlbGVjdC1jbGVhcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDtvcGFjaXR5OjE7cGFkZGluZzowIHZhcigtLW1zLXB4LC44NzVyZW0pIDAgMDtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOi4zczt6LWluZGV4OjEwfS5tdWx0aXNlbGVjdC1jbGVhcjpob3ZlciAubXVsdGlzZWxlY3QtY2xlYXItaWNvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1zLWNsZWFyLWNvbG9yLWhvdmVyLCMwMDApfS5tdWx0aXNlbGVjdC1jbGVhci1pY29ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXMtY2xlYXItY29sb3IsIzk5OSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtpdC1tYXNrLWltYWdlOnVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMjAgNTEyJyBmaWxsPSdjdXJyZW50Q29sb3InIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J20yMDcuNiAyNTYgMTA3LjcyLTEwNy43MmM2LjIzLTYuMjMgNi4yMy0xNi4zNCAwLTIyLjU4bC0yNS4wMy0yNS4wM2MtNi4yMy02LjIzLTE2LjM0LTYuMjMtMjIuNTggMEwxNjAgMjA4LjQgNTIuMjggMTAwLjY4Yy02LjIzLTYuMjMtMTYuMzQtNi4yMy0yMi41OCAwTDQuNjggMTI1LjdjLTYuMjMgNi4yMy02LjIzIDE2LjM0IDAgMjIuNThMMTEyLjQgMjU2IDQuNjggMzYzLjcyYy02LjIzIDYuMjMtNi4yMyAxNi4zNCAwIDIyLjU4bDI1LjAzIDI1LjAzYzYuMjMgNi4yMyAxNi4zNCA2LjIzIDIyLjU4IDBMMTYwIDMwMy42bDEwNy43MiAxMDcuNzJjNi4yMyA2LjIzIDE2LjM0IDYuMjMgMjIuNTggMGwyNS4wMy0yNS4wM2M2LjIzLTYuMjMgNi4yMy0xNi4zNCAwLTIyLjU4TDIwNy42IDI1NnonLyUzRSUzQy9zdmclM0VcXFwiKTttYXNrLWltYWdlOnVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMjAgNTEyJyBmaWxsPSdjdXJyZW50Q29sb3InIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J20yMDcuNiAyNTYgMTA3LjcyLTEwNy43MmM2LjIzLTYuMjMgNi4yMy0xNi4zNCAwLTIyLjU4bC0yNS4wMy0yNS4wM2MtNi4yMy02LjIzLTE2LjM0LTYuMjMtMjIuNTggMEwxNjAgMjA4LjQgNTIuMjggMTAwLjY4Yy02LjIzLTYuMjMtMTYuMzQtNi4yMy0yMi41OCAwTDQuNjggMTI1LjdjLTYuMjMgNi4yMy02LjIzIDE2LjM0IDAgMjIuNThMMTEyLjQgMjU2IDQuNjggMzYzLjcyYy02LjIzIDYuMjMtNi4yMyAxNi4zNCAwIDIyLjU4bDI1LjAzIDI1LjAzYzYuMjMgNi4yMyAxNi4zNCA2LjIzIDIyLjU4IDBMMTYwIDMwMy42bDEwNy43MiAxMDcuNzJjNi4yMyA2LjIzIDE2LjM0IDYuMjMgMjIuNTggMGwyNS4wMy0yNS4wM2M2LjIzLTYuMjMgNi4yMy0xNi4zNCAwLTIyLjU4TDIwNy42IDI1NnonLyUzRSUzQy9zdmclM0VcXFwiKTt0cmFuc2l0aW9uOi4zc30ubXVsdGlzZWxlY3QtY2FyZXQsLm11bHRpc2VsZWN0LWNsZWFyLWljb257aGVpZ2h0OjEuMTI1cmVtOy13ZWJraXQtbWFzay1wb3NpdGlvbjpjZW50ZXI7bWFzay1wb3NpdGlvbjpjZW50ZXI7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW47bWFzay1zaXplOmNvbnRhaW47d2lkdGg6LjYyNXJlbX0ubXVsdGlzZWxlY3QtY2FyZXR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tcy1jYXJldC1jb2xvciwjOTk5KTtmbGV4LWdyb3c6MDtmbGV4LXNocmluazowO21hcmdpbjowIHZhcigtLW1zLXB4LC44NzVyZW0pIDAgMDstd2Via2l0LW1hc2staW1hZ2U6dXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0Nzdmcgdmlld0JveD0nMCAwIDMyMCA1MTInIGZpbGw9J2N1cnJlbnRDb2xvcicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTMxLjMgMTkyaDI1Ny4zYzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDE3NC4xIDM1NC44Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMEwxNy4yIDIyNi4xQzQuNiAyMTMuNSAxMy41IDE5MiAzMS4zIDE5MnonLyUzRSUzQy9zdmclM0VcXFwiKTttYXNrLWltYWdlOnVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMjAgNTEyJyBmaWxsPSdjdXJyZW50Q29sb3InIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00zMS4zIDE5MmgyNTcuM2MxNy44IDAgMjYuNyAyMS41IDE0LjEgMzQuMUwxNzQuMSAzNTQuOGMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBMMTcuMiAyMjYuMUM0LjYgMjEzLjUgMTMuNSAxOTIgMzEuMyAxOTJ6Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zczt6LWluZGV4OjEwfS5tdWx0aXNlbGVjdC1jYXJldC5pcy1vcGVue3BvaW50ZXItZXZlbnRzOmF1dG87dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5tdWx0aXNlbGVjdC1kcm9wZG93bnstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtiYWNrZ3JvdW5kOnZhcigtLW1zLWRyb3Bkb3duLWJnLCNmZmYpO2JvcmRlcjp2YXIoLS1tcy1kcm9wZG93bi1ib3JkZXItd2lkdGgsMXB4KSBzb2xpZCB2YXIoLS1tcy1kcm9wZG93bi1ib3JkZXItY29sb3IsI2QxZDVkYik7Ym9yZGVyLXJhZGl1czowIDAgdmFyKC0tbXMtZHJvcGRvd24tcmFkaXVzLDRweCkgdmFyKC0tbXMtZHJvcGRvd24tcmFkaXVzLDRweCk7Ym90dG9tOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtsZWZ0OmNhbGModmFyKC0tbXMtYm9yZGVyLXdpZHRoLCAxcHgpKi0xKTttYXJnaW4tdG9wOmNhbGModmFyKC0tbXMtYm9yZGVyLXdpZHRoLCAxcHgpKi0xKTttYXgtaGVpZ2h0OjE1cmVtO21heC1oZWlnaHQ6dmFyKC0tbXMtbWF4LWhlaWdodCwxMHJlbSk7b3V0bGluZTpub25lO292ZXJmbG93LXk6c2Nyb2xsO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OmNhbGModmFyKC0tbXMtYm9yZGVyLXdpZHRoLCAxcHgpKi0xKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTt6LWluZGV4OjEwMH0ubXVsdGlzZWxlY3QtZHJvcGRvd24uaXMtdG9we2JvcmRlci1yYWRpdXM6dmFyKC0tbXMtZHJvcGRvd24tcmFkaXVzLDRweCkgdmFyKC0tbXMtZHJvcGRvd24tcmFkaXVzLDRweCkgMCAwO2JvdHRvbTphdXRvO3RvcDp2YXIoLS1tcy1ib3JkZXItd2lkdGgsMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSl9Lm11bHRpc2VsZWN0LWRyb3Bkb3duLmlzLWhpZGRlbntkaXNwbGF5Om5vbmV9Lm11bHRpc2VsZWN0LW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS5tdWx0aXNlbGVjdC1ncm91cHttYXJnaW46MDtwYWRkaW5nOjB9Lm11bHRpc2VsZWN0LWdyb3VwLWxhYmVse2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLW1zLWdyb3VwLWxhYmVsLWJnLCNlNWU3ZWIpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS1tcy1ncm91cC1sYWJlbC1jb2xvciwjMzc0MTUxKTtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2xpbmUtaGVpZ2h0OnZhcigtLW1zLWdyb3VwLWxhYmVsLWxpbmUtaGVpZ2h0LDEuMzc1KTtwYWRkaW5nOnZhcigtLW1zLWdyb3VwLWxhYmVsLXB5LC4zcmVtKSB2YXIoLS1tcy1ncm91cC1sYWJlbC1weCwuNzVyZW0pO3RleHQtYWxpZ246bGVmdDt0ZXh0LWRlY29yYXRpb246bm9uZX0ubXVsdGlzZWxlY3QtZ3JvdXAtbGFiZWwuaXMtcG9pbnRhYmxle2N1cnNvcjpwb2ludGVyfS5tdWx0aXNlbGVjdC1ncm91cC1sYWJlbC5pcy1wb2ludGVke2JhY2tncm91bmQ6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtYmctcG9pbnRlZCwjZDFkNWRiKTtjb2xvcjp2YXIoLS1tcy1ncm91cC1sYWJlbC1jb2xvci1wb2ludGVkLCMzNzQxNTEpfS5tdWx0aXNlbGVjdC1ncm91cC1sYWJlbC5pcy1zZWxlY3RlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLWdyb3VwLWxhYmVsLWJnLXNlbGVjdGVkLCMwNTk2NjkpO2NvbG9yOnZhcigtLW1zLWdyb3VwLWxhYmVsLWNvbG9yLXNlbGVjdGVkLCNmZmYpfS5tdWx0aXNlbGVjdC1ncm91cC1sYWJlbC5pcy1kaXNhYmxlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLWdyb3VwLWxhYmVsLWJnLWRpc2FibGVkLCNmM2Y0ZjYpO2NvbG9yOnZhcigtLW1zLWdyb3VwLWxhYmVsLWNvbG9yLWRpc2FibGVkLCNkMWQ1ZGIpO2N1cnNvcjpub3QtYWxsb3dlZH0ubXVsdGlzZWxlY3QtZ3JvdXAtbGFiZWwuaXMtc2VsZWN0ZWQuaXMtcG9pbnRlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLWdyb3VwLWxhYmVsLWJnLXNlbGVjdGVkLXBvaW50ZWQsIzBjOWU3MCk7Y29sb3I6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtY29sb3Itc2VsZWN0ZWQtcG9pbnRlZCwjZmZmKX0ubXVsdGlzZWxlY3QtZ3JvdXAtbGFiZWwuaXMtc2VsZWN0ZWQuaXMtZGlzYWJsZWR7YmFja2dyb3VuZDp2YXIoLS1tcy1ncm91cC1sYWJlbC1iZy1zZWxlY3RlZC1kaXNhYmxlZCwjNzVjZmIxKTtjb2xvcjp2YXIoLS1tcy1ncm91cC1sYWJlbC1jb2xvci1zZWxlY3RlZC1kaXNhYmxlZCwjZDFmYWU1KX0ubXVsdGlzZWxlY3QtZ3JvdXAtb3B0aW9uc3ttYXJnaW46MDtwYWRkaW5nOjB9Lm11bHRpc2VsZWN0LW9wdGlvbnthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6dmFyKC0tbXMtb3B0aW9uLWZvbnQtc2l6ZSwxcmVtKTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtsaW5lLWhlaWdodDp2YXIoLS1tcy1vcHRpb24tbGluZS1oZWlnaHQsMS4zNzUpO3BhZGRpbmc6dmFyKC0tbXMtb3B0aW9uLXB5LC41cmVtKSB2YXIoLS1tcy1vcHRpb24tcHgsLjc1cmVtKTt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm11bHRpc2VsZWN0LW9wdGlvbi5pcy1wb2ludGVke2JhY2tncm91bmQ6dmFyKC0tbXMtb3B0aW9uLWJnLXBvaW50ZWQsI2YzZjRmNik7Y29sb3I6dmFyKC0tbXMtb3B0aW9uLWNvbG9yLXBvaW50ZWQsIzFmMjkzNyl9Lm11bHRpc2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLW9wdGlvbi1iZy1zZWxlY3RlZCwjMTBiOTgxKTtjb2xvcjp2YXIoLS1tcy1vcHRpb24tY29sb3Itc2VsZWN0ZWQsI2ZmZil9Lm11bHRpc2VsZWN0LW9wdGlvbi5pcy1kaXNhYmxlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLW9wdGlvbi1iZy1kaXNhYmxlZCwjZmZmKTtjb2xvcjp2YXIoLS1tcy1vcHRpb24tY29sb3ItZGlzYWJsZWQsI2QxZDVkYik7Y3Vyc29yOm5vdC1hbGxvd2VkfS5tdWx0aXNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQuaXMtcG9pbnRlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLW9wdGlvbi1iZy1zZWxlY3RlZC1wb2ludGVkLCMyNmMwOGUpO2NvbG9yOnZhcigtLW1zLW9wdGlvbi1jb2xvci1zZWxlY3RlZC1wb2ludGVkLCNmZmYpfS5tdWx0aXNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQuaXMtZGlzYWJsZWR7YmFja2dyb3VuZDp2YXIoLS1tcy1vcHRpb24tYmctc2VsZWN0ZWQtZGlzYWJsZWQsIzg3ZGNjMCk7Y29sb3I6dmFyKC0tbXMtb3B0aW9uLWNvbG9yLXNlbGVjdGVkLWRpc2FibGVkLCNkMWZhZTUpfS5tdWx0aXNlbGVjdC1uby1vcHRpb25zLC5tdWx0aXNlbGVjdC1uby1yZXN1bHRze2NvbG9yOnZhcigtLW1zLWVtcHR5LWNvbG9yLCM0YjU1NjMpO3BhZGRpbmc6dmFyKC0tbXMtb3B0aW9uLXB5LC41cmVtKSB2YXIoLS1tcy1vcHRpb24tcHgsLjc1cmVtKX0ubXVsdGlzZWxlY3QtZmFrZS1pbnB1dHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowO2JvdHRvbTotMXB4O2ZvbnQtc2l6ZTowO2hlaWdodDoxcHg7bGVmdDowO291dGxpbmU6bm9uZTtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt3aWR0aDoxMDAlfS5tdWx0aXNlbGVjdC1mYWtlLWlucHV0OmFjdGl2ZSwubXVsdGlzZWxlY3QtZmFrZS1pbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmV9Lm11bHRpc2VsZWN0LXNwYWNlcntkaXNwbGF5Om5vbmV9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdC1tdWx0aXBsZS1sYWJlbCxbZGlyPXJ0bF0gLm11bHRpc2VsZWN0LXBsYWNlaG9sZGVyLFtkaXI9cnRsXSAubXVsdGlzZWxlY3Qtc2luZ2xlLWxhYmVse2xlZnQ6YXV0bztwYWRkaW5nLWxlZnQ6Y2FsYygxLjI1cmVtICsgdmFyKC0tbXMtcHgsIC44NzVyZW0pKjMpO3BhZGRpbmctcmlnaHQ6dmFyKC0tbXMtcHgsLjg3NXJlbSk7cmlnaHQ6MH1bZGlyPXJ0bF0gLm11bHRpc2VsZWN0LXNlYXJjaHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OnZhcigtLW1zLXB4LC44NzVyZW0pfVtkaXI9cnRsXSAubXVsdGlzZWxlY3QtdGFnc3twYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OnZhcigtLW1zLXB5LC41cmVtKX1bZGlyPXJ0bF0gLm11bHRpc2VsZWN0LXRhZ3ttYXJnaW4tbGVmdDp2YXIoLS1tcy10YWctbXgsLjI1cmVtKTttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nOnZhcigtLW1zLXRhZy1weSwuMTI1cmVtKSB2YXIoLS1tcy10YWctcHgsLjVyZW0pIHZhcigtLW1zLXRhZy1weSwuMTI1cmVtKSAwfVtkaXI9cnRsXSAubXVsdGlzZWxlY3QtdGFnLmlzLWRpc2FibGVke3BhZGRpbmctbGVmdDp2YXIoLS1tcy10YWctcHgsLjVyZW0pfVtkaXI9cnRsXSAubXVsdGlzZWxlY3QtY2FyZXQsW2Rpcj1ydGxdIC5tdWx0aXNlbGVjdC1zcGlubmVye21hcmdpbjowIDAgMCB2YXIoLS1tcy1weCwuODc1cmVtKX1bZGlyPXJ0bF0gLm11bHRpc2VsZWN0LWNsZWFye3BhZGRpbmc6MCAwIDAgdmFyKC0tbXMtcHgsLjg3NXJlbSl9QC13ZWJraXQta2V5ZnJhbWVzIG11bHRpc2VsZWN0LXNwaW57MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19QGtleWZyYW1lcyBtdWx0aXNlbGVjdC1zcGluezAle3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9AdnVlZm9ybS9t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QixjQUFjLENBQUMsa0NBQWtDLENBQUMsNEJBQTRCLGNBQWMsQ0FBQyxnQ0FBZ0MsQ0FBQywyQkFBMkIsbUNBQW1DLENBQUMsY0FBYyxDQUFDLGtGQUFrRixDQUFDLHVDQUF1QyxtQ0FBbUMsQ0FBQyw0REFBNEQsaUNBQWlDLENBQUMsNkJBQTZCLGtDQUFrQyxDQUFDLG9DQUFvQyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLHVCQUF1QixDQUFDXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5tdWx0aXNlbGVjdHthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS1tcy1iZywjZmZmKTtib3JkZXI6dmFyKC0tbXMtYm9yZGVyLXdpZHRoLDFweCkgc29saWQgdmFyKC0tbXMtYm9yZGVyLWNvbG9yLCNkMWQ1ZGIpO2JvcmRlci1yYWRpdXM6dmFyKC0tbXMtcmFkaXVzLDRweCk7Ym94LXNpemluZzpib3JkZXItYm94O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6dmFyKC0tbXMtZm9udC1zaXplLDFyZW0pO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW46MCBhdXRvO21pbi1oZWlnaHQ6Y2FsYyh2YXIoLS1tcy1ib3JkZXItd2lkdGgsIDFweCkqMiArIHZhcigtLW1zLWZvbnQtc2l6ZSwgMXJlbSkqdmFyKC0tbXMtbGluZS1oZWlnaHQsIDEuMzc1KSArIHZhcigtLW1zLXB5LCAuNXJlbSkqMik7b3V0bGluZTpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9Lm11bHRpc2VsZWN0LmlzLW9wZW57Ym9yZGVyLXJhZGl1czp2YXIoLS1tcy1yYWRpdXMsNHB4KSB2YXIoLS1tcy1yYWRpdXMsNHB4KSAwIDB9Lm11bHRpc2VsZWN0LmlzLW9wZW4tdG9we2JvcmRlci1yYWRpdXM6MCAwIHZhcigtLW1zLXJhZGl1cyw0cHgpIHZhcigtLW1zLXJhZGl1cyw0cHgpfS5tdWx0aXNlbGVjdC5pcy1kaXNhYmxlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLWJnLWRpc2FibGVkLCNmM2Y0ZjYpO2N1cnNvcjpkZWZhdWx0fS5tdWx0aXNlbGVjdC5pcy1hY3RpdmV7Ym94LXNoYWRvdzowIDAgMCB2YXIoLS1tcy1yaW5nLXdpZHRoLDNweCkgdmFyKC0tbXMtcmluZy1jb2xvcixyZ2JhKDE2LDE4NSwxMjksLjE4OCkpfS5tdWx0aXNlbGVjdC1tdWx0aXBsZS1sYWJlbCwubXVsdGlzZWxlY3QtcGxhY2Vob2xkZXIsLm11bHRpc2VsZWN0LXNpbmdsZS1sYWJlbHthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2xlZnQ6MDtsaW5lLWhlaWdodDp2YXIoLS1tcy1saW5lLWhlaWdodCwxLjM3NSk7bWF4LXdpZHRoOjEwMCU7cGFkZGluZy1sZWZ0OnZhcigtLW1zLXB4LC44NzVyZW0pO3BhZGRpbmctcmlnaHQ6Y2FsYygxLjI1cmVtICsgdmFyKC0tbXMtcHgsIC44NzVyZW0pKjMpO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9Lm11bHRpc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLW1zLXBsYWNlaG9sZGVyLWNvbG9yLCM5Y2EzYWYpfS5tdWx0aXNlbGVjdC1zaW5nbGUtbGFiZWwtdGV4dHtkaXNwbGF5OmJsb2NrO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ubXVsdGlzZWxlY3Qtc2VhcmNoey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kOnZhcigtLW1zLWJnLCNmZmYpO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6dmFyKC0tbXMtcmFkaXVzLDRweCk7Ym90dG9tOjA7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7aGVpZ2h0OjEwMCU7bGVmdDowO291dGxpbmU6bm9uZTtwYWRkaW5nLWxlZnQ6dmFyKC0tbXMtcHgsLjg3NXJlbSk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt3aWR0aDoxMDAlfS5tdWx0aXNlbGVjdC1zZWFyY2g6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLm11bHRpc2VsZWN0LXNlYXJjaDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwubXVsdGlzZWxlY3Qtc2VhcmNoOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiwubXVsdGlzZWxlY3Qtc2VhcmNoOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm11bHRpc2VsZWN0LXRhZ3N7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO2ZsZXgtd3JhcDp3cmFwO21hcmdpbjp2YXIoLS1tcy10YWctbXksLjI1cmVtKSAwIDA7cGFkZGluZy1sZWZ0OnZhcigtLW1zLXB5LC41cmVtKX0ubXVsdGlzZWxlY3QtdGFne2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLW1zLXRhZy1iZywjMTBiOTgxKTtib3JkZXItcmFkaXVzOnZhcigtLW1zLXRhZy1yYWRpdXMsNHB4KTtjb2xvcjp2YXIoLS1tcy10YWctY29sb3IsI2ZmZik7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZTp2YXIoLS1tcy10YWctZm9udC1zaXplLC44NzVyZW0pO2ZvbnQtd2VpZ2h0OnZhcigtLW1zLXRhZy1mb250LXdlaWdodCw2MDApO2xpbmUtaGVpZ2h0OnZhcigtLW1zLXRhZy1saW5lLWhlaWdodCwxLjI1cmVtKTttYXJnaW4tYm90dG9tOnZhcigtLW1zLXRhZy1teSwuMjVyZW0pO21hcmdpbi1yaWdodDp2YXIoLS1tcy10YWctbXgsLjI1cmVtKTtwYWRkaW5nOnZhcigtLW1zLXRhZy1weSwuMTI1cmVtKSAwIHZhcigtLW1zLXRhZy1weSwuMTI1cmVtKSB2YXIoLS1tcy10YWctcHgsLjVyZW0pO3doaXRlLXNwYWNlOm5vd3JhcH0ubXVsdGlzZWxlY3QtdGFnLmlzLWRpc2FibGVke2JhY2tncm91bmQ6dmFyKC0tbXMtdGFnLWJnLWRpc2FibGVkLCM5Y2EzYWYpO2NvbG9yOnZhcigtLW1zLXRhZy1jb2xvci1kaXNhYmxlZCwjZmZmKTtwYWRkaW5nLXJpZ2h0OnZhcigtLW1zLXRhZy1weCwuNXJlbSl9Lm11bHRpc2VsZWN0LXRhZy1yZW1vdmV7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6dmFyKC0tbXMtdGFnLXJlbW92ZS1yYWRpdXMsNHB4KTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46dmFyKC0tbXMtdGFnLXJlbW92ZS1teSwwKSB2YXIoLS1tcy10YWctcmVtb3ZlLW14LC4xMjVyZW0pO3BhZGRpbmc6dmFyKC0tbXMtdGFnLXJlbW92ZS1weSwuMjVyZW0pIHZhcigtLW1zLXRhZy1yZW1vdmUtcHgsLjI1cmVtKX0ubXVsdGlzZWxlY3QtdGFnLXJlbW92ZTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA2Myl9Lm11bHRpc2VsZWN0LXRhZy1yZW1vdmUtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6Ljc1cmVtOy13ZWJraXQtbWFzay1pbWFnZTp1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB2aWV3Qm94PScwIDAgMzIwIDUxMicgZmlsbD0nY3VycmVudENvbG9yJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdtMjA3LjYgMjU2IDEwNy43Mi0xMDcuNzJjNi4yMy02LjIzIDYuMjMtMTYuMzQgMC0yMi41OGwtMjUuMDMtMjUuMDNjLTYuMjMtNi4yMy0xNi4zNC02LjIzLTIyLjU4IDBMMTYwIDIwOC40IDUyLjI4IDEwMC42OGMtNi4yMy02LjIzLTE2LjM0LTYuMjMtMjIuNTggMEw0LjY4IDEyNS43Yy02LjIzIDYuMjMtNi4yMyAxNi4zNCAwIDIyLjU4TDExMi40IDI1NiA0LjY4IDM2My43MmMtNi4yMyA2LjIzLTYuMjMgMTYuMzQgMCAyMi41OGwyNS4wMyAyNS4wM2M2LjIzIDYuMjMgMTYuMzQgNi4yMyAyMi41OCAwTDE2MCAzMDMuNmwxMDcuNzIgMTA3LjcyYzYuMjMgNi4yMyAxNi4zNCA2LjIzIDIyLjU4IDBsMjUuMDMtMjUuMDNjNi4yMy02LjIzIDYuMjMtMTYuMzQgMC0yMi41OEwyMDcuNiAyNTZ6Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7bWFzay1pbWFnZTp1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB2aWV3Qm94PScwIDAgMzIwIDUxMicgZmlsbD0nY3VycmVudENvbG9yJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdtMjA3LjYgMjU2IDEwNy43Mi0xMDcuNzJjNi4yMy02LjIzIDYuMjMtMTYuMzQgMC0yMi41OGwtMjUuMDMtMjUuMDNjLTYuMjMtNi4yMy0xNi4zNC02LjIzLTIyLjU4IDBMMTYwIDIwOC40IDUyLjI4IDEwMC42OGMtNi4yMy02LjIzLTE2LjM0LTYuMjMtMjIuNTggMEw0LjY4IDEyNS43Yy02LjIzIDYuMjMtNi4yMyAxNi4zNCAwIDIyLjU4TDExMi40IDI1NiA0LjY4IDM2My43MmMtNi4yMyA2LjIzLTYuMjMgMTYuMzQgMCAyMi41OGwyNS4wMyAyNS4wM2M2LjIzIDYuMjMgMTYuMzQgNi4yMyAyMi41OCAwTDE2MCAzMDMuNmwxMDcuNzIgMTA3LjcyYzYuMjMgNi4yMyAxNi4zNCA2LjIzIDIyLjU4IDBsMjUuMDMtMjUuMDNjNi4yMy02LjIzIDYuMjMtMTYuMzQgMC0yMi41OEwyMDcuNiAyNTZ6Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOmNlbnRlcjttYXNrLXBvc2l0aW9uOmNlbnRlcjstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdDttYXNrLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbjttYXNrLXNpemU6Y29udGFpbjtvcGFjaXR5Oi44O3dpZHRoOi43NXJlbX0ubXVsdGlzZWxlY3QtdGFncy1zZWFyY2gtd3JhcHBlcntkaXNwbGF5OmlubGluZS1ibG9jaztmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO2hlaWdodDoxMDAlO21hcmdpbjowIHZhcigtLW1zLXRhZy1teCw0cHgpIHZhcigtLW1zLXRhZy1teSw0cHgpO3Bvc2l0aW9uOnJlbGF0aXZlfS5tdWx0aXNlbGVjdC10YWdzLXNlYXJjaC1jb3B5e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxcHg7dmlzaWJpbGl0eTpoaWRkZW47d2hpdGUtc3BhY2U6cHJlLXdyYXA7d2lkdGg6MTAwJX0ubXVsdGlzZWxlY3QtdGFncy1zZWFyY2h7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JvcmRlcjowO2JvdHRvbTowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2xlZnQ6MDtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7d2lkdGg6MTAwJX0ubXVsdGlzZWxlY3QtdGFncy1zZWFyY2g6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLm11bHRpc2VsZWN0LXRhZ3Mtc2VhcmNoOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLC5tdWx0aXNlbGVjdC10YWdzLXNlYXJjaDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLm11bHRpc2VsZWN0LXRhZ3Mtc2VhcmNoOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm11bHRpc2VsZWN0LWluaWZpdGV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6Y2FsYyh2YXIoLS1tcy1ib3JkZXItd2lkdGgsIDFweCkqMiArIHZhcigtLW1zLWZvbnQtc2l6ZSwgMXJlbSkqdmFyKC0tbXMtbGluZS1oZWlnaHQsIDEuMzc1KSArIHZhcigtLW1zLXB5LCAuNXJlbSkqMik7d2lkdGg6MTAwJX0ubXVsdGlzZWxlY3QtaW5pZml0ZS1zcGlubmVyLC5tdWx0aXNlbGVjdC1zcGlubmVyey13ZWJraXQtYW5pbWF0aW9uOm11bHRpc2VsZWN0LXNwaW4gMXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjptdWx0aXNlbGVjdC1zcGluIDFzIGxpbmVhciBpbmZpbml0ZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1zLXNwaW5uZXItY29sb3IsIzEwYjk4MSk7ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDtoZWlnaHQ6MXJlbTstd2Via2l0LW1hc2staW1hZ2U6dXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0Nzdmcgdmlld0JveD0nMCAwIDUxMiA1MTInIGZpbGw9J2N1cnJlbnRDb2xvcicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nbTQ1Ni40MzMgMzcxLjcyLTI3Ljc5LTE2LjA0NWMtNy4xOTItNC4xNTItMTAuMDUyLTEzLjEzNi02LjQ4Ny0yMC42MzYgMjUuODItNTQuMzI4IDIzLjU2Ni0xMTguNjAyLTYuNzY4LTE3MS4wMy0zMC4yNjUtNTIuNTI5LTg0LjgwMi04Ni42MjEtMTQ0Ljc2LTkxLjQyNEMyNjIuMzUgNzEuOTIyIDI1NiA2NC45NTMgMjU2IDU2LjY0OVYyNC41NmMwLTkuMzEgNy45MTYtMTYuNjA5IDE3LjIwNC0xNS45NiA4MS43OTUgNS43MTcgMTU2LjQxMiA1MS45MDIgMTk3LjYxMSAxMjMuNDA4IDQxLjMwMSA3MS4zODUgNDMuOTkgMTU5LjA5NiA4LjA0MiAyMzIuNzkyLTQuMDgyIDguMzY5LTE0LjM2MSAxMS41NzUtMjIuNDI0IDYuOTJ6Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7bWFzay1pbWFnZTp1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB2aWV3Qm94PScwIDAgNTEyIDUxMicgZmlsbD0nY3VycmVudENvbG9yJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdtNDU2LjQzMyAzNzEuNzItMjcuNzktMTYuMDQ1Yy03LjE5Mi00LjE1Mi0xMC4wNTItMTMuMTM2LTYuNDg3LTIwLjYzNiAyNS44Mi01NC4zMjggMjMuNTY2LTExOC42MDItNi43NjgtMTcxLjAzLTMwLjI2NS01Mi41MjktODQuODAyLTg2LjYyMS0xNDQuNzYtOTEuNDI0QzI2Mi4zNSA3MS45MjIgMjU2IDY0Ljk1MyAyNTYgNTYuNjQ5VjI0LjU2YzAtOS4zMSA3LjkxNi0xNi42MDkgMTcuMjA0LTE1Ljk2IDgxLjc5NSA1LjcxNyAxNTYuNDEyIDUxLjkwMiAxOTcuNjExIDEyMy40MDggNDEuMzAxIDcxLjM4NSA0My45OSAxNTkuMDk2IDguMDQyIDIzMi43OTItNC4wODIgOC4zNjktMTQuMzYxIDExLjU3NS0yMi40MjQgNi45MnonLyUzRSUzQy9zdmclM0VcXFwiKTstd2Via2l0LW1hc2stcG9zaXRpb246Y2VudGVyO21hc2stcG9zaXRpb246Y2VudGVyOy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0O21hc2stcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluO21hc2stc2l6ZTpjb250YWluO3dpZHRoOjFyZW07ei1pbmRleDoxMH0ubXVsdGlzZWxlY3Qtc3Bpbm5lcnttYXJnaW46MCB2YXIoLS1tcy1weCwuODc1cmVtKSAwIDB9Lm11bHRpc2VsZWN0LWNsZWFye2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MDtmbGV4LXNocmluazowO29wYWNpdHk6MTtwYWRkaW5nOjAgdmFyKC0tbXMtcHgsLjg3NXJlbSkgMCAwO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246LjNzO3otaW5kZXg6MTB9Lm11bHRpc2VsZWN0LWNsZWFyOmhvdmVyIC5tdWx0aXNlbGVjdC1jbGVhci1pY29ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXMtY2xlYXItY29sb3ItaG92ZXIsIzAwMCl9Lm11bHRpc2VsZWN0LWNsZWFyLWljb257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tcy1jbGVhci1jb2xvciwjOTk5KTtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LW1hc2staW1hZ2U6dXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0Nzdmcgdmlld0JveD0nMCAwIDMyMCA1MTInIGZpbGw9J2N1cnJlbnRDb2xvcicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nbTIwNy42IDI1NiAxMDcuNzItMTA3LjcyYzYuMjMtNi4yMyA2LjIzLTE2LjM0IDAtMjIuNThsLTI1LjAzLTI1LjAzYy02LjIzLTYuMjMtMTYuMzQtNi4yMy0yMi41OCAwTDE2MCAyMDguNCA1Mi4yOCAxMDAuNjhjLTYuMjMtNi4yMy0xNi4zNC02LjIzLTIyLjU4IDBMNC42OCAxMjUuN2MtNi4yMyA2LjIzLTYuMjMgMTYuMzQgMCAyMi41OEwxMTIuNCAyNTYgNC42OCAzNjMuNzJjLTYuMjMgNi4yMy02LjIzIDE2LjM0IDAgMjIuNThsMjUuMDMgMjUuMDNjNi4yMyA2LjIzIDE2LjM0IDYuMjMgMjIuNTggMEwxNjAgMzAzLjZsMTA3LjcyIDEwNy43MmM2LjIzIDYuMjMgMTYuMzQgNi4yMyAyMi41OCAwbDI1LjAzLTI1LjAzYzYuMjMtNi4yMyA2LjIzLTE2LjM0IDAtMjIuNThMMjA3LjYgMjU2eicvJTNFJTNDL3N2ZyUzRVxcXCIpO21hc2staW1hZ2U6dXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0Nzdmcgdmlld0JveD0nMCAwIDMyMCA1MTInIGZpbGw9J2N1cnJlbnRDb2xvcicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nbTIwNy42IDI1NiAxMDcuNzItMTA3LjcyYzYuMjMtNi4yMyA2LjIzLTE2LjM0IDAtMjIuNThsLTI1LjAzLTI1LjAzYy02LjIzLTYuMjMtMTYuMzQtNi4yMy0yMi41OCAwTDE2MCAyMDguNCA1Mi4yOCAxMDAuNjhjLTYuMjMtNi4yMy0xNi4zNC02LjIzLTIyLjU4IDBMNC42OCAxMjUuN2MtNi4yMyA2LjIzLTYuMjMgMTYuMzQgMCAyMi41OEwxMTIuNCAyNTYgNC42OCAzNjMuNzJjLTYuMjMgNi4yMy02LjIzIDE2LjM0IDAgMjIuNThsMjUuMDMgMjUuMDNjNi4yMyA2LjIzIDE2LjM0IDYuMjMgMjIuNTggMEwxNjAgMzAzLjZsMTA3LjcyIDEwNy43MmM2LjIzIDYuMjMgMTYuMzQgNi4yMyAyMi41OCAwbDI1LjAzLTI1LjAzYzYuMjMtNi4yMyA2LjIzLTE2LjM0IDAtMjIuNThMMjA3LjYgMjU2eicvJTNFJTNDL3N2ZyUzRVxcXCIpO3RyYW5zaXRpb246LjNzfS5tdWx0aXNlbGVjdC1jYXJldCwubXVsdGlzZWxlY3QtY2xlYXItaWNvbntoZWlnaHQ6MS4xMjVyZW07LXdlYmtpdC1tYXNrLXBvc2l0aW9uOmNlbnRlcjttYXNrLXBvc2l0aW9uOmNlbnRlcjstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdDttYXNrLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbjttYXNrLXNpemU6Y29udGFpbjt3aWR0aDouNjI1cmVtfS5tdWx0aXNlbGVjdC1jYXJldHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1zLWNhcmV0LWNvbG9yLCM5OTkpO2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjA7bWFyZ2luOjAgdmFyKC0tbXMtcHgsLjg3NXJlbSkgMCAwOy13ZWJraXQtbWFzay1pbWFnZTp1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB2aWV3Qm94PScwIDAgMzIwIDUxMicgZmlsbD0nY3VycmVudENvbG9yJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMzEuMyAxOTJoMjU3LjNjMTcuOCAwIDI2LjcgMjEuNSAxNC4xIDM0LjFMMTc0LjEgMzU0LjhjLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwTDE3LjIgMjI2LjFDNC42IDIxMy41IDEzLjUgMTkyIDMxLjMgMTkyeicvJTNFJTNDL3N2ZyUzRVxcXCIpO21hc2staW1hZ2U6dXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0Nzdmcgdmlld0JveD0nMCAwIDMyMCA1MTInIGZpbGw9J2N1cnJlbnRDb2xvcicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTMxLjMgMTkyaDI1Ny4zYzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDE3NC4xIDM1NC44Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMEwxNy4yIDIyNi4xQzQuNiAyMTMuNSAxMy41IDE5MiAzMS4zIDE5MnonLyUzRSUzQy9zdmclM0VcXFwiKTtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzO3otaW5kZXg6MTB9Lm11bHRpc2VsZWN0LWNhcmV0LmlzLW9wZW57cG9pbnRlci1ldmVudHM6YXV0bzt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9Lm11bHRpc2VsZWN0LWRyb3Bkb3duey13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2JhY2tncm91bmQ6dmFyKC0tbXMtZHJvcGRvd24tYmcsI2ZmZik7Ym9yZGVyOnZhcigtLW1zLWRyb3Bkb3duLWJvcmRlci13aWR0aCwxcHgpIHNvbGlkIHZhcigtLW1zLWRyb3Bkb3duLWJvcmRlci1jb2xvciwjZDFkNWRiKTtib3JkZXItcmFkaXVzOjAgMCB2YXIoLS1tcy1kcm9wZG93bi1yYWRpdXMsNHB4KSB2YXIoLS1tcy1kcm9wZG93bi1yYWRpdXMsNHB4KTtib3R0b206MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2xlZnQ6Y2FsYyh2YXIoLS1tcy1ib3JkZXItd2lkdGgsIDFweCkqLTEpO21hcmdpbi10b3A6Y2FsYyh2YXIoLS1tcy1ib3JkZXItd2lkdGgsIDFweCkqLTEpO21heC1oZWlnaHQ6MTVyZW07bWF4LWhlaWdodDp2YXIoLS1tcy1tYXgtaGVpZ2h0LDEwcmVtKTtvdXRsaW5lOm5vbmU7b3ZlcmZsb3cteTpzY3JvbGw7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6Y2FsYyh2YXIoLS1tcy1ib3JkZXItd2lkdGgsIDFweCkqLTEpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO3otaW5kZXg6MTAwfS5tdWx0aXNlbGVjdC1kcm9wZG93bi5pcy10b3B7Ym9yZGVyLXJhZGl1czp2YXIoLS1tcy1kcm9wZG93bi1yYWRpdXMsNHB4KSB2YXIoLS1tcy1kcm9wZG93bi1yYWRpdXMsNHB4KSAwIDA7Ym90dG9tOmF1dG87dG9wOnZhcigtLW1zLWJvcmRlci13aWR0aCwxcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKX0ubXVsdGlzZWxlY3QtZHJvcGRvd24uaXMtaGlkZGVue2Rpc3BsYXk6bm9uZX0ubXVsdGlzZWxlY3Qtb3B0aW9uc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9Lm11bHRpc2VsZWN0LWdyb3Vwe21hcmdpbjowO3BhZGRpbmc6MH0ubXVsdGlzZWxlY3QtZ3JvdXAtbGFiZWx7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtYmcsI2U1ZTdlYik7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigtLW1zLWdyb3VwLWxhYmVsLWNvbG9yLCMzNzQxNTEpO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7bGluZS1oZWlnaHQ6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtbGluZS1oZWlnaHQsMS4zNzUpO3BhZGRpbmc6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtcHksLjNyZW0pIHZhcigtLW1zLWdyb3VwLWxhYmVsLXB4LC43NXJlbSk7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lfS5tdWx0aXNlbGVjdC1ncm91cC1sYWJlbC5pcy1wb2ludGFibGV7Y3Vyc29yOnBvaW50ZXJ9Lm11bHRpc2VsZWN0LWdyb3VwLWxhYmVsLmlzLXBvaW50ZWR7YmFja2dyb3VuZDp2YXIoLS1tcy1ncm91cC1sYWJlbC1iZy1wb2ludGVkLCNkMWQ1ZGIpO2NvbG9yOnZhcigtLW1zLWdyb3VwLWxhYmVsLWNvbG9yLXBvaW50ZWQsIzM3NDE1MSl9Lm11bHRpc2VsZWN0LWdyb3VwLWxhYmVsLmlzLXNlbGVjdGVke2JhY2tncm91bmQ6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtYmctc2VsZWN0ZWQsIzA1OTY2OSk7Y29sb3I6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtY29sb3Itc2VsZWN0ZWQsI2ZmZil9Lm11bHRpc2VsZWN0LWdyb3VwLWxhYmVsLmlzLWRpc2FibGVke2JhY2tncm91bmQ6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtYmctZGlzYWJsZWQsI2YzZjRmNik7Y29sb3I6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtY29sb3ItZGlzYWJsZWQsI2QxZDVkYik7Y3Vyc29yOm5vdC1hbGxvd2VkfS5tdWx0aXNlbGVjdC1ncm91cC1sYWJlbC5pcy1zZWxlY3RlZC5pcy1wb2ludGVke2JhY2tncm91bmQ6dmFyKC0tbXMtZ3JvdXAtbGFiZWwtYmctc2VsZWN0ZWQtcG9pbnRlZCwjMGM5ZTcwKTtjb2xvcjp2YXIoLS1tcy1ncm91cC1sYWJlbC1jb2xvci1zZWxlY3RlZC1wb2ludGVkLCNmZmYpfS5tdWx0aXNlbGVjdC1ncm91cC1sYWJlbC5pcy1zZWxlY3RlZC5pcy1kaXNhYmxlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLWdyb3VwLWxhYmVsLWJnLXNlbGVjdGVkLWRpc2FibGVkLCM3NWNmYjEpO2NvbG9yOnZhcigtLW1zLWdyb3VwLWxhYmVsLWNvbG9yLXNlbGVjdGVkLWRpc2FibGVkLCNkMWZhZTUpfS5tdWx0aXNlbGVjdC1ncm91cC1vcHRpb25ze21hcmdpbjowO3BhZGRpbmc6MH0ubXVsdGlzZWxlY3Qtb3B0aW9ue2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZTp2YXIoLS1tcy1vcHRpb24tZm9udC1zaXplLDFyZW0pO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2xpbmUtaGVpZ2h0OnZhcigtLW1zLW9wdGlvbi1saW5lLWhlaWdodCwxLjM3NSk7cGFkZGluZzp2YXIoLS1tcy1vcHRpb24tcHksLjVyZW0pIHZhcigtLW1zLW9wdGlvbi1weCwuNzVyZW0pO3RleHQtYWxpZ246bGVmdDt0ZXh0LWRlY29yYXRpb246bm9uZX0ubXVsdGlzZWxlY3Qtb3B0aW9uLmlzLXBvaW50ZWR7YmFja2dyb3VuZDp2YXIoLS1tcy1vcHRpb24tYmctcG9pbnRlZCwjZjNmNGY2KTtjb2xvcjp2YXIoLS1tcy1vcHRpb24tY29sb3ItcG9pbnRlZCwjMWYyOTM3KX0ubXVsdGlzZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVke2JhY2tncm91bmQ6dmFyKC0tbXMtb3B0aW9uLWJnLXNlbGVjdGVkLCMxMGI5ODEpO2NvbG9yOnZhcigtLW1zLW9wdGlvbi1jb2xvci1zZWxlY3RlZCwjZmZmKX0ubXVsdGlzZWxlY3Qtb3B0aW9uLmlzLWRpc2FibGVke2JhY2tncm91bmQ6dmFyKC0tbXMtb3B0aW9uLWJnLWRpc2FibGVkLCNmZmYpO2NvbG9yOnZhcigtLW1zLW9wdGlvbi1jb2xvci1kaXNhYmxlZCwjZDFkNWRiKTtjdXJzb3I6bm90LWFsbG93ZWR9Lm11bHRpc2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZC5pcy1wb2ludGVke2JhY2tncm91bmQ6dmFyKC0tbXMtb3B0aW9uLWJnLXNlbGVjdGVkLXBvaW50ZWQsIzI2YzA4ZSk7Y29sb3I6dmFyKC0tbXMtb3B0aW9uLWNvbG9yLXNlbGVjdGVkLXBvaW50ZWQsI2ZmZil9Lm11bHRpc2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZC5pcy1kaXNhYmxlZHtiYWNrZ3JvdW5kOnZhcigtLW1zLW9wdGlvbi1iZy1zZWxlY3RlZC1kaXNhYmxlZCwjODdkY2MwKTtjb2xvcjp2YXIoLS1tcy1vcHRpb24tY29sb3Itc2VsZWN0ZWQtZGlzYWJsZWQsI2QxZmFlNSl9Lm11bHRpc2VsZWN0LW5vLW9wdGlvbnMsLm11bHRpc2VsZWN0LW5vLXJlc3VsdHN7Y29sb3I6dmFyKC0tbXMtZW1wdHktY29sb3IsIzRiNTU2Myk7cGFkZGluZzp2YXIoLS1tcy1vcHRpb24tcHksLjVyZW0pIHZhcigtLW1zLW9wdGlvbi1weCwuNzVyZW0pfS5tdWx0aXNlbGVjdC1mYWtlLWlucHV0e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7Ym90dG9tOi0xcHg7Zm9udC1zaXplOjA7aGVpZ2h0OjFweDtsZWZ0OjA7b3V0bGluZTpub25lO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3dpZHRoOjEwMCV9Lm11bHRpc2VsZWN0LWZha2UtaW5wdXQ6YWN0aXZlLC5tdWx0aXNlbGVjdC1mYWtlLWlucHV0OmZvY3Vze291dGxpbmU6bm9uZX0ubXVsdGlzZWxlY3Qtc3BhY2Vye2Rpc3BsYXk6bm9uZX1bZGlyPXJ0bF0gLm11bHRpc2VsZWN0LW11bHRpcGxlLWxhYmVsLFtkaXI9cnRsXSAubXVsdGlzZWxlY3QtcGxhY2Vob2xkZXIsW2Rpcj1ydGxdIC5tdWx0aXNlbGVjdC1zaW5nbGUtbGFiZWx7bGVmdDphdXRvO3BhZGRpbmctbGVmdDpjYWxjKDEuMjVyZW0gKyB2YXIoLS1tcy1weCwgLjg3NXJlbSkqMyk7cGFkZGluZy1yaWdodDp2YXIoLS1tcy1weCwuODc1cmVtKTtyaWdodDowfVtkaXI9cnRsXSAubXVsdGlzZWxlY3Qtc2VhcmNoe3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6dmFyKC0tbXMtcHgsLjg3NXJlbSl9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdC10YWdze3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6dmFyKC0tbXMtcHksLjVyZW0pfVtkaXI9cnRsXSAubXVsdGlzZWxlY3QtdGFne21hcmdpbi1sZWZ0OnZhcigtLW1zLXRhZy1teCwuMjVyZW0pO21hcmdpbi1yaWdodDowO3BhZGRpbmc6dmFyKC0tbXMtdGFnLXB5LC4xMjVyZW0pIHZhcigtLW1zLXRhZy1weCwuNXJlbSkgdmFyKC0tbXMtdGFnLXB5LC4xMjVyZW0pIDB9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdC10YWcuaXMtZGlzYWJsZWR7cGFkZGluZy1sZWZ0OnZhcigtLW1zLXRhZy1weCwuNXJlbSl9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdC1jYXJldCxbZGlyPXJ0bF0gLm11bHRpc2VsZWN0LXNwaW5uZXJ7bWFyZ2luOjAgMCAwIHZhcigtLW1zLXB4LC44NzVyZW0pfVtkaXI9cnRsXSAubXVsdGlzZWxlY3QtY2xlYXJ7cGFkZGluZzowIDAgMCB2YXIoLS1tcy1weCwuODc1cmVtKX1ALXdlYmtpdC1rZXlmcmFtZXMgbXVsdGlzZWxlY3Qtc3BpbnswJXt0cmFuc2Zvcm06cm90YXRlKDApfXRve3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1Aa2V5ZnJhbWVzIG11bHRpc2VsZWN0LXNwaW57MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19XCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKlxuICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuICBBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4qL1xuLy8gY3NzIGJhc2UgY29kZSwgaW5qZWN0ZWQgYnkgdGhlIGNzcy1sb2FkZXJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107IC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblxuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG5cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIHJldHVybiBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoY29udGVudCwgXCJ9XCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9KS5qb2luKFwiXCIpO1xuICB9OyAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuXG5cbiAgbGlzdC5pID0gZnVuY3Rpb24gKG1vZHVsZXMsIG1lZGlhUXVlcnksIGRlZHVwZSkge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBtb2R1bGVzID0gW1tudWxsLCBtb2R1bGVzLCBcIlwiXV07XG4gICAgfVxuXG4gICAgdmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7fTtcblxuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWRlc3RydWN0dXJpbmdcbiAgICAgICAgdmFyIGlkID0gdGhpc1tpXVswXTtcblxuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBtb2R1bGVzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfaV0pO1xuXG4gICAgICBpZiAoZGVkdXBlICYmIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRpbnVlXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobWVkaWFRdWVyeSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWFRdWVyeTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzJdID0gXCJcIi5jb25jYXQobWVkaWFRdWVyeSwgXCIgYW5kIFwiKS5jb25jYXQoaXRlbVsyXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gbGlzdDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkgeyByZXR1cm4gX2FycmF5V2l0aEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgX25vbkl0ZXJhYmxlUmVzdCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB7IHZhciBfaSA9IGFyciAmJiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbXCJAQGl0ZXJhdG9yXCJdKTsgaWYgKF9pID09IG51bGwpIHJldHVybjsgdmFyIF9hcnIgPSBbXTsgdmFyIF9uID0gdHJ1ZTsgdmFyIF9kID0gZmFsc2U7IHZhciBfcywgX2U7IHRyeSB7IGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHsgX2Fyci5wdXNoKF9zLnZhbHVlKTsgaWYgKGkgJiYgX2Fyci5sZW5ndGggPT09IGkpIGJyZWFrOyB9IH0gY2F0Y2ggKGVycikgeyBfZCA9IHRydWU7IF9lID0gZXJyOyB9IGZpbmFsbHkgeyB0cnkgeyBpZiAoIV9uICYmIF9pW1wicmV0dXJuXCJdICE9IG51bGwpIF9pW1wicmV0dXJuXCJdKCk7IH0gZmluYWxseSB7IGlmIChfZCkgdGhyb3cgX2U7IH0gfSByZXR1cm4gX2FycjsgfVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7IH1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0pIHtcbiAgdmFyIF9pdGVtID0gX3NsaWNlZFRvQXJyYXkoaXRlbSwgNCksXG4gICAgICBjb250ZW50ID0gX2l0ZW1bMV0sXG4gICAgICBjc3NNYXBwaW5nID0gX2l0ZW1bM107XG5cbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBcIi8qIyBzb3VyY2VVUkw9XCIuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCBcIlwiKS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCIvKiFcbiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuNi4xXG4gKiBodHRwczovL2pxdWVyeS5jb20vXG4gKlxuICogSW5jbHVkZXMgU2l6emxlLmpzXG4gKiBodHRwczovL3NpenpsZWpzLmNvbS9cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIERhdGU6IDIwMjItMDgtMjZUMTc6NTJaXG4gKi9cbiggZnVuY3Rpb24oIGdsb2JhbCwgZmFjdG9yeSApIHtcblxuXHRcInVzZSBzdHJpY3RcIjtcblxuXHRpZiAoIHR5cGVvZiBtb2R1bGUgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzID09PSBcIm9iamVjdFwiICkge1xuXG5cdFx0Ly8gRm9yIENvbW1vbkpTIGFuZCBDb21tb25KUy1saWtlIGVudmlyb25tZW50cyB3aGVyZSBhIHByb3BlciBgd2luZG93YFxuXHRcdC8vIGlzIHByZXNlbnQsIGV4ZWN1dGUgdGhlIGZhY3RvcnkgYW5kIGdldCBqUXVlcnkuXG5cdFx0Ly8gRm9yIGVudmlyb25tZW50cyB0aGF0IGRvIG5vdCBoYXZlIGEgYHdpbmRvd2Agd2l0aCBhIGBkb2N1bWVudGBcblx0XHQvLyAoc3VjaCBhcyBOb2RlLmpzKSwgZXhwb3NlIGEgZmFjdG9yeSBhcyBtb2R1bGUuZXhwb3J0cy5cblx0XHQvLyBUaGlzIGFjY2VudHVhdGVzIHRoZSBuZWVkIGZvciB0aGUgY3JlYXRpb24gb2YgYSByZWFsIGB3aW5kb3dgLlxuXHRcdC8vIGUuZy4gdmFyIGpRdWVyeSA9IHJlcXVpcmUoXCJqcXVlcnlcIikod2luZG93KTtcblx0XHQvLyBTZWUgdGlja2V0IHRyYWMtMTQ1NDkgZm9yIG1vcmUgaW5mby5cblx0XHRtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbC5kb2N1bWVudCA/XG5cdFx0XHRmYWN0b3J5KCBnbG9iYWwsIHRydWUgKSA6XG5cdFx0XHRmdW5jdGlvbiggdyApIHtcblx0XHRcdFx0aWYgKCAhdy5kb2N1bWVudCApIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoIFwialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudFwiICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGZhY3RvcnkoIHcgKTtcblx0XHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0ZmFjdG9yeSggZ2xvYmFsICk7XG5cdH1cblxuLy8gUGFzcyB0aGlzIGlmIHdpbmRvdyBpcyBub3QgZGVmaW5lZCB5ZXRcbn0gKSggdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHRoaXMsIGZ1bmN0aW9uKCB3aW5kb3csIG5vR2xvYmFsICkge1xuXG4vLyBFZGdlIDw9IDEyIC0gMTMrLCBGaXJlZm94IDw9MTggLSA0NSssIElFIDEwIC0gMTEsIFNhZmFyaSA1LjEgLSA5KywgaU9TIDYgLSA5LjFcbi8vIHRocm93IGV4Y2VwdGlvbnMgd2hlbiBub24tc3RyaWN0IGNvZGUgKGUuZy4sIEFTUC5ORVQgNC41KSBhY2Nlc3NlcyBzdHJpY3QgbW9kZVxuLy8gYXJndW1lbnRzLmNhbGxlZS5jYWxsZXIgKHRyYWMtMTMzMzUpLiBCdXQgYXMgb2YgalF1ZXJ5IDMuMCAoMjAxNiksIHN0cmljdCBtb2RlIHNob3VsZCBiZSBjb21tb25cbi8vIGVub3VnaCB0aGF0IGFsbCBzdWNoIGF0dGVtcHRzIGFyZSBndWFyZGVkIGluIGEgdHJ5IGJsb2NrLlxuXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBhcnIgPSBbXTtcblxudmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuXG52YXIgc2xpY2UgPSBhcnIuc2xpY2U7XG5cbnZhciBmbGF0ID0gYXJyLmZsYXQgPyBmdW5jdGlvbiggYXJyYXkgKSB7XG5cdHJldHVybiBhcnIuZmxhdC5jYWxsKCBhcnJheSApO1xufSA6IGZ1bmN0aW9uKCBhcnJheSApIHtcblx0cmV0dXJuIGFyci5jb25jYXQuYXBwbHkoIFtdLCBhcnJheSApO1xufTtcblxuXG52YXIgcHVzaCA9IGFyci5wdXNoO1xuXG52YXIgaW5kZXhPZiA9IGFyci5pbmRleE9mO1xuXG52YXIgY2xhc3MydHlwZSA9IHt9O1xuXG52YXIgdG9TdHJpbmcgPSBjbGFzczJ0eXBlLnRvU3RyaW5nO1xuXG52YXIgaGFzT3duID0gY2xhc3MydHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxudmFyIGZuVG9TdHJpbmcgPSBoYXNPd24udG9TdHJpbmc7XG5cbnZhciBPYmplY3RGdW5jdGlvblN0cmluZyA9IGZuVG9TdHJpbmcuY2FsbCggT2JqZWN0ICk7XG5cbnZhciBzdXBwb3J0ID0ge307XG5cbnZhciBpc0Z1bmN0aW9uID0gZnVuY3Rpb24gaXNGdW5jdGlvbiggb2JqICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9NTcsIEZpcmVmb3ggPD01MlxuXHRcdC8vIEluIHNvbWUgYnJvd3NlcnMsIHR5cGVvZiByZXR1cm5zIFwiZnVuY3Rpb25cIiBmb3IgSFRNTCA8b2JqZWN0PiBlbGVtZW50c1xuXHRcdC8vIChpLmUuLCBgdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwib2JqZWN0XCIgKSA9PT0gXCJmdW5jdGlvblwiYCkuXG5cdFx0Ly8gV2UgZG9uJ3Qgd2FudCB0byBjbGFzc2lmeSAqYW55KiBET00gbm9kZSBhcyBhIGZ1bmN0aW9uLlxuXHRcdC8vIFN1cHBvcnQ6IFF0V2ViIDw9My44LjUsIFdlYktpdCA8PTUzNC4zNCwgd2todG1sdG9wZGYgdG9vbCA8PTAuMTIuNVxuXHRcdC8vIFBsdXMgZm9yIG9sZCBXZWJLaXQsIHR5cGVvZiByZXR1cm5zIFwiZnVuY3Rpb25cIiBmb3IgSFRNTCBjb2xsZWN0aW9uc1xuXHRcdC8vIChlLmcuLCBgdHlwZW9mIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZGl2XCIpID09PSBcImZ1bmN0aW9uXCJgKS4gKGdoLTQ3NTYpXG5cdFx0cmV0dXJuIHR5cGVvZiBvYmogPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2Ygb2JqLm5vZGVUeXBlICE9PSBcIm51bWJlclwiICYmXG5cdFx0XHR0eXBlb2Ygb2JqLml0ZW0gIT09IFwiZnVuY3Rpb25cIjtcblx0fTtcblxuXG52YXIgaXNXaW5kb3cgPSBmdW5jdGlvbiBpc1dpbmRvdyggb2JqICkge1xuXHRcdHJldHVybiBvYmogIT0gbnVsbCAmJiBvYmogPT09IG9iai53aW5kb3c7XG5cdH07XG5cblxudmFyIGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50O1xuXG5cblxuXHR2YXIgcHJlc2VydmVkU2NyaXB0QXR0cmlidXRlcyA9IHtcblx0XHR0eXBlOiB0cnVlLFxuXHRcdHNyYzogdHJ1ZSxcblx0XHRub25jZTogdHJ1ZSxcblx0XHRub01vZHVsZTogdHJ1ZVxuXHR9O1xuXG5cdGZ1bmN0aW9uIERPTUV2YWwoIGNvZGUsIG5vZGUsIGRvYyApIHtcblx0XHRkb2MgPSBkb2MgfHwgZG9jdW1lbnQ7XG5cblx0XHR2YXIgaSwgdmFsLFxuXHRcdFx0c2NyaXB0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoIFwic2NyaXB0XCIgKTtcblxuXHRcdHNjcmlwdC50ZXh0ID0gY29kZTtcblx0XHRpZiAoIG5vZGUgKSB7XG5cdFx0XHRmb3IgKCBpIGluIHByZXNlcnZlZFNjcmlwdEF0dHJpYnV0ZXMgKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogRmlyZWZveCA2NCssIEVkZ2UgMTgrXG5cdFx0XHRcdC8vIFNvbWUgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCB0aGUgXCJub25jZVwiIHByb3BlcnR5IG9uIHNjcmlwdHMuXG5cdFx0XHRcdC8vIE9uIHRoZSBvdGhlciBoYW5kLCBqdXN0IHVzaW5nIGBnZXRBdHRyaWJ1dGVgIGlzIG5vdCBlbm91Z2ggYXNcblx0XHRcdFx0Ly8gdGhlIGBub25jZWAgYXR0cmlidXRlIGlzIHJlc2V0IHRvIGFuIGVtcHR5IHN0cmluZyB3aGVuZXZlciBpdFxuXHRcdFx0XHQvLyBiZWNvbWVzIGJyb3dzaW5nLWNvbnRleHQgY29ubmVjdGVkLlxuXHRcdFx0XHQvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy8yMzY5XG5cdFx0XHRcdC8vIFNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNub25jZS1hdHRyaWJ1dGVzXG5cdFx0XHRcdC8vIFRoZSBgbm9kZS5nZXRBdHRyaWJ1dGVgIGNoZWNrIHdhcyBhZGRlZCBmb3IgdGhlIHNha2Ugb2Zcblx0XHRcdFx0Ly8gYGpRdWVyeS5nbG9iYWxFdmFsYCBzbyB0aGF0IGl0IGNhbiBmYWtlIGEgbm9uY2UtY29udGFpbmluZyBub2RlXG5cdFx0XHRcdC8vIHZpYSBhbiBvYmplY3QuXG5cdFx0XHRcdHZhbCA9IG5vZGVbIGkgXSB8fCBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSggaSApO1xuXHRcdFx0XHRpZiAoIHZhbCApIHtcblx0XHRcdFx0XHRzY3JpcHQuc2V0QXR0cmlidXRlKCBpLCB2YWwgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRkb2MuaGVhZC5hcHBlbmRDaGlsZCggc2NyaXB0ICkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggc2NyaXB0ICk7XG5cdH1cblxuXG5mdW5jdGlvbiB0b1R5cGUoIG9iaiApIHtcblx0aWYgKCBvYmogPT0gbnVsbCApIHtcblx0XHRyZXR1cm4gb2JqICsgXCJcIjtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD0yLjMgb25seSAoZnVuY3Rpb25pc2ggUmVnRXhwKVxuXHRyZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIgP1xuXHRcdGNsYXNzMnR5cGVbIHRvU3RyaW5nLmNhbGwoIG9iaiApIF0gfHwgXCJvYmplY3RcIiA6XG5cdFx0dHlwZW9mIG9iajtcbn1cbi8qIGdsb2JhbCBTeW1ib2wgKi9cbi8vIERlZmluaW5nIHRoaXMgZ2xvYmFsIGluIC5lc2xpbnRyYy5qc29uIHdvdWxkIGNyZWF0ZSBhIGRhbmdlciBvZiB1c2luZyB0aGUgZ2xvYmFsXG4vLyB1bmd1YXJkZWQgaW4gYW5vdGhlciBwbGFjZSwgaXQgc2VlbXMgc2FmZXIgdG8gZGVmaW5lIGdsb2JhbCBvbmx5IGZvciB0aGlzIG1vZHVsZVxuXG5cblxudmFyXG5cdHZlcnNpb24gPSBcIjMuNi4xXCIsXG5cblx0Ly8gRGVmaW5lIGEgbG9jYWwgY29weSBvZiBqUXVlcnlcblx0alF1ZXJ5ID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkge1xuXG5cdFx0Ly8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnXG5cdFx0Ly8gTmVlZCBpbml0IGlmIGpRdWVyeSBpcyBjYWxsZWQgKGp1c3QgYWxsb3cgZXJyb3IgdG8gYmUgdGhyb3duIGlmIG5vdCBpbmNsdWRlZClcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApO1xuXHR9O1xuXG5qUXVlcnkuZm4gPSBqUXVlcnkucHJvdG90eXBlID0ge1xuXG5cdC8vIFRoZSBjdXJyZW50IHZlcnNpb24gb2YgalF1ZXJ5IGJlaW5nIHVzZWRcblx0anF1ZXJ5OiB2ZXJzaW9uLFxuXG5cdGNvbnN0cnVjdG9yOiBqUXVlcnksXG5cblx0Ly8gVGhlIGRlZmF1bHQgbGVuZ3RoIG9mIGEgalF1ZXJ5IG9iamVjdCBpcyAwXG5cdGxlbmd0aDogMCxcblxuXHR0b0FycmF5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2xpY2UuY2FsbCggdGhpcyApO1xuXHR9LFxuXG5cdC8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1Jcblx0Ly8gR2V0IHRoZSB3aG9sZSBtYXRjaGVkIGVsZW1lbnQgc2V0IGFzIGEgY2xlYW4gYXJyYXlcblx0Z2V0OiBmdW5jdGlvbiggbnVtICkge1xuXG5cdFx0Ly8gUmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgaW4gYSBjbGVhbiBhcnJheVxuXHRcdGlmICggbnVtID09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gc2xpY2UuY2FsbCggdGhpcyApO1xuXHRcdH1cblxuXHRcdC8vIFJldHVybiBqdXN0IHRoZSBvbmUgZWxlbWVudCBmcm9tIHRoZSBzZXRcblx0XHRyZXR1cm4gbnVtIDwgMCA/IHRoaXNbIG51bSArIHRoaXMubGVuZ3RoIF0gOiB0aGlzWyBudW0gXTtcblx0fSxcblxuXHQvLyBUYWtlIGFuIGFycmF5IG9mIGVsZW1lbnRzIGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrXG5cdC8vIChyZXR1cm5pbmcgdGhlIG5ldyBtYXRjaGVkIGVsZW1lbnQgc2V0KVxuXHRwdXNoU3RhY2s6IGZ1bmN0aW9uKCBlbGVtcyApIHtcblxuXHRcdC8vIEJ1aWxkIGEgbmV3IGpRdWVyeSBtYXRjaGVkIGVsZW1lbnQgc2V0XG5cdFx0dmFyIHJldCA9IGpRdWVyeS5tZXJnZSggdGhpcy5jb25zdHJ1Y3RvcigpLCBlbGVtcyApO1xuXG5cdFx0Ly8gQWRkIHRoZSBvbGQgb2JqZWN0IG9udG8gdGhlIHN0YWNrIChhcyBhIHJlZmVyZW5jZSlcblx0XHRyZXQucHJldk9iamVjdCA9IHRoaXM7XG5cblx0XHQvLyBSZXR1cm4gdGhlIG5ld2x5LWZvcm1lZCBlbGVtZW50IHNldFxuXHRcdHJldHVybiByZXQ7XG5cdH0sXG5cblx0Ly8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC5cblx0ZWFjaDogZnVuY3Rpb24oIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZWFjaCggdGhpcywgY2FsbGJhY2sgKTtcblx0fSxcblxuXHRtYXA6IGZ1bmN0aW9uKCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5tYXAoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBpICkge1xuXHRcdFx0cmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRzbGljZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBzbGljZS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgKTtcblx0fSxcblxuXHRmaXJzdDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZXEoIDAgKTtcblx0fSxcblxuXHRsYXN0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5lcSggLTEgKTtcblx0fSxcblxuXHRldmVuOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5ncmVwKCB0aGlzLCBmdW5jdGlvbiggX2VsZW0sIGkgKSB7XG5cdFx0XHRyZXR1cm4gKCBpICsgMSApICUgMjtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRvZGQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5LmdyZXAoIHRoaXMsIGZ1bmN0aW9uKCBfZWxlbSwgaSApIHtcblx0XHRcdHJldHVybiBpICUgMjtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRlcTogZnVuY3Rpb24oIGkgKSB7XG5cdFx0dmFyIGxlbiA9IHRoaXMubGVuZ3RoLFxuXHRcdFx0aiA9ICtpICsgKCBpIDwgMCA/IGxlbiA6IDAgKTtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGogPj0gMCAmJiBqIDwgbGVuID8gWyB0aGlzWyBqIF0gXSA6IFtdICk7XG5cdH0sXG5cblx0ZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5wcmV2T2JqZWN0IHx8IHRoaXMuY29uc3RydWN0b3IoKTtcblx0fSxcblxuXHQvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuXG5cdC8vIEJlaGF2ZXMgbGlrZSBhbiBBcnJheSdzIG1ldGhvZCwgbm90IGxpa2UgYSBqUXVlcnkgbWV0aG9kLlxuXHRwdXNoOiBwdXNoLFxuXHRzb3J0OiBhcnIuc29ydCxcblx0c3BsaWNlOiBhcnIuc3BsaWNlXG59O1xuXG5qUXVlcnkuZXh0ZW5kID0galF1ZXJ5LmZuLmV4dGVuZCA9IGZ1bmN0aW9uKCkge1xuXHR2YXIgb3B0aW9ucywgbmFtZSwgc3JjLCBjb3B5LCBjb3B5SXNBcnJheSwgY2xvbmUsXG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWyAwIF0gfHwge30sXG5cdFx0aSA9IDEsXG5cdFx0bGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcblx0XHRkZWVwID0gZmFsc2U7XG5cblx0Ly8gSGFuZGxlIGEgZGVlcCBjb3B5IHNpdHVhdGlvblxuXHRpZiAoIHR5cGVvZiB0YXJnZXQgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdGRlZXAgPSB0YXJnZXQ7XG5cblx0XHQvLyBTa2lwIHRoZSBib29sZWFuIGFuZCB0aGUgdGFyZ2V0XG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWyBpIF0gfHwge307XG5cdFx0aSsrO1xuXHR9XG5cblx0Ly8gSGFuZGxlIGNhc2Ugd2hlbiB0YXJnZXQgaXMgYSBzdHJpbmcgb3Igc29tZXRoaW5nIChwb3NzaWJsZSBpbiBkZWVwIGNvcHkpXG5cdGlmICggdHlwZW9mIHRhcmdldCAhPT0gXCJvYmplY3RcIiAmJiAhaXNGdW5jdGlvbiggdGFyZ2V0ICkgKSB7XG5cdFx0dGFyZ2V0ID0ge307XG5cdH1cblxuXHQvLyBFeHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWRcblx0aWYgKCBpID09PSBsZW5ndGggKSB7XG5cdFx0dGFyZ2V0ID0gdGhpcztcblx0XHRpLS07XG5cdH1cblxuXHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblxuXHRcdC8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZXNcblx0XHRpZiAoICggb3B0aW9ucyA9IGFyZ3VtZW50c1sgaSBdICkgIT0gbnVsbCApIHtcblxuXHRcdFx0Ly8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdFxuXHRcdFx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdFx0XHRjb3B5ID0gb3B0aW9uc1sgbmFtZSBdO1xuXG5cdFx0XHRcdC8vIFByZXZlbnQgT2JqZWN0LnByb3RvdHlwZSBwb2xsdXRpb25cblx0XHRcdFx0Ly8gUHJldmVudCBuZXZlci1lbmRpbmcgbG9vcFxuXHRcdFx0XHRpZiAoIG5hbWUgPT09IFwiX19wcm90b19fXCIgfHwgdGFyZ2V0ID09PSBjb3B5ICkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUmVjdXJzZSBpZiB3ZSdyZSBtZXJnaW5nIHBsYWluIG9iamVjdHMgb3IgYXJyYXlzXG5cdFx0XHRcdGlmICggZGVlcCAmJiBjb3B5ICYmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvcHkgKSB8fFxuXHRcdFx0XHRcdCggY29weUlzQXJyYXkgPSBBcnJheS5pc0FycmF5KCBjb3B5ICkgKSApICkge1xuXHRcdFx0XHRcdHNyYyA9IHRhcmdldFsgbmFtZSBdO1xuXG5cdFx0XHRcdFx0Ly8gRW5zdXJlIHByb3BlciB0eXBlIGZvciB0aGUgc291cmNlIHZhbHVlXG5cdFx0XHRcdFx0aWYgKCBjb3B5SXNBcnJheSAmJiAhQXJyYXkuaXNBcnJheSggc3JjICkgKSB7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IFtdO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoICFjb3B5SXNBcnJheSAmJiAhalF1ZXJ5LmlzUGxhaW5PYmplY3QoIHNyYyApICkge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSB7fTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvcHlJc0FycmF5ID0gZmFsc2U7XG5cblx0XHRcdFx0XHQvLyBOZXZlciBtb3ZlIG9yaWdpbmFsIG9iamVjdHMsIGNsb25lIHRoZW1cblx0XHRcdFx0XHR0YXJnZXRbIG5hbWUgXSA9IGpRdWVyeS5leHRlbmQoIGRlZXAsIGNsb25lLCBjb3B5ICk7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgYnJpbmcgaW4gdW5kZWZpbmVkIHZhbHVlc1xuXHRcdFx0XHR9IGVsc2UgaWYgKCBjb3B5ICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0dGFyZ2V0WyBuYW1lIF0gPSBjb3B5O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmplY3Rcblx0cmV0dXJuIHRhcmdldDtcbn07XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBVbmlxdWUgZm9yIGVhY2ggY29weSBvZiBqUXVlcnkgb24gdGhlIHBhZ2Vcblx0ZXhwYW5kbzogXCJqUXVlcnlcIiArICggdmVyc2lvbiArIE1hdGgucmFuZG9tKCkgKS5yZXBsYWNlKCAvXFxEL2csIFwiXCIgKSxcblxuXHQvLyBBc3N1bWUgalF1ZXJ5IGlzIHJlYWR5IHdpdGhvdXQgdGhlIHJlYWR5IG1vZHVsZVxuXHRpc1JlYWR5OiB0cnVlLFxuXG5cdGVycm9yOiBmdW5jdGlvbiggbXNnICkge1xuXHRcdHRocm93IG5ldyBFcnJvciggbXNnICk7XG5cdH0sXG5cblx0bm9vcDogZnVuY3Rpb24oKSB7fSxcblxuXHRpc1BsYWluT2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHZhciBwcm90bywgQ3RvcjtcblxuXHRcdC8vIERldGVjdCBvYnZpb3VzIG5lZ2F0aXZlc1xuXHRcdC8vIFVzZSB0b1N0cmluZyBpbnN0ZWFkIG9mIGpRdWVyeS50eXBlIHRvIGNhdGNoIGhvc3Qgb2JqZWN0c1xuXHRcdGlmICggIW9iaiB8fCB0b1N0cmluZy5jYWxsKCBvYmogKSAhPT0gXCJbb2JqZWN0IE9iamVjdF1cIiApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRwcm90byA9IGdldFByb3RvKCBvYmogKTtcblxuXHRcdC8vIE9iamVjdHMgd2l0aCBubyBwcm90b3R5cGUgKGUuZy4sIGBPYmplY3QuY3JlYXRlKCBudWxsIClgKSBhcmUgcGxhaW5cblx0XHRpZiAoICFwcm90byApIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdC8vIE9iamVjdHMgd2l0aCBwcm90b3R5cGUgYXJlIHBsYWluIGlmZiB0aGV5IHdlcmUgY29uc3RydWN0ZWQgYnkgYSBnbG9iYWwgT2JqZWN0IGZ1bmN0aW9uXG5cdFx0Q3RvciA9IGhhc093bi5jYWxsKCBwcm90bywgXCJjb25zdHJ1Y3RvclwiICkgJiYgcHJvdG8uY29uc3RydWN0b3I7XG5cdFx0cmV0dXJuIHR5cGVvZiBDdG9yID09PSBcImZ1bmN0aW9uXCIgJiYgZm5Ub1N0cmluZy5jYWxsKCBDdG9yICkgPT09IE9iamVjdEZ1bmN0aW9uU3RyaW5nO1xuXHR9LFxuXG5cdGlzRW1wdHlPYmplY3Q6IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0dmFyIG5hbWU7XG5cblx0XHRmb3IgKCBuYW1lIGluIG9iaiApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG5cblx0Ly8gRXZhbHVhdGVzIGEgc2NyaXB0IGluIGEgcHJvdmlkZWQgY29udGV4dDsgZmFsbHMgYmFjayB0byB0aGUgZ2xvYmFsIG9uZVxuXHQvLyBpZiBub3Qgc3BlY2lmaWVkLlxuXHRnbG9iYWxFdmFsOiBmdW5jdGlvbiggY29kZSwgb3B0aW9ucywgZG9jICkge1xuXHRcdERPTUV2YWwoIGNvZGUsIHsgbm9uY2U6IG9wdGlvbnMgJiYgb3B0aW9ucy5ub25jZSB9LCBkb2MgKTtcblx0fSxcblxuXHRlYWNoOiBmdW5jdGlvbiggb2JqLCBjYWxsYmFjayApIHtcblx0XHR2YXIgbGVuZ3RoLCBpID0gMDtcblxuXHRcdGlmICggaXNBcnJheUxpa2UoIG9iaiApICkge1xuXHRcdFx0bGVuZ3RoID0gb2JqLmxlbmd0aDtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrLmNhbGwoIG9ialsgaSBdLCBpLCBvYmpbIGkgXSApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKCBpIGluIG9iaiApIHtcblx0XHRcdFx0aWYgKCBjYWxsYmFjay5jYWxsKCBvYmpbIGkgXSwgaSwgb2JqWyBpIF0gKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gb2JqO1xuXHR9LFxuXG5cdC8vIHJlc3VsdHMgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHlcblx0bWFrZUFycmF5OiBmdW5jdGlvbiggYXJyLCByZXN1bHRzICkge1xuXHRcdHZhciByZXQgPSByZXN1bHRzIHx8IFtdO1xuXG5cdFx0aWYgKCBhcnIgIT0gbnVsbCApIHtcblx0XHRcdGlmICggaXNBcnJheUxpa2UoIE9iamVjdCggYXJyICkgKSApIHtcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCByZXQsXG5cdFx0XHRcdFx0dHlwZW9mIGFyciA9PT0gXCJzdHJpbmdcIiA/XG5cdFx0XHRcdFx0XHRbIGFyciBdIDogYXJyXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmNhbGwoIHJldCwgYXJyICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblxuXHRpbkFycmF5OiBmdW5jdGlvbiggZWxlbSwgYXJyLCBpICkge1xuXHRcdHJldHVybiBhcnIgPT0gbnVsbCA/IC0xIDogaW5kZXhPZi5jYWxsKCBhcnIsIGVsZW0sIGkgKTtcblx0fSxcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0Ly8gcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRtZXJnZTogZnVuY3Rpb24oIGZpcnN0LCBzZWNvbmQgKSB7XG5cdFx0dmFyIGxlbiA9ICtzZWNvbmQubGVuZ3RoLFxuXHRcdFx0aiA9IDAsXG5cdFx0XHRpID0gZmlyc3QubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBqIDwgbGVuOyBqKysgKSB7XG5cdFx0XHRmaXJzdFsgaSsrIF0gPSBzZWNvbmRbIGogXTtcblx0XHR9XG5cblx0XHRmaXJzdC5sZW5ndGggPSBpO1xuXG5cdFx0cmV0dXJuIGZpcnN0O1xuXHR9LFxuXG5cdGdyZXA6IGZ1bmN0aW9uKCBlbGVtcywgY2FsbGJhY2ssIGludmVydCApIHtcblx0XHR2YXIgY2FsbGJhY2tJbnZlcnNlLFxuXHRcdFx0bWF0Y2hlcyA9IFtdLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsZW5ndGggPSBlbGVtcy5sZW5ndGgsXG5cdFx0XHRjYWxsYmFja0V4cGVjdCA9ICFpbnZlcnQ7XG5cblx0XHQvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgb25seSBzYXZpbmcgdGhlIGl0ZW1zXG5cdFx0Ly8gdGhhdCBwYXNzIHRoZSB2YWxpZGF0b3IgZnVuY3Rpb25cblx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHRcdGNhbGxiYWNrSW52ZXJzZSA9ICFjYWxsYmFjayggZWxlbXNbIGkgXSwgaSApO1xuXHRcdFx0aWYgKCBjYWxsYmFja0ludmVyc2UgIT09IGNhbGxiYWNrRXhwZWN0ICkge1xuXHRcdFx0XHRtYXRjaGVzLnB1c2goIGVsZW1zWyBpIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gbWF0Y2hlcztcblx0fSxcblxuXHQvLyBhcmcgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHlcblx0bWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBhcmcgKSB7XG5cdFx0dmFyIGxlbmd0aCwgdmFsdWUsXG5cdFx0XHRpID0gMCxcblx0XHRcdHJldCA9IFtdO1xuXG5cdFx0Ly8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0aW5nIGVhY2ggb2YgdGhlIGl0ZW1zIHRvIHRoZWlyIG5ldyB2YWx1ZXNcblx0XHRpZiAoIGlzQXJyYXlMaWtlKCBlbGVtcyApICkge1xuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoO1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdHZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApO1xuXG5cdFx0XHRcdGlmICggdmFsdWUgIT0gbnVsbCApIHtcblx0XHRcdFx0XHRyZXQucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0Ly8gR28gdGhyb3VnaCBldmVyeSBrZXkgb24gdGhlIG9iamVjdCxcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yICggaSBpbiBlbGVtcyApIHtcblx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjayggZWxlbXNbIGkgXSwgaSwgYXJnICk7XG5cblx0XHRcdFx0aWYgKCB2YWx1ZSAhPSBudWxsICkge1xuXHRcdFx0XHRcdHJldC5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xuXHRcdHJldHVybiBmbGF0KCByZXQgKTtcblx0fSxcblxuXHQvLyBBIGdsb2JhbCBHVUlEIGNvdW50ZXIgZm9yIG9iamVjdHNcblx0Z3VpZDogMSxcblxuXHQvLyBqUXVlcnkuc3VwcG9ydCBpcyBub3QgdXNlZCBpbiBDb3JlIGJ1dCBvdGhlciBwcm9qZWN0cyBhdHRhY2ggdGhlaXJcblx0Ly8gcHJvcGVydGllcyB0byBpdCBzbyBpdCBuZWVkcyB0byBleGlzdC5cblx0c3VwcG9ydDogc3VwcG9ydFxufSApO1xuXG5pZiAoIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiApIHtcblx0alF1ZXJ5LmZuWyBTeW1ib2wuaXRlcmF0b3IgXSA9IGFyclsgU3ltYm9sLml0ZXJhdG9yIF07XG59XG5cbi8vIFBvcHVsYXRlIHRoZSBjbGFzczJ0eXBlIG1hcFxualF1ZXJ5LmVhY2goIFwiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2xcIi5zcGxpdCggXCIgXCIgKSxcblx0ZnVuY3Rpb24oIF9pLCBuYW1lICkge1xuXHRcdGNsYXNzMnR5cGVbIFwiW29iamVjdCBcIiArIG5hbWUgKyBcIl1cIiBdID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXHR9ICk7XG5cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKCBvYmogKSB7XG5cblx0Ly8gU3VwcG9ydDogcmVhbCBpT1MgOC4yIG9ubHkgKG5vdCByZXByb2R1Y2libGUgaW4gc2ltdWxhdG9yKVxuXHQvLyBgaW5gIGNoZWNrIHVzZWQgdG8gcHJldmVudCBKSVQgZXJyb3IgKGdoLTIxNDUpXG5cdC8vIGhhc093biBpc24ndCB1c2VkIGhlcmUgZHVlIHRvIGZhbHNlIG5lZ2F0aXZlc1xuXHQvLyByZWdhcmRpbmcgTm9kZWxpc3QgbGVuZ3RoIGluIElFXG5cdHZhciBsZW5ndGggPSAhIW9iaiAmJiBcImxlbmd0aFwiIGluIG9iaiAmJiBvYmoubGVuZ3RoLFxuXHRcdHR5cGUgPSB0b1R5cGUoIG9iaiApO1xuXG5cdGlmICggaXNGdW5jdGlvbiggb2JqICkgfHwgaXNXaW5kb3coIG9iaiApICkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJldHVybiB0eXBlID09PSBcImFycmF5XCIgfHwgbGVuZ3RoID09PSAwIHx8XG5cdFx0dHlwZW9mIGxlbmd0aCA9PT0gXCJudW1iZXJcIiAmJiBsZW5ndGggPiAwICYmICggbGVuZ3RoIC0gMSApIGluIG9iajtcbn1cbnZhciBTaXp6bGUgPVxuLyohXG4gKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSB2Mi4zLjZcbiAqIGh0dHBzOi8vc2l6emxlanMuY29tL1xuICpcbiAqIENvcHlyaWdodCBKUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cHM6Ly9qcy5mb3VuZGF0aW9uL1xuICpcbiAqIERhdGU6IDIwMjEtMDItMTZcbiAqL1xuKCBmdW5jdGlvbiggd2luZG93ICkge1xudmFyIGksXG5cdHN1cHBvcnQsXG5cdEV4cHIsXG5cdGdldFRleHQsXG5cdGlzWE1MLFxuXHR0b2tlbml6ZSxcblx0Y29tcGlsZSxcblx0c2VsZWN0LFxuXHRvdXRlcm1vc3RDb250ZXh0LFxuXHRzb3J0SW5wdXQsXG5cdGhhc0R1cGxpY2F0ZSxcblxuXHQvLyBMb2NhbCBkb2N1bWVudCB2YXJzXG5cdHNldERvY3VtZW50LFxuXHRkb2N1bWVudCxcblx0ZG9jRWxlbSxcblx0ZG9jdW1lbnRJc0hUTUwsXG5cdHJidWdneVFTQSxcblx0cmJ1Z2d5TWF0Y2hlcyxcblx0bWF0Y2hlcyxcblx0Y29udGFpbnMsXG5cblx0Ly8gSW5zdGFuY2Utc3BlY2lmaWMgZGF0YVxuXHRleHBhbmRvID0gXCJzaXp6bGVcIiArIDEgKiBuZXcgRGF0ZSgpLFxuXHRwcmVmZXJyZWREb2MgPSB3aW5kb3cuZG9jdW1lbnQsXG5cdGRpcnJ1bnMgPSAwLFxuXHRkb25lID0gMCxcblx0Y2xhc3NDYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdHRva2VuQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHRjb21waWxlckNhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0bm9ubmF0aXZlU2VsZWN0b3JDYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdHNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdGlmICggYSA9PT0gYiApIHtcblx0XHRcdGhhc0R1cGxpY2F0ZSA9IHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiAwO1xuXHR9LFxuXG5cdC8vIEluc3RhbmNlIG1ldGhvZHNcblx0aGFzT3duID0gKCB7fSApLmhhc093blByb3BlcnR5LFxuXHRhcnIgPSBbXSxcblx0cG9wID0gYXJyLnBvcCxcblx0cHVzaE5hdGl2ZSA9IGFyci5wdXNoLFxuXHRwdXNoID0gYXJyLnB1c2gsXG5cdHNsaWNlID0gYXJyLnNsaWNlLFxuXG5cdC8vIFVzZSBhIHN0cmlwcGVkLWRvd24gaW5kZXhPZiBhcyBpdCdzIGZhc3RlciB0aGFuIG5hdGl2ZVxuXHQvLyBodHRwczovL2pzcGVyZi5jb20vdGhvci1pbmRleG9mLXZzLWZvci81XG5cdGluZGV4T2YgPSBmdW5jdGlvbiggbGlzdCwgZWxlbSApIHtcblx0XHR2YXIgaSA9IDAsXG5cdFx0XHRsZW4gPSBsaXN0Lmxlbmd0aDtcblx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGlmICggbGlzdFsgaSBdID09PSBlbGVtICkge1xuXHRcdFx0XHRyZXR1cm4gaTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIC0xO1xuXHR9LFxuXG5cdGJvb2xlYW5zID0gXCJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58XCIgK1xuXHRcdFwiaXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZFwiLFxuXG5cdC8vIFJlZ3VsYXIgZXhwcmVzc2lvbnNcblxuXHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXNlbGVjdG9ycy8jd2hpdGVzcGFjZVxuXHR3aGl0ZXNwYWNlID0gXCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiLFxuXG5cdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc3ludGF4LTMvI2lkZW50LXRva2VuLWRpYWdyYW1cblx0aWRlbnRpZmllciA9IFwiKD86XFxcXFxcXFxbXFxcXGRhLWZBLUZdezEsNn1cIiArIHdoaXRlc3BhY2UgK1xuXHRcdFwiP3xcXFxcXFxcXFteXFxcXHJcXFxcblxcXFxmXXxbXFxcXHctXXxbXlxcMC1cXFxceDdmXSkrXCIsXG5cblx0Ly8gQXR0cmlidXRlIHNlbGVjdG9yczogaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNhdHRyaWJ1dGUtc2VsZWN0b3JzXG5cdGF0dHJpYnV0ZXMgPSBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqKFwiICsgaWRlbnRpZmllciArIFwiKSg/OlwiICsgd2hpdGVzcGFjZSArXG5cblx0XHQvLyBPcGVyYXRvciAoY2FwdHVyZSAyKVxuXHRcdFwiKihbKl4kfCF+XT89KVwiICsgd2hpdGVzcGFjZSArXG5cblx0XHQvLyBcIkF0dHJpYnV0ZSB2YWx1ZXMgbXVzdCBiZSBDU1MgaWRlbnRpZmllcnMgW2NhcHR1cmUgNV1cblx0XHQvLyBvciBzdHJpbmdzIFtjYXB0dXJlIDMgb3IgY2FwdHVyZSA0XVwiXG5cdFx0XCIqKD86JygoPzpcXFxcXFxcXC58W15cXFxcXFxcXCddKSopJ3xcXFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXFxcIl0pKilcXFwifChcIiArIGlkZW50aWZpZXIgKyBcIikpfClcIiArXG5cdFx0d2hpdGVzcGFjZSArIFwiKlxcXFxdXCIsXG5cblx0cHNldWRvcyA9IFwiOihcIiArIGlkZW50aWZpZXIgKyBcIikoPzpcXFxcKChcIiArXG5cblx0XHQvLyBUbyByZWR1Y2UgdGhlIG51bWJlciBvZiBzZWxlY3RvcnMgbmVlZGluZyB0b2tlbml6ZSBpbiB0aGUgcHJlRmlsdGVyLCBwcmVmZXIgYXJndW1lbnRzOlxuXHRcdC8vIDEuIHF1b3RlZCAoY2FwdHVyZSAzOyBjYXB0dXJlIDQgb3IgY2FwdHVyZSA1KVxuXHRcdFwiKCcoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcIil8XCIgK1xuXG5cdFx0Ly8gMi4gc2ltcGxlIChjYXB0dXJlIDYpXG5cdFx0XCIoKD86XFxcXFxcXFwufFteXFxcXFxcXFwoKVtcXFxcXV18XCIgKyBhdHRyaWJ1dGVzICsgXCIpKil8XCIgK1xuXG5cdFx0Ly8gMy4gYW55dGhpbmcgZWxzZSAoY2FwdHVyZSAyKVxuXHRcdFwiLipcIiArXG5cdFx0XCIpXFxcXCl8KVwiLFxuXG5cdC8vIExlYWRpbmcgYW5kIG5vbi1lc2NhcGVkIHRyYWlsaW5nIHdoaXRlc3BhY2UsIGNhcHR1cmluZyBzb21lIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMgcHJlY2VkaW5nIHRoZSBsYXR0ZXJcblx0cndoaXRlc3BhY2UgPSBuZXcgUmVnRXhwKCB3aGl0ZXNwYWNlICsgXCIrXCIsIFwiZ1wiICksXG5cdHJ0cmltID0gbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIrfCgoPzpefFteXFxcXFxcXFxdKSg/OlxcXFxcXFxcLikqKVwiICtcblx0XHR3aGl0ZXNwYWNlICsgXCIrJFwiLCBcImdcIiApLFxuXG5cdHJjb21tYSA9IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArIFwiKixcIiArIHdoaXRlc3BhY2UgKyBcIipcIiApLFxuXHRyY29tYmluYXRvcnMgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiooWz4rfl18XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcIipcIiApLFxuXHRyZGVzY2VuZCA9IG5ldyBSZWdFeHAoIHdoaXRlc3BhY2UgKyBcInw+XCIgKSxcblxuXHRycHNldWRvID0gbmV3IFJlZ0V4cCggcHNldWRvcyApLFxuXHRyaWRlbnRpZmllciA9IG5ldyBSZWdFeHAoIFwiXlwiICsgaWRlbnRpZmllciArIFwiJFwiICksXG5cblx0bWF0Y2hFeHByID0ge1xuXHRcdFwiSURcIjogbmV3IFJlZ0V4cCggXCJeIyhcIiArIGlkZW50aWZpZXIgKyBcIilcIiApLFxuXHRcdFwiQ0xBU1NcIjogbmV3IFJlZ0V4cCggXCJeXFxcXC4oXCIgKyBpZGVudGlmaWVyICsgXCIpXCIgKSxcblx0XHRcIlRBR1wiOiBuZXcgUmVnRXhwKCBcIl4oXCIgKyBpZGVudGlmaWVyICsgXCJ8WypdKVwiICksXG5cdFx0XCJBVFRSXCI6IG5ldyBSZWdFeHAoIFwiXlwiICsgYXR0cmlidXRlcyApLFxuXHRcdFwiUFNFVURPXCI6IG5ldyBSZWdFeHAoIFwiXlwiICsgcHNldWRvcyApLFxuXHRcdFwiQ0hJTERcIjogbmV3IFJlZ0V4cCggXCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXFxcKFwiICtcblx0XHRcdHdoaXRlc3BhY2UgKyBcIiooZXZlbnxvZGR8KChbKy1dfCkoXFxcXGQqKW58KVwiICsgd2hpdGVzcGFjZSArIFwiKig/OihbKy1dfClcIiArXG5cdFx0XHR3aGl0ZXNwYWNlICsgXCIqKFxcXFxkKyl8KSlcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcKXwpXCIsIFwiaVwiICksXG5cdFx0XCJib29sXCI6IG5ldyBSZWdFeHAoIFwiXig/OlwiICsgYm9vbGVhbnMgKyBcIikkXCIsIFwiaVwiICksXG5cblx0XHQvLyBGb3IgdXNlIGluIGxpYnJhcmllcyBpbXBsZW1lbnRpbmcgLmlzKClcblx0XHQvLyBXZSB1c2UgdGhpcyBmb3IgUE9TIG1hdGNoaW5nIGluIGBzZWxlY3RgXG5cdFx0XCJuZWVkc0NvbnRleHRcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFwiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFxcXChcIiArIHdoaXRlc3BhY2UgK1xuXHRcdFx0XCIqKCg/Oi1cXFxcZCk/XFxcXGQqKVwiICsgd2hpdGVzcGFjZSArIFwiKlxcXFwpfCkoPz1bXi1dfCQpXCIsIFwiaVwiIClcblx0fSxcblxuXHRyaHRtbCA9IC9IVE1MJC9pLFxuXHRyaW5wdXRzID0gL14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxcblx0cmhlYWRlciA9IC9eaFxcZCQvaSxcblxuXHRybmF0aXZlID0gL15bXntdK1xce1xccypcXFtuYXRpdmUgXFx3LyxcblxuXHQvLyBFYXNpbHktcGFyc2VhYmxlL3JldHJpZXZhYmxlIElEIG9yIFRBRyBvciBDTEFTUyBzZWxlY3RvcnNcblx0cnF1aWNrRXhwciA9IC9eKD86IyhbXFx3LV0rKXwoXFx3Kyl8XFwuKFtcXHctXSspKSQvLFxuXG5cdHJzaWJsaW5nID0gL1srfl0vLFxuXG5cdC8vIENTUyBlc2NhcGVzXG5cdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL3N5bmRhdGEuaHRtbCNlc2NhcGVkLWNoYXJhY3RlcnNcblx0cnVuZXNjYXBlID0gbmV3IFJlZ0V4cCggXCJcXFxcXFxcXFtcXFxcZGEtZkEtRl17MSw2fVwiICsgd2hpdGVzcGFjZSArIFwiP3xcXFxcXFxcXChbXlxcXFxyXFxcXG5cXFxcZl0pXCIsIFwiZ1wiICksXG5cdGZ1bmVzY2FwZSA9IGZ1bmN0aW9uKCBlc2NhcGUsIG5vbkhleCApIHtcblx0XHR2YXIgaGlnaCA9IFwiMHhcIiArIGVzY2FwZS5zbGljZSggMSApIC0gMHgxMDAwMDtcblxuXHRcdHJldHVybiBub25IZXggP1xuXG5cdFx0XHQvLyBTdHJpcCB0aGUgYmFja3NsYXNoIHByZWZpeCBmcm9tIGEgbm9uLWhleCBlc2NhcGUgc2VxdWVuY2Vcblx0XHRcdG5vbkhleCA6XG5cblx0XHRcdC8vIFJlcGxhY2UgYSBoZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2Ugd2l0aCB0aGUgZW5jb2RlZCBVbmljb2RlIGNvZGUgcG9pbnRcblx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9MTErXG5cdFx0XHQvLyBGb3IgdmFsdWVzIG91dHNpZGUgdGhlIEJhc2ljIE11bHRpbGluZ3VhbCBQbGFuZSAoQk1QKSwgbWFudWFsbHkgY29uc3RydWN0IGFcblx0XHRcdC8vIHN1cnJvZ2F0ZSBwYWlyXG5cdFx0XHRoaWdoIDwgMCA/XG5cdFx0XHRcdFN0cmluZy5mcm9tQ2hhckNvZGUoIGhpZ2ggKyAweDEwMDAwICkgOlxuXHRcdFx0XHRTdHJpbmcuZnJvbUNoYXJDb2RlKCBoaWdoID4+IDEwIHwgMHhEODAwLCBoaWdoICYgMHgzRkYgfCAweERDMDAgKTtcblx0fSxcblxuXHQvLyBDU1Mgc3RyaW5nL2lkZW50aWZpZXIgc2VyaWFsaXphdGlvblxuXHQvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI2NvbW1vbi1zZXJpYWxpemluZy1pZGlvbXNcblx0cmNzc2VzY2FwZSA9IC8oW1xcMC1cXHgxZlxceDdmXXxeLT9cXGQpfF4tJHxbXlxcMC1cXHgxZlxceDdmLVxcdUZGRkZcXHctXS9nLFxuXHRmY3NzZXNjYXBlID0gZnVuY3Rpb24oIGNoLCBhc0NvZGVQb2ludCApIHtcblx0XHRpZiAoIGFzQ29kZVBvaW50ICkge1xuXG5cdFx0XHQvLyBVKzAwMDAgTlVMTCBiZWNvbWVzIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVJcblx0XHRcdGlmICggY2ggPT09IFwiXFwwXCIgKSB7XG5cdFx0XHRcdHJldHVybiBcIlxcdUZGRkRcIjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29udHJvbCBjaGFyYWN0ZXJzIGFuZCAoZGVwZW5kZW50IHVwb24gcG9zaXRpb24pIG51bWJlcnMgZ2V0IGVzY2FwZWQgYXMgY29kZSBwb2ludHNcblx0XHRcdHJldHVybiBjaC5zbGljZSggMCwgLTEgKSArIFwiXFxcXFwiICtcblx0XHRcdFx0Y2guY2hhckNvZGVBdCggY2gubGVuZ3RoIC0gMSApLnRvU3RyaW5nKCAxNiApICsgXCIgXCI7XG5cdFx0fVxuXG5cdFx0Ly8gT3RoZXIgcG90ZW50aWFsbHktc3BlY2lhbCBBU0NJSSBjaGFyYWN0ZXJzIGdldCBiYWNrc2xhc2gtZXNjYXBlZFxuXHRcdHJldHVybiBcIlxcXFxcIiArIGNoO1xuXHR9LFxuXG5cdC8vIFVzZWQgZm9yIGlmcmFtZXNcblx0Ly8gU2VlIHNldERvY3VtZW50KClcblx0Ly8gUmVtb3ZpbmcgdGhlIGZ1bmN0aW9uIHdyYXBwZXIgY2F1c2VzIGEgXCJQZXJtaXNzaW9uIERlbmllZFwiXG5cdC8vIGVycm9yIGluIElFXG5cdHVubG9hZEhhbmRsZXIgPSBmdW5jdGlvbigpIHtcblx0XHRzZXREb2N1bWVudCgpO1xuXHR9LFxuXG5cdGluRGlzYWJsZWRGaWVsZHNldCA9IGFkZENvbWJpbmF0b3IoXG5cdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gdHJ1ZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiZmllbGRzZXRcIjtcblx0XHR9LFxuXHRcdHsgZGlyOiBcInBhcmVudE5vZGVcIiwgbmV4dDogXCJsZWdlbmRcIiB9XG5cdCk7XG5cbi8vIE9wdGltaXplIGZvciBwdXNoLmFwcGx5KCBfLCBOb2RlTGlzdCApXG50cnkge1xuXHRwdXNoLmFwcGx5KFxuXHRcdCggYXJyID0gc2xpY2UuY2FsbCggcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMgKSApLFxuXHRcdHByZWZlcnJlZERvYy5jaGlsZE5vZGVzXG5cdCk7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZDw0LjBcblx0Ly8gRGV0ZWN0IHNpbGVudGx5IGZhaWxpbmcgcHVzaC5hcHBseVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG5cdGFyclsgcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMubGVuZ3RoIF0ubm9kZVR5cGU7XG59IGNhdGNoICggZSApIHtcblx0cHVzaCA9IHsgYXBwbHk6IGFyci5sZW5ndGggP1xuXG5cdFx0Ly8gTGV2ZXJhZ2Ugc2xpY2UgaWYgcG9zc2libGVcblx0XHRmdW5jdGlvbiggdGFyZ2V0LCBlbHMgKSB7XG5cdFx0XHRwdXNoTmF0aXZlLmFwcGx5KCB0YXJnZXQsIHNsaWNlLmNhbGwoIGVscyApICk7XG5cdFx0fSA6XG5cblx0XHQvLyBTdXBwb3J0OiBJRTw5XG5cdFx0Ly8gT3RoZXJ3aXNlIGFwcGVuZCBkaXJlY3RseVxuXHRcdGZ1bmN0aW9uKCB0YXJnZXQsIGVscyApIHtcblx0XHRcdHZhciBqID0gdGFyZ2V0Lmxlbmd0aCxcblx0XHRcdFx0aSA9IDA7XG5cblx0XHRcdC8vIENhbid0IHRydXN0IE5vZGVMaXN0Lmxlbmd0aFxuXHRcdFx0d2hpbGUgKCAoIHRhcmdldFsgaisrIF0gPSBlbHNbIGkrKyBdICkgKSB7fVxuXHRcdFx0dGFyZ2V0Lmxlbmd0aCA9IGogLSAxO1xuXHRcdH1cblx0fTtcbn1cblxuZnVuY3Rpb24gU2l6emxlKCBzZWxlY3RvciwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApIHtcblx0dmFyIG0sIGksIGVsZW0sIG5pZCwgbWF0Y2gsIGdyb3VwcywgbmV3U2VsZWN0b3IsXG5cdFx0bmV3Q29udGV4dCA9IGNvbnRleHQgJiYgY29udGV4dC5vd25lckRvY3VtZW50LFxuXG5cdFx0Ly8gbm9kZVR5cGUgZGVmYXVsdHMgdG8gOSwgc2luY2UgY29udGV4dCBkZWZhdWx0cyB0byBkb2N1bWVudFxuXHRcdG5vZGVUeXBlID0gY29udGV4dCA/IGNvbnRleHQubm9kZVR5cGUgOiA5O1xuXG5cdHJlc3VsdHMgPSByZXN1bHRzIHx8IFtdO1xuXG5cdC8vIFJldHVybiBlYXJseSBmcm9tIGNhbGxzIHdpdGggaW52YWxpZCBzZWxlY3RvciBvciBjb250ZXh0XG5cdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiIHx8ICFzZWxlY3RvciB8fFxuXHRcdG5vZGVUeXBlICE9PSAxICYmIG5vZGVUeXBlICE9PSA5ICYmIG5vZGVUeXBlICE9PSAxMSApIHtcblxuXHRcdHJldHVybiByZXN1bHRzO1xuXHR9XG5cblx0Ly8gVHJ5IHRvIHNob3J0Y3V0IGZpbmQgb3BlcmF0aW9ucyAoYXMgb3Bwb3NlZCB0byBmaWx0ZXJzKSBpbiBIVE1MIGRvY3VtZW50c1xuXHRpZiAoICFzZWVkICkge1xuXHRcdHNldERvY3VtZW50KCBjb250ZXh0ICk7XG5cdFx0Y29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7XG5cblx0XHRpZiAoIGRvY3VtZW50SXNIVE1MICkge1xuXG5cdFx0XHQvLyBJZiB0aGUgc2VsZWN0b3IgaXMgc3VmZmljaWVudGx5IHNpbXBsZSwgdHJ5IHVzaW5nIGEgXCJnZXQqQnkqXCIgRE9NIG1ldGhvZFxuXHRcdFx0Ly8gKGV4Y2VwdGluZyBEb2N1bWVudEZyYWdtZW50IGNvbnRleHQsIHdoZXJlIHRoZSBtZXRob2RzIGRvbid0IGV4aXN0KVxuXHRcdFx0aWYgKCBub2RlVHlwZSAhPT0gMTEgJiYgKCBtYXRjaCA9IHJxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKSApICkge1xuXG5cdFx0XHRcdC8vIElEIHNlbGVjdG9yXG5cdFx0XHRcdGlmICggKCBtID0gbWF0Y2hbIDEgXSApICkge1xuXG5cdFx0XHRcdFx0Ly8gRG9jdW1lbnQgY29udGV4dFxuXHRcdFx0XHRcdGlmICggbm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdFx0XHRpZiAoICggZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG0gKSApICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFLCBPcGVyYSwgV2Via2l0XG5cdFx0XHRcdFx0XHRcdC8vIFRPRE86IGlkZW50aWZ5IHZlcnNpb25zXG5cdFx0XHRcdFx0XHRcdC8vIGdldEVsZW1lbnRCeUlkIGNhbiBtYXRjaCBlbGVtZW50cyBieSBuYW1lIGluc3RlYWQgb2YgSURcblx0XHRcdFx0XHRcdFx0aWYgKCBlbGVtLmlkID09PSBtICkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3VsdHMucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIEVsZW1lbnQgY29udGV4dFxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFLCBPcGVyYSwgV2Via2l0XG5cdFx0XHRcdFx0XHQvLyBUT0RPOiBpZGVudGlmeSB2ZXJzaW9uc1xuXHRcdFx0XHRcdFx0Ly8gZ2V0RWxlbWVudEJ5SWQgY2FuIG1hdGNoIGVsZW1lbnRzIGJ5IG5hbWUgaW5zdGVhZCBvZiBJRFxuXHRcdFx0XHRcdFx0aWYgKCBuZXdDb250ZXh0ICYmICggZWxlbSA9IG5ld0NvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG0gKSApICYmXG5cdFx0XHRcdFx0XHRcdGNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICkgJiZcblx0XHRcdFx0XHRcdFx0ZWxlbS5pZCA9PT0gbSApIHtcblxuXHRcdFx0XHRcdFx0XHRyZXN1bHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFR5cGUgc2VsZWN0b3Jcblx0XHRcdFx0fSBlbHNlIGlmICggbWF0Y2hbIDIgXSApIHtcblx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBzZWxlY3RvciApICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cblx0XHRcdFx0Ly8gQ2xhc3Mgc2VsZWN0b3Jcblx0XHRcdFx0fSBlbHNlIGlmICggKCBtID0gbWF0Y2hbIDMgXSApICYmIHN1cHBvcnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAmJlxuXHRcdFx0XHRcdGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSApIHtcblxuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggbSApICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVGFrZSBhZHZhbnRhZ2Ugb2YgcXVlcnlTZWxlY3RvckFsbFxuXHRcdFx0aWYgKCBzdXBwb3J0LnFzYSAmJlxuXHRcdFx0XHQhbm9ubmF0aXZlU2VsZWN0b3JDYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdICYmXG5cdFx0XHRcdCggIXJidWdneVFTQSB8fCAhcmJ1Z2d5UVNBLnRlc3QoIHNlbGVjdG9yICkgKSAmJlxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDggb25seVxuXHRcdFx0XHQvLyBFeGNsdWRlIG9iamVjdCBlbGVtZW50c1xuXHRcdFx0XHQoIG5vZGVUeXBlICE9PSAxIHx8IGNvbnRleHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gXCJvYmplY3RcIiApICkge1xuXG5cdFx0XHRcdG5ld1NlbGVjdG9yID0gc2VsZWN0b3I7XG5cdFx0XHRcdG5ld0NvbnRleHQgPSBjb250ZXh0O1xuXG5cdFx0XHRcdC8vIHFTQSBjb25zaWRlcnMgZWxlbWVudHMgb3V0c2lkZSBhIHNjb3Bpbmcgcm9vdCB3aGVuIGV2YWx1YXRpbmcgY2hpbGQgb3Jcblx0XHRcdFx0Ly8gZGVzY2VuZGFudCBjb21iaW5hdG9ycywgd2hpY2ggaXMgbm90IHdoYXQgd2Ugd2FudC5cblx0XHRcdFx0Ly8gSW4gc3VjaCBjYXNlcywgd2Ugd29yayBhcm91bmQgdGhlIGJlaGF2aW9yIGJ5IHByZWZpeGluZyBldmVyeSBzZWxlY3RvciBpbiB0aGVcblx0XHRcdFx0Ly8gbGlzdCB3aXRoIGFuIElEIHNlbGVjdG9yIHJlZmVyZW5jaW5nIHRoZSBzY29wZSBjb250ZXh0LlxuXHRcdFx0XHQvLyBUaGUgdGVjaG5pcXVlIGhhcyB0byBiZSB1c2VkIGFzIHdlbGwgd2hlbiBhIGxlYWRpbmcgY29tYmluYXRvciBpcyB1c2VkXG5cdFx0XHRcdC8vIGFzIHN1Y2ggc2VsZWN0b3JzIGFyZSBub3QgcmVjb2duaXplZCBieSBxdWVyeVNlbGVjdG9yQWxsLlxuXHRcdFx0XHQvLyBUaGFua3MgdG8gQW5kcmV3IER1cG9udCBmb3IgdGhpcyB0ZWNobmlxdWUuXG5cdFx0XHRcdGlmICggbm9kZVR5cGUgPT09IDEgJiZcblx0XHRcdFx0XHQoIHJkZXNjZW5kLnRlc3QoIHNlbGVjdG9yICkgfHwgcmNvbWJpbmF0b3JzLnRlc3QoIHNlbGVjdG9yICkgKSApIHtcblxuXHRcdFx0XHRcdC8vIEV4cGFuZCBjb250ZXh0IGZvciBzaWJsaW5nIHNlbGVjdG9yc1xuXHRcdFx0XHRcdG5ld0NvbnRleHQgPSByc2libGluZy50ZXN0KCBzZWxlY3RvciApICYmIHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fFxuXHRcdFx0XHRcdFx0Y29udGV4dDtcblxuXHRcdFx0XHRcdC8vIFdlIGNhbiB1c2UgOnNjb3BlIGluc3RlYWQgb2YgdGhlIElEIGhhY2sgaWYgdGhlIGJyb3dzZXJcblx0XHRcdFx0XHQvLyBzdXBwb3J0cyBpdCAmIGlmIHdlJ3JlIG5vdCBjaGFuZ2luZyB0aGUgY29udGV4dC5cblx0XHRcdFx0XHRpZiAoIG5ld0NvbnRleHQgIT09IGNvbnRleHQgfHwgIXN1cHBvcnQuc2NvcGUgKSB7XG5cblx0XHRcdFx0XHRcdC8vIENhcHR1cmUgdGhlIGNvbnRleHQgSUQsIHNldHRpbmcgaXQgZmlyc3QgaWYgbmVjZXNzYXJ5XG5cdFx0XHRcdFx0XHRpZiAoICggbmlkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoIFwiaWRcIiApICkgKSB7XG5cdFx0XHRcdFx0XHRcdG5pZCA9IG5pZC5yZXBsYWNlKCByY3NzZXNjYXBlLCBmY3NzZXNjYXBlICk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRjb250ZXh0LnNldEF0dHJpYnV0ZSggXCJpZFwiLCAoIG5pZCA9IGV4cGFuZG8gKSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFByZWZpeCBldmVyeSBzZWxlY3RvciBpbiB0aGUgbGlzdFxuXHRcdFx0XHRcdGdyb3VwcyA9IHRva2VuaXplKCBzZWxlY3RvciApO1xuXHRcdFx0XHRcdGkgPSBncm91cHMubGVuZ3RoO1xuXHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0Z3JvdXBzWyBpIF0gPSAoIG5pZCA/IFwiI1wiICsgbmlkIDogXCI6c2NvcGVcIiApICsgXCIgXCIgK1xuXHRcdFx0XHRcdFx0XHR0b1NlbGVjdG9yKCBncm91cHNbIGkgXSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRuZXdTZWxlY3RvciA9IGdyb3Vwcy5qb2luKCBcIixcIiApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLFxuXHRcdFx0XHRcdFx0bmV3Q29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCBuZXdTZWxlY3RvciApXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0fSBjYXRjaCAoIHFzYUVycm9yICkge1xuXHRcdFx0XHRcdG5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGUoIHNlbGVjdG9yLCB0cnVlICk7XG5cdFx0XHRcdH0gZmluYWxseSB7XG5cdFx0XHRcdFx0aWYgKCBuaWQgPT09IGV4cGFuZG8gKSB7XG5cdFx0XHRcdFx0XHRjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZSggXCJpZFwiICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQWxsIG90aGVyc1xuXHRyZXR1cm4gc2VsZWN0KCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICksIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUga2V5LXZhbHVlIGNhY2hlcyBvZiBsaW1pdGVkIHNpemVcbiAqIEByZXR1cm5zIHtmdW5jdGlvbihzdHJpbmcsIG9iamVjdCl9IFJldHVybnMgdGhlIE9iamVjdCBkYXRhIGFmdGVyIHN0b3JpbmcgaXQgb24gaXRzZWxmIHdpdGhcbiAqXHRwcm9wZXJ0eSBuYW1lIHRoZSAoc3BhY2Utc3VmZml4ZWQpIHN0cmluZyBhbmQgKGlmIHRoZSBjYWNoZSBpcyBsYXJnZXIgdGhhbiBFeHByLmNhY2hlTGVuZ3RoKVxuICpcdGRlbGV0aW5nIHRoZSBvbGRlc3QgZW50cnlcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2FjaGUoKSB7XG5cdHZhciBrZXlzID0gW107XG5cblx0ZnVuY3Rpb24gY2FjaGUoIGtleSwgdmFsdWUgKSB7XG5cblx0XHQvLyBVc2UgKGtleSArIFwiIFwiKSB0byBhdm9pZCBjb2xsaXNpb24gd2l0aCBuYXRpdmUgcHJvdG90eXBlIHByb3BlcnRpZXMgKHNlZSBJc3N1ZSAjMTU3KVxuXHRcdGlmICgga2V5cy5wdXNoKCBrZXkgKyBcIiBcIiApID4gRXhwci5jYWNoZUxlbmd0aCApIHtcblxuXHRcdFx0Ly8gT25seSBrZWVwIHRoZSBtb3N0IHJlY2VudCBlbnRyaWVzXG5cdFx0XHRkZWxldGUgY2FjaGVbIGtleXMuc2hpZnQoKSBdO1xuXHRcdH1cblx0XHRyZXR1cm4gKCBjYWNoZVsga2V5ICsgXCIgXCIgXSA9IHZhbHVlICk7XG5cdH1cblx0cmV0dXJuIGNhY2hlO1xufVxuXG4vKipcbiAqIE1hcmsgYSBmdW5jdGlvbiBmb3Igc3BlY2lhbCB1c2UgYnkgU2l6emxlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gbWFya1xuICovXG5mdW5jdGlvbiBtYXJrRnVuY3Rpb24oIGZuICkge1xuXHRmblsgZXhwYW5kbyBdID0gdHJ1ZTtcblx0cmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIFN1cHBvcnQgdGVzdGluZyB1c2luZyBhbiBlbGVtZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBQYXNzZWQgdGhlIGNyZWF0ZWQgZWxlbWVudCBhbmQgcmV0dXJucyBhIGJvb2xlYW4gcmVzdWx0XG4gKi9cbmZ1bmN0aW9uIGFzc2VydCggZm4gKSB7XG5cdHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZmllbGRzZXRcIiApO1xuXG5cdHRyeSB7XG5cdFx0cmV0dXJuICEhZm4oIGVsICk7XG5cdH0gY2F0Y2ggKCBlICkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSBmaW5hbGx5IHtcblxuXHRcdC8vIFJlbW92ZSBmcm9tIGl0cyBwYXJlbnQgYnkgZGVmYXVsdFxuXHRcdGlmICggZWwucGFyZW50Tm9kZSApIHtcblx0XHRcdGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGVsICk7XG5cdFx0fVxuXG5cdFx0Ly8gcmVsZWFzZSBtZW1vcnkgaW4gSUVcblx0XHRlbCA9IG51bGw7XG5cdH1cbn1cblxuLyoqXG4gKiBBZGRzIHRoZSBzYW1lIGhhbmRsZXIgZm9yIGFsbCBvZiB0aGUgc3BlY2lmaWVkIGF0dHJzXG4gKiBAcGFyYW0ge1N0cmluZ30gYXR0cnMgUGlwZS1zZXBhcmF0ZWQgbGlzdCBvZiBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyIFRoZSBtZXRob2QgdGhhdCB3aWxsIGJlIGFwcGxpZWRcbiAqL1xuZnVuY3Rpb24gYWRkSGFuZGxlKCBhdHRycywgaGFuZGxlciApIHtcblx0dmFyIGFyciA9IGF0dHJzLnNwbGl0KCBcInxcIiApLFxuXHRcdGkgPSBhcnIubGVuZ3RoO1xuXG5cdHdoaWxlICggaS0tICkge1xuXHRcdEV4cHIuYXR0ckhhbmRsZVsgYXJyWyBpIF0gXSA9IGhhbmRsZXI7XG5cdH1cbn1cblxuLyoqXG4gKiBDaGVja3MgZG9jdW1lbnQgb3JkZXIgb2YgdHdvIHNpYmxpbmdzXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGFcbiAqIEBwYXJhbSB7RWxlbWVudH0gYlxuICogQHJldHVybnMge051bWJlcn0gUmV0dXJucyBsZXNzIHRoYW4gMCBpZiBhIHByZWNlZGVzIGIsIGdyZWF0ZXIgdGhhbiAwIGlmIGEgZm9sbG93cyBiXG4gKi9cbmZ1bmN0aW9uIHNpYmxpbmdDaGVjayggYSwgYiApIHtcblx0dmFyIGN1ciA9IGIgJiYgYSxcblx0XHRkaWZmID0gY3VyICYmIGEubm9kZVR5cGUgPT09IDEgJiYgYi5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0YS5zb3VyY2VJbmRleCAtIGIuc291cmNlSW5kZXg7XG5cblx0Ly8gVXNlIElFIHNvdXJjZUluZGV4IGlmIGF2YWlsYWJsZSBvbiBib3RoIG5vZGVzXG5cdGlmICggZGlmZiApIHtcblx0XHRyZXR1cm4gZGlmZjtcblx0fVxuXG5cdC8vIENoZWNrIGlmIGIgZm9sbG93cyBhXG5cdGlmICggY3VyICkge1xuXHRcdHdoaWxlICggKCBjdXIgPSBjdXIubmV4dFNpYmxpbmcgKSApIHtcblx0XHRcdGlmICggY3VyID09PSBiICkge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGEgPyAxIDogLTE7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBpbnB1dCB0eXBlc1xuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW5wdXRQc2V1ZG8oIHR5cGUgKSB7XG5cdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRyZXR1cm4gbmFtZSA9PT0gXCJpbnB1dFwiICYmIGVsZW0udHlwZSA9PT0gdHlwZTtcblx0fTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdG8gdXNlIGluIHBzZXVkb3MgZm9yIGJ1dHRvbnNcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJ1dHRvblBzZXVkbyggdHlwZSApIHtcblx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHZhciBuYW1lID0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdHJldHVybiAoIG5hbWUgPT09IFwiaW5wdXRcIiB8fCBuYW1lID09PSBcImJ1dHRvblwiICkgJiYgZWxlbS50eXBlID09PSB0eXBlO1xuXHR9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgOmVuYWJsZWQvOmRpc2FibGVkXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGRpc2FibGVkIHRydWUgZm9yIDpkaXNhYmxlZDsgZmFsc2UgZm9yIDplbmFibGVkXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZURpc2FibGVkUHNldWRvKCBkaXNhYmxlZCApIHtcblxuXHQvLyBLbm93biA6ZGlzYWJsZWQgZmFsc2UgcG9zaXRpdmVzOiBmaWVsZHNldFtkaXNhYmxlZF0gPiBsZWdlbmQ6bnRoLW9mLXR5cGUobisyKSA6Y2FuLWRpc2FibGVcblx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gT25seSBjZXJ0YWluIGVsZW1lbnRzIGNhbiBtYXRjaCA6ZW5hYmxlZCBvciA6ZGlzYWJsZWRcblx0XHQvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNzZWxlY3Rvci1lbmFibGVkXG5cdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjc2VsZWN0b3ItZGlzYWJsZWRcblx0XHRpZiAoIFwiZm9ybVwiIGluIGVsZW0gKSB7XG5cblx0XHRcdC8vIENoZWNrIGZvciBpbmhlcml0ZWQgZGlzYWJsZWRuZXNzIG9uIHJlbGV2YW50IG5vbi1kaXNhYmxlZCBlbGVtZW50czpcblx0XHRcdC8vICogbGlzdGVkIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50cyBpbiBhIGRpc2FibGVkIGZpZWxkc2V0XG5cdFx0XHQvLyAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjY2F0ZWdvcnktbGlzdGVkXG5cdFx0XHQvLyAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjY29uY2VwdC1mZS1kaXNhYmxlZFxuXHRcdFx0Ly8gKiBvcHRpb24gZWxlbWVudHMgaW4gYSBkaXNhYmxlZCBvcHRncm91cFxuXHRcdFx0Ly8gICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI2NvbmNlcHQtb3B0aW9uLWRpc2FibGVkXG5cdFx0XHQvLyBBbGwgc3VjaCBlbGVtZW50cyBoYXZlIGEgXCJmb3JtXCIgcHJvcGVydHkuXG5cdFx0XHRpZiAoIGVsZW0ucGFyZW50Tm9kZSAmJiBlbGVtLmRpc2FibGVkID09PSBmYWxzZSApIHtcblxuXHRcdFx0XHQvLyBPcHRpb24gZWxlbWVudHMgZGVmZXIgdG8gYSBwYXJlbnQgb3B0Z3JvdXAgaWYgcHJlc2VudFxuXHRcdFx0XHRpZiAoIFwibGFiZWxcIiBpbiBlbGVtICkge1xuXHRcdFx0XHRcdGlmICggXCJsYWJlbFwiIGluIGVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtLnBhcmVudE5vZGUuZGlzYWJsZWQgPT09IGRpc2FibGVkO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgNiAtIDExXG5cdFx0XHRcdC8vIFVzZSB0aGUgaXNEaXNhYmxlZCBzaG9ydGN1dCBwcm9wZXJ0eSB0byBjaGVjayBmb3IgZGlzYWJsZWQgZmllbGRzZXQgYW5jZXN0b3JzXG5cdFx0XHRcdHJldHVybiBlbGVtLmlzRGlzYWJsZWQgPT09IGRpc2FibGVkIHx8XG5cblx0XHRcdFx0XHQvLyBXaGVyZSB0aGVyZSBpcyBubyBpc0Rpc2FibGVkLCBjaGVjayBtYW51YWxseVxuXHRcdFx0XHRcdC8qIGpzaGludCAtVzAxOCAqL1xuXHRcdFx0XHRcdGVsZW0uaXNEaXNhYmxlZCAhPT0gIWRpc2FibGVkICYmXG5cdFx0XHRcdFx0aW5EaXNhYmxlZEZpZWxkc2V0KCBlbGVtICkgPT09IGRpc2FibGVkO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cblx0XHQvLyBUcnkgdG8gd2lubm93IG91dCBlbGVtZW50cyB0aGF0IGNhbid0IGJlIGRpc2FibGVkIGJlZm9yZSB0cnVzdGluZyB0aGUgZGlzYWJsZWQgcHJvcGVydHkuXG5cdFx0Ly8gU29tZSB2aWN0aW1zIGdldCBjYXVnaHQgaW4gb3VyIG5ldCAobGFiZWwsIGxlZ2VuZCwgbWVudSwgdHJhY2spLCBidXQgaXQgc2hvdWxkbid0XG5cdFx0Ly8gZXZlbiBleGlzdCBvbiB0aGVtLCBsZXQgYWxvbmUgaGF2ZSBhIGJvb2xlYW4gdmFsdWUuXG5cdFx0fSBlbHNlIGlmICggXCJsYWJlbFwiIGluIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0Ly8gUmVtYWluaW5nIGVsZW1lbnRzIGFyZSBuZWl0aGVyIDplbmFibGVkIG5vciA6ZGlzYWJsZWRcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBwb3NpdGlvbmFsc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZm4gKSB7XG5cdHJldHVybiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBhcmd1bWVudCApIHtcblx0XHRhcmd1bWVudCA9ICthcmd1bWVudDtcblx0XHRyZXR1cm4gbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcyApIHtcblx0XHRcdHZhciBqLFxuXHRcdFx0XHRtYXRjaEluZGV4ZXMgPSBmbiggW10sIHNlZWQubGVuZ3RoLCBhcmd1bWVudCApLFxuXHRcdFx0XHRpID0gbWF0Y2hJbmRleGVzLmxlbmd0aDtcblxuXHRcdFx0Ly8gTWF0Y2ggZWxlbWVudHMgZm91bmQgYXQgdGhlIHNwZWNpZmllZCBpbmRleGVzXG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCBzZWVkWyAoIGogPSBtYXRjaEluZGV4ZXNbIGkgXSApIF0gKSB7XG5cdFx0XHRcdFx0c2VlZFsgaiBdID0gISggbWF0Y2hlc1sgaiBdID0gc2VlZFsgaiBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9ICk7XG5cdH0gKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgYSBub2RlIGZvciB2YWxpZGl0eSBhcyBhIFNpenpsZSBjb250ZXh0XG4gKiBAcGFyYW0ge0VsZW1lbnR8T2JqZWN0PX0gY29udGV4dFxuICogQHJldHVybnMge0VsZW1lbnR8T2JqZWN0fEJvb2xlYW59IFRoZSBpbnB1dCBub2RlIGlmIGFjY2VwdGFibGUsIG90aGVyd2lzZSBhIGZhbHN5IHZhbHVlXG4gKi9cbmZ1bmN0aW9uIHRlc3RDb250ZXh0KCBjb250ZXh0ICkge1xuXHRyZXR1cm4gY29udGV4dCAmJiB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBjb250ZXh0O1xufVxuXG4vLyBFeHBvc2Ugc3VwcG9ydCB2YXJzIGZvciBjb252ZW5pZW5jZVxuc3VwcG9ydCA9IFNpenpsZS5zdXBwb3J0ID0ge307XG5cbi8qKlxuICogRGV0ZWN0cyBYTUwgbm9kZXNcbiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3R9IGVsZW0gQW4gZWxlbWVudCBvciBhIGRvY3VtZW50XG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gVHJ1ZSBpZmYgZWxlbSBpcyBhIG5vbi1IVE1MIFhNTCBub2RlXG4gKi9cbmlzWE1MID0gU2l6emxlLmlzWE1MID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdHZhciBuYW1lc3BhY2UgPSBlbGVtICYmIGVsZW0ubmFtZXNwYWNlVVJJLFxuXHRcdGRvY0VsZW0gPSBlbGVtICYmICggZWxlbS5vd25lckRvY3VtZW50IHx8IGVsZW0gKS5kb2N1bWVudEVsZW1lbnQ7XG5cblx0Ly8gU3VwcG9ydDogSUUgPD04XG5cdC8vIEFzc3VtZSBIVE1MIHdoZW4gZG9jdW1lbnRFbGVtZW50IGRvZXNuJ3QgeWV0IGV4aXN0LCBzdWNoIGFzIGluc2lkZSBsb2FkaW5nIGlmcmFtZXNcblx0Ly8gaHR0cHM6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzQ4MzNcblx0cmV0dXJuICFyaHRtbC50ZXN0KCBuYW1lc3BhY2UgfHwgZG9jRWxlbSAmJiBkb2NFbGVtLm5vZGVOYW1lIHx8IFwiSFRNTFwiICk7XG59O1xuXG4vKipcbiAqIFNldHMgZG9jdW1lbnQtcmVsYXRlZCB2YXJpYWJsZXMgb25jZSBiYXNlZCBvbiB0aGUgY3VycmVudCBkb2N1bWVudFxuICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gW2RvY10gQW4gZWxlbWVudCBvciBkb2N1bWVudCBvYmplY3QgdG8gdXNlIHRvIHNldCB0aGUgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGN1cnJlbnQgZG9jdW1lbnRcbiAqL1xuc2V0RG9jdW1lbnQgPSBTaXp6bGUuc2V0RG9jdW1lbnQgPSBmdW5jdGlvbiggbm9kZSApIHtcblx0dmFyIGhhc0NvbXBhcmUsIHN1YldpbmRvdyxcblx0XHRkb2MgPSBub2RlID8gbm9kZS5vd25lckRvY3VtZW50IHx8IG5vZGUgOiBwcmVmZXJyZWREb2M7XG5cblx0Ly8gUmV0dXJuIGVhcmx5IGlmIGRvYyBpcyBpbnZhbGlkIG9yIGFscmVhZHkgc2VsZWN0ZWRcblx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0aWYgKCBkb2MgPT0gZG9jdW1lbnQgfHwgZG9jLm5vZGVUeXBlICE9PSA5IHx8ICFkb2MuZG9jdW1lbnRFbGVtZW50ICkge1xuXHRcdHJldHVybiBkb2N1bWVudDtcblx0fVxuXG5cdC8vIFVwZGF0ZSBnbG9iYWwgdmFyaWFibGVzXG5cdGRvY3VtZW50ID0gZG9jO1xuXHRkb2NFbGVtID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXHRkb2N1bWVudElzSFRNTCA9ICFpc1hNTCggZG9jdW1lbnQgKTtcblxuXHQvLyBTdXBwb3J0OiBJRSA5IC0gMTErLCBFZGdlIDEyIC0gMTgrXG5cdC8vIEFjY2Vzc2luZyBpZnJhbWUgZG9jdW1lbnRzIGFmdGVyIHVubG9hZCB0aHJvd3MgXCJwZXJtaXNzaW9uIGRlbmllZFwiIGVycm9ycyAoalF1ZXJ5ICMxMzkzNilcblx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0aWYgKCBwcmVmZXJyZWREb2MgIT0gZG9jdW1lbnQgJiZcblx0XHQoIHN1YldpbmRvdyA9IGRvY3VtZW50LmRlZmF1bHRWaWV3ICkgJiYgc3ViV2luZG93LnRvcCAhPT0gc3ViV2luZG93ICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgMTEsIEVkZ2Vcblx0XHRpZiAoIHN1YldpbmRvdy5hZGRFdmVudExpc3RlbmVyICkge1xuXHRcdFx0c3ViV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIFwidW5sb2FkXCIsIHVubG9hZEhhbmRsZXIsIGZhbHNlICk7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTAgb25seVxuXHRcdH0gZWxzZSBpZiAoIHN1YldpbmRvdy5hdHRhY2hFdmVudCApIHtcblx0XHRcdHN1YldpbmRvdy5hdHRhY2hFdmVudCggXCJvbnVubG9hZFwiLCB1bmxvYWRIYW5kbGVyICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gU3VwcG9ydDogSUUgOCAtIDExKywgRWRnZSAxMiAtIDE4KywgQ2hyb21lIDw9MTYgLSAyNSBvbmx5LCBGaXJlZm94IDw9My42IC0gMzEgb25seSxcblx0Ly8gU2FmYXJpIDQgLSA1IG9ubHksIE9wZXJhIDw9MTEuNiAtIDEyLnggb25seVxuXHQvLyBJRS9FZGdlICYgb2xkZXIgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCB0aGUgOnNjb3BlIHBzZXVkby1jbGFzcy5cblx0Ly8gU3VwcG9ydDogU2FmYXJpIDYuMCBvbmx5XG5cdC8vIFNhZmFyaSA2LjAgc3VwcG9ydHMgOnNjb3BlIGJ1dCBpdCdzIGFuIGFsaWFzIG9mIDpyb290IHRoZXJlLlxuXHRzdXBwb3J0LnNjb3BlID0gYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdFx0ZG9jRWxlbS5hcHBlbmRDaGlsZCggZWwgKS5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApICk7XG5cdFx0cmV0dXJuIHR5cGVvZiBlbC5xdWVyeVNlbGVjdG9yQWxsICE9PSBcInVuZGVmaW5lZFwiICYmXG5cdFx0XHQhZWwucXVlcnlTZWxlY3RvckFsbCggXCI6c2NvcGUgZmllbGRzZXQgZGl2XCIgKS5sZW5ndGg7XG5cdH0gKTtcblxuXHQvKiBBdHRyaWJ1dGVzXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBTdXBwb3J0OiBJRTw4XG5cdC8vIFZlcmlmeSB0aGF0IGdldEF0dHJpYnV0ZSByZWFsbHkgcmV0dXJucyBhdHRyaWJ1dGVzIGFuZCBub3QgcHJvcGVydGllc1xuXHQvLyAoZXhjZXB0aW5nIElFOCBib29sZWFucylcblx0c3VwcG9ydC5hdHRyaWJ1dGVzID0gYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdFx0ZWwuY2xhc3NOYW1lID0gXCJpXCI7XG5cdFx0cmV0dXJuICFlbC5nZXRBdHRyaWJ1dGUoIFwiY2xhc3NOYW1lXCIgKTtcblx0fSApO1xuXG5cdC8qIGdldEVsZW1lbnQocylCeSpcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIENoZWNrIGlmIGdldEVsZW1lbnRzQnlUYWdOYW1lKFwiKlwiKSByZXR1cm5zIG9ubHkgZWxlbWVudHNcblx0c3VwcG9ydC5nZXRFbGVtZW50c0J5VGFnTmFtZSA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRcdGVsLmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVDb21tZW50KCBcIlwiICkgKTtcblx0XHRyZXR1cm4gIWVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcIipcIiApLmxlbmd0aDtcblx0fSApO1xuXG5cdC8vIFN1cHBvcnQ6IElFPDlcblx0c3VwcG9ydC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lID0gcm5hdGl2ZS50ZXN0KCBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICk7XG5cblx0Ly8gU3VwcG9ydDogSUU8MTBcblx0Ly8gQ2hlY2sgaWYgZ2V0RWxlbWVudEJ5SWQgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lXG5cdC8vIFRoZSBicm9rZW4gZ2V0RWxlbWVudEJ5SWQgbWV0aG9kcyBkb24ndCBwaWNrIHVwIHByb2dyYW1tYXRpY2FsbHktc2V0IG5hbWVzLFxuXHQvLyBzbyB1c2UgYSByb3VuZGFib3V0IGdldEVsZW1lbnRzQnlOYW1lIHRlc3Rcblx0c3VwcG9ydC5nZXRCeUlkID0gYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdFx0ZG9jRWxlbS5hcHBlbmRDaGlsZCggZWwgKS5pZCA9IGV4cGFuZG87XG5cdFx0cmV0dXJuICFkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSB8fCAhZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoIGV4cGFuZG8gKS5sZW5ndGg7XG5cdH0gKTtcblxuXHQvLyBJRCBmaWx0ZXIgYW5kIGZpbmRcblx0aWYgKCBzdXBwb3J0LmdldEJ5SWQgKSB7XG5cdFx0RXhwci5maWx0ZXJbIFwiSURcIiBdID0gZnVuY3Rpb24oIGlkICkge1xuXHRcdFx0dmFyIGF0dHJJZCA9IGlkLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggXCJpZFwiICkgPT09IGF0dHJJZDtcblx0XHRcdH07XG5cdFx0fTtcblx0XHRFeHByLmZpbmRbIFwiSURcIiBdID0gZnVuY3Rpb24oIGlkLCBjb250ZXh0ICkge1xuXHRcdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkb2N1bWVudElzSFRNTCApIHtcblx0XHRcdFx0dmFyIGVsZW0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBpZCApO1xuXHRcdFx0XHRyZXR1cm4gZWxlbSA/IFsgZWxlbSBdIDogW107XG5cdFx0XHR9XG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRFeHByLmZpbHRlclsgXCJJRFwiIF0gPSAgZnVuY3Rpb24oIGlkICkge1xuXHRcdFx0dmFyIGF0dHJJZCA9IGlkLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHZhciBub2RlID0gdHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuXHRcdFx0XHRcdGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggXCJpZFwiICk7XG5cdFx0XHRcdHJldHVybiBub2RlICYmIG5vZGUudmFsdWUgPT09IGF0dHJJZDtcblx0XHRcdH07XG5cdFx0fTtcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDYgLSA3IG9ubHlcblx0XHQvLyBnZXRFbGVtZW50QnlJZCBpcyBub3QgcmVsaWFibGUgYXMgYSBmaW5kIHNob3J0Y3V0XG5cdFx0RXhwci5maW5kWyBcIklEXCIgXSA9IGZ1bmN0aW9uKCBpZCwgY29udGV4dCApIHtcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRcdHZhciBub2RlLCBpLCBlbGVtcyxcblx0XHRcdFx0XHRlbGVtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggaWQgKTtcblxuXHRcdFx0XHRpZiAoIGVsZW0gKSB7XG5cblx0XHRcdFx0XHQvLyBWZXJpZnkgdGhlIGlkIGF0dHJpYnV0ZVxuXHRcdFx0XHRcdG5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRcdGlmICggbm9kZSAmJiBub2RlLnZhbHVlID09PSBpZCApIHtcblx0XHRcdFx0XHRcdHJldHVybiBbIGVsZW0gXTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBGYWxsIGJhY2sgb24gZ2V0RWxlbWVudHNCeU5hbWVcblx0XHRcdFx0XHRlbGVtcyA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeU5hbWUoIGlkICk7XG5cdFx0XHRcdFx0aSA9IDA7XG5cdFx0XHRcdFx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtc1sgaSsrIF0gKSApIHtcblx0XHRcdFx0XHRcdG5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRcdFx0aWYgKCBub2RlICYmIG5vZGUudmFsdWUgPT09IGlkICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gWyBlbGVtIF07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIFtdO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHQvLyBUYWdcblx0RXhwci5maW5kWyBcIlRBR1wiIF0gPSBzdXBwb3J0LmdldEVsZW1lbnRzQnlUYWdOYW1lID9cblx0XHRmdW5jdGlvbiggdGFnLCBjb250ZXh0ICkge1xuXHRcdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRcdFx0cmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRhZyApO1xuXG5cdFx0XHQvLyBEb2N1bWVudEZyYWdtZW50IG5vZGVzIGRvbid0IGhhdmUgZ0VCVE5cblx0XHRcdH0gZWxzZSBpZiAoIHN1cHBvcnQucXNhICkge1xuXHRcdFx0XHRyZXR1cm4gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCB0YWcgKTtcblx0XHRcdH1cblx0XHR9IDpcblxuXHRcdGZ1bmN0aW9uKCB0YWcsIGNvbnRleHQgKSB7XG5cdFx0XHR2YXIgZWxlbSxcblx0XHRcdFx0dG1wID0gW10sXG5cdFx0XHRcdGkgPSAwLFxuXG5cdFx0XHRcdC8vIEJ5IGhhcHB5IGNvaW5jaWRlbmNlLCBhIChicm9rZW4pIGdFQlROIGFwcGVhcnMgb24gRG9jdW1lbnRGcmFnbWVudCBub2RlcyB0b29cblx0XHRcdFx0cmVzdWx0cyA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRhZyApO1xuXG5cdFx0XHQvLyBGaWx0ZXIgb3V0IHBvc3NpYmxlIGNvbW1lbnRzXG5cdFx0XHRpZiAoIHRhZyA9PT0gXCIqXCIgKSB7XG5cdFx0XHRcdHdoaWxlICggKCBlbGVtID0gcmVzdWx0c1sgaSsrIF0gKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRcdFx0XHR0bXAucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB0bXA7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHR9O1xuXG5cdC8vIENsYXNzXG5cdEV4cHIuZmluZFsgXCJDTEFTU1wiIF0gPSBzdXBwb3J0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgJiYgZnVuY3Rpb24oIGNsYXNzTmFtZSwgY29udGV4dCApIHtcblx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCBjbGFzc05hbWUgKTtcblx0XHR9XG5cdH07XG5cblx0LyogUVNBL21hdGNoZXNTZWxlY3RvclxuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gUVNBIGFuZCBtYXRjaGVzU2VsZWN0b3Igc3VwcG9ydFxuXG5cdC8vIG1hdGNoZXNTZWxlY3Rvcig6YWN0aXZlKSByZXBvcnRzIGZhbHNlIHdoZW4gdHJ1ZSAoSUU5L09wZXJhIDExLjUpXG5cdHJidWdneU1hdGNoZXMgPSBbXTtcblxuXHQvLyBxU2EoOmZvY3VzKSByZXBvcnRzIGZhbHNlIHdoZW4gdHJ1ZSAoQ2hyb21lIDIxKVxuXHQvLyBXZSBhbGxvdyB0aGlzIGJlY2F1c2Ugb2YgYSBidWcgaW4gSUU4LzkgdGhhdCB0aHJvd3MgYW4gZXJyb3Jcblx0Ly8gd2hlbmV2ZXIgYGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRgIGlzIGFjY2Vzc2VkIG9uIGFuIGlmcmFtZVxuXHQvLyBTbywgd2UgYWxsb3cgOmZvY3VzIHRvIHBhc3MgdGhyb3VnaCBRU0EgYWxsIHRoZSB0aW1lIHRvIGF2b2lkIHRoZSBJRSBlcnJvclxuXHQvLyBTZWUgaHR0cHM6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzEzMzc4XG5cdHJidWdneVFTQSA9IFtdO1xuXG5cdGlmICggKCBzdXBwb3J0LnFzYSA9IHJuYXRpdmUudGVzdCggZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCApICkgKSB7XG5cblx0XHQvLyBCdWlsZCBRU0EgcmVnZXhcblx0XHQvLyBSZWdleCBzdHJhdGVneSBhZG9wdGVkIGZyb20gRGllZ28gUGVyaW5pXG5cdFx0YXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cblx0XHRcdHZhciBpbnB1dDtcblxuXHRcdFx0Ly8gU2VsZWN0IGlzIHNldCB0byBlbXB0eSBzdHJpbmcgb24gcHVycG9zZVxuXHRcdFx0Ly8gVGhpcyBpcyB0byB0ZXN0IElFJ3MgdHJlYXRtZW50IG9mIG5vdCBleHBsaWNpdGx5XG5cdFx0XHQvLyBzZXR0aW5nIGEgYm9vbGVhbiBjb250ZW50IGF0dHJpYnV0ZSxcblx0XHRcdC8vIHNpbmNlIGl0cyBwcmVzZW5jZSBzaG91bGQgYmUgZW5vdWdoXG5cdFx0XHQvLyBodHRwczovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTIzNTlcblx0XHRcdGRvY0VsZW0uYXBwZW5kQ2hpbGQoIGVsICkuaW5uZXJIVE1MID0gXCI8YSBpZD0nXCIgKyBleHBhbmRvICsgXCInPjwvYT5cIiArXG5cdFx0XHRcdFwiPHNlbGVjdCBpZD0nXCIgKyBleHBhbmRvICsgXCItXFxyXFxcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+XCIgK1xuXHRcdFx0XHRcIjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+XCI7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOCwgT3BlcmEgMTEtMTIuMTZcblx0XHRcdC8vIE5vdGhpbmcgc2hvdWxkIGJlIHNlbGVjdGVkIHdoZW4gZW1wdHkgc3RyaW5ncyBmb2xsb3cgXj0gb3IgJD0gb3IgKj1cblx0XHRcdC8vIFRoZSB0ZXN0IGF0dHJpYnV0ZSBtdXN0IGJlIHVua25vd24gaW4gT3BlcmEgYnV0IFwic2FmZVwiIGZvciBXaW5SVFxuXHRcdFx0Ly8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9oaDQ2NTM4OC5hc3B4I2F0dHJpYnV0ZV9zZWN0aW9uXG5cdFx0XHRpZiAoIGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiW21zYWxsb3djYXB0dXJlXj0nJ11cIiApLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiWypeJF09XCIgKyB3aGl0ZXNwYWNlICsgXCIqKD86Jyd8XFxcIlxcXCIpXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogSUU4XG5cdFx0XHQvLyBCb29sZWFuIGF0dHJpYnV0ZXMgYW5kIFwidmFsdWVcIiBhcmUgbm90IHRyZWF0ZWQgY29ycmVjdGx5XG5cdFx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltzZWxlY3RlZF1cIiApLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiXFxcXFtcIiArIHdoaXRlc3BhY2UgKyBcIiooPzp2YWx1ZXxcIiArIGJvb2xlYW5zICsgXCIpXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lPDI5LCBBbmRyb2lkPDQuNCwgU2FmYXJpPDcuMCssIGlPUzw3LjArLCBQaGFudG9tSlM8MS45LjgrXG5cdFx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltpZH49XCIgKyBleHBhbmRvICsgXCItXVwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJ+PVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNSAtIDE4K1xuXHRcdFx0Ly8gSUUgMTEvRWRnZSBkb24ndCBmaW5kIGVsZW1lbnRzIG9uIGEgYFtuYW1lPScnXWAgcXVlcnkgaW4gc29tZSBjYXNlcy5cblx0XHRcdC8vIEFkZGluZyBhIHRlbXBvcmFyeSBhdHRyaWJ1dGUgdG8gdGhlIGRvY3VtZW50IGJlZm9yZSB0aGUgc2VsZWN0aW9uIHdvcmtzXG5cdFx0XHQvLyBhcm91bmQgdGhlIGlzc3VlLlxuXHRcdFx0Ly8gSW50ZXJlc3RpbmdseSwgSUUgMTAgJiBvbGRlciBkb24ndCBzZWVtIHRvIGhhdmUgdGhlIGlzc3VlLlxuXHRcdFx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblx0XHRcdGlucHV0LnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwiXCIgKTtcblx0XHRcdGVsLmFwcGVuZENoaWxkKCBpbnB1dCApO1xuXHRcdFx0aWYgKCAhZWwucXVlcnlTZWxlY3RvckFsbCggXCJbbmFtZT0nJ11cIiApLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiXFxcXFtcIiArIHdoaXRlc3BhY2UgKyBcIipuYW1lXCIgKyB3aGl0ZXNwYWNlICsgXCIqPVwiICtcblx0XHRcdFx0XHR3aGl0ZXNwYWNlICsgXCIqKD86Jyd8XFxcIlxcXCIpXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gV2Via2l0L09wZXJhIC0gOmNoZWNrZWQgc2hvdWxkIHJldHVybiBzZWxlY3RlZCBvcHRpb24gZWxlbWVudHNcblx0XHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTEvUkVDLWNzczMtc2VsZWN0b3JzLTIwMTEwOTI5LyNjaGVja2VkXG5cdFx0XHQvLyBJRTggdGhyb3dzIGVycm9yIGhlcmUgYW5kIHdpbGwgbm90IHNlZSBsYXRlciB0ZXN0c1xuXHRcdFx0aWYgKCAhZWwucXVlcnlTZWxlY3RvckFsbCggXCI6Y2hlY2tlZFwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCI6Y2hlY2tlZFwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IFNhZmFyaSA4KywgaU9TIDgrXG5cdFx0XHQvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODUxXG5cdFx0XHQvLyBJbi1wYWdlIGBzZWxlY3RvciNpZCBzaWJsaW5nLWNvbWJpbmF0b3Igc2VsZWN0b3JgIGZhaWxzXG5cdFx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcImEjXCIgKyBleHBhbmRvICsgXCIrKlwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCIuIy4rWyt+XVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggPD0zLjYgLSA1IG9ubHlcblx0XHRcdC8vIE9sZCBGaXJlZm94IGRvZXNuJ3QgdGhyb3cgb24gYSBiYWRseS1lc2NhcGVkIGlkZW50aWZpZXIuXG5cdFx0XHRlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIlxcXFxcXGZcIiApO1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiW1xcXFxyXFxcXG5cXFxcZl1cIiApO1xuXHRcdH0gKTtcblxuXHRcdGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRcdFx0ZWwuaW5uZXJIVE1MID0gXCI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPlwiICtcblx0XHRcdFx0XCI8c2VsZWN0IGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbi8+PC9zZWxlY3Q+XCI7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IFdpbmRvd3MgOCBOYXRpdmUgQXBwc1xuXHRcdFx0Ly8gVGhlIHR5cGUgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgcmVzdHJpY3RlZCBkdXJpbmcgLmlubmVySFRNTCBhc3NpZ25tZW50XG5cdFx0XHR2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblx0XHRcdGlucHV0LnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIFwiaGlkZGVuXCIgKTtcblx0XHRcdGVsLmFwcGVuZENoaWxkKCBpbnB1dCApLnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwiRFwiICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOFxuXHRcdFx0Ly8gRW5mb3JjZSBjYXNlLXNlbnNpdGl2aXR5IG9mIG5hbWUgYXR0cmlidXRlXG5cdFx0XHRpZiAoIGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiW25hbWU9ZF1cIiApLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwibmFtZVwiICsgd2hpdGVzcGFjZSArIFwiKlsqXiR8IX5dPz1cIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBGRiAzLjUgLSA6ZW5hYmxlZC86ZGlzYWJsZWQgYW5kIGhpZGRlbiBlbGVtZW50cyAoaGlkZGVuIGVsZW1lbnRzIGFyZSBzdGlsbCBlbmFibGVkKVxuXHRcdFx0Ly8gSUU4IHRocm93cyBlcnJvciBoZXJlIGFuZCB3aWxsIG5vdCBzZWUgbGF0ZXIgdGVzdHNcblx0XHRcdGlmICggZWwucXVlcnlTZWxlY3RvckFsbCggXCI6ZW5hYmxlZFwiICkubGVuZ3RoICE9PSAyICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCI6ZW5hYmxlZFwiLCBcIjpkaXNhYmxlZFwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOS0xMStcblx0XHRcdC8vIElFJ3MgOmRpc2FibGVkIHNlbGVjdG9yIGRvZXMgbm90IHBpY2sgdXAgdGhlIGNoaWxkcmVuIG9mIGRpc2FibGVkIGZpZWxkc2V0c1xuXHRcdFx0ZG9jRWxlbS5hcHBlbmRDaGlsZCggZWwgKS5kaXNhYmxlZCA9IHRydWU7XG5cdFx0XHRpZiAoIGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiOmRpc2FibGVkXCIgKS5sZW5ndGggIT09IDIgKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIjplbmFibGVkXCIsIFwiOmRpc2FibGVkXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogT3BlcmEgMTAgLSAxMSBvbmx5XG5cdFx0XHQvLyBPcGVyYSAxMC0xMSBkb2VzIG5vdCB0aHJvdyBvbiBwb3N0LWNvbW1hIGludmFsaWQgcHNldWRvc1xuXHRcdFx0ZWwucXVlcnlTZWxlY3RvckFsbCggXCIqLDp4XCIgKTtcblx0XHRcdHJidWdneVFTQS5wdXNoKCBcIiwuKjpcIiApO1xuXHRcdH0gKTtcblx0fVxuXG5cdGlmICggKCBzdXBwb3J0Lm1hdGNoZXNTZWxlY3RvciA9IHJuYXRpdmUudGVzdCggKCBtYXRjaGVzID0gZG9jRWxlbS5tYXRjaGVzIHx8XG5cdFx0ZG9jRWxlbS53ZWJraXRNYXRjaGVzU2VsZWN0b3IgfHxcblx0XHRkb2NFbGVtLm1vek1hdGNoZXNTZWxlY3RvciB8fFxuXHRcdGRvY0VsZW0ub01hdGNoZXNTZWxlY3RvciB8fFxuXHRcdGRvY0VsZW0ubXNNYXRjaGVzU2VsZWN0b3IgKSApICkgKSB7XG5cblx0XHRhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblxuXHRcdFx0Ly8gQ2hlY2sgdG8gc2VlIGlmIGl0J3MgcG9zc2libGUgdG8gZG8gbWF0Y2hlc1NlbGVjdG9yXG5cdFx0XHQvLyBvbiBhIGRpc2Nvbm5lY3RlZCBub2RlIChJRSA5KVxuXHRcdFx0c3VwcG9ydC5kaXNjb25uZWN0ZWRNYXRjaCA9IG1hdGNoZXMuY2FsbCggZWwsIFwiKlwiICk7XG5cblx0XHRcdC8vIFRoaXMgc2hvdWxkIGZhaWwgd2l0aCBhbiBleGNlcHRpb25cblx0XHRcdC8vIEdlY2tvIGRvZXMgbm90IGVycm9yLCByZXR1cm5zIGZhbHNlIGluc3RlYWRcblx0XHRcdG1hdGNoZXMuY2FsbCggZWwsIFwiW3MhPScnXTp4XCIgKTtcblx0XHRcdHJidWdneU1hdGNoZXMucHVzaCggXCIhPVwiLCBwc2V1ZG9zICk7XG5cdFx0fSApO1xuXHR9XG5cblx0cmJ1Z2d5UVNBID0gcmJ1Z2d5UVNBLmxlbmd0aCAmJiBuZXcgUmVnRXhwKCByYnVnZ3lRU0Euam9pbiggXCJ8XCIgKSApO1xuXHRyYnVnZ3lNYXRjaGVzID0gcmJ1Z2d5TWF0Y2hlcy5sZW5ndGggJiYgbmV3IFJlZ0V4cCggcmJ1Z2d5TWF0Y2hlcy5qb2luKCBcInxcIiApICk7XG5cblx0LyogQ29udGFpbnNcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXHRoYXNDb21wYXJlID0gcm5hdGl2ZS50ZXN0KCBkb2NFbGVtLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uICk7XG5cblx0Ly8gRWxlbWVudCBjb250YWlucyBhbm90aGVyXG5cdC8vIFB1cnBvc2VmdWxseSBzZWxmLWV4Y2x1c2l2ZVxuXHQvLyBBcyBpbiwgYW4gZWxlbWVudCBkb2VzIG5vdCBjb250YWluIGl0c2VsZlxuXHRjb250YWlucyA9IGhhc0NvbXBhcmUgfHwgcm5hdGl2ZS50ZXN0KCBkb2NFbGVtLmNvbnRhaW5zICkgP1xuXHRcdGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdFx0dmFyIGFkb3duID0gYS5ub2RlVHlwZSA9PT0gOSA/IGEuZG9jdW1lbnRFbGVtZW50IDogYSxcblx0XHRcdFx0YnVwID0gYiAmJiBiLnBhcmVudE5vZGU7XG5cdFx0XHRyZXR1cm4gYSA9PT0gYnVwIHx8ICEhKCBidXAgJiYgYnVwLm5vZGVUeXBlID09PSAxICYmIChcblx0XHRcdFx0YWRvd24uY29udGFpbnMgP1xuXHRcdFx0XHRcdGFkb3duLmNvbnRhaW5zKCBidXAgKSA6XG5cdFx0XHRcdFx0YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiAmJiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBidXAgKSAmIDE2XG5cdFx0XHQpICk7XG5cdFx0fSA6XG5cdFx0ZnVuY3Rpb24oIGEsIGIgKSB7XG5cdFx0XHRpZiAoIGIgKSB7XG5cdFx0XHRcdHdoaWxlICggKCBiID0gYi5wYXJlbnROb2RlICkgKSB7XG5cdFx0XHRcdFx0aWYgKCBiID09PSBhICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fTtcblxuXHQvKiBTb3J0aW5nXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBEb2N1bWVudCBvcmRlciBzb3J0aW5nXG5cdHNvcnRPcmRlciA9IGhhc0NvbXBhcmUgP1xuXHRmdW5jdGlvbiggYSwgYiApIHtcblxuXHRcdC8vIEZsYWcgZm9yIGR1cGxpY2F0ZSByZW1vdmFsXG5cdFx0aWYgKCBhID09PSBiICkge1xuXHRcdFx0aGFzRHVwbGljYXRlID0gdHJ1ZTtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblxuXHRcdC8vIFNvcnQgb24gbWV0aG9kIGV4aXN0ZW5jZSBpZiBvbmx5IG9uZSBpbnB1dCBoYXMgY29tcGFyZURvY3VtZW50UG9zaXRpb25cblx0XHR2YXIgY29tcGFyZSA9ICFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIC0gIWIuY29tcGFyZURvY3VtZW50UG9zaXRpb247XG5cdFx0aWYgKCBjb21wYXJlICkge1xuXHRcdFx0cmV0dXJuIGNvbXBhcmU7XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsY3VsYXRlIHBvc2l0aW9uIGlmIGJvdGggaW5wdXRzIGJlbG9uZyB0byB0aGUgc2FtZSBkb2N1bWVudFxuXHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdFx0Y29tcGFyZSA9ICggYS5vd25lckRvY3VtZW50IHx8IGEgKSA9PSAoIGIub3duZXJEb2N1bWVudCB8fCBiICkgP1xuXHRcdFx0YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggYiApIDpcblxuXHRcdFx0Ly8gT3RoZXJ3aXNlIHdlIGtub3cgdGhleSBhcmUgZGlzY29ubmVjdGVkXG5cdFx0XHQxO1xuXG5cdFx0Ly8gRGlzY29ubmVjdGVkIG5vZGVzXG5cdFx0aWYgKCBjb21wYXJlICYgMSB8fFxuXHRcdFx0KCAhc3VwcG9ydC5zb3J0RGV0YWNoZWQgJiYgYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggYSApID09PSBjb21wYXJlICkgKSB7XG5cblx0XHRcdC8vIENob29zZSB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IGlzIHJlbGF0ZWQgdG8gb3VyIHByZWZlcnJlZCBkb2N1bWVudFxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRcdGlmICggYSA9PSBkb2N1bWVudCB8fCBhLm93bmVyRG9jdW1lbnQgPT0gcHJlZmVycmVkRG9jICYmXG5cdFx0XHRcdGNvbnRhaW5zKCBwcmVmZXJyZWREb2MsIGEgKSApIHtcblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0aWYgKCBiID09IGRvY3VtZW50IHx8IGIub3duZXJEb2N1bWVudCA9PSBwcmVmZXJyZWREb2MgJiZcblx0XHRcdFx0Y29udGFpbnMoIHByZWZlcnJlZERvYywgYiApICkge1xuXHRcdFx0XHRyZXR1cm4gMTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTWFpbnRhaW4gb3JpZ2luYWwgb3JkZXJcblx0XHRcdHJldHVybiBzb3J0SW5wdXQgP1xuXHRcdFx0XHQoIGluZGV4T2YoIHNvcnRJbnB1dCwgYSApIC0gaW5kZXhPZiggc29ydElucHV0LCBiICkgKSA6XG5cdFx0XHRcdDA7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbXBhcmUgJiA0ID8gLTEgOiAxO1xuXHR9IDpcblx0ZnVuY3Rpb24oIGEsIGIgKSB7XG5cblx0XHQvLyBFeGl0IGVhcmx5IGlmIHRoZSBub2RlcyBhcmUgaWRlbnRpY2FsXG5cdFx0aWYgKCBhID09PSBiICkge1xuXHRcdFx0aGFzRHVwbGljYXRlID0gdHJ1ZTtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblxuXHRcdHZhciBjdXIsXG5cdFx0XHRpID0gMCxcblx0XHRcdGF1cCA9IGEucGFyZW50Tm9kZSxcblx0XHRcdGJ1cCA9IGIucGFyZW50Tm9kZSxcblx0XHRcdGFwID0gWyBhIF0sXG5cdFx0XHRicCA9IFsgYiBdO1xuXG5cdFx0Ly8gUGFyZW50bGVzcyBub2RlcyBhcmUgZWl0aGVyIGRvY3VtZW50cyBvciBkaXNjb25uZWN0ZWRcblx0XHRpZiAoICFhdXAgfHwgIWJ1cCApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHRcdC8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuXHRcdFx0cmV0dXJuIGEgPT0gZG9jdW1lbnQgPyAtMSA6XG5cdFx0XHRcdGIgPT0gZG9jdW1lbnQgPyAxIDpcblx0XHRcdFx0LyogZXNsaW50LWVuYWJsZSBlcWVxZXEgKi9cblx0XHRcdFx0YXVwID8gLTEgOlxuXHRcdFx0XHRidXAgPyAxIDpcblx0XHRcdFx0c29ydElucHV0ID9cblx0XHRcdFx0KCBpbmRleE9mKCBzb3J0SW5wdXQsIGEgKSAtIGluZGV4T2YoIHNvcnRJbnB1dCwgYiApICkgOlxuXHRcdFx0XHQwO1xuXG5cdFx0Ly8gSWYgdGhlIG5vZGVzIGFyZSBzaWJsaW5ncywgd2UgY2FuIGRvIGEgcXVpY2sgY2hlY2tcblx0XHR9IGVsc2UgaWYgKCBhdXAgPT09IGJ1cCApIHtcblx0XHRcdHJldHVybiBzaWJsaW5nQ2hlY2soIGEsIGIgKTtcblx0XHR9XG5cblx0XHQvLyBPdGhlcndpc2Ugd2UgbmVlZCBmdWxsIGxpc3RzIG9mIHRoZWlyIGFuY2VzdG9ycyBmb3IgY29tcGFyaXNvblxuXHRcdGN1ciA9IGE7XG5cdFx0d2hpbGUgKCAoIGN1ciA9IGN1ci5wYXJlbnROb2RlICkgKSB7XG5cdFx0XHRhcC51bnNoaWZ0KCBjdXIgKTtcblx0XHR9XG5cdFx0Y3VyID0gYjtcblx0XHR3aGlsZSAoICggY3VyID0gY3VyLnBhcmVudE5vZGUgKSApIHtcblx0XHRcdGJwLnVuc2hpZnQoIGN1ciApO1xuXHRcdH1cblxuXHRcdC8vIFdhbGsgZG93biB0aGUgdHJlZSBsb29raW5nIGZvciBhIGRpc2NyZXBhbmN5XG5cdFx0d2hpbGUgKCBhcFsgaSBdID09PSBicFsgaSBdICkge1xuXHRcdFx0aSsrO1xuXHRcdH1cblxuXHRcdHJldHVybiBpID9cblxuXHRcdFx0Ly8gRG8gYSBzaWJsaW5nIGNoZWNrIGlmIHRoZSBub2RlcyBoYXZlIGEgY29tbW9uIGFuY2VzdG9yXG5cdFx0XHRzaWJsaW5nQ2hlY2soIGFwWyBpIF0sIGJwWyBpIF0gKSA6XG5cblx0XHRcdC8vIE90aGVyd2lzZSBub2RlcyBpbiBvdXIgZG9jdW1lbnQgc29ydCBmaXJzdFxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHRcdC8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuXHRcdFx0YXBbIGkgXSA9PSBwcmVmZXJyZWREb2MgPyAtMSA6XG5cdFx0XHRicFsgaSBdID09IHByZWZlcnJlZERvYyA/IDEgOlxuXHRcdFx0LyogZXNsaW50LWVuYWJsZSBlcWVxZXEgKi9cblx0XHRcdDA7XG5cdH07XG5cblx0cmV0dXJuIGRvY3VtZW50O1xufTtcblxuU2l6emxlLm1hdGNoZXMgPSBmdW5jdGlvbiggZXhwciwgZWxlbWVudHMgKSB7XG5cdHJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIGVsZW1lbnRzICk7XG59O1xuXG5TaXp6bGUubWF0Y2hlc1NlbGVjdG9yID0gZnVuY3Rpb24oIGVsZW0sIGV4cHIgKSB7XG5cdHNldERvY3VtZW50KCBlbGVtICk7XG5cblx0aWYgKCBzdXBwb3J0Lm1hdGNoZXNTZWxlY3RvciAmJiBkb2N1bWVudElzSFRNTCAmJlxuXHRcdCFub25uYXRpdmVTZWxlY3RvckNhY2hlWyBleHByICsgXCIgXCIgXSAmJlxuXHRcdCggIXJidWdneU1hdGNoZXMgfHwgIXJidWdneU1hdGNoZXMudGVzdCggZXhwciApICkgJiZcblx0XHQoICFyYnVnZ3lRU0EgICAgIHx8ICFyYnVnZ3lRU0EudGVzdCggZXhwciApICkgKSB7XG5cblx0XHR0cnkge1xuXHRcdFx0dmFyIHJldCA9IG1hdGNoZXMuY2FsbCggZWxlbSwgZXhwciApO1xuXG5cdFx0XHQvLyBJRSA5J3MgbWF0Y2hlc1NlbGVjdG9yIHJldHVybnMgZmFsc2Ugb24gZGlzY29ubmVjdGVkIG5vZGVzXG5cdFx0XHRpZiAoIHJldCB8fCBzdXBwb3J0LmRpc2Nvbm5lY3RlZE1hdGNoIHx8XG5cblx0XHRcdFx0Ly8gQXMgd2VsbCwgZGlzY29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1lbnRcblx0XHRcdFx0Ly8gZnJhZ21lbnQgaW4gSUUgOVxuXHRcdFx0XHRlbGVtLmRvY3VtZW50ICYmIGVsZW0uZG9jdW1lbnQubm9kZVR5cGUgIT09IDExICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKCBlICkge1xuXHRcdFx0bm9ubmF0aXZlU2VsZWN0b3JDYWNoZSggZXhwciwgdHJ1ZSApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBTaXp6bGUoIGV4cHIsIGRvY3VtZW50LCBudWxsLCBbIGVsZW0gXSApLmxlbmd0aCA+IDA7XG59O1xuXG5TaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggY29udGV4dCwgZWxlbSApIHtcblxuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0aWYgKCAoIGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0ICkgIT0gZG9jdW1lbnQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGNvbnRleHQgKTtcblx0fVxuXHRyZXR1cm4gY29udGFpbnMoIGNvbnRleHQsIGVsZW0gKTtcbn07XG5cblNpenpsZS5hdHRyID0gZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XG5cblx0Ly8gU2V0IGRvY3VtZW50IHZhcnMgaWYgbmVlZGVkXG5cdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdGlmICggKCBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSApICE9IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBlbGVtICk7XG5cdH1cblxuXHR2YXIgZm4gPSBFeHByLmF0dHJIYW5kbGVbIG5hbWUudG9Mb3dlckNhc2UoKSBdLFxuXG5cdFx0Ly8gRG9uJ3QgZ2V0IGZvb2xlZCBieSBPYmplY3QucHJvdG90eXBlIHByb3BlcnRpZXMgKGpRdWVyeSAjMTM4MDcpXG5cdFx0dmFsID0gZm4gJiYgaGFzT3duLmNhbGwoIEV4cHIuYXR0ckhhbmRsZSwgbmFtZS50b0xvd2VyQ2FzZSgpICkgP1xuXHRcdFx0Zm4oIGVsZW0sIG5hbWUsICFkb2N1bWVudElzSFRNTCApIDpcblx0XHRcdHVuZGVmaW5lZDtcblxuXHRyZXR1cm4gdmFsICE9PSB1bmRlZmluZWQgP1xuXHRcdHZhbCA6XG5cdFx0c3VwcG9ydC5hdHRyaWJ1dGVzIHx8ICFkb2N1bWVudElzSFRNTCA/XG5cdFx0XHRlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApIDpcblx0XHRcdCggdmFsID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICkgKSAmJiB2YWwuc3BlY2lmaWVkID9cblx0XHRcdFx0dmFsLnZhbHVlIDpcblx0XHRcdFx0bnVsbDtcbn07XG5cblNpenpsZS5lc2NhcGUgPSBmdW5jdGlvbiggc2VsICkge1xuXHRyZXR1cm4gKCBzZWwgKyBcIlwiICkucmVwbGFjZSggcmNzc2VzY2FwZSwgZmNzc2VzY2FwZSApO1xufTtcblxuU2l6emxlLmVycm9yID0gZnVuY3Rpb24oIG1zZyApIHtcblx0dGhyb3cgbmV3IEVycm9yKCBcIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246IFwiICsgbXNnICk7XG59O1xuXG4vKipcbiAqIERvY3VtZW50IHNvcnRpbmcgYW5kIHJlbW92aW5nIGR1cGxpY2F0ZXNcbiAqIEBwYXJhbSB7QXJyYXlMaWtlfSByZXN1bHRzXG4gKi9cblNpenpsZS51bmlxdWVTb3J0ID0gZnVuY3Rpb24oIHJlc3VsdHMgKSB7XG5cdHZhciBlbGVtLFxuXHRcdGR1cGxpY2F0ZXMgPSBbXSxcblx0XHRqID0gMCxcblx0XHRpID0gMDtcblxuXHQvLyBVbmxlc3Mgd2UgKmtub3cqIHdlIGNhbiBkZXRlY3QgZHVwbGljYXRlcywgYXNzdW1lIHRoZWlyIHByZXNlbmNlXG5cdGhhc0R1cGxpY2F0ZSA9ICFzdXBwb3J0LmRldGVjdER1cGxpY2F0ZXM7XG5cdHNvcnRJbnB1dCA9ICFzdXBwb3J0LnNvcnRTdGFibGUgJiYgcmVzdWx0cy5zbGljZSggMCApO1xuXHRyZXN1bHRzLnNvcnQoIHNvcnRPcmRlciApO1xuXG5cdGlmICggaGFzRHVwbGljYXRlICkge1xuXHRcdHdoaWxlICggKCBlbGVtID0gcmVzdWx0c1sgaSsrIF0gKSApIHtcblx0XHRcdGlmICggZWxlbSA9PT0gcmVzdWx0c1sgaSBdICkge1xuXHRcdFx0XHRqID0gZHVwbGljYXRlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0cmVzdWx0cy5zcGxpY2UoIGR1cGxpY2F0ZXNbIGogXSwgMSApO1xuXHRcdH1cblx0fVxuXG5cdC8vIENsZWFyIGlucHV0IGFmdGVyIHNvcnRpbmcgdG8gcmVsZWFzZSBvYmplY3RzXG5cdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L3NpenpsZS9wdWxsLzIyNVxuXHRzb3J0SW5wdXQgPSBudWxsO1xuXG5cdHJldHVybiByZXN1bHRzO1xufTtcblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIHRoZSB0ZXh0IHZhbHVlIG9mIGFuIGFycmF5IG9mIERPTSBub2Rlc1xuICogQHBhcmFtIHtBcnJheXxFbGVtZW50fSBlbGVtXG4gKi9cbmdldFRleHQgPSBTaXp6bGUuZ2V0VGV4dCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHR2YXIgbm9kZSxcblx0XHRyZXQgPSBcIlwiLFxuXHRcdGkgPSAwLFxuXHRcdG5vZGVUeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRpZiAoICFub2RlVHlwZSApIHtcblxuXHRcdC8vIElmIG5vIG5vZGVUeXBlLCB0aGlzIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGFycmF5XG5cdFx0d2hpbGUgKCAoIG5vZGUgPSBlbGVtWyBpKysgXSApICkge1xuXG5cdFx0XHQvLyBEbyBub3QgdHJhdmVyc2UgY29tbWVudCBub2Rlc1xuXHRcdFx0cmV0ICs9IGdldFRleHQoIG5vZGUgKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoIG5vZGVUeXBlID09PSAxIHx8IG5vZGVUeXBlID09PSA5IHx8IG5vZGVUeXBlID09PSAxMSApIHtcblxuXHRcdC8vIFVzZSB0ZXh0Q29udGVudCBmb3IgZWxlbWVudHNcblx0XHQvLyBpbm5lclRleHQgdXNhZ2UgcmVtb3ZlZCBmb3IgY29uc2lzdGVuY3kgb2YgbmV3IGxpbmVzIChqUXVlcnkgIzExMTUzKVxuXHRcdGlmICggdHlwZW9mIGVsZW0udGV4dENvbnRlbnQgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS50ZXh0Q29udGVudDtcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBUcmF2ZXJzZSBpdHMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRyZXQgKz0gZ2V0VGV4dCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlIGlmICggbm9kZVR5cGUgPT09IDMgfHwgbm9kZVR5cGUgPT09IDQgKSB7XG5cdFx0cmV0dXJuIGVsZW0ubm9kZVZhbHVlO1xuXHR9XG5cblx0Ly8gRG8gbm90IGluY2x1ZGUgY29tbWVudCBvciBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5vZGVzXG5cblx0cmV0dXJuIHJldDtcbn07XG5cbkV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzID0ge1xuXG5cdC8vIENhbiBiZSBhZGp1c3RlZCBieSB0aGUgdXNlclxuXHRjYWNoZUxlbmd0aDogNTAsXG5cblx0Y3JlYXRlUHNldWRvOiBtYXJrRnVuY3Rpb24sXG5cblx0bWF0Y2g6IG1hdGNoRXhwcixcblxuXHRhdHRySGFuZGxlOiB7fSxcblxuXHRmaW5kOiB7fSxcblxuXHRyZWxhdGl2ZToge1xuXHRcdFwiPlwiOiB7IGRpcjogXCJwYXJlbnROb2RlXCIsIGZpcnN0OiB0cnVlIH0sXG5cdFx0XCIgXCI6IHsgZGlyOiBcInBhcmVudE5vZGVcIiB9LFxuXHRcdFwiK1wiOiB7IGRpcjogXCJwcmV2aW91c1NpYmxpbmdcIiwgZmlyc3Q6IHRydWUgfSxcblx0XHRcIn5cIjogeyBkaXI6IFwicHJldmlvdXNTaWJsaW5nXCIgfVxuXHR9LFxuXG5cdHByZUZpbHRlcjoge1xuXHRcdFwiQVRUUlwiOiBmdW5jdGlvbiggbWF0Y2ggKSB7XG5cdFx0XHRtYXRjaFsgMSBdID0gbWF0Y2hbIDEgXS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXG5cdFx0XHQvLyBNb3ZlIHRoZSBnaXZlbiB2YWx1ZSB0byBtYXRjaFszXSB3aGV0aGVyIHF1b3RlZCBvciB1bnF1b3RlZFxuXHRcdFx0bWF0Y2hbIDMgXSA9ICggbWF0Y2hbIDMgXSB8fCBtYXRjaFsgNCBdIHx8XG5cdFx0XHRcdG1hdGNoWyA1IF0gfHwgXCJcIiApLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cblx0XHRcdGlmICggbWF0Y2hbIDIgXSA9PT0gXCJ+PVwiICkge1xuXHRcdFx0XHRtYXRjaFsgMyBdID0gXCIgXCIgKyBtYXRjaFsgMyBdICsgXCIgXCI7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBtYXRjaC5zbGljZSggMCwgNCApO1xuXHRcdH0sXG5cblx0XHRcIkNISUxEXCI6IGZ1bmN0aW9uKCBtYXRjaCApIHtcblxuXHRcdFx0LyogbWF0Y2hlcyBmcm9tIG1hdGNoRXhwcltcIkNISUxEXCJdXG5cdFx0XHRcdDEgdHlwZSAob25seXxudGh8Li4uKVxuXHRcdFx0XHQyIHdoYXQgKGNoaWxkfG9mLXR5cGUpXG5cdFx0XHRcdDMgYXJndW1lbnQgKGV2ZW58b2RkfFxcZCp8XFxkKm4oWystXVxcZCspP3wuLi4pXG5cdFx0XHRcdDQgeG4tY29tcG9uZW50IG9mIHhuK3kgYXJndW1lbnQgKFsrLV0/XFxkKm58KVxuXHRcdFx0XHQ1IHNpZ24gb2YgeG4tY29tcG9uZW50XG5cdFx0XHRcdDYgeCBvZiB4bi1jb21wb25lbnRcblx0XHRcdFx0NyBzaWduIG9mIHktY29tcG9uZW50XG5cdFx0XHRcdDggeSBvZiB5LWNvbXBvbmVudFxuXHRcdFx0Ki9cblx0XHRcdG1hdGNoWyAxIF0gPSBtYXRjaFsgMSBdLnRvTG93ZXJDYXNlKCk7XG5cblx0XHRcdGlmICggbWF0Y2hbIDEgXS5zbGljZSggMCwgMyApID09PSBcIm50aFwiICkge1xuXG5cdFx0XHRcdC8vIG50aC0qIHJlcXVpcmVzIGFyZ3VtZW50XG5cdFx0XHRcdGlmICggIW1hdGNoWyAzIF0gKSB7XG5cdFx0XHRcdFx0U2l6emxlLmVycm9yKCBtYXRjaFsgMCBdICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBudW1lcmljIHggYW5kIHkgcGFyYW1ldGVycyBmb3IgRXhwci5maWx0ZXIuQ0hJTERcblx0XHRcdFx0Ly8gcmVtZW1iZXIgdGhhdCBmYWxzZS90cnVlIGNhc3QgcmVzcGVjdGl2ZWx5IHRvIDAvMVxuXHRcdFx0XHRtYXRjaFsgNCBdID0gKyggbWF0Y2hbIDQgXSA/XG5cdFx0XHRcdFx0bWF0Y2hbIDUgXSArICggbWF0Y2hbIDYgXSB8fCAxICkgOlxuXHRcdFx0XHRcdDIgKiAoIG1hdGNoWyAzIF0gPT09IFwiZXZlblwiIHx8IG1hdGNoWyAzIF0gPT09IFwib2RkXCIgKSApO1xuXHRcdFx0XHRtYXRjaFsgNSBdID0gKyggKCBtYXRjaFsgNyBdICsgbWF0Y2hbIDggXSApIHx8IG1hdGNoWyAzIF0gPT09IFwib2RkXCIgKTtcblxuXHRcdFx0XHQvLyBvdGhlciB0eXBlcyBwcm9oaWJpdCBhcmd1bWVudHNcblx0XHRcdH0gZWxzZSBpZiAoIG1hdGNoWyAzIF0gKSB7XG5cdFx0XHRcdFNpenpsZS5lcnJvciggbWF0Y2hbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0fSxcblxuXHRcdFwiUFNFVURPXCI6IGZ1bmN0aW9uKCBtYXRjaCApIHtcblx0XHRcdHZhciBleGNlc3MsXG5cdFx0XHRcdHVucXVvdGVkID0gIW1hdGNoWyA2IF0gJiYgbWF0Y2hbIDIgXTtcblxuXHRcdFx0aWYgKCBtYXRjaEV4cHJbIFwiQ0hJTERcIiBdLnRlc3QoIG1hdGNoWyAwIF0gKSApIHtcblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFjY2VwdCBxdW90ZWQgYXJndW1lbnRzIGFzLWlzXG5cdFx0XHRpZiAoIG1hdGNoWyAzIF0gKSB7XG5cdFx0XHRcdG1hdGNoWyAyIF0gPSBtYXRjaFsgNCBdIHx8IG1hdGNoWyA1IF0gfHwgXCJcIjtcblxuXHRcdFx0Ly8gU3RyaXAgZXhjZXNzIGNoYXJhY3RlcnMgZnJvbSB1bnF1b3RlZCBhcmd1bWVudHNcblx0XHRcdH0gZWxzZSBpZiAoIHVucXVvdGVkICYmIHJwc2V1ZG8udGVzdCggdW5xdW90ZWQgKSAmJlxuXG5cdFx0XHRcdC8vIEdldCBleGNlc3MgZnJvbSB0b2tlbml6ZSAocmVjdXJzaXZlbHkpXG5cdFx0XHRcdCggZXhjZXNzID0gdG9rZW5pemUoIHVucXVvdGVkLCB0cnVlICkgKSAmJlxuXG5cdFx0XHRcdC8vIGFkdmFuY2UgdG8gdGhlIG5leHQgY2xvc2luZyBwYXJlbnRoZXNpc1xuXHRcdFx0XHQoIGV4Y2VzcyA9IHVucXVvdGVkLmluZGV4T2YoIFwiKVwiLCB1bnF1b3RlZC5sZW5ndGggLSBleGNlc3MgKSAtIHVucXVvdGVkLmxlbmd0aCApICkge1xuXG5cdFx0XHRcdC8vIGV4Y2VzcyBpcyBhIG5lZ2F0aXZlIGluZGV4XG5cdFx0XHRcdG1hdGNoWyAwIF0gPSBtYXRjaFsgMCBdLnNsaWNlKCAwLCBleGNlc3MgKTtcblx0XHRcdFx0bWF0Y2hbIDIgXSA9IHVucXVvdGVkLnNsaWNlKCAwLCBleGNlc3MgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV0dXJuIG9ubHkgY2FwdHVyZXMgbmVlZGVkIGJ5IHRoZSBwc2V1ZG8gZmlsdGVyIG1ldGhvZCAodHlwZSBhbmQgYXJndW1lbnQpXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDMgKTtcblx0XHR9XG5cdH0sXG5cblx0ZmlsdGVyOiB7XG5cblx0XHRcIlRBR1wiOiBmdW5jdGlvbiggbm9kZU5hbWVTZWxlY3RvciApIHtcblx0XHRcdHZhciBub2RlTmFtZSA9IG5vZGVOYW1lU2VsZWN0b3IucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIG5vZGVOYW1lU2VsZWN0b3IgPT09IFwiKlwiID9cblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gOlxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5vZGVOYW1lO1xuXHRcdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRcIkNMQVNTXCI6IGZ1bmN0aW9uKCBjbGFzc05hbWUgKSB7XG5cdFx0XHR2YXIgcGF0dGVybiA9IGNsYXNzQ2FjaGVbIGNsYXNzTmFtZSArIFwiIFwiIF07XG5cblx0XHRcdHJldHVybiBwYXR0ZXJuIHx8XG5cdFx0XHRcdCggcGF0dGVybiA9IG5ldyBSZWdFeHAoIFwiKF58XCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFx0XHRcIilcIiArIGNsYXNzTmFtZSArIFwiKFwiICsgd2hpdGVzcGFjZSArIFwifCQpXCIgKSApICYmIGNsYXNzQ2FjaGUoXG5cdFx0XHRcdFx0XHRjbGFzc05hbWUsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcGF0dGVybi50ZXN0KFxuXHRcdFx0XHRcdFx0XHRcdHR5cGVvZiBlbGVtLmNsYXNzTmFtZSA9PT0gXCJzdHJpbmdcIiAmJiBlbGVtLmNsYXNzTmFtZSB8fFxuXHRcdFx0XHRcdFx0XHRcdHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiApIHx8XG5cdFx0XHRcdFx0XHRcdFx0XCJcIlxuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9ICk7XG5cdFx0fSxcblxuXHRcdFwiQVRUUlwiOiBmdW5jdGlvbiggbmFtZSwgb3BlcmF0b3IsIGNoZWNrICkge1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgcmVzdWx0ID0gU2l6emxlLmF0dHIoIGVsZW0sIG5hbWUgKTtcblxuXHRcdFx0XHRpZiAoIHJlc3VsdCA9PSBudWxsICkge1xuXHRcdFx0XHRcdHJldHVybiBvcGVyYXRvciA9PT0gXCIhPVwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICggIW9wZXJhdG9yICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmVzdWx0ICs9IFwiXCI7XG5cblx0XHRcdFx0LyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuXG5cdFx0XHRcdHJldHVybiBvcGVyYXRvciA9PT0gXCI9XCIgPyByZXN1bHQgPT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCIhPVwiID8gcmVzdWx0ICE9PSBjaGVjayA6XG5cdFx0XHRcdFx0b3BlcmF0b3IgPT09IFwiXj1cIiA/IGNoZWNrICYmIHJlc3VsdC5pbmRleE9mKCBjaGVjayApID09PSAwIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCIqPVwiID8gY2hlY2sgJiYgcmVzdWx0LmluZGV4T2YoIGNoZWNrICkgPiAtMSA6XG5cdFx0XHRcdFx0b3BlcmF0b3IgPT09IFwiJD1cIiA/IGNoZWNrICYmIHJlc3VsdC5zbGljZSggLWNoZWNrLmxlbmd0aCApID09PSBjaGVjayA6XG5cdFx0XHRcdFx0b3BlcmF0b3IgPT09IFwifj1cIiA/ICggXCIgXCIgKyByZXN1bHQucmVwbGFjZSggcndoaXRlc3BhY2UsIFwiIFwiICkgKyBcIiBcIiApLmluZGV4T2YoIGNoZWNrICkgPiAtMSA6XG5cdFx0XHRcdFx0b3BlcmF0b3IgPT09IFwifD1cIiA/IHJlc3VsdCA9PT0gY2hlY2sgfHwgcmVzdWx0LnNsaWNlKCAwLCBjaGVjay5sZW5ndGggKyAxICkgPT09IGNoZWNrICsgXCItXCIgOlxuXHRcdFx0XHRcdGZhbHNlO1xuXHRcdFx0XHQvKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cblxuXHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0XCJDSElMRFwiOiBmdW5jdGlvbiggdHlwZSwgd2hhdCwgX2FyZ3VtZW50LCBmaXJzdCwgbGFzdCApIHtcblx0XHRcdHZhciBzaW1wbGUgPSB0eXBlLnNsaWNlKCAwLCAzICkgIT09IFwibnRoXCIsXG5cdFx0XHRcdGZvcndhcmQgPSB0eXBlLnNsaWNlKCAtNCApICE9PSBcImxhc3RcIixcblx0XHRcdFx0b2ZUeXBlID0gd2hhdCA9PT0gXCJvZi10eXBlXCI7XG5cblx0XHRcdHJldHVybiBmaXJzdCA9PT0gMSAmJiBsYXN0ID09PSAwID9cblxuXHRcdFx0XHQvLyBTaG9ydGN1dCBmb3IgOm50aC0qKG4pXG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRcdHJldHVybiAhIWVsZW0ucGFyZW50Tm9kZTtcblx0XHRcdFx0fSA6XG5cblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0sIF9jb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0dmFyIGNhY2hlLCB1bmlxdWVDYWNoZSwgb3V0ZXJDYWNoZSwgbm9kZSwgbm9kZUluZGV4LCBzdGFydCxcblx0XHRcdFx0XHRcdGRpciA9IHNpbXBsZSAhPT0gZm9yd2FyZCA/IFwibmV4dFNpYmxpbmdcIiA6IFwicHJldmlvdXNTaWJsaW5nXCIsXG5cdFx0XHRcdFx0XHRwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGUsXG5cdFx0XHRcdFx0XHRuYW1lID0gb2ZUeXBlICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxcblx0XHRcdFx0XHRcdHVzZUNhY2hlID0gIXhtbCAmJiAhb2ZUeXBlLFxuXHRcdFx0XHRcdFx0ZGlmZiA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0aWYgKCBwYXJlbnQgKSB7XG5cblx0XHRcdFx0XHRcdC8vIDooZmlyc3R8bGFzdHxvbmx5KS0oY2hpbGR8b2YtdHlwZSlcblx0XHRcdFx0XHRcdGlmICggc2ltcGxlICkge1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAoIGRpciApIHtcblx0XHRcdFx0XHRcdFx0XHRub2RlID0gZWxlbTtcblx0XHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9IG5vZGVbIGRpciBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIG9mVHlwZSA/XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZSA6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGUubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdC8vIFJldmVyc2UgZGlyZWN0aW9uIGZvciA6b25seS0qIChpZiB3ZSBoYXZlbid0IHlldCBkb25lIHNvKVxuXHRcdFx0XHRcdFx0XHRcdHN0YXJ0ID0gZGlyID0gdHlwZSA9PT0gXCJvbmx5XCIgJiYgIXN0YXJ0ICYmIFwibmV4dFNpYmxpbmdcIjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0c3RhcnQgPSBbIGZvcndhcmQgPyBwYXJlbnQuZmlyc3RDaGlsZCA6IHBhcmVudC5sYXN0Q2hpbGQgXTtcblxuXHRcdFx0XHRcdFx0Ly8gbm9uLXhtbCA6bnRoLWNoaWxkKC4uLikgc3RvcmVzIGNhY2hlIGRhdGEgb24gYHBhcmVudGBcblx0XHRcdFx0XHRcdGlmICggZm9yd2FyZCAmJiB1c2VDYWNoZSApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBTZWVrIGBlbGVtYCBmcm9tIGEgcHJldmlvdXNseS1jYWNoZWQgaW5kZXhcblxuXHRcdFx0XHRcdFx0XHQvLyAuLi5pbiBhIGd6aXAtZnJpZW5kbHkgd2F5XG5cdFx0XHRcdFx0XHRcdG5vZGUgPSBwYXJlbnQ7XG5cdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBub2RlWyBleHBhbmRvIF0gfHwgKCBub2RlWyBleHBhbmRvIF0gPSB7fSApO1xuXG5cdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw5IG9ubHlcblx0XHRcdFx0XHRcdFx0Ly8gRGVmZW5kIGFnYWluc3QgY2xvbmVkIGF0dHJvcGVydGllcyAoalF1ZXJ5IGdoLTE3MDkpXG5cdFx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlID0gb3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0KCBvdXRlckNhY2hlWyBub2RlLnVuaXF1ZUlEIF0gPSB7fSApO1xuXG5cdFx0XHRcdFx0XHRcdGNhY2hlID0gdW5pcXVlQ2FjaGVbIHR5cGUgXSB8fCBbXTtcblx0XHRcdFx0XHRcdFx0bm9kZUluZGV4ID0gY2FjaGVbIDAgXSA9PT0gZGlycnVucyAmJiBjYWNoZVsgMSBdO1xuXHRcdFx0XHRcdFx0XHRkaWZmID0gbm9kZUluZGV4ICYmIGNhY2hlWyAyIF07XG5cdFx0XHRcdFx0XHRcdG5vZGUgPSBub2RlSW5kZXggJiYgcGFyZW50LmNoaWxkTm9kZXNbIG5vZGVJbmRleCBdO1xuXG5cdFx0XHRcdFx0XHRcdHdoaWxlICggKCBub2RlID0gKytub2RlSW5kZXggJiYgbm9kZSAmJiBub2RlWyBkaXIgXSB8fFxuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gRmFsbGJhY2sgdG8gc2Vla2luZyBgZWxlbWAgZnJvbSB0aGUgc3RhcnRcblx0XHRcdFx0XHRcdFx0XHQoIGRpZmYgPSBub2RlSW5kZXggPSAwICkgfHwgc3RhcnQucG9wKCkgKSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIFdoZW4gZm91bmQsIGNhY2hlIGluZGV4ZXMgb24gYHBhcmVudGAgYW5kIGJyZWFrXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBub2RlLm5vZGVUeXBlID09PSAxICYmICsrZGlmZiAmJiBub2RlID09PSBlbGVtICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGVbIHR5cGUgXSA9IFsgZGlycnVucywgbm9kZUluZGV4LCBkaWZmIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBVc2UgcHJldmlvdXNseS1jYWNoZWQgZWxlbWVudCBpbmRleCBpZiBhdmFpbGFibGVcblx0XHRcdFx0XHRcdFx0aWYgKCB1c2VDYWNoZSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIC4uLmluIGEgZ3ppcC1mcmllbmRseSB3YXlcblx0XHRcdFx0XHRcdFx0XHRub2RlID0gZWxlbTtcblx0XHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlID0gbm9kZVsgZXhwYW5kbyBdIHx8ICggbm9kZVsgZXhwYW5kbyBdID0ge30gKTtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw5IG9ubHlcblx0XHRcdFx0XHRcdFx0XHQvLyBEZWZlbmQgYWdhaW5zdCBjbG9uZWQgYXR0cm9wZXJ0aWVzIChqUXVlcnkgZ2gtMTcwOSlcblx0XHRcdFx0XHRcdFx0XHR1bmlxdWVDYWNoZSA9IG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0KCBvdXRlckNhY2hlWyBub2RlLnVuaXF1ZUlEIF0gPSB7fSApO1xuXG5cdFx0XHRcdFx0XHRcdFx0Y2FjaGUgPSB1bmlxdWVDYWNoZVsgdHlwZSBdIHx8IFtdO1xuXHRcdFx0XHRcdFx0XHRcdG5vZGVJbmRleCA9IGNhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgY2FjaGVbIDEgXTtcblx0XHRcdFx0XHRcdFx0XHRkaWZmID0gbm9kZUluZGV4O1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0Ly8geG1sIDpudGgtY2hpbGQoLi4uKVxuXHRcdFx0XHRcdFx0XHQvLyBvciA6bnRoLWxhc3QtY2hpbGQoLi4uKSBvciA6bnRoKC1sYXN0KT8tb2YtdHlwZSguLi4pXG5cdFx0XHRcdFx0XHRcdGlmICggZGlmZiA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBVc2UgdGhlIHNhbWUgbG9vcCBhcyBhYm92ZSB0byBzZWVrIGBlbGVtYCBmcm9tIHRoZSBzdGFydFxuXHRcdFx0XHRcdFx0XHRcdHdoaWxlICggKCBub2RlID0gKytub2RlSW5kZXggJiYgbm9kZSAmJiBub2RlWyBkaXIgXSB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0KCBkaWZmID0gbm9kZUluZGV4ID0gMCApIHx8IHN0YXJ0LnBvcCgpICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdGlmICggKCBvZlR5cGUgP1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUgOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlLm5vZGVUeXBlID09PSAxICkgJiZcblx0XHRcdFx0XHRcdFx0XHRcdFx0KytkaWZmICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIENhY2hlIHRoZSBpbmRleCBvZiBlYWNoIGVuY291bnRlcmVkIGVsZW1lbnRcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCB1c2VDYWNoZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlID0gbm9kZVsgZXhwYW5kbyBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoIG5vZGVbIGV4cGFuZG8gXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8OSBvbmx5XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRGVmZW5kIGFnYWluc3QgY2xvbmVkIGF0dHJvcGVydGllcyAoalF1ZXJ5IGdoLTE3MDkpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGUgPSBvdXRlckNhY2hlWyBub2RlLnVuaXF1ZUlEIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCggb3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdID0ge30gKTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlWyB0eXBlIF0gPSBbIGRpcnJ1bnMsIGRpZmYgXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggbm9kZSA9PT0gZWxlbSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBJbmNvcnBvcmF0ZSB0aGUgb2Zmc2V0LCB0aGVuIGNoZWNrIGFnYWluc3QgY3ljbGUgc2l6ZVxuXHRcdFx0XHRcdFx0ZGlmZiAtPSBsYXN0O1xuXHRcdFx0XHRcdFx0cmV0dXJuIGRpZmYgPT09IGZpcnN0IHx8ICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRcIlBTRVVET1wiOiBmdW5jdGlvbiggcHNldWRvLCBhcmd1bWVudCApIHtcblxuXHRcdFx0Ly8gcHNldWRvLWNsYXNzIG5hbWVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlXG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI3BzZXVkby1jbGFzc2VzXG5cdFx0XHQvLyBQcmlvcml0aXplIGJ5IGNhc2Ugc2Vuc2l0aXZpdHkgaW4gY2FzZSBjdXN0b20gcHNldWRvcyBhcmUgYWRkZWQgd2l0aCB1cHBlcmNhc2UgbGV0dGVyc1xuXHRcdFx0Ly8gUmVtZW1iZXIgdGhhdCBzZXRGaWx0ZXJzIGluaGVyaXRzIGZyb20gcHNldWRvc1xuXHRcdFx0dmFyIGFyZ3MsXG5cdFx0XHRcdGZuID0gRXhwci5wc2V1ZG9zWyBwc2V1ZG8gXSB8fCBFeHByLnNldEZpbHRlcnNbIHBzZXVkby50b0xvd2VyQ2FzZSgpIF0gfHxcblx0XHRcdFx0XHRTaXp6bGUuZXJyb3IoIFwidW5zdXBwb3J0ZWQgcHNldWRvOiBcIiArIHBzZXVkbyApO1xuXG5cdFx0XHQvLyBUaGUgdXNlciBtYXkgdXNlIGNyZWF0ZVBzZXVkbyB0byBpbmRpY2F0ZSB0aGF0XG5cdFx0XHQvLyBhcmd1bWVudHMgYXJlIG5lZWRlZCB0byBjcmVhdGUgdGhlIGZpbHRlciBmdW5jdGlvblxuXHRcdFx0Ly8ganVzdCBhcyBTaXp6bGUgZG9lc1xuXHRcdFx0aWYgKCBmblsgZXhwYW5kbyBdICkge1xuXHRcdFx0XHRyZXR1cm4gZm4oIGFyZ3VtZW50ICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEJ1dCBtYWludGFpbiBzdXBwb3J0IGZvciBvbGQgc2lnbmF0dXJlc1xuXHRcdFx0aWYgKCBmbi5sZW5ndGggPiAxICkge1xuXHRcdFx0XHRhcmdzID0gWyBwc2V1ZG8sIHBzZXVkbywgXCJcIiwgYXJndW1lbnQgXTtcblx0XHRcdFx0cmV0dXJuIEV4cHIuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eSggcHNldWRvLnRvTG93ZXJDYXNlKCkgKSA/XG5cdFx0XHRcdFx0bWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcyApIHtcblx0XHRcdFx0XHRcdHZhciBpZHgsXG5cdFx0XHRcdFx0XHRcdG1hdGNoZWQgPSBmbiggc2VlZCwgYXJndW1lbnQgKSxcblx0XHRcdFx0XHRcdFx0aSA9IG1hdGNoZWQubGVuZ3RoO1xuXHRcdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRcdGlkeCA9IGluZGV4T2YoIHNlZWQsIG1hdGNoZWRbIGkgXSApO1xuXHRcdFx0XHRcdFx0XHRzZWVkWyBpZHggXSA9ICEoIG1hdGNoZXNbIGlkeCBdID0gbWF0Y2hlZFsgaSBdICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSApIDpcblx0XHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRcdHJldHVybiBmbiggZWxlbSwgMCwgYXJncyApO1xuXHRcdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBmbjtcblx0XHR9XG5cdH0sXG5cblx0cHNldWRvczoge1xuXG5cdFx0Ly8gUG90ZW50aWFsbHkgY29tcGxleCBwc2V1ZG9zXG5cdFx0XCJub3RcIjogbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cblx0XHRcdC8vIFRyaW0gdGhlIHNlbGVjdG9yIHBhc3NlZCB0byBjb21waWxlXG5cdFx0XHQvLyB0byBhdm9pZCB0cmVhdGluZyBsZWFkaW5nIGFuZCB0cmFpbGluZ1xuXHRcdFx0Ly8gc3BhY2VzIGFzIGNvbWJpbmF0b3JzXG5cdFx0XHR2YXIgaW5wdXQgPSBbXSxcblx0XHRcdFx0cmVzdWx0cyA9IFtdLFxuXHRcdFx0XHRtYXRjaGVyID0gY29tcGlsZSggc2VsZWN0b3IucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApICk7XG5cblx0XHRcdHJldHVybiBtYXRjaGVyWyBleHBhbmRvIF0gP1xuXHRcdFx0XHRtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWVkLCBtYXRjaGVzLCBfY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdHZhciBlbGVtLFxuXHRcdFx0XHRcdFx0dW5tYXRjaGVkID0gbWF0Y2hlciggc2VlZCwgbnVsbCwgeG1sLCBbXSApLFxuXHRcdFx0XHRcdFx0aSA9IHNlZWQubGVuZ3RoO1xuXG5cdFx0XHRcdFx0Ly8gTWF0Y2ggZWxlbWVudHMgdW5tYXRjaGVkIGJ5IGBtYXRjaGVyYFxuXHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0aWYgKCAoIGVsZW0gPSB1bm1hdGNoZWRbIGkgXSApICkge1xuXHRcdFx0XHRcdFx0XHRzZWVkWyBpIF0gPSAhKCBtYXRjaGVzWyBpIF0gPSBlbGVtICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ICkgOlxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSwgX2NvbnRleHQsIHhtbCApIHtcblx0XHRcdFx0XHRpbnB1dFsgMCBdID0gZWxlbTtcblx0XHRcdFx0XHRtYXRjaGVyKCBpbnB1dCwgbnVsbCwgeG1sLCByZXN1bHRzICk7XG5cblx0XHRcdFx0XHQvLyBEb24ndCBrZWVwIHRoZSBlbGVtZW50IChpc3N1ZSAjMjk5KVxuXHRcdFx0XHRcdGlucHV0WyAwIF0gPSBudWxsO1xuXHRcdFx0XHRcdHJldHVybiAhcmVzdWx0cy5wb3AoKTtcblx0XHRcdFx0fTtcblx0XHR9ICksXG5cblx0XHRcImhhc1wiOiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuIFNpenpsZSggc2VsZWN0b3IsIGVsZW0gKS5sZW5ndGggPiAwO1xuXHRcdFx0fTtcblx0XHR9ICksXG5cblx0XHRcImNvbnRhaW5zXCI6IG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHRleHQgKSB7XG5cdFx0XHR0ZXh0ID0gdGV4dC5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRyZXR1cm4gKCBlbGVtLnRleHRDb250ZW50IHx8IGdldFRleHQoIGVsZW0gKSApLmluZGV4T2YoIHRleHQgKSA+IC0xO1xuXHRcdFx0fTtcblx0XHR9ICksXG5cblx0XHQvLyBcIldoZXRoZXIgYW4gZWxlbWVudCBpcyByZXByZXNlbnRlZCBieSBhIDpsYW5nKCkgc2VsZWN0b3Jcblx0XHQvLyBpcyBiYXNlZCBzb2xlbHkgb24gdGhlIGVsZW1lbnQncyBsYW5ndWFnZSB2YWx1ZVxuXHRcdC8vIGJlaW5nIGVxdWFsIHRvIHRoZSBpZGVudGlmaWVyIEMsXG5cdFx0Ly8gb3IgYmVnaW5uaW5nIHdpdGggdGhlIGlkZW50aWZpZXIgQyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBcIi1cIi5cblx0XHQvLyBUaGUgbWF0Y2hpbmcgb2YgQyBhZ2FpbnN0IHRoZSBlbGVtZW50J3MgbGFuZ3VhZ2UgdmFsdWUgaXMgcGVyZm9ybWVkIGNhc2UtaW5zZW5zaXRpdmVseS5cblx0XHQvLyBUaGUgaWRlbnRpZmllciBDIGRvZXMgbm90IGhhdmUgdG8gYmUgYSB2YWxpZCBsYW5ndWFnZSBuYW1lLlwiXG5cdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNsYW5nLXBzZXVkb1xuXHRcdFwibGFuZ1wiOiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBsYW5nICkge1xuXG5cdFx0XHQvLyBsYW5nIHZhbHVlIG11c3QgYmUgYSB2YWxpZCBpZGVudGlmaWVyXG5cdFx0XHRpZiAoICFyaWRlbnRpZmllci50ZXN0KCBsYW5nIHx8IFwiXCIgKSApIHtcblx0XHRcdFx0U2l6emxlLmVycm9yKCBcInVuc3VwcG9ydGVkIGxhbmc6IFwiICsgbGFuZyApO1xuXHRcdFx0fVxuXHRcdFx0bGFuZyA9IGxhbmcucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgZWxlbUxhbmc7XG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoICggZWxlbUxhbmcgPSBkb2N1bWVudElzSFRNTCA/XG5cdFx0XHRcdFx0XHRlbGVtLmxhbmcgOlxuXHRcdFx0XHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGUoIFwieG1sOmxhbmdcIiApIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCBcImxhbmdcIiApICkgKSB7XG5cblx0XHRcdFx0XHRcdGVsZW1MYW5nID0gZWxlbUxhbmcudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtTGFuZyA9PT0gbGFuZyB8fCBlbGVtTGFuZy5pbmRleE9mKCBsYW5nICsgXCItXCIgKSA9PT0gMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gd2hpbGUgKCAoIGVsZW0gPSBlbGVtLnBhcmVudE5vZGUgKSAmJiBlbGVtLm5vZGVUeXBlID09PSAxICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH07XG5cdFx0fSApLFxuXG5cdFx0Ly8gTWlzY2VsbGFuZW91c1xuXHRcdFwidGFyZ2V0XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIGhhc2ggPSB3aW5kb3cubG9jYXRpb24gJiYgd2luZG93LmxvY2F0aW9uLmhhc2g7XG5cdFx0XHRyZXR1cm4gaGFzaCAmJiBoYXNoLnNsaWNlKCAxICkgPT09IGVsZW0uaWQ7XG5cdFx0fSxcblxuXHRcdFwicm9vdFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtID09PSBkb2NFbGVtO1xuXHRcdH0sXG5cblx0XHRcImZvY3VzXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiZcblx0XHRcdFx0KCAhZG9jdW1lbnQuaGFzRm9jdXMgfHwgZG9jdW1lbnQuaGFzRm9jdXMoKSApICYmXG5cdFx0XHRcdCEhKCBlbGVtLnR5cGUgfHwgZWxlbS5ocmVmIHx8IH5lbGVtLnRhYkluZGV4ICk7XG5cdFx0fSxcblxuXHRcdC8vIEJvb2xlYW4gcHJvcGVydGllc1xuXHRcdFwiZW5hYmxlZFwiOiBjcmVhdGVEaXNhYmxlZFBzZXVkbyggZmFsc2UgKSxcblx0XHRcImRpc2FibGVkXCI6IGNyZWF0ZURpc2FibGVkUHNldWRvKCB0cnVlICksXG5cblx0XHRcImNoZWNrZWRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8vIEluIENTUzMsIDpjaGVja2VkIHNob3VsZCByZXR1cm4gYm90aCBjaGVja2VkIGFuZCBzZWxlY3RlZCBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAxMTA5MjkvI2NoZWNrZWRcblx0XHRcdHZhciBub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRcdHJldHVybiAoIG5vZGVOYW1lID09PSBcImlucHV0XCIgJiYgISFlbGVtLmNoZWNrZWQgKSB8fFxuXHRcdFx0XHQoIG5vZGVOYW1lID09PSBcIm9wdGlvblwiICYmICEhZWxlbS5zZWxlY3RlZCApO1xuXHRcdH0sXG5cblx0XHRcInNlbGVjdGVkXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHQvLyBBY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBtYWtlcyBzZWxlY3RlZC1ieS1kZWZhdWx0XG5cdFx0XHQvLyBvcHRpb25zIGluIFNhZmFyaSB3b3JrIHByb3Blcmx5XG5cdFx0XHRpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xuXHRcdFx0XHRlbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7XG5cdFx0fSxcblxuXHRcdC8vIENvbnRlbnRzXG5cdFx0XCJlbXB0eVwiOiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNlbXB0eS1wc2V1ZG9cblx0XHRcdC8vIDplbXB0eSBpcyBuZWdhdGVkIGJ5IGVsZW1lbnQgKDEpIG9yIGNvbnRlbnQgbm9kZXMgKHRleHQ6IDM7IGNkYXRhOiA0OyBlbnRpdHkgcmVmOiA1KSxcblx0XHRcdC8vICAgYnV0IG5vdCBieSBvdGhlcnMgKGNvbW1lbnQ6IDg7IHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb246IDc7IGV0Yy4pXG5cdFx0XHQvLyBub2RlVHlwZSA8IDYgd29ya3MgYmVjYXVzZSBhdHRyaWJ1dGVzICgyKSBkbyBub3QgYXBwZWFyIGFzIGNoaWxkcmVuXG5cdFx0XHRmb3IgKCBlbGVtID0gZWxlbS5maXJzdENoaWxkOyBlbGVtOyBlbGVtID0gZWxlbS5uZXh0U2libGluZyApIHtcblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlIDwgNiApIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0sXG5cblx0XHRcInBhcmVudFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiAhRXhwci5wc2V1ZG9zWyBcImVtcHR5XCIgXSggZWxlbSApO1xuXHRcdH0sXG5cblx0XHQvLyBFbGVtZW50L2lucHV0IHR5cGVzXG5cdFx0XCJoZWFkZXJcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gcmhlYWRlci50ZXN0KCBlbGVtLm5vZGVOYW1lICk7XG5cdFx0fSxcblxuXHRcdFwiaW5wdXRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gcmlucHV0cy50ZXN0KCBlbGVtLm5vZGVOYW1lICk7XG5cdFx0fSxcblxuXHRcdFwiYnV0dG9uXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRyZXR1cm4gbmFtZSA9PT0gXCJpbnB1dFwiICYmIGVsZW0udHlwZSA9PT0gXCJidXR0b25cIiB8fCBuYW1lID09PSBcImJ1dHRvblwiO1xuXHRcdH0sXG5cblx0XHRcInRleHRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgYXR0cjtcblx0XHRcdHJldHVybiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5wdXRcIiAmJlxuXHRcdFx0XHRlbGVtLnR5cGUgPT09IFwidGV4dFwiICYmXG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUU8OFxuXHRcdFx0XHQvLyBOZXcgSFRNTDUgYXR0cmlidXRlIHZhbHVlcyAoZS5nLiwgXCJzZWFyY2hcIikgYXBwZWFyIHdpdGggZWxlbS50eXBlID09PSBcInRleHRcIlxuXHRcdFx0XHQoICggYXR0ciA9IGVsZW0uZ2V0QXR0cmlidXRlKCBcInR5cGVcIiApICkgPT0gbnVsbCB8fFxuXHRcdFx0XHRcdGF0dHIudG9Mb3dlckNhc2UoKSA9PT0gXCJ0ZXh0XCIgKTtcblx0XHR9LFxuXG5cdFx0Ly8gUG9zaXRpb24taW4tY29sbGVjdGlvblxuXHRcdFwiZmlyc3RcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4gWyAwIF07XG5cdFx0fSApLFxuXG5cdFx0XCJsYXN0XCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBfbWF0Y2hJbmRleGVzLCBsZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gWyBsZW5ndGggLSAxIF07XG5cdFx0fSApLFxuXG5cdFx0XCJlcVwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmdW5jdGlvbiggX21hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHJldHVybiBbIGFyZ3VtZW50IDwgMCA/IGFyZ3VtZW50ICsgbGVuZ3RoIDogYXJndW1lbnQgXTtcblx0XHR9ICksXG5cblx0XHRcImV2ZW5cIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoICkge1xuXHRcdFx0dmFyIGkgPSAwO1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpICs9IDIgKSB7XG5cdFx0XHRcdG1hdGNoSW5kZXhlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2hJbmRleGVzO1xuXHRcdH0gKSxcblxuXHRcdFwib2RkXCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHZhciBpID0gMTtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSArPSAyICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRcImx0XCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCwgYXJndW1lbnQgKSB7XG5cdFx0XHR2YXIgaSA9IGFyZ3VtZW50IDwgMCA/XG5cdFx0XHRcdGFyZ3VtZW50ICsgbGVuZ3RoIDpcblx0XHRcdFx0YXJndW1lbnQgPiBsZW5ndGggP1xuXHRcdFx0XHRcdGxlbmd0aCA6XG5cdFx0XHRcdFx0YXJndW1lbnQ7XG5cdFx0XHRmb3IgKCA7IC0taSA+PSAwOyApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSApLFxuXG5cdFx0XCJndFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0dmFyIGkgPSBhcmd1bWVudCA8IDAgPyBhcmd1bWVudCArIGxlbmd0aCA6IGFyZ3VtZW50O1xuXHRcdFx0Zm9yICggOyArK2kgPCBsZW5ndGg7ICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9IClcblx0fVxufTtcblxuRXhwci5wc2V1ZG9zWyBcIm50aFwiIF0gPSBFeHByLnBzZXVkb3NbIFwiZXFcIiBdO1xuXG4vLyBBZGQgYnV0dG9uL2lucHV0IHR5cGUgcHNldWRvc1xuZm9yICggaSBpbiB7IHJhZGlvOiB0cnVlLCBjaGVja2JveDogdHJ1ZSwgZmlsZTogdHJ1ZSwgcGFzc3dvcmQ6IHRydWUsIGltYWdlOiB0cnVlIH0gKSB7XG5cdEV4cHIucHNldWRvc1sgaSBdID0gY3JlYXRlSW5wdXRQc2V1ZG8oIGkgKTtcbn1cbmZvciAoIGkgaW4geyBzdWJtaXQ6IHRydWUsIHJlc2V0OiB0cnVlIH0gKSB7XG5cdEV4cHIucHNldWRvc1sgaSBdID0gY3JlYXRlQnV0dG9uUHNldWRvKCBpICk7XG59XG5cbi8vIEVhc3kgQVBJIGZvciBjcmVhdGluZyBuZXcgc2V0RmlsdGVyc1xuZnVuY3Rpb24gc2V0RmlsdGVycygpIHt9XG5zZXRGaWx0ZXJzLnByb3RvdHlwZSA9IEV4cHIuZmlsdGVycyA9IEV4cHIucHNldWRvcztcbkV4cHIuc2V0RmlsdGVycyA9IG5ldyBzZXRGaWx0ZXJzKCk7XG5cbnRva2VuaXplID0gU2l6emxlLnRva2VuaXplID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBwYXJzZU9ubHkgKSB7XG5cdHZhciBtYXRjaGVkLCBtYXRjaCwgdG9rZW5zLCB0eXBlLFxuXHRcdHNvRmFyLCBncm91cHMsIHByZUZpbHRlcnMsXG5cdFx0Y2FjaGVkID0gdG9rZW5DYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdO1xuXG5cdGlmICggY2FjaGVkICkge1xuXHRcdHJldHVybiBwYXJzZU9ubHkgPyAwIDogY2FjaGVkLnNsaWNlKCAwICk7XG5cdH1cblxuXHRzb0ZhciA9IHNlbGVjdG9yO1xuXHRncm91cHMgPSBbXTtcblx0cHJlRmlsdGVycyA9IEV4cHIucHJlRmlsdGVyO1xuXG5cdHdoaWxlICggc29GYXIgKSB7XG5cblx0XHQvLyBDb21tYSBhbmQgZmlyc3QgcnVuXG5cdFx0aWYgKCAhbWF0Y2hlZCB8fCAoIG1hdGNoID0gcmNvbW1hLmV4ZWMoIHNvRmFyICkgKSApIHtcblx0XHRcdGlmICggbWF0Y2ggKSB7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgY29uc3VtZSB0cmFpbGluZyBjb21tYXMgYXMgdmFsaWRcblx0XHRcdFx0c29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hbIDAgXS5sZW5ndGggKSB8fCBzb0Zhcjtcblx0XHRcdH1cblx0XHRcdGdyb3Vwcy5wdXNoKCAoIHRva2VucyA9IFtdICkgKTtcblx0XHR9XG5cblx0XHRtYXRjaGVkID0gZmFsc2U7XG5cblx0XHQvLyBDb21iaW5hdG9yc1xuXHRcdGlmICggKCBtYXRjaCA9IHJjb21iaW5hdG9ycy5leGVjKCBzb0ZhciApICkgKSB7XG5cdFx0XHRtYXRjaGVkID0gbWF0Y2guc2hpZnQoKTtcblx0XHRcdHRva2Vucy5wdXNoKCB7XG5cdFx0XHRcdHZhbHVlOiBtYXRjaGVkLFxuXG5cdFx0XHRcdC8vIENhc3QgZGVzY2VuZGFudCBjb21iaW5hdG9ycyB0byBzcGFjZVxuXHRcdFx0XHR0eXBlOiBtYXRjaFsgMCBdLnJlcGxhY2UoIHJ0cmltLCBcIiBcIiApXG5cdFx0XHR9ICk7XG5cdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaGVkLmxlbmd0aCApO1xuXHRcdH1cblxuXHRcdC8vIEZpbHRlcnNcblx0XHRmb3IgKCB0eXBlIGluIEV4cHIuZmlsdGVyICkge1xuXHRcdFx0aWYgKCAoIG1hdGNoID0gbWF0Y2hFeHByWyB0eXBlIF0uZXhlYyggc29GYXIgKSApICYmICggIXByZUZpbHRlcnNbIHR5cGUgXSB8fFxuXHRcdFx0XHQoIG1hdGNoID0gcHJlRmlsdGVyc1sgdHlwZSBdKCBtYXRjaCApICkgKSApIHtcblx0XHRcdFx0bWF0Y2hlZCA9IG1hdGNoLnNoaWZ0KCk7XG5cdFx0XHRcdHRva2Vucy5wdXNoKCB7XG5cdFx0XHRcdFx0dmFsdWU6IG1hdGNoZWQsXG5cdFx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0XHRtYXRjaGVzOiBtYXRjaFxuXHRcdFx0XHR9ICk7XG5cdFx0XHRcdHNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoZWQubGVuZ3RoICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCAhbWF0Y2hlZCApIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBpbnZhbGlkIGV4Y2Vzc1xuXHQvLyBpZiB3ZSdyZSBqdXN0IHBhcnNpbmdcblx0Ly8gT3RoZXJ3aXNlLCB0aHJvdyBhbiBlcnJvciBvciByZXR1cm4gdG9rZW5zXG5cdHJldHVybiBwYXJzZU9ubHkgP1xuXHRcdHNvRmFyLmxlbmd0aCA6XG5cdFx0c29GYXIgP1xuXHRcdFx0U2l6emxlLmVycm9yKCBzZWxlY3RvciApIDpcblxuXHRcdFx0Ly8gQ2FjaGUgdGhlIHRva2Vuc1xuXHRcdFx0dG9rZW5DYWNoZSggc2VsZWN0b3IsIGdyb3VwcyApLnNsaWNlKCAwICk7XG59O1xuXG5mdW5jdGlvbiB0b1NlbGVjdG9yKCB0b2tlbnMgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsZW4gPSB0b2tlbnMubGVuZ3RoLFxuXHRcdHNlbGVjdG9yID0gXCJcIjtcblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0c2VsZWN0b3IgKz0gdG9rZW5zWyBpIF0udmFsdWU7XG5cdH1cblx0cmV0dXJuIHNlbGVjdG9yO1xufVxuXG5mdW5jdGlvbiBhZGRDb21iaW5hdG9yKCBtYXRjaGVyLCBjb21iaW5hdG9yLCBiYXNlICkge1xuXHR2YXIgZGlyID0gY29tYmluYXRvci5kaXIsXG5cdFx0c2tpcCA9IGNvbWJpbmF0b3IubmV4dCxcblx0XHRrZXkgPSBza2lwIHx8IGRpcixcblx0XHRjaGVja05vbkVsZW1lbnRzID0gYmFzZSAmJiBrZXkgPT09IFwicGFyZW50Tm9kZVwiLFxuXHRcdGRvbmVOYW1lID0gZG9uZSsrO1xuXG5cdHJldHVybiBjb21iaW5hdG9yLmZpcnN0ID9cblxuXHRcdC8vIENoZWNrIGFnYWluc3QgY2xvc2VzdCBhbmNlc3Rvci9wcmVjZWRpbmcgZWxlbWVudFxuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR3aGlsZSAoICggZWxlbSA9IGVsZW1bIGRpciBdICkgKSB7XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdHJldHVybiBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gOlxuXG5cdFx0Ly8gQ2hlY2sgYWdhaW5zdCBhbGwgYW5jZXN0b3IvcHJlY2VkaW5nIGVsZW1lbnRzXG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHZhciBvbGRDYWNoZSwgdW5pcXVlQ2FjaGUsIG91dGVyQ2FjaGUsXG5cdFx0XHRcdG5ld0NhY2hlID0gWyBkaXJydW5zLCBkb25lTmFtZSBdO1xuXG5cdFx0XHQvLyBXZSBjYW4ndCBzZXQgYXJiaXRyYXJ5IGRhdGEgb24gWE1MIG5vZGVzLCBzbyB0aGV5IGRvbid0IGJlbmVmaXQgZnJvbSBjb21iaW5hdG9yIGNhY2hpbmdcblx0XHRcdGlmICggeG1sICkge1xuXHRcdFx0XHR3aGlsZSAoICggZWxlbSA9IGVsZW1bIGRpciBdICkgKSB7XG5cdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxIHx8IGNoZWNrTm9uRWxlbWVudHMgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHdoaWxlICggKCBlbGVtID0gZWxlbVsgZGlyIF0gKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBlbGVtWyBleHBhbmRvIF0gfHwgKCBlbGVtWyBleHBhbmRvIF0gPSB7fSApO1xuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8OSBvbmx5XG5cdFx0XHRcdFx0XHQvLyBEZWZlbmQgYWdhaW5zdCBjbG9uZWQgYXR0cm9wZXJ0aWVzIChqUXVlcnkgZ2gtMTcwOSlcblx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlID0gb3V0ZXJDYWNoZVsgZWxlbS51bmlxdWVJRCBdIHx8XG5cdFx0XHRcdFx0XHRcdCggb3V0ZXJDYWNoZVsgZWxlbS51bmlxdWVJRCBdID0ge30gKTtcblxuXHRcdFx0XHRcdFx0aWYgKCBza2lwICYmIHNraXAgPT09IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSApIHtcblx0XHRcdFx0XHRcdFx0ZWxlbSA9IGVsZW1bIGRpciBdIHx8IGVsZW07XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKCAoIG9sZENhY2hlID0gdW5pcXVlQ2FjaGVbIGtleSBdICkgJiZcblx0XHRcdFx0XHRcdFx0b2xkQ2FjaGVbIDAgXSA9PT0gZGlycnVucyAmJiBvbGRDYWNoZVsgMSBdID09PSBkb25lTmFtZSApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBBc3NpZ24gdG8gbmV3Q2FjaGUgc28gcmVzdWx0cyBiYWNrLXByb3BhZ2F0ZSB0byBwcmV2aW91cyBlbGVtZW50c1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKCBuZXdDYWNoZVsgMiBdID0gb2xkQ2FjaGVbIDIgXSApO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBSZXVzZSBuZXdjYWNoZSBzbyByZXN1bHRzIGJhY2stcHJvcGFnYXRlIHRvIHByZXZpb3VzIGVsZW1lbnRzXG5cdFx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlWyBrZXkgXSA9IG5ld0NhY2hlO1xuXG5cdFx0XHRcdFx0XHRcdC8vIEEgbWF0Y2ggbWVhbnMgd2UncmUgZG9uZTsgYSBmYWlsIG1lYW5zIHdlIGhhdmUgdG8ga2VlcCBjaGVja2luZ1xuXHRcdFx0XHRcdFx0XHRpZiAoICggbmV3Q2FjaGVbIDIgXSA9IG1hdGNoZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9O1xufVxuXG5mdW5jdGlvbiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSB7XG5cdHJldHVybiBtYXRjaGVycy5sZW5ndGggPiAxID9cblx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0dmFyIGkgPSBtYXRjaGVycy5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCAhbWF0Y2hlcnNbIGkgXSggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IDpcblx0XHRtYXRjaGVyc1sgMCBdO1xufVxuXG5mdW5jdGlvbiBtdWx0aXBsZUNvbnRleHRzKCBzZWxlY3RvciwgY29udGV4dHMsIHJlc3VsdHMgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsZW4gPSBjb250ZXh0cy5sZW5ndGg7XG5cdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdFNpenpsZSggc2VsZWN0b3IsIGNvbnRleHRzWyBpIF0sIHJlc3VsdHMgKTtcblx0fVxuXHRyZXR1cm4gcmVzdWx0cztcbn1cblxuZnVuY3Rpb24gY29uZGVuc2UoIHVubWF0Y2hlZCwgbWFwLCBmaWx0ZXIsIGNvbnRleHQsIHhtbCApIHtcblx0dmFyIGVsZW0sXG5cdFx0bmV3VW5tYXRjaGVkID0gW10sXG5cdFx0aSA9IDAsXG5cdFx0bGVuID0gdW5tYXRjaGVkLmxlbmd0aCxcblx0XHRtYXBwZWQgPSBtYXAgIT0gbnVsbDtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoICggZWxlbSA9IHVubWF0Y2hlZFsgaSBdICkgKSB7XG5cdFx0XHRpZiAoICFmaWx0ZXIgfHwgZmlsdGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSApIHtcblx0XHRcdFx0bmV3VW5tYXRjaGVkLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0aWYgKCBtYXBwZWQgKSB7XG5cdFx0XHRcdFx0bWFwLnB1c2goIGkgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBuZXdVbm1hdGNoZWQ7XG59XG5cbmZ1bmN0aW9uIHNldE1hdGNoZXIoIHByZUZpbHRlciwgc2VsZWN0b3IsIG1hdGNoZXIsIHBvc3RGaWx0ZXIsIHBvc3RGaW5kZXIsIHBvc3RTZWxlY3RvciApIHtcblx0aWYgKCBwb3N0RmlsdGVyICYmICFwb3N0RmlsdGVyWyBleHBhbmRvIF0gKSB7XG5cdFx0cG9zdEZpbHRlciA9IHNldE1hdGNoZXIoIHBvc3RGaWx0ZXIgKTtcblx0fVxuXHRpZiAoIHBvc3RGaW5kZXIgJiYgIXBvc3RGaW5kZXJbIGV4cGFuZG8gXSApIHtcblx0XHRwb3N0RmluZGVyID0gc2V0TWF0Y2hlciggcG9zdEZpbmRlciwgcG9zdFNlbGVjdG9yICk7XG5cdH1cblx0cmV0dXJuIG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlZWQsIHJlc3VsdHMsIGNvbnRleHQsIHhtbCApIHtcblx0XHR2YXIgdGVtcCwgaSwgZWxlbSxcblx0XHRcdHByZU1hcCA9IFtdLFxuXHRcdFx0cG9zdE1hcCA9IFtdLFxuXHRcdFx0cHJlZXhpc3RpbmcgPSByZXN1bHRzLmxlbmd0aCxcblxuXHRcdFx0Ly8gR2V0IGluaXRpYWwgZWxlbWVudHMgZnJvbSBzZWVkIG9yIGNvbnRleHRcblx0XHRcdGVsZW1zID0gc2VlZCB8fCBtdWx0aXBsZUNvbnRleHRzKFxuXHRcdFx0XHRzZWxlY3RvciB8fCBcIipcIixcblx0XHRcdFx0Y29udGV4dC5ub2RlVHlwZSA/IFsgY29udGV4dCBdIDogY29udGV4dCxcblx0XHRcdFx0W11cblx0XHRcdCksXG5cblx0XHRcdC8vIFByZWZpbHRlciB0byBnZXQgbWF0Y2hlciBpbnB1dCwgcHJlc2VydmluZyBhIG1hcCBmb3Igc2VlZC1yZXN1bHRzIHN5bmNocm9uaXphdGlvblxuXHRcdFx0bWF0Y2hlckluID0gcHJlRmlsdGVyICYmICggc2VlZCB8fCAhc2VsZWN0b3IgKSA/XG5cdFx0XHRcdGNvbmRlbnNlKCBlbGVtcywgcHJlTWFwLCBwcmVGaWx0ZXIsIGNvbnRleHQsIHhtbCApIDpcblx0XHRcdFx0ZWxlbXMsXG5cblx0XHRcdG1hdGNoZXJPdXQgPSBtYXRjaGVyID9cblxuXHRcdFx0XHQvLyBJZiB3ZSBoYXZlIGEgcG9zdEZpbmRlciwgb3IgZmlsdGVyZWQgc2VlZCwgb3Igbm9uLXNlZWQgcG9zdEZpbHRlciBvciBwcmVleGlzdGluZyByZXN1bHRzLFxuXHRcdFx0XHRwb3N0RmluZGVyIHx8ICggc2VlZCA/IHByZUZpbHRlciA6IHByZWV4aXN0aW5nIHx8IHBvc3RGaWx0ZXIgKSA/XG5cblx0XHRcdFx0XHQvLyAuLi5pbnRlcm1lZGlhdGUgcHJvY2Vzc2luZyBpcyBuZWNlc3Nhcnlcblx0XHRcdFx0XHRbXSA6XG5cblx0XHRcdFx0XHQvLyAuLi5vdGhlcndpc2UgdXNlIHJlc3VsdHMgZGlyZWN0bHlcblx0XHRcdFx0XHRyZXN1bHRzIDpcblx0XHRcdFx0bWF0Y2hlckluO1xuXG5cdFx0Ly8gRmluZCBwcmltYXJ5IG1hdGNoZXNcblx0XHRpZiAoIG1hdGNoZXIgKSB7XG5cdFx0XHRtYXRjaGVyKCBtYXRjaGVySW4sIG1hdGNoZXJPdXQsIGNvbnRleHQsIHhtbCApO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHBvc3RGaWx0ZXJcblx0XHRpZiAoIHBvc3RGaWx0ZXIgKSB7XG5cdFx0XHR0ZW1wID0gY29uZGVuc2UoIG1hdGNoZXJPdXQsIHBvc3RNYXAgKTtcblx0XHRcdHBvc3RGaWx0ZXIoIHRlbXAsIFtdLCBjb250ZXh0LCB4bWwgKTtcblxuXHRcdFx0Ly8gVW4tbWF0Y2ggZmFpbGluZyBlbGVtZW50cyBieSBtb3ZpbmcgdGhlbSBiYWNrIHRvIG1hdGNoZXJJblxuXHRcdFx0aSA9IHRlbXAubGVuZ3RoO1xuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGlmICggKCBlbGVtID0gdGVtcFsgaSBdICkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlck91dFsgcG9zdE1hcFsgaSBdIF0gPSAhKCBtYXRjaGVySW5bIHBvc3RNYXBbIGkgXSBdID0gZWxlbSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0aWYgKCBwb3N0RmluZGVyIHx8IHByZUZpbHRlciApIHtcblx0XHRcdFx0aWYgKCBwb3N0RmluZGVyICkge1xuXG5cdFx0XHRcdFx0Ly8gR2V0IHRoZSBmaW5hbCBtYXRjaGVyT3V0IGJ5IGNvbmRlbnNpbmcgdGhpcyBpbnRlcm1lZGlhdGUgaW50byBwb3N0RmluZGVyIGNvbnRleHRzXG5cdFx0XHRcdFx0dGVtcCA9IFtdO1xuXHRcdFx0XHRcdGkgPSBtYXRjaGVyT3V0Lmxlbmd0aDtcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdGlmICggKCBlbGVtID0gbWF0Y2hlck91dFsgaSBdICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gUmVzdG9yZSBtYXRjaGVySW4gc2luY2UgZWxlbSBpcyBub3QgeWV0IGEgZmluYWwgbWF0Y2hcblx0XHRcdFx0XHRcdFx0dGVtcC5wdXNoKCAoIG1hdGNoZXJJblsgaSBdID0gZWxlbSApICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHBvc3RGaW5kZXIoIG51bGwsICggbWF0Y2hlck91dCA9IFtdICksIHRlbXAsIHhtbCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gTW92ZSBtYXRjaGVkIGVsZW1lbnRzIGZyb20gc2VlZCB0byByZXN1bHRzIHRvIGtlZXAgdGhlbSBzeW5jaHJvbml6ZWRcblx0XHRcdFx0aSA9IG1hdGNoZXJPdXQubGVuZ3RoO1xuXHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRpZiAoICggZWxlbSA9IG1hdGNoZXJPdXRbIGkgXSApICYmXG5cdFx0XHRcdFx0XHQoIHRlbXAgPSBwb3N0RmluZGVyID8gaW5kZXhPZiggc2VlZCwgZWxlbSApIDogcHJlTWFwWyBpIF0gKSA+IC0xICkge1xuXG5cdFx0XHRcdFx0XHRzZWVkWyB0ZW1wIF0gPSAhKCByZXN1bHRzWyB0ZW1wIF0gPSBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHQvLyBBZGQgZWxlbWVudHMgdG8gcmVzdWx0cywgdGhyb3VnaCBwb3N0RmluZGVyIGlmIGRlZmluZWRcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWF0Y2hlck91dCA9IGNvbmRlbnNlKFxuXHRcdFx0XHRtYXRjaGVyT3V0ID09PSByZXN1bHRzID9cblx0XHRcdFx0XHRtYXRjaGVyT3V0LnNwbGljZSggcHJlZXhpc3RpbmcsIG1hdGNoZXJPdXQubGVuZ3RoICkgOlxuXHRcdFx0XHRcdG1hdGNoZXJPdXRcblx0XHRcdCk7XG5cdFx0XHRpZiAoIHBvc3RGaW5kZXIgKSB7XG5cdFx0XHRcdHBvc3RGaW5kZXIoIG51bGwsIHJlc3VsdHMsIG1hdGNoZXJPdXQsIHhtbCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgbWF0Y2hlck91dCApO1xuXHRcdFx0fVxuXHRcdH1cblx0fSApO1xufVxuXG5mdW5jdGlvbiBtYXRjaGVyRnJvbVRva2VucyggdG9rZW5zICkge1xuXHR2YXIgY2hlY2tDb250ZXh0LCBtYXRjaGVyLCBqLFxuXHRcdGxlbiA9IHRva2Vucy5sZW5ndGgsXG5cdFx0bGVhZGluZ1JlbGF0aXZlID0gRXhwci5yZWxhdGl2ZVsgdG9rZW5zWyAwIF0udHlwZSBdLFxuXHRcdGltcGxpY2l0UmVsYXRpdmUgPSBsZWFkaW5nUmVsYXRpdmUgfHwgRXhwci5yZWxhdGl2ZVsgXCIgXCIgXSxcblx0XHRpID0gbGVhZGluZ1JlbGF0aXZlID8gMSA6IDAsXG5cblx0XHQvLyBUaGUgZm91bmRhdGlvbmFsIG1hdGNoZXIgZW5zdXJlcyB0aGF0IGVsZW1lbnRzIGFyZSByZWFjaGFibGUgZnJvbSB0b3AtbGV2ZWwgY29udGV4dChzKVxuXHRcdG1hdGNoQ29udGV4dCA9IGFkZENvbWJpbmF0b3IoIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGNoZWNrQ29udGV4dDtcblx0XHR9LCBpbXBsaWNpdFJlbGF0aXZlLCB0cnVlICksXG5cdFx0bWF0Y2hBbnlDb250ZXh0ID0gYWRkQ29tYmluYXRvciggZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gaW5kZXhPZiggY2hlY2tDb250ZXh0LCBlbGVtICkgPiAtMTtcblx0XHR9LCBpbXBsaWNpdFJlbGF0aXZlLCB0cnVlICksXG5cdFx0bWF0Y2hlcnMgPSBbIGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR2YXIgcmV0ID0gKCAhbGVhZGluZ1JlbGF0aXZlICYmICggeG1sIHx8IGNvbnRleHQgIT09IG91dGVybW9zdENvbnRleHQgKSApIHx8IChcblx0XHRcdFx0KCBjaGVja0NvbnRleHQgPSBjb250ZXh0ICkubm9kZVR5cGUgP1xuXHRcdFx0XHRcdG1hdGNoQ29udGV4dCggZWxlbSwgY29udGV4dCwgeG1sICkgOlxuXHRcdFx0XHRcdG1hdGNoQW55Q29udGV4dCggZWxlbSwgY29udGV4dCwgeG1sICkgKTtcblxuXHRcdFx0Ly8gQXZvaWQgaGFuZ2luZyBvbnRvIGVsZW1lbnQgKGlzc3VlICMyOTkpXG5cdFx0XHRjaGVja0NvbnRleHQgPSBudWxsO1xuXHRcdFx0cmV0dXJuIHJldDtcblx0XHR9IF07XG5cblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0aWYgKCAoIG1hdGNoZXIgPSBFeHByLnJlbGF0aXZlWyB0b2tlbnNbIGkgXS50eXBlIF0gKSApIHtcblx0XHRcdG1hdGNoZXJzID0gWyBhZGRDb21iaW5hdG9yKCBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSwgbWF0Y2hlciApIF07XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1hdGNoZXIgPSBFeHByLmZpbHRlclsgdG9rZW5zWyBpIF0udHlwZSBdLmFwcGx5KCBudWxsLCB0b2tlbnNbIGkgXS5tYXRjaGVzICk7XG5cblx0XHRcdC8vIFJldHVybiBzcGVjaWFsIHVwb24gc2VlaW5nIGEgcG9zaXRpb25hbCBtYXRjaGVyXG5cdFx0XHRpZiAoIG1hdGNoZXJbIGV4cGFuZG8gXSApIHtcblxuXHRcdFx0XHQvLyBGaW5kIHRoZSBuZXh0IHJlbGF0aXZlIG9wZXJhdG9yIChpZiBhbnkpIGZvciBwcm9wZXIgaGFuZGxpbmdcblx0XHRcdFx0aiA9ICsraTtcblx0XHRcdFx0Zm9yICggOyBqIDwgbGVuOyBqKysgKSB7XG5cdFx0XHRcdFx0aWYgKCBFeHByLnJlbGF0aXZlWyB0b2tlbnNbIGogXS50eXBlIF0gKSB7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHNldE1hdGNoZXIoXG5cdFx0XHRcdFx0aSA+IDEgJiYgZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICksXG5cdFx0XHRcdFx0aSA+IDEgJiYgdG9TZWxlY3RvcihcblxuXHRcdFx0XHRcdC8vIElmIHRoZSBwcmVjZWRpbmcgdG9rZW4gd2FzIGEgZGVzY2VuZGFudCBjb21iaW5hdG9yLCBpbnNlcnQgYW4gaW1wbGljaXQgYW55LWVsZW1lbnQgYCpgXG5cdFx0XHRcdFx0dG9rZW5zXG5cdFx0XHRcdFx0XHQuc2xpY2UoIDAsIGkgLSAxIClcblx0XHRcdFx0XHRcdC5jb25jYXQoIHsgdmFsdWU6IHRva2Vuc1sgaSAtIDIgXS50eXBlID09PSBcIiBcIiA/IFwiKlwiIDogXCJcIiB9IClcblx0XHRcdFx0XHQpLnJlcGxhY2UoIHJ0cmltLCBcIiQxXCIgKSxcblx0XHRcdFx0XHRtYXRjaGVyLFxuXHRcdFx0XHRcdGkgPCBqICYmIG1hdGNoZXJGcm9tVG9rZW5zKCB0b2tlbnMuc2xpY2UoIGksIGogKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgbWF0Y2hlckZyb21Ub2tlbnMoICggdG9rZW5zID0gdG9rZW5zLnNsaWNlKCBqICkgKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgdG9TZWxlY3RvciggdG9rZW5zIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdG1hdGNoZXJzLnB1c2goIG1hdGNoZXIgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggZWxlbWVudE1hdGNoZXJzLCBzZXRNYXRjaGVycyApIHtcblx0dmFyIGJ5U2V0ID0gc2V0TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRieUVsZW1lbnQgPSBlbGVtZW50TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRzdXBlck1hdGNoZXIgPSBmdW5jdGlvbiggc2VlZCwgY29udGV4dCwgeG1sLCByZXN1bHRzLCBvdXRlcm1vc3QgKSB7XG5cdFx0XHR2YXIgZWxlbSwgaiwgbWF0Y2hlcixcblx0XHRcdFx0bWF0Y2hlZENvdW50ID0gMCxcblx0XHRcdFx0aSA9IFwiMFwiLFxuXHRcdFx0XHR1bm1hdGNoZWQgPSBzZWVkICYmIFtdLFxuXHRcdFx0XHRzZXRNYXRjaGVkID0gW10sXG5cdFx0XHRcdGNvbnRleHRCYWNrdXAgPSBvdXRlcm1vc3RDb250ZXh0LFxuXG5cdFx0XHRcdC8vIFdlIG11c3QgYWx3YXlzIGhhdmUgZWl0aGVyIHNlZWQgZWxlbWVudHMgb3Igb3V0ZXJtb3N0IGNvbnRleHRcblx0XHRcdFx0ZWxlbXMgPSBzZWVkIHx8IGJ5RWxlbWVudCAmJiBFeHByLmZpbmRbIFwiVEFHXCIgXSggXCIqXCIsIG91dGVybW9zdCApLFxuXG5cdFx0XHRcdC8vIFVzZSBpbnRlZ2VyIGRpcnJ1bnMgaWZmIHRoaXMgaXMgdGhlIG91dGVybW9zdCBtYXRjaGVyXG5cdFx0XHRcdGRpcnJ1bnNVbmlxdWUgPSAoIGRpcnJ1bnMgKz0gY29udGV4dEJhY2t1cCA9PSBudWxsID8gMSA6IE1hdGgucmFuZG9tKCkgfHwgMC4xICksXG5cdFx0XHRcdGxlbiA9IGVsZW1zLmxlbmd0aDtcblxuXHRcdFx0aWYgKCBvdXRlcm1vc3QgKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRcdFx0b3V0ZXJtb3N0Q29udGV4dCA9IGNvbnRleHQgPT0gZG9jdW1lbnQgfHwgY29udGV4dCB8fCBvdXRlcm1vc3Q7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBlbGVtZW50cyBwYXNzaW5nIGVsZW1lbnRNYXRjaGVycyBkaXJlY3RseSB0byByZXN1bHRzXG5cdFx0XHQvLyBTdXBwb3J0OiBJRTw5LCBTYWZhcmlcblx0XHRcdC8vIFRvbGVyYXRlIE5vZGVMaXN0IHByb3BlcnRpZXMgKElFOiBcImxlbmd0aFwiOyBTYWZhcmk6IDxudW1iZXI+KSBtYXRjaGluZyBlbGVtZW50cyBieSBpZFxuXHRcdFx0Zm9yICggOyBpICE9PSBsZW4gJiYgKCBlbGVtID0gZWxlbXNbIGkgXSApICE9IG51bGw7IGkrKyApIHtcblx0XHRcdFx0aWYgKCBieUVsZW1lbnQgJiYgZWxlbSApIHtcblx0XHRcdFx0XHRqID0gMDtcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdFx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0XHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdFx0XHRcdFx0aWYgKCAhY29udGV4dCAmJiBlbGVtLm93bmVyRG9jdW1lbnQgIT0gZG9jdW1lbnQgKSB7XG5cdFx0XHRcdFx0XHRzZXREb2N1bWVudCggZWxlbSApO1xuXHRcdFx0XHRcdFx0eG1sID0gIWRvY3VtZW50SXNIVE1MO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR3aGlsZSAoICggbWF0Y2hlciA9IGVsZW1lbnRNYXRjaGVyc1sgaisrIF0gKSApIHtcblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlciggZWxlbSwgY29udGV4dCB8fCBkb2N1bWVudCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0XHRcdHJlc3VsdHMucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCBvdXRlcm1vc3QgKSB7XG5cdFx0XHRcdFx0XHRkaXJydW5zID0gZGlycnVuc1VuaXF1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUcmFjayB1bm1hdGNoZWQgZWxlbWVudHMgZm9yIHNldCBmaWx0ZXJzXG5cdFx0XHRcdGlmICggYnlTZXQgKSB7XG5cblx0XHRcdFx0XHQvLyBUaGV5IHdpbGwgaGF2ZSBnb25lIHRocm91Z2ggYWxsIHBvc3NpYmxlIG1hdGNoZXJzXG5cdFx0XHRcdFx0aWYgKCAoIGVsZW0gPSAhbWF0Y2hlciAmJiBlbGVtICkgKSB7XG5cdFx0XHRcdFx0XHRtYXRjaGVkQ291bnQtLTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBMZW5ndGhlbiB0aGUgYXJyYXkgZm9yIGV2ZXJ5IGVsZW1lbnQsIG1hdGNoZWQgb3Igbm90XG5cdFx0XHRcdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0XHRcdFx0dW5tYXRjaGVkLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gYGlgIGlzIG5vdyB0aGUgY291bnQgb2YgZWxlbWVudHMgdmlzaXRlZCBhYm92ZSwgYW5kIGFkZGluZyBpdCB0byBgbWF0Y2hlZENvdW50YFxuXHRcdFx0Ly8gbWFrZXMgdGhlIGxhdHRlciBub25uZWdhdGl2ZS5cblx0XHRcdG1hdGNoZWRDb3VudCArPSBpO1xuXG5cdFx0XHQvLyBBcHBseSBzZXQgZmlsdGVycyB0byB1bm1hdGNoZWQgZWxlbWVudHNcblx0XHRcdC8vIE5PVEU6IFRoaXMgY2FuIGJlIHNraXBwZWQgaWYgdGhlcmUgYXJlIG5vIHVubWF0Y2hlZCBlbGVtZW50cyAoaS5lLiwgYG1hdGNoZWRDb3VudGBcblx0XHRcdC8vIGVxdWFscyBgaWApLCB1bmxlc3Mgd2UgZGlkbid0IHZpc2l0IF9hbnlfIGVsZW1lbnRzIGluIHRoZSBhYm92ZSBsb29wIGJlY2F1c2Ugd2UgaGF2ZVxuXHRcdFx0Ly8gbm8gZWxlbWVudCBtYXRjaGVycyBhbmQgbm8gc2VlZC5cblx0XHRcdC8vIEluY3JlbWVudGluZyBhbiBpbml0aWFsbHktc3RyaW5nIFwiMFwiIGBpYCBhbGxvd3MgYGlgIHRvIHJlbWFpbiBhIHN0cmluZyBvbmx5IGluIHRoYXRcblx0XHRcdC8vIGNhc2UsIHdoaWNoIHdpbGwgcmVzdWx0IGluIGEgXCIwMFwiIGBtYXRjaGVkQ291bnRgIHRoYXQgZGlmZmVycyBmcm9tIGBpYCBidXQgaXMgYWxzb1xuXHRcdFx0Ly8gbnVtZXJpY2FsbHkgemVyby5cblx0XHRcdGlmICggYnlTZXQgJiYgaSAhPT0gbWF0Y2hlZENvdW50ICkge1xuXHRcdFx0XHRqID0gMDtcblx0XHRcdFx0d2hpbGUgKCAoIG1hdGNoZXIgPSBzZXRNYXRjaGVyc1sgaisrIF0gKSApIHtcblx0XHRcdFx0XHRtYXRjaGVyKCB1bm1hdGNoZWQsIHNldE1hdGNoZWQsIGNvbnRleHQsIHhtbCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCBzZWVkICkge1xuXG5cdFx0XHRcdFx0Ly8gUmVpbnRlZ3JhdGUgZWxlbWVudCBtYXRjaGVzIHRvIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3Igc29ydGluZ1xuXHRcdFx0XHRcdGlmICggbWF0Y2hlZENvdW50ID4gMCApIHtcblx0XHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0XHRpZiAoICEoIHVubWF0Y2hlZFsgaSBdIHx8IHNldE1hdGNoZWRbIGkgXSApICkge1xuXHRcdFx0XHRcdFx0XHRcdHNldE1hdGNoZWRbIGkgXSA9IHBvcC5jYWxsKCByZXN1bHRzICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBEaXNjYXJkIGluZGV4IHBsYWNlaG9sZGVyIHZhbHVlcyB0byBnZXQgb25seSBhY3R1YWwgbWF0Y2hlc1xuXHRcdFx0XHRcdHNldE1hdGNoZWQgPSBjb25kZW5zZSggc2V0TWF0Y2hlZCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQWRkIG1hdGNoZXMgdG8gcmVzdWx0c1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBzZXRNYXRjaGVkICk7XG5cblx0XHRcdFx0Ly8gU2VlZGxlc3Mgc2V0IG1hdGNoZXMgc3VjY2VlZGluZyBtdWx0aXBsZSBzdWNjZXNzZnVsIG1hdGNoZXJzIHN0aXB1bGF0ZSBzb3J0aW5nXG5cdFx0XHRcdGlmICggb3V0ZXJtb3N0ICYmICFzZWVkICYmIHNldE1hdGNoZWQubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdCggbWF0Y2hlZENvdW50ICsgc2V0TWF0Y2hlcnMubGVuZ3RoICkgPiAxICkge1xuXG5cdFx0XHRcdFx0U2l6emxlLnVuaXF1ZVNvcnQoIHJlc3VsdHMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBPdmVycmlkZSBtYW5pcHVsYXRpb24gb2YgZ2xvYmFscyBieSBuZXN0ZWQgbWF0Y2hlcnNcblx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXHRcdFx0XHRkaXJydW5zID0gZGlycnVuc1VuaXF1ZTtcblx0XHRcdFx0b3V0ZXJtb3N0Q29udGV4dCA9IGNvbnRleHRCYWNrdXA7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB1bm1hdGNoZWQ7XG5cdFx0fTtcblxuXHRyZXR1cm4gYnlTZXQgP1xuXHRcdG1hcmtGdW5jdGlvbiggc3VwZXJNYXRjaGVyICkgOlxuXHRcdHN1cGVyTWF0Y2hlcjtcbn1cblxuY29tcGlsZSA9IFNpenpsZS5jb21waWxlID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBtYXRjaCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHtcblx0dmFyIGksXG5cdFx0c2V0TWF0Y2hlcnMgPSBbXSxcblx0XHRlbGVtZW50TWF0Y2hlcnMgPSBbXSxcblx0XHRjYWNoZWQgPSBjb21waWxlckNhY2hlWyBzZWxlY3RvciArIFwiIFwiIF07XG5cblx0aWYgKCAhY2FjaGVkICkge1xuXG5cdFx0Ly8gR2VuZXJhdGUgYSBmdW5jdGlvbiBvZiByZWN1cnNpdmUgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgZWFjaCBlbGVtZW50XG5cdFx0aWYgKCAhbWF0Y2ggKSB7XG5cdFx0XHRtYXRjaCA9IHRva2VuaXplKCBzZWxlY3RvciApO1xuXHRcdH1cblx0XHRpID0gbWF0Y2gubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0Y2FjaGVkID0gbWF0Y2hlckZyb21Ub2tlbnMoIG1hdGNoWyBpIF0gKTtcblx0XHRcdGlmICggY2FjaGVkWyBleHBhbmRvIF0gKSB7XG5cdFx0XHRcdHNldE1hdGNoZXJzLnB1c2goIGNhY2hlZCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbWVudE1hdGNoZXJzLnB1c2goIGNhY2hlZCApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhY2hlIHRoZSBjb21waWxlZCBmdW5jdGlvblxuXHRcdGNhY2hlZCA9IGNvbXBpbGVyQ2FjaGUoXG5cdFx0XHRzZWxlY3Rvcixcblx0XHRcdG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggZWxlbWVudE1hdGNoZXJzLCBzZXRNYXRjaGVycyApXG5cdFx0KTtcblxuXHRcdC8vIFNhdmUgc2VsZWN0b3IgYW5kIHRva2VuaXphdGlvblxuXHRcdGNhY2hlZC5zZWxlY3RvciA9IHNlbGVjdG9yO1xuXHR9XG5cdHJldHVybiBjYWNoZWQ7XG59O1xuXG4vKipcbiAqIEEgbG93LWxldmVsIHNlbGVjdGlvbiBmdW5jdGlvbiB0aGF0IHdvcmtzIHdpdGggU2l6emxlJ3MgY29tcGlsZWRcbiAqICBzZWxlY3RvciBmdW5jdGlvbnNcbiAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBzZWxlY3RvciBBIHNlbGVjdG9yIG9yIGEgcHJlLWNvbXBpbGVkXG4gKiAgc2VsZWN0b3IgZnVuY3Rpb24gYnVpbHQgd2l0aCBTaXp6bGUuY29tcGlsZVxuICogQHBhcmFtIHtFbGVtZW50fSBjb250ZXh0XG4gKiBAcGFyYW0ge0FycmF5fSBbcmVzdWx0c11cbiAqIEBwYXJhbSB7QXJyYXl9IFtzZWVkXSBBIHNldCBvZiBlbGVtZW50cyB0byBtYXRjaCBhZ2FpbnN0XG4gKi9cbnNlbGVjdCA9IFNpenpsZS5zZWxlY3QgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7XG5cdHZhciBpLCB0b2tlbnMsIHRva2VuLCB0eXBlLCBmaW5kLFxuXHRcdGNvbXBpbGVkID0gdHlwZW9mIHNlbGVjdG9yID09PSBcImZ1bmN0aW9uXCIgJiYgc2VsZWN0b3IsXG5cdFx0bWF0Y2ggPSAhc2VlZCAmJiB0b2tlbml6ZSggKCBzZWxlY3RvciA9IGNvbXBpbGVkLnNlbGVjdG9yIHx8IHNlbGVjdG9yICkgKTtcblxuXHRyZXN1bHRzID0gcmVzdWx0cyB8fCBbXTtcblxuXHQvLyBUcnkgdG8gbWluaW1pemUgb3BlcmF0aW9ucyBpZiB0aGVyZSBpcyBvbmx5IG9uZSBzZWxlY3RvciBpbiB0aGUgbGlzdCBhbmQgbm8gc2VlZFxuXHQvLyAodGhlIGxhdHRlciBvZiB3aGljaCBndWFyYW50ZWVzIHVzIGNvbnRleHQpXG5cdGlmICggbWF0Y2gubGVuZ3RoID09PSAxICkge1xuXG5cdFx0Ly8gUmVkdWNlIGNvbnRleHQgaWYgdGhlIGxlYWRpbmcgY29tcG91bmQgc2VsZWN0b3IgaXMgYW4gSURcblx0XHR0b2tlbnMgPSBtYXRjaFsgMCBdID0gbWF0Y2hbIDAgXS5zbGljZSggMCApO1xuXHRcdGlmICggdG9rZW5zLmxlbmd0aCA+IDIgJiYgKCB0b2tlbiA9IHRva2Vuc1sgMCBdICkudHlwZSA9PT0gXCJJRFwiICYmXG5cdFx0XHRjb250ZXh0Lm5vZGVUeXBlID09PSA5ICYmIGRvY3VtZW50SXNIVE1MICYmIEV4cHIucmVsYXRpdmVbIHRva2Vuc1sgMSBdLnR5cGUgXSApIHtcblxuXHRcdFx0Y29udGV4dCA9ICggRXhwci5maW5kWyBcIklEXCIgXSggdG9rZW4ubWF0Y2hlc1sgMCBdXG5cdFx0XHRcdC5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApLCBjb250ZXh0ICkgfHwgW10gKVsgMCBdO1xuXHRcdFx0aWYgKCAhY29udGV4dCApIHtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cblx0XHRcdC8vIFByZWNvbXBpbGVkIG1hdGNoZXJzIHdpbGwgc3RpbGwgdmVyaWZ5IGFuY2VzdHJ5LCBzbyBzdGVwIHVwIGEgbGV2ZWxcblx0XHRcdH0gZWxzZSBpZiAoIGNvbXBpbGVkICkge1xuXHRcdFx0XHRjb250ZXh0ID0gY29udGV4dC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXG5cdFx0XHRzZWxlY3RvciA9IHNlbGVjdG9yLnNsaWNlKCB0b2tlbnMuc2hpZnQoKS52YWx1ZS5sZW5ndGggKTtcblx0XHR9XG5cblx0XHQvLyBGZXRjaCBhIHNlZWQgc2V0IGZvciByaWdodC10by1sZWZ0IG1hdGNoaW5nXG5cdFx0aSA9IG1hdGNoRXhwclsgXCJuZWVkc0NvbnRleHRcIiBdLnRlc3QoIHNlbGVjdG9yICkgPyAwIDogdG9rZW5zLmxlbmd0aDtcblx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdHRva2VuID0gdG9rZW5zWyBpIF07XG5cblx0XHRcdC8vIEFib3J0IGlmIHdlIGhpdCBhIGNvbWJpbmF0b3Jcblx0XHRcdGlmICggRXhwci5yZWxhdGl2ZVsgKCB0eXBlID0gdG9rZW4udHlwZSApIF0gKSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCAoIGZpbmQgPSBFeHByLmZpbmRbIHR5cGUgXSApICkge1xuXG5cdFx0XHRcdC8vIFNlYXJjaCwgZXhwYW5kaW5nIGNvbnRleHQgZm9yIGxlYWRpbmcgc2libGluZyBjb21iaW5hdG9yc1xuXHRcdFx0XHRpZiAoICggc2VlZCA9IGZpbmQoXG5cdFx0XHRcdFx0dG9rZW4ubWF0Y2hlc1sgMCBdLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICksXG5cdFx0XHRcdFx0cnNpYmxpbmcudGVzdCggdG9rZW5zWyAwIF0udHlwZSApICYmIHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fFxuXHRcdFx0XHRcdFx0Y29udGV4dFxuXHRcdFx0XHQpICkgKSB7XG5cblx0XHRcdFx0XHQvLyBJZiBzZWVkIGlzIGVtcHR5IG9yIG5vIHRva2VucyByZW1haW4sIHdlIGNhbiByZXR1cm4gZWFybHlcblx0XHRcdFx0XHR0b2tlbnMuc3BsaWNlKCBpLCAxICk7XG5cdFx0XHRcdFx0c2VsZWN0b3IgPSBzZWVkLmxlbmd0aCAmJiB0b1NlbGVjdG9yKCB0b2tlbnMgKTtcblx0XHRcdFx0XHRpZiAoICFzZWxlY3RvciApIHtcblx0XHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIHNlZWQgKTtcblx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ29tcGlsZSBhbmQgZXhlY3V0ZSBhIGZpbHRlcmluZyBmdW5jdGlvbiBpZiBvbmUgaXMgbm90IHByb3ZpZGVkXG5cdC8vIFByb3ZpZGUgYG1hdGNoYCB0byBhdm9pZCByZXRva2VuaXphdGlvbiBpZiB3ZSBtb2RpZmllZCB0aGUgc2VsZWN0b3IgYWJvdmVcblx0KCBjb21waWxlZCB8fCBjb21waWxlKCBzZWxlY3RvciwgbWF0Y2ggKSApKFxuXHRcdHNlZWQsXG5cdFx0Y29udGV4dCxcblx0XHQhZG9jdW1lbnRJc0hUTUwsXG5cdFx0cmVzdWx0cyxcblx0XHQhY29udGV4dCB8fCByc2libGluZy50ZXN0KCBzZWxlY3RvciApICYmIHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fCBjb250ZXh0XG5cdCk7XG5cdHJldHVybiByZXN1bHRzO1xufTtcblxuLy8gT25lLXRpbWUgYXNzaWdubWVudHNcblxuLy8gU29ydCBzdGFiaWxpdHlcbnN1cHBvcnQuc29ydFN0YWJsZSA9IGV4cGFuZG8uc3BsaXQoIFwiXCIgKS5zb3J0KCBzb3J0T3JkZXIgKS5qb2luKCBcIlwiICkgPT09IGV4cGFuZG87XG5cbi8vIFN1cHBvcnQ6IENocm9tZSAxNC0zNStcbi8vIEFsd2F5cyBhc3N1bWUgZHVwbGljYXRlcyBpZiB0aGV5IGFyZW4ndCBwYXNzZWQgdG8gdGhlIGNvbXBhcmlzb24gZnVuY3Rpb25cbnN1cHBvcnQuZGV0ZWN0RHVwbGljYXRlcyA9ICEhaGFzRHVwbGljYXRlO1xuXG4vLyBJbml0aWFsaXplIGFnYWluc3QgdGhlIGRlZmF1bHQgZG9jdW1lbnRcbnNldERvY3VtZW50KCk7XG5cbi8vIFN1cHBvcnQ6IFdlYmtpdDw1MzcuMzIgLSBTYWZhcmkgNi4wLjMvQ2hyb21lIDI1IChmaXhlZCBpbiBDaHJvbWUgMjcpXG4vLyBEZXRhY2hlZCBub2RlcyBjb25mb3VuZGluZ2x5IGZvbGxvdyAqZWFjaCBvdGhlcipcbnN1cHBvcnQuc29ydERldGFjaGVkID0gYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cblx0Ly8gU2hvdWxkIHJldHVybiAxLCBidXQgcmV0dXJucyA0IChmb2xsb3dpbmcpXG5cdHJldHVybiBlbC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJmaWVsZHNldFwiICkgKSAmIDE7XG59ICk7XG5cbi8vIFN1cHBvcnQ6IElFPDhcbi8vIFByZXZlbnQgYXR0cmlidXRlL3Byb3BlcnR5IFwiaW50ZXJwb2xhdGlvblwiXG4vLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zNTM2NDI5JTI4VlMuODUlMjkuYXNweFxuaWYgKCAhYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdGVsLmlubmVySFRNTCA9IFwiPGEgaHJlZj0nIyc+PC9hPlwiO1xuXHRyZXR1cm4gZWwuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoIFwiaHJlZlwiICkgPT09IFwiI1wiO1xufSApICkge1xuXHRhZGRIYW5kbGUoIFwidHlwZXxocmVmfGhlaWdodHx3aWR0aFwiLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgaXNYTUwgKSB7XG5cdFx0aWYgKCAhaXNYTUwgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0eXBlXCIgPyAxIDogMiApO1xuXHRcdH1cblx0fSApO1xufVxuXG4vLyBTdXBwb3J0OiBJRTw5XG4vLyBVc2UgZGVmYXVsdFZhbHVlIGluIHBsYWNlIG9mIGdldEF0dHJpYnV0ZShcInZhbHVlXCIpXG5pZiAoICFzdXBwb3J0LmF0dHJpYnV0ZXMgfHwgIWFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRlbC5pbm5lckhUTUwgPSBcIjxpbnB1dC8+XCI7XG5cdGVsLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCBcInZhbHVlXCIsIFwiXCIgKTtcblx0cmV0dXJuIGVsLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCBcInZhbHVlXCIgKSA9PT0gXCJcIjtcbn0gKSApIHtcblx0YWRkSGFuZGxlKCBcInZhbHVlXCIsIGZ1bmN0aW9uKCBlbGVtLCBfbmFtZSwgaXNYTUwgKSB7XG5cdFx0aWYgKCAhaXNYTUwgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBcImlucHV0XCIgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kZWZhdWx0VmFsdWU7XG5cdFx0fVxuXHR9ICk7XG59XG5cbi8vIFN1cHBvcnQ6IElFPDlcbi8vIFVzZSBnZXRBdHRyaWJ1dGVOb2RlIHRvIGZldGNoIGJvb2xlYW5zIHdoZW4gZ2V0QXR0cmlidXRlIGxpZXNcbmlmICggIWFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRyZXR1cm4gZWwuZ2V0QXR0cmlidXRlKCBcImRpc2FibGVkXCIgKSA9PSBudWxsO1xufSApICkge1xuXHRhZGRIYW5kbGUoIGJvb2xlYW5zLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgaXNYTUwgKSB7XG5cdFx0dmFyIHZhbDtcblx0XHRpZiAoICFpc1hNTCApIHtcblx0XHRcdHJldHVybiBlbGVtWyBuYW1lIF0gPT09IHRydWUgPyBuYW1lLnRvTG93ZXJDYXNlKCkgOlxuXHRcdFx0XHQoIHZhbCA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggbmFtZSApICkgJiYgdmFsLnNwZWNpZmllZCA/XG5cdFx0XHRcdFx0dmFsLnZhbHVlIDpcblx0XHRcdFx0XHRudWxsO1xuXHRcdH1cblx0fSApO1xufVxuXG5yZXR1cm4gU2l6emxlO1xuXG59ICkoIHdpbmRvdyApO1xuXG5cblxualF1ZXJ5LmZpbmQgPSBTaXp6bGU7XG5qUXVlcnkuZXhwciA9IFNpenpsZS5zZWxlY3RvcnM7XG5cbi8vIERlcHJlY2F0ZWRcbmpRdWVyeS5leHByWyBcIjpcIiBdID0galF1ZXJ5LmV4cHIucHNldWRvcztcbmpRdWVyeS51bmlxdWVTb3J0ID0galF1ZXJ5LnVuaXF1ZSA9IFNpenpsZS51bmlxdWVTb3J0O1xualF1ZXJ5LnRleHQgPSBTaXp6bGUuZ2V0VGV4dDtcbmpRdWVyeS5pc1hNTERvYyA9IFNpenpsZS5pc1hNTDtcbmpRdWVyeS5jb250YWlucyA9IFNpenpsZS5jb250YWlucztcbmpRdWVyeS5lc2NhcGVTZWxlY3RvciA9IFNpenpsZS5lc2NhcGU7XG5cblxuXG5cbnZhciBkaXIgPSBmdW5jdGlvbiggZWxlbSwgZGlyLCB1bnRpbCApIHtcblx0dmFyIG1hdGNoZWQgPSBbXSxcblx0XHR0cnVuY2F0ZSA9IHVudGlsICE9PSB1bmRlZmluZWQ7XG5cblx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtWyBkaXIgXSApICYmIGVsZW0ubm9kZVR5cGUgIT09IDkgKSB7XG5cdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0aWYgKCB0cnVuY2F0ZSAmJiBqUXVlcnkoIGVsZW0gKS5pcyggdW50aWwgKSApIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRtYXRjaGVkLnB1c2goIGVsZW0gKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIG1hdGNoZWQ7XG59O1xuXG5cbnZhciBzaWJsaW5ncyA9IGZ1bmN0aW9uKCBuLCBlbGVtICkge1xuXHR2YXIgbWF0Y2hlZCA9IFtdO1xuXG5cdGZvciAoIDsgbjsgbiA9IG4ubmV4dFNpYmxpbmcgKSB7XG5cdFx0aWYgKCBuLm5vZGVUeXBlID09PSAxICYmIG4gIT09IGVsZW0gKSB7XG5cdFx0XHRtYXRjaGVkLnB1c2goIG4gKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gbWF0Y2hlZDtcbn07XG5cblxudmFyIHJuZWVkc0NvbnRleHQgPSBqUXVlcnkuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7XG5cblxuXG5mdW5jdGlvbiBub2RlTmFtZSggZWxlbSwgbmFtZSApIHtcblxuXHRyZXR1cm4gZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUudG9Mb3dlckNhc2UoKTtcblxufVxudmFyIHJzaW5nbGVUYWcgPSAoIC9ePChbYS16XVteXFwvXFwwPjpcXHgyMFxcdFxcclxcblxcZl0qKVtcXHgyMFxcdFxcclxcblxcZl0qXFwvPz4oPzo8XFwvXFwxPnwpJC9pICk7XG5cblxuXG4vLyBJbXBsZW1lbnQgdGhlIGlkZW50aWNhbCBmdW5jdGlvbmFsaXR5IGZvciBmaWx0ZXIgYW5kIG5vdFxuZnVuY3Rpb24gd2lubm93KCBlbGVtZW50cywgcXVhbGlmaWVyLCBub3QgKSB7XG5cdGlmICggaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7XG5cdFx0XHRyZXR1cm4gISFxdWFsaWZpZXIuY2FsbCggZWxlbSwgaSwgZWxlbSApICE9PSBub3Q7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gU2luZ2xlIGVsZW1lbnRcblx0aWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCBlbGVtID09PSBxdWFsaWZpZXIgKSAhPT0gbm90O1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEFycmF5bGlrZSBvZiBlbGVtZW50cyAoalF1ZXJ5LCBhcmd1bWVudHMsIEFycmF5KVxuXHRpZiAoIHR5cGVvZiBxdWFsaWZpZXIgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCBpbmRleE9mLmNhbGwoIHF1YWxpZmllciwgZWxlbSApID4gLTEgKSAhPT0gbm90O1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEZpbHRlcmVkIGRpcmVjdGx5IGZvciBib3RoIHNpbXBsZSBhbmQgY29tcGxleCBzZWxlY3RvcnNcblx0cmV0dXJuIGpRdWVyeS5maWx0ZXIoIHF1YWxpZmllciwgZWxlbWVudHMsIG5vdCApO1xufVxuXG5qUXVlcnkuZmlsdGVyID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1zLCBub3QgKSB7XG5cdHZhciBlbGVtID0gZWxlbXNbIDAgXTtcblxuXHRpZiAoIG5vdCApIHtcblx0XHRleHByID0gXCI6bm90KFwiICsgZXhwciArIFwiKVwiO1xuXHR9XG5cblx0aWYgKCBlbGVtcy5sZW5ndGggPT09IDEgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBlbGVtLCBleHByICkgPyBbIGVsZW0gXSA6IFtdO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5maW5kLm1hdGNoZXMoIGV4cHIsIGpRdWVyeS5ncmVwKCBlbGVtcywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDE7XG5cdH0gKSApO1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRmaW5kOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGksIHJldCxcblx0XHRcdGxlbiA9IHRoaXMubGVuZ3RoLFxuXHRcdFx0c2VsZiA9IHRoaXM7XG5cblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5KCBzZWxlY3RvciApLmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0aWYgKCBqUXVlcnkuY29udGFpbnMoIHNlbGZbIGkgXSwgdGhpcyApICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9ICkgKTtcblx0XHR9XG5cblx0XHRyZXQgPSB0aGlzLnB1c2hTdGFjayggW10gKTtcblxuXHRcdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRqUXVlcnkuZmluZCggc2VsZWN0b3IsIHNlbGZbIGkgXSwgcmV0ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGxlbiA+IDEgPyBqUXVlcnkudW5pcXVlU29ydCggcmV0ICkgOiByZXQ7XG5cdH0sXG5cdGZpbHRlcjogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggd2lubm93KCB0aGlzLCBzZWxlY3RvciB8fCBbXSwgZmFsc2UgKSApO1xuXHR9LFxuXHRub3Q6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHdpbm5vdyggdGhpcywgc2VsZWN0b3IgfHwgW10sIHRydWUgKSApO1xuXHR9LFxuXHRpczogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiAhIXdpbm5vdyhcblx0XHRcdHRoaXMsXG5cblx0XHRcdC8vIElmIHRoaXMgaXMgYSBwb3NpdGlvbmFsL3JlbGF0aXZlIHNlbGVjdG9yLCBjaGVjayBtZW1iZXJzaGlwIGluIHRoZSByZXR1cm5lZCBzZXRcblx0XHRcdC8vIHNvICQoXCJwOmZpcnN0XCIpLmlzKFwicDpsYXN0XCIpIHdvbid0IHJldHVybiB0cnVlIGZvciBhIGRvYyB3aXRoIHR3byBcInBcIi5cblx0XHRcdHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiAmJiBybmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9yICkgP1xuXHRcdFx0XHRqUXVlcnkoIHNlbGVjdG9yICkgOlxuXHRcdFx0XHRzZWxlY3RvciB8fCBbXSxcblx0XHRcdGZhbHNlXG5cdFx0KS5sZW5ndGg7XG5cdH1cbn0gKTtcblxuXG4vLyBJbml0aWFsaXplIGEgalF1ZXJ5IG9iamVjdFxuXG5cbi8vIEEgY2VudHJhbCByZWZlcmVuY2UgdG8gdGhlIHJvb3QgalF1ZXJ5KGRvY3VtZW50KVxudmFyIHJvb3RqUXVlcnksXG5cblx0Ly8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Ncblx0Ly8gUHJpb3JpdGl6ZSAjaWQgb3ZlciA8dGFnPiB0byBhdm9pZCBYU1MgdmlhIGxvY2F0aW9uLmhhc2ggKHRyYWMtOTUyMSlcblx0Ly8gU3RyaWN0IEhUTUwgcmVjb2duaXRpb24gKHRyYWMtMTEyOTA6IG11c3Qgc3RhcnQgd2l0aCA8KVxuXHQvLyBTaG9ydGN1dCBzaW1wbGUgI2lkIGNhc2UgZm9yIHNwZWVkXG5cdHJxdWlja0V4cHIgPSAvXig/OlxccyooPFtcXHdcXFddKz4pW14+XSp8IyhbXFx3LV0rKSkkLyxcblxuXHRpbml0ID0galF1ZXJ5LmZuLmluaXQgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQsIHJvb3QgKSB7XG5cdFx0dmFyIG1hdGNoLCBlbGVtO1xuXG5cdFx0Ly8gSEFORExFOiAkKFwiXCIpLCAkKG51bGwpLCAkKHVuZGVmaW5lZCksICQoZmFsc2UpXG5cdFx0aWYgKCAhc2VsZWN0b3IgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9XG5cblx0XHQvLyBNZXRob2QgaW5pdCgpIGFjY2VwdHMgYW4gYWx0ZXJuYXRlIHJvb3RqUXVlcnlcblx0XHQvLyBzbyBtaWdyYXRlIGNhbiBzdXBwb3J0IGpRdWVyeS5zdWIgKGdoLTIxMDEpXG5cdFx0cm9vdCA9IHJvb3QgfHwgcm9vdGpRdWVyeTtcblxuXHRcdC8vIEhhbmRsZSBIVE1MIHN0cmluZ3Ncblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGlmICggc2VsZWN0b3JbIDAgXSA9PT0gXCI8XCIgJiZcblx0XHRcdFx0c2VsZWN0b3JbIHNlbGVjdG9yLmxlbmd0aCAtIDEgXSA9PT0gXCI+XCIgJiZcblx0XHRcdFx0c2VsZWN0b3IubGVuZ3RoID49IDMgKSB7XG5cblx0XHRcdFx0Ly8gQXNzdW1lIHRoYXQgc3RyaW5ncyB0aGF0IHN0YXJ0IGFuZCBlbmQgd2l0aCA8PiBhcmUgSFRNTCBhbmQgc2tpcCB0aGUgcmVnZXggY2hlY2tcblx0XHRcdFx0bWF0Y2ggPSBbIG51bGwsIHNlbGVjdG9yLCBudWxsIF07XG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1hdGNoID0gcnF1aWNrRXhwci5leGVjKCBzZWxlY3RvciApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBNYXRjaCBodG1sIG9yIG1ha2Ugc3VyZSBubyBjb250ZXh0IGlzIHNwZWNpZmllZCBmb3IgI2lkXG5cdFx0XHRpZiAoIG1hdGNoICYmICggbWF0Y2hbIDEgXSB8fCAhY29udGV4dCApICkge1xuXG5cdFx0XHRcdC8vIEhBTkRMRTogJChodG1sKSAtPiAkKGFycmF5KVxuXHRcdFx0XHRpZiAoIG1hdGNoWyAxIF0gKSB7XG5cdFx0XHRcdFx0Y29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgPyBjb250ZXh0WyAwIF0gOiBjb250ZXh0O1xuXG5cdFx0XHRcdFx0Ly8gT3B0aW9uIHRvIHJ1biBzY3JpcHRzIGlzIHRydWUgZm9yIGJhY2stY29tcGF0XG5cdFx0XHRcdFx0Ly8gSW50ZW50aW9uYWxseSBsZXQgdGhlIGVycm9yIGJlIHRocm93biBpZiBwYXJzZUhUTUwgaXMgbm90IHByZXNlbnRcblx0XHRcdFx0XHRqUXVlcnkubWVyZ2UoIHRoaXMsIGpRdWVyeS5wYXJzZUhUTUwoXG5cdFx0XHRcdFx0XHRtYXRjaFsgMSBdLFxuXHRcdFx0XHRcdFx0Y29udGV4dCAmJiBjb250ZXh0Lm5vZGVUeXBlID8gY29udGV4dC5vd25lckRvY3VtZW50IHx8IGNvbnRleHQgOiBkb2N1bWVudCxcblx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHQpICk7XG5cblx0XHRcdFx0XHQvLyBIQU5ETEU6ICQoaHRtbCwgcHJvcHMpXG5cdFx0XHRcdFx0aWYgKCByc2luZ2xlVGFnLnRlc3QoIG1hdGNoWyAxIF0gKSAmJiBqUXVlcnkuaXNQbGFpbk9iamVjdCggY29udGV4dCApICkge1xuXHRcdFx0XHRcdFx0Zm9yICggbWF0Y2ggaW4gY29udGV4dCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBQcm9wZXJ0aWVzIG9mIGNvbnRleHQgYXJlIGNhbGxlZCBhcyBtZXRob2RzIGlmIHBvc3NpYmxlXG5cdFx0XHRcdFx0XHRcdGlmICggaXNGdW5jdGlvbiggdGhpc1sgbWF0Y2ggXSApICkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXNbIG1hdGNoIF0oIGNvbnRleHRbIG1hdGNoIF0gKTtcblxuXHRcdFx0XHRcdFx0XHQvLyAuLi5hbmQgb3RoZXJ3aXNlIHNldCBhcyBhdHRyaWJ1dGVzXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5hdHRyKCBtYXRjaCwgY29udGV4dFsgbWF0Y2ggXSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHRcdFx0Ly8gSEFORExFOiAkKCNpZClcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIG1hdGNoWyAyIF0gKTtcblxuXHRcdFx0XHRcdGlmICggZWxlbSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gSW5qZWN0IHRoZSBlbGVtZW50IGRpcmVjdGx5IGludG8gdGhlIGpRdWVyeSBvYmplY3Rcblx0XHRcdFx0XHRcdHRoaXNbIDAgXSA9IGVsZW07XG5cdFx0XHRcdFx0XHR0aGlzLmxlbmd0aCA9IDE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9XG5cblx0XHRcdC8vIEhBTkRMRTogJChleHByLCAkKC4uLikpXG5cdFx0XHR9IGVsc2UgaWYgKCAhY29udGV4dCB8fCBjb250ZXh0LmpxdWVyeSApIHtcblx0XHRcdFx0cmV0dXJuICggY29udGV4dCB8fCByb290ICkuZmluZCggc2VsZWN0b3IgKTtcblxuXHRcdFx0Ly8gSEFORExFOiAkKGV4cHIsIGNvbnRleHQpXG5cdFx0XHQvLyAod2hpY2ggaXMganVzdCBlcXVpdmFsZW50IHRvOiAkKGNvbnRleHQpLmZpbmQoZXhwcilcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNvbnN0cnVjdG9yKCBjb250ZXh0ICkuZmluZCggc2VsZWN0b3IgKTtcblx0XHRcdH1cblxuXHRcdC8vIEhBTkRMRTogJChET01FbGVtZW50KVxuXHRcdH0gZWxzZSBpZiAoIHNlbGVjdG9yLm5vZGVUeXBlICkge1xuXHRcdFx0dGhpc1sgMCBdID0gc2VsZWN0b3I7XG5cdFx0XHR0aGlzLmxlbmd0aCA9IDE7XG5cdFx0XHRyZXR1cm4gdGhpcztcblxuXHRcdC8vIEhBTkRMRTogJChmdW5jdGlvbilcblx0XHQvLyBTaG9ydGN1dCBmb3IgZG9jdW1lbnQgcmVhZHlcblx0XHR9IGVsc2UgaWYgKCBpc0Z1bmN0aW9uKCBzZWxlY3RvciApICkge1xuXHRcdFx0cmV0dXJuIHJvb3QucmVhZHkgIT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdHJvb3QucmVhZHkoIHNlbGVjdG9yICkgOlxuXG5cdFx0XHRcdC8vIEV4ZWN1dGUgaW1tZWRpYXRlbHkgaWYgcmVhZHkgaXMgbm90IHByZXNlbnRcblx0XHRcdFx0c2VsZWN0b3IoIGpRdWVyeSApO1xuXHRcdH1cblxuXHRcdHJldHVybiBqUXVlcnkubWFrZUFycmF5KCBzZWxlY3RvciwgdGhpcyApO1xuXHR9O1xuXG4vLyBHaXZlIHRoZSBpbml0IGZ1bmN0aW9uIHRoZSBqUXVlcnkgcHJvdG90eXBlIGZvciBsYXRlciBpbnN0YW50aWF0aW9uXG5pbml0LnByb3RvdHlwZSA9IGpRdWVyeS5mbjtcblxuLy8gSW5pdGlhbGl6ZSBjZW50cmFsIHJlZmVyZW5jZVxucm9vdGpRdWVyeSA9IGpRdWVyeSggZG9jdW1lbnQgKTtcblxuXG52YXIgcnBhcmVudHNwcmV2ID0gL14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sXG5cblx0Ly8gTWV0aG9kcyBndWFyYW50ZWVkIHRvIHByb2R1Y2UgYSB1bmlxdWUgc2V0IHdoZW4gc3RhcnRpbmcgZnJvbSBhIHVuaXF1ZSBzZXRcblx0Z3VhcmFudGVlZFVuaXF1ZSA9IHtcblx0XHRjaGlsZHJlbjogdHJ1ZSxcblx0XHRjb250ZW50czogdHJ1ZSxcblx0XHRuZXh0OiB0cnVlLFxuXHRcdHByZXY6IHRydWVcblx0fTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRoYXM6IGZ1bmN0aW9uKCB0YXJnZXQgKSB7XG5cdFx0dmFyIHRhcmdldHMgPSBqUXVlcnkoIHRhcmdldCwgdGhpcyApLFxuXHRcdFx0bCA9IHRhcmdldHMubGVuZ3RoO1xuXG5cdFx0cmV0dXJuIHRoaXMuZmlsdGVyKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBpID0gMDtcblx0XHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0aWYgKCBqUXVlcnkuY29udGFpbnMoIHRoaXMsIHRhcmdldHNbIGkgXSApICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGNsb3Nlc3Q6IGZ1bmN0aW9uKCBzZWxlY3RvcnMsIGNvbnRleHQgKSB7XG5cdFx0dmFyIGN1cixcblx0XHRcdGkgPSAwLFxuXHRcdFx0bCA9IHRoaXMubGVuZ3RoLFxuXHRcdFx0bWF0Y2hlZCA9IFtdLFxuXHRcdFx0dGFyZ2V0cyA9IHR5cGVvZiBzZWxlY3RvcnMgIT09IFwic3RyaW5nXCIgJiYgalF1ZXJ5KCBzZWxlY3RvcnMgKTtcblxuXHRcdC8vIFBvc2l0aW9uYWwgc2VsZWN0b3JzIG5ldmVyIG1hdGNoLCBzaW5jZSB0aGVyZSdzIG5vIF9zZWxlY3Rpb25fIGNvbnRleHRcblx0XHRpZiAoICFybmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9ycyApICkge1xuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRmb3IgKCBjdXIgPSB0aGlzWyBpIF07IGN1ciAmJiBjdXIgIT09IGNvbnRleHQ7IGN1ciA9IGN1ci5wYXJlbnROb2RlICkge1xuXG5cdFx0XHRcdFx0Ly8gQWx3YXlzIHNraXAgZG9jdW1lbnQgZnJhZ21lbnRzXG5cdFx0XHRcdFx0aWYgKCBjdXIubm9kZVR5cGUgPCAxMSAmJiAoIHRhcmdldHMgP1xuXHRcdFx0XHRcdFx0dGFyZ2V0cy5pbmRleCggY3VyICkgPiAtMSA6XG5cblx0XHRcdFx0XHRcdC8vIERvbid0IHBhc3Mgbm9uLWVsZW1lbnRzIHRvIFNpenpsZVxuXHRcdFx0XHRcdFx0Y3VyLm5vZGVUeXBlID09PSAxICYmXG5cdFx0XHRcdFx0XHRcdGpRdWVyeS5maW5kLm1hdGNoZXNTZWxlY3RvciggY3VyLCBzZWxlY3RvcnMgKSApICkge1xuXG5cdFx0XHRcdFx0XHRtYXRjaGVkLnB1c2goIGN1ciApO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBtYXRjaGVkLmxlbmd0aCA+IDEgPyBqUXVlcnkudW5pcXVlU29ydCggbWF0Y2hlZCApIDogbWF0Y2hlZCApO1xuXHR9LFxuXG5cdC8vIERldGVybWluZSB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCB3aXRoaW4gdGhlIHNldFxuXHRpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHQvLyBObyBhcmd1bWVudCwgcmV0dXJuIGluZGV4IGluIHBhcmVudFxuXHRcdGlmICggIWVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCB0aGlzWyAwIF0gJiYgdGhpc1sgMCBdLnBhcmVudE5vZGUgKSA/IHRoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoIDogLTE7XG5cdFx0fVxuXG5cdFx0Ly8gSW5kZXggaW4gc2VsZWN0b3Jcblx0XHRpZiAoIHR5cGVvZiBlbGVtID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cmV0dXJuIGluZGV4T2YuY2FsbCggalF1ZXJ5KCBlbGVtICksIHRoaXNbIDAgXSApO1xuXHRcdH1cblxuXHRcdC8vIExvY2F0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRlc2lyZWQgZWxlbWVudFxuXHRcdHJldHVybiBpbmRleE9mLmNhbGwoIHRoaXMsXG5cblx0XHRcdC8vIElmIGl0IHJlY2VpdmVzIGEgalF1ZXJ5IG9iamVjdCwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdXNlZFxuXHRcdFx0ZWxlbS5qcXVlcnkgPyBlbGVtWyAwIF0gOiBlbGVtXG5cdFx0KTtcblx0fSxcblxuXHRhZGQ6IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soXG5cdFx0XHRqUXVlcnkudW5pcXVlU29ydChcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCB0aGlzLmdldCgpLCBqUXVlcnkoIHNlbGVjdG9yLCBjb250ZXh0ICkgKVxuXHRcdFx0KVxuXHRcdCk7XG5cdH0sXG5cblx0YWRkQmFjazogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiB0aGlzLmFkZCggc2VsZWN0b3IgPT0gbnVsbCA/XG5cdFx0XHR0aGlzLnByZXZPYmplY3QgOiB0aGlzLnByZXZPYmplY3QuZmlsdGVyKCBzZWxlY3RvciApXG5cdFx0KTtcblx0fVxufSApO1xuXG5mdW5jdGlvbiBzaWJsaW5nKCBjdXIsIGRpciApIHtcblx0d2hpbGUgKCAoIGN1ciA9IGN1clsgZGlyIF0gKSAmJiBjdXIubm9kZVR5cGUgIT09IDEgKSB7fVxuXHRyZXR1cm4gY3VyO1xufVxuXG5qUXVlcnkuZWFjaCgge1xuXHRwYXJlbnQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XG5cdFx0cmV0dXJuIHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgIT09IDExID8gcGFyZW50IDogbnVsbDtcblx0fSxcblx0cGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwYXJlbnROb2RlXCIgKTtcblx0fSxcblx0cGFyZW50c1VudGlsOiBmdW5jdGlvbiggZWxlbSwgX2ksIHVudGlsICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiLCB1bnRpbCApO1xuXHR9LFxuXHRuZXh0OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZyggZWxlbSwgXCJuZXh0U2libGluZ1wiICk7XG5cdH0sXG5cdHByZXY6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBzaWJsaW5nKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiICk7XG5cdH0sXG5cdG5leHRBbGw6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiApO1xuXHR9LFxuXHRwcmV2QWxsOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiICk7XG5cdH0sXG5cdG5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIF9pLCB1bnRpbCApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcIm5leHRTaWJsaW5nXCIsIHVudGlsICk7XG5cdH0sXG5cdHByZXZVbnRpbDogZnVuY3Rpb24oIGVsZW0sIF9pLCB1bnRpbCApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiLCB1bnRpbCApO1xuXHR9LFxuXHRzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIHNpYmxpbmdzKCAoIGVsZW0ucGFyZW50Tm9kZSB8fCB7fSApLmZpcnN0Q2hpbGQsIGVsZW0gKTtcblx0fSxcblx0Y2hpbGRyZW46IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBzaWJsaW5ncyggZWxlbS5maXJzdENoaWxkICk7XG5cdH0sXG5cdGNvbnRlbnRzOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRpZiAoIGVsZW0uY29udGVudERvY3VtZW50ICE9IG51bGwgJiZcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErXG5cdFx0XHQvLyA8b2JqZWN0PiBlbGVtZW50cyB3aXRoIG5vIGBkYXRhYCBhdHRyaWJ1dGUgaGFzIGFuIG9iamVjdFxuXHRcdFx0Ly8gYGNvbnRlbnREb2N1bWVudGAgd2l0aCBhIGBudWxsYCBwcm90b3R5cGUuXG5cdFx0XHRnZXRQcm90byggZWxlbS5jb250ZW50RG9jdW1lbnQgKSApIHtcblxuXHRcdFx0cmV0dXJuIGVsZW0uY29udGVudERvY3VtZW50O1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5LCBpT1MgNyBvbmx5LCBBbmRyb2lkIEJyb3dzZXIgPD00LjMgb25seVxuXHRcdC8vIFRyZWF0IHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGFzIGEgcmVndWxhciBvbmUgaW4gYnJvd3NlcnMgdGhhdFxuXHRcdC8vIGRvbid0IHN1cHBvcnQgaXQuXG5cdFx0aWYgKCBub2RlTmFtZSggZWxlbSwgXCJ0ZW1wbGF0ZVwiICkgKSB7XG5cdFx0XHRlbGVtID0gZWxlbS5jb250ZW50IHx8IGVsZW07XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpRdWVyeS5tZXJnZSggW10sIGVsZW0uY2hpbGROb2RlcyApO1xuXHR9XG59LCBmdW5jdGlvbiggbmFtZSwgZm4gKSB7XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHVudGlsLCBzZWxlY3RvciApIHtcblx0XHR2YXIgbWF0Y2hlZCA9IGpRdWVyeS5tYXAoIHRoaXMsIGZuLCB1bnRpbCApO1xuXG5cdFx0aWYgKCBuYW1lLnNsaWNlKCAtNSApICE9PSBcIlVudGlsXCIgKSB7XG5cdFx0XHRzZWxlY3RvciA9IHVudGlsO1xuXHRcdH1cblxuXHRcdGlmICggc2VsZWN0b3IgJiYgdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0bWF0Y2hlZCA9IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBtYXRjaGVkICk7XG5cdFx0fVxuXG5cdFx0aWYgKCB0aGlzLmxlbmd0aCA+IDEgKSB7XG5cblx0XHRcdC8vIFJlbW92ZSBkdXBsaWNhdGVzXG5cdFx0XHRpZiAoICFndWFyYW50ZWVkVW5pcXVlWyBuYW1lIF0gKSB7XG5cdFx0XHRcdGpRdWVyeS51bmlxdWVTb3J0KCBtYXRjaGVkICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJldmVyc2Ugb3JkZXIgZm9yIHBhcmVudHMqIGFuZCBwcmV2LWRlcml2YXRpdmVzXG5cdFx0XHRpZiAoIHJwYXJlbnRzcHJldi50ZXN0KCBuYW1lICkgKSB7XG5cdFx0XHRcdG1hdGNoZWQucmV2ZXJzZSgpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggbWF0Y2hlZCApO1xuXHR9O1xufSApO1xudmFyIHJub3RodG1sd2hpdGUgPSAoIC9bXlxceDIwXFx0XFxyXFxuXFxmXSsvZyApO1xuXG5cblxuLy8gQ29udmVydCBTdHJpbmctZm9ybWF0dGVkIG9wdGlvbnMgaW50byBPYmplY3QtZm9ybWF0dGVkIG9uZXNcbmZ1bmN0aW9uIGNyZWF0ZU9wdGlvbnMoIG9wdGlvbnMgKSB7XG5cdHZhciBvYmplY3QgPSB7fTtcblx0alF1ZXJ5LmVhY2goIG9wdGlvbnMubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbXSwgZnVuY3Rpb24oIF8sIGZsYWcgKSB7XG5cdFx0b2JqZWN0WyBmbGFnIF0gPSB0cnVlO1xuXHR9ICk7XG5cdHJldHVybiBvYmplY3Q7XG59XG5cbi8qXG4gKiBDcmVhdGUgYSBjYWxsYmFjayBsaXN0IHVzaW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcbiAqXG4gKlx0b3B0aW9uczogYW4gb3B0aW9uYWwgbGlzdCBvZiBzcGFjZS1zZXBhcmF0ZWQgb3B0aW9ucyB0aGF0IHdpbGwgY2hhbmdlIGhvd1xuICpcdFx0XHR0aGUgY2FsbGJhY2sgbGlzdCBiZWhhdmVzIG9yIGEgbW9yZSB0cmFkaXRpb25hbCBvcHRpb24gb2JqZWN0XG4gKlxuICogQnkgZGVmYXVsdCBhIGNhbGxiYWNrIGxpc3Qgd2lsbCBhY3QgbGlrZSBhbiBldmVudCBjYWxsYmFjayBsaXN0IGFuZCBjYW4gYmVcbiAqIFwiZmlyZWRcIiBtdWx0aXBsZSB0aW1lcy5cbiAqXG4gKiBQb3NzaWJsZSBvcHRpb25zOlxuICpcbiAqXHRvbmNlOlx0XHRcdHdpbGwgZW5zdXJlIHRoZSBjYWxsYmFjayBsaXN0IGNhbiBvbmx5IGJlIGZpcmVkIG9uY2UgKGxpa2UgYSBEZWZlcnJlZClcbiAqXG4gKlx0bWVtb3J5Olx0XHRcdHdpbGwga2VlcCB0cmFjayBvZiBwcmV2aW91cyB2YWx1ZXMgYW5kIHdpbGwgY2FsbCBhbnkgY2FsbGJhY2sgYWRkZWRcbiAqXHRcdFx0XHRcdGFmdGVyIHRoZSBsaXN0IGhhcyBiZWVuIGZpcmVkIHJpZ2h0IGF3YXkgd2l0aCB0aGUgbGF0ZXN0IFwibWVtb3JpemVkXCJcbiAqXHRcdFx0XHRcdHZhbHVlcyAobGlrZSBhIERlZmVycmVkKVxuICpcbiAqXHR1bmlxdWU6XHRcdFx0d2lsbCBlbnN1cmUgYSBjYWxsYmFjayBjYW4gb25seSBiZSBhZGRlZCBvbmNlIChubyBkdXBsaWNhdGUgaW4gdGhlIGxpc3QpXG4gKlxuICpcdHN0b3BPbkZhbHNlOlx0aW50ZXJydXB0IGNhbGxpbmdzIHdoZW4gYSBjYWxsYmFjayByZXR1cm5zIGZhbHNlXG4gKlxuICovXG5qUXVlcnkuQ2FsbGJhY2tzID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cblx0Ly8gQ29udmVydCBvcHRpb25zIGZyb20gU3RyaW5nLWZvcm1hdHRlZCB0byBPYmplY3QtZm9ybWF0dGVkIGlmIG5lZWRlZFxuXHQvLyAod2UgY2hlY2sgaW4gY2FjaGUgZmlyc3QpXG5cdG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gXCJzdHJpbmdcIiA/XG5cdFx0Y3JlYXRlT3B0aW9ucyggb3B0aW9ucyApIDpcblx0XHRqUXVlcnkuZXh0ZW5kKCB7fSwgb3B0aW9ucyApO1xuXG5cdHZhciAvLyBGbGFnIHRvIGtub3cgaWYgbGlzdCBpcyBjdXJyZW50bHkgZmlyaW5nXG5cdFx0ZmlyaW5nLFxuXG5cdFx0Ly8gTGFzdCBmaXJlIHZhbHVlIGZvciBub24tZm9yZ2V0dGFibGUgbGlzdHNcblx0XHRtZW1vcnksXG5cblx0XHQvLyBGbGFnIHRvIGtub3cgaWYgbGlzdCB3YXMgYWxyZWFkeSBmaXJlZFxuXHRcdGZpcmVkLFxuXG5cdFx0Ly8gRmxhZyB0byBwcmV2ZW50IGZpcmluZ1xuXHRcdGxvY2tlZCxcblxuXHRcdC8vIEFjdHVhbCBjYWxsYmFjayBsaXN0XG5cdFx0bGlzdCA9IFtdLFxuXG5cdFx0Ly8gUXVldWUgb2YgZXhlY3V0aW9uIGRhdGEgZm9yIHJlcGVhdGFibGUgbGlzdHNcblx0XHRxdWV1ZSA9IFtdLFxuXG5cdFx0Ly8gSW5kZXggb2YgY3VycmVudGx5IGZpcmluZyBjYWxsYmFjayAobW9kaWZpZWQgYnkgYWRkL3JlbW92ZSBhcyBuZWVkZWQpXG5cdFx0ZmlyaW5nSW5kZXggPSAtMSxcblxuXHRcdC8vIEZpcmUgY2FsbGJhY2tzXG5cdFx0ZmlyZSA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBFbmZvcmNlIHNpbmdsZS1maXJpbmdcblx0XHRcdGxvY2tlZCA9IGxvY2tlZCB8fCBvcHRpb25zLm9uY2U7XG5cblx0XHRcdC8vIEV4ZWN1dGUgY2FsbGJhY2tzIGZvciBhbGwgcGVuZGluZyBleGVjdXRpb25zLFxuXHRcdFx0Ly8gcmVzcGVjdGluZyBmaXJpbmdJbmRleCBvdmVycmlkZXMgYW5kIHJ1bnRpbWUgY2hhbmdlc1xuXHRcdFx0ZmlyZWQgPSBmaXJpbmcgPSB0cnVlO1xuXHRcdFx0Zm9yICggOyBxdWV1ZS5sZW5ndGg7IGZpcmluZ0luZGV4ID0gLTEgKSB7XG5cdFx0XHRcdG1lbW9yeSA9IHF1ZXVlLnNoaWZ0KCk7XG5cdFx0XHRcdHdoaWxlICggKytmaXJpbmdJbmRleCA8IGxpc3QubGVuZ3RoICkge1xuXG5cdFx0XHRcdFx0Ly8gUnVuIGNhbGxiYWNrIGFuZCBjaGVjayBmb3IgZWFybHkgdGVybWluYXRpb25cblx0XHRcdFx0XHRpZiAoIGxpc3RbIGZpcmluZ0luZGV4IF0uYXBwbHkoIG1lbW9yeVsgMCBdLCBtZW1vcnlbIDEgXSApID09PSBmYWxzZSAmJlxuXHRcdFx0XHRcdFx0b3B0aW9ucy5zdG9wT25GYWxzZSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gSnVtcCB0byBlbmQgYW5kIGZvcmdldCB0aGUgZGF0YSBzbyAuYWRkIGRvZXNuJ3QgcmUtZmlyZVxuXHRcdFx0XHRcdFx0ZmlyaW5nSW5kZXggPSBsaXN0Lmxlbmd0aDtcblx0XHRcdFx0XHRcdG1lbW9yeSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBGb3JnZXQgdGhlIGRhdGEgaWYgd2UncmUgZG9uZSB3aXRoIGl0XG5cdFx0XHRpZiAoICFvcHRpb25zLm1lbW9yeSApIHtcblx0XHRcdFx0bWVtb3J5ID0gZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGZpcmluZyA9IGZhbHNlO1xuXG5cdFx0XHQvLyBDbGVhbiB1cCBpZiB3ZSdyZSBkb25lIGZpcmluZyBmb3IgZ29vZFxuXHRcdFx0aWYgKCBsb2NrZWQgKSB7XG5cblx0XHRcdFx0Ly8gS2VlcCBhbiBlbXB0eSBsaXN0IGlmIHdlIGhhdmUgZGF0YSBmb3IgZnV0dXJlIGFkZCBjYWxsc1xuXHRcdFx0XHRpZiAoIG1lbW9yeSApIHtcblx0XHRcdFx0XHRsaXN0ID0gW107XG5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlLCB0aGlzIG9iamVjdCBpcyBzcGVudFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGxpc3QgPSBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8vIEFjdHVhbCBDYWxsYmFja3Mgb2JqZWN0XG5cdFx0c2VsZiA9IHtcblxuXHRcdFx0Ly8gQWRkIGEgY2FsbGJhY2sgb3IgYSBjb2xsZWN0aW9uIG9mIGNhbGxiYWNrcyB0byB0aGUgbGlzdFxuXHRcdFx0YWRkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCBsaXN0ICkge1xuXG5cdFx0XHRcdFx0Ly8gSWYgd2UgaGF2ZSBtZW1vcnkgZnJvbSBhIHBhc3QgcnVuLCB3ZSBzaG91bGQgZmlyZSBhZnRlciBhZGRpbmdcblx0XHRcdFx0XHRpZiAoIG1lbW9yeSAmJiAhZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0ZmlyaW5nSW5kZXggPSBsaXN0Lmxlbmd0aCAtIDE7XG5cdFx0XHRcdFx0XHRxdWV1ZS5wdXNoKCBtZW1vcnkgKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQoIGZ1bmN0aW9uIGFkZCggYXJncyApIHtcblx0XHRcdFx0XHRcdGpRdWVyeS5lYWNoKCBhcmdzLCBmdW5jdGlvbiggXywgYXJnICkge1xuXHRcdFx0XHRcdFx0XHRpZiAoIGlzRnVuY3Rpb24oIGFyZyApICkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICggIW9wdGlvbnMudW5pcXVlIHx8ICFzZWxmLmhhcyggYXJnICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsaXN0LnB1c2goIGFyZyApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggYXJnICYmIGFyZy5sZW5ndGggJiYgdG9UeXBlKCBhcmcgKSAhPT0gXCJzdHJpbmdcIiApIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIEluc3BlY3QgcmVjdXJzaXZlbHlcblx0XHRcdFx0XHRcdFx0XHRhZGQoIGFyZyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0fSApKCBhcmd1bWVudHMgKTtcblxuXHRcdFx0XHRcdGlmICggbWVtb3J5ICYmICFmaXJpbmcgKSB7XG5cdFx0XHRcdFx0XHRmaXJlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gUmVtb3ZlIGEgY2FsbGJhY2sgZnJvbSB0aGUgbGlzdFxuXHRcdFx0cmVtb3ZlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0alF1ZXJ5LmVhY2goIGFyZ3VtZW50cywgZnVuY3Rpb24oIF8sIGFyZyApIHtcblx0XHRcdFx0XHR2YXIgaW5kZXg7XG5cdFx0XHRcdFx0d2hpbGUgKCAoIGluZGV4ID0galF1ZXJ5LmluQXJyYXkoIGFyZywgbGlzdCwgaW5kZXggKSApID4gLTEgKSB7XG5cdFx0XHRcdFx0XHRsaXN0LnNwbGljZSggaW5kZXgsIDEgKTtcblxuXHRcdFx0XHRcdFx0Ly8gSGFuZGxlIGZpcmluZyBpbmRleGVzXG5cdFx0XHRcdFx0XHRpZiAoIGluZGV4IDw9IGZpcmluZ0luZGV4ICkge1xuXHRcdFx0XHRcdFx0XHRmaXJpbmdJbmRleC0tO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIENoZWNrIGlmIGEgZ2l2ZW4gY2FsbGJhY2sgaXMgaW4gdGhlIGxpc3QuXG5cdFx0XHQvLyBJZiBubyBhcmd1bWVudCBpcyBnaXZlbiwgcmV0dXJuIHdoZXRoZXIgb3Igbm90IGxpc3QgaGFzIGNhbGxiYWNrcyBhdHRhY2hlZC5cblx0XHRcdGhhczogZnVuY3Rpb24oIGZuICkge1xuXHRcdFx0XHRyZXR1cm4gZm4gP1xuXHRcdFx0XHRcdGpRdWVyeS5pbkFycmF5KCBmbiwgbGlzdCApID4gLTEgOlxuXHRcdFx0XHRcdGxpc3QubGVuZ3RoID4gMDtcblx0XHRcdH0sXG5cblx0XHRcdC8vIFJlbW92ZSBhbGwgY2FsbGJhY2tzIGZyb20gdGhlIGxpc3Rcblx0XHRcdGVtcHR5OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCBsaXN0ICkge1xuXHRcdFx0XHRcdGxpc3QgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIERpc2FibGUgLmZpcmUgYW5kIC5hZGRcblx0XHRcdC8vIEFib3J0IGFueSBjdXJyZW50L3BlbmRpbmcgZXhlY3V0aW9uc1xuXHRcdFx0Ly8gQ2xlYXIgYWxsIGNhbGxiYWNrcyBhbmQgdmFsdWVzXG5cdFx0XHRkaXNhYmxlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0bG9ja2VkID0gcXVldWUgPSBbXTtcblx0XHRcdFx0bGlzdCA9IG1lbW9yeSA9IFwiXCI7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdGRpc2FibGVkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuICFsaXN0O1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gRGlzYWJsZSAuZmlyZVxuXHRcdFx0Ly8gQWxzbyBkaXNhYmxlIC5hZGQgdW5sZXNzIHdlIGhhdmUgbWVtb3J5IChzaW5jZSBpdCB3b3VsZCBoYXZlIG5vIGVmZmVjdClcblx0XHRcdC8vIEFib3J0IGFueSBwZW5kaW5nIGV4ZWN1dGlvbnNcblx0XHRcdGxvY2s6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRsb2NrZWQgPSBxdWV1ZSA9IFtdO1xuXHRcdFx0XHRpZiAoICFtZW1vcnkgJiYgIWZpcmluZyApIHtcblx0XHRcdFx0XHRsaXN0ID0gbWVtb3J5ID0gXCJcIjtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cdFx0XHRsb2NrZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gISFsb2NrZWQ7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBDYWxsIGFsbCBjYWxsYmFja3Mgd2l0aCB0aGUgZ2l2ZW4gY29udGV4dCBhbmQgYXJndW1lbnRzXG5cdFx0XHRmaXJlV2l0aDogZnVuY3Rpb24oIGNvbnRleHQsIGFyZ3MgKSB7XG5cdFx0XHRcdGlmICggIWxvY2tlZCApIHtcblx0XHRcdFx0XHRhcmdzID0gYXJncyB8fCBbXTtcblx0XHRcdFx0XHRhcmdzID0gWyBjb250ZXh0LCBhcmdzLnNsaWNlID8gYXJncy5zbGljZSgpIDogYXJncyBdO1xuXHRcdFx0XHRcdHF1ZXVlLnB1c2goIGFyZ3MgKTtcblx0XHRcdFx0XHRpZiAoICFmaXJpbmcgKSB7XG5cdFx0XHRcdFx0XHRmaXJlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gQ2FsbCBhbGwgdGhlIGNhbGxiYWNrcyB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHNcblx0XHRcdGZpcmU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRzZWxmLmZpcmVXaXRoKCB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBUbyBrbm93IGlmIHRoZSBjYWxsYmFja3MgaGF2ZSBhbHJlYWR5IGJlZW4gY2FsbGVkIGF0IGxlYXN0IG9uY2Vcblx0XHRcdGZpcmVkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuICEhZmlyZWQ7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRyZXR1cm4gc2VsZjtcbn07XG5cblxuZnVuY3Rpb24gSWRlbnRpdHkoIHYgKSB7XG5cdHJldHVybiB2O1xufVxuZnVuY3Rpb24gVGhyb3dlciggZXggKSB7XG5cdHRocm93IGV4O1xufVxuXG5mdW5jdGlvbiBhZG9wdFZhbHVlKCB2YWx1ZSwgcmVzb2x2ZSwgcmVqZWN0LCBub1ZhbHVlICkge1xuXHR2YXIgbWV0aG9kO1xuXG5cdHRyeSB7XG5cblx0XHQvLyBDaGVjayBmb3IgcHJvbWlzZSBhc3BlY3QgZmlyc3QgdG8gcHJpdmlsZWdlIHN5bmNocm9ub3VzIGJlaGF2aW9yXG5cdFx0aWYgKCB2YWx1ZSAmJiBpc0Z1bmN0aW9uKCAoIG1ldGhvZCA9IHZhbHVlLnByb21pc2UgKSApICkge1xuXHRcdFx0bWV0aG9kLmNhbGwoIHZhbHVlICkuZG9uZSggcmVzb2x2ZSApLmZhaWwoIHJlamVjdCApO1xuXG5cdFx0Ly8gT3RoZXIgdGhlbmFibGVzXG5cdFx0fSBlbHNlIGlmICggdmFsdWUgJiYgaXNGdW5jdGlvbiggKCBtZXRob2QgPSB2YWx1ZS50aGVuICkgKSApIHtcblx0XHRcdG1ldGhvZC5jYWxsKCB2YWx1ZSwgcmVzb2x2ZSwgcmVqZWN0ICk7XG5cblx0XHQvLyBPdGhlciBub24tdGhlbmFibGVzXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0Ly8gQ29udHJvbCBgcmVzb2x2ZWAgYXJndW1lbnRzIGJ5IGxldHRpbmcgQXJyYXkjc2xpY2UgY2FzdCBib29sZWFuIGBub1ZhbHVlYCB0byBpbnRlZ2VyOlxuXHRcdFx0Ly8gKiBmYWxzZTogWyB2YWx1ZSBdLnNsaWNlKCAwICkgPT4gcmVzb2x2ZSggdmFsdWUgKVxuXHRcdFx0Ly8gKiB0cnVlOiBbIHZhbHVlIF0uc2xpY2UoIDEgKSA9PiByZXNvbHZlKClcblx0XHRcdHJlc29sdmUuYXBwbHkoIHVuZGVmaW5lZCwgWyB2YWx1ZSBdLnNsaWNlKCBub1ZhbHVlICkgKTtcblx0XHR9XG5cblx0Ly8gRm9yIFByb21pc2VzL0ErLCBjb252ZXJ0IGV4Y2VwdGlvbnMgaW50byByZWplY3Rpb25zXG5cdC8vIFNpbmNlIGpRdWVyeS53aGVuIGRvZXNuJ3QgdW53cmFwIHRoZW5hYmxlcywgd2UgY2FuIHNraXAgdGhlIGV4dHJhIGNoZWNrcyBhcHBlYXJpbmcgaW5cblx0Ly8gRGVmZXJyZWQjdGhlbiB0byBjb25kaXRpb25hbGx5IHN1cHByZXNzIHJlamVjdGlvbi5cblx0fSBjYXRjaCAoIHZhbHVlICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgb25seVxuXHRcdC8vIFN0cmljdCBtb2RlIGZ1bmN0aW9ucyBpbnZva2VkIHdpdGhvdXQgLmNhbGwvLmFwcGx5IGdldCBnbG9iYWwtb2JqZWN0IGNvbnRleHRcblx0XHRyZWplY3QuYXBwbHkoIHVuZGVmaW5lZCwgWyB2YWx1ZSBdICk7XG5cdH1cbn1cblxualF1ZXJ5LmV4dGVuZCgge1xuXG5cdERlZmVycmVkOiBmdW5jdGlvbiggZnVuYyApIHtcblx0XHR2YXIgdHVwbGVzID0gW1xuXG5cdFx0XHRcdC8vIGFjdGlvbiwgYWRkIGxpc3RlbmVyLCBjYWxsYmFja3MsXG5cdFx0XHRcdC8vIC4uLiAudGhlbiBoYW5kbGVycywgYXJndW1lbnQgaW5kZXgsIFtmaW5hbCBzdGF0ZV1cblx0XHRcdFx0WyBcIm5vdGlmeVwiLCBcInByb2dyZXNzXCIsIGpRdWVyeS5DYWxsYmFja3MoIFwibWVtb3J5XCIgKSxcblx0XHRcdFx0XHRqUXVlcnkuQ2FsbGJhY2tzKCBcIm1lbW9yeVwiICksIDIgXSxcblx0XHRcdFx0WyBcInJlc29sdmVcIiwgXCJkb25lXCIsIGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLFxuXHRcdFx0XHRcdGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLCAwLCBcInJlc29sdmVkXCIgXSxcblx0XHRcdFx0WyBcInJlamVjdFwiLCBcImZhaWxcIiwgalF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICksXG5cdFx0XHRcdFx0alF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICksIDEsIFwicmVqZWN0ZWRcIiBdXG5cdFx0XHRdLFxuXHRcdFx0c3RhdGUgPSBcInBlbmRpbmdcIixcblx0XHRcdHByb21pc2UgPSB7XG5cdFx0XHRcdHN0YXRlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gc3RhdGU7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFsd2F5czogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQuZG9uZSggYXJndW1lbnRzICkuZmFpbCggYXJndW1lbnRzICk7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwiY2F0Y2hcIjogZnVuY3Rpb24oIGZuICkge1xuXHRcdFx0XHRcdHJldHVybiBwcm9taXNlLnRoZW4oIG51bGwsIGZuICk7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gS2VlcCBwaXBlIGZvciBiYWNrLWNvbXBhdFxuXHRcdFx0XHRwaXBlOiBmdW5jdGlvbiggLyogZm5Eb25lLCBmbkZhaWwsIGZuUHJvZ3Jlc3MgKi8gKSB7XG5cdFx0XHRcdFx0dmFyIGZucyA9IGFyZ3VtZW50cztcblxuXHRcdFx0XHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoIGZ1bmN0aW9uKCBuZXdEZWZlciApIHtcblx0XHRcdFx0XHRcdGpRdWVyeS5lYWNoKCB0dXBsZXMsIGZ1bmN0aW9uKCBfaSwgdHVwbGUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gTWFwIHR1cGxlcyAocHJvZ3Jlc3MsIGRvbmUsIGZhaWwpIHRvIGFyZ3VtZW50cyAoZG9uZSwgZmFpbCwgcHJvZ3Jlc3MpXG5cdFx0XHRcdFx0XHRcdHZhciBmbiA9IGlzRnVuY3Rpb24oIGZuc1sgdHVwbGVbIDQgXSBdICkgJiYgZm5zWyB0dXBsZVsgNCBdIF07XG5cblx0XHRcdFx0XHRcdFx0Ly8gZGVmZXJyZWQucHJvZ3Jlc3MoZnVuY3Rpb24oKSB7IGJpbmQgdG8gbmV3RGVmZXIgb3IgbmV3RGVmZXIubm90aWZ5IH0pXG5cdFx0XHRcdFx0XHRcdC8vIGRlZmVycmVkLmRvbmUoZnVuY3Rpb24oKSB7IGJpbmQgdG8gbmV3RGVmZXIgb3IgbmV3RGVmZXIucmVzb2x2ZSB9KVxuXHRcdFx0XHRcdFx0XHQvLyBkZWZlcnJlZC5mYWlsKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLnJlamVjdCB9KVxuXHRcdFx0XHRcdFx0XHRkZWZlcnJlZFsgdHVwbGVbIDEgXSBdKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHR2YXIgcmV0dXJuZWQgPSBmbiAmJiBmbi5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCByZXR1cm5lZCAmJiBpc0Z1bmN0aW9uKCByZXR1cm5lZC5wcm9taXNlICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZC5wcm9taXNlKClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LnByb2dyZXNzKCBuZXdEZWZlci5ub3RpZnkgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuZG9uZSggbmV3RGVmZXIucmVzb2x2ZSApXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC5mYWlsKCBuZXdEZWZlci5yZWplY3QgKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXJbIHR1cGxlWyAwIF0gKyBcIldpdGhcIiBdKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmbiA/IFsgcmV0dXJuZWQgXSA6IGFyZ3VtZW50c1xuXHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHRcdGZucyA9IG51bGw7XG5cdFx0XHRcdFx0fSApLnByb21pc2UoKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0dGhlbjogZnVuY3Rpb24oIG9uRnVsZmlsbGVkLCBvblJlamVjdGVkLCBvblByb2dyZXNzICkge1xuXHRcdFx0XHRcdHZhciBtYXhEZXB0aCA9IDA7XG5cdFx0XHRcdFx0ZnVuY3Rpb24gcmVzb2x2ZSggZGVwdGgsIGRlZmVycmVkLCBoYW5kbGVyLCBzcGVjaWFsICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHR2YXIgdGhhdCA9IHRoaXMsXG5cdFx0XHRcdFx0XHRcdFx0YXJncyA9IGFyZ3VtZW50cyxcblx0XHRcdFx0XHRcdFx0XHRtaWdodFRocm93ID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgcmV0dXJuZWQsIHRoZW47XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjMuMy4zXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC01OVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSWdub3JlIGRvdWJsZS1yZXNvbHV0aW9uIGF0dGVtcHRzXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGRlcHRoIDwgbWF4RGVwdGggKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQgPSBoYW5kbGVyLmFwcGx5KCB0aGF0LCBhcmdzICk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjFcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTQ4XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHJldHVybmVkID09PSBkZWZlcnJlZC5wcm9taXNlKCkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoIFwiVGhlbmFibGUgc2VsZi1yZXNvbHV0aW9uXCIgKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUHJvbWlzZXMvQSsgc2VjdGlvbnMgMi4zLjMuMSwgMy41XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC01NFxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNzVcblx0XHRcdFx0XHRcdFx0XHRcdC8vIFJldHJpZXZlIGB0aGVuYCBvbmx5IG9uY2Vcblx0XHRcdFx0XHRcdFx0XHRcdHRoZW4gPSByZXR1cm5lZCAmJlxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjRcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNjRcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gT25seSBjaGVjayBvYmplY3RzIGFuZCBmdW5jdGlvbnMgZm9yIHRoZW5hYmlsaXR5XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCggdHlwZW9mIHJldHVybmVkID09PSBcIm9iamVjdFwiIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZW9mIHJldHVybmVkID09PSBcImZ1bmN0aW9uXCIgKSAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZC50aGVuO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBIYW5kbGUgYSByZXR1cm5lZCB0aGVuYWJsZVxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCB0aGVuICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3BlY2lhbCBwcm9jZXNzb3JzIChub3RpZnkpIGp1c3Qgd2FpdCBmb3IgcmVzb2x1dGlvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHNwZWNpYWwgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhlbi5jYWxsKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKCBtYXhEZXB0aCwgZGVmZXJyZWQsIElkZW50aXR5LCBzcGVjaWFsICksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKCBtYXhEZXB0aCwgZGVmZXJyZWQsIFRocm93ZXIsIHNwZWNpYWwgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gTm9ybWFsIHByb2Nlc3NvcnMgKHJlc29sdmUpIGFsc28gaG9vayBpbnRvIHByb2dyZXNzXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyAuLi5hbmQgZGlzcmVnYXJkIG9sZGVyIHJlc29sdXRpb24gdmFsdWVzXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWF4RGVwdGgrKztcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoZW4uY2FsbChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBUaHJvd2VyLCBzcGVjaWFsICksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKCBtYXhEZXB0aCwgZGVmZXJyZWQsIElkZW50aXR5LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIEhhbmRsZSBhbGwgb3RoZXIgcmV0dXJuZWQgdmFsdWVzXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgc3Vic3RpdHV0ZSBoYW5kbGVycyBwYXNzIG9uIGNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gYW5kIG11bHRpcGxlIHZhbHVlcyAobm9uLXNwZWMgYmVoYXZpb3IpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggaGFuZGxlciAhPT0gSWRlbnRpdHkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdCA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhcmdzID0gWyByZXR1cm5lZCBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gUHJvY2VzcyB0aGUgdmFsdWUocylcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRGVmYXVsdCBwcm9jZXNzIGlzIHJlc29sdmVcblx0XHRcdFx0XHRcdFx0XHRcdFx0KCBzcGVjaWFsIHx8IGRlZmVycmVkLnJlc29sdmVXaXRoICkoIHRoYXQsIGFyZ3MgKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9LFxuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gT25seSBub3JtYWwgcHJvY2Vzc29ycyAocmVzb2x2ZSkgY2F0Y2ggYW5kIHJlamVjdCBleGNlcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0cHJvY2VzcyA9IHNwZWNpYWwgP1xuXHRcdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdyA6XG5cdFx0XHRcdFx0XHRcdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtaWdodFRocm93KCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gY2F0Y2ggKCBlICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBqUXVlcnkuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5EZWZlcnJlZC5leGNlcHRpb25Ib29rKCBlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzLnN0YWNrVHJhY2UgKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4zLjMuNC4xXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNjFcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBJZ25vcmUgcG9zdC1yZXNvbHV0aW9uIGV4Y2VwdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGRlcHRoICsgMSA+PSBtYXhEZXB0aCApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gT25seSBzdWJzdGl0dXRlIGhhbmRsZXJzIHBhc3Mgb24gY29udGV4dFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gYW5kIG11bHRpcGxlIHZhbHVlcyAobm9uLXNwZWMgYmVoYXZpb3IpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGhhbmRsZXIgIT09IFRocm93ZXIgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFyZ3MgPSBbIGUgXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0V2l0aCggdGhhdCwgYXJncyApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4zLjMuMVxuXHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC01N1xuXHRcdFx0XHRcdFx0XHQvLyBSZS1yZXNvbHZlIHByb21pc2VzIGltbWVkaWF0ZWx5IHRvIGRvZGdlIGZhbHNlIHJlamVjdGlvbiBmcm9tXG5cdFx0XHRcdFx0XHRcdC8vIHN1YnNlcXVlbnQgZXJyb3JzXG5cdFx0XHRcdFx0XHRcdGlmICggZGVwdGggKSB7XG5cdFx0XHRcdFx0XHRcdFx0cHJvY2VzcygpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gQ2FsbCBhbiBvcHRpb25hbCBob29rIHRvIHJlY29yZCB0aGUgc3RhY2ssIGluIGNhc2Ugb2YgZXhjZXB0aW9uXG5cdFx0XHRcdFx0XHRcdFx0Ly8gc2luY2UgaXQncyBvdGhlcndpc2UgbG9zdCB3aGVuIGV4ZWN1dGlvbiBnb2VzIGFzeW5jXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBqUXVlcnkuRGVmZXJyZWQuZ2V0U3RhY2tIb29rICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cHJvY2Vzcy5zdGFja1RyYWNlID0galF1ZXJ5LkRlZmVycmVkLmdldFN0YWNrSG9vaygpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuc2V0VGltZW91dCggcHJvY2VzcyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoIGZ1bmN0aW9uKCBuZXdEZWZlciApIHtcblxuXHRcdFx0XHRcdFx0Ly8gcHJvZ3Jlc3NfaGFuZGxlcnMuYWRkKCAuLi4gKVxuXHRcdFx0XHRcdFx0dHVwbGVzWyAwIF1bIDMgXS5hZGQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoXG5cdFx0XHRcdFx0XHRcdFx0MCxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlcixcblx0XHRcdFx0XHRcdFx0XHRpc0Z1bmN0aW9uKCBvblByb2dyZXNzICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25Qcm9ncmVzcyA6XG5cdFx0XHRcdFx0XHRcdFx0XHRJZGVudGl0eSxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlci5ub3RpZnlXaXRoXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdC8vIGZ1bGZpbGxlZF9oYW5kbGVycy5hZGQoIC4uLiApXG5cdFx0XHRcdFx0XHR0dXBsZXNbIDEgXVsgMyBdLmFkZChcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShcblx0XHRcdFx0XHRcdFx0XHQwLFxuXHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyLFxuXHRcdFx0XHRcdFx0XHRcdGlzRnVuY3Rpb24oIG9uRnVsZmlsbGVkICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25GdWxmaWxsZWQgOlxuXHRcdFx0XHRcdFx0XHRcdFx0SWRlbnRpdHlcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuYWRkKCAuLi4gKVxuXHRcdFx0XHRcdFx0dHVwbGVzWyAyIF1bIDMgXS5hZGQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoXG5cdFx0XHRcdFx0XHRcdFx0MCxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlcixcblx0XHRcdFx0XHRcdFx0XHRpc0Z1bmN0aW9uKCBvblJlamVjdGVkICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25SZWplY3RlZCA6XG5cdFx0XHRcdFx0XHRcdFx0XHRUaHJvd2VyXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fSApLnByb21pc2UoKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBHZXQgYSBwcm9taXNlIGZvciB0aGlzIGRlZmVycmVkXG5cdFx0XHRcdC8vIElmIG9iaiBpcyBwcm92aWRlZCwgdGhlIHByb21pc2UgYXNwZWN0IGlzIGFkZGVkIHRvIHRoZSBvYmplY3Rcblx0XHRcdFx0cHJvbWlzZTogZnVuY3Rpb24oIG9iaiApIHtcblx0XHRcdFx0XHRyZXR1cm4gb2JqICE9IG51bGwgPyBqUXVlcnkuZXh0ZW5kKCBvYmosIHByb21pc2UgKSA6IHByb21pc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRkZWZlcnJlZCA9IHt9O1xuXG5cdFx0Ly8gQWRkIGxpc3Qtc3BlY2lmaWMgbWV0aG9kc1xuXHRcdGpRdWVyeS5lYWNoKCB0dXBsZXMsIGZ1bmN0aW9uKCBpLCB0dXBsZSApIHtcblx0XHRcdHZhciBsaXN0ID0gdHVwbGVbIDIgXSxcblx0XHRcdFx0c3RhdGVTdHJpbmcgPSB0dXBsZVsgNSBdO1xuXG5cdFx0XHQvLyBwcm9taXNlLnByb2dyZXNzID0gbGlzdC5hZGRcblx0XHRcdC8vIHByb21pc2UuZG9uZSA9IGxpc3QuYWRkXG5cdFx0XHQvLyBwcm9taXNlLmZhaWwgPSBsaXN0LmFkZFxuXHRcdFx0cHJvbWlzZVsgdHVwbGVbIDEgXSBdID0gbGlzdC5hZGQ7XG5cblx0XHRcdC8vIEhhbmRsZSBzdGF0ZVxuXHRcdFx0aWYgKCBzdGF0ZVN0cmluZyApIHtcblx0XHRcdFx0bGlzdC5hZGQoXG5cdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0XHRcdC8vIHN0YXRlID0gXCJyZXNvbHZlZFwiIChpLmUuLCBmdWxmaWxsZWQpXG5cdFx0XHRcdFx0XHQvLyBzdGF0ZSA9IFwicmVqZWN0ZWRcIlxuXHRcdFx0XHRcdFx0c3RhdGUgPSBzdGF0ZVN0cmluZztcblx0XHRcdFx0XHR9LFxuXG5cdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfY2FsbGJhY2tzLmRpc2FibGVcblx0XHRcdFx0XHQvLyBmdWxmaWxsZWRfY2FsbGJhY2tzLmRpc2FibGVcblx0XHRcdFx0XHR0dXBsZXNbIDMgLSBpIF1bIDIgXS5kaXNhYmxlLFxuXG5cdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuZGlzYWJsZVxuXHRcdFx0XHRcdC8vIGZ1bGZpbGxlZF9oYW5kbGVycy5kaXNhYmxlXG5cdFx0XHRcdFx0dHVwbGVzWyAzIC0gaSBdWyAzIF0uZGlzYWJsZSxcblxuXHRcdFx0XHRcdC8vIHByb2dyZXNzX2NhbGxiYWNrcy5sb2NrXG5cdFx0XHRcdFx0dHVwbGVzWyAwIF1bIDIgXS5sb2NrLFxuXG5cdFx0XHRcdFx0Ly8gcHJvZ3Jlc3NfaGFuZGxlcnMubG9ja1xuXHRcdFx0XHRcdHR1cGxlc1sgMCBdWyAzIF0ubG9ja1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBwcm9ncmVzc19oYW5kbGVycy5maXJlXG5cdFx0XHQvLyBmdWxmaWxsZWRfaGFuZGxlcnMuZmlyZVxuXHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuZmlyZVxuXHRcdFx0bGlzdC5hZGQoIHR1cGxlWyAzIF0uZmlyZSApO1xuXG5cdFx0XHQvLyBkZWZlcnJlZC5ub3RpZnkgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQubm90aWZ5V2l0aCguLi4pIH1cblx0XHRcdC8vIGRlZmVycmVkLnJlc29sdmUgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQucmVzb2x2ZVdpdGgoLi4uKSB9XG5cdFx0XHQvLyBkZWZlcnJlZC5yZWplY3QgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQucmVqZWN0V2l0aCguLi4pIH1cblx0XHRcdGRlZmVycmVkWyB0dXBsZVsgMCBdIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAwIF0gKyBcIldpdGhcIiBdKCB0aGlzID09PSBkZWZlcnJlZCA/IHVuZGVmaW5lZCA6IHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH07XG5cblx0XHRcdC8vIGRlZmVycmVkLm5vdGlmeVdpdGggPSBsaXN0LmZpcmVXaXRoXG5cdFx0XHQvLyBkZWZlcnJlZC5yZXNvbHZlV2l0aCA9IGxpc3QuZmlyZVdpdGhcblx0XHRcdC8vIGRlZmVycmVkLnJlamVjdFdpdGggPSBsaXN0LmZpcmVXaXRoXG5cdFx0XHRkZWZlcnJlZFsgdHVwbGVbIDAgXSArIFwiV2l0aFwiIF0gPSBsaXN0LmZpcmVXaXRoO1xuXHRcdH0gKTtcblxuXHRcdC8vIE1ha2UgdGhlIGRlZmVycmVkIGEgcHJvbWlzZVxuXHRcdHByb21pc2UucHJvbWlzZSggZGVmZXJyZWQgKTtcblxuXHRcdC8vIENhbGwgZ2l2ZW4gZnVuYyBpZiBhbnlcblx0XHRpZiAoIGZ1bmMgKSB7XG5cdFx0XHRmdW5jLmNhbGwoIGRlZmVycmVkLCBkZWZlcnJlZCApO1xuXHRcdH1cblxuXHRcdC8vIEFsbCBkb25lIVxuXHRcdHJldHVybiBkZWZlcnJlZDtcblx0fSxcblxuXHQvLyBEZWZlcnJlZCBoZWxwZXJcblx0d2hlbjogZnVuY3Rpb24oIHNpbmdsZVZhbHVlICkge1xuXHRcdHZhclxuXG5cdFx0XHQvLyBjb3VudCBvZiB1bmNvbXBsZXRlZCBzdWJvcmRpbmF0ZXNcblx0XHRcdHJlbWFpbmluZyA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cblx0XHRcdC8vIGNvdW50IG9mIHVucHJvY2Vzc2VkIGFyZ3VtZW50c1xuXHRcdFx0aSA9IHJlbWFpbmluZyxcblxuXHRcdFx0Ly8gc3Vib3JkaW5hdGUgZnVsZmlsbG1lbnQgZGF0YVxuXHRcdFx0cmVzb2x2ZUNvbnRleHRzID0gQXJyYXkoIGkgKSxcblx0XHRcdHJlc29sdmVWYWx1ZXMgPSBzbGljZS5jYWxsKCBhcmd1bWVudHMgKSxcblxuXHRcdFx0Ly8gdGhlIHByaW1hcnkgRGVmZXJyZWRcblx0XHRcdHByaW1hcnkgPSBqUXVlcnkuRGVmZXJyZWQoKSxcblxuXHRcdFx0Ly8gc3Vib3JkaW5hdGUgY2FsbGJhY2sgZmFjdG9yeVxuXHRcdFx0dXBkYXRlRnVuYyA9IGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0XHRcdHJlc29sdmVDb250ZXh0c1sgaSBdID0gdGhpcztcblx0XHRcdFx0XHRyZXNvbHZlVmFsdWVzWyBpIF0gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApIDogdmFsdWU7XG5cdFx0XHRcdFx0aWYgKCAhKCAtLXJlbWFpbmluZyApICkge1xuXHRcdFx0XHRcdFx0cHJpbWFyeS5yZXNvbHZlV2l0aCggcmVzb2x2ZUNvbnRleHRzLCByZXNvbHZlVmFsdWVzICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fTtcblxuXHRcdC8vIFNpbmdsZS0gYW5kIGVtcHR5IGFyZ3VtZW50cyBhcmUgYWRvcHRlZCBsaWtlIFByb21pc2UucmVzb2x2ZVxuXHRcdGlmICggcmVtYWluaW5nIDw9IDEgKSB7XG5cdFx0XHRhZG9wdFZhbHVlKCBzaW5nbGVWYWx1ZSwgcHJpbWFyeS5kb25lKCB1cGRhdGVGdW5jKCBpICkgKS5yZXNvbHZlLCBwcmltYXJ5LnJlamVjdCxcblx0XHRcdFx0IXJlbWFpbmluZyApO1xuXG5cdFx0XHQvLyBVc2UgLnRoZW4oKSB0byB1bndyYXAgc2Vjb25kYXJ5IHRoZW5hYmxlcyAoY2YuIGdoLTMwMDApXG5cdFx0XHRpZiAoIHByaW1hcnkuc3RhdGUoKSA9PT0gXCJwZW5kaW5nXCIgfHxcblx0XHRcdFx0aXNGdW5jdGlvbiggcmVzb2x2ZVZhbHVlc1sgaSBdICYmIHJlc29sdmVWYWx1ZXNbIGkgXS50aGVuICkgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHByaW1hcnkudGhlbigpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE11bHRpcGxlIGFyZ3VtZW50cyBhcmUgYWdncmVnYXRlZCBsaWtlIFByb21pc2UuYWxsIGFycmF5IGVsZW1lbnRzXG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRhZG9wdFZhbHVlKCByZXNvbHZlVmFsdWVzWyBpIF0sIHVwZGF0ZUZ1bmMoIGkgKSwgcHJpbWFyeS5yZWplY3QgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcHJpbWFyeS5wcm9taXNlKCk7XG5cdH1cbn0gKTtcblxuXG4vLyBUaGVzZSB1c3VhbGx5IGluZGljYXRlIGEgcHJvZ3JhbW1lciBtaXN0YWtlIGR1cmluZyBkZXZlbG9wbWVudCxcbi8vIHdhcm4gYWJvdXQgdGhlbSBBU0FQIHJhdGhlciB0aGFuIHN3YWxsb3dpbmcgdGhlbSBieSBkZWZhdWx0LlxudmFyIHJlcnJvck5hbWVzID0gL14oRXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJKUVycm9yJC87XG5cbmpRdWVyeS5EZWZlcnJlZC5leGNlcHRpb25Ib29rID0gZnVuY3Rpb24oIGVycm9yLCBzdGFjayApIHtcblxuXHQvLyBTdXBwb3J0OiBJRSA4IC0gOSBvbmx5XG5cdC8vIENvbnNvbGUgZXhpc3RzIHdoZW4gZGV2IHRvb2xzIGFyZSBvcGVuLCB3aGljaCBjYW4gaGFwcGVuIGF0IGFueSB0aW1lXG5cdGlmICggd2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUud2FybiAmJiBlcnJvciAmJiByZXJyb3JOYW1lcy50ZXN0KCBlcnJvci5uYW1lICkgKSB7XG5cdFx0d2luZG93LmNvbnNvbGUud2FybiggXCJqUXVlcnkuRGVmZXJyZWQgZXhjZXB0aW9uOiBcIiArIGVycm9yLm1lc3NhZ2UsIGVycm9yLnN0YWNrLCBzdGFjayApO1xuXHR9XG59O1xuXG5cblxuXG5qUXVlcnkucmVhZHlFeGNlcHRpb24gPSBmdW5jdGlvbiggZXJyb3IgKSB7XG5cdHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHR0aHJvdyBlcnJvcjtcblx0fSApO1xufTtcblxuXG5cblxuLy8gVGhlIGRlZmVycmVkIHVzZWQgb24gRE9NIHJlYWR5XG52YXIgcmVhZHlMaXN0ID0galF1ZXJ5LkRlZmVycmVkKCk7XG5cbmpRdWVyeS5mbi5yZWFkeSA9IGZ1bmN0aW9uKCBmbiApIHtcblxuXHRyZWFkeUxpc3Rcblx0XHQudGhlbiggZm4gKVxuXG5cdFx0Ly8gV3JhcCBqUXVlcnkucmVhZHlFeGNlcHRpb24gaW4gYSBmdW5jdGlvbiBzbyB0aGF0IHRoZSBsb29rdXBcblx0XHQvLyBoYXBwZW5zIGF0IHRoZSB0aW1lIG9mIGVycm9yIGhhbmRsaW5nIGluc3RlYWQgb2YgY2FsbGJhY2tcblx0XHQvLyByZWdpc3RyYXRpb24uXG5cdFx0LmNhdGNoKCBmdW5jdGlvbiggZXJyb3IgKSB7XG5cdFx0XHRqUXVlcnkucmVhZHlFeGNlcHRpb24oIGVycm9yICk7XG5cdFx0fSApO1xuXG5cdHJldHVybiB0aGlzO1xufTtcblxualF1ZXJ5LmV4dGVuZCgge1xuXG5cdC8vIElzIHRoZSBET00gcmVhZHkgdG8gYmUgdXNlZD8gU2V0IHRvIHRydWUgb25jZSBpdCBvY2N1cnMuXG5cdGlzUmVhZHk6IGZhbHNlLFxuXG5cdC8vIEEgY291bnRlciB0byB0cmFjayBob3cgbWFueSBpdGVtcyB0byB3YWl0IGZvciBiZWZvcmVcblx0Ly8gdGhlIHJlYWR5IGV2ZW50IGZpcmVzLiBTZWUgdHJhYy02NzgxXG5cdHJlYWR5V2FpdDogMSxcblxuXHQvLyBIYW5kbGUgd2hlbiB0aGUgRE9NIGlzIHJlYWR5XG5cdHJlYWR5OiBmdW5jdGlvbiggd2FpdCApIHtcblxuXHRcdC8vIEFib3J0IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGhvbGRzIG9yIHdlJ3JlIGFscmVhZHkgcmVhZHlcblx0XHRpZiAoIHdhaXQgPT09IHRydWUgPyAtLWpRdWVyeS5yZWFkeVdhaXQgOiBqUXVlcnkuaXNSZWFkeSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBSZW1lbWJlciB0aGF0IHRoZSBET00gaXMgcmVhZHlcblx0XHRqUXVlcnkuaXNSZWFkeSA9IHRydWU7XG5cblx0XHQvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZVxuXHRcdGlmICggd2FpdCAhPT0gdHJ1ZSAmJiAtLWpRdWVyeS5yZWFkeVdhaXQgPiAwICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIElmIHRoZXJlIGFyZSBmdW5jdGlvbnMgYm91bmQsIHRvIGV4ZWN1dGVcblx0XHRyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LnJlYWR5LnRoZW4gPSByZWFkeUxpc3QudGhlbjtcblxuLy8gVGhlIHJlYWR5IGV2ZW50IGhhbmRsZXIgYW5kIHNlbGYgY2xlYW51cCBtZXRob2RcbmZ1bmN0aW9uIGNvbXBsZXRlZCgpIHtcblx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJET01Db250ZW50TG9hZGVkXCIsIGNvbXBsZXRlZCApO1xuXHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJsb2FkXCIsIGNvbXBsZXRlZCApO1xuXHRqUXVlcnkucmVhZHkoKTtcbn1cblxuLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWRcbi8vIGFmdGVyIHRoZSBicm93c2VyIGV2ZW50IGhhcyBhbHJlYWR5IG9jY3VycmVkLlxuLy8gU3VwcG9ydDogSUUgPD05IC0gMTAgb25seVxuLy8gT2xkZXIgSUUgc29tZXRpbWVzIHNpZ25hbHMgXCJpbnRlcmFjdGl2ZVwiIHRvbyBzb29uXG5pZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09IFwiY29tcGxldGVcIiB8fFxuXHQoIGRvY3VtZW50LnJlYWR5U3RhdGUgIT09IFwibG9hZGluZ1wiICYmICFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwgKSApIHtcblxuXHQvLyBIYW5kbGUgaXQgYXN5bmNocm9ub3VzbHkgdG8gYWxsb3cgc2NyaXB0cyB0aGUgb3Bwb3J0dW5pdHkgdG8gZGVsYXkgcmVhZHlcblx0d2luZG93LnNldFRpbWVvdXQoIGpRdWVyeS5yZWFkeSApO1xuXG59IGVsc2Uge1xuXG5cdC8vIFVzZSB0aGUgaGFuZHkgZXZlbnQgY2FsbGJhY2tcblx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJET01Db250ZW50TG9hZGVkXCIsIGNvbXBsZXRlZCApO1xuXG5cdC8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrXG5cdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCBcImxvYWRcIiwgY29tcGxldGVkICk7XG59XG5cblxuXG5cbi8vIE11bHRpZnVuY3Rpb25hbCBtZXRob2QgdG8gZ2V0IGFuZCBzZXQgdmFsdWVzIG9mIGEgY29sbGVjdGlvblxuLy8gVGhlIHZhbHVlL3MgY2FuIG9wdGlvbmFsbHkgYmUgZXhlY3V0ZWQgaWYgaXQncyBhIGZ1bmN0aW9uXG52YXIgYWNjZXNzID0gZnVuY3Rpb24oIGVsZW1zLCBmbiwga2V5LCB2YWx1ZSwgY2hhaW5hYmxlLCBlbXB0eUdldCwgcmF3ICkge1xuXHR2YXIgaSA9IDAsXG5cdFx0bGVuID0gZWxlbXMubGVuZ3RoLFxuXHRcdGJ1bGsgPSBrZXkgPT0gbnVsbDtcblxuXHQvLyBTZXRzIG1hbnkgdmFsdWVzXG5cdGlmICggdG9UeXBlKCBrZXkgKSA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRjaGFpbmFibGUgPSB0cnVlO1xuXHRcdGZvciAoIGkgaW4ga2V5ICkge1xuXHRcdFx0YWNjZXNzKCBlbGVtcywgZm4sIGksIGtleVsgaSBdLCB0cnVlLCBlbXB0eUdldCwgcmF3ICk7XG5cdFx0fVxuXG5cdC8vIFNldHMgb25lIHZhbHVlXG5cdH0gZWxzZSBpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0Y2hhaW5hYmxlID0gdHJ1ZTtcblxuXHRcdGlmICggIWlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyYXcgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGlmICggYnVsayApIHtcblxuXHRcdFx0Ly8gQnVsayBvcGVyYXRpb25zIHJ1biBhZ2FpbnN0IHRoZSBlbnRpcmUgc2V0XG5cdFx0XHRpZiAoIHJhdyApIHtcblx0XHRcdFx0Zm4uY2FsbCggZWxlbXMsIHZhbHVlICk7XG5cdFx0XHRcdGZuID0gbnVsbDtcblxuXHRcdFx0Ly8gLi4uZXhjZXB0IHdoZW4gZXhlY3V0aW5nIGZ1bmN0aW9uIHZhbHVlc1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnVsayA9IGZuO1xuXHRcdFx0XHRmbiA9IGZ1bmN0aW9uKCBlbGVtLCBfa2V5LCB2YWx1ZSApIHtcblx0XHRcdFx0XHRyZXR1cm4gYnVsay5jYWxsKCBqUXVlcnkoIGVsZW0gKSwgdmFsdWUgKTtcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoIGZuICkge1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdGZuKFxuXHRcdFx0XHRcdGVsZW1zWyBpIF0sIGtleSwgcmF3ID9cblx0XHRcdFx0XHRcdHZhbHVlIDpcblx0XHRcdFx0XHRcdHZhbHVlLmNhbGwoIGVsZW1zWyBpIF0sIGksIGZuKCBlbGVtc1sgaSBdLCBrZXkgKSApXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aWYgKCBjaGFpbmFibGUgKSB7XG5cdFx0cmV0dXJuIGVsZW1zO1xuXHR9XG5cblx0Ly8gR2V0c1xuXHRpZiAoIGJ1bGsgKSB7XG5cdFx0cmV0dXJuIGZuLmNhbGwoIGVsZW1zICk7XG5cdH1cblxuXHRyZXR1cm4gbGVuID8gZm4oIGVsZW1zWyAwIF0sIGtleSApIDogZW1wdHlHZXQ7XG59O1xuXG5cbi8vIE1hdGNoZXMgZGFzaGVkIHN0cmluZyBmb3IgY2FtZWxpemluZ1xudmFyIHJtc1ByZWZpeCA9IC9eLW1zLS8sXG5cdHJkYXNoQWxwaGEgPSAvLShbYS16XSkvZztcblxuLy8gVXNlZCBieSBjYW1lbENhc2UgYXMgY2FsbGJhY2sgdG8gcmVwbGFjZSgpXG5mdW5jdGlvbiBmY2FtZWxDYXNlKCBfYWxsLCBsZXR0ZXIgKSB7XG5cdHJldHVybiBsZXR0ZXIudG9VcHBlckNhc2UoKTtcbn1cblxuLy8gQ29udmVydCBkYXNoZWQgdG8gY2FtZWxDYXNlOyB1c2VkIGJ5IHRoZSBjc3MgYW5kIGRhdGEgbW9kdWxlc1xuLy8gU3VwcG9ydDogSUUgPD05IC0gMTEsIEVkZ2UgMTIgLSAxNVxuLy8gTWljcm9zb2Z0IGZvcmdvdCB0byBodW1wIHRoZWlyIHZlbmRvciBwcmVmaXggKHRyYWMtOTU3MilcbmZ1bmN0aW9uIGNhbWVsQ2FzZSggc3RyaW5nICkge1xuXHRyZXR1cm4gc3RyaW5nLnJlcGxhY2UoIHJtc1ByZWZpeCwgXCJtcy1cIiApLnJlcGxhY2UoIHJkYXNoQWxwaGEsIGZjYW1lbENhc2UgKTtcbn1cbnZhciBhY2NlcHREYXRhID0gZnVuY3Rpb24oIG93bmVyICkge1xuXG5cdC8vIEFjY2VwdHMgb25seTpcblx0Ly8gIC0gTm9kZVxuXHQvLyAgICAtIE5vZGUuRUxFTUVOVF9OT0RFXG5cdC8vICAgIC0gTm9kZS5ET0NVTUVOVF9OT0RFXG5cdC8vICAtIE9iamVjdFxuXHQvLyAgICAtIEFueVxuXHRyZXR1cm4gb3duZXIubm9kZVR5cGUgPT09IDEgfHwgb3duZXIubm9kZVR5cGUgPT09IDkgfHwgISggK293bmVyLm5vZGVUeXBlICk7XG59O1xuXG5cblxuXG5mdW5jdGlvbiBEYXRhKCkge1xuXHR0aGlzLmV4cGFuZG8gPSBqUXVlcnkuZXhwYW5kbyArIERhdGEudWlkKys7XG59XG5cbkRhdGEudWlkID0gMTtcblxuRGF0YS5wcm90b3R5cGUgPSB7XG5cblx0Y2FjaGU6IGZ1bmN0aW9uKCBvd25lciApIHtcblxuXHRcdC8vIENoZWNrIGlmIHRoZSBvd25lciBvYmplY3QgYWxyZWFkeSBoYXMgYSBjYWNoZVxuXHRcdHZhciB2YWx1ZSA9IG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblxuXHRcdC8vIElmIG5vdCwgY3JlYXRlIG9uZVxuXHRcdGlmICggIXZhbHVlICkge1xuXHRcdFx0dmFsdWUgPSB7fTtcblxuXHRcdFx0Ly8gV2UgY2FuIGFjY2VwdCBkYXRhIGZvciBub24tZWxlbWVudCBub2RlcyBpbiBtb2Rlcm4gYnJvd3NlcnMsXG5cdFx0XHQvLyBidXQgd2Ugc2hvdWxkIG5vdCwgc2VlIHRyYWMtODMzNS5cblx0XHRcdC8vIEFsd2F5cyByZXR1cm4gYW4gZW1wdHkgb2JqZWN0LlxuXHRcdFx0aWYgKCBhY2NlcHREYXRhKCBvd25lciApICkge1xuXG5cdFx0XHRcdC8vIElmIGl0IGlzIGEgbm9kZSB1bmxpa2VseSB0byBiZSBzdHJpbmdpZnktZWQgb3IgbG9vcGVkIG92ZXJcblx0XHRcdFx0Ly8gdXNlIHBsYWluIGFzc2lnbm1lbnRcblx0XHRcdFx0aWYgKCBvd25lci5ub2RlVHlwZSApIHtcblx0XHRcdFx0XHRvd25lclsgdGhpcy5leHBhbmRvIF0gPSB2YWx1ZTtcblxuXHRcdFx0XHQvLyBPdGhlcndpc2Ugc2VjdXJlIGl0IGluIGEgbm9uLWVudW1lcmFibGUgcHJvcGVydHlcblx0XHRcdFx0Ly8gY29uZmlndXJhYmxlIG11c3QgYmUgdHJ1ZSB0byBhbGxvdyB0aGUgcHJvcGVydHkgdG8gYmVcblx0XHRcdFx0Ly8gZGVsZXRlZCB3aGVuIGRhdGEgaXMgcmVtb3ZlZFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggb3duZXIsIHRoaXMuZXhwYW5kbywge1xuXHRcdFx0XHRcdFx0dmFsdWU6IHZhbHVlLFxuXHRcdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlXG5cdFx0XHRcdFx0fSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9LFxuXHRzZXQ6IGZ1bmN0aW9uKCBvd25lciwgZGF0YSwgdmFsdWUgKSB7XG5cdFx0dmFyIHByb3AsXG5cdFx0XHRjYWNoZSA9IHRoaXMuY2FjaGUoIG93bmVyICk7XG5cblx0XHQvLyBIYW5kbGU6IFsgb3duZXIsIGtleSwgdmFsdWUgXSBhcmdzXG5cdFx0Ly8gQWx3YXlzIHVzZSBjYW1lbENhc2Uga2V5IChnaC0yMjU3KVxuXHRcdGlmICggdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRjYWNoZVsgY2FtZWxDYXNlKCBkYXRhICkgXSA9IHZhbHVlO1xuXG5cdFx0Ly8gSGFuZGxlOiBbIG93bmVyLCB7IHByb3BlcnRpZXMgfSBdIGFyZ3Ncblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBDb3B5IHRoZSBwcm9wZXJ0aWVzIG9uZS1ieS1vbmUgdG8gdGhlIGNhY2hlIG9iamVjdFxuXHRcdFx0Zm9yICggcHJvcCBpbiBkYXRhICkge1xuXHRcdFx0XHRjYWNoZVsgY2FtZWxDYXNlKCBwcm9wICkgXSA9IGRhdGFbIHByb3AgXTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNhY2hlO1xuXHR9LFxuXHRnZXQ6IGZ1bmN0aW9uKCBvd25lciwga2V5ICkge1xuXHRcdHJldHVybiBrZXkgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHR0aGlzLmNhY2hlKCBvd25lciApIDpcblxuXHRcdFx0Ly8gQWx3YXlzIHVzZSBjYW1lbENhc2Uga2V5IChnaC0yMjU3KVxuXHRcdFx0b3duZXJbIHRoaXMuZXhwYW5kbyBdICYmIG93bmVyWyB0aGlzLmV4cGFuZG8gXVsgY2FtZWxDYXNlKCBrZXkgKSBdO1xuXHR9LFxuXHRhY2Nlc3M6IGZ1bmN0aW9uKCBvd25lciwga2V5LCB2YWx1ZSApIHtcblxuXHRcdC8vIEluIGNhc2VzIHdoZXJlIGVpdGhlcjpcblx0XHQvL1xuXHRcdC8vICAgMS4gTm8ga2V5IHdhcyBzcGVjaWZpZWRcblx0XHQvLyAgIDIuIEEgc3RyaW5nIGtleSB3YXMgc3BlY2lmaWVkLCBidXQgbm8gdmFsdWUgcHJvdmlkZWRcblx0XHQvL1xuXHRcdC8vIFRha2UgdGhlIFwicmVhZFwiIHBhdGggYW5kIGFsbG93IHRoZSBnZXQgbWV0aG9kIHRvIGRldGVybWluZVxuXHRcdC8vIHdoaWNoIHZhbHVlIHRvIHJldHVybiwgcmVzcGVjdGl2ZWx5IGVpdGhlcjpcblx0XHQvL1xuXHRcdC8vICAgMS4gVGhlIGVudGlyZSBjYWNoZSBvYmplY3Rcblx0XHQvLyAgIDIuIFRoZSBkYXRhIHN0b3JlZCBhdCB0aGUga2V5XG5cdFx0Ly9cblx0XHRpZiAoIGtleSA9PT0gdW5kZWZpbmVkIHx8XG5cdFx0XHRcdCggKCBrZXkgJiYgdHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIiApICYmIHZhbHVlID09PSB1bmRlZmluZWQgKSApIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0KCBvd25lciwga2V5ICk7XG5cdFx0fVxuXG5cdFx0Ly8gV2hlbiB0aGUga2V5IGlzIG5vdCBhIHN0cmluZywgb3IgYm90aCBhIGtleSBhbmQgdmFsdWVcblx0XHQvLyBhcmUgc3BlY2lmaWVkLCBzZXQgb3IgZXh0ZW5kIChleGlzdGluZyBvYmplY3RzKSB3aXRoIGVpdGhlcjpcblx0XHQvL1xuXHRcdC8vICAgMS4gQW4gb2JqZWN0IG9mIHByb3BlcnRpZXNcblx0XHQvLyAgIDIuIEEga2V5IGFuZCB2YWx1ZVxuXHRcdC8vXG5cdFx0dGhpcy5zZXQoIG93bmVyLCBrZXksIHZhbHVlICk7XG5cblx0XHQvLyBTaW5jZSB0aGUgXCJzZXRcIiBwYXRoIGNhbiBoYXZlIHR3byBwb3NzaWJsZSBlbnRyeSBwb2ludHNcblx0XHQvLyByZXR1cm4gdGhlIGV4cGVjdGVkIGRhdGEgYmFzZWQgb24gd2hpY2ggcGF0aCB3YXMgdGFrZW5bKl1cblx0XHRyZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoga2V5O1xuXHR9LFxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBvd25lciwga2V5ICkge1xuXHRcdHZhciBpLFxuXHRcdFx0Y2FjaGUgPSBvd25lclsgdGhpcy5leHBhbmRvIF07XG5cblx0XHRpZiAoIGNhY2hlID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCBrZXkgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydCBhcnJheSBvciBzcGFjZSBzZXBhcmF0ZWQgc3RyaW5nIG9mIGtleXNcblx0XHRcdGlmICggQXJyYXkuaXNBcnJheSgga2V5ICkgKSB7XG5cblx0XHRcdFx0Ly8gSWYga2V5IGlzIGFuIGFycmF5IG9mIGtleXMuLi5cblx0XHRcdFx0Ly8gV2UgYWx3YXlzIHNldCBjYW1lbENhc2Uga2V5cywgc28gcmVtb3ZlIHRoYXQuXG5cdFx0XHRcdGtleSA9IGtleS5tYXAoIGNhbWVsQ2FzZSApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0a2V5ID0gY2FtZWxDYXNlKCBrZXkgKTtcblxuXHRcdFx0XHQvLyBJZiBhIGtleSB3aXRoIHRoZSBzcGFjZXMgZXhpc3RzLCB1c2UgaXQuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSwgY3JlYXRlIGFuIGFycmF5IGJ5IG1hdGNoaW5nIG5vbi13aGl0ZXNwYWNlXG5cdFx0XHRcdGtleSA9IGtleSBpbiBjYWNoZSA/XG5cdFx0XHRcdFx0WyBrZXkgXSA6XG5cdFx0XHRcdFx0KCBrZXkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRpID0ga2V5Lmxlbmd0aDtcblxuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGRlbGV0ZSBjYWNoZVsga2V5WyBpIF0gXTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBSZW1vdmUgdGhlIGV4cGFuZG8gaWYgdGhlcmUncyBubyBtb3JlIGRhdGFcblx0XHRpZiAoIGtleSA9PT0gdW5kZWZpbmVkIHx8IGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBjYWNoZSApICkge1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgPD0zNSAtIDQ1XG5cdFx0XHQvLyBXZWJraXQgJiBCbGluayBwZXJmb3JtYW5jZSBzdWZmZXJzIHdoZW4gZGVsZXRpbmcgcHJvcGVydGllc1xuXHRcdFx0Ly8gZnJvbSBET00gbm9kZXMsIHNvIHNldCB0byB1bmRlZmluZWQgaW5zdGVhZFxuXHRcdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9Mzc4NjA3IChidWcgcmVzdHJpY3RlZClcblx0XHRcdGlmICggb3duZXIubm9kZVR5cGUgKSB7XG5cdFx0XHRcdG93bmVyWyB0aGlzLmV4cGFuZG8gXSA9IHVuZGVmaW5lZDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRlbGV0ZSBvd25lclsgdGhpcy5leHBhbmRvIF07XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRoYXNEYXRhOiBmdW5jdGlvbiggb3duZXIgKSB7XG5cdFx0dmFyIGNhY2hlID0gb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXHRcdHJldHVybiBjYWNoZSAhPT0gdW5kZWZpbmVkICYmICFqUXVlcnkuaXNFbXB0eU9iamVjdCggY2FjaGUgKTtcblx0fVxufTtcbnZhciBkYXRhUHJpdiA9IG5ldyBEYXRhKCk7XG5cbnZhciBkYXRhVXNlciA9IG5ldyBEYXRhKCk7XG5cblxuXG4vL1x0SW1wbGVtZW50YXRpb24gU3VtbWFyeVxuLy9cbi8vXHQxLiBFbmZvcmNlIEFQSSBzdXJmYWNlIGFuZCBzZW1hbnRpYyBjb21wYXRpYmlsaXR5IHdpdGggMS45LnggYnJhbmNoXG4vL1x0Mi4gSW1wcm92ZSB0aGUgbW9kdWxlJ3MgbWFpbnRhaW5hYmlsaXR5IGJ5IHJlZHVjaW5nIHRoZSBzdG9yYWdlXG4vL1x0XHRwYXRocyB0byBhIHNpbmdsZSBtZWNoYW5pc20uXG4vL1x0My4gVXNlIHRoZSBzYW1lIHNpbmdsZSBtZWNoYW5pc20gdG8gc3VwcG9ydCBcInByaXZhdGVcIiBhbmQgXCJ1c2VyXCIgZGF0YS5cbi8vXHQ0LiBfTmV2ZXJfIGV4cG9zZSBcInByaXZhdGVcIiBkYXRhIHRvIHVzZXIgY29kZSAoVE9ETzogRHJvcCBfZGF0YSwgX3JlbW92ZURhdGEpXG4vL1x0NS4gQXZvaWQgZXhwb3NpbmcgaW1wbGVtZW50YXRpb24gZGV0YWlscyBvbiB1c2VyIG9iamVjdHMgKGVnLiBleHBhbmRvIHByb3BlcnRpZXMpXG4vL1x0Ni4gUHJvdmlkZSBhIGNsZWFyIHBhdGggZm9yIGltcGxlbWVudGF0aW9uIHVwZ3JhZGUgdG8gV2Vha01hcCBpbiAyMDE0XG5cbnZhciByYnJhY2UgPSAvXig/Olxce1tcXHdcXFddKlxcfXxcXFtbXFx3XFxXXSpcXF0pJC8sXG5cdHJtdWx0aURhc2ggPSAvW0EtWl0vZztcblxuZnVuY3Rpb24gZ2V0RGF0YSggZGF0YSApIHtcblx0aWYgKCBkYXRhID09PSBcInRydWVcIiApIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdGlmICggZGF0YSA9PT0gXCJmYWxzZVwiICkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGlmICggZGF0YSA9PT0gXCJudWxsXCIgKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvLyBPbmx5IGNvbnZlcnQgdG8gYSBudW1iZXIgaWYgaXQgZG9lc24ndCBjaGFuZ2UgdGhlIHN0cmluZ1xuXHRpZiAoIGRhdGEgPT09ICtkYXRhICsgXCJcIiApIHtcblx0XHRyZXR1cm4gK2RhdGE7XG5cdH1cblxuXHRpZiAoIHJicmFjZS50ZXN0KCBkYXRhICkgKSB7XG5cdFx0cmV0dXJuIEpTT04ucGFyc2UoIGRhdGEgKTtcblx0fVxuXG5cdHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBkYXRhQXR0ciggZWxlbSwga2V5LCBkYXRhICkge1xuXHR2YXIgbmFtZTtcblxuXHQvLyBJZiBub3RoaW5nIHdhcyBmb3VuZCBpbnRlcm5hbGx5LCB0cnkgdG8gZmV0Y2ggYW55XG5cdC8vIGRhdGEgZnJvbSB0aGUgSFRNTDUgZGF0YS0qIGF0dHJpYnV0ZVxuXHRpZiAoIGRhdGEgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdG5hbWUgPSBcImRhdGEtXCIgKyBrZXkucmVwbGFjZSggcm11bHRpRGFzaCwgXCItJCZcIiApLnRvTG93ZXJDYXNlKCk7XG5cdFx0ZGF0YSA9IGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lICk7XG5cblx0XHRpZiAoIHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0ZGF0YSA9IGdldERhdGEoIGRhdGEgKTtcblx0XHRcdH0gY2F0Y2ggKCBlICkge31cblxuXHRcdFx0Ly8gTWFrZSBzdXJlIHdlIHNldCB0aGUgZGF0YSBzbyBpdCBpc24ndCBjaGFuZ2VkIGxhdGVyXG5cdFx0XHRkYXRhVXNlci5zZXQoIGVsZW0sIGtleSwgZGF0YSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gZGF0YTtcbn1cblxualF1ZXJ5LmV4dGVuZCgge1xuXHRoYXNEYXRhOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGF0YVVzZXIuaGFzRGF0YSggZWxlbSApIHx8IGRhdGFQcml2Lmhhc0RhdGEoIGVsZW0gKTtcblx0fSxcblxuXHRkYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZGF0YSApIHtcblx0XHRyZXR1cm4gZGF0YVVzZXIuYWNjZXNzKCBlbGVtLCBuYW1lLCBkYXRhICk7XG5cdH0sXG5cblx0cmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XG5cdFx0ZGF0YVVzZXIucmVtb3ZlKCBlbGVtLCBuYW1lICk7XG5cdH0sXG5cblx0Ly8gVE9ETzogTm93IHRoYXQgYWxsIGNhbGxzIHRvIF9kYXRhIGFuZCBfcmVtb3ZlRGF0YSBoYXZlIGJlZW4gcmVwbGFjZWRcblx0Ly8gd2l0aCBkaXJlY3QgY2FsbHMgdG8gZGF0YVByaXYgbWV0aG9kcywgdGhlc2UgY2FuIGJlIGRlcHJlY2F0ZWQuXG5cdF9kYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZGF0YSApIHtcblx0XHRyZXR1cm4gZGF0YVByaXYuYWNjZXNzKCBlbGVtLCBuYW1lLCBkYXRhICk7XG5cdH0sXG5cblx0X3JlbW92ZURhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXHRcdGRhdGFQcml2LnJlbW92ZSggZWxlbSwgbmFtZSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0ZGF0YTogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7XG5cdFx0dmFyIGksIG5hbWUsIGRhdGEsXG5cdFx0XHRlbGVtID0gdGhpc1sgMCBdLFxuXHRcdFx0YXR0cnMgPSBlbGVtICYmIGVsZW0uYXR0cmlidXRlcztcblxuXHRcdC8vIEdldHMgYWxsIHZhbHVlc1xuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRpZiAoIHRoaXMubGVuZ3RoICkge1xuXHRcdFx0XHRkYXRhID0gZGF0YVVzZXIuZ2V0KCBlbGVtICk7XG5cblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmICFkYXRhUHJpdi5nZXQoIGVsZW0sIFwiaGFzRGF0YUF0dHJzXCIgKSApIHtcblx0XHRcdFx0XHRpID0gYXR0cnMubGVuZ3RoO1xuXHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSBvbmx5XG5cdFx0XHRcdFx0XHQvLyBUaGUgYXR0cnMgZWxlbWVudHMgY2FuIGJlIG51bGwgKHRyYWMtMTQ4OTQpXG5cdFx0XHRcdFx0XHRpZiAoIGF0dHJzWyBpIF0gKSB7XG5cdFx0XHRcdFx0XHRcdG5hbWUgPSBhdHRyc1sgaSBdLm5hbWU7XG5cdFx0XHRcdFx0XHRcdGlmICggbmFtZS5pbmRleE9mKCBcImRhdGEtXCIgKSA9PT0gMCApIHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lID0gY2FtZWxDYXNlKCBuYW1lLnNsaWNlKCA1ICkgKTtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXR0ciggZWxlbSwgbmFtZSwgZGF0YVsgbmFtZSBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZGF0YVByaXYuc2V0KCBlbGVtLCBcImhhc0RhdGFBdHRyc1wiLCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0fVxuXG5cdFx0Ly8gU2V0cyBtdWx0aXBsZSB2YWx1ZXNcblx0XHRpZiAoIHR5cGVvZiBrZXkgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGF0YVVzZXIuc2V0KCB0aGlzLCBrZXkgKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgZGF0YTtcblxuXHRcdFx0Ly8gVGhlIGNhbGxpbmcgalF1ZXJ5IG9iamVjdCAoZWxlbWVudCBtYXRjaGVzKSBpcyBub3QgZW1wdHlcblx0XHRcdC8vIChhbmQgdGhlcmVmb3JlIGhhcyBhbiBlbGVtZW50IGFwcGVhcnMgYXQgdGhpc1sgMCBdKSBhbmQgdGhlXG5cdFx0XHQvLyBgdmFsdWVgIHBhcmFtZXRlciB3YXMgbm90IHVuZGVmaW5lZC4gQW4gZW1wdHkgalF1ZXJ5IG9iamVjdFxuXHRcdFx0Ly8gd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgZm9yIGVsZW0gPSB0aGlzWyAwIF0gd2hpY2ggd2lsbFxuXHRcdFx0Ly8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFuIGF0dGVtcHQgdG8gcmVhZCBhIGRhdGEgY2FjaGUgaXMgbWFkZS5cblx0XHRcdGlmICggZWxlbSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRcdC8vIEF0dGVtcHQgdG8gZ2V0IGRhdGEgZnJvbSB0aGUgY2FjaGVcblx0XHRcdFx0Ly8gVGhlIGtleSB3aWxsIGFsd2F5cyBiZSBjYW1lbENhc2VkIGluIERhdGFcblx0XHRcdFx0ZGF0YSA9IGRhdGFVc2VyLmdldCggZWxlbSwga2V5ICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQXR0ZW1wdCB0byBcImRpc2NvdmVyXCIgdGhlIGRhdGEgaW5cblx0XHRcdFx0Ly8gSFRNTDUgY3VzdG9tIGRhdGEtKiBhdHRyc1xuXHRcdFx0XHRkYXRhID0gZGF0YUF0dHIoIGVsZW0sIGtleSApO1xuXHRcdFx0XHRpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFdlIHRyaWVkIHJlYWxseSBoYXJkLCBidXQgdGhlIGRhdGEgZG9lc24ndCBleGlzdC5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZXQgdGhlIGRhdGEuLi5cblx0XHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gV2UgYWx3YXlzIHN0b3JlIHRoZSBjYW1lbENhc2VkIGtleVxuXHRcdFx0XHRkYXRhVXNlci5zZXQoIHRoaXMsIGtleSwgdmFsdWUgKTtcblx0XHRcdH0gKTtcblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEsIG51bGwsIHRydWUgKTtcblx0fSxcblxuXHRyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0ZGF0YVVzZXIucmVtb3ZlKCB0aGlzLCBrZXkgKTtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdHF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSwgZGF0YSApIHtcblx0XHR2YXIgcXVldWU7XG5cblx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHR0eXBlID0gKCB0eXBlIHx8IFwiZnhcIiApICsgXCJxdWV1ZVwiO1xuXHRcdFx0cXVldWUgPSBkYXRhUHJpdi5nZXQoIGVsZW0sIHR5cGUgKTtcblxuXHRcdFx0Ly8gU3BlZWQgdXAgZGVxdWV1ZSBieSBnZXR0aW5nIG91dCBxdWlja2x5IGlmIHRoaXMgaXMganVzdCBhIGxvb2t1cFxuXHRcdFx0aWYgKCBkYXRhICkge1xuXHRcdFx0XHRpZiAoICFxdWV1ZSB8fCBBcnJheS5pc0FycmF5KCBkYXRhICkgKSB7XG5cdFx0XHRcdFx0cXVldWUgPSBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIHR5cGUsIGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEgKSApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHF1ZXVlLnB1c2goIGRhdGEgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHF1ZXVlIHx8IFtdO1xuXHRcdH1cblx0fSxcblxuXHRkZXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHtcblx0XHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cblx0XHR2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5cGUgKSxcblx0XHRcdHN0YXJ0TGVuZ3RoID0gcXVldWUubGVuZ3RoLFxuXHRcdFx0Zm4gPSBxdWV1ZS5zaGlmdCgpLFxuXHRcdFx0aG9va3MgPSBqUXVlcnkuX3F1ZXVlSG9va3MoIGVsZW0sIHR5cGUgKSxcblx0XHRcdG5leHQgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0alF1ZXJ5LmRlcXVldWUoIGVsZW0sIHR5cGUgKTtcblx0XHRcdH07XG5cblx0XHQvLyBJZiB0aGUgZnggcXVldWUgaXMgZGVxdWV1ZWQsIGFsd2F5cyByZW1vdmUgdGhlIHByb2dyZXNzIHNlbnRpbmVsXG5cdFx0aWYgKCBmbiA9PT0gXCJpbnByb2dyZXNzXCIgKSB7XG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCk7XG5cdFx0XHRzdGFydExlbmd0aC0tO1xuXHRcdH1cblxuXHRcdGlmICggZm4gKSB7XG5cblx0XHRcdC8vIEFkZCBhIHByb2dyZXNzIHNlbnRpbmVsIHRvIHByZXZlbnQgdGhlIGZ4IHF1ZXVlIGZyb20gYmVpbmdcblx0XHRcdC8vIGF1dG9tYXRpY2FsbHkgZGVxdWV1ZWRcblx0XHRcdGlmICggdHlwZSA9PT0gXCJmeFwiICkge1xuXHRcdFx0XHRxdWV1ZS51bnNoaWZ0KCBcImlucHJvZ3Jlc3NcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDbGVhciB1cCB0aGUgbGFzdCBxdWV1ZSBzdG9wIGZ1bmN0aW9uXG5cdFx0XHRkZWxldGUgaG9va3Muc3RvcDtcblx0XHRcdGZuLmNhbGwoIGVsZW0sIG5leHQsIGhvb2tzICk7XG5cdFx0fVxuXG5cdFx0aWYgKCAhc3RhcnRMZW5ndGggJiYgaG9va3MgKSB7XG5cdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XG5cdFx0fVxuXHR9LFxuXG5cdC8vIE5vdCBwdWJsaWMgLSBnZW5lcmF0ZSBhIHF1ZXVlSG9va3Mgb2JqZWN0LCBvciByZXR1cm4gdGhlIGN1cnJlbnQgb25lXG5cdF9xdWV1ZUhvb2tzOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHtcblx0XHR2YXIga2V5ID0gdHlwZSArIFwicXVldWVIb29rc1wiO1xuXHRcdHJldHVybiBkYXRhUHJpdi5nZXQoIGVsZW0sIGtleSApIHx8IGRhdGFQcml2LmFjY2VzcyggZWxlbSwga2V5LCB7XG5cdFx0XHRlbXB0eTogalF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICkuYWRkKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBbIHR5cGUgKyBcInF1ZXVlXCIsIGtleSBdICk7XG5cdFx0XHR9IClcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRxdWV1ZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIHNldHRlciA9IDI7XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0ZGF0YSA9IHR5cGU7XG5cdFx0XHR0eXBlID0gXCJmeFwiO1xuXHRcdFx0c2V0dGVyLS07XG5cdFx0fVxuXG5cdFx0aWYgKCBhcmd1bWVudHMubGVuZ3RoIDwgc2V0dGVyICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5xdWV1ZSggdGhpc1sgMCBdLCB0eXBlICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRhdGEgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHR0aGlzIDpcblx0XHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApO1xuXG5cdFx0XHRcdC8vIEVuc3VyZSBhIGhvb2tzIGZvciB0aGlzIHF1ZXVlXG5cdFx0XHRcdGpRdWVyeS5fcXVldWVIb29rcyggdGhpcywgdHlwZSApO1xuXG5cdFx0XHRcdGlmICggdHlwZSA9PT0gXCJmeFwiICYmIHF1ZXVlWyAwIF0gIT09IFwiaW5wcm9ncmVzc1wiICkge1xuXHRcdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0fSxcblx0ZGVxdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdH0gKTtcblx0fSxcblx0Y2xlYXJRdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0cmV0dXJuIHRoaXMucXVldWUoIHR5cGUgfHwgXCJmeFwiLCBbXSApO1xuXHR9LFxuXG5cdC8vIEdldCBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiBxdWV1ZXMgb2YgYSBjZXJ0YWluIHR5cGVcblx0Ly8gYXJlIGVtcHRpZWQgKGZ4IGlzIHRoZSB0eXBlIGJ5IGRlZmF1bHQpXG5cdHByb21pc2U6IGZ1bmN0aW9uKCB0eXBlLCBvYmogKSB7XG5cdFx0dmFyIHRtcCxcblx0XHRcdGNvdW50ID0gMSxcblx0XHRcdGRlZmVyID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRlbGVtZW50cyA9IHRoaXMsXG5cdFx0XHRpID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRyZXNvbHZlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggISggLS1jb3VudCApICkge1xuXHRcdFx0XHRcdGRlZmVyLnJlc29sdmVXaXRoKCBlbGVtZW50cywgWyBlbGVtZW50cyBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0b2JqID0gdHlwZTtcblx0XHRcdHR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG1wID0gZGF0YVByaXYuZ2V0KCBlbGVtZW50c1sgaSBdLCB0eXBlICsgXCJxdWV1ZUhvb2tzXCIgKTtcblx0XHRcdGlmICggdG1wICYmIHRtcC5lbXB0eSApIHtcblx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0dG1wLmVtcHR5LmFkZCggcmVzb2x2ZSApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXNvbHZlKCk7XG5cdFx0cmV0dXJuIGRlZmVyLnByb21pc2UoIG9iaiApO1xuXHR9XG59ICk7XG52YXIgcG51bSA9ICggL1srLV0/KD86XFxkKlxcLnwpXFxkKyg/OltlRV1bKy1dP1xcZCt8KS8gKS5zb3VyY2U7XG5cbnZhciByY3NzTnVtID0gbmV3IFJlZ0V4cCggXCJeKD86KFsrLV0pPXwpKFwiICsgcG51bSArIFwiKShbYS16JV0qKSRcIiwgXCJpXCIgKTtcblxuXG52YXIgY3NzRXhwYW5kID0gWyBcIlRvcFwiLCBcIlJpZ2h0XCIsIFwiQm90dG9tXCIsIFwiTGVmdFwiIF07XG5cbnZhciBkb2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cblxuXG5cdHZhciBpc0F0dGFjaGVkID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKTtcblx0XHR9LFxuXHRcdGNvbXBvc2VkID0geyBjb21wb3NlZDogdHJ1ZSB9O1xuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSssIEVkZ2UgMTIgLSAxOCssIGlPUyAxMC4wIC0gMTAuMiBvbmx5XG5cdC8vIENoZWNrIGF0dGFjaG1lbnQgYWNyb3NzIHNoYWRvdyBET00gYm91bmRhcmllcyB3aGVuIHBvc3NpYmxlIChnaC0zNTA0KVxuXHQvLyBTdXBwb3J0OiBpT1MgMTAuMC0xMC4yIG9ubHlcblx0Ly8gRWFybHkgaU9TIDEwIHZlcnNpb25zIHN1cHBvcnQgYGF0dGFjaFNoYWRvd2AgYnV0IG5vdCBgZ2V0Um9vdE5vZGVgLFxuXHQvLyBsZWFkaW5nIHRvIGVycm9ycy4gV2UgbmVlZCB0byBjaGVjayBmb3IgYGdldFJvb3ROb2RlYC5cblx0aWYgKCBkb2N1bWVudEVsZW1lbnQuZ2V0Um9vdE5vZGUgKSB7XG5cdFx0aXNBdHRhY2hlZCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICkgfHxcblx0XHRcdFx0ZWxlbS5nZXRSb290Tm9kZSggY29tcG9zZWQgKSA9PT0gZWxlbS5vd25lckRvY3VtZW50O1xuXHRcdH07XG5cdH1cbnZhciBpc0hpZGRlbldpdGhpblRyZWUgPSBmdW5jdGlvbiggZWxlbSwgZWwgKSB7XG5cblx0XHQvLyBpc0hpZGRlbldpdGhpblRyZWUgbWlnaHQgYmUgY2FsbGVkIGZyb20galF1ZXJ5I2ZpbHRlciBmdW5jdGlvbjtcblx0XHQvLyBpbiB0aGF0IGNhc2UsIGVsZW1lbnQgd2lsbCBiZSBzZWNvbmQgYXJndW1lbnRcblx0XHRlbGVtID0gZWwgfHwgZWxlbTtcblxuXHRcdC8vIElubGluZSBzdHlsZSB0cnVtcHMgYWxsXG5cdFx0cmV0dXJuIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJub25lXCIgfHxcblx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJlxuXG5cdFx0XHQvLyBPdGhlcndpc2UsIGNoZWNrIGNvbXB1dGVkIHN0eWxlXG5cdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NDMgLSA0NVxuXHRcdFx0Ly8gRGlzY29ubmVjdGVkIGVsZW1lbnRzIGNhbiBoYXZlIGNvbXB1dGVkIGRpc3BsYXk6IG5vbmUsIHNvIGZpcnN0IGNvbmZpcm0gdGhhdCBlbGVtIGlzXG5cdFx0XHQvLyBpbiB0aGUgZG9jdW1lbnQuXG5cdFx0XHRpc0F0dGFjaGVkKCBlbGVtICkgJiZcblxuXHRcdFx0alF1ZXJ5LmNzcyggZWxlbSwgXCJkaXNwbGF5XCIgKSA9PT0gXCJub25lXCI7XG5cdH07XG5cblxuXG5mdW5jdGlvbiBhZGp1c3RDU1MoIGVsZW0sIHByb3AsIHZhbHVlUGFydHMsIHR3ZWVuICkge1xuXHR2YXIgYWRqdXN0ZWQsIHNjYWxlLFxuXHRcdG1heEl0ZXJhdGlvbnMgPSAyMCxcblx0XHRjdXJyZW50VmFsdWUgPSB0d2VlbiA/XG5cdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIHR3ZWVuLmN1cigpO1xuXHRcdFx0fSA6XG5cdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIGpRdWVyeS5jc3MoIGVsZW0sIHByb3AsIFwiXCIgKTtcblx0XHRcdH0sXG5cdFx0aW5pdGlhbCA9IGN1cnJlbnRWYWx1ZSgpLFxuXHRcdHVuaXQgPSB2YWx1ZVBhcnRzICYmIHZhbHVlUGFydHNbIDMgXSB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKSxcblxuXHRcdC8vIFN0YXJ0aW5nIHZhbHVlIGNvbXB1dGF0aW9uIGlzIHJlcXVpcmVkIGZvciBwb3RlbnRpYWwgdW5pdCBtaXNtYXRjaGVzXG5cdFx0aW5pdGlhbEluVW5pdCA9IGVsZW0ubm9kZVR5cGUgJiZcblx0XHRcdCggalF1ZXJ5LmNzc051bWJlclsgcHJvcCBdIHx8IHVuaXQgIT09IFwicHhcIiAmJiAraW5pdGlhbCApICYmXG5cdFx0XHRyY3NzTnVtLmV4ZWMoIGpRdWVyeS5jc3MoIGVsZW0sIHByb3AgKSApO1xuXG5cdGlmICggaW5pdGlhbEluVW5pdCAmJiBpbml0aWFsSW5Vbml0WyAzIF0gIT09IHVuaXQgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NTRcblx0XHQvLyBIYWx2ZSB0aGUgaXRlcmF0aW9uIHRhcmdldCB2YWx1ZSB0byBwcmV2ZW50IGludGVyZmVyZW5jZSBmcm9tIENTUyB1cHBlciBib3VuZHMgKGdoLTIxNDQpXG5cdFx0aW5pdGlhbCA9IGluaXRpYWwgLyAyO1xuXG5cdFx0Ly8gVHJ1c3QgdW5pdHMgcmVwb3J0ZWQgYnkgalF1ZXJ5LmNzc1xuXHRcdHVuaXQgPSB1bml0IHx8IGluaXRpYWxJblVuaXRbIDMgXTtcblxuXHRcdC8vIEl0ZXJhdGl2ZWx5IGFwcHJveGltYXRlIGZyb20gYSBub256ZXJvIHN0YXJ0aW5nIHBvaW50XG5cdFx0aW5pdGlhbEluVW5pdCA9ICtpbml0aWFsIHx8IDE7XG5cblx0XHR3aGlsZSAoIG1heEl0ZXJhdGlvbnMtLSApIHtcblxuXHRcdFx0Ly8gRXZhbHVhdGUgYW5kIHVwZGF0ZSBvdXIgYmVzdCBndWVzcyAoZG91YmxpbmcgZ3Vlc3NlcyB0aGF0IHplcm8gb3V0KS5cblx0XHRcdC8vIEZpbmlzaCBpZiB0aGUgc2NhbGUgZXF1YWxzIG9yIGNyb3NzZXMgMSAobWFraW5nIHRoZSBvbGQqbmV3IHByb2R1Y3Qgbm9uLXBvc2l0aXZlKS5cblx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgcHJvcCwgaW5pdGlhbEluVW5pdCArIHVuaXQgKTtcblx0XHRcdGlmICggKCAxIC0gc2NhbGUgKSAqICggMSAtICggc2NhbGUgPSBjdXJyZW50VmFsdWUoKSAvIGluaXRpYWwgfHwgMC41ICkgKSA8PSAwICkge1xuXHRcdFx0XHRtYXhJdGVyYXRpb25zID0gMDtcblx0XHRcdH1cblx0XHRcdGluaXRpYWxJblVuaXQgPSBpbml0aWFsSW5Vbml0IC8gc2NhbGU7XG5cblx0XHR9XG5cblx0XHRpbml0aWFsSW5Vbml0ID0gaW5pdGlhbEluVW5pdCAqIDI7XG5cdFx0alF1ZXJ5LnN0eWxlKCBlbGVtLCBwcm9wLCBpbml0aWFsSW5Vbml0ICsgdW5pdCApO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHdlIHVwZGF0ZSB0aGUgdHdlZW4gcHJvcGVydGllcyBsYXRlciBvblxuXHRcdHZhbHVlUGFydHMgPSB2YWx1ZVBhcnRzIHx8IFtdO1xuXHR9XG5cblx0aWYgKCB2YWx1ZVBhcnRzICkge1xuXHRcdGluaXRpYWxJblVuaXQgPSAraW5pdGlhbEluVW5pdCB8fCAraW5pdGlhbCB8fCAwO1xuXG5cdFx0Ly8gQXBwbHkgcmVsYXRpdmUgb2Zmc2V0ICgrPS8tPSkgaWYgc3BlY2lmaWVkXG5cdFx0YWRqdXN0ZWQgPSB2YWx1ZVBhcnRzWyAxIF0gP1xuXHRcdFx0aW5pdGlhbEluVW5pdCArICggdmFsdWVQYXJ0c1sgMSBdICsgMSApICogdmFsdWVQYXJ0c1sgMiBdIDpcblx0XHRcdCt2YWx1ZVBhcnRzWyAyIF07XG5cdFx0aWYgKCB0d2VlbiApIHtcblx0XHRcdHR3ZWVuLnVuaXQgPSB1bml0O1xuXHRcdFx0dHdlZW4uc3RhcnQgPSBpbml0aWFsSW5Vbml0O1xuXHRcdFx0dHdlZW4uZW5kID0gYWRqdXN0ZWQ7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBhZGp1c3RlZDtcbn1cblxuXG52YXIgZGVmYXVsdERpc3BsYXlNYXAgPSB7fTtcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdERpc3BsYXkoIGVsZW0gKSB7XG5cdHZhciB0ZW1wLFxuXHRcdGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudCxcblx0XHRub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWUsXG5cdFx0ZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5TWFwWyBub2RlTmFtZSBdO1xuXG5cdGlmICggZGlzcGxheSApIHtcblx0XHRyZXR1cm4gZGlzcGxheTtcblx0fVxuXG5cdHRlbXAgPSBkb2MuYm9keS5hcHBlbmRDaGlsZCggZG9jLmNyZWF0ZUVsZW1lbnQoIG5vZGVOYW1lICkgKTtcblx0ZGlzcGxheSA9IGpRdWVyeS5jc3MoIHRlbXAsIFwiZGlzcGxheVwiICk7XG5cblx0dGVtcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB0ZW1wICk7XG5cblx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRkaXNwbGF5ID0gXCJibG9ja1wiO1xuXHR9XG5cdGRlZmF1bHREaXNwbGF5TWFwWyBub2RlTmFtZSBdID0gZGlzcGxheTtcblxuXHRyZXR1cm4gZGlzcGxheTtcbn1cblxuZnVuY3Rpb24gc2hvd0hpZGUoIGVsZW1lbnRzLCBzaG93ICkge1xuXHR2YXIgZGlzcGxheSwgZWxlbSxcblx0XHR2YWx1ZXMgPSBbXSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gZWxlbWVudHMubGVuZ3RoO1xuXG5cdC8vIERldGVybWluZSBuZXcgZGlzcGxheSB2YWx1ZSBmb3IgZWxlbWVudHMgdGhhdCBuZWVkIHRvIGNoYW5nZVxuXHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdGVsZW0gPSBlbGVtZW50c1sgaW5kZXggXTtcblx0XHRpZiAoICFlbGVtLnN0eWxlICkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0ZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTtcblx0XHRpZiAoIHNob3cgKSB7XG5cblx0XHRcdC8vIFNpbmNlIHdlIGZvcmNlIHZpc2liaWxpdHkgdXBvbiBjYXNjYWRlLWhpZGRlbiBlbGVtZW50cywgYW4gaW1tZWRpYXRlIChhbmQgc2xvdylcblx0XHRcdC8vIGNoZWNrIGlzIHJlcXVpcmVkIGluIHRoaXMgZmlyc3QgbG9vcCB1bmxlc3Mgd2UgaGF2ZSBhIG5vbmVtcHR5IGRpc3BsYXkgdmFsdWUgKGVpdGhlclxuXHRcdFx0Ly8gaW5saW5lIG9yIGFib3V0LXRvLWJlLXJlc3RvcmVkKVxuXHRcdFx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gZGF0YVByaXYuZ2V0KCBlbGVtLCBcImRpc3BsYXlcIiApIHx8IG51bGw7XG5cdFx0XHRcdGlmICggIXZhbHVlc1sgaW5kZXggXSApIHtcblx0XHRcdFx0XHRlbGVtLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJiBpc0hpZGRlbldpdGhpblRyZWUoIGVsZW0gKSApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gZ2V0RGVmYXVsdERpc3BsYXkoIGVsZW0gKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCBkaXNwbGF5ICE9PSBcIm5vbmVcIiApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gXCJub25lXCI7XG5cblx0XHRcdFx0Ly8gUmVtZW1iZXIgd2hhdCB3ZSdyZSBvdmVyd3JpdGluZ1xuXHRcdFx0XHRkYXRhUHJpdi5zZXQoIGVsZW0sIFwiZGlzcGxheVwiLCBkaXNwbGF5ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wIHRvIGF2b2lkIGNvbnN0YW50IHJlZmxvd1xuXHRmb3IgKCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdGlmICggdmFsdWVzWyBpbmRleCBdICE9IG51bGwgKSB7XG5cdFx0XHRlbGVtZW50c1sgaW5kZXggXS5zdHlsZS5kaXNwbGF5ID0gdmFsdWVzWyBpbmRleCBdO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtZW50cztcbn1cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRzaG93OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2hvd0hpZGUoIHRoaXMsIHRydWUgKTtcblx0fSxcblx0aGlkZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNob3dIaWRlKCB0aGlzICk7XG5cdH0sXG5cdHRvZ2dsZTogZnVuY3Rpb24oIHN0YXRlICkge1xuXHRcdGlmICggdHlwZW9mIHN0YXRlID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRcdHJldHVybiBzdGF0ZSA/IHRoaXMuc2hvdygpIDogdGhpcy5oaWRlKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGlzSGlkZGVuV2l0aGluVHJlZSggdGhpcyApICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5zaG93KCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5oaWRlKCk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG59ICk7XG52YXIgcmNoZWNrYWJsZVR5cGUgPSAoIC9eKD86Y2hlY2tib3h8cmFkaW8pJC9pICk7XG5cbnZhciBydGFnTmFtZSA9ICggLzwoW2Etel1bXlxcL1xcMD5cXHgyMFxcdFxcclxcblxcZl0qKS9pICk7XG5cbnZhciByc2NyaXB0VHlwZSA9ICggL14kfF5tb2R1bGUkfFxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaSApO1xuXG5cblxuKCBmdW5jdGlvbigpIHtcblx0dmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLFxuXHRcdGRpdiA9IGZyYWdtZW50LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKSxcblx0XHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgNC4wIC0gNC4zIG9ubHlcblx0Ly8gQ2hlY2sgc3RhdGUgbG9zdCBpZiB0aGUgbmFtZSBpcyBzZXQgKHRyYWMtMTEyMTcpXG5cdC8vIFN1cHBvcnQ6IFdpbmRvd3MgV2ViIEFwcHMgKFdXQSlcblx0Ly8gYG5hbWVgIGFuZCBgdHlwZWAgbXVzdCB1c2UgLnNldEF0dHJpYnV0ZSBmb3IgV1dBICh0cmFjLTE0OTAxKVxuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCBcInJhZGlvXCIgKTtcblx0aW5wdXQuc2V0QXR0cmlidXRlKCBcImNoZWNrZWRcIiwgXCJjaGVja2VkXCIgKTtcblx0aW5wdXQuc2V0QXR0cmlidXRlKCBcIm5hbWVcIiwgXCJ0XCIgKTtcblxuXHRkaXYuYXBwZW5kQ2hpbGQoIGlucHV0ICk7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMSBvbmx5XG5cdC8vIE9sZGVyIFdlYktpdCBkb2Vzbid0IGNsb25lIGNoZWNrZWQgc3RhdGUgY29ycmVjdGx5IGluIGZyYWdtZW50c1xuXHRzdXBwb3J0LmNoZWNrQ2xvbmUgPSBkaXYuY2xvbmVOb2RlKCB0cnVlICkuY2xvbmVOb2RlKCB0cnVlICkubGFzdENoaWxkLmNoZWNrZWQ7XG5cblx0Ly8gU3VwcG9ydDogSUUgPD0xMSBvbmx5XG5cdC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSAoYW5kIGNoZWNrYm94KSBkZWZhdWx0VmFsdWUgaXMgcHJvcGVybHkgY2xvbmVkXG5cdGRpdi5pbm5lckhUTUwgPSBcIjx0ZXh0YXJlYT54PC90ZXh0YXJlYT5cIjtcblx0c3VwcG9ydC5ub0Nsb25lQ2hlY2tlZCA9ICEhZGl2LmNsb25lTm9kZSggdHJ1ZSApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWU7XG5cblx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0Ly8gSUUgPD05IHJlcGxhY2VzIDxvcHRpb24+IHRhZ3Mgd2l0aCB0aGVpciBjb250ZW50cyB3aGVuIGluc2VydGVkIG91dHNpZGUgb2Zcblx0Ly8gdGhlIHNlbGVjdCBlbGVtZW50LlxuXHRkaXYuaW5uZXJIVE1MID0gXCI8b3B0aW9uPjwvb3B0aW9uPlwiO1xuXHRzdXBwb3J0Lm9wdGlvbiA9ICEhZGl2Lmxhc3RDaGlsZDtcbn0gKSgpO1xuXG5cbi8vIFdlIGhhdmUgdG8gY2xvc2UgdGhlc2UgdGFncyB0byBzdXBwb3J0IFhIVE1MICh0cmFjLTEzMjAwKVxudmFyIHdyYXBNYXAgPSB7XG5cblx0Ly8gWEhUTUwgcGFyc2VycyBkbyBub3QgbWFnaWNhbGx5IGluc2VydCBlbGVtZW50cyBpbiB0aGVcblx0Ly8gc2FtZSB3YXkgdGhhdCB0YWcgc291cCBwYXJzZXJzIGRvLiBTbyB3ZSBjYW5ub3Qgc2hvcnRlblxuXHQvLyB0aGlzIGJ5IG9taXR0aW5nIDx0Ym9keT4gb3Igb3RoZXIgcmVxdWlyZWQgZWxlbWVudHMuXG5cdHRoZWFkOiBbIDEsIFwiPHRhYmxlPlwiLCBcIjwvdGFibGU+XCIgXSxcblx0Y29sOiBbIDIsIFwiPHRhYmxlPjxjb2xncm91cD5cIiwgXCI8L2NvbGdyb3VwPjwvdGFibGU+XCIgXSxcblx0dHI6IFsgMiwgXCI8dGFibGU+PHRib2R5PlwiLCBcIjwvdGJvZHk+PC90YWJsZT5cIiBdLFxuXHR0ZDogWyAzLCBcIjx0YWJsZT48dGJvZHk+PHRyPlwiLCBcIjwvdHI+PC90Ym9keT48L3RhYmxlPlwiIF0sXG5cblx0X2RlZmF1bHQ6IFsgMCwgXCJcIiwgXCJcIiBdXG59O1xuXG53cmFwTWFwLnRib2R5ID0gd3JhcE1hcC50Zm9vdCA9IHdyYXBNYXAuY29sZ3JvdXAgPSB3cmFwTWFwLmNhcHRpb24gPSB3cmFwTWFwLnRoZWFkO1xud3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7XG5cbi8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5pZiAoICFzdXBwb3J0Lm9wdGlvbiApIHtcblx0d3JhcE1hcC5vcHRncm91cCA9IHdyYXBNYXAub3B0aW9uID0gWyAxLCBcIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz5cIiwgXCI8L3NlbGVjdD5cIiBdO1xufVxuXG5cbmZ1bmN0aW9uIGdldEFsbCggY29udGV4dCwgdGFnICkge1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0Ly8gVXNlIHR5cGVvZiB0byBhdm9pZCB6ZXJvLWFyZ3VtZW50IG1ldGhvZCBpbnZvY2F0aW9uIG9uIGhvc3Qgb2JqZWN0cyAodHJhYy0xNTE1MSlcblx0dmFyIHJldDtcblxuXHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICkge1xuXHRcdHJldCA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRhZyB8fCBcIipcIiApO1xuXG5cdH0gZWxzZSBpZiAoIHR5cGVvZiBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0cmV0ID0gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCB0YWcgfHwgXCIqXCIgKTtcblxuXHR9IGVsc2Uge1xuXHRcdHJldCA9IFtdO1xuXHR9XG5cblx0aWYgKCB0YWcgPT09IHVuZGVmaW5lZCB8fCB0YWcgJiYgbm9kZU5hbWUoIGNvbnRleHQsIHRhZyApICkge1xuXHRcdHJldHVybiBqUXVlcnkubWVyZ2UoIFsgY29udGV4dCBdLCByZXQgKTtcblx0fVxuXG5cdHJldHVybiByZXQ7XG59XG5cblxuLy8gTWFyayBzY3JpcHRzIGFzIGhhdmluZyBhbHJlYWR5IGJlZW4gZXZhbHVhdGVkXG5mdW5jdGlvbiBzZXRHbG9iYWxFdmFsKCBlbGVtcywgcmVmRWxlbWVudHMgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsID0gZWxlbXMubGVuZ3RoO1xuXG5cdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRkYXRhUHJpdi5zZXQoXG5cdFx0XHRlbGVtc1sgaSBdLFxuXHRcdFx0XCJnbG9iYWxFdmFsXCIsXG5cdFx0XHQhcmVmRWxlbWVudHMgfHwgZGF0YVByaXYuZ2V0KCByZWZFbGVtZW50c1sgaSBdLCBcImdsb2JhbEV2YWxcIiApXG5cdFx0KTtcblx0fVxufVxuXG5cbnZhciByaHRtbCA9IC88fCYjP1xcdys7LztcblxuZnVuY3Rpb24gYnVpbGRGcmFnbWVudCggZWxlbXMsIGNvbnRleHQsIHNjcmlwdHMsIHNlbGVjdGlvbiwgaWdub3JlZCApIHtcblx0dmFyIGVsZW0sIHRtcCwgdGFnLCB3cmFwLCBhdHRhY2hlZCwgaixcblx0XHRmcmFnbWVudCA9IGNvbnRleHQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLFxuXHRcdG5vZGVzID0gW10sXG5cdFx0aSA9IDAsXG5cdFx0bCA9IGVsZW1zLmxlbmd0aDtcblxuXHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0ZWxlbSA9IGVsZW1zWyBpIF07XG5cblx0XHRpZiAoIGVsZW0gfHwgZWxlbSA9PT0gMCApIHtcblxuXHRcdFx0Ly8gQWRkIG5vZGVzIGRpcmVjdGx5XG5cdFx0XHRpZiAoIHRvVHlwZSggZWxlbSApID09PSBcIm9iamVjdFwiICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seSwgUGhhbnRvbUpTIDEgb25seVxuXHRcdFx0XHQvLyBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdFx0XHRcdGpRdWVyeS5tZXJnZSggbm9kZXMsIGVsZW0ubm9kZVR5cGUgPyBbIGVsZW0gXSA6IGVsZW0gKTtcblxuXHRcdFx0Ly8gQ29udmVydCBub24taHRtbCBpbnRvIGEgdGV4dCBub2RlXG5cdFx0XHR9IGVsc2UgaWYgKCAhcmh0bWwudGVzdCggZWxlbSApICkge1xuXHRcdFx0XHRub2Rlcy5wdXNoKCBjb250ZXh0LmNyZWF0ZVRleHROb2RlKCBlbGVtICkgKTtcblxuXHRcdFx0Ly8gQ29udmVydCBodG1sIGludG8gRE9NIG5vZGVzXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0bXAgPSB0bXAgfHwgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoIGNvbnRleHQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApICk7XG5cblx0XHRcdFx0Ly8gRGVzZXJpYWxpemUgYSBzdGFuZGFyZCByZXByZXNlbnRhdGlvblxuXHRcdFx0XHR0YWcgPSAoIHJ0YWdOYW1lLmV4ZWMoIGVsZW0gKSB8fCBbIFwiXCIsIFwiXCIgXSApWyAxIF0udG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0d3JhcCA9IHdyYXBNYXBbIHRhZyBdIHx8IHdyYXBNYXAuX2RlZmF1bHQ7XG5cdFx0XHRcdHRtcC5pbm5lckhUTUwgPSB3cmFwWyAxIF0gKyBqUXVlcnkuaHRtbFByZWZpbHRlciggZWxlbSApICsgd3JhcFsgMiBdO1xuXG5cdFx0XHRcdC8vIERlc2NlbmQgdGhyb3VnaCB3cmFwcGVycyB0byB0aGUgcmlnaHQgY29udGVudFxuXHRcdFx0XHRqID0gd3JhcFsgMCBdO1xuXHRcdFx0XHR3aGlsZSAoIGotLSApIHtcblx0XHRcdFx0XHR0bXAgPSB0bXAubGFzdENoaWxkO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCBub2RlcywgdG1wLmNoaWxkTm9kZXMgKTtcblxuXHRcdFx0XHQvLyBSZW1lbWJlciB0aGUgdG9wLWxldmVsIGNvbnRhaW5lclxuXHRcdFx0XHR0bXAgPSBmcmFnbWVudC5maXJzdENoaWxkO1xuXG5cdFx0XHRcdC8vIEVuc3VyZSB0aGUgY3JlYXRlZCBub2RlcyBhcmUgb3JwaGFuZWQgKHRyYWMtMTIzOTIpXG5cdFx0XHRcdHRtcC50ZXh0Q29udGVudCA9IFwiXCI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmVtb3ZlIHdyYXBwZXIgZnJvbSBmcmFnbWVudFxuXHRmcmFnbWVudC50ZXh0Q29udGVudCA9IFwiXCI7XG5cblx0aSA9IDA7XG5cdHdoaWxlICggKCBlbGVtID0gbm9kZXNbIGkrKyBdICkgKSB7XG5cblx0XHQvLyBTa2lwIGVsZW1lbnRzIGFscmVhZHkgaW4gdGhlIGNvbnRleHQgY29sbGVjdGlvbiAodHJhYy00MDg3KVxuXHRcdGlmICggc2VsZWN0aW9uICYmIGpRdWVyeS5pbkFycmF5KCBlbGVtLCBzZWxlY3Rpb24gKSA+IC0xICkge1xuXHRcdFx0aWYgKCBpZ25vcmVkICkge1xuXHRcdFx0XHRpZ25vcmVkLnB1c2goIGVsZW0gKTtcblx0XHRcdH1cblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGF0dGFjaGVkID0gaXNBdHRhY2hlZCggZWxlbSApO1xuXG5cdFx0Ly8gQXBwZW5kIHRvIGZyYWdtZW50XG5cdFx0dG1wID0gZ2V0QWxsKCBmcmFnbWVudC5hcHBlbmRDaGlsZCggZWxlbSApLCBcInNjcmlwdFwiICk7XG5cblx0XHQvLyBQcmVzZXJ2ZSBzY3JpcHQgZXZhbHVhdGlvbiBoaXN0b3J5XG5cdFx0aWYgKCBhdHRhY2hlZCApIHtcblx0XHRcdHNldEdsb2JhbEV2YWwoIHRtcCApO1xuXHRcdH1cblxuXHRcdC8vIENhcHR1cmUgZXhlY3V0YWJsZXNcblx0XHRpZiAoIHNjcmlwdHMgKSB7XG5cdFx0XHRqID0gMDtcblx0XHRcdHdoaWxlICggKCBlbGVtID0gdG1wWyBqKysgXSApICkge1xuXHRcdFx0XHRpZiAoIHJzY3JpcHRUeXBlLnRlc3QoIGVsZW0udHlwZSB8fCBcIlwiICkgKSB7XG5cdFx0XHRcdFx0c2NyaXB0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZnJhZ21lbnQ7XG59XG5cblxudmFyIHJ0eXBlbmFtZXNwYWNlID0gL14oW14uXSopKD86XFwuKC4rKXwpLztcblxuZnVuY3Rpb24gcmV0dXJuVHJ1ZSgpIHtcblx0cmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJldHVybkZhbHNlKCkge1xuXHRyZXR1cm4gZmFsc2U7XG59XG5cbi8vIFN1cHBvcnQ6IElFIDw9OSAtIDExK1xuLy8gZm9jdXMoKSBhbmQgYmx1cigpIGFyZSBhc3luY2hyb25vdXMsIGV4Y2VwdCB3aGVuIHRoZXkgYXJlIG5vLW9wLlxuLy8gU28gZXhwZWN0IGZvY3VzIHRvIGJlIHN5bmNocm9ub3VzIHdoZW4gdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSBhY3RpdmUsXG4vLyBhbmQgYmx1ciB0byBiZSBzeW5jaHJvbm91cyB3aGVuIHRoZSBlbGVtZW50IGlzIG5vdCBhbHJlYWR5IGFjdGl2ZS5cbi8vIChmb2N1cyBhbmQgYmx1ciBhcmUgYWx3YXlzIHN5bmNocm9ub3VzIGluIG90aGVyIHN1cHBvcnRlZCBicm93c2Vycyxcbi8vIHRoaXMganVzdCBkZWZpbmVzIHdoZW4gd2UgY2FuIGNvdW50IG9uIGl0KS5cbmZ1bmN0aW9uIGV4cGVjdFN5bmMoIGVsZW0sIHR5cGUgKSB7XG5cdHJldHVybiAoIGVsZW0gPT09IHNhZmVBY3RpdmVFbGVtZW50KCkgKSA9PT0gKCB0eXBlID09PSBcImZvY3VzXCIgKTtcbn1cblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbi8vIEFjY2Vzc2luZyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGNhbiB0aHJvdyB1bmV4cGVjdGVkbHlcbi8vIGh0dHBzOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC8xMzM5M1xuZnVuY3Rpb24gc2FmZUFjdGl2ZUVsZW1lbnQoKSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cdH0gY2F0Y2ggKCBlcnIgKSB7IH1cbn1cblxuZnVuY3Rpb24gb24oIGVsZW0sIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIG9uZSApIHtcblx0dmFyIG9yaWdGbiwgdHlwZTtcblxuXHQvLyBUeXBlcyBjYW4gYmUgYSBtYXAgb2YgdHlwZXMvaGFuZGxlcnNcblx0aWYgKCB0eXBlb2YgdHlwZXMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyAoIHR5cGVzLU9iamVjdCwgc2VsZWN0b3IsIGRhdGEgKVxuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzLU9iamVjdCwgZGF0YSApXG5cdFx0XHRkYXRhID0gZGF0YSB8fCBzZWxlY3Rvcjtcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0b24oIGVsZW0sIHR5cGUsIHNlbGVjdG9yLCBkYXRhLCB0eXBlc1sgdHlwZSBdLCBvbmUgKTtcblx0XHR9XG5cdFx0cmV0dXJuIGVsZW07XG5cdH1cblxuXHRpZiAoIGRhdGEgPT0gbnVsbCAmJiBmbiA9PSBudWxsICkge1xuXG5cdFx0Ly8gKCB0eXBlcywgZm4gKVxuXHRcdGZuID0gc2VsZWN0b3I7XG5cdFx0ZGF0YSA9IHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHR9IGVsc2UgaWYgKCBmbiA9PSBudWxsICkge1xuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzLCBzZWxlY3RvciwgZm4gKVxuXHRcdFx0Zm4gPSBkYXRhO1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyAoIHR5cGVzLCBkYXRhLCBmbiApXG5cdFx0XHRmbiA9IGRhdGE7XG5cdFx0XHRkYXRhID0gc2VsZWN0b3I7XG5cdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0aWYgKCBmbiA9PT0gZmFsc2UgKSB7XG5cdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0fSBlbHNlIGlmICggIWZuICkge1xuXHRcdHJldHVybiBlbGVtO1xuXHR9XG5cblx0aWYgKCBvbmUgPT09IDEgKSB7XG5cdFx0b3JpZ0ZuID0gZm47XG5cdFx0Zm4gPSBmdW5jdGlvbiggZXZlbnQgKSB7XG5cblx0XHRcdC8vIENhbiB1c2UgYW4gZW1wdHkgc2V0LCBzaW5jZSBldmVudCBjb250YWlucyB0aGUgaW5mb1xuXHRcdFx0alF1ZXJ5KCkub2ZmKCBldmVudCApO1xuXHRcdFx0cmV0dXJuIG9yaWdGbi5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0fTtcblxuXHRcdC8vIFVzZSBzYW1lIGd1aWQgc28gY2FsbGVyIGNhbiByZW1vdmUgdXNpbmcgb3JpZ0ZuXG5cdFx0Zm4uZ3VpZCA9IG9yaWdGbi5ndWlkIHx8ICggb3JpZ0ZuLmd1aWQgPSBqUXVlcnkuZ3VpZCsrICk7XG5cdH1cblx0cmV0dXJuIGVsZW0uZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0alF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgdHlwZXMsIGZuLCBkYXRhLCBzZWxlY3RvciApO1xuXHR9ICk7XG59XG5cbi8qXG4gKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyBldmVudHMgLS0gbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuXG4gKiBQcm9wcyB0byBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkgZm9yIG1hbnkgb2YgdGhlIGlkZWFzLlxuICovXG5qUXVlcnkuZXZlbnQgPSB7XG5cblx0Z2xvYmFsOiB7fSxcblxuXHRhZGQ6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgZGF0YSwgc2VsZWN0b3IgKSB7XG5cblx0XHR2YXIgaGFuZGxlT2JqSW4sIGV2ZW50SGFuZGxlLCB0bXAsXG5cdFx0XHRldmVudHMsIHQsIGhhbmRsZU9iaixcblx0XHRcdHNwZWNpYWwsIGhhbmRsZXJzLCB0eXBlLCBuYW1lc3BhY2VzLCBvcmlnVHlwZSxcblx0XHRcdGVsZW1EYXRhID0gZGF0YVByaXYuZ2V0KCBlbGVtICk7XG5cblx0XHQvLyBPbmx5IGF0dGFjaCBldmVudHMgdG8gb2JqZWN0cyB0aGF0IGFjY2VwdCBkYXRhXG5cdFx0aWYgKCAhYWNjZXB0RGF0YSggZWxlbSApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIENhbGxlciBjYW4gcGFzcyBpbiBhbiBvYmplY3Qgb2YgY3VzdG9tIGRhdGEgaW4gbGlldSBvZiB0aGUgaGFuZGxlclxuXHRcdGlmICggaGFuZGxlci5oYW5kbGVyICkge1xuXHRcdFx0aGFuZGxlT2JqSW4gPSBoYW5kbGVyO1xuXHRcdFx0aGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7XG5cdFx0XHRzZWxlY3RvciA9IGhhbmRsZU9iakluLnNlbGVjdG9yO1xuXHRcdH1cblxuXHRcdC8vIEVuc3VyZSB0aGF0IGludmFsaWQgc2VsZWN0b3JzIHRocm93IGV4Y2VwdGlvbnMgYXQgYXR0YWNoIHRpbWVcblx0XHQvLyBFdmFsdWF0ZSBhZ2FpbnN0IGRvY3VtZW50RWxlbWVudCBpbiBjYXNlIGVsZW0gaXMgYSBub24tZWxlbWVudCBub2RlIChlLmcuLCBkb2N1bWVudClcblx0XHRpZiAoIHNlbGVjdG9yICkge1xuXHRcdFx0alF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBkb2N1bWVudEVsZW1lbnQsIHNlbGVjdG9yICk7XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIGhhbmRsZXIgaGFzIGEgdW5pcXVlIElELCB1c2VkIHRvIGZpbmQvcmVtb3ZlIGl0IGxhdGVyXG5cdFx0aWYgKCAhaGFuZGxlci5ndWlkICkge1xuXHRcdFx0aGFuZGxlci5ndWlkID0galF1ZXJ5Lmd1aWQrKztcblx0XHR9XG5cblx0XHQvLyBJbml0IHRoZSBlbGVtZW50J3MgZXZlbnQgc3RydWN0dXJlIGFuZCBtYWluIGhhbmRsZXIsIGlmIHRoaXMgaXMgdGhlIGZpcnN0XG5cdFx0aWYgKCAhKCBldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgKSApIHtcblx0XHRcdGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cyA9IE9iamVjdC5jcmVhdGUoIG51bGwgKTtcblx0XHR9XG5cdFx0aWYgKCAhKCBldmVudEhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZSApICkge1xuXHRcdFx0ZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGUgPSBmdW5jdGlvbiggZSApIHtcblxuXHRcdFx0XHQvLyBEaXNjYXJkIHRoZSBzZWNvbmQgZXZlbnQgb2YgYSBqUXVlcnkuZXZlbnQudHJpZ2dlcigpIGFuZFxuXHRcdFx0XHQvLyB3aGVuIGFuIGV2ZW50IGlzIGNhbGxlZCBhZnRlciBhIHBhZ2UgaGFzIHVubG9hZGVkXG5cdFx0XHRcdHJldHVybiB0eXBlb2YgalF1ZXJ5ICE9PSBcInVuZGVmaW5lZFwiICYmIGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgIT09IGUudHlwZSA/XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LmRpc3BhdGNoLmFwcGx5KCBlbGVtLCBhcmd1bWVudHMgKSA6IHVuZGVmaW5lZDtcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ly8gSGFuZGxlIG11bHRpcGxlIGV2ZW50cyBzZXBhcmF0ZWQgYnkgYSBzcGFjZVxuXHRcdHR5cGVzID0gKCB0eXBlcyB8fCBcIlwiICkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbIHQgXSApIHx8IFtdO1xuXHRcdFx0dHlwZSA9IG9yaWdUeXBlID0gdG1wWyAxIF07XG5cdFx0XHRuYW1lc3BhY2VzID0gKCB0bXBbIDIgXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBUaGVyZSAqbXVzdCogYmUgYSB0eXBlLCBubyBhdHRhY2hpbmcgbmFtZXNwYWNlLW9ubHkgaGFuZGxlcnNcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBldmVudCBjaGFuZ2VzIGl0cyB0eXBlLCB1c2UgdGhlIHNwZWNpYWwgZXZlbnQgaGFuZGxlcnMgZm9yIHRoZSBjaGFuZ2VkIHR5cGVcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXG5cdFx0XHQvLyBJZiBzZWxlY3RvciBkZWZpbmVkLCBkZXRlcm1pbmUgc3BlY2lhbCBldmVudCBhcGkgdHlwZSwgb3RoZXJ3aXNlIGdpdmVuIHR5cGVcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblxuXHRcdFx0Ly8gVXBkYXRlIHNwZWNpYWwgYmFzZWQgb24gbmV3bHkgcmVzZXQgdHlwZVxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cblx0XHRcdC8vIGhhbmRsZU9iaiBpcyBwYXNzZWQgdG8gYWxsIGV2ZW50IGhhbmRsZXJzXG5cdFx0XHRoYW5kbGVPYmogPSBqUXVlcnkuZXh0ZW5kKCB7XG5cdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdG9yaWdUeXBlOiBvcmlnVHlwZSxcblx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0aGFuZGxlcjogaGFuZGxlcixcblx0XHRcdFx0Z3VpZDogaGFuZGxlci5ndWlkLFxuXHRcdFx0XHRzZWxlY3Rvcjogc2VsZWN0b3IsXG5cdFx0XHRcdG5lZWRzQ29udGV4dDogc2VsZWN0b3IgJiYgalF1ZXJ5LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9yICksXG5cdFx0XHRcdG5hbWVzcGFjZTogbmFtZXNwYWNlcy5qb2luKCBcIi5cIiApXG5cdFx0XHR9LCBoYW5kbGVPYmpJbiApO1xuXG5cdFx0XHQvLyBJbml0IHRoZSBldmVudCBoYW5kbGVyIHF1ZXVlIGlmIHdlJ3JlIHRoZSBmaXJzdFxuXHRcdFx0aWYgKCAhKCBoYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdICkgKSB7XG5cdFx0XHRcdGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gPSBbXTtcblx0XHRcdFx0aGFuZGxlcnMuZGVsZWdhdGVDb3VudCA9IDA7XG5cblx0XHRcdFx0Ly8gT25seSB1c2UgYWRkRXZlbnRMaXN0ZW5lciBpZiB0aGUgc3BlY2lhbCBldmVudHMgaGFuZGxlciByZXR1cm5zIGZhbHNlXG5cdFx0XHRcdGlmICggIXNwZWNpYWwuc2V0dXAgfHxcblx0XHRcdFx0XHRzcGVjaWFsLnNldHVwLmNhbGwoIGVsZW0sIGRhdGEsIG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdFx0aWYgKCBlbGVtLmFkZEV2ZW50TGlzdGVuZXIgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIGV2ZW50SGFuZGxlICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggc3BlY2lhbC5hZGQgKSB7XG5cdFx0XHRcdHNwZWNpYWwuYWRkLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApO1xuXG5cdFx0XHRcdGlmICggIWhhbmRsZU9iai5oYW5kbGVyLmd1aWQgKSB7XG5cdFx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCA9IGhhbmRsZXIuZ3VpZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgdG8gdGhlIGVsZW1lbnQncyBoYW5kbGVyIGxpc3QsIGRlbGVnYXRlcyBpbiBmcm9udFxuXHRcdFx0aWYgKCBzZWxlY3RvciApIHtcblx0XHRcdFx0aGFuZGxlcnMuc3BsaWNlKCBoYW5kbGVycy5kZWxlZ2F0ZUNvdW50KyssIDAsIGhhbmRsZU9iaiApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aGFuZGxlcnMucHVzaCggaGFuZGxlT2JqICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEtlZXAgdHJhY2sgb2Ygd2hpY2ggZXZlbnRzIGhhdmUgZXZlciBiZWVuIHVzZWQsIGZvciBldmVudCBvcHRpbWl6YXRpb25cblx0XHRcdGpRdWVyeS5ldmVudC5nbG9iYWxbIHR5cGUgXSA9IHRydWU7XG5cdFx0fVxuXG5cdH0sXG5cblx0Ly8gRGV0YWNoIGFuIGV2ZW50IG9yIHNldCBvZiBldmVudHMgZnJvbSBhbiBlbGVtZW50XG5cdHJlbW92ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBzZWxlY3RvciwgbWFwcGVkVHlwZXMgKSB7XG5cblx0XHR2YXIgaiwgb3JpZ0NvdW50LCB0bXAsXG5cdFx0XHRldmVudHMsIHQsIGhhbmRsZU9iaixcblx0XHRcdHNwZWNpYWwsIGhhbmRsZXJzLCB0eXBlLCBuYW1lc3BhY2VzLCBvcmlnVHlwZSxcblx0XHRcdGVsZW1EYXRhID0gZGF0YVByaXYuaGFzRGF0YSggZWxlbSApICYmIGRhdGFQcml2LmdldCggZWxlbSApO1xuXG5cdFx0aWYgKCAhZWxlbURhdGEgfHwgISggZXZlbnRzID0gZWxlbURhdGEuZXZlbnRzICkgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gT25jZSBmb3IgZWFjaCB0eXBlLm5hbWVzcGFjZSBpbiB0eXBlczsgdHlwZSBtYXkgYmUgb21pdHRlZFxuXHRcdHR5cGVzID0gKCB0eXBlcyB8fCBcIlwiICkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbIHQgXSApIHx8IFtdO1xuXHRcdFx0dHlwZSA9IG9yaWdUeXBlID0gdG1wWyAxIF07XG5cdFx0XHRuYW1lc3BhY2VzID0gKCB0bXBbIDIgXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBVbmJpbmQgYWxsIGV2ZW50cyAob24gdGhpcyBuYW1lc3BhY2UsIGlmIHByb3ZpZGVkKSBmb3IgdGhlIGVsZW1lbnRcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGZvciAoIHR5cGUgaW4gZXZlbnRzICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKyB0eXBlc1sgdCBdLCBoYW5kbGVyLCBzZWxlY3RvciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblx0XHRcdGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gfHwgW107XG5cdFx0XHR0bXAgPSB0bXBbIDIgXSAmJlxuXHRcdFx0XHRuZXcgUmVnRXhwKCBcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5qb2luKCBcIlxcXFwuKD86LipcXFxcLnwpXCIgKSArIFwiKFxcXFwufCQpXCIgKTtcblxuXHRcdFx0Ly8gUmVtb3ZlIG1hdGNoaW5nIGV2ZW50c1xuXHRcdFx0b3JpZ0NvdW50ID0gaiA9IGhhbmRsZXJzLmxlbmd0aDtcblx0XHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0XHRoYW5kbGVPYmogPSBoYW5kbGVyc1sgaiBdO1xuXG5cdFx0XHRcdGlmICggKCBtYXBwZWRUeXBlcyB8fCBvcmlnVHlwZSA9PT0gaGFuZGxlT2JqLm9yaWdUeXBlICkgJiZcblx0XHRcdFx0XHQoICFoYW5kbGVyIHx8IGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSAmJlxuXHRcdFx0XHRcdCggIXRtcCB8fCB0bXAudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgJiZcblx0XHRcdFx0XHQoICFzZWxlY3RvciB8fCBzZWxlY3RvciA9PT0gaGFuZGxlT2JqLnNlbGVjdG9yIHx8XG5cdFx0XHRcdFx0XHRzZWxlY3RvciA9PT0gXCIqKlwiICYmIGhhbmRsZU9iai5zZWxlY3RvciApICkge1xuXHRcdFx0XHRcdGhhbmRsZXJzLnNwbGljZSggaiwgMSApO1xuXG5cdFx0XHRcdFx0aWYgKCBoYW5kbGVPYmouc2VsZWN0b3IgKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVycy5kZWxlZ2F0ZUNvdW50LS07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggc3BlY2lhbC5yZW1vdmUgKSB7XG5cdFx0XHRcdFx0XHRzcGVjaWFsLnJlbW92ZS5jYWxsKCBlbGVtLCBoYW5kbGVPYmogKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gUmVtb3ZlIGdlbmVyaWMgZXZlbnQgaGFuZGxlciBpZiB3ZSByZW1vdmVkIHNvbWV0aGluZyBhbmQgbm8gbW9yZSBoYW5kbGVycyBleGlzdFxuXHRcdFx0Ly8gKGF2b2lkcyBwb3RlbnRpYWwgZm9yIGVuZGxlc3MgcmVjdXJzaW9uIGR1cmluZyByZW1vdmFsIG9mIHNwZWNpYWwgZXZlbnQgaGFuZGxlcnMpXG5cdFx0XHRpZiAoIG9yaWdDb3VudCAmJiAhaGFuZGxlcnMubGVuZ3RoICkge1xuXHRcdFx0XHRpZiAoICFzcGVjaWFsLnRlYXJkb3duIHx8XG5cdFx0XHRcdFx0c3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBuYW1lc3BhY2VzLCBlbGVtRGF0YS5oYW5kbGUgKSA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGVsZW1EYXRhLmhhbmRsZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGVsZXRlIGV2ZW50c1sgdHlwZSBdO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJlbW92ZSBkYXRhIGFuZCB0aGUgZXhwYW5kbyBpZiBpdCdzIG5vIGxvbmdlciB1c2VkXG5cdFx0aWYgKCBqUXVlcnkuaXNFbXB0eU9iamVjdCggZXZlbnRzICkgKSB7XG5cdFx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIFwiaGFuZGxlIGV2ZW50c1wiICk7XG5cdFx0fVxuXHR9LFxuXG5cdGRpc3BhdGNoOiBmdW5jdGlvbiggbmF0aXZlRXZlbnQgKSB7XG5cblx0XHR2YXIgaSwgaiwgcmV0LCBtYXRjaGVkLCBoYW5kbGVPYmosIGhhbmRsZXJRdWV1ZSxcblx0XHRcdGFyZ3MgPSBuZXcgQXJyYXkoIGFyZ3VtZW50cy5sZW5ndGggKSxcblxuXHRcdFx0Ly8gTWFrZSBhIHdyaXRhYmxlIGpRdWVyeS5FdmVudCBmcm9tIHRoZSBuYXRpdmUgZXZlbnQgb2JqZWN0XG5cdFx0XHRldmVudCA9IGpRdWVyeS5ldmVudC5maXgoIG5hdGl2ZUV2ZW50ICksXG5cblx0XHRcdGhhbmRsZXJzID0gKFxuXHRcdFx0XHRkYXRhUHJpdi5nZXQoIHRoaXMsIFwiZXZlbnRzXCIgKSB8fCBPYmplY3QuY3JlYXRlKCBudWxsIClcblx0XHRcdClbIGV2ZW50LnR5cGUgXSB8fCBbXSxcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgZXZlbnQudHlwZSBdIHx8IHt9O1xuXG5cdFx0Ly8gVXNlIHRoZSBmaXgtZWQgalF1ZXJ5LkV2ZW50IHJhdGhlciB0aGFuIHRoZSAocmVhZC1vbmx5KSBuYXRpdmUgZXZlbnRcblx0XHRhcmdzWyAwIF0gPSBldmVudDtcblxuXHRcdGZvciAoIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrICkge1xuXHRcdFx0YXJnc1sgaSBdID0gYXJndW1lbnRzWyBpIF07XG5cdFx0fVxuXG5cdFx0ZXZlbnQuZGVsZWdhdGVUYXJnZXQgPSB0aGlzO1xuXG5cdFx0Ly8gQ2FsbCB0aGUgcHJlRGlzcGF0Y2ggaG9vayBmb3IgdGhlIG1hcHBlZCB0eXBlLCBhbmQgbGV0IGl0IGJhaWwgaWYgZGVzaXJlZFxuXHRcdGlmICggc3BlY2lhbC5wcmVEaXNwYXRjaCAmJiBzcGVjaWFsLnByZURpc3BhdGNoLmNhbGwoIHRoaXMsIGV2ZW50ICkgPT09IGZhbHNlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIERldGVybWluZSBoYW5kbGVyc1xuXHRcdGhhbmRsZXJRdWV1ZSA9IGpRdWVyeS5ldmVudC5oYW5kbGVycy5jYWxsKCB0aGlzLCBldmVudCwgaGFuZGxlcnMgKTtcblxuXHRcdC8vIFJ1biBkZWxlZ2F0ZXMgZmlyc3Q7IHRoZXkgbWF5IHdhbnQgdG8gc3RvcCBwcm9wYWdhdGlvbiBiZW5lYXRoIHVzXG5cdFx0aSA9IDA7XG5cdFx0d2hpbGUgKCAoIG1hdGNoZWQgPSBoYW5kbGVyUXVldWVbIGkrKyBdICkgJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRldmVudC5jdXJyZW50VGFyZ2V0ID0gbWF0Y2hlZC5lbGVtO1xuXG5cdFx0XHRqID0gMDtcblx0XHRcdHdoaWxlICggKCBoYW5kbGVPYmogPSBtYXRjaGVkLmhhbmRsZXJzWyBqKysgXSApICYmXG5cdFx0XHRcdCFldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXG5cdFx0XHRcdC8vIElmIHRoZSBldmVudCBpcyBuYW1lc3BhY2VkLCB0aGVuIGVhY2ggaGFuZGxlciBpcyBvbmx5IGludm9rZWQgaWYgaXQgaXNcblx0XHRcdFx0Ly8gc3BlY2lhbGx5IHVuaXZlcnNhbCBvciBpdHMgbmFtZXNwYWNlcyBhcmUgYSBzdXBlcnNldCBvZiB0aGUgZXZlbnQncy5cblx0XHRcdFx0aWYgKCAhZXZlbnQucm5hbWVzcGFjZSB8fCBoYW5kbGVPYmoubmFtZXNwYWNlID09PSBmYWxzZSB8fFxuXHRcdFx0XHRcdGV2ZW50LnJuYW1lc3BhY2UudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkge1xuXG5cdFx0XHRcdFx0ZXZlbnQuaGFuZGxlT2JqID0gaGFuZGxlT2JqO1xuXHRcdFx0XHRcdGV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTtcblxuXHRcdFx0XHRcdHJldCA9ICggKCBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgaGFuZGxlT2JqLm9yaWdUeXBlIF0gfHwge30gKS5oYW5kbGUgfHxcblx0XHRcdFx0XHRcdGhhbmRsZU9iai5oYW5kbGVyICkuYXBwbHkoIG1hdGNoZWQuZWxlbSwgYXJncyApO1xuXG5cdFx0XHRcdFx0aWYgKCByZXQgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdGlmICggKCBldmVudC5yZXN1bHQgPSByZXQgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhbGwgdGhlIHBvc3REaXNwYXRjaCBob29rIGZvciB0aGUgbWFwcGVkIHR5cGVcblx0XHRpZiAoIHNwZWNpYWwucG9zdERpc3BhdGNoICkge1xuXHRcdFx0c3BlY2lhbC5wb3N0RGlzcGF0Y2guY2FsbCggdGhpcywgZXZlbnQgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZXZlbnQucmVzdWx0O1xuXHR9LFxuXG5cdGhhbmRsZXJzOiBmdW5jdGlvbiggZXZlbnQsIGhhbmRsZXJzICkge1xuXHRcdHZhciBpLCBoYW5kbGVPYmosIHNlbCwgbWF0Y2hlZEhhbmRsZXJzLCBtYXRjaGVkU2VsZWN0b3JzLFxuXHRcdFx0aGFuZGxlclF1ZXVlID0gW10sXG5cdFx0XHRkZWxlZ2F0ZUNvdW50ID0gaGFuZGxlcnMuZGVsZWdhdGVDb3VudCxcblx0XHRcdGN1ciA9IGV2ZW50LnRhcmdldDtcblxuXHRcdC8vIEZpbmQgZGVsZWdhdGUgaGFuZGxlcnNcblx0XHRpZiAoIGRlbGVnYXRlQ291bnQgJiZcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05XG5cdFx0XHQvLyBCbGFjay1ob2xlIFNWRyA8dXNlPiBpbnN0YW5jZSB0cmVlcyAodHJhYy0xMzE4MClcblx0XHRcdGN1ci5ub2RlVHlwZSAmJlxuXG5cdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NDJcblx0XHRcdC8vIFN1cHByZXNzIHNwZWMtdmlvbGF0aW5nIGNsaWNrcyBpbmRpY2F0aW5nIGEgbm9uLXByaW1hcnkgcG9pbnRlciBidXR0b24gKHRyYWMtMzg2MSlcblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50LXR5cGUtY2xpY2tcblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExIG9ubHlcblx0XHRcdC8vIC4uLmJ1dCBub3QgYXJyb3cga2V5IFwiY2xpY2tzXCIgb2YgcmFkaW8gaW5wdXRzLCB3aGljaCBjYW4gaGF2ZSBgYnV0dG9uYCAtMSAoZ2gtMjM0Mylcblx0XHRcdCEoIGV2ZW50LnR5cGUgPT09IFwiY2xpY2tcIiAmJiBldmVudC5idXR0b24gPj0gMSApICkge1xuXG5cdFx0XHRmb3IgKCA7IGN1ciAhPT0gdGhpczsgY3VyID0gY3VyLnBhcmVudE5vZGUgfHwgdGhpcyApIHtcblxuXHRcdFx0XHQvLyBEb24ndCBjaGVjayBub24tZWxlbWVudHMgKHRyYWMtMTMyMDgpXG5cdFx0XHRcdC8vIERvbid0IHByb2Nlc3MgY2xpY2tzIG9uIGRpc2FibGVkIGVsZW1lbnRzICh0cmFjLTY5MTEsIHRyYWMtODE2NSwgdHJhYy0xMTM4MiwgdHJhYy0xMTc2NClcblx0XHRcdFx0aWYgKCBjdXIubm9kZVR5cGUgPT09IDEgJiYgISggZXZlbnQudHlwZSA9PT0gXCJjbGlja1wiICYmIGN1ci5kaXNhYmxlZCA9PT0gdHJ1ZSApICkge1xuXHRcdFx0XHRcdG1hdGNoZWRIYW5kbGVycyA9IFtdO1xuXHRcdFx0XHRcdG1hdGNoZWRTZWxlY3RvcnMgPSB7fTtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGRlbGVnYXRlQ291bnQ7IGkrKyApIHtcblx0XHRcdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBpIF07XG5cblx0XHRcdFx0XHRcdC8vIERvbid0IGNvbmZsaWN0IHdpdGggT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzICh0cmFjLTEzMjAzKVxuXHRcdFx0XHRcdFx0c2VsID0gaGFuZGxlT2JqLnNlbGVjdG9yICsgXCIgXCI7XG5cblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlZFNlbGVjdG9yc1sgc2VsIF0gPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZFNlbGVjdG9yc1sgc2VsIF0gPSBoYW5kbGVPYmoubmVlZHNDb250ZXh0ID9cblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkoIHNlbCwgdGhpcyApLmluZGV4KCBjdXIgKSA+IC0xIDpcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZCggc2VsLCB0aGlzLCBudWxsLCBbIGN1ciBdICkubGVuZ3RoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVkU2VsZWN0b3JzWyBzZWwgXSApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZEhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRIYW5kbGVycy5sZW5ndGggKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVyUXVldWUucHVzaCggeyBlbGVtOiBjdXIsIGhhbmRsZXJzOiBtYXRjaGVkSGFuZGxlcnMgfSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEFkZCB0aGUgcmVtYWluaW5nIChkaXJlY3RseS1ib3VuZCkgaGFuZGxlcnNcblx0XHRjdXIgPSB0aGlzO1xuXHRcdGlmICggZGVsZWdhdGVDb3VudCA8IGhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdGhhbmRsZXJRdWV1ZS5wdXNoKCB7IGVsZW06IGN1ciwgaGFuZGxlcnM6IGhhbmRsZXJzLnNsaWNlKCBkZWxlZ2F0ZUNvdW50ICkgfSApO1xuXHRcdH1cblxuXHRcdHJldHVybiBoYW5kbGVyUXVldWU7XG5cdH0sXG5cblx0YWRkUHJvcDogZnVuY3Rpb24oIG5hbWUsIGhvb2sgKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KCBqUXVlcnkuRXZlbnQucHJvdG90eXBlLCBuYW1lLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXG5cdFx0XHRnZXQ6IGlzRnVuY3Rpb24oIGhvb2sgKSA/XG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGhvb2soIHRoaXMub3JpZ2luYWxFdmVudCApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSA6XG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFsgbmFtZSBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblxuXHRcdFx0c2V0OiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggdGhpcywgbmFtZSwge1xuXHRcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHdyaXRhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHZhbHVlOiB2YWx1ZVxuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGZpeDogZnVuY3Rpb24oIG9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0cmV0dXJuIG9yaWdpbmFsRXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gP1xuXHRcdFx0b3JpZ2luYWxFdmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7XG5cdH0sXG5cblx0c3BlY2lhbDoge1xuXHRcdGxvYWQ6IHtcblxuXHRcdFx0Ly8gUHJldmVudCB0cmlnZ2VyZWQgaW1hZ2UubG9hZCBldmVudHMgZnJvbSBidWJibGluZyB0byB3aW5kb3cubG9hZFxuXHRcdFx0bm9CdWJibGU6IHRydWVcblx0XHR9LFxuXHRcdGNsaWNrOiB7XG5cblx0XHRcdC8vIFV0aWxpemUgbmF0aXZlIGV2ZW50IHRvIGVuc3VyZSBjb3JyZWN0IHN0YXRlIGZvciBjaGVja2FibGUgaW5wdXRzXG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oIGRhdGEgKSB7XG5cblx0XHRcdFx0Ly8gRm9yIG11dHVhbCBjb21wcmVzc2liaWxpdHkgd2l0aCBfZGVmYXVsdCwgcmVwbGFjZSBgdGhpc2AgYWNjZXNzIHdpdGggYSBsb2NhbCB2YXIuXG5cdFx0XHRcdC8vIGB8fCBkYXRhYCBpcyBkZWFkIGNvZGUgbWVhbnQgb25seSB0byBwcmVzZXJ2ZSB0aGUgdmFyaWFibGUgdGhyb3VnaCBtaW5pZmljYXRpb24uXG5cdFx0XHRcdHZhciBlbCA9IHRoaXMgfHwgZGF0YTtcblxuXHRcdFx0XHQvLyBDbGFpbSB0aGUgZmlyc3QgaGFuZGxlclxuXHRcdFx0XHRpZiAoIHJjaGVja2FibGVUeXBlLnRlc3QoIGVsLnR5cGUgKSAmJlxuXHRcdFx0XHRcdGVsLmNsaWNrICYmIG5vZGVOYW1lKCBlbCwgXCJpbnB1dFwiICkgKSB7XG5cblx0XHRcdFx0XHQvLyBkYXRhUHJpdi5zZXQoIGVsLCBcImNsaWNrXCIsIC4uLiApXG5cdFx0XHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIGVsLCBcImNsaWNrXCIsIHJldHVyblRydWUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZyBpbiB0aGUgY2FsbGVyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0sXG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbiggZGF0YSApIHtcblxuXHRcdFx0XHQvLyBGb3IgbXV0dWFsIGNvbXByZXNzaWJpbGl0eSB3aXRoIF9kZWZhdWx0LCByZXBsYWNlIGB0aGlzYCBhY2Nlc3Mgd2l0aCBhIGxvY2FsIHZhci5cblx0XHRcdFx0Ly8gYHx8IGRhdGFgIGlzIGRlYWQgY29kZSBtZWFudCBvbmx5IHRvIHByZXNlcnZlIHRoZSB2YXJpYWJsZSB0aHJvdWdoIG1pbmlmaWNhdGlvbi5cblx0XHRcdFx0dmFyIGVsID0gdGhpcyB8fCBkYXRhO1xuXG5cdFx0XHRcdC8vIEZvcmNlIHNldHVwIGJlZm9yZSB0cmlnZ2VyaW5nIGEgY2xpY2tcblx0XHRcdFx0aWYgKCByY2hlY2thYmxlVHlwZS50ZXN0KCBlbC50eXBlICkgJiZcblx0XHRcdFx0XHRlbC5jbGljayAmJiBub2RlTmFtZSggZWwsIFwiaW5wdXRcIiApICkge1xuXG5cdFx0XHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIGVsLCBcImNsaWNrXCIgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJldHVybiBub24tZmFsc2UgdG8gYWxsb3cgbm9ybWFsIGV2ZW50LXBhdGggcHJvcGFnYXRpb25cblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBGb3IgY3Jvc3MtYnJvd3NlciBjb25zaXN0ZW5jeSwgc3VwcHJlc3MgbmF0aXZlIC5jbGljaygpIG9uIGxpbmtzXG5cdFx0XHQvLyBBbHNvIHByZXZlbnQgaXQgaWYgd2UncmUgY3VycmVudGx5IGluc2lkZSBhIGxldmVyYWdlZCBuYXRpdmUtZXZlbnQgc3RhY2tcblx0XHRcdF9kZWZhdWx0OiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG5cdFx0XHRcdHJldHVybiByY2hlY2thYmxlVHlwZS50ZXN0KCB0YXJnZXQudHlwZSApICYmXG5cdFx0XHRcdFx0dGFyZ2V0LmNsaWNrICYmIG5vZGVOYW1lKCB0YXJnZXQsIFwiaW5wdXRcIiApICYmXG5cdFx0XHRcdFx0ZGF0YVByaXYuZ2V0KCB0YXJnZXQsIFwiY2xpY2tcIiApIHx8XG5cdFx0XHRcdFx0bm9kZU5hbWUoIHRhcmdldCwgXCJhXCIgKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0YmVmb3JldW5sb2FkOiB7XG5cdFx0XHRwb3N0RGlzcGF0Y2g6IGZ1bmN0aW9uKCBldmVudCApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDIwK1xuXHRcdFx0XHQvLyBGaXJlZm94IGRvZXNuJ3QgYWxlcnQgaWYgdGhlIHJldHVyblZhbHVlIGZpZWxkIGlzIG5vdCBzZXQuXG5cdFx0XHRcdGlmICggZXZlbnQucmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgZXZlbnQub3JpZ2luYWxFdmVudCApIHtcblx0XHRcdFx0XHRldmVudC5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlID0gZXZlbnQucmVzdWx0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59O1xuXG4vLyBFbnN1cmUgdGhlIHByZXNlbmNlIG9mIGFuIGV2ZW50IGxpc3RlbmVyIHRoYXQgaGFuZGxlcyBtYW51YWxseS10cmlnZ2VyZWRcbi8vIHN5bnRoZXRpYyBldmVudHMgYnkgaW50ZXJydXB0aW5nIHByb2dyZXNzIHVudGlsIHJlaW52b2tlZCBpbiByZXNwb25zZSB0b1xuLy8gKm5hdGl2ZSogZXZlbnRzIHRoYXQgaXQgZmlyZXMgZGlyZWN0bHksIGVuc3VyaW5nIHRoYXQgc3RhdGUgY2hhbmdlcyBoYXZlXG4vLyBhbHJlYWR5IG9jY3VycmVkIGJlZm9yZSBvdGhlciBsaXN0ZW5lcnMgYXJlIGludm9rZWQuXG5mdW5jdGlvbiBsZXZlcmFnZU5hdGl2ZSggZWwsIHR5cGUsIGV4cGVjdFN5bmMgKSB7XG5cblx0Ly8gTWlzc2luZyBleHBlY3RTeW5jIGluZGljYXRlcyBhIHRyaWdnZXIgY2FsbCwgd2hpY2ggbXVzdCBmb3JjZSBzZXR1cCB0aHJvdWdoIGpRdWVyeS5ldmVudC5hZGRcblx0aWYgKCAhZXhwZWN0U3luYyApIHtcblx0XHRpZiAoIGRhdGFQcml2LmdldCggZWwsIHR5cGUgKSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LmFkZCggZWwsIHR5cGUsIHJldHVyblRydWUgKTtcblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Ly8gUmVnaXN0ZXIgdGhlIGNvbnRyb2xsZXIgYXMgYSBzcGVjaWFsIHVuaXZlcnNhbCBoYW5kbGVyIGZvciBhbGwgZXZlbnQgbmFtZXNwYWNlc1xuXHRkYXRhUHJpdi5zZXQoIGVsLCB0eXBlLCBmYWxzZSApO1xuXHRqUXVlcnkuZXZlbnQuYWRkKCBlbCwgdHlwZSwge1xuXHRcdG5hbWVzcGFjZTogZmFsc2UsXG5cdFx0aGFuZGxlcjogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0dmFyIG5vdEFzeW5jLCByZXN1bHQsXG5cdFx0XHRcdHNhdmVkID0gZGF0YVByaXYuZ2V0KCB0aGlzLCB0eXBlICk7XG5cblx0XHRcdGlmICggKCBldmVudC5pc1RyaWdnZXIgJiAxICkgJiYgdGhpc1sgdHlwZSBdICkge1xuXG5cdFx0XHRcdC8vIEludGVycnVwdCBwcm9jZXNzaW5nIG9mIHRoZSBvdXRlciBzeW50aGV0aWMgLnRyaWdnZXIoKWVkIGV2ZW50XG5cdFx0XHRcdC8vIFNhdmVkIGRhdGEgc2hvdWxkIGJlIGZhbHNlIGluIHN1Y2ggY2FzZXMsIGJ1dCBtaWdodCBiZSBhIGxlZnRvdmVyIGNhcHR1cmUgb2JqZWN0XG5cdFx0XHRcdC8vIGZyb20gYW4gYXN5bmMgbmF0aXZlIGhhbmRsZXIgKGdoLTQzNTApXG5cdFx0XHRcdGlmICggIXNhdmVkLmxlbmd0aCApIHtcblxuXHRcdFx0XHRcdC8vIFN0b3JlIGFyZ3VtZW50cyBmb3IgdXNlIHdoZW4gaGFuZGxpbmcgdGhlIGlubmVyIG5hdGl2ZSBldmVudFxuXHRcdFx0XHRcdC8vIFRoZXJlIHdpbGwgYWx3YXlzIGJlIGF0IGxlYXN0IG9uZSBhcmd1bWVudCAoYW4gZXZlbnQgb2JqZWN0KSwgc28gdGhpcyBhcnJheVxuXHRcdFx0XHRcdC8vIHdpbGwgbm90IGJlIGNvbmZ1c2VkIHdpdGggYSBsZWZ0b3ZlciBjYXB0dXJlIG9iamVjdC5cblx0XHRcdFx0XHRzYXZlZCA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgdHlwZSwgc2F2ZWQgKTtcblxuXHRcdFx0XHRcdC8vIFRyaWdnZXIgdGhlIG5hdGl2ZSBldmVudCBhbmQgY2FwdHVyZSBpdHMgcmVzdWx0XG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTErXG5cdFx0XHRcdFx0Ly8gZm9jdXMoKSBhbmQgYmx1cigpIGFyZSBhc3luY2hyb25vdXNcblx0XHRcdFx0XHRub3RBc3luYyA9IGV4cGVjdFN5bmMoIHRoaXMsIHR5cGUgKTtcblx0XHRcdFx0XHR0aGlzWyB0eXBlIF0oKTtcblx0XHRcdFx0XHRyZXN1bHQgPSBkYXRhUHJpdi5nZXQoIHRoaXMsIHR5cGUgKTtcblx0XHRcdFx0XHRpZiAoIHNhdmVkICE9PSByZXN1bHQgfHwgbm90QXN5bmMgKSB7XG5cdFx0XHRcdFx0XHRkYXRhUHJpdi5zZXQoIHRoaXMsIHR5cGUsIGZhbHNlICk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJlc3VsdCA9IHt9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIHNhdmVkICE9PSByZXN1bHQgKSB7XG5cblx0XHRcdFx0XHRcdC8vIENhbmNlbCB0aGUgb3V0ZXIgc3ludGhldGljIGV2ZW50XG5cdFx0XHRcdFx0XHRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA4Nitcblx0XHRcdFx0XHRcdC8vIEluIENocm9tZSwgaWYgYW4gZWxlbWVudCBoYXZpbmcgYSBmb2N1c291dCBoYW5kbGVyIGlzIGJsdXJyZWQgYnlcblx0XHRcdFx0XHRcdC8vIGNsaWNraW5nIG91dHNpZGUgb2YgaXQsIGl0IGludm9rZXMgdGhlIGhhbmRsZXIgc3luY2hyb25vdXNseS4gSWZcblx0XHRcdFx0XHRcdC8vIHRoYXQgaGFuZGxlciBjYWxscyBgLnJlbW92ZSgpYCBvbiB0aGUgZWxlbWVudCwgdGhlIGRhdGEgaXMgY2xlYXJlZCxcblx0XHRcdFx0XHRcdC8vIGxlYXZpbmcgYHJlc3VsdGAgdW5kZWZpbmVkLiBXZSBuZWVkIHRvIGd1YXJkIGFnYWluc3QgdGhpcy5cblx0XHRcdFx0XHRcdHJldHVybiByZXN1bHQgJiYgcmVzdWx0LnZhbHVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBJZiB0aGlzIGlzIGFuIGlubmVyIHN5bnRoZXRpYyBldmVudCBmb3IgYW4gZXZlbnQgd2l0aCBhIGJ1YmJsaW5nIHN1cnJvZ2F0ZVxuXHRcdFx0XHQvLyAoZm9jdXMgb3IgYmx1ciksIGFzc3VtZSB0aGF0IHRoZSBzdXJyb2dhdGUgYWxyZWFkeSBwcm9wYWdhdGVkIGZyb20gdHJpZ2dlcmluZyB0aGVcblx0XHRcdFx0Ly8gbmF0aXZlIGV2ZW50IGFuZCBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcgYWdhaW4gaGVyZS5cblx0XHRcdFx0Ly8gVGhpcyB0ZWNobmljYWxseSBnZXRzIHRoZSBvcmRlcmluZyB3cm9uZyB3LnIudC4gdG8gYC50cmlnZ2VyKClgIChpbiB3aGljaCB0aGVcblx0XHRcdFx0Ly8gYnViYmxpbmcgc3Vycm9nYXRlIHByb3BhZ2F0ZXMgKmFmdGVyKiB0aGUgbm9uLWJ1YmJsaW5nIGJhc2UpLCBidXQgdGhhdCBzZWVtc1xuXHRcdFx0XHQvLyBsZXNzIGJhZCB0aGFuIGR1cGxpY2F0aW9uLlxuXHRcdFx0XHR9IGVsc2UgaWYgKCAoIGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge30gKS5kZWxlZ2F0ZVR5cGUgKSB7XG5cdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgdGhpcyBpcyBhIG5hdGl2ZSBldmVudCB0cmlnZ2VyZWQgYWJvdmUsIGV2ZXJ5dGhpbmcgaXMgbm93IGluIG9yZGVyXG5cdFx0XHQvLyBGaXJlIGFuIGlubmVyIHN5bnRoZXRpYyBldmVudCB3aXRoIHRoZSBvcmlnaW5hbCBhcmd1bWVudHNcblx0XHRcdH0gZWxzZSBpZiAoIHNhdmVkLmxlbmd0aCApIHtcblxuXHRcdFx0XHQvLyAuLi5hbmQgY2FwdHVyZSB0aGUgcmVzdWx0XG5cdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgdHlwZSwge1xuXHRcdFx0XHRcdHZhbHVlOiBqUXVlcnkuZXZlbnQudHJpZ2dlcihcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTErXG5cdFx0XHRcdFx0XHQvLyBFeHRlbmQgd2l0aCB0aGUgcHJvdG90eXBlIHRvIHJlc2V0IHRoZSBhYm92ZSBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuXHRcdFx0XHRcdFx0alF1ZXJ5LmV4dGVuZCggc2F2ZWRbIDAgXSwgalF1ZXJ5LkV2ZW50LnByb3RvdHlwZSApLFxuXHRcdFx0XHRcdFx0c2F2ZWQuc2xpY2UoIDEgKSxcblx0XHRcdFx0XHRcdHRoaXNcblx0XHRcdFx0XHQpXG5cdFx0XHRcdH0gKTtcblxuXHRcdFx0XHQvLyBBYm9ydCBoYW5kbGluZyBvZiB0aGUgbmF0aXZlIGV2ZW50XG5cdFx0XHRcdGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSApO1xufVxuXG5qUXVlcnkucmVtb3ZlRXZlbnQgPSBmdW5jdGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkge1xuXG5cdC8vIFRoaXMgXCJpZlwiIGlzIG5lZWRlZCBmb3IgcGxhaW4gb2JqZWN0c1xuXHRpZiAoIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciApIHtcblx0XHRlbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoIHR5cGUsIGhhbmRsZSApO1xuXHR9XG59O1xuXG5qUXVlcnkuRXZlbnQgPSBmdW5jdGlvbiggc3JjLCBwcm9wcyApIHtcblxuXHQvLyBBbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgdGhlICduZXcnIGtleXdvcmRcblx0aWYgKCAhKCB0aGlzIGluc3RhbmNlb2YgalF1ZXJ5LkV2ZW50ICkgKSB7XG5cdFx0cmV0dXJuIG5ldyBqUXVlcnkuRXZlbnQoIHNyYywgcHJvcHMgKTtcblx0fVxuXG5cdC8vIEV2ZW50IG9iamVjdFxuXHRpZiAoIHNyYyAmJiBzcmMudHlwZSApIHtcblx0XHR0aGlzLm9yaWdpbmFsRXZlbnQgPSBzcmM7XG5cdFx0dGhpcy50eXBlID0gc3JjLnR5cGU7XG5cblx0XHQvLyBFdmVudHMgYnViYmxpbmcgdXAgdGhlIGRvY3VtZW50IG1heSBoYXZlIGJlZW4gbWFya2VkIGFzIHByZXZlbnRlZFxuXHRcdC8vIGJ5IGEgaGFuZGxlciBsb3dlciBkb3duIHRoZSB0cmVlOyByZWZsZWN0IHRoZSBjb3JyZWN0IHZhbHVlLlxuXHRcdHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gc3JjLmRlZmF1bHRQcmV2ZW50ZWQgfHxcblx0XHRcdFx0c3JjLmRlZmF1bHRQcmV2ZW50ZWQgPT09IHVuZGVmaW5lZCAmJlxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD0yLjMgb25seVxuXHRcdFx0XHRzcmMucmV0dXJuVmFsdWUgPT09IGZhbHNlID9cblx0XHRcdHJldHVyblRydWUgOlxuXHRcdFx0cmV0dXJuRmFsc2U7XG5cblx0XHQvLyBDcmVhdGUgdGFyZ2V0IHByb3BlcnRpZXNcblx0XHQvLyBTdXBwb3J0OiBTYWZhcmkgPD02IC0gNyBvbmx5XG5cdFx0Ly8gVGFyZ2V0IHNob3VsZCBub3QgYmUgYSB0ZXh0IG5vZGUgKHRyYWMtNTA0LCB0cmFjLTEzMTQzKVxuXHRcdHRoaXMudGFyZ2V0ID0gKCBzcmMudGFyZ2V0ICYmIHNyYy50YXJnZXQubm9kZVR5cGUgPT09IDMgKSA/XG5cdFx0XHRzcmMudGFyZ2V0LnBhcmVudE5vZGUgOlxuXHRcdFx0c3JjLnRhcmdldDtcblxuXHRcdHRoaXMuY3VycmVudFRhcmdldCA9IHNyYy5jdXJyZW50VGFyZ2V0O1xuXHRcdHRoaXMucmVsYXRlZFRhcmdldCA9IHNyYy5yZWxhdGVkVGFyZ2V0O1xuXG5cdC8vIEV2ZW50IHR5cGVcblx0fSBlbHNlIHtcblx0XHR0aGlzLnR5cGUgPSBzcmM7XG5cdH1cblxuXHQvLyBQdXQgZXhwbGljaXRseSBwcm92aWRlZCBwcm9wZXJ0aWVzIG9udG8gdGhlIGV2ZW50IG9iamVjdFxuXHRpZiAoIHByb3BzICkge1xuXHRcdGpRdWVyeS5leHRlbmQoIHRoaXMsIHByb3BzICk7XG5cdH1cblxuXHQvLyBDcmVhdGUgYSB0aW1lc3RhbXAgaWYgaW5jb21pbmcgZXZlbnQgZG9lc24ndCBoYXZlIG9uZVxuXHR0aGlzLnRpbWVTdGFtcCA9IHNyYyAmJiBzcmMudGltZVN0YW1wIHx8IERhdGUubm93KCk7XG5cblx0Ly8gTWFyayBpdCBhcyBmaXhlZFxuXHR0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTtcbn07XG5cbi8vIGpRdWVyeS5FdmVudCBpcyBiYXNlZCBvbiBET00zIEV2ZW50cyBhcyBzcGVjaWZpZWQgYnkgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgQmluZGluZ1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2NyaXB0LWJpbmRpbmcuaHRtbFxualF1ZXJ5LkV2ZW50LnByb3RvdHlwZSA9IHtcblx0Y29uc3RydWN0b3I6IGpRdWVyeS5FdmVudCxcblx0aXNEZWZhdWx0UHJldmVudGVkOiByZXR1cm5GYWxzZSxcblx0aXNQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlLFxuXHRpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXG5cdGlzU2ltdWxhdGVkOiBmYWxzZSxcblxuXHRwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgIXRoaXMuaXNTaW11bGF0ZWQgKSB7XG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9LFxuXHRzdG9wUHJvcGFnYXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50O1xuXG5cdFx0dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgIXRoaXMuaXNTaW11bGF0ZWQgKSB7XG5cdFx0XHRlLnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdH1cblx0fSxcblx0c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcblxuXHRcdHRoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQgPSByZXR1cm5UcnVlO1xuXG5cdFx0aWYgKCBlICYmICF0aGlzLmlzU2ltdWxhdGVkICkge1xuXHRcdFx0ZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblx0XHR9XG5cblx0XHR0aGlzLnN0b3BQcm9wYWdhdGlvbigpO1xuXHR9XG59O1xuXG4vLyBJbmNsdWRlcyBhbGwgY29tbW9uIGV2ZW50IHByb3BzIGluY2x1ZGluZyBLZXlFdmVudCBhbmQgTW91c2VFdmVudCBzcGVjaWZpYyBwcm9wc1xualF1ZXJ5LmVhY2goIHtcblx0YWx0S2V5OiB0cnVlLFxuXHRidWJibGVzOiB0cnVlLFxuXHRjYW5jZWxhYmxlOiB0cnVlLFxuXHRjaGFuZ2VkVG91Y2hlczogdHJ1ZSxcblx0Y3RybEtleTogdHJ1ZSxcblx0ZGV0YWlsOiB0cnVlLFxuXHRldmVudFBoYXNlOiB0cnVlLFxuXHRtZXRhS2V5OiB0cnVlLFxuXHRwYWdlWDogdHJ1ZSxcblx0cGFnZVk6IHRydWUsXG5cdHNoaWZ0S2V5OiB0cnVlLFxuXHR2aWV3OiB0cnVlLFxuXHRcImNoYXJcIjogdHJ1ZSxcblx0Y29kZTogdHJ1ZSxcblx0Y2hhckNvZGU6IHRydWUsXG5cdGtleTogdHJ1ZSxcblx0a2V5Q29kZTogdHJ1ZSxcblx0YnV0dG9uOiB0cnVlLFxuXHRidXR0b25zOiB0cnVlLFxuXHRjbGllbnRYOiB0cnVlLFxuXHRjbGllbnRZOiB0cnVlLFxuXHRvZmZzZXRYOiB0cnVlLFxuXHRvZmZzZXRZOiB0cnVlLFxuXHRwb2ludGVySWQ6IHRydWUsXG5cdHBvaW50ZXJUeXBlOiB0cnVlLFxuXHRzY3JlZW5YOiB0cnVlLFxuXHRzY3JlZW5ZOiB0cnVlLFxuXHR0YXJnZXRUb3VjaGVzOiB0cnVlLFxuXHR0b0VsZW1lbnQ6IHRydWUsXG5cdHRvdWNoZXM6IHRydWUsXG5cdHdoaWNoOiB0cnVlXG59LCBqUXVlcnkuZXZlbnQuYWRkUHJvcCApO1xuXG5qUXVlcnkuZWFjaCggeyBmb2N1czogXCJmb2N1c2luXCIsIGJsdXI6IFwiZm9jdXNvdXRcIiB9LCBmdW5jdGlvbiggdHlwZSwgZGVsZWdhdGVUeXBlICkge1xuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdID0ge1xuXG5cdFx0Ly8gVXRpbGl6ZSBuYXRpdmUgZXZlbnQgaWYgcG9zc2libGUgc28gYmx1ci9mb2N1cyBzZXF1ZW5jZSBpcyBjb3JyZWN0XG5cdFx0c2V0dXA6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBDbGFpbSB0aGUgZmlyc3QgaGFuZGxlclxuXHRcdFx0Ly8gZGF0YVByaXYuc2V0KCB0aGlzLCBcImZvY3VzXCIsIC4uLiApXG5cdFx0XHQvLyBkYXRhUHJpdi5zZXQoIHRoaXMsIFwiYmx1clwiLCAuLi4gKVxuXHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIHRoaXMsIHR5cGUsIGV4cGVjdFN5bmMgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIGZhbHNlIHRvIGFsbG93IG5vcm1hbCBwcm9jZXNzaW5nIGluIHRoZSBjYWxsZXJcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9LFxuXHRcdHRyaWdnZXI6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBGb3JjZSBzZXR1cCBiZWZvcmUgdHJpZ2dlclxuXHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIHRoaXMsIHR5cGUgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIG5vbi1mYWxzZSB0byBhbGxvdyBub3JtYWwgZXZlbnQtcGF0aCBwcm9wYWdhdGlvblxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdC8vIFN1cHByZXNzIG5hdGl2ZSBmb2N1cyBvciBibHVyIGlmIHdlJ3JlIGN1cnJlbnRseSBpbnNpZGVcblx0XHQvLyBhIGxldmVyYWdlZCBuYXRpdmUtZXZlbnQgc3RhY2tcblx0XHRfZGVmYXVsdDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0cmV0dXJuIGRhdGFQcml2LmdldCggZXZlbnQudGFyZ2V0LCB0eXBlICk7XG5cdFx0fSxcblxuXHRcdGRlbGVnYXRlVHlwZTogZGVsZWdhdGVUeXBlXG5cdH07XG59ICk7XG5cbi8vIENyZWF0ZSBtb3VzZWVudGVyL2xlYXZlIGV2ZW50cyB1c2luZyBtb3VzZW92ZXIvb3V0IGFuZCBldmVudC10aW1lIGNoZWNrc1xuLy8gc28gdGhhdCBldmVudCBkZWxlZ2F0aW9uIHdvcmtzIGluIGpRdWVyeS5cbi8vIERvIHRoZSBzYW1lIGZvciBwb2ludGVyZW50ZXIvcG9pbnRlcmxlYXZlIGFuZCBwb2ludGVyb3Zlci9wb2ludGVyb3V0XG4vL1xuLy8gU3VwcG9ydDogU2FmYXJpIDcgb25seVxuLy8gU2FmYXJpIHNlbmRzIG1vdXNlZW50ZXIgdG9vIG9mdGVuOyBzZWU6XG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NzAyNThcbi8vIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGJ1ZyAoaXQgZXhpc3RlZCBpbiBvbGRlciBDaHJvbWUgdmVyc2lvbnMgYXMgd2VsbCkuXG5qUXVlcnkuZWFjaCgge1xuXHRtb3VzZWVudGVyOiBcIm1vdXNlb3ZlclwiLFxuXHRtb3VzZWxlYXZlOiBcIm1vdXNlb3V0XCIsXG5cdHBvaW50ZXJlbnRlcjogXCJwb2ludGVyb3ZlclwiLFxuXHRwb2ludGVybGVhdmU6IFwicG9pbnRlcm91dFwiXG59LCBmdW5jdGlvbiggb3JpZywgZml4ICkge1xuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgb3JpZyBdID0ge1xuXHRcdGRlbGVnYXRlVHlwZTogZml4LFxuXHRcdGJpbmRUeXBlOiBmaXgsXG5cblx0XHRoYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHRcdHZhciByZXQsXG5cdFx0XHRcdHRhcmdldCA9IHRoaXMsXG5cdFx0XHRcdHJlbGF0ZWQgPSBldmVudC5yZWxhdGVkVGFyZ2V0LFxuXHRcdFx0XHRoYW5kbGVPYmogPSBldmVudC5oYW5kbGVPYmo7XG5cblx0XHRcdC8vIEZvciBtb3VzZWVudGVyL2xlYXZlIGNhbGwgdGhlIGhhbmRsZXIgaWYgcmVsYXRlZCBpcyBvdXRzaWRlIHRoZSB0YXJnZXQuXG5cdFx0XHQvLyBOQjogTm8gcmVsYXRlZFRhcmdldCBpZiB0aGUgbW91c2UgbGVmdC9lbnRlcmVkIHRoZSBicm93c2VyIHdpbmRvd1xuXHRcdFx0aWYgKCAhcmVsYXRlZCB8fCAoIHJlbGF0ZWQgIT09IHRhcmdldCAmJiAhalF1ZXJ5LmNvbnRhaW5zKCB0YXJnZXQsIHJlbGF0ZWQgKSApICkge1xuXHRcdFx0XHRldmVudC50eXBlID0gaGFuZGxlT2JqLm9yaWdUeXBlO1xuXHRcdFx0XHRyZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdGV2ZW50LnR5cGUgPSBmaXg7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblx0fTtcbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdG9uOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gb24oIHRoaXMsIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0b25lOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gb24oIHRoaXMsIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIDEgKTtcblx0fSxcblx0b2ZmOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBmbiApIHtcblx0XHR2YXIgaGFuZGxlT2JqLCB0eXBlO1xuXHRcdGlmICggdHlwZXMgJiYgdHlwZXMucHJldmVudERlZmF1bHQgJiYgdHlwZXMuaGFuZGxlT2JqICkge1xuXG5cdFx0XHQvLyAoIGV2ZW50ICkgIGRpc3BhdGNoZWQgalF1ZXJ5LkV2ZW50XG5cdFx0XHRoYW5kbGVPYmogPSB0eXBlcy5oYW5kbGVPYmo7XG5cdFx0XHRqUXVlcnkoIHR5cGVzLmRlbGVnYXRlVGFyZ2V0ICkub2ZmKFxuXHRcdFx0XHRoYW5kbGVPYmoubmFtZXNwYWNlID9cblx0XHRcdFx0XHRoYW5kbGVPYmoub3JpZ1R5cGUgKyBcIi5cIiArIGhhbmRsZU9iai5uYW1lc3BhY2UgOlxuXHRcdFx0XHRcdGhhbmRsZU9iai5vcmlnVHlwZSxcblx0XHRcdFx0aGFuZGxlT2JqLnNlbGVjdG9yLFxuXHRcdFx0XHRoYW5kbGVPYmouaGFuZGxlclxuXHRcdFx0KTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHR5cGVvZiB0eXBlcyA9PT0gXCJvYmplY3RcIiApIHtcblxuXHRcdFx0Ly8gKCB0eXBlcy1vYmplY3QgWywgc2VsZWN0b3JdIClcblx0XHRcdGZvciAoIHR5cGUgaW4gdHlwZXMgKSB7XG5cdFx0XHRcdHRoaXMub2ZmKCB0eXBlLCBzZWxlY3RvciwgdHlwZXNbIHR5cGUgXSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fVxuXHRcdGlmICggc2VsZWN0b3IgPT09IGZhbHNlIHx8IHR5cGVvZiBzZWxlY3RvciA9PT0gXCJmdW5jdGlvblwiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzIFssIGZuXSApXG5cdFx0XHRmbiA9IHNlbGVjdG9yO1xuXHRcdFx0c2VsZWN0b3IgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGlmICggZm4gPT09IGZhbHNlICkge1xuXHRcdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCB0eXBlcywgZm4sIHNlbGVjdG9yICk7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cblxudmFyXG5cblx0Ly8gU3VwcG9ydDogSUUgPD0xMCAtIDExLCBFZGdlIDEyIC0gMTMgb25seVxuXHQvLyBJbiBJRS9FZGdlIHVzaW5nIHJlZ2V4IGdyb3VwcyBoZXJlIGNhdXNlcyBzZXZlcmUgc2xvd2Rvd25zLlxuXHQvLyBTZWUgaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vSUUvZmVlZGJhY2svZGV0YWlscy8xNzM2NTEyL1xuXHRybm9Jbm5lcmh0bWwgPSAvPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxcblxuXHQvLyBjaGVja2VkPVwiY2hlY2tlZFwiIG9yIGNoZWNrZWRcblx0cmNoZWNrZWQgPSAvY2hlY2tlZFxccyooPzpbXj1dfD1cXHMqLmNoZWNrZWQuKS9pLFxuXG5cdHJjbGVhblNjcmlwdCA9IC9eXFxzKjwhXFxbQ0RBVEFcXFt8XFxdXFxdPlxccyokL2c7XG5cbi8vIFByZWZlciBhIHRib2R5IG92ZXIgaXRzIHBhcmVudCB0YWJsZSBmb3IgY29udGFpbmluZyBuZXcgcm93c1xuZnVuY3Rpb24gbWFuaXB1bGF0aW9uVGFyZ2V0KCBlbGVtLCBjb250ZW50ICkge1xuXHRpZiAoIG5vZGVOYW1lKCBlbGVtLCBcInRhYmxlXCIgKSAmJlxuXHRcdG5vZGVOYW1lKCBjb250ZW50Lm5vZGVUeXBlICE9PSAxMSA/IGNvbnRlbnQgOiBjb250ZW50LmZpcnN0Q2hpbGQsIFwidHJcIiApICkge1xuXG5cdFx0cmV0dXJuIGpRdWVyeSggZWxlbSApLmNoaWxkcmVuKCBcInRib2R5XCIgKVsgMCBdIHx8IGVsZW07XG5cdH1cblxuXHRyZXR1cm4gZWxlbTtcbn1cblxuLy8gUmVwbGFjZS9yZXN0b3JlIHRoZSB0eXBlIGF0dHJpYnV0ZSBvZiBzY3JpcHQgZWxlbWVudHMgZm9yIHNhZmUgRE9NIG1hbmlwdWxhdGlvblxuZnVuY3Rpb24gZGlzYWJsZVNjcmlwdCggZWxlbSApIHtcblx0ZWxlbS50eXBlID0gKCBlbGVtLmdldEF0dHJpYnV0ZSggXCJ0eXBlXCIgKSAhPT0gbnVsbCApICsgXCIvXCIgKyBlbGVtLnR5cGU7XG5cdHJldHVybiBlbGVtO1xufVxuZnVuY3Rpb24gcmVzdG9yZVNjcmlwdCggZWxlbSApIHtcblx0aWYgKCAoIGVsZW0udHlwZSB8fCBcIlwiICkuc2xpY2UoIDAsIDUgKSA9PT0gXCJ0cnVlL1wiICkge1xuXHRcdGVsZW0udHlwZSA9IGVsZW0udHlwZS5zbGljZSggNSApO1xuXHR9IGVsc2Uge1xuXHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKCBcInR5cGVcIiApO1xuXHR9XG5cblx0cmV0dXJuIGVsZW07XG59XG5cbmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7XG5cdHZhciBpLCBsLCB0eXBlLCBwZGF0YU9sZCwgdWRhdGFPbGQsIHVkYXRhQ3VyLCBldmVudHM7XG5cblx0aWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIDEuIENvcHkgcHJpdmF0ZSBkYXRhOiBldmVudHMsIGhhbmRsZXJzLCBldGMuXG5cdGlmICggZGF0YVByaXYuaGFzRGF0YSggc3JjICkgKSB7XG5cdFx0cGRhdGFPbGQgPSBkYXRhUHJpdi5nZXQoIHNyYyApO1xuXHRcdGV2ZW50cyA9IHBkYXRhT2xkLmV2ZW50cztcblxuXHRcdGlmICggZXZlbnRzICkge1xuXHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBkZXN0LCBcImhhbmRsZSBldmVudHNcIiApO1xuXG5cdFx0XHRmb3IgKCB0eXBlIGluIGV2ZW50cyApIHtcblx0XHRcdFx0Zm9yICggaSA9IDAsIGwgPSBldmVudHNbIHR5cGUgXS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LmFkZCggZGVzdCwgdHlwZSwgZXZlbnRzWyB0eXBlIF1bIGkgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gMi4gQ29weSB1c2VyIGRhdGFcblx0aWYgKCBkYXRhVXNlci5oYXNEYXRhKCBzcmMgKSApIHtcblx0XHR1ZGF0YU9sZCA9IGRhdGFVc2VyLmFjY2Vzcyggc3JjICk7XG5cdFx0dWRhdGFDdXIgPSBqUXVlcnkuZXh0ZW5kKCB7fSwgdWRhdGFPbGQgKTtcblxuXHRcdGRhdGFVc2VyLnNldCggZGVzdCwgdWRhdGFDdXIgKTtcblx0fVxufVxuXG4vLyBGaXggSUUgYnVncywgc2VlIHN1cHBvcnQgdGVzdHNcbmZ1bmN0aW9uIGZpeElucHV0KCBzcmMsIGRlc3QgKSB7XG5cdHZhciBub2RlTmFtZSA9IGRlc3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblxuXHQvLyBGYWlscyB0byBwZXJzaXN0IHRoZSBjaGVja2VkIHN0YXRlIG9mIGEgY2xvbmVkIGNoZWNrYm94IG9yIHJhZGlvIGJ1dHRvbi5cblx0aWYgKCBub2RlTmFtZSA9PT0gXCJpbnB1dFwiICYmIHJjaGVja2FibGVUeXBlLnRlc3QoIHNyYy50eXBlICkgKSB7XG5cdFx0ZGVzdC5jaGVja2VkID0gc3JjLmNoZWNrZWQ7XG5cblx0Ly8gRmFpbHMgdG8gcmV0dXJuIHRoZSBzZWxlY3RlZCBvcHRpb24gdG8gdGhlIGRlZmF1bHQgc2VsZWN0ZWQgc3RhdGUgd2hlbiBjbG9uaW5nIG9wdGlvbnNcblx0fSBlbHNlIGlmICggbm9kZU5hbWUgPT09IFwiaW5wdXRcIiB8fCBub2RlTmFtZSA9PT0gXCJ0ZXh0YXJlYVwiICkge1xuXHRcdGRlc3QuZGVmYXVsdFZhbHVlID0gc3JjLmRlZmF1bHRWYWx1ZTtcblx0fVxufVxuXG5mdW5jdGlvbiBkb21NYW5pcCggY29sbGVjdGlvbiwgYXJncywgY2FsbGJhY2ssIGlnbm9yZWQgKSB7XG5cblx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xuXHRhcmdzID0gZmxhdCggYXJncyApO1xuXG5cdHZhciBmcmFnbWVudCwgZmlyc3QsIHNjcmlwdHMsIGhhc1NjcmlwdHMsIG5vZGUsIGRvYyxcblx0XHRpID0gMCxcblx0XHRsID0gY29sbGVjdGlvbi5sZW5ndGgsXG5cdFx0aU5vQ2xvbmUgPSBsIC0gMSxcblx0XHR2YWx1ZSA9IGFyZ3NbIDAgXSxcblx0XHR2YWx1ZUlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uKCB2YWx1ZSApO1xuXG5cdC8vIFdlIGNhbid0IGNsb25lTm9kZSBmcmFnbWVudHMgdGhhdCBjb250YWluIGNoZWNrZWQsIGluIFdlYktpdFxuXHRpZiAoIHZhbHVlSXNGdW5jdGlvbiB8fFxuXHRcdFx0KCBsID4gMSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0IXN1cHBvcnQuY2hlY2tDbG9uZSAmJiByY2hlY2tlZC50ZXN0KCB2YWx1ZSApICkgKSB7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb24uZWFjaCggZnVuY3Rpb24oIGluZGV4ICkge1xuXHRcdFx0dmFyIHNlbGYgPSBjb2xsZWN0aW9uLmVxKCBpbmRleCApO1xuXHRcdFx0aWYgKCB2YWx1ZUlzRnVuY3Rpb24gKSB7XG5cdFx0XHRcdGFyZ3NbIDAgXSA9IHZhbHVlLmNhbGwoIHRoaXMsIGluZGV4LCBzZWxmLmh0bWwoKSApO1xuXHRcdFx0fVxuXHRcdFx0ZG9tTWFuaXAoIHNlbGYsIGFyZ3MsIGNhbGxiYWNrLCBpZ25vcmVkICk7XG5cdFx0fSApO1xuXHR9XG5cblx0aWYgKCBsICkge1xuXHRcdGZyYWdtZW50ID0gYnVpbGRGcmFnbWVudCggYXJncywgY29sbGVjdGlvblsgMCBdLm93bmVyRG9jdW1lbnQsIGZhbHNlLCBjb2xsZWN0aW9uLCBpZ25vcmVkICk7XG5cdFx0Zmlyc3QgPSBmcmFnbWVudC5maXJzdENoaWxkO1xuXG5cdFx0aWYgKCBmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSApIHtcblx0XHRcdGZyYWdtZW50ID0gZmlyc3Q7XG5cdFx0fVxuXG5cdFx0Ly8gUmVxdWlyZSBlaXRoZXIgbmV3IGNvbnRlbnQgb3IgYW4gaW50ZXJlc3QgaW4gaWdub3JlZCBlbGVtZW50cyB0byBpbnZva2UgdGhlIGNhbGxiYWNrXG5cdFx0aWYgKCBmaXJzdCB8fCBpZ25vcmVkICkge1xuXHRcdFx0c2NyaXB0cyA9IGpRdWVyeS5tYXAoIGdldEFsbCggZnJhZ21lbnQsIFwic2NyaXB0XCIgKSwgZGlzYWJsZVNjcmlwdCApO1xuXHRcdFx0aGFzU2NyaXB0cyA9IHNjcmlwdHMubGVuZ3RoO1xuXG5cdFx0XHQvLyBVc2UgdGhlIG9yaWdpbmFsIGZyYWdtZW50IGZvciB0aGUgbGFzdCBpdGVtXG5cdFx0XHQvLyBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXBcblx0XHRcdC8vIGJlaW5nIGVtcHRpZWQgaW5jb3JyZWN0bHkgaW4gY2VydGFpbiBzaXR1YXRpb25zICh0cmFjLTgwNzApLlxuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRub2RlID0gZnJhZ21lbnQ7XG5cblx0XHRcdFx0aWYgKCBpICE9PSBpTm9DbG9uZSApIHtcblx0XHRcdFx0XHRub2RlID0galF1ZXJ5LmNsb25lKCBub2RlLCB0cnVlLCB0cnVlICk7XG5cblx0XHRcdFx0XHQvLyBLZWVwIHJlZmVyZW5jZXMgdG8gY2xvbmVkIHNjcmlwdHMgZm9yIGxhdGVyIHJlc3RvcmF0aW9uXG5cdFx0XHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0XHRcdGpRdWVyeS5tZXJnZSggc2NyaXB0cywgZ2V0QWxsKCBub2RlLCBcInNjcmlwdFwiICkgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYWxsYmFjay5jYWxsKCBjb2xsZWN0aW9uWyBpIF0sIG5vZGUsIGkgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXHRcdFx0XHRkb2MgPSBzY3JpcHRzWyBzY3JpcHRzLmxlbmd0aCAtIDEgXS5vd25lckRvY3VtZW50O1xuXG5cdFx0XHRcdC8vIFJlZW5hYmxlIHNjcmlwdHNcblx0XHRcdFx0alF1ZXJ5Lm1hcCggc2NyaXB0cywgcmVzdG9yZVNjcmlwdCApO1xuXG5cdFx0XHRcdC8vIEV2YWx1YXRlIGV4ZWN1dGFibGUgc2NyaXB0cyBvbiBmaXJzdCBkb2N1bWVudCBpbnNlcnRpb25cblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBoYXNTY3JpcHRzOyBpKysgKSB7XG5cdFx0XHRcdFx0bm9kZSA9IHNjcmlwdHNbIGkgXTtcblx0XHRcdFx0XHRpZiAoIHJzY3JpcHRUeXBlLnRlc3QoIG5vZGUudHlwZSB8fCBcIlwiICkgJiZcblx0XHRcdFx0XHRcdCFkYXRhUHJpdi5hY2Nlc3MoIG5vZGUsIFwiZ2xvYmFsRXZhbFwiICkgJiZcblx0XHRcdFx0XHRcdGpRdWVyeS5jb250YWlucyggZG9jLCBub2RlICkgKSB7XG5cblx0XHRcdFx0XHRcdGlmICggbm9kZS5zcmMgJiYgKCBub2RlLnR5cGUgfHwgXCJcIiApLnRvTG93ZXJDYXNlKCkgICE9PSBcIm1vZHVsZVwiICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIE9wdGlvbmFsIEFKQVggZGVwZW5kZW5jeSwgYnV0IHdvbid0IHJ1biBzY3JpcHRzIGlmIG5vdCBwcmVzZW50XG5cdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5Ll9ldmFsVXJsICYmICFub2RlLm5vTW9kdWxlICkge1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5fZXZhbFVybCggbm9kZS5zcmMsIHtcblx0XHRcdFx0XHRcdFx0XHRcdG5vbmNlOiBub2RlLm5vbmNlIHx8IG5vZGUuZ2V0QXR0cmlidXRlKCBcIm5vbmNlXCIgKVxuXHRcdFx0XHRcdFx0XHRcdH0sIGRvYyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFVud3JhcCBhIENEQVRBIHNlY3Rpb24gY29udGFpbmluZyBzY3JpcHQgY29udGVudHMuIFRoaXMgc2hvdWxkbid0IGJlXG5cdFx0XHRcdFx0XHRcdC8vIG5lZWRlZCBhcyBpbiBYTUwgZG9jdW1lbnRzIHRoZXkncmUgYWxyZWFkeSBub3QgdmlzaWJsZSB3aGVuXG5cdFx0XHRcdFx0XHRcdC8vIGluc3BlY3RpbmcgZWxlbWVudCBjb250ZW50cyBhbmQgaW4gSFRNTCBkb2N1bWVudHMgdGhleSBoYXZlIG5vXG5cdFx0XHRcdFx0XHRcdC8vIG1lYW5pbmcgYnV0IHdlJ3JlIHByZXNlcnZpbmcgdGhhdCBsb2dpYyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG5cdFx0XHRcdFx0XHRcdC8vIFRoaXMgd2lsbCBiZSByZW1vdmVkIGNvbXBsZXRlbHkgaW4gNC4wLiBTZWUgZ2gtNDkwNC5cblx0XHRcdFx0XHRcdFx0RE9NRXZhbCggbm9kZS50ZXh0Q29udGVudC5yZXBsYWNlKCByY2xlYW5TY3JpcHQsIFwiXCIgKSwgbm9kZSwgZG9jICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGNvbGxlY3Rpb247XG59XG5cbmZ1bmN0aW9uIHJlbW92ZSggZWxlbSwgc2VsZWN0b3IsIGtlZXBEYXRhICkge1xuXHR2YXIgbm9kZSxcblx0XHRub2RlcyA9IHNlbGVjdG9yID8galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIGVsZW0gKSA6IGVsZW0sXG5cdFx0aSA9IDA7XG5cblx0Zm9yICggOyAoIG5vZGUgPSBub2Rlc1sgaSBdICkgIT0gbnVsbDsgaSsrICkge1xuXHRcdGlmICggIWtlZXBEYXRhICYmIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIG5vZGUgKSApO1xuXHRcdH1cblxuXHRcdGlmICggbm9kZS5wYXJlbnROb2RlICkge1xuXHRcdFx0aWYgKCBrZWVwRGF0YSAmJiBpc0F0dGFjaGVkKCBub2RlICkgKSB7XG5cdFx0XHRcdHNldEdsb2JhbEV2YWwoIGdldEFsbCggbm9kZSwgXCJzY3JpcHRcIiApICk7XG5cdFx0XHR9XG5cdFx0XHRub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIG5vZGUgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZWxlbTtcbn1cblxualF1ZXJ5LmV4dGVuZCgge1xuXHRodG1sUHJlZmlsdGVyOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHRyZXR1cm4gaHRtbDtcblx0fSxcblxuXHRjbG9uZTogZnVuY3Rpb24oIGVsZW0sIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdHZhciBpLCBsLCBzcmNFbGVtZW50cywgZGVzdEVsZW1lbnRzLFxuXHRcdFx0Y2xvbmUgPSBlbGVtLmNsb25lTm9kZSggdHJ1ZSApLFxuXHRcdFx0aW5QYWdlID0gaXNBdHRhY2hlZCggZWxlbSApO1xuXG5cdFx0Ly8gRml4IElFIGNsb25pbmcgaXNzdWVzXG5cdFx0aWYgKCAhc3VwcG9ydC5ub0Nsb25lQ2hlY2tlZCAmJiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgZWxlbS5ub2RlVHlwZSA9PT0gMTEgKSAmJlxuXHRcdFx0XHQhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cblx0XHRcdC8vIFdlIGVzY2hldyBTaXp6bGUgaGVyZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29uczogaHR0cHM6Ly9qc3BlcmYuY29tL2dldGFsbC12cy1zaXp6bGUvMlxuXHRcdFx0ZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSApO1xuXHRcdFx0c3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTtcblxuXHRcdFx0Zm9yICggaSA9IDAsIGwgPSBzcmNFbGVtZW50cy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGZpeElucHV0KCBzcmNFbGVtZW50c1sgaSBdLCBkZXN0RWxlbWVudHNbIGkgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENvcHkgdGhlIGV2ZW50cyBmcm9tIHRoZSBvcmlnaW5hbCB0byB0aGUgY2xvbmVcblx0XHRpZiAoIGRhdGFBbmRFdmVudHMgKSB7XG5cdFx0XHRpZiAoIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdFx0XHRzcmNFbGVtZW50cyA9IHNyY0VsZW1lbnRzIHx8IGdldEFsbCggZWxlbSApO1xuXHRcdFx0XHRkZXN0RWxlbWVudHMgPSBkZXN0RWxlbWVudHMgfHwgZ2V0QWxsKCBjbG9uZSApO1xuXG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gc3JjRWxlbWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdGNsb25lQ29weUV2ZW50KCBzcmNFbGVtZW50c1sgaSBdLCBkZXN0RWxlbWVudHNbIGkgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjbG9uZUNvcHlFdmVudCggZWxlbSwgY2xvbmUgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBQcmVzZXJ2ZSBzY3JpcHQgZXZhbHVhdGlvbiBoaXN0b3J5XG5cdFx0ZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSwgXCJzY3JpcHRcIiApO1xuXHRcdGlmICggZGVzdEVsZW1lbnRzLmxlbmd0aCA+IDAgKSB7XG5cdFx0XHRzZXRHbG9iYWxFdmFsKCBkZXN0RWxlbWVudHMsICFpblBhZ2UgJiYgZ2V0QWxsKCBlbGVtLCBcInNjcmlwdFwiICkgKTtcblx0XHR9XG5cblx0XHQvLyBSZXR1cm4gdGhlIGNsb25lZCBzZXRcblx0XHRyZXR1cm4gY2xvbmU7XG5cdH0sXG5cblx0Y2xlYW5EYXRhOiBmdW5jdGlvbiggZWxlbXMgKSB7XG5cdFx0dmFyIGRhdGEsIGVsZW0sIHR5cGUsXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWwsXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgKCBlbGVtID0gZWxlbXNbIGkgXSApICE9PSB1bmRlZmluZWQ7IGkrKyApIHtcblx0XHRcdGlmICggYWNjZXB0RGF0YSggZWxlbSApICkge1xuXHRcdFx0XHRpZiAoICggZGF0YSA9IGVsZW1bIGRhdGFQcml2LmV4cGFuZG8gXSApICkge1xuXHRcdFx0XHRcdGlmICggZGF0YS5ldmVudHMgKSB7XG5cdFx0XHRcdFx0XHRmb3IgKCB0eXBlIGluIGRhdGEuZXZlbnRzICkge1xuXHRcdFx0XHRcdFx0XHRpZiAoIHNwZWNpYWxbIHR5cGUgXSApIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCBlbGVtLCB0eXBlICk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gVGhpcyBpcyBhIHNob3J0Y3V0IHRvIGF2b2lkIGpRdWVyeS5ldmVudC5yZW1vdmUncyBvdmVyaGVhZFxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZGF0YS5oYW5kbGUgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTM1IC0gNDUrXG5cdFx0XHRcdFx0Ly8gQXNzaWduIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIHVzaW5nIGRlbGV0ZSwgc2VlIERhdGEjcmVtb3ZlXG5cdFx0XHRcdFx0ZWxlbVsgZGF0YVByaXYuZXhwYW5kbyBdID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICggZWxlbVsgZGF0YVVzZXIuZXhwYW5kbyBdICkge1xuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9MzUgLSA0NStcblx0XHRcdFx0XHQvLyBBc3NpZ24gdW5kZWZpbmVkIGluc3RlYWQgb2YgdXNpbmcgZGVsZXRlLCBzZWUgRGF0YSNyZW1vdmVcblx0XHRcdFx0XHRlbGVtWyBkYXRhVXNlci5leHBhbmRvIF0gPSB1bmRlZmluZWQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRkZXRhY2g6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gcmVtb3ZlKCB0aGlzLCBzZWxlY3RvciwgdHJ1ZSApO1xuXHR9LFxuXG5cdHJlbW92ZTogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiByZW1vdmUoIHRoaXMsIHNlbGVjdG9yICk7XG5cdH0sXG5cblx0dGV4dDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdFx0alF1ZXJ5LnRleHQoIHRoaXMgKSA6XG5cdFx0XHRcdHRoaXMuZW1wdHkoKS5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRcdHRoaXMudGV4dENvbnRlbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKTtcblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9LFxuXG5cdGFwcGVuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBtYW5pcHVsYXRpb25UYXJnZXQoIHRoaXMsIGVsZW0gKTtcblx0XHRcdFx0dGFyZ2V0LmFwcGVuZENoaWxkKCBlbGVtICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdHByZXBlbmQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSB8fCB0aGlzLm5vZGVUeXBlID09PSAxMSB8fCB0aGlzLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHR2YXIgdGFyZ2V0ID0gbWFuaXB1bGF0aW9uVGFyZ2V0KCB0aGlzLCBlbGVtICk7XG5cdFx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoIGVsZW0sIHRhcmdldC5maXJzdENoaWxkICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGJlZm9yZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0YWZ0ZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5wYXJlbnROb2RlICkge1xuXHRcdFx0XHR0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzLm5leHRTaWJsaW5nICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGVtcHR5OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZWxlbSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyAoIGVsZW0gPSB0aGlzWyBpIF0gKSAhPSBudWxsOyBpKysgKSB7XG5cdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHRcdFx0Ly8gUHJldmVudCBtZW1vcnkgbGVha3Ncblx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBlbGVtLCBmYWxzZSApICk7XG5cblx0XHRcdFx0Ly8gUmVtb3ZlIGFueSByZW1haW5pbmcgbm9kZXNcblx0XHRcdFx0ZWxlbS50ZXh0Q29udGVudCA9IFwiXCI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uKCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApIHtcblx0XHRkYXRhQW5kRXZlbnRzID0gZGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZmFsc2UgOiBkYXRhQW5kRXZlbnRzO1xuXHRcdGRlZXBEYXRhQW5kRXZlbnRzID0gZGVlcERhdGFBbmRFdmVudHMgPT0gbnVsbCA/IGRhdGFBbmRFdmVudHMgOiBkZWVwRGF0YUFuZEV2ZW50cztcblxuXHRcdHJldHVybiB0aGlzLm1hcCggZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmNsb25lKCB0aGlzLCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApO1xuXHRcdH0gKTtcblx0fSxcblxuXHRodG1sOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0dmFyIGVsZW0gPSB0aGlzWyAwIF0gfHwge30sXG5cdFx0XHRcdGkgPSAwLFxuXHRcdFx0XHRsID0gdGhpcy5sZW5ndGg7XG5cblx0XHRcdGlmICggdmFsdWUgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbS5pbm5lckhUTUw7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNlZSBpZiB3ZSBjYW4gdGFrZSBhIHNob3J0Y3V0IGFuZCBqdXN0IHVzZSBpbm5lckhUTUxcblx0XHRcdGlmICggdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmICFybm9Jbm5lcmh0bWwudGVzdCggdmFsdWUgKSAmJlxuXHRcdFx0XHQhd3JhcE1hcFsgKCBydGFnTmFtZS5leGVjKCB2YWx1ZSApIHx8IFsgXCJcIiwgXCJcIiBdIClbIDEgXS50b0xvd2VyQ2FzZSgpIF0gKSB7XG5cblx0XHRcdFx0dmFsdWUgPSBqUXVlcnkuaHRtbFByZWZpbHRlciggdmFsdWUgKTtcblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0XHRcdGVsZW0gPSB0aGlzWyBpIF0gfHwge307XG5cblx0XHRcdFx0XHRcdC8vIFJlbW92ZSBlbGVtZW50IG5vZGVzIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuXHRcdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0sIGZhbHNlICkgKTtcblx0XHRcdFx0XHRcdFx0ZWxlbS5pbm5lckhUTUwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRlbGVtID0gMDtcblxuXHRcdFx0XHQvLyBJZiB1c2luZyBpbm5lckhUTUwgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgdXNlIHRoZSBmYWxsYmFjayBtZXRob2Rcblx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHRcdHRoaXMuZW1wdHkoKS5hcHBlbmQoIHZhbHVlICk7XG5cdFx0XHR9XG5cdFx0fSwgbnVsbCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggKTtcblx0fSxcblxuXHRyZXBsYWNlV2l0aDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGlnbm9yZWQgPSBbXTtcblxuXHRcdC8vIE1ha2UgdGhlIGNoYW5nZXMsIHJlcGxhY2luZyBlYWNoIG5vbi1pZ25vcmVkIGNvbnRleHQgZWxlbWVudCB3aXRoIHRoZSBuZXcgY29udGVudFxuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XG5cblx0XHRcdGlmICggalF1ZXJ5LmluQXJyYXkoIHRoaXMsIGlnbm9yZWQgKSA8IDAgKSB7XG5cdFx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggdGhpcyApICk7XG5cdFx0XHRcdGlmICggcGFyZW50ICkge1xuXHRcdFx0XHRcdHBhcmVudC5yZXBsYWNlQ2hpbGQoIGVsZW0sIHRoaXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0Ly8gRm9yY2UgY2FsbGJhY2sgaW52b2NhdGlvblxuXHRcdH0sIGlnbm9yZWQgKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCgge1xuXHRhcHBlbmRUbzogXCJhcHBlbmRcIixcblx0cHJlcGVuZFRvOiBcInByZXBlbmRcIixcblx0aW5zZXJ0QmVmb3JlOiBcImJlZm9yZVwiLFxuXHRpbnNlcnRBZnRlcjogXCJhZnRlclwiLFxuXHRyZXBsYWNlQWxsOiBcInJlcGxhY2VXaXRoXCJcbn0sIGZ1bmN0aW9uKCBuYW1lLCBvcmlnaW5hbCApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGVsZW1zLFxuXHRcdFx0cmV0ID0gW10sXG5cdFx0XHRpbnNlcnQgPSBqUXVlcnkoIHNlbGVjdG9yICksXG5cdFx0XHRsYXN0ID0gaW5zZXJ0Lmxlbmd0aCAtIDEsXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgaSA8PSBsYXN0OyBpKysgKSB7XG5cdFx0XHRlbGVtcyA9IGkgPT09IGxhc3QgPyB0aGlzIDogdGhpcy5jbG9uZSggdHJ1ZSApO1xuXHRcdFx0alF1ZXJ5KCBpbnNlcnRbIGkgXSApWyBvcmlnaW5hbCBdKCBlbGVtcyApO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdC8vIC5nZXQoKSBiZWNhdXNlIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdHB1c2guYXBwbHkoIHJldCwgZWxlbXMuZ2V0KCkgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCApO1xuXHR9O1xufSApO1xudmFyIHJudW1ub25weCA9IG5ldyBSZWdFeHAoIFwiXihcIiArIHBudW0gKyBcIikoPyFweClbYS16JV0rJFwiLCBcImlcIiApO1xuXG52YXIgcmN1c3RvbVByb3AgPSAvXi0tLztcblxuXG52YXIgZ2V0U3R5bGVzID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHksIEZpcmVmb3ggPD0zMCAodHJhYy0xNTA5OCwgdHJhYy0xNDE1MClcblx0XHQvLyBJRSB0aHJvd3Mgb24gZWxlbWVudHMgY3JlYXRlZCBpbiBwb3B1cHNcblx0XHQvLyBGRiBtZWFud2hpbGUgdGhyb3dzIG9uIGZyYW1lIGVsZW1lbnRzIHRocm91Z2ggXCJkZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlXCJcblx0XHR2YXIgdmlldyA9IGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcblxuXHRcdGlmICggIXZpZXcgfHwgIXZpZXcub3BlbmVyICkge1xuXHRcdFx0dmlldyA9IHdpbmRvdztcblx0XHR9XG5cblx0XHRyZXR1cm4gdmlldy5nZXRDb21wdXRlZFN0eWxlKCBlbGVtICk7XG5cdH07XG5cbnZhciBzd2FwID0gZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGNhbGxiYWNrICkge1xuXHR2YXIgcmV0LCBuYW1lLFxuXHRcdG9sZCA9IHt9O1xuXG5cdC8vIFJlbWVtYmVyIHRoZSBvbGQgdmFsdWVzLCBhbmQgaW5zZXJ0IHRoZSBuZXcgb25lc1xuXHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0b2xkWyBuYW1lIF0gPSBlbGVtLnN0eWxlWyBuYW1lIF07XG5cdFx0ZWxlbS5zdHlsZVsgbmFtZSBdID0gb3B0aW9uc1sgbmFtZSBdO1xuXHR9XG5cblx0cmV0ID0gY2FsbGJhY2suY2FsbCggZWxlbSApO1xuXG5cdC8vIFJldmVydCB0aGUgb2xkIHZhbHVlc1xuXHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0ZWxlbS5zdHlsZVsgbmFtZSBdID0gb2xkWyBuYW1lIF07XG5cdH1cblxuXHRyZXR1cm4gcmV0O1xufTtcblxuXG52YXIgcmJveFN0eWxlID0gbmV3IFJlZ0V4cCggY3NzRXhwYW5kLmpvaW4oIFwifFwiICksIFwiaVwiICk7XG5cbnZhciB3aGl0ZXNwYWNlID0gXCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiO1xuXG5cbnZhciBydHJpbUNTUyA9IG5ldyBSZWdFeHAoXG5cdFwiXlwiICsgd2hpdGVzcGFjZSArIFwiK3woKD86XnxbXlxcXFxcXFxcXSkoPzpcXFxcXFxcXC4pKilcIiArIHdoaXRlc3BhY2UgKyBcIiskXCIsXG5cdFwiZ1wiXG4pO1xuXG5cblxuXG4oIGZ1bmN0aW9uKCkge1xuXG5cdC8vIEV4ZWN1dGluZyBib3RoIHBpeGVsUG9zaXRpb24gJiBib3hTaXppbmdSZWxpYWJsZSB0ZXN0cyByZXF1aXJlIG9ubHkgb25lIGxheW91dFxuXHQvLyBzbyB0aGV5J3JlIGV4ZWN1dGVkIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSB0aGUgc2Vjb25kIGNvbXB1dGF0aW9uLlxuXHRmdW5jdGlvbiBjb21wdXRlU3R5bGVUZXN0cygpIHtcblxuXHRcdC8vIFRoaXMgaXMgYSBzaW5nbGV0b24sIHdlIG5lZWQgdG8gZXhlY3V0ZSBpdCBvbmx5IG9uY2Vcblx0XHRpZiAoICFkaXYgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29udGFpbmVyLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDtcIiArXG5cdFx0XHRcIm1hcmdpbi10b3A6MXB4O3BhZGRpbmc6MDtib3JkZXI6MFwiO1xuXHRcdGRpdi5zdHlsZS5jc3NUZXh0ID1cblx0XHRcdFwicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO1wiICtcblx0XHRcdFwibWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDtcIiArXG5cdFx0XHRcIndpZHRoOjYwJTt0b3A6MSVcIjtcblx0XHRkb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoIGNvbnRhaW5lciApLmFwcGVuZENoaWxkKCBkaXYgKTtcblxuXHRcdHZhciBkaXZTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCBkaXYgKTtcblx0XHRwaXhlbFBvc2l0aW9uVmFsID0gZGl2U3R5bGUudG9wICE9PSBcIjElXCI7XG5cblx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDQuMCAtIDQuMyBvbmx5LCBGaXJlZm94IDw9MyAtIDQ0XG5cdFx0cmVsaWFibGVNYXJnaW5MZWZ0VmFsID0gcm91bmRQaXhlbE1lYXN1cmVzKCBkaXZTdHlsZS5tYXJnaW5MZWZ0ICkgPT09IDEyO1xuXG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seSwgU2FmYXJpIDw9OS4xIC0gMTAuMSwgaU9TIDw9Ny4wIC0gOS4zXG5cdFx0Ly8gU29tZSBzdHlsZXMgY29tZSBiYWNrIHdpdGggcGVyY2VudGFnZSB2YWx1ZXMsIGV2ZW4gdGhvdWdoIHRoZXkgc2hvdWxkbid0XG5cdFx0ZGl2LnN0eWxlLnJpZ2h0ID0gXCI2MCVcIjtcblx0XHRwaXhlbEJveFN0eWxlc1ZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUucmlnaHQgKSA9PT0gMzY7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seVxuXHRcdC8vIERldGVjdCBtaXNyZXBvcnRpbmcgb2YgY29udGVudCBkaW1lbnNpb25zIGZvciBib3gtc2l6aW5nOmJvcmRlci1ib3ggZWxlbWVudHNcblx0XHRib3hTaXppbmdSZWxpYWJsZVZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUud2lkdGggKSA9PT0gMzY7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IG9ubHlcblx0XHQvLyBEZXRlY3Qgb3ZlcmZsb3c6c2Nyb2xsIHNjcmV3aW5lc3MgKGdoLTM2OTkpXG5cdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9NjRcblx0XHQvLyBEb24ndCBnZXQgdHJpY2tlZCB3aGVuIHpvb20gYWZmZWN0cyBvZmZzZXRXaWR0aCAoZ2gtNDAyOSlcblx0XHRkaXYuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG5cdFx0c2Nyb2xsYm94U2l6ZVZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2Lm9mZnNldFdpZHRoIC8gMyApID09PSAxMjtcblxuXHRcdGRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZCggY29udGFpbmVyICk7XG5cblx0XHQvLyBOdWxsaWZ5IHRoZSBkaXYgc28gaXQgd291bGRuJ3QgYmUgc3RvcmVkIGluIHRoZSBtZW1vcnkgYW5kXG5cdFx0Ly8gaXQgd2lsbCBhbHNvIGJlIGEgc2lnbiB0aGF0IGNoZWNrcyBhbHJlYWR5IHBlcmZvcm1lZFxuXHRcdGRpdiA9IG51bGw7XG5cdH1cblxuXHRmdW5jdGlvbiByb3VuZFBpeGVsTWVhc3VyZXMoIG1lYXN1cmUgKSB7XG5cdFx0cmV0dXJuIE1hdGgucm91bmQoIHBhcnNlRmxvYXQoIG1lYXN1cmUgKSApO1xuXHR9XG5cblx0dmFyIHBpeGVsUG9zaXRpb25WYWwsIGJveFNpemluZ1JlbGlhYmxlVmFsLCBzY3JvbGxib3hTaXplVmFsLCBwaXhlbEJveFN0eWxlc1ZhbCxcblx0XHRyZWxpYWJsZVRyRGltZW5zaW9uc1ZhbCwgcmVsaWFibGVNYXJnaW5MZWZ0VmFsLFxuXHRcdGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKSxcblx0XHRkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICk7XG5cblx0Ly8gRmluaXNoIGVhcmx5IGluIGxpbWl0ZWQgKG5vbi1icm93c2VyKSBlbnZpcm9ubWVudHNcblx0aWYgKCAhZGl2LnN0eWxlICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0Ly8gU3R5bGUgb2YgY2xvbmVkIGVsZW1lbnQgYWZmZWN0cyBzb3VyY2UgZWxlbWVudCBjbG9uZWQgKHRyYWMtODkwOClcblx0ZGl2LnN0eWxlLmJhY2tncm91bmRDbGlwID0gXCJjb250ZW50LWJveFwiO1xuXHRkaXYuY2xvbmVOb2RlKCB0cnVlICkuc3R5bGUuYmFja2dyb3VuZENsaXAgPSBcIlwiO1xuXHRzdXBwb3J0LmNsZWFyQ2xvbmVTdHlsZSA9IGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9PT0gXCJjb250ZW50LWJveFwiO1xuXG5cdGpRdWVyeS5leHRlbmQoIHN1cHBvcnQsIHtcblx0XHRib3hTaXppbmdSZWxpYWJsZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIGJveFNpemluZ1JlbGlhYmxlVmFsO1xuXHRcdH0sXG5cdFx0cGl4ZWxCb3hTdHlsZXM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiBwaXhlbEJveFN0eWxlc1ZhbDtcblx0XHR9LFxuXHRcdHBpeGVsUG9zaXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiBwaXhlbFBvc2l0aW9uVmFsO1xuXHRcdH0sXG5cdFx0cmVsaWFibGVNYXJnaW5MZWZ0OiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gcmVsaWFibGVNYXJnaW5MZWZ0VmFsO1xuXHRcdH0sXG5cdFx0c2Nyb2xsYm94U2l6ZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIHNjcm9sbGJveFNpemVWYWw7XG5cdFx0fSxcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSssIEVkZ2UgMTUgLSAxOCtcblx0XHQvLyBJRS9FZGdlIG1pc3JlcG9ydCBgZ2V0Q29tcHV0ZWRTdHlsZWAgb2YgdGFibGUgcm93cyB3aXRoIHdpZHRoL2hlaWdodFxuXHRcdC8vIHNldCBpbiBDU1Mgd2hpbGUgYG9mZnNldCpgIHByb3BlcnRpZXMgcmVwb3J0IGNvcnJlY3QgdmFsdWVzLlxuXHRcdC8vIEJlaGF2aW9yIGluIElFIDkgaXMgbW9yZSBzdWJ0bGUgdGhhbiBpbiBuZXdlciB2ZXJzaW9ucyAmIGl0IHBhc3Nlc1xuXHRcdC8vIHNvbWUgdmVyc2lvbnMgb2YgdGhpcyB0ZXN0OyBtYWtlIHN1cmUgbm90IHRvIG1ha2UgaXQgcGFzcyB0aGVyZSFcblx0XHQvL1xuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggNzArXG5cdFx0Ly8gT25seSBGaXJlZm94IGluY2x1ZGVzIGJvcmRlciB3aWR0aHNcblx0XHQvLyBpbiBjb21wdXRlZCBkaW1lbnNpb25zLiAoZ2gtNDUyOSlcblx0XHRyZWxpYWJsZVRyRGltZW5zaW9uczogZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgdGFibGUsIHRyLCB0ckNoaWxkLCB0clN0eWxlO1xuXHRcdFx0aWYgKCByZWxpYWJsZVRyRGltZW5zaW9uc1ZhbCA9PSBudWxsICkge1xuXHRcdFx0XHR0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwidGFibGVcIiApO1xuXHRcdFx0XHR0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwidHJcIiApO1xuXHRcdFx0XHR0ckNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApO1xuXG5cdFx0XHRcdHRhYmxlLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlXCI7XG5cdFx0XHRcdHRyLnN0eWxlLmNzc1RleHQgPSBcImJvcmRlcjoxcHggc29saWRcIjtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgODYrXG5cdFx0XHRcdC8vIEhlaWdodCBzZXQgdGhyb3VnaCBjc3NUZXh0IGRvZXMgbm90IGdldCBhcHBsaWVkLlxuXHRcdFx0XHQvLyBDb21wdXRlZCBoZWlnaHQgdGhlbiBjb21lcyBiYWNrIGFzIDAuXG5cdFx0XHRcdHRyLnN0eWxlLmhlaWdodCA9IFwiMXB4XCI7XG5cdFx0XHRcdHRyQ2hpbGQuc3R5bGUuaGVpZ2h0ID0gXCI5cHhcIjtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDggQ2hyb21lIDg2K1xuXHRcdFx0XHQvLyBJbiBvdXIgYm9keUJhY2tncm91bmQuaHRtbCBpZnJhbWUsXG5cdFx0XHRcdC8vIGRpc3BsYXkgZm9yIGFsbCBkaXYgZWxlbWVudHMgaXMgc2V0IHRvIFwiaW5saW5lXCIsXG5cdFx0XHRcdC8vIHdoaWNoIGNhdXNlcyBhIHByb2JsZW0gb25seSBpbiBBbmRyb2lkIDggQ2hyb21lIDg2LlxuXHRcdFx0XHQvLyBFbnN1cmluZyB0aGUgZGl2IGlzIGRpc3BsYXk6IGJsb2NrXG5cdFx0XHRcdC8vIGdldHMgYXJvdW5kIHRoaXMgaXNzdWUuXG5cdFx0XHRcdHRyQ2hpbGQuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcblxuXHRcdFx0XHRkb2N1bWVudEVsZW1lbnRcblx0XHRcdFx0XHQuYXBwZW5kQ2hpbGQoIHRhYmxlIClcblx0XHRcdFx0XHQuYXBwZW5kQ2hpbGQoIHRyIClcblx0XHRcdFx0XHQuYXBwZW5kQ2hpbGQoIHRyQ2hpbGQgKTtcblxuXHRcdFx0XHR0clN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoIHRyICk7XG5cdFx0XHRcdHJlbGlhYmxlVHJEaW1lbnNpb25zVmFsID0gKCBwYXJzZUludCggdHJTdHlsZS5oZWlnaHQsIDEwICkgK1xuXHRcdFx0XHRcdHBhcnNlSW50KCB0clN0eWxlLmJvcmRlclRvcFdpZHRoLCAxMCApICtcblx0XHRcdFx0XHRwYXJzZUludCggdHJTdHlsZS5ib3JkZXJCb3R0b21XaWR0aCwgMTAgKSApID09PSB0ci5vZmZzZXRIZWlnaHQ7XG5cblx0XHRcdFx0ZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKCB0YWJsZSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlbGlhYmxlVHJEaW1lbnNpb25zVmFsO1xuXHRcdH1cblx0fSApO1xufSApKCk7XG5cblxuZnVuY3Rpb24gY3VyQ1NTKCBlbGVtLCBuYW1lLCBjb21wdXRlZCApIHtcblx0dmFyIHdpZHRoLCBtaW5XaWR0aCwgbWF4V2lkdGgsIHJldCxcblx0XHRpc0N1c3RvbVByb3AgPSByY3VzdG9tUHJvcC50ZXN0KCBuYW1lICksXG5cblx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDUxK1xuXHRcdC8vIFJldHJpZXZpbmcgc3R5bGUgYmVmb3JlIGNvbXB1dGVkIHNvbWVob3dcblx0XHQvLyBmaXhlcyBhbiBpc3N1ZSB3aXRoIGdldHRpbmcgd3JvbmcgdmFsdWVzXG5cdFx0Ly8gb24gZGV0YWNoZWQgZWxlbWVudHNcblx0XHRzdHlsZSA9IGVsZW0uc3R5bGU7XG5cblx0Y29tcHV0ZWQgPSBjb21wdXRlZCB8fCBnZXRTdHlsZXMoIGVsZW0gKTtcblxuXHQvLyBnZXRQcm9wZXJ0eVZhbHVlIGlzIG5lZWRlZCBmb3I6XG5cdC8vICAgLmNzcygnZmlsdGVyJykgKElFIDkgb25seSwgdHJhYy0xMjUzNylcblx0Ly8gICAuY3NzKCctLWN1c3RvbVByb3BlcnR5KSAoZ2gtMzE0NClcblx0aWYgKCBjb21wdXRlZCApIHtcblx0XHRyZXQgPSBjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCBuYW1lICkgfHwgY29tcHV0ZWRbIG5hbWUgXTtcblxuXHRcdC8vIHRyaW0gd2hpdGVzcGFjZSBmb3IgY3VzdG9tIHByb3BlcnR5IChpc3N1ZSBnaC00OTI2KVxuXHRcdGlmICggaXNDdXN0b21Qcm9wICkge1xuXG5cdFx0XHQvLyBydHJpbSB0cmVhdHMgVSswMDBEIENBUlJJQUdFIFJFVFVSTiBhbmQgVSswMDBDIEZPUk0gRkVFRFxuXHRcdFx0Ly8gYXMgd2hpdGVzcGFjZSB3aGlsZSBDU1MgZG9lcyBub3QsIGJ1dCB0aGlzIGlzIG5vdCBhIHByb2JsZW1cblx0XHRcdC8vIGJlY2F1c2UgQ1NTIHByZXByb2Nlc3NpbmcgcmVwbGFjZXMgdGhlbSB3aXRoIFUrMDAwQSBMSU5FIEZFRURcblx0XHRcdC8vICh3aGljaCAqaXMqIENTUyB3aGl0ZXNwYWNlKVxuXHRcdFx0Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zeW50YXgtMy8jaW5wdXQtcHJlcHJvY2Vzc2luZ1xuXHRcdFx0cmV0ID0gcmV0LnJlcGxhY2UoIHJ0cmltQ1NTLCBcIiQxXCIgKTtcblx0XHR9XG5cblx0XHRpZiAoIHJldCA9PT0gXCJcIiAmJiAhaXNBdHRhY2hlZCggZWxlbSApICkge1xuXHRcdFx0cmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gQSB0cmlidXRlIHRvIHRoZSBcImF3ZXNvbWUgaGFjayBieSBEZWFuIEVkd2FyZHNcIlxuXHRcdC8vIEFuZHJvaWQgQnJvd3NlciByZXR1cm5zIHBlcmNlbnRhZ2UgZm9yIHNvbWUgdmFsdWVzLFxuXHRcdC8vIGJ1dCB3aWR0aCBzZWVtcyB0byBiZSByZWxpYWJseSBwaXhlbHMuXG5cdFx0Ly8gVGhpcyBpcyBhZ2FpbnN0IHRoZSBDU1NPTSBkcmFmdCBzcGVjOlxuXHRcdC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8jcmVzb2x2ZWQtdmFsdWVzXG5cdFx0aWYgKCAhc3VwcG9ydC5waXhlbEJveFN0eWxlcygpICYmIHJudW1ub25weC50ZXN0KCByZXQgKSAmJiByYm94U3R5bGUudGVzdCggbmFtZSApICkge1xuXG5cdFx0XHQvLyBSZW1lbWJlciB0aGUgb3JpZ2luYWwgdmFsdWVzXG5cdFx0XHR3aWR0aCA9IHN0eWxlLndpZHRoO1xuXHRcdFx0bWluV2lkdGggPSBzdHlsZS5taW5XaWR0aDtcblx0XHRcdG1heFdpZHRoID0gc3R5bGUubWF4V2lkdGg7XG5cblx0XHRcdC8vIFB1dCBpbiB0aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXRcblx0XHRcdHN0eWxlLm1pbldpZHRoID0gc3R5bGUubWF4V2lkdGggPSBzdHlsZS53aWR0aCA9IHJldDtcblx0XHRcdHJldCA9IGNvbXB1dGVkLndpZHRoO1xuXG5cdFx0XHQvLyBSZXZlcnQgdGhlIGNoYW5nZWQgdmFsdWVzXG5cdFx0XHRzdHlsZS53aWR0aCA9IHdpZHRoO1xuXHRcdFx0c3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDtcblx0XHRcdHN0eWxlLm1heFdpZHRoID0gbWF4V2lkdGg7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHJldCAhPT0gdW5kZWZpbmVkID9cblxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0XHQvLyBJRSByZXR1cm5zIHpJbmRleCB2YWx1ZSBhcyBhbiBpbnRlZ2VyLlxuXHRcdHJldCArIFwiXCIgOlxuXHRcdHJldDtcbn1cblxuXG5mdW5jdGlvbiBhZGRHZXRIb29rSWYoIGNvbmRpdGlvbkZuLCBob29rRm4gKSB7XG5cblx0Ly8gRGVmaW5lIHRoZSBob29rLCB3ZSdsbCBjaGVjayBvbiB0aGUgZmlyc3QgcnVuIGlmIGl0J3MgcmVhbGx5IG5lZWRlZC5cblx0cmV0dXJuIHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0aWYgKCBjb25kaXRpb25GbigpICkge1xuXG5cdFx0XHRcdC8vIEhvb2sgbm90IG5lZWRlZCAob3IgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIGl0IGR1ZVxuXHRcdFx0XHQvLyB0byBtaXNzaW5nIGRlcGVuZGVuY3kpLCByZW1vdmUgaXQuXG5cdFx0XHRcdGRlbGV0ZSB0aGlzLmdldDtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBIb29rIG5lZWRlZDsgcmVkZWZpbmUgaXQgc28gdGhhdCB0aGUgc3VwcG9ydCB0ZXN0IGlzIG5vdCBleGVjdXRlZCBhZ2Fpbi5cblx0XHRcdHJldHVybiAoIHRoaXMuZ2V0ID0gaG9va0ZuICkuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdH1cblx0fTtcbn1cblxuXG52YXIgY3NzUHJlZml4ZXMgPSBbIFwiV2Via2l0XCIsIFwiTW96XCIsIFwibXNcIiBdLFxuXHRlbXB0eVN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApLnN0eWxlLFxuXHR2ZW5kb3JQcm9wcyA9IHt9O1xuXG4vLyBSZXR1cm4gYSB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgb3IgdW5kZWZpbmVkXG5mdW5jdGlvbiB2ZW5kb3JQcm9wTmFtZSggbmFtZSApIHtcblxuXHQvLyBDaGVjayBmb3IgdmVuZG9yIHByZWZpeGVkIG5hbWVzXG5cdHZhciBjYXBOYW1lID0gbmFtZVsgMCBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKCAxICksXG5cdFx0aSA9IGNzc1ByZWZpeGVzLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRuYW1lID0gY3NzUHJlZml4ZXNbIGkgXSArIGNhcE5hbWU7XG5cdFx0aWYgKCBuYW1lIGluIGVtcHR5U3R5bGUgKSB7XG5cdFx0XHRyZXR1cm4gbmFtZTtcblx0XHR9XG5cdH1cbn1cblxuLy8gUmV0dXJuIGEgcG90ZW50aWFsbHktbWFwcGVkIGpRdWVyeS5jc3NQcm9wcyBvciB2ZW5kb3IgcHJlZml4ZWQgcHJvcGVydHlcbmZ1bmN0aW9uIGZpbmFsUHJvcE5hbWUoIG5hbWUgKSB7XG5cdHZhciBmaW5hbCA9IGpRdWVyeS5jc3NQcm9wc1sgbmFtZSBdIHx8IHZlbmRvclByb3BzWyBuYW1lIF07XG5cblx0aWYgKCBmaW5hbCApIHtcblx0XHRyZXR1cm4gZmluYWw7XG5cdH1cblx0aWYgKCBuYW1lIGluIGVtcHR5U3R5bGUgKSB7XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cblx0cmV0dXJuIHZlbmRvclByb3BzWyBuYW1lIF0gPSB2ZW5kb3JQcm9wTmFtZSggbmFtZSApIHx8IG5hbWU7XG59XG5cblxudmFyXG5cblx0Ly8gU3dhcHBhYmxlIGlmIGRpc3BsYXkgaXMgbm9uZSBvciBzdGFydHMgd2l0aCB0YWJsZVxuXHQvLyBleGNlcHQgXCJ0YWJsZVwiLCBcInRhYmxlLWNlbGxcIiwgb3IgXCJ0YWJsZS1jYXB0aW9uXCJcblx0Ly8gU2VlIGhlcmUgZm9yIGRpc3BsYXkgdmFsdWVzOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0NTUy9kaXNwbGF5XG5cdHJkaXNwbGF5c3dhcCA9IC9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxcblx0Y3NzU2hvdyA9IHsgcG9zaXRpb246IFwiYWJzb2x1dGVcIiwgdmlzaWJpbGl0eTogXCJoaWRkZW5cIiwgZGlzcGxheTogXCJibG9ja1wiIH0sXG5cdGNzc05vcm1hbFRyYW5zZm9ybSA9IHtcblx0XHRsZXR0ZXJTcGFjaW5nOiBcIjBcIixcblx0XHRmb250V2VpZ2h0OiBcIjQwMFwiXG5cdH07XG5cbmZ1bmN0aW9uIHNldFBvc2l0aXZlTnVtYmVyKCBfZWxlbSwgdmFsdWUsIHN1YnRyYWN0ICkge1xuXG5cdC8vIEFueSByZWxhdGl2ZSAoKy8tKSB2YWx1ZXMgaGF2ZSBhbHJlYWR5IGJlZW5cblx0Ly8gbm9ybWFsaXplZCBhdCB0aGlzIHBvaW50XG5cdHZhciBtYXRjaGVzID0gcmNzc051bS5leGVjKCB2YWx1ZSApO1xuXHRyZXR1cm4gbWF0Y2hlcyA/XG5cblx0XHQvLyBHdWFyZCBhZ2FpbnN0IHVuZGVmaW5lZCBcInN1YnRyYWN0XCIsIGUuZy4sIHdoZW4gdXNlZCBhcyBpbiBjc3NIb29rc1xuXHRcdE1hdGgubWF4KCAwLCBtYXRjaGVzWyAyIF0gLSAoIHN1YnRyYWN0IHx8IDAgKSApICsgKCBtYXRjaGVzWyAzIF0gfHwgXCJweFwiICkgOlxuXHRcdHZhbHVlO1xufVxuXG5mdW5jdGlvbiBib3hNb2RlbEFkanVzdG1lbnQoIGVsZW0sIGRpbWVuc2lvbiwgYm94LCBpc0JvcmRlckJveCwgc3R5bGVzLCBjb21wdXRlZFZhbCApIHtcblx0dmFyIGkgPSBkaW1lbnNpb24gPT09IFwid2lkdGhcIiA/IDEgOiAwLFxuXHRcdGV4dHJhID0gMCxcblx0XHRkZWx0YSA9IDA7XG5cblx0Ly8gQWRqdXN0bWVudCBtYXkgbm90IGJlIG5lY2Vzc2FyeVxuXHRpZiAoIGJveCA9PT0gKCBpc0JvcmRlckJveCA/IFwiYm9yZGVyXCIgOiBcImNvbnRlbnRcIiApICkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Zm9yICggOyBpIDwgNDsgaSArPSAyICkge1xuXG5cdFx0Ly8gQm90aCBib3ggbW9kZWxzIGV4Y2x1ZGUgbWFyZ2luXG5cdFx0aWYgKCBib3ggPT09IFwibWFyZ2luXCIgKSB7XG5cdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBib3ggKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0fVxuXG5cdFx0Ly8gSWYgd2UgZ2V0IGhlcmUgd2l0aCBhIGNvbnRlbnQtYm94LCB3ZSdyZSBzZWVraW5nIFwicGFkZGluZ1wiIG9yIFwiYm9yZGVyXCIgb3IgXCJtYXJnaW5cIlxuXHRcdGlmICggIWlzQm9yZGVyQm94ICkge1xuXG5cdFx0XHQvLyBBZGQgcGFkZGluZ1xuXHRcdFx0ZGVsdGEgKz0galF1ZXJ5LmNzcyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cblx0XHRcdC8vIEZvciBcImJvcmRlclwiIG9yIFwibWFyZ2luXCIsIGFkZCBib3JkZXJcblx0XHRcdGlmICggYm94ICE9PSBcInBhZGRpbmdcIiApIHtcblx0XHRcdFx0ZGVsdGEgKz0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiLCB0cnVlLCBzdHlsZXMgKTtcblxuXHRcdFx0Ly8gQnV0IHN0aWxsIGtlZXAgdHJhY2sgb2YgaXQgb3RoZXJ3aXNlXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRleHRyYSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXHRcdFx0fVxuXG5cdFx0Ly8gSWYgd2UgZ2V0IGhlcmUgd2l0aCBhIGJvcmRlci1ib3ggKGNvbnRlbnQgKyBwYWRkaW5nICsgYm9yZGVyKSwgd2UncmUgc2Vla2luZyBcImNvbnRlbnRcIiBvclxuXHRcdC8vIFwicGFkZGluZ1wiIG9yIFwibWFyZ2luXCJcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBGb3IgXCJjb250ZW50XCIsIHN1YnRyYWN0IHBhZGRpbmdcblx0XHRcdGlmICggYm94ID09PSBcImNvbnRlbnRcIiApIHtcblx0XHRcdFx0ZGVsdGEgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZvciBcImNvbnRlbnRcIiBvciBcInBhZGRpbmdcIiwgc3VidHJhY3QgYm9yZGVyXG5cdFx0XHRpZiAoIGJveCAhPT0gXCJtYXJnaW5cIiApIHtcblx0XHRcdFx0ZGVsdGEgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiLCB0cnVlLCBzdHlsZXMgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBBY2NvdW50IGZvciBwb3NpdGl2ZSBjb250ZW50LWJveCBzY3JvbGwgZ3V0dGVyIHdoZW4gcmVxdWVzdGVkIGJ5IHByb3ZpZGluZyBjb21wdXRlZFZhbFxuXHRpZiAoICFpc0JvcmRlckJveCAmJiBjb21wdXRlZFZhbCA+PSAwICkge1xuXG5cdFx0Ly8gb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGlzIGEgcm91bmRlZCBzdW0gb2YgY29udGVudCwgcGFkZGluZywgc2Nyb2xsIGd1dHRlciwgYW5kIGJvcmRlclxuXHRcdC8vIEFzc3VtaW5nIGludGVnZXIgc2Nyb2xsIGd1dHRlciwgc3VidHJhY3QgdGhlIHJlc3QgYW5kIHJvdW5kIGRvd25cblx0XHRkZWx0YSArPSBNYXRoLm1heCggMCwgTWF0aC5jZWlsKFxuXHRcdFx0ZWxlbVsgXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKSBdIC1cblx0XHRcdGNvbXB1dGVkVmFsIC1cblx0XHRcdGRlbHRhIC1cblx0XHRcdGV4dHJhIC1cblx0XHRcdDAuNVxuXG5cdFx0Ly8gSWYgb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGlzIHVua25vd24sIHRoZW4gd2UgY2FuJ3QgZGV0ZXJtaW5lIGNvbnRlbnQtYm94IHNjcm9sbCBndXR0ZXJcblx0XHQvLyBVc2UgYW4gZXhwbGljaXQgemVybyB0byBhdm9pZCBOYU4gKGdoLTM5NjQpXG5cdFx0KSApIHx8IDA7XG5cdH1cblxuXHRyZXR1cm4gZGVsdGE7XG59XG5cbmZ1bmN0aW9uIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIGRpbWVuc2lvbiwgZXh0cmEgKSB7XG5cblx0Ly8gU3RhcnQgd2l0aCBjb21wdXRlZCBzdHlsZVxuXHR2YXIgc3R5bGVzID0gZ2V0U3R5bGVzKCBlbGVtICksXG5cblx0XHQvLyBUbyBhdm9pZCBmb3JjaW5nIGEgcmVmbG93LCBvbmx5IGZldGNoIGJveFNpemluZyBpZiB3ZSBuZWVkIGl0IChnaC00MzIyKS5cblx0XHQvLyBGYWtlIGNvbnRlbnQtYm94IHVudGlsIHdlIGtub3cgaXQncyBuZWVkZWQgdG8ga25vdyB0aGUgdHJ1ZSB2YWx1ZS5cblx0XHRib3hTaXppbmdOZWVkZWQgPSAhc3VwcG9ydC5ib3hTaXppbmdSZWxpYWJsZSgpIHx8IGV4dHJhLFxuXHRcdGlzQm9yZGVyQm94ID0gYm94U2l6aW5nTmVlZGVkICYmXG5cdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiLFxuXHRcdHZhbHVlSXNCb3JkZXJCb3ggPSBpc0JvcmRlckJveCxcblxuXHRcdHZhbCA9IGN1ckNTUyggZWxlbSwgZGltZW5zaW9uLCBzdHlsZXMgKSxcblx0XHRvZmZzZXRQcm9wID0gXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKTtcblxuXHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NTRcblx0Ly8gUmV0dXJuIGEgY29uZm91bmRpbmcgbm9uLXBpeGVsIHZhbHVlIG9yIGZlaWduIGlnbm9yYW5jZSwgYXMgYXBwcm9wcmlhdGUuXG5cdGlmICggcm51bW5vbnB4LnRlc3QoIHZhbCApICkge1xuXHRcdGlmICggIWV4dHJhICkge1xuXHRcdFx0cmV0dXJuIHZhbDtcblx0XHR9XG5cdFx0dmFsID0gXCJhdXRvXCI7XG5cdH1cblxuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5XG5cdC8vIFVzZSBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgZm9yIHdoZW4gYm94IHNpemluZyBpcyB1bnJlbGlhYmxlLlxuXHQvLyBJbiB0aG9zZSBjYXNlcywgdGhlIGNvbXB1dGVkIHZhbHVlIGNhbiBiZSB0cnVzdGVkIHRvIGJlIGJvcmRlci1ib3guXG5cdGlmICggKCAhc3VwcG9ydC5ib3hTaXppbmdSZWxpYWJsZSgpICYmIGlzQm9yZGVyQm94IHx8XG5cblx0XHQvLyBTdXBwb3J0OiBJRSAxMCAtIDExKywgRWRnZSAxNSAtIDE4K1xuXHRcdC8vIElFL0VkZ2UgbWlzcmVwb3J0IGBnZXRDb21wdXRlZFN0eWxlYCBvZiB0YWJsZSByb3dzIHdpdGggd2lkdGgvaGVpZ2h0XG5cdFx0Ly8gc2V0IGluIENTUyB3aGlsZSBgb2Zmc2V0KmAgcHJvcGVydGllcyByZXBvcnQgY29ycmVjdCB2YWx1ZXMuXG5cdFx0Ly8gSW50ZXJlc3RpbmdseSwgaW4gc29tZSBjYXNlcyBJRSA5IGRvZXNuJ3Qgc3VmZmVyIGZyb20gdGhpcyBpc3N1ZS5cblx0XHQhc3VwcG9ydC5yZWxpYWJsZVRyRGltZW5zaW9ucygpICYmIG5vZGVOYW1lKCBlbGVtLCBcInRyXCIgKSB8fFxuXG5cdFx0Ly8gRmFsbCBiYWNrIHRvIG9mZnNldFdpZHRoL29mZnNldEhlaWdodCB3aGVuIHZhbHVlIGlzIFwiYXV0b1wiXG5cdFx0Ly8gVGhpcyBoYXBwZW5zIGZvciBpbmxpbmUgZWxlbWVudHMgd2l0aCBubyBleHBsaWNpdCBzZXR0aW5nIChnaC0zNTcxKVxuXHRcdHZhbCA9PT0gXCJhdXRvXCIgfHxcblxuXHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjEgLSA0LjMgb25seVxuXHRcdC8vIEFsc28gdXNlIG9mZnNldFdpZHRoL29mZnNldEhlaWdodCBmb3IgbWlzcmVwb3J0ZWQgaW5saW5lIGRpbWVuc2lvbnMgKGdoLTM2MDIpXG5cdFx0IXBhcnNlRmxvYXQoIHZhbCApICYmIGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiaW5saW5lXCIgKSAmJlxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIHZpc2libGUgJiBjb25uZWN0ZWRcblx0XHRlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICkge1xuXG5cdFx0aXNCb3JkZXJCb3ggPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiO1xuXG5cdFx0Ly8gV2hlcmUgYXZhaWxhYmxlLCBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgYXBwcm94aW1hdGUgYm9yZGVyIGJveCBkaW1lbnNpb25zLlxuXHRcdC8vIFdoZXJlIG5vdCBhdmFpbGFibGUgKGUuZy4sIFNWRyksIGFzc3VtZSB1bnJlbGlhYmxlIGJveC1zaXppbmcgYW5kIGludGVycHJldCB0aGVcblx0XHQvLyByZXRyaWV2ZWQgdmFsdWUgYXMgYSBjb250ZW50IGJveCBkaW1lbnNpb24uXG5cdFx0dmFsdWVJc0JvcmRlckJveCA9IG9mZnNldFByb3AgaW4gZWxlbTtcblx0XHRpZiAoIHZhbHVlSXNCb3JkZXJCb3ggKSB7XG5cdFx0XHR2YWwgPSBlbGVtWyBvZmZzZXRQcm9wIF07XG5cdFx0fVxuXHR9XG5cblx0Ly8gTm9ybWFsaXplIFwiXCIgYW5kIGF1dG9cblx0dmFsID0gcGFyc2VGbG9hdCggdmFsICkgfHwgMDtcblxuXHQvLyBBZGp1c3QgZm9yIHRoZSBlbGVtZW50J3MgYm94IG1vZGVsXG5cdHJldHVybiAoIHZhbCArXG5cdFx0Ym94TW9kZWxBZGp1c3RtZW50KFxuXHRcdFx0ZWxlbSxcblx0XHRcdGRpbWVuc2lvbixcblx0XHRcdGV4dHJhIHx8ICggaXNCb3JkZXJCb3ggPyBcImJvcmRlclwiIDogXCJjb250ZW50XCIgKSxcblx0XHRcdHZhbHVlSXNCb3JkZXJCb3gsXG5cdFx0XHRzdHlsZXMsXG5cblx0XHRcdC8vIFByb3ZpZGUgdGhlIGN1cnJlbnQgY29tcHV0ZWQgc2l6ZSB0byByZXF1ZXN0IHNjcm9sbCBndXR0ZXIgY2FsY3VsYXRpb24gKGdoLTM1ODkpXG5cdFx0XHR2YWxcblx0XHQpXG5cdCkgKyBcInB4XCI7XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBBZGQgaW4gc3R5bGUgcHJvcGVydHkgaG9va3MgZm9yIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHRcblx0Ly8gYmVoYXZpb3Igb2YgZ2V0dGluZyBhbmQgc2V0dGluZyBhIHN0eWxlIHByb3BlcnR5XG5cdGNzc0hvb2tzOiB7XG5cdFx0b3BhY2l0eToge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0XHRcdGlmICggY29tcHV0ZWQgKSB7XG5cblx0XHRcdFx0XHQvLyBXZSBzaG91bGQgYWx3YXlzIGdldCBhIG51bWJlciBiYWNrIGZyb20gb3BhY2l0eVxuXHRcdFx0XHRcdHZhciByZXQgPSBjdXJDU1MoIGVsZW0sIFwib3BhY2l0eVwiICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJldCA9PT0gXCJcIiA/IFwiMVwiIDogcmV0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdC8vIERvbid0IGF1dG9tYXRpY2FsbHkgYWRkIFwicHhcIiB0byB0aGVzZSBwb3NzaWJseS11bml0bGVzcyBwcm9wZXJ0aWVzXG5cdGNzc051bWJlcjoge1xuXHRcdFwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnRcIjogdHJ1ZSxcblx0XHRcImNvbHVtbkNvdW50XCI6IHRydWUsXG5cdFx0XCJmaWxsT3BhY2l0eVwiOiB0cnVlLFxuXHRcdFwiZmxleEdyb3dcIjogdHJ1ZSxcblx0XHRcImZsZXhTaHJpbmtcIjogdHJ1ZSxcblx0XHRcImZvbnRXZWlnaHRcIjogdHJ1ZSxcblx0XHRcImdyaWRBcmVhXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uRW5kXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uU3RhcnRcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dFbmRcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dTdGFydFwiOiB0cnVlLFxuXHRcdFwibGluZUhlaWdodFwiOiB0cnVlLFxuXHRcdFwib3BhY2l0eVwiOiB0cnVlLFxuXHRcdFwib3JkZXJcIjogdHJ1ZSxcblx0XHRcIm9ycGhhbnNcIjogdHJ1ZSxcblx0XHRcIndpZG93c1wiOiB0cnVlLFxuXHRcdFwiekluZGV4XCI6IHRydWUsXG5cdFx0XCJ6b29tXCI6IHRydWVcblx0fSxcblxuXHQvLyBBZGQgaW4gcHJvcGVydGllcyB3aG9zZSBuYW1lcyB5b3Ugd2lzaCB0byBmaXggYmVmb3JlXG5cdC8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFsdWVcblx0Y3NzUHJvcHM6IHt9LFxuXG5cdC8vIEdldCBhbmQgc2V0IHRoZSBzdHlsZSBwcm9wZXJ0eSBvbiBhIERPTSBOb2RlXG5cdHN0eWxlOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUsIGV4dHJhICkge1xuXG5cdFx0Ly8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzXG5cdFx0aWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggfHwgIWVsZW0uc3R5bGUgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lXG5cdFx0dmFyIHJldCwgdHlwZSwgaG9va3MsXG5cdFx0XHRvcmlnTmFtZSA9IGNhbWVsQ2FzZSggbmFtZSApLFxuXHRcdFx0aXNDdXN0b21Qcm9wID0gcmN1c3RvbVByb3AudGVzdCggbmFtZSApLFxuXHRcdFx0c3R5bGUgPSBlbGVtLnN0eWxlO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lLiBXZSBkb24ndFxuXHRcdC8vIHdhbnQgdG8gcXVlcnkgdGhlIHZhbHVlIGlmIGl0IGlzIGEgQ1NTIGN1c3RvbSBwcm9wZXJ0eVxuXHRcdC8vIHNpbmNlIHRoZXkgYXJlIHVzZXItZGVmaW5lZC5cblx0XHRpZiAoICFpc0N1c3RvbVByb3AgKSB7XG5cdFx0XHRuYW1lID0gZmluYWxQcm9wTmFtZSggb3JpZ05hbWUgKTtcblx0XHR9XG5cblx0XHQvLyBHZXRzIGhvb2sgZm9yIHRoZSBwcmVmaXhlZCB2ZXJzaW9uLCB0aGVuIHVucHJlZml4ZWQgdmVyc2lvblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xuXG5cdFx0Ly8gQ2hlY2sgaWYgd2UncmUgc2V0dGluZyBhIHZhbHVlXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dHlwZSA9IHR5cGVvZiB2YWx1ZTtcblxuXHRcdFx0Ly8gQ29udmVydCBcIis9XCIgb3IgXCItPVwiIHRvIHJlbGF0aXZlIG51bWJlcnMgKHRyYWMtNzM0NSlcblx0XHRcdGlmICggdHlwZSA9PT0gXCJzdHJpbmdcIiAmJiAoIHJldCA9IHJjc3NOdW0uZXhlYyggdmFsdWUgKSApICYmIHJldFsgMSBdICkge1xuXHRcdFx0XHR2YWx1ZSA9IGFkanVzdENTUyggZWxlbSwgbmFtZSwgcmV0ICk7XG5cblx0XHRcdFx0Ly8gRml4ZXMgYnVnIHRyYWMtOTIzN1xuXHRcdFx0XHR0eXBlID0gXCJudW1iZXJcIjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTWFrZSBzdXJlIHRoYXQgbnVsbCBhbmQgTmFOIHZhbHVlcyBhcmVuJ3Qgc2V0ICh0cmFjLTcxMTYpXG5cdFx0XHRpZiAoIHZhbHVlID09IG51bGwgfHwgdmFsdWUgIT09IHZhbHVlICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIGEgbnVtYmVyIHdhcyBwYXNzZWQgaW4sIGFkZCB0aGUgdW5pdCAoZXhjZXB0IGZvciBjZXJ0YWluIENTUyBwcm9wZXJ0aWVzKVxuXHRcdFx0Ly8gVGhlIGlzQ3VzdG9tUHJvcCBjaGVjayBjYW4gYmUgcmVtb3ZlZCBpbiBqUXVlcnkgNC4wIHdoZW4gd2Ugb25seSBhdXRvLWFwcGVuZFxuXHRcdFx0Ly8gXCJweFwiIHRvIGEgZmV3IGhhcmRjb2RlZCB2YWx1ZXMuXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwibnVtYmVyXCIgJiYgIWlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdFx0dmFsdWUgKz0gcmV0ICYmIHJldFsgMyBdIHx8ICggalF1ZXJ5LmNzc051bWJlclsgb3JpZ05hbWUgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gYmFja2dyb3VuZC0qIHByb3BzIGFmZmVjdCBvcmlnaW5hbCBjbG9uZSdzIHZhbHVlc1xuXHRcdFx0aWYgKCAhc3VwcG9ydC5jbGVhckNsb25lU3R5bGUgJiYgdmFsdWUgPT09IFwiXCIgJiYgbmFtZS5pbmRleE9mKCBcImJhY2tncm91bmRcIiApID09PSAwICkge1xuXHRcdFx0XHRzdHlsZVsgbmFtZSBdID0gXCJpbmhlcml0XCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQsIHVzZSB0aGF0IHZhbHVlLCBvdGhlcndpc2UganVzdCBzZXQgdGhlIHNwZWNpZmllZCB2YWx1ZVxuXHRcdFx0aWYgKCAhaG9va3MgfHwgISggXCJzZXRcIiBpbiBob29rcyApIHx8XG5cdFx0XHRcdCggdmFsdWUgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBleHRyYSApICkgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0XHRpZiAoIGlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdFx0XHRzdHlsZS5zZXRQcm9wZXJ0eSggbmFtZSwgdmFsdWUgKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdHlsZVsgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBub24tY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZVxuXHRcdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdCggcmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBmYWxzZSwgZXh0cmEgKSApICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT3RoZXJ3aXNlIGp1c3QgZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBzdHlsZSBvYmplY3Rcblx0XHRcdHJldHVybiBzdHlsZVsgbmFtZSBdO1xuXHRcdH1cblx0fSxcblxuXHRjc3M6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBleHRyYSwgc3R5bGVzICkge1xuXHRcdHZhciB2YWwsIG51bSwgaG9va3MsXG5cdFx0XHRvcmlnTmFtZSA9IGNhbWVsQ2FzZSggbmFtZSApLFxuXHRcdFx0aXNDdXN0b21Qcm9wID0gcmN1c3RvbVByb3AudGVzdCggbmFtZSApO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lLiBXZSBkb24ndFxuXHRcdC8vIHdhbnQgdG8gbW9kaWZ5IHRoZSB2YWx1ZSBpZiBpdCBpcyBhIENTUyBjdXN0b20gcHJvcGVydHlcblx0XHQvLyBzaW5jZSB0aGV5IGFyZSB1c2VyLWRlZmluZWQuXG5cdFx0aWYgKCAhaXNDdXN0b21Qcm9wICkge1xuXHRcdFx0bmFtZSA9IGZpbmFsUHJvcE5hbWUoIG9yaWdOYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gVHJ5IHByZWZpeGVkIG5hbWUgZm9sbG93ZWQgYnkgdGhlIHVucHJlZml4ZWQgbmFtZVxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xuXG5cdFx0Ly8gSWYgYSBob29rIHdhcyBwcm92aWRlZCBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmVcblx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgKSB7XG5cdFx0XHR2YWwgPSBob29rcy5nZXQoIGVsZW0sIHRydWUsIGV4dHJhICk7XG5cdFx0fVxuXG5cdFx0Ly8gT3RoZXJ3aXNlLCBpZiBhIHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXRcblx0XHRpZiAoIHZhbCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dmFsID0gY3VyQ1NTKCBlbGVtLCBuYW1lLCBzdHlsZXMgKTtcblx0XHR9XG5cblx0XHQvLyBDb252ZXJ0IFwibm9ybWFsXCIgdG8gY29tcHV0ZWQgdmFsdWVcblx0XHRpZiAoIHZhbCA9PT0gXCJub3JtYWxcIiAmJiBuYW1lIGluIGNzc05vcm1hbFRyYW5zZm9ybSApIHtcblx0XHRcdHZhbCA9IGNzc05vcm1hbFRyYW5zZm9ybVsgbmFtZSBdO1xuXHRcdH1cblxuXHRcdC8vIE1ha2UgbnVtZXJpYyBpZiBmb3JjZWQgb3IgYSBxdWFsaWZpZXIgd2FzIHByb3ZpZGVkIGFuZCB2YWwgbG9va3MgbnVtZXJpY1xuXHRcdGlmICggZXh0cmEgPT09IFwiXCIgfHwgZXh0cmEgKSB7XG5cdFx0XHRudW0gPSBwYXJzZUZsb2F0KCB2YWwgKTtcblx0XHRcdHJldHVybiBleHRyYSA9PT0gdHJ1ZSB8fCBpc0Zpbml0ZSggbnVtICkgPyBudW0gfHwgMCA6IHZhbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCBbIFwiaGVpZ2h0XCIsIFwid2lkdGhcIiBdLCBmdW5jdGlvbiggX2ksIGRpbWVuc2lvbiApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBkaW1lbnNpb24gXSA9IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCwgZXh0cmEgKSB7XG5cdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdC8vIENlcnRhaW4gZWxlbWVudHMgY2FuIGhhdmUgZGltZW5zaW9uIGluZm8gaWYgd2UgaW52aXNpYmx5IHNob3cgdGhlbVxuXHRcdFx0XHQvLyBidXQgaXQgbXVzdCBoYXZlIGEgY3VycmVudCBkaXNwbGF5IHN0eWxlIHRoYXQgd291bGQgYmVuZWZpdFxuXHRcdFx0XHRyZXR1cm4gcmRpc3BsYXlzd2FwLnRlc3QoIGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICkgKSAmJlxuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDgrXG5cdFx0XHRcdFx0Ly8gVGFibGUgY29sdW1ucyBpbiBTYWZhcmkgaGF2ZSBub24temVybyBvZmZzZXRXaWR0aCAmIHplcm9cblx0XHRcdFx0XHQvLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB1bmxlc3MgZGlzcGxheSBpcyBjaGFuZ2VkLlxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHRcdFx0XHRcdC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGEgZGlzY29ubmVjdGVkIG5vZGVcblx0XHRcdFx0XHQvLyBpbiBJRSB0aHJvd3MgYW4gZXJyb3IuXG5cdFx0XHRcdFx0KCAhZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCB8fCAhZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCApID9cblx0XHRcdFx0XHRzd2FwKCBlbGVtLCBjc3NTaG93LCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBkaW1lbnNpb24sIGV4dHJhICk7XG5cdFx0XHRcdFx0fSApIDpcblx0XHRcdFx0XHRnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBkaW1lbnNpb24sIGV4dHJhICk7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBleHRyYSApIHtcblx0XHRcdHZhciBtYXRjaGVzLFxuXHRcdFx0XHRzdHlsZXMgPSBnZXRTdHlsZXMoIGVsZW0gKSxcblxuXHRcdFx0XHQvLyBPbmx5IHJlYWQgc3R5bGVzLnBvc2l0aW9uIGlmIHRoZSB0ZXN0IGhhcyBhIGNoYW5jZSB0byBmYWlsXG5cdFx0XHRcdC8vIHRvIGF2b2lkIGZvcmNpbmcgYSByZWZsb3cuXG5cdFx0XHRcdHNjcm9sbGJveFNpemVCdWdneSA9ICFzdXBwb3J0LnNjcm9sbGJveFNpemUoKSAmJlxuXHRcdFx0XHRcdHN0eWxlcy5wb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiLFxuXG5cdFx0XHRcdC8vIFRvIGF2b2lkIGZvcmNpbmcgYSByZWZsb3csIG9ubHkgZmV0Y2ggYm94U2l6aW5nIGlmIHdlIG5lZWQgaXQgKGdoLTM5OTEpXG5cdFx0XHRcdGJveFNpemluZ05lZWRlZCA9IHNjcm9sbGJveFNpemVCdWdneSB8fCBleHRyYSxcblx0XHRcdFx0aXNCb3JkZXJCb3ggPSBib3hTaXppbmdOZWVkZWQgJiZcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiLFxuXHRcdFx0XHRzdWJ0cmFjdCA9IGV4dHJhID9cblx0XHRcdFx0XHRib3hNb2RlbEFkanVzdG1lbnQoXG5cdFx0XHRcdFx0XHRlbGVtLFxuXHRcdFx0XHRcdFx0ZGltZW5zaW9uLFxuXHRcdFx0XHRcdFx0ZXh0cmEsXG5cdFx0XHRcdFx0XHRpc0JvcmRlckJveCxcblx0XHRcdFx0XHRcdHN0eWxlc1xuXHRcdFx0XHRcdCkgOlxuXHRcdFx0XHRcdDA7XG5cblx0XHRcdC8vIEFjY291bnQgZm9yIHVucmVsaWFibGUgYm9yZGVyLWJveCBkaW1lbnNpb25zIGJ5IGNvbXBhcmluZyBvZmZzZXQqIHRvIGNvbXB1dGVkIGFuZFxuXHRcdFx0Ly8gZmFraW5nIGEgY29udGVudC1ib3ggdG8gZ2V0IGJvcmRlciBhbmQgcGFkZGluZyAoZ2gtMzY5OSlcblx0XHRcdGlmICggaXNCb3JkZXJCb3ggJiYgc2Nyb2xsYm94U2l6ZUJ1Z2d5ICkge1xuXHRcdFx0XHRzdWJ0cmFjdCAtPSBNYXRoLmNlaWwoXG5cdFx0XHRcdFx0ZWxlbVsgXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKSBdIC1cblx0XHRcdFx0XHRwYXJzZUZsb2F0KCBzdHlsZXNbIGRpbWVuc2lvbiBdICkgLVxuXHRcdFx0XHRcdGJveE1vZGVsQWRqdXN0bWVudCggZWxlbSwgZGltZW5zaW9uLCBcImJvcmRlclwiLCBmYWxzZSwgc3R5bGVzICkgLVxuXHRcdFx0XHRcdDAuNVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb252ZXJ0IHRvIHBpeGVscyBpZiB2YWx1ZSBhZGp1c3RtZW50IGlzIG5lZWRlZFxuXHRcdFx0aWYgKCBzdWJ0cmFjdCAmJiAoIG1hdGNoZXMgPSByY3NzTnVtLmV4ZWMoIHZhbHVlICkgKSAmJlxuXHRcdFx0XHQoIG1hdGNoZXNbIDMgXSB8fCBcInB4XCIgKSAhPT0gXCJweFwiICkge1xuXG5cdFx0XHRcdGVsZW0uc3R5bGVbIGRpbWVuc2lvbiBdID0gdmFsdWU7XG5cdFx0XHRcdHZhbHVlID0galF1ZXJ5LmNzcyggZWxlbSwgZGltZW5zaW9uICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBzZXRQb3NpdGl2ZU51bWJlciggZWxlbSwgdmFsdWUsIHN1YnRyYWN0ICk7XG5cdFx0fVxuXHR9O1xufSApO1xuXG5qUXVlcnkuY3NzSG9va3MubWFyZ2luTGVmdCA9IGFkZEdldEhvb2tJZiggc3VwcG9ydC5yZWxpYWJsZU1hcmdpbkxlZnQsXG5cdGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHtcblx0XHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdFx0cmV0dXJuICggcGFyc2VGbG9hdCggY3VyQ1NTKCBlbGVtLCBcIm1hcmdpbkxlZnRcIiApICkgfHxcblx0XHRcdFx0ZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cblx0XHRcdFx0XHRzd2FwKCBlbGVtLCB7IG1hcmdpbkxlZnQ6IDAgfSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xuXHRcdFx0XHRcdH0gKVxuXHRcdFx0KSArIFwicHhcIjtcblx0XHR9XG5cdH1cbik7XG5cbi8vIFRoZXNlIGhvb2tzIGFyZSB1c2VkIGJ5IGFuaW1hdGUgdG8gZXhwYW5kIHByb3BlcnRpZXNcbmpRdWVyeS5lYWNoKCB7XG5cdG1hcmdpbjogXCJcIixcblx0cGFkZGluZzogXCJcIixcblx0Ym9yZGVyOiBcIldpZHRoXCJcbn0sIGZ1bmN0aW9uKCBwcmVmaXgsIHN1ZmZpeCApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBwcmVmaXggKyBzdWZmaXggXSA9IHtcblx0XHRleHBhbmQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdHZhciBpID0gMCxcblx0XHRcdFx0ZXhwYW5kZWQgPSB7fSxcblxuXHRcdFx0XHQvLyBBc3N1bWVzIGEgc2luZ2xlIG51bWJlciBpZiBub3QgYSBzdHJpbmdcblx0XHRcdFx0cGFydHMgPSB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyB2YWx1ZS5zcGxpdCggXCIgXCIgKSA6IFsgdmFsdWUgXTtcblxuXHRcdFx0Zm9yICggOyBpIDwgNDsgaSsrICkge1xuXHRcdFx0XHRleHBhbmRlZFsgcHJlZml4ICsgY3NzRXhwYW5kWyBpIF0gKyBzdWZmaXggXSA9XG5cdFx0XHRcdFx0cGFydHNbIGkgXSB8fCBwYXJ0c1sgaSAtIDIgXSB8fCBwYXJ0c1sgMCBdO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZXhwYW5kZWQ7XG5cdFx0fVxuXHR9O1xuXG5cdGlmICggcHJlZml4ICE9PSBcIm1hcmdpblwiICkge1xuXHRcdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0uc2V0ID0gc2V0UG9zaXRpdmVOdW1iZXI7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRjc3M6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgc3R5bGVzLCBsZW4sXG5cdFx0XHRcdG1hcCA9IHt9LFxuXHRcdFx0XHRpID0gMDtcblxuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCBuYW1lICkgKSB7XG5cdFx0XHRcdHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApO1xuXHRcdFx0XHRsZW4gPSBuYW1lLmxlbmd0aDtcblxuXHRcdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRtYXBbIG5hbWVbIGkgXSBdID0galF1ZXJ5LmNzcyggZWxlbSwgbmFtZVsgaSBdLCBmYWxzZSwgc3R5bGVzICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gbWFwO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgbmFtZSwgdmFsdWUgKSA6XG5cdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIG5hbWUgKTtcblx0XHR9LCBuYW1lLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgKTtcblx0fVxufSApO1xuXG5cbmZ1bmN0aW9uIFR3ZWVuKCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZyApIHtcblx0cmV0dXJuIG5ldyBUd2Vlbi5wcm90b3R5cGUuaW5pdCggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5kLCBlYXNpbmcgKTtcbn1cbmpRdWVyeS5Ud2VlbiA9IFR3ZWVuO1xuXG5Ud2Vlbi5wcm90b3R5cGUgPSB7XG5cdGNvbnN0cnVjdG9yOiBUd2Vlbixcblx0aW5pdDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nLCB1bml0ICkge1xuXHRcdHRoaXMuZWxlbSA9IGVsZW07XG5cdFx0dGhpcy5wcm9wID0gcHJvcDtcblx0XHR0aGlzLmVhc2luZyA9IGVhc2luZyB8fCBqUXVlcnkuZWFzaW5nLl9kZWZhdWx0O1xuXHRcdHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cdFx0dGhpcy5zdGFydCA9IHRoaXMubm93ID0gdGhpcy5jdXIoKTtcblx0XHR0aGlzLmVuZCA9IGVuZDtcblx0XHR0aGlzLnVuaXQgPSB1bml0IHx8ICggalF1ZXJ5LmNzc051bWJlclsgcHJvcCBdID8gXCJcIiA6IFwicHhcIiApO1xuXHR9LFxuXHRjdXI6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBob29rcyA9IFR3ZWVuLnByb3BIb29rc1sgdGhpcy5wcm9wIF07XG5cblx0XHRyZXR1cm4gaG9va3MgJiYgaG9va3MuZ2V0ID9cblx0XHRcdGhvb2tzLmdldCggdGhpcyApIDpcblx0XHRcdFR3ZWVuLnByb3BIb29rcy5fZGVmYXVsdC5nZXQoIHRoaXMgKTtcblx0fSxcblx0cnVuOiBmdW5jdGlvbiggcGVyY2VudCApIHtcblx0XHR2YXIgZWFzZWQsXG5cdFx0XHRob29rcyA9IFR3ZWVuLnByb3BIb29rc1sgdGhpcy5wcm9wIF07XG5cblx0XHRpZiAoIHRoaXMub3B0aW9ucy5kdXJhdGlvbiApIHtcblx0XHRcdHRoaXMucG9zID0gZWFzZWQgPSBqUXVlcnkuZWFzaW5nWyB0aGlzLmVhc2luZyBdKFxuXHRcdFx0XHRwZXJjZW50LCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKiBwZXJjZW50LCAwLCAxLCB0aGlzLm9wdGlvbnMuZHVyYXRpb25cblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMucG9zID0gZWFzZWQgPSBwZXJjZW50O1xuXHRcdH1cblx0XHR0aGlzLm5vdyA9ICggdGhpcy5lbmQgLSB0aGlzLnN0YXJ0ICkgKiBlYXNlZCArIHRoaXMuc3RhcnQ7XG5cblx0XHRpZiAoIHRoaXMub3B0aW9ucy5zdGVwICkge1xuXHRcdFx0dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCggdGhpcy5lbGVtLCB0aGlzLm5vdywgdGhpcyApO1xuXHRcdH1cblxuXHRcdGlmICggaG9va3MgJiYgaG9va3Muc2V0ICkge1xuXHRcdFx0aG9va3Muc2V0KCB0aGlzICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdFR3ZWVuLnByb3BIb29rcy5fZGVmYXVsdC5zZXQoIHRoaXMgKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn07XG5cblR3ZWVuLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZSA9IFR3ZWVuLnByb3RvdHlwZTtcblxuVHdlZW4ucHJvcEhvb2tzID0ge1xuXHRfZGVmYXVsdDoge1xuXHRcdGdldDogZnVuY3Rpb24oIHR3ZWVuICkge1xuXHRcdFx0dmFyIHJlc3VsdDtcblxuXHRcdFx0Ly8gVXNlIGEgcHJvcGVydHkgb24gdGhlIGVsZW1lbnQgZGlyZWN0bHkgd2hlbiBpdCBpcyBub3QgYSBET00gZWxlbWVudCxcblx0XHRcdC8vIG9yIHdoZW4gdGhlcmUgaXMgbm8gbWF0Y2hpbmcgc3R5bGUgcHJvcGVydHkgdGhhdCBleGlzdHMuXG5cdFx0XHRpZiAoIHR3ZWVuLmVsZW0ubm9kZVR5cGUgIT09IDEgfHxcblx0XHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdICE9IG51bGwgJiYgdHdlZW4uZWxlbS5zdHlsZVsgdHdlZW4ucHJvcCBdID09IG51bGwgKSB7XG5cdFx0XHRcdHJldHVybiB0d2Vlbi5lbGVtWyB0d2Vlbi5wcm9wIF07XG5cdFx0XHR9XG5cblx0XHRcdC8vIFBhc3NpbmcgYW4gZW1wdHkgc3RyaW5nIGFzIGEgM3JkIHBhcmFtZXRlciB0byAuY3NzIHdpbGwgYXV0b21hdGljYWxseVxuXHRcdFx0Ly8gYXR0ZW1wdCBhIHBhcnNlRmxvYXQgYW5kIGZhbGxiYWNrIHRvIGEgc3RyaW5nIGlmIHRoZSBwYXJzZSBmYWlscy5cblx0XHRcdC8vIFNpbXBsZSB2YWx1ZXMgc3VjaCBhcyBcIjEwcHhcIiBhcmUgcGFyc2VkIHRvIEZsb2F0O1xuXHRcdFx0Ly8gY29tcGxleCB2YWx1ZXMgc3VjaCBhcyBcInJvdGF0ZSgxcmFkKVwiIGFyZSByZXR1cm5lZCBhcy1pcy5cblx0XHRcdHJlc3VsdCA9IGpRdWVyeS5jc3MoIHR3ZWVuLmVsZW0sIHR3ZWVuLnByb3AsIFwiXCIgKTtcblxuXHRcdFx0Ly8gRW1wdHkgc3RyaW5ncywgbnVsbCwgdW5kZWZpbmVkIGFuZCBcImF1dG9cIiBhcmUgY29udmVydGVkIHRvIDAuXG5cdFx0XHRyZXR1cm4gIXJlc3VsdCB8fCByZXN1bHQgPT09IFwiYXV0b1wiID8gMCA6IHJlc3VsdDtcblx0XHR9LFxuXHRcdHNldDogZnVuY3Rpb24oIHR3ZWVuICkge1xuXG5cdFx0XHQvLyBVc2Ugc3RlcCBob29rIGZvciBiYWNrIGNvbXBhdC5cblx0XHRcdC8vIFVzZSBjc3NIb29rIGlmIGl0cyB0aGVyZS5cblx0XHRcdC8vIFVzZSAuc3R5bGUgaWYgYXZhaWxhYmxlIGFuZCB1c2UgcGxhaW4gcHJvcGVydGllcyB3aGVyZSBhdmFpbGFibGUuXG5cdFx0XHRpZiAoIGpRdWVyeS5meC5zdGVwWyB0d2Vlbi5wcm9wIF0gKSB7XG5cdFx0XHRcdGpRdWVyeS5meC5zdGVwWyB0d2Vlbi5wcm9wIF0oIHR3ZWVuICk7XG5cdFx0XHR9IGVsc2UgaWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlID09PSAxICYmIChcblx0XHRcdFx0alF1ZXJ5LmNzc0hvb2tzWyB0d2Vlbi5wcm9wIF0gfHxcblx0XHRcdFx0XHR0d2Vlbi5lbGVtLnN0eWxlWyBmaW5hbFByb3BOYW1lKCB0d2Vlbi5wcm9wICkgXSAhPSBudWxsICkgKSB7XG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggdHdlZW4uZWxlbSwgdHdlZW4ucHJvcCwgdHdlZW4ubm93ICsgdHdlZW4udW5pdCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufTtcblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbi8vIFBhbmljIGJhc2VkIGFwcHJvYWNoIHRvIHNldHRpbmcgdGhpbmdzIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xuVHdlZW4ucHJvcEhvb2tzLnNjcm9sbFRvcCA9IFR3ZWVuLnByb3BIb29rcy5zY3JvbGxMZWZ0ID0ge1xuXHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRpZiAoIHR3ZWVuLmVsZW0ubm9kZVR5cGUgJiYgdHdlZW4uZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmVhc2luZyA9IHtcblx0bGluZWFyOiBmdW5jdGlvbiggcCApIHtcblx0XHRyZXR1cm4gcDtcblx0fSxcblx0c3dpbmc6IGZ1bmN0aW9uKCBwICkge1xuXHRcdHJldHVybiAwLjUgLSBNYXRoLmNvcyggcCAqIE1hdGguUEkgKSAvIDI7XG5cdH0sXG5cdF9kZWZhdWx0OiBcInN3aW5nXCJcbn07XG5cbmpRdWVyeS5meCA9IFR3ZWVuLnByb3RvdHlwZS5pbml0O1xuXG4vLyBCYWNrIGNvbXBhdCA8MS44IGV4dGVuc2lvbiBwb2ludFxualF1ZXJ5LmZ4LnN0ZXAgPSB7fTtcblxuXG5cblxudmFyXG5cdGZ4Tm93LCBpblByb2dyZXNzLFxuXHRyZnh0eXBlcyA9IC9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxcblx0cnJ1biA9IC9xdWV1ZUhvb2tzJC87XG5cbmZ1bmN0aW9uIHNjaGVkdWxlKCkge1xuXHRpZiAoIGluUHJvZ3Jlc3MgKSB7XG5cdFx0aWYgKCBkb2N1bWVudC5oaWRkZW4gPT09IGZhbHNlICYmIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgKSB7XG5cdFx0XHR3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCBzY2hlZHVsZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR3aW5kb3cuc2V0VGltZW91dCggc2NoZWR1bGUsIGpRdWVyeS5meC5pbnRlcnZhbCApO1xuXHRcdH1cblxuXHRcdGpRdWVyeS5meC50aWNrKCk7XG5cdH1cbn1cblxuLy8gQW5pbWF0aW9ucyBjcmVhdGVkIHN5bmNocm9ub3VzbHkgd2lsbCBydW4gc3luY2hyb25vdXNseVxuZnVuY3Rpb24gY3JlYXRlRnhOb3coKSB7XG5cdHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRmeE5vdyA9IHVuZGVmaW5lZDtcblx0fSApO1xuXHRyZXR1cm4gKCBmeE5vdyA9IERhdGUubm93KCkgKTtcbn1cblxuLy8gR2VuZXJhdGUgcGFyYW1ldGVycyB0byBjcmVhdGUgYSBzdGFuZGFyZCBhbmltYXRpb25cbmZ1bmN0aW9uIGdlbkZ4KCB0eXBlLCBpbmNsdWRlV2lkdGggKSB7XG5cdHZhciB3aGljaCxcblx0XHRpID0gMCxcblx0XHRhdHRycyA9IHsgaGVpZ2h0OiB0eXBlIH07XG5cblx0Ly8gSWYgd2UgaW5jbHVkZSB3aWR0aCwgc3RlcCB2YWx1ZSBpcyAxIHRvIGRvIGFsbCBjc3NFeHBhbmQgdmFsdWVzLFxuXHQvLyBvdGhlcndpc2Ugc3RlcCB2YWx1ZSBpcyAyIHRvIHNraXAgb3ZlciBMZWZ0IGFuZCBSaWdodFxuXHRpbmNsdWRlV2lkdGggPSBpbmNsdWRlV2lkdGggPyAxIDogMDtcblx0Zm9yICggOyBpIDwgNDsgaSArPSAyIC0gaW5jbHVkZVdpZHRoICkge1xuXHRcdHdoaWNoID0gY3NzRXhwYW5kWyBpIF07XG5cdFx0YXR0cnNbIFwibWFyZ2luXCIgKyB3aGljaCBdID0gYXR0cnNbIFwicGFkZGluZ1wiICsgd2hpY2ggXSA9IHR5cGU7XG5cdH1cblxuXHRpZiAoIGluY2x1ZGVXaWR0aCApIHtcblx0XHRhdHRycy5vcGFjaXR5ID0gYXR0cnMud2lkdGggPSB0eXBlO1xuXHR9XG5cblx0cmV0dXJuIGF0dHJzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVUd2VlbiggdmFsdWUsIHByb3AsIGFuaW1hdGlvbiApIHtcblx0dmFyIHR3ZWVuLFxuXHRcdGNvbGxlY3Rpb24gPSAoIEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdIHx8IFtdICkuY29uY2F0KCBBbmltYXRpb24udHdlZW5lcnNbIFwiKlwiIF0gKSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0aWYgKCAoIHR3ZWVuID0gY29sbGVjdGlvblsgaW5kZXggXS5jYWxsKCBhbmltYXRpb24sIHByb3AsIHZhbHVlICkgKSApIHtcblxuXHRcdFx0Ly8gV2UncmUgZG9uZSB3aXRoIHRoaXMgcHJvcGVydHlcblx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gZGVmYXVsdFByZWZpbHRlciggZWxlbSwgcHJvcHMsIG9wdHMgKSB7XG5cdHZhciBwcm9wLCB2YWx1ZSwgdG9nZ2xlLCBob29rcywgb2xkZmlyZSwgcHJvcFR3ZWVuLCByZXN0b3JlRGlzcGxheSwgZGlzcGxheSxcblx0XHRpc0JveCA9IFwid2lkdGhcIiBpbiBwcm9wcyB8fCBcImhlaWdodFwiIGluIHByb3BzLFxuXHRcdGFuaW0gPSB0aGlzLFxuXHRcdG9yaWcgPSB7fSxcblx0XHRzdHlsZSA9IGVsZW0uc3R5bGUsXG5cdFx0aGlkZGVuID0gZWxlbS5ub2RlVHlwZSAmJiBpc0hpZGRlbldpdGhpblRyZWUoIGVsZW0gKSxcblx0XHRkYXRhU2hvdyA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJmeHNob3dcIiApO1xuXG5cdC8vIFF1ZXVlLXNraXBwaW5nIGFuaW1hdGlvbnMgaGlqYWNrIHRoZSBmeCBob29rc1xuXHRpZiAoICFvcHRzLnF1ZXVlICkge1xuXHRcdGhvb2tzID0galF1ZXJ5Ll9xdWV1ZUhvb2tzKCBlbGVtLCBcImZ4XCIgKTtcblx0XHRpZiAoIGhvb2tzLnVucXVldWVkID09IG51bGwgKSB7XG5cdFx0XHRob29rcy51bnF1ZXVlZCA9IDA7XG5cdFx0XHRvbGRmaXJlID0gaG9va3MuZW1wdHkuZmlyZTtcblx0XHRcdGhvb2tzLmVtcHR5LmZpcmUgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCAhaG9va3MudW5xdWV1ZWQgKSB7XG5cdFx0XHRcdFx0b2xkZmlyZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblx0XHRob29rcy51bnF1ZXVlZCsrO1xuXG5cdFx0YW5pbS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBFbnN1cmUgdGhlIGNvbXBsZXRlIGhhbmRsZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGlzIGNvbXBsZXRlc1xuXHRcdFx0YW5pbS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRob29rcy51bnF1ZXVlZC0tO1xuXHRcdFx0XHRpZiAoICFqUXVlcnkucXVldWUoIGVsZW0sIFwiZnhcIiApLmxlbmd0aCApIHtcblx0XHRcdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBEZXRlY3Qgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0Zm9yICggcHJvcCBpbiBwcm9wcyApIHtcblx0XHR2YWx1ZSA9IHByb3BzWyBwcm9wIF07XG5cdFx0aWYgKCByZnh0eXBlcy50ZXN0KCB2YWx1ZSApICkge1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBwcm9wIF07XG5cdFx0XHR0b2dnbGUgPSB0b2dnbGUgfHwgdmFsdWUgPT09IFwidG9nZ2xlXCI7XG5cdFx0XHRpZiAoIHZhbHVlID09PSAoIGhpZGRlbiA/IFwiaGlkZVwiIDogXCJzaG93XCIgKSApIHtcblxuXHRcdFx0XHQvLyBQcmV0ZW5kIHRvIGJlIGhpZGRlbiBpZiB0aGlzIGlzIGEgXCJzaG93XCIgYW5kXG5cdFx0XHRcdC8vIHRoZXJlIGlzIHN0aWxsIGRhdGEgZnJvbSBhIHN0b3BwZWQgc2hvdy9oaWRlXG5cdFx0XHRcdGlmICggdmFsdWUgPT09IFwic2hvd1wiICYmIGRhdGFTaG93ICYmIGRhdGFTaG93WyBwcm9wIF0gIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRoaWRkZW4gPSB0cnVlO1xuXG5cdFx0XHRcdC8vIElnbm9yZSBhbGwgb3RoZXIgbm8tb3Agc2hvdy9oaWRlIGRhdGFcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0b3JpZ1sgcHJvcCBdID0gZGF0YVNob3cgJiYgZGF0YVNob3dbIHByb3AgXSB8fCBqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBCYWlsIG91dCBpZiB0aGlzIGlzIGEgbm8tb3AgbGlrZSAuaGlkZSgpLmhpZGUoKVxuXHRwcm9wVHdlZW4gPSAhalF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3BzICk7XG5cdGlmICggIXByb3BUd2VlbiAmJiBqUXVlcnkuaXNFbXB0eU9iamVjdCggb3JpZyApICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFJlc3RyaWN0IFwib3ZlcmZsb3dcIiBhbmQgXCJkaXNwbGF5XCIgc3R5bGVzIGR1cmluZyBib3ggYW5pbWF0aW9uc1xuXHRpZiAoIGlzQm94ICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSwgRWRnZSAxMiAtIDE1XG5cdFx0Ly8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdCBpbmZlciB0aGUgc2hvcnRoYW5kXG5cdFx0Ly8gZnJvbSBpZGVudGljYWxseS12YWx1ZWQgb3ZlcmZsb3dYIGFuZCBvdmVyZmxvd1kgYW5kIEVkZ2UganVzdCBtaXJyb3JzXG5cdFx0Ly8gdGhlIG92ZXJmbG93WCB2YWx1ZSB0aGVyZS5cblx0XHRvcHRzLm92ZXJmbG93ID0gWyBzdHlsZS5vdmVyZmxvdywgc3R5bGUub3ZlcmZsb3dYLCBzdHlsZS5vdmVyZmxvd1kgXTtcblxuXHRcdC8vIElkZW50aWZ5IGEgZGlzcGxheSB0eXBlLCBwcmVmZXJyaW5nIG9sZCBzaG93L2hpZGUgZGF0YSBvdmVyIHRoZSBDU1MgY2FzY2FkZVxuXHRcdHJlc3RvcmVEaXNwbGF5ID0gZGF0YVNob3cgJiYgZGF0YVNob3cuZGlzcGxheTtcblx0XHRpZiAoIHJlc3RvcmVEaXNwbGF5ID09IG51bGwgKSB7XG5cdFx0XHRyZXN0b3JlRGlzcGxheSA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJkaXNwbGF5XCIgKTtcblx0XHR9XG5cdFx0ZGlzcGxheSA9IGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICk7XG5cdFx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRcdGlmICggcmVzdG9yZURpc3BsYXkgKSB7XG5cdFx0XHRcdGRpc3BsYXkgPSByZXN0b3JlRGlzcGxheTtcblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gR2V0IG5vbmVtcHR5IHZhbHVlKHMpIGJ5IHRlbXBvcmFyaWx5IGZvcmNpbmcgdmlzaWJpbGl0eVxuXHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0sIHRydWUgKTtcblx0XHRcdFx0cmVzdG9yZURpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgfHwgcmVzdG9yZURpc3BsYXk7XG5cdFx0XHRcdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApO1xuXHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBBbmltYXRlIGlubGluZSBlbGVtZW50cyBhcyBpbmxpbmUtYmxvY2tcblx0XHRpZiAoIGRpc3BsYXkgPT09IFwiaW5saW5lXCIgfHwgZGlzcGxheSA9PT0gXCJpbmxpbmUtYmxvY2tcIiAmJiByZXN0b3JlRGlzcGxheSAhPSBudWxsICkge1xuXHRcdFx0aWYgKCBqUXVlcnkuY3NzKCBlbGVtLCBcImZsb2F0XCIgKSA9PT0gXCJub25lXCIgKSB7XG5cblx0XHRcdFx0Ly8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgZGlzcGxheSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHB1cmUgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0XHRcdFx0aWYgKCAhcHJvcFR3ZWVuICkge1xuXHRcdFx0XHRcdGFuaW0uZG9uZSggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRzdHlsZS5kaXNwbGF5ID0gcmVzdG9yZURpc3BsYXk7XG5cdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdGlmICggcmVzdG9yZURpc3BsYXkgPT0gbnVsbCApIHtcblx0XHRcdFx0XHRcdGRpc3BsYXkgPSBzdHlsZS5kaXNwbGF5O1xuXHRcdFx0XHRcdFx0cmVzdG9yZURpc3BsYXkgPSBkaXNwbGF5ID09PSBcIm5vbmVcIiA/IFwiXCIgOiBkaXNwbGF5O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRzdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoIG9wdHMub3ZlcmZsb3cgKSB7XG5cdFx0c3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiO1xuXHRcdGFuaW0uYWx3YXlzKCBmdW5jdGlvbigpIHtcblx0XHRcdHN0eWxlLm92ZXJmbG93ID0gb3B0cy5vdmVyZmxvd1sgMCBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dYID0gb3B0cy5vdmVyZmxvd1sgMSBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dZID0gb3B0cy5vdmVyZmxvd1sgMiBdO1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEltcGxlbWVudCBzaG93L2hpZGUgYW5pbWF0aW9uc1xuXHRwcm9wVHdlZW4gPSBmYWxzZTtcblx0Zm9yICggcHJvcCBpbiBvcmlnICkge1xuXG5cdFx0Ly8gR2VuZXJhbCBzaG93L2hpZGUgc2V0dXAgZm9yIHRoaXMgZWxlbWVudCBhbmltYXRpb25cblx0XHRpZiAoICFwcm9wVHdlZW4gKSB7XG5cdFx0XHRpZiAoIGRhdGFTaG93ICkge1xuXHRcdFx0XHRpZiAoIFwiaGlkZGVuXCIgaW4gZGF0YVNob3cgKSB7XG5cdFx0XHRcdFx0aGlkZGVuID0gZGF0YVNob3cuaGlkZGVuO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhU2hvdyA9IGRhdGFQcml2LmFjY2VzcyggZWxlbSwgXCJmeHNob3dcIiwgeyBkaXNwbGF5OiByZXN0b3JlRGlzcGxheSB9ICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0b3JlIGhpZGRlbi92aXNpYmxlIGZvciB0b2dnbGUgc28gYC5zdG9wKCkudG9nZ2xlKClgIFwicmV2ZXJzZXNcIlxuXHRcdFx0aWYgKCB0b2dnbGUgKSB7XG5cdFx0XHRcdGRhdGFTaG93LmhpZGRlbiA9ICFoaWRkZW47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNob3cgZWxlbWVudHMgYmVmb3JlIGFuaW1hdGluZyB0aGVtXG5cdFx0XHRpZiAoIGhpZGRlbiApIHtcblx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdLCB0cnVlICk7XG5cdFx0XHR9XG5cblx0XHRcdC8qIGVzbGludC1kaXNhYmxlIG5vLWxvb3AtZnVuYyAqL1xuXG5cdFx0XHRhbmltLmRvbmUoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdC8qIGVzbGludC1lbmFibGUgbm8tbG9vcC1mdW5jICovXG5cblx0XHRcdFx0Ly8gVGhlIGZpbmFsIHN0ZXAgb2YgYSBcImhpZGVcIiBhbmltYXRpb24gaXMgYWN0dWFsbHkgaGlkaW5nIHRoZSBlbGVtZW50XG5cdFx0XHRcdGlmICggIWhpZGRlbiApIHtcblx0XHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIFwiZnhzaG93XCIgKTtcblx0XHRcdFx0Zm9yICggcHJvcCBpbiBvcmlnICkge1xuXHRcdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgcHJvcCwgb3JpZ1sgcHJvcCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHQvLyBQZXItcHJvcGVydHkgc2V0dXBcblx0XHRwcm9wVHdlZW4gPSBjcmVhdGVUd2VlbiggaGlkZGVuID8gZGF0YVNob3dbIHByb3AgXSA6IDAsIHByb3AsIGFuaW0gKTtcblx0XHRpZiAoICEoIHByb3AgaW4gZGF0YVNob3cgKSApIHtcblx0XHRcdGRhdGFTaG93WyBwcm9wIF0gPSBwcm9wVHdlZW4uc3RhcnQ7XG5cdFx0XHRpZiAoIGhpZGRlbiApIHtcblx0XHRcdFx0cHJvcFR3ZWVuLmVuZCA9IHByb3BUd2Vlbi5zdGFydDtcblx0XHRcdFx0cHJvcFR3ZWVuLnN0YXJ0ID0gMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gcHJvcEZpbHRlciggcHJvcHMsIHNwZWNpYWxFYXNpbmcgKSB7XG5cdHZhciBpbmRleCwgbmFtZSwgZWFzaW5nLCB2YWx1ZSwgaG9va3M7XG5cblx0Ly8gY2FtZWxDYXNlLCBzcGVjaWFsRWFzaW5nIGFuZCBleHBhbmQgY3NzSG9vayBwYXNzXG5cdGZvciAoIGluZGV4IGluIHByb3BzICkge1xuXHRcdG5hbWUgPSBjYW1lbENhc2UoIGluZGV4ICk7XG5cdFx0ZWFzaW5nID0gc3BlY2lhbEVhc2luZ1sgbmFtZSBdO1xuXHRcdHZhbHVlID0gcHJvcHNbIGluZGV4IF07XG5cdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0ZWFzaW5nID0gdmFsdWVbIDEgXTtcblx0XHRcdHZhbHVlID0gcHJvcHNbIGluZGV4IF0gPSB2YWx1ZVsgMCBdO1xuXHRcdH1cblxuXHRcdGlmICggaW5kZXggIT09IG5hbWUgKSB7XG5cdFx0XHRwcm9wc1sgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRkZWxldGUgcHJvcHNbIGluZGV4IF07XG5cdFx0fVxuXG5cdFx0aG9va3MgPSBqUXVlcnkuY3NzSG9va3NbIG5hbWUgXTtcblx0XHRpZiAoIGhvb2tzICYmIFwiZXhwYW5kXCIgaW4gaG9va3MgKSB7XG5cdFx0XHR2YWx1ZSA9IGhvb2tzLmV4cGFuZCggdmFsdWUgKTtcblx0XHRcdGRlbGV0ZSBwcm9wc1sgbmFtZSBdO1xuXG5cdFx0XHQvLyBOb3QgcXVpdGUgJC5leHRlbmQsIHRoaXMgd29uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGtleXMuXG5cdFx0XHQvLyBSZXVzaW5nICdpbmRleCcgYmVjYXVzZSB3ZSBoYXZlIHRoZSBjb3JyZWN0IFwibmFtZVwiXG5cdFx0XHRmb3IgKCBpbmRleCBpbiB2YWx1ZSApIHtcblx0XHRcdFx0aWYgKCAhKCBpbmRleCBpbiBwcm9wcyApICkge1xuXHRcdFx0XHRcdHByb3BzWyBpbmRleCBdID0gdmFsdWVbIGluZGV4IF07XG5cdFx0XHRcdFx0c3BlY2lhbEVhc2luZ1sgaW5kZXggXSA9IGVhc2luZztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRzcGVjaWFsRWFzaW5nWyBuYW1lIF0gPSBlYXNpbmc7XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIEFuaW1hdGlvbiggZWxlbSwgcHJvcGVydGllcywgb3B0aW9ucyApIHtcblx0dmFyIHJlc3VsdCxcblx0XHRzdG9wcGVkLFxuXHRcdGluZGV4ID0gMCxcblx0XHRsZW5ndGggPSBBbmltYXRpb24ucHJlZmlsdGVycy5sZW5ndGgsXG5cdFx0ZGVmZXJyZWQgPSBqUXVlcnkuRGVmZXJyZWQoKS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBEb24ndCBtYXRjaCBlbGVtIGluIHRoZSA6YW5pbWF0ZWQgc2VsZWN0b3Jcblx0XHRcdGRlbGV0ZSB0aWNrLmVsZW07XG5cdFx0fSApLFxuXHRcdHRpY2sgPSBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggc3RvcHBlZCApIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0dmFyIGN1cnJlbnRUaW1lID0gZnhOb3cgfHwgY3JlYXRlRnhOb3coKSxcblx0XHRcdFx0cmVtYWluaW5nID0gTWF0aC5tYXgoIDAsIGFuaW1hdGlvbi5zdGFydFRpbWUgKyBhbmltYXRpb24uZHVyYXRpb24gLSBjdXJyZW50VGltZSApLFxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgMi4zIG9ubHlcblx0XHRcdFx0Ly8gQXJjaGFpYyBjcmFzaCBidWcgd29uJ3QgYWxsb3cgdXMgdG8gdXNlIGAxIC0gKCAwLjUgfHwgMCApYCAodHJhYy0xMjQ5Nylcblx0XHRcdFx0dGVtcCA9IHJlbWFpbmluZyAvIGFuaW1hdGlvbi5kdXJhdGlvbiB8fCAwLFxuXHRcdFx0XHRwZXJjZW50ID0gMSAtIHRlbXAsXG5cdFx0XHRcdGluZGV4ID0gMCxcblx0XHRcdFx0bGVuZ3RoID0gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGg7XG5cblx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRcdGFuaW1hdGlvbi50d2VlbnNbIGluZGV4IF0ucnVuKCBwZXJjZW50ICk7XG5cdFx0XHR9XG5cblx0XHRcdGRlZmVycmVkLm5vdGlmeVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBwZXJjZW50LCByZW1haW5pbmcgXSApO1xuXG5cdFx0XHQvLyBJZiB0aGVyZSdzIG1vcmUgdG8gZG8sIHlpZWxkXG5cdFx0XHRpZiAoIHBlcmNlbnQgPCAxICYmIGxlbmd0aCApIHtcblx0XHRcdFx0cmV0dXJuIHJlbWFpbmluZztcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgdGhpcyB3YXMgYW4gZW1wdHkgYW5pbWF0aW9uLCBzeW50aGVzaXplIGEgZmluYWwgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uXG5cdFx0XHRpZiAoICFsZW5ndGggKSB7XG5cdFx0XHRcdGRlZmVycmVkLm5vdGlmeVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCAxLCAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmVzb2x2ZSB0aGUgYW5pbWF0aW9uIGFuZCByZXBvcnQgaXRzIGNvbmNsdXNpb25cblx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiBdICk7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSxcblx0XHRhbmltYXRpb24gPSBkZWZlcnJlZC5wcm9taXNlKCB7XG5cdFx0XHRlbGVtOiBlbGVtLFxuXHRcdFx0cHJvcHM6IGpRdWVyeS5leHRlbmQoIHt9LCBwcm9wZXJ0aWVzICksXG5cdFx0XHRvcHRzOiBqUXVlcnkuZXh0ZW5kKCB0cnVlLCB7XG5cdFx0XHRcdHNwZWNpYWxFYXNpbmc6IHt9LFxuXHRcdFx0XHRlYXNpbmc6IGpRdWVyeS5lYXNpbmcuX2RlZmF1bHRcblx0XHRcdH0sIG9wdGlvbnMgKSxcblx0XHRcdG9yaWdpbmFsUHJvcGVydGllczogcHJvcGVydGllcyxcblx0XHRcdG9yaWdpbmFsT3B0aW9uczogb3B0aW9ucyxcblx0XHRcdHN0YXJ0VGltZTogZnhOb3cgfHwgY3JlYXRlRnhOb3coKSxcblx0XHRcdGR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLFxuXHRcdFx0dHdlZW5zOiBbXSxcblx0XHRcdGNyZWF0ZVR3ZWVuOiBmdW5jdGlvbiggcHJvcCwgZW5kICkge1xuXHRcdFx0XHR2YXIgdHdlZW4gPSBqUXVlcnkuVHdlZW4oIGVsZW0sIGFuaW1hdGlvbi5vcHRzLCBwcm9wLCBlbmQsXG5cdFx0XHRcdFx0YW5pbWF0aW9uLm9wdHMuc3BlY2lhbEVhc2luZ1sgcHJvcCBdIHx8IGFuaW1hdGlvbi5vcHRzLmVhc2luZyApO1xuXHRcdFx0XHRhbmltYXRpb24udHdlZW5zLnB1c2goIHR3ZWVuICk7XG5cdFx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHRcdH0sXG5cdFx0XHRzdG9wOiBmdW5jdGlvbiggZ290b0VuZCApIHtcblx0XHRcdFx0dmFyIGluZGV4ID0gMCxcblxuXHRcdFx0XHRcdC8vIElmIHdlIGFyZSBnb2luZyB0byB0aGUgZW5kLCB3ZSB3YW50IHRvIHJ1biBhbGwgdGhlIHR3ZWVuc1xuXHRcdFx0XHRcdC8vIG90aGVyd2lzZSB3ZSBza2lwIHRoaXMgcGFydFxuXHRcdFx0XHRcdGxlbmd0aCA9IGdvdG9FbmQgPyBhbmltYXRpb24udHdlZW5zLmxlbmd0aCA6IDA7XG5cdFx0XHRcdGlmICggc3RvcHBlZCApIHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fVxuXHRcdFx0XHRzdG9wcGVkID0gdHJ1ZTtcblx0XHRcdFx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRcdFx0XHRhbmltYXRpb24udHdlZW5zWyBpbmRleCBdLnJ1biggMSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUmVzb2x2ZSB3aGVuIHdlIHBsYXllZCB0aGUgbGFzdCBmcmFtZTsgb3RoZXJ3aXNlLCByZWplY3Rcblx0XHRcdFx0aWYgKCBnb3RvRW5kICkge1xuXHRcdFx0XHRcdGRlZmVycmVkLm5vdGlmeVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCAxLCAwIF0gKTtcblx0XHRcdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggZWxlbSwgWyBhbmltYXRpb24sIGdvdG9FbmQgXSApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGRlZmVycmVkLnJlamVjdFdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBnb3RvRW5kIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9ICksXG5cdFx0cHJvcHMgPSBhbmltYXRpb24ucHJvcHM7XG5cblx0cHJvcEZpbHRlciggcHJvcHMsIGFuaW1hdGlvbi5vcHRzLnNwZWNpYWxFYXNpbmcgKTtcblxuXHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdHJlc3VsdCA9IEFuaW1hdGlvbi5wcmVmaWx0ZXJzWyBpbmRleCBdLmNhbGwoIGFuaW1hdGlvbiwgZWxlbSwgcHJvcHMsIGFuaW1hdGlvbi5vcHRzICk7XG5cdFx0aWYgKCByZXN1bHQgKSB7XG5cdFx0XHRpZiAoIGlzRnVuY3Rpb24oIHJlc3VsdC5zdG9wICkgKSB7XG5cdFx0XHRcdGpRdWVyeS5fcXVldWVIb29rcyggYW5pbWF0aW9uLmVsZW0sIGFuaW1hdGlvbi5vcHRzLnF1ZXVlICkuc3RvcCA9XG5cdFx0XHRcdFx0cmVzdWx0LnN0b3AuYmluZCggcmVzdWx0ICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0fVxuXG5cdGpRdWVyeS5tYXAoIHByb3BzLCBjcmVhdGVUd2VlbiwgYW5pbWF0aW9uICk7XG5cblx0aWYgKCBpc0Z1bmN0aW9uKCBhbmltYXRpb24ub3B0cy5zdGFydCApICkge1xuXHRcdGFuaW1hdGlvbi5vcHRzLnN0YXJ0LmNhbGwoIGVsZW0sIGFuaW1hdGlvbiApO1xuXHR9XG5cblx0Ly8gQXR0YWNoIGNhbGxiYWNrcyBmcm9tIG9wdGlvbnNcblx0YW5pbWF0aW9uXG5cdFx0LnByb2dyZXNzKCBhbmltYXRpb24ub3B0cy5wcm9ncmVzcyApXG5cdFx0LmRvbmUoIGFuaW1hdGlvbi5vcHRzLmRvbmUsIGFuaW1hdGlvbi5vcHRzLmNvbXBsZXRlIClcblx0XHQuZmFpbCggYW5pbWF0aW9uLm9wdHMuZmFpbCApXG5cdFx0LmFsd2F5cyggYW5pbWF0aW9uLm9wdHMuYWx3YXlzICk7XG5cblx0alF1ZXJ5LmZ4LnRpbWVyKFxuXHRcdGpRdWVyeS5leHRlbmQoIHRpY2ssIHtcblx0XHRcdGVsZW06IGVsZW0sXG5cdFx0XHRhbmltOiBhbmltYXRpb24sXG5cdFx0XHRxdWV1ZTogYW5pbWF0aW9uLm9wdHMucXVldWVcblx0XHR9IClcblx0KTtcblxuXHRyZXR1cm4gYW5pbWF0aW9uO1xufVxuXG5qUXVlcnkuQW5pbWF0aW9uID0galF1ZXJ5LmV4dGVuZCggQW5pbWF0aW9uLCB7XG5cblx0dHdlZW5lcnM6IHtcblx0XHRcIipcIjogWyBmdW5jdGlvbiggcHJvcCwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgdHdlZW4gPSB0aGlzLmNyZWF0ZVR3ZWVuKCBwcm9wLCB2YWx1ZSApO1xuXHRcdFx0YWRqdXN0Q1NTKCB0d2Vlbi5lbGVtLCBwcm9wLCByY3NzTnVtLmV4ZWMoIHZhbHVlICksIHR3ZWVuICk7XG5cdFx0XHRyZXR1cm4gdHdlZW47XG5cdFx0fSBdXG5cdH0sXG5cblx0dHdlZW5lcjogZnVuY3Rpb24oIHByb3BzLCBjYWxsYmFjayApIHtcblx0XHRpZiAoIGlzRnVuY3Rpb24oIHByb3BzICkgKSB7XG5cdFx0XHRjYWxsYmFjayA9IHByb3BzO1xuXHRcdFx0cHJvcHMgPSBbIFwiKlwiIF07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHByb3BzID0gcHJvcHMubWF0Y2goIHJub3RodG1sd2hpdGUgKTtcblx0XHR9XG5cblx0XHR2YXIgcHJvcCxcblx0XHRcdGluZGV4ID0gMCxcblx0XHRcdGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuXHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRwcm9wID0gcHJvcHNbIGluZGV4IF07XG5cdFx0XHRBbmltYXRpb24udHdlZW5lcnNbIHByb3AgXSA9IEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdIHx8IFtdO1xuXHRcdFx0QW5pbWF0aW9uLnR3ZWVuZXJzWyBwcm9wIF0udW5zaGlmdCggY2FsbGJhY2sgKTtcblx0XHR9XG5cdH0sXG5cblx0cHJlZmlsdGVyczogWyBkZWZhdWx0UHJlZmlsdGVyIF0sXG5cblx0cHJlZmlsdGVyOiBmdW5jdGlvbiggY2FsbGJhY2ssIHByZXBlbmQgKSB7XG5cdFx0aWYgKCBwcmVwZW5kICkge1xuXHRcdFx0QW5pbWF0aW9uLnByZWZpbHRlcnMudW5zaGlmdCggY2FsbGJhY2sgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0QW5pbWF0aW9uLnByZWZpbHRlcnMucHVzaCggY2FsbGJhY2sgKTtcblx0XHR9XG5cdH1cbn0gKTtcblxualF1ZXJ5LnNwZWVkID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGZuICkge1xuXHR2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09PSBcIm9iamVjdFwiID8galF1ZXJ5LmV4dGVuZCgge30sIHNwZWVkICkgOiB7XG5cdFx0Y29tcGxldGU6IGZuIHx8ICFmbiAmJiBlYXNpbmcgfHxcblx0XHRcdGlzRnVuY3Rpb24oIHNwZWVkICkgJiYgc3BlZWQsXG5cdFx0ZHVyYXRpb246IHNwZWVkLFxuXHRcdGVhc2luZzogZm4gJiYgZWFzaW5nIHx8IGVhc2luZyAmJiAhaXNGdW5jdGlvbiggZWFzaW5nICkgJiYgZWFzaW5nXG5cdH07XG5cblx0Ly8gR28gdG8gdGhlIGVuZCBzdGF0ZSBpZiBmeCBhcmUgb2ZmXG5cdGlmICggalF1ZXJ5LmZ4Lm9mZiApIHtcblx0XHRvcHQuZHVyYXRpb24gPSAwO1xuXG5cdH0gZWxzZSB7XG5cdFx0aWYgKCB0eXBlb2Ygb3B0LmR1cmF0aW9uICE9PSBcIm51bWJlclwiICkge1xuXHRcdFx0aWYgKCBvcHQuZHVyYXRpb24gaW4galF1ZXJ5LmZ4LnNwZWVkcyApIHtcblx0XHRcdFx0b3B0LmR1cmF0aW9uID0galF1ZXJ5LmZ4LnNwZWVkc1sgb3B0LmR1cmF0aW9uIF07XG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG9wdC5kdXJhdGlvbiA9IGpRdWVyeS5meC5zcGVlZHMuX2RlZmF1bHQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gTm9ybWFsaXplIG9wdC5xdWV1ZSAtIHRydWUvdW5kZWZpbmVkL251bGwgLT4gXCJmeFwiXG5cdGlmICggb3B0LnF1ZXVlID09IG51bGwgfHwgb3B0LnF1ZXVlID09PSB0cnVlICkge1xuXHRcdG9wdC5xdWV1ZSA9IFwiZnhcIjtcblx0fVxuXG5cdC8vIFF1ZXVlaW5nXG5cdG9wdC5vbGQgPSBvcHQuY29tcGxldGU7XG5cblx0b3B0LmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7XG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCBvcHQub2xkICkgKSB7XG5cdFx0XHRvcHQub2xkLmNhbGwoIHRoaXMgKTtcblx0XHR9XG5cblx0XHRpZiAoIG9wdC5xdWV1ZSApIHtcblx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCBvcHQucXVldWUgKTtcblx0XHR9XG5cdH07XG5cblx0cmV0dXJuIG9wdDtcbn07XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0ZmFkZVRvOiBmdW5jdGlvbiggc3BlZWQsIHRvLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXG5cdFx0Ly8gU2hvdyBhbnkgaGlkZGVuIGVsZW1lbnRzIGFmdGVyIHNldHRpbmcgb3BhY2l0eSB0byAwXG5cdFx0cmV0dXJuIHRoaXMuZmlsdGVyKCBpc0hpZGRlbldpdGhpblRyZWUgKS5jc3MoIFwib3BhY2l0eVwiLCAwICkuc2hvdygpXG5cblx0XHRcdC8vIEFuaW1hdGUgdG8gdGhlIHZhbHVlIHNwZWNpZmllZFxuXHRcdFx0LmVuZCgpLmFuaW1hdGUoIHsgb3BhY2l0eTogdG8gfSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTtcblx0fSxcblx0YW5pbWF0ZTogZnVuY3Rpb24oIHByb3AsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXHRcdHZhciBlbXB0eSA9IGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBwcm9wICksXG5cdFx0XHRvcHRhbGwgPSBqUXVlcnkuc3BlZWQoIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICksXG5cdFx0XHRkb0FuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdC8vIE9wZXJhdGUgb24gYSBjb3B5IG9mIHByb3Agc28gcGVyLXByb3BlcnR5IGVhc2luZyB3b24ndCBiZSBsb3N0XG5cdFx0XHRcdHZhciBhbmltID0gQW5pbWF0aW9uKCB0aGlzLCBqUXVlcnkuZXh0ZW5kKCB7fSwgcHJvcCApLCBvcHRhbGwgKTtcblxuXHRcdFx0XHQvLyBFbXB0eSBhbmltYXRpb25zLCBvciBmaW5pc2hpbmcgcmVzb2x2ZXMgaW1tZWRpYXRlbHlcblx0XHRcdFx0aWYgKCBlbXB0eSB8fCBkYXRhUHJpdi5nZXQoIHRoaXMsIFwiZmluaXNoXCIgKSApIHtcblx0XHRcdFx0XHRhbmltLnN0b3AoIHRydWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdGRvQW5pbWF0aW9uLmZpbmlzaCA9IGRvQW5pbWF0aW9uO1xuXG5cdFx0cmV0dXJuIGVtcHR5IHx8IG9wdGFsbC5xdWV1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0dGhpcy5lYWNoKCBkb0FuaW1hdGlvbiApIDpcblx0XHRcdHRoaXMucXVldWUoIG9wdGFsbC5xdWV1ZSwgZG9BbmltYXRpb24gKTtcblx0fSxcblx0c3RvcDogZnVuY3Rpb24oIHR5cGUsIGNsZWFyUXVldWUsIGdvdG9FbmQgKSB7XG5cdFx0dmFyIHN0b3BRdWV1ZSA9IGZ1bmN0aW9uKCBob29rcyApIHtcblx0XHRcdHZhciBzdG9wID0gaG9va3Muc3RvcDtcblx0XHRcdGRlbGV0ZSBob29rcy5zdG9wO1xuXHRcdFx0c3RvcCggZ290b0VuZCApO1xuXHRcdH07XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0Z290b0VuZCA9IGNsZWFyUXVldWU7XG5cdFx0XHRjbGVhclF1ZXVlID0gdHlwZTtcblx0XHRcdHR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGlmICggY2xlYXJRdWV1ZSApIHtcblx0XHRcdHRoaXMucXVldWUoIHR5cGUgfHwgXCJmeFwiLCBbXSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGRlcXVldWUgPSB0cnVlLFxuXHRcdFx0XHRpbmRleCA9IHR5cGUgIT0gbnVsbCAmJiB0eXBlICsgXCJxdWV1ZUhvb2tzXCIsXG5cdFx0XHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnMsXG5cdFx0XHRcdGRhdGEgPSBkYXRhUHJpdi5nZXQoIHRoaXMgKTtcblxuXHRcdFx0aWYgKCBpbmRleCApIHtcblx0XHRcdFx0aWYgKCBkYXRhWyBpbmRleCBdICYmIGRhdGFbIGluZGV4IF0uc3RvcCApIHtcblx0XHRcdFx0XHRzdG9wUXVldWUoIGRhdGFbIGluZGV4IF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Zm9yICggaW5kZXggaW4gZGF0YSApIHtcblx0XHRcdFx0XHRpZiAoIGRhdGFbIGluZGV4IF0gJiYgZGF0YVsgaW5kZXggXS5zdG9wICYmIHJydW4udGVzdCggaW5kZXggKSApIHtcblx0XHRcdFx0XHRcdHN0b3BRdWV1ZSggZGF0YVsgaW5kZXggXSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRmb3IgKCBpbmRleCA9IHRpbWVycy5sZW5ndGg7IGluZGV4LS07ICkge1xuXHRcdFx0XHRpZiAoIHRpbWVyc1sgaW5kZXggXS5lbGVtID09PSB0aGlzICYmXG5cdFx0XHRcdFx0KCB0eXBlID09IG51bGwgfHwgdGltZXJzWyBpbmRleCBdLnF1ZXVlID09PSB0eXBlICkgKSB7XG5cblx0XHRcdFx0XHR0aW1lcnNbIGluZGV4IF0uYW5pbS5zdG9wKCBnb3RvRW5kICk7XG5cdFx0XHRcdFx0ZGVxdWV1ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdHRpbWVycy5zcGxpY2UoIGluZGV4LCAxICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gU3RhcnQgdGhlIG5leHQgaW4gdGhlIHF1ZXVlIGlmIHRoZSBsYXN0IHN0ZXAgd2Fzbid0IGZvcmNlZC5cblx0XHRcdC8vIFRpbWVycyBjdXJyZW50bHkgd2lsbCBjYWxsIHRoZWlyIGNvbXBsZXRlIGNhbGxiYWNrcywgd2hpY2hcblx0XHRcdC8vIHdpbGwgZGVxdWV1ZSBidXQgb25seSBpZiB0aGV5IHdlcmUgZ290b0VuZC5cblx0XHRcdGlmICggZGVxdWV1ZSB8fCAhZ290b0VuZCApIHtcblx0XHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cdGZpbmlzaDogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0aWYgKCB0eXBlICE9PSBmYWxzZSApIHtcblx0XHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgaW5kZXgsXG5cdFx0XHRcdGRhdGEgPSBkYXRhUHJpdi5nZXQoIHRoaXMgKSxcblx0XHRcdFx0cXVldWUgPSBkYXRhWyB0eXBlICsgXCJxdWV1ZVwiIF0sXG5cdFx0XHRcdGhvb2tzID0gZGF0YVsgdHlwZSArIFwicXVldWVIb29rc1wiIF0sXG5cdFx0XHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnMsXG5cdFx0XHRcdGxlbmd0aCA9IHF1ZXVlID8gcXVldWUubGVuZ3RoIDogMDtcblxuXHRcdFx0Ly8gRW5hYmxlIGZpbmlzaGluZyBmbGFnIG9uIHByaXZhdGUgZGF0YVxuXHRcdFx0ZGF0YS5maW5pc2ggPSB0cnVlO1xuXG5cdFx0XHQvLyBFbXB0eSB0aGUgcXVldWUgZmlyc3Rcblx0XHRcdGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgW10gKTtcblxuXHRcdFx0aWYgKCBob29rcyAmJiBob29rcy5zdG9wICkge1xuXHRcdFx0XHRob29rcy5zdG9wLmNhbGwoIHRoaXMsIHRydWUgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTG9vayBmb3IgYW55IGFjdGl2ZSBhbmltYXRpb25zLCBhbmQgZmluaXNoIHRoZW1cblx0XHRcdGZvciAoIGluZGV4ID0gdGltZXJzLmxlbmd0aDsgaW5kZXgtLTsgKSB7XG5cdFx0XHRcdGlmICggdGltZXJzWyBpbmRleCBdLmVsZW0gPT09IHRoaXMgJiYgdGltZXJzWyBpbmRleCBdLnF1ZXVlID09PSB0eXBlICkge1xuXHRcdFx0XHRcdHRpbWVyc1sgaW5kZXggXS5hbmltLnN0b3AoIHRydWUgKTtcblx0XHRcdFx0XHR0aW1lcnMuc3BsaWNlKCBpbmRleCwgMSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIExvb2sgZm9yIGFueSBhbmltYXRpb25zIGluIHRoZSBvbGQgcXVldWUgYW5kIGZpbmlzaCB0aGVtXG5cdFx0XHRmb3IgKCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0XHRpZiAoIHF1ZXVlWyBpbmRleCBdICYmIHF1ZXVlWyBpbmRleCBdLmZpbmlzaCApIHtcblx0XHRcdFx0XHRxdWV1ZVsgaW5kZXggXS5maW5pc2guY2FsbCggdGhpcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFR1cm4gb2ZmIGZpbmlzaGluZyBmbGFnXG5cdFx0XHRkZWxldGUgZGF0YS5maW5pc2g7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCBbIFwidG9nZ2xlXCIsIFwic2hvd1wiLCBcImhpZGVcIiBdLCBmdW5jdGlvbiggX2ksIG5hbWUgKSB7XG5cdHZhciBjc3NGbiA9IGpRdWVyeS5mblsgbmFtZSBdO1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4gc3BlZWQgPT0gbnVsbCB8fCB0eXBlb2Ygc3BlZWQgPT09IFwiYm9vbGVhblwiID9cblx0XHRcdGNzc0ZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKSA6XG5cdFx0XHR0aGlzLmFuaW1hdGUoIGdlbkZ4KCBuYW1lLCB0cnVlICksIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7XG5cdH07XG59ICk7XG5cbi8vIEdlbmVyYXRlIHNob3J0Y3V0cyBmb3IgY3VzdG9tIGFuaW1hdGlvbnNcbmpRdWVyeS5lYWNoKCB7XG5cdHNsaWRlRG93bjogZ2VuRngoIFwic2hvd1wiICksXG5cdHNsaWRlVXA6IGdlbkZ4KCBcImhpZGVcIiApLFxuXHRzbGlkZVRvZ2dsZTogZ2VuRngoIFwidG9nZ2xlXCIgKSxcblx0ZmFkZUluOiB7IG9wYWNpdHk6IFwic2hvd1wiIH0sXG5cdGZhZGVPdXQ6IHsgb3BhY2l0eTogXCJoaWRlXCIgfSxcblx0ZmFkZVRvZ2dsZTogeyBvcGFjaXR5OiBcInRvZ2dsZVwiIH1cbn0sIGZ1bmN0aW9uKCBuYW1lLCBwcm9wcyApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHRoaXMuYW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7XG5cdH07XG59ICk7XG5cbmpRdWVyeS50aW1lcnMgPSBbXTtcbmpRdWVyeS5meC50aWNrID0gZnVuY3Rpb24oKSB7XG5cdHZhciB0aW1lcixcblx0XHRpID0gMCxcblx0XHR0aW1lcnMgPSBqUXVlcnkudGltZXJzO1xuXG5cdGZ4Tm93ID0gRGF0ZS5ub3coKTtcblxuXHRmb3IgKCA7IGkgPCB0aW1lcnMubGVuZ3RoOyBpKysgKSB7XG5cdFx0dGltZXIgPSB0aW1lcnNbIGkgXTtcblxuXHRcdC8vIFJ1biB0aGUgdGltZXIgYW5kIHNhZmVseSByZW1vdmUgaXQgd2hlbiBkb25lIChhbGxvd2luZyBmb3IgZXh0ZXJuYWwgcmVtb3ZhbClcblx0XHRpZiAoICF0aW1lcigpICYmIHRpbWVyc1sgaSBdID09PSB0aW1lciApIHtcblx0XHRcdHRpbWVycy5zcGxpY2UoIGktLSwgMSApO1xuXHRcdH1cblx0fVxuXG5cdGlmICggIXRpbWVycy5sZW5ndGggKSB7XG5cdFx0alF1ZXJ5LmZ4LnN0b3AoKTtcblx0fVxuXHRmeE5vdyA9IHVuZGVmaW5lZDtcbn07XG5cbmpRdWVyeS5meC50aW1lciA9IGZ1bmN0aW9uKCB0aW1lciApIHtcblx0alF1ZXJ5LnRpbWVycy5wdXNoKCB0aW1lciApO1xuXHRqUXVlcnkuZnguc3RhcnQoKTtcbn07XG5cbmpRdWVyeS5meC5pbnRlcnZhbCA9IDEzO1xualF1ZXJ5LmZ4LnN0YXJ0ID0gZnVuY3Rpb24oKSB7XG5cdGlmICggaW5Qcm9ncmVzcyApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpblByb2dyZXNzID0gdHJ1ZTtcblx0c2NoZWR1bGUoKTtcbn07XG5cbmpRdWVyeS5meC5zdG9wID0gZnVuY3Rpb24oKSB7XG5cdGluUHJvZ3Jlc3MgPSBudWxsO1xufTtcblxualF1ZXJ5LmZ4LnNwZWVkcyA9IHtcblx0c2xvdzogNjAwLFxuXHRmYXN0OiAyMDAsXG5cblx0Ly8gRGVmYXVsdCBzcGVlZFxuXHRfZGVmYXVsdDogNDAwXG59O1xuXG5cbi8vIEJhc2VkIG9mZiBvZiB0aGUgcGx1Z2luIGJ5IENsaW50IEhlbGZlcnMsIHdpdGggcGVybWlzc2lvbi5cbmpRdWVyeS5mbi5kZWxheSA9IGZ1bmN0aW9uKCB0aW1lLCB0eXBlICkge1xuXHR0aW1lID0galF1ZXJ5LmZ4ID8galF1ZXJ5LmZ4LnNwZWVkc1sgdGltZSBdIHx8IHRpbWUgOiB0aW1lO1xuXHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cblx0cmV0dXJuIHRoaXMucXVldWUoIHR5cGUsIGZ1bmN0aW9uKCBuZXh0LCBob29rcyApIHtcblx0XHR2YXIgdGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCBuZXh0LCB0aW1lICk7XG5cdFx0aG9va3Muc3RvcCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0d2luZG93LmNsZWFyVGltZW91dCggdGltZW91dCApO1xuXHRcdH07XG5cdH0gKTtcbn07XG5cblxuKCBmdW5jdGlvbigpIHtcblx0dmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICksXG5cdFx0c2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJzZWxlY3RcIiApLFxuXHRcdG9wdCA9IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJvcHRpb25cIiApICk7XG5cblx0aW5wdXQudHlwZSA9IFwiY2hlY2tib3hcIjtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4zIG9ubHlcblx0Ly8gRGVmYXVsdCB2YWx1ZSBmb3IgYSBjaGVja2JveCBzaG91bGQgYmUgXCJvblwiXG5cdHN1cHBvcnQuY2hlY2tPbiA9IGlucHV0LnZhbHVlICE9PSBcIlwiO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHQvLyBNdXN0IGFjY2VzcyBzZWxlY3RlZEluZGV4IHRvIG1ha2UgZGVmYXVsdCBvcHRpb25zIHNlbGVjdFxuXHRzdXBwb3J0Lm9wdFNlbGVjdGVkID0gb3B0LnNlbGVjdGVkO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHQvLyBBbiBpbnB1dCBsb3NlcyBpdHMgdmFsdWUgYWZ0ZXIgYmVjb21pbmcgYSByYWRpb1xuXHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXHRpbnB1dC52YWx1ZSA9IFwidFwiO1xuXHRpbnB1dC50eXBlID0gXCJyYWRpb1wiO1xuXHRzdXBwb3J0LnJhZGlvVmFsdWUgPSBpbnB1dC52YWx1ZSA9PT0gXCJ0XCI7XG59ICkoKTtcblxuXG52YXIgYm9vbEhvb2ssXG5cdGF0dHJIYW5kbGUgPSBqUXVlcnkuZXhwci5hdHRySGFuZGxlO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGF0dHI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkuYXR0ciwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkucmVtb3ZlQXR0ciggdGhpcywgbmFtZSApO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGF0dHI6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcblx0XHR2YXIgcmV0LCBob29rcyxcblx0XHRcdG5UeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRcdC8vIERvbid0IGdldC9zZXQgYXR0cmlidXRlcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXNcblx0XHRpZiAoIG5UeXBlID09PSAzIHx8IG5UeXBlID09PSA4IHx8IG5UeXBlID09PSAyICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIEZhbGxiYWNrIHRvIHByb3Agd2hlbiBhdHRyaWJ1dGVzIGFyZSBub3Qgc3VwcG9ydGVkXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGUgPT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LnByb3AoIGVsZW0sIG5hbWUsIHZhbHVlICk7XG5cdFx0fVxuXG5cdFx0Ly8gQXR0cmlidXRlIGhvb2tzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBsb3dlcmNhc2UgdmVyc2lvblxuXHRcdC8vIEdyYWIgbmVjZXNzYXJ5IGhvb2sgaWYgb25lIGlzIGRlZmluZWRcblx0XHRpZiAoIG5UeXBlICE9PSAxIHx8ICFqUXVlcnkuaXNYTUxEb2MoIGVsZW0gKSApIHtcblx0XHRcdGhvb2tzID0galF1ZXJ5LmF0dHJIb29rc1sgbmFtZS50b0xvd2VyQ2FzZSgpIF0gfHxcblx0XHRcdFx0KCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnRlc3QoIG5hbWUgKSA/IGJvb2xIb29rIDogdW5kZWZpbmVkICk7XG5cdFx0fVxuXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gbnVsbCApIHtcblx0XHRcdFx0alF1ZXJ5LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0KCByZXQgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBuYW1lICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRlbGVtLnNldEF0dHJpYnV0ZSggbmFtZSwgdmFsdWUgKyBcIlwiICk7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXG5cdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmICggcmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBuYW1lICkgKSAhPT0gbnVsbCApIHtcblx0XHRcdHJldHVybiByZXQ7XG5cdFx0fVxuXG5cdFx0cmV0ID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgbmFtZSApO1xuXG5cdFx0Ly8gTm9uLWV4aXN0ZW50IGF0dHJpYnV0ZXMgcmV0dXJuIG51bGwsIHdlIG5vcm1hbGl6ZSB0byB1bmRlZmluZWRcblx0XHRyZXR1cm4gcmV0ID09IG51bGwgPyB1bmRlZmluZWQgOiByZXQ7XG5cdH0sXG5cblx0YXR0ckhvb2tzOiB7XG5cdFx0dHlwZToge1xuXHRcdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRcdGlmICggIXN1cHBvcnQucmFkaW9WYWx1ZSAmJiB2YWx1ZSA9PT0gXCJyYWRpb1wiICYmXG5cdFx0XHRcdFx0bm9kZU5hbWUoIGVsZW0sIFwiaW5wdXRcIiApICkge1xuXHRcdFx0XHRcdHZhciB2YWwgPSBlbGVtLnZhbHVlO1xuXHRcdFx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBcInR5cGVcIiwgdmFsdWUgKTtcblx0XHRcdFx0XHRpZiAoIHZhbCApIHtcblx0XHRcdFx0XHRcdGVsZW0udmFsdWUgPSB2YWw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHRyZW1vdmVBdHRyOiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0dmFyIG5hbWUsXG5cdFx0XHRpID0gMCxcblxuXHRcdFx0Ly8gQXR0cmlidXRlIG5hbWVzIGNhbiBjb250YWluIG5vbi1IVE1MIHdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuXHRcdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjYXR0cmlidXRlcy0yXG5cdFx0XHRhdHRyTmFtZXMgPSB2YWx1ZSAmJiB2YWx1ZS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApO1xuXG5cdFx0aWYgKCBhdHRyTmFtZXMgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdHdoaWxlICggKCBuYW1lID0gYXR0ck5hbWVzWyBpKysgXSApICkge1xuXHRcdFx0XHRlbGVtLnJlbW92ZUF0dHJpYnV0ZSggbmFtZSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSApO1xuXG4vLyBIb29rcyBmb3IgYm9vbGVhbiBhdHRyaWJ1dGVzXG5ib29sSG9vayA9IHtcblx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUsIG5hbWUgKSB7XG5cdFx0aWYgKCB2YWx1ZSA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdC8vIFJlbW92ZSBib29sZWFuIGF0dHJpYnV0ZXMgd2hlbiBzZXQgdG8gZmFsc2Vcblx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCBlbGVtLCBuYW1lICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBuYW1lLCBuYW1lICk7XG5cdFx0fVxuXHRcdHJldHVybiBuYW1lO1xuXHR9XG59O1xuXG5qUXVlcnkuZWFjaCggalF1ZXJ5LmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goIC9cXHcrL2cgKSwgZnVuY3Rpb24oIF9pLCBuYW1lICkge1xuXHR2YXIgZ2V0dGVyID0gYXR0ckhhbmRsZVsgbmFtZSBdIHx8IGpRdWVyeS5maW5kLmF0dHI7XG5cblx0YXR0ckhhbmRsZVsgbmFtZSBdID0gZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGlzWE1MICkge1xuXHRcdHZhciByZXQsIGhhbmRsZSxcblx0XHRcdGxvd2VyY2FzZU5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cblx0XHRpZiAoICFpc1hNTCApIHtcblxuXHRcdFx0Ly8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcCBieSB0ZW1wb3JhcmlseSByZW1vdmluZyB0aGlzIGZ1bmN0aW9uIGZyb20gdGhlIGdldHRlclxuXHRcdFx0aGFuZGxlID0gYXR0ckhhbmRsZVsgbG93ZXJjYXNlTmFtZSBdO1xuXHRcdFx0YXR0ckhhbmRsZVsgbG93ZXJjYXNlTmFtZSBdID0gcmV0O1xuXHRcdFx0cmV0ID0gZ2V0dGVyKCBlbGVtLCBuYW1lLCBpc1hNTCApICE9IG51bGwgP1xuXHRcdFx0XHRsb3dlcmNhc2VOYW1lIDpcblx0XHRcdFx0bnVsbDtcblx0XHRcdGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXSA9IGhhbmRsZTtcblx0XHR9XG5cdFx0cmV0dXJuIHJldDtcblx0fTtcbn0gKTtcblxuXG5cblxudmFyIHJmb2N1c2FibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFxuXHRyY2xpY2thYmxlID0gL14oPzphfGFyZWEpJC9pO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHByb3A6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkucHJvcCwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlUHJvcDogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRkZWxldGUgdGhpc1sgalF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lIF07XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0cHJvcDogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdHZhciByZXQsIGhvb2tzLFxuXHRcdFx0blR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdFx0Ly8gRG9uJ3QgZ2V0L3NldCBwcm9wZXJ0aWVzIG9uIHRleHQsIGNvbW1lbnQgYW5kIGF0dHJpYnV0ZSBub2Rlc1xuXHRcdGlmICggblR5cGUgPT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cblx0XHRcdC8vIEZpeCBuYW1lIGFuZCBhdHRhY2ggaG9va3Ncblx0XHRcdG5hbWUgPSBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWU7XG5cdFx0XHRob29rcyA9IGpRdWVyeS5wcm9wSG9va3NbIG5hbWUgXTtcblx0XHR9XG5cblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0KCByZXQgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBuYW1lICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gKCBlbGVtWyBuYW1lIF0gPSB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJiAoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgbmFtZSApICkgIT09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblxuXHRcdHJldHVybiBlbGVtWyBuYW1lIF07XG5cdH0sXG5cblx0cHJvcEhvb2tzOiB7XG5cdFx0dGFiSW5kZXg6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHRcdFx0XHQvLyBlbGVtLnRhYkluZGV4IGRvZXNuJ3QgYWx3YXlzIHJldHVybiB0aGVcblx0XHRcdFx0Ly8gY29ycmVjdCB2YWx1ZSB3aGVuIGl0IGhhc24ndCBiZWVuIGV4cGxpY2l0bHkgc2V0XG5cdFx0XHRcdC8vIFVzZSBwcm9wZXIgYXR0cmlidXRlIHJldHJpZXZhbCAodHJhYy0xMjA3Milcblx0XHRcdFx0dmFyIHRhYmluZGV4ID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgXCJ0YWJpbmRleFwiICk7XG5cblx0XHRcdFx0aWYgKCB0YWJpbmRleCApIHtcblx0XHRcdFx0XHRyZXR1cm4gcGFyc2VJbnQoIHRhYmluZGV4LCAxMCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdHJmb2N1c2FibGUudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8XG5cdFx0XHRcdFx0cmNsaWNrYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgJiZcblx0XHRcdFx0XHRlbGVtLmhyZWZcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdHByb3BGaXg6IHtcblx0XHRcImZvclwiOiBcImh0bWxGb3JcIixcblx0XHRcImNsYXNzXCI6IFwiY2xhc3NOYW1lXCJcblx0fVxufSApO1xuXG4vLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcbi8vIEFjY2Vzc2luZyB0aGUgc2VsZWN0ZWRJbmRleCBwcm9wZXJ0eVxuLy8gZm9yY2VzIHRoZSBicm93c2VyIHRvIHJlc3BlY3Qgc2V0dGluZyBzZWxlY3RlZFxuLy8gb24gdGhlIG9wdGlvblxuLy8gVGhlIGdldHRlciBlbnN1cmVzIGEgZGVmYXVsdCBvcHRpb24gaXMgc2VsZWN0ZWRcbi8vIHdoZW4gaW4gYW4gb3B0Z3JvdXBcbi8vIGVzbGludCBydWxlIFwibm8tdW51c2VkLWV4cHJlc3Npb25zXCIgaXMgZGlzYWJsZWQgZm9yIHRoaXMgY29kZVxuLy8gc2luY2UgaXQgY29uc2lkZXJzIHN1Y2ggYWNjZXNzaW9ucyBub29wXG5pZiAoICFzdXBwb3J0Lm9wdFNlbGVjdGVkICkge1xuXHRqUXVlcnkucHJvcEhvb2tzLnNlbGVjdGVkID0ge1xuXHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8qIGVzbGludCBuby11bnVzZWQtZXhwcmVzc2lvbnM6IFwib2ZmXCIgKi9cblxuXHRcdFx0dmFyIHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZTtcblx0XHRcdGlmICggcGFyZW50ICYmIHBhcmVudC5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRwYXJlbnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHQvKiBlc2xpbnQgbm8tdW51c2VkLWV4cHJlc3Npb25zOiBcIm9mZlwiICovXG5cblx0XHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRpZiAoIHBhcmVudCApIHtcblx0XHRcdFx0cGFyZW50LnNlbGVjdGVkSW5kZXg7XG5cblx0XHRcdFx0aWYgKCBwYXJlbnQucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0XHRwYXJlbnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufVxuXG5qUXVlcnkuZWFjaCggW1xuXHRcInRhYkluZGV4XCIsXG5cdFwicmVhZE9ubHlcIixcblx0XCJtYXhMZW5ndGhcIixcblx0XCJjZWxsU3BhY2luZ1wiLFxuXHRcImNlbGxQYWRkaW5nXCIsXG5cdFwicm93U3BhblwiLFxuXHRcImNvbFNwYW5cIixcblx0XCJ1c2VNYXBcIixcblx0XCJmcmFtZUJvcmRlclwiLFxuXHRcImNvbnRlbnRFZGl0YWJsZVwiXG5dLCBmdW5jdGlvbigpIHtcblx0alF1ZXJ5LnByb3BGaXhbIHRoaXMudG9Mb3dlckNhc2UoKSBdID0gdGhpcztcbn0gKTtcblxuXG5cblxuXHQvLyBTdHJpcCBhbmQgY29sbGFwc2Ugd2hpdGVzcGFjZSBhY2NvcmRpbmcgdG8gSFRNTCBzcGVjXG5cdC8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNzdHJpcC1hbmQtY29sbGFwc2UtYXNjaWktd2hpdGVzcGFjZVxuXHRmdW5jdGlvbiBzdHJpcEFuZENvbGxhcHNlKCB2YWx1ZSApIHtcblx0XHR2YXIgdG9rZW5zID0gdmFsdWUubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbXTtcblx0XHRyZXR1cm4gdG9rZW5zLmpvaW4oIFwiIFwiICk7XG5cdH1cblxuXG5mdW5jdGlvbiBnZXRDbGFzcyggZWxlbSApIHtcblx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlICYmIGVsZW0uZ2V0QXR0cmlidXRlKCBcImNsYXNzXCIgKSB8fCBcIlwiO1xufVxuXG5mdW5jdGlvbiBjbGFzc2VzVG9BcnJheSggdmFsdWUgKSB7XG5cdGlmICggQXJyYXkuaXNBcnJheSggdmFsdWUgKSApIHtcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cblx0aWYgKCB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIHZhbHVlLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW107XG5cdH1cblx0cmV0dXJuIFtdO1xufVxuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGFkZENsYXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0dmFyIGNsYXNzTmFtZXMsIGN1ciwgY3VyVmFsdWUsIGNsYXNzTmFtZSwgaSwgZmluYWxWYWx1ZTtcblxuXHRcdGlmICggaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBqICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5hZGRDbGFzcyggdmFsdWUuY2FsbCggdGhpcywgaiwgZ2V0Q2xhc3MoIHRoaXMgKSApICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0Y2xhc3NOYW1lcyA9IGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0aWYgKCBjbGFzc05hbWVzLmxlbmd0aCApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRjdXJWYWx1ZSA9IGdldENsYXNzKCB0aGlzICk7XG5cdFx0XHRcdGN1ciA9IHRoaXMubm9kZVR5cGUgPT09IDEgJiYgKCBcIiBcIiArIHN0cmlwQW5kQ29sbGFwc2UoIGN1clZhbHVlICkgKyBcIiBcIiApO1xuXG5cdFx0XHRcdGlmICggY3VyICkge1xuXHRcdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgY2xhc3NOYW1lcy5sZW5ndGg7IGkrKyApIHtcblx0XHRcdFx0XHRcdGNsYXNzTmFtZSA9IGNsYXNzTmFtZXNbIGkgXTtcblx0XHRcdFx0XHRcdGlmICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhc3NOYW1lICsgXCIgXCIgKSA8IDAgKSB7XG5cdFx0XHRcdFx0XHRcdGN1ciArPSBjbGFzc05hbWUgKyBcIiBcIjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBPbmx5IGFzc2lnbiBpZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5nLlxuXHRcdFx0XHRcdGZpbmFsVmFsdWUgPSBzdHJpcEFuZENvbGxhcHNlKCBjdXIgKTtcblx0XHRcdFx0XHRpZiAoIGN1clZhbHVlICE9PSBmaW5hbFZhbHVlICkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiwgZmluYWxWYWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHJlbW92ZUNsYXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0dmFyIGNsYXNzTmFtZXMsIGN1ciwgY3VyVmFsdWUsIGNsYXNzTmFtZSwgaSwgZmluYWxWYWx1ZTtcblxuXHRcdGlmICggaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBqICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5yZW1vdmVDbGFzcyggdmFsdWUuY2FsbCggdGhpcywgaiwgZ2V0Q2xhc3MoIHRoaXMgKSApICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0aWYgKCAhYXJndW1lbnRzLmxlbmd0aCApIHtcblx0XHRcdHJldHVybiB0aGlzLmF0dHIoIFwiY2xhc3NcIiwgXCJcIiApO1xuXHRcdH1cblxuXHRcdGNsYXNzTmFtZXMgPSBjbGFzc2VzVG9BcnJheSggdmFsdWUgKTtcblxuXHRcdGlmICggY2xhc3NOYW1lcy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Y3VyVmFsdWUgPSBnZXRDbGFzcyggdGhpcyApO1xuXG5cdFx0XHRcdC8vIFRoaXMgZXhwcmVzc2lvbiBpcyBoZXJlIGZvciBiZXR0ZXIgY29tcHJlc3NpYmlsaXR5IChzZWUgYWRkQ2xhc3MpXG5cdFx0XHRcdGN1ciA9IHRoaXMubm9kZVR5cGUgPT09IDEgJiYgKCBcIiBcIiArIHN0cmlwQW5kQ29sbGFwc2UoIGN1clZhbHVlICkgKyBcIiBcIiApO1xuXG5cdFx0XHRcdGlmICggY3VyICkge1xuXHRcdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgY2xhc3NOYW1lcy5sZW5ndGg7IGkrKyApIHtcblx0XHRcdFx0XHRcdGNsYXNzTmFtZSA9IGNsYXNzTmFtZXNbIGkgXTtcblxuXHRcdFx0XHRcdFx0Ly8gUmVtb3ZlICphbGwqIGluc3RhbmNlc1xuXHRcdFx0XHRcdFx0d2hpbGUgKCBjdXIuaW5kZXhPZiggXCIgXCIgKyBjbGFzc05hbWUgKyBcIiBcIiApID4gLTEgKSB7XG5cdFx0XHRcdFx0XHRcdGN1ciA9IGN1ci5yZXBsYWNlKCBcIiBcIiArIGNsYXNzTmFtZSArIFwiIFwiLCBcIiBcIiApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIE9ubHkgYXNzaWduIGlmIGRpZmZlcmVudCB0byBhdm9pZCB1bm5lZWRlZCByZW5kZXJpbmcuXG5cdFx0XHRcdFx0ZmluYWxWYWx1ZSA9IHN0cmlwQW5kQ29sbGFwc2UoIGN1ciApO1xuXHRcdFx0XHRcdGlmICggY3VyVmFsdWUgIT09IGZpbmFsVmFsdWUgKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnNldEF0dHJpYnV0ZSggXCJjbGFzc1wiLCBmaW5hbFZhbHVlICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0dG9nZ2xlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSwgc3RhdGVWYWwgKSB7XG5cdFx0dmFyIGNsYXNzTmFtZXMsIGNsYXNzTmFtZSwgaSwgc2VsZixcblx0XHRcdHR5cGUgPSB0eXBlb2YgdmFsdWUsXG5cdFx0XHRpc1ZhbGlkVmFsdWUgPSB0eXBlID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkoIHZhbHVlICk7XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkudG9nZ2xlQ2xhc3MoXG5cdFx0XHRcdFx0dmFsdWUuY2FsbCggdGhpcywgaSwgZ2V0Q2xhc3MoIHRoaXMgKSwgc3RhdGVWYWwgKSxcblx0XHRcdFx0XHRzdGF0ZVZhbFxuXHRcdFx0XHQpO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGlmICggdHlwZW9mIHN0YXRlVmFsID09PSBcImJvb2xlYW5cIiAmJiBpc1ZhbGlkVmFsdWUgKSB7XG5cdFx0XHRyZXR1cm4gc3RhdGVWYWwgPyB0aGlzLmFkZENsYXNzKCB2YWx1ZSApIDogdGhpcy5yZW1vdmVDbGFzcyggdmFsdWUgKTtcblx0XHR9XG5cblx0XHRjbGFzc05hbWVzID0gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICk7XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggaXNWYWxpZFZhbHVlICkge1xuXG5cdFx0XHRcdC8vIFRvZ2dsZSBpbmRpdmlkdWFsIGNsYXNzIG5hbWVzXG5cdFx0XHRcdHNlbGYgPSBqUXVlcnkoIHRoaXMgKTtcblxuXHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGNsYXNzTmFtZXMubGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdFx0Y2xhc3NOYW1lID0gY2xhc3NOYW1lc1sgaSBdO1xuXG5cdFx0XHRcdFx0Ly8gQ2hlY2sgZWFjaCBjbGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGFyYXRlZCBsaXN0XG5cdFx0XHRcdFx0aWYgKCBzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKSApIHtcblx0XHRcdFx0XHRcdHNlbGYucmVtb3ZlQ2xhc3MoIGNsYXNzTmFtZSApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRzZWxmLmFkZENsYXNzKCBjbGFzc05hbWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gVG9nZ2xlIHdob2xlIGNsYXNzIG5hbWVcblx0XHRcdH0gZWxzZSBpZiAoIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdHlwZSA9PT0gXCJib29sZWFuXCIgKSB7XG5cdFx0XHRcdGNsYXNzTmFtZSA9IGdldENsYXNzKCB0aGlzICk7XG5cdFx0XHRcdGlmICggY2xhc3NOYW1lICkge1xuXG5cdFx0XHRcdFx0Ly8gU3RvcmUgY2xhc3NOYW1lIGlmIHNldFxuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgXCJfX2NsYXNzTmFtZV9fXCIsIGNsYXNzTmFtZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gSWYgdGhlIGVsZW1lbnQgaGFzIGEgY2xhc3MgbmFtZSBvciBpZiB3ZSdyZSBwYXNzZWQgYGZhbHNlYCxcblx0XHRcdFx0Ly8gdGhlbiByZW1vdmUgdGhlIHdob2xlIGNsYXNzbmFtZSAoaWYgdGhlcmUgd2FzIG9uZSwgdGhlIGFib3ZlIHNhdmVkIGl0KS5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlIGJyaW5nIGJhY2sgd2hhdGV2ZXIgd2FzIHByZXZpb3VzbHkgc2F2ZWQgKGlmIGFueXRoaW5nKSxcblx0XHRcdFx0Ly8gZmFsbGluZyBiYWNrIHRvIHRoZSBlbXB0eSBzdHJpbmcgaWYgbm90aGluZyB3YXMgc3RvcmVkLlxuXHRcdFx0XHRpZiAoIHRoaXMuc2V0QXR0cmlidXRlICkge1xuXHRcdFx0XHRcdHRoaXMuc2V0QXR0cmlidXRlKCBcImNsYXNzXCIsXG5cdFx0XHRcdFx0XHRjbGFzc05hbWUgfHwgdmFsdWUgPT09IGZhbHNlID9cblx0XHRcdFx0XHRcdFx0XCJcIiA6XG5cdFx0XHRcdFx0XHRcdGRhdGFQcml2LmdldCggdGhpcywgXCJfX2NsYXNzTmFtZV9fXCIgKSB8fCBcIlwiXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRoYXNDbGFzczogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHZhciBjbGFzc05hbWUsIGVsZW0sXG5cdFx0XHRpID0gMDtcblxuXHRcdGNsYXNzTmFtZSA9IFwiIFwiICsgc2VsZWN0b3IgKyBcIiBcIjtcblx0XHR3aGlsZSAoICggZWxlbSA9IHRoaXNbIGkrKyBdICkgKSB7XG5cdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiZcblx0XHRcdFx0KCBcIiBcIiArIHN0cmlwQW5kQ29sbGFwc2UoIGdldENsYXNzKCBlbGVtICkgKSArIFwiIFwiICkuaW5kZXhPZiggY2xhc3NOYW1lICkgPiAtMSApIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59ICk7XG5cblxuXG5cbnZhciBycmV0dXJuID0gL1xcci9nO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHZhbDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBob29rcywgcmV0LCB2YWx1ZUlzRnVuY3Rpb24sXG5cdFx0XHRlbGVtID0gdGhpc1sgMCBdO1xuXG5cdFx0aWYgKCAhYXJndW1lbnRzLmxlbmd0aCApIHtcblx0XHRcdGlmICggZWxlbSApIHtcblx0XHRcdFx0aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIGVsZW0udHlwZSBdIHx8XG5cdFx0XHRcdFx0alF1ZXJ5LnZhbEhvb2tzWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTtcblxuXHRcdFx0XHRpZiAoIGhvb2tzICYmXG5cdFx0XHRcdFx0XCJnZXRcIiBpbiBob29rcyAmJlxuXHRcdFx0XHRcdCggcmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBcInZhbHVlXCIgKSApICE9PSB1bmRlZmluZWRcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldCA9IGVsZW0udmFsdWU7XG5cblx0XHRcdFx0Ly8gSGFuZGxlIG1vc3QgY29tbW9uIHN0cmluZyBjYXNlc1xuXHRcdFx0XHRpZiAoIHR5cGVvZiByZXQgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJldC5yZXBsYWNlKCBycmV0dXJuLCBcIlwiICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBIYW5kbGUgY2FzZXMgd2hlcmUgdmFsdWUgaXMgbnVsbC91bmRlZiBvciBudW1iZXJcblx0XHRcdFx0cmV0dXJuIHJldCA9PSBudWxsID8gXCJcIiA6IHJldDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhbHVlSXNGdW5jdGlvbiA9IGlzRnVuY3Rpb24oIHZhbHVlICk7XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdHZhciB2YWw7XG5cblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSAhPT0gMSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHZhbHVlSXNGdW5jdGlvbiApIHtcblx0XHRcdFx0dmFsID0gdmFsdWUuY2FsbCggdGhpcywgaSwgalF1ZXJ5KCB0aGlzICkudmFsKCkgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHZhbCA9IHZhbHVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUcmVhdCBudWxsL3VuZGVmaW5lZCBhcyBcIlwiOyBjb252ZXJ0IG51bWJlcnMgdG8gc3RyaW5nXG5cdFx0XHRpZiAoIHZhbCA9PSBudWxsICkge1xuXHRcdFx0XHR2YWwgPSBcIlwiO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCB0eXBlb2YgdmFsID09PSBcIm51bWJlclwiICkge1xuXHRcdFx0XHR2YWwgKz0gXCJcIjtcblxuXHRcdFx0fSBlbHNlIGlmICggQXJyYXkuaXNBcnJheSggdmFsICkgKSB7XG5cdFx0XHRcdHZhbCA9IGpRdWVyeS5tYXAoIHZhbCwgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0XHRcdHJldHVybiB2YWx1ZSA9PSBudWxsID8gXCJcIiA6IHZhbHVlICsgXCJcIjtcblx0XHRcdFx0fSApO1xuXHRcdFx0fVxuXG5cdFx0XHRob29rcyA9IGpRdWVyeS52YWxIb29rc1sgdGhpcy50eXBlIF0gfHwgalF1ZXJ5LnZhbEhvb2tzWyB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTtcblxuXHRcdFx0Ly8gSWYgc2V0IHJldHVybnMgdW5kZWZpbmVkLCBmYWxsIGJhY2sgdG8gbm9ybWFsIHNldHRpbmdcblx0XHRcdGlmICggIWhvb2tzIHx8ICEoIFwic2V0XCIgaW4gaG9va3MgKSB8fCBob29rcy5zZXQoIHRoaXMsIHZhbCwgXCJ2YWx1ZVwiICkgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0dGhpcy52YWx1ZSA9IHZhbDtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmV4dGVuZCgge1xuXHR2YWxIb29rczoge1xuXHRcdG9wdGlvbjoge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0XHR2YXIgdmFsID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgXCJ2YWx1ZVwiICk7XG5cdFx0XHRcdHJldHVybiB2YWwgIT0gbnVsbCA/XG5cdFx0XHRcdFx0dmFsIDpcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9MTAgLSAxMSBvbmx5XG5cdFx0XHRcdFx0Ly8gb3B0aW9uLnRleHQgdGhyb3dzIGV4Y2VwdGlvbnMgKHRyYWMtMTQ2ODYsIHRyYWMtMTQ4NTgpXG5cdFx0XHRcdFx0Ly8gU3RyaXAgYW5kIGNvbGxhcHNlIHdoaXRlc3BhY2Vcblx0XHRcdFx0XHQvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNzdHJpcC1hbmQtY29sbGFwc2Utd2hpdGVzcGFjZVxuXHRcdFx0XHRcdHN0cmlwQW5kQ29sbGFwc2UoIGpRdWVyeS50ZXh0KCBlbGVtICkgKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHNlbGVjdDoge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIHZhbHVlLCBvcHRpb24sIGksXG5cdFx0XHRcdFx0b3B0aW9ucyA9IGVsZW0ub3B0aW9ucyxcblx0XHRcdFx0XHRpbmRleCA9IGVsZW0uc2VsZWN0ZWRJbmRleCxcblx0XHRcdFx0XHRvbmUgPSBlbGVtLnR5cGUgPT09IFwic2VsZWN0LW9uZVwiLFxuXHRcdFx0XHRcdHZhbHVlcyA9IG9uZSA/IG51bGwgOiBbXSxcblx0XHRcdFx0XHRtYXggPSBvbmUgPyBpbmRleCArIDEgOiBvcHRpb25zLmxlbmd0aDtcblxuXHRcdFx0XHRpZiAoIGluZGV4IDwgMCApIHtcblx0XHRcdFx0XHRpID0gbWF4O1xuXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aSA9IG9uZSA/IGluZGV4IDogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVkIG9wdGlvbnNcblx0XHRcdFx0Zm9yICggOyBpIDwgbWF4OyBpKysgKSB7XG5cdFx0XHRcdFx0b3B0aW9uID0gb3B0aW9uc1sgaSBdO1xuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHRcdFx0XHQvLyBJRTgtOSBkb2Vzbid0IHVwZGF0ZSBzZWxlY3RlZCBhZnRlciBmb3JtIHJlc2V0ICh0cmFjLTI1NTEpXG5cdFx0XHRcdFx0aWYgKCAoIG9wdGlvbi5zZWxlY3RlZCB8fCBpID09PSBpbmRleCApICYmXG5cblx0XHRcdFx0XHRcdFx0Ly8gRG9uJ3QgcmV0dXJuIG9wdGlvbnMgdGhhdCBhcmUgZGlzYWJsZWQgb3IgaW4gYSBkaXNhYmxlZCBvcHRncm91cFxuXHRcdFx0XHRcdFx0XHQhb3B0aW9uLmRpc2FibGVkICYmXG5cdFx0XHRcdFx0XHRcdCggIW9wdGlvbi5wYXJlbnROb2RlLmRpc2FibGVkIHx8XG5cdFx0XHRcdFx0XHRcdFx0IW5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgXCJvcHRncm91cFwiICkgKSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gR2V0IHRoZSBzcGVjaWZpYyB2YWx1ZSBmb3IgdGhlIG9wdGlvblxuXHRcdFx0XHRcdFx0dmFsdWUgPSBqUXVlcnkoIG9wdGlvbiApLnZhbCgpO1xuXG5cdFx0XHRcdFx0XHQvLyBXZSBkb24ndCBuZWVkIGFuIGFycmF5IGZvciBvbmUgc2VsZWN0c1xuXHRcdFx0XHRcdFx0aWYgKCBvbmUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXlcblx0XHRcdFx0XHRcdHZhbHVlcy5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB2YWx1ZXM7XG5cdFx0XHR9LFxuXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIG9wdGlvblNldCwgb3B0aW9uLFxuXHRcdFx0XHRcdG9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsXG5cdFx0XHRcdFx0dmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSggdmFsdWUgKSxcblx0XHRcdFx0XHRpID0gb3B0aW9ucy5sZW5ndGg7XG5cblx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0b3B0aW9uID0gb3B0aW9uc1sgaSBdO1xuXG5cdFx0XHRcdFx0LyogZXNsaW50LWRpc2FibGUgbm8tY29uZC1hc3NpZ24gKi9cblxuXHRcdFx0XHRcdGlmICggb3B0aW9uLnNlbGVjdGVkID1cblx0XHRcdFx0XHRcdGpRdWVyeS5pbkFycmF5KCBqUXVlcnkudmFsSG9va3Mub3B0aW9uLmdldCggb3B0aW9uICksIHZhbHVlcyApID4gLTFcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdG9wdGlvblNldCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LyogZXNsaW50LWVuYWJsZSBuby1jb25kLWFzc2lnbiAqL1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gRm9yY2UgYnJvd3NlcnMgdG8gYmVoYXZlIGNvbnNpc3RlbnRseSB3aGVuIG5vbi1tYXRjaGluZyB2YWx1ZSBpcyBzZXRcblx0XHRcdFx0aWYgKCAhb3B0aW9uU2V0ICkge1xuXHRcdFx0XHRcdGVsZW0uc2VsZWN0ZWRJbmRleCA9IC0xO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB2YWx1ZXM7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59ICk7XG5cbi8vIFJhZGlvcyBhbmQgY2hlY2tib3hlcyBnZXR0ZXIvc2V0dGVyXG5qUXVlcnkuZWFjaCggWyBcInJhZGlvXCIsIFwiY2hlY2tib3hcIiBdLCBmdW5jdGlvbigpIHtcblx0alF1ZXJ5LnZhbEhvb2tzWyB0aGlzIF0gPSB7XG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRpZiAoIEFycmF5LmlzQXJyYXkoIHZhbHVlICkgKSB7XG5cdFx0XHRcdHJldHVybiAoIGVsZW0uY2hlY2tlZCA9IGpRdWVyeS5pbkFycmF5KCBqUXVlcnkoIGVsZW0gKS52YWwoKSwgdmFsdWUgKSA+IC0xICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRpZiAoICFzdXBwb3J0LmNoZWNrT24gKSB7XG5cdFx0alF1ZXJ5LnZhbEhvb2tzWyB0aGlzIF0uZ2V0ID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoIFwidmFsdWVcIiApID09PSBudWxsID8gXCJvblwiIDogZWxlbS52YWx1ZTtcblx0XHR9O1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFJldHVybiBqUXVlcnkgZm9yIGF0dHJpYnV0ZXMtb25seSBpbmNsdXNpb25cblxuXG5zdXBwb3J0LmZvY3VzaW4gPSBcIm9uZm9jdXNpblwiIGluIHdpbmRvdztcblxuXG52YXIgcmZvY3VzTW9ycGggPSAvXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sXG5cdHN0b3BQcm9wYWdhdGlvbkNhbGxiYWNrID0gZnVuY3Rpb24oIGUgKSB7XG5cdFx0ZS5zdG9wUHJvcGFnYXRpb24oKTtcblx0fTtcblxualF1ZXJ5LmV4dGVuZCggalF1ZXJ5LmV2ZW50LCB7XG5cblx0dHJpZ2dlcjogZnVuY3Rpb24oIGV2ZW50LCBkYXRhLCBlbGVtLCBvbmx5SGFuZGxlcnMgKSB7XG5cblx0XHR2YXIgaSwgY3VyLCB0bXAsIGJ1YmJsZVR5cGUsIG9udHlwZSwgaGFuZGxlLCBzcGVjaWFsLCBsYXN0RWxlbWVudCxcblx0XHRcdGV2ZW50UGF0aCA9IFsgZWxlbSB8fCBkb2N1bWVudCBdLFxuXHRcdFx0dHlwZSA9IGhhc093bi5jYWxsKCBldmVudCwgXCJ0eXBlXCIgKSA/IGV2ZW50LnR5cGUgOiBldmVudCxcblx0XHRcdG5hbWVzcGFjZXMgPSBoYXNPd24uY2FsbCggZXZlbnQsIFwibmFtZXNwYWNlXCIgKSA/IGV2ZW50Lm5hbWVzcGFjZS5zcGxpdCggXCIuXCIgKSA6IFtdO1xuXG5cdFx0Y3VyID0gbGFzdEVsZW1lbnQgPSB0bXAgPSBlbGVtID0gZWxlbSB8fCBkb2N1bWVudDtcblxuXHRcdC8vIERvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzXG5cdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gZm9jdXMvYmx1ciBtb3JwaHMgdG8gZm9jdXNpbi9vdXQ7IGVuc3VyZSB3ZSdyZSBub3QgZmlyaW5nIHRoZW0gcmlnaHQgbm93XG5cdFx0aWYgKCByZm9jdXNNb3JwaC50ZXN0KCB0eXBlICsgalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICggdHlwZS5pbmRleE9mKCBcIi5cIiApID4gLTEgKSB7XG5cblx0XHRcdC8vIE5hbWVzcGFjZWQgdHJpZ2dlcjsgY3JlYXRlIGEgcmVnZXhwIHRvIG1hdGNoIGV2ZW50IHR5cGUgaW4gaGFuZGxlKClcblx0XHRcdG5hbWVzcGFjZXMgPSB0eXBlLnNwbGl0KCBcIi5cIiApO1xuXHRcdFx0dHlwZSA9IG5hbWVzcGFjZXMuc2hpZnQoKTtcblx0XHRcdG5hbWVzcGFjZXMuc29ydCgpO1xuXHRcdH1cblx0XHRvbnR5cGUgPSB0eXBlLmluZGV4T2YoIFwiOlwiICkgPCAwICYmIFwib25cIiArIHR5cGU7XG5cblx0XHQvLyBDYWxsZXIgY2FuIHBhc3MgaW4gYSBqUXVlcnkuRXZlbnQgb2JqZWN0LCBPYmplY3QsIG9yIGp1c3QgYW4gZXZlbnQgdHlwZSBzdHJpbmdcblx0XHRldmVudCA9IGV2ZW50WyBqUXVlcnkuZXhwYW5kbyBdID9cblx0XHRcdGV2ZW50IDpcblx0XHRcdG5ldyBqUXVlcnkuRXZlbnQoIHR5cGUsIHR5cGVvZiBldmVudCA9PT0gXCJvYmplY3RcIiAmJiBldmVudCApO1xuXG5cdFx0Ly8gVHJpZ2dlciBiaXRtYXNrOiAmIDEgZm9yIG5hdGl2ZSBoYW5kbGVyczsgJiAyIGZvciBqUXVlcnkgKGFsd2F5cyB0cnVlKVxuXHRcdGV2ZW50LmlzVHJpZ2dlciA9IG9ubHlIYW5kbGVycyA/IDIgOiAzO1xuXHRcdGV2ZW50Lm5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuam9pbiggXCIuXCIgKTtcblx0XHRldmVudC5ybmFtZXNwYWNlID0gZXZlbnQubmFtZXNwYWNlID9cblx0XHRcdG5ldyBSZWdFeHAoIFwiKF58XFxcXC4pXCIgKyBuYW1lc3BhY2VzLmpvaW4oIFwiXFxcXC4oPzouKlxcXFwufClcIiApICsgXCIoXFxcXC58JClcIiApIDpcblx0XHRcdG51bGw7XG5cblx0XHQvLyBDbGVhbiB1cCB0aGUgZXZlbnQgaW4gY2FzZSBpdCBpcyBiZWluZyByZXVzZWRcblx0XHRldmVudC5yZXN1bHQgPSB1bmRlZmluZWQ7XG5cdFx0aWYgKCAhZXZlbnQudGFyZ2V0ICkge1xuXHRcdFx0ZXZlbnQudGFyZ2V0ID0gZWxlbTtcblx0XHR9XG5cblx0XHQvLyBDbG9uZSBhbnkgaW5jb21pbmcgZGF0YSBhbmQgcHJlcGVuZCB0aGUgZXZlbnQsIGNyZWF0aW5nIHRoZSBoYW5kbGVyIGFyZyBsaXN0XG5cdFx0ZGF0YSA9IGRhdGEgPT0gbnVsbCA/XG5cdFx0XHRbIGV2ZW50IF0gOlxuXHRcdFx0alF1ZXJ5Lm1ha2VBcnJheSggZGF0YSwgWyBldmVudCBdICk7XG5cblx0XHQvLyBBbGxvdyBzcGVjaWFsIGV2ZW50cyB0byBkcmF3IG91dHNpZGUgdGhlIGxpbmVzXG5cdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cdFx0aWYgKCAhb25seUhhbmRsZXJzICYmIHNwZWNpYWwudHJpZ2dlciAmJiBzcGVjaWFsLnRyaWdnZXIuYXBwbHkoIGVsZW0sIGRhdGEgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZXJtaW5lIGV2ZW50IHByb3BhZ2F0aW9uIHBhdGggaW4gYWR2YW5jZSwgcGVyIFczQyBldmVudHMgc3BlYyAodHJhYy05OTUxKVxuXHRcdC8vIEJ1YmJsZSB1cCB0byBkb2N1bWVudCwgdGhlbiB0byB3aW5kb3c7IHdhdGNoIGZvciBhIGdsb2JhbCBvd25lckRvY3VtZW50IHZhciAodHJhYy05NzI0KVxuXHRcdGlmICggIW9ubHlIYW5kbGVycyAmJiAhc3BlY2lhbC5ub0J1YmJsZSAmJiAhaXNXaW5kb3coIGVsZW0gKSApIHtcblxuXHRcdFx0YnViYmxlVHlwZSA9IHNwZWNpYWwuZGVsZWdhdGVUeXBlIHx8IHR5cGU7XG5cdFx0XHRpZiAoICFyZm9jdXNNb3JwaC50ZXN0KCBidWJibGVUeXBlICsgdHlwZSApICkge1xuXHRcdFx0XHRjdXIgPSBjdXIucGFyZW50Tm9kZTtcblx0XHRcdH1cblx0XHRcdGZvciAoIDsgY3VyOyBjdXIgPSBjdXIucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0ZXZlbnRQYXRoLnB1c2goIGN1ciApO1xuXHRcdFx0XHR0bXAgPSBjdXI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE9ubHkgYWRkIHdpbmRvdyBpZiB3ZSBnb3QgdG8gZG9jdW1lbnQgKGUuZy4sIG5vdCBwbGFpbiBvYmogb3IgZGV0YWNoZWQgRE9NKVxuXHRcdFx0aWYgKCB0bXAgPT09ICggZWxlbS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50ICkgKSB7XG5cdFx0XHRcdGV2ZW50UGF0aC5wdXNoKCB0bXAuZGVmYXVsdFZpZXcgfHwgdG1wLnBhcmVudFdpbmRvdyB8fCB3aW5kb3cgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBGaXJlIGhhbmRsZXJzIG9uIHRoZSBldmVudCBwYXRoXG5cdFx0aSA9IDA7XG5cdFx0d2hpbGUgKCAoIGN1ciA9IGV2ZW50UGF0aFsgaSsrIF0gKSAmJiAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdGxhc3RFbGVtZW50ID0gY3VyO1xuXHRcdFx0ZXZlbnQudHlwZSA9IGkgPiAxID9cblx0XHRcdFx0YnViYmxlVHlwZSA6XG5cdFx0XHRcdHNwZWNpYWwuYmluZFR5cGUgfHwgdHlwZTtcblxuXHRcdFx0Ly8galF1ZXJ5IGhhbmRsZXJcblx0XHRcdGhhbmRsZSA9ICggZGF0YVByaXYuZ2V0KCBjdXIsIFwiZXZlbnRzXCIgKSB8fCBPYmplY3QuY3JlYXRlKCBudWxsICkgKVsgZXZlbnQudHlwZSBdICYmXG5cdFx0XHRcdGRhdGFQcml2LmdldCggY3VyLCBcImhhbmRsZVwiICk7XG5cdFx0XHRpZiAoIGhhbmRsZSApIHtcblx0XHRcdFx0aGFuZGxlLmFwcGx5KCBjdXIsIGRhdGEgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTmF0aXZlIGhhbmRsZXJcblx0XHRcdGhhbmRsZSA9IG9udHlwZSAmJiBjdXJbIG9udHlwZSBdO1xuXHRcdFx0aWYgKCBoYW5kbGUgJiYgaGFuZGxlLmFwcGx5ICYmIGFjY2VwdERhdGEoIGN1ciApICkge1xuXHRcdFx0XHRldmVudC5yZXN1bHQgPSBoYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApO1xuXHRcdFx0XHRpZiAoIGV2ZW50LnJlc3VsdCA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRldmVudC50eXBlID0gdHlwZTtcblxuXHRcdC8vIElmIG5vYm9keSBwcmV2ZW50ZWQgdGhlIGRlZmF1bHQgYWN0aW9uLCBkbyBpdCBub3dcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkge1xuXG5cdFx0XHRpZiAoICggIXNwZWNpYWwuX2RlZmF1bHQgfHxcblx0XHRcdFx0c3BlY2lhbC5fZGVmYXVsdC5hcHBseSggZXZlbnRQYXRoLnBvcCgpLCBkYXRhICkgPT09IGZhbHNlICkgJiZcblx0XHRcdFx0YWNjZXB0RGF0YSggZWxlbSApICkge1xuXG5cdFx0XHRcdC8vIENhbGwgYSBuYXRpdmUgRE9NIG1ldGhvZCBvbiB0aGUgdGFyZ2V0IHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgZXZlbnQuXG5cdFx0XHRcdC8vIERvbid0IGRvIGRlZmF1bHQgYWN0aW9ucyBvbiB3aW5kb3csIHRoYXQncyB3aGVyZSBnbG9iYWwgdmFyaWFibGVzIGJlICh0cmFjLTYxNzApXG5cdFx0XHRcdGlmICggb250eXBlICYmIGlzRnVuY3Rpb24oIGVsZW1bIHR5cGUgXSApICYmICFpc1dpbmRvdyggZWxlbSApICkge1xuXG5cdFx0XHRcdFx0Ly8gRG9uJ3QgcmUtdHJpZ2dlciBhbiBvbkZPTyBldmVudCB3aGVuIHdlIGNhbGwgaXRzIEZPTygpIG1ldGhvZFxuXHRcdFx0XHRcdHRtcCA9IGVsZW1bIG9udHlwZSBdO1xuXG5cdFx0XHRcdFx0aWYgKCB0bXAgKSB7XG5cdFx0XHRcdFx0XHRlbGVtWyBvbnR5cGUgXSA9IG51bGw7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gUHJldmVudCByZS10cmlnZ2VyaW5nIG9mIHRoZSBzYW1lIGV2ZW50LCBzaW5jZSB3ZSBhbHJlYWR5IGJ1YmJsZWQgaXQgYWJvdmVcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlcmVkID0gdHlwZTtcblxuXHRcdFx0XHRcdGlmICggZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdFx0XHRcdGxhc3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIHN0b3BQcm9wYWdhdGlvbkNhbGxiYWNrICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0ZWxlbVsgdHlwZSBdKCk7XG5cblx0XHRcdFx0XHRpZiAoIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRcdFx0XHRsYXN0RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCB0eXBlLCBzdG9wUHJvcGFnYXRpb25DYWxsYmFjayApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdFx0XHRpZiAoIHRtcCApIHtcblx0XHRcdFx0XHRcdGVsZW1bIG9udHlwZSBdID0gdG1wO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XG5cdH0sXG5cblx0Ly8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZlbnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lXG5cdC8vIFVzZWQgb25seSBmb3IgYGZvY3VzKGluIHwgb3V0KWAgZXZlbnRzXG5cdHNpbXVsYXRlOiBmdW5jdGlvbiggdHlwZSwgZWxlbSwgZXZlbnQgKSB7XG5cdFx0dmFyIGUgPSBqUXVlcnkuZXh0ZW5kKFxuXHRcdFx0bmV3IGpRdWVyeS5FdmVudCgpLFxuXHRcdFx0ZXZlbnQsXG5cdFx0XHR7XG5cdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdGlzU2ltdWxhdGVkOiB0cnVlXG5cdFx0XHR9XG5cdFx0KTtcblxuXHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCBlLCBudWxsLCBlbGVtICk7XG5cdH1cblxufSApO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cblx0dHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgdGhpcyApO1xuXHRcdH0gKTtcblx0fSxcblx0dHJpZ2dlckhhbmRsZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHZhciBlbGVtID0gdGhpc1sgMCBdO1xuXHRcdGlmICggZWxlbSApIHtcblx0XHRcdHJldHVybiBqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgZWxlbSwgdHJ1ZSApO1xuXHRcdH1cblx0fVxufSApO1xuXG5cbi8vIFN1cHBvcnQ6IEZpcmVmb3ggPD00NFxuLy8gRmlyZWZveCBkb2Vzbid0IGhhdmUgZm9jdXMoaW4gfCBvdXQpIGV2ZW50c1xuLy8gUmVsYXRlZCB0aWNrZXQgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc3ODdcbi8vXG4vLyBTdXBwb3J0OiBDaHJvbWUgPD00OCAtIDQ5LCBTYWZhcmkgPD05LjAgLSA5LjFcbi8vIGZvY3VzKGluIHwgb3V0KSBldmVudHMgZmlyZSBhZnRlciBmb2N1cyAmIGJsdXIgZXZlbnRzLFxuLy8gd2hpY2ggaXMgc3BlYyB2aW9sYXRpb24gLSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1mb2N1c2V2ZW50LWV2ZW50LW9yZGVyXG4vLyBSZWxhdGVkIHRpY2tldCAtIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ0OTg1N1xuaWYgKCAhc3VwcG9ydC5mb2N1c2luICkge1xuXHRqUXVlcnkuZWFjaCggeyBmb2N1czogXCJmb2N1c2luXCIsIGJsdXI6IFwiZm9jdXNvdXRcIiB9LCBmdW5jdGlvbiggb3JpZywgZml4ICkge1xuXG5cdFx0Ly8gQXR0YWNoIGEgc2luZ2xlIGNhcHR1cmluZyBoYW5kbGVyIG9uIHRoZSBkb2N1bWVudCB3aGlsZSBzb21lb25lIHdhbnRzIGZvY3VzaW4vZm9jdXNvdXRcblx0XHR2YXIgaGFuZGxlciA9IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHRcdGpRdWVyeS5ldmVudC5zaW11bGF0ZSggZml4LCBldmVudC50YXJnZXQsIGpRdWVyeS5ldmVudC5maXgoIGV2ZW50ICkgKTtcblx0XHR9O1xuXG5cdFx0alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGZpeCBdID0ge1xuXHRcdFx0c2V0dXA6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdC8vIEhhbmRsZTogcmVndWxhciBub2RlcyAodmlhIGB0aGlzLm93bmVyRG9jdW1lbnRgKSwgd2luZG93XG5cdFx0XHRcdC8vICh2aWEgYHRoaXMuZG9jdW1lbnRgKSAmIGRvY3VtZW50ICh2aWEgYHRoaXNgKS5cblx0XHRcdFx0dmFyIGRvYyA9IHRoaXMub3duZXJEb2N1bWVudCB8fCB0aGlzLmRvY3VtZW50IHx8IHRoaXMsXG5cdFx0XHRcdFx0YXR0YWNoZXMgPSBkYXRhUHJpdi5hY2Nlc3MoIGRvYywgZml4ICk7XG5cblx0XHRcdFx0aWYgKCAhYXR0YWNoZXMgKSB7XG5cdFx0XHRcdFx0ZG9jLmFkZEV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhUHJpdi5hY2Nlc3MoIGRvYywgZml4LCAoIGF0dGFjaGVzIHx8IDAgKSArIDEgKTtcblx0XHRcdH0sXG5cdFx0XHR0ZWFyZG93bjogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBkb2MgPSB0aGlzLm93bmVyRG9jdW1lbnQgfHwgdGhpcy5kb2N1bWVudCB8fCB0aGlzLFxuXHRcdFx0XHRcdGF0dGFjaGVzID0gZGF0YVByaXYuYWNjZXNzKCBkb2MsIGZpeCApIC0gMTtcblxuXHRcdFx0XHRpZiAoICFhdHRhY2hlcyApIHtcblx0XHRcdFx0XHRkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lciggb3JpZywgaGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHRcdGRhdGFQcml2LnJlbW92ZSggZG9jLCBmaXggKTtcblxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGRhdGFQcml2LmFjY2VzcyggZG9jLCBmaXgsIGF0dGFjaGVzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9ICk7XG59XG52YXIgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb247XG5cbnZhciBub25jZSA9IHsgZ3VpZDogRGF0ZS5ub3coKSB9O1xuXG52YXIgcnF1ZXJ5ID0gKCAvXFw/LyApO1xuXG5cblxuLy8gQ3Jvc3MtYnJvd3NlciB4bWwgcGFyc2luZ1xualF1ZXJ5LnBhcnNlWE1MID0gZnVuY3Rpb24oIGRhdGEgKSB7XG5cdHZhciB4bWwsIHBhcnNlckVycm9yRWxlbTtcblx0aWYgKCAhZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5XG5cdC8vIElFIHRocm93cyBvbiBwYXJzZUZyb21TdHJpbmcgd2l0aCBpbnZhbGlkIGlucHV0LlxuXHR0cnkge1xuXHRcdHhtbCA9ICggbmV3IHdpbmRvdy5ET01QYXJzZXIoKSApLnBhcnNlRnJvbVN0cmluZyggZGF0YSwgXCJ0ZXh0L3htbFwiICk7XG5cdH0gY2F0Y2ggKCBlICkge31cblxuXHRwYXJzZXJFcnJvckVsZW0gPSB4bWwgJiYgeG1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcInBhcnNlcmVycm9yXCIgKVsgMCBdO1xuXHRpZiAoICF4bWwgfHwgcGFyc2VyRXJyb3JFbGVtICkge1xuXHRcdGpRdWVyeS5lcnJvciggXCJJbnZhbGlkIFhNTDogXCIgKyAoXG5cdFx0XHRwYXJzZXJFcnJvckVsZW0gP1xuXHRcdFx0XHRqUXVlcnkubWFwKCBwYXJzZXJFcnJvckVsZW0uY2hpbGROb2RlcywgZnVuY3Rpb24oIGVsICkge1xuXHRcdFx0XHRcdHJldHVybiBlbC50ZXh0Q29udGVudDtcblx0XHRcdFx0fSApLmpvaW4oIFwiXFxuXCIgKSA6XG5cdFx0XHRcdGRhdGFcblx0XHQpICk7XG5cdH1cblx0cmV0dXJuIHhtbDtcbn07XG5cblxudmFyXG5cdHJicmFja2V0ID0gL1xcW1xcXSQvLFxuXHRyQ1JMRiA9IC9cXHI/XFxuL2csXG5cdHJzdWJtaXR0ZXJUeXBlcyA9IC9eKD86c3VibWl0fGJ1dHRvbnxpbWFnZXxyZXNldHxmaWxlKSQvaSxcblx0cnN1Ym1pdHRhYmxlID0gL14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO1xuXG5mdW5jdGlvbiBidWlsZFBhcmFtcyggcHJlZml4LCBvYmosIHRyYWRpdGlvbmFsLCBhZGQgKSB7XG5cdHZhciBuYW1lO1xuXG5cdGlmICggQXJyYXkuaXNBcnJheSggb2JqICkgKSB7XG5cblx0XHQvLyBTZXJpYWxpemUgYXJyYXkgaXRlbS5cblx0XHRqUXVlcnkuZWFjaCggb2JqLCBmdW5jdGlvbiggaSwgdiApIHtcblx0XHRcdGlmICggdHJhZGl0aW9uYWwgfHwgcmJyYWNrZXQudGVzdCggcHJlZml4ICkgKSB7XG5cblx0XHRcdFx0Ly8gVHJlYXQgZWFjaCBhcnJheSBpdGVtIGFzIGEgc2NhbGFyLlxuXHRcdFx0XHRhZGQoIHByZWZpeCwgdiApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIEl0ZW0gaXMgbm9uLXNjYWxhciAoYXJyYXkgb3Igb2JqZWN0KSwgZW5jb2RlIGl0cyBudW1lcmljIGluZGV4LlxuXHRcdFx0XHRidWlsZFBhcmFtcyhcblx0XHRcdFx0XHRwcmVmaXggKyBcIltcIiArICggdHlwZW9mIHYgPT09IFwib2JqZWN0XCIgJiYgdiAhPSBudWxsID8gaSA6IFwiXCIgKSArIFwiXVwiLFxuXHRcdFx0XHRcdHYsXG5cdFx0XHRcdFx0dHJhZGl0aW9uYWwsXG5cdFx0XHRcdFx0YWRkXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdH0gZWxzZSBpZiAoICF0cmFkaXRpb25hbCAmJiB0b1R5cGUoIG9iaiApID09PSBcIm9iamVjdFwiICkge1xuXG5cdFx0Ly8gU2VyaWFsaXplIG9iamVjdCBpdGVtLlxuXHRcdGZvciAoIG5hbWUgaW4gb2JqICkge1xuXHRcdFx0YnVpbGRQYXJhbXMoIHByZWZpeCArIFwiW1wiICsgbmFtZSArIFwiXVwiLCBvYmpbIG5hbWUgXSwgdHJhZGl0aW9uYWwsIGFkZCApO1xuXHRcdH1cblxuXHR9IGVsc2Uge1xuXG5cdFx0Ly8gU2VyaWFsaXplIHNjYWxhciBpdGVtLlxuXHRcdGFkZCggcHJlZml4LCBvYmogKTtcblx0fVxufVxuXG4vLyBTZXJpYWxpemUgYW4gYXJyYXkgb2YgZm9ybSBlbGVtZW50cyBvciBhIHNldCBvZlxuLy8ga2V5L3ZhbHVlcyBpbnRvIGEgcXVlcnkgc3RyaW5nXG5qUXVlcnkucGFyYW0gPSBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7XG5cdHZhciBwcmVmaXgsXG5cdFx0cyA9IFtdLFxuXHRcdGFkZCA9IGZ1bmN0aW9uKCBrZXksIHZhbHVlT3JGdW5jdGlvbiApIHtcblxuXHRcdFx0Ly8gSWYgdmFsdWUgaXMgYSBmdW5jdGlvbiwgaW52b2tlIGl0IGFuZCB1c2UgaXRzIHJldHVybiB2YWx1ZVxuXHRcdFx0dmFyIHZhbHVlID0gaXNGdW5jdGlvbiggdmFsdWVPckZ1bmN0aW9uICkgP1xuXHRcdFx0XHR2YWx1ZU9yRnVuY3Rpb24oKSA6XG5cdFx0XHRcdHZhbHVlT3JGdW5jdGlvbjtcblxuXHRcdFx0c1sgcy5sZW5ndGggXSA9IGVuY29kZVVSSUNvbXBvbmVudCgga2V5ICkgKyBcIj1cIiArXG5cdFx0XHRcdGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgPT0gbnVsbCA/IFwiXCIgOiB2YWx1ZSApO1xuXHRcdH07XG5cblx0aWYgKCBhID09IG51bGwgKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHQvLyBJZiBhbiBhcnJheSB3YXMgcGFzc2VkIGluLCBhc3N1bWUgdGhhdCBpdCBpcyBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzLlxuXHRpZiAoIEFycmF5LmlzQXJyYXkoIGEgKSB8fCAoIGEuanF1ZXJ5ICYmICFqUXVlcnkuaXNQbGFpbk9iamVjdCggYSApICkgKSB7XG5cblx0XHQvLyBTZXJpYWxpemUgdGhlIGZvcm0gZWxlbWVudHNcblx0XHRqUXVlcnkuZWFjaCggYSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRhZGQoIHRoaXMubmFtZSwgdGhpcy52YWx1ZSApO1xuXHRcdH0gKTtcblxuXHR9IGVsc2Uge1xuXG5cdFx0Ly8gSWYgdHJhZGl0aW9uYWwsIGVuY29kZSB0aGUgXCJvbGRcIiB3YXkgKHRoZSB3YXkgMS4zLjIgb3Igb2xkZXJcblx0XHQvLyBkaWQgaXQpLCBvdGhlcndpc2UgZW5jb2RlIHBhcmFtcyByZWN1cnNpdmVseS5cblx0XHRmb3IgKCBwcmVmaXggaW4gYSApIHtcblx0XHRcdGJ1aWxkUGFyYW1zKCBwcmVmaXgsIGFbIHByZWZpeCBdLCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSByZXN1bHRpbmcgc2VyaWFsaXphdGlvblxuXHRyZXR1cm4gcy5qb2luKCBcIiZcIiApO1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRzZXJpYWxpemU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBqUXVlcnkucGFyYW0oIHRoaXMuc2VyaWFsaXplQXJyYXkoKSApO1xuXHR9LFxuXHRzZXJpYWxpemVBcnJheTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMubWFwKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gQ2FuIGFkZCBwcm9wSG9vayBmb3IgXCJlbGVtZW50c1wiIHRvIGZpbHRlciBvciBhZGQgZm9ybSBlbGVtZW50c1xuXHRcdFx0dmFyIGVsZW1lbnRzID0galF1ZXJ5LnByb3AoIHRoaXMsIFwiZWxlbWVudHNcIiApO1xuXHRcdFx0cmV0dXJuIGVsZW1lbnRzID8galF1ZXJ5Lm1ha2VBcnJheSggZWxlbWVudHMgKSA6IHRoaXM7XG5cdFx0fSApLmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgdHlwZSA9IHRoaXMudHlwZTtcblxuXHRcdFx0Ly8gVXNlIC5pcyggXCI6ZGlzYWJsZWRcIiApIHNvIHRoYXQgZmllbGRzZXRbZGlzYWJsZWRdIHdvcmtzXG5cdFx0XHRyZXR1cm4gdGhpcy5uYW1lICYmICFqUXVlcnkoIHRoaXMgKS5pcyggXCI6ZGlzYWJsZWRcIiApICYmXG5cdFx0XHRcdHJzdWJtaXR0YWJsZS50ZXN0KCB0aGlzLm5vZGVOYW1lICkgJiYgIXJzdWJtaXR0ZXJUeXBlcy50ZXN0KCB0eXBlICkgJiZcblx0XHRcdFx0KCB0aGlzLmNoZWNrZWQgfHwgIXJjaGVja2FibGVUeXBlLnRlc3QoIHR5cGUgKSApO1xuXHRcdH0gKS5tYXAoIGZ1bmN0aW9uKCBfaSwgZWxlbSApIHtcblx0XHRcdHZhciB2YWwgPSBqUXVlcnkoIHRoaXMgKS52YWwoKTtcblxuXHRcdFx0aWYgKCB2YWwgPT0gbnVsbCApIHtcblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggQXJyYXkuaXNBcnJheSggdmFsICkgKSB7XG5cdFx0XHRcdHJldHVybiBqUXVlcnkubWFwKCB2YWwsIGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHsgbmFtZTogZWxlbS5uYW1lLCB2YWx1ZTogdmFsLnJlcGxhY2UoIHJDUkxGLCBcIlxcclxcblwiICkgfTtcblx0XHRcdFx0fSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsIFwiXFxyXFxuXCIgKSB9O1xuXHRcdH0gKS5nZXQoKTtcblx0fVxufSApO1xuXG5cbnZhclxuXHRyMjAgPSAvJTIwL2csXG5cdHJoYXNoID0gLyMuKiQvLFxuXHRyYW50aUNhY2hlID0gLyhbPyZdKV89W14mXSovLFxuXHRyaGVhZGVycyA9IC9eKC4qPyk6WyBcXHRdKihbXlxcclxcbl0qKSQvbWcsXG5cblx0Ly8gdHJhYy03NjUzLCB0cmFjLTgxMjUsIHRyYWMtODE1MjogbG9jYWwgcHJvdG9jb2wgZGV0ZWN0aW9uXG5cdHJsb2NhbFByb3RvY29sID0gL14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8sXG5cdHJub0NvbnRlbnQgPSAvXig/OkdFVHxIRUFEKSQvLFxuXHRycHJvdG9jb2wgPSAvXlxcL1xcLy8sXG5cblx0LyogUHJlZmlsdGVyc1xuXHQgKiAxKSBUaGV5IGFyZSB1c2VmdWwgdG8gaW50cm9kdWNlIGN1c3RvbSBkYXRhVHlwZXMgKHNlZSBhamF4L2pzb25wLmpzIGZvciBhbiBleGFtcGxlKVxuXHQgKiAyKSBUaGVzZSBhcmUgY2FsbGVkOlxuXHQgKiAgICAtIEJFRk9SRSBhc2tpbmcgZm9yIGEgdHJhbnNwb3J0XG5cdCAqICAgIC0gQUZURVIgcGFyYW0gc2VyaWFsaXphdGlvbiAocy5kYXRhIGlzIGEgc3RyaW5nIGlmIHMucHJvY2Vzc0RhdGEgaXMgdHJ1ZSlcblx0ICogMykga2V5IGlzIHRoZSBkYXRhVHlwZVxuXHQgKiA0KSB0aGUgY2F0Y2hhbGwgc3ltYm9sIFwiKlwiIGNhbiBiZSB1c2VkXG5cdCAqIDUpIGV4ZWN1dGlvbiB3aWxsIHN0YXJ0IHdpdGggdHJhbnNwb3J0IGRhdGFUeXBlIGFuZCBUSEVOIGNvbnRpbnVlIGRvd24gdG8gXCIqXCIgaWYgbmVlZGVkXG5cdCAqL1xuXHRwcmVmaWx0ZXJzID0ge30sXG5cblx0LyogVHJhbnNwb3J0cyBiaW5kaW5nc1xuXHQgKiAxKSBrZXkgaXMgdGhlIGRhdGFUeXBlXG5cdCAqIDIpIHRoZSBjYXRjaGFsbCBzeW1ib2wgXCIqXCIgY2FuIGJlIHVzZWRcblx0ICogMykgc2VsZWN0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gZ28gdG8gXCIqXCIgaWYgbmVlZGVkXG5cdCAqL1xuXHR0cmFuc3BvcnRzID0ge30sXG5cblx0Ly8gQXZvaWQgY29tbWVudC1wcm9sb2cgY2hhciBzZXF1ZW5jZSAodHJhYy0xMDA5OCk7IG11c3QgYXBwZWFzZSBsaW50IGFuZCBldmFkZSBjb21wcmVzc2lvblxuXHRhbGxUeXBlcyA9IFwiKi9cIi5jb25jYXQoIFwiKlwiICksXG5cblx0Ly8gQW5jaG9yIHRhZyBmb3IgcGFyc2luZyB0aGUgZG9jdW1lbnQgb3JpZ2luXG5cdG9yaWdpbkFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiYVwiICk7XG5cbm9yaWdpbkFuY2hvci5ocmVmID0gbG9jYXRpb24uaHJlZjtcblxuLy8gQmFzZSBcImNvbnN0cnVjdG9yXCIgZm9yIGpRdWVyeS5hamF4UHJlZmlsdGVyIGFuZCBqUXVlcnkuYWpheFRyYW5zcG9ydFxuZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7XG5cblx0Ly8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byBcIipcIlxuXHRyZXR1cm4gZnVuY3Rpb24oIGRhdGFUeXBlRXhwcmVzc2lvbiwgZnVuYyApIHtcblxuXHRcdGlmICggdHlwZW9mIGRhdGFUeXBlRXhwcmVzc2lvbiAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGZ1bmMgPSBkYXRhVHlwZUV4cHJlc3Npb247XG5cdFx0XHRkYXRhVHlwZUV4cHJlc3Npb24gPSBcIipcIjtcblx0XHR9XG5cblx0XHR2YXIgZGF0YVR5cGUsXG5cdFx0XHRpID0gMCxcblx0XHRcdGRhdGFUeXBlcyA9IGRhdGFUeXBlRXhwcmVzc2lvbi50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW107XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIGZ1bmMgKSApIHtcblxuXHRcdFx0Ly8gRm9yIGVhY2ggZGF0YVR5cGUgaW4gdGhlIGRhdGFUeXBlRXhwcmVzc2lvblxuXHRcdFx0d2hpbGUgKCAoIGRhdGFUeXBlID0gZGF0YVR5cGVzWyBpKysgXSApICkge1xuXG5cdFx0XHRcdC8vIFByZXBlbmQgaWYgcmVxdWVzdGVkXG5cdFx0XHRcdGlmICggZGF0YVR5cGVbIDAgXSA9PT0gXCIrXCIgKSB7XG5cdFx0XHRcdFx0ZGF0YVR5cGUgPSBkYXRhVHlwZS5zbGljZSggMSApIHx8IFwiKlwiO1xuXHRcdFx0XHRcdCggc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdICkudW5zaGlmdCggZnVuYyApO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBhcHBlbmRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQoIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSA9IHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSApLnB1c2goIGZ1bmMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fTtcbn1cblxuLy8gQmFzZSBpbnNwZWN0aW9uIGZ1bmN0aW9uIGZvciBwcmVmaWx0ZXJzIGFuZCB0cmFuc3BvcnRzXG5mdW5jdGlvbiBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlLCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSICkge1xuXG5cdHZhciBpbnNwZWN0ZWQgPSB7fSxcblx0XHRzZWVraW5nVHJhbnNwb3J0ID0gKCBzdHJ1Y3R1cmUgPT09IHRyYW5zcG9ydHMgKTtcblxuXHRmdW5jdGlvbiBpbnNwZWN0KCBkYXRhVHlwZSApIHtcblx0XHR2YXIgc2VsZWN0ZWQ7XG5cdFx0aW5zcGVjdGVkWyBkYXRhVHlwZSBdID0gdHJ1ZTtcblx0XHRqUXVlcnkuZWFjaCggc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdLCBmdW5jdGlvbiggXywgcHJlZmlsdGVyT3JGYWN0b3J5ICkge1xuXHRcdFx0dmFyIGRhdGFUeXBlT3JUcmFuc3BvcnQgPSBwcmVmaWx0ZXJPckZhY3RvcnkoIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKTtcblx0XHRcdGlmICggdHlwZW9mIGRhdGFUeXBlT3JUcmFuc3BvcnQgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0IXNlZWtpbmdUcmFuc3BvcnQgJiYgIWluc3BlY3RlZFsgZGF0YVR5cGVPclRyYW5zcG9ydCBdICkge1xuXG5cdFx0XHRcdG9wdGlvbnMuZGF0YVR5cGVzLnVuc2hpZnQoIGRhdGFUeXBlT3JUcmFuc3BvcnQgKTtcblx0XHRcdFx0aW5zcGVjdCggZGF0YVR5cGVPclRyYW5zcG9ydCApO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9IGVsc2UgaWYgKCBzZWVraW5nVHJhbnNwb3J0ICkge1xuXHRcdFx0XHRyZXR1cm4gISggc2VsZWN0ZWQgPSBkYXRhVHlwZU9yVHJhbnNwb3J0ICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHRcdHJldHVybiBzZWxlY3RlZDtcblx0fVxuXG5cdHJldHVybiBpbnNwZWN0KCBvcHRpb25zLmRhdGFUeXBlc1sgMCBdICkgfHwgIWluc3BlY3RlZFsgXCIqXCIgXSAmJiBpbnNwZWN0KCBcIipcIiApO1xufVxuXG4vLyBBIHNwZWNpYWwgZXh0ZW5kIGZvciBhamF4IG9wdGlvbnNcbi8vIHRoYXQgdGFrZXMgXCJmbGF0XCIgb3B0aW9ucyAobm90IHRvIGJlIGRlZXAgZXh0ZW5kZWQpXG4vLyBGaXhlcyB0cmFjLTk4ODdcbmZ1bmN0aW9uIGFqYXhFeHRlbmQoIHRhcmdldCwgc3JjICkge1xuXHR2YXIga2V5LCBkZWVwLFxuXHRcdGZsYXRPcHRpb25zID0galF1ZXJ5LmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9ucyB8fCB7fTtcblxuXHRmb3IgKCBrZXkgaW4gc3JjICkge1xuXHRcdGlmICggc3JjWyBrZXkgXSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0KCBmbGF0T3B0aW9uc1sga2V5IF0gPyB0YXJnZXQgOiAoIGRlZXAgfHwgKCBkZWVwID0ge30gKSApIClbIGtleSBdID0gc3JjWyBrZXkgXTtcblx0XHR9XG5cdH1cblx0aWYgKCBkZWVwICkge1xuXHRcdGpRdWVyeS5leHRlbmQoIHRydWUsIHRhcmdldCwgZGVlcCApO1xuXHR9XG5cblx0cmV0dXJuIHRhcmdldDtcbn1cblxuLyogSGFuZGxlcyByZXNwb25zZXMgdG8gYW4gYWpheCByZXF1ZXN0OlxuICogLSBmaW5kcyB0aGUgcmlnaHQgZGF0YVR5cGUgKG1lZGlhdGVzIGJldHdlZW4gY29udGVudC10eXBlIGFuZCBleHBlY3RlZCBkYXRhVHlwZSlcbiAqIC0gcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZVxuICovXG5mdW5jdGlvbiBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICkge1xuXG5cdHZhciBjdCwgdHlwZSwgZmluYWxEYXRhVHlwZSwgZmlyc3REYXRhVHlwZSxcblx0XHRjb250ZW50cyA9IHMuY29udGVudHMsXG5cdFx0ZGF0YVR5cGVzID0gcy5kYXRhVHlwZXM7XG5cblx0Ly8gUmVtb3ZlIGF1dG8gZGF0YVR5cGUgYW5kIGdldCBjb250ZW50LXR5cGUgaW4gdGhlIHByb2Nlc3Ncblx0d2hpbGUgKCBkYXRhVHlwZXNbIDAgXSA9PT0gXCIqXCIgKSB7XG5cdFx0ZGF0YVR5cGVzLnNoaWZ0KCk7XG5cdFx0aWYgKCBjdCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0Y3QgPSBzLm1pbWVUeXBlIHx8IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCBcIkNvbnRlbnQtVHlwZVwiICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2hlY2sgaWYgd2UncmUgZGVhbGluZyB3aXRoIGEga25vd24gY29udGVudC10eXBlXG5cdGlmICggY3QgKSB7XG5cdFx0Zm9yICggdHlwZSBpbiBjb250ZW50cyApIHtcblx0XHRcdGlmICggY29udGVudHNbIHR5cGUgXSAmJiBjb250ZW50c1sgdHlwZSBdLnRlc3QoIGN0ICkgKSB7XG5cdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBoYXZlIGEgcmVzcG9uc2UgZm9yIHRoZSBleHBlY3RlZCBkYXRhVHlwZVxuXHRpZiAoIGRhdGFUeXBlc1sgMCBdIGluIHJlc3BvbnNlcyApIHtcblx0XHRmaW5hbERhdGFUeXBlID0gZGF0YVR5cGVzWyAwIF07XG5cdH0gZWxzZSB7XG5cblx0XHQvLyBUcnkgY29udmVydGlibGUgZGF0YVR5cGVzXG5cdFx0Zm9yICggdHlwZSBpbiByZXNwb25zZXMgKSB7XG5cdFx0XHRpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyBcIiBcIiArIGRhdGFUeXBlc1sgMCBdIF0gKSB7XG5cdFx0XHRcdGZpbmFsRGF0YVR5cGUgPSB0eXBlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGlmICggIWZpcnN0RGF0YVR5cGUgKSB7XG5cdFx0XHRcdGZpcnN0RGF0YVR5cGUgPSB0eXBlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE9yIGp1c3QgdXNlIGZpcnN0IG9uZVxuXHRcdGZpbmFsRGF0YVR5cGUgPSBmaW5hbERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7XG5cdH1cblxuXHQvLyBJZiB3ZSBmb3VuZCBhIGRhdGFUeXBlXG5cdC8vIFdlIGFkZCB0aGUgZGF0YVR5cGUgdG8gdGhlIGxpc3QgaWYgbmVlZGVkXG5cdC8vIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2Vcblx0aWYgKCBmaW5hbERhdGFUeXBlICkge1xuXHRcdGlmICggZmluYWxEYXRhVHlwZSAhPT0gZGF0YVR5cGVzWyAwIF0gKSB7XG5cdFx0XHRkYXRhVHlwZXMudW5zaGlmdCggZmluYWxEYXRhVHlwZSApO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzcG9uc2VzWyBmaW5hbERhdGFUeXBlIF07XG5cdH1cbn1cblxuLyogQ2hhaW4gY29udmVyc2lvbnMgZ2l2ZW4gdGhlIHJlcXVlc3QgYW5kIHRoZSBvcmlnaW5hbCByZXNwb25zZVxuICogQWxzbyBzZXRzIHRoZSByZXNwb25zZVhYWCBmaWVsZHMgb24gdGhlIGpxWEhSIGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIGFqYXhDb252ZXJ0KCBzLCByZXNwb25zZSwganFYSFIsIGlzU3VjY2VzcyApIHtcblx0dmFyIGNvbnYyLCBjdXJyZW50LCBjb252LCB0bXAsIHByZXYsXG5cdFx0Y29udmVydGVycyA9IHt9LFxuXG5cdFx0Ly8gV29yayB3aXRoIGEgY29weSBvZiBkYXRhVHlwZXMgaW4gY2FzZSB3ZSBuZWVkIHRvIG1vZGlmeSBpdCBmb3IgY29udmVyc2lvblxuXHRcdGRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzLnNsaWNlKCk7XG5cblx0Ly8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwIHdpdGggbG93ZXJjYXNlZCBrZXlzXG5cdGlmICggZGF0YVR5cGVzWyAxIF0gKSB7XG5cdFx0Zm9yICggY29udiBpbiBzLmNvbnZlcnRlcnMgKSB7XG5cdFx0XHRjb252ZXJ0ZXJzWyBjb252LnRvTG93ZXJDYXNlKCkgXSA9IHMuY29udmVydGVyc1sgY29udiBdO1xuXHRcdH1cblx0fVxuXG5cdGN1cnJlbnQgPSBkYXRhVHlwZXMuc2hpZnQoKTtcblxuXHQvLyBDb252ZXJ0IHRvIGVhY2ggc2VxdWVudGlhbCBkYXRhVHlwZVxuXHR3aGlsZSAoIGN1cnJlbnQgKSB7XG5cblx0XHRpZiAoIHMucmVzcG9uc2VGaWVsZHNbIGN1cnJlbnQgXSApIHtcblx0XHRcdGpxWEhSWyBzLnJlc3BvbnNlRmllbGRzWyBjdXJyZW50IF0gXSA9IHJlc3BvbnNlO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkXG5cdFx0aWYgKCAhcHJldiAmJiBpc1N1Y2Nlc3MgJiYgcy5kYXRhRmlsdGVyICkge1xuXHRcdFx0cmVzcG9uc2UgPSBzLmRhdGFGaWx0ZXIoIHJlc3BvbnNlLCBzLmRhdGFUeXBlICk7XG5cdFx0fVxuXG5cdFx0cHJldiA9IGN1cnJlbnQ7XG5cdFx0Y3VycmVudCA9IGRhdGFUeXBlcy5zaGlmdCgpO1xuXG5cdFx0aWYgKCBjdXJyZW50ICkge1xuXG5cdFx0XHQvLyBUaGVyZSdzIG9ubHkgd29yayB0byBkbyBpZiBjdXJyZW50IGRhdGFUeXBlIGlzIG5vbi1hdXRvXG5cdFx0XHRpZiAoIGN1cnJlbnQgPT09IFwiKlwiICkge1xuXG5cdFx0XHRcdGN1cnJlbnQgPSBwcmV2O1xuXG5cdFx0XHQvLyBDb252ZXJ0IHJlc3BvbnNlIGlmIHByZXYgZGF0YVR5cGUgaXMgbm9uLWF1dG8gYW5kIGRpZmZlcnMgZnJvbSBjdXJyZW50XG5cdFx0XHR9IGVsc2UgaWYgKCBwcmV2ICE9PSBcIipcIiAmJiBwcmV2ICE9PSBjdXJyZW50ICkge1xuXG5cdFx0XHRcdC8vIFNlZWsgYSBkaXJlY3QgY29udmVydGVyXG5cdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBwcmV2ICsgXCIgXCIgKyBjdXJyZW50IF0gfHwgY29udmVydGVyc1sgXCIqIFwiICsgY3VycmVudCBdO1xuXG5cdFx0XHRcdC8vIElmIG5vbmUgZm91bmQsIHNlZWsgYSBwYWlyXG5cdFx0XHRcdGlmICggIWNvbnYgKSB7XG5cdFx0XHRcdFx0Zm9yICggY29udjIgaW4gY29udmVydGVycyApIHtcblxuXHRcdFx0XHRcdFx0Ly8gSWYgY29udjIgb3V0cHV0cyBjdXJyZW50XG5cdFx0XHRcdFx0XHR0bXAgPSBjb252Mi5zcGxpdCggXCIgXCIgKTtcblx0XHRcdFx0XHRcdGlmICggdG1wWyAxIF0gPT09IGN1cnJlbnQgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gSWYgcHJldiBjYW4gYmUgY29udmVydGVkIHRvIGFjY2VwdGVkIGlucHV0XG5cdFx0XHRcdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBwcmV2ICsgXCIgXCIgKyB0bXBbIDAgXSBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0Y29udmVydGVyc1sgXCIqIFwiICsgdG1wWyAwIF0gXTtcblx0XHRcdFx0XHRcdFx0aWYgKCBjb252ICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gQ29uZGVuc2UgZXF1aXZhbGVuY2UgY29udmVydGVyc1xuXHRcdFx0XHRcdFx0XHRcdGlmICggY29udiA9PT0gdHJ1ZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBjb252MiBdO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gT3RoZXJ3aXNlLCBpbnNlcnQgdGhlIGludGVybWVkaWF0ZSBkYXRhVHlwZVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGNvbnZlcnRlcnNbIGNvbnYyIF0gIT09IHRydWUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50ID0gdG1wWyAwIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhVHlwZXMudW5zaGlmdCggdG1wWyAxIF0gKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBBcHBseSBjb252ZXJ0ZXIgKGlmIG5vdCBhbiBlcXVpdmFsZW5jZSlcblx0XHRcdFx0aWYgKCBjb252ICE9PSB0cnVlICkge1xuXG5cdFx0XHRcdFx0Ly8gVW5sZXNzIGVycm9ycyBhcmUgYWxsb3dlZCB0byBidWJibGUsIGNhdGNoIGFuZCByZXR1cm4gdGhlbVxuXHRcdFx0XHRcdGlmICggY29udiAmJiBzLnRocm93cyApIHtcblx0XHRcdFx0XHRcdHJlc3BvbnNlID0gY29udiggcmVzcG9uc2UgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGU6IFwicGFyc2VyZXJyb3JcIixcblx0XHRcdFx0XHRcdFx0XHRlcnJvcjogY29udiA/IGUgOiBcIk5vIGNvbnZlcnNpb24gZnJvbSBcIiArIHByZXYgKyBcIiB0byBcIiArIGN1cnJlbnRcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4geyBzdGF0ZTogXCJzdWNjZXNzXCIsIGRhdGE6IHJlc3BvbnNlIH07XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBDb3VudGVyIGZvciBob2xkaW5nIHRoZSBudW1iZXIgb2YgYWN0aXZlIHF1ZXJpZXNcblx0YWN0aXZlOiAwLFxuXG5cdC8vIExhc3QtTW9kaWZpZWQgaGVhZGVyIGNhY2hlIGZvciBuZXh0IHJlcXVlc3Rcblx0bGFzdE1vZGlmaWVkOiB7fSxcblx0ZXRhZzoge30sXG5cblx0YWpheFNldHRpbmdzOiB7XG5cdFx0dXJsOiBsb2NhdGlvbi5ocmVmLFxuXHRcdHR5cGU6IFwiR0VUXCIsXG5cdFx0aXNMb2NhbDogcmxvY2FsUHJvdG9jb2wudGVzdCggbG9jYXRpb24ucHJvdG9jb2wgKSxcblx0XHRnbG9iYWw6IHRydWUsXG5cdFx0cHJvY2Vzc0RhdGE6IHRydWUsXG5cdFx0YXN5bmM6IHRydWUsXG5cdFx0Y29udGVudFR5cGU6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04XCIsXG5cblx0XHQvKlxuXHRcdHRpbWVvdXQ6IDAsXG5cdFx0ZGF0YTogbnVsbCxcblx0XHRkYXRhVHlwZTogbnVsbCxcblx0XHR1c2VybmFtZTogbnVsbCxcblx0XHRwYXNzd29yZDogbnVsbCxcblx0XHRjYWNoZTogbnVsbCxcblx0XHR0aHJvd3M6IGZhbHNlLFxuXHRcdHRyYWRpdGlvbmFsOiBmYWxzZSxcblx0XHRoZWFkZXJzOiB7fSxcblx0XHQqL1xuXG5cdFx0YWNjZXB0czoge1xuXHRcdFx0XCIqXCI6IGFsbFR5cGVzLFxuXHRcdFx0dGV4dDogXCJ0ZXh0L3BsYWluXCIsXG5cdFx0XHRodG1sOiBcInRleHQvaHRtbFwiLFxuXHRcdFx0eG1sOiBcImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWxcIixcblx0XHRcdGpzb246IFwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0XCJcblx0XHR9LFxuXG5cdFx0Y29udGVudHM6IHtcblx0XHRcdHhtbDogL1xcYnhtbFxcYi8sXG5cdFx0XHRodG1sOiAvXFxiaHRtbC8sXG5cdFx0XHRqc29uOiAvXFxianNvblxcYi9cblx0XHR9LFxuXG5cdFx0cmVzcG9uc2VGaWVsZHM6IHtcblx0XHRcdHhtbDogXCJyZXNwb25zZVhNTFwiLFxuXHRcdFx0dGV4dDogXCJyZXNwb25zZVRleHRcIixcblx0XHRcdGpzb246IFwicmVzcG9uc2VKU09OXCJcblx0XHR9LFxuXG5cdFx0Ly8gRGF0YSBjb252ZXJ0ZXJzXG5cdFx0Ly8gS2V5cyBzZXBhcmF0ZSBzb3VyY2UgKG9yIGNhdGNoYWxsIFwiKlwiKSBhbmQgZGVzdGluYXRpb24gdHlwZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuXHRcdGNvbnZlcnRlcnM6IHtcblxuXHRcdFx0Ly8gQ29udmVydCBhbnl0aGluZyB0byB0ZXh0XG5cdFx0XHRcIiogdGV4dFwiOiBTdHJpbmcsXG5cblx0XHRcdC8vIFRleHQgdG8gaHRtbCAodHJ1ZSA9IG5vIHRyYW5zZm9ybWF0aW9uKVxuXHRcdFx0XCJ0ZXh0IGh0bWxcIjogdHJ1ZSxcblxuXHRcdFx0Ly8gRXZhbHVhdGUgdGV4dCBhcyBhIGpzb24gZXhwcmVzc2lvblxuXHRcdFx0XCJ0ZXh0IGpzb25cIjogSlNPTi5wYXJzZSxcblxuXHRcdFx0Ly8gUGFyc2UgdGV4dCBhcyB4bWxcblx0XHRcdFwidGV4dCB4bWxcIjogalF1ZXJ5LnBhcnNlWE1MXG5cdFx0fSxcblxuXHRcdC8vIEZvciBvcHRpb25zIHRoYXQgc2hvdWxkbid0IGJlIGRlZXAgZXh0ZW5kZWQ6XG5cdFx0Ly8geW91IGNhbiBhZGQgeW91ciBvd24gY3VzdG9tIG9wdGlvbnMgaGVyZSBpZlxuXHRcdC8vIGFuZCB3aGVuIHlvdSBjcmVhdGUgb25lIHRoYXQgc2hvdWxkbid0IGJlXG5cdFx0Ly8gZGVlcCBleHRlbmRlZCAoc2VlIGFqYXhFeHRlbmQpXG5cdFx0ZmxhdE9wdGlvbnM6IHtcblx0XHRcdHVybDogdHJ1ZSxcblx0XHRcdGNvbnRleHQ6IHRydWVcblx0XHR9XG5cdH0sXG5cblx0Ly8gQ3JlYXRlcyBhIGZ1bGwgZmxlZGdlZCBzZXR0aW5ncyBvYmplY3QgaW50byB0YXJnZXRcblx0Ly8gd2l0aCBib3RoIGFqYXhTZXR0aW5ncyBhbmQgc2V0dGluZ3MgZmllbGRzLlxuXHQvLyBJZiB0YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLlxuXHRhamF4U2V0dXA6IGZ1bmN0aW9uKCB0YXJnZXQsIHNldHRpbmdzICkge1xuXHRcdHJldHVybiBzZXR0aW5ncyA/XG5cblx0XHRcdC8vIEJ1aWxkaW5nIGEgc2V0dGluZ3Mgb2JqZWN0XG5cdFx0XHRhamF4RXh0ZW5kKCBhamF4RXh0ZW5kKCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MgKSwgc2V0dGluZ3MgKSA6XG5cblx0XHRcdC8vIEV4dGVuZGluZyBhamF4U2V0dGluZ3Ncblx0XHRcdGFqYXhFeHRlbmQoIGpRdWVyeS5hamF4U2V0dGluZ3MsIHRhcmdldCApO1xuXHR9LFxuXG5cdGFqYXhQcmVmaWx0ZXI6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggcHJlZmlsdGVycyApLFxuXHRhamF4VHJhbnNwb3J0OiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHRyYW5zcG9ydHMgKSxcblxuXHQvLyBNYWluIG1ldGhvZFxuXHRhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25zICkge1xuXG5cdFx0Ly8gSWYgdXJsIGlzIGFuIG9iamVjdCwgc2ltdWxhdGUgcHJlLTEuNSBzaWduYXR1cmVcblx0XHRpZiAoIHR5cGVvZiB1cmwgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0XHRvcHRpb25zID0gdXJsO1xuXHRcdFx0dXJsID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIEZvcmNlIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0XG5cdFx0b3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cblx0XHR2YXIgdHJhbnNwb3J0LFxuXG5cdFx0XHQvLyBVUkwgd2l0aG91dCBhbnRpLWNhY2hlIHBhcmFtXG5cdFx0XHRjYWNoZVVSTCxcblxuXHRcdFx0Ly8gUmVzcG9uc2UgaGVhZGVyc1xuXHRcdFx0cmVzcG9uc2VIZWFkZXJzU3RyaW5nLFxuXHRcdFx0cmVzcG9uc2VIZWFkZXJzLFxuXG5cdFx0XHQvLyB0aW1lb3V0IGhhbmRsZVxuXHRcdFx0dGltZW91dFRpbWVyLFxuXG5cdFx0XHQvLyBVcmwgY2xlYW51cCB2YXJcblx0XHRcdHVybEFuY2hvcixcblxuXHRcdFx0Ly8gUmVxdWVzdCBzdGF0ZSAoYmVjb21lcyBmYWxzZSB1cG9uIHNlbmQgYW5kIHRydWUgdXBvbiBjb21wbGV0aW9uKVxuXHRcdFx0Y29tcGxldGVkLFxuXG5cdFx0XHQvLyBUbyBrbm93IGlmIGdsb2JhbCBldmVudHMgYXJlIHRvIGJlIGRpc3BhdGNoZWRcblx0XHRcdGZpcmVHbG9iYWxzLFxuXG5cdFx0XHQvLyBMb29wIHZhcmlhYmxlXG5cdFx0XHRpLFxuXG5cdFx0XHQvLyB1bmNhY2hlZCBwYXJ0IG9mIHRoZSB1cmxcblx0XHRcdHVuY2FjaGVkLFxuXG5cdFx0XHQvLyBDcmVhdGUgdGhlIGZpbmFsIG9wdGlvbnMgb2JqZWN0XG5cdFx0XHRzID0galF1ZXJ5LmFqYXhTZXR1cCgge30sIG9wdGlvbnMgKSxcblxuXHRcdFx0Ly8gQ2FsbGJhY2tzIGNvbnRleHRcblx0XHRcdGNhbGxiYWNrQ29udGV4dCA9IHMuY29udGV4dCB8fCBzLFxuXG5cdFx0XHQvLyBDb250ZXh0IGZvciBnbG9iYWwgZXZlbnRzIGlzIGNhbGxiYWNrQ29udGV4dCBpZiBpdCBpcyBhIERPTSBub2RlIG9yIGpRdWVyeSBjb2xsZWN0aW9uXG5cdFx0XHRnbG9iYWxFdmVudENvbnRleHQgPSBzLmNvbnRleHQgJiZcblx0XHRcdFx0KCBjYWxsYmFja0NvbnRleHQubm9kZVR5cGUgfHwgY2FsbGJhY2tDb250ZXh0LmpxdWVyeSApID9cblx0XHRcdFx0alF1ZXJ5KCBjYWxsYmFja0NvbnRleHQgKSA6XG5cdFx0XHRcdGpRdWVyeS5ldmVudCxcblxuXHRcdFx0Ly8gRGVmZXJyZWRzXG5cdFx0XHRkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLFxuXHRcdFx0Y29tcGxldGVEZWZlcnJlZCA9IGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLFxuXG5cdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0c3RhdHVzQ29kZSA9IHMuc3RhdHVzQ29kZSB8fCB7fSxcblxuXHRcdFx0Ly8gSGVhZGVycyAodGhleSBhcmUgc2VudCBhbGwgYXQgb25jZSlcblx0XHRcdHJlcXVlc3RIZWFkZXJzID0ge30sXG5cdFx0XHRyZXF1ZXN0SGVhZGVyc05hbWVzID0ge30sXG5cblx0XHRcdC8vIERlZmF1bHQgYWJvcnQgbWVzc2FnZVxuXHRcdFx0c3RyQWJvcnQgPSBcImNhbmNlbGVkXCIsXG5cblx0XHRcdC8vIEZha2UgeGhyXG5cdFx0XHRqcVhIUiA9IHtcblx0XHRcdFx0cmVhZHlTdGF0ZTogMCxcblxuXHRcdFx0XHQvLyBCdWlsZHMgaGVhZGVycyBoYXNodGFibGUgaWYgbmVlZGVkXG5cdFx0XHRcdGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbigga2V5ICkge1xuXHRcdFx0XHRcdHZhciBtYXRjaDtcblx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0XHRcdGlmICggIXJlc3BvbnNlSGVhZGVycyApIHtcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzID0ge307XG5cdFx0XHRcdFx0XHRcdHdoaWxlICggKCBtYXRjaCA9IHJoZWFkZXJzLmV4ZWMoIHJlc3BvbnNlSGVhZGVyc1N0cmluZyApICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzWyBtYXRjaFsgMSBdLnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdID1cblx0XHRcdFx0XHRcdFx0XHRcdCggcmVzcG9uc2VIZWFkZXJzWyBtYXRjaFsgMSBdLnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdIHx8IFtdIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmNvbmNhdCggbWF0Y2hbIDIgXSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRtYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gbWF0Y2ggPT0gbnVsbCA/IG51bGwgOiBtYXRjaC5qb2luKCBcIiwgXCIgKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBSYXcgc3RyaW5nXG5cdFx0XHRcdGdldEFsbFJlc3BvbnNlSGVhZGVyczogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGNvbXBsZXRlZCA/IHJlc3BvbnNlSGVhZGVyc1N0cmluZyA6IG51bGw7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gQ2FjaGVzIHRoZSBoZWFkZXJcblx0XHRcdFx0c2V0UmVxdWVzdEhlYWRlcjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0XHRcdGlmICggY29tcGxldGVkID09IG51bGwgKSB7XG5cdFx0XHRcdFx0XHRuYW1lID0gcmVxdWVzdEhlYWRlcnNOYW1lc1sgbmFtZS50b0xvd2VyQ2FzZSgpIF0gPVxuXHRcdFx0XHRcdFx0XHRyZXF1ZXN0SGVhZGVyc05hbWVzWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSB8fCBuYW1lO1xuXHRcdFx0XHRcdFx0cmVxdWVzdEhlYWRlcnNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBPdmVycmlkZXMgcmVzcG9uc2UgY29udGVudC10eXBlIGhlYWRlclxuXHRcdFx0XHRvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCA9PSBudWxsICkge1xuXHRcdFx0XHRcdFx0cy5taW1lVHlwZSA9IHR5cGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXG5cdFx0XHRcdHN0YXR1c0NvZGU6IGZ1bmN0aW9uKCBtYXAgKSB7XG5cdFx0XHRcdFx0dmFyIGNvZGU7XG5cdFx0XHRcdFx0aWYgKCBtYXAgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBFeGVjdXRlIHRoZSBhcHByb3ByaWF0ZSBjYWxsYmFja3Ncblx0XHRcdFx0XHRcdFx0anFYSFIuYWx3YXlzKCBtYXBbIGpxWEhSLnN0YXR1cyBdICk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdC8vIExhenktYWRkIHRoZSBuZXcgY2FsbGJhY2tzIGluIGEgd2F5IHRoYXQgcHJlc2VydmVzIG9sZCBvbmVzXG5cdFx0XHRcdFx0XHRcdGZvciAoIGNvZGUgaW4gbWFwICkge1xuXHRcdFx0XHRcdFx0XHRcdHN0YXR1c0NvZGVbIGNvZGUgXSA9IFsgc3RhdHVzQ29kZVsgY29kZSBdLCBtYXBbIGNvZGUgXSBdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIENhbmNlbCB0aGUgcmVxdWVzdFxuXHRcdFx0XHRhYm9ydDogZnVuY3Rpb24oIHN0YXR1c1RleHQgKSB7XG5cdFx0XHRcdFx0dmFyIGZpbmFsVGV4dCA9IHN0YXR1c1RleHQgfHwgc3RyQWJvcnQ7XG5cdFx0XHRcdFx0aWYgKCB0cmFuc3BvcnQgKSB7XG5cdFx0XHRcdFx0XHR0cmFuc3BvcnQuYWJvcnQoIGZpbmFsVGV4dCApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkb25lKCAwLCBmaW5hbFRleHQgKTtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdC8vIEF0dGFjaCBkZWZlcnJlZHNcblx0XHRkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApO1xuXG5cdFx0Ly8gQWRkIHByb3RvY29sIGlmIG5vdCBwcm92aWRlZCAocHJlZmlsdGVycyBtaWdodCBleHBlY3QgaXQpXG5cdFx0Ly8gSGFuZGxlIGZhbHN5IHVybCBpbiB0aGUgc2V0dGluZ3Mgb2JqZWN0ICh0cmFjLTEwMDkzOiBjb25zaXN0ZW5jeSB3aXRoIG9sZCBzaWduYXR1cmUpXG5cdFx0Ly8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlXG5cdFx0cy51cmwgPSAoICggdXJsIHx8IHMudXJsIHx8IGxvY2F0aW9uLmhyZWYgKSArIFwiXCIgKVxuXHRcdFx0LnJlcGxhY2UoIHJwcm90b2NvbCwgbG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKTtcblxuXHRcdC8vIEFsaWFzIG1ldGhvZCBvcHRpb24gdG8gdHlwZSBhcyBwZXIgdGlja2V0IHRyYWMtMTIwMDRcblx0XHRzLnR5cGUgPSBvcHRpb25zLm1ldGhvZCB8fCBvcHRpb25zLnR5cGUgfHwgcy5tZXRob2QgfHwgcy50eXBlO1xuXG5cdFx0Ly8gRXh0cmFjdCBkYXRhVHlwZXMgbGlzdFxuXHRcdHMuZGF0YVR5cGVzID0gKCBzLmRhdGFUeXBlIHx8IFwiKlwiICkudG9Mb3dlckNhc2UoKS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFsgXCJcIiBdO1xuXG5cdFx0Ly8gQSBjcm9zcy1kb21haW4gcmVxdWVzdCBpcyBpbiBvcmRlciB3aGVuIHRoZSBvcmlnaW4gZG9lc24ndCBtYXRjaCB0aGUgY3VycmVudCBvcmlnaW4uXG5cdFx0aWYgKCBzLmNyb3NzRG9tYWluID09IG51bGwgKSB7XG5cdFx0XHR1cmxBbmNob3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImFcIiApO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTggLSAxMSwgRWRnZSAxMiAtIDE1XG5cdFx0XHQvLyBJRSB0aHJvd3MgZXhjZXB0aW9uIG9uIGFjY2Vzc2luZyB0aGUgaHJlZiBwcm9wZXJ0eSBpZiB1cmwgaXMgbWFsZm9ybWVkLFxuXHRcdFx0Ly8gZS5nLiBodHRwOi8vZXhhbXBsZS5jb206ODB4L1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0dXJsQW5jaG9yLmhyZWYgPSBzLnVybDtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTggLSAxMSBvbmx5XG5cdFx0XHRcdC8vIEFuY2hvcidzIGhvc3QgcHJvcGVydHkgaXNuJ3QgY29ycmVjdGx5IHNldCB3aGVuIHMudXJsIGlzIHJlbGF0aXZlXG5cdFx0XHRcdHVybEFuY2hvci5ocmVmID0gdXJsQW5jaG9yLmhyZWY7XG5cdFx0XHRcdHMuY3Jvc3NEb21haW4gPSBvcmlnaW5BbmNob3IucHJvdG9jb2wgKyBcIi8vXCIgKyBvcmlnaW5BbmNob3IuaG9zdCAhPT1cblx0XHRcdFx0XHR1cmxBbmNob3IucHJvdG9jb2wgKyBcIi8vXCIgKyB1cmxBbmNob3IuaG9zdDtcblx0XHRcdH0gY2F0Y2ggKCBlICkge1xuXG5cdFx0XHRcdC8vIElmIHRoZXJlIGlzIGFuIGVycm9yIHBhcnNpbmcgdGhlIFVSTCwgYXNzdW1lIGl0IGlzIGNyb3NzRG9tYWluLFxuXHRcdFx0XHQvLyBpdCBjYW4gYmUgcmVqZWN0ZWQgYnkgdGhlIHRyYW5zcG9ydCBpZiBpdCBpcyBpbnZhbGlkXG5cdFx0XHRcdHMuY3Jvc3NEb21haW4gPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENvbnZlcnQgZGF0YSBpZiBub3QgYWxyZWFkeSBhIHN0cmluZ1xuXHRcdGlmICggcy5kYXRhICYmIHMucHJvY2Vzc0RhdGEgJiYgdHlwZW9mIHMuZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHMuZGF0YSA9IGpRdWVyeS5wYXJhbSggcy5kYXRhLCBzLnRyYWRpdGlvbmFsICk7XG5cdFx0fVxuXG5cdFx0Ly8gQXBwbHkgcHJlZmlsdGVyc1xuXHRcdGluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzLCBzLCBvcHRpb25zLCBqcVhIUiApO1xuXG5cdFx0Ly8gSWYgcmVxdWVzdCB3YXMgYWJvcnRlZCBpbnNpZGUgYSBwcmVmaWx0ZXIsIHN0b3AgdGhlcmVcblx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdHJldHVybiBqcVhIUjtcblx0XHR9XG5cblx0XHQvLyBXZSBjYW4gZmlyZSBnbG9iYWwgZXZlbnRzIGFzIG9mIG5vdyBpZiBhc2tlZCB0b1xuXHRcdC8vIERvbid0IGZpcmUgZXZlbnRzIGlmIGpRdWVyeS5ldmVudCBpcyB1bmRlZmluZWQgaW4gYW4gQU1ELXVzYWdlIHNjZW5hcmlvICh0cmFjLTE1MTE4KVxuXHRcdGZpcmVHbG9iYWxzID0galF1ZXJ5LmV2ZW50ICYmIHMuZ2xvYmFsO1xuXG5cdFx0Ly8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0c1xuXHRcdGlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIFwiYWpheFN0YXJ0XCIgKTtcblx0XHR9XG5cblx0XHQvLyBVcHBlcmNhc2UgdGhlIHR5cGVcblx0XHRzLnR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTtcblxuXHRcdC8vIERldGVybWluZSBpZiByZXF1ZXN0IGhhcyBjb250ZW50XG5cdFx0cy5oYXNDb250ZW50ID0gIXJub0NvbnRlbnQudGVzdCggcy50eXBlICk7XG5cblx0XHQvLyBTYXZlIHRoZSBVUkwgaW4gY2FzZSB3ZSdyZSB0b3lpbmcgd2l0aCB0aGUgSWYtTW9kaWZpZWQtU2luY2Vcblx0XHQvLyBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIgbGF0ZXIgb25cblx0XHQvLyBSZW1vdmUgaGFzaCB0byBzaW1wbGlmeSB1cmwgbWFuaXB1bGF0aW9uXG5cdFx0Y2FjaGVVUkwgPSBzLnVybC5yZXBsYWNlKCByaGFzaCwgXCJcIiApO1xuXG5cdFx0Ly8gTW9yZSBvcHRpb25zIGhhbmRsaW5nIGZvciByZXF1ZXN0cyB3aXRoIG5vIGNvbnRlbnRcblx0XHRpZiAoICFzLmhhc0NvbnRlbnQgKSB7XG5cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBoYXNoIHNvIHdlIGNhbiBwdXQgaXQgYmFja1xuXHRcdFx0dW5jYWNoZWQgPSBzLnVybC5zbGljZSggY2FjaGVVUkwubGVuZ3RoICk7XG5cblx0XHRcdC8vIElmIGRhdGEgaXMgYXZhaWxhYmxlIGFuZCBzaG91bGQgYmUgcHJvY2Vzc2VkLCBhcHBlbmQgZGF0YSB0byB1cmxcblx0XHRcdGlmICggcy5kYXRhICYmICggcy5wcm9jZXNzRGF0YSB8fCB0eXBlb2Ygcy5kYXRhID09PSBcInN0cmluZ1wiICkgKSB7XG5cdFx0XHRcdGNhY2hlVVJMICs9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmRhdGE7XG5cblx0XHRcdFx0Ly8gdHJhYy05NjgyOiByZW1vdmUgZGF0YSBzbyB0aGF0IGl0J3Mgbm90IHVzZWQgaW4gYW4gZXZlbnR1YWwgcmV0cnlcblx0XHRcdFx0ZGVsZXRlIHMuZGF0YTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIG9yIHVwZGF0ZSBhbnRpLWNhY2hlIHBhcmFtIGlmIG5lZWRlZFxuXHRcdFx0aWYgKCBzLmNhY2hlID09PSBmYWxzZSApIHtcblx0XHRcdFx0Y2FjaGVVUkwgPSBjYWNoZVVSTC5yZXBsYWNlKCByYW50aUNhY2hlLCBcIiQxXCIgKTtcblx0XHRcdFx0dW5jYWNoZWQgPSAoIHJxdWVyeS50ZXN0KCBjYWNoZVVSTCApID8gXCImXCIgOiBcIj9cIiApICsgXCJfPVwiICsgKCBub25jZS5ndWlkKysgKSArXG5cdFx0XHRcdFx0dW5jYWNoZWQ7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFB1dCBoYXNoIGFuZCBhbnRpLWNhY2hlIG9uIHRoZSBVUkwgdGhhdCB3aWxsIGJlIHJlcXVlc3RlZCAoZ2gtMTczMilcblx0XHRcdHMudXJsID0gY2FjaGVVUkwgKyB1bmNhY2hlZDtcblxuXHRcdC8vIENoYW5nZSAnJTIwJyB0byAnKycgaWYgdGhpcyBpcyBlbmNvZGVkIGZvcm0gYm9keSBjb250ZW50IChnaC0yNjU4KVxuXHRcdH0gZWxzZSBpZiAoIHMuZGF0YSAmJiBzLnByb2Nlc3NEYXRhICYmXG5cdFx0XHQoIHMuY29udGVudFR5cGUgfHwgXCJcIiApLmluZGV4T2YoIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgKSA9PT0gMCApIHtcblx0XHRcdHMuZGF0YSA9IHMuZGF0YS5yZXBsYWNlKCByMjAsIFwiK1wiICk7XG5cdFx0fVxuXG5cdFx0Ly8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS5cblx0XHRpZiAoIHMuaWZNb2RpZmllZCApIHtcblx0XHRcdGlmICggalF1ZXJ5Lmxhc3RNb2RpZmllZFsgY2FjaGVVUkwgXSApIHtcblx0XHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJJZi1Nb2RpZmllZC1TaW5jZVwiLCBqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGpRdWVyeS5ldGFnWyBjYWNoZVVSTCBdICkge1xuXHRcdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIklmLU5vbmUtTWF0Y2hcIiwgalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIGNvcnJlY3QgaGVhZGVyLCBpZiBkYXRhIGlzIGJlaW5nIHNlbnRcblx0XHRpZiAoIHMuZGF0YSAmJiBzLmhhc0NvbnRlbnQgJiYgcy5jb250ZW50VHlwZSAhPT0gZmFsc2UgfHwgb3B0aW9ucy5jb250ZW50VHlwZSApIHtcblx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIFwiQ29udGVudC1UeXBlXCIsIHMuY29udGVudFR5cGUgKTtcblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIEFjY2VwdHMgaGVhZGVyIGZvciB0aGUgc2VydmVyLCBkZXBlbmRpbmcgb24gdGhlIGRhdGFUeXBlXG5cdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlcihcblx0XHRcdFwiQWNjZXB0XCIsXG5cdFx0XHRzLmRhdGFUeXBlc1sgMCBdICYmIHMuYWNjZXB0c1sgcy5kYXRhVHlwZXNbIDAgXSBdID9cblx0XHRcdFx0cy5hY2NlcHRzWyBzLmRhdGFUeXBlc1sgMCBdIF0gK1xuXHRcdFx0XHRcdCggcy5kYXRhVHlwZXNbIDAgXSAhPT0gXCIqXCIgPyBcIiwgXCIgKyBhbGxUeXBlcyArIFwiOyBxPTAuMDFcIiA6IFwiXCIgKSA6XG5cdFx0XHRcdHMuYWNjZXB0c1sgXCIqXCIgXVxuXHRcdCk7XG5cblx0XHQvLyBDaGVjayBmb3IgaGVhZGVycyBvcHRpb25cblx0XHRmb3IgKCBpIGluIHMuaGVhZGVycyApIHtcblx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIGksIHMuaGVhZGVyc1sgaSBdICk7XG5cdFx0fVxuXG5cdFx0Ly8gQWxsb3cgY3VzdG9tIGhlYWRlcnMvbWltZXR5cGVzIGFuZCBlYXJseSBhYm9ydFxuXHRcdGlmICggcy5iZWZvcmVTZW5kICYmXG5cdFx0XHQoIHMuYmVmb3JlU2VuZC5jYWxsKCBjYWxsYmFja0NvbnRleHQsIGpxWEhSLCBzICkgPT09IGZhbHNlIHx8IGNvbXBsZXRlZCApICkge1xuXG5cdFx0XHQvLyBBYm9ydCBpZiBub3QgZG9uZSBhbHJlYWR5IGFuZCByZXR1cm5cblx0XHRcdHJldHVybiBqcVhIUi5hYm9ydCgpO1xuXHRcdH1cblxuXHRcdC8vIEFib3J0aW5nIGlzIG5vIGxvbmdlciBhIGNhbmNlbGxhdGlvblxuXHRcdHN0ckFib3J0ID0gXCJhYm9ydFwiO1xuXG5cdFx0Ly8gSW5zdGFsbCBjYWxsYmFja3Mgb24gZGVmZXJyZWRzXG5cdFx0Y29tcGxldGVEZWZlcnJlZC5hZGQoIHMuY29tcGxldGUgKTtcblx0XHRqcVhIUi5kb25lKCBzLnN1Y2Nlc3MgKTtcblx0XHRqcVhIUi5mYWlsKCBzLmVycm9yICk7XG5cblx0XHQvLyBHZXQgdHJhbnNwb3J0XG5cdFx0dHJhbnNwb3J0ID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHRyYW5zcG9ydHMsIHMsIG9wdGlvbnMsIGpxWEhSICk7XG5cblx0XHQvLyBJZiBubyB0cmFuc3BvcnQsIHdlIGF1dG8tYWJvcnRcblx0XHRpZiAoICF0cmFuc3BvcnQgKSB7XG5cdFx0XHRkb25lKCAtMSwgXCJObyBUcmFuc3BvcnRcIiApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRqcVhIUi5yZWFkeVN0YXRlID0gMTtcblxuXHRcdFx0Ly8gU2VuZCBnbG9iYWwgZXZlbnRcblx0XHRcdGlmICggZmlyZUdsb2JhbHMgKSB7XG5cdFx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dC50cmlnZ2VyKCBcImFqYXhTZW5kXCIsIFsganFYSFIsIHMgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhamF4U2VuZCwgc3RvcCB0aGVyZVxuXHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRcdHJldHVybiBqcVhIUjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVGltZW91dFxuXHRcdFx0aWYgKCBzLmFzeW5jICYmIHMudGltZW91dCA+IDAgKSB7XG5cdFx0XHRcdHRpbWVvdXRUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRqcVhIUi5hYm9ydCggXCJ0aW1lb3V0XCIgKTtcblx0XHRcdFx0fSwgcy50aW1lb3V0ICk7XG5cdFx0XHR9XG5cblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbXBsZXRlZCA9IGZhbHNlO1xuXHRcdFx0XHR0cmFuc3BvcnQuc2VuZCggcmVxdWVzdEhlYWRlcnMsIGRvbmUgKTtcblx0XHRcdH0gY2F0Y2ggKCBlICkge1xuXG5cdFx0XHRcdC8vIFJldGhyb3cgcG9zdC1jb21wbGV0aW9uIGV4Y2VwdGlvbnNcblx0XHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRcdFx0dGhyb3cgZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFByb3BhZ2F0ZSBvdGhlcnMgYXMgcmVzdWx0c1xuXHRcdFx0XHRkb25lKCAtMSwgZSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhbGxiYWNrIGZvciB3aGVuIGV2ZXJ5dGhpbmcgaXMgZG9uZVxuXHRcdGZ1bmN0aW9uIGRvbmUoIHN0YXR1cywgbmF0aXZlU3RhdHVzVGV4dCwgcmVzcG9uc2VzLCBoZWFkZXJzICkge1xuXHRcdFx0dmFyIGlzU3VjY2Vzcywgc3VjY2VzcywgZXJyb3IsIHJlc3BvbnNlLCBtb2RpZmllZCxcblx0XHRcdFx0c3RhdHVzVGV4dCA9IG5hdGl2ZVN0YXR1c1RleHQ7XG5cblx0XHRcdC8vIElnbm9yZSByZXBlYXQgaW52b2NhdGlvbnNcblx0XHRcdGlmICggY29tcGxldGVkICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbXBsZXRlZCA9IHRydWU7XG5cblx0XHRcdC8vIENsZWFyIHRpbWVvdXQgaWYgaXQgZXhpc3RzXG5cdFx0XHRpZiAoIHRpbWVvdXRUaW1lciApIHtcblx0XHRcdFx0d2luZG93LmNsZWFyVGltZW91dCggdGltZW91dFRpbWVyICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIERlcmVmZXJlbmNlIHRyYW5zcG9ydCBmb3IgZWFybHkgZ2FyYmFnZSBjb2xsZWN0aW9uXG5cdFx0XHQvLyAobm8gbWF0dGVyIGhvdyBsb25nIHRoZSBqcVhIUiBvYmplY3Qgd2lsbCBiZSB1c2VkKVxuXHRcdFx0dHJhbnNwb3J0ID0gdW5kZWZpbmVkO1xuXG5cdFx0XHQvLyBDYWNoZSByZXNwb25zZSBoZWFkZXJzXG5cdFx0XHRyZXNwb25zZUhlYWRlcnNTdHJpbmcgPSBoZWFkZXJzIHx8IFwiXCI7XG5cblx0XHRcdC8vIFNldCByZWFkeVN0YXRlXG5cdFx0XHRqcVhIUi5yZWFkeVN0YXRlID0gc3RhdHVzID4gMCA/IDQgOiAwO1xuXG5cdFx0XHQvLyBEZXRlcm1pbmUgaWYgc3VjY2Vzc2Z1bFxuXHRcdFx0aXNTdWNjZXNzID0gc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDAgfHwgc3RhdHVzID09PSAzMDQ7XG5cblx0XHRcdC8vIEdldCByZXNwb25zZSBkYXRhXG5cdFx0XHRpZiAoIHJlc3BvbnNlcyApIHtcblx0XHRcdFx0cmVzcG9uc2UgPSBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFVzZSBhIG5vb3AgY29udmVydGVyIGZvciBtaXNzaW5nIHNjcmlwdCBidXQgbm90IGlmIGpzb25wXG5cdFx0XHRpZiAoICFpc1N1Y2Nlc3MgJiZcblx0XHRcdFx0alF1ZXJ5LmluQXJyYXkoIFwic2NyaXB0XCIsIHMuZGF0YVR5cGVzICkgPiAtMSAmJlxuXHRcdFx0XHRqUXVlcnkuaW5BcnJheSggXCJqc29uXCIsIHMuZGF0YVR5cGVzICkgPCAwICkge1xuXHRcdFx0XHRzLmNvbnZlcnRlcnNbIFwidGV4dCBzY3JpcHRcIiBdID0gZnVuY3Rpb24oKSB7fTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29udmVydCBubyBtYXR0ZXIgd2hhdCAodGhhdCB3YXkgcmVzcG9uc2VYWFggZmllbGRzIGFyZSBhbHdheXMgc2V0KVxuXHRcdFx0cmVzcG9uc2UgPSBhamF4Q29udmVydCggcywgcmVzcG9uc2UsIGpxWEhSLCBpc1N1Y2Nlc3MgKTtcblxuXHRcdFx0Ly8gSWYgc3VjY2Vzc2Z1bCwgaGFuZGxlIHR5cGUgY2hhaW5pbmdcblx0XHRcdGlmICggaXNTdWNjZXNzICkge1xuXG5cdFx0XHRcdC8vIFNldCB0aGUgSWYtTW9kaWZpZWQtU2luY2UgYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyLCBpZiBpbiBpZk1vZGlmaWVkIG1vZGUuXG5cdFx0XHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0XHRcdG1vZGlmaWVkID0ganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoIFwiTGFzdC1Nb2RpZmllZFwiICk7XG5cdFx0XHRcdFx0aWYgKCBtb2RpZmllZCApIHtcblx0XHRcdFx0XHRcdGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gPSBtb2RpZmllZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0bW9kaWZpZWQgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggXCJldGFnXCIgKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gPSBtb2RpZmllZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBpZiBubyBjb250ZW50XG5cdFx0XHRcdGlmICggc3RhdHVzID09PSAyMDQgfHwgcy50eXBlID09PSBcIkhFQURcIiApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJub2NvbnRlbnRcIjtcblxuXHRcdFx0XHQvLyBpZiBub3QgbW9kaWZpZWRcblx0XHRcdFx0fSBlbHNlIGlmICggc3RhdHVzID09PSAzMDQgKSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IFwibm90bW9kaWZpZWRcIjtcblxuXHRcdFx0XHQvLyBJZiB3ZSBoYXZlIGRhdGEsIGxldCdzIGNvbnZlcnQgaXRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gcmVzcG9uc2Uuc3RhdGU7XG5cdFx0XHRcdFx0c3VjY2VzcyA9IHJlc3BvbnNlLmRhdGE7XG5cdFx0XHRcdFx0ZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcblx0XHRcdFx0XHRpc1N1Y2Nlc3MgPSAhZXJyb3I7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gRXh0cmFjdCBlcnJvciBmcm9tIHN0YXR1c1RleHQgYW5kIG5vcm1hbGl6ZSBmb3Igbm9uLWFib3J0c1xuXHRcdFx0XHRlcnJvciA9IHN0YXR1c1RleHQ7XG5cdFx0XHRcdGlmICggc3RhdHVzIHx8ICFzdGF0dXNUZXh0ICkge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSBcImVycm9yXCI7XG5cdFx0XHRcdFx0aWYgKCBzdGF0dXMgPCAwICkge1xuXHRcdFx0XHRcdFx0c3RhdHVzID0gMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gU2V0IGRhdGEgZm9yIHRoZSBmYWtlIHhociBvYmplY3Rcblx0XHRcdGpxWEhSLnN0YXR1cyA9IHN0YXR1cztcblx0XHRcdGpxWEhSLnN0YXR1c1RleHQgPSAoIG5hdGl2ZVN0YXR1c1RleHQgfHwgc3RhdHVzVGV4dCApICsgXCJcIjtcblxuXHRcdFx0Ly8gU3VjY2Vzcy9FcnJvclxuXHRcdFx0aWYgKCBpc1N1Y2Nlc3MgKSB7XG5cdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsgc3VjY2Vzcywgc3RhdHVzVGV4dCwganFYSFIgXSApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0V2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0LCBlcnJvciBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXG5cdFx0XHRqcVhIUi5zdGF0dXNDb2RlKCBzdGF0dXNDb2RlICk7XG5cdFx0XHRzdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xuXG5cdFx0XHRpZiAoIGZpcmVHbG9iYWxzICkge1xuXHRcdFx0XHRnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggaXNTdWNjZXNzID8gXCJhamF4U3VjY2Vzc1wiIDogXCJhamF4RXJyb3JcIixcblx0XHRcdFx0XHRbIGpxWEhSLCBzLCBpc1N1Y2Nlc3MgPyBzdWNjZXNzIDogZXJyb3IgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb21wbGV0ZVxuXHRcdFx0Y29tcGxldGVEZWZlcnJlZC5maXJlV2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0IF0gKTtcblxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheENvbXBsZXRlXCIsIFsganFYSFIsIHMgXSApO1xuXG5cdFx0XHRcdC8vIEhhbmRsZSB0aGUgZ2xvYmFsIEFKQVggY291bnRlclxuXHRcdFx0XHRpZiAoICEoIC0talF1ZXJ5LmFjdGl2ZSApICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCBcImFqYXhTdG9wXCIgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBqcVhIUjtcblx0fSxcblxuXHRnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgXCJqc29uXCIgKTtcblx0fSxcblxuXHRnZXRTY3JpcHQ6IGZ1bmN0aW9uKCB1cmwsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ2V0KCB1cmwsIHVuZGVmaW5lZCwgY2FsbGJhY2ssIFwic2NyaXB0XCIgKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCggWyBcImdldFwiLCBcInBvc3RcIiBdLCBmdW5jdGlvbiggX2ksIG1ldGhvZCApIHtcblx0alF1ZXJ5WyBtZXRob2QgXSA9IGZ1bmN0aW9uKCB1cmwsIGRhdGEsIGNhbGxiYWNrLCB0eXBlICkge1xuXG5cdFx0Ly8gU2hpZnQgYXJndW1lbnRzIGlmIGRhdGEgYXJndW1lbnQgd2FzIG9taXR0ZWRcblx0XHRpZiAoIGlzRnVuY3Rpb24oIGRhdGEgKSApIHtcblx0XHRcdHR5cGUgPSB0eXBlIHx8IGNhbGxiYWNrO1xuXHRcdFx0Y2FsbGJhY2sgPSBkYXRhO1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBUaGUgdXJsIGNhbiBiZSBhbiBvcHRpb25zIG9iamVjdCAod2hpY2ggdGhlbiBtdXN0IGhhdmUgLnVybClcblx0XHRyZXR1cm4galF1ZXJ5LmFqYXgoIGpRdWVyeS5leHRlbmQoIHtcblx0XHRcdHVybDogdXJsLFxuXHRcdFx0dHlwZTogbWV0aG9kLFxuXHRcdFx0ZGF0YVR5cGU6IHR5cGUsXG5cdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0c3VjY2VzczogY2FsbGJhY2tcblx0XHR9LCBqUXVlcnkuaXNQbGFpbk9iamVjdCggdXJsICkgJiYgdXJsICkgKTtcblx0fTtcbn0gKTtcblxualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIGZ1bmN0aW9uKCBzICkge1xuXHR2YXIgaTtcblx0Zm9yICggaSBpbiBzLmhlYWRlcnMgKSB7XG5cdFx0aWYgKCBpLnRvTG93ZXJDYXNlKCkgPT09IFwiY29udGVudC10eXBlXCIgKSB7XG5cdFx0XHRzLmNvbnRlbnRUeXBlID0gcy5oZWFkZXJzWyBpIF0gfHwgXCJcIjtcblx0XHR9XG5cdH1cbn0gKTtcblxuXG5qUXVlcnkuX2V2YWxVcmwgPSBmdW5jdGlvbiggdXJsLCBvcHRpb25zLCBkb2MgKSB7XG5cdHJldHVybiBqUXVlcnkuYWpheCgge1xuXHRcdHVybDogdXJsLFxuXG5cdFx0Ly8gTWFrZSB0aGlzIGV4cGxpY2l0LCBzaW5jZSB1c2VyIGNhbiBvdmVycmlkZSB0aGlzIHRocm91Z2ggYWpheFNldHVwICh0cmFjLTExMjY0KVxuXHRcdHR5cGU6IFwiR0VUXCIsXG5cdFx0ZGF0YVR5cGU6IFwic2NyaXB0XCIsXG5cdFx0Y2FjaGU6IHRydWUsXG5cdFx0YXN5bmM6IGZhbHNlLFxuXHRcdGdsb2JhbDogZmFsc2UsXG5cblx0XHQvLyBPbmx5IGV2YWx1YXRlIHRoZSByZXNwb25zZSBpZiBpdCBpcyBzdWNjZXNzZnVsIChnaC00MTI2KVxuXHRcdC8vIGRhdGFGaWx0ZXIgaXMgbm90IGludm9rZWQgZm9yIGZhaWx1cmUgcmVzcG9uc2VzLCBzbyB1c2luZyBpdCBpbnN0ZWFkXG5cdFx0Ly8gb2YgdGhlIGRlZmF1bHQgY29udmVydGVyIGlzIGtsdWRneSBidXQgaXQgd29ya3MuXG5cdFx0Y29udmVydGVyczoge1xuXHRcdFx0XCJ0ZXh0IHNjcmlwdFwiOiBmdW5jdGlvbigpIHt9XG5cdFx0fSxcblx0XHRkYXRhRmlsdGVyOiBmdW5jdGlvbiggcmVzcG9uc2UgKSB7XG5cdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggcmVzcG9uc2UsIG9wdGlvbnMsIGRvYyApO1xuXHRcdH1cblx0fSApO1xufTtcblxuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHdyYXBBbGw6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHZhciB3cmFwO1xuXG5cdFx0aWYgKCB0aGlzWyAwIF0gKSB7XG5cdFx0XHRpZiAoIGlzRnVuY3Rpb24oIGh0bWwgKSApIHtcblx0XHRcdFx0aHRtbCA9IGh0bWwuY2FsbCggdGhpc1sgMCBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFRoZSBlbGVtZW50cyB0byB3cmFwIHRoZSB0YXJnZXQgYXJvdW5kXG5cdFx0XHR3cmFwID0galF1ZXJ5KCBodG1sLCB0aGlzWyAwIF0ub3duZXJEb2N1bWVudCApLmVxKCAwICkuY2xvbmUoIHRydWUgKTtcblxuXHRcdFx0aWYgKCB0aGlzWyAwIF0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0d3JhcC5pbnNlcnRCZWZvcmUoIHRoaXNbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHR3cmFwLm1hcCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBlbGVtID0gdGhpcztcblxuXHRcdFx0XHR3aGlsZSAoIGVsZW0uZmlyc3RFbGVtZW50Q2hpbGQgKSB7XG5cdFx0XHRcdFx0ZWxlbSA9IGVsZW0uZmlyc3RFbGVtZW50Q2hpbGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gZWxlbTtcblx0XHRcdH0gKS5hcHBlbmQoIHRoaXMgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHR3cmFwSW5uZXI6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdGlmICggaXNGdW5jdGlvbiggaHRtbCApICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLndyYXBJbm5lciggaHRtbC5jYWxsKCB0aGlzLCBpICkgKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBzZWxmID0galF1ZXJ5KCB0aGlzICksXG5cdFx0XHRcdGNvbnRlbnRzID0gc2VsZi5jb250ZW50cygpO1xuXG5cdFx0XHRpZiAoIGNvbnRlbnRzLmxlbmd0aCApIHtcblx0XHRcdFx0Y29udGVudHMud3JhcEFsbCggaHRtbCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzZWxmLmFwcGVuZCggaHRtbCApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHR3cmFwOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHR2YXIgaHRtbElzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uKCBodG1sICk7XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdGpRdWVyeSggdGhpcyApLndyYXBBbGwoIGh0bWxJc0Z1bmN0aW9uID8gaHRtbC5jYWxsKCB0aGlzLCBpICkgOiBodG1sICk7XG5cdFx0fSApO1xuXHR9LFxuXG5cdHVud3JhcDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHRoaXMucGFyZW50KCBzZWxlY3RvciApLm5vdCggXCJib2R5XCIgKS5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeSggdGhpcyApLnJlcGxhY2VXaXRoKCB0aGlzLmNoaWxkTm9kZXMgKTtcblx0XHR9ICk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn0gKTtcblxuXG5qUXVlcnkuZXhwci5wc2V1ZG9zLmhpZGRlbiA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRyZXR1cm4gIWpRdWVyeS5leHByLnBzZXVkb3MudmlzaWJsZSggZWxlbSApO1xufTtcbmpRdWVyeS5leHByLnBzZXVkb3MudmlzaWJsZSA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRyZXR1cm4gISEoIGVsZW0ub2Zmc2V0V2lkdGggfHwgZWxlbS5vZmZzZXRIZWlnaHQgfHwgZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCApO1xufTtcblxuXG5cblxualF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIgPSBmdW5jdGlvbigpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gbmV3IHdpbmRvdy5YTUxIdHRwUmVxdWVzdCgpO1xuXHR9IGNhdGNoICggZSApIHt9XG59O1xuXG52YXIgeGhyU3VjY2Vzc1N0YXR1cyA9IHtcblxuXHRcdC8vIEZpbGUgcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgY29kZSAwLCBhc3N1bWUgMjAwXG5cdFx0MDogMjAwLFxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHQvLyB0cmFjLTE0NTA6IHNvbWV0aW1lcyBJRSByZXR1cm5zIDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0XG5cdFx0MTIyMzogMjA0XG5cdH0sXG5cdHhoclN1cHBvcnRlZCA9IGpRdWVyeS5hamF4U2V0dGluZ3MueGhyKCk7XG5cbnN1cHBvcnQuY29ycyA9ICEheGhyU3VwcG9ydGVkICYmICggXCJ3aXRoQ3JlZGVudGlhbHNcIiBpbiB4aHJTdXBwb3J0ZWQgKTtcbnN1cHBvcnQuYWpheCA9IHhoclN1cHBvcnRlZCA9ICEheGhyU3VwcG9ydGVkO1xuXG5qUXVlcnkuYWpheFRyYW5zcG9ydCggZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cdHZhciBjYWxsYmFjaywgZXJyb3JDYWxsYmFjaztcblxuXHQvLyBDcm9zcyBkb21haW4gb25seSBhbGxvd2VkIGlmIHN1cHBvcnRlZCB0aHJvdWdoIFhNTEh0dHBSZXF1ZXN0XG5cdGlmICggc3VwcG9ydC5jb3JzIHx8IHhoclN1cHBvcnRlZCAmJiAhb3B0aW9ucy5jcm9zc0RvbWFpbiApIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0c2VuZDogZnVuY3Rpb24oIGhlYWRlcnMsIGNvbXBsZXRlICkge1xuXHRcdFx0XHR2YXIgaSxcblx0XHRcdFx0XHR4aHIgPSBvcHRpb25zLnhocigpO1xuXG5cdFx0XHRcdHhoci5vcGVuKFxuXHRcdFx0XHRcdG9wdGlvbnMudHlwZSxcblx0XHRcdFx0XHRvcHRpb25zLnVybCxcblx0XHRcdFx0XHRvcHRpb25zLmFzeW5jLFxuXHRcdFx0XHRcdG9wdGlvbnMudXNlcm5hbWUsXG5cdFx0XHRcdFx0b3B0aW9ucy5wYXNzd29yZFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdC8vIEFwcGx5IGN1c3RvbSBmaWVsZHMgaWYgcHJvdmlkZWRcblx0XHRcdFx0aWYgKCBvcHRpb25zLnhockZpZWxkcyApIHtcblx0XHRcdFx0XHRmb3IgKCBpIGluIG9wdGlvbnMueGhyRmllbGRzICkge1xuXHRcdFx0XHRcdFx0eGhyWyBpIF0gPSBvcHRpb25zLnhockZpZWxkc1sgaSBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE92ZXJyaWRlIG1pbWUgdHlwZSBpZiBuZWVkZWRcblx0XHRcdFx0aWYgKCBvcHRpb25zLm1pbWVUeXBlICYmIHhoci5vdmVycmlkZU1pbWVUeXBlICkge1xuXHRcdFx0XHRcdHhoci5vdmVycmlkZU1pbWVUeXBlKCBvcHRpb25zLm1pbWVUeXBlICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBYLVJlcXVlc3RlZC1XaXRoIGhlYWRlclxuXHRcdFx0XHQvLyBGb3IgY3Jvc3MtZG9tYWluIHJlcXVlc3RzLCBzZWVpbmcgYXMgY29uZGl0aW9ucyBmb3IgYSBwcmVmbGlnaHQgYXJlXG5cdFx0XHRcdC8vIGFraW4gdG8gYSBqaWdzYXcgcHV6emxlLCB3ZSBzaW1wbHkgbmV2ZXIgc2V0IGl0IHRvIGJlIHN1cmUuXG5cdFx0XHRcdC8vIChpdCBjYW4gYWx3YXlzIGJlIHNldCBvbiBhIHBlci1yZXF1ZXN0IGJhc2lzIG9yIGV2ZW4gdXNpbmcgYWpheFNldHVwKVxuXHRcdFx0XHQvLyBGb3Igc2FtZS1kb21haW4gcmVxdWVzdHMsIHdvbid0IGNoYW5nZSBoZWFkZXIgaWYgYWxyZWFkeSBwcm92aWRlZC5cblx0XHRcdFx0aWYgKCAhb3B0aW9ucy5jcm9zc0RvbWFpbiAmJiAhaGVhZGVyc1sgXCJYLVJlcXVlc3RlZC1XaXRoXCIgXSApIHtcblx0XHRcdFx0XHRoZWFkZXJzWyBcIlgtUmVxdWVzdGVkLVdpdGhcIiBdID0gXCJYTUxIdHRwUmVxdWVzdFwiO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU2V0IGhlYWRlcnNcblx0XHRcdFx0Zm9yICggaSBpbiBoZWFkZXJzICkge1xuXHRcdFx0XHRcdHhoci5zZXRSZXF1ZXN0SGVhZGVyKCBpLCBoZWFkZXJzWyBpIF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIENhbGxiYWNrXG5cdFx0XHRcdGNhbGxiYWNrID0gZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdFx0Y2FsbGJhY2sgPSBlcnJvckNhbGxiYWNrID0geGhyLm9ubG9hZCA9XG5cdFx0XHRcdFx0XHRcdFx0eGhyLm9uZXJyb3IgPSB4aHIub25hYm9ydCA9IHhoci5vbnRpbWVvdXQgPVxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG5cblx0XHRcdFx0XHRcdFx0aWYgKCB0eXBlID09PSBcImFib3J0XCIgKSB7XG5cdFx0XHRcdFx0XHRcdFx0eGhyLmFib3J0KCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIHR5cGUgPT09IFwiZXJyb3JcIiApIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0XHRcdFx0XHRcdFx0Ly8gT24gYSBtYW51YWwgbmF0aXZlIGFib3J0LCBJRTkgdGhyb3dzXG5cdFx0XHRcdFx0XHRcdFx0Ly8gZXJyb3JzIG9uIGFueSBwcm9wZXJ0eSBhY2Nlc3MgdGhhdCBpcyBub3QgcmVhZHlTdGF0ZVxuXHRcdFx0XHRcdFx0XHRcdGlmICggdHlwZW9mIHhoci5zdGF0dXMgIT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb21wbGV0ZSggMCwgXCJlcnJvclwiICk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKFxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIEZpbGU6IHByb3RvY29sIGFsd2F5cyB5aWVsZHMgc3RhdHVzIDA7IHNlZSB0cmFjLTg2MDUsIHRyYWMtMTQyMDdcblx0XHRcdFx0XHRcdFx0XHRcdFx0eGhyLnN0YXR1cyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0eGhyLnN0YXR1c1RleHRcblx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKFxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyU3VjY2Vzc1N0YXR1c1sgeGhyLnN0YXR1cyBdIHx8IHhoci5zdGF0dXMsXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIuc3RhdHVzVGV4dCxcblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHRcdFx0XHRcdFx0XHRcdC8vIElFOSBoYXMgbm8gWEhSMiBidXQgdGhyb3dzIG9uIGJpbmFyeSAodHJhYy0xMTQyNilcblx0XHRcdFx0XHRcdFx0XHRcdC8vIEZvciBYSFIyIG5vbi10ZXh0LCBsZXQgdGhlIGNhbGxlciBoYW5kbGUgaXQgKGdoLTI0OTgpXG5cdFx0XHRcdFx0XHRcdFx0XHQoIHhoci5yZXNwb25zZVR5cGUgfHwgXCJ0ZXh0XCIgKSAhPT0gXCJ0ZXh0XCIgIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgeGhyLnJlc3BvbnNlVGV4dCAhPT0gXCJzdHJpbmdcIiA/XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgYmluYXJ5OiB4aHIucmVzcG9uc2UgfSA6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgdGV4dDogeGhyLnJlc3BvbnNlVGV4dCB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0Ly8gTGlzdGVuIHRvIGV2ZW50c1xuXHRcdFx0XHR4aHIub25sb2FkID0gY2FsbGJhY2soKTtcblx0XHRcdFx0ZXJyb3JDYWxsYmFjayA9IHhoci5vbmVycm9yID0geGhyLm9udGltZW91dCA9IGNhbGxiYWNrKCBcImVycm9yXCIgKTtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA5IG9ubHlcblx0XHRcdFx0Ly8gVXNlIG9ucmVhZHlzdGF0ZWNoYW5nZSB0byByZXBsYWNlIG9uYWJvcnRcblx0XHRcdFx0Ly8gdG8gaGFuZGxlIHVuY2F1Z2h0IGFib3J0c1xuXHRcdFx0XHRpZiAoIHhoci5vbmFib3J0ICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0eGhyLm9uYWJvcnQgPSBlcnJvckNhbGxiYWNrO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHRcdFx0Ly8gQ2hlY2sgcmVhZHlTdGF0ZSBiZWZvcmUgdGltZW91dCBhcyBpdCBjaGFuZ2VzXG5cdFx0XHRcdFx0XHRpZiAoIHhoci5yZWFkeVN0YXRlID09PSA0ICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIEFsbG93IG9uZXJyb3IgdG8gYmUgY2FsbGVkIGZpcnN0LFxuXHRcdFx0XHRcdFx0XHQvLyBidXQgdGhhdCB3aWxsIG5vdCBoYW5kbGUgYSBuYXRpdmUgYWJvcnRcblx0XHRcdFx0XHRcdFx0Ly8gQWxzbywgc2F2ZSBlcnJvckNhbGxiYWNrIHRvIGEgdmFyaWFibGVcblx0XHRcdFx0XHRcdFx0Ly8gYXMgeGhyLm9uZXJyb3IgY2Fubm90IGJlIGFjY2Vzc2VkXG5cdFx0XHRcdFx0XHRcdHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3JDYWxsYmFjaygpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBDcmVhdGUgdGhlIGFib3J0IGNhbGxiYWNrXG5cdFx0XHRcdGNhbGxiYWNrID0gY2FsbGJhY2soIFwiYWJvcnRcIiApO1xuXG5cdFx0XHRcdHRyeSB7XG5cblx0XHRcdFx0XHQvLyBEbyBzZW5kIHRoZSByZXF1ZXN0ICh0aGlzIG1heSByYWlzZSBhbiBleGNlcHRpb24pXG5cdFx0XHRcdFx0eGhyLnNlbmQoIG9wdGlvbnMuaGFzQ29udGVudCAmJiBvcHRpb25zLmRhdGEgfHwgbnVsbCApO1xuXHRcdFx0XHR9IGNhdGNoICggZSApIHtcblxuXHRcdFx0XHRcdC8vIHRyYWMtMTQ2ODM6IE9ubHkgcmV0aHJvdyBpZiB0aGlzIGhhc24ndCBiZWVuIG5vdGlmaWVkIGFzIGFuIGVycm9yIHlldFxuXHRcdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdGNhbGxiYWNrKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFByZXZlbnQgYXV0by1leGVjdXRpb24gb2Ygc2NyaXB0cyB3aGVuIG5vIGV4cGxpY2l0IGRhdGFUeXBlIHdhcyBwcm92aWRlZCAoU2VlIGdoLTI0MzIpXG5qUXVlcnkuYWpheFByZWZpbHRlciggZnVuY3Rpb24oIHMgKSB7XG5cdGlmICggcy5jcm9zc0RvbWFpbiApIHtcblx0XHRzLmNvbnRlbnRzLnNjcmlwdCA9IGZhbHNlO1xuXHR9XG59ICk7XG5cbi8vIEluc3RhbGwgc2NyaXB0IGRhdGFUeXBlXG5qUXVlcnkuYWpheFNldHVwKCB7XG5cdGFjY2VwdHM6IHtcblx0XHRzY3JpcHQ6IFwidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBcIiArXG5cdFx0XHRcImFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdFwiXG5cdH0sXG5cdGNvbnRlbnRzOiB7XG5cdFx0c2NyaXB0OiAvXFxiKD86amF2YXxlY21hKXNjcmlwdFxcYi9cblx0fSxcblx0Y29udmVydGVyczoge1xuXHRcdFwidGV4dCBzY3JpcHRcIjogZnVuY3Rpb24oIHRleHQgKSB7XG5cdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggdGV4dCApO1xuXHRcdFx0cmV0dXJuIHRleHQ7XG5cdFx0fVxuXHR9XG59ICk7XG5cbi8vIEhhbmRsZSBjYWNoZSdzIHNwZWNpYWwgY2FzZSBhbmQgY3Jvc3NEb21haW5cbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBcInNjcmlwdFwiLCBmdW5jdGlvbiggcyApIHtcblx0aWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7XG5cdFx0cy5jYWNoZSA9IGZhbHNlO1xuXHR9XG5cdGlmICggcy5jcm9zc0RvbWFpbiApIHtcblx0XHRzLnR5cGUgPSBcIkdFVFwiO1xuXHR9XG59ICk7XG5cbi8vIEJpbmQgc2NyaXB0IHRhZyBoYWNrIHRyYW5zcG9ydFxualF1ZXJ5LmFqYXhUcmFuc3BvcnQoIFwic2NyaXB0XCIsIGZ1bmN0aW9uKCBzICkge1xuXG5cdC8vIFRoaXMgdHJhbnNwb3J0IG9ubHkgZGVhbHMgd2l0aCBjcm9zcyBkb21haW4gb3IgZm9yY2VkLWJ5LWF0dHJzIHJlcXVlc3RzXG5cdGlmICggcy5jcm9zc0RvbWFpbiB8fCBzLnNjcmlwdEF0dHJzICkge1xuXHRcdHZhciBzY3JpcHQsIGNhbGxiYWNrO1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggXywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHNjcmlwdCA9IGpRdWVyeSggXCI8c2NyaXB0PlwiIClcblx0XHRcdFx0XHQuYXR0ciggcy5zY3JpcHRBdHRycyB8fCB7fSApXG5cdFx0XHRcdFx0LnByb3AoIHsgY2hhcnNldDogcy5zY3JpcHRDaGFyc2V0LCBzcmM6IHMudXJsIH0gKVxuXHRcdFx0XHRcdC5vbiggXCJsb2FkIGVycm9yXCIsIGNhbGxiYWNrID0gZnVuY3Rpb24oIGV2dCApIHtcblx0XHRcdFx0XHRcdHNjcmlwdC5yZW1vdmUoKTtcblx0XHRcdFx0XHRcdGNhbGxiYWNrID0gbnVsbDtcblx0XHRcdFx0XHRcdGlmICggZXZ0ICkge1xuXHRcdFx0XHRcdFx0XHRjb21wbGV0ZSggZXZ0LnR5cGUgPT09IFwiZXJyb3JcIiA/IDQwNCA6IDIwMCwgZXZ0LnR5cGUgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9ICk7XG5cblx0XHRcdFx0Ly8gVXNlIG5hdGl2ZSBET00gbWFuaXB1bGF0aW9uIHRvIGF2b2lkIG91ciBkb21NYW5pcCBBSkFYIHRyaWNrZXJ5XG5cdFx0XHRcdGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoIHNjcmlwdFsgMCBdICk7XG5cdFx0XHR9LFxuXHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdGNhbGxiYWNrKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG59ICk7XG5cblxuXG5cbnZhciBvbGRDYWxsYmFja3MgPSBbXSxcblx0cmpzb25wID0gLyg9KVxcPyg/PSZ8JCl8XFw/XFw/LztcblxuLy8gRGVmYXVsdCBqc29ucCBzZXR0aW5nc1xualF1ZXJ5LmFqYXhTZXR1cCgge1xuXHRqc29ucDogXCJjYWxsYmFja1wiLFxuXHRqc29ucENhbGxiYWNrOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgY2FsbGJhY2sgPSBvbGRDYWxsYmFja3MucG9wKCkgfHwgKCBqUXVlcnkuZXhwYW5kbyArIFwiX1wiICsgKCBub25jZS5ndWlkKysgKSApO1xuXHRcdHRoaXNbIGNhbGxiYWNrIF0gPSB0cnVlO1xuXHRcdHJldHVybiBjYWxsYmFjaztcblx0fVxufSApO1xuXG4vLyBEZXRlY3QsIG5vcm1hbGl6ZSBvcHRpb25zIGFuZCBpbnN0YWxsIGNhbGxiYWNrcyBmb3IganNvbnAgcmVxdWVzdHNcbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBcImpzb24ganNvbnBcIiwgZnVuY3Rpb24oIHMsIG9yaWdpbmFsU2V0dGluZ3MsIGpxWEhSICkge1xuXG5cdHZhciBjYWxsYmFja05hbWUsIG92ZXJ3cml0dGVuLCByZXNwb25zZUNvbnRhaW5lcixcblx0XHRqc29uUHJvcCA9IHMuanNvbnAgIT09IGZhbHNlICYmICggcmpzb25wLnRlc3QoIHMudXJsICkgP1xuXHRcdFx0XCJ1cmxcIiA6XG5cdFx0XHR0eXBlb2Ygcy5kYXRhID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHRcdCggcy5jb250ZW50VHlwZSB8fCBcIlwiIClcblx0XHRcdFx0XHQuaW5kZXhPZiggXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiApID09PSAwICYmXG5cdFx0XHRcdHJqc29ucC50ZXN0KCBzLmRhdGEgKSAmJiBcImRhdGFcIlxuXHRcdCk7XG5cblx0Ly8gSGFuZGxlIGlmZiB0aGUgZXhwZWN0ZWQgZGF0YSB0eXBlIGlzIFwianNvbnBcIiBvciB3ZSBoYXZlIGEgcGFyYW1ldGVyIHRvIHNldFxuXHRpZiAoIGpzb25Qcm9wIHx8IHMuZGF0YVR5cGVzWyAwIF0gPT09IFwianNvbnBcIiApIHtcblxuXHRcdC8vIEdldCBjYWxsYmFjayBuYW1lLCByZW1lbWJlcmluZyBwcmVleGlzdGluZyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggaXRcblx0XHRjYWxsYmFja05hbWUgPSBzLmpzb25wQ2FsbGJhY2sgPSBpc0Z1bmN0aW9uKCBzLmpzb25wQ2FsbGJhY2sgKSA/XG5cdFx0XHRzLmpzb25wQ2FsbGJhY2soKSA6XG5cdFx0XHRzLmpzb25wQ2FsbGJhY2s7XG5cblx0XHQvLyBJbnNlcnQgY2FsbGJhY2sgaW50byB1cmwgb3IgZm9ybSBkYXRhXG5cdFx0aWYgKCBqc29uUHJvcCApIHtcblx0XHRcdHNbIGpzb25Qcm9wIF0gPSBzWyBqc29uUHJvcCBdLnJlcGxhY2UoIHJqc29ucCwgXCIkMVwiICsgY2FsbGJhY2tOYW1lICk7XG5cdFx0fSBlbHNlIGlmICggcy5qc29ucCAhPT0gZmFsc2UgKSB7XG5cdFx0XHRzLnVybCArPSAoIHJxdWVyeS50ZXN0KCBzLnVybCApID8gXCImXCIgOiBcIj9cIiApICsgcy5qc29ucCArIFwiPVwiICsgY2FsbGJhY2tOYW1lO1xuXHRcdH1cblxuXHRcdC8vIFVzZSBkYXRhIGNvbnZlcnRlciB0byByZXRyaWV2ZSBqc29uIGFmdGVyIHNjcmlwdCBleGVjdXRpb25cblx0XHRzLmNvbnZlcnRlcnNbIFwic2NyaXB0IGpzb25cIiBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoICFyZXNwb25zZUNvbnRhaW5lciApIHtcblx0XHRcdFx0alF1ZXJ5LmVycm9yKCBjYWxsYmFja05hbWUgKyBcIiB3YXMgbm90IGNhbGxlZFwiICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzcG9uc2VDb250YWluZXJbIDAgXTtcblx0XHR9O1xuXG5cdFx0Ly8gRm9yY2UganNvbiBkYXRhVHlwZVxuXHRcdHMuZGF0YVR5cGVzWyAwIF0gPSBcImpzb25cIjtcblxuXHRcdC8vIEluc3RhbGwgY2FsbGJhY2tcblx0XHRvdmVyd3JpdHRlbiA9IHdpbmRvd1sgY2FsbGJhY2tOYW1lIF07XG5cdFx0d2luZG93WyBjYWxsYmFja05hbWUgXSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmVzcG9uc2VDb250YWluZXIgPSBhcmd1bWVudHM7XG5cdFx0fTtcblxuXHRcdC8vIENsZWFuLXVwIGZ1bmN0aW9uIChmaXJlcyBhZnRlciBjb252ZXJ0ZXJzKVxuXHRcdGpxWEhSLmFsd2F5cyggZnVuY3Rpb24oKSB7XG5cblx0XHRcdC8vIElmIHByZXZpb3VzIHZhbHVlIGRpZG4ndCBleGlzdCAtIHJlbW92ZSBpdFxuXHRcdFx0aWYgKCBvdmVyd3JpdHRlbiA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRqUXVlcnkoIHdpbmRvdyApLnJlbW92ZVByb3AoIGNhbGxiYWNrTmFtZSApO1xuXG5cdFx0XHQvLyBPdGhlcndpc2UgcmVzdG9yZSBwcmVleGlzdGluZyB2YWx1ZVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2luZG93WyBjYWxsYmFja05hbWUgXSA9IG92ZXJ3cml0dGVuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTYXZlIGJhY2sgYXMgZnJlZVxuXHRcdFx0aWYgKCBzWyBjYWxsYmFja05hbWUgXSApIHtcblxuXHRcdFx0XHQvLyBNYWtlIHN1cmUgdGhhdCByZS11c2luZyB0aGUgb3B0aW9ucyBkb2Vzbid0IHNjcmV3IHRoaW5ncyBhcm91bmRcblx0XHRcdFx0cy5qc29ucENhbGxiYWNrID0gb3JpZ2luYWxTZXR0aW5ncy5qc29ucENhbGxiYWNrO1xuXG5cdFx0XHRcdC8vIFNhdmUgdGhlIGNhbGxiYWNrIG5hbWUgZm9yIGZ1dHVyZSB1c2Vcblx0XHRcdFx0b2xkQ2FsbGJhY2tzLnB1c2goIGNhbGxiYWNrTmFtZSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDYWxsIGlmIGl0IHdhcyBhIGZ1bmN0aW9uIGFuZCB3ZSBoYXZlIGEgcmVzcG9uc2Vcblx0XHRcdGlmICggcmVzcG9uc2VDb250YWluZXIgJiYgaXNGdW5jdGlvbiggb3ZlcndyaXR0ZW4gKSApIHtcblx0XHRcdFx0b3ZlcndyaXR0ZW4oIHJlc3BvbnNlQ29udGFpbmVyWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0cmVzcG9uc2VDb250YWluZXIgPSBvdmVyd3JpdHRlbiA9IHVuZGVmaW5lZDtcblx0XHR9ICk7XG5cblx0XHQvLyBEZWxlZ2F0ZSB0byBzY3JpcHRcblx0XHRyZXR1cm4gXCJzY3JpcHRcIjtcblx0fVxufSApO1xuXG5cblxuXG4vLyBTdXBwb3J0OiBTYWZhcmkgOCBvbmx5XG4vLyBJbiBTYWZhcmkgOCBkb2N1bWVudHMgY3JlYXRlZCB2aWEgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50XG4vLyBjb2xsYXBzZSBzaWJsaW5nIGZvcm1zOiB0aGUgc2Vjb25kIG9uZSBiZWNvbWVzIGEgY2hpbGQgb2YgdGhlIGZpcnN0IG9uZS5cbi8vIEJlY2F1c2Ugb2YgdGhhdCwgdGhpcyBzZWN1cml0eSBtZWFzdXJlIGhhcyB0byBiZSBkaXNhYmxlZCBpbiBTYWZhcmkgOC5cbi8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzczMzdcbnN1cHBvcnQuY3JlYXRlSFRNTERvY3VtZW50ID0gKCBmdW5jdGlvbigpIHtcblx0dmFyIGJvZHkgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIFwiXCIgKS5ib2R5O1xuXHRib2R5LmlubmVySFRNTCA9IFwiPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT5cIjtcblx0cmV0dXJuIGJvZHkuY2hpbGROb2Rlcy5sZW5ndGggPT09IDI7XG59ICkoKTtcblxuXG4vLyBBcmd1bWVudCBcImRhdGFcIiBzaG91bGQgYmUgc3RyaW5nIG9mIGh0bWxcbi8vIGNvbnRleHQgKG9wdGlvbmFsKTogSWYgc3BlY2lmaWVkLCB0aGUgZnJhZ21lbnQgd2lsbCBiZSBjcmVhdGVkIGluIHRoaXMgY29udGV4dCxcbi8vIGRlZmF1bHRzIHRvIGRvY3VtZW50XG4vLyBrZWVwU2NyaXB0cyAob3B0aW9uYWwpOiBJZiB0cnVlLCB3aWxsIGluY2x1ZGUgc2NyaXB0cyBwYXNzZWQgaW4gdGhlIGh0bWwgc3RyaW5nXG5qUXVlcnkucGFyc2VIVE1MID0gZnVuY3Rpb24oIGRhdGEsIGNvbnRleHQsIGtlZXBTY3JpcHRzICkge1xuXHRpZiAoIHR5cGVvZiBkYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdHJldHVybiBbXTtcblx0fVxuXHRpZiAoIHR5cGVvZiBjb250ZXh0ID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRrZWVwU2NyaXB0cyA9IGNvbnRleHQ7XG5cdFx0Y29udGV4dCA9IGZhbHNlO1xuXHR9XG5cblx0dmFyIGJhc2UsIHBhcnNlZCwgc2NyaXB0cztcblxuXHRpZiAoICFjb250ZXh0ICkge1xuXG5cdFx0Ly8gU3RvcCBzY3JpcHRzIG9yIGlubGluZSBldmVudCBoYW5kbGVycyBmcm9tIGJlaW5nIGV4ZWN1dGVkIGltbWVkaWF0ZWx5XG5cdFx0Ly8gYnkgdXNpbmcgZG9jdW1lbnQuaW1wbGVtZW50YXRpb25cblx0XHRpZiAoIHN1cHBvcnQuY3JlYXRlSFRNTERvY3VtZW50ICkge1xuXHRcdFx0Y29udGV4dCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCggXCJcIiApO1xuXG5cdFx0XHQvLyBTZXQgdGhlIGJhc2UgaHJlZiBmb3IgdGhlIGNyZWF0ZWQgZG9jdW1lbnRcblx0XHRcdC8vIHNvIGFueSBwYXJzZWQgZWxlbWVudHMgd2l0aCBVUkxzXG5cdFx0XHQvLyBhcmUgYmFzZWQgb24gdGhlIGRvY3VtZW50J3MgVVJMIChnaC0yOTY1KVxuXHRcdFx0YmFzZSA9IGNvbnRleHQuY3JlYXRlRWxlbWVudCggXCJiYXNlXCIgKTtcblx0XHRcdGJhc2UuaHJlZiA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7XG5cdFx0XHRjb250ZXh0LmhlYWQuYXBwZW5kQ2hpbGQoIGJhc2UgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29udGV4dCA9IGRvY3VtZW50O1xuXHRcdH1cblx0fVxuXG5cdHBhcnNlZCA9IHJzaW5nbGVUYWcuZXhlYyggZGF0YSApO1xuXHRzY3JpcHRzID0gIWtlZXBTY3JpcHRzICYmIFtdO1xuXG5cdC8vIFNpbmdsZSB0YWdcblx0aWYgKCBwYXJzZWQgKSB7XG5cdFx0cmV0dXJuIFsgY29udGV4dC5jcmVhdGVFbGVtZW50KCBwYXJzZWRbIDEgXSApIF07XG5cdH1cblxuXHRwYXJzZWQgPSBidWlsZEZyYWdtZW50KCBbIGRhdGEgXSwgY29udGV4dCwgc2NyaXB0cyApO1xuXG5cdGlmICggc2NyaXB0cyAmJiBzY3JpcHRzLmxlbmd0aCApIHtcblx0XHRqUXVlcnkoIHNjcmlwdHMgKS5yZW1vdmUoKTtcblx0fVxuXG5cdHJldHVybiBqUXVlcnkubWVyZ2UoIFtdLCBwYXJzZWQuY2hpbGROb2RlcyApO1xufTtcblxuXG4vKipcbiAqIExvYWQgYSB1cmwgaW50byBhIHBhZ2VcbiAqL1xualF1ZXJ5LmZuLmxvYWQgPSBmdW5jdGlvbiggdXJsLCBwYXJhbXMsIGNhbGxiYWNrICkge1xuXHR2YXIgc2VsZWN0b3IsIHR5cGUsIHJlc3BvbnNlLFxuXHRcdHNlbGYgPSB0aGlzLFxuXHRcdG9mZiA9IHVybC5pbmRleE9mKCBcIiBcIiApO1xuXG5cdGlmICggb2ZmID4gLTEgKSB7XG5cdFx0c2VsZWN0b3IgPSBzdHJpcEFuZENvbGxhcHNlKCB1cmwuc2xpY2UoIG9mZiApICk7XG5cdFx0dXJsID0gdXJsLnNsaWNlKCAwLCBvZmYgKTtcblx0fVxuXG5cdC8vIElmIGl0J3MgYSBmdW5jdGlvblxuXHRpZiAoIGlzRnVuY3Rpb24oIHBhcmFtcyApICkge1xuXG5cdFx0Ly8gV2UgYXNzdW1lIHRoYXQgaXQncyB0aGUgY2FsbGJhY2tcblx0XHRjYWxsYmFjayA9IHBhcmFtcztcblx0XHRwYXJhbXMgPSB1bmRlZmluZWQ7XG5cblx0Ly8gT3RoZXJ3aXNlLCBidWlsZCBhIHBhcmFtIHN0cmluZ1xuXHR9IGVsc2UgaWYgKCBwYXJhbXMgJiYgdHlwZW9mIHBhcmFtcyA9PT0gXCJvYmplY3RcIiApIHtcblx0XHR0eXBlID0gXCJQT1NUXCI7XG5cdH1cblxuXHQvLyBJZiB3ZSBoYXZlIGVsZW1lbnRzIHRvIG1vZGlmeSwgbWFrZSB0aGUgcmVxdWVzdFxuXHRpZiAoIHNlbGYubGVuZ3RoID4gMCApIHtcblx0XHRqUXVlcnkuYWpheCgge1xuXHRcdFx0dXJsOiB1cmwsXG5cblx0XHRcdC8vIElmIFwidHlwZVwiIHZhcmlhYmxlIGlzIHVuZGVmaW5lZCwgdGhlbiBcIkdFVFwiIG1ldGhvZCB3aWxsIGJlIHVzZWQuXG5cdFx0XHQvLyBNYWtlIHZhbHVlIG9mIHRoaXMgZmllbGQgZXhwbGljaXQgc2luY2Vcblx0XHRcdC8vIHVzZXIgY2FuIG92ZXJyaWRlIGl0IHRocm91Z2ggYWpheFNldHVwIG1ldGhvZFxuXHRcdFx0dHlwZTogdHlwZSB8fCBcIkdFVFwiLFxuXHRcdFx0ZGF0YVR5cGU6IFwiaHRtbFwiLFxuXHRcdFx0ZGF0YTogcGFyYW1zXG5cdFx0fSApLmRvbmUoIGZ1bmN0aW9uKCByZXNwb25zZVRleHQgKSB7XG5cblx0XHRcdC8vIFNhdmUgcmVzcG9uc2UgZm9yIHVzZSBpbiBjb21wbGV0ZSBjYWxsYmFja1xuXHRcdFx0cmVzcG9uc2UgPSBhcmd1bWVudHM7XG5cblx0XHRcdHNlbGYuaHRtbCggc2VsZWN0b3IgP1xuXG5cdFx0XHRcdC8vIElmIGEgc2VsZWN0b3Igd2FzIHNwZWNpZmllZCwgbG9jYXRlIHRoZSByaWdodCBlbGVtZW50cyBpbiBhIGR1bW15IGRpdlxuXHRcdFx0XHQvLyBFeGNsdWRlIHNjcmlwdHMgdG8gYXZvaWQgSUUgJ1Blcm1pc3Npb24gRGVuaWVkJyBlcnJvcnNcblx0XHRcdFx0alF1ZXJ5KCBcIjxkaXY+XCIgKS5hcHBlbmQoIGpRdWVyeS5wYXJzZUhUTUwoIHJlc3BvbnNlVGV4dCApICkuZmluZCggc2VsZWN0b3IgKSA6XG5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlIHVzZSB0aGUgZnVsbCByZXN1bHRcblx0XHRcdFx0cmVzcG9uc2VUZXh0ICk7XG5cblx0XHQvLyBJZiB0aGUgcmVxdWVzdCBzdWNjZWVkcywgdGhpcyBmdW5jdGlvbiBnZXRzIFwiZGF0YVwiLCBcInN0YXR1c1wiLCBcImpxWEhSXCJcblx0XHQvLyBidXQgdGhleSBhcmUgaWdub3JlZCBiZWNhdXNlIHJlc3BvbnNlIHdhcyBzZXQgYWJvdmUuXG5cdFx0Ly8gSWYgaXQgZmFpbHMsIHRoaXMgZnVuY3Rpb24gZ2V0cyBcImpxWEhSXCIsIFwic3RhdHVzXCIsIFwiZXJyb3JcIlxuXHRcdH0gKS5hbHdheXMoIGNhbGxiYWNrICYmIGZ1bmN0aW9uKCBqcVhIUiwgc3RhdHVzICkge1xuXHRcdFx0c2VsZi5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Y2FsbGJhY2suYXBwbHkoIHRoaXMsIHJlc3BvbnNlIHx8IFsganFYSFIucmVzcG9uc2VUZXh0LCBzdGF0dXMsIGpxWEhSIF0gKTtcblx0XHRcdH0gKTtcblx0XHR9ICk7XG5cdH1cblxuXHRyZXR1cm4gdGhpcztcbn07XG5cblxuXG5cbmpRdWVyeS5leHByLnBzZXVkb3MuYW5pbWF0ZWQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuIGpRdWVyeS5ncmVwKCBqUXVlcnkudGltZXJzLCBmdW5jdGlvbiggZm4gKSB7XG5cdFx0cmV0dXJuIGVsZW0gPT09IGZuLmVsZW07XG5cdH0gKS5sZW5ndGg7XG59O1xuXG5cblxuXG5qUXVlcnkub2Zmc2V0ID0ge1xuXHRzZXRPZmZzZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBpICkge1xuXHRcdHZhciBjdXJQb3NpdGlvbiwgY3VyTGVmdCwgY3VyQ1NTVG9wLCBjdXJUb3AsIGN1ck9mZnNldCwgY3VyQ1NTTGVmdCwgY2FsY3VsYXRlUG9zaXRpb24sXG5cdFx0XHRwb3NpdGlvbiA9IGpRdWVyeS5jc3MoIGVsZW0sIFwicG9zaXRpb25cIiApLFxuXHRcdFx0Y3VyRWxlbSA9IGpRdWVyeSggZWxlbSApLFxuXHRcdFx0cHJvcHMgPSB7fTtcblxuXHRcdC8vIFNldCBwb3NpdGlvbiBmaXJzdCwgaW4tY2FzZSB0b3AvbGVmdCBhcmUgc2V0IGV2ZW4gb24gc3RhdGljIGVsZW1cblx0XHRpZiAoIHBvc2l0aW9uID09PSBcInN0YXRpY1wiICkge1xuXHRcdFx0ZWxlbS5zdHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcblx0XHR9XG5cblx0XHRjdXJPZmZzZXQgPSBjdXJFbGVtLm9mZnNldCgpO1xuXHRcdGN1ckNTU1RvcCA9IGpRdWVyeS5jc3MoIGVsZW0sIFwidG9wXCIgKTtcblx0XHRjdXJDU1NMZWZ0ID0galF1ZXJ5LmNzcyggZWxlbSwgXCJsZWZ0XCIgKTtcblx0XHRjYWxjdWxhdGVQb3NpdGlvbiA9ICggcG9zaXRpb24gPT09IFwiYWJzb2x1dGVcIiB8fCBwb3NpdGlvbiA9PT0gXCJmaXhlZFwiICkgJiZcblx0XHRcdCggY3VyQ1NTVG9wICsgY3VyQ1NTTGVmdCApLmluZGV4T2YoIFwiYXV0b1wiICkgPiAtMTtcblxuXHRcdC8vIE5lZWQgdG8gYmUgYWJsZSB0byBjYWxjdWxhdGUgcG9zaXRpb24gaWYgZWl0aGVyXG5cdFx0Ly8gdG9wIG9yIGxlZnQgaXMgYXV0byBhbmQgcG9zaXRpb24gaXMgZWl0aGVyIGFic29sdXRlIG9yIGZpeGVkXG5cdFx0aWYgKCBjYWxjdWxhdGVQb3NpdGlvbiApIHtcblx0XHRcdGN1clBvc2l0aW9uID0gY3VyRWxlbS5wb3NpdGlvbigpO1xuXHRcdFx0Y3VyVG9wID0gY3VyUG9zaXRpb24udG9wO1xuXHRcdFx0Y3VyTGVmdCA9IGN1clBvc2l0aW9uLmxlZnQ7XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y3VyVG9wID0gcGFyc2VGbG9hdCggY3VyQ1NTVG9wICkgfHwgMDtcblx0XHRcdGN1ckxlZnQgPSBwYXJzZUZsb2F0KCBjdXJDU1NMZWZ0ICkgfHwgMDtcblx0XHR9XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIG9wdGlvbnMgKSApIHtcblxuXHRcdFx0Ly8gVXNlIGpRdWVyeS5leHRlbmQgaGVyZSB0byBhbGxvdyBtb2RpZmljYXRpb24gb2YgY29vcmRpbmF0ZXMgYXJndW1lbnQgKGdoLTE4NDgpXG5cdFx0XHRvcHRpb25zID0gb3B0aW9ucy5jYWxsKCBlbGVtLCBpLCBqUXVlcnkuZXh0ZW5kKCB7fSwgY3VyT2Zmc2V0ICkgKTtcblx0XHR9XG5cblx0XHRpZiAoIG9wdGlvbnMudG9wICE9IG51bGwgKSB7XG5cdFx0XHRwcm9wcy50b3AgPSAoIG9wdGlvbnMudG9wIC0gY3VyT2Zmc2V0LnRvcCApICsgY3VyVG9wO1xuXHRcdH1cblx0XHRpZiAoIG9wdGlvbnMubGVmdCAhPSBudWxsICkge1xuXHRcdFx0cHJvcHMubGVmdCA9ICggb3B0aW9ucy5sZWZ0IC0gY3VyT2Zmc2V0LmxlZnQgKSArIGN1ckxlZnQ7XG5cdFx0fVxuXG5cdFx0aWYgKCBcInVzaW5nXCIgaW4gb3B0aW9ucyApIHtcblx0XHRcdG9wdGlvbnMudXNpbmcuY2FsbCggZWxlbSwgcHJvcHMgKTtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJFbGVtLmNzcyggcHJvcHMgKTtcblx0XHR9XG5cdH1cbn07XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblxuXHQvLyBvZmZzZXQoKSByZWxhdGVzIGFuIGVsZW1lbnQncyBib3JkZXIgYm94IHRvIHRoZSBkb2N1bWVudCBvcmlnaW5cblx0b2Zmc2V0OiBmdW5jdGlvbiggb3B0aW9ucyApIHtcblxuXHRcdC8vIFByZXNlcnZlIGNoYWluaW5nIGZvciBzZXR0ZXJcblx0XHRpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gb3B0aW9ucyA9PT0gdW5kZWZpbmVkID9cblx0XHRcdFx0dGhpcyA6XG5cdFx0XHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5Lm9mZnNldC5zZXRPZmZzZXQoIHRoaXMsIG9wdGlvbnMsIGkgKTtcblx0XHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHZhciByZWN0LCB3aW4sXG5cdFx0XHRlbGVtID0gdGhpc1sgMCBdO1xuXG5cdFx0aWYgKCAhZWxlbSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBSZXR1cm4gemVyb3MgZm9yIGRpc2Nvbm5lY3RlZCBhbmQgaGlkZGVuIChkaXNwbGF5OiBub25lKSBlbGVtZW50cyAoZ2gtMjMxMClcblx0XHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0XHQvLyBSdW5uaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBvbiBhXG5cdFx0Ly8gZGlzY29ubmVjdGVkIG5vZGUgaW4gSUUgdGhyb3dzIGFuIGVycm9yXG5cdFx0aWYgKCAhZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCApIHtcblx0XHRcdHJldHVybiB7IHRvcDogMCwgbGVmdDogMCB9O1xuXHRcdH1cblxuXHRcdC8vIEdldCBkb2N1bWVudC1yZWxhdGl2ZSBwb3NpdGlvbiBieSBhZGRpbmcgdmlld3BvcnQgc2Nyb2xsIHRvIHZpZXdwb3J0LXJlbGF0aXZlIGdCQ1Jcblx0XHRyZWN0ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0XHR3aW4gPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRvcDogcmVjdC50b3AgKyB3aW4ucGFnZVlPZmZzZXQsXG5cdFx0XHRsZWZ0OiByZWN0LmxlZnQgKyB3aW4ucGFnZVhPZmZzZXRcblx0XHR9O1xuXHR9LFxuXG5cdC8vIHBvc2l0aW9uKCkgcmVsYXRlcyBhbiBlbGVtZW50J3MgbWFyZ2luIGJveCB0byBpdHMgb2Zmc2V0IHBhcmVudCdzIHBhZGRpbmcgYm94XG5cdC8vIFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIGJlaGF2aW9yIG9mIENTUyBhYnNvbHV0ZSBwb3NpdGlvbmluZ1xuXHRwb3NpdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0aWYgKCAhdGhpc1sgMCBdICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhciBvZmZzZXRQYXJlbnQsIG9mZnNldCwgZG9jLFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXSxcblx0XHRcdHBhcmVudE9mZnNldCA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07XG5cblx0XHQvLyBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyBhcmUgb2Zmc2V0IGZyb20gdGhlIHZpZXdwb3J0LCB3aGljaCBpdHNlbGYgYWx3YXlzIGhhcyB6ZXJvIG9mZnNldFxuXHRcdGlmICggalF1ZXJ5LmNzcyggZWxlbSwgXCJwb3NpdGlvblwiICkgPT09IFwiZml4ZWRcIiApIHtcblxuXHRcdFx0Ly8gQXNzdW1lIHBvc2l0aW9uOmZpeGVkIGltcGxpZXMgYXZhaWxhYmlsaXR5IG9mIGdldEJvdW5kaW5nQ2xpZW50UmVjdFxuXHRcdFx0b2Zmc2V0ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRvZmZzZXQgPSB0aGlzLm9mZnNldCgpO1xuXG5cdFx0XHQvLyBBY2NvdW50IGZvciB0aGUgKnJlYWwqIG9mZnNldCBwYXJlbnQsIHdoaWNoIGNhbiBiZSB0aGUgZG9jdW1lbnQgb3IgaXRzIHJvb3QgZWxlbWVudFxuXHRcdFx0Ly8gd2hlbiBhIHN0YXRpY2FsbHkgcG9zaXRpb25lZCBlbGVtZW50IGlzIGlkZW50aWZpZWRcblx0XHRcdGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudDtcblx0XHRcdG9mZnNldFBhcmVudCA9IGVsZW0ub2Zmc2V0UGFyZW50IHx8IGRvYy5kb2N1bWVudEVsZW1lbnQ7XG5cdFx0XHR3aGlsZSAoIG9mZnNldFBhcmVudCAmJlxuXHRcdFx0XHQoIG9mZnNldFBhcmVudCA9PT0gZG9jLmJvZHkgfHwgb2Zmc2V0UGFyZW50ID09PSBkb2MuZG9jdW1lbnRFbGVtZW50ICkgJiZcblx0XHRcdFx0alF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcInBvc2l0aW9uXCIgKSA9PT0gXCJzdGF0aWNcIiApIHtcblxuXHRcdFx0XHRvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQucGFyZW50Tm9kZTtcblx0XHRcdH1cblx0XHRcdGlmICggb2Zmc2V0UGFyZW50ICYmIG9mZnNldFBhcmVudCAhPT0gZWxlbSAmJiBvZmZzZXRQYXJlbnQubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHRcdFx0Ly8gSW5jb3Jwb3JhdGUgYm9yZGVycyBpbnRvIGl0cyBvZmZzZXQsIHNpbmNlIHRoZXkgYXJlIG91dHNpZGUgaXRzIGNvbnRlbnQgb3JpZ2luXG5cdFx0XHRcdHBhcmVudE9mZnNldCA9IGpRdWVyeSggb2Zmc2V0UGFyZW50ICkub2Zmc2V0KCk7XG5cdFx0XHRcdHBhcmVudE9mZnNldC50b3AgKz0galF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcImJvcmRlclRvcFdpZHRoXCIsIHRydWUgKTtcblx0XHRcdFx0cGFyZW50T2Zmc2V0LmxlZnQgKz0galF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcImJvcmRlckxlZnRXaWR0aFwiLCB0cnVlICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gU3VidHJhY3QgcGFyZW50IG9mZnNldHMgYW5kIGVsZW1lbnQgbWFyZ2luc1xuXHRcdHJldHVybiB7XG5cdFx0XHR0b3A6IG9mZnNldC50b3AgLSBwYXJlbnRPZmZzZXQudG9wIC0galF1ZXJ5LmNzcyggZWxlbSwgXCJtYXJnaW5Ub3BcIiwgdHJ1ZSApLFxuXHRcdFx0bGVmdDogb2Zmc2V0LmxlZnQgLSBwYXJlbnRPZmZzZXQubGVmdCAtIGpRdWVyeS5jc3MoIGVsZW0sIFwibWFyZ2luTGVmdFwiLCB0cnVlIClcblx0XHR9O1xuXHR9LFxuXG5cdC8vIFRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGRvY3VtZW50RWxlbWVudCBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOlxuXHQvLyAxKSBGb3IgdGhlIGVsZW1lbnQgaW5zaWRlIHRoZSBpZnJhbWUgd2l0aG91dCBvZmZzZXRQYXJlbnQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuXG5cdC8vICAgIGRvY3VtZW50RWxlbWVudCBvZiB0aGUgcGFyZW50IHdpbmRvd1xuXHQvLyAyKSBGb3IgdGhlIGhpZGRlbiBvciBkZXRhY2hlZCBlbGVtZW50XG5cdC8vIDMpIEZvciBib2R5IG9yIGh0bWwgZWxlbWVudCwgaS5lLiBpbiBjYXNlIG9mIHRoZSBodG1sIG5vZGUgLSBpdCB3aWxsIHJldHVybiBpdHNlbGZcblx0Ly9cblx0Ly8gYnV0IHRob3NlIGV4Y2VwdGlvbnMgd2VyZSBuZXZlciBwcmVzZW50ZWQgYXMgYSByZWFsIGxpZmUgdXNlLWNhc2VzXG5cdC8vIGFuZCBtaWdodCBiZSBjb25zaWRlcmVkIGFzIG1vcmUgcHJlZmVyYWJsZSByZXN1bHRzLlxuXHQvL1xuXHQvLyBUaGlzIGxvZ2ljLCBob3dldmVyLCBpcyBub3QgZ3VhcmFudGVlZCBhbmQgY2FuIGNoYW5nZSBhdCBhbnkgcG9pbnQgaW4gdGhlIGZ1dHVyZVxuXHRvZmZzZXRQYXJlbnQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQ7XG5cblx0XHRcdHdoaWxlICggb2Zmc2V0UGFyZW50ICYmIGpRdWVyeS5jc3MoIG9mZnNldFBhcmVudCwgXCJwb3NpdGlvblwiICkgPT09IFwic3RhdGljXCIgKSB7XG5cdFx0XHRcdG9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudC5vZmZzZXRQYXJlbnQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBvZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnRFbGVtZW50O1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG4vLyBDcmVhdGUgc2Nyb2xsTGVmdCBhbmQgc2Nyb2xsVG9wIG1ldGhvZHNcbmpRdWVyeS5lYWNoKCB7IHNjcm9sbExlZnQ6IFwicGFnZVhPZmZzZXRcIiwgc2Nyb2xsVG9wOiBcInBhZ2VZT2Zmc2V0XCIgfSwgZnVuY3Rpb24oIG1ldGhvZCwgcHJvcCApIHtcblx0dmFyIHRvcCA9IFwicGFnZVlPZmZzZXRcIiA9PT0gcHJvcDtcblxuXHRqUXVlcnkuZm5bIG1ldGhvZCBdID0gZnVuY3Rpb24oIHZhbCApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgbWV0aG9kLCB2YWwgKSB7XG5cblx0XHRcdC8vIENvYWxlc2NlIGRvY3VtZW50cyBhbmQgd2luZG93c1xuXHRcdFx0dmFyIHdpbjtcblx0XHRcdGlmICggaXNXaW5kb3coIGVsZW0gKSApIHtcblx0XHRcdFx0d2luID0gZWxlbTtcblx0XHRcdH0gZWxzZSBpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdHdpbiA9IGVsZW0uZGVmYXVsdFZpZXc7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggdmFsID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdHJldHVybiB3aW4gPyB3aW5bIHByb3AgXSA6IGVsZW1bIG1ldGhvZCBdO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHdpbiApIHtcblx0XHRcdFx0d2luLnNjcm9sbFRvKFxuXHRcdFx0XHRcdCF0b3AgPyB2YWwgOiB3aW4ucGFnZVhPZmZzZXQsXG5cdFx0XHRcdFx0dG9wID8gdmFsIDogd2luLnBhZ2VZT2Zmc2V0XG5cdFx0XHRcdCk7XG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVsZW1bIG1ldGhvZCBdID0gdmFsO1xuXHRcdFx0fVxuXHRcdH0sIG1ldGhvZCwgdmFsLCBhcmd1bWVudHMubGVuZ3RoICk7XG5cdH07XG59ICk7XG5cbi8vIFN1cHBvcnQ6IFNhZmFyaSA8PTcgLSA5LjEsIENocm9tZSA8PTM3IC0gNDlcbi8vIEFkZCB0aGUgdG9wL2xlZnQgY3NzSG9va3MgdXNpbmcgalF1ZXJ5LmZuLnBvc2l0aW9uXG4vLyBXZWJraXQgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODRcbi8vIEJsaW5rIGJ1ZzogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NTg5MzQ3XG4vLyBnZXRDb21wdXRlZFN0eWxlIHJldHVybnMgcGVyY2VudCB3aGVuIHNwZWNpZmllZCBmb3IgdG9wL2xlZnQvYm90dG9tL3JpZ2h0O1xuLy8gcmF0aGVyIHRoYW4gbWFrZSB0aGUgY3NzIG1vZHVsZSBkZXBlbmQgb24gdGhlIG9mZnNldCBtb2R1bGUsIGp1c3QgY2hlY2sgZm9yIGl0IGhlcmVcbmpRdWVyeS5lYWNoKCBbIFwidG9wXCIsIFwibGVmdFwiIF0sIGZ1bmN0aW9uKCBfaSwgcHJvcCApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBwcm9wIF0gPSBhZGRHZXRIb29rSWYoIHN1cHBvcnQucGl4ZWxQb3NpdGlvbixcblx0XHRmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdFx0XHRjb21wdXRlZCA9IGN1ckNTUyggZWxlbSwgcHJvcCApO1xuXG5cdFx0XHRcdC8vIElmIGN1ckNTUyByZXR1cm5zIHBlcmNlbnRhZ2UsIGZhbGxiYWNrIHRvIG9mZnNldFxuXHRcdFx0XHRyZXR1cm4gcm51bW5vbnB4LnRlc3QoIGNvbXB1dGVkICkgP1xuXHRcdFx0XHRcdGpRdWVyeSggZWxlbSApLnBvc2l0aW9uKClbIHByb3AgXSArIFwicHhcIiA6XG5cdFx0XHRcdFx0Y29tcHV0ZWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHQpO1xufSApO1xuXG5cbi8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCwgaGVpZ2h0LCB3aWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgSGVpZ2h0OiBcImhlaWdodFwiLCBXaWR0aDogXCJ3aWR0aFwiIH0sIGZ1bmN0aW9uKCBuYW1lLCB0eXBlICkge1xuXHRqUXVlcnkuZWFjaCgge1xuXHRcdHBhZGRpbmc6IFwiaW5uZXJcIiArIG5hbWUsXG5cdFx0Y29udGVudDogdHlwZSxcblx0XHRcIlwiOiBcIm91dGVyXCIgKyBuYW1lXG5cdH0sIGZ1bmN0aW9uKCBkZWZhdWx0RXh0cmEsIGZ1bmNOYW1lICkge1xuXG5cdFx0Ly8gTWFyZ2luIGlzIG9ubHkgZm9yIG91dGVySGVpZ2h0LCBvdXRlcldpZHRoXG5cdFx0alF1ZXJ5LmZuWyBmdW5jTmFtZSBdID0gZnVuY3Rpb24oIG1hcmdpbiwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgY2hhaW5hYmxlID0gYXJndW1lbnRzLmxlbmd0aCAmJiAoIGRlZmF1bHRFeHRyYSB8fCB0eXBlb2YgbWFyZ2luICE9PSBcImJvb2xlYW5cIiApLFxuXHRcdFx0XHRleHRyYSA9IGRlZmF1bHRFeHRyYSB8fCAoIG1hcmdpbiA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gdHJ1ZSA/IFwibWFyZ2luXCIgOiBcImJvcmRlclwiICk7XG5cblx0XHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIGRvYztcblxuXHRcdFx0XHRpZiAoIGlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdFx0XHQvLyAkKCB3aW5kb3cgKS5vdXRlcldpZHRoL0hlaWdodCByZXR1cm4gdy9oIGluY2x1ZGluZyBzY3JvbGxiYXJzIChnaC0xNzI5KVxuXHRcdFx0XHRcdHJldHVybiBmdW5jTmFtZS5pbmRleE9mKCBcIm91dGVyXCIgKSA9PT0gMCA/XG5cdFx0XHRcdFx0XHRlbGVtWyBcImlubmVyXCIgKyBuYW1lIF0gOlxuXHRcdFx0XHRcdFx0ZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbIFwiY2xpZW50XCIgKyBuYW1lIF07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBHZXQgZG9jdW1lbnQgd2lkdGggb3IgaGVpZ2h0XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRkb2MgPSBlbGVtLmRvY3VtZW50RWxlbWVudDtcblxuXHRcdFx0XHRcdC8vIEVpdGhlciBzY3JvbGxbV2lkdGgvSGVpZ2h0XSBvciBvZmZzZXRbV2lkdGgvSGVpZ2h0XSBvciBjbGllbnRbV2lkdGgvSGVpZ2h0XSxcblx0XHRcdFx0XHQvLyB3aGljaGV2ZXIgaXMgZ3JlYXRlc3Rcblx0XHRcdFx0XHRyZXR1cm4gTWF0aC5tYXgoXG5cdFx0XHRcdFx0XHRlbGVtLmJvZHlbIFwic2Nyb2xsXCIgKyBuYW1lIF0sIGRvY1sgXCJzY3JvbGxcIiArIG5hbWUgXSxcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJvZmZzZXRcIiArIG5hbWUgXSwgZG9jWyBcIm9mZnNldFwiICsgbmFtZSBdLFxuXHRcdFx0XHRcdFx0ZG9jWyBcImNsaWVudFwiICsgbmFtZSBdXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID9cblxuXHRcdFx0XHRcdC8vIEdldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQsIHJlcXVlc3RpbmcgYnV0IG5vdCBmb3JjaW5nIHBhcnNlRmxvYXRcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCBleHRyYSApIDpcblxuXHRcdFx0XHRcdC8vIFNldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnRcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHR5cGUsIHZhbHVlLCBleHRyYSApO1xuXHRcdFx0fSwgdHlwZSwgY2hhaW5hYmxlID8gbWFyZ2luIDogdW5kZWZpbmVkLCBjaGFpbmFibGUgKTtcblx0XHR9O1xuXHR9ICk7XG59ICk7XG5cblxualF1ZXJ5LmVhY2goIFtcblx0XCJhamF4U3RhcnRcIixcblx0XCJhamF4U3RvcFwiLFxuXHRcImFqYXhDb21wbGV0ZVwiLFxuXHRcImFqYXhFcnJvclwiLFxuXHRcImFqYXhTdWNjZXNzXCIsXG5cdFwiYWpheFNlbmRcIlxuXSwgZnVuY3Rpb24oIF9pLCB0eXBlICkge1xuXHRqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZSwgZm4gKTtcblx0fTtcbn0gKTtcblxuXG5cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdGJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBudWxsLCBkYXRhLCBmbiApO1xuXHR9LFxuXHR1bmJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub2ZmKCB0eXBlcywgbnVsbCwgZm4gKTtcblx0fSxcblxuXHRkZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0dW5kZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZm4gKSB7XG5cblx0XHQvLyAoIG5hbWVzcGFjZSApIG9yICggc2VsZWN0b3IsIHR5cGVzIFssIGZuXSApXG5cdFx0cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDEgP1xuXHRcdFx0dGhpcy5vZmYoIHNlbGVjdG9yLCBcIioqXCIgKSA6XG5cdFx0XHR0aGlzLm9mZiggdHlwZXMsIHNlbGVjdG9yIHx8IFwiKipcIiwgZm4gKTtcblx0fSxcblxuXHRob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7XG5cdFx0cmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2ZSggZm5PdXQgfHwgZm5PdmVyICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goXG5cdCggXCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBcIiArXG5cdFwibW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgXCIgK1xuXHRcImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnVcIiApLnNwbGl0KCBcIiBcIiApLFxuXHRmdW5jdGlvbiggX2ksIG5hbWUgKSB7XG5cblx0XHQvLyBIYW5kbGUgZXZlbnQgYmluZGluZ1xuXHRcdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIGRhdGEsIGZuICkge1xuXHRcdFx0cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAwID9cblx0XHRcdFx0dGhpcy5vbiggbmFtZSwgbnVsbCwgZGF0YSwgZm4gKSA6XG5cdFx0XHRcdHRoaXMudHJpZ2dlciggbmFtZSApO1xuXHRcdH07XG5cdH1cbik7XG5cblxuXG5cbi8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seVxuLy8gTWFrZSBzdXJlIHdlIHRyaW0gQk9NIGFuZCBOQlNQXG4vLyBSZXF1aXJlIHRoYXQgdGhlIFwid2hpdGVzcGFjZSBydW5cIiBzdGFydHMgZnJvbSBhIG5vbi13aGl0ZXNwYWNlXG4vLyB0byBhdm9pZCBPKE5eMikgYmVoYXZpb3Igd2hlbiB0aGUgZW5naW5lIHdvdWxkIHRyeSBtYXRjaGluZyBcIlxccyskXCIgYXQgZWFjaCBzcGFjZSBwb3NpdGlvbi5cbnZhciBydHJpbSA9IC9eW1xcc1xcdUZFRkZcXHhBMF0rfChbXlxcc1xcdUZFRkZcXHhBMF0pW1xcc1xcdUZFRkZcXHhBMF0rJC9nO1xuXG4vLyBCaW5kIGEgZnVuY3Rpb24gdG8gYSBjb250ZXh0LCBvcHRpb25hbGx5IHBhcnRpYWxseSBhcHBseWluZyBhbnlcbi8vIGFyZ3VtZW50cy5cbi8vIGpRdWVyeS5wcm94eSBpcyBkZXByZWNhdGVkIHRvIHByb21vdGUgc3RhbmRhcmRzIChzcGVjaWZpY2FsbHkgRnVuY3Rpb24jYmluZClcbi8vIEhvd2V2ZXIsIGl0IGlzIG5vdCBzbGF0ZWQgZm9yIHJlbW92YWwgYW55IHRpbWUgc29vblxualF1ZXJ5LnByb3h5ID0gZnVuY3Rpb24oIGZuLCBjb250ZXh0ICkge1xuXHR2YXIgdG1wLCBhcmdzLCBwcm94eTtcblxuXHRpZiAoIHR5cGVvZiBjb250ZXh0ID09PSBcInN0cmluZ1wiICkge1xuXHRcdHRtcCA9IGZuWyBjb250ZXh0IF07XG5cdFx0Y29udGV4dCA9IGZuO1xuXHRcdGZuID0gdG1wO1xuXHR9XG5cblx0Ly8gUXVpY2sgY2hlY2sgdG8gZGV0ZXJtaW5lIGlmIHRhcmdldCBpcyBjYWxsYWJsZSwgaW4gdGhlIHNwZWNcblx0Ly8gdGhpcyB0aHJvd3MgYSBUeXBlRXJyb3IsIGJ1dCB3ZSB3aWxsIGp1c3QgcmV0dXJuIHVuZGVmaW5lZC5cblx0aWYgKCAhaXNGdW5jdGlvbiggZm4gKSApIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Ly8gU2ltdWxhdGVkIGJpbmRcblx0YXJncyA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cywgMiApO1xuXHRwcm94eSA9IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBmbi5hcHBseSggY29udGV4dCB8fCB0aGlzLCBhcmdzLmNvbmNhdCggc2xpY2UuY2FsbCggYXJndW1lbnRzICkgKSApO1xuXHR9O1xuXG5cdC8vIFNldCB0aGUgZ3VpZCBvZiB1bmlxdWUgaGFuZGxlciB0byB0aGUgc2FtZSBvZiBvcmlnaW5hbCBoYW5kbGVyLCBzbyBpdCBjYW4gYmUgcmVtb3ZlZFxuXHRwcm94eS5ndWlkID0gZm4uZ3VpZCA9IGZuLmd1aWQgfHwgalF1ZXJ5Lmd1aWQrKztcblxuXHRyZXR1cm4gcHJveHk7XG59O1xuXG5qUXVlcnkuaG9sZFJlYWR5ID0gZnVuY3Rpb24oIGhvbGQgKSB7XG5cdGlmICggaG9sZCApIHtcblx0XHRqUXVlcnkucmVhZHlXYWl0Kys7XG5cdH0gZWxzZSB7XG5cdFx0alF1ZXJ5LnJlYWR5KCB0cnVlICk7XG5cdH1cbn07XG5qUXVlcnkuaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5qUXVlcnkucGFyc2VKU09OID0gSlNPTi5wYXJzZTtcbmpRdWVyeS5ub2RlTmFtZSA9IG5vZGVOYW1lO1xualF1ZXJ5LmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xualF1ZXJ5LmlzV2luZG93ID0gaXNXaW5kb3c7XG5qUXVlcnkuY2FtZWxDYXNlID0gY2FtZWxDYXNlO1xualF1ZXJ5LnR5cGUgPSB0b1R5cGU7XG5cbmpRdWVyeS5ub3cgPSBEYXRlLm5vdztcblxualF1ZXJ5LmlzTnVtZXJpYyA9IGZ1bmN0aW9uKCBvYmogKSB7XG5cblx0Ly8gQXMgb2YgalF1ZXJ5IDMuMCwgaXNOdW1lcmljIGlzIGxpbWl0ZWQgdG9cblx0Ly8gc3RyaW5ncyBhbmQgbnVtYmVycyAocHJpbWl0aXZlcyBvciBvYmplY3RzKVxuXHQvLyB0aGF0IGNhbiBiZSBjb2VyY2VkIHRvIGZpbml0ZSBudW1iZXJzIChnaC0yNjYyKVxuXHR2YXIgdHlwZSA9IGpRdWVyeS50eXBlKCBvYmogKTtcblx0cmV0dXJuICggdHlwZSA9PT0gXCJudW1iZXJcIiB8fCB0eXBlID09PSBcInN0cmluZ1wiICkgJiZcblxuXHRcdC8vIHBhcnNlRmxvYXQgTmFOcyBudW1lcmljLWNhc3QgZmFsc2UgcG9zaXRpdmVzIChcIlwiKVxuXHRcdC8vIC4uLmJ1dCBtaXNpbnRlcnByZXRzIGxlYWRpbmctbnVtYmVyIHN0cmluZ3MsIHBhcnRpY3VsYXJseSBoZXggbGl0ZXJhbHMgKFwiMHguLi5cIilcblx0XHQvLyBzdWJ0cmFjdGlvbiBmb3JjZXMgaW5maW5pdGllcyB0byBOYU5cblx0XHQhaXNOYU4oIG9iaiAtIHBhcnNlRmxvYXQoIG9iaiApICk7XG59O1xuXG5qUXVlcnkudHJpbSA9IGZ1bmN0aW9uKCB0ZXh0ICkge1xuXHRyZXR1cm4gdGV4dCA9PSBudWxsID9cblx0XHRcIlwiIDpcblx0XHQoIHRleHQgKyBcIlwiICkucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApO1xufTtcblxuXG5cbi8vIFJlZ2lzdGVyIGFzIGEgbmFtZWQgQU1EIG1vZHVsZSwgc2luY2UgalF1ZXJ5IGNhbiBiZSBjb25jYXRlbmF0ZWQgd2l0aCBvdGhlclxuLy8gZmlsZXMgdGhhdCBtYXkgdXNlIGRlZmluZSwgYnV0IG5vdCB2aWEgYSBwcm9wZXIgY29uY2F0ZW5hdGlvbiBzY3JpcHQgdGhhdFxuLy8gdW5kZXJzdGFuZHMgYW5vbnltb3VzIEFNRCBtb2R1bGVzLiBBIG5hbWVkIEFNRCBpcyBzYWZlc3QgYW5kIG1vc3Qgcm9idXN0XG4vLyB3YXkgdG8gcmVnaXN0ZXIuIExvd2VyY2FzZSBqcXVlcnkgaXMgdXNlZCBiZWNhdXNlIEFNRCBtb2R1bGUgbmFtZXMgYXJlXG4vLyBkZXJpdmVkIGZyb20gZmlsZSBuYW1lcywgYW5kIGpRdWVyeSBpcyBub3JtYWxseSBkZWxpdmVyZWQgaW4gYSBsb3dlcmNhc2Vcbi8vIGZpbGUgbmFtZS4gRG8gdGhpcyBhZnRlciBjcmVhdGluZyB0aGUgZ2xvYmFsIHNvIHRoYXQgaWYgYW4gQU1EIG1vZHVsZSB3YW50c1xuLy8gdG8gY2FsbCBub0NvbmZsaWN0IHRvIGhpZGUgdGhpcyB2ZXJzaW9uIG9mIGpRdWVyeSwgaXQgd2lsbCB3b3JrLlxuXG4vLyBOb3RlIHRoYXQgZm9yIG1heGltdW0gcG9ydGFiaWxpdHksIGxpYnJhcmllcyB0aGF0IGFyZSBub3QgalF1ZXJ5IHNob3VsZFxuLy8gZGVjbGFyZSB0aGVtc2VsdmVzIGFzIGFub255bW91cyBtb2R1bGVzLCBhbmQgYXZvaWQgc2V0dGluZyBhIGdsb2JhbCBpZiBhblxuLy8gQU1EIGxvYWRlciBpcyBwcmVzZW50LiBqUXVlcnkgaXMgYSBzcGVjaWFsIGNhc2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9qcmJ1cmtlL3JlcXVpcmVqcy93aWtpL1VwZGF0aW5nLWV4aXN0aW5nLWxpYnJhcmllcyN3aWtpLWFub25cblxuaWYgKCB0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCApIHtcblx0ZGVmaW5lKCBcImpxdWVyeVwiLCBbXSwgZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGpRdWVyeTtcblx0fSApO1xufVxuXG5cblxuXG52YXJcblxuXHQvLyBNYXAgb3ZlciBqUXVlcnkgaW4gY2FzZSBvZiBvdmVyd3JpdGVcblx0X2pRdWVyeSA9IHdpbmRvdy5qUXVlcnksXG5cblx0Ly8gTWFwIG92ZXIgdGhlICQgaW4gY2FzZSBvZiBvdmVyd3JpdGVcblx0XyQgPSB3aW5kb3cuJDtcblxualF1ZXJ5Lm5vQ29uZmxpY3QgPSBmdW5jdGlvbiggZGVlcCApIHtcblx0aWYgKCB3aW5kb3cuJCA9PT0galF1ZXJ5ICkge1xuXHRcdHdpbmRvdy4kID0gXyQ7XG5cdH1cblxuXHRpZiAoIGRlZXAgJiYgd2luZG93LmpRdWVyeSA9PT0galF1ZXJ5ICkge1xuXHRcdHdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5O1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeTtcbn07XG5cbi8vIEV4cG9zZSBqUXVlcnkgYW5kICQgaWRlbnRpZmllcnMsIGV2ZW4gaW4gQU1EXG4vLyAodHJhYy03MTAyI2NvbW1lbnQ6MTAsIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5L3B1bGwvNTU3KVxuLy8gYW5kIENvbW1vbkpTIGZvciBicm93c2VyIGVtdWxhdG9ycyAodHJhYy0xMzU2NilcbmlmICggdHlwZW9mIG5vR2xvYmFsID09PSBcInVuZGVmaW5lZFwiICkge1xuXHR3aW5kb3cualF1ZXJ5ID0gd2luZG93LiQgPSBqUXVlcnk7XG59XG5cblxuXG5cbnJldHVybiBqUXVlcnk7XG59ICk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQWZyaWthYW5zIFthZl1cbi8vISBhdXRob3IgOiBXZXJuZXIgTW9sbGVudHplIDogaHR0cHM6Ly9naXRodWIuY29tL3dlcm5lcm1cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBhZiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FmJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpZV9GZWJydWFyaWVfTWFhcnRfQXByaWxfTWVpX0p1bmllX0p1bGllX0F1Z3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTXJ0X0Fwcl9NZWlfSnVuX0p1bF9BdWdfU2VwX09rdF9Ob3ZfRGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1NvbmRhZ19NYWFuZGFnX0RpbnNkYWdfV29lbnNkYWdfRG9uZGVyZGFnX1ZyeWRhZ19TYXRlcmRhZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1Nvbl9NYWFfRGluX1dvZV9Eb25fVnJ5X1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTb19NYV9EaV9Xb19Eb19Wcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL3ZtfG5tL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9ebm0kL2kudGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAndm0nIDogJ1ZNJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnbm0nIDogJ05NJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tWYW5kYWcgb21dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbTcO0cmUgb21dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbR2lzdGVyIG9tXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYWFzXSBkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvb3IgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGdlbGVkZScsXG4gICAgICAgICAgICBzOiBcIiduIHBhYXIgc2Vrb25kZXNcIixcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vrb25kZXMnLFxuICAgICAgICAgICAgbTogXCInbiBtaW51dXRcIixcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlJyxcbiAgICAgICAgICAgIGg6IFwiJ24gdXVyXCIsXG4gICAgICAgICAgICBoaDogJyVkIHVyZScsXG4gICAgICAgICAgICBkOiBcIiduIGRhZ1wiLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWUnLFxuICAgICAgICAgICAgTTogXCInbiBtYWFuZFwiLFxuICAgICAgICAgICAgTU06ICclZCBtYWFuZGUnLFxuICAgICAgICAgICAgeTogXCInbiBqYWFyXCIsXG4gICAgICAgICAgICB5eTogJyVkIGphYXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3RlfGRlKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgbnVtYmVyICtcbiAgICAgICAgICAgICAgICAobnVtYmVyID09PSAxIHx8IG51bWJlciA9PT0gOCB8fCBudW1iZXIgPj0gMjAgPyAnc3RlJyA6ICdkZScpXG4gICAgICAgICAgICApOyAvLyBUaGFua3MgdG8gSm9yaXMgUsO2bGluZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qanVwaXRlclxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1hYW5kYWcgaXMgZGllIGVlcnN0ZSBkYWcgdmFuIGRpZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBEaWUgd2VlayB3YXQgZGllIDRkZSBKYW51YXJpZSBiZXZhdCBpcyBkaWUgZWVyc3RlIHdlZWsgdmFuIGRpZSBqYWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFmO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFyYWJpYyAoQWxnZXJpYSkgW2FyLWR6XVxuLy8hIGF1dGhvciA6IEFtaW5lIFJvdWtoOiBodHRwczovL2dpdGh1Yi5jb20vQW1pbmUyN1xuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hYmRlbHNhaWRcbi8vISBhdXRob3IgOiBBaG1lZCBFbGtoYXRpYlxuLy8hIGF1dGhvciA6IGZvcmFiaSBodHRwczovL2dpdGh1Yi5jb20vZm9yYWJpXG4vLyEgYXV0aG9yIDogTm91cmVkZGluZSBMT1VBSEVESiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ub3VyZWRkaW5lbVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHBsdXJhbEZvcm0gPSBmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgcmV0dXJuIG4gPT09IDBcbiAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICA6IG4gPT09IDFcbiAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICA6IG4gPT09IDJcbiAgICAgICAgICAgICAgICA/IDJcbiAgICAgICAgICAgICAgICA6IG4gJSAxMDAgPj0gMyAmJiBuICUgMTAwIDw9IDEwXG4gICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDExXG4gICAgICAgICAgICAgICAgPyA0XG4gICAgICAgICAgICAgICAgOiA1O1xuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxzID0ge1xuICAgICAgICAgICAgczogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYq9in2YbZitipJyxcbiAgICAgICAgICAgICAgICAn2KvYp9mG2YrYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9ir2KfZhtmK2KrYp9mGJywgJ9ir2KfZhtmK2KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINir2YjYp9mGJyxcbiAgICAgICAgICAgICAgICAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJ9iv2YLZitmC2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYr9mC2YrZgtiq2KfZhicsICfYr9mC2YrZgtiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgICAgICAnJWQg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGg6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LPYp9i52KknLFxuICAgICAgICAgICAgICAgICfYs9in2LnYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9iz2KfYudiq2KfZhicsICfYs9in2LnYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGQ6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2YrZiNmFJyxcbiAgICAgICAgICAgICAgICAn2YrZiNmFINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9mK2YjZhdin2YYnLCAn2YrZiNmF2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINmK2YjZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIE06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LTZh9ixJyxcbiAgICAgICAgICAgICAgICAn2LTZh9ixINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9i02YfYsdin2YYnLCAn2LTZh9ix2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsdinJyxcbiAgICAgICAgICAgICAgICAnJWQg2LTZh9ixJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB5OiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi52KfZhScsXG4gICAgICAgICAgICAgICAgJ9i52KfZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYudin2YXYp9mGJywgJ9i52KfZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYudmI2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINi52KfZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFsaXplID0gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGYgPSBwbHVyYWxGb3JtKG51bWJlciksXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHBsdXJhbHNbdV1bcGx1cmFsRm9ybShudW1iZXIpXTtcbiAgICAgICAgICAgICAgICBpZiAoZiA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHJbd2l0aG91dFN1ZmZpeCA/IDAgOiAxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9is2KfZhtmB2YonLFxuICAgICAgICAgICAgJ9mB2YrZgdix2YonLFxuICAgICAgICAgICAgJ9mF2KfYsdizJyxcbiAgICAgICAgICAgICfYo9mB2LHZitmEJyxcbiAgICAgICAgICAgICfZhdin2YonLFxuICAgICAgICAgICAgJ9is2YjYp9mGJyxcbiAgICAgICAgICAgICfYrNmI2YrZhNmK2KknLFxuICAgICAgICAgICAgJ9ij2YjYqicsXG4gICAgICAgICAgICAn2LPYqNiq2YXYqNixJyxcbiAgICAgICAgICAgICfYo9mD2KrZiNio2LEnLFxuICAgICAgICAgICAgJ9mG2YjZgdmF2KjYsScsXG4gICAgICAgICAgICAn2K/Zitiz2YXYqNixJyxcbiAgICAgICAgXTtcblxuICAgIHZhciBhckR6ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXItZHonLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdEL1xcdTIwMEZNL1xcdTIwMEZZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LV82YUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9i1JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZhSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2YvYpyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfYqNi52K8gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIHNzOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIG06IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgbW06IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgaDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBoaDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBkOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIGRkOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIE06IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgTU06IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgeTogcGx1cmFsaXplKCd5JyksXG4gICAgICAgICAgICB5eTogcGx1cmFsaXplKCd5JyksXG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyRHo7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJhYmljIChLdXdhaXQpIFthci1rd11cbi8vISBhdXRob3IgOiBOdXNyZXQgUGFybGFrOiBodHRwczovL2dpdGh1Yi5jb20vbnVzcmV0cGFybGFrXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYXJLdyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLWt3Jywge1xuICAgICAgICBtb250aHM6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZil/ZitmI2YbZitmIX9mK2YjZhNmK2YjYsl/Yuti02Kpf2LTYqtmG2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmG2KjYsV/Yr9is2YbYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZil/ZitmI2YbZitmIX9mK2YjZhNmK2YjYsl/Yuti02Kpf2LTYqtmG2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmG2KjYsV/Yr9is2YbYqNixJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYqtmG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KfYrdivX9in2KrZhtmK2YZf2KvZhNin2KvYp9ihX9in2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2Kcg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2YHZiiAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzczogJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgbTogJ9iv2YLZitmC2KknLFxuICAgICAgICAgICAgbW06ICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgIGg6ICfYs9in2LnYqScsXG4gICAgICAgICAgICBoaDogJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgZDogJ9mK2YjZhScsXG4gICAgICAgICAgICBkZDogJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgIE06ICfYtNmH2LEnLFxuICAgICAgICAgICAgTU06ICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICB5OiAn2LPZhtipJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPZhtmI2KfYqicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyS3c7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJhYmljIChMaWJ5YSkgW2FyLWx5XVxuLy8hIGF1dGhvciA6IEFsaSBIbWVyOiBodHRwczovL2dpdGh1Yi5jb20va2lrb2FuaXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAxOiAnMScsXG4gICAgICAgICAgICAyOiAnMicsXG4gICAgICAgICAgICAzOiAnMycsXG4gICAgICAgICAgICA0OiAnNCcsXG4gICAgICAgICAgICA1OiAnNScsXG4gICAgICAgICAgICA2OiAnNicsXG4gICAgICAgICAgICA3OiAnNycsXG4gICAgICAgICAgICA4OiAnOCcsXG4gICAgICAgICAgICA5OiAnOScsXG4gICAgICAgICAgICAwOiAnMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbEZvcm0gPSBmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgcmV0dXJuIG4gPT09IDBcbiAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICA6IG4gPT09IDFcbiAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICA6IG4gPT09IDJcbiAgICAgICAgICAgICAgICA/IDJcbiAgICAgICAgICAgICAgICA6IG4gJSAxMDAgPj0gMyAmJiBuICUgMTAwIDw9IDEwXG4gICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDExXG4gICAgICAgICAgICAgICAgPyA0XG4gICAgICAgICAgICAgICAgOiA1O1xuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxzID0ge1xuICAgICAgICAgICAgczogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYq9in2YbZitipJyxcbiAgICAgICAgICAgICAgICAn2KvYp9mG2YrYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9ir2KfZhtmK2KrYp9mGJywgJ9ir2KfZhtmK2KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINir2YjYp9mGJyxcbiAgICAgICAgICAgICAgICAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJ9iv2YLZitmC2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYr9mC2YrZgtiq2KfZhicsICfYr9mC2YrZgtiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgICAgICAnJWQg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGg6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LPYp9i52KknLFxuICAgICAgICAgICAgICAgICfYs9in2LnYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9iz2KfYudiq2KfZhicsICfYs9in2LnYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGQ6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2YrZiNmFJyxcbiAgICAgICAgICAgICAgICAn2YrZiNmFINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9mK2YjZhdin2YYnLCAn2YrZiNmF2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINmK2YjZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIE06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LTZh9ixJyxcbiAgICAgICAgICAgICAgICAn2LTZh9ixINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9i02YfYsdin2YYnLCAn2LTZh9ix2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsdinJyxcbiAgICAgICAgICAgICAgICAnJWQg2LTZh9ixJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB5OiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi52KfZhScsXG4gICAgICAgICAgICAgICAgJ9i52KfZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYudin2YXYp9mGJywgJ9i52KfZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYudmI2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINi52KfZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFsaXplID0gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGYgPSBwbHVyYWxGb3JtKG51bWJlciksXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHBsdXJhbHNbdV1bcGx1cmFsRm9ybShudW1iZXIpXTtcbiAgICAgICAgICAgICAgICBpZiAoZiA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHJbd2l0aG91dFN1ZmZpeCA/IDAgOiAxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9mK2YbYp9mK2LEnLFxuICAgICAgICAgICAgJ9mB2KjYsdin2YrYsScsXG4gICAgICAgICAgICAn2YXYp9ix2LMnLFxuICAgICAgICAgICAgJ9ij2KjYsdmK2YQnLFxuICAgICAgICAgICAgJ9mF2KfZitmIJyxcbiAgICAgICAgICAgICfZitmI2YbZitmIJyxcbiAgICAgICAgICAgICfZitmI2YTZitmIJyxcbiAgICAgICAgICAgICfYo9i62LPYt9izJyxcbiAgICAgICAgICAgICfYs9io2KrZhdio2LEnLFxuICAgICAgICAgICAgJ9ij2YPYqtmI2KjYsScsXG4gICAgICAgICAgICAn2YbZiNmB2YXYqNixJyxcbiAgICAgICAgICAgICfYr9mK2LPZhdio2LEnLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGFyTHkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhci1seScsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KPYrdivX9il2KvZhtmK2YZf2KvZhNin2KvYp9ihX9ij2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QvXFx1MjAwRk0vXFx1MjAwRllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/YtXzZhS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfZhScgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mFJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/Zi9inINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9io2LnYryAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgc3M6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgbTogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBtbTogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBoOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGhoOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGQ6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgZGQ6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgTTogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICBNTTogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICB5OiBwbHVyYWxpemUoJ3knKSxcbiAgICAgICAgICAgIHl5OiBwbHVyYWxpemUoJ3knKSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJMeTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcmFiaWMgKE1vcm9jY28pIFthci1tYV1cbi8vISBhdXRob3IgOiBFbEZhZGlsaSBZYXNzaW5lIDogaHR0cHM6Ly9naXRodWIuY29tL0VsRmFkaWxpWVxuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQgOiBodHRwczovL2dpdGh1Yi5jb20vYWJkZWxzYWlkXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYXJNYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLW1hJywge1xuICAgICAgICBtb250aHM6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZil/ZitmI2YbZitmIX9mK2YjZhNmK2YjYsl/Yuti02Kpf2LTYqtmG2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmG2KjYsV/Yr9is2YbYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZil/ZitmI2YbZitmIX9mK2YjZhNmK2YjYsl/Yuti02Kpf2LTYqtmG2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmG2KjYsV/Yr9is2YbYqNixJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KfYrdivX9in2KvZhtmK2YZf2KvZhNin2KvYp9ihX9in2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2Kcg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2YHZiiAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzczogJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgbTogJ9iv2YLZitmC2KknLFxuICAgICAgICAgICAgbW06ICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgIGg6ICfYs9in2LnYqScsXG4gICAgICAgICAgICBoaDogJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgZDogJ9mK2YjZhScsXG4gICAgICAgICAgICBkZDogJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgIE06ICfYtNmH2LEnLFxuICAgICAgICAgICAgTU06ICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICB5OiAn2LPZhtipJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPZhtmI2KfYqicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhck1hO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFyYWJpYyAoU2F1ZGkgQXJhYmlhKSBbYXItc2FdXG4vLyEgYXV0aG9yIDogU3VoYWlsIEFsa293YWlsZWV0IDogaHR0cHM6Ly9naXRodWIuY29tL3hzb2hcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAxOiAn2aEnLFxuICAgICAgICAgICAgMjogJ9miJyxcbiAgICAgICAgICAgIDM6ICfZoycsXG4gICAgICAgICAgICA0OiAn2aQnLFxuICAgICAgICAgICAgNTogJ9mlJyxcbiAgICAgICAgICAgIDY6ICfZpicsXG4gICAgICAgICAgICA3OiAn2acnLFxuICAgICAgICAgICAgODogJ9moJyxcbiAgICAgICAgICAgIDk6ICfZqScsXG4gICAgICAgICAgICAwOiAn2aAnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn2aEnOiAnMScsXG4gICAgICAgICAgICAn2aInOiAnMicsXG4gICAgICAgICAgICAn2aMnOiAnMycsXG4gICAgICAgICAgICAn2aQnOiAnNCcsXG4gICAgICAgICAgICAn2aUnOiAnNScsXG4gICAgICAgICAgICAn2aYnOiAnNicsXG4gICAgICAgICAgICAn2acnOiAnNycsXG4gICAgICAgICAgICAn2agnOiAnOCcsXG4gICAgICAgICAgICAn2aknOiAnOScsXG4gICAgICAgICAgICAn2aAnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgYXJTYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLXNhJywge1xuICAgICAgICBtb250aHM6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZitmIX9mK2YjZhtmK2Yhf2YrZiNmE2YrZiF/Yo9i62LPYt9izX9iz2KjYqtmF2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmB2YXYqNixX9iv2YrYs9mF2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2YrZiF/ZitmI2YbZitmIX9mK2YjZhNmK2Yhf2KPYutiz2LfYs1/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdir2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i1fNmFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9mB2YogJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiAn2KvZiNin2YYnLFxuICAgICAgICAgICAgc3M6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG06ICfYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgIGQ6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQ6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNOiAn2LTZh9ixJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeTogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eTogJyVkINiz2YbZiNin2KonLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9b2aHZotmj2aTZpdmm2afZqNmp2aBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyU2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlICA6ICBBcmFiaWMgKFR1bmlzaWEpIFthci10bl1cbi8vISBhdXRob3IgOiBOYWRlciBUb3VrYWJyaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9uYWRlcmlvXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYXJUbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLXRuJywge1xuICAgICAgICBtb250aHM6ICfYrNin2YbZgdmKX9mB2YrZgdix2Ypf2YXYp9ix2LNf2KPZgdix2YrZhF/Zhdin2Ypf2KzZiNin2YZf2KzZiNmK2YTZitipX9ij2YjYql/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ9is2KfZhtmB2Ypf2YHZitmB2LHZil/Zhdin2LHYs1/Yo9mB2LHZitmEX9mF2KfZil/YrNmI2KfZhl/YrNmI2YrZhNmK2Klf2KPZiNiqX9iz2KjYqtmF2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmB2YXYqNixX9iv2YrYs9mF2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9mB2YogJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiAn2KvZiNin2YYnLFxuICAgICAgICAgICAgc3M6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG06ICfYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgIGQ6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQ6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNOiAn2LTZh9ixJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeTogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eTogJyVkINiz2YbZiNin2KonLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJUbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcmFiaWMgW2FyXVxuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hYmRlbHNhaWRcbi8vISBhdXRob3IgOiBBaG1lZCBFbGtoYXRpYlxuLy8hIGF1dGhvciA6IGZvcmFiaSBodHRwczovL2dpdGh1Yi5jb20vZm9yYWJpXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgMTogJ9mhJyxcbiAgICAgICAgICAgIDI6ICfZoicsXG4gICAgICAgICAgICAzOiAn2aMnLFxuICAgICAgICAgICAgNDogJ9mkJyxcbiAgICAgICAgICAgIDU6ICfZpScsXG4gICAgICAgICAgICA2OiAn2aYnLFxuICAgICAgICAgICAgNzogJ9mnJyxcbiAgICAgICAgICAgIDg6ICfZqCcsXG4gICAgICAgICAgICA5OiAn2aknLFxuICAgICAgICAgICAgMDogJ9mgJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ9mhJzogJzEnLFxuICAgICAgICAgICAgJ9miJzogJzInLFxuICAgICAgICAgICAgJ9mjJzogJzMnLFxuICAgICAgICAgICAgJ9mkJzogJzQnLFxuICAgICAgICAgICAgJ9mlJzogJzUnLFxuICAgICAgICAgICAgJ9mmJzogJzYnLFxuICAgICAgICAgICAgJ9mnJzogJzcnLFxuICAgICAgICAgICAgJ9moJzogJzgnLFxuICAgICAgICAgICAgJ9mpJzogJzknLFxuICAgICAgICAgICAgJ9mgJzogJzAnLFxuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxGb3JtID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgICAgIHJldHVybiBuID09PSAwXG4gICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgOiBuID09PSAxXG4gICAgICAgICAgICAgICAgPyAxXG4gICAgICAgICAgICAgICAgOiBuID09PSAyXG4gICAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDMgJiYgbiAlIDEwMCA8PSAxMFxuICAgICAgICAgICAgICAgID8gM1xuICAgICAgICAgICAgICAgIDogbiAlIDEwMCA+PSAxMVxuICAgICAgICAgICAgICAgID8gNFxuICAgICAgICAgICAgICAgIDogNTtcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFscyA9IHtcbiAgICAgICAgICAgIHM6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJ9ir2KfZhtmK2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYq9in2YbZitiq2KfZhicsICfYq9in2YbZitiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYq9mI2KfZhicsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgICAgICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBtOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINiv2YLZitmC2KknLFxuICAgICAgICAgICAgICAgICfYr9mC2YrZgtipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2K/ZgtmK2YLYqtin2YYnLCAn2K/ZgtmK2YLYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBoOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAn2LPYp9i52Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYs9in2LnYqtin2YYnLCAn2LPYp9i52KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYqScsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBkOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINmK2YjZhScsXG4gICAgICAgICAgICAgICAgJ9mK2YjZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfZitmI2YXYp9mGJywgJ9mK2YjZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YXZi9inJyxcbiAgICAgICAgICAgICAgICAnJWQg2YrZiNmFJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBNOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi02YfYsScsXG4gICAgICAgICAgICAgICAgJ9i02YfYsSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYtNmH2LHYp9mGJywgJ9i02YfYsdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgICAgICclZCDYtNmH2LHYpycsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgeTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYudin2YUnLFxuICAgICAgICAgICAgICAgICfYudin2YUg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2LnYp9mF2KfZhicsICfYudin2YXZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2LnZiNin2YUnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YXZi9inJyxcbiAgICAgICAgICAgICAgICAnJWQg2LnYp9mFJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbGl6ZSA9IGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgIHZhciBmID0gcGx1cmFsRm9ybShudW1iZXIpLFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBwbHVyYWxzW3VdW3BsdXJhbEZvcm0obnVtYmVyKV07XG4gICAgICAgICAgICAgICAgaWYgKGYgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyW3dpdGhvdXRTdWZmaXggPyAwIDogMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfZitmG2KfZitixJyxcbiAgICAgICAgICAgICfZgdio2LHYp9mK2LEnLFxuICAgICAgICAgICAgJ9mF2KfYsdizJyxcbiAgICAgICAgICAgICfYo9io2LHZitmEJyxcbiAgICAgICAgICAgICfZhdin2YrZiCcsXG4gICAgICAgICAgICAn2YrZiNmG2YrZiCcsXG4gICAgICAgICAgICAn2YrZiNmE2YrZiCcsXG4gICAgICAgICAgICAn2KPYutiz2LfYsycsXG4gICAgICAgICAgICAn2LPYqNiq2YXYqNixJyxcbiAgICAgICAgICAgICfYo9mD2KrZiNio2LEnLFxuICAgICAgICAgICAgJ9mG2YjZgdmF2KjYsScsXG4gICAgICAgICAgICAn2K/Zitiz2YXYqNixJyxcbiAgICAgICAgXTtcblxuICAgIHZhciBhciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdir2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnRC9cXHUyMDBGTS9cXHUyMDBGWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i1fNmFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9mL2Kcg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2KjYudivICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgczogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBzczogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBtOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIG1tOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIGg6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgaGg6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgZDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBkZDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBNOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIE1NOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIHk6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICAgICAgeXk6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9b2aHZotmj2aTZpdmm2afZqNmp2aBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBemVyYmFpamFuaSBbYXpdXG4vLyEgYXV0aG9yIDogdG9wY2hpeWV2IDogaHR0cHM6Ly9naXRodWIuY29tL3RvcGNoaXlldlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAxOiAnLWluY2knLFxuICAgICAgICA1OiAnLWluY2knLFxuICAgICAgICA4OiAnLWluY2knLFxuICAgICAgICA3MDogJy1pbmNpJyxcbiAgICAgICAgODA6ICctaW5jaScsXG4gICAgICAgIDI6ICctbmNpJyxcbiAgICAgICAgNzogJy1uY2knLFxuICAgICAgICAyMDogJy1uY2knLFxuICAgICAgICA1MDogJy1uY2knLFxuICAgICAgICAzOiAnLcO8bmPDvCcsXG4gICAgICAgIDQ6ICctw7xuY8O8JyxcbiAgICAgICAgMTAwOiAnLcO8bmPDvCcsXG4gICAgICAgIDY6ICctbmPEsScsXG4gICAgICAgIDk6ICctdW5jdScsXG4gICAgICAgIDEwOiAnLXVuY3UnLFxuICAgICAgICAzMDogJy11bmN1JyxcbiAgICAgICAgNjA6ICctxLFuY8SxJyxcbiAgICAgICAgOTA6ICctxLFuY8SxJyxcbiAgICB9O1xuXG4gICAgdmFyIGF6ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXonLCB7XG4gICAgICAgIG1vbnRoczogJ3lhbnZhcl9mZXZyYWxfbWFydF9hcHJlbF9tYXlfaXl1bl9peXVsX2F2cXVzdF9zZW50eWFicl9va3R5YWJyX25veWFicl9kZWthYnInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAneWFuX2Zldl9tYXJfYXByX21heV9peW5faXlsX2F2cV9zZW5fb2t0X25veV9kZWsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ0JhemFyX0JhemFyIGVydMmZc2lfw4fJmXLFn8mZbmLJmSBheMWfYW3EsV/Dh8mZcsWfyZluYsmZX0PDvG3JmSBheMWfYW3EsV9Dw7xtyZlfxZ7JmW5iyZknLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0Jhel9CekVfw4dBeF/Dh8mZcl9DQXhfQ8O8bV/FnsmZbicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdCel9CRV/Dh0Ffw4fJmV9DQV9Dw7xfxZ7JmScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2J1Z8O8biBzYWF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3NhYmFoIHNhYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW2fJmWzJmW4gaMmZZnTJmV0gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tkw7xuyZluXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1trZcOnyZluIGjJmWZ0yZldIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgc29ucmEnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMmZdnbJmWwnLFxuICAgICAgICAgICAgczogJ2JpciBuZcOnyZkgc2FuaXnJmScsXG4gICAgICAgICAgICBzczogJyVkIHNhbml5yZknLFxuICAgICAgICAgICAgbTogJ2JpciBkyZlxaXHJmScsXG4gICAgICAgICAgICBtbTogJyVkIGTJmXFpccmZJyxcbiAgICAgICAgICAgIGg6ICdiaXIgc2FhdCcsXG4gICAgICAgICAgICBoaDogJyVkIHNhYXQnLFxuICAgICAgICAgICAgZDogJ2JpciBnw7xuJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZ8O8bicsXG4gICAgICAgICAgICBNOiAnYmlyIGF5JyxcbiAgICAgICAgICAgIE1NOiAnJWQgYXknLFxuICAgICAgICAgICAgeTogJ2JpciBpbCcsXG4gICAgICAgICAgICB5eTogJyVkIGlsJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2dlY8mZfHPJmWjJmXJ8Z8O8bmTDvHp8YXjFn2FtLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14oZ8O8bmTDvHp8YXjFn2FtKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdnZWPJmSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc8mZaMmZcic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZ8O8bmTDvHonO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2F4xZ9hbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0oxLFuY8SxfGluY2l8bmNpfMO8bmPDvHxuY8SxfHVuY3UpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgemVyb1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLcSxbmPEsSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGIgPSAobnVtYmVyICUgMTAwKSAtIGEsXG4gICAgICAgICAgICAgICAgYyA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSB8fCBzdWZmaXhlc1tjXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhejtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCZWxhcnVzaWFuIFtiZV1cbi8vISBhdXRob3IgOiBEbWl0cnkgRGVtaWRvdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9kZW1pZG92OTFcbi8vISBhdXRob3I6IFByYWxlc2thOiBodHRwOi8vcHJhbGVza2EucHJvL1xuLy8hIEF1dGhvciA6IE1lbmVsaW9uIEVsZW5zw7psZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9PaXJlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwbHVyYWwod29yZCwgbnVtKSB7XG4gICAgICAgIHZhciBmb3JtcyA9IHdvcmQuc3BsaXQoJ18nKTtcbiAgICAgICAgcmV0dXJuIG51bSAlIDEwID09PSAxICYmIG51bSAlIDEwMCAhPT0gMTFcbiAgICAgICAgICAgID8gZm9ybXNbMF1cbiAgICAgICAgICAgIDogbnVtICUgMTAgPj0gMiAmJiBudW0gJSAxMCA8PSA0ICYmIChudW0gJSAxMDAgPCAxMCB8fCBudW0gJSAxMDAgPj0gMjApXG4gICAgICAgICAgICA/IGZvcm1zWzFdXG4gICAgICAgICAgICA6IGZvcm1zWzJdO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzczogd2l0aG91dFN1ZmZpeCA/ICfRgdC10LrRg9C90LTQsF/RgdC10LrRg9C90LTRi1/RgdC10LrRg9C90LQnIDogJ9GB0LXQutGD0L3QtNGDX9GB0LXQutGD0L3QtNGLX9GB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtbTogd2l0aG91dFN1ZmZpeCA/ICfRhdCy0ZbQu9GW0L3QsF/RhdCy0ZbQu9GW0L3Ri1/RhdCy0ZbQu9GW0L0nIDogJ9GF0LLRltC70ZbQvdGDX9GF0LLRltC70ZbQvdGLX9GF0LLRltC70ZbQvScsXG4gICAgICAgICAgICBoaDogd2l0aG91dFN1ZmZpeCA/ICfQs9Cw0LTQt9GW0L3QsF/Qs9Cw0LTQt9GW0L3Ri1/Qs9Cw0LTQt9GW0L0nIDogJ9Cz0LDQtNC30ZbQvdGDX9Cz0LDQtNC30ZbQvdGLX9Cz0LDQtNC30ZbQvScsXG4gICAgICAgICAgICBkZDogJ9C00LfQtdC90Yxf0LTQvdGWX9C00LfRkdC9JyxcbiAgICAgICAgICAgIE1NOiAn0LzQtdGB0Y/Rhl/QvNC10YHRj9GG0Ytf0LzQtdGB0Y/RhtCw0Z4nLFxuICAgICAgICAgICAgeXk6ICfQs9C+0LRf0LPQsNC00Ytf0LPQsNC00L7RnicsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChrZXkgPT09ICdtJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0YXQstGW0LvRltC90LAnIDogJ9GF0LLRltC70ZbQvdGDJztcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdoJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0LPQsNC00LfRltC90LAnIDogJ9Cz0LDQtNC30ZbQvdGDJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBwbHVyYWwoZm9ybWF0W2tleV0sICtudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGJlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYmUnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAn0YHRgtGD0LTQt9C10L3Rj1/Qu9GO0YLQsNCz0LBf0YHQsNC60LDQstGW0LrQsF/QutGA0LDRgdCw0LLRltC60LBf0YLRgNCw0Z7QvdGPX9GH0Y3RgNCy0LXQvdGPX9C70ZbQv9C10L3Rj1/QttC90ZbRntC90Y9f0LLQtdGA0LDRgdC90Y9f0LrQsNGB0YLRgNGL0YfQvdGW0LrQsF/Qu9GW0YHRgtCw0L/QsNC00LBf0YHQvdC10LbQvdGPJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOlxuICAgICAgICAgICAgICAgICfRgdGC0YPQtNC30LXQvdGMX9C70Y7RgtGLX9GB0LDQutCw0LLRltC6X9C60YDQsNGB0LDQstGW0Lpf0YLRgNCw0LLQtdC90Yxf0YfRjdGA0LLQtdC90Yxf0LvRltC/0LXQvdGMX9C20L3RltCy0LXQvdGMX9Cy0LXRgNCw0YHQtdC90Yxf0LrQsNGB0YLRgNGL0YfQvdGW0Lpf0LvRltGB0YLQsNC/0LDQtF/RgdC90LXQttCw0L3RjCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ9GB0YLRg9C0X9C70Y7Rgl/RgdCw0Lpf0LrRgNCw0YFf0YLRgNCw0LJf0YfRjdGA0LJf0LvRltC/X9C20L3RltCyX9Cy0LXRgF/QutCw0YHRgl/Qu9GW0YHRgl/RgdC90LXQticuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9C90Y/QtNC30LXQu9GOX9C/0LDQvdGP0LTQt9C10LvQsNC6X9Cw0Z7RgtC+0YDQsNC6X9GB0LXRgNCw0LTRg1/Rh9Cw0YbQstC10YBf0L/Rj9GC0L3RltGG0YNf0YHRg9Cx0L7RgtGDJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOlxuICAgICAgICAgICAgICAgICfQvdGP0LTQt9C10LvRj1/Qv9Cw0L3Rj9C00LfQtdC70LDQul/QsNGe0YLQvtGA0LDQul/RgdC10YDQsNC00LBf0YfQsNGG0LLQtdGAX9C/0Y/RgtC90ZbRhtCwX9GB0YPQsdC+0YLQsCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL1xcWyA/W9Cj0YPRnl0gPyg/OtC80ZbQvdGD0LvRg9GOfNC90LDRgdGC0YPQv9C90YPRjik/ID9cXF0gP2RkZGQvLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0L3QtF/Qv9C9X9Cw0YJf0YHRgF/Rh9GGX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQvdC0X9C/0L1f0LDRgl/RgdGAX9GH0YZf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZINCzLicsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSDQsy4sIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSDQsy4sIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0KHRkdC90L3RjyDRnl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQl9Cw0Z7RgtGA0LAg0Z5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0KPRh9C+0YDQsCDRnl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1vQo10gZGRkZCBb0Z5dIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQoyDQvNGW0L3Rg9C70YPRjl0gZGRkZCBb0Z5dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CjINC80ZbQvdGD0LvRi10gZGRkZCBb0Z5dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQv9GA0LDQtyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0YLQsNC80YMnLFxuICAgICAgICAgICAgczogJ9C90LXQutCw0LvRjNC60ZYg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGg6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoaDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQ6ICfQtNC30LXQvdGMJyxcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgTTogJ9C80LXRgdGP0YYnLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5OiAn0LPQvtC0JyxcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0L3QvtGH0Yt80YDQsNC90ZbRhtGLfNC00L3Rj3zQstC10YfQsNGA0LAvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijQtNC90Y980LLQtdGH0LDRgNCwKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQvdC+0YfRiyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YDQsNC90ZbRhtGLJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQtNC90Y8nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Cy0LXRh9Cw0YDQsCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0ZZ80Yt80LPQsCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChudW1iZXIgJSAxMCA9PT0gMiB8fCBudW1iZXIgJSAxMCA9PT0gMykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciAlIDEwMCAhPT0gMTIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciAlIDEwMCAhPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbnVtYmVyICsgJy3RlidcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbnVtYmVyICsgJy3Riyc7XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCz0LAnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBiZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCdWxnYXJpYW4gW2JnXVxuLy8hIGF1dGhvciA6IEtyYXNlbiBCb3Jpc292IDogaHR0cHM6Ly9naXRodWIuY29tL2tyYXpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBiZyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JnJywge1xuICAgICAgICBtb250aHM6ICfRj9C90YPQsNGA0Lhf0YTQtdCy0YDRg9Cw0YDQuF/QvNCw0YDRgl/QsNC/0YDQuNC7X9C80LDQuV/RjtC90Lhf0Y7Qu9C4X9Cw0LLQs9GD0YHRgl/RgdC10L/RgtC10LzQstGA0Lhf0L7QutGC0L7QvNCy0YDQuF/QvdC+0LXQvNCy0YDQuF/QtNC10LrQtdC80LLRgNC4Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GP0L3Rg1/RhNC10LJf0LzQsNGAX9Cw0L/RgF/QvNCw0Llf0Y7QvdC4X9GO0LvQuF/QsNCy0LNf0YHQtdC/X9C+0LrRgl/QvdC+0LVf0LTQtdC6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9C90LXQtNC10LvRj1/Qv9C+0L3QtdC00LXQu9C90LjQul/QstGC0L7RgNC90LjQul/RgdGA0Y/QtNCwX9GH0LXRgtCy0YrRgNGC0YrQul/Qv9C10YLRitC6X9GB0YrQsdC+0YLQsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9C90LXQtF/Qv9C+0L1f0LLRgtC+X9GB0YDRj1/Rh9C10YJf0L/QtdGCX9GB0YrQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQvdC0X9C/0L1f0LLRgl/RgdGAX9GH0YJf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQlNC90LXRgSDQsl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQo9GC0YDQtSDQsl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvQsl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQktGH0LXRgNCwINCyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JzQuNC90LDQu9Cw0YLQsF0gZGRkZCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JzQuNC90LDQu9C40Y9dIGRkZGQgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0YHQu9C10LQgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9C/0YDQtdC00LggJXMnLFxuICAgICAgICAgICAgczogJ9C90Y/QutC+0LvQutC+INGB0LXQutGD0L3QtNC4JyxcbiAgICAgICAgICAgIHNzOiAnJWQg0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgbTogJ9C80LjQvdGD0YLQsCcsXG4gICAgICAgICAgICBtbTogJyVkINC80LjQvdGD0YLQuCcsXG4gICAgICAgICAgICBoOiAn0YfQsNGBJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YfQsNGB0LAnLFxuICAgICAgICAgICAgZDogJ9C00LXQvScsXG4gICAgICAgICAgICBkZDogJyVkINC00LXQvdCwJyxcbiAgICAgICAgICAgIHc6ICfRgdC10LTQvNC40YbQsCcsXG4gICAgICAgICAgICB3dzogJyVkINGB0LXQtNC80LjRhtC4JyxcbiAgICAgICAgICAgIE06ICfQvNC10YHQtdGGJyxcbiAgICAgICAgICAgIE1NOiAnJWQg0LzQtdGB0LXRhtCwJyxcbiAgICAgICAgICAgIHk6ICfQs9C+0LTQuNC90LAnLFxuICAgICAgICAgICAgeXk6ICclZCDQs9C+0LTQuNC90LgnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNC10LJ80LXQvXzRgtC4fNCy0Lh80YDQuHzQvNC4KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBsYXN0RGlnaXQgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBsYXN0MkRpZ2l0cyA9IG51bWJlciAlIDEwMDtcbiAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QtdCyJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdDJEaWdpdHMgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QtdC9JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdDJEaWdpdHMgPiAxMCAmJiBsYXN0MkRpZ2l0cyA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0YLQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCy0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgNC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSA3IHx8IGxhc3REaWdpdCA9PT0gOCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC80LgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgtC4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJnO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJhbWJhcmEgW2JtXVxuLy8hIGF1dGhvciA6IEVzdGVsbGUgQ29tbWVudCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9lc3RlbGxlY29tbWVudFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGJtID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYm0nLCB7XG4gICAgICAgIG1vbnRoczogJ1phbnd1eWVrYWxvX0Zld3VydXlla2Fsb19NYXJpc2lrYWxvX0F3aXJpbGlrYWxvX03Jm2thbG9fWnV3yZtua2Fsb19adWx1eWVrYWxvX1V0aWthbG9fU8mbdGFuYnVydWthbG9fyZRrdXTJlGJ1cnVrYWxvX05vd2FuYnVydWthbG9fRGVzYW5idXJ1a2Fsbycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdaYW5fRmV3X01hcl9Bd2lfTcmbX1p1d19adWxfVXRpX1PJm3RfyZRrdV9Ob3dfRGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0thcmlfTnTJm27Jm25fVGFyYXRhX0FyYWJhX0FsYW1pc2FfSnVtYV9TaWJpcmknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdLYXJfTnTJm19UYXJfQXJhX0FsYV9KdW1fU2liJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0thX050X1RhX0FyX0FsX0p1X1NpJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ01NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkgW2zJm3LJm10gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgTU1NTSBbdGlsZV0gRCBbc2FuXSBZWVlZIFtsyZtyyZtdIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQmkgbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1NpbmkgbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2RvbiBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS3VudSBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbdMmbbcmbbmVuIGzJm3LJm10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBryZRuyZQnLFxuICAgICAgICAgICAgcGFzdDogJ2EgYsmbICVzIGLJlCcsXG4gICAgICAgICAgICBzOiAnc2FuZ2EgZGFtYSBkYW1hJyxcbiAgICAgICAgICAgIHNzOiAnc2Vrb25kaSAlZCcsXG4gICAgICAgICAgICBtOiAnbWluaXRpIGtlbGVuJyxcbiAgICAgICAgICAgIG1tOiAnbWluaXRpICVkJyxcbiAgICAgICAgICAgIGg6ICdsyZtyyZsga2VsZW4nLFxuICAgICAgICAgICAgaGg6ICdsyZtyyZsgJWQnLFxuICAgICAgICAgICAgZDogJ3RpbGUga2VsZW4nLFxuICAgICAgICAgICAgZGQ6ICd0aWxlICVkJyxcbiAgICAgICAgICAgIE06ICdrYWxvIGtlbGVuJyxcbiAgICAgICAgICAgIE1NOiAna2FsbyAlZCcsXG4gICAgICAgICAgICB5OiAnc2FuIGtlbGVuJyxcbiAgICAgICAgICAgIHl5OiAnc2FuICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJtO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJlbmdhbGkgKEJhbmdsYWRlc2gpIFtibi1iZF1cbi8vISBhdXRob3IgOiBBc3JhZiBIb3NzYWluIFBhdG9hcnkgOiBodHRwczovL2dpdGh1Yi5jb20vYXNod29vbGZvcmRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAxOiAn4KenJyxcbiAgICAgICAgICAgIDI6ICfgp6gnLFxuICAgICAgICAgICAgMzogJ+CnqScsXG4gICAgICAgICAgICA0OiAn4KeqJyxcbiAgICAgICAgICAgIDU6ICfgp6snLFxuICAgICAgICAgICAgNjogJ+CnrCcsXG4gICAgICAgICAgICA3OiAn4KetJyxcbiAgICAgICAgICAgIDg6ICfgp64nLFxuICAgICAgICAgICAgOTogJ+CnrycsXG4gICAgICAgICAgICAwOiAn4KemJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Cnpyc6ICcxJyxcbiAgICAgICAgICAgICfgp6gnOiAnMicsXG4gICAgICAgICAgICAn4KepJzogJzMnLFxuICAgICAgICAgICAgJ+Cnqic6ICc0JyxcbiAgICAgICAgICAgICfgp6snOiAnNScsXG4gICAgICAgICAgICAn4KesJzogJzYnLFxuICAgICAgICAgICAgJ+CnrSc6ICc3JyxcbiAgICAgICAgICAgICfgp64nOiAnOCcsXG4gICAgICAgICAgICAn4KevJzogJzknLFxuICAgICAgICAgICAgJ+Cnpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBibkJkID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYm4tYmQnLCB7XG4gICAgICAgIG1vbnRoczogJ+CmnOCmvuCmqOCngeCnn+CmvuCmsOCmv1/gpqvgp4fgpqzgp43gprDgp4Hgp5/gpr7gprDgpr9f4Kau4Ka+4Kaw4KeN4KaaX+Cmj+CmquCnjeCmsOCmv+Cmsl/gpq7gp4df4Kac4KeB4KaoX+CmnOCngeCmsuCmvuCmh1/gpobgppfgprjgp43gpp9f4Ka44KeH4Kaq4KeN4Kaf4KeH4Kau4KeN4Kas4KawX+CmheCmleCnjeCmn+Cni+CmrOCmsF/gpqjgpq3gp4fgpq7gp43gpqzgprBf4Kah4Ka/4Ka44KeH4Kau4KeN4Kas4KawJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfgppzgpr7gpqjgp4Ff4Kar4KeH4Kas4KeN4Kaw4KeBX+CmruCmvuCmsOCnjeCmml/gpo/gpqrgp43gprDgpr/gprJf4Kau4KeHX+CmnOCngeCmqF/gppzgp4HgprLgpr7gpodf4KaG4KaX4Ka44KeN4KafX+CmuOCnh+CmquCnjeCmn1/gpoXgppXgp43gpp/gp4tf4Kao4Kat4KeHX+CmoeCmv+CmuOCnhycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+CmsOCmrOCmv+CmrOCmvuCmsF/gprjgp4vgpq7gpqzgpr7gprBf4Kau4KaZ4KeN4KaX4Kay4Kas4Ka+4KawX+CmrOCngeCmp+CmrOCmvuCmsF/gpqzgp4Pgprngprjgp43gpqrgpqTgpr/gpqzgpr7gprBf4Ka24KeB4KaV4KeN4Kaw4Kas4Ka+4KawX+CmtuCmqOCmv+CmrOCmvuCmsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CmsOCmrOCmv1/gprjgp4vgpq5f4Kau4KaZ4KeN4KaX4KayX+CmrOCngeCmp1/gpqzgp4Pgprngprjgp43gpqrgpqTgpr9f4Ka24KeB4KaV4KeN4KawX+CmtuCmqOCmvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgprDgpqzgpr9f4Ka44KeL4KauX+CmruCmmeCnjeCml+Cmsl/gpqzgp4Hgpqdf4Kas4KeD4Ka5X+CmtuCngeCmleCnjeCmsF/gprbgpqjgpr8nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgprjgpq7gp58nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCmuOCmruCnnycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4Ka44Kau4KefJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCmuOCmruCnnycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CmhuCmnF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpobgppfgpr7gpq7gp4DgppXgpr7gprJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgppfgpqTgppXgpr7gprJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+Cml+CmpF0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgpqrgprDgp4cnLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCmhuCml+CnhycsXG4gICAgICAgICAgICBzOiAn4KaV4Kef4KeH4KaVIOCmuOCnh+CmleCnh+CmqOCnjeCmoScsXG4gICAgICAgICAgICBzczogJyVkIOCmuOCnh+CmleCnh+CmqOCnjeCmoScsXG4gICAgICAgICAgICBtOiAn4KaP4KaVIOCmruCmv+CmqOCmv+CmnycsXG4gICAgICAgICAgICBtbTogJyVkIOCmruCmv+CmqOCmv+CmnycsXG4gICAgICAgICAgICBoOiAn4KaP4KaVIOCmmOCmqOCnjeCmn+CmvicsXG4gICAgICAgICAgICBoaDogJyVkIOCmmOCmqOCnjeCmn+CmvicsXG4gICAgICAgICAgICBkOiAn4KaP4KaVIOCmpuCmv+CmqCcsXG4gICAgICAgICAgICBkZDogJyVkIOCmpuCmv+CmqCcsXG4gICAgICAgICAgICBNOiAn4KaP4KaVIOCmruCmvuCmuCcsXG4gICAgICAgICAgICBNTTogJyVkIOCmruCmvuCmuCcsXG4gICAgICAgICAgICB5OiAn4KaP4KaVIOCmrOCmm+CmsCcsXG4gICAgICAgICAgICB5eTogJyVkIOCmrOCmm+CmsCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgp6fgp6jgp6ngp6rgp6vgp6zgp63gp67gp6/gp6ZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CmsOCmvuCmpHzgpq3gp4vgprB84Ka44KaV4Ka+4KayfOCmpuCngeCmquCngeCmsHzgpqzgpr/gppXgpr7gprJ84Ka44Kao4KeN4Kan4KeN4Kav4Ka+fOCmsOCmvuCmpC8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CmsOCmvuCmpCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CmreCni+CmsCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgprjgppXgpr7gprInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kam4KeB4Kaq4KeB4KawJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDMgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CmrOCmv+CmleCmvuCmsicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CmuOCmqOCnjeCmp+CnjeCmr+CmvicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmsOCmvuCmpCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCA2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpq3gp4vgprAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmuOCmleCmvuCmsic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kam4KeB4Kaq4KeB4KawJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpqzgpr/gppXgpr7gprInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmuOCmqOCnjeCmp+CnjeCmr+Cmvic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kaw4Ka+4KakJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJuQmQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQmVuZ2FsaSBbYm5dXG4vLyEgYXV0aG9yIDogS2F1c2hpayBHYW5kaGkgOiBodHRwczovL2dpdGh1Yi5jb20va2F1c2hpa2dhbmRoaVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgIDE6ICfgp6cnLFxuICAgICAgICAgICAgMjogJ+CnqCcsXG4gICAgICAgICAgICAzOiAn4KepJyxcbiAgICAgICAgICAgIDQ6ICfgp6onLFxuICAgICAgICAgICAgNTogJ+CnqycsXG4gICAgICAgICAgICA2OiAn4KesJyxcbiAgICAgICAgICAgIDc6ICfgp60nLFxuICAgICAgICAgICAgODogJ+CnricsXG4gICAgICAgICAgICA5OiAn4KevJyxcbiAgICAgICAgICAgIDA6ICfgp6YnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4KenJzogJzEnLFxuICAgICAgICAgICAgJ+CnqCc6ICcyJyxcbiAgICAgICAgICAgICfgp6knOiAnMycsXG4gICAgICAgICAgICAn4KeqJzogJzQnLFxuICAgICAgICAgICAgJ+Cnqyc6ICc1JyxcbiAgICAgICAgICAgICfgp6wnOiAnNicsXG4gICAgICAgICAgICAn4KetJzogJzcnLFxuICAgICAgICAgICAgJ+Cnric6ICc4JyxcbiAgICAgICAgICAgICfgp68nOiAnOScsXG4gICAgICAgICAgICAn4KemJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGJuID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYm4nLCB7XG4gICAgICAgIG1vbnRoczogJ+CmnOCmvuCmqOCngeCnn+CmvuCmsOCmv1/gpqvgp4fgpqzgp43gprDgp4Hgp5/gpr7gprDgpr9f4Kau4Ka+4Kaw4KeN4KaaX+Cmj+CmquCnjeCmsOCmv+Cmsl/gpq7gp4df4Kac4KeB4KaoX+CmnOCngeCmsuCmvuCmh1/gpobgppfgprjgp43gpp9f4Ka44KeH4Kaq4KeN4Kaf4KeH4Kau4KeN4Kas4KawX+CmheCmleCnjeCmn+Cni+CmrOCmsF/gpqjgpq3gp4fgpq7gp43gpqzgprBf4Kah4Ka/4Ka44KeH4Kau4KeN4Kas4KawJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfgppzgpr7gpqjgp4Ff4Kar4KeH4Kas4KeN4Kaw4KeBX+CmruCmvuCmsOCnjeCmml/gpo/gpqrgp43gprDgpr/gprJf4Kau4KeHX+CmnOCngeCmqF/gppzgp4HgprLgpr7gpodf4KaG4KaX4Ka44KeN4KafX+CmuOCnh+CmquCnjeCmn1/gpoXgppXgp43gpp/gp4tf4Kao4Kat4KeHX+CmoeCmv+CmuOCnhycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+CmsOCmrOCmv+CmrOCmvuCmsF/gprjgp4vgpq7gpqzgpr7gprBf4Kau4KaZ4KeN4KaX4Kay4Kas4Ka+4KawX+CmrOCngeCmp+CmrOCmvuCmsF/gpqzgp4Pgprngprjgp43gpqrgpqTgpr/gpqzgpr7gprBf4Ka24KeB4KaV4KeN4Kaw4Kas4Ka+4KawX+CmtuCmqOCmv+CmrOCmvuCmsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CmsOCmrOCmv1/gprjgp4vgpq5f4Kau4KaZ4KeN4KaX4KayX+CmrOCngeCmp1/gpqzgp4Pgprngprjgp43gpqrgpqTgpr9f4Ka24KeB4KaV4KeN4KawX+CmtuCmqOCmvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgprDgpqzgpr9f4Ka44KeL4KauX+CmruCmmeCnjeCml+Cmsl/gpqzgp4Hgpqdf4Kas4KeD4Ka5X+CmtuCngeCmleCnjeCmsF/gprbgpqjgpr8nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgprjgpq7gp58nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCmuOCmruCnnycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4Ka44Kau4KefJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCmuOCmruCnnycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CmhuCmnF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpobgppfgpr7gpq7gp4DgppXgpr7gprJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgppfgpqTgppXgpr7gprJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+Cml+CmpF0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgpqrgprDgp4cnLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCmhuCml+CnhycsXG4gICAgICAgICAgICBzOiAn4KaV4Kef4KeH4KaVIOCmuOCnh+CmleCnh+CmqOCnjeCmoScsXG4gICAgICAgICAgICBzczogJyVkIOCmuOCnh+CmleCnh+CmqOCnjeCmoScsXG4gICAgICAgICAgICBtOiAn4KaP4KaVIOCmruCmv+CmqOCmv+CmnycsXG4gICAgICAgICAgICBtbTogJyVkIOCmruCmv+CmqOCmv+CmnycsXG4gICAgICAgICAgICBoOiAn4KaP4KaVIOCmmOCmqOCnjeCmn+CmvicsXG4gICAgICAgICAgICBoaDogJyVkIOCmmOCmqOCnjeCmn+CmvicsXG4gICAgICAgICAgICBkOiAn4KaP4KaVIOCmpuCmv+CmqCcsXG4gICAgICAgICAgICBkZDogJyVkIOCmpuCmv+CmqCcsXG4gICAgICAgICAgICBNOiAn4KaP4KaVIOCmruCmvuCmuCcsXG4gICAgICAgICAgICBNTTogJyVkIOCmruCmvuCmuCcsXG4gICAgICAgICAgICB5OiAn4KaP4KaVIOCmrOCmm+CmsCcsXG4gICAgICAgICAgICB5eTogJyVkIOCmrOCmm+CmsCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgp6fgp6jgp6ngp6rgp6vgp6zgp63gp67gp6/gp6ZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gprDgpr7gpqR84Ka44KaV4Ka+4KayfOCmpuCngeCmquCngeCmsHzgpqzgpr/gppXgpr7gprJ84Kaw4Ka+4KakLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChtZXJpZGllbSA9PT0gJ+CmsOCmvuCmpCcgJiYgaG91ciA+PSA0KSB8fFxuICAgICAgICAgICAgICAgIChtZXJpZGllbSA9PT0gJ+CmpuCngeCmquCngeCmsCcgJiYgaG91ciA8IDUpIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgpqzgpr/gppXgpr7gprInXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kaw4Ka+4KakJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgprjgppXgpr7gprInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmpuCngeCmquCngeCmsCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kas4Ka/4KaV4Ka+4KayJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgprDgpr7gpqQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYm47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGliZXRhbiBbYm9dXG4vLyEgYXV0aG9yIDogVGh1cHRlbiBOLiBDaGFrcmlzaGFyIDogaHR0cHM6Ly9naXRodWIuY29tL3ZhanJhZG9nXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgMTogJ+C8oScsXG4gICAgICAgICAgICAyOiAn4LyiJyxcbiAgICAgICAgICAgIDM6ICfgvKMnLFxuICAgICAgICAgICAgNDogJ+C8pCcsXG4gICAgICAgICAgICA1OiAn4LylJyxcbiAgICAgICAgICAgIDY6ICfgvKYnLFxuICAgICAgICAgICAgNzogJ+C8pycsXG4gICAgICAgICAgICA4OiAn4LyoJyxcbiAgICAgICAgICAgIDk6ICfgvKknLFxuICAgICAgICAgICAgMDogJ+C8oCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgvKEnOiAnMScsXG4gICAgICAgICAgICAn4LyiJzogJzInLFxuICAgICAgICAgICAgJ+C8oyc6ICczJyxcbiAgICAgICAgICAgICfgvKQnOiAnNCcsXG4gICAgICAgICAgICAn4LylJzogJzUnLFxuICAgICAgICAgICAgJ+C8pic6ICc2JyxcbiAgICAgICAgICAgICfgvKcnOiAnNycsXG4gICAgICAgICAgICAn4LyoJzogJzgnLFxuICAgICAgICAgICAgJ+C8qSc6ICc5JyxcbiAgICAgICAgICAgICfgvKAnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgYm8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdibycsIHtcbiAgICAgICAgbW9udGhzOiAn4L2f4L6z4LyL4L2W4LyL4L2R4L2E4LyL4L2U4L28X+C9n+C+s+C8i+C9luC8i+C9guC9ieC9suC9puC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvYLgvabgvbTgvZjgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2e4L2y4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9o+C+lOC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZHgvrLgvbTgvYLgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2R4L204L2T4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9ouC+kuC+seC9keC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZHgvYLgvbTgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2F4L204LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9heC9tOC8i+C9guC9heC9suC9guC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvYXgvbTgvIvgvYLgvYngvbLgvabgvIvgvZQnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ+C9n+C+s+C8izFf4L2f4L6z4LyLMl/gvZ/gvrPgvIszX+C9n+C+s+C8izRf4L2f4L6z4LyLNV/gvZ/gvrPgvIs2X+C9n+C+s+C8izdf4L2f4L6z4LyLOF/gvZ/gvrPgvIs5X+C9n+C+s+C8izEwX+C9n+C+s+C8izExX+C9n+C+s+C8izEyJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IC9eKOC9n+C+s+C8i1xcZHsxLDJ9KS8sXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ+C9guC9n+C9oOC8i+C9ieC9suC8i+C9mOC8i1/gvYLgvZ/gvaDgvIvgvZ/gvrPgvIvgvZbgvItf4L2C4L2f4L2g4LyL4L2Y4L2y4L2C4LyL4L2R4L2Y4L2i4LyLX+C9guC9n+C9oOC8i+C9o+C+t+C9guC8i+C9lOC8i1/gvYLgvZ/gvaDgvIvgvZXgvbTgvaLgvIvgvZbgvbRf4L2C4L2f4L2g4LyL4L2U4LyL4L2m4L2E4L2m4LyLX+C9guC9n+C9oOC8i+C9puC+pOC9uuC9k+C8i+C9lOC8iycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4L2J4L2y4LyL4L2Y4LyLX+C9n+C+s+C8i+C9luC8i1/gvZjgvbLgvYLgvIvgvZHgvZjgvaLgvItf4L2j4L634L2C4LyL4L2U4LyLX+C9leC9tOC9ouC8i+C9luC9tF/gvZTgvIvgvabgvYTgvabgvItf4L2m4L6k4L264L2T4LyL4L2U4LyLJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+C9ieC9sl/gvZ/gvrNf4L2Y4L2y4L2CX+C9o+C+t+C9gl/gvZXgvbTgvaJf4L2m4L2E4L2mX+C9puC+pOC9uuC9kycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgvZHgvbLgvIvgvaLgvbLgvYRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4L2m4L2E4LyL4L2J4L2y4L2TXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vgvZbgvZHgvbTgvZPgvIvgvZXgvrLgvYLgvIvgvaLgvpfgvbrgvabgvIvgvZhdLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C9geC8i+C9puC9hF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4L2W4L2R4L204L2T4LyL4L2V4L6y4L2C4LyL4L2Y4L2Q4L2g4LyL4L2YXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOC9o+C8iycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4L2m4L6U4L2T4LyL4L2jJyxcbiAgICAgICAgICAgIHM6ICfgvaPgvZjgvIvgvabgvYQnLFxuICAgICAgICAgICAgc3M6ICclZCDgvabgvpDgvaLgvIvgvYbgvI0nLFxuICAgICAgICAgICAgbTogJ+C9puC+kOC9ouC8i+C9mOC8i+C9guC9heC9suC9gicsXG4gICAgICAgICAgICBtbTogJyVkIOC9puC+kOC9ouC8i+C9mCcsXG4gICAgICAgICAgICBoOiAn4L2G4L204LyL4L2a4L284L2R4LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4L2G4L204LyL4L2a4L284L2RJyxcbiAgICAgICAgICAgIGQ6ICfgvYngvbLgvZPgvIvgvYLgvYXgvbLgvYInLFxuICAgICAgICAgICAgZGQ6ICclZCDgvYngvbLgvZPgvIsnLFxuICAgICAgICAgICAgTTogJ+C9n+C+s+C8i+C9luC8i+C9guC9heC9suC9gicsXG4gICAgICAgICAgICBNTTogJyVkIOC9n+C+s+C8i+C9licsXG4gICAgICAgICAgICB5OiAn4L2j4L284LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4L2j4L28JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+C8oeC8ouC8o+C8pOC8peC8puC8p+C8qOC8qeC8oF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C9mOC9muC9k+C8i+C9mOC9vHzgvZ7gvbzgvYLgvabgvIvgvYDgvaZ84L2J4L2y4L2T4LyL4L2C4L204L2EfOC9keC9guC9vOC9hOC8i+C9keC9gnzgvZjgvZrgvZPgvIvgvZjgvbwvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKG1lcmlkaWVtID09PSAn4L2Y4L2a4L2T4LyL4L2Y4L28JyAmJiBob3VyID49IDQpIHx8XG4gICAgICAgICAgICAgICAgKG1lcmlkaWVtID09PSAn4L2J4L2y4L2T4LyL4L2C4L204L2EJyAmJiBob3VyIDwgNSkgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+C9keC9guC9vOC9hOC8i+C9keC9gidcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgvZjgvZrgvZPgvIvgvZjgvbwnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9nuC9vOC9guC9puC8i+C9gOC9pic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4L2J4L2y4L2T4LyL4L2C4L204L2EJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgvZHgvYLgvbzgvYTgvIvgvZHgvYInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9mOC9muC9k+C8i+C9mOC9vCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBibztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCcmV0b24gW2JyXVxuLy8hIGF1dGhvciA6IEplYW4tQmFwdGlzdGUgTGUgRHVpZ291IDogaHR0cHM6Ly9naXRodWIuY29tL2pibGVkdWlnb3VcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgbW06ICdtdW51dGVubicsXG4gICAgICAgICAgICBNTTogJ21peicsXG4gICAgICAgICAgICBkZDogJ2RldmV6aCcsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBtdXRhdGlvbihmb3JtYXRba2V5XSwgbnVtYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BlY2lhbE11dGF0aW9uRm9yWWVhcnMobnVtYmVyKSB7XG4gICAgICAgIHN3aXRjaCAobGFzdE51bWJlcihudW1iZXIpKSB7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcgYmxvYXonO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyB2bG9heic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbGFzdE51bWJlcihudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA+IDkpIHtcbiAgICAgICAgICAgIHJldHVybiBsYXN0TnVtYmVyKG51bWJlciAlIDEwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtdXRhdGlvbih0ZXh0LCBudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgcmV0dXJuIHNvZnRNdXRhdGlvbih0ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc29mdE11dGF0aW9uKHRleHQpIHtcbiAgICAgICAgdmFyIG11dGF0aW9uVGFibGUgPSB7XG4gICAgICAgICAgICBtOiAndicsXG4gICAgICAgICAgICBiOiAndicsXG4gICAgICAgICAgICBkOiAneicsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChtdXRhdGlvblRhYmxlW3RleHQuY2hhckF0KDApXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbXV0YXRpb25UYWJsZVt0ZXh0LmNoYXJBdCgwKV0gKyB0ZXh0LnN1YnN0cmluZygxKTtcbiAgICB9XG5cbiAgICB2YXIgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmdlbi9pLFxuICAgICAgICAgICAgL15jW8q8XFwnXWh3ZS9pLFxuICAgICAgICAgICAgL15tZXUvaSxcbiAgICAgICAgICAgIC9eZWJyL2ksXG4gICAgICAgICAgICAvXm1hZS9pLFxuICAgICAgICAgICAgL14obWV6fGV2ZSkvaSxcbiAgICAgICAgICAgIC9eZ291L2ksXG4gICAgICAgICAgICAvXmVvcy9pLFxuICAgICAgICAgICAgL15nd2UvaSxcbiAgICAgICAgICAgIC9eaGVyL2ksXG4gICAgICAgICAgICAvXmR1L2ksXG4gICAgICAgICAgICAvXmtlci9pLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNSZWdleCA9XG4gICAgICAgICAgICAvXihnZW52ZXJ8Y1vKvFxcJ11od2V2cmVyfG1ldXJ6aHxlYnJlbHxtYWV8bWV6aGV2ZW58Z291ZXJlfGVvc3R8Z3dlbmdvbG98aGVyZXxkdXxrZXJ6dXxnZW58Y1vKvFxcJ11od2V8bWV1fGVicnxtYWV8ZXZlfGdvdXxlb3N8Z3dlfGhlcnxkdXxrZXIpL2ksXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4ID1cbiAgICAgICAgICAgIC9eKGdlbnZlcnxjW8q8XFwnXWh3ZXZyZXJ8bWV1cnpofGVicmVsfG1hZXxtZXpoZXZlbnxnb3VlcmV8ZW9zdHxnd2VuZ29sb3xoZXJlfGR1fGtlcnp1KS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4ID1cbiAgICAgICAgICAgIC9eKGdlbnxjW8q8XFwnXWh3ZXxtZXV8ZWJyfG1hZXxldmV8Z291fGVvc3xnd2V8aGVyfGR1fGtlcikvaSxcbiAgICAgICAgZnVsbFdlZWtkYXlzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXnN1bC9pLFxuICAgICAgICAgICAgL15sdW4vaSxcbiAgICAgICAgICAgIC9ebWV1cnpoL2ksXG4gICAgICAgICAgICAvXm1lcmNbyrxcXCddaGVyL2ksXG4gICAgICAgICAgICAvXnlhb3UvaSxcbiAgICAgICAgICAgIC9eZ3dlbmVyL2ksXG4gICAgICAgICAgICAvXnNhZG9ybi9pLFxuICAgICAgICBdLFxuICAgICAgICBzaG9ydFdlZWtkYXlzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXlN1bC9pLFxuICAgICAgICAgICAgL15MdW4vaSxcbiAgICAgICAgICAgIC9eTWV1L2ksXG4gICAgICAgICAgICAvXk1lci9pLFxuICAgICAgICAgICAgL15ZYW8vaSxcbiAgICAgICAgICAgIC9eR3dlL2ksXG4gICAgICAgICAgICAvXlNhZC9pLFxuICAgICAgICBdLFxuICAgICAgICBtaW5XZWVrZGF5c1BhcnNlID0gW1xuICAgICAgICAgICAgL15TdS9pLFxuICAgICAgICAgICAgL15MdS9pLFxuICAgICAgICAgICAgL15NZShbXnJdfCQpL2ksXG4gICAgICAgICAgICAvXk1lci9pLFxuICAgICAgICAgICAgL15ZYS9pLFxuICAgICAgICAgICAgL15Hdy9pLFxuICAgICAgICAgICAgL15TYS9pLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGJyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYnInLCB7XG4gICAgICAgIG1vbnRoczogJ0dlbnZlcl9Dyrxod2V2cmVyX01ldXJ6aF9FYnJlbF9NYWVfTWV6aGV2ZW5fR291ZXJlX0Vvc3RfR3dlbmdvbG9fSGVyZV9EdV9LZXJ6dScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdHZW5fQ8q8aHdlX01ldV9FYnJfTWFlX0V2ZV9Hb3VfRW9zX0d3ZV9IZXJfRHVfS2VyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bF9MdW5fTWV1cnpoX01lcmPKvGhlcl9ZYW91X0d3ZW5lcl9TYWRvcm4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdWxfTHVuX01ldV9NZXJfWWFvX0d3ZV9TYWQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTHVfTWVfTWVyX1lhX0d3X1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlOiBtaW5XZWVrZGF5c1BhcnNlLFxuICAgICAgICBmdWxsV2Vla2RheXNQYXJzZTogZnVsbFdlZWtkYXlzUGFyc2UsXG4gICAgICAgIHNob3J0V2Vla2RheXNQYXJzZTogc2hvcnRXZWVrZGF5c1BhcnNlLFxuICAgICAgICBtaW5XZWVrZGF5c1BhcnNlOiBtaW5XZWVrZGF5c1BhcnNlLFxuXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiBtb250aHNTdHJpY3RSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogbW9udGhzU2hvcnRTdHJpY3RSZWdleCxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcblxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2Egdml6XSBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbYSB2aXpdIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbYSB2aXpdIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hpeml2IGRhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1dhcmPKvGhvYXpoIGRhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2RhXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0RlY8q8aCBkYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtwYXNldCBkYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdhLWJlbm4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMq8em8nLFxuICAgICAgICAgICAgczogJ3VuIG5lYmV1ZCBzZWdvbmRlbm5vw7knLFxuICAgICAgICAgICAgc3M6ICclZCBlaWxlbm4nLFxuICAgICAgICAgICAgbTogJ3VyIHZ1bnV0ZW5uJyxcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoTXV0YXRpb24sXG4gICAgICAgICAgICBoOiAndW4gZXVyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgZXVyJyxcbiAgICAgICAgICAgIGQ6ICd1biBkZXZlemgnLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbixcbiAgICAgICAgICAgIE06ICd1ciBtaXonLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbixcbiAgICAgICAgICAgIHk6ICd1ciBibG9heicsXG4gICAgICAgICAgICB5eTogc3BlY2lhbE11dGF0aW9uRm9yWWVhcnMsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShhw7F8dmV0KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSBudW1iZXIgPT09IDEgPyAnYcOxJyA6ICd2ZXQnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvYS5tLnxnLm0uLywgLy8gZ291ZGUgbWVyZW5uIHwgYS1yYW9rIG1lcmVublxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbiA9PT0gJ2cubS4nO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCAxMiA/ICdhLm0uJyA6ICdnLm0uJztcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBicjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCb3NuaWFuIFtic11cbi8vISBhdXRob3IgOiBOZWRpbSBDaG9saWNoIDogaHR0cHM6Ly9naXRodWIuY29tL2Zyb250eWFyZFxuLy8hIGJhc2VkIG9uIChocikgdHJhbnNsYXRpb24gYnkgQm9qYW4gTWFya292acSHXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdqZWRuYSBtaW51dGEnIDogJ2plZG5lIG1pbnV0ZSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0YSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0ZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnamVkYW4gc2F0JyA6ICdqZWRub2cgc2F0YSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0aSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2Rhbic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdkYW5hJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWNpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5lJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluYSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgYnMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdicycsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iYXJfb2t0b2Jhcl9ub3ZlbWJhcl9kZWNlbWJhcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnamFuLl9mZWIuX21hci5fYXByLl9tYWouX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV/EjWV0dnJ0YWtfcGV0YWtfc3Vib3RhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmVkLl9wb24uX3V0by5fc3JpLl/EjWV0Ll9wZXQuX3N1Yi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fdXRfc3JfxI1lX3BlX3N1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkYW5hcyB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3N1dHJhIHVdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtuZWRqZWxqdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3NyaWplZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzdWJvdHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdcSNZXIgdV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWx1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGldIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJpamUgJXMnLFxuICAgICAgICAgICAgczogJ3BhciBzZWt1bmRpJyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICdkYW4nLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06ICdtamVzZWMnLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6ICdnb2RpbnUnLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBicztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDYXRhbGFuIFtjYV1cbi8vISBhdXRob3IgOiBKdWFuIEcuIEh1cnRhZG8gOiBodHRwczovL2dpdGh1Yi5jb20vanVhbmdodXJ0YWRvXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgY2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdjYScsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOlxuICAgICAgICAgICAgICAgICdnZW5lcl9mZWJyZXJfbWFyw6dfYWJyaWxfbWFpZ19qdW55X2p1bGlvbF9hZ29zdF9zZXRlbWJyZV9vY3R1YnJlX25vdmVtYnJlX2Rlc2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogXCJkZSBnZW5lcl9kZSBmZWJyZXJfZGUgbWFyw6dfZCdhYnJpbF9kZSBtYWlnX2RlIGp1bnlfZGUganVsaW9sX2QnYWdvc3RfZGUgc2V0ZW1icmVfZCdvY3R1YnJlX2RlIG5vdmVtYnJlX2RlIGRlc2VtYnJlXCIuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9EW29EXT8oXFxzKStNTU1NLyxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnZ2VuLl9mZWJyLl9tYXLDp19hYnIuX21haWdfanVueV9qdWwuX2FnLl9zZXQuX29jdC5fbm92Ll9kZXMuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ2RpdW1lbmdlX2RpbGx1bnNfZGltYXJ0c19kaW1lY3Jlc19kaWpvdXNfZGl2ZW5kcmVzX2Rpc3NhYnRlJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkZy5fZGwuX2R0Ll9kYy5fZGouX2R2Ll9kcy4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGdfZGxfZHRfZGNfZGpfZHZfZHMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBsbDogJ0QgTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFtkZV0gWVlZWSBbYSBsZXNdIEg6bW0nLFxuICAgICAgICAgICAgbGxsOiAnRCBNTU0gWVlZWSwgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gW2RlXSBZWVlZIFthIGxlc10gSDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkIEQgTU1NIFlZWVksIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2F2dWkgYSAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdsZXMnIDogJ2xhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2RlbcOgIGEgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnbGVzJyA6ICdsYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFthICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ2xlcycgOiAnbGEnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYWhpciBhICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ2xlcycgOiAnbGEnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbZWxdIGRkZGQgW3Bhc3NhdCBhICcgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpICE9PSAxID8gJ2xlcycgOiAnbGEnKSArXG4gICAgICAgICAgICAgICAgICAgICddIExUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IFwiZCdhcXXDrSAlc1wiLFxuICAgICAgICAgICAgcGFzdDogJ2ZhICVzJyxcbiAgICAgICAgICAgIHM6ICd1bnMgc2Vnb25zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vnb25zJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0cycsXG4gICAgICAgICAgICBoOiAndW5hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JlcycsXG4gICAgICAgICAgICBkOiAndW4gZGlhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGllcycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzb3MnLFxuICAgICAgICAgICAgeTogJ3VuIGFueScsXG4gICAgICAgICAgICB5eTogJyVkIGFueXMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0ocnxufHR8w6h8YSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPVxuICAgICAgICAgICAgICAgIG51bWJlciA9PT0gMVxuICAgICAgICAgICAgICAgICAgICA/ICdyJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gMlxuICAgICAgICAgICAgICAgICAgICA/ICduJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gM1xuICAgICAgICAgICAgICAgICAgICA/ICdyJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gNFxuICAgICAgICAgICAgICAgICAgICA/ICd0J1xuICAgICAgICAgICAgICAgICAgICA6ICfDqCc7XG4gICAgICAgICAgICBpZiAocGVyaW9kID09PSAndycgfHwgcGVyaW9kID09PSAnVycpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAnYSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ3plY2ggW2NzXVxuLy8hIGF1dGhvciA6IHBldHJiZWxhIDogaHR0cHM6Ly9naXRodWIuY29tL3BldHJiZWxhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0ge1xuICAgICAgICAgICAgZm9ybWF0OiAnbGVkZW5fw7pub3JfYsWZZXplbl9kdWJlbl9rdsSbdGVuX8SNZXJ2ZW5fxI1lcnZlbmVjX3NycGVuX3rDocWZw61fxZnDrWplbl9saXN0b3BhZF9wcm9zaW5lYycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTpcbiAgICAgICAgICAgICAgICAnbGVkbmFfw7pub3JhX2LFmWV6bmFfZHVibmFfa3bEm3RuYV/EjWVydm5hX8SNZXJ2ZW5jZV9zcnBuYV96w6HFmcOtX8WZw61qbmFfbGlzdG9wYWR1X3Byb3NpbmNlJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSAnbGVkX8O6bm9fYsWZZV9kdWJfa3bEm1/EjXZuX8SNdmNfc3JwX3rDocWZX8WZw61qX2xpc19wcm8nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15sZWQvaSxcbiAgICAgICAgICAgIC9ew7puby9pLFxuICAgICAgICAgICAgL15ixZllL2ksXG4gICAgICAgICAgICAvXmR1Yi9pLFxuICAgICAgICAgICAgL15rdsSbL2ksXG4gICAgICAgICAgICAvXijEjXZufMSNZXJ2ZW4kfMSNZXJ2bmEpL2ksXG4gICAgICAgICAgICAvXijEjXZjfMSNZXJ2ZW5lY3zEjWVydmVuY2UpL2ksXG4gICAgICAgICAgICAvXnNycC9pLFxuICAgICAgICAgICAgL156w6HFmS9pLFxuICAgICAgICAgICAgL17FmcOtai9pLFxuICAgICAgICAgICAgL15saXMvaSxcbiAgICAgICAgICAgIC9ecHJvL2ksXG4gICAgICAgIF0sXG4gICAgICAgIC8vIE5PVEU6ICfEjWVydmVuJyBpcyBzdWJzdHJpbmcgb2YgJ8SNZXJ2ZW5lYyc7IHRoZXJlZm9yZSAnxI1lcnZlbmVjJyBtdXN0IHByZWNlZGUgJ8SNZXJ2ZW4nIGluIHRoZSByZWdleCB0byBiZSBmdWxseSBtYXRjaGVkLlxuICAgICAgICAvLyBPdGhlcndpc2UgcGFyc2VyIG1hdGNoZXMgJzEuIMSNZXJ2ZW5lYycgYXMgJzEuIMSNZXJ2ZW4nICsgJ2VjJy5cbiAgICAgICAgbW9udGhzUmVnZXggPVxuICAgICAgICAgICAgL14obGVkZW58w7pub3J8YsWZZXplbnxkdWJlbnxrdsSbdGVufMSNZXJ2ZW5lY3zEjWVydmVuY2V8xI1lcnZlbnzEjWVydm5hfHNycGVufHrDocWZw618xZnDrWplbnxsaXN0b3BhZHxwcm9zaW5lY3xsZWR8w7pub3xixZllfGR1YnxrdsSbfMSNdm58xI12Y3xzcnB8esOhxZl8xZnDrWp8bGlzfHBybykvaTtcblxuICAgIGZ1bmN0aW9uIHBsdXJhbChuKSB7XG4gICAgICAgIHJldHVybiBuID4gMSAmJiBuIDwgNSAmJiB+fihuIC8gMTApICE9PSAxO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzogLy8gYSBmZXcgc2Vjb25kcyAvIGluIGEgZmV3IHNlY29uZHMgLyBhIGZldyBzZWNvbmRzIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3DDoXIgc2VrdW5kJyA6ICdww6FyIHNla3VuZGFtaSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6IC8vIDkgc2Vjb25kcyAvIGluIDkgc2Vjb25kcyAvIDkgc2Vjb25kcyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Nla3VuZHknIDogJ3Nla3VuZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnc2VrdW5kYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdtJzogLy8gYSBtaW51dGUgLyBpbiBhIG1pbnV0ZSAvIGEgbWludXRlIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ21pbnV0YScgOiBpc0Z1dHVyZSA/ICdtaW51dHUnIDogJ21pbnV0b3UnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOiAvLyA5IG1pbnV0ZXMgLyBpbiA5IG1pbnV0ZXMgLyA5IG1pbnV0ZXMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtaW51dHknIDogJ21pbnV0Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtaW51dGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaCc6IC8vIGFuIGhvdXIgLyBpbiBhbiBob3VyIC8gYW4gaG91ciBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdob2RpbmEnIDogaXNGdXR1cmUgPyAnaG9kaW51JyA6ICdob2Rpbm91JztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzogLy8gOSBob3VycyAvIGluIDkgaG91cnMgLyA5IGhvdXJzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnaG9kaW55JyA6ICdob2RpbicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnaG9kaW5hbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2QnOiAvLyBhIGRheSAvIGluIGEgZGF5IC8gYSBkYXkgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZGVuJyA6ICdkbmVtJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzogLy8gOSBkYXlzIC8gaW4gOSBkYXlzIC8gOSBkYXlzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnZG55JyA6ICdkbsOtJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkbnknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ00nOiAvLyBhIG1vbnRoIC8gaW4gYSBtb250aCAvIGEgbW9udGggYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbcSbc8OtYycgOiAnbcSbc8OtY2VtJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzogLy8gOSBtb250aHMgLyBpbiA5IG1vbnRocyAvIDkgbW9udGhzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbcSbc8OtY2UnIDogJ23Em3PDrWPFrycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcSbc8OtY2knO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3knOiAvLyBhIHllYXIgLyBpbiBhIHllYXIgLyBhIHllYXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAncm9rJyA6ICdyb2tlbSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6IC8vIDkgeWVhcnMgLyBpbiA5IHllYXJzIC8gOSB5ZWFycyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Jva3knIDogJ2xldCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbGV0eSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnY3MnLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzU2hvcnQsXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIC8vIE5PVEU6ICfEjWVydmVuJyBpcyBzdWJzdHJpbmcgb2YgJ8SNZXJ2ZW5lYyc7IHRoZXJlZm9yZSAnxI1lcnZlbmVjJyBtdXN0IHByZWNlZGUgJ8SNZXJ2ZW4nIGluIHRoZSByZWdleCB0byBiZSBmdWxseSBtYXRjaGVkLlxuICAgICAgICAvLyBPdGhlcndpc2UgcGFyc2VyIG1hdGNoZXMgJzEuIMSNZXJ2ZW5lYycgYXMgJzEuIMSNZXJ2ZW4nICsgJ2VjJy5cbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6XG4gICAgICAgICAgICAvXihsZWRlbnxsZWRuYXzDum5vcmF8w7pub3J8YsWZZXplbnxixZllem5hfGR1YmVufGR1Ym5hfGt2xJt0ZW58a3bEm3RuYXzEjWVydmVuZWN8xI1lcnZlbmNlfMSNZXJ2ZW58xI1lcnZuYXxzcnBlbnxzcnBuYXx6w6HFmcOtfMWZw61qZW58xZnDrWpuYXxsaXN0b3BhZHV8bGlzdG9wYWR8cHJvc2luZWN8cHJvc2luY2UpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6XG4gICAgICAgICAgICAvXihsZWR8w7pub3xixZllfGR1YnxrdsSbfMSNdm58xI12Y3xzcnB8esOhxZl8xZnDrWp8bGlzfHBybykvaSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWTEm2xlX3BvbmTEm2zDrV/DunRlcsO9X3N0xZllZGFfxI10dnJ0ZWtfcMOhdGVrX3NvYm90YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lX3BvX8O6dF9zdF/EjXRfcMOhX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX8O6dF9zdF/EjXRfcMOhX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgbDogJ0QuIE0uIFlZWVknLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkbmVzIHZdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbesOtdHJhIHZdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3YgbmVkxJtsaSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gZGRkZCBbdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2ZSBzdMWZZWR1IHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdmUgxI10dnJ0ZWsgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IHDDoXRlayB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Ygc29ib3R1IHZdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1t2xI1lcmEgdl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWxvdSBuZWTEm2xpIHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMOpXSBkZGRkIFt2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsb3Ugc3TFmWVkdSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDvV0gZGRkZCBbdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bG91IHNvYm90dSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3DFmWVkICVzJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBjcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDaHV2YXNoIFtjdl1cbi8vISBhdXRob3IgOiBBbmF0b2x5IE1pcm9ub3YgOiBodHRwczovL2dpdGh1Yi5jb20vbWlyb250b2xpXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgY3YgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdjdicsIHtcbiAgICAgICAgbW9udGhzOiAn0LrTkdGA0LvQsNGHX9C90LDRgNOR0YFf0L/Rg9GIX9Cw0LrQsF/QvNCw0Llf0qvTl9GA0YLQvNC1X9GD0YLTkV/Sq9GD0YDQu9CwX9Cw0LLTkdC9X9GO0L/QsF/Rh9Oz0Lpf0YDQsNGI0YLQsNCyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9C605HRgF/QvdCw0YBf0L/Rg9GIX9Cw0LrQsF/QvNCw0Llf0qvTl9GAX9GD0YLTkV/Sq9GD0YBf0LDQstC9X9GO0L/QsF/Rh9Oz0Lpf0YDQsNGIJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICfQstGL0YDRgdCw0YDQvdC40LrRg9C9X9GC0YPQvdGC0LjQutGD0L1f0YvRgtC70LDRgNC40LrRg9C9X9GO0L3QutGD0L1f0LrTl9Kr0L3QtdGA0L3QuNC60YPQvV/RjdGA0L3QtdC60YPQvV/RiNOR0LzQsNGC0LrRg9C9Jy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQstGL0YBf0YLRg9C9X9GL0YLQu1/RjtC9X9C605fSq1/RjdGA0L1f0YjTkdC8Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9Cy0YBf0YLQvV/Ri9GCX9GO0L1f0LrSq1/RjdGAX9GI0LwnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnWVlZWSBb0qvRg9C70YXQuF0gTU1NTSBb0YPQudOR0YXTl9C9XSBEWy3QvNOX0YjTl10nLFxuICAgICAgICAgICAgTExMOiAnWVlZWSBb0qvRg9C70YXQuF0gTU1NTSBb0YPQudOR0YXTl9C9XSBEWy3QvNOX0YjTl10sIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBZWVlZIFvSq9GD0LvRhdC4XSBNTU1NIFvRg9C505HRhdOX0L1dIERbLdC805fRiNOXXSwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQn9Cw0Y/QvV0gTFQgW9GB0LXRhdC10YLRgNC1XScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Cr0YDQsNC9XSBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb05bQvdC10YBdIExUIFvRgdC10YXQtdGC0YDQtV0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb0qrQuNGC0LXRgV0gZGRkZCBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9CY0YDRgtC905ddIGRkZGQgTFQgW9GB0LXRhdC10YLRgNC1XScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogZnVuY3Rpb24gKG91dHB1dCkge1xuICAgICAgICAgICAgICAgIHZhciBhZmZpeCA9IC/RgdC10YXQtdGCJC9pLmV4ZWMob3V0cHV0KVxuICAgICAgICAgICAgICAgICAgICA/ICfRgNC10L0nXG4gICAgICAgICAgICAgICAgICAgIDogL9Kr0YPQuyQvaS5leGVjKG91dHB1dClcbiAgICAgICAgICAgICAgICAgICAgPyAn0YLQsNC9J1xuICAgICAgICAgICAgICAgICAgICA6ICfRgNCw0L0nO1xuICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQgKyBhZmZpeDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXN0OiAnJXMg0LrQsNGP0LvQu9CwJyxcbiAgICAgICAgICAgIHM6ICfQv9OX0YAt0LjQuiDSq9C10LrQutGD0L3RgicsXG4gICAgICAgICAgICBzczogJyVkINKr0LXQutC60YPQvdGCJyxcbiAgICAgICAgICAgIG06ICfQv9OX0YAg0LzQuNC90YPRgicsXG4gICAgICAgICAgICBtbTogJyVkINC80LjQvdGD0YInLFxuICAgICAgICAgICAgaDogJ9C/05fRgCDRgdC10YXQtdGCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YHQtdGF0LXRgicsXG4gICAgICAgICAgICBkOiAn0L/Tl9GAINC60YPQvScsXG4gICAgICAgICAgICBkZDogJyVkINC60YPQvScsXG4gICAgICAgICAgICBNOiAn0L/Tl9GAINGD0LnTkdGFJyxcbiAgICAgICAgICAgIE1NOiAnJWQg0YPQudOR0YUnLFxuICAgICAgICAgICAgeTogJ9C/05fRgCDSq9GD0LsnLFxuICAgICAgICAgICAgeXk6ICclZCDSq9GD0LsnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0t0LzTl9GILyxcbiAgICAgICAgb3JkaW5hbDogJyVkLdC805fRiCcsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBjdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBXZWxzaCBbY3ldXG4vLyEgYXV0aG9yIDogUm9iZXJ0IEFsbGVuIDogaHR0cHM6Ly9naXRodWIuY29tL3JvYmdhbGxlblxuLy8hIGF1dGhvciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yeWFuZ3JlYXZlc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGN5ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnY3knLCB7XG4gICAgICAgIG1vbnRoczogJ0lvbmF3cl9DaHdlZnJvcl9NYXdydGhfRWJyaWxsX01haV9NZWhlZmluX0dvcmZmZW5uYWZfQXdzdF9NZWRpX0h5ZHJlZl9UYWNod2VkZF9SaGFnZnlyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0lvbl9DaHdlX01hd19FYnJfTWFpX01laF9Hb3JfQXdzX01lZF9IeWRfVGFjaF9SaGFnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICdEeWRkIFN1bF9EeWRkIExsdW5fRHlkZCBNYXdydGhfRHlkZCBNZXJjaGVyX0R5ZGQgSWF1X0R5ZGQgR3dlbmVyX0R5ZGQgU2Fkd3JuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdWxfTGx1bl9NYXdfTWVyX0lhdV9Hd2VfU2FkJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X0xsX01hX01lX0lhX0d3X1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIC8vIHRpbWUgZm9ybWF0cyBhcmUgdGhlIHNhbWUgYXMgZW4tZ2JcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIZWRkaXcgYW1dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbWWZvcnkgYW1dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYW1dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbRGRvZSBhbV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtkaXdldGhhZiBhbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdtZXduICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB5biDDtGwnLFxuICAgICAgICAgICAgczogJ3ljaHlkaWcgZWlsaWFkYXUnLFxuICAgICAgICAgICAgc3M6ICclZCBlaWxpYWQnLFxuICAgICAgICAgICAgbTogJ211bnVkJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbXVudWQnLFxuICAgICAgICAgICAgaDogJ2F3cicsXG4gICAgICAgICAgICBoaDogJyVkIGF3cicsXG4gICAgICAgICAgICBkOiAnZGl3cm5vZCcsXG4gICAgICAgICAgICBkZDogJyVkIGRpd3Jub2QnLFxuICAgICAgICAgICAgTTogJ21pcycsXG4gICAgICAgICAgICBNTTogJyVkIG1pcycsXG4gICAgICAgICAgICB5OiAnYmx3eWRkeW4nLFxuICAgICAgICAgICAgeXk6ICclZCBmbHluZWRkJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGZlZHxhaW58YWZ8aWx8eWRkfGVkfGVnKS8sXG4gICAgICAgIC8vIHRyYWRpdGlvbmFsIG9yZGluYWwgbnVtYmVycyBhYm92ZSAzMSBhcmUgbm90IGNvbW1vbmx5IHVzZWQgaW4gY29sbG9xdWlhbCBXZWxzaFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlcixcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJyxcbiAgICAgICAgICAgICAgICBsb29rdXAgPSBbXG4gICAgICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgICAgICAnYWYnLFxuICAgICAgICAgICAgICAgICAgICAnaWwnLFxuICAgICAgICAgICAgICAgICAgICAneWRkJyxcbiAgICAgICAgICAgICAgICAgICAgJ3lkZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZCcsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsIC8vIDFhZiB0byAxMGZlZFxuICAgICAgICAgICAgICAgICAgICAnZWcnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZycsXG4gICAgICAgICAgICAgICAgICAgICdlZycsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZWcnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJywgLy8gMTFlZyB0byAyMGZlZFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBpZiAoYiA+IDIwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGIgPT09IDQwIHx8IGIgPT09IDUwIHx8IGIgPT09IDYwIHx8IGIgPT09IDgwIHx8IGIgPT09IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnZmVkJzsgLy8gbm90IDMwYWluLCA3MGFpbiBvciA5MGFpblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICdhaW4nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA+IDApIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSBsb29rdXBbYl07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3k7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRGFuaXNoIFtkYV1cbi8vISBhdXRob3IgOiBVbHJpayBOaWVsc2VuIDogaHR0cHM6Ly9naXRodWIuY29tL21yYmFzZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGRhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZGEnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnRzX2FwcmlsX21hal9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ3PDuG5kYWdfbWFuZGFnX3RpcnNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2zDuHJkYWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzw7huX21hbl90aXJfb25zX3Rvcl9mcmVfbMO4cicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzw7hfbWFfdGlfb25fdG9fZnJfbMO4Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgW2QuXSBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tpIGRhZyBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaSBtb3JnZW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ3DDpSBkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbaSBnw6VyIGtsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbaV0gZGRkZFtzIGtsLl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc2lkZW4nLFxuICAgICAgICAgICAgczogJ2bDpSBzZWt1bmRlcicsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZGVyJyxcbiAgICAgICAgICAgIG06ICdldCBtaW51dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0dGVyJyxcbiAgICAgICAgICAgIGg6ICdlbiB0aW1lJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdGltZXInLFxuICAgICAgICAgICAgZDogJ2VuIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2UnLFxuICAgICAgICAgICAgTTogJ2VuIG3DpW5lZCcsXG4gICAgICAgICAgICBNTTogJyVkIG3DpW5lZGVyJyxcbiAgICAgICAgICAgIHk6ICdldCDDpXInLFxuICAgICAgICAgICAgeXk6ICclZCDDpXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdlcm1hbiAoQXVzdHJpYSkgW2RlLWF0XVxuLy8hIGF1dGhvciA6IGxsdWNocyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHVjaHNcbi8vISBhdXRob3I6IE1lbmVsaW9uIEVsZW5zw7psZTogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcbi8vISBhdXRob3IgOiBNYXJ0aW4gR3JvbGxlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9NYWRNR1xuLy8hIGF1dGhvciA6IE1pa29sYWogRGFkZWxhIDogaHR0cHM6Ly9naXRodWIuY29tL21pazAxYWpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtOiBbJ2VpbmUgTWludXRlJywgJ2VpbmVyIE1pbnV0ZSddLFxuICAgICAgICAgICAgaDogWydlaW5lIFN0dW5kZScsICdlaW5lciBTdHVuZGUnXSxcbiAgICAgICAgICAgIGQ6IFsnZWluIFRhZycsICdlaW5lbSBUYWcnXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyBUYWdlJywgbnVtYmVyICsgJyBUYWdlbiddLFxuICAgICAgICAgICAgdzogWydlaW5lIFdvY2hlJywgJ2VpbmVyIFdvY2hlJ10sXG4gICAgICAgICAgICBNOiBbJ2VpbiBNb25hdCcsICdlaW5lbSBNb25hdCddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIE1vbmF0ZScsIG51bWJlciArICcgTW9uYXRlbiddLFxuICAgICAgICAgICAgeTogWydlaW4gSmFocicsICdlaW5lbSBKYWhyJ10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgSmFocmUnLCBudW1iZXIgKyAnIEphaHJlbiddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGRlQXQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdkZS1hdCcsIHtcbiAgICAgICAgbW9udGhzOiAnSsOkbm5lcl9GZWJydWFyX03DpHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICdKw6RuLl9GZWIuX03DpHJ6X0Fwci5fTWFpX0p1bmlfSnVsaV9BdWcuX1NlcC5fT2t0Ll9Ob3YuX0Rlei4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ1Nvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTby5fTW8uX0RpLl9NaS5fRG8uX0ZyLl9TYS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toZXV0ZSB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dlc3Rlcm4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ZvciAlcycsXG4gICAgICAgICAgICBzOiAnZWluIHBhYXIgU2VrdW5kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBTZWt1bmRlbicsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06ICclZCBNaW51dGVuJyxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogJyVkIFN0dW5kZW4nLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgdzogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHd3OiAnJWQgV29jaGVuJyxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkZUF0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdlcm1hbiAoU3dpdHplcmxhbmQpIFtkZS1jaF1cbi8vISBhdXRob3IgOiBzc2NodWVsbGVyIDogaHR0cHM6Ly9naXRodWIuY29tL3NzY2h1ZWxsZXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtOiBbJ2VpbmUgTWludXRlJywgJ2VpbmVyIE1pbnV0ZSddLFxuICAgICAgICAgICAgaDogWydlaW5lIFN0dW5kZScsICdlaW5lciBTdHVuZGUnXSxcbiAgICAgICAgICAgIGQ6IFsnZWluIFRhZycsICdlaW5lbSBUYWcnXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyBUYWdlJywgbnVtYmVyICsgJyBUYWdlbiddLFxuICAgICAgICAgICAgdzogWydlaW5lIFdvY2hlJywgJ2VpbmVyIFdvY2hlJ10sXG4gICAgICAgICAgICBNOiBbJ2VpbiBNb25hdCcsICdlaW5lbSBNb25hdCddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIE1vbmF0ZScsIG51bWJlciArICcgTW9uYXRlbiddLFxuICAgICAgICAgICAgeTogWydlaW4gSmFocicsICdlaW5lbSBKYWhyJ10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgSmFocmUnLCBudW1iZXIgKyAnIEphaHJlbiddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGRlQ2ggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdkZS1jaCcsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyX0ZlYnJ1YXJfTcOkcnpfQXByaWxfTWFpX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ0phbi5fRmViLl9Nw6Ryel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICdTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toZXV0ZSB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dlc3Rlcm4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ZvciAlcycsXG4gICAgICAgICAgICBzOiAnZWluIHBhYXIgU2VrdW5kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBTZWt1bmRlbicsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06ICclZCBNaW51dGVuJyxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogJyVkIFN0dW5kZW4nLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgdzogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHd3OiAnJWQgV29jaGVuJyxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkZUNoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdlcm1hbiBbZGVdXG4vLyEgYXV0aG9yIDogbGx1Y2hzIDogaHR0cHM6Ly9naXRodWIuY29tL2xsdWNoc1xuLy8hIGF1dGhvcjogTWVuZWxpb24gRWxlbnPDumxlOiBodHRwczovL2dpdGh1Yi5jb20vT2lyZVxuLy8hIGF1dGhvciA6IE1pa29sYWogRGFkZWxhIDogaHR0cHM6Ly9naXRodWIuY29tL21pazAxYWpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtOiBbJ2VpbmUgTWludXRlJywgJ2VpbmVyIE1pbnV0ZSddLFxuICAgICAgICAgICAgaDogWydlaW5lIFN0dW5kZScsICdlaW5lciBTdHVuZGUnXSxcbiAgICAgICAgICAgIGQ6IFsnZWluIFRhZycsICdlaW5lbSBUYWcnXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyBUYWdlJywgbnVtYmVyICsgJyBUYWdlbiddLFxuICAgICAgICAgICAgdzogWydlaW5lIFdvY2hlJywgJ2VpbmVyIFdvY2hlJ10sXG4gICAgICAgICAgICBNOiBbJ2VpbiBNb25hdCcsICdlaW5lbSBNb25hdCddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIE1vbmF0ZScsIG51bWJlciArICcgTW9uYXRlbiddLFxuICAgICAgICAgICAgeTogWydlaW4gSmFocicsICdlaW5lbSBKYWhyJ10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgSmFocmUnLCBudW1iZXIgKyAnIEphaHJlbiddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGRlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZGUnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcl9GZWJydWFyX03DpHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICdKYW4uX0ZlYi5fTcOkcnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6Licuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnU29ubnRhZ19Nb250YWdfRGllbnN0YWdfTWl0dHdvY2hfRG9ubmVyc3RhZ19GcmVpdGFnX1NhbXN0YWcnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1NvLl9Nby5fRGkuX01pLl9Eby5fRnIuX1NhLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTb19Nb19EaV9NaV9Eb19Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2hldXRlIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb3JnZW4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZ2VzdGVybiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAndm9yICVzJyxcbiAgICAgICAgICAgIHM6ICdlaW4gcGFhciBTZWt1bmRlbicsXG4gICAgICAgICAgICBzczogJyVkIFNla3VuZGVuJyxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogJyVkIE1pbnV0ZW4nLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiAnJWQgU3R1bmRlbicsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB3OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgd3c6ICclZCBXb2NoZW4nLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRlO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hbGRpdmlhbiBbZHZdXG4vLyEgYXV0aG9yIDogSmF3aXNoIEhhbWVlZCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXdpc2hcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICAgICAn3pberN6C3qreh96m3oPeqScsXG4gICAgICAgICAgICAn3orerN6E3rDeg96q3ofept6D3qknLFxuICAgICAgICAgICAgJ96J3qfeg96o3pfeqicsXG4gICAgICAgICAgICAn3oferd6V3rDeg96p3o3eqicsXG4gICAgICAgICAgICAn3onerScsXG4gICAgICAgICAgICAn3pbeq96C3rAnLFxuICAgICAgICAgICAgJ96W3qrejd6m3ofeqCcsXG4gICAgICAgICAgICAn3ofer96O3qbekN6w3pPeqicsXG4gICAgICAgICAgICAn3pDerN6V3rDek96s3onesN6E3qbeg96qJyxcbiAgICAgICAgICAgICfeh96u3obesN6T3q/ehN6m3oPeqicsXG4gICAgICAgICAgICAn3oLert6I3qzeid6w3oTept6D3qonLFxuICAgICAgICAgICAgJ96R3qjekN6s3onesN6E3qbeg96qJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2Vla2RheXMgPSBbXG4gICAgICAgICAgICAn3ofep96L3qjeh96w3ozepicsXG4gICAgICAgICAgICAn3oDer96J3qYnLFxuICAgICAgICAgICAgJ96H3qbegt6w3o7ep96D3qYnLFxuICAgICAgICAgICAgJ96E3qrei96mJyxcbiAgICAgICAgICAgICfehN6q3oPep96Q3rDeit6m3ozeqCcsXG4gICAgICAgICAgICAn3oDeqt6G3qreg96qJyxcbiAgICAgICAgICAgICfegN6u3oLeqN6A3qjeg96qJyxcbiAgICAgICAgXTtcblxuICAgIHZhciBkdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2R2Jywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6IHdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiB3ZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46ICfeh96n3oveqF/egN6v3onepl/eh96m3oLesF/ehN6q3ovepl/ehN6q3oPep1/egN6q3obeql/egN6u3oLeqCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QvTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv3onehnzeid6KLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ96J3oonID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ96J3oYnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ96J3oonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1veid6o3ofept6L3qpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb3onep96L3qbeid6nXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1veh96o3ofesN6U3qxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW96K3qfeh96o3ozeqt6I3qhdIGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfejN6s3oPerd6O3qbeh96oICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfeht6q3oPeqN6C3rAgJXMnLFxuICAgICAgICAgICAgczogJ96Q3qjeht6q3oLesN6M3qreht6u3oXerN6H3rAnLFxuICAgICAgICAgICAgc3M6ICdkJSDekN6o3obeqt6C3rDejN6qJyxcbiAgICAgICAgICAgIG06ICfeid6o3oLeqN6T3qzeh96wJyxcbiAgICAgICAgICAgIG1tOiAn3oneqN6C3qjek96qICVkJyxcbiAgICAgICAgICAgIGg6ICfejt6m3pHeqN6H3qjeg96s3ofesCcsXG4gICAgICAgICAgICBoaDogJ96O3qbekd6o3ofeqN6D3qogJWQnLFxuICAgICAgICAgICAgZDogJ96L3qreiN6m3oDerN6H3rAnLFxuICAgICAgICAgICAgZGQ6ICfei96q3ojept6Q3rAgJWQnLFxuICAgICAgICAgICAgTTogJ96J3qbegN6s3ofesCcsXG4gICAgICAgICAgICBNTTogJ96J3qbekN6wICVkJyxcbiAgICAgICAgICAgIHk6ICfeh96m3oDept6D3qzeh96wJyxcbiAgICAgICAgICAgIHl5OiAn3ofept6A3qbeg96qICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDcsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHcmVlayBbZWxdXG4vLyEgYXV0aG9yIDogQWdnZWxvcyBLYXJhbGlhcyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWhpZWxcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0eXBlb2YgRnVuY3Rpb24gIT09ICd1bmRlZmluZWQnICYmIGlucHV0IGluc3RhbmNlb2YgRnVuY3Rpb24pIHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBGdW5jdGlvbl0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGVsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZWwnLCB7XG4gICAgICAgIG1vbnRoc05vbWluYXRpdmVFbDpcbiAgICAgICAgICAgICfOmc6xzr3Ov8+FzqzPgc65zr/Pgl/Ops61zrLPgc6/z4XOrM+BzrnOv8+CX86czqzPgc+EzrnOv8+CX86Rz4DPgc6vzrvOuc6/z4JfzpzOrM65zr/Pgl/Omc6/z43Ovc65zr/Pgl/Omc6/z43Ou865zr/Pgl/Okc+NzrPOv8+Fz4PPhM6/z4JfzqPOtc+Az4TOrc68zrLPgc65zr/Pgl/On866z4TPjs6yz4HOuc6/z4Jfzp3Ov86tzrzOss+BzrnOv8+CX86UzrXOus6tzrzOss+BzrnOv8+CJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc0dlbml0aXZlRWw6XG4gICAgICAgICAgICAnzpnOsc69zr/Phc6xz4HOr86/z4VfzqbOtc6yz4HOv8+FzrHPgc6vzr/PhV/OnM6xz4HPhM6vzr/PhV/Okc+Az4HOuc67zq/Ov8+FX86czrHOkM6/z4VfzpnOv8+Fzr3Or86/z4VfzpnOv8+FzrvOr86/z4VfzpHPhc6zzr/Pjc+Dz4TOv8+FX86jzrXPgM+EzrXOvM6yz4HOr86/z4Vfzp/Ous+Ez4nOss+Bzq/Ov8+FX86dzr/Otc68zrLPgc6vzr/PhV/OlM61zrrOtc68zrLPgc6vzr/PhScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHM6IGZ1bmN0aW9uIChtb21lbnRUb0Zvcm1hdCwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW1vbWVudFRvRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc05vbWluYXRpdmVFbDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdHlwZW9mIGZvcm1hdCA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgICAgICAvRC8udGVzdChmb3JtYXQuc3Vic3RyaW5nKDAsIGZvcm1hdC5pbmRleE9mKCdNTU1NJykpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBkYXkgbnVtYmVyIGJlZm9yZSAnTU1NTSdcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzR2VuaXRpdmVFbFttb21lbnRUb0Zvcm1hdC5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc05vbWluYXRpdmVFbFttb21lbnRUb0Zvcm1hdC5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfOmc6xzr1fzqbOtc6yX86czrHPgV/Okc+Az4FfzpzOsc+KX86Zzr/Phc69X86Zzr/Phc67X86Rz4XOs1/Oo861z4Bfzp/Ous+EX86dzr/OtV/OlM61zronLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnzprPhc+BzrnOsc66zq5fzpTOtc+Fz4TOrc+BzrFfzqTPgc6vz4TOt1/OpM61z4TOrM+Bz4TOt1/OoM6tzrzPgM+EzrdfzqDOsc+BzrHPg866zrXPhc6uX86jzqzOss6yzrHPhM6/Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnzprPhc+BX86UzrXPhV/OpM+BzrlfzqTOtc+EX86gzrXOvF/OoM6xz4FfzqPOsc6yJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ86az4VfzpTOtV/OpM+BX86kzrVfzqDOtV/OoM6xX86jzrEnLnNwbGl0KCdfJyksXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnzrzOvCcgOiAnzpzOnCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ8+AzrwnIDogJ86gzpwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAoaW5wdXQgKyAnJykudG9Mb3dlckNhc2UoKVswXSA9PT0gJ868JztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL1vOoM6cXVxcLj/OnD9cXC4/L2ksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyRWw6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbzqPOrs68zrXPgc6xIHt9XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW86Rz43Pgc65zr8ge31dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbe31dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbzqfOuM61z4Ige31dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW8+Ezr8gz4DPgc6/zrfOs86/z43OvM61zr3Ov10gZGRkZCBbe31dIExUJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW8+EzrfOvSDPgM+Bzr/Ot86zzr/Pjc68zrXOvc63XSBkZGRkIFt7fV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjogZnVuY3Rpb24gKGtleSwgbW9tKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fY2FsZW5kYXJFbFtrZXldLFxuICAgICAgICAgICAgICAgIGhvdXJzID0gbW9tICYmIG1vbS5ob3VycygpO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ob3V0cHV0KSkge1xuICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5hcHBseShtb20pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG91dHB1dC5yZXBsYWNlKCd7fScsIGhvdXJzICUgMTIgPT09IDEgPyAnz4PPhM63JyA6ICfPg8+EzrnPgicpO1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ8+DzrUgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIM+Az4HOuc69JyxcbiAgICAgICAgICAgIHM6ICfOu86vzrPOsSDOtM61z4XPhM61z4HPjM67zrXPgM+EzrEnLFxuICAgICAgICAgICAgc3M6ICclZCDOtM61z4XPhM61z4HPjM67zrXPgM+EzrEnLFxuICAgICAgICAgICAgbTogJ86tzr3OsSDOu861z4DPhM+MJyxcbiAgICAgICAgICAgIG1tOiAnJWQgzrvOtc+Az4TOrCcsXG4gICAgICAgICAgICBoOiAnzrzOr86xIM+Oz4HOsScsXG4gICAgICAgICAgICBoaDogJyVkIM+Oz4HOtc+CJyxcbiAgICAgICAgICAgIGQ6ICfOvM6vzrEgzrzOrc+BzrEnLFxuICAgICAgICAgICAgZGQ6ICclZCDOvM6tz4HOtc+CJyxcbiAgICAgICAgICAgIE06ICfOrc69zrHPgiDOvM6uzr3Osc+CJyxcbiAgICAgICAgICAgIE1NOiAnJWQgzrzOrs69zrXPgicsXG4gICAgICAgICAgICB5OiAnzq3Ovc6xz4Igz4fPgc+Mzr3Ov8+CJyxcbiAgICAgICAgICAgIHl5OiAnJWQgz4fPgc+Mzr3Ouc6xJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9zrcvLFxuICAgICAgICBvcmRpbmFsOiAnJWTOtycsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDRzdCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChBdXN0cmFsaWEpIFtlbi1hdV1cbi8vISBhdXRob3IgOiBKYXJlZCBNb3JzZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXJjb2FsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5BdSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWF1Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbkF1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKENhbmFkYSkgW2VuLWNhXVxuLy8hIGF1dGhvciA6IEpvbmF0aGFuIEFib3VyYmloIDogaHR0cHM6Ly9naXRodWIuY29tL2pvbmJjYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuQ2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1jYScsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ01NTU0gRCwgWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuQ2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoVW5pdGVkIEtpbmdkb20pIFtlbi1nYl1cbi8vISBhdXRob3IgOiBDaHJpcyBHZWRyaW0gOiBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNnZWRyaW1cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbkdiID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4tZ2InLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5HYjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChJcmVsYW5kKSBbZW4taWVdXG4vLyEgYXV0aG9yIDogQ2hyaXMgQ2FydGxpZGdlIDogaHR0cHM6Ly9naXRodWIuY29tL2NocmlzY2FydGxpZGdlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5JZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWllJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5JZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChJc3JhZWwpIFtlbi1pbF1cbi8vISBhdXRob3IgOiBDaHJpcyBHZWRyaW0gOiBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNnZWRyaW1cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbklsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4taWwnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuSWw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoSW5kaWEpIFtlbi1pbl1cbi8vISBhdXRob3IgOiBKYXRpbiBBZ3Jhd2FsIDogaHR0cHM6Ly9naXRodWIuY29tL2phdGluYWcyMlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuSW4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1pbicsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxc3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5JbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChOZXcgWmVhbGFuZCkgW2VuLW56XVxuLy8hIGF1dGhvciA6IEx1a2UgTWNHcmVnb3IgOiBodHRwczovL2dpdGh1Yi5jb20vbHVrZW1jZ3JlZ29yXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5OeiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLW56Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbk56O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKFNpbmdhcG9yZSkgW2VuLXNnXVxuLy8hIGF1dGhvciA6IE1hdHRoZXcgQ2FzdHJpbGxvbi1NYWRyaWdhbCA6IGh0dHBzOi8vZ2l0aHViLmNvbS90ZWNoZGltZW5zaW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5TZyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLXNnJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuU2c7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRXNwZXJhbnRvIFtlb11cbi8vISBhdXRob3IgOiBDb2xpbiBEZWFuIDogaHR0cHM6Ly9naXRodWIuY29tL2NvbGluZGVhblxuLy8hIGF1dGhvciA6IE1pYSBOb3JkZW50b2Z0IEltcGVyYXRvcmkgOiBodHRwczovL2dpdGh1Yi5jb20vbWllc3Rhc21pYVxuLy8hIGNvbW1lbnQgOiBtaWVzdGFzbWlhIGNvcnJlY3RlZCB0aGUgdHJhbnNsYXRpb24gYnkgY29saW5kZWFuXG4vLyEgY29tbWVudCA6IFZpdmFrdm8gY29ycmVjdGVkIHRoZSB0cmFuc2xhdGlvbiBieSBjb2xpbmRlYW4gYW5kIG1pZXN0YXNtaWFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VvJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJvX2ZlYnJ1YXJvX21hcnRvX2Fwcmlsb19tYWpvX2p1bmlvX2p1bGlvX2HFrWd1c3RvX3NlcHRlbWJyb19va3RvYnJvX25vdmVtYnJvX2RlY2VtYnJvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFydF9hcHJfbWFqX2p1bl9qdWxfYcWtZ19zZXB0X29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ2RpbWFuxIlvX2x1bmRvX21hcmRvX21lcmtyZWRvX8S1YcWtZG9fdmVuZHJlZG9fc2FiYXRvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZGltX2x1bl9tYXJkX21lcmtfxLVhxa1fdmVuX3NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkaV9sdV9tYV9tZV/EtWFfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnW2xhXSBEWy1hbiBkZV0gTU1NTSwgWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkW25dLCBbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIFtsYV0gRFstYW4gZGVdIE1NTSwgWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9bYXBdXFwudFxcLm0vaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgPT09ICdwJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdwLnQubS4nIDogJ1AuVC5NLic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2EudC5tLicgOiAnQS5ULk0uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSG9kaWHFrSBqZV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tNb3JnYcWtIGplXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGRbbiBqZV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIaWVyYcWtIGplXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1twYXNpbnRhbl0gZGRkZFtuIGplXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3Bvc3QgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2FudGHFrSAlcycsXG4gICAgICAgICAgICBzOiAna2Vsa2FqIHNla3VuZG9qJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kb2onLFxuICAgICAgICAgICAgbTogJ3VudSBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9qJyxcbiAgICAgICAgICAgIGg6ICd1bnUgaG9ybycsXG4gICAgICAgICAgICBoaDogJyVkIGhvcm9qJyxcbiAgICAgICAgICAgIGQ6ICd1bnUgdGFnbycsIC8vbmUgJ2RpdXJubycsIMSJYXIgZXN0YXMgdXppdGEgcG9yIHByb2tzaW11bW9cbiAgICAgICAgICAgIGRkOiAnJWQgdGFnb2onLFxuICAgICAgICAgICAgTTogJ3VudSBtb25hdG8nLFxuICAgICAgICAgICAgTU06ICclZCBtb25hdG9qJyxcbiAgICAgICAgICAgIHk6ICd1bnUgamFybycsXG4gICAgICAgICAgICB5eTogJyVkIGphcm9qJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9YS8sXG4gICAgICAgIG9yZGluYWw6ICclZGEnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3BhbmlzaCAoRG9taW5pY2FuIFJlcHVibGljKSBbZXMtZG9dXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnREb3QgPVxuICAgICAgICAgICAgJ2VuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2VuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eZW5lL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYXIvaSxcbiAgICAgICAgICAgIC9eYWJyL2ksXG4gICAgICAgICAgICAvXm1heS9pLFxuICAgICAgICAgICAgL15qdW4vaSxcbiAgICAgICAgICAgIC9eanVsL2ksXG4gICAgICAgICAgICAvXmFnby9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2N0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kaWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPVxuICAgICAgICAgICAgL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaTtcblxuICAgIHZhciBlc0RvID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXMtZG8nLCB7XG4gICAgICAgIG1vbnRoczogJ2VuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0W20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDpcbiAgICAgICAgICAgIC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6XG4gICAgICAgICAgICAvXihlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21pbmdvX2x1bmVzX21hcnRlc19tacOpcmNvbGVzX2p1ZXZlc192aWVybmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb20uX2x1bi5fbWFyLl9tacOpLl9qdWUuX3ZpZS5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbWlfanVfdmlfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbaG95IGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbbWHDsWFuYSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgW2EgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYXllciBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW2VsXSBkZGRkIFtwYXNhZG8gYSBsYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ10gTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2VuICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdoYWNlICVzJyxcbiAgICAgICAgICAgIHM6ICd1bm9zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VuYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VuIGTDrWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkw61hcycsXG4gICAgICAgICAgICB3OiAndW5hIHNlbWFuYScsXG4gICAgICAgICAgICB3dzogJyVkIHNlbWFuYXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1biBhw7FvJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYcOxb3MnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVzRG87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3BhbmlzaCAoTWV4aWNvKSBbZXMtbXhdXG4vLyEgYXV0aG9yIDogSkMgRnJhbmNvIDogaHR0cHM6Ly9naXRodWIuY29tL2pjZnJhbmNvXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnREb3QgPVxuICAgICAgICAgICAgJ2VuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2VuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eZW5lL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYXIvaSxcbiAgICAgICAgICAgIC9eYWJyL2ksXG4gICAgICAgICAgICAvXm1heS9pLFxuICAgICAgICAgICAgL15qdW4vaSxcbiAgICAgICAgICAgIC9eanVsL2ksXG4gICAgICAgICAgICAvXmFnby9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2N0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kaWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPVxuICAgICAgICAgICAgL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaTtcblxuICAgIHZhciBlc014ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXMtbXgnLCB7XG4gICAgICAgIG1vbnRoczogJ2VuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0W20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDpcbiAgICAgICAgICAgIC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6XG4gICAgICAgICAgICAvXihlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21pbmdvX2x1bmVzX21hcnRlc19tacOpcmNvbGVzX2p1ZXZlc192aWVybmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb20uX2x1bi5fbWFyLl9tacOpLl9qdWUuX3ZpZS5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbWlfanVfdmlfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2hveSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW21hw7FhbmEgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFthIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2F5ZXIgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tlbF0gZGRkZCBbcGFzYWRvIGEgbGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAgICddIExUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaGFjZSAlcycsXG4gICAgICAgICAgICBzOiAndW5vcyBzZWd1bmRvcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGg6ICd1bmEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1biBkw61hJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZMOtYXMnLFxuICAgICAgICAgICAgdzogJ3VuYSBzZW1hbmEnLFxuICAgICAgICAgICAgd3c6ICclZCBzZW1hbmFzJyxcbiAgICAgICAgICAgIE06ICd1biBtZXMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5OiAndW4gYcOxbycsXG4gICAgICAgICAgICB5eTogJyVkIGHDsW9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICAgICAgaW52YWxpZERhdGU6ICdGZWNoYSBpbnbDoWxpZGEnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVzTXg7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3BhbmlzaCAoVW5pdGVkIFN0YXRlcykgW2VzLXVzXVxuLy8hIGF1dGhvciA6IGJ1c3R0YSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9idXN0dGFcbi8vISBhdXRob3IgOiBjaHJpc3JvZHogOiBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNyb2R6XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnREb3QgPVxuICAgICAgICAgICAgJ2VuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2VuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eZW5lL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYXIvaSxcbiAgICAgICAgICAgIC9eYWJyL2ksXG4gICAgICAgICAgICAvXm1heS9pLFxuICAgICAgICAgICAgL15qdW4vaSxcbiAgICAgICAgICAgIC9eanVsL2ksXG4gICAgICAgICAgICAvXmFnby9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2N0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kaWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPVxuICAgICAgICAgICAgL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaTtcblxuICAgIHZhciBlc1VzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXMtdXMnLCB7XG4gICAgICAgIG1vbnRoczogJ2VuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0W20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDpcbiAgICAgICAgICAgIC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6XG4gICAgICAgICAgICAvXihlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21pbmdvX2x1bmVzX21hcnRlc19tacOpcmNvbGVzX2p1ZXZlc192aWVybmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb20uX2x1bi5fbWFyLl9tacOpLl9qdWUuX3ZpZS5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbWlfanVfdmlfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ01NL0REL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbaG95IGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbbWHDsWFuYSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgW2EgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYXllciBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW2VsXSBkZGRkIFtwYXNhZG8gYSBsYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ10gTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2VuICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdoYWNlICVzJyxcbiAgICAgICAgICAgIHM6ICd1bm9zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VuYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VuIGTDrWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkw61hcycsXG4gICAgICAgICAgICB3OiAndW5hIHNlbWFuYScsXG4gICAgICAgICAgICB3dzogJyVkIHNlbWFuYXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1biBhw7FvJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYcOxb3MnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVzVXM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3BhbmlzaCBbZXNdXG4vLyEgYXV0aG9yIDogSnVsaW8gTmFwdXLDrSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qdWxpb25jXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnREb3QgPVxuICAgICAgICAgICAgJ2VuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2VuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eZW5lL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYXIvaSxcbiAgICAgICAgICAgIC9eYWJyL2ksXG4gICAgICAgICAgICAvXm1heS9pLFxuICAgICAgICAgICAgL15qdW4vaSxcbiAgICAgICAgICAgIC9eanVsL2ksXG4gICAgICAgICAgICAvXmFnby9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2N0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kaWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPVxuICAgICAgICAgICAgL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaTtcblxuICAgIHZhciBlcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VzJywge1xuICAgICAgICBtb250aHM6ICdlbmVyb19mZWJyZXJvX21hcnpvX2FicmlsX21heW9fanVuaW9fanVsaW9fYWdvc3RvX3NlcHRpZW1icmVfb2N0dWJyZV9ub3ZpZW1icmVfZGljaWVtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0RG90O1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3RbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6XG4gICAgICAgICAgICAvXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OlxuICAgICAgICAgICAgL14oZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzOiAnZG9taW5nb19sdW5lc19tYXJ0ZXNfbWnDqXJjb2xlc19qdWV2ZXNfdmllcm5lc19zw6FiYWRvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tLl9sdW4uX21hci5fbWnDqS5fanVlLl92aWUuX3PDoWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvX2x1X21hX21pX2p1X3ZpX3PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tob3kgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHREYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1ttYcOxYW5hIGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBbYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1theWVyIGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgICAnXSBMVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2hhY2UgJXMnLFxuICAgICAgICAgICAgczogJ3Vub3Mgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoOiAndW5hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkOiAndW4gZMOtYScsXG4gICAgICAgICAgICBkZDogJyVkIGTDrWFzJyxcbiAgICAgICAgICAgIHc6ICd1bmEgc2VtYW5hJyxcbiAgICAgICAgICAgIHd3OiAnJWQgc2VtYW5hcycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VuIGHDsW8nLFxuICAgICAgICAgICAgeXk6ICclZCBhw7FvcycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgICAgIGludmFsaWREYXRlOiAnRmVjaGEgaW52w6FsaWRhJyxcbiAgICB9KTtcblxuICAgIHJldHVybiBlcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFc3RvbmlhbiBbZXRdXG4vLyEgYXV0aG9yIDogSGVucnkgS2VobG1hbm4gOiBodHRwczovL2dpdGh1Yi5jb20vbWFkaGVucnlcbi8vISBpbXByb3ZlbWVudHMgOiBJbGxpbWFyIFRhbWJlayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWd1bGthXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgczogWydtw7VuZSBzZWt1bmRpJywgJ23DtW5pIHNla3VuZCcsICdwYWFyIHNla3VuZGl0J10sXG4gICAgICAgICAgICBzczogW251bWJlciArICdzZWt1bmRpJywgbnVtYmVyICsgJ3Nla3VuZGl0J10sXG4gICAgICAgICAgICBtOiBbJ8O8aGUgbWludXRpJywgJ8O8a3MgbWludXQnXSxcbiAgICAgICAgICAgIG1tOiBbbnVtYmVyICsgJyBtaW51dGknLCBudW1iZXIgKyAnIG1pbnV0aXQnXSxcbiAgICAgICAgICAgIGg6IFsnw7xoZSB0dW5uaScsICd0dW5kIGFlZ2EnLCAnw7xrcyB0dW5kJ10sXG4gICAgICAgICAgICBoaDogW251bWJlciArICcgdHVubmknLCBudW1iZXIgKyAnIHR1bmRpJ10sXG4gICAgICAgICAgICBkOiBbJ8O8aGUgcMOkZXZhJywgJ8O8a3MgcMOkZXYnXSxcbiAgICAgICAgICAgIE06IFsna3V1IGFqYScsICdrdXUgYWVnYScsICfDvGtzIGt1dSddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIGt1dScsIG51bWJlciArICcga3V1ZCddLFxuICAgICAgICAgICAgeTogWyfDvGhlIGFhc3RhJywgJ2Fhc3RhJywgJ8O8a3MgYWFzdGEnXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyBhYXN0YScsIG51bWJlciArICcgYWFzdGF0J10sXG4gICAgICAgIH07XG4gICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0W2tleV1bMl0gPyBmb3JtYXRba2V5XVsyXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0Z1dHVyZSA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGV0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXQnLCB7XG4gICAgICAgIG1vbnRoczogJ2phYW51YXJfdmVlYnJ1YXJfbcOkcnRzX2FwcmlsbF9tYWlfanV1bmlfanV1bGlfYXVndXN0X3NlcHRlbWJlcl9va3Rvb2Jlcl9ub3ZlbWJlcl9kZXRzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ2phYW5fdmVlYnJfbcOkcnRzX2Fwcl9tYWlfanV1bmlfanV1bGlfYXVnX3NlcHRfb2t0X25vdl9kZXRzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICdww7xoYXDDpGV2X2VzbWFzcMOkZXZfdGVpc2lww6Rldl9rb2xtYXDDpGV2X25lbGphcMOkZXZfcmVlZGVfbGF1cMOkZXYnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1BfRV9UX0tfTl9SX0wnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnUF9FX1RfS19OX1JfTCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1TDpG5hLF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tIb21tZSxdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW0rDpHJnbWluZV0gZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0VpbGUsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tFZWxtaW5lXSBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgcMOkcmFzdCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMgdGFnYXNpJyxcbiAgICAgICAgICAgIHM6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBzczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogJyVkIHDDpGV2YScsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQmFzcXVlIFtldV1cbi8vISBhdXRob3IgOiBFbmVrbyBJbGxhcnJhbWVuZGkgOiBodHRwczovL2dpdGh1Yi5jb20vZWlsbGFycmFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBldSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2V1Jywge1xuICAgICAgICBtb250aHM6ICd1cnRhcnJpbGFfb3RzYWlsYV9tYXJ0eG9hX2FwaXJpbGFfbWFpYXR6YV9la2FpbmFfdXp0YWlsYV9hYnV6dHVhX2lyYWlsYV91cnJpYV9hemFyb2FfYWJlbmR1YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAndXJ0Ll9vdHMuX21hci5fYXBpLl9tYWkuX2VrYS5fdXp0Ll9hYnUuX2lyYS5fdXJyLl9hemEuX2FiZS4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnaWdhbmRlYV9hc3RlbGVoZW5hX2FzdGVhcnRlYV9hc3RlYXprZW5hX29zdGVndW5hX29zdGlyYWxhX2xhcnVuYmF0YScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnaWcuX2FsLl9hci5fYXouX29nLl9vbC5fbHIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2lnX2FsX2FyX2F6X29nX29sX2xyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnWVlZWVtrb10gTU1NTVtyZW5dIERbYV0nLFxuICAgICAgICAgICAgTExMOiAnWVlZWVtrb10gTU1NTVtyZW5dIERbYV0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIFlZWVlba29dIE1NTU1bcmVuXSBEW2FdIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdZWVlZLU0tRCcsXG4gICAgICAgICAgICBsbDogJ1lZWVlba29dIE1NTSBEW2FdJyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVlba29dIE1NTSBEW2FdIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIFlZWVlba29dIE1NTSBEW2FdIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZ2F1cl0gTFRbZXRhbl0nLFxuICAgICAgICAgICAgbmV4dERheTogJ1tiaWhhcl0gTFRbZXRhbl0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIExUW2V0YW5dJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbYXR6b10gTFRbZXRhbl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbYXVycmVrb10gZGRkZCBMVFtldGFuXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIGJhcnJ1JyxcbiAgICAgICAgICAgIHBhc3Q6ICdkdWVsYSAlcycsXG4gICAgICAgICAgICBzOiAnc2VndW5kbyBiYXR6dWsnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvJyxcbiAgICAgICAgICAgIG06ICdtaW51dHUgYmF0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXR1JyxcbiAgICAgICAgICAgIGg6ICdvcmR1IGJhdCcsXG4gICAgICAgICAgICBoaDogJyVkIG9yZHUnLFxuICAgICAgICAgICAgZDogJ2VndW4gYmF0JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZWd1bicsXG4gICAgICAgICAgICBNOiAnaGlsYWJldGUgYmF0JyxcbiAgICAgICAgICAgIE1NOiAnJWQgaGlsYWJldGUnLFxuICAgICAgICAgICAgeTogJ3VydGUgYmF0JyxcbiAgICAgICAgICAgIHl5OiAnJWQgdXJ0ZScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUGVyc2lhbiBbZmFdXG4vLyEgYXV0aG9yIDogRWJyYWhpbSBCeWFnb3dpIDogaHR0cHM6Ly9naXRodWIuY29tL2VicmFtaW5pb1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgIDE6ICfbsScsXG4gICAgICAgICAgICAyOiAn27InLFxuICAgICAgICAgICAgMzogJ9uzJyxcbiAgICAgICAgICAgIDQ6ICfbtCcsXG4gICAgICAgICAgICA1OiAn27UnLFxuICAgICAgICAgICAgNjogJ9u2JyxcbiAgICAgICAgICAgIDc6ICfbtycsXG4gICAgICAgICAgICA4OiAn27gnLFxuICAgICAgICAgICAgOTogJ9u5JyxcbiAgICAgICAgICAgIDA6ICfbsCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfbsSc6ICcxJyxcbiAgICAgICAgICAgICfbsic6ICcyJyxcbiAgICAgICAgICAgICfbsyc6ICczJyxcbiAgICAgICAgICAgICfbtCc6ICc0JyxcbiAgICAgICAgICAgICfbtSc6ICc1JyxcbiAgICAgICAgICAgICfbtic6ICc2JyxcbiAgICAgICAgICAgICfbtyc6ICc3JyxcbiAgICAgICAgICAgICfbuCc6ICc4JyxcbiAgICAgICAgICAgICfbuSc6ICc5JyxcbiAgICAgICAgICAgICfbsCc6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBmYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZhJywge1xuICAgICAgICBtb250aHM6ICfamNin2YbZiNuM2Ydf2YHZiNix24zZh1/Zhdin2LHYs1/YotmI2LHbjNmEX9mF2Ydf2pjZiNim2YZf2pjZiNim24zZh1/Yp9mI2Kpf2LPZvtiq2KfZhdio2LFf2Kfaqdiq2KjYsV/ZhtmI2KfZhdio2LFf2K/Ys9in2YXYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfamNin2YbZiNuM2Ydf2YHZiNix24zZh1/Zhdin2LHYs1/YotmI2LHbjNmEX9mF2Ydf2pjZiNim2YZf2pjZiNim24zZh1/Yp9mI2Kpf2LPZvtiq2KfZhdio2LFf2Kfaqdiq2KjYsV/ZhtmI2KfZhdio2LFf2K/Ys9in2YXYqNixJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ9uM2qlcXHUyMDBj2LTZhtio2Ydf2K/ZiNi02YbYqNmHX9iz2YdcXHUyMDBj2LTZhtio2Ydf2obZh9in2LHYtNmG2KjZh1/ZvtmG2KxcXHUyMDBj2LTZhtio2Ydf2KzZhdi52Ydf2LTZhtio2YcnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDpcbiAgICAgICAgICAgICfbjNqpXFx1MjAwY9i02YbYqNmHX9iv2YjYtNmG2KjZh1/Ys9mHXFx1MjAwY9i02YbYqNmHX9qG2YfYp9ix2LTZhtio2Ydf2b7ZhtisXFx1MjAwY9i02YbYqNmHX9is2YXYudmHX9i02YbYqNmHJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn24xf2K9f2LNf2oZf2b5f2Kxf2LQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2YLYqNmEINin2LIg2LjZh9ixfNio2LnYryDYp9iyINi42YfYsS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC/YqNi52K8g2KfYsiDYuNmH2LEvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YLYqNmEINin2LIg2LjZh9ixJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYqNi52K8g2KfYsiDYuNmH2LEnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mF2LHZiNiyINiz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9mB2LHYr9inINiz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9iz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9iv24zYsdmI2LIg2LPYp9i52KpdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2b7bjNi0XSBb2LPYp9i52KpdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2K/YsSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg2b7bjNi0JyxcbiAgICAgICAgICAgIHM6ICfahtmG2K8g2KvYp9mG24zZhycsXG4gICAgICAgICAgICBzczogJyVkINir2KfZhtuM2YcnLFxuICAgICAgICAgICAgbTogJ9uM2qkg2K/ZgtuM2YLZhycsXG4gICAgICAgICAgICBtbTogJyVkINiv2YLbjNmC2YcnLFxuICAgICAgICAgICAgaDogJ9uM2qkg2LPYp9i52KonLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYqicsXG4gICAgICAgICAgICBkOiAn24zaqSDYsdmI2LInLFxuICAgICAgICAgICAgZGQ6ICclZCDYsdmI2LInLFxuICAgICAgICAgICAgTTogJ9uM2qkg2YXYp9mHJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2YXYp9mHJyxcbiAgICAgICAgICAgIHk6ICfbjNqpINiz2KfZhCcsXG4gICAgICAgICAgICB5eTogJyVkINiz2KfZhCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1vbsC3buV0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3ZhS8sXG4gICAgICAgIG9yZGluYWw6ICclZNmFJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGaW5uaXNoIFtmaV1cbi8vISBhdXRob3IgOiBUYXJtbyBBaWRhbnRhdXN0YSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGVhZG9mXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbnVtYmVyc1Bhc3QgPVxuICAgICAgICAgICAgJ25vbGxhIHlrc2kga2Frc2kga29sbWUgbmVsasOkIHZpaXNpIGt1dXNpIHNlaXRzZW3DpG4ga2FoZGVrc2FuIHloZGVrc8Okbicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJyAnXG4gICAgICAgICAgICApLFxuICAgICAgICBudW1iZXJzRnV0dXJlID0gW1xuICAgICAgICAgICAgJ25vbGxhJyxcbiAgICAgICAgICAgICd5aGRlbicsXG4gICAgICAgICAgICAna2FoZGVuJyxcbiAgICAgICAgICAgICdrb2xtZW4nLFxuICAgICAgICAgICAgJ25lbGrDpG4nLFxuICAgICAgICAgICAgJ3ZpaWRlbicsXG4gICAgICAgICAgICAna3V1ZGVuJyxcbiAgICAgICAgICAgIG51bWJlcnNQYXN0WzddLFxuICAgICAgICAgICAgbnVtYmVyc1Bhc3RbOF0sXG4gICAgICAgICAgICBudW1iZXJzUGFzdFs5XSxcbiAgICAgICAgXTtcbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdtdXV0YW1hbiBzZWt1bm5pbicgOiAnbXV1dGFtYSBzZWt1bnRpJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICdzZWt1bm5pbicgOiAnc2VrdW50aWEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ21pbnV1dGluJyA6ICdtaW51dXR0aSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAnbWludXV0aW4nIDogJ21pbnV1dHRpYSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAndHVubmluJyA6ICd0dW50aSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAndHVubmluJyA6ICd0dW50aWEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ3DDpGl2w6RuJyA6ICdww6RpdsOkJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICdww6RpdsOkbicgOiAncMOkaXbDpMOkJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdrdXVrYXVkZW4nIDogJ2t1dWthdXNpJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICdrdXVrYXVkZW4nIDogJ2t1dWthdXR0YSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAndnVvZGVuJyA6ICd2dW9zaSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAndnVvZGVuJyA6ICd2dW90dGEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IHZlcmJhbE51bWJlcihudW1iZXIsIGlzRnV0dXJlKSArICcgJyArIHJlc3VsdDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmVyYmFsTnVtYmVyKG51bWJlciwgaXNGdXR1cmUpIHtcbiAgICAgICAgcmV0dXJuIG51bWJlciA8IDEwXG4gICAgICAgICAgICA/IGlzRnV0dXJlXG4gICAgICAgICAgICAgICAgPyBudW1iZXJzRnV0dXJlW251bWJlcl1cbiAgICAgICAgICAgICAgICA6IG51bWJlcnNQYXN0W251bWJlcl1cbiAgICAgICAgICAgIDogbnVtYmVyO1xuICAgIH1cblxuICAgIHZhciBmaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZpJywge1xuICAgICAgICBtb250aHM6ICd0YW1taWt1dV9oZWxtaWt1dV9tYWFsaXNrdXVfaHVodGlrdXVfdG91a29rdXVfa2Vzw6RrdXVfaGVpbsOka3V1X2Vsb2t1dV9zeXlza3V1X2xva2FrdXVfbWFycmFza3V1X2pvdWx1a3V1Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICd0YW1taV9oZWxtaV9tYWFsaXNfaHVodGlfdG91a29fa2Vzw6RfaGVpbsOkX2Vsb19zeXlzX2xva2FfbWFycmFzX2pvdWx1Jy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ3N1bm51bnRhaV9tYWFuYW50YWlfdGlpc3RhaV9rZXNraXZpaWtrb190b3JzdGFpX3BlcmphbnRhaV9sYXVhbnRhaScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc3VfbWFfdGlfa2VfdG9fcGVfbGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc3VfbWFfdGlfa2VfdG9fcGVfbGEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRG8gTU1NTVt0YV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEbyBNTU1NW3RhXSBZWVlZLCBba2xvXSBISC5tbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRG8gTU1NTVt0YV0gWVlZWSwgW2tsb10gSEgubW0nLFxuICAgICAgICAgICAgbDogJ0QuTS5ZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnRG8gTU1NIFlZWVknLFxuICAgICAgICAgICAgbGxsOiAnRG8gTU1NIFlZWVksIFtrbG9dIEhILm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIERvIE1NTSBZWVlZLCBba2xvXSBISC5tbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW3TDpG7DpMOkbl0gW2tsb10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1todW9tZW5uYV0gW2tsb10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtrbG9dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZWlsZW5dIFtrbG9dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3ZpaW1lXSBkZGRkW25hXSBba2xvXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHDDpMOkc3TDpCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc2l0dGVuJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmaTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGaWxpcGlubyBbZmlsXVxuLy8hIGF1dGhvciA6IERhbiBIYWdtYW4gOiBodHRwczovL2dpdGh1Yi5jb20vaGFnbWFuZGFuXG4vLyEgYXV0aG9yIDogTWF0dGhldyBDbyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGV3ZGVlY29cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBmaWwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmaWwnLCB7XG4gICAgICAgIG1vbnRoczogJ0VuZXJvX1BlYnJlcm9fTWFyc29fQWJyaWxfTWF5b19IdW55b19IdWx5b19BZ29zdG9fU2V0eWVtYnJlX09rdHVicmVfTm9ieWVtYnJlX0Rpc3llbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdFbmVfUGViX01hcl9BYnJfTWF5X0h1bl9IdWxfQWdvX1NldF9Pa3RfTm9iX0Rpcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdMaW5nZ29fTHVuZXNfTWFydGVzX01peWVya3VsZXNfSHV3ZWJlc19CaXllcm5lc19TYWJhZG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdMaW5fTHVuX01hcl9NaXlfSHV3X0JpeV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnTGlfTHVfTWFfTWlfSHVfQmlfU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnTU0vRC9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnTU1NTSBELCBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ01NTU0gRCwgWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBERCwgWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnTFQgW25nYXlvbmcgYXJhd10nLFxuICAgICAgICAgICAgbmV4dERheTogJ1tCdWthcyBuZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdMVCBbc2Egc3VzdW5vZCBuYV0gZGRkZCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnTFQgW2thaGFwb25dJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnTFQgW25vb25nIG5ha2FyYWFuZ10gZGRkZCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3NhIGxvb2IgbmcgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFuZyBuYWthbGlwYXMnLFxuICAgICAgICAgICAgczogJ2lsYW5nIHNlZ3VuZG8nLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvJyxcbiAgICAgICAgICAgIG06ICdpc2FuZyBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG8nLFxuICAgICAgICAgICAgaDogJ2lzYW5nIG9yYXMnLFxuICAgICAgICAgICAgaGg6ICclZCBvcmFzJyxcbiAgICAgICAgICAgIGQ6ICdpc2FuZyBhcmF3JyxcbiAgICAgICAgICAgIGRkOiAnJWQgYXJhdycsXG4gICAgICAgICAgICBNOiAnaXNhbmcgYnV3YW4nLFxuICAgICAgICAgICAgTU06ICclZCBidXdhbicsXG4gICAgICAgICAgICB5OiAnaXNhbmcgdGFvbicsXG4gICAgICAgICAgICB5eTogJyVkIHRhb24nLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZhcm9lc2UgW2ZvXVxuLy8hIGF1dGhvciA6IFJhZ25hciBKb2hhbm5lc2VuIDogaHR0cHM6Ly9naXRodWIuY29tL3JhZ25hcjEyM1xuLy8hIGF1dGhvciA6IEtyaXN0aWFuIFNha2FyaXNzb24gOiBodHRwczovL2dpdGh1Yi5jb20vc2FrYXJpc3NvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGZvID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZm8nLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnNfYXByw61sX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICdzdW5udWRhZ3VyX23DoW5hZGFndXJfdMO9c2RhZ3VyX21pa3VkYWd1cl9ow7NzZGFndXJfZnLDrWdnamFkYWd1cl9sZXlnYXJkYWd1cicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc3VuX23DoW5fdMO9c19taWtfaMOzc19mcsOtX2xleScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzdV9tw6FfdMO9X21pX2jDs19mcl9sZScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBELiBNTU1NLCBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbw40gZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vDjSBtb3JnaW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vDjSBnasOhciBrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3PDrcOwc3R1XSBkZGRkIFtrbF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd1bSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc8Otw7BhbmknLFxuICAgICAgICAgICAgczogJ2bDoSBzZWt1bmQnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmRpcicsXG4gICAgICAgICAgICBtOiAnZWluIG1pbnV0dHVyJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXR0aXInLFxuICAgICAgICAgICAgaDogJ2VpbiB0w61taScsXG4gICAgICAgICAgICBoaDogJyVkIHTDrW1hcicsXG4gICAgICAgICAgICBkOiAnZWluIGRhZ3VyJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnYXInLFxuICAgICAgICAgICAgTTogJ2VpbiBtw6FuYcOwdXInLFxuICAgICAgICAgICAgTU06ICclZCBtw6FuYcOwaXInLFxuICAgICAgICAgICAgeTogJ2VpdHQgw6FyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw6FyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGcmVuY2ggKENhbmFkYSkgW2ZyLWNhXVxuLy8hIGF1dGhvciA6IEpvbmF0aGFuIEFib3VyYmloIDogaHR0cHM6Ly9naXRodWIuY29tL2pvbmJjYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGZyQ2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmci1jYScsIHtcbiAgICAgICAgbW9udGhzOiAnamFudmllcl9mw6l2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW/Du3Rfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZMOpY2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICdqYW52Ll9mw6l2ci5fbWFyc19hdnIuX21haV9qdWluX2p1aWwuX2Fvw7t0X3NlcHQuX29jdC5fbm92Ll9kw6ljLicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2RpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGlfbHVfbWFfbWVfamVfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0F1am91cmTigJlodWkgw6BdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRGVtYWluIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8OgXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0hpZXIgw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbZGVybmllciDDoF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYW5zICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdpbCB5IGEgJXMnLFxuICAgICAgICAgICAgczogJ3F1ZWxxdWVzIHNlY29uZGVzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kZXMnLFxuICAgICAgICAgICAgbTogJ3VuZSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICd1bmUgaGV1cmUnLFxuICAgICAgICAgICAgaGg6ICclZCBoZXVyZXMnLFxuICAgICAgICAgICAgZDogJ3VuIGpvdXInLFxuICAgICAgICAgICAgZGQ6ICclZCBqb3VycycsXG4gICAgICAgICAgICBNOiAndW4gbW9pcycsXG4gICAgICAgICAgICBNTTogJyVkIG1vaXMnLFxuICAgICAgICAgICAgeTogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGVyfGUpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggbWFzY3VsaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogbW9pcywgdHJpbWVzdHJlLCBqb3VyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdRJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdlcicgOiAnZScpO1xuXG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBmZW1pbmluZSBncmFtbWF0aWNhbCBnZW5kZXI6IHNlbWFpbmVcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAncmUnIDogJ2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmckNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZyZW5jaCAoU3dpdHplcmxhbmQpIFtmci1jaF1cbi8vISBhdXRob3IgOiBHYXNwYXJkIEJ1Y2hlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9nYXNwYXJkXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZnJDaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZyLWNoJywge1xuICAgICAgICBtb250aHM6ICdqYW52aWVyX2bDqXZyaWVyX21hcnNfYXZyaWxfbWFpX2p1aW5fanVpbGxldF9hb8O7dF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kw6ljZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ2phbnYuX2bDqXZyLl9tYXJzX2F2ci5fbWFpX2p1aW5fanVpbC5fYW/Du3Rfc2VwdC5fb2N0Ll9ub3YuX2TDqWMuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZGltLl9sdW4uX21hci5fbWVyLl9qZXUuX3Zlbi5fc2FtLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkaV9sdV9tYV9tZV9qZV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQXVqb3VyZOKAmWh1aSDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tEZW1haW4gw6BdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSGllciDDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtkZXJuaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbnMgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2lsIHkgYSAlcycsXG4gICAgICAgICAgICBzOiAncXVlbHF1ZXMgc2Vjb25kZXMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRlcycsXG4gICAgICAgICAgICBtOiAndW5lIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ3VuZSBoZXVyZScsXG4gICAgICAgICAgICBoaDogJyVkIGhldXJlcycsXG4gICAgICAgICAgICBkOiAndW4gam91cicsXG4gICAgICAgICAgICBkZDogJyVkIGpvdXJzJyxcbiAgICAgICAgICAgIE06ICd1biBtb2lzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9pcycsXG4gICAgICAgICAgICB5OiAndW4gYW4nLFxuICAgICAgICAgICAgeXk6ICclZCBhbnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZXJ8ZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBtYXNjdWxpbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBtb2lzLCB0cmltZXN0cmUsIGpvdXJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1EnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ2VyJyA6ICdlJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIGZlbWluaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogc2VtYWluZVxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdyZScgOiAnZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnJDaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGcmVuY2ggW2ZyXVxuLy8hIGF1dGhvciA6IEpvaG4gRmlzY2hlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qZnJvZmZpY2VcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNTdHJpY3RSZWdleCA9XG4gICAgICAgICAgICAvXihqYW52aWVyfGbDqXZyaWVyfG1hcnN8YXZyaWx8bWFpfGp1aW58anVpbGxldHxhb8O7dHxzZXB0ZW1icmV8b2N0b2JyZXxub3ZlbWJyZXxkw6ljZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXggPVxuICAgICAgICAgICAgLyhqYW52XFwuP3xmw6l2clxcLj98bWFyc3xhdnJcXC4/fG1haXxqdWlufGp1aWxcXC4/fGFvw7t0fHNlcHRcXC4/fG9jdFxcLj98bm92XFwuP3xkw6ljXFwuPykvaSxcbiAgICAgICAgbW9udGhzUmVnZXggPVxuICAgICAgICAgICAgLyhqYW52XFwuP3xmw6l2clxcLj98bWFyc3xhdnJcXC4/fG1haXxqdWlufGp1aWxcXC4/fGFvw7t0fHNlcHRcXC4/fG9jdFxcLj98bm92XFwuP3xkw6ljXFwuP3xqYW52aWVyfGbDqXZyaWVyfG1hcnN8YXZyaWx8bWFpfGp1aW58anVpbGxldHxhb8O7dHxzZXB0ZW1icmV8b2N0b2JyZXxub3ZlbWJyZXxkw6ljZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15qYW52L2ksXG4gICAgICAgICAgICAvXmbDqXZyL2ksXG4gICAgICAgICAgICAvXm1hcnMvaSxcbiAgICAgICAgICAgIC9eYXZyL2ksXG4gICAgICAgICAgICAvXm1haS9pLFxuICAgICAgICAgICAgL15qdWluL2ksXG4gICAgICAgICAgICAvXmp1aWwvaSxcbiAgICAgICAgICAgIC9eYW/Du3QvaSxcbiAgICAgICAgICAgIC9ec2VwdC9pLFxuICAgICAgICAgICAgL15vY3QvaSxcbiAgICAgICAgICAgIC9ebm92L2ksXG4gICAgICAgICAgICAvXmTDqWMvaSxcbiAgICAgICAgXTtcblxuICAgIHZhciBmciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZyJywge1xuICAgICAgICBtb250aHM6ICdqYW52aWVyX2bDqXZyaWVyX21hcnNfYXZyaWxfbWFpX2p1aW5fanVpbGxldF9hb8O7dF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kw6ljZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ2phbnYuX2bDqXZyLl9tYXJzX2F2ci5fbWFpX2p1aW5fanVpbC5fYW/Du3Rfc2VwdC5fb2N0Ll9ub3YuX2TDqWMuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiBtb250aHNTdHJpY3RSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogbW9udGhzU2hvcnRTdHJpY3RSZWdleCxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICdkaW1hbmNoZV9sdW5kaV9tYXJkaV9tZXJjcmVkaV9qZXVkaV92ZW5kcmVkaV9zYW1lZGknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RpX2x1X21hX21lX2plX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tBdWpvdXJk4oCZaHVpIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0RlbWFpbiDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2Rlcm5pZXIgw6BdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFucyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaWwgeSBhICVzJyxcbiAgICAgICAgICAgIHM6ICdxdWVscXVlcyBzZWNvbmRlcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGVzJyxcbiAgICAgICAgICAgIG06ICd1bmUgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAndW5lIGhldXJlJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaGV1cmVzJyxcbiAgICAgICAgICAgIGQ6ICd1biBqb3VyJyxcbiAgICAgICAgICAgIGRkOiAnJWQgam91cnMnLFxuICAgICAgICAgICAgdzogJ3VuZSBzZW1haW5lJyxcbiAgICAgICAgICAgIHd3OiAnJWQgc2VtYWluZXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1vaXMnLFxuICAgICAgICAgICAgTU06ICclZCBtb2lzJyxcbiAgICAgICAgICAgIHk6ICd1biBhbicsXG4gICAgICAgICAgICB5eTogJyVkIGFucycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShlcnwpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IFJldHVybiAnZScgd2hlbiBkYXkgb2YgbW9udGggPiAxLiBNb3ZlIHRoaXMgY2FzZSBpbnNpZGVcbiAgICAgICAgICAgICAgICAvLyBibG9jayBmb3IgbWFzY3VsaW5lIHdvcmRzIGJlbG93LlxuICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMzM3NVxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdlcicgOiAnJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIG1hc2N1bGluZSBncmFtbWF0aWNhbCBnZW5kZXI6IG1vaXMsIHRyaW1lc3RyZSwgam91clxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnUSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAnZXInIDogJ2UnKTtcblxuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggZmVtaW5pbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBzZW1haW5lXG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ3JlJyA6ICdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGcmlzaWFuIFtmeV1cbi8vISBhdXRob3IgOiBSb2JpbiB2YW4gZGVyIFZsaWV0IDogaHR0cHM6Ly9naXRodWIuY29tL3JvYmluMHZhbjBkZXIwdlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0V2l0aERvdHMgPVxuICAgICAgICAgICAgJ2phbi5fZmViLl9tcnQuX2Fwci5fbWFpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rlcy4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0V2l0aG91dERvdHMgPVxuICAgICAgICAgICAgJ2phbl9mZWJfbXJ0X2Fwcl9tYWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzJy5zcGxpdCgnXycpO1xuXG4gICAgdmFyIGZ5ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZnknLCB7XG4gICAgICAgIG1vbnRoczogJ2phbm5ld2FyaXNfZmVicmV3YXJpc19tYWFydF9hcHJpbF9tYWFpZV9qdW55X2p1bHlfYXVndXN0dXNfc2VwdGltYmVyX29rdG9iZXJfbm92aW1iZXJfZGVzaW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90cztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRob3V0RG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ3NuZWluX21vYW5kZWlfdGlpc2RlaV93b2Fuc2RlaV90b25nZXJzZGVpX2ZyZWVkX3NuZW9uJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc2kuX21vLl90aS5fd28uX3RvLl9mci5fc28uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1NpX01vX1RpX1dvX1RvX0ZyX1NvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toam9lZCBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb2FybiBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdXN0ZXIgb21dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW8O0ZnLDu25lXSBkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvZXIgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGx5bicsXG4gICAgICAgICAgICBzOiAnaW4gcGVhciBzZWtvbmRlbicsXG4gICAgICAgICAgICBzczogJyVkIHNla29uZGVuJyxcbiAgICAgICAgICAgIG06ICdpZW4gbWluw7p0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlbicsXG4gICAgICAgICAgICBoOiAnaWVuIG9lcmUnLFxuICAgICAgICAgICAgaGg6ICclZCBvZXJlbicsXG4gICAgICAgICAgICBkOiAnaWVuIGRlaScsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2VuJyxcbiAgICAgICAgICAgIE06ICdpZW4gbW9hbm5lJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9hbm5lbicsXG4gICAgICAgICAgICB5OiAnaWVuIGppZXInLFxuICAgICAgICAgICAgeXk6ICclZCBqaWVycmVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgKG51bWJlciA9PT0gMSB8fCBudW1iZXIgPT09IDggfHwgbnVtYmVyID49IDIwID8gJ3N0ZScgOiAnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ5O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IElyaXNoIG9yIElyaXNoIEdhZWxpYyBbZ2FdXG4vLyEgYXV0aG9yIDogQW5kcsOpIFNpbHZhIDogaHR0cHM6Ly9naXRodWIuY29tL2Fza3B0XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gW1xuICAgICAgICAgICAgJ0VhbsOhaXInLFxuICAgICAgICAgICAgJ0ZlYWJocmEnLFxuICAgICAgICAgICAgJ03DoXJ0YScsXG4gICAgICAgICAgICAnQWlicmXDoW4nLFxuICAgICAgICAgICAgJ0JlYWx0YWluZScsXG4gICAgICAgICAgICAnTWVpdGhlYW1oJyxcbiAgICAgICAgICAgICdJw7ppbCcsXG4gICAgICAgICAgICAnTMO6bmFzYScsXG4gICAgICAgICAgICAnTWXDoW4gRsOzbWhhaXInLFxuICAgICAgICAgICAgJ0RlaXJlYWRoIEbDs21oYWlyJyxcbiAgICAgICAgICAgICdTYW1oYWluJyxcbiAgICAgICAgICAgICdOb2xsYWlnJyxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSBbXG4gICAgICAgICAgICAnRWFuJyxcbiAgICAgICAgICAgICdGZWFiaCcsXG4gICAgICAgICAgICAnTcOhcnQnLFxuICAgICAgICAgICAgJ0FpYicsXG4gICAgICAgICAgICAnQmVhbCcsXG4gICAgICAgICAgICAnTWVpdGgnLFxuICAgICAgICAgICAgJ0nDumlsJyxcbiAgICAgICAgICAgICdMw7puJyxcbiAgICAgICAgICAgICdNLkYuJyxcbiAgICAgICAgICAgICdELkYuJyxcbiAgICAgICAgICAgICdTYW1oJyxcbiAgICAgICAgICAgICdOb2xsJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2Vla2RheXMgPSBbXG4gICAgICAgICAgICAnRMOpIERvbWhuYWlnaCcsXG4gICAgICAgICAgICAnRMOpIEx1YWluJyxcbiAgICAgICAgICAgICdEw6kgTcOhaXJ0JyxcbiAgICAgICAgICAgICdEw6kgQ8OpYWRhb2luJyxcbiAgICAgICAgICAgICdEw6lhcmRhb2luJyxcbiAgICAgICAgICAgICdEw6kgaEFvaW5lJyxcbiAgICAgICAgICAgICdEw6kgU2F0aGFpcm4nLFxuICAgICAgICBdLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0ID0gWydEb21oJywgJ0x1YW4nLCAnTcOhaXJ0JywgJ0PDqWFkJywgJ0TDqWFyJywgJ0FvaW5lJywgJ1NhdGgnXSxcbiAgICAgICAgd2Vla2RheXNNaW4gPSBbJ0RvJywgJ0x1JywgJ03DoScsICdDw6knLCAnRMOpJywgJ0EnLCAnU2EnXTtcblxuICAgIHZhciBnYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2dhJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRoc1Nob3J0LFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogd2Vla2RheXMsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6IHdlZWtkYXlzU2hvcnQsXG4gICAgICAgIHdlZWtkYXlzTWluOiB3ZWVrZGF5c01pbixcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tJbm5pdSBhZ10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tBbcOhcmFjaCBhZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthZ10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJbm7DqSBhZ10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtzZW8gY2FpdGVdIFthZ10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDDsyBzaGluJyxcbiAgICAgICAgICAgIHM6ICdjw7pwbGEgc29pY2luZCcsXG4gICAgICAgICAgICBzczogJyVkIHNvaWNpbmQnLFxuICAgICAgICAgICAgbTogJ27Ds2ltw6lhZCcsXG4gICAgICAgICAgICBtbTogJyVkIG7Ds2ltw6lhZCcsXG4gICAgICAgICAgICBoOiAndWFpciBhbiBjaGxvaWcnLFxuICAgICAgICAgICAgaGg6ICclZCB1YWlyIGFuIGNobG9pZycsXG4gICAgICAgICAgICBkOiAnbMOhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgbMOhJyxcbiAgICAgICAgICAgIE06ICdtw60nLFxuICAgICAgICAgICAgTU06ICclZCBtw61vbm5hJyxcbiAgICAgICAgICAgIHk6ICdibGlhaW4nLFxuICAgICAgICAgICAgeXk6ICclZCBibGlhaW4nLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZHxuYXxtaCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gbnVtYmVyID09PSAxID8gJ2QnIDogbnVtYmVyICUgMTAgPT09IDIgPyAnbmEnIDogJ21oJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBnYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTY290dGlzaCBHYWVsaWMgW2dkXVxuLy8hIGF1dGhvciA6IEpvbiBBc2hkb3duIDogaHR0cHM6Ly9naXRodWIuY29tL2pvbmFzaGRvd25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICAgICAnQW0gRmFvaWxsZWFjaCcsXG4gICAgICAgICAgICAnQW4gR2VhcnJhbicsXG4gICAgICAgICAgICAnQW0gTcOgcnQnLFxuICAgICAgICAgICAgJ0FuIEdpYmxlYW4nLFxuICAgICAgICAgICAgJ0FuIEPDqGl0ZWFuJyxcbiAgICAgICAgICAgICdBbiB0LcOSZ21oaW9zJyxcbiAgICAgICAgICAgICdBbiB0LUl1Y2hhcicsXG4gICAgICAgICAgICAnQW4gTMO5bmFzdGFsJyxcbiAgICAgICAgICAgICdBbiB0LVN1bHRhaW4nLFxuICAgICAgICAgICAgJ0FuIETDoG1oYWlyJyxcbiAgICAgICAgICAgICdBbiB0LVNhbWhhaW4nLFxuICAgICAgICAgICAgJ0FuIETDuWJobGFjaGQnLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNTaG9ydCA9IFtcbiAgICAgICAgICAgICdGYW9pJyxcbiAgICAgICAgICAgICdHZWFyJyxcbiAgICAgICAgICAgICdNw6BydCcsXG4gICAgICAgICAgICAnR2libCcsXG4gICAgICAgICAgICAnQ8OoaXQnLFxuICAgICAgICAgICAgJ8OSZ21oJyxcbiAgICAgICAgICAgICdJdWNoJyxcbiAgICAgICAgICAgICdMw7luJyxcbiAgICAgICAgICAgICdTdWx0JyxcbiAgICAgICAgICAgICdEw6BtaCcsXG4gICAgICAgICAgICAnU2FtaCcsXG4gICAgICAgICAgICAnRMO5YmgnLFxuICAgICAgICBdLFxuICAgICAgICB3ZWVrZGF5cyA9IFtcbiAgICAgICAgICAgICdEaWTDsm1obmFpY2gnLFxuICAgICAgICAgICAgJ0RpbHVhaW4nLFxuICAgICAgICAgICAgJ0RpbcOgaXJ0JyxcbiAgICAgICAgICAgICdEaWNpYWRhaW4nLFxuICAgICAgICAgICAgJ0RpYXJkYW9pbicsXG4gICAgICAgICAgICAnRGloYW9pbmUnLFxuICAgICAgICAgICAgJ0Rpc2F0aGFpcm5lJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA9IFsnRGlkJywgJ0RpbCcsICdEaW0nLCAnRGljJywgJ0RpYScsICdEaWgnLCAnRGlzJ10sXG4gICAgICAgIHdlZWtkYXlzTWluID0gWydEw7InLCAnTHUnLCAnTcOgJywgJ0NpJywgJ0FyJywgJ0hhJywgJ1NhJ107XG5cbiAgICB2YXIgZ2QgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnZCcsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHNTaG9ydCxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6IHdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiB3ZWVrZGF5c1Nob3J0LFxuICAgICAgICB3ZWVrZGF5c01pbjogd2Vla2RheXNNaW4sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQW4tZGl1Z2ggYWlnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0EtbcOgaXJlYWNoIGFpZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthaWddIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbQW4tZMOoIGFpZ10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtzZW8gY2hhaWRoXSBbYWlnXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2FubiBhbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnYmhvIGNoaW9ubiAlcycsXG4gICAgICAgICAgICBzOiAnYmVhZ2FuIGRpb2dhbicsXG4gICAgICAgICAgICBzczogJyVkIGRpb2dhbicsXG4gICAgICAgICAgICBtOiAnbWlvbmFpZCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pb25haWRlYW4nLFxuICAgICAgICAgICAgaDogJ3VhaXInLFxuICAgICAgICAgICAgaGg6ICclZCB1YWlyZWFuJyxcbiAgICAgICAgICAgIGQ6ICdsYXRoYScsXG4gICAgICAgICAgICBkZDogJyVkIGxhdGhhJyxcbiAgICAgICAgICAgIE06ICdtw6xvcycsXG4gICAgICAgICAgICBNTTogJyVkIG3DrG9zYW4nLFxuICAgICAgICAgICAgeTogJ2JsaWFkaG5hJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYmxpYWRobmEnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZHxuYXxtaCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gbnVtYmVyID09PSAxID8gJ2QnIDogbnVtYmVyICUgMTAgPT09IDIgPyAnbmEnIDogJ21oJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBnZDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHYWxpY2lhbiBbZ2xdXG4vLyEgYXV0aG9yIDogSnVhbiBHLiBIdXJ0YWRvIDogaHR0cHM6Ly9naXRodWIuY29tL2p1YW5naHVydGFkb1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGdsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ2wnLCB7XG4gICAgICAgIG1vbnRoczogJ3hhbmVpcm9fZmVicmVpcm9fbWFyem9fYWJyaWxfbWFpb194dcOxb194dWxsb19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZWNlbWJybycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAneGFuLl9mZWIuX21hci5fYWJyLl9tYWkuX3h1w7EuX3h1bC5fYWdvLl9zZXQuX291dC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnZG9taW5nb19sdW5zX21hcnRlc19tw6lyY29yZXNfeG92ZXNfdmVucmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb20uX2x1bi5fbWFyLl9tw6lyLl94b3YuX3Zlbi5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbcOpX3hvX3ZlX3PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tob3hlICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ8OhcycgOiAnw6EnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbbWHDscOhICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ8OhcycgOiAnw6EnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBbJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnw6FzJyA6ICdhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW29udGUgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnw6EnIDogJ2EnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbb10gZGRkZCBbcGFzYWRvICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ8OhcycgOiAnYScpICsgJ10gTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogZnVuY3Rpb24gKHN0cikge1xuICAgICAgICAgICAgICAgIGlmIChzdHIuaW5kZXhPZigndW4nKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ24nICsgc3RyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VuICcgKyBzdHI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzdDogJ2hhaSAlcycsXG4gICAgICAgICAgICBzOiAndW5zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VuaGEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1biBkw61hJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZMOtYXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1biBhbm8nLFxuICAgICAgICAgICAgeXk6ICclZCBhbm9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBnbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLb25rYW5pIERldmFuYWdhcmkgc2NyaXB0IFtnb20tZGV2YV1cbi8vISBhdXRob3IgOiBUaGUgRGlzY292ZXJlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9XaWtpRGlzY292ZXJlclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHM6IFsn4KSl4KWL4KSh4KSv4KS+IOCkuOClheCkleCkguCkoeCkvuCkguCkqOClgCcsICfgpKXgpYvgpKHgpYcg4KS44KWF4KSV4KSC4KShJ10sXG4gICAgICAgICAgICBzczogW251bWJlciArICcg4KS44KWF4KSV4KSC4KSh4KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpLjgpYXgpJXgpILgpKEnXSxcbiAgICAgICAgICAgIG06IFsn4KSP4KSV4KS+IOCkruCkv+Cko+Ckn+CkvuCkqCcsICfgpI/gpJUg4KSu4KS/4KSo4KWC4KSfJ10sXG4gICAgICAgICAgICBtbTogW251bWJlciArICcg4KSu4KS/4KSj4KSf4KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpK7gpL/gpKPgpJ/gpL7gpIInXSxcbiAgICAgICAgICAgIGg6IFsn4KSP4KSV4KS+IOCkteCksOCkvuCkqCcsICfgpI/gpJUg4KS14KSwJ10sXG4gICAgICAgICAgICBoaDogW251bWJlciArICcg4KS14KSw4KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpLXgpLDgpL7gpIInXSxcbiAgICAgICAgICAgIGQ6IFsn4KSP4KSV4KS+IOCkpuCkv+CkuOCkvuCkqCcsICfgpI/gpJUg4KSm4KWA4KS4J10sXG4gICAgICAgICAgICBkZDogW251bWJlciArICcg4KSm4KS/4KS44KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpKbgpYDgpLgnXSxcbiAgICAgICAgICAgIE06IFsn4KSP4KSV4KS+IOCkruCljeCkueCkr+CkqOCljeCkr+CkvuCkqCcsICfgpI/gpJUg4KSu4KWN4KS54KSv4KSo4KWLJ10sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcg4KSu4KWN4KS54KSv4KSo4KWN4KSv4KS+4KSo4KWAJywgbnVtYmVyICsgJyDgpK7gpY3gpLngpK/gpKjgpYcnXSxcbiAgICAgICAgICAgIHk6IFsn4KSP4KSV4KS+IOCkteCksOCljeCkuOCkvuCkqCcsICfgpI/gpJUg4KS14KSw4KWN4KS4J10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcg4KS14KSw4KWN4KS44KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpLXgpLDgpY3gpLjgpL7gpIInXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICB2YXIgZ29tRGV2YSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2dvbS1kZXZhJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6XG4gICAgICAgICAgICAgICAgJ+CknOCkvuCkqOClh+CkteCkvuCksOClgF/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpL7gpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+Ckj+CkquCljeCksOClgOCksl/gpK7gpYdf4KSc4KWC4KSoX+CknOClgeCksuCkr1/gpJHgpJfgpLjgpY3gpJ9f4KS44KSq4KWN4KSf4KWH4KSC4KSs4KSwX+CkkeCkleCljeCkn+Cli+CkrOCksF/gpKjgpYvgpLXgpY3gpLngpYfgpILgpKzgpLBf4KSh4KS/4KS44KWH4KSC4KSs4KSwJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ+CknOCkvuCkqOClh+CkteCkvuCksOClgOCkmuCljeCkr+Ckvl/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpL7gpLDgpYDgpJrgpY3gpK/gpL5f4KSu4KS+4KSw4KWN4KSa4KS+4KSa4KWN4KSv4KS+X+Ckj+CkquCljeCksOClgOCksuCkvuCkmuCljeCkr+Ckvl/gpK7gpYfgpK/gpL7gpJrgpY3gpK/gpL5f4KSc4KWC4KSo4KS+4KSa4KWN4KSv4KS+X+CknOClgeCksuCkr+CkvuCkmuCljeCkr+Ckvl/gpJHgpJfgpLjgpY3gpJ/gpL7gpJrgpY3gpK/gpL5f4KS44KSq4KWN4KSf4KWH4KSC4KSs4KSw4KS+4KSa4KWN4KSv4KS+X+CkkeCkleCljeCkn+Cli+CkrOCksOCkvuCkmuCljeCkr+Ckvl/gpKjgpYvgpLXgpY3gpLngpYfgpILgpKzgpLDgpL7gpJrgpY3gpK/gpL5f4KSh4KS/4KS44KWH4KSC4KSs4KSw4KS+4KSa4KWN4KSv4KS+Jy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL01NTU0oXFxzKStEW29EXT8vLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfgpJzgpL7gpKjgpYcuX+Ckq+Clh+CkrOCljeCksOClgS5f4KSu4KS+4KSw4KWN4KSaX+Ckj+CkquCljeCksOClgC5f4KSu4KWHX+CknOClguCkqF/gpJzgpYHgpLIuX+CkkeCkly5f4KS44KSq4KWN4KSf4KWH4KSCLl/gpJHgpJXgpY3gpJ/gpYsuX+CkqOCli+CkteCljeCkueClh+Ckgi5f4KSh4KS/4KS44KWH4KSCLicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CkhuCkr+CkpOCkvuCksF/gpLjgpYvgpK7gpL7gpLBf4KSu4KSC4KSX4KSz4KS+4KSwX+CkrOClgeCkp+CkteCkvuCksF/gpKzgpL/gpLDgpYfgpLjgpY3gpKTgpL7gpLBf4KS44KWB4KSV4KWN4KSw4KS+4KSwX+CktuClh+CkqOCkteCkvuCksCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CkhuCkr+CkpC5f4KS44KWL4KSuLl/gpK7gpILgpJfgpLMuX+CkrOClgeCkpy5f4KSs4KWN4KSw4KWH4KS44KWN4KSkLl/gpLjgpYHgpJXgpY3gpLAuX+CktuClh+CkqC4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4KSGX+CkuOCli1/gpK7gpIJf4KSs4KWBX+CkrOCljeCksOClh1/gpLjgpYFf4KS24KWHJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSBb4KS14KS+4KSc4KSk4KS+4KSCXScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MgW+CkteCkvuCknOCkpOCkvuCkgl0nLFxuICAgICAgICAgICAgTDogJ0RELU1NLVlZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBBIGg6bW0gW+CkteCkvuCknOCkpOCkvuCkgl0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBb4KS14KS+4KSc4KSk4KS+4KSCXScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkLCBEIE1NTSBZWVlZLCBBIGg6bW0gW+CkteCkvuCknOCkpOCkvuCkgl0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgpIbgpK/gpJxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4KSr4KS+4KSy4KWN4KSv4KS+4KSCXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vgpKvgpYHgpKHgpLLgpYtdIGRkZGRbLF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgpJXgpL7gpLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+Ckq+CkvuCkn+CksuCli10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgpIbgpKbgpYDgpIInLFxuICAgICAgICAgICAgczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHNzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o4KS14KWH4KSwKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGUgb3JkaW5hbCAn4KS14KWH4KSwJyBvbmx5IGFwcGxpZXMgdG8gZGF5IG9mIHRoZSBtb250aFxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+CkteClh+CksCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdRJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrXG4gICAgICAgICAgICBkb3k6IDMsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciAoNyArIDAgLSA0KVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4KSw4KS+4KSk4KWAfOCkuOCkleCkvuCks+ClgOCkgnzgpKbgpKjgpKrgpL7gpLDgpL7gpIJ84KS44KS+4KSC4KSc4KWHLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4KSw4KS+4KSk4KWAJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KS44KSV4KS+4KSz4KWA4KSCJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkpuCkqOCkquCkvuCksOCkvuCkgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+IDEyID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpLjgpL7gpILgpJzgpYcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSk4KWAJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpJXgpL7gpLPgpYDgpIInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkpuCkqOCkquCkvuCksOCkvuCkgic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KS+4KSC4KSc4KWHJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpYAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdvbURldmE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS29ua2FuaSBMYXRpbiBzY3JpcHQgW2dvbS1sYXRuXVxuLy8hIGF1dGhvciA6IFRoZSBEaXNjb3ZlcmVyIDogaHR0cHM6Ly9naXRodWIuY29tL1dpa2lEaXNjb3ZlcmVyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgczogWyd0aG9kZGVhIHNla29uZGFtbmknLCAndGhvZGRlIHNla29uZCddLFxuICAgICAgICAgICAgc3M6IFtudW1iZXIgKyAnIHNla29uZGFtbmknLCBudW1iZXIgKyAnIHNla29uZCddLFxuICAgICAgICAgICAgbTogWydla2EgbWludGFuJywgJ2VrIG1pbnV0J10sXG4gICAgICAgICAgICBtbTogW251bWJlciArICcgbWludGFtbmknLCBudW1iZXIgKyAnIG1pbnRhbSddLFxuICAgICAgICAgICAgaDogWydla2Egdm9yYW4nLCAnZWsgdm9yJ10sXG4gICAgICAgICAgICBoaDogW251bWJlciArICcgdm9yYW1uaScsIG51bWJlciArICcgdm9yYW0nXSxcbiAgICAgICAgICAgIGQ6IFsnZWthIGRpc2FuJywgJ2VrIGRpcyddLFxuICAgICAgICAgICAgZGQ6IFtudW1iZXIgKyAnIGRpc2FtbmknLCBudW1iZXIgKyAnIGRpcyddLFxuICAgICAgICAgICAgTTogWydla2EgbWhvaW5lYW4nLCAnZWsgbWhvaW5vJ10sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcgbWhvaW5lYW1uaScsIG51bWJlciArICcgbWhvaW5lJ10sXG4gICAgICAgICAgICB5OiBbJ2VrYSB2b3JzYW4nLCAnZWsgdm9yb3MnXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyB2b3JzYW1uaScsIG51bWJlciArICcgdm9yc2FtJ10sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpc0Z1dHVyZSA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGdvbUxhdG4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnb20tbGF0bicsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOlxuICAgICAgICAgICAgICAgICdKYW5lcl9GZWJyZXJfTWFyc19BYnJpbF9NYWlfSnVuX0p1bGFpX0Fnb3N0X1NldGVtYnJfT3R1YnJfTm92ZW1icl9EZXplbWJyJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ0phbmVyYWNoZWFfRmVicmVyYWNoZWFfTWFyc2FjaGVhX0FicmlsYWNoZWFfTWFpYWNoZWFfSnVuYWNoZWFfSnVsYWlhY2hlYV9BZ29zdGFjaGVhX1NldGVtYnJhY2hlYV9PdHVicmFjaGVhX05vdmVtYnJhY2hlYV9EZXplbWJyYWNoZWEnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvTU1NTShcXHMpK0Rbb0RdPy8sXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ0phbi5fRmViLl9NYXJzX0Fici5fTWFpX0p1bl9KdWwuX0Fnby5fU2V0Ll9PdHUuX05vdi5fRGV6Licuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6IFwiQWl0YXJfU29tYXJfTW9uZ2xsYXJfQnVkaHZhcl9CaXJlc3Rhcl9TdWtyYXJfU29uJ3ZhclwiLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdBaXQuX1NvbS5fTW9uLl9CdWQuX0JyZS5fU3VrLl9Tb24uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0FpX1NtX01vX0J1X0JyX1N1X1NuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSBbdmF6dGFdJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyBbdmF6dGFdJyxcbiAgICAgICAgICAgIEw6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgQSBoOm1tIFt2YXp0YV0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBbdmF6dGFdJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIEQgTU1NIFlZWVksIEEgaDptbSBbdmF6dGFdJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQWl6XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0ZhbGVhbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdbRnVkZGxvXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS2FsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tGYXR0bG9dIGRkZGRbLF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWRpbScsXG4gICAgICAgICAgICBzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3M6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShlcikvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIG9yZGluYWwgJ2VyJyBvbmx5IGFwcGxpZXMgdG8gZGF5IG9mIHRoZSBtb250aFxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ2VyJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1EnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWtcbiAgICAgICAgICAgIGRveTogMywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyICg3ICsgMCAtIDQpXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9yYXRpfHNva2FsbGltfGRvbnBhcmFtfHNhbmplLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAncmF0aScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3Nva2FsbGltJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ2RvbnBhcmFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID4gMTIgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NhbmplJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JhdGknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Nva2FsbGltJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkb25wYXJhbSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc2FuamUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JhdGknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdvbUxhdG47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogR3VqYXJhdGkgW2d1XVxuLy8hIGF1dGhvciA6IEthdXNoaWsgVGhhbmtpIDogaHR0cHM6Ly9naXRodWIuY29tL0thdXNoaWsxOTg3XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgMTogJ+CrpycsXG4gICAgICAgICAgICAyOiAn4KuoJyxcbiAgICAgICAgICAgIDM6ICfgq6knLFxuICAgICAgICAgICAgNDogJ+CrqicsXG4gICAgICAgICAgICA1OiAn4KurJyxcbiAgICAgICAgICAgIDY6ICfgq6wnLFxuICAgICAgICAgICAgNzogJ+CrrScsXG4gICAgICAgICAgICA4OiAn4KuuJyxcbiAgICAgICAgICAgIDk6ICfgq68nLFxuICAgICAgICAgICAgMDogJ+CrpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgq6cnOiAnMScsXG4gICAgICAgICAgICAn4KuoJzogJzInLFxuICAgICAgICAgICAgJ+CrqSc6ICczJyxcbiAgICAgICAgICAgICfgq6onOiAnNCcsXG4gICAgICAgICAgICAn4KurJzogJzUnLFxuICAgICAgICAgICAgJ+CrrCc6ICc2JyxcbiAgICAgICAgICAgICfgq60nOiAnNycsXG4gICAgICAgICAgICAn4KuuJzogJzgnLFxuICAgICAgICAgICAgJ+Crryc6ICc5JyxcbiAgICAgICAgICAgICfgq6YnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgZ3UgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdndScsIHtcbiAgICAgICAgbW9udGhzOiAn4Kqc4Kq+4Kqo4KuN4Kqv4KuB4KqG4Kqw4KuAX+Cqq+Crh+CqrOCrjeCqsOCrgeCqhuCqsOCrgF/gqq7gqr7gqrDgq43gqppf4KqP4Kqq4KuN4Kqw4Kq/4KqyX+CqruCrh1/gqpzgq4Lgqqhf4Kqc4KuB4Kqy4Kq+4KqIX+CqkeCql+CquOCrjeCqn1/gqrjgqqrgq43gqp/gq4fgqq7gq43gqqzgqrBf4KqR4KqV4KuN4Kqf4KuN4Kqs4KqwX+CqqOCqteCrh+CqruCrjeCqrOCqsF/gqqHgqr/gqrjgq4fgqq7gq43gqqzgqrAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ+CqnOCqvuCqqOCrjeCqr+CrgS5f4Kqr4KuH4Kqs4KuN4Kqw4KuBLl/gqq7gqr7gqrDgq43gqppf4KqP4Kqq4KuN4Kqw4Kq/Ll/gqq7gq4df4Kqc4KuC4KqoX+CqnOCrgeCqsuCqvi5f4KqR4KqXLl/gqrjgqqrgq43gqp/gq4cuX+CqkeCqleCrjeCqn+CrjS5f4Kqo4Kq14KuHLl/gqqHgqr/gqrjgq4cuJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4Kqw4Kq14Kq/4Kq14Kq+4KqwX+CquOCri+CqruCqteCqvuCqsF/gqq7gqoLgqpfgqrPgqrXgqr7gqrBf4Kqs4KuB4Kqn4KuN4Kq14Kq+4KqwX+Cql+CrgeCqsOCrgeCqteCqvuCqsF/gqrbgq4HgqpXgq43gqrDgqrXgqr7gqrBf4Kq24Kqo4Kq/4Kq14Kq+4KqwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4Kqw4Kq14Kq/X+CquOCri+Cqrl/gqq7gqoLgqpfgqrNf4Kqs4KuB4Kqn4KuNX+Cql+CrgeCqsOCrgV/gqrbgq4HgqpXgq43gqrBf4Kq24Kqo4Kq/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CqsF/gqrjgq4tf4Kqu4KqCX+CqrOCrgV/gqpfgq4Ff4Kq24KuBX+Cqticuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIOCqteCqvuCql+CrjeCqr+CrhycsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3Mg4Kq14Kq+4KqX4KuN4Kqv4KuHJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbSDgqrXgqr7gqpfgq43gqq/gq4cnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4Kq14Kq+4KqX4KuN4Kqv4KuHJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KqG4KqcXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CqleCqvuCqsuCrh10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+Cql+Cqh+CqleCqvuCqsuCrh10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Kqq4Kq+4Kqb4Kqy4Kq+XSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCqruCqvicsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4Kqq4Kq54KuH4Kqy4Kq+JyxcbiAgICAgICAgICAgIHM6ICfgqoXgqq7gq4HgqpUg4Kqq4Kqz4KuLJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4Kq44KuH4KqV4KqC4KqhJyxcbiAgICAgICAgICAgIG06ICfgqo/gqpUg4Kqu4Kq/4Kqo4Kq/4KqfJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4Kqu4Kq/4Kqo4Kq/4KqfJyxcbiAgICAgICAgICAgIGg6ICfgqo/gqpUg4KqV4Kqy4Kq+4KqVJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4KqV4Kqy4Kq+4KqVJyxcbiAgICAgICAgICAgIGQ6ICfgqo/gqpUg4Kqm4Kq/4Kq14Kq4JyxcbiAgICAgICAgICAgIGRkOiAnJWQg4Kqm4Kq/4Kq14Kq4JyxcbiAgICAgICAgICAgIE06ICfgqo/gqpUg4Kqu4Kq54Kq/4Kqo4KuLJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4Kqu4Kq54Kq/4Kqo4KuLJyxcbiAgICAgICAgICAgIHk6ICfgqo/gqpUg4Kq14Kqw4KuN4Kq3JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Kq14Kqw4KuN4Kq3JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Crp+CrqOCrqeCrquCrq+CrrOCrreCrruCrr+Crpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gR3VqYXJhdGkgbm90YXRpb24gZm9yIG1lcmlkaWVtcyBhcmUgcXVpdGUgZnV6enkgaW4gcHJhY3RpY2UuIFdoaWxlIHRoZXJlIGV4aXN0c1xuICAgICAgICAvLyBhIHJpZ2lkIG5vdGlvbiBvZiBhICdQYWhhcicgaXQgaXMgbm90IHVzZWQgYXMgcmlnaWRseSBpbiBtb2Rlcm4gR3VqYXJhdGkuXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gqrDgqr7gqqR84Kqs4Kqq4KuL4KqwfOCquOCqteCqvuCqsHzgqrjgqr7gqoLgqpwvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgqrDgqr7gqqQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqrjgqrXgqr7gqrAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kqs4Kqq4KuL4KqwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqrjgqr7gqoLgqpwnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kqw4Kq+4KqkJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqrjgqrXgqr7gqrAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CqrOCqquCri+CqsCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kq44Kq+4KqC4KqcJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqrDgqr7gqqQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3U7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSGVicmV3IFtoZV1cbi8vISBhdXRob3IgOiBUb21lciBDb2hlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS90b21lclxuLy8hIGF1dGhvciA6IE1vc2hlIFNpbWFudG92IDogaHR0cHM6Ly9naXRodWIuY29tL0RldmVsb3BtZW50SUxcbi8vISBhdXRob3IgOiBUYWwgQXRlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9UYWxBdGVyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgaGUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdoZScsIHtcbiAgICAgICAgbW9udGhzOiAn15nXoNeV15DXqF/XpNeR16jXldeQ16hf157XqNelX9eQ16TXqNeZ15xf157XkNeZX9eZ15XXoNeZX9eZ15XXnNeZX9eQ15XXkteV16HXmF/Xodek15jXnteR16hf15DXlden15jXldeR16hf16DXldeR157XkdeoX9eT16bXnteR16gnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ9eZ16DXldezX9ek15HXqNezX9ee16jXpV/XkNek16jXs1/XnteQ15lf15nXldeg15lf15nXldec15lf15DXldeS17Nf16HXpNeY17Nf15DXlden17Nf16DXldeR17Nf15PXptee17MnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn16jXkNep15XXn1/Xqdeg15lf16nXnNeZ16nXmV/XqNeR15nXoteZX9eX157Xmdep15lf16nXmdep15lf16nXkdeqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn15DXs1/XkdezX9eS17Nf15PXs1/XlNezX9eV17Nf16nXsycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfXkF/XkV/Xkl/Xk1/XlF/XlV/XqScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFvXkV1NTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBb15FdTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFvXkV1NTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgbDogJ0QvTS9ZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnRCBNTU0gWVlZWScsXG4gICAgICAgICAgICBsbGw6ICdEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIEQgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vXlNeZ15XXnSDXkda+XUxUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb157Xl9eoINeR1r5dTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvXkdep16LXlF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vXkNeq157XldecINeR1r5dTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb15HXmdeV151dIGRkZGQgW9eU15DXl9eo15XXnyDXkdep16LXlF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfXkdei15XXkyAlcycsXG4gICAgICAgICAgICBwYXN0OiAn15zXpNeg15kgJXMnLFxuICAgICAgICAgICAgczogJ9ee16HXpNeoINep16DXmdeV16onLFxuICAgICAgICAgICAgc3M6ICclZCDXqdeg15nXldeqJyxcbiAgICAgICAgICAgIG06ICfXk9en15QnLFxuICAgICAgICAgICAgbW06ICclZCDXk9en15XXqicsXG4gICAgICAgICAgICBoOiAn16nXoteUJyxcbiAgICAgICAgICAgIGhoOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9ep16LXqteZ15nXnSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINep16LXldeqJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkOiAn15nXldedJyxcbiAgICAgICAgICAgIGRkOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9eZ15XXnteZ15nXnSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINeZ157XmdedJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBNOiAn15fXldeT16knLFxuICAgICAgICAgICAgTU06IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn15fXldeT16nXmdeZ150nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDXl9eV15PXqdeZ150nO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHk6ICfXqdeg15QnLFxuICAgICAgICAgICAgeXk6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn16nXoNeq15nXmdedJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciAlIDEwID09PSAwICYmIG51bWJlciAhPT0gMTApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg16nXoNeUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg16nXoNeZ150nO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTpcbiAgICAgICAgICAgIC/XkNeX15RcItemfNec16TXoNeUXCLXpnzXkNeX16jXmSDXlNem15TXqNeZ15nXnXzXnNek16DXmSDXlNem15TXqNeZ15nXnXzXnNek16DXldeqINeR15XXp9eofNeR15HXlden16h815HXoteo15EvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o15DXl9eUXCLXpnzXkNeX16jXmSDXlNem15TXqNeZ15nXnXzXkdei16jXkSkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15zXpNeg15XXqiDXkdeV16fXqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15HXkdeV16fXqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ9ec16TXoNeUXCLXpicgOiAn15zXpNeg15kg15TXpteU16jXmdeZ150nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfXkNeX15RcItemJyA6ICfXkNeX16jXmSDXlNem15TXqNeZ15nXnSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15HXoteo15EnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGhlO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEhpbmRpIFtoaV1cbi8vISBhdXRob3IgOiBNYXlhbmsgU2luZ2hhbCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXlhbmtzaW5naGFsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgMTogJ+ClpycsXG4gICAgICAgICAgICAyOiAn4KWoJyxcbiAgICAgICAgICAgIDM6ICfgpaknLFxuICAgICAgICAgICAgNDogJ+ClqicsXG4gICAgICAgICAgICA1OiAn4KWrJyxcbiAgICAgICAgICAgIDY6ICfgpawnLFxuICAgICAgICAgICAgNzogJ+ClrScsXG4gICAgICAgICAgICA4OiAn4KWuJyxcbiAgICAgICAgICAgIDk6ICfgpa8nLFxuICAgICAgICAgICAgMDogJ+ClpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgpacnOiAnMScsXG4gICAgICAgICAgICAn4KWoJzogJzInLFxuICAgICAgICAgICAgJ+ClqSc6ICczJyxcbiAgICAgICAgICAgICfgpaonOiAnNCcsXG4gICAgICAgICAgICAn4KWrJzogJzUnLFxuICAgICAgICAgICAgJ+ClrCc6ICc2JyxcbiAgICAgICAgICAgICfgpa0nOiAnNycsXG4gICAgICAgICAgICAn4KWuJzogJzgnLFxuICAgICAgICAgICAgJ+Clryc6ICc5JyxcbiAgICAgICAgICAgICfgpaYnOiAnMCcsXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL17gpJzgpKgvaSxcbiAgICAgICAgICAgIC9e4KSr4KS84KSwfOCkq+CksC9pLFxuICAgICAgICAgICAgL17gpK7gpL7gpLDgpY3gpJovaSxcbiAgICAgICAgICAgIC9e4KSF4KSq4KWN4KSw4KWIL2ksXG4gICAgICAgICAgICAvXuCkruCkiC9pLFxuICAgICAgICAgICAgL17gpJzgpYLgpKgvaSxcbiAgICAgICAgICAgIC9e4KSc4KWB4KSyL2ksXG4gICAgICAgICAgICAvXuCkheCkly9pLFxuICAgICAgICAgICAgL17gpLjgpL/gpKTgpIJ84KS44KS/4KSkL2ksXG4gICAgICAgICAgICAvXuCkheCkleCljeCkn+Clgi9pLFxuICAgICAgICAgICAgL17gpKjgpLV84KSo4KS14KSCL2ksXG4gICAgICAgICAgICAvXuCkpuCkv+CkuOCkgnzgpKbgpL/gpLgvaSxcbiAgICAgICAgXSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9e4KSc4KSoL2ksXG4gICAgICAgICAgICAvXuCkq+CkvOCksC9pLFxuICAgICAgICAgICAgL17gpK7gpL7gpLDgpY3gpJovaSxcbiAgICAgICAgICAgIC9e4KSF4KSq4KWN4KSw4KWIL2ksXG4gICAgICAgICAgICAvXuCkruCkiC9pLFxuICAgICAgICAgICAgL17gpJzgpYLgpKgvaSxcbiAgICAgICAgICAgIC9e4KSc4KWB4KSyL2ksXG4gICAgICAgICAgICAvXuCkheCkly9pLFxuICAgICAgICAgICAgL17gpLjgpL/gpKQvaSxcbiAgICAgICAgICAgIC9e4KSF4KSV4KWN4KSf4KWCL2ksXG4gICAgICAgICAgICAvXuCkqOCktS9pLFxuICAgICAgICAgICAgL17gpKbgpL/gpLgvaSxcbiAgICAgICAgXTtcblxuICAgIHZhciBoaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2hpJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ+CknOCkqOCkteCksOClgF/gpKvgpLzgpLDgpLXgpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCliOCksl/gpK7gpIhf4KSc4KWC4KSoX+CknOClgeCksuCkvuCkiF/gpIXgpJfgpLjgpY3gpKRf4KS44KS/4KSk4KSu4KWN4KSs4KSwX+CkheCkleCljeCkn+ClguCkrOCksF/gpKjgpLXgpK7gpY3gpKzgpLBf4KSm4KS/4KS44KSu4KWN4KSs4KSwJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOlxuICAgICAgICAgICAgICAgICfgpJzgpKjgpLXgpLDgpYBf4KSr4KSw4KS14KSw4KWAX+CkruCkvuCksOCljeCkml/gpIXgpKrgpY3gpLDgpYjgpLJf4KSu4KSIX+CknOClguCkqF/gpJzgpYHgpLLgpL7gpIhf4KSF4KSX4KS44KWN4KSkX+CkuOCkv+CkpOCkguCkrOCksF/gpIXgpJXgpY3gpJ/gpYLgpKzgpLBf4KSo4KS14KSC4KSs4KSwX+CkpuCkv+CkuOCkguCkrOCksCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ+CknOCkqC5f4KSr4KS84KSwLl/gpK7gpL7gpLDgpY3gpJpf4KSF4KSq4KWN4KSw4KWILl/gpK7gpIhf4KSc4KWC4KSoX+CknOClgeCksi5f4KSF4KSXLl/gpLjgpL/gpKQuX+CkheCkleCljeCkn+Clgi5f4KSo4KS1Ll/gpKbgpL/gpLguJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ+CksOCkteCkv+CkteCkvuCksF/gpLjgpYvgpK7gpLXgpL7gpLBf4KSu4KSC4KSX4KSy4KS14KS+4KSwX+CkrOClgeCkp+CkteCkvuCksF/gpJfgpYHgpLDgpYLgpLXgpL7gpLBf4KS24KWB4KSV4KWN4KSw4KS14KS+4KSwX+CktuCkqOCkv+CkteCkvuCksCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CksOCkteCkv1/gpLjgpYvgpK5f4KSu4KSC4KSX4KSyX+CkrOClgeCkp1/gpJfgpYHgpLDgpYJf4KS24KWB4KSV4KWN4KSwX+CktuCkqOCkvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgpLBf4KS44KWLX+CkruCkgl/gpKzgpYFf4KSX4KWBX+CktuClgV/gpLYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCkrOCknOClhycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4KSs4KSc4KWHJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCkrOCknOClhycsXG4gICAgICAgIH0sXG5cbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBzaG9ydE1vbnRoc1BhcnNlLFxuXG4gICAgICAgIG1vbnRoc1JlZ2V4OlxuICAgICAgICAgICAgL14o4KSc4KSo4KS14KSw4KWAfOCknOCkqFxcLj984KSr4KS84KSw4KS14KSw4KWAfOCkq+CksOCkteCksOClgHzgpKvgpLzgpLBcXC4/fOCkruCkvuCksOCljeCkmj984KSF4KSq4KWN4KSw4KWI4KSyfOCkheCkquCljeCksOCliFxcLj984KSu4KSIP3zgpJzgpYLgpKg/fOCknOClgeCksuCkvuCkiHzgpJzgpYHgpLJcXC4/fOCkheCkl+CkuOCljeCkpHzgpIXgpJdcXC4/fOCkuOCkv+CkpOCkruCljeCkrOCksHzgpLjgpL/gpKTgpILgpKzgpLB84KS44KS/4KSkXFwuP3zgpIXgpJXgpY3gpJ/gpYLgpKzgpLB84KSF4KSV4KWN4KSf4KWCXFwuP3zgpKjgpLXgpK7gpY3gpKzgpLB84KSo4KS14KSC4KSs4KSwfOCkqOCktVxcLj984KSm4KS/4KS44KSu4KWN4KSs4KSwfOCkpuCkv+CkuOCkguCkrOCksHzgpKbgpL/gpLhcXC4/KS9pLFxuXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6XG4gICAgICAgICAgICAvXijgpJzgpKjgpLXgpLDgpYB84KSc4KSoXFwuP3zgpKvgpLzgpLDgpLXgpLDgpYB84KSr4KSw4KS14KSw4KWAfOCkq+CkvOCksFxcLj984KSu4KS+4KSw4KWN4KSaP3zgpIXgpKrgpY3gpLDgpYjgpLJ84KSF4KSq4KWN4KSw4KWIXFwuP3zgpK7gpIg/fOCknOClguCkqD984KSc4KWB4KSy4KS+4KSIfOCknOClgeCkslxcLj984KSF4KSX4KS44KWN4KSkfOCkheCkl1xcLj984KS44KS/4KSk4KSu4KWN4KSs4KSwfOCkuOCkv+CkpOCkguCkrOCksHzgpLjgpL/gpKRcXC4/fOCkheCkleCljeCkn+ClguCkrOCksHzgpIXgpJXgpY3gpJ/gpYJcXC4/fOCkqOCkteCkruCljeCkrOCksHzgpKjgpLXgpILgpKzgpLB84KSo4KS1XFwuP3zgpKbgpL/gpLjgpK7gpY3gpKzgpLB84KSm4KS/4KS44KSC4KSs4KSwfOCkpuCkv+CkuFxcLj8pL2ksXG5cbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6XG4gICAgICAgICAgICAvXijgpJzgpKjgpLXgpLDgpYA/fOCkq+CkvOCksOCkteCksOClgHzgpKvgpLDgpLXgpLDgpYA/fOCkruCkvuCksOCljeCkmj984KSF4KSq4KWN4KSw4KWI4KSyP3zgpK7gpIg/fOCknOClguCkqD984KSc4KWB4KSy4KS+4KSIP3zgpIXgpJfgpLjgpY3gpKQ/fOCkuOCkv+CkpOCkruCljeCkrOCksHzgpLjgpL/gpKTgpILgpKzgpLB84KS44KS/4KSkP1xcLj984KSF4KSV4KWN4KSf4KWC4KSs4KSwfOCkheCkleCljeCkn+ClglxcLj984KSo4KS14KSu4KWN4KSs4KSwfOCkqOCkteCkguCkrOCksD984KSm4KS/4KS44KSu4KWN4KSs4KSwfOCkpuCkv+CkuOCkguCkrOCksD8pL2ksXG5cbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDpcbiAgICAgICAgICAgIC9eKOCknOCkqFxcLj984KSr4KS84KSwXFwuP3zgpK7gpL7gpLDgpY3gpJo/fOCkheCkquCljeCksOCliFxcLj984KSu4KSIP3zgpJzgpYLgpKg/fOCknOClgeCkslxcLj984KSF4KSXXFwuP3zgpLjgpL/gpKRcXC4/fOCkheCkleCljeCkn+ClglxcLj984KSo4KS1XFwuP3zgpKbgpL/gpLhcXC4/KS9pLFxuXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpJXgpLJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgpJXgpLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CkquCkv+Ckm+CksuClh10gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgpK7gpYfgpIInLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCkquCkueCksuClhycsXG4gICAgICAgICAgICBzOiAn4KSV4KWB4KSbIOCkueClgCDgpJXgpY3gpLfgpKMnLFxuICAgICAgICAgICAgc3M6ICclZCDgpLjgpYfgpJXgpILgpKEnLFxuICAgICAgICAgICAgbTogJ+Ckj+CklSDgpK7gpL/gpKjgpJ8nLFxuICAgICAgICAgICAgbW06ICclZCDgpK7gpL/gpKjgpJ8nLFxuICAgICAgICAgICAgaDogJ+Ckj+CklSDgpJjgpILgpJ/gpL4nLFxuICAgICAgICAgICAgaGg6ICclZCDgpJjgpILgpJ/gpYcnLFxuICAgICAgICAgICAgZDogJ+Ckj+CklSDgpKbgpL/gpKgnLFxuICAgICAgICAgICAgZGQ6ICclZCDgpKbgpL/gpKgnLFxuICAgICAgICAgICAgTTogJ+Ckj+CklSDgpK7gpLngpYDgpKjgpYcnLFxuICAgICAgICAgICAgTU06ICclZCDgpK7gpLngpYDgpKjgpYcnLFxuICAgICAgICAgICAgeTogJ+Ckj+CklSDgpLXgpLDgpY3gpLcnLFxuICAgICAgICAgICAgeXk6ICclZCDgpLXgpLDgpY3gpLcnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4KWn4KWo4KWp4KWq4KWr4KWs4KWt4KWu4KWv4KWmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAvLyBIaW5kaSBub3RhdGlvbiBmb3IgbWVyaWRpZW1zIGFyZSBxdWl0ZSBmdXp6eSBpbiBwcmFjdGljZS4gV2hpbGUgdGhlcmUgZXhpc3RzXG4gICAgICAgIC8vIGEgcmlnaWQgbm90aW9uIG9mIGEgJ1BhaGFyJyBpdCBpcyBub3QgdXNlZCBhcyByaWdpZGx5IGluIG1vZGVybiBIaW5kaS5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CksOCkvuCkpHzgpLjgpYHgpKzgpLl84KSm4KWL4KSq4KS54KSwfOCktuCkvuCkri8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CksOCkvuCkpCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOClgeCkrOCkuScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpKbgpYvgpKrgpLngpLAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CktuCkvuCkricpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkuOClgeCkrOCkuSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSm4KWL4KSq4KS54KSwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLbgpL7gpK4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBoaTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDcm9hdGlhbiBbaHJdXG4vLyEgYXV0aG9yIDogQm9qYW4gTWFya292acSHIDogaHR0cHM6Ly9naXRodWIuY29tL2JtYXJrb3ZpY1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnamVkbmEgbWludXRhJyA6ICdqZWRuZSBtaW51dGUnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRhJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2plZGFuIHNhdCcgOiAnamVkbm9nIHNhdGEnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdGknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdkYW4nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZGFuYSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlYyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlY2EnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGhyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaHInLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAnc2lqZcSNbmphX3ZlbGphxI1lX2/FvnVqa2FfdHJhdm5qYV9zdmlibmphX2xpcG5qYV9zcnBuamFfa29sb3ZvemFfcnVqbmFfbGlzdG9wYWRhX3N0dWRlbm9nYV9wcm9zaW5jYScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTpcbiAgICAgICAgICAgICAgICAnc2lqZcSNYW5qX3ZlbGphxI1hX2/FvnVqYWtfdHJhdmFual9zdmliYW5qX2xpcGFual9zcnBhbmpfa29sb3Zvel9ydWphbl9saXN0b3BhZF9zdHVkZW5pX3Byb3NpbmFjJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnc2lqLl92ZWxqLl9vxb51Ll90cmEuX3N2aS5fbGlwLl9zcnAuX2tvbC5fcnVqLl9saXMuX3N0dS5fcHJvLicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlqZWRhX8SNZXR2cnRha19wZXRha19zdWJvdGEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZWQuX3Bvbi5fdXRvLl9zcmkuX8SNZXQuX3BldC5fc3ViLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb191dF9zcl/EjWVfcGVfc3UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRG8gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0RvIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEbyBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RhbmFzIHVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbc3V0cmEgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW25lZGplbGp1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3JpamVkdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3N1Ym90dV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2p1xI1lciB1XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWx1XSBbbmVkamVsanVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbHVdIFtzcmlqZWR1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWxlXSBbc3Vib3RlXSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWxpXSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByaWplICVzJyxcbiAgICAgICAgICAgIHM6ICdwYXIgc2VrdW5kaScsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiAnZGFuJyxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiAnbWplc2VjJyxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAnZ29kaW51JyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaHI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSHVuZ2FyaWFuIFtodV1cbi8vISBhdXRob3IgOiBBZGFtIEJydW5uZXIgOiBodHRwczovL2dpdGh1Yi5jb20vYWRhbWJydW5uZXJcbi8vISBhdXRob3IgOiBQZXRlciBWaXN6dCAgOiBodHRwczovL2dpdGh1Yi5jb20vcGFzc2F0Z3RcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB3ZWVrRW5kaW5ncyA9XG4gICAgICAgICd2YXPDoXJuYXAgaMOpdGbFkW4ga2VkZGVuIHN6ZXJkw6FuIGNzw7x0w7ZydMO2a8O2biBww6ludGVrZW4gc3pvbWJhdG9uJy5zcGxpdCgnICcpO1xuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIG51bSA9IG51bWJlcjtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgID8gJ27DqWjDoW55IG3DoXNvZHBlcmMnXG4gICAgICAgICAgICAgICAgICAgIDogJ27DqWjDoW55IG3DoXNvZHBlcmNlJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXgpXG4gICAgICAgICAgICAgICAgICAgID8gJyBtw6Fzb2RwZXJjJ1xuICAgICAgICAgICAgICAgICAgICA6ICcgbcOhc29kcGVyY2UnO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlZ3knICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIHBlcmMnIDogJyBwZXJjZScpO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgcGVyYycgOiAnIHBlcmNlJyk7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgw7NyYScgOiAnIMOzcsOhamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIMOzcmEnIDogJyDDs3LDoWphJyk7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgbmFwJyA6ICcgbmFwamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIG5hcCcgOiAnIG5hcGphJyk7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgaMOzbmFwJyA6ICcgaMOzbmFwamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIGjDs25hcCcgOiAnIGjDs25hcGphJyk7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgw6l2JyA6ICcgw6l2ZScpO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgw6l2JyA6ICcgw6l2ZScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Vlayhpc0Z1dHVyZSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGlzRnV0dXJlID8gJycgOiAnW23Dumx0XSAnKSArXG4gICAgICAgICAgICAnWycgK1xuICAgICAgICAgICAgd2Vla0VuZGluZ3NbdGhpcy5kYXkoKV0gK1xuICAgICAgICAgICAgJ10gTFRbLWtvcl0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGh1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaHUnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnXDoXJfZmVicnXDoXJfbcOhcmNpdXNfw6FwcmlsaXNfbcOhanVzX2rDum5pdXNfasO6bGl1c19hdWd1c3p0dXNfc3plcHRlbWJlcl9va3TDs2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnamFuLl9mZWIuX23DoXJjLl/DoXByLl9tw6FqLl9qw7puLl9qw7psLl9hdWcuX3N6ZXB0Ll9va3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ3Zhc8Ohcm5hcF9ow6l0ZsWRX2tlZGRfc3plcmRhX2Nzw7x0w7ZydMO2a19ww6ludGVrX3N6b21iYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICd2YXNfaMOpdF9rZWRkX3N6ZV9jc8O8dF9ww6luX3N6bycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICd2X2hfa19zemVfY3NfcF9zem8nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS5NTS5ERC4nLFxuICAgICAgICAgICAgTEw6ICdZWVlZLiBNTU1NIEQuJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkuIE1NTU0gRC4gSDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWS4gTU1NTSBELiwgZGRkZCBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2RlfGR1L2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0LmNoYXJBdCgxKS50b0xvd2VyQ2FzZSgpID09PSAndSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPT09IHRydWUgPyAnZGUnIDogJ0RFJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPT09IHRydWUgPyAnZHUnIDogJ0RVJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbbWFdIExUWy1rb3JdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaG9sbmFwXSBMVFsta29yXScsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3ZWVrLmNhbGwodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1t0ZWduYXBdIExUWy1rb3JdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdlZWsuY2FsbCh0aGlzLCBmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBtw7psdmEnLFxuICAgICAgICAgICAgcGFzdDogJyVzJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBodTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcm1lbmlhbiBbaHktYW1dXG4vLyEgYXV0aG9yIDogQXJtZW5kYXJhYnlhbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcm1lbmRhcmFieWFuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgaHlBbSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2h5LWFtJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9Ww1bjWgtW21b7VodaA1atf1oPVpdW/1oDVvtWh1oDVq1/VtNWh1oDVv9WrX9Wh1brWgNWr1azVq1/VtNWh1bXVq9W91atf1bDVuNaC1bbVq9W91atf1bDVuNaC1azVq9W91atf1oXVo9W41b3Vv9W41b3Vq1/VvdWl1brVv9Wl1bTVotWl1oDVq1/VsNW41a/Vv9Wl1bTVotWl1oDVq1/VttW41bXVpdW01aLVpdaA1atf1aTVpdWv1b/VpdW01aLVpdaA1asnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6XG4gICAgICAgICAgICAgICAgJ9Ww1bjWgtW21b7VodaAX9aD1aXVv9aA1b7VodaAX9W01aHWgNW/X9Wh1brWgNWr1axf1bTVodW11avVvV/VsNW41oLVttWr1b1f1bDVuNaC1azVq9W9X9aF1aPVuNW91b/VuNW9X9W91aXVutW/1aXVtNWi1aXWgF/VsNW41a/Vv9Wl1bTVotWl1oBf1bbVuNW11aXVtNWi1aXWgF/VpNWl1a/Vv9Wl1bTVotWl1oAnLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ9Ww1bbVvl/Wg9W/1oBf1bTWgNW/X9Wh1brWgF/VtNW11b1f1bDVttW9X9Ww1azVvV/WhdWj1b1f1b3VutW/X9Ww1a/Vv1/VttW01aJf1aTVr9W/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICfVr9Wr1oDVodWv1atf1aXWgNWv1bjWgtW31aHVotWp1atf1aXWgNWl1oTVt9Wh1aLVqdWrX9W51bjWgNWl1oTVt9Wh1aLVqdWrX9Ww1avVttWj1bfVodWi1anVq1/VuNaC1oDVotWh1alf1bfVodWi1aHVqScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn1a/WgNWvX9Wl1oDVr1/VpdaA1oRf1bnWgNaEX9Ww1bbVo1/VuNaC1oDVol/Vt9Wi1aknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn1a/WgNWvX9Wl1oDVr1/VpdaA1oRf1bnWgNaEX9Ww1bbVo1/VuNaC1oDVol/Vt9Wi1aknLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVkg1akuJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZINWpLiwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZINWpLiwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vVodW11b3WhdaAXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9W+1aHVstWoXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Wl1oDVpdWvXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBb1oXWgNWoINWq1aHVtNWoXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1vVodW21oHVodWuXSBkZGRkIFvWhdaA1agg1arVodW01ahdIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINWw1aXVv9W4JyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDVodW81aHVuycsXG4gICAgICAgICAgICBzOiAn1bTVqyDWhNWh1bbVqyDVvtWh1bXWgNWv1bXVodW2JyxcbiAgICAgICAgICAgIHNzOiAnJWQg1b7VodW11oDVr9W11aHVticsXG4gICAgICAgICAgICBtOiAn1oDVuNW61aUnLFxuICAgICAgICAgICAgbW06ICclZCDWgNW41brVpScsXG4gICAgICAgICAgICBoOiAn1arVodW0JyxcbiAgICAgICAgICAgIGhoOiAnJWQg1arVodW0JyxcbiAgICAgICAgICAgIGQ6ICfWhdaAJyxcbiAgICAgICAgICAgIGRkOiAnJWQg1oXWgCcsXG4gICAgICAgICAgICBNOiAn1aHVtNWr1b0nLFxuICAgICAgICAgICAgTU06ICclZCDVodW01avVvScsXG4gICAgICAgICAgICB5OiAn1b/VodaA1asnLFxuICAgICAgICAgICAgeXk6ICclZCDVv9Wh1oDVqycsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/Vo9Wr1bfVpdaA1b7VoXzVodW81aHVvtW41b/VvtWhfNaB1aXWgNWl1a/VvtWhfNWl1oDVpdWv1bjVtdWh1bYvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijWgdWl1oDVpdWv1b7VoXzVpdaA1aXVr9W41bXVodW2KSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn1aPVq9W31aXWgNW+1aEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Wh1bzVodW+1bjVv9W+1aEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9aB1aXWgNWl1a/VvtWhJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfVpdaA1aXVr9W41bXVodW2JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9fFxcZHsxLDJ9LSjVq9W2fNaA1aQpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREbyc6XG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdWr1bYnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdaA1aQnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBoeUFtO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEluZG9uZXNpYW4gW2lkXVxuLy8hIGF1dGhvciA6IE1vaGFtbWFkIFNhdHJpbyBVdG9tbyA6IGh0dHBzOi8vZ2l0aHViLmNvbS90eW9rXG4vLyEgcmVmZXJlbmNlOiBodHRwOi8vaWQud2lraXNvdXJjZS5vcmcvd2lraS9QZWRvbWFuX1VtdW1fRWphYW5fQmFoYXNhX0luZG9uZXNpYV95YW5nX0Rpc2VtcHVybmFrYW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBpZCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2lkJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hcmV0X0FwcmlsX01laV9KdW5pX0p1bGlfQWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWd0X1NlcF9Pa3RfTm92X0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdNaW5nZ3VfU2VuaW5fU2VsYXNhX1JhYnVfS2FtaXNfSnVtYXRfU2FidHUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdNaW5fU2VuX1NlbF9SYWJfS2FtX0p1bV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnTWdfU25fU2xfUmJfS21fSm1fU2InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9wYWdpfHNpYW5nfHNvcmV8bWFsYW0vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdwYWdpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NpYW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzb3JlJyB8fCBtZXJpZGllbSA9PT0gJ21hbGFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwYWdpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc2lhbmcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzb3JlJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdtYWxhbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hhcmkgaW5pIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0Jlc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3B1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0tlbWFyaW4gcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbbGFsdSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYWxhbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgeWFuZyBsYWx1JyxcbiAgICAgICAgICAgIHM6ICdiZWJlcmFwYSBkZXRpaycsXG4gICAgICAgICAgICBzczogJyVkIGRldGlrJyxcbiAgICAgICAgICAgIG06ICdzZW1lbml0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWVuaXQnLFxuICAgICAgICAgICAgaDogJ3NlamFtJyxcbiAgICAgICAgICAgIGhoOiAnJWQgamFtJyxcbiAgICAgICAgICAgIGQ6ICdzZWhhcmknLFxuICAgICAgICAgICAgZGQ6ICclZCBoYXJpJyxcbiAgICAgICAgICAgIE06ICdzZWJ1bGFuJyxcbiAgICAgICAgICAgIE1NOiAnJWQgYnVsYW4nLFxuICAgICAgICAgICAgeTogJ3NldGFodW4nLFxuICAgICAgICAgICAgeXk6ICclZCB0YWh1bicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBpZDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBJY2VsYW5kaWMgW2lzXVxuLy8hIGF1dGhvciA6IEhpbnJpayDDlnJuIFNpZ3Vyw7Bzc29uIDogaHR0cHM6Ly9naXRodWIuY29tL2hpbnJpa1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcGx1cmFsKG4pIHtcbiAgICAgICAgaWYgKG4gJSAxMDAgPT09IDExKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChuICUgMTAgPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmVcbiAgICAgICAgICAgICAgICAgICAgPyAnbm9ra3JhciBzZWvDum5kdXInXG4gICAgICAgICAgICAgICAgICAgIDogJ25va2tydW0gc2Vrw7puZHVtJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArXG4gICAgICAgICAgICAgICAgICAgICAgICAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdzZWvDum5kdXInIDogJ3Nla8O6bmR1bScpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnc2Vrw7puZGEnO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnbcOtbsO6dGEnIDogJ23DrW7DunR1JztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ23DrW7DunR1cicgOiAnbcOtbsO6dHVtJylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtw61uw7p0YSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcOtbsO6dHUnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAna2x1a2t1c3R1bmRpcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdrbHVra3VzdHVuZHVtJylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdrbHVra3VzdHVuZCc7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RhZ3VyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ2RhZycgOiAnZGVnaSc7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2RhZ2FyJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKGlzRnV0dXJlID8gJ2RhZ2EnIDogJ2TDtmd1bScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2RhZ3VyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpc0Z1dHVyZSA/ICdkYWcnIDogJ2RlZ2knKTtcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnbcOhbnXDsHVyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ23DoW51w7AnIDogJ23DoW51w7BpJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcOhbnXDsGlyJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKGlzRnV0dXJlID8gJ23DoW51w7BpJyA6ICdtw6FudcOwdW0nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtw6FudcOwdXInO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKGlzRnV0dXJlID8gJ23DoW51w7AnIDogJ23DoW51w7BpJyk7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICfDoXInIDogJ8OhcmknO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnw6FyJyA6ICfDoXJ1bScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnw6FyJyA6ICfDoXJpJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaXMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdpcycsIHtcbiAgICAgICAgbW9udGhzOiAnamFuw7phcl9mZWJyw7phcl9tYXJzX2FwcsOtbF9tYcOtX2rDum7DrV9qw7psw61fw6Fnw7pzdF9zZXB0ZW1iZXJfb2t0w7NiZXJfbsOzdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYcOtX2rDum5fasO6bF/DoWfDul9zZXBfb2t0X27Ds3ZfZGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICdzdW5udWRhZ3VyX23DoW51ZGFndXJfw75yacOwanVkYWd1cl9tacOwdmlrdWRhZ3VyX2ZpbW10dWRhZ3VyX2bDtnN0dWRhZ3VyX2xhdWdhcmRhZ3VyJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzdW5fbcOhbl/DvnJpX21pw7BfZmltX2bDtnNfbGF1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X03DoV/DnnJfTWlfRmlfRsO2X0xhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIFtrbC5dIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBba2wuXSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbw60gZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vDoSBtb3JndW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vDrSBnw6ZyIGtsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbc8Otw7Bhc3RhXSBkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZWZ0aXIgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2Z5cmlyICVzIHPDrcOwYW4nLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiAna2x1a2t1c3R1bmQnLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBpcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBJdGFsaWFuIChTd2l0emVybGFuZCkgW2l0LWNoXVxuLy8hIGF1dGhvciA6IHhmaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS94ZmhcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBpdENoID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaXQtY2gnLCB7XG4gICAgICAgIG1vbnRoczogJ2dlbm5haW9fZmViYnJhaW9fbWFyem9fYXByaWxlX21hZ2dpb19naXVnbm9fbHVnbGlvX2Fnb3N0b19zZXR0ZW1icmVfb3R0b2JyZV9ub3ZlbWJyZV9kaWNlbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdnZW5fZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21lbmljYV9sdW5lZMOsX21hcnRlZMOsX21lcmNvbGVkw6xfZ2lvdmVkw6xfdmVuZXJkw6xfc2FiYXRvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvX2x1X21hX21lX2dpX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbT2dnaSBhbGxlXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0RvbWFuaSBhbGxlXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2FsbGVdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSWVyaSBhbGxlXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tsYSBzY29yc2FdIGRkZGQgW2FsbGVdIExUJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW2xvIHNjb3Jzb10gZGRkZCBbYWxsZV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKC9eWzAtOV0uKyQvLnRlc3QocykgPyAndHJhJyA6ICdpbicpICsgJyAnICsgcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXN0OiAnJXMgZmEnLFxuICAgICAgICAgICAgczogJ2FsY3VuaSBzZWNvbmRpJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kaScsXG4gICAgICAgICAgICBtOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRpJyxcbiAgICAgICAgICAgIGg6IFwidW4nb3JhXCIsXG4gICAgICAgICAgICBoaDogJyVkIG9yZScsXG4gICAgICAgICAgICBkOiAndW4gZ2lvcm5vJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZ2lvcm5pJyxcbiAgICAgICAgICAgIE06ICd1biBtZXNlJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzaScsXG4gICAgICAgICAgICB5OiAndW4gYW5ubycsXG4gICAgICAgICAgICB5eTogJyVkIGFubmknLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0Q2g7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSXRhbGlhbiBbaXRdXG4vLyEgYXV0aG9yIDogTG9yZW56byA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGllbVxuLy8hIGF1dGhvcjogTWF0dGlhIExhcmVudGlzOiBodHRwczovL2dpdGh1Yi5jb20vbm9zdGFsZ2lhelxuLy8hIGF1dGhvcjogTWFyY28gOiBodHRwczovL2dpdGh1Yi5jb20vTWFuZnJlOThcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBpdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2l0Jywge1xuICAgICAgICBtb250aHM6ICdnZW5uYWlvX2ZlYmJyYWlvX21hcnpvX2FwcmlsZV9tYWdnaW9fZ2l1Z25vX2x1Z2xpb19hZ29zdG9fc2V0dGVtYnJlX290dG9icmVfbm92ZW1icmVfZGljZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnZ2VuX2ZlYl9tYXJfYXByX21hZ19naXVfbHVnX2Fnb19zZXRfb3R0X25vdl9kaWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnZG9tZW5pY2FfbHVuZWTDrF9tYXJ0ZWTDrF9tZXJjb2xlZMOsX2dpb3ZlZMOsX3ZlbmVyZMOsX3NhYmF0bycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbV9sdW5fbWFyX21lcl9naW9fdmVuX3NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkb19sdV9tYV9tZV9naV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tPZ2dpIGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDEgPyAnbGxlICcgOiB0aGlzLmhvdXJzKCkgPT09IDAgPyAnICcgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tEb21hbmkgYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpID4gMSA/ICdsbGUgJyA6IHRoaXMuaG91cnMoKSA9PT0gMCA/ICcgJyA6IFwibGwnXCIpICtcbiAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ2RkZGQgW2EnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDEgPyAnbGxlICcgOiB0aGlzLmhvdXJzKCkgPT09IDAgPyAnICcgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tJZXJpIGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDEgPyAnbGxlICcgOiB0aGlzLmhvdXJzKCkgPT09IDAgPyAnICcgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbTGEgc2NvcnNhXSBkZGRkIFthJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnbGxlICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmhvdXJzKCkgPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbTG8gc2NvcnNvXSBkZGRkIFthJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnbGxlICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmhvdXJzKCkgPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAndHJhICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBmYScsXG4gICAgICAgICAgICBzOiAnYWxjdW5pIHNlY29uZGknLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRpJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGknLFxuICAgICAgICAgICAgaDogXCJ1bidvcmFcIixcbiAgICAgICAgICAgIGhoOiAnJWQgb3JlJyxcbiAgICAgICAgICAgIGQ6ICd1biBnaW9ybm8nLFxuICAgICAgICAgICAgZGQ6ICclZCBnaW9ybmknLFxuICAgICAgICAgICAgdzogJ3VuYSBzZXR0aW1hbmEnLFxuICAgICAgICAgICAgd3c6ICclZCBzZXR0aW1hbmUnLFxuICAgICAgICAgICAgTTogJ3VuIG1lc2UnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNpJyxcbiAgICAgICAgICAgIHk6ICd1biBhbm5vJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5uaScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSmFwYW5lc2UgW2phXVxuLy8hIGF1dGhvciA6IExJIExvbmcgOiBodHRwczovL2dpdGh1Yi5jb20vYmFyeW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgamEgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdqYScsIHtcbiAgICAgICAgZXJhczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMjAxOS0wNS0wMScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfku6TlkownLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+OLvycsXG4gICAgICAgICAgICAgICAgYWJicjogJ1InLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzE5ODktMDEtMDgnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMjAxOS0wNC0zMCcsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICflubPmiJAnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+ONuycsXG4gICAgICAgICAgICAgICAgYWJicjogJ0gnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzE5MjYtMTItMjUnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMTk4OS0wMS0wNycsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfmmK3lkownLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+ONvCcsXG4gICAgICAgICAgICAgICAgYWJicjogJ1MnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzE5MTItMDctMzAnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMTkyNi0xMi0yNCcsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICflpKfmraMnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+ONvScsXG4gICAgICAgICAgICAgICAgYWJicjogJ1QnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzE4NzMtMDEtMDEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMTkxMi0wNy0yOScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiA2LFxuICAgICAgICAgICAgICAgIG5hbWU6ICfmmI7msrsnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+ONvicsXG4gICAgICAgICAgICAgICAgYWJicjogJ00nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzAwMDEtMDEtMDEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMTg3My0xMi0zMScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfopb/mmqYnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ0FEJyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnQUQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzAwMDAtMTItMzEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAtSW5maW5pdHksXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfntIDlhYPliY0nLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ0JDJyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnQkMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZXJhWWVhck9yZGluYWxSZWdleDogLyjlhYN8XFxkKynlubQvLFxuICAgICAgICBlcmFZZWFyT3JkaW5hbFBhcnNlOiBmdW5jdGlvbiAoaW5wdXQsIG1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hbMV0gPT09ICflhYMnID8gMSA6IHBhcnNlSW50KG1hdGNoWzFdIHx8IGlucHV0LCAxMCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoczogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+aXpeabnOaXpV/mnIjmm5zml6Vf54Gr5puc5pelX+awtOabnOaXpV/mnKjmm5zml6Vf6YeR5puc5pelX+Wcn+abnOaXpScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+aXpV/mnIhf54GrX+awtF/mnKhf6YeRX+Wcnycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfml6Vf5pyIX+eBq1/msLRf5pyoX+mHkV/lnJ8nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWeW5tE3mnIhE5pelIGRkZGQgSEg6bW0nLFxuICAgICAgICAgICAgbDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgbGw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgbGxsOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdZWVlZ5bm0TeaciETml6UoZGRkKSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/ljYjliY185Y2I5b6ML2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn5Y2I5b6MJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WNiOWJjSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Y2I5b6MJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb5LuK5pelXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+aYjuaXpV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAobm93LndlZWsoKSAhPT0gdGhpcy53ZWVrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5p2l6YCxXWRkZGQgTFQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb5pio5pelXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLndlZWsoKSAhPT0gbm93LndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vlhYjpgLFdZGRkZCBMVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ95pelLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyID09PSAxID8gJ+WFg+W5tCcgOiBudW1iZXIgKyAn5bm0JztcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aXpSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+W+jCcsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+aVsOenkicsXG4gICAgICAgICAgICBzczogJyVk56eSJyxcbiAgICAgICAgICAgIG06ICcx5YiGJyxcbiAgICAgICAgICAgIG1tOiAnJWTliIYnLFxuICAgICAgICAgICAgaDogJzHmmYLplpMnLFxuICAgICAgICAgICAgaGg6ICclZOaZgumWkycsXG4gICAgICAgICAgICBkOiAnMeaXpScsXG4gICAgICAgICAgICBkZDogJyVk5pelJyxcbiAgICAgICAgICAgIE06ICcx44O25pyIJyxcbiAgICAgICAgICAgIE1NOiAnJWTjg7bmnIgnLFxuICAgICAgICAgICAgeTogJzHlubQnLFxuICAgICAgICAgICAgeXk6ICclZOW5tCcsXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gamE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSmF2YW5lc2UgW2p2XVxuLy8hIGF1dGhvciA6IFJvbnkgTGFudGlwIDogaHR0cHM6Ly9naXRodWIuY29tL2xhbnRpcFxuLy8hIHJlZmVyZW5jZTogaHR0cDovL2p2Lndpa2lwZWRpYS5vcmcvd2lraS9CYXNhX0phd2FcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBqdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2p2Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hcmV0X0FwcmlsX01laV9KdW5pX0p1bGlfQWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3BlbWJlcl9EZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWdzX1NlcF9Pa3RfTm9wX0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdNaW5nZ3VfU2VuZW5fU2Vsb3NvX1JlYnVfS2VtaXNfSmVtdXdhaF9TZXB0dScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ01pbl9TZW5fU2VsX1JlYl9LZW1fSmVtX1NlcCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdNZ19Tbl9TbF9SYl9LbV9KbV9TcCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2VuamluZ3xzaXlhbmd8c29udGVufG5kYWx1LyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAnZW5qaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NpeWFuZycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnc29udGVuJyB8fCBtZXJpZGllbSA9PT0gJ25kYWx1Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlbmppbmcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzaXlhbmcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzb250ZW4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ25kYWx1JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbRGludGVuIHB1bmlrbyBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tNYmVuamFuZyBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tLYWxhIHdpbmdpIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2tlcGVuZ2tlciBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd3b250ZW4gaW5nICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBpbmdrYW5nIGtlcGVuZ2tlcicsXG4gICAgICAgICAgICBzOiAnc2F3ZXRhd2lzIGRldGlrJyxcbiAgICAgICAgICAgIHNzOiAnJWQgZGV0aWsnLFxuICAgICAgICAgICAgbTogJ3NldHVuZ2dhbCBtZW5pdCcsXG4gICAgICAgICAgICBtbTogJyVkIG1lbml0JyxcbiAgICAgICAgICAgIGg6ICdzZXR1bmdnYWwgamFtJyxcbiAgICAgICAgICAgIGhoOiAnJWQgamFtJyxcbiAgICAgICAgICAgIGQ6ICdzZWRpbnRlbicsXG4gICAgICAgICAgICBkZDogJyVkIGRpbnRlbicsXG4gICAgICAgICAgICBNOiAnc2V3dWxhbicsXG4gICAgICAgICAgICBNTTogJyVkIHd1bGFuJyxcbiAgICAgICAgICAgIHk6ICdzZXRhdW4nLFxuICAgICAgICAgICAgeXk6ICclZCB0YXVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGp2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdlb3JnaWFuIFtrYV1cbi8vISBhdXRob3IgOiBJcmFrbGkgSmFuaWFzaHZpbGkgOiBodHRwczovL2dpdGh1Yi5jb20vSXJha2xpSmFuaVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGthID0gbW9tZW50LmRlZmluZUxvY2FsZSgna2EnLCB7XG4gICAgICAgIG1vbnRoczogJ+GDmOGDkOGDnOGDleGDkOGDoOGDmF/hg5fhg5Thg5Hhg5Thg6Dhg5Xhg5Dhg5rhg5hf4YOb4YOQ4YOg4YOi4YOYX+GDkOGDnuGDoOGDmOGDmuGDmF/hg5vhg5Dhg5jhg6Hhg5hf4YOY4YOV4YOc4YOY4YOh4YOYX+GDmOGDleGDmuGDmOGDoeGDmF/hg5Dhg5Lhg5Xhg5jhg6Hhg6Lhg51f4YOh4YOU4YOl4YOi4YOU4YOb4YOR4YOU4YOg4YOYX+GDneGDpeGDouGDneGDm+GDkeGDlOGDoOGDmF/hg5zhg53hg5Thg5vhg5Hhg5Thg6Dhg5hf4YOT4YOU4YOZ4YOU4YOb4YOR4YOU4YOg4YOYJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+GDmOGDkOGDnF/hg5fhg5Thg5Ff4YOb4YOQ4YOgX+GDkOGDnuGDoF/hg5vhg5Dhg5hf4YOY4YOV4YOcX+GDmOGDleGDml/hg5Dhg5Lhg5Vf4YOh4YOU4YOlX+GDneGDpeGDol/hg5zhg53hg5Rf4YOT4YOU4YOZJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTpcbiAgICAgICAgICAgICAgICAn4YOZ4YOV4YOY4YOg4YOQX+GDneGDoOGDqOGDkOGDkeGDkOGDl+GDmF/hg6Hhg5Dhg5vhg6jhg5Dhg5Hhg5Dhg5fhg5hf4YOd4YOX4YOu4YOo4YOQ4YOR4YOQ4YOX4YOYX+GDruGDo+GDl+GDqOGDkOGDkeGDkOGDl+GDmF/hg57hg5Dhg6Dhg5Dhg6Hhg5nhg5Thg5Xhg5hf4YOo4YOQ4YOR4YOQ4YOX4YOYJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ+GDmeGDleGDmOGDoOGDkOGDoV/hg53hg6Dhg6jhg5Dhg5Hhg5Dhg5fhg6Ff4YOh4YOQ4YOb4YOo4YOQ4YOR4YOQ4YOX4YOhX+GDneGDl+GDruGDqOGDkOGDkeGDkOGDl+GDoV/hg67hg6Phg5fhg6jhg5Dhg5Hhg5Dhg5fhg6Ff4YOe4YOQ4YOg4YOQ4YOh4YOZ4YOU4YOV4YOhX+GDqOGDkOGDkeGDkOGDl+GDoScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC8o4YOs4YOY4YOc4YOQfOGDqOGDlOGDm+GDk+GDlOGDkikvLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4YOZ4YOV4YOYX+GDneGDoOGDqF/hg6Hhg5Dhg5tf4YOd4YOX4YOuX+GDruGDo+GDl1/hg57hg5Dhg6Bf4YOo4YOQ4YORJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+GDmeGDlV/hg53hg6Bf4YOh4YOQX+GDneGDl1/hg67hg6Nf4YOe4YOQX+GDqOGDkCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vhg5Phg6bhg5Thg6FdIExUWy3hg5bhg5RdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4YOu4YOV4YOQ4YOaXSBMVFst4YOW4YOUXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+GDkuGDo+GDqOGDmOGDnF0gTFRbLeGDluGDlF0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4YOo4YOU4YOb4YOT4YOU4YOSXSBkZGRkIExUWy3hg5bhg5RdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+GDrOGDmOGDnOGDkF0gZGRkZCBMVC3hg5bhg5QnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHMucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgLyjhg6zhg5Dhg5t84YOs4YOj4YOXfOGDoeGDkOGDkOGDl3zhg6zhg5Thg5p84YOT4YOmfOGDl+GDlSko4YOYfOGDlCkvLFxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoJDAsICQxLCAkMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQyID09PSAn4YOYJyA/ICQxICsgJ+GDqOGDmCcgOiAkMSArICQyICsgJ+GDqOGDmCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhc3Q6IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICAgICAgaWYgKC8o4YOs4YOQ4YOb4YOYfOGDrOGDo+GDl+GDmHzhg6Hhg5Dhg5Dhg5fhg5h84YOT4YOm4YOUfOGDl+GDleGDlCkvLnRlc3QocykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvKOGDmHzhg5QpJC8sICfhg5jhg6Eg4YOs4YOY4YOcJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgv4YOs4YOU4YOa4YOYLy50ZXN0KHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzLnJlcGxhY2UoL+GDrOGDlOGDmuGDmCQvLCAn4YOs4YOa4YOY4YOhIOGDrOGDmOGDnCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzOiAn4YOg4YOQ4YOb4YOT4YOU4YOc4YOY4YOb4YOUIOGDrOGDkOGDm+GDmCcsXG4gICAgICAgICAgICBzczogJyVkIOGDrOGDkOGDm+GDmCcsXG4gICAgICAgICAgICBtOiAn4YOs4YOj4YOX4YOYJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4YOs4YOj4YOX4YOYJyxcbiAgICAgICAgICAgIGg6ICfhg6Hhg5Dhg5Dhg5fhg5gnLFxuICAgICAgICAgICAgaGg6ICclZCDhg6Hhg5Dhg5Dhg5fhg5gnLFxuICAgICAgICAgICAgZDogJ+GDk+GDpuGDlCcsXG4gICAgICAgICAgICBkZDogJyVkIOGDk+GDpuGDlCcsXG4gICAgICAgICAgICBNOiAn4YOX4YOV4YOUJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4YOX4YOV4YOUJyxcbiAgICAgICAgICAgIHk6ICfhg6zhg5Thg5rhg5gnLFxuICAgICAgICAgICAgeXk6ICclZCDhg6zhg5Thg5rhg5gnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvMHwxLeGDmuGDmHzhg5vhg5QtXFxkezEsMn18XFxkezEsMn0t4YOULyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct4YOa4YOYJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBudW1iZXIgPCAyMCB8fFxuICAgICAgICAgICAgICAgIChudW1iZXIgPD0gMTAwICYmIG51bWJlciAlIDIwID09PSAwKSB8fFxuICAgICAgICAgICAgICAgIG51bWJlciAlIDEwMCA9PT0gMFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfhg5vhg5QtJyArIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLeGDlCc7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSxcbiAgICAgICAgICAgIGRveTogNyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBrYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLYXpha2ggW2trXVxuLy8hIGF1dGhvcnMgOiBOdXJsYW4gUmFraGltemhhbm92IDogaHR0cHM6Ly9naXRodWIuY29tL251cmxhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAwOiAnLdGI0ZYnLFxuICAgICAgICAxOiAnLdGI0ZYnLFxuICAgICAgICAyOiAnLdGI0ZYnLFxuICAgICAgICAzOiAnLdGI0ZYnLFxuICAgICAgICA0OiAnLdGI0ZYnLFxuICAgICAgICA1OiAnLdGI0ZYnLFxuICAgICAgICA2OiAnLdGI0YsnLFxuICAgICAgICA3OiAnLdGI0ZYnLFxuICAgICAgICA4OiAnLdGI0ZYnLFxuICAgICAgICA5OiAnLdGI0YsnLFxuICAgICAgICAxMDogJy3RiNGLJyxcbiAgICAgICAgMjA6ICct0YjRiycsXG4gICAgICAgIDMwOiAnLdGI0YsnLFxuICAgICAgICA0MDogJy3RiNGLJyxcbiAgICAgICAgNTA6ICct0YjRlicsXG4gICAgICAgIDYwOiAnLdGI0YsnLFxuICAgICAgICA3MDogJy3RiNGWJyxcbiAgICAgICAgODA6ICct0YjRlicsXG4gICAgICAgIDkwOiAnLdGI0YsnLFxuICAgICAgICAxMDA6ICct0YjRlicsXG4gICAgfTtcblxuICAgIHZhciBrayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2trJywge1xuICAgICAgICBtb250aHM6ICfSm9Cw0qPRgtCw0YBf0LDSm9C/0LDQvV/QvdCw0YPRgNGL0Ldf0YHTmdGD0ZbRgF/QvNCw0LzRi9GAX9C80LDRg9GB0YvQvF/RiNGW0LvQtNC1X9GC0LDQvNGL0Ldf0pvRi9GA0LrSr9C50LXQul/Sm9Cw0LfQsNC9X9Kb0LDRgNCw0YjQsF/QttC10LvRgtC+0pvRgdCw0L0nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0pvQsNKjX9Cw0pvQv1/QvdCw0YNf0YHTmdGDX9C80LDQvF/QvNCw0YNf0YjRltC7X9GC0LDQvF/Sm9GL0YBf0pvQsNC3X9Kb0LDRgF/QttC10LsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn0LbQtdC60YHQtdC90LHRll/QtNKv0LnRgdC10L3QsdGWX9GB0LXQudGB0LXQvdCx0ZZf0YHTmdGA0YHQtdC90LHRll/QsdC10LnRgdC10L3QsdGWX9C20rHQvNCwX9GB0LXQvdCx0ZYnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQttC10Lpf0LTSr9C5X9GB0LXQuV/RgdOZ0YBf0LHQtdC5X9C20rHQvF/RgdC10L0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0LbQul/QtNC5X9GB0Llf0YHRgF/QsdC5X9C20Lxf0YHQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQkdKv0LPRltC9INGB0LDSk9Cw0YJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0JXRgNGC0LXSoyDRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9GB0LDSk9Cw0YJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JrQtdGI0LUg0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb06jRgtC60LXQvSDQsNC/0YLQsNC90YvSo10gZGRkZCBb0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDRltGI0ZbQvdC00LUnLFxuICAgICAgICAgICAgcGFzdDogJyVzINCx0rHRgNGL0L0nLFxuICAgICAgICAgICAgczogJ9Cx0ZbRgNC90LXRiNC1INGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBzczogJyVkINGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtOiAn0LHRltGAINC80LjQvdGD0YInLFxuICAgICAgICAgICAgbW06ICclZCDQvNC40L3Rg9GCJyxcbiAgICAgICAgICAgIGg6ICfQsdGW0YAg0YHQsNKT0LDRgicsXG4gICAgICAgICAgICBoaDogJyVkINGB0LDSk9Cw0YInLFxuICAgICAgICAgICAgZDogJ9Cx0ZbRgCDQutKv0L0nLFxuICAgICAgICAgICAgZGQ6ICclZCDQutKv0L0nLFxuICAgICAgICAgICAgTTogJ9Cx0ZbRgCDQsNC5JyxcbiAgICAgICAgICAgIE1NOiAnJWQg0LDQuScsXG4gICAgICAgICAgICB5OiAn0LHRltGAINC20YvQuycsXG4gICAgICAgICAgICB5eTogJyVkINC20YvQuycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0YjRlnzRiNGLKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgYiA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1tudW1iZXJdIHx8IHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGtrO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENhbWJvZGlhbiBba21dXG4vLyEgYXV0aG9yIDogS3J1eSBWYW5uYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rcnV5dmFubmFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAxOiAn4Z+hJyxcbiAgICAgICAgICAgIDI6ICfhn6InLFxuICAgICAgICAgICAgMzogJ+GfoycsXG4gICAgICAgICAgICA0OiAn4Z+kJyxcbiAgICAgICAgICAgIDU6ICfhn6UnLFxuICAgICAgICAgICAgNjogJ+GfpicsXG4gICAgICAgICAgICA3OiAn4Z+nJyxcbiAgICAgICAgICAgIDg6ICfhn6gnLFxuICAgICAgICAgICAgOTogJ+GfqScsXG4gICAgICAgICAgICAwOiAn4Z+gJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+GfoSc6ICcxJyxcbiAgICAgICAgICAgICfhn6InOiAnMicsXG4gICAgICAgICAgICAn4Z+jJzogJzMnLFxuICAgICAgICAgICAgJ+GfpCc6ICc0JyxcbiAgICAgICAgICAgICfhn6UnOiAnNScsXG4gICAgICAgICAgICAn4Z+mJzogJzYnLFxuICAgICAgICAgICAgJ+Gfpyc6ICc3JyxcbiAgICAgICAgICAgICfhn6gnOiAnOCcsXG4gICAgICAgICAgICAn4Z+pJzogJzknLFxuICAgICAgICAgICAgJ+GfoCc6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBrbSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ttJywge1xuICAgICAgICBtb250aHM6ICfhnpjhnoDhnprhnrZf4Z6A4Z674Z6Y4Z+S4Z6X4Z+IX+GemOGeuOGek+Getl/hnpjhn4Hhnp/hnrZf4Z6n4Z6f4Z6X4Z62X+GemOGet+GekOGeu+Gek+Getl/hnoDhnoDhn5LhnoDhnorhnrZf4Z6f4Z644Z6g4Z62X+GegOGeieGfkuGeieGetl/hno/hnrvhnpvhnrZf4Z6c4Z634Z6F4Z+S4Z6G4Z634Z6A4Z62X+GekuGfkuGek+GevCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAn4Z6Y4Z6A4Z6a4Z62X+GegOGeu+GemOGfkuGel+GfiF/hnpjhnrjhnpPhnrZf4Z6Y4Z+B4Z6f4Z62X+Gep+Gen+Gel+Getl/hnpjhnrfhnpDhnrvhnpPhnrZf4Z6A4Z6A4Z+S4Z6A4Z6K4Z62X+Gen+GeuOGeoOGetl/hnoDhnonhn5LhnonhnrZf4Z6P4Z674Z6b4Z62X+GenOGet+GeheGfkuGehuGet+GegOGetl/hnpLhn5LhnpPhnrwnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfhnqLhnrbhnpHhnrfhno/hn5Lhnplf4Z6F4Z+Q4Z6T4Z+S4Z6RX+GeouGehOGfkuGeguGetuGeml/hnpbhnrvhnpJf4Z6W4Z+S4Z6a4Z6g4Z6f4Z+S4Z6U4Z6P4Z634Z+NX+Gen+Geu+GegOGfkuGeml/hnp/hn4Xhnprhn40nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfhnqLhnrZf4Z6FX+Geol/hnpZf4Z6W4Z+S4Z6aX+Gen+Geu1/hnp8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4Z6i4Z62X+GehV/hnqJf4Z6WX+GeluGfkuGeml/hnp/hnrtf4Z6fJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+GeluGfkuGemuGeueGegHzhnpvhn5LhnoThnrbhnoUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ+Gem+GfkuGehOGetuGehSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfhnpbhn5LhnprhnrnhnoAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+Gem+GfkuGehOGetuGehSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+GekOGfkuGehOGfg+Gek+GfgeGfhyDhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4Z6f4Z+S4Z6i4Z+C4Z6AIOGemOGfieGfhOGehF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4Z6Y4Z+S4Z6f4Z634Z6b4Z6Y4Z634Z6JIOGemOGfieGfhOGehF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvhnp/hnpThn5Lhno/hnrbhnqDhn43hnpjhnrvhnpNdIFvhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPhnpHhn4Dhno8nLFxuICAgICAgICAgICAgcGFzdDogJyVz4Z6Y4Z674Z6TJyxcbiAgICAgICAgICAgIHM6ICfhnpThn4nhnrvhnpPhn5LhnpjhnrbhnpPhnpzhnrfhnpPhnrbhnpHhnrgnLFxuICAgICAgICAgICAgc3M6ICclZCDhnpzhnrfhnpPhnrbhnpHhnrgnLFxuICAgICAgICAgICAgbTogJ+GemOGeveGemeGek+GetuGekeGeuCcsXG4gICAgICAgICAgICBtbTogJyVkIOGek+GetuGekeGeuCcsXG4gICAgICAgICAgICBoOiAn4Z6Y4Z694Z6Z4Z6Y4Z+J4Z+E4Z6EJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4Z6Y4Z+J4Z+E4Z6EJyxcbiAgICAgICAgICAgIGQ6ICfhnpjhnr3hnpnhnpDhn5LhnoThn4MnLFxuICAgICAgICAgICAgZGQ6ICclZCDhnpDhn5LhnoThn4MnLFxuICAgICAgICAgICAgTTogJ+GemOGeveGemeGegeGfgicsXG4gICAgICAgICAgICBNTTogJyVkIOGegeGfgicsXG4gICAgICAgICAgICB5OiAn4Z6Y4Z694Z6Z4Z6G4Z+S4Z6T4Z624Z+GJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Z6G4Z+S4Z6T4Z624Z+GJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL+GekeGeuFxcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbDogJ+GekeGeuCVkJyxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+GfoeGfouGfo+GfpOGfpeGfpuGfp+GfqOGfqeGfoF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGttO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEthbm5hZGEgW2tuXVxuLy8hIGF1dGhvciA6IFJhamVldiBOYWlrIDogaHR0cHM6Ly9naXRodWIuY29tL3JhamVldm5haWt0ZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgIDE6ICfgs6cnLFxuICAgICAgICAgICAgMjogJ+CzqCcsXG4gICAgICAgICAgICAzOiAn4LOpJyxcbiAgICAgICAgICAgIDQ6ICfgs6onLFxuICAgICAgICAgICAgNTogJ+CzqycsXG4gICAgICAgICAgICA2OiAn4LOsJyxcbiAgICAgICAgICAgIDc6ICfgs60nLFxuICAgICAgICAgICAgODogJ+CzricsXG4gICAgICAgICAgICA5OiAn4LOvJyxcbiAgICAgICAgICAgIDA6ICfgs6YnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4LOnJzogJzEnLFxuICAgICAgICAgICAgJ+CzqCc6ICcyJyxcbiAgICAgICAgICAgICfgs6knOiAnMycsXG4gICAgICAgICAgICAn4LOqJzogJzQnLFxuICAgICAgICAgICAgJ+Czqyc6ICc1JyxcbiAgICAgICAgICAgICfgs6wnOiAnNicsXG4gICAgICAgICAgICAn4LOtJzogJzcnLFxuICAgICAgICAgICAgJ+Czric6ICc4JyxcbiAgICAgICAgICAgICfgs68nOiAnOScsXG4gICAgICAgICAgICAn4LOmJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGtuID0gbW9tZW50LmRlZmluZUxvY2FsZSgna24nLCB7XG4gICAgICAgIG1vbnRoczogJ+CynOCyqOCyteCysOCyv1/gsqvgs4bgsqzgs43gsrDgsrXgsrDgsr9f4LKu4LK+4LKw4LON4LKa4LONX+Cyj+CyquCzjeCysOCyv+CysuCzjV/gsq7gs4bgs5Vf4LKc4LOC4LKo4LONX+CynOCzgeCysuCzhuCzll/gsobgspfgsrjgs43gsp/gs41f4LK44LOG4LKq4LON4LKf4LOG4LKC4LKs4LKw4LONX+CyheCyleCzjeCyn+CzhuCzguCzleCyrOCysOCzjV/gsqjgsrXgs4bgsoLgsqzgsrDgs41f4LKh4LK/4LK44LOG4LKC4LKs4LKw4LONJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfgspzgsqhf4LKr4LOG4LKs4LON4LKwX+CyruCyvuCysOCzjeCymuCzjV/gso/gsqrgs43gsrDgsr/gsrLgs41f4LKu4LOG4LOVX+CynOCzguCyqOCzjV/gspzgs4HgsrLgs4bgs5Zf4LKG4LKX4LK44LON4LKf4LONX+CyuOCzhuCyquCzjeCyn+CzhuCygl/gsoXgspXgs43gsp/gs4bgs4Lgs5Vf4LKo4LK14LOG4LKCX+CyoeCyv+CyuOCzhuCygicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CyreCyvuCyqOCzgeCyteCyvuCysF/gsrjgs4bgs4Lgs5Xgsq7gsrXgsr7gsrBf4LKu4LKC4LKX4LKz4LK14LK+4LKwX+CyrOCzgeCyp+CyteCyvuCysF/gspfgs4HgsrDgs4HgsrXgsr7gsrBf4LK24LOB4LKV4LON4LKw4LK14LK+4LKwX+CytuCyqOCyv+CyteCyvuCysCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CyreCyvuCyqOCzgV/gsrjgs4bgs4Lgs5Xgsq5f4LKu4LKC4LKX4LKzX+CyrOCzgeCyp1/gspfgs4HgsrDgs4Ff4LK24LOB4LKV4LON4LKwX+CytuCyqOCyvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgsq3gsr5f4LK44LOG4LOC4LOVX+CyruCygl/gsqzgs4Ff4LKX4LOBX+CytuCzgV/gsrYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4LKH4LKC4LKm4LOBXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CyqOCyvuCys+Czhl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CyqOCyv+CyqOCzjeCyqOCzhl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4LKV4LOG4LOC4LKo4LOG4LKvXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCyqOCyguCypOCysCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4LK54LK/4LKC4LKm4LOGJyxcbiAgICAgICAgICAgIHM6ICfgspXgs4bgsrLgsrXgs4Eg4LKV4LON4LK34LKj4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4LK44LOG4LKV4LOG4LKC4LKh4LOB4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIG06ICfgspLgsoLgsqbgs4Eg4LKo4LK/4LKu4LK/4LK3JyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LKo4LK/4LKu4LK/4LK3JyxcbiAgICAgICAgICAgIGg6ICfgspLgsoLgsqbgs4Eg4LKX4LKC4LKf4LOGJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LKX4LKC4LKf4LOGJyxcbiAgICAgICAgICAgIGQ6ICfgspLgsoLgsqbgs4Eg4LKm4LK/4LKoJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4LKm4LK/4LKoJyxcbiAgICAgICAgICAgIE06ICfgspLgsoLgsqbgs4Eg4LKk4LK/4LKC4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4LKk4LK/4LKC4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIHk6ICfgspLgsoLgsqbgs4Eg4LK14LKw4LON4LK3JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4LK14LKw4LON4LK3JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Czp+CzqOCzqeCzquCzq+CzrOCzreCzruCzr+Czpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CysOCyvuCypOCzjeCysOCyv3zgsqzgs4bgsrPgsr/gspfgs43gspfgs4Z84LKu4LKn4LON4LKv4LK+4LK54LON4LKofOCyuOCyguCynOCzhi8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CysOCyvuCypOCzjeCysOCyvycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CyrOCzhuCys+Cyv+Cyl+CzjeCyl+CzhicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsq7gsqfgs43gsq/gsr7gsrngs43gsqgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CyuOCyguCynOCzhicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsrDgsr7gsqTgs43gsrDgsr8nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CyrOCzhuCys+Cyv+Cyl+CzjeCyl+Czhic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LKu4LKn4LON4LKv4LK+4LK54LON4LKoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsrjgsoLgspzgs4YnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CysOCyvuCypOCzjeCysOCyvyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjgsqjgs4bgs5UpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfgsqjgs4bgs5UnO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga247XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS29yZWFuIFtrb11cbi8vISBhdXRob3IgOiBLeXVuZ3dvb2ssIFBhcmsgOiBodHRwczovL2dpdGh1Yi5jb20va3l1bmd3MDBrXG4vLyEgYXV0aG9yIDogSmVlZXl1bCBMZWUgPGplZWV5dWxAZ21haWwuY29tPlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGtvID0gbW9tZW50LmRlZmluZUxvY2FsZSgna28nLCB7XG4gICAgICAgIG1vbnRoczogJzHsm5RfMuyblF8z7JuUXzTsm5RfNeyblF827JuUXzfsm5RfOOyblF857JuUXzEw7JuUXzEx7JuUXzEy7JuUJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJzHsm5RfMuyblF8z7JuUXzTsm5RfNeyblF827JuUXzfsm5RfOOyblF857JuUXzEw7JuUXzEx7JuUXzEy7JuUJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+ydvOyalOydvF/sm5TsmpTsnbxf7ZmU7JqU7J28X+yImOyalOydvF/rqqnsmpTsnbxf6riI7JqU7J28X+2GoOyalOydvCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+ydvF/sm5Rf7ZmUX+yImF/rqqlf6riIX+2GoCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfsnbxf7JuUX+2ZlF/siJhf66qpX+q4iF/thqAnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkuTU0uREQuJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeuFhCBNTU1NIETsnbwnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeuFhCBNTU1NIETsnbwgQSBoOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ64WEIE1NTU0gROydvCBkZGRkIEEgaDptbScsXG4gICAgICAgICAgICBsOiAnWVlZWS5NTS5ERC4nLFxuICAgICAgICAgICAgbGw6ICdZWVlZ64WEIE1NTU0gROydvCcsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ64WEIE1NTU0gROydvCBBIGg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnrhYQgTU1NTSBE7J28IGRkZGQgQSBoOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICfsmKTripggTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ+uCtOydvCBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ+yWtOygnCBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ+yngOuCnOyjvCBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg7ZuEJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDsoIQnLFxuICAgICAgICAgICAgczogJ+uqhyDstIgnLFxuICAgICAgICAgICAgc3M6ICclZOy0iCcsXG4gICAgICAgICAgICBtOiAnMeu2hCcsXG4gICAgICAgICAgICBtbTogJyVk67aEJyxcbiAgICAgICAgICAgIGg6ICftlZwg7Iuc6rCEJyxcbiAgICAgICAgICAgIGhoOiAnJWTsi5zqsIQnLFxuICAgICAgICAgICAgZDogJ+2VmOujqCcsXG4gICAgICAgICAgICBkZDogJyVk7J28JyxcbiAgICAgICAgICAgIE06ICftlZwg64usJyxcbiAgICAgICAgICAgIE1NOiAnJWTri6wnLFxuICAgICAgICAgICAgeTogJ+ydvCDrhYQnLFxuICAgICAgICAgICAgeXk6ICclZOuFhCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjsnbx87JuUfOyjvCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfsnbwnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+yblCc7XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn7KO8JztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv7Jik7KCEfOyYpO2bhC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuID09PSAn7Jik7ZuEJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzVXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBob3VyIDwgMTIgPyAn7Jik7KCEJyA6ICfsmKTtm4QnO1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGtvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEt1cmRpc2ggW2t1XVxuLy8hIGF1dGhvciA6IFNoYWhyYW0gTWViYXNoYXIgOiBodHRwczovL2dpdGh1Yi5jb20vU2hhaHJhbU1lYmFzaGFyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgMTogJ9mhJyxcbiAgICAgICAgICAgIDI6ICfZoicsXG4gICAgICAgICAgICAzOiAn2aMnLFxuICAgICAgICAgICAgNDogJ9mkJyxcbiAgICAgICAgICAgIDU6ICfZpScsXG4gICAgICAgICAgICA2OiAn2aYnLFxuICAgICAgICAgICAgNzogJ9mnJyxcbiAgICAgICAgICAgIDg6ICfZqCcsXG4gICAgICAgICAgICA5OiAn2aknLFxuICAgICAgICAgICAgMDogJ9mgJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ9mhJzogJzEnLFxuICAgICAgICAgICAgJ9miJzogJzInLFxuICAgICAgICAgICAgJ9mjJzogJzMnLFxuICAgICAgICAgICAgJ9mkJzogJzQnLFxuICAgICAgICAgICAgJ9mlJzogJzUnLFxuICAgICAgICAgICAgJ9mmJzogJzYnLFxuICAgICAgICAgICAgJ9mnJzogJzcnLFxuICAgICAgICAgICAgJ9moJzogJzgnLFxuICAgICAgICAgICAgJ9mpJzogJzknLFxuICAgICAgICAgICAgJ9mgJzogJzAnLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHMgPSBbXG4gICAgICAgICAgICAn2qnYp9mG2YjZhtuMINiv2YjZiNuV2YUnLFxuICAgICAgICAgICAgJ9i02YjYqNin2KonLFxuICAgICAgICAgICAgJ9im2KfYstin2LEnLFxuICAgICAgICAgICAgJ9mG24zYs9in2YYnLFxuICAgICAgICAgICAgJ9im2KfbjNin2LEnLFxuICAgICAgICAgICAgJ9it2YjYstuV24zYsdin2YYnLFxuICAgICAgICAgICAgJ9iq25XZhdmF2YjYsicsXG4gICAgICAgICAgICAn2KbYp9ioJyxcbiAgICAgICAgICAgICfYptuV24zZhNmI2YjZhCcsXG4gICAgICAgICAgICAn2KrYtNix24zZhtuMINuM25XZg9uV2YUnLFxuICAgICAgICAgICAgJ9iq2LTYsduM2YbbjCDYr9mI2YjbldmFJyxcbiAgICAgICAgICAgICfZg9in2YbZiNmG24wg24zbldqp25XZhScsXG4gICAgICAgIF07XG5cbiAgICB2YXIga3UgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdrdScsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ9uM2YfigIzZg9i02YfigIzZhdmF2YfigIxf2K/ZiNmI2LTZh+KAjNmF2YXZh+KAjF/Ys9uO2LTZh+KAjNmF2YXZh+KAjF/ahtmI2KfYsdi02YfigIzZhdmF2YfigIxf2b7bjtmG2KzYtNmH4oCM2YXZhdmH4oCMX9mH2YfigIzbjNmG24xf2LTZh+KAjNmF2YXZh+KAjCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OlxuICAgICAgICAgICAgJ9uM2YfigIzZg9i02YfigIzZhV/Yr9mI2YjYtNmH4oCM2YVf2LPbjti02YfigIzZhV/ahtmI2KfYsdi02YfigIzZhV/ZvtuO2YbYrNi02YfigIzZhV/Zh9mH4oCM24zZhtuMX9i02YfigIzZhdmF2YfigIwnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn24xf2K9f2LNf2oZf2b5f2Ydf2LQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2KbbjtmI2KfYsdmH4oCMfNio2YfigIzbjNin2YbbjC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC/YptuO2YjYp9ix2YfigIwvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2KjZh+KAjNuM2KfZhtuMJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYptuO2YjYp9ix2YfigIwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYptmH4oCM2YXYsduGINmD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9io2YfigIzbjNin2YbbjCDZg9in2KramNmF247YsV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvZg9in2KramNmF247YsV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYr9mI247ZhtuOINmD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9mD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9mE2YfigIwgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzJyxcbiAgICAgICAgICAgIHM6ICfahtmH4oCM2YbYryDahtix2YPZh+KAjNuM2YfigIzZgycsXG4gICAgICAgICAgICBzczogJ9qG2LHZg9mH4oCMICVkJyxcbiAgICAgICAgICAgIG06ICfbjNmH4oCM2YMg2K7ZiNmE2YfigIzZgycsXG4gICAgICAgICAgICBtbTogJyVkINiu2YjZhNmH4oCM2YMnLFxuICAgICAgICAgICAgaDogJ9uM2YfigIzZgyDZg9in2KramNmF247YsScsXG4gICAgICAgICAgICBoaDogJyVkINmD2KfYqtqY2YXbjtixJyxcbiAgICAgICAgICAgIGQ6ICfbjNmH4oCM2YMg2pXbhtqYJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2pXbhtqYJyxcbiAgICAgICAgICAgIE06ICfbjNmH4oCM2YMg2YXYp9mG2q8nLFxuICAgICAgICAgICAgTU06ICclZCDZhdin2YbarycsXG4gICAgICAgICAgICB5OiAn24zZh+KAjNmDINiz2KfatScsXG4gICAgICAgICAgICB5eTogJyVkINiz2KfatScsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1vZodmi2aPZpNml2abZp9mo2anZoF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGt1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEt5cmd5eiBba3ldXG4vLyEgYXV0aG9yIDogQ2h5bmd5eiBBcnlzdGFuIHV1bHUgOiBodHRwczovL2dpdGh1Yi5jb20vY2h5bmd5elxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAwOiAnLdGH0q8nLFxuICAgICAgICAxOiAnLdGH0LgnLFxuICAgICAgICAyOiAnLdGH0LgnLFxuICAgICAgICAzOiAnLdGH0q8nLFxuICAgICAgICA0OiAnLdGH0q8nLFxuICAgICAgICA1OiAnLdGH0LgnLFxuICAgICAgICA2OiAnLdGH0YsnLFxuICAgICAgICA3OiAnLdGH0LgnLFxuICAgICAgICA4OiAnLdGH0LgnLFxuICAgICAgICA5OiAnLdGH0YMnLFxuICAgICAgICAxMDogJy3Rh9GDJyxcbiAgICAgICAgMjA6ICct0YfRiycsXG4gICAgICAgIDMwOiAnLdGH0YMnLFxuICAgICAgICA0MDogJy3Rh9GLJyxcbiAgICAgICAgNTA6ICct0YfSrycsXG4gICAgICAgIDYwOiAnLdGH0YsnLFxuICAgICAgICA3MDogJy3Rh9C4JyxcbiAgICAgICAgODA6ICct0YfQuCcsXG4gICAgICAgIDkwOiAnLdGH0YMnLFxuICAgICAgICAxMDA6ICct0YfSrycsXG4gICAgfTtcblxuICAgIHZhciBreSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2t5Jywge1xuICAgICAgICBtb250aHM6ICfRj9C90LLQsNGA0Yxf0YTQtdCy0YDQsNC70Yxf0LzQsNGA0YJf0LDQv9GA0LXQu9GMX9C80LDQuV/QuNGO0L3RjF/QuNGO0LvRjF/QsNCy0LPRg9GB0YJf0YHQtdC90YLRj9Cx0YDRjF/QvtC60YLRj9Cx0YDRjF/QvdC+0Y/QsdGA0Yxf0LTQtdC60LDQsdGA0YwnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0Y/QvdCyX9GE0LXQsl/QvNCw0YDRgl/QsNC/0YBf0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQs1/RgdC10L1f0L7QutGCX9C90L7Rj1/QtNC10LonLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn0JbQtdC60YjQtdC80LHQuF/QlNKv0LnRiNOp0LzQsdKvX9Co0LXQudGI0LXQvNCx0Lhf0KjQsNGA0YjQtdC80LHQuF/QkdC10LnRiNC10LzQsdC4X9CW0YPQvNCwX9CY0YjQtdC80LHQuCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9CW0LXQul/QlNKv0Llf0KjQtdC5X9Co0LDRgF/QkdC10Llf0JbRg9C8X9CY0YjQtScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQltC6X9CU0Llf0KjQuV/QqNGAX9CR0Llf0JbQvF/QmNGIJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9CR0q/Qs9Kv0L0g0YHQsNCw0YJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0K3RgNGC0LXSoyDRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQmtC10YfRjdGNINGB0LDQsNGCXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vTqNGC0LrTqdC9INCw0L/RgtCw0L3Ri9C9XSBkZGRkIFvQutKv0L3Sr10gW9GB0LDQsNGCXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINC40YfQuNC90LTQtScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0LzRg9GA0YPQvScsXG4gICAgICAgICAgICBzOiAn0LHQuNGA0L3QtdGH0LUg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIHNzOiAnJWQg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG06ICfQsdC40YAg0LzSr9C906nRgicsXG4gICAgICAgICAgICBtbTogJyVkINC80q/QvdOp0YInLFxuICAgICAgICAgICAgaDogJ9Cx0LjRgCDRgdCw0LDRgicsXG4gICAgICAgICAgICBoaDogJyVkINGB0LDQsNGCJyxcbiAgICAgICAgICAgIGQ6ICfQsdC40YAg0LrSr9C9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LrSr9C9JyxcbiAgICAgICAgICAgIE06ICfQsdC40YAg0LDQuScsXG4gICAgICAgICAgICBNTTogJyVkINCw0LknLFxuICAgICAgICAgICAgeTogJ9Cx0LjRgCDQttGL0LsnLFxuICAgICAgICAgICAgeXk6ICclZCDQttGL0LsnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNGH0Lh80YfRi3zRh9KvfNGH0YMpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBiID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW251bWJlcl0gfHwgc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga3k7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTHV4ZW1ib3VyZ2lzaCBbbGJdXG4vLyEgYXV0aG9yIDogbXdlaW1lcnNraXJjaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9td2VpbWVyc2tpcmNoXG4vLyEgYXV0aG9yIDogRGF2aWQgUmFpc29uIDogaHR0cHM6Ly9naXRodWIuY29tL2t3aXNhdHpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtOiBbJ2VuZyBNaW51dHQnLCAnZW5nZXIgTWludXR0J10sXG4gICAgICAgICAgICBoOiBbJ2VuZyBTdG9ubicsICdlbmdlciBTdG9ubiddLFxuICAgICAgICAgICAgZDogWydlZW4gRGFnJywgJ2VuZ2VtIERhZyddLFxuICAgICAgICAgICAgTTogWydlZSBNb3VudCcsICdlbmdlbSBNb3VudCddLFxuICAgICAgICAgICAgeTogWydlZSBKb2VyJywgJ2VuZ2VtIEpvZXInXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzRnV0dXJlVGltZShzdHJpbmcpIHtcbiAgICAgICAgdmFyIG51bWJlciA9IHN0cmluZy5zdWJzdHIoMCwgc3RyaW5nLmluZGV4T2YoJyAnKSk7XG4gICAgICAgIGlmIChlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuICdhICcgKyBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdhbiAnICsgc3RyaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzUGFzdFRpbWUoc3RyaW5nKSB7XG4gICAgICAgIHZhciBudW1iZXIgPSBzdHJpbmcuc3Vic3RyKDAsIHN0cmluZy5pbmRleE9mKCcgJykpO1xuICAgICAgICBpZiAoZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKG51bWJlcikpIHtcbiAgICAgICAgICAgIHJldHVybiAndmlydSAnICsgc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAndmlydW4gJyArIHN0cmluZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB3b3JkIGJlZm9yZSB0aGUgZ2l2ZW4gbnVtYmVyIGxvc2VzIHRoZSAnLW4nIGVuZGluZy5cbiAgICAgKiBlLmcuICdhbiAxMCBEZWVnJyBidXQgJ2EgNSBEZWVnJ1xuICAgICAqXG4gICAgICogQHBhcmFtIG51bWJlciB7aW50ZWdlcn1cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKSB7XG4gICAgICAgIG51bWJlciA9IHBhcnNlSW50KG51bWJlciwgMTApO1xuICAgICAgICBpZiAoaXNOYU4obnVtYmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICAvLyBOZWdhdGl2ZSBOdW1iZXIgLS0+IGFsd2F5cyB0cnVlXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCAxMCkge1xuICAgICAgICAgICAgLy8gT25seSAxIGRpZ2l0XG4gICAgICAgICAgICBpZiAoNCA8PSBudW1iZXIgJiYgbnVtYmVyIDw9IDcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCAxMDApIHtcbiAgICAgICAgICAgIC8vIDIgZGlnaXRzXG4gICAgICAgICAgICB2YXIgbGFzdERpZ2l0ID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgZmlyc3REaWdpdCA9IG51bWJlciAvIDEwO1xuICAgICAgICAgICAgaWYgKGxhc3REaWdpdCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIoZmlyc3REaWdpdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKGxhc3REaWdpdCk7XG4gICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgMTAwMDApIHtcbiAgICAgICAgICAgIC8vIDMgb3IgNCBkaWdpdHMgLS0+IHJlY3Vyc2l2ZWx5IGNoZWNrIGZpcnN0IGRpZ2l0XG4gICAgICAgICAgICB3aGlsZSAobnVtYmVyID49IDEwKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyIC8gMTA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKG51bWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBBbnl0aGluZyBsYXJnZXIgdGhhbiA0IGRpZ2l0czogcmVjdXJzaXZlbHkgY2hlY2sgZmlyc3Qgbi0zIGRpZ2l0c1xuICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyIC8gMTAwMDtcbiAgICAgICAgICAgIHJldHVybiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBsYiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2xiJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJfRmVicnVhcl9Nw6RlcnpfQWJyw6tsbF9NZWVfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnSmFuLl9GZWJyLl9NcnouX0Fici5fTWVlX0p1bi5fSnVsLl9BdWcuX1NlcHQuX09rdC5fTm92Ll9EZXouJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ1Nvbm5kZWdfTcOpaW5kZWdfRMOrbnNjaGRlZ19Nw6t0dHdvY2hfRG9ubmVzY2hkZWdfRnJlaWRlZ19TYW1zY2hkZWcnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1NvLl9Nw6kuX0TDqy5fTcOrLl9Eby5fRnIuX1NhLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTb19Nw6lfRMOrX03Dq19Eb19Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tIFtBdWVyXScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzIFtBdWVyXScsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbSBbQXVlcl0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIFtBdWVyXScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hhdXQgdW1dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW011ZXIgdW1dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbdW1dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbR8Orc2NodGVyIHVtXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIC8vIERpZmZlcmVudCBkYXRlIHN0cmluZyBmb3IgJ0TDq25zY2hkZWcnIChUdWVzZGF5KSBhbmQgJ0Rvbm5lc2NoZGVnJyAoVGh1cnNkYXkpIGR1ZSB0byBwaG9ub2xvZ2ljYWwgcnVsZVxuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW0xlc2NodGVuXSBkZGRkIFt1bV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbTGVzY2h0ZV0gZGRkZCBbdW1dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogcHJvY2Vzc0Z1dHVyZVRpbWUsXG4gICAgICAgICAgICBwYXN0OiBwcm9jZXNzUGFzdFRpbWUsXG4gICAgICAgICAgICBzOiAnZSBwdWVyIFNla29ubmVuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgU2Vrb25uZW4nLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiAnJWQgTWludXR0ZW4nLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiAnJWQgU3Rvbm5lbicsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6ICclZCBEZWVnJyxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogJyVkIE3DqWludCcsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6ICclZCBKb2VyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBsYjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBMYW8gW2xvXVxuLy8hIGF1dGhvciA6IFJ5YW4gSGFydCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yeWFuaGFydDJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBsbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2xvJywge1xuICAgICAgICBtb250aHM6ICfguqHgurHguofguoHguq3guplf4LqB4Lq44Lqh4Lqe4LqyX+C6oeC6teC6meC6sl/gu4DguqHguqrgurJf4Lqe4Lq24LqU4Lqq4Lqw4Lqe4LqyX+C6oeC6tOC6luC6uOC6meC6sl/guoHgu43guqXgurDguoHgurvgupRf4Lqq4Lq04LqH4Lqr4LqyX+C6geC6seC6meC6jeC6sl/gupXgurjguqXgurJf4Lqe4Lqw4LqI4Lq04LqBX+C6l+C6seC6meC6p+C6sicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAn4Lqh4Lqx4LqH4LqB4Lqt4LqZX+C6geC6uOC6oeC6nuC6sl/guqHgurXgupngurJf4LuA4Lqh4Lqq4LqyX+C6nuC6tuC6lOC6quC6sOC6nuC6sl/guqHgurTgupbgurjgupngurJf4LqB4LuN4Lql4Lqw4LqB4Lq74LqUX+C6quC6tOC6h+C6q+C6sl/guoHgurHgupnguo3gurJf4LqV4Lq44Lql4LqyX+C6nuC6sOC6iOC6tOC6gV/gupfgurHgupnguqfgurInLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfguq3gurLgupfgurTgupRf4LqI4Lqx4LqZX+C6reC6seC6h+C6hOC6suC6mV/gup7gurjgupRf4Lqe4Lqw4Lqr4Lqx4LqUX+C6quC6uOC6gV/gu4DguqrgurvgurInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgupfgurTgupRf4LqI4Lqx4LqZX+C6reC6seC6h+C6hOC6suC6mV/gup7gurjgupRf4Lqe4Lqw4Lqr4Lqx4LqUX+C6quC6uOC6gV/gu4DguqrgurvgurInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4LqXX+C6iF/guq3guoRf4LqeX+C6nuC6q1/guqrguoFf4LqqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ+C6p+C6seC6mWRkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LqV4Lqt4LqZ4LuA4LqK4Lq74LuJ4LqyfOC6leC6reC6meC7geC6peC6hy8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn4LqV4Lqt4LqZ4LuB4Lql4LqHJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C6leC6reC6meC7gOC6iuC6u+C7ieC6sic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LqV4Lqt4LqZ4LuB4Lql4LqHJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4Lqh4Lq34LuJ4LqZ4Lq14LuJ4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+C6oeC6t+C7ieC6reC6t+C7iOC6meC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4Lqn4Lqx4LqZXWRkZGRb4Luc4LuJ4Lqy4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C6oeC6t+C7ieC6p+C6suC6meC6meC6teC7ieC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Lqn4Lqx4LqZXWRkZGRb4LuB4Lql4LuJ4Lqn4LqZ4Lq14LuJ4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ+C6reC6teC6gSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXPgupzgu4jgurLgupnguqHgurInLFxuICAgICAgICAgICAgczogJ+C6muC7jeC7iOC7gOC6l+C6u+C7iOC6suC7g+C6lOC6p+C6tOC6meC6suC6l+C6tScsXG4gICAgICAgICAgICBzczogJyVkIOC6p+C6tOC6meC6suC6l+C6tScsXG4gICAgICAgICAgICBtOiAnMSDgupngurLgupfgurUnLFxuICAgICAgICAgICAgbW06ICclZCDgupngurLgupfgurUnLFxuICAgICAgICAgICAgaDogJzEg4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHJyxcbiAgICAgICAgICAgIGQ6ICcxIOC6oeC6t+C7iScsXG4gICAgICAgICAgICBkZDogJyVkIOC6oeC6t+C7iScsXG4gICAgICAgICAgICBNOiAnMSDgu4DgupTgurfguq3gupknLFxuICAgICAgICAgICAgTU06ICclZCDgu4DgupTgurfguq3gupknLFxuICAgICAgICAgICAgeTogJzEg4Lqb4Lq1JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Lqb4Lq1JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogLyjgupfgurXgu4gpXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gJ+C6l+C6teC7iCcgKyBudW1iZXI7XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbG87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTGl0aHVhbmlhbiBbbHRdXG4vLyEgYXV0aG9yIDogTWluZGF1Z2FzIE1vesWrcmFzIDogaHR0cHM6Ly9naXRodWIuY29tL21tb3p1cmFzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdW5pdHMgPSB7XG4gICAgICAgIHNzOiAnc2VrdW5kxJdfc2VrdW5kxb5pxbNfc2VrdW5kZXMnLFxuICAgICAgICBtOiAnbWludXTEl19taW51dMSXc19taW51dMSZJyxcbiAgICAgICAgbW06ICdtaW51dMSXc19taW51xI1pxbNfbWludXRlcycsXG4gICAgICAgIGg6ICd2YWxhbmRhX3ZhbGFuZG9zX3ZhbGFuZMSFJyxcbiAgICAgICAgaGg6ICd2YWxhbmRvc192YWxhbmTFs192YWxhbmRhcycsXG4gICAgICAgIGQ6ICdkaWVuYV9kaWVub3NfZGllbsSFJyxcbiAgICAgICAgZGQ6ICdkaWVub3NfZGllbsWzX2RpZW5hcycsXG4gICAgICAgIE06ICdtxJdudW9fbcSXbmVzaW9fbcSXbmVzxK8nLFxuICAgICAgICBNTTogJ23El25lc2lhaV9txJduZXNpxbNfbcSXbmVzaXVzJyxcbiAgICAgICAgeTogJ21ldGFpX21ldMWzX21ldHVzJyxcbiAgICAgICAgeXk6ICdtZXRhaV9tZXTFs19tZXR1cycsXG4gICAgfTtcbiAgICBmdW5jdGlvbiB0cmFuc2xhdGVTZWNvbmRzKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgcmV0dXJuICdrZWxpb3Mgc2VrdW5kxJdzJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdrZWxpxbMgc2VrdW5kxb5pxbMnIDogJ2tlbGlhcyBzZWt1bmRlcyc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlU2luZ3VsYXIobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4XG4gICAgICAgICAgICA/IGZvcm1zKGtleSlbMF1cbiAgICAgICAgICAgIDogaXNGdXR1cmVcbiAgICAgICAgICAgID8gZm9ybXMoa2V5KVsxXVxuICAgICAgICAgICAgOiBmb3JtcyhrZXkpWzJdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzcGVjaWFsKG51bWJlcikge1xuICAgICAgICByZXR1cm4gbnVtYmVyICUgMTAgPT09IDAgfHwgKG51bWJlciA+IDEwICYmIG51bWJlciA8IDIwKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybXMoa2V5KSB7XG4gICAgICAgIHJldHVybiB1bml0c1trZXldLnNwbGl0KCdfJyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICByZXN1bHQgKyB0cmFuc2xhdGVTaW5ndWxhcihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleVswXSwgaXNGdXR1cmUpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoc3BlY2lhbChudW1iZXIpID8gZm9ybXMoa2V5KVsxXSA6IGZvcm1zKGtleSlbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZvcm1zKGtleSlbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoc3BlY2lhbChudW1iZXIpID8gZm9ybXMoa2V5KVsxXSA6IGZvcm1zKGtleSlbMl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBsdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2x0Jywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ3NhdXNpb192YXNhcmlvX2tvdm9fYmFsYW5kxb5pb19nZWd1xb7El3NfYmlyxb5lbGlvX2xpZXBvc19ydWdwasWrxI1pb19ydWdzxJdqb19zcGFsaW9fbGFwa3JpxI1pb19ncnVvZMW+aW8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6XG4gICAgICAgICAgICAgICAgJ3NhdXNpc192YXNhcmlzX2tvdmFzX2JhbGFuZGlzX2dlZ3XFvsSXX2JpcsW+ZWxpc19saWVwYV9ydWdwasWrdGlzX3J1Z3PEl2ppc19zcGFsaXNfbGFwa3JpdGlzX2dydW9kaXMnLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9EW29EXT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK01NTU0/fE1NTU0/KFxcW1teXFxbXFxdXSpcXF18XFxzKStEW29EXT8vLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ3NhdV92YXNfa292X2JhbF9nZWdfYmlyX2xpZV9yZ3BfcmdzX3NwYV9sYXBfZ3JkJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czoge1xuICAgICAgICAgICAgZm9ybWF0OiAnc2VrbWFkaWVuxK9fcGlybWFkaWVuxK9fYW50cmFkaWVuxK9fdHJlxI1pYWRpZW7Er19rZXR2aXJ0YWRpZW7Er19wZW5rdGFkaWVuxK9fxaFlxaF0YWRpZW7Erycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTpcbiAgICAgICAgICAgICAgICAnc2VrbWFkaWVuaXNfcGlybWFkaWVuaXNfYW50cmFkaWVuaXNfdHJlxI1pYWRpZW5pc19rZXR2aXJ0YWRpZW5pc19wZW5rdGFkaWVuaXNfxaFlxaF0YWRpZW5pcycuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL2RkZGQgSEg6bW0vLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU2VrX1Bpcl9BbnRfVHJlX0tldF9QZW5fxaBlxaEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU19QX0FfVF9LX1BuX8WgJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXSwgSEg6bW0gW3ZhbC5dJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0sIGRkZGQsIEhIOm1tIFt2YWwuXScsXG4gICAgICAgICAgICBsOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBsbDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0sIEhIOm1tIFt2YWwuXScsXG4gICAgICAgICAgICBsbGxsOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBkZGQsIEhIOm1tIFt2YWwuXScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW8WgaWFuZGllbl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tSeXRval0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbVmFrYXJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW1ByYcSXanVzxK9dIGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdwbyAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJpZcWhICVzJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZVNlY29uZHMsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tb2ppLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICctb2ppJztcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGx0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IExhdHZpYW4gW2x2XVxuLy8hIGF1dGhvciA6IEtyaXN0YXBzIEthcmxzb25zIDogaHR0cHM6Ly9naXRodWIuY29tL3NrYWtyaVxuLy8hIGF1dGhvciA6IErEgW5pcyBFbG1lcmlzIDogaHR0cHM6Ly9naXRodWIuY29tL0phbmlzRVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHVuaXRzID0ge1xuICAgICAgICBzczogJ3Nla3VuZGVzX3Nla3VuZMSTbV9zZWt1bmRlX3Nla3VuZGVzJy5zcGxpdCgnXycpLFxuICAgICAgICBtOiAnbWluxat0ZXNfbWluxat0xJNtX21pbsWrdGVfbWluxat0ZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIG1tOiAnbWluxat0ZXNfbWluxat0xJNtX21pbsWrdGVfbWluxat0ZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGg6ICdzdHVuZGFzX3N0dW5kxIFtX3N0dW5kYV9zdHVuZGFzJy5zcGxpdCgnXycpLFxuICAgICAgICBoaDogJ3N0dW5kYXNfc3R1bmTEgW1fc3R1bmRhX3N0dW5kYXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGQ6ICdkaWVuYXNfZGllbsSBbV9kaWVuYV9kaWVuYXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGRkOiAnZGllbmFzX2RpZW7EgW1fZGllbmFfZGllbmFzJy5zcGxpdCgnXycpLFxuICAgICAgICBNOiAnbcSTbmXFoWFfbcSTbmXFoWllbV9txJNuZXNpc19txJNuZcWhaScuc3BsaXQoJ18nKSxcbiAgICAgICAgTU06ICdtxJNuZcWhYV9txJNuZcWhaWVtX23Ek25lc2lzX23Ek25lxaFpJy5zcGxpdCgnXycpLFxuICAgICAgICB5OiAnZ2FkYV9nYWRpZW1fZ2Fkc19nYWRpJy5zcGxpdCgnXycpLFxuICAgICAgICB5eTogJ2dhZGFfZ2FkaWVtX2dhZHNfZ2FkaScuc3BsaXQoJ18nKSxcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB3aXRob3V0U3VmZml4IGJvb2xlYW4gdHJ1ZSA9IGEgbGVuZ3RoIG9mIHRpbWU7IGZhbHNlID0gYmVmb3JlL2FmdGVyIGEgcGVyaW9kIG9mIHRpbWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9ybWF0KGZvcm1zLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIC8vIEUuZy4gXCIyMSBtaW7Fq3RlXCIsIFwiMyBtaW7Fq3Rlc1wiLlxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciAlIDEwID09PSAxICYmIG51bWJlciAlIDEwMCAhPT0gMTEgPyBmb3Jtc1syXSA6IGZvcm1zWzNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRS5nLiBcIjIxIG1pbsWrdGVzXCIgYXMgaW4gXCJwxJNjIDIxIG1pbsWrdGVzXCIuXG4gICAgICAgICAgICAvLyBFLmcuIFwiMyBtaW7Fq3TEk21cIiBhcyBpbiBcInDEk2MgMyBtaW7Fq3TEk21cIi5cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgJSAxMCA9PT0gMSAmJiBudW1iZXIgJSAxMDAgIT09IDExID8gZm9ybXNbMF0gOiBmb3Jtc1sxXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBmb3JtYXQodW5pdHNba2V5XSwgbnVtYmVyLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHJldHVybiBmb3JtYXQodW5pdHNba2V5XSwgbnVtYmVyLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVTZWNvbmRzKG51bWJlciwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdkYcW+YXMgc2VrdW5kZXMnIDogJ2Rhxb7EgW0gc2VrdW5kxJNtJztcbiAgICB9XG5cbiAgICB2YXIgbHYgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdsdicsIHtcbiAgICAgICAgbW9udGhzOiAnamFudsSBcmlzX2ZlYnJ1xIFyaXNfbWFydHNfYXByxKtsaXNfbWFpanNfasWrbmlqc19qxatsaWpzX2F1Z3VzdHNfc2VwdGVtYnJpc19va3RvYnJpc19ub3ZlbWJyaXNfZGVjZW1icmlzJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYWlfasWrbl9qxatsX2F1Z19zZXBfb2t0X25vdl9kZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ3N2xJN0ZGllbmFfcGlybWRpZW5hX290cmRpZW5hX3RyZcWhZGllbmFfY2V0dXJ0ZGllbmFfcGlla3RkaWVuYV9zZXN0ZGllbmEnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N2X1BfT19UX0NfUGtfUycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdl9QX09fVF9DX1BrX1MnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVkuJyxcbiAgICAgICAgICAgIExMOiAnWVlZWS4gW2dhZGFdIEQuIE1NTU0nLFxuICAgICAgICAgICAgTExMOiAnWVlZWS4gW2dhZGFdIEQuIE1NTU0sIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgZGRkZCwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vFoG9kaWVuIHB1bGtzdGVuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1LEq3QgcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbVmFrYXIgcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW1BhZ8SBanXFocSBXSBkZGRkIFtwdWxrc3Rlbl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdwxJNjICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwaXJtcyAlcycsXG4gICAgICAgICAgICBzOiByZWxhdGl2ZVNlY29uZHMsXG4gICAgICAgICAgICBzczogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG06IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaDogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgaGg6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBkOiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE06IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeTogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbHY7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTW9udGVuZWdyaW4gW21lXVxuLy8hIGF1dGhvciA6IE1pb2RyYWcgTmlrYcSNIDxtaW9kcmFnQHJlc3RhcnRpdC5tZT4gOiBodHRwczovL2dpdGh1Yi5jb20vbWlvZHJhZ25pa2FjXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdHJhbnNsYXRvciA9IHtcbiAgICAgICAgd29yZHM6IHtcbiAgICAgICAgICAgIC8vRGlmZmVyZW50IGdyYW1tYXRpY2FsIGNhc2VzXG4gICAgICAgICAgICBzczogWydzZWt1bmQnLCAnc2VrdW5kYScsICdzZWt1bmRpJ10sXG4gICAgICAgICAgICBtOiBbJ2plZGFuIG1pbnV0JywgJ2plZG5vZyBtaW51dGEnXSxcbiAgICAgICAgICAgIG1tOiBbJ21pbnV0JywgJ21pbnV0YScsICdtaW51dGEnXSxcbiAgICAgICAgICAgIGg6IFsnamVkYW4gc2F0JywgJ2plZG5vZyBzYXRhJ10sXG4gICAgICAgICAgICBoaDogWydzYXQnLCAnc2F0YScsICdzYXRpJ10sXG4gICAgICAgICAgICBkZDogWydkYW4nLCAnZGFuYScsICdkYW5hJ10sXG4gICAgICAgICAgICBNTTogWydtamVzZWMnLCAnbWplc2VjYScsICdtamVzZWNpJ10sXG4gICAgICAgICAgICB5eTogWydnb2RpbmEnLCAnZ29kaW5lJywgJ2dvZGluYSddLFxuICAgICAgICB9LFxuICAgICAgICBjb3JyZWN0R3JhbW1hdGljYWxDYXNlOiBmdW5jdGlvbiAobnVtYmVyLCB3b3JkS2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyID09PSAxXG4gICAgICAgICAgICAgICAgPyB3b3JkS2V5WzBdXG4gICAgICAgICAgICAgICAgOiBudW1iZXIgPj0gMiAmJiBudW1iZXIgPD0gNFxuICAgICAgICAgICAgICAgID8gd29yZEtleVsxXVxuICAgICAgICAgICAgICAgIDogd29yZEtleVsyXTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgICAgIHZhciB3b3JkS2V5ID0gdHJhbnNsYXRvci53b3Jkc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IHdvcmRLZXlbMF0gOiB3b3JkS2V5WzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBudW1iZXIgK1xuICAgICAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdG9yLmNvcnJlY3RHcmFtbWF0aWNhbENhc2UobnVtYmVyLCB3b3JkS2V5KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHZhciBtZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21lJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJ0X2FwcmlsX21hal9qdW5fanVsX2F2Z3VzdF9zZXB0ZW1iYXJfb2t0b2Jhcl9ub3ZlbWJhcl9kZWNlbWJhcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnamFuLl9mZWIuX21hci5fYXByLl9tYWpfanVuX2p1bF9hdmcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkamVsamFfcG9uZWRqZWxqYWtfdXRvcmFrX3NyaWplZGFfxI1ldHZydGFrX3BldGFrX3N1Ym90YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lZC5fcG9uLl91dG8uX3NyaS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3V0X3NyX8SNZV9wZV9zdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZGFuYXMgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tzanV0cmEgdV0gTFQnLFxuXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbbmVkamVsanVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzcmlqZWR1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3Vib3R1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbanXEjWUgdV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFdlZWtEYXlzID0gW1xuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtuZWRqZWxqZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3BvbmVkamVsamthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbdXRvcmthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtzcmlqZWRlXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbxI1ldHZydGthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbcGV0a2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW3N1Ym90ZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBsYXN0V2Vla0RheXNbdGhpcy5kYXkoKV07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJpamUgJXMnLFxuICAgICAgICAgICAgczogJ25la29saWtvIHNla3VuZGknLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICdkYW4nLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogJ21qZXNlYycsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAnZ29kaW51JyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYW9yaSBbbWldXG4vLyEgYXV0aG9yIDogSm9obiBDb3JyaWdhbiA8cm9iYmllY2xvc2V0QGdtYWlsLmNvbT4gOiBodHRwczovL2dpdGh1Yi5jb20vam9obmlkZWFsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbWkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtaScsIHtcbiAgICAgICAgbW9udGhzOiAnS29oaS10xIF0ZV9IdWktdGFuZ3VydV9Qb3V0xastdGUtcmFuZ2lfUGFlbmdhLXdoxIF3aMSBX0hhcmF0dWFfUGlwaXJpX0jFjW5nb2luZ29pX0hlcmUtdHVyaS1rxY1rxIFfTWFodXJ1X1doaXJpbmdhLcSBLW51a3VfV2hpcmluZ2EtxIEtcmFuZ2lfSGFraWhlYScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnS29oaV9IdWlfUG91X1BhZV9IYXJhX1BpcGlfSMWNbmdvaV9IZXJlX01haHVfV2hpLW51X1doaS1yYV9IYWtpJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1JlZ2V4OiAvKD86WydhLXpcXHUwMTAxXFx1MDE0RFxcdTAxNkJdK1xcLT8pezEsM30vaSxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC8oPzpbJ2EtelxcdTAxMDFcXHUwMTREXFx1MDE2Ql0rXFwtPyl7MSwzfS9pLFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiAvKD86WydhLXpcXHUwMTAxXFx1MDE0RFxcdTAxNkJdK1xcLT8pezEsM30vaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogLyg/OlsnYS16XFx1MDEwMVxcdTAxNERcXHUwMTZCXStcXC0/KXsxLDJ9L2ksXG4gICAgICAgIHdlZWtkYXlzOiAnUsSBdGFwdV9NYW5lX1TFq3JlaV9XZW5lcmVpX1TEgWl0ZV9QYXJhaXJlX0jEgXRhcmVpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnVGFfTWFfVMWrX1dlX1TEgWlfUGFfSMSBJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1RhX01hX1TFq19XZV9UxIFpX1BhX0jEgScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBbaV0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtpXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2kgdGVpZSBtYWhhbmEsIGldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbYXBvcG8gaV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtpXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2luYW5haGkgaV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFt3aGFrYW11dHVuZ2EgaV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpIHJvdG8gaSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgaSBtdWEnLFxuICAgICAgICAgICAgczogJ3RlIGjEk2tvbmEgcnVhcnVhJyxcbiAgICAgICAgICAgIHNzOiAnJWQgaMSTa29uYScsXG4gICAgICAgICAgICBtOiAnaGUgbWVuZXRpJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWVuZXRpJyxcbiAgICAgICAgICAgIGg6ICd0ZSBoYW9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhhb3JhJyxcbiAgICAgICAgICAgIGQ6ICdoZSByYScsXG4gICAgICAgICAgICBkZDogJyVkIHJhJyxcbiAgICAgICAgICAgIE06ICdoZSBtYXJhbWEnLFxuICAgICAgICAgICAgTU06ICclZCBtYXJhbWEnLFxuICAgICAgICAgICAgeTogJ2hlIHRhdScsXG4gICAgICAgICAgICB5eTogJyVkIHRhdScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFjZWRvbmlhbiBbbWtdXG4vLyEgYXV0aG9yIDogQm9yaXNsYXYgTWlja292IDogaHR0cHM6Ly9naXRodWIuY29tL0IwazBcbi8vISBhdXRob3IgOiBTYXNoa28gVG9kb3JvdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ia3ljZWhcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21rJywge1xuICAgICAgICBtb250aHM6ICfRmNCw0L3Rg9Cw0YDQuF/RhNC10LLRgNGD0LDRgNC4X9C80LDRgNGCX9Cw0L/RgNC40Ltf0LzQsNGYX9GY0YPQvdC4X9GY0YPQu9C4X9Cw0LLQs9GD0YHRgl/RgdC10L/RgtC10LzQstGA0Lhf0L7QutGC0L7QvNCy0YDQuF/QvdC+0LXQvNCy0YDQuF/QtNC10LrQtdC80LLRgNC4Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GY0LDQvV/RhNC10LJf0LzQsNGAX9Cw0L/RgF/QvNCw0Zhf0ZjRg9C9X9GY0YPQu1/QsNCy0LNf0YHQtdC/X9C+0LrRgl/QvdC+0LVf0LTQtdC6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9C90LXQtNC10LvQsF/Qv9C+0L3QtdC00LXQu9C90LjQul/QstGC0L7RgNC90LjQul/RgdGA0LXQtNCwX9GH0LXRgtCy0YDRgtC+0Lpf0L/QtdGC0L7Qul/RgdCw0LHQvtGC0LAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQvdC10LRf0L/QvtC9X9Cy0YLQvl/RgdGA0LVf0YfQtdGCX9C/0LXRgl/RgdCw0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0L1lX9C/b1/QstGCX9GB0YBf0YfQtV/Qv9C1X9GBYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0JTQtdC90LXRgSDQstC+XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Cj0YLRgNC1INCy0L5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW9CS0L5dIGRkZGQgW9Cy0L5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JLRh9C10YDQsCDQstC+XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JjQt9C80LjQvdCw0YLQsNGC0LBdIGRkZGQgW9Cy0L5dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JjQt9C80LjQvdCw0YLQuNC+0YJdIGRkZGQgW9Cy0L5dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQt9CwICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfQv9GA0LXQtCAlcycsXG4gICAgICAgICAgICBzOiAn0L3QtdC60L7Qu9C60YMg0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgc3M6ICclZCDRgdC10LrRg9C90LTQuCcsXG4gICAgICAgICAgICBtOiAn0LXQtNC90LAg0LzQuNC90YPRgtCwJyxcbiAgICAgICAgICAgIG1tOiAnJWQg0LzQuNC90YPRgtC4JyxcbiAgICAgICAgICAgIGg6ICfQtdC00LXQvSDRh9Cw0YEnLFxuICAgICAgICAgICAgaGg6ICclZCDRh9Cw0YHQsCcsXG4gICAgICAgICAgICBkOiAn0LXQtNC10L0g0LTQtdC9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LTQtdC90LAnLFxuICAgICAgICAgICAgTTogJ9C10LTQtdC9INC80LXRgdC10YYnLFxuICAgICAgICAgICAgTU06ICclZCDQvNC10YHQtdGG0LgnLFxuICAgICAgICAgICAgeTogJ9C10LTQvdCwINCz0L7QtNC40L3QsCcsXG4gICAgICAgICAgICB5eTogJyVkINCz0L7QtNC40L3QuCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0LXQsnzQtdC9fNGC0Lh80LLQuHzRgNC4fNC80LgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGxhc3REaWdpdCA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGxhc3QyRGlnaXRzID0gbnVtYmVyICUgMTAwO1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10LInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10L0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA+IDEwICYmIGxhc3QyRGlnaXRzIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgtC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LLQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGA0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDcgfHwgbGFzdERpZ2l0ID09PSA4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LzQuCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGC0LgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWs7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFsYXlhbGFtIFttbF1cbi8vISBhdXRob3IgOiBGbG95ZCBQaW5rIDogaHR0cHM6Ly9naXRodWIuY29tL2Zsb3lkcGlua1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1sID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbWwnLCB7XG4gICAgICAgIG1vbnRoczogJ+C0nOC0qOC1geC0teC0sOC0v1/gtKvgtYbgtKzgtY3gtLDgtYHgtLXgtLDgtL9f4LSu4LS+4LW84LSa4LWN4LSa4LWNX+C0j+C0quC1jeC0sOC0v+C1vV/gtK7gtYfgtK/gtY1f4LSc4LWC4LW6X+C0nOC1guC0suC1iF/gtJPgtJfgtLjgtY3gtLHgtY3gtLHgtY1f4LS44LWG4LSq4LWN4LSx4LWN4LSx4LSC4LSs4LW8X+C0kuC0leC1jeC0n+C1i+C0rOC1vF/gtKjgtLXgtILgtKzgtbxf4LSh4LS/4LS44LSC4LSs4LW8Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfgtJzgtKjgtYEuX+C0q+C1huC0rOC1jeC0sOC1gS5f4LSu4LS+4LW8Ll/gtI/gtKrgtY3gtLDgtL8uX+C0ruC1h+C0r+C1jV/gtJzgtYLgtbpf4LSc4LWC4LSy4LWILl/gtJPgtJcuX+C0uOC1huC0quC1jeC0seC1jeC0sS5f4LSS4LSV4LWN4LSf4LWLLl/gtKjgtLXgtIIuX+C0oeC0v+C0uOC0gi4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAn4LSe4LS+4LSv4LSx4LS+4LS04LWN4LSaX+C0pOC0v+C0meC1jeC0leC0s+C0vuC0tOC1jeC0ml/gtJrgtYrgtLXgtY3gtLXgtL7gtLTgtY3gtJpf4LSs4LWB4LSn4LSo4LS+4LS04LWN4LSaX+C0teC1jeC0r+C0vuC0tOC0vuC0tOC1jeC0ml/gtLXgtYbgtLPgtY3gtLPgtL/gtK/gtL7gtLTgtY3gtJpf4LS24LSo4LS/4LSv4LS+4LS04LWN4LSaJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgtJ7gtL7gtK/gtbxf4LSk4LS/4LSZ4LWN4LSV4LW+X+C0muC1iuC0teC1jeC0tV/gtKzgtYHgtKfgtbtf4LS14LWN4LSv4LS+4LS04LSCX+C0teC1huC0s+C1jeC0s+C0v1/gtLbgtKjgtL8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4LSe4LS+X+C0pOC0v1/gtJrgtYpf4LSs4LWBX+C0teC1jeC0r+C0vl/gtLXgtYZf4LS2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0gLeC0qOC1gScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MgLeC0qOC1gScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0gLeC0qOC1gScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSAt4LSo4LWBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4LSH4LSo4LWN4LSo4LWNXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+C0qOC0vuC0s+C1hl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C0h+C0qOC1jeC0qOC0suC1hl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4LSV4LS04LS/4LSe4LWN4LSeXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOC0leC0tOC0v+C0nuC1jeC0nuC1jScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4LSu4LWB4LW74LSq4LWNJyxcbiAgICAgICAgICAgIHM6ICfgtIXgtb3gtKog4LSo4LS/4LSu4LS/4LS34LSZ4LWN4LSZ4LW+JyxcbiAgICAgICAgICAgIHNzOiAnJWQg4LS44LWG4LSV4LWN4LSV4LW74LSh4LWNJyxcbiAgICAgICAgICAgIG06ICfgtJLgtLDgtYEg4LSu4LS/4LSo4LS/4LSx4LWN4LSx4LWNJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LSu4LS/4LSo4LS/4LSx4LWN4LSx4LWNJyxcbiAgICAgICAgICAgIGg6ICfgtJLgtLDgtYEg4LSu4LSj4LS/4LSV4LWN4LSV4LWC4LW8JyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LSu4LSj4LS/4LSV4LWN4LSV4LWC4LW8JyxcbiAgICAgICAgICAgIGQ6ICfgtJLgtLDgtYEg4LSm4LS/4LS14LS44LSCJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4LSm4LS/4LS14LS44LSCJyxcbiAgICAgICAgICAgIE06ICfgtJLgtLDgtYEg4LSu4LS+4LS44LSCJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4LSu4LS+4LS44LSCJyxcbiAgICAgICAgICAgIHk6ICfgtJLgtLDgtYEg4LS14LW84LS34LSCJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4LS14LW84LS34LSCJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C0sOC0vuC0pOC1jeC0sOC0v3zgtLDgtL7gtLXgtL/gtLLgtYZ84LSJ4LSa4LWN4LSaIOC0leC0tOC0v+C0nuC1jeC0nuC1jXzgtLXgtYjgtJXgtYHgtKjgtY3gtKjgtYfgtLDgtIJ84LSw4LS+4LSk4LWN4LSw4LS/L2ksXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAobWVyaWRpZW0gPT09ICfgtLDgtL7gtKTgtY3gtLDgtL8nICYmIGhvdXIgPj0gNCkgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+C0ieC0muC1jeC0miDgtJXgtLTgtL/gtJ7gtY3gtJ7gtY0nIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgtLXgtYjgtJXgtYHgtKjgtY3gtKjgtYfgtLDgtIInXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LSw4LS+4LSk4LWN4LSw4LS/JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgtLDgtL7gtLXgtL/gtLLgtYYnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0ieC0muC1jeC0miDgtJXgtLTgtL/gtJ7gtY3gtJ7gtY0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0teC1iOC0leC1geC0qOC1jeC0qOC1h+C0sOC0gic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LSw4LS+4LSk4LWN4LSw4LS/JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNb25nb2xpYW4gW21uXVxuLy8hIGF1dGhvciA6IEphdmtobGFudHVncyBOeWFtZG9yaiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXZraGFhbmo3XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfRhdGN0LTRhdGN0L0g0YHQtdC60YPQvdC0JyA6ICfRhdGN0LTRhdGN0L0g0YHQtdC60YPQvdC00YvQvSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDRgdC10LrRg9C90LQnIDogJyDRgdC10LrRg9C90LTRi9C9Jyk7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINC80LjQvdGD0YInIDogJyDQvNC40L3Rg9GC0YvQvScpO1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDRhtCw0LMnIDogJyDRhtCw0LPQuNC50L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg06nQtNOp0YAnIDogJyDTqdC00YDQuNC50L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0YHQsNGAJyA6ICcg0YHQsNGA0YvQvScpO1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDQttC40LsnIDogJyDQttC40LvQuNC50L0nKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBtbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21uJywge1xuICAgICAgICBtb250aHM6ICfQndGN0LPQtNKv0LPRjdGN0YAg0YHQsNGAX9Cl0L7RkdGA0LTRg9Cz0LDQsNGAINGB0LDRgF/Qk9GD0YDQsNCy0LTRg9Cz0LDQsNGAINGB0LDRgF/QlNOp0YDTqdCy0LTSr9Cz0Y3RjdGAINGB0LDRgF/QotCw0LLQtNGD0LPQsNCw0YAg0YHQsNGAX9CX0YPRgNCz0LDQtNGD0LPQsNCw0YAg0YHQsNGAX9CU0L7Qu9C00YPQs9Cw0LDRgCDRgdCw0YBf0J3QsNC50LzQtNGD0LPQsNCw0YAg0YHQsNGAX9CV0YHQtNKv0LPRjdGN0YAg0YHQsNGAX9CQ0YDQsNCy0LTRg9Cz0LDQsNGAINGB0LDRgF/QkNGA0LLQsNC9INC90Y3Qs9C00q/Qs9GN0Y3RgCDRgdCw0YBf0JDRgNCy0LDQvSDRhdC+0ZHRgNC00YPQs9Cw0LDRgCDRgdCw0YAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJzEg0YHQsNGAXzIg0YHQsNGAXzMg0YHQsNGAXzQg0YHQsNGAXzUg0YHQsNGAXzYg0YHQsNGAXzcg0YHQsNGAXzgg0YHQsNGAXzkg0YHQsNGAXzEwINGB0LDRgF8xMSDRgdCw0YBfMTIg0YHQsNGAJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn0J3Rj9C8X9CU0LDQstCw0LBf0JzRj9Cz0LzQsNGAX9Cb0YXQsNCz0LLQsF/Qn9Kv0YDRjdCyX9CR0LDQsNGB0LDQvV/QkdGP0LzQsdCwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0J3Rj9C8X9CU0LDQsl/QnNGP0LNf0JvRhdCwX9Cf0q/RgF/QkdCw0LBf0JHRj9C8Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9Cd0Y9f0JTQsF/QnNGPX9Cb0YVf0J/Sr1/QkdCwX9CR0Y8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZINC+0L3RiyBNTU1N0YvQvSBEJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkg0L7QvdGLIE1NTU3Ri9C9IEQgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIFlZWVkg0L7QvdGLIE1NTU3Ri9C9IEQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0q7TqHzSrtClL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn0q7QpSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfSrtOoJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfSrtClJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb06jQvdOp06nQtNOp0YBdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0JzQsNGA0LPQsNCw0YhdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW9CY0YDRjdGFXSBkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb06jRh9C40LPQtNOp0YBdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9Oo0L3Qs9Op0YDRgdOp0L1dIGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDQtNCw0YDQsNCwJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDTqdC80L3TqScsXG4gICAgICAgICAgICBzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSDTqdC006nRgC8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDTqdC006nRgCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYXJhdGhpIFttcl1cbi8vISBhdXRob3IgOiBIYXJzaGFkIEthbGUgOiBodHRwczovL2dpdGh1Yi5jb20va2FsZWh2XG4vLyEgYXV0aG9yIDogVml2ZWsgQXRoYWx5ZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS92bmF0aGFseWVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAxOiAn4KWnJyxcbiAgICAgICAgICAgIDI6ICfgpagnLFxuICAgICAgICAgICAgMzogJ+ClqScsXG4gICAgICAgICAgICA0OiAn4KWqJyxcbiAgICAgICAgICAgIDU6ICfgpasnLFxuICAgICAgICAgICAgNjogJ+ClrCcsXG4gICAgICAgICAgICA3OiAn4KWtJyxcbiAgICAgICAgICAgIDg6ICfgpa4nLFxuICAgICAgICAgICAgOTogJ+ClrycsXG4gICAgICAgICAgICAwOiAn4KWmJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Clpyc6ICcxJyxcbiAgICAgICAgICAgICfgpagnOiAnMicsXG4gICAgICAgICAgICAn4KWpJzogJzMnLFxuICAgICAgICAgICAgJ+Clqic6ICc0JyxcbiAgICAgICAgICAgICfgpasnOiAnNScsXG4gICAgICAgICAgICAn4KWsJzogJzYnLFxuICAgICAgICAgICAgJ+ClrSc6ICc3JyxcbiAgICAgICAgICAgICfgpa4nOiAnOCcsXG4gICAgICAgICAgICAn4KWvJzogJzknLFxuICAgICAgICAgICAgJ+Clpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZU1yKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgb3V0cHV0ID0gJyc7XG4gICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHN0cmluZykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSV4KS+4KS54KWAIOCkuOClh+CkleCkguCkpic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkuOClh+CkleCkguCkpic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkruCkv+CkqOCkv+Cknyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkruCkv+CkqOCkv+Ckn+Clhyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkpOCkvuCkuCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkpOCkvuCkuCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkpuCkv+CkteCkuCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkpuCkv+CkteCkuCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkruCkueCkv+CkqOCkvic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkruCkueCkv+CkqOClhyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkteCksOCljeCktyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkteCksOCljeCkt+Clhyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoIChzdHJpbmcpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+CkleCkvuCkueClgCDgpLjgpYfgpJXgpILgpKbgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpLjgpYfgpJXgpILgpKbgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpK7gpL/gpKjgpL/gpJ/gpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpK7gpL/gpKjgpL/gpJ/gpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpKTgpL7gpLjgpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpKTgpL7gpLjgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpKbgpL/gpLXgpLjgpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpKbgpL/gpLXgpLjgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpK7gpLngpL/gpKjgpY3gpK/gpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpK7gpLngpL/gpKjgpY3gpK/gpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpLXgpLDgpY3gpLfgpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpLXgpLDgpY3gpLfgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0LnJlcGxhY2UoLyVkL2ksIG51bWJlcik7XG4gICAgfVxuXG4gICAgdmFyIG1yID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbXInLCB7XG4gICAgICAgIG1vbnRoczogJ+CknOCkvuCkqOClh+CkteCkvuCksOClgF/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpL7gpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+Ckj+CkquCljeCksOCkv+Cksl/gpK7gpYdf4KSc4KWC4KSoX+CknOClgeCksuCliF/gpJHgpJfgpLjgpY3gpJ9f4KS44KSq4KWN4KSf4KWH4KSC4KSs4KSwX+CkkeCkleCljeCkn+Cli+CkrOCksF/gpKjgpYvgpLXgpY3gpLngpYfgpILgpKzgpLBf4KSh4KS/4KS44KWH4KSC4KSs4KSwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfgpJzgpL7gpKjgpYcuX+Ckq+Clh+CkrOCljeCksOClgS5f4KSu4KS+4KSw4KWN4KSaLl/gpI/gpKrgpY3gpLDgpL8uX+CkruClhy5f4KSc4KWC4KSoLl/gpJzgpYHgpLLgpYguX+CkkeCkly5f4KS44KSq4KWN4KSf4KWH4KSCLl/gpJHgpJXgpY3gpJ/gpYsuX+CkqOCli+CkteCljeCkueClh+Ckgi5f4KSh4KS/4KS44KWH4KSCLicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CksOCkteCkv+CkteCkvuCksF/gpLjgpYvgpK7gpLXgpL7gpLBf4KSu4KSC4KSX4KSz4KS14KS+4KSwX+CkrOClgeCkp+CkteCkvuCksF/gpJfgpYHgpLDgpYLgpLXgpL7gpLBf4KS24KWB4KSV4KWN4KSw4KS14KS+4KSwX+CktuCkqOCkv+CkteCkvuCksCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CksOCkteCkv1/gpLjgpYvgpK5f4KSu4KSC4KSX4KSzX+CkrOClgeCkp1/gpJfgpYHgpLDgpYJf4KS24KWB4KSV4KWN4KSwX+CktuCkqOCkvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgpLBf4KS44KWLX+CkruCkgl/gpKzgpYFf4KSX4KWBX+CktuClgV/gpLYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgpLXgpL7gpJzgpKTgpL4nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCkteCkvuCknOCkpOCkvicsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4KS14KS+4KSc4KSk4KS+JyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCkteCkvuCknOCkpOCkvicsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpIngpKbgpY3gpK/gpL5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgpJXgpL7gpLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CkruCkvuCkl+ClgOCksl0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+CkruCkp+CljeCkr+ClhycsXG4gICAgICAgICAgICBwYXN0OiAnJXPgpKrgpYLgpLDgpY3gpLXgpYAnLFxuICAgICAgICAgICAgczogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBzczogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBtOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIGg6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgaGg6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgZDogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBNOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIHk6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4KWn4KWo4KWp4KWq4KWr4KWs4KWt4KWu4KWv4KWmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4KSq4KS54KS+4KSf4KWHfOCkuOCkleCkvuCks+ClgHzgpKbgpYHgpKrgpL7gpLDgpYB84KS44KS+4KSv4KSC4KSV4KS+4KSz4KWAfOCksOCkvuCkpOCljeCksOClgC8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CkquCkueCkvuCkn+ClhycgfHwgbWVyaWRpZW0gPT09ICfgpLjgpJXgpL7gpLPgpYAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4KSm4KWB4KSq4KS+4KSw4KWAJyB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4KS44KS+4KSv4KSC4KSV4KS+4KSz4KWAJyB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4KSw4KS+4KSk4KWN4KSw4KWAJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTIgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPj0gMCAmJiBob3VyIDwgNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSq4KS54KS+4KSf4KWHJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpJXgpL7gpLPgpYAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkpuClgeCkquCkvuCksOClgCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KS+4KSv4KSC4KSV4KS+4KSz4KWAJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpY3gpLDgpYAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFsYXkgW21zLW15XVxuLy8hIG5vdGUgOiBERVBSRUNBVEVELCB0aGUgY29ycmVjdCBvbmUgaXMgW21zXVxuLy8hIGF1dGhvciA6IFdlbGRhbiBKYW1pbGkgOiBodHRwczovL2dpdGh1Yi5jb20vd2VsZGFuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbXNNeSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21zLW15Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hY19BcHJpbF9NZWlfSnVuX0p1bGFpX09nb3NfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGlzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX09nc19TZXBfT2t0X05vdl9EaXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9LaGFtaXNfSnVtYWF0X1NhYnR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnQWhkX0lzbl9TZWxfUmFiX0toYV9KdW1fU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0FoX0lzX1NsX1JiX0ttX0ptX1NiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvcGFnaXx0ZW5nYWhhcml8cGV0YW5nfG1hbGFtLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAncGFnaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICd0ZW5nYWhhcmknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3BldGFuZycgfHwgbWVyaWRpZW0gPT09ICdtYWxhbScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGFnaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RlbmdhaGFyaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BldGFuZyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbWFsYW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIYXJpIGluaSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tFc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3B1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0tlbG1hcmluIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2xlcGFzIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbGFtICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB5YW5nIGxlcGFzJyxcbiAgICAgICAgICAgIHM6ICdiZWJlcmFwYSBzYWF0JyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2FhdCcsXG4gICAgICAgICAgICBtOiAnc2VtaW5pdCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbml0JyxcbiAgICAgICAgICAgIGg6ICdzZWphbScsXG4gICAgICAgICAgICBoaDogJyVkIGphbScsXG4gICAgICAgICAgICBkOiAnc2VoYXJpJyxcbiAgICAgICAgICAgIGRkOiAnJWQgaGFyaScsXG4gICAgICAgICAgICBNOiAnc2VidWxhbicsXG4gICAgICAgICAgICBNTTogJyVkIGJ1bGFuJyxcbiAgICAgICAgICAgIHk6ICdzZXRhaHVuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGFodW4nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXNNeTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYWxheSBbbXNdXG4vLyEgYXV0aG9yIDogV2VsZGFuIEphbWlsaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWxkYW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21zJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hY19BcHJpbF9NZWlfSnVuX0p1bGFpX09nb3NfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGlzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX09nc19TZXBfT2t0X05vdl9EaXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9LaGFtaXNfSnVtYWF0X1NhYnR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnQWhkX0lzbl9TZWxfUmFiX0toYV9KdW1fU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0FoX0lzX1NsX1JiX0ttX0ptX1NiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvcGFnaXx0ZW5nYWhhcml8cGV0YW5nfG1hbGFtLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAncGFnaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICd0ZW5nYWhhcmknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3BldGFuZycgfHwgbWVyaWRpZW0gPT09ICdtYWxhbScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGFnaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RlbmdhaGFyaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BldGFuZyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbWFsYW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIYXJpIGluaSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tFc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3B1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0tlbG1hcmluIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2xlcGFzIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbGFtICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB5YW5nIGxlcGFzJyxcbiAgICAgICAgICAgIHM6ICdiZWJlcmFwYSBzYWF0JyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2FhdCcsXG4gICAgICAgICAgICBtOiAnc2VtaW5pdCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbml0JyxcbiAgICAgICAgICAgIGg6ICdzZWphbScsXG4gICAgICAgICAgICBoaDogJyVkIGphbScsXG4gICAgICAgICAgICBkOiAnc2VoYXJpJyxcbiAgICAgICAgICAgIGRkOiAnJWQgaGFyaScsXG4gICAgICAgICAgICBNOiAnc2VidWxhbicsXG4gICAgICAgICAgICBNTTogJyVkIGJ1bGFuJyxcbiAgICAgICAgICAgIHk6ICdzZXRhaHVuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGFodW4nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFsdGVzZSAoTWFsdGEpIFttdF1cbi8vISBhdXRob3IgOiBBbGVzc2FuZHJvIE1hcnVjY2lhIDogaHR0cHM6Ly9naXRodWIuY29tL2FsZXNtYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG10ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbXQnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbm5hcl9GcmFyX01hcnp1X0FwcmlsX01lamp1X8SgdW5qdV9MdWxqdV9Bd3dpc3N1X1NldHRlbWJydV9PdHR1YnJ1X05vdmVtYnJ1X0RpxItlbWJydScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRnJhX01hcl9BcHJfTWVqX8SgdW5fTHVsX0F3d19TZXRfT3R0X05vdl9EacSLJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICdJbC3EpmFkZF9JdC1UbmVqbl9JdC1UbGlldGFfTC1FcmJnxKdhX0lsLcSmYW1pc19JbC3EoGltZ8SnYV9Jcy1TaWJ0Jy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfEpmFkX1RuZV9UbGlfRXJiX8SmYW1fxKBpbV9TaWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnxKZhX1RuX1RsX0VyX8SmYV/EoGlfU2knLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSWxsdW0gZmlsLV1MVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0fEp2FkYSBmaWwtXUxUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbZmlsLV1MVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0lsLWJpZXJhxKcgZmlsLV1MVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2xpIGfEp2FkZGFdIFtmaWwtXUxUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZuKAmSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgaWx1JyxcbiAgICAgICAgICAgIHM6ICdmdGl0IHNla29uZGknLFxuICAgICAgICAgICAgc3M6ICclZCBzZWtvbmRpJyxcbiAgICAgICAgICAgIG06ICdtaW51dGEnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGknLFxuICAgICAgICAgICAgaDogJ3NpZWfEp2EnLFxuICAgICAgICAgICAgaGg6ICclZCBzaWVnxKdhdCcsXG4gICAgICAgICAgICBkOiAnxKF1cm5hdGEnLFxuICAgICAgICAgICAgZGQ6ICclZCDEoXJhbmV0JyxcbiAgICAgICAgICAgIE06ICd4YWhhcicsXG4gICAgICAgICAgICBNTTogJyVkIHhodXInLFxuICAgICAgICAgICAgeTogJ3NlbmEnLFxuICAgICAgICAgICAgeXk6ICclZCBzbmknLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG10O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJ1cm1lc2UgW215XVxuLy8hIGF1dGhvciA6IFNxdWFyIHRlYW0sIG15c3F1YXIuY29tXG4vLyEgYXV0aG9yIDogRGF2aWQgUm9zc2VsbGF0IDogaHR0cHM6Ly9naXRodWIuY29tL2dob2xhZHJcbi8vISBhdXRob3IgOiBUaW4gQXVuZyBMaW4gOiBodHRwczovL2dpdGh1Yi5jb20vdGhhbnlhd3ppbm1pblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgIDE6ICfhgYEnLFxuICAgICAgICAgICAgMjogJ+GBgicsXG4gICAgICAgICAgICAzOiAn4YGDJyxcbiAgICAgICAgICAgIDQ6ICfhgYQnLFxuICAgICAgICAgICAgNTogJ+GBhScsXG4gICAgICAgICAgICA2OiAn4YGGJyxcbiAgICAgICAgICAgIDc6ICfhgYcnLFxuICAgICAgICAgICAgODogJ+GBiCcsXG4gICAgICAgICAgICA5OiAn4YGJJyxcbiAgICAgICAgICAgIDA6ICfhgYAnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4YGBJzogJzEnLFxuICAgICAgICAgICAgJ+GBgic6ICcyJyxcbiAgICAgICAgICAgICfhgYMnOiAnMycsXG4gICAgICAgICAgICAn4YGEJzogJzQnLFxuICAgICAgICAgICAgJ+GBhSc6ICc1JyxcbiAgICAgICAgICAgICfhgYYnOiAnNicsXG4gICAgICAgICAgICAn4YGHJzogJzcnLFxuICAgICAgICAgICAgJ+GBiCc6ICc4JyxcbiAgICAgICAgICAgICfhgYknOiAnOScsXG4gICAgICAgICAgICAn4YGAJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIG15ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbXknLCB7XG4gICAgICAgIG1vbnRoczogJ+GAh+GAlOGAuuGAlOGAneGAq+GAm+GArl/hgJbhgLHhgJbhgLHhgKzhgLrhgJ3hgKvhgJvhgK5f4YCZ4YCQ4YC6X+GAp+GAleGAvOGArl/hgJnhgLFf4YCH4YC94YCU4YC6X+GAh+GAsOGAnOGAreGAr+GAhOGAul/hgJ7hgLzhgILhgK/hgJDhgLpf4YCF4YCA4YC64YCQ4YCE4YC64YCY4YCsX+GAoeGAseGArOGAgOGAuuGAkOGAreGAr+GAmOGArF/hgJThgK3hgK/hgJ3hgIThgLrhgJjhgKxf4YCS4YCu4YCH4YCE4YC64YCY4YCsJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+GAh+GAlOGAul/hgJbhgLFf4YCZ4YCQ4YC6X+GAleGAvOGArl/hgJnhgLFf4YCH4YC94YCU4YC6X+GAnOGAreGAr+GAhOGAul/hgJ7hgLxf4YCF4YCA4YC6X+GAoeGAseGArOGAgOGAul/hgJThgK3hgK9f4YCS4YCuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ+GAkOGAlOGAhOGAuuGAueGAguGAlOGAveGAsV/hgJDhgJThgIThgLrhgLnhgJzhgKxf4YCh4YCE4YC64YC54YCC4YCrX+GAl+GAr+GAkuGAueGAk+GAn+GAsOGAuF/hgIDhgLzhgKzhgJ7hgJXhgJDhgLHhgLhf4YCe4YCx4YCs4YCA4YC84YCsX+GAheGAlOGAsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+GAlOGAveGAsV/hgJzhgKxf4YCC4YCrX+GAn+GAsOGAuF/hgIDhgLzhgKxf4YCe4YCx4YCsX+GAlOGAsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfhgJThgL3hgLFf4YCc4YCsX+GAguGAq1/hgJ/hgLDhgLhf4YCA4YC84YCsX+GAnuGAseGArF/hgJThgLEnLnNwbGl0KCdfJyksXG5cbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+GAmuGAlOGAsS5dIExUIFvhgJnhgL7hgKxdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4YCZ4YCU4YCA4YC64YCW4YC84YCU4YC6XSBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1vhgJnhgJThgLEu4YCAXSBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vhgJXhgLzhgK7hgLjhgIHhgLLhgLfhgJ7hgLHhgKxdIGRkZGQgTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfhgJzhgKzhgJnhgIrhgLrhgLcgJXMg4YCZ4YC+4YCsJyxcbiAgICAgICAgICAgIHBhc3Q6ICfhgJzhgL3hgJThgLrhgIHhgLLhgLfhgJ7hgLHhgKwgJXMg4YCAJyxcbiAgICAgICAgICAgIHM6ICfhgIXhgIDhgLnhgIDhgJThgLou4YCh4YCU4YCK4YC64YC44YCE4YCa4YC6JyxcbiAgICAgICAgICAgIHNzOiAnJWQg4YCF4YCA4YC54YCA4YCU4YC34YC6JyxcbiAgICAgICAgICAgIG06ICfhgJDhgIXhgLrhgJnhgK3hgJThgIXhgLonLFxuICAgICAgICAgICAgbW06ICclZCDhgJnhgK3hgJThgIXhgLonLFxuICAgICAgICAgICAgaDogJ+GAkOGAheGAuuGAlOGArOGAm+GAricsXG4gICAgICAgICAgICBoaDogJyVkIOGAlOGArOGAm+GAricsXG4gICAgICAgICAgICBkOiAn4YCQ4YCF4YC64YCb4YCA4YC6JyxcbiAgICAgICAgICAgIGRkOiAnJWQg4YCb4YCA4YC6JyxcbiAgICAgICAgICAgIE06ICfhgJDhgIXhgLrhgJwnLFxuICAgICAgICAgICAgTU06ICclZCDhgJwnLFxuICAgICAgICAgICAgeTogJ+GAkOGAheGAuuGAlOGAvuGAheGAuicsXG4gICAgICAgICAgICB5eTogJyVkIOGAlOGAvuGAheGAuicsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vhgYHhgYLhgYPhgYThgYXhgYbhgYfhgYjhgYnhgYBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBteTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBOb3J3ZWdpYW4gQm9rbcOlbCBbbmJdXG4vLyEgYXV0aG9ycyA6IEVzcGVuIEhvdmxhbmRzZGFsIDogaHR0cHM6Ly9naXRodWIuY29tL3JleHhhcnNcbi8vISAgICAgICAgICAgU2lndXJkIEdhcnRtYW5uIDogaHR0cHM6Ly9naXRodWIuY29tL3NpZ3VyZGdhXG4vLyEgICAgICAgICAgIFN0ZXBoZW4gUmFtdGh1biA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGVucmFtdGh1blxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG5iID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbmInLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnNfYXByaWxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ2phbi5fZmViLl9tYXJzX2Fwci5fbWFpX2p1bmlfanVsaV9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rlcy4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnc8O4bmRhZ19tYW5kYWdfdGlyc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbMO4cmRhZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3PDuC5fbWEuX3RpLl9vbi5fdG8uX2ZyLl9sw7guJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3PDuF9tYV90aV9vbl90b19mcl9sw7gnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQuIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2kgZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tpIG1vcmdlbiBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2kgZ8OlciBrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2ZvcnJpZ2VdIGRkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc2lkZW4nLFxuICAgICAgICAgICAgczogJ25vZW4gc2VrdW5kZXInLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmRlcicsXG4gICAgICAgICAgICBtOiAnZXR0IG1pbnV0dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0dGVyJyxcbiAgICAgICAgICAgIGg6ICdlbiB0aW1lJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdGltZXInLFxuICAgICAgICAgICAgZDogJ2VuIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2VyJyxcbiAgICAgICAgICAgIHc6ICdlbiB1a2UnLFxuICAgICAgICAgICAgd3c6ICclZCB1a2VyJyxcbiAgICAgICAgICAgIE06ICdlbiBtw6VuZWQnLFxuICAgICAgICAgICAgTU06ICclZCBtw6VuZWRlcicsXG4gICAgICAgICAgICB5OiAnZXR0IMOlcicsXG4gICAgICAgICAgICB5eTogJyVkIMOlcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTmVwYWxlc2UgW25lXVxuLy8hIGF1dGhvciA6IHN1dmFzaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdXZhc2hcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAxOiAn4KWnJyxcbiAgICAgICAgICAgIDI6ICfgpagnLFxuICAgICAgICAgICAgMzogJ+ClqScsXG4gICAgICAgICAgICA0OiAn4KWqJyxcbiAgICAgICAgICAgIDU6ICfgpasnLFxuICAgICAgICAgICAgNjogJ+ClrCcsXG4gICAgICAgICAgICA3OiAn4KWtJyxcbiAgICAgICAgICAgIDg6ICfgpa4nLFxuICAgICAgICAgICAgOTogJ+ClrycsXG4gICAgICAgICAgICAwOiAn4KWmJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Clpyc6ICcxJyxcbiAgICAgICAgICAgICfgpagnOiAnMicsXG4gICAgICAgICAgICAn4KWpJzogJzMnLFxuICAgICAgICAgICAgJ+Clqic6ICc0JyxcbiAgICAgICAgICAgICfgpasnOiAnNScsXG4gICAgICAgICAgICAn4KWsJzogJzYnLFxuICAgICAgICAgICAgJ+ClrSc6ICc3JyxcbiAgICAgICAgICAgICfgpa4nOiAnOCcsXG4gICAgICAgICAgICAn4KWvJzogJzknLFxuICAgICAgICAgICAgJ+Clpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBuZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ25lJywge1xuICAgICAgICBtb250aHM6ICfgpJzgpKjgpLXgpLDgpYBf4KSr4KWH4KSs4KWN4KSw4KWB4KS14KSw4KWAX+CkruCkvuCksOCljeCkml/gpIXgpKrgpY3gpLDgpL/gpLJf4KSu4KSIX+CknOClgeCkqF/gpJzgpYHgpLLgpL7gpIhf4KSF4KSX4KS34KWN4KSfX+CkuOClh+CkquCljeCkn+Clh+CkruCljeCkrOCksF/gpIXgpJXgpY3gpJ/gpYvgpKzgpLBf4KSo4KWL4KSt4KWH4KSu4KWN4KSs4KSwX+CkoeCkv+CkuOClh+CkruCljeCkrOCksCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAn4KSc4KSoLl/gpKvgpYfgpKzgpY3gpLDgpYEuX+CkruCkvuCksOCljeCkml/gpIXgpKrgpY3gpLDgpL8uX+CkruCkiF/gpJzgpYHgpKhf4KSc4KWB4KSy4KS+4KSILl/gpIXgpJcuX+CkuOClh+CkquCljeCkny5f4KSF4KSV4KWN4KSf4KWLLl/gpKjgpYvgpK3gpYcuX+CkoeCkv+CkuOClhy4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgpIbgpIfgpKTgpKzgpL7gpLBf4KS44KWL4KSu4KSs4KS+4KSwX+CkruCkmeCljeCkl+CksuCkrOCkvuCksF/gpKzgpYHgpKfgpKzgpL7gpLBf4KSs4KS/4KS54KS/4KSs4KS+4KSwX+CktuClgeCkleCljeCksOCkrOCkvuCksF/gpLbgpKjgpL/gpKzgpL7gpLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgpIbgpIfgpKQuX+CkuOCli+Ckri5f4KSu4KSZ4KWN4KSX4KSyLl/gpKzgpYHgpKcuX+CkrOCkv+CkueCkvy5f4KS24KWB4KSV4KWN4KSwLl/gpLbgpKjgpL8uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+Ckhi5f4KS44KWLLl/gpK7gpIIuX+CkrOClgS5f4KSs4KS/Ll/gpLbgpYEuX+Ckti4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQeCkleCliyBoOm1tIOCkrOCknOClhycsXG4gICAgICAgICAgICBMVFM6ICdB4KSV4KWLIGg6bW06c3Mg4KSs4KSc4KWHJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEHgpJXgpYsgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBB4KSV4KWLIGg6bW0g4KSs4KSc4KWHJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Clp+ClqOClqeClquClq+ClrOClreClruClr+Clpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CksOCkvuCkpOCkv3zgpKzgpL/gpLngpL7gpKh84KSm4KS/4KSJ4KSB4KS44KWLfOCkuOCkvuCkgeCknS8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CksOCkvuCkpOCkvycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkrOCkv+CkueCkvuCkqCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpKbgpL/gpIngpIHgpLjgpYsnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOCkvuCkgeCknScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpL8nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkrOCkv+CkueCkvuCkqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSm4KS/4KSJ4KSB4KS44KWLJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpL7gpIHgpJ0nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpOCkvyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpK3gpYvgpLLgpL9dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+CkhuCkieCkgeCkpuCli10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CkueCkv+CknOCli10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4KSX4KSP4KSV4KWLXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPgpK7gpL4nLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCkheCkl+CkvuCkoeCkvycsXG4gICAgICAgICAgICBzOiAn4KSV4KWH4KS54KWAIOCkleCljeCkt+CkoycsXG4gICAgICAgICAgICBzczogJyVkIOCkuOClh+CkleClh+Cko+CljeCkoScsXG4gICAgICAgICAgICBtOiAn4KSP4KSVIOCkruCkv+CkqOClh+CknycsXG4gICAgICAgICAgICBtbTogJyVkIOCkruCkv+CkqOClh+CknycsXG4gICAgICAgICAgICBoOiAn4KSP4KSVIOCkmOCko+CljeCkn+CkvicsXG4gICAgICAgICAgICBoaDogJyVkIOCkmOCko+CljeCkn+CkvicsXG4gICAgICAgICAgICBkOiAn4KSP4KSVIOCkpuCkv+CkqCcsXG4gICAgICAgICAgICBkZDogJyVkIOCkpuCkv+CkqCcsXG4gICAgICAgICAgICBNOiAn4KSP4KSVIOCkruCkueCkv+CkqOCkvicsXG4gICAgICAgICAgICBNTTogJyVkIOCkruCkueCkv+CkqOCkvicsXG4gICAgICAgICAgICB5OiAn4KSP4KSVIOCkrOCksOCljeCktycsXG4gICAgICAgICAgICB5eTogJyVkIOCkrOCksOCljeCktycsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBEdXRjaCAoQmVsZ2l1bSkgW25sLWJlXVxuLy8hIGF1dGhvciA6IEpvcmlzIFLDtmxpbmcgOiBodHRwczovL2dpdGh1Yi5jb20vam9yaXNyb2xpbmdcbi8vISBhdXRob3IgOiBKYWNvYiBNaWRkYWcgOiBodHRwczovL2dpdGh1Yi5jb20vbWlkZGFnalxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0V2l0aERvdHMgPVxuICAgICAgICAgICAgJ2phbi5fZmViLl9tcnQuX2Fwci5fbWVpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0V2l0aG91dERvdHMgPVxuICAgICAgICAgICAgJ2phbl9mZWJfbXJ0X2Fwcl9tZWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eamFuL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYWFydHxtcnQuPyQvaSxcbiAgICAgICAgICAgIC9eYXByL2ksXG4gICAgICAgICAgICAvXm1laSQvaSxcbiAgICAgICAgICAgIC9eanVuW2kuXT8kL2ksXG4gICAgICAgICAgICAvXmp1bFtpLl0/JC9pLFxuICAgICAgICAgICAgL15hdWcvaSxcbiAgICAgICAgICAgIC9ec2VwL2ksXG4gICAgICAgICAgICAvXm9rdC9pLFxuICAgICAgICAgICAgL15ub3YvaSxcbiAgICAgICAgICAgIC9eZGVjL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1JlZ2V4ID1cbiAgICAgICAgICAgIC9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXJ8amFuXFwuP3xmZWJcXC4/fG1ydFxcLj98YXByXFwuP3xqdVtubF1cXC4/fGF1Z1xcLj98c2VwXFwuP3xva3RcXC4/fG5vdlxcLj98ZGVjXFwuPykvaTtcblxuICAgIHZhciBubEJlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbmwtYmUnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcmlfZmVicnVhcmlfbWFhcnRfYXByaWxfbWVpX2p1bmlfanVsaV9hdWd1c3R1c19zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGZ1bmN0aW9uIChtLCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhvdXREb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6XG4gICAgICAgICAgICAvXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OlxuICAgICAgICAgICAgL14oamFuXFwuP3xmZWJcXC4/fG1ydFxcLj98YXByXFwuP3xtZWl8anVbbmxdXFwuP3xhdWdcXC4/fHNlcFxcLj98b2t0XFwuP3xub3ZcXC4/fGRlY1xcLj8pL2ksXG5cbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcblxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICd6b25kYWdfbWFhbmRhZ19kaW5zZGFnX3dvZW5zZGFnX2RvbmRlcmRhZ192cmlqZGFnX3phdGVyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnem8uX21hLl9kaS5fd28uX2RvLl92ci5femEuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3pvX21hX2RpX3dvX2RvX3ZyX3phJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1t2YW5kYWFnIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vcmdlbiBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tnaXN0ZXJlbiBvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbYWZnZWxvcGVuXSBkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvdmVyICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBnZWxlZGVuJyxcbiAgICAgICAgICAgIHM6ICdlZW4gcGFhciBzZWNvbmRlbicsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGVuJyxcbiAgICAgICAgICAgIG06ICfDqcOpbiBtaW51dXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVuJyxcbiAgICAgICAgICAgIGg6ICfDqcOpbiB1dXInLFxuICAgICAgICAgICAgaGg6ICclZCB1dXInLFxuICAgICAgICAgICAgZDogJ8Opw6luIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2VuJyxcbiAgICAgICAgICAgIE06ICfDqcOpbiBtYWFuZCcsXG4gICAgICAgICAgICBNTTogJyVkIG1hYW5kZW4nLFxuICAgICAgICAgICAgeTogJ8Opw6luIGphYXInLFxuICAgICAgICAgICAgeXk6ICclZCBqYWFyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgKG51bWJlciA9PT0gMSB8fCBudW1iZXIgPT09IDggfHwgbnVtYmVyID49IDIwID8gJ3N0ZScgOiAnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5sQmU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRHV0Y2ggW25sXVxuLy8hIGF1dGhvciA6IEpvcmlzIFLDtmxpbmcgOiBodHRwczovL2dpdGh1Yi5jb20vam9yaXNyb2xpbmdcbi8vISBhdXRob3IgOiBKYWNvYiBNaWRkYWcgOiBodHRwczovL2dpdGh1Yi5jb20vbWlkZGFnalxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0V2l0aERvdHMgPVxuICAgICAgICAgICAgJ2phbi5fZmViLl9tcnQuX2Fwci5fbWVpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0V2l0aG91dERvdHMgPVxuICAgICAgICAgICAgJ2phbl9mZWJfbXJ0X2Fwcl9tZWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eamFuL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYWFydHxtcnQuPyQvaSxcbiAgICAgICAgICAgIC9eYXByL2ksXG4gICAgICAgICAgICAvXm1laSQvaSxcbiAgICAgICAgICAgIC9eanVuW2kuXT8kL2ksXG4gICAgICAgICAgICAvXmp1bFtpLl0/JC9pLFxuICAgICAgICAgICAgL15hdWcvaSxcbiAgICAgICAgICAgIC9ec2VwL2ksXG4gICAgICAgICAgICAvXm9rdC9pLFxuICAgICAgICAgICAgL15ub3YvaSxcbiAgICAgICAgICAgIC9eZGVjL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1JlZ2V4ID1cbiAgICAgICAgICAgIC9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXJ8amFuXFwuP3xmZWJcXC4/fG1ydFxcLj98YXByXFwuP3xqdVtubF1cXC4/fGF1Z1xcLj98c2VwXFwuP3xva3RcXC4/fG5vdlxcLj98ZGVjXFwuPykvaTtcblxuICAgIHZhciBubCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ25sJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2FwcmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90cztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRob3V0RG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OlxuICAgICAgICAgICAgL14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDpcbiAgICAgICAgICAgIC9eKGphblxcLj98ZmViXFwuP3xtcnRcXC4/fGFwclxcLj98bWVpfGp1W25sXVxcLj98YXVnXFwuP3xzZXBcXC4/fG9rdFxcLj98bm92XFwuP3xkZWNcXC4/KS9pLFxuXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG5cbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnem9uZGFnX21hYW5kYWdfZGluc2RhZ193b2Vuc2RhZ19kb25kZXJkYWdfdnJpamRhZ196YXRlcmRhZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3pvLl9tYS5fZGkuX3dvLl9kby5fdnIuX3phLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICd6b19tYV9kaV93b19kb192cl96YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQtTU0tWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbdmFuZGFhZyBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb3JnZW4gb21dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZ2lzdGVyZW4gb21dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2FmZ2Vsb3Blbl0gZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb3ZlciAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgZ2VsZWRlbicsXG4gICAgICAgICAgICBzOiAnZWVuIHBhYXIgc2Vjb25kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRlbicsXG4gICAgICAgICAgICBtOiAnw6nDqW4gbWludXV0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlbicsXG4gICAgICAgICAgICBoOiAnw6nDqW4gdXVyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdXVyJyxcbiAgICAgICAgICAgIGQ6ICfDqcOpbiBkYWcnLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdlbicsXG4gICAgICAgICAgICB3OiAnw6nDqW4gd2VlaycsXG4gICAgICAgICAgICB3dzogJyVkIHdla2VuJyxcbiAgICAgICAgICAgIE06ICfDqcOpbiBtYWFuZCcsXG4gICAgICAgICAgICBNTTogJyVkIG1hYW5kZW4nLFxuICAgICAgICAgICAgeTogJ8Opw6luIGphYXInLFxuICAgICAgICAgICAgeXk6ICclZCBqYWFyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgKG51bWJlciA9PT0gMSB8fCBudW1iZXIgPT09IDggfHwgbnVtYmVyID49IDIwID8gJ3N0ZScgOiAnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5sO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE55bm9yc2sgW25uXVxuLy8hIGF1dGhvcnMgOiBodHRwczovL2dpdGh1Yi5jb20vbWVjaHV3aW5kXG4vLyEgICAgICAgICAgIFN0ZXBoZW4gUmFtdGh1biA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGVucmFtdGh1blxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG5uID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbm4nLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnNfYXByaWxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ2phbi5fZmViLl9tYXJzX2Fwci5fbWFpX2p1bmlfanVsaV9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rlcy4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnc3VuZGFnX23DpW5kYWdfdHlzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sYXVyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc3UuX23DpS5fdHkuX29uLl90by5fZnIuX2xhdS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc3VfbcOlX3R5X29uX3RvX2ZyX2xhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBba2wuXSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQuIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0kgZGFnIGtsb2trYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tJIG1vcmdvbiBrbG9ra2FdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBba2xva2thXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0kgZ8OlciBrbG9ra2FdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0bDuHJlZ8OlYW5kZV0gZGRkZCBba2xva2thXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29tICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBzaWRhbicsXG4gICAgICAgICAgICBzOiAnbm9rcmUgc2VrdW5kJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kJyxcbiAgICAgICAgICAgIG06ICdlaXQgbWludXR0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXR0JyxcbiAgICAgICAgICAgIGg6ICdlaW4gdGltZScsXG4gICAgICAgICAgICBoaDogJyVkIHRpbWFyJyxcbiAgICAgICAgICAgIGQ6ICdlaW4gZGFnJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnYXInLFxuICAgICAgICAgICAgdzogJ2VpIHZla2UnLFxuICAgICAgICAgICAgd3c6ICclZCB2ZWtlcicsXG4gICAgICAgICAgICBNOiAnZWluIG3DpW5hZCcsXG4gICAgICAgICAgICBNTTogJyVkIG3DpW5hZGVyJyxcbiAgICAgICAgICAgIHk6ICdlaXQgw6VyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw6VyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBubjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBPY2NpdGFuLCBsZW5nYWRvY2lhbiBkaWFsZWN0ZSBbb2MtbG5jXVxuLy8hIGF1dGhvciA6IFF1ZW50aW4gUEFHw4hTIDogaHR0cHM6Ly9naXRodWIuY29tL1F1ZW50eTMxXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgb2NMbmMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdvYy1sbmMnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTpcbiAgICAgICAgICAgICAgICAnZ2VuacOocl9mZWJyacOocl9tYXLDp19hYnJpbF9tYWlfanVuaF9qdWxoZXRfYWdvc3Rfc2V0ZW1icmVfb2N0w7JicmVfbm92ZW1icmVfZGVjZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9ybWF0OiBcImRlIGdlbmnDqHJfZGUgZmVicmnDqHJfZGUgbWFyw6dfZCdhYnJpbF9kZSBtYWlfZGUganVuaF9kZSBqdWxoZXRfZCdhZ29zdF9kZSBzZXRlbWJyZV9kJ29jdMOyYnJlX2RlIG5vdmVtYnJlX2RlIGRlY2VtYnJlXCIuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9EW29EXT8oXFxzKStNTU1NLyxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnZ2VuLl9mZWJyLl9tYXLDp19hYnIuX21haV9qdW5oX2p1bGguX2Fnby5fc2V0Ll9vY3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2RpbWVuZ2VfZGlsdW5zX2RpbWFyc19kaW3DqGNyZXNfZGlqw7J1c19kaXZlbmRyZXNfZGlzc2FidGUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkZy5fZGwuX2RtLl9kYy5fZGouX2R2Ll9kcy4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGdfZGxfZG1fZGNfZGpfZHZfZHMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBsbDogJ0QgTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFtkZV0gWVlZWSBbYV0gSDptbScsXG4gICAgICAgICAgICBsbGw6ICdEIE1NTSBZWVlZLCBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBbZGVdIFlZWVkgW2FdIEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCBEIE1NTSBZWVlZLCBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbdcOoaSBhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2RlbWFuIGFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpw6hyIGFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbcGFzc2F0IGFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiBcImQnYXF1w60gJXNcIixcbiAgICAgICAgICAgIHBhc3Q6ICdmYSAlcycsXG4gICAgICAgICAgICBzOiAndW5hcyBzZWdvbmRhcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ29uZGFzJyxcbiAgICAgICAgICAgIG06ICd1bmEgbWludXRhJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRhcycsXG4gICAgICAgICAgICBoOiAndW5hIG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VuIGpvcm4nLFxuICAgICAgICAgICAgZGQ6ICclZCBqb3JucycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHJ8bnx0fMOofGEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICBudW1iZXIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAncidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgPyAnbidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgPyAncidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDRcbiAgICAgICAgICAgICAgICAgICAgPyAndCdcbiAgICAgICAgICAgICAgICAgICAgOiAnw6gnO1xuICAgICAgICAgICAgaWYgKHBlcmlvZCA9PT0gJ3cnIHx8IHBlcmlvZCA9PT0gJ1cnKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2EnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvY0xuYztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBQdW5qYWJpIChJbmRpYSkgW3BhLWluXVxuLy8hIGF1dGhvciA6IEhhcnByZWV0IFNpbmdoIDogaHR0cHM6Ly9naXRodWIuY29tL2hhcnByZWV0a2hhbHNhZ3RiaXRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAxOiAn4KmnJyxcbiAgICAgICAgICAgIDI6ICfgqagnLFxuICAgICAgICAgICAgMzogJ+CpqScsXG4gICAgICAgICAgICA0OiAn4KmqJyxcbiAgICAgICAgICAgIDU6ICfgqasnLFxuICAgICAgICAgICAgNjogJ+CprCcsXG4gICAgICAgICAgICA3OiAn4KmtJyxcbiAgICAgICAgICAgIDg6ICfgqa4nLFxuICAgICAgICAgICAgOTogJ+CprycsXG4gICAgICAgICAgICAwOiAn4KmmJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Cppyc6ICcxJyxcbiAgICAgICAgICAgICfgqagnOiAnMicsXG4gICAgICAgICAgICAn4KmpJzogJzMnLFxuICAgICAgICAgICAgJ+Cpqic6ICc0JyxcbiAgICAgICAgICAgICfgqasnOiAnNScsXG4gICAgICAgICAgICAn4KmsJzogJzYnLFxuICAgICAgICAgICAgJ+CprSc6ICc3JyxcbiAgICAgICAgICAgICfgqa4nOiAnOCcsXG4gICAgICAgICAgICAn4KmvJzogJzknLFxuICAgICAgICAgICAgJ+Cppic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBwYUluID0gbW9tZW50LmRlZmluZUxvY2FsZSgncGEtaW4nLCB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSBtb250aHMgbmFtZSBhcyBwZXIgTmFuYWtzaGFoaSBDYWxlbmRhciBidXQgdGhleSBhcmUgbm90IHVzZWQgYXMgcmlnaWRseSBpbiBtb2Rlcm4gUHVuamFiaS5cbiAgICAgICAgbW9udGhzOiAn4Kic4Kio4Ki14Kiw4KmAX+Coq+CovOCosOCoteCosOCpgF/gqK7gqL7gqLDgqJpf4KiF4Kiq4KmN4Kiw4KmI4KiyX+CoruCoiF/gqJzgqYLgqKhf4Kic4KmB4Kiy4Ki+4KiIX+CoheCol+CouOCopF/gqLjgqKTgqbDgqKzgqLBf4KiF4KiV4Kik4KmC4Kis4KiwX+CoqOCoteCpsOCorOCosF/gqKbgqLjgqbDgqKzgqLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ+ConOCoqOCoteCosOCpgF/gqKvgqLzgqLDgqLXgqLDgqYBf4Kiu4Ki+4Kiw4KiaX+CoheCoquCpjeCosOCpiOCosl/gqK7gqIhf4Kic4KmC4KioX+ConOCpgeCosuCovuCoiF/gqIXgqJfgqLjgqKRf4Ki44Kik4Kmw4Kis4KiwX+CoheColeCopOCpguCorOCosF/gqKjgqLXgqbDgqKzgqLBf4Kim4Ki44Kmw4Kis4KiwJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn4KiQ4Kik4Ki14Ki+4KiwX+CouOCpi+CoruCoteCovuCosF/gqK7gqbDgqJfgqLLgqLXgqL7gqLBf4Kis4KmB4Kin4Ki14Ki+4KiwX+CoteCpgOCosOCoteCovuCosF/gqLjgqLzgqYHgqbHgqJXgqLDgqLXgqL7gqLBf4Ki44Ki84Kio4KmA4Kia4Kiw4Ki14Ki+4KiwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4KiQ4KikX+CouOCpi+Corl/gqK7gqbDgqJfgqLJf4Kis4KmB4KinX+CoteCpgOCosF/gqLjgqLzgqYHgqJXgqLBf4Ki44Ki84Kio4KmAJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CokOCopF/gqLjgqYvgqK5f4Kiu4Kmw4KiX4KiyX+CorOCpgeCop1/gqLXgqYDgqLBf4Ki44Ki84KmB4KiV4KiwX+CouOCovOCoqOCpgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIOCoteConOCphycsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3Mg4Ki14Kic4KmHJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbSDgqLXgqJzgqYcnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4Ki14Kic4KmHJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KiF4KicXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+ColeCosl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4KiF4KiX4Kiy4Ki+XSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+ColeCosl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Kiq4Ki/4Kib4Kiy4KmHXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCoteCov+CpseComicsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4Kiq4Ki/4Kib4Kiy4KmHJyxcbiAgICAgICAgICAgIHM6ICfgqJXgqYHgqJ0g4Ki44KiV4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4Ki44KiV4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIG06ICfgqIfgqJUg4Kiu4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4Kiu4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIGg6ICfgqIfgqbHgqJUg4KiY4Kmw4Kif4Ki+JyxcbiAgICAgICAgICAgIGhoOiAnJWQg4KiY4Kmw4Kif4KmHJyxcbiAgICAgICAgICAgIGQ6ICfgqIfgqbHgqJUg4Kim4Ki/4KioJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4Kim4Ki/4KioJyxcbiAgICAgICAgICAgIE06ICfgqIfgqbHgqJUg4Kiu4Ki54KmA4Kio4Ki+JyxcbiAgICAgICAgICAgIE1NOiAnJWQg4Kiu4Ki54KmA4Kio4KmHJyxcbiAgICAgICAgICAgIHk6ICfgqIfgqbHgqJUg4Ki44Ki+4KiyJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Ki44Ki+4KiyJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Cpp+CpqOCpqeCpquCpq+CprOCpreCpruCpr+Cppl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gUHVuamFiaSBub3RhdGlvbiBmb3IgbWVyaWRpZW1zIGFyZSBxdWl0ZSBmdXp6eSBpbiBwcmFjdGljZS4gV2hpbGUgdGhlcmUgZXhpc3RzXG4gICAgICAgIC8vIGEgcmlnaWQgbm90aW9uIG9mIGEgJ1BhaGFyJyBpdCBpcyBub3QgdXNlZCBhcyByaWdpZGx5IGluIG1vZGVybiBQdW5qYWJpLlxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4Kiw4Ki+4KikfOCouOCoteCph+CosHzgqKbgqYHgqKrgqLngqL/gqLB84Ki44Ki84Ki+4KiuLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4Kiw4Ki+4KikJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Ki44Ki14KmH4KiwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CopuCpgeCoquCoueCov+CosCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Ki44Ki84Ki+4KiuJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CosOCovuCopCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Ki44Ki14KmH4KiwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqKbgqYHgqKrgqLngqL/gqLAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CouOCovOCovuCoric7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kiw4Ki+4KikJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhSW47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUG9saXNoIFtwbF1cbi8vISBhdXRob3IgOiBSYWZhbCBIaXJzeiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ldm9MXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzTm9taW5hdGl2ZSA9XG4gICAgICAgICAgICAnc3R5Y3plxYRfbHV0eV9tYXJ6ZWNfa3dpZWNpZcWEX21hal9jemVyd2llY19saXBpZWNfc2llcnBpZcWEX3dyemVzaWXFhF9wYcW6ZHppZXJuaWtfbGlzdG9wYWRfZ3J1ZHppZcWEJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIG1vbnRoc1N1YmplY3RpdmUgPVxuICAgICAgICAgICAgJ3N0eWN6bmlhX2x1dGVnb19tYXJjYV9rd2lldG5pYV9tYWphX2N6ZXJ3Y2FfbGlwY2Ffc2llcnBuaWFfd3J6ZcWbbmlhX3Bhxbpkemllcm5pa2FfbGlzdG9wYWRhX2dydWRuaWEnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXnN0eS9pLFxuICAgICAgICAgICAgL15sdXQvaSxcbiAgICAgICAgICAgIC9ebWFyL2ksXG4gICAgICAgICAgICAvXmt3aS9pLFxuICAgICAgICAgICAgL15tYWovaSxcbiAgICAgICAgICAgIC9eY3plL2ksXG4gICAgICAgICAgICAvXmxpcC9pLFxuICAgICAgICAgICAgL15zaWUvaSxcbiAgICAgICAgICAgIC9ed3J6L2ksXG4gICAgICAgICAgICAvXnBhxbovaSxcbiAgICAgICAgICAgIC9ebGlzL2ksXG4gICAgICAgICAgICAvXmdydS9pLFxuICAgICAgICBdO1xuICAgIGZ1bmN0aW9uIHBsdXJhbChuKSB7XG4gICAgICAgIHJldHVybiBuICUgMTAgPCA1ICYmIG4gJSAxMCA+IDEgJiYgfn4obiAvIDEwKSAlIDEwICE9PSAxO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Nla3VuZHknIDogJ3Nla3VuZCcpO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnbWludXRhJyA6ICdtaW51dMSZJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ21pbnV0eScgOiAnbWludXQnKTtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2dvZHppbmEnIDogJ2dvZHppbsSZJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2dvZHppbnknIDogJ2dvZHppbicpO1xuICAgICAgICAgICAgY2FzZSAnd3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAndHlnb2RuaWUnIDogJ3R5Z29kbmknKTtcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ21pZXNpxIVjZScgOiAnbWllc2nEmWN5Jyk7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdsYXRhJyA6ICdsYXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3BsJywge1xuICAgICAgICBtb250aHM6IGZ1bmN0aW9uIChtb21lbnRUb0Zvcm1hdCwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW1vbWVudFRvRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc05vbWluYXRpdmU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC9EIE1NTU0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTdWJqZWN0aXZlW21vbWVudFRvRm9ybWF0Lm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzTm9taW5hdGl2ZVttb21lbnRUb0Zvcm1hdC5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdzdHlfbHV0X21hcl9rd2lfbWFqX2N6ZV9saXBfc2llX3dyel9wYcW6X2xpc19ncnUnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzOlxuICAgICAgICAgICAgJ25pZWR6aWVsYV9wb25pZWR6aWHFgmVrX3d0b3Jla1/Fm3JvZGFfY3p3YXJ0ZWtfcGnEhXRla19zb2JvdGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZHpfcG9uX3d0X8Wbcl9jendfcHRfc29iJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ05kX1BuX1d0X8Wacl9Del9QdF9Tbycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tEemnFmyBvXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0p1dHJvIG9dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgbmllZHppZWzEmSBvXSBMVCc7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbV2Ugd3RvcmVrIG9dIExUJztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIMWbcm9kxJkgb10gTFQnO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgc29ib3TEmSBvXSBMVCc7XG5cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1ddIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1tXY3pvcmFqIG9dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgemVzesWCxIUgbmllZHppZWzEmSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgemVzesWCxIUgxZtyb2TEmSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgemVzesWCxIUgc29ib3TEmSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIHplc3rFgnldIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgdGVtdScsXG4gICAgICAgICAgICBzOiAna2lsa2Egc2VrdW5kJyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICcxIGR6aWXFhCcsXG4gICAgICAgICAgICBkZDogJyVkIGRuaScsXG4gICAgICAgICAgICB3OiAndHlkemllxYQnLFxuICAgICAgICAgICAgd3c6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06ICdtaWVzacSFYycsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ3JvaycsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFBvcnR1Z3Vlc2UgKEJyYXppbCkgW3B0LWJyXVxuLy8hIGF1dGhvciA6IENhaW8gUmliZWlybyBQZXJlaXJhIDogaHR0cHM6Ly9naXRodWIuY29tL2NhaW8tcmliZWlyby1wZXJlaXJhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgcHRCciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3B0LWJyJywge1xuICAgICAgICBtb250aHM6ICdqYW5laXJvX2ZldmVyZWlyb19tYXLDp29fYWJyaWxfbWFpb19qdW5ob19qdWxob19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZXplbWJybycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmV2X21hcl9hYnJfbWFpX2p1bl9qdWxfYWdvX3NldF9vdXRfbm92X2Rleicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnZG9taW5nb19zZWd1bmRhLWZlaXJhX3RlcsOnYS1mZWlyYV9xdWFydGEtZmVpcmFfcXVpbnRhLWZlaXJhX3NleHRhLWZlaXJhX3PDoWJhZG8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbV9zZWdfdGVyX3F1YV9xdWlfc2V4X3PDoWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fMsKqXzPCql80wqpfNcKqXzbCql9zw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIFvDoHNdIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgW8Ogc10gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIb2plIMOgc10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tBbWFuaMOjIMOgc10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoHNdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbT250ZW0gw6BzXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpID09PSAwIHx8IHRoaXMuZGF5KCkgPT09IDZcbiAgICAgICAgICAgICAgICAgICAgPyAnW8OabHRpbW9dIGRkZGQgW8Ogc10gTFQnIC8vIFNhdHVyZGF5ICsgU3VuZGF5XG4gICAgICAgICAgICAgICAgICAgIDogJ1vDmmx0aW1hXSBkZGRkIFvDoHNdIExUJzsgLy8gTW9uZGF5IC0gRnJpZGF5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaMOhICVzJyxcbiAgICAgICAgICAgIHM6ICdwb3Vjb3Mgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtOiAndW0gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoOiAndW1hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkOiAndW0gZGlhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGlhcycsXG4gICAgICAgICAgICBNOiAndW0gbcOqcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1bSBhbm8nLFxuICAgICAgICAgICAgeXk6ICclZCBhbm9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIGludmFsaWREYXRlOiAnRGF0YSBpbnbDoWxpZGEnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHB0QnI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUG9ydHVndWVzZSBbcHRdXG4vLyEgYXV0aG9yIDogSmVmZmVyc29uIDogaHR0cHM6Ly9naXRodWIuY29tL2phbGV4NzlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBwdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3B0Jywge1xuICAgICAgICBtb250aHM6ICdqYW5laXJvX2ZldmVyZWlyb19tYXLDp29fYWJyaWxfbWFpb19qdW5ob19qdWxob19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZXplbWJybycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmV2X21hcl9hYnJfbWFpX2p1bl9qdWxfYWdvX3NldF9vdXRfbm92X2Rleicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnRG9taW5nb19TZWd1bmRhLWZlaXJhX1RlcsOnYS1mZWlyYV9RdWFydGEtZmVpcmFfUXVpbnRhLWZlaXJhX1NleHRhLWZlaXJhX1PDoWJhZG8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0RvbV9TZWdfVGVyX1F1YV9RdWlfU2V4X1PDoWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnRG9fMsKqXzPCql80wqpfNcKqXzbCql9Tw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIb2plIMOgc10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tBbWFuaMOjIMOgc10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoHNdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbT250ZW0gw6BzXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpID09PSAwIHx8IHRoaXMuZGF5KCkgPT09IDZcbiAgICAgICAgICAgICAgICAgICAgPyAnW8OabHRpbW9dIGRkZGQgW8Ogc10gTFQnIC8vIFNhdHVyZGF5ICsgU3VuZGF5XG4gICAgICAgICAgICAgICAgICAgIDogJ1vDmmx0aW1hXSBkZGRkIFvDoHNdIExUJzsgLy8gTW9uZGF5IC0gRnJpZGF5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaMOhICVzJyxcbiAgICAgICAgICAgIHM6ICdzZWd1bmRvcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG06ICd1bSBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGg6ICd1bWEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1bSBkaWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkaWFzJyxcbiAgICAgICAgICAgIHc6ICd1bWEgc2VtYW5hJyxcbiAgICAgICAgICAgIHd3OiAnJWQgc2VtYW5hcycsXG4gICAgICAgICAgICBNOiAndW0gbcOqcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1bSBhbm8nLFxuICAgICAgICAgICAgeXk6ICclZCBhbm9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBwdDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBSb21hbmlhbiBbcm9dXG4vLyEgYXV0aG9yIDogVmxhZCBHdXJkaWdhIDogaHR0cHM6Ly9naXRodWIuY29tL2d1cmRpZ2Fcbi8vISBhdXRob3IgOiBWYWxlbnRpbiBBZ2FjaGkgOiBodHRwczovL2dpdGh1Yi5jb20vYXZhbHlcbi8vISBhdXRob3IgOiBFbWFudWVsIENlcG9pIDogaHR0cHM6Ly9naXRodWIuY29tL2NlcGVtXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICAgICAgc3M6ICdzZWN1bmRlJyxcbiAgICAgICAgICAgICAgICBtbTogJ21pbnV0ZScsXG4gICAgICAgICAgICAgICAgaGg6ICdvcmUnLFxuICAgICAgICAgICAgICAgIGRkOiAnemlsZScsXG4gICAgICAgICAgICAgICAgd3c6ICdzxINwdMSDbcOibmknLFxuICAgICAgICAgICAgICAgIE1NOiAnbHVuaScsXG4gICAgICAgICAgICAgICAgeXk6ICdhbmknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlcGFyYXRvciA9ICcgJztcbiAgICAgICAgaWYgKG51bWJlciAlIDEwMCA+PSAyMCB8fCAobnVtYmVyID49IDEwMCAmJiBudW1iZXIgJSAxMDAgPT09IDApKSB7XG4gICAgICAgICAgICBzZXBhcmF0b3IgPSAnIGRlICc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bWJlciArIHNlcGFyYXRvciArIGZvcm1hdFtrZXldO1xuICAgIH1cblxuICAgIHZhciBybyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3JvJywge1xuICAgICAgICBtb250aHM6ICdpYW51YXJpZV9mZWJydWFyaWVfbWFydGllX2FwcmlsaWVfbWFpX2l1bmllX2l1bGllX2F1Z3VzdF9zZXB0ZW1icmllX29jdG9tYnJpZV9ub2llbWJyaWVfZGVjZW1icmllJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICdpYW4uX2ZlYi5fbWFydC5fYXByLl9tYWlfaXVuLl9pdWwuX2F1Zy5fc2VwdC5fb2N0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdkdW1pbmljxINfbHVuaV9tYXLIm2lfbWllcmN1cmlfam9pX3ZpbmVyaV9zw6JtYsSDdMSDJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnRHVtX0x1bl9NYXJfTWllX0pvaV9WaW5fU8OibScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdEdV9MdV9NYV9NaV9Kb19WaV9Tw6InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1themkgbGFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbcOiaW5lIGxhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2xhXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2llcmkgbGFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2Zvc3RhXSBkZGRkIFtsYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdwZXN0ZSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgw65uIHVybcSDJyxcbiAgICAgICAgICAgIHM6ICdjw6J0ZXZhIHNlY3VuZGUnLFxuICAgICAgICAgICAgc3M6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtOiAndW4gbWludXQnLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoOiAnbyBvcsSDJyxcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZDogJ28gemknLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB3OiAnbyBzxINwdMSDbcOibsSDJyxcbiAgICAgICAgICAgIHd3OiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgTTogJ28gbHVuxIMnLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5OiAndW4gYW4nLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBybztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBSdXNzaWFuIFtydV1cbi8vISBhdXRob3IgOiBWaWt0b3JtaW5hdG9yIDogaHR0cHM6Ly9naXRodWIuY29tL1Zpa3Rvcm1pbmF0b3Jcbi8vISBhdXRob3IgOiBNZW5lbGlvbiBFbGVuc8O6bGUgOiBodHRwczovL2dpdGh1Yi5jb20vT2lyZVxuLy8hIGF1dGhvciA6INCa0L7RgNC10L3QsdC10YDQsyDQnNCw0YDQuiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zb2NrZXRwYWlyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwbHVyYWwod29yZCwgbnVtKSB7XG4gICAgICAgIHZhciBmb3JtcyA9IHdvcmQuc3BsaXQoJ18nKTtcbiAgICAgICAgcmV0dXJuIG51bSAlIDEwID09PSAxICYmIG51bSAlIDEwMCAhPT0gMTFcbiAgICAgICAgICAgID8gZm9ybXNbMF1cbiAgICAgICAgICAgIDogbnVtICUgMTAgPj0gMiAmJiBudW0gJSAxMCA8PSA0ICYmIChudW0gJSAxMDAgPCAxMCB8fCBudW0gJSAxMDAgPj0gMjApXG4gICAgICAgICAgICA/IGZvcm1zWzFdXG4gICAgICAgICAgICA6IGZvcm1zWzJdO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzczogd2l0aG91dFN1ZmZpeCA/ICfRgdC10LrRg9C90LTQsF/RgdC10LrRg9C90LTRi1/RgdC10LrRg9C90LQnIDogJ9GB0LXQutGD0L3QtNGDX9GB0LXQutGD0L3QtNGLX9GB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtbTogd2l0aG91dFN1ZmZpeCA/ICfQvNC40L3Rg9GC0LBf0LzQuNC90YPRgtGLX9C80LjQvdGD0YInIDogJ9C80LjQvdGD0YLRg1/QvNC40L3Rg9GC0Ytf0LzQuNC90YPRgicsXG4gICAgICAgICAgICBoaDogJ9GH0LDRgV/Rh9Cw0YHQsF/Rh9Cw0YHQvtCyJyxcbiAgICAgICAgICAgIGRkOiAn0LTQtdC90Yxf0LTQvdGPX9C00L3QtdC5JyxcbiAgICAgICAgICAgIHd3OiAn0L3QtdC00LXQu9GPX9C90LXQtNC10LvQuF/QvdC10LTQtdC70YwnLFxuICAgICAgICAgICAgTU06ICfQvNC10YHRj9GGX9C80LXRgdGP0YbQsF/QvNC10YHRj9GG0LXQsicsXG4gICAgICAgICAgICB5eTogJ9Cz0L7QtF/Qs9C+0LTQsF/Qu9C10YInLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoa2V5ID09PSAnbScpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ9C80LjQvdGD0YLQsCcgOiAn0LzQuNC90YPRgtGDJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBwbHVyYWwoZm9ybWF0W2tleV0sICtudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgL17Rj9C90LIvaSxcbiAgICAgICAgL17RhNC10LIvaSxcbiAgICAgICAgL17QvNCw0YAvaSxcbiAgICAgICAgL17QsNC/0YAvaSxcbiAgICAgICAgL17QvNCwW9C50Y9dL2ksXG4gICAgICAgIC9e0LjRjtC9L2ksXG4gICAgICAgIC9e0LjRjtC7L2ksXG4gICAgICAgIC9e0LDQstCzL2ksXG4gICAgICAgIC9e0YHQtdC9L2ksXG4gICAgICAgIC9e0L7QutGCL2ksXG4gICAgICAgIC9e0L3QvtGPL2ksXG4gICAgICAgIC9e0LTQtdC6L2ksXG4gICAgXTtcblxuICAgIC8vIGh0dHA6Ly9uZXcuZ3JhbW90YS5ydS9zcHJhdmthL3J1bGVzLzEzOS1wcm9wIDogwqcgMTAzXG4gICAgLy8g0KHQvtC60YDQsNGJ0LXQvdC40Y8g0LzQtdGB0Y/RhtC10LI6IGh0dHA6Ly9uZXcuZ3JhbW90YS5ydS9zcHJhdmthL2J1cm8vc2VhcmNoLWFuc3dlcj9zPTI0MjYzN1xuICAgIC8vIENMRFIgZGF0YTogICAgICAgICAgaHR0cDovL3d3dy51bmljb2RlLm9yZy9jbGRyL2NoYXJ0cy8yOC9zdW1tYXJ5L3J1Lmh0bWwjMTc1M1xuICAgIHZhciBydSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3J1Jywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9GP0L3QstCw0YDRj1/RhNC10LLRgNCw0LvRj1/QvNCw0YDRgtCwX9Cw0L/RgNC10LvRj1/QvNCw0Y9f0LjRjtC90Y9f0LjRjtC70Y9f0LDQstCz0YPRgdGC0LBf0YHQtdC90YLRj9Cx0YDRj1/QvtC60YLRj9Cx0YDRj1/QvdC+0Y/QsdGA0Y9f0LTQtdC60LDQsdGA0Y8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6XG4gICAgICAgICAgICAgICAgJ9GP0L3QstCw0YDRjF/RhNC10LLRgNCw0LvRjF/QvNCw0YDRgl/QsNC/0YDQtdC70Yxf0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQs9GD0YHRgl/RgdC10L3RgtGP0LHRgNGMX9C+0LrRgtGP0LHRgNGMX9C90L7Rj9Cx0YDRjF/QtNC10LrQsNCx0YDRjCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiB7XG4gICAgICAgICAgICAvLyDQv9C+IENMRFIg0LjQvNC10L3QvdC+IFwi0LjRjtC7LlwiINC4IFwi0LjRjtC9LlwiLCDQvdC+INC60LDQutC+0Lkg0YHQvNGL0YHQuyDQvNC10L3Rj9GC0Ywg0LHRg9C60LLRgyDQvdCwINGC0L7Rh9C60YM/XG4gICAgICAgICAgICBmb3JtYXQ6ICfRj9C90LIuX9GE0LXQstGALl/QvNCw0YAuX9Cw0L/RgC5f0LzQsNGPX9C40Y7QvdGPX9C40Y7Qu9GPX9Cw0LLQsy5f0YHQtdC90YIuX9C+0LrRgi5f0L3QvtGP0LEuX9C00LXQui4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6XG4gICAgICAgICAgICAgICAgJ9GP0L3Qsi5f0YTQtdCy0YAuX9C80LDRgNGCX9Cw0L/RgC5f0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQsy5f0YHQtdC90YIuX9C+0LrRgi5f0L3QvtGP0LEuX9C00LXQui4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5czoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTpcbiAgICAgICAgICAgICAgICAn0LLQvtGB0LrRgNC10YHQtdC90YzQtV/Qv9C+0L3QtdC00LXQu9GM0L3QuNC6X9Cy0YLQvtGA0L3QuNC6X9GB0YDQtdC00LBf0YfQtdGC0LLQtdGA0LNf0L/Rj9GC0L3QuNGG0LBf0YHRg9Cx0LHQvtGC0LAnLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9ybWF0OiAn0LLQvtGB0LrRgNC10YHQtdC90YzQtV/Qv9C+0L3QtdC00LXQu9GM0L3QuNC6X9Cy0YLQvtGA0L3QuNC6X9GB0YDQtdC00YNf0YfQtdGC0LLQtdGA0LNf0L/Rj9GC0L3QuNGG0YNf0YHRg9Cx0LHQvtGC0YMnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvXFxbID9b0JLQsl0gPyg/OtC/0YDQvtGI0LvRg9GOfNGB0LvQtdC00YPRjtGJ0YPRjnzRjdGC0YMpPyA/XSA/ZGRkZC8sXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQstGBX9C/0L1f0LLRgl/RgdGAX9GH0YJf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9Cy0YFf0L/QvV/QstGCX9GB0YBf0YfRgl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG5cbiAgICAgICAgLy8g0L/QvtC70L3Ri9C1INC90LDQt9Cy0LDQvdC40Y8g0YEg0L/QsNC00LXQttCw0LzQuCwg0L/QviDRgtGA0Lgg0LHRg9C60LLRiywg0LTQu9GPINC90LXQutC+0YLQvtGA0YvRhSwg0L/QviA0INCx0YPQutCy0YssINGB0L7QutGA0LDRidC10L3QuNGPINGBINGC0L7Rh9C60L7QuSDQuCDQsdC10Lcg0YLQvtGH0LrQuFxuICAgICAgICBtb250aHNSZWdleDpcbiAgICAgICAgICAgIC9eKNGP0L3QstCw0YBb0YzRj1180Y/QvdCyXFwuP3zRhNC10LLRgNCw0Ltb0YzRj1180YTQtdCy0YA/XFwuP3zQvNCw0YDRgtCwP3zQvNCw0YBcXC4/fNCw0L/RgNC10Ltb0YzRj1180LDQv9GAXFwuP3zQvNCwW9C50Y9dfNC40Y7QvVvRjNGPXXzQuNGO0L1cXC4/fNC40Y7Qu1vRjNGPXXzQuNGO0LtcXC4/fNCw0LLQs9GD0YHRgtCwP3zQsNCy0LNcXC4/fNGB0LXQvdGC0Y/QsdGAW9GM0Y9dfNGB0LXQvdGCP1xcLj980L7QutGC0Y/QsdGAW9GM0Y9dfNC+0LrRglxcLj980L3QvtGP0LHRgFvRjNGPXXzQvdC+0Y/QsT9cXC4/fNC00LXQutCw0LHRgFvRjNGPXXzQtNC10LpcXC4/KS9pLFxuXG4gICAgICAgIC8vINC60L7Qv9C40Y8g0L/RgNC10LTRi9C00YPRidC10LPQvlxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OlxuICAgICAgICAgICAgL14o0Y/QvdCy0LDRgFvRjNGPXXzRj9C90LJcXC4/fNGE0LXQstGA0LDQu1vRjNGPXXzRhNC10LLRgD9cXC4/fNC80LDRgNGC0LA/fNC80LDRgFxcLj980LDQv9GA0LXQu1vRjNGPXXzQsNC/0YBcXC4/fNC80LBb0LnRj1180LjRjtC9W9GM0Y9dfNC40Y7QvVxcLj980LjRjtC7W9GM0Y9dfNC40Y7Qu1xcLj980LDQstCz0YPRgdGC0LA/fNCw0LLQs1xcLj980YHQtdC90YLRj9Cx0YBb0YzRj1180YHQtdC90YI/XFwuP3zQvtC60YLRj9Cx0YBb0YzRj1180L7QutGCXFwuP3zQvdC+0Y/QsdGAW9GM0Y9dfNC90L7Rj9CxP1xcLj980LTQtdC60LDQsdGAW9GM0Y9dfNC00LXQulxcLj8pL2ksXG5cbiAgICAgICAgLy8g0L/QvtC70L3Ri9C1INC90LDQt9Cy0LDQvdC40Y8g0YEg0L/QsNC00LXQttCw0LzQuFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDpcbiAgICAgICAgICAgIC9eKNGP0L3QstCw0YBb0Y/RjF180YTQtdCy0YDQsNC7W9GP0YxdfNC80LDRgNGC0LA/fNCw0L/RgNC10Ltb0Y/RjF180LzQsFvRj9C5XXzQuNGO0L1b0Y/RjF180LjRjtC7W9GP0YxdfNCw0LLQs9GD0YHRgtCwP3zRgdC10L3RgtGP0LHRgFvRj9GMXXzQvtC60YLRj9Cx0YBb0Y/RjF180L3QvtGP0LHRgFvRj9GMXXzQtNC10LrQsNCx0YBb0Y/RjF0pL2ksXG5cbiAgICAgICAgLy8g0JLRi9GA0LDQttC10L3QuNC1LCDQutC+0YLQvtGA0L7QtSDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0LXRgiDRgtC+0LvRjNC60L4g0YHQvtC60YDQsNGJ0ZHQvdC90YvQvCDRhNC+0YDQvNCw0LxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDpcbiAgICAgICAgICAgIC9eKNGP0L3QslxcLnzRhNC10LLRgD9cXC580LzQsNGAW9GCLl180LDQv9GAXFwufNC80LBb0Y/QuV180LjRjtC9W9GM0Y8uXXzQuNGO0Ltb0YzRjy5dfNCw0LLQs1xcLnzRgdC10L3Rgj9cXC580L7QutGCXFwufNC90L7Rj9CxP1xcLnzQtNC10LpcXC4pL2ksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZINCzLicsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSDQsy4sIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZINCzLiwgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9Ch0LXQs9C+0LTQvdGPLCDQsl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQl9Cw0LLRgtGA0LAsINCyXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9CS0YfQtdGA0LAsINCyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmIChub3cud2VlaygpICE9PSB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDRgdC70LXQtNGD0Y7RidC10LVdIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINGB0LvQtdC00YPRjtGJ0LjQuV0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0YHQu9C10LTRg9GO0YnRg9GOXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRheSgpID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQktC+XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmIChub3cud2VlaygpICE9PSB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDQv9GA0L7RiNC70L7QtV0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0L/RgNC+0YjQu9GL0LldIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINC/0YDQvtGI0LvRg9GOXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRheSgpID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQktC+XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9GH0LXRgNC10LcgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzINC90LDQt9Cw0LQnLFxuICAgICAgICAgICAgczogJ9C90LXRgdC60L7Qu9GM0LrQviDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgc3M6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoOiAn0YfQsNGBJyxcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZDogJ9C00LXQvdGMJyxcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgdzogJ9C90LXQtNC10LvRjycsXG4gICAgICAgICAgICB3dzogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE06ICfQvNC10YHRj9GGJyxcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeTogJ9Cz0L7QtCcsXG4gICAgICAgICAgICB5eTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9C90L7Rh9C4fNGD0YLRgNCwfNC00L3Rj3zQstC10YfQtdGA0LAvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o0LTQvdGPfNCy0LXRh9C10YDQsCkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0L3QvtGH0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GD0YLRgNCwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQtNC90Y8nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Cy0LXRh9C10YDQsCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0Ll80LPQvnzRjykvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LknO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3Qs9C+JztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0Y8nO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBydTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTaW5kaGkgW3NkXVxuLy8hIGF1dGhvciA6IE5hcmFpbiBTYWdhciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9uYXJhaW5zYWdhclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfYrNmG2YjYsdmKJyxcbiAgICAgICAgICAgICfZgdmK2KjYsdmI2LHZiicsXG4gICAgICAgICAgICAn2YXYp9ix2oYnLFxuICAgICAgICAgICAgJ9in2b7YsdmK2YQnLFxuICAgICAgICAgICAgJ9mF2KbZiicsXG4gICAgICAgICAgICAn2KzZiNmGJyxcbiAgICAgICAgICAgICfYrNmI2YTYp9ih2ZAnLFxuICAgICAgICAgICAgJ9ii2q/Ys9m9JyxcbiAgICAgICAgICAgICfYs9mK2b7ZvdmF2KjYsScsXG4gICAgICAgICAgICAn2KLaqtm92YjYqNixJyxcbiAgICAgICAgICAgICfZhtmI2YXYqNixJyxcbiAgICAgICAgICAgICfaitiz2YXYqNixJyxcbiAgICAgICAgXSxcbiAgICAgICAgZGF5cyA9IFsn2KLahtixJywgJ9iz2YjZhdixJywgJ9in2rHYp9ix2YgnLCAn2KfYsdio2LknLCAn2K7ZhdmK2LMnLCAn2KzZhdi5JywgJ9qH2Ybah9ixJ107XG5cbiAgICB2YXIgc2QgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzZCcsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiBkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiBkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbjogZGF5cyxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZNiMIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i12KjYrXzYtNin2YUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2LTYp9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtdio2K0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICfYtNin2YUnO1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9qEXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9iz2oDYp9q72YpdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2Kfas9mK2YYg2YfZgdiq2Yog2KrZil0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vaqtin2YTZh9mHXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1var9iy2LHZitmEINmH2YHYqtmKXSBkZGRkIFvYqtmKXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINm+2YjYoScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg2KfasycsXG4gICAgICAgICAgICBzOiAn2obZhtivINiz2YraqtmG2oonLFxuICAgICAgICAgICAgc3M6ICclZCDYs9mK2qrZhtqKJyxcbiAgICAgICAgICAgIG06ICfZh9qqINmF2YbZvScsXG4gICAgICAgICAgICBtbTogJyVkINmF2YbZvScsXG4gICAgICAgICAgICBoOiAn2YfaqiDaqtmE2KfaqicsXG4gICAgICAgICAgICBoaDogJyVkINqq2YTYp9qqJyxcbiAgICAgICAgICAgIGQ6ICfZh9qqINqP2YrZhtmH2YYnLFxuICAgICAgICAgICAgZGQ6ICclZCDaj9mK2YbZh9mGJyxcbiAgICAgICAgICAgIE06ICfZh9qqINmF2YfZitmG2YgnLFxuICAgICAgICAgICAgTU06ICclZCDZhdmH2YrZhtinJyxcbiAgICAgICAgICAgIHk6ICfZh9qqINiz2KfZhCcsXG4gICAgICAgICAgICB5eTogJyVkINiz2KfZhCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNkO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE5vcnRoZXJuIFNhbWkgW3NlXVxuLy8hIGF1dGhvcnMgOiBCw6VyZCBSb2xzdGFkIEhlbnJpa3NlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJhbWVsbFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHNlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc2UnLCB7XG4gICAgICAgIG1vbnRoczogJ2/EkcSRYWphZ2Vtw6FubnVfZ3VvdnZhbcOhbm51X25qdWvEjWFtw6FubnVfY3VvxYtvbcOhbm51X21pZXNzZW3DoW5udV9nZWFzc2Vtw6FubnVfc3VvaWRuZW3DoW5udV9ib3JnZW3DoW5udV/EjWFrxI1hbcOhbm51X2dvbGdnb3Rtw6FubnVfc2vDoWJtYW3DoW5udV9qdW92bGFtw6FubnUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ2/EkcSRal9ndW92X25qdWtfY3VvX21pZXNfZ2Vhc19zdW9pX2JvcmdfxI1ha8SNX2dvbGdfc2vDoWJfanVvdicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnc290bmFiZWFpdmlfdnVvc3PDoXJnYV9tYcWLxYtlYsOhcmdhX2dhc2thdmFoa2t1X2R1b3Jhc3RhdF9iZWFyamFkYXRfbMOhdnZhcmRhdCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc290bl92dW9zX21hxYtfZ2Fza19kdW9yX2JlYXJfbMOhdicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzX3ZfbV9nX2RfYl9MJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ01NTU0gRC4gW2IuXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ01NTU0gRC4gW2IuXSBZWVlZIFt0aS5dIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIEQuIFtiLl0gWVlZWSBbdGkuXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW290bmUgdGldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaWh0dGluIHRpXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3RpXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2lrdGUgdGldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW292ZGRpdF0gZGRkZCBbdGldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgZ2Vhxb5lcycsXG4gICAgICAgICAgICBwYXN0OiAnbWHFi2l0ICVzJyxcbiAgICAgICAgICAgIHM6ICdtb2FkZGUgc2VrdW5kZGF0JyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kZGF0JyxcbiAgICAgICAgICAgIG06ICdva3RhIG1pbnVodGEnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51aHRhdCcsXG4gICAgICAgICAgICBoOiAnb2t0YSBkaWltbXUnLFxuICAgICAgICAgICAgaGg6ICclZCBkaWltbXV0JyxcbiAgICAgICAgICAgIGQ6ICdva3RhIGJlYWl2aScsXG4gICAgICAgICAgICBkZDogJyVkIGJlYWl2dml0JyxcbiAgICAgICAgICAgIE06ICdva3RhIG3DoW5udScsXG4gICAgICAgICAgICBNTTogJyVkIG3DoW51dCcsXG4gICAgICAgICAgICB5OiAnb2t0YSBqYWhraScsXG4gICAgICAgICAgICB5eTogJyVkIGphZ2l0JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTaW5oYWxlc2UgW3NpXVxuLy8hIGF1dGhvciA6IFNhbXBhdGggU2l0aW5hbWFsdXdhIDogaHR0cHM6Ly9naXRodWIuY29tL3NhbXBhdGhzcmlzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICAvKmpzaGludCAtVzEwMCovXG4gICAgdmFyIHNpID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc2knLCB7XG4gICAgICAgIG1vbnRoczogJ+C2ouC2seC3gOC3j+C2u+C3kl/gtrTgt5ngtrbgtrvgt4Dgt4/gtrvgt5Jf4La44LeP4La74LeK4Lat4LeUX+C2heC2tOC3iuKAjeC2u+C3muC2veC3il/gtrjgt5Dgtrrgt5Jf4Lai4LeW4Lax4LeSX+C2ouC3luC2veC3kl/gtoXgtpzgt53gt4Pgt4rgtq3gt5Rf4LeD4LeQ4La04LeK4Lat4LeQ4La44LeK4La24La74LeKX+C2lOC2muC3iuC2reC3neC2tuC2u+C3il/gtrHgt5zgt4Dgt5Dgtrjgt4rgtrbgtrvgt4pf4Lav4LeZ4LeD4LeQ4La44LeK4La24La74LeKJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+C2ouC2sV/gtrTgt5ngtrZf4La44LeP4La74LeKX+C2heC2tOC3il/gtrjgt5Dgtrrgt5Jf4Lai4LeW4Lax4LeSX+C2ouC3luC2veC3kl/gtoXgtpzgt51f4LeD4LeQ4La04LeKX+C2lOC2muC3il/gtrHgt5zgt4Dgt5Bf4Lav4LeZ4LeD4LeQJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICfgtongtrvgt5Lgtq/gt49f4LeD4Laz4LeU4Lav4LePX+C2heC2n+C3hOC2u+C3lOC3gOC3j+C2r+C3j1/gtrbgtq/gt4/gtq/gt49f4La24LeK4oCN4La74LeE4LeD4LeK4La04Lat4LeS4Lax4LeK4Lav4LePX+C3g+C3kuC2muC3lOC2u+C3j+C2r+C3j1/gt4Pgt5ngtrHgt4Pgt5Tgtrvgt4/gtq/gt48nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+C2ieC2u+C3kl/gt4PgtrPgt5Rf4LaF4LafX+C2tuC2r+C3j1/gtrbgt4rigI3gtrvgt4Rf4LeD4LeS4Laa4LeUX+C3g+C3meC2sScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgtolf4LeDX+C2hV/gtrZf4La24LeK4oCN4La7X+C3g+C3kl/gt4Pgt5knLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnYSBoOm1tJyxcbiAgICAgICAgICAgIExUUzogJ2EgaDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVkgTU1NTSBEJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkgTU1NTSBELCBhIGg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVkgTU1NTSBEIFvgt4Dgt5DgtrHgt5JdIGRkZGQsIGEgaDptbTpzcycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+C2heC2r10gTFRb4LanXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+C3hOC3meC2p10gTFRb4LanXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFRb4LanXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C2iuC2uuC3ml0gTFRb4LanXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgtrTgt4Pgt5Tgtpzgt5LgtrpdIGRkZGQgTFRb4LanXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz4Laa4LeS4Lax4LeKJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+C2muC2pyDgtrTgt5ngtrsnLFxuICAgICAgICAgICAgczogJ+C2reC2reC3iuC2tOC2uyDgtprgt5Lgt4Tgt5LgtrTgtronLFxuICAgICAgICAgICAgc3M6ICfgtq3gtq3gt4rgtrTgtrsgJWQnLFxuICAgICAgICAgICAgbTogJ+C2uOC3kuC2seC3kuC2reC3iuC2reC3lOC3gCcsXG4gICAgICAgICAgICBtbTogJ+C2uOC3kuC2seC3kuC2reC3iuC2reC3lCAlZCcsXG4gICAgICAgICAgICBoOiAn4La04LeQ4La6JyxcbiAgICAgICAgICAgIGhoOiAn4La04LeQ4La6ICVkJyxcbiAgICAgICAgICAgIGQ6ICfgtq/gt5LgtrHgtronLFxuICAgICAgICAgICAgZGQ6ICfgtq/gt5LgtrEgJWQnLFxuICAgICAgICAgICAgTTogJ+C2uOC3j+C3g+C2uicsXG4gICAgICAgICAgICBNTTogJ+C2uOC3j+C3gyAlZCcsXG4gICAgICAgICAgICB5OiAn4LeA4LeD4La7JyxcbiAgICAgICAgICAgIHl5OiAn4LeA4LeD4La7ICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9IOC3gOC3kOC2seC3ki8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnIOC3gOC3kOC2seC3kic7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gtrTgt5ngtrsg4LeA4La74LeUfOC2tOC3g+C3iiDgt4Dgtrvgt5R84La04LeZLuC3gHzgtrQu4LeALi8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn4La0LuC3gC4nIHx8IGlucHV0ID09PSAn4La04LeD4LeKIOC3gOC2u+C3lCc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAn4La0LuC3gC4nIDogJ+C2tOC3g+C3iiDgt4Dgtrvgt5QnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfgtrTgt5ku4LeALicgOiAn4La04LeZ4La7IOC3gOC2u+C3lCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2k7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2xvdmFrIFtza11cbi8vISBhdXRob3IgOiBNYXJ0aW4gTWlua2EgOiBodHRwczovL2dpdGh1Yi5jb20vazJzXG4vLyEgYmFzZWQgb24gd29yayBvZiBwZXRyYmVsYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9wZXRyYmVsYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9XG4gICAgICAgICAgICAnamFudcOhcl9mZWJydcOhcl9tYXJlY19hcHLDrWxfbcOhal9qw7puX2rDumxfYXVndXN0X3NlcHRlbWJlcl9va3TDs2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydCA9ICdqYW5fZmViX21hcl9hcHJfbcOhal9qw7puX2rDumxfYXVnX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBwbHVyYWwobikge1xuICAgICAgICByZXR1cm4gbiA+IDEgJiYgbiA8IDU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOiAvLyBhIGZldyBzZWNvbmRzIC8gaW4gYSBmZXcgc2Vjb25kcyAvIGEgZmV3IHNlY29uZHMgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAncMOhciBzZWvDum5kJyA6ICdww6FyIHNla3VuZGFtaSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6IC8vIDkgc2Vjb25kcyAvIGluIDkgc2Vjb25kcyAvIDkgc2Vjb25kcyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Nla3VuZHknIDogJ3Nla8O6bmQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ3Nla3VuZGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbSc6IC8vIGEgbWludXRlIC8gaW4gYSBtaW51dGUgLyBhIG1pbnV0ZSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdtaW7DunRhJyA6IGlzRnV0dXJlID8gJ21pbsO6dHUnIDogJ21pbsO6dG91JztcbiAgICAgICAgICAgIGNhc2UgJ21tJzogLy8gOSBtaW51dGVzIC8gaW4gOSBtaW51dGVzIC8gOSBtaW51dGVzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbWluw7p0eScgOiAnbWluw7p0Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtaW7DunRhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2gnOiAvLyBhbiBob3VyIC8gaW4gYW4gaG91ciAvIGFuIGhvdXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnaG9kaW5hJyA6IGlzRnV0dXJlID8gJ2hvZGludScgOiAnaG9kaW5vdSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6IC8vIDkgaG91cnMgLyBpbiA5IGhvdXJzIC8gOSBob3VycyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2hvZGlueScgOiAnaG9kw61uJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdob2RpbmFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZCc6IC8vIGEgZGF5IC8gaW4gYSBkYXkgLyBhIGRheSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdkZcWIJyA6ICdkxYhvbSc7XG4gICAgICAgICAgICBjYXNlICdkZCc6IC8vIDkgZGF5cyAvIGluIDkgZGF5cyAvIDkgZGF5cyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2RuaScgOiAnZG7DrScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnZMWIYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdNJzogLy8gYSBtb250aCAvIGluIGEgbW9udGggLyBhIG1vbnRoIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2lhYycgOiAnbWVzaWFjb20nO1xuICAgICAgICAgICAgY2FzZSAnTU0nOiAvLyA5IG1vbnRocyAvIGluIDkgbW9udGhzIC8gOSBtb250aHMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtZXNpYWNlJyA6ICdtZXNpYWNvdicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbWVzaWFjbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3knOiAvLyBhIHllYXIgLyBpbiBhIHllYXIgLyBhIHllYXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAncm9rJyA6ICdyb2tvbSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6IC8vIDkgeWVhcnMgLyBpbiA5IHllYXJzIC8gOSB5ZWFycyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Jva3knIDogJ3Jva292Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdyb2ttaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNrID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc2snLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzU2hvcnQsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkZcS+YV9wb25kZWxva191dG9yb2tfc3RyZWRhX8WhdHZydG9rX3BpYXRva19zb2JvdGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZV9wb191dF9zdF/FoXRfcGlfc28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fdXRfc3RfxaF0X3BpX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkbmVzIG9dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbemFqdHJhIG9dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3YgbmVkZcS+dSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IHN0cmVkdSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZvIMWhdHZydG9rIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBwaWF0b2sgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IHNvYm90dSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbdsSNZXJhIG9dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw7ogbmVkZcS+dSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDvV0gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO6IHN0cmVkdSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDvV0gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO6IHNvYm90dSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByZWQgJXMnLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNrO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNsb3ZlbmlhbiBbc2xdXG4vLyEgYXV0aG9yIDogUm9iZXJ0IFNlZG92xaFlayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zZWRvdnNla1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlXG4gICAgICAgICAgICAgICAgICAgID8gJ25la2FqIHNla3VuZCdcbiAgICAgICAgICAgICAgICAgICAgOiAnbmVrYWogc2VrdW5kYW1pJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4ID8gJ3Nla3VuZG8nIDogJ3Nla3VuZGknO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3Nla3VuZGknIDogJ3Nla3VuZGFoJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnc2VrdW5kZScgOiAnc2VrdW5kYWgnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2VuYSBtaW51dGEnIDogJ2VubyBtaW51dG8nO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggPyAnbWludXRhJyA6ICdtaW51dG8nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21pbnV0aScgOiAnbWludXRhbWEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgNSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtaW51dGUnIDogJ21pbnV0YW1pJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtaW51dCcgOiAnbWludXRhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnZW5hIHVyYScgOiAnZW5vIHVybyc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCA/ICd1cmEnIDogJ3Vybyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAndXJpJyA6ICd1cmFtYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3VyZScgOiAndXJhbWknO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3VyJyA6ICd1cmFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdlbiBkYW4nIDogJ2VuaW0gZG5lbSc7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdkYW4nIDogJ2RuZW0nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2RuaScgOiAnZG5ldm9tYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZG5pJyA6ICdkbmV2aSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdlbiBtZXNlYycgOiAnZW5pbSBtZXNlY2VtJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2VjJyA6ICdtZXNlY2VtJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtZXNlY2EnIDogJ21lc2VjZW1hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWVzZWNlJyA6ICdtZXNlY2knO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2VjZXYnIDogJ21lc2VjaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdlbm8gbGV0bycgOiAnZW5pbSBsZXRvbSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdsZXRvJyA6ICdsZXRvbSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbGV0aScgOiAnbGV0b21hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbGV0YScgOiAnbGV0aSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbGV0JyA6ICdsZXRpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NsJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJlY19hcHJpbF9tYWpfanVuaWpfanVsaWpfYXZndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICdqYW4uX2ZlYi5fbWFyLl9hcHIuX21hai5fanVuLl9qdWwuX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZGVsamFfcG9uZWRlbGpla190b3Jla19zcmVkYV/EjWV0cnRla19wZXRla19zb2JvdGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZWQuX3Bvbi5fdG9yLl9zcmUuX8SNZXQuX3BldC5fc29iLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb190b19zcl/EjWVfcGVfc28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC4gTU0uIFlZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZGFuZXMgb2JdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbanV0cmkgb2JdIExUJyxcblxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gW25lZGVsam9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBbc3JlZG9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBbc29ib3RvXSBbb2JdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gZGRkZCBbb2JdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1t2xI1lcmFqIG9iXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcmVqxaFuam9dIFtuZWRlbGpvXSBbb2JdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJlasWhbmpvXSBbc3JlZG9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcmVqxaFuam9dIFtzb2JvdG9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcmVqxaFuamldIGRkZGQgW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnxI1leiAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJlZCAlcycsXG4gICAgICAgICAgICBzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3M6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2w7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQWxiYW5pYW4gW3NxXVxuLy8hIGF1dGhvciA6IEZsYWvDq3JpbSBJc21hbmkgOiBodHRwczovL2dpdGh1Yi5jb20vZmxha2VyaW1pXG4vLyEgYXV0aG9yIDogTWVuZWxpb24gRWxlbnPDumxlIDogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcbi8vISBhdXRob3IgOiBPZXJkIEN1a2FsbGEgOiBodHRwczovL2dpdGh1Yi5jb20vb2VyZFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHNxID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3EnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbmFyX1Noa3VydF9NYXJzX1ByaWxsX01hal9RZXJzaG9yX0tvcnJpa19HdXNodF9TaHRhdG9yX1RldG9yX07Dq250b3JfRGhqZXRvcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fU2hrX01hcl9QcmlfTWFqX1Flcl9Lb3JfR3VzX1NodF9UZXRfTsOrbl9EaGonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnRSBEaWVsX0UgSMOrbsOrX0UgTWFydMOrX0UgTcOrcmt1csOrX0UgRW5qdGVfRSBQcmVtdGVfRSBTaHR1bsOrJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnRGllX0jDq25fTWFyX03Dq3JfRW5qX1ByZV9TaHQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnRF9IX01hX03Dq19FX1BfU2gnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL1BEfE1ELyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQuY2hhckF0KDApID09PSAnTSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBob3VycyA8IDEyID8gJ1BEJyA6ICdNRCc7XG4gICAgICAgIH0sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbU290IG7Dq10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tOZXPDq3IgbsOrXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW27Dq10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tEamUgbsOrXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2Uga2FsdWFyIG7Dq10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICduw6sgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIG3DqyBwYXLDqycsXG4gICAgICAgICAgICBzOiAnZGlzYSBzZWtvbmRhJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vrb25kYScsXG4gICAgICAgICAgICBtOiAnbmrDqyBtaW51dMOrJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRhJyxcbiAgICAgICAgICAgIGg6ICduasOrIG9yw6snLFxuICAgICAgICAgICAgaGg6ICclZCBvcsOrJyxcbiAgICAgICAgICAgIGQ6ICduasOrIGRpdMOrJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGl0w6snLFxuICAgICAgICAgICAgTTogJ25qw6sgbXVhaicsXG4gICAgICAgICAgICBNTTogJyVkIG11YWonLFxuICAgICAgICAgICAgeTogJ25qw6sgdml0JyxcbiAgICAgICAgICAgIHl5OiAnJWQgdml0ZScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2VyYmlhbiBDeXJpbGxpYyBbc3ItY3lybF1cbi8vISBhdXRob3IgOiBNaWxhbiBKYW5hxI1rb3ZpxIc8bWlsYW5qYW5hY2tvdmljQGdtYWlsLmNvbT4gOiBodHRwczovL2dpdGh1Yi5jb20vbWlsYW4talxuLy8hIGF1dGhvciA6IFN0ZWZhbiBDcm5qYWtvdmnEhyA8c3RlZmFuQGhvdG1haWwucnM+IDogaHR0cHM6Ly9naXRodWIuY29tL2Nybmpha292aWNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0cmFuc2xhdG9yID0ge1xuICAgICAgICB3b3Jkczoge1xuICAgICAgICAgICAgLy9EaWZmZXJlbnQgZ3JhbW1hdGljYWwgY2FzZXNcbiAgICAgICAgICAgIHNzOiBbJ9GB0LXQutGD0L3QtNCwJywgJ9GB0LXQutGD0L3QtNC1JywgJ9GB0LXQutGD0L3QtNC4J10sXG4gICAgICAgICAgICBtOiBbJ9GY0LXQtNCw0L0g0LzQuNC90YPRgicsICfRmNC10LTQvdC+0LMg0LzQuNC90YPRgtCwJ10sXG4gICAgICAgICAgICBtbTogWyfQvNC40L3Rg9GCJywgJ9C80LjQvdGD0YLQsCcsICfQvNC40L3Rg9GC0LAnXSxcbiAgICAgICAgICAgIGg6IFsn0ZjQtdC00LDQvSDRgdCw0YInLCAn0ZjQtdC00L3QvtCzINGB0LDRgtCwJ10sXG4gICAgICAgICAgICBoaDogWyfRgdCw0YInLCAn0YHQsNGC0LAnLCAn0YHQsNGC0LgnXSxcbiAgICAgICAgICAgIGQ6IFsn0ZjQtdC00LDQvSDQtNCw0L0nLCAn0ZjQtdC00L3QvtCzINC00LDQvdCwJ10sXG4gICAgICAgICAgICBkZDogWyfQtNCw0L0nLCAn0LTQsNC90LAnLCAn0LTQsNC90LAnXSxcbiAgICAgICAgICAgIE06IFsn0ZjQtdC00LDQvSDQvNC10YHQtdGGJywgJ9GY0LXQtNC90L7QsyDQvNC10YHQtdGG0LAnXSxcbiAgICAgICAgICAgIE1NOiBbJ9C80LXRgdC10YYnLCAn0LzQtdGB0LXRhtCwJywgJ9C80LXRgdC10YbQuCddLFxuICAgICAgICAgICAgeTogWyfRmNC10LTQvdGDINCz0L7QtNC40L3RgycsICfRmNC10LTQvdC1INCz0L7QtNC40L3QtSddLFxuICAgICAgICAgICAgeXk6IFsn0LPQvtC00LjQvdGDJywgJ9Cz0L7QtNC40L3QtScsICfQs9C+0LTQuNC90LAnXSxcbiAgICAgICAgfSxcbiAgICAgICAgY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTogZnVuY3Rpb24gKG51bWJlciwgd29yZEtleSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG51bWJlciAlIDEwID49IDEgJiZcbiAgICAgICAgICAgICAgICBudW1iZXIgJSAxMCA8PSA0ICYmXG4gICAgICAgICAgICAgICAgKG51bWJlciAlIDEwMCA8IDEwIHx8IG51bWJlciAlIDEwMCA+PSAyMClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgJSAxMCA9PT0gMSA/IHdvcmRLZXlbMF0gOiB3b3JkS2V5WzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdvcmRLZXlbMl07XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zbGF0ZTogZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgdmFyIHdvcmRLZXkgPSB0cmFuc2xhdG9yLndvcmRzW2tleV0sXG4gICAgICAgICAgICAgICAgd29yZDtcblxuICAgICAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAvLyBOb21pbmF0aXZcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAneScgJiYgd2l0aG91dFN1ZmZpeCkgcmV0dXJuICfRmNC10LTQvdCwINCz0L7QtNC40L3QsCc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyB3b3JkS2V5WzBdIDogd29yZEtleVsxXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd29yZCA9IHRyYW5zbGF0b3IuY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShudW1iZXIsIHdvcmRLZXkpO1xuICAgICAgICAgICAgLy8gTm9taW5hdGl2XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAneXknICYmIHdpdGhvdXRTdWZmaXggJiYgd29yZCA9PT0gJ9Cz0L7QtNC40L3RgycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDQs9C+0LTQuNC90LAnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgd29yZDtcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgdmFyIHNyQ3lybCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NyLWN5cmwnLCB7XG4gICAgICAgIG1vbnRoczogJ9GY0LDQvdGD0LDRgF/RhNC10LHRgNGD0LDRgF/QvNCw0YDRgl/QsNC/0YDQuNC7X9C80LDRmF/RmNGD0L1f0ZjRg9C7X9Cw0LLQs9GD0YHRgl/RgdC10L/RgtC10LzQsdCw0YBf0L7QutGC0L7QsdCw0YBf0L3QvtCy0LXQvNCx0LDRgF/QtNC10YbQtdC80LHQsNGAJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfRmNCw0L0uX9GE0LXQsS5f0LzQsNGALl/QsNC/0YAuX9C80LDRmF/RmNGD0L1f0ZjRg9C7X9Cw0LLQsy5f0YHQtdC/Ll/QvtC60YIuX9C90L7Qsi5f0LTQtdGGLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfQvdC10LTQtdGZ0LBf0L/QvtC90LXQtNC10ZnQsNC6X9GD0YLQvtGA0LDQul/RgdGA0LXQtNCwX9GH0LXRgtCy0YDRgtCw0Lpf0L/QtdGC0LDQul/RgdGD0LHQvtGC0LAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQvdC10LQuX9C/0L7QvS5f0YPRgtC+Ll/RgdGA0LUuX9GH0LXRgi5f0L/QtdGCLl/RgdGD0LEuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9C90LVf0L/Qvl/Rg9GCX9GB0YBf0YfQtV/Qv9C1X9GB0YMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdELiBNLiBZWVlZLicsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWS4nLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZLiBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkuIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQtNCw0L3QsNGBINGDXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9GB0YPRgtGA0LAg0YNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9GDXSBb0L3QtdC00LXRmdGDXSBb0YNdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0YNdIFvRgdGA0LXQtNGDXSBb0YNdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0YNdIFvRgdGD0LHQvtGC0YNdIFvRg10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vRg10gZGRkZCBb0YNdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1vRmNGD0YfQtSDRg10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFdlZWtEYXlzID0gW1xuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQtV0gW9C90LXQtNC10ZnQtV0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C+0LNdIFvQv9C+0L3QtdC00LXRmdC60LBdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQvtCzXSBb0YPRgtC+0YDQutCwXSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70LVdIFvRgdGA0LXQtNC1XSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70L7Qs10gW9GH0LXRgtCy0YDRgtC60LBdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQvtCzXSBb0L/QtdGC0LrQsF0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C1XSBb0YHRg9Cx0L7RgtC1XSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBsYXN0V2Vla0RheXNbdGhpcy5kYXkoKV07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQt9CwICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfQv9GA0LUgJXMnLFxuICAgICAgICAgICAgczogJ9C90LXQutC+0LvQuNC60L4g0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDFzdCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzckN5cmw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2VyYmlhbiBbc3JdXG4vLyEgYXV0aG9yIDogTWlsYW4gSmFuYcSNa292acSHPG1pbGFuamFuYWNrb3ZpY0BnbWFpbC5jb20+IDogaHR0cHM6Ly9naXRodWIuY29tL21pbGFuLWpcbi8vISBhdXRob3IgOiBTdGVmYW4gQ3JuamFrb3ZpxIcgPHN0ZWZhbkBob3RtYWlsLnJzPiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jcm5qYWtvdmljXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdHJhbnNsYXRvciA9IHtcbiAgICAgICAgd29yZHM6IHtcbiAgICAgICAgICAgIC8vRGlmZmVyZW50IGdyYW1tYXRpY2FsIGNhc2VzXG4gICAgICAgICAgICBzczogWydzZWt1bmRhJywgJ3Nla3VuZGUnLCAnc2VrdW5kaSddLFxuICAgICAgICAgICAgbTogWydqZWRhbiBtaW51dCcsICdqZWRub2cgbWludXRhJ10sXG4gICAgICAgICAgICBtbTogWydtaW51dCcsICdtaW51dGEnLCAnbWludXRhJ10sXG4gICAgICAgICAgICBoOiBbJ2plZGFuIHNhdCcsICdqZWRub2cgc2F0YSddLFxuICAgICAgICAgICAgaGg6IFsnc2F0JywgJ3NhdGEnLCAnc2F0aSddLFxuICAgICAgICAgICAgZDogWydqZWRhbiBkYW4nLCAnamVkbm9nIGRhbmEnXSxcbiAgICAgICAgICAgIGRkOiBbJ2RhbicsICdkYW5hJywgJ2RhbmEnXSxcbiAgICAgICAgICAgIE06IFsnamVkYW4gbWVzZWMnLCAnamVkbm9nIG1lc2VjYSddLFxuICAgICAgICAgICAgTU06IFsnbWVzZWMnLCAnbWVzZWNhJywgJ21lc2VjaSddLFxuICAgICAgICAgICAgeTogWydqZWRudSBnb2RpbnUnLCAnamVkbmUgZ29kaW5lJ10sXG4gICAgICAgICAgICB5eTogWydnb2RpbnUnLCAnZ29kaW5lJywgJ2dvZGluYSddLFxuICAgICAgICB9LFxuICAgICAgICBjb3JyZWN0R3JhbW1hdGljYWxDYXNlOiBmdW5jdGlvbiAobnVtYmVyLCB3b3JkS2V5KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbnVtYmVyICUgMTAgPj0gMSAmJlxuICAgICAgICAgICAgICAgIG51bWJlciAlIDEwIDw9IDQgJiZcbiAgICAgICAgICAgICAgICAobnVtYmVyICUgMTAwIDwgMTAgfHwgbnVtYmVyICUgMTAwID49IDIwKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciAlIDEwID09PSAxID8gd29yZEtleVswXSA6IHdvcmRLZXlbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd29yZEtleVsyXTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgICAgICB2YXIgd29yZEtleSA9IHRyYW5zbGF0b3Iud29yZHNba2V5XSxcbiAgICAgICAgICAgICAgICB3b3JkO1xuXG4gICAgICAgICAgICBpZiAoa2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIC8vIE5vbWluYXRpdlxuICAgICAgICAgICAgICAgIGlmIChrZXkgPT09ICd5JyAmJiB3aXRob3V0U3VmZml4KSByZXR1cm4gJ2plZG5hIGdvZGluYSc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyB3b3JkS2V5WzBdIDogd29yZEtleVsxXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd29yZCA9IHRyYW5zbGF0b3IuY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShudW1iZXIsIHdvcmRLZXkpO1xuICAgICAgICAgICAgLy8gTm9taW5hdGl2XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAneXknICYmIHdpdGhvdXRTdWZmaXggJiYgd29yZCA9PT0gJ2dvZGludScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyBnb2RpbmEnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgd29yZDtcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgdmFyIHNyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3InLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bl9qdWxfYXZndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICdqYW4uX2ZlYi5fbWFyLl9hcHIuX21hal9qdW5fanVsX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWRlbGphX3BvbmVkZWxqYWtfdXRvcmFrX3NyZWRhX8SNZXR2cnRha19wZXRha19zdWJvdGEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZWQuX3Bvbi5fdXRvLl9zcmUuX8SNZXQuX3BldC5fc3ViLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb191dF9zcl/EjWVfcGVfc3UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdELiBNLiBZWVlZLicsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWS4nLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZLiBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkuIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkYW5hcyB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3N1dHJhIHVdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtuZWRlbGp1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3JlZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzdWJvdHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdcSNZSB1XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBsYXN0V2Vla0RheXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW25lZGVsamVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFtwb25lZGVsamthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbdXRvcmthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtzcmVkZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW8SNZXR2cnRrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3BldGthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdFdlZWtEYXlzW3RoaXMuZGF5KCldO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByZSAlcycsXG4gICAgICAgICAgICBzOiAnbmVrb2xpa28gc2VrdW5kaScsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IHNpU3dhdGkgW3NzXVxuLy8hIGF1dGhvciA6IE5pY29sYWkgRGF2aWVzPG1haWxAbmljb2xhaS5pbz4gOiBodHRwczovL2dpdGh1Yi5jb20vbmljb2xhaWRhdmllc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHNzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3MnLCB7XG4gICAgICAgIG1vbnRoczogXCJCaGltYmlkdndhbmVfSW5kbG92YW5hX0luZGxvdidsZW5raHVsdV9NYWJhc2FfSW5raHdla2h3ZXRpX0luaGxhYmFfS2hvbHdhbmVfSW5nY2lfSW55b25pX0ltcGhhbGFfTHdldGlfSW5nb25nb25pXCIuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdCaGlfSW5hX0ludV9NYWJfSW5rX0luaF9LaG9fSWdjX0lueV9JbXBfTHdlX0lnbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnTGlzb250Zm9fVW1zb21idWx1a29fTGVzaWJpbGlfTGVzaXRzYXRmdV9MZXNpbmVfTGVzaWhsYW51X1VtZ2NpYmVsbycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnTGlzX1VtYl9Mc2JfTGVzX0xzaV9Mc2hfVW1nJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0xpX1VzX0xiX0x0X0xzX0xoX1VnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW05hbXVobGEgbmdhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0t1c2FzYSBuZ2FdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbbmdhXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0l0b2xvIG5nYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtsZWxpcGhlbGlsZV0gW25nYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICduZ2EgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3dlbnRla2EgbmdhICVzJyxcbiAgICAgICAgICAgIHM6ICdlbWl6dXp3YW5hIGxvbWNhbmUnLFxuICAgICAgICAgICAgc3M6ICclZCBtenV6d2FuYScsXG4gICAgICAgICAgICBtOiAndW16dXp1JyxcbiAgICAgICAgICAgIG1tOiAnJWQgZW1penV6dScsXG4gICAgICAgICAgICBoOiAnbGlob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgZW1haG9yYScsXG4gICAgICAgICAgICBkOiAnbGlsYW5nYScsXG4gICAgICAgICAgICBkZDogJyVkIGVtYWxhbmdhJyxcbiAgICAgICAgICAgIE06ICdpbnlhbmdhJyxcbiAgICAgICAgICAgIE1NOiAnJWQgdGlueWFuZ2EnLFxuICAgICAgICAgICAgeTogJ3Vtbnlha2EnLFxuICAgICAgICAgICAgeXk6ICclZCBpbWlueWFrYScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9la3VzZW5pfGVtaW5pfGVudHNhbWJhbWF8ZWJ1c3VrdS8sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdla3VzZW5pJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZW1pbmknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlbnRzYW1iYW1hJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlYnVzdWt1JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAnZWt1c2VuaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdlbWluaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnZW50c2FtYmFtYScgfHwgbWVyaWRpZW0gPT09ICdlYnVzdWt1Jykge1xuICAgICAgICAgICAgICAgIGlmIChob3VyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiAnJWQnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3M7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3dlZGlzaCBbc3ZdXG4vLyEgYXV0aG9yIDogSmVucyBBbG0gOiBodHRwczovL2dpdGh1Yi5jb20vdWxtdXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3N2Jywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJpX2ZlYnJ1YXJpX21hcnNfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3RpX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ3PDtm5kYWdfbcOlbmRhZ190aXNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2zDtnJkYWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzw7ZuX23DpW5fdGlzX29uc190b3JfZnJlX2zDtnInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc8O2X23DpV90aV9vbl90b19mcl9sw7YnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICAgICAgbGxsOiAnRCBNTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkIEQgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tJZGFnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0ltb3Jnb25dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSWfDpXJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW1DDpV0gZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tJXSBkZGRkW3NdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb20gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2bDtnIgJXMgc2VkYW4nLFxuICAgICAgICAgICAgczogJ27DpWdyYSBzZWt1bmRlcicsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZGVyJyxcbiAgICAgICAgICAgIG06ICdlbiBtaW51dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXInLFxuICAgICAgICAgICAgaDogJ2VuIHRpbW1lJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdGltbWFyJyxcbiAgICAgICAgICAgIGQ6ICdlbiBkYWcnLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdhcicsXG4gICAgICAgICAgICBNOiAnZW4gbcOlbmFkJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOlbmFkZXInLFxuICAgICAgICAgICAgeTogJ2V0dCDDpXInLFxuICAgICAgICAgICAgeXk6ICclZCDDpXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oXFw6ZXxcXDphKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJzplJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICc6YSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnOmEnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJzplJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnOmUnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFN3YWhpbGkgW3N3XVxuLy8hIGF1dGhvciA6IEZhaGFkIEthc3NpbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWRzZWxcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3N3Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hY2hpX0FwcmlsaV9NZWlfSnVuaV9KdWxhaV9BZ29zdGlfU2VwdGVtYmFfT2t0b2JhX05vdmVtYmFfRGVzZW1iYScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfQWdvX1NlcF9Pa3RfTm92X0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnSnVtYXBpbGlfSnVtYXRhdHVfSnVtYW5uZV9KdW1hdGFub19BbGhhbWlzaV9JanVtYWFfSnVtYW1vc2knLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0pwbF9KdGF0X0pubmVfSnRhbl9BbGhfSWptX0ptb3MnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnSjJfSjNfSjRfSjVfQWxfSWpfSjEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaGg6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2xlbyBzYWFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdba2VzaG8gc2FhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1t3aWtpIGlqYXlvXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2phbmFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3dpa2kgaWxpeW9waXRhXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIGJhYWRheWUnLFxuICAgICAgICAgICAgcGFzdDogJ3Rva2VhICVzJyxcbiAgICAgICAgICAgIHM6ICdoaXZpIHB1bmRlJyxcbiAgICAgICAgICAgIHNzOiAnc2VrdW5kZSAlZCcsXG4gICAgICAgICAgICBtOiAnZGFraWthIG1vamEnLFxuICAgICAgICAgICAgbW06ICdkYWtpa2EgJWQnLFxuICAgICAgICAgICAgaDogJ3NhYSBsaW1vamEnLFxuICAgICAgICAgICAgaGg6ICdtYXNhYSAlZCcsXG4gICAgICAgICAgICBkOiAnc2lrdSBtb2phJyxcbiAgICAgICAgICAgIGRkOiAnc2lrdSAlZCcsXG4gICAgICAgICAgICBNOiAnbXdlemkgbW1vamEnLFxuICAgICAgICAgICAgTU06ICdtaWV6aSAlZCcsXG4gICAgICAgICAgICB5OiAnbXdha2EgbW1vamEnLFxuICAgICAgICAgICAgeXk6ICdtaWFrYSAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzdztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUYW1pbCBbdGFdXG4vLyEgYXV0aG9yIDogQXJqdW5rdW1hciBLcmlzaG5hbW9vcnRoeSA6IGh0dHBzOi8vZ2l0aHViLmNvbS90azEyMDQwNFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgIDE6ICfgr6cnLFxuICAgICAgICAgICAgMjogJ+CvqCcsXG4gICAgICAgICAgICAzOiAn4K+pJyxcbiAgICAgICAgICAgIDQ6ICfgr6onLFxuICAgICAgICAgICAgNTogJ+CvqycsXG4gICAgICAgICAgICA2OiAn4K+sJyxcbiAgICAgICAgICAgIDc6ICfgr60nLFxuICAgICAgICAgICAgODogJ+CvricsXG4gICAgICAgICAgICA5OiAn4K+vJyxcbiAgICAgICAgICAgIDA6ICfgr6YnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4K+nJzogJzEnLFxuICAgICAgICAgICAgJ+CvqCc6ICcyJyxcbiAgICAgICAgICAgICfgr6knOiAnMycsXG4gICAgICAgICAgICAn4K+qJzogJzQnLFxuICAgICAgICAgICAgJ+Cvqyc6ICc1JyxcbiAgICAgICAgICAgICfgr6wnOiAnNicsXG4gICAgICAgICAgICAn4K+tJzogJzcnLFxuICAgICAgICAgICAgJ+Cvric6ICc4JyxcbiAgICAgICAgICAgICfgr68nOiAnOScsXG4gICAgICAgICAgICAn4K+mJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIHRhID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGEnLCB7XG4gICAgICAgIG1vbnRoczogJ+CunOCuqeCuteCusOCuv1/grqrgrr/grqrgr43grrDgrrXgrrDgrr9f4K6u4K6+4K6w4K+N4K6a4K+NX+Cuj+CuquCvjeCusOCusuCvjV/grq7gr4df4K6c4K+C4K6p4K+NX+CunOCvguCusuCviF/grobgrpXgrrjgr43grp/gr41f4K6a4K+G4K6q4K+N4K6f4K+G4K6u4K+N4K6q4K6w4K+NX+CuheCuleCvjeCun+Cvh+CuvuCuquCusOCvjV/grqjgrrXgrq7gr43grqrgrrDgr41f4K6f4K6/4K6a4K6u4K+N4K6q4K6w4K+NJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfgrpzgrqngrrXgrrDgrr9f4K6q4K6/4K6q4K+N4K6w4K614K6w4K6/X+CuruCuvuCusOCvjeCumuCvjV/gro/grqrgr43grrDgrrLgr41f4K6u4K+HX+CunOCvguCuqeCvjV/grpzgr4LgrrLgr4hf4K6G4K6V4K644K+N4K6f4K+NX+CumuCvhuCuquCvjeCun+CvhuCuruCvjeCuquCusOCvjV/groXgrpXgr43grp/gr4fgrr7grqrgrrDgr41f4K6o4K614K6u4K+N4K6q4K6w4K+NX+Cun+Cuv+CumuCuruCvjeCuquCusOCvjScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICfgrp7grr7grq/grr/grrHgr43grrHgr4HgrpXgr43grpXgrr/grrTgrq7gr4hf4K6k4K6/4K6Z4K+N4K6V4K6f4K+N4K6V4K6/4K604K6u4K+IX+CumuCvhuCuteCvjeCuteCuvuCur+CvjeCuleCuv+CutOCuruCviF/grqrgr4HgrqTgrqngr43grpXgrr/grrTgrq7gr4hf4K614K6/4K6v4K6+4K604K6V4K+N4K6V4K6/4K604K6u4K+IX+CuteCvhuCus+CvjeCus+Cuv+CuleCvjeCuleCuv+CutOCuruCviF/grprgrqngrr/grpXgr43grpXgrr/grrTgrq7gr4gnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CunuCuvuCur+Cuv+CuseCvgV/grqTgrr/grpngr43grpXgrrPgr41f4K6a4K+G4K614K+N4K614K6+4K6v4K+NX+CuquCvgeCupOCuqeCvjV/grrXgrr/grq/grr7grrTgrqngr41f4K614K+G4K6z4K+N4K6z4K6/X+CumuCuqeCuvycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgrp7grr5f4K6k4K6/X+CumuCvhl/grqrgr4Ff4K614K6/X+CuteCvhl/grponLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgrofgrqngr43grrHgr4FdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4K6o4K6+4K6z4K+IXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4K6o4K+H4K6x4K+N4K6x4K+BXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgrpXgrp/grqjgr43grqQg4K614K6+4K6w4K6u4K+NXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCuh+CusuCvjScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4K6u4K+B4K6p4K+NJyxcbiAgICAgICAgICAgIHM6ICfgrpLgrrDgr4Eg4K6a4K6/4K6yIOCuteCuv+CuqOCuvuCun+Cuv+CuleCus+CvjScsXG4gICAgICAgICAgICBzczogJyVkIOCuteCuv+CuqOCuvuCun+Cuv+CuleCus+CvjScsXG4gICAgICAgICAgICBtOiAn4K6S4K6w4K+BIOCuqOCuv+CuruCuv+Cun+CuruCvjScsXG4gICAgICAgICAgICBtbTogJyVkIOCuqOCuv+CuruCuv+Cun+CumeCvjeCuleCus+CvjScsXG4gICAgICAgICAgICBoOiAn4K6S4K6w4K+BIOCuruCuo+CuvyDgrqjgr4fgrrDgrq7gr40nLFxuICAgICAgICAgICAgaGg6ICclZCDgrq7grqPgrr8g4K6o4K+H4K6w4K6u4K+NJyxcbiAgICAgICAgICAgIGQ6ICfgrpLgrrDgr4Eg4K6o4K6+4K6z4K+NJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4K6o4K6+4K6f4K+N4K6V4K6z4K+NJyxcbiAgICAgICAgICAgIE06ICfgrpLgrrDgr4Eg4K6u4K6+4K6k4K6u4K+NJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4K6u4K6+4K6k4K6Z4K+N4K6V4K6z4K+NJyxcbiAgICAgICAgICAgIHk6ICfgrpLgrrDgr4Eg4K614K6w4K+B4K6f4K6u4K+NJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4K6G4K6j4K+N4K6f4K+B4K6V4K6z4K+NJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ94K614K6k4K+BLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfgrrXgrqTgr4EnO1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4K+n4K+o4K+p4K+q4K+r4K+s4K+t4K+u4K+v4K+mXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAvLyByZWZlciBodHRwOi8vdGEud2lraXBlZGlhLm9yZy9zLzFlcjFcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+Cur+CuvuCuruCuruCvjXzgrrXgr4jgrpXgrrHgr4h84K6V4K6+4K6y4K+IfOCuqOCuo+CvjeCuquCuleCusuCvjXzgro7grrHgr43grqrgrr7grp/gr4F84K6u4K6+4K6y4K+ILyxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCur+CuvuCuruCuruCvjSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCA2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K614K+I4K6V4K6x4K+IJzsgLy8g4K614K+I4K6V4K6x4K+IXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCuleCuvuCusuCviCc7IC8vIOCuleCuvuCusuCviFxuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrqjgrqPgr43grqrgrpXgrrLgr40nOyAvLyDgrqjgrqPgr43grqrgrpXgrrLgr41cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6O4K6x4K+N4K6q4K6+4K6f4K+BJzsgLy8g4K6O4K6x4K+N4K6q4K6+4K6f4K+BXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCuruCuvuCusuCviCc7IC8vIOCuruCuvuCusuCviFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrq/grr7grq7grq7gr40nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgrq/grr7grq7grq7gr40nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCAyID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgrrXgr4jgrpXgrrHgr4gnIHx8IG1lcmlkaWVtID09PSAn4K6V4K6+4K6y4K+IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CuqOCuo+CvjeCuquCuleCusuCvjScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0YTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUZWx1Z3UgW3RlXVxuLy8hIGF1dGhvciA6IEtyaXNobmEgQ2hhaXRhbnlhIFRob3RhIDogaHR0cHM6Ly9naXRodWIuY29tL2tjdGhvdGFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0ZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RlJywge1xuICAgICAgICBtb250aHM6ICfgsJzgsKjgsLXgsLDgsL9f4LCr4LC/4LCs4LGN4LCw4LC14LCw4LC/X+CwruCwvuCwsOCxjeCwmuCwv1/gsI/gsKrgsY3gsLDgsL/gsLLgsY1f4LCu4LGHX+CwnOCxguCwqOCxjV/gsJzgsYHgsLLgsYhf4LCG4LCX4LC44LGN4LCf4LGBX+CwuOCxhuCwquCxjeCwn+CxhuCwguCwrOCwsOCxjV/gsIXgsJXgsY3gsJ/gsYvgsKzgsLDgsY1f4LCo4LC14LCC4LCs4LCw4LGNX+CwoeCwv+CwuOCxhuCwguCwrOCwsOCxjScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAn4LCc4LCoLl/gsKvgsL/gsKzgsY3gsLAuX+CwruCwvuCwsOCxjeCwmuCwv1/gsI/gsKrgsY3gsLDgsL8uX+CwruCxh1/gsJzgsYLgsKjgsY1f4LCc4LGB4LCy4LGIX+CwhuCwly5f4LC44LGG4LCq4LGNLl/gsIXgsJXgsY3gsJ/gsYsuX+CwqOCwtS5f4LCh4LC/4LC44LGGLicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICfgsIbgsKbgsL/gsLXgsL7gsLDgsIJf4LC44LGL4LCu4LC14LC+4LCw4LCCX+CwruCwguCwl+Cws+CwteCwvuCwsOCwgl/gsKzgsYHgsKfgsLXgsL7gsLDgsIJf4LCX4LGB4LCw4LGB4LC14LC+4LCw4LCCX+CwtuCxgeCwleCxjeCwsOCwteCwvuCwsOCwgl/gsLbgsKjgsL/gsLXgsL7gsLDgsIInLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CwhuCwpuCwv1/gsLjgsYvgsK5f4LCu4LCC4LCX4LCzX+CwrOCxgeCwp1/gsJfgsYHgsLDgsYFf4LC24LGB4LCV4LGN4LCwX+CwtuCwqOCwvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgsIZf4LC44LGLX+CwruCwgl/gsKzgsYFf4LCX4LGBX+CwtuCxgV/gsLYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4LCo4LGH4LCh4LGBXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CwsOCxh+CwquCxgV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CwqOCwv+CwqOCxjeCwqF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4LCX4LCkXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCwsuCxiycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4LCV4LGN4LCw4LC/4LCk4LCCJyxcbiAgICAgICAgICAgIHM6ICfgsJXgsYrgsKjgsY3gsKjgsL8g4LCV4LGN4LC34LCj4LC+4LCy4LGBJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4LC44LGG4LCV4LCo4LGN4LCy4LGBJyxcbiAgICAgICAgICAgIG06ICfgsJLgsJUg4LCo4LC/4LCu4LC/4LC34LCCJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LCo4LC/4LCu4LC/4LC34LC+4LCy4LGBJyxcbiAgICAgICAgICAgIGg6ICfgsJLgsJUg4LCX4LCC4LCfJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LCX4LCC4LCf4LCy4LGBJyxcbiAgICAgICAgICAgIGQ6ICfgsJLgsJUg4LCw4LGL4LCc4LGBJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4LCw4LGL4LCc4LGB4LCy4LGBJyxcbiAgICAgICAgICAgIE06ICfgsJLgsJUg4LCo4LGG4LCyJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4LCo4LGG4LCy4LCy4LGBJyxcbiAgICAgICAgICAgIHk6ICfgsJLgsJUg4LC44LCC4LC14LCk4LGN4LC44LCw4LCCJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4LC44LCC4LC14LCk4LGN4LC44LCw4LC+4LCy4LGBJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ94LC1LyxcbiAgICAgICAgb3JkaW5hbDogJyVk4LC1JyxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CwsOCwvuCwpOCxjeCwsOCwv3zgsIngsKbgsK/gsIJ84LCu4LCn4LGN4LCv4LC+4LC54LGN4LCo4LCCfOCwuOCwvuCwr+CwguCwpOCxjeCwsOCwgi8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CwsOCwvuCwpOCxjeCwsOCwvycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CwieCwpuCwr+CwgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsK7gsKfgsY3gsK/gsL7gsLngsY3gsKjgsIInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CwuOCwvuCwr+CwguCwpOCxjeCwsOCwgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsLDgsL7gsKTgsY3gsLDgsL8nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CwieCwpuCwr+Cwgic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LCu4LCn4LGN4LCv4LC+4LC54LGN4LCo4LCCJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsLjgsL7gsK/gsILgsKTgsY3gsLDgsIInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CwsOCwvuCwpOCxjeCwsOCwvyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUZXR1biBEaWxpIChFYXN0IFRpbW9yKSBbdGV0XVxuLy8hIGF1dGhvciA6IEpvc2h1YSBCcm9va3MgOiBodHRwczovL2dpdGh1Yi5jb20vam9zaGJyb29rc1xuLy8hIGF1dGhvciA6IE9ub3JpbyBEZSBKLiBBZm9uc28gOiBodHRwczovL2dpdGh1Yi5jb20vbWFyb2JvXG4vLyEgYXV0aG9yIDogU29uaWEgU2ltb2VzIDogaHR0cHM6Ly9naXRodWIuY29tL3Nvbmlhc2ltb2VzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdGV0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGV0Jywge1xuICAgICAgICBtb250aHM6ICdKYW5laXJ1X0ZldmVyZWlydV9NYXJzdV9BYnJpbF9NYWl1X0p1w7F1X0p1bGx1X0FndXN0dV9TZXRlbWJydV9PdXR1YnJ1X05vdmVtYnJ1X0RlemVtYnJ1Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZXZfTWFyX0Ficl9NYWlfSnVuX0p1bF9BZ29fU2V0X091dF9Ob3ZfRGV6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0RvbWluZ3VfU2VndW5kYV9UZXJzYV9LdWFydGFfS2ludGFfU2VzdGFfU2FiYWR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnRG9tX1NlZ19UZXJzX0t1YV9LaW50X1Nlc3RfU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0RvX1NlZ19UZV9LdV9LaV9TZXNfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbT2hpbiBpaGFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQWJhbiBpaGFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbaWhhXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0hvcmlzZWlrIGloYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtzZW1hbmEga290dWtdIFtpaGFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaWhhICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBsaXViYScsXG4gICAgICAgICAgICBzOiAnc2VndW5kdSBiYWx1bicsXG4gICAgICAgICAgICBzczogJ3NlZ3VuZHUgJWQnLFxuICAgICAgICAgICAgbTogJ21pbnV0dSBpZGEnLFxuICAgICAgICAgICAgbW06ICdtaW51dHUgJWQnLFxuICAgICAgICAgICAgaDogJ29yYXMgaWRhJyxcbiAgICAgICAgICAgIGhoOiAnb3JhcyAlZCcsXG4gICAgICAgICAgICBkOiAnbG9yb24gaWRhJyxcbiAgICAgICAgICAgIGRkOiAnbG9yb24gJWQnLFxuICAgICAgICAgICAgTTogJ2Z1bGFuIGlkYScsXG4gICAgICAgICAgICBNTTogJ2Z1bGFuICVkJyxcbiAgICAgICAgICAgIHk6ICd0aW5hbiBpZGEnLFxuICAgICAgICAgICAgeXk6ICd0aW5hbiAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGFqaWsgW3RnXVxuLy8hIGF1dGhvciA6IE9yaWYgTi4gSnIuIDogaHR0cHM6Ly9naXRodWIuY29tL29yaWYtanJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMDogJy3Rg9C8JyxcbiAgICAgICAgMTogJy3Rg9C8JyxcbiAgICAgICAgMjogJy3RjtC8JyxcbiAgICAgICAgMzogJy3RjtC8JyxcbiAgICAgICAgNDogJy3Rg9C8JyxcbiAgICAgICAgNTogJy3Rg9C8JyxcbiAgICAgICAgNjogJy3Rg9C8JyxcbiAgICAgICAgNzogJy3Rg9C8JyxcbiAgICAgICAgODogJy3Rg9C8JyxcbiAgICAgICAgOTogJy3Rg9C8JyxcbiAgICAgICAgMTA6ICct0YPQvCcsXG4gICAgICAgIDEyOiAnLdGD0LwnLFxuICAgICAgICAxMzogJy3Rg9C8JyxcbiAgICAgICAgMjA6ICct0YPQvCcsXG4gICAgICAgIDMwOiAnLdGO0LwnLFxuICAgICAgICA0MDogJy3Rg9C8JyxcbiAgICAgICAgNTA6ICct0YPQvCcsXG4gICAgICAgIDYwOiAnLdGD0LwnLFxuICAgICAgICA3MDogJy3Rg9C8JyxcbiAgICAgICAgODA6ICct0YPQvCcsXG4gICAgICAgIDkwOiAnLdGD0LwnLFxuICAgICAgICAxMDA6ICct0YPQvCcsXG4gICAgfTtcblxuICAgIHZhciB0ZyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RnJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9GP0L3QstCw0YDQuF/RhNC10LLRgNCw0LvQuF/QvNCw0YDRgtC4X9Cw0L/RgNC10LvQuF/QvNCw0LnQuF/QuNGO0L3QuF/QuNGO0LvQuF/QsNCy0LPRg9GB0YLQuF/RgdC10L3RgtGP0LHRgNC4X9C+0LrRgtGP0LHRgNC4X9C90L7Rj9Cx0YDQuF/QtNC10LrQsNCx0YDQuCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTpcbiAgICAgICAgICAgICAgICAn0Y/QvdCy0LDRgF/RhNC10LLRgNCw0Ltf0LzQsNGA0YJf0LDQv9GA0LXQu1/QvNCw0Llf0LjRjtC9X9C40Y7Qu1/QsNCy0LPRg9GB0YJf0YHQtdC90YLRj9Cx0YBf0L7QutGC0Y/QsdGAX9C90L7Rj9Cx0YBf0LTQtdC60LDQsdGAJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRj9C90LJf0YTQtdCyX9C80LDRgF/QsNC/0YBf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCzX9GB0LXQvV/QvtC60YJf0L3QvtGPX9C00LXQuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfRj9C60YjQsNC90LHQtV/QtNGD0YjQsNC90LHQtV/RgdC10YjQsNC90LHQtV/Rh9C+0YDRiNCw0L3QsdC1X9C/0LDQvdK30YjQsNC90LHQtV/St9GD0LzRitCwX9GI0LDQvdCx0LUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfRj9GI0LFf0LTRiNCxX9GB0YjQsV/Rh9GI0LFf0L/RiNCxX9K30YPQvF/RiNC90LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0Y/RiF/QtNGIX9GB0Yhf0YfRiF/Qv9GIX9K30Lxf0YjQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQmNC80YDTr9C3INGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0KTQsNGA0LTQviDRgdC+0LDRgtC4XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9CU0LjRgNOv0Lcg0YHQvtCw0YLQuF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkW9C4XSBb0rPQsNGE0YLQsNC4INC+0Y/QvdC00LAg0YHQvtCw0YLQuF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkW9C4XSBb0rPQsNGE0YLQsNC4INCz0YPQt9Cw0YjRgtCwINGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0LHQsNGK0LTQuCAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0L/QtdGIJyxcbiAgICAgICAgICAgIHM6ICfRj9C60YfQsNC90LQg0YHQvtC90LjRjycsXG4gICAgICAgICAgICBtOiAn0Y/QuiDQtNCw0pvQuNKb0LAnLFxuICAgICAgICAgICAgbW06ICclZCDQtNCw0pvQuNKb0LAnLFxuICAgICAgICAgICAgaDogJ9GP0Log0YHQvtCw0YInLFxuICAgICAgICAgICAgaGg6ICclZCDRgdC+0LDRgicsXG4gICAgICAgICAgICBkOiAn0Y/QuiDRgNOv0LcnLFxuICAgICAgICAgICAgZGQ6ICclZCDRgNOv0LcnLFxuICAgICAgICAgICAgTTogJ9GP0Log0LzQvtKzJyxcbiAgICAgICAgICAgIE1NOiAnJWQg0LzQvtKzJyxcbiAgICAgICAgICAgIHk6ICfRj9C6INGB0L7QuycsXG4gICAgICAgICAgICB5eTogJyVkINGB0L7QuycsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/RiNCw0LF80YHRg9Cx0rN80YDTr9C3fNCx0LXQs9C+0rMvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfRiNCw0LEnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfRgdGD0LHSsycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfRgNOv0LcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ9Cx0LXQs9C+0rMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YjQsNCxJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRgdGD0LHSsyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YDTr9C3JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQsdC10LPQvtKzJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRiNCw0LEnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNGD0Lx80Y7QvCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGIgPSBudW1iZXIgPj0gMTAwID8gMTAwIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbbnVtYmVyXSB8fCBzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDF0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUaGFpIFt0aF1cbi8vISBhdXRob3IgOiBLcmlkc2FkYSBUaGFuYWJ1bHBvbmcgOiBodHRwczovL2dpdGh1Yi5jb20vc2lyblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRoID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGgnLCB7XG4gICAgICAgIG1vbnRoczogJ+C4oeC4geC4o+C4suC4hOC4oV/guIHguLjguKHguKDguLLguJ7guLHguJnguJjguYxf4Lih4Li14LiZ4Liy4LiE4LihX+C5gOC4oeC4qeC4suC4ouC4mV/guJ7guKTguKnguKDguLLguITguKFf4Lih4Li04LiW4Li44LiZ4Liy4Lii4LiZX+C4geC4o+C4geC4juC4suC4hOC4oV/guKrguLTguIfguKvguLLguITguKFf4LiB4Lix4LiZ4Lii4Liy4Lii4LiZX+C4leC4uOC4peC4suC4hOC4oV/guJ7guKTguKjguIjguLTguIHguLLguKLguJlf4LiY4Lix4LiZ4Lin4Liy4LiE4LihJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDpcbiAgICAgICAgICAgICfguKEu4LiELl/guIEu4LieLl/guKHguLUu4LiELl/guYDguKEu4LiiLl/guJ4u4LiELl/guKHguLQu4LiiLl/guIEu4LiELl/guKou4LiELl/guIEu4LiiLl/guJUu4LiELl/guJ4u4LiiLl/guJgu4LiELicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+C4reC4suC4l+C4tOC4leC4ouC5jF/guIjguLHguJnguJfguKPguYxf4Lit4Lix4LiH4LiE4Liy4LijX+C4nuC4uOC4mF/guJ7guKTguKvguLHguKrguJrguJTguLVf4Lio4Li44LiB4Lij4LmMX+C5gOC4quC4suC4o+C5jCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+C4reC4suC4l+C4tOC4leC4ouC5jF/guIjguLHguJnguJfguKPguYxf4Lit4Lix4LiH4LiE4Liy4LijX+C4nuC4uOC4mF/guJ7guKTguKvguLHguKpf4Lio4Li44LiB4Lij4LmMX+C5gOC4quC4suC4o+C5jCcuc3BsaXQoJ18nKSwgLy8geWVzLCB0aHJlZSBjaGFyYWN0ZXJzIGRpZmZlcmVuY2VcbiAgICAgICAgd2Vla2RheXNNaW46ICfguK3guLIuX+C4iC5f4LitLl/guJ4uX+C4nuC4pC5f4LioLl/guKouJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIOC5gOC4p+C4peC4siBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICfguKfguLHguJlkZGRk4LiX4Li14LmIIEQgTU1NTSBZWVlZIOC5gOC4p+C4peC4siBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C4geC5iOC4reC4meC5gOC4l+C4teC5iOC4ouC4h3zguKvguKXguLHguIfguYDguJfguLXguYjguKLguIcvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ+C4q+C4peC4seC4h+C5gOC4l+C4teC5iOC4ouC4hyc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfguIHguYjguK3guJnguYDguJfguLXguYjguKLguIcnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C4q+C4peC4seC4h+C5gOC4l+C4teC5iOC4ouC4hyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+C4p+C4seC4meC4meC4teC5iSDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4Lie4Lij4Li44LmI4LiH4LiZ4Li14LmJIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkW+C4q+C4meC5ieC4siDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4LmA4Lih4Li34LmI4Lit4Lin4Liy4LiZ4LiZ4Li14LmJIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Lin4Lix4LiZXWRkZGRb4LiX4Li14LmI4LmB4Lil4LmJ4LinIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfguK3guLXguIEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVz4LiX4Li14LmI4LmB4Lil4LmJ4LinJyxcbiAgICAgICAgICAgIHM6ICfguYTguKHguYjguIHguLXguYjguKfguLTguJnguLLguJfguLUnLFxuICAgICAgICAgICAgc3M6ICclZCDguKfguLTguJnguLLguJfguLUnLFxuICAgICAgICAgICAgbTogJzEg4LiZ4Liy4LiX4Li1JyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LiZ4Liy4LiX4Li1JyxcbiAgICAgICAgICAgIGg6ICcxIOC4iuC4seC5iOC4p+C5guC4oeC4hycsXG4gICAgICAgICAgICBoaDogJyVkIOC4iuC4seC5iOC4p+C5guC4oeC4hycsXG4gICAgICAgICAgICBkOiAnMSDguKfguLHguJknLFxuICAgICAgICAgICAgZGQ6ICclZCDguKfguLHguJknLFxuICAgICAgICAgICAgdzogJzEg4Liq4Lix4Lib4LiU4Liy4Lir4LmMJyxcbiAgICAgICAgICAgIHd3OiAnJWQg4Liq4Lix4Lib4LiU4Liy4Lir4LmMJyxcbiAgICAgICAgICAgIE06ICcxIOC5gOC4lOC4t+C4reC4mScsXG4gICAgICAgICAgICBNTTogJyVkIOC5gOC4lOC4t+C4reC4mScsXG4gICAgICAgICAgICB5OiAnMSDguJvguLUnLFxuICAgICAgICAgICAgeXk6ICclZCDguJvguLUnLFxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFR1cmttZW4gW3RrXVxuLy8hIGF1dGhvciA6IEF0YW15cmF0IEFiZHlyYWhtYW5vdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hdGFteXJhdGFiZHlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMTogXCInaW5qaVwiLFxuICAgICAgICA1OiBcIidpbmppXCIsXG4gICAgICAgIDg6IFwiJ2luamlcIixcbiAgICAgICAgNzA6IFwiJ2luamlcIixcbiAgICAgICAgODA6IFwiJ2luamlcIixcbiAgICAgICAgMjogXCInbmppXCIsXG4gICAgICAgIDc6IFwiJ25qaVwiLFxuICAgICAgICAyMDogXCInbmppXCIsXG4gICAgICAgIDUwOiBcIiduamlcIixcbiAgICAgICAgMzogXCInw7xuamlcIixcbiAgICAgICAgNDogXCInw7xuamlcIixcbiAgICAgICAgMTAwOiBcIifDvG5qaVwiLFxuICAgICAgICA2OiBcIiduanlcIixcbiAgICAgICAgOTogXCIndW5qeVwiLFxuICAgICAgICAxMDogXCIndW5qeVwiLFxuICAgICAgICAzMDogXCIndW5qeVwiLFxuICAgICAgICA2MDogXCIneW5qeVwiLFxuICAgICAgICA5MDogXCIneW5qeVwiLFxuICAgIH07XG5cbiAgICB2YXIgdGsgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0aycsIHtcbiAgICAgICAgbW9udGhzOiAnw51hbndhcl9GZXdyYWxfTWFydF9BcHJlbF9NYcO9X0nDvXVuX0nDvXVsX0F3Z3VzdF9TZW50w71hYnJfT2t0w71hYnJfTm/DvWFicl9EZWthYnInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnw51hbl9GZXdfTWFyX0Fwcl9NYcO9X0nDvW5fScO9bF9Bd2dfU2VuX09rdF9Ob8O9X0Rlaycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfDnWVrxZ9lbmJlX0R1xZ9lbmJlX1NpxZ9lbmJlX8OHYXLFn2VuYmVfUGVuxZ9lbmJlX0FubmFfxZ5lbmJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnw51la19EdcWfX1NpxZ9fw4dhcl9QZW5fQW5uX8WeZW4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnw51rX0TFn19TxZ9fw4dyX1BuX0FuX8Webicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tidWfDvG4gc2FnYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbZXJ0aXIgc2FnYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW2luZGlraV0gZGRkZCBbc2FnYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZMO8w71uXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tnZcOnZW5dIGRkZGQgW3NhZ2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHNvxYgnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMO2xYgnLFxuICAgICAgICAgICAgczogJ2Jpcm7DpMOnZSBzZWt1bnQnLFxuICAgICAgICAgICAgbTogJ2JpciBtaW51dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0JyxcbiAgICAgICAgICAgIGg6ICdiaXIgc2FnYXQnLFxuICAgICAgICAgICAgaGg6ICclZCBzYWdhdCcsXG4gICAgICAgICAgICBkOiAnYmlyIGfDvG4nLFxuICAgICAgICAgICAgZGQ6ICclZCBnw7xuJyxcbiAgICAgICAgICAgIE06ICdiaXIgYcO9JyxcbiAgICAgICAgICAgIE1NOiAnJWQgYcO9JyxcbiAgICAgICAgICAgIHk6ICdiaXIgw715bCcsXG4gICAgICAgICAgICB5eTogJyVkIMO9eWwnLFxuICAgICAgICB9LFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRG8nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0REJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yIHplcm9cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBcIid1bmp5XCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAobnVtYmVyICUgMTAwKSAtIGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBjID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0gfHwgc3VmZml4ZXNbY10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGs7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGFnYWxvZyAoUGhpbGlwcGluZXMpIFt0bC1waF1cbi8vISBhdXRob3IgOiBEYW4gSGFnbWFuIDogaHR0cHM6Ly9naXRodWIuY29tL2hhZ21hbmRhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRsUGggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0bC1waCcsIHtcbiAgICAgICAgbW9udGhzOiAnRW5lcm9fUGVicmVyb19NYXJzb19BYnJpbF9NYXlvX0h1bnlvX0h1bHlvX0Fnb3N0b19TZXR5ZW1icmVfT2t0dWJyZV9Ob2J5ZW1icmVfRGlzeWVtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0VuZV9QZWJfTWFyX0Ficl9NYXlfSHVuX0h1bF9BZ29fU2V0X09rdF9Ob2JfRGlzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0xpbmdnb19MdW5lc19NYXJ0ZXNfTWl5ZXJrdWxlc19IdXdlYmVzX0JpeWVybmVzX1NhYmFkbycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0xpbl9MdW5fTWFyX01peV9IdXdfQml5X1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdMaV9MdV9NYV9NaV9IdV9CaV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdNTS9EL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdNTU1NIEQsIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnTU1NTSBELCBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIERELCBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdMVCBbbmdheW9uZyBhcmF3XScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0J1a2FzIG5nXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ0xUIFtzYSBzdXN1bm9kIG5hXSBkZGRkJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdMVCBba2FoYXBvbl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMVCBbbm9vbmcgbmFrYXJhYW5nXSBkZGRkJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnc2EgbG9vYiBuZyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYW5nIG5ha2FsaXBhcycsXG4gICAgICAgICAgICBzOiAnaWxhbmcgc2VndW5kbycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG8nLFxuICAgICAgICAgICAgbTogJ2lzYW5nIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0bycsXG4gICAgICAgICAgICBoOiAnaXNhbmcgb3JhcycsXG4gICAgICAgICAgICBoaDogJyVkIG9yYXMnLFxuICAgICAgICAgICAgZDogJ2lzYW5nIGFyYXcnLFxuICAgICAgICAgICAgZGQ6ICclZCBhcmF3JyxcbiAgICAgICAgICAgIE06ICdpc2FuZyBidXdhbicsXG4gICAgICAgICAgICBNTTogJyVkIGJ1d2FuJyxcbiAgICAgICAgICAgIHk6ICdpc2FuZyB0YW9uJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGFvbicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0bFBoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEtsaW5nb24gW3RsaF1cbi8vISBhdXRob3IgOiBEb21pbmlrYSBLcnVrIDogaHR0cHM6Ly9naXRodWIuY29tL2FtYXJhbnRocm9zZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG51bWJlcnNOb3VucyA9ICdwYWdoX3dh4oCZX2NoYeKAmV93ZWpfbG9TX3ZhZ2hfamF2X1NvY2hfY2hvcmdoX0h1dCcuc3BsaXQoJ18nKTtcblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZUZ1dHVyZShvdXRwdXQpIHtcbiAgICAgICAgdmFyIHRpbWUgPSBvdXRwdXQ7XG4gICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgb3V0cHV0LmluZGV4T2YoJ2phaicpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnbGVTJ1xuICAgICAgICAgICAgICAgIDogb3V0cHV0LmluZGV4T2YoJ2phcicpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnd2FRJ1xuICAgICAgICAgICAgICAgIDogb3V0cHV0LmluZGV4T2YoJ0RJUycpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnbmVtJ1xuICAgICAgICAgICAgICAgIDogdGltZSArICcgcElxJztcbiAgICAgICAgcmV0dXJuIHRpbWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlUGFzdChvdXRwdXQpIHtcbiAgICAgICAgdmFyIHRpbWUgPSBvdXRwdXQ7XG4gICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgb3V0cHV0LmluZGV4T2YoJ2phaicpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnSHXigJknXG4gICAgICAgICAgICAgICAgOiBvdXRwdXQuaW5kZXhPZignamFyJykgIT09IC0xXG4gICAgICAgICAgICAgICAgPyB0aW1lLnNsaWNlKDAsIC0zKSArICd3ZW4nXG4gICAgICAgICAgICAgICAgOiBvdXRwdXQuaW5kZXhPZignRElTJykgIT09IC0xXG4gICAgICAgICAgICAgICAgPyB0aW1lLnNsaWNlKDAsIC0zKSArICdiZW4nXG4gICAgICAgICAgICAgICAgOiB0aW1lICsgJyByZXQnO1xuICAgICAgICByZXR1cm4gdGltZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBudW1iZXJOb3VuID0gbnVtYmVyQXNOb3VuKG51bWJlcik7XG4gICAgICAgIHN3aXRjaCAoc3RyaW5nKSB7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIGx1cCc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIHR1cCc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIHJlcCc7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIGphaic7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIGphcic7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIERJUyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBudW1iZXJBc05vdW4obnVtYmVyKSB7XG4gICAgICAgIHZhciBodW5kcmVkID0gTWF0aC5mbG9vcigobnVtYmVyICUgMTAwMCkgLyAxMDApLFxuICAgICAgICAgICAgdGVuID0gTWF0aC5mbG9vcigobnVtYmVyICUgMTAwKSAvIDEwKSxcbiAgICAgICAgICAgIG9uZSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgd29yZCA9ICcnO1xuICAgICAgICBpZiAoaHVuZHJlZCA+IDApIHtcbiAgICAgICAgICAgIHdvcmQgKz0gbnVtYmVyc05vdW5zW2h1bmRyZWRdICsgJ3ZhdGxoJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGVuID4gMCkge1xuICAgICAgICAgICAgd29yZCArPSAod29yZCAhPT0gJycgPyAnICcgOiAnJykgKyBudW1iZXJzTm91bnNbdGVuXSArICdtYUgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvbmUgPiAwKSB7XG4gICAgICAgICAgICB3b3JkICs9ICh3b3JkICE9PSAnJyA/ICcgJyA6ICcnKSArIG51bWJlcnNOb3Vuc1tvbmVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB3b3JkID09PSAnJyA/ICdwYWdoJyA6IHdvcmQ7XG4gICAgfVxuXG4gICAgdmFyIHRsaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RsaCcsIHtcbiAgICAgICAgbW9udGhzOiAndGVyYeKAmSBqYXIgd2HigJlfdGVyYeKAmSBqYXIgY2hh4oCZX3RlcmHigJkgamFyIHdlal90ZXJh4oCZIGphciBsb1NfdGVyYeKAmSBqYXIgdmFnaF90ZXJh4oCZIGphciBqYXZfdGVyYeKAmSBqYXIgU29jaF90ZXJh4oCZIGphciBjaG9yZ2hfdGVyYeKAmSBqYXIgSHV0X3RlcmHigJkgamFyIHdh4oCZbWFIX3RlcmHigJkgamFyIHdh4oCZbWFIIHdh4oCZX3RlcmHigJkgamFyIHdh4oCZbWFIIGNoYeKAmScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnamFyIHdh4oCZX2phciBjaGHigJlfamFyIHdlal9qYXIgbG9TX2phciB2YWdoX2phciBqYXZfamFyIFNvY2hfamFyIGNob3JnaF9qYXIgSHV0X2phciB3YeKAmW1hSF9qYXIgd2HigJltYUggd2HigJlfamFyIHdh4oCZbWFIIGNoYeKAmScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2xvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OlxuICAgICAgICAgICAgJ2xvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjpcbiAgICAgICAgICAgICdsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tEYUhqYWpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbd2HigJlsZVNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnTExMJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbd2HigJlIdeKAmV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMTEwnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IHRyYW5zbGF0ZUZ1dHVyZSxcbiAgICAgICAgICAgIHBhc3Q6IHRyYW5zbGF0ZVBhc3QsXG4gICAgICAgICAgICBzOiAncHVTIGx1cCcsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogJ3dh4oCZIHR1cCcsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogJ3dh4oCZIHJlcCcsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogJ3dh4oCZIGphaicsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogJ3dh4oCZIGphcicsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ3dh4oCZIERJUycsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRsaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUdXJraXNoIFt0cl1cbi8vISBhdXRob3JzIDogRXJoYW4gR3VuZG9nYW4gOiBodHRwczovL2dpdGh1Yi5jb20vZXJoYW5ndW5kb2dhbixcbi8vISAgICAgICAgICAgQnVyYWsgWWnEn2l0IEtheWE6IGh0dHBzOi8vZ2l0aHViLmNvbS9CWUtcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMTogXCInaW5jaVwiLFxuICAgICAgICA1OiBcIidpbmNpXCIsXG4gICAgICAgIDg6IFwiJ2luY2lcIixcbiAgICAgICAgNzA6IFwiJ2luY2lcIixcbiAgICAgICAgODA6IFwiJ2luY2lcIixcbiAgICAgICAgMjogXCInbmNpXCIsXG4gICAgICAgIDc6IFwiJ25jaVwiLFxuICAgICAgICAyMDogXCInbmNpXCIsXG4gICAgICAgIDUwOiBcIiduY2lcIixcbiAgICAgICAgMzogXCInw7xuY8O8XCIsXG4gICAgICAgIDQ6IFwiJ8O8bmPDvFwiLFxuICAgICAgICAxMDA6IFwiJ8O8bmPDvFwiLFxuICAgICAgICA2OiBcIiduY8SxXCIsXG4gICAgICAgIDk6IFwiJ3VuY3VcIixcbiAgICAgICAgMTA6IFwiJ3VuY3VcIixcbiAgICAgICAgMzA6IFwiJ3VuY3VcIixcbiAgICAgICAgNjA6IFwiJ8SxbmPEsVwiLFxuICAgICAgICA5MDogXCInxLFuY8SxXCIsXG4gICAgfTtcblxuICAgIHZhciB0ciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RyJywge1xuICAgICAgICBtb250aHM6ICdPY2FrX8WedWJhdF9NYXJ0X05pc2FuX01hecSxc19IYXppcmFuX1RlbW11el9BxJ91c3Rvc19FeWzDvGxfRWtpbV9LYXPEsW1fQXJhbMSxaycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdPY2FfxZ51Yl9NYXJfTmlzX01heV9IYXpfVGVtX0HEn3VfRXlsX0VraV9LYXNfQXJhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1BhemFyX1BhemFydGVzaV9TYWzEsV/Dh2FyxZ9hbWJhX1BlcsWfZW1iZV9DdW1hX0N1bWFydGVzaScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1Bhel9QenRfU2FsX8OHYXJfUGVyX0N1bV9DbXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnUHpfUHRfU2Ffw4dhX1BlX0N1X0N0Jy5zcGxpdCgnXycpLFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ8O2w7YnIDogJ8OWw5YnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfDtnMnIDogJ8OWUyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/DtsO2fMOWw5Z8w7ZzfMOWUy8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAnw7ZzJyB8fCBpbnB1dCA9PT0gJ8OWUyc7XG4gICAgICAgIH0sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbYnVnw7xuIHNhYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbeWFyxLFuIHNhYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW2dlbGVjZWtdIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZMO8bl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbZ2XDp2VuXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHNvbnJhJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDDtm5jZScsXG4gICAgICAgICAgICBzOiAnYmlya2HDpyBzYW5peWUnLFxuICAgICAgICAgICAgc3M6ICclZCBzYW5peWUnLFxuICAgICAgICAgICAgbTogJ2JpciBkYWtpa2EnLFxuICAgICAgICAgICAgbW06ICclZCBkYWtpa2EnLFxuICAgICAgICAgICAgaDogJ2JpciBzYWF0JyxcbiAgICAgICAgICAgIGhoOiAnJWQgc2FhdCcsXG4gICAgICAgICAgICBkOiAnYmlyIGfDvG4nLFxuICAgICAgICAgICAgZGQ6ICclZCBnw7xuJyxcbiAgICAgICAgICAgIHc6ICdiaXIgaGFmdGEnLFxuICAgICAgICAgICAgd3c6ICclZCBoYWZ0YScsXG4gICAgICAgICAgICBNOiAnYmlyIGF5JyxcbiAgICAgICAgICAgIE1NOiAnJWQgYXknLFxuICAgICAgICAgICAgeTogJ2JpciB5xLFsJyxcbiAgICAgICAgICAgIHl5OiAnJWQgecSxbCcsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEbyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgemVyb1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIFwiJ8SxbmPEsVwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBiID0gKG51bWJlciAlIDEwMCkgLSBhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYyA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdIHx8IHN1ZmZpeGVzW2NdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRhbG9zc2FuIFt0emxdXG4vLyEgYXV0aG9yIDogUm9iaW4gdmFuIGRlciBWbGlldCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yb2JpbjB2YW4wZGVyMHZcbi8vISBhdXRob3IgOiBJdXN0w6wgQ2FudW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIC8vIEFmdGVyIHRoZSB5ZWFyIHRoZXJlIHNob3VsZCBiZSBhIHNsYXNoIGFuZCB0aGUgYW1vdW50IG9mIHllYXJzIHNpbmNlIERlY2VtYmVyIDI2LCAxOTc5IGluIFJvbWFuIG51bWVyYWxzLlxuICAgIC8vIFRoaXMgaXMgY3VycmVudGx5IHRvbyBkaWZmaWN1bHQgKG1heWJlIGV2ZW4gaW1wb3NzaWJsZSkgdG8gYWRkLlxuICAgIHZhciB0emwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0emwnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcl9GZXZyYWdsaF9NYXLDp19BdnLDr3VfTWFpX0fDvG5fSnVsaWFfR3VzY2h0X1NldGVtdmFyX0xpc3RvcMOkdHNfTm9lbXZhcl9aZWNlbXZhcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmV2X01hcl9BdnJfTWFpX0fDvG5fSnVsX0d1c19TZXRfTGlzX05vZV9aZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU8O6bGFkaV9Mw7puZcOnaV9NYWl0emlfTcOhcmN1cmlfWGjDumFkaV9WacOpbmVyw6dpX1PDoXR1cmknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTw7psX0zDum5fTWFpX03DoXJfWGjDul9WacOpX1PDoXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU8O6X0zDul9NYV9Nw6FfWGhfVmlfU8OhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gW2RhbGxhc10gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFtkYWxsYXNdIFlZWVkgSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIFtsaV0gRC4gTU1NTSBbZGFsbGFzXSBZWVlZIEhILm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2RcXCdvfGRcXCdhL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiZCdvXCIgPT09IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyBcImQnb1wiIDogXCJEJ09cIjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyBcImQnYVwiIDogXCJEJ0FcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbb3hoaSDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tkZW3DoCDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpZWlyaSDDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbc8O8ciBlbF0gZGRkZCBbbGFzdGV1IMOgXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29zcHJlaSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnamElcycsXG4gICAgICAgICAgICBzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3M6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgczogWyd2aWVuc2FzIHNlY3VuZHMnLCBcIidpZW5zYXMgc2VjdW5kc1wiXSxcbiAgICAgICAgICAgIHNzOiBbbnVtYmVyICsgJyBzZWN1bmRzJywgJycgKyBudW1iZXIgKyAnIHNlY3VuZHMnXSxcbiAgICAgICAgICAgIG06IFtcIiduIG3DrXV0XCIsIFwiJ2llbnMgbcOtdXRcIl0sXG4gICAgICAgICAgICBtbTogW251bWJlciArICcgbcOtdXRzJywgJycgKyBudW1iZXIgKyAnIG3DrXV0cyddLFxuICAgICAgICAgICAgaDogW1wiJ24gw75vcmFcIiwgXCInaWVuc2Egw75vcmFcIl0sXG4gICAgICAgICAgICBoaDogW251bWJlciArICcgw75vcmFzJywgJycgKyBudW1iZXIgKyAnIMO+b3JhcyddLFxuICAgICAgICAgICAgZDogW1wiJ24geml1YVwiLCBcIidpZW5zYSB6aXVhXCJdLFxuICAgICAgICAgICAgZGQ6IFtudW1iZXIgKyAnIHppdWFzJywgJycgKyBudW1iZXIgKyAnIHppdWFzJ10sXG4gICAgICAgICAgICBNOiBbXCInbiBtZXNcIiwgXCInaWVucyBtZXNcIl0sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcgbWVzZW4nLCAnJyArIG51bWJlciArICcgbWVzZW4nXSxcbiAgICAgICAgICAgIHk6IFtcIiduIGFyXCIsIFwiJ2llbnMgYXJcIl0sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgYXJzJywgJycgKyBudW1iZXIgKyAnIGFycyddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gaXNGdXR1cmVcbiAgICAgICAgICAgID8gZm9ybWF0W2tleV1bMF1cbiAgICAgICAgICAgIDogd2l0aG91dFN1ZmZpeFxuICAgICAgICAgICAgPyBmb3JtYXRba2V5XVswXVxuICAgICAgICAgICAgOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHpsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENlbnRyYWwgQXRsYXMgVGFtYXppZ2h0IExhdGluIFt0em0tbGF0bl1cbi8vISBhdXRob3IgOiBBYmRlbCBTYWlkIDogaHR0cHM6Ly9naXRodWIuY29tL2FiZGVsc2FpZFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHR6bUxhdG4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0em0tbGF0bicsIHtcbiAgICAgICAgbW9udGhzOiAnaW5uYXlyX2Jyy6RheXLLpF9tYXLLpHPLpF9pYnJpcl9tYXl5d195d255d195d2x5d3pfyaN3xaF0X8Whd3RhbmJpcl9rdMukd2Jyy6Rfbnd3YW5iaXJfZHdqbmJpcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnaW5uYXlyX2Jyy6RheXLLpF9tYXLLpHPLpF9pYnJpcl9tYXl5d195d255d195d2x5d3pfyaN3xaF0X8Whd3RhbmJpcl9rdMukd2Jyy6Rfbnd3YW5iaXJfZHdqbmJpcicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ2FzYW1hc19heW5hc19hc2luYXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2nhuI15YXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNp4biNeWFzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2FzYW1hc19heW5hc19hc2luYXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2nhuI15YXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1thc2RraCBnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2Fza2EgZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtnXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2Fzc2FudCBnXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2ddIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFka2ggcyB5YW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3lhbiAlcycsXG4gICAgICAgICAgICBzOiAnaW1paycsXG4gICAgICAgICAgICBzczogJyVkIGltaWsnLFxuICAgICAgICAgICAgbTogJ21pbnXhuI0nLFxuICAgICAgICAgICAgbW06ICclZCBtaW514biNJyxcbiAgICAgICAgICAgIGg6ICdzYcmbYScsXG4gICAgICAgICAgICBoaDogJyVkIHRhc3NhyZtpbicsXG4gICAgICAgICAgICBkOiAnYXNzJyxcbiAgICAgICAgICAgIGRkOiAnJWQgb3NzYW4nLFxuICAgICAgICAgICAgTTogJ2F5b3dyJyxcbiAgICAgICAgICAgIE1NOiAnJWQgaXl5aXJuJyxcbiAgICAgICAgICAgIHk6ICdhc2dhcycsXG4gICAgICAgICAgICB5eTogJyVkIGlzZ2FzbicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHptTGF0bjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDZW50cmFsIEF0bGFzIFRhbWF6aWdodCBbdHptXVxuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQgOiBodHRwczovL2dpdGh1Yi5jb20vYWJkZWxzYWlkXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdHptID0gbW9tZW50LmRlZmluZUxvY2FsZSgndHptJywge1xuICAgICAgICBtb250aHM6ICfitYnitY/itY/itLDitaLitZRf4rSx4rWV4rSw4rWi4rWVX+K1juK0sOK1leK1ml/itYnitLHitZTitYnitZRf4rWO4rSw4rWi4rWi4rWTX+K1ouK1k+K1j+K1ouK1k1/itaLitZPitY3itaLitZPitaNf4rWW4rWT4rWb4rWcX+K1m+K1k+K1nOK0sOK1j+K0seK1ieK1lF/itL3itZ/itZPitLHitZVf4rWP4rWT4rWh4rSw4rWP4rSx4rWJ4rWUX+K0t+K1k+K1iuK1j+K0seK1ieK1lCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAn4rWJ4rWP4rWP4rSw4rWi4rWUX+K0seK1leK0sOK1ouK1lV/itY7itLDitZXitZpf4rWJ4rSx4rWU4rWJ4rWUX+K1juK0sOK1ouK1ouK1k1/itaLitZPitY/itaLitZNf4rWi4rWT4rWN4rWi4rWT4rWjX+K1luK1k+K1m+K1nF/itZvitZPitZzitLDitY/itLHitYnitZRf4rS94rWf4rWT4rSx4rWVX+K1j+K1k+K1oeK0sOK1j+K0seK1ieK1lF/itLfitZPitYritY/itLHitYnitZQnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfitLDitZnitLDitY7itLDitZlf4rSw4rWi4rWP4rSw4rWZX+K0sOK1meK1ieK1j+K0sOK1mV/itLDitL3itZTitLDitZlf4rSw4rS94rWh4rSw4rWZX+K0sOK1meK1ieK1juK1oeK0sOK1mV/itLDitZnitYnitLnitaLitLDitZknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfitLDitZnitLDitY7itLDitZlf4rSw4rWi4rWP4rSw4rWZX+K0sOK1meK1ieK1j+K0sOK1mV/itLDitL3itZTitLDitZlf4rSw4rS94rWh4rSw4rWZX+K0sOK1meK1ieK1juK1oeK0sOK1mV/itLDitZnitYnitLnitaLitLDitZknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4rSw4rWZ4rSw4rWO4rSw4rWZX+K0sOK1ouK1j+K0sOK1mV/itLDitZnitYnitY/itLDitZlf4rSw4rS94rWU4rSw4rWZX+K0sOK0veK1oeK0sOK1mV/itLDitZnitYnitY7itaHitLDitZlf4rSw4rWZ4rWJ4rS54rWi4rSw4rWZJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4rSw4rWZ4rS34rWFIOK0tF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vitLDitZnitL3itLAg4rS0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW+K0tF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vitLDitZritLDitY/itZwg4rS0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW+K0tF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfitLfitLDitLfitYUg4rWZIOK1ouK0sOK1jyAlcycsXG4gICAgICAgICAgICBwYXN0OiAn4rWi4rSw4rWPICVzJyxcbiAgICAgICAgICAgIHM6ICfitYnitY7itYnitL0nLFxuICAgICAgICAgICAgc3M6ICclZCDitYnitY7itYnitL0nLFxuICAgICAgICAgICAgbTogJ+K1juK1ieK1j+K1k+K0uicsXG4gICAgICAgICAgICBtbTogJyVkIOK1juK1ieK1j+K1k+K0uicsXG4gICAgICAgICAgICBoOiAn4rWZ4rSw4rWE4rSwJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4rWc4rSw4rWZ4rWZ4rSw4rWE4rWJ4rWPJyxcbiAgICAgICAgICAgIGQ6ICfitLDitZnitZknLFxuICAgICAgICAgICAgZGQ6ICclZCBv4rWZ4rWZ4rSw4rWPJyxcbiAgICAgICAgICAgIE06ICfitLDitaJv4rWT4rWUJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4rWJ4rWi4rWi4rWJ4rWU4rWPJyxcbiAgICAgICAgICAgIHk6ICfitLDitZnitLPitLDitZknLFxuICAgICAgICAgICAgeXk6ICclZCDitYnitZnitLPitLDitZnitY8nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHR6bTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBVeWdodXIgKENoaW5hKSBbdWctY25dXG4vLyEgYXV0aG9yOiBib3lhcSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ib3lhcVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHVnQ24gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1Zy1jbicsIHtcbiAgICAgICAgbW9udGhzOiAn2YrYp9mG24vYp9ixX9mB25Dbi9ix2KfZhF/Zhdin2LHYql/Yptin2b7YsduQ2YRf2YXYp9mKX9im2YnZituH2YZf2KbZidmK24fZhF/Yptin24vYutuH2LPYql/Ys9uQ2YbYqtuV2KjZidixX9im24bZg9iq25XYqNmJ2LFf2YbZiNmK2KfYqNmJ2LFf2K/bkNmD2KfYqNmJ2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OlxuICAgICAgICAgICAgJ9mK2KfZhtuL2KfYsV/ZgduQ24vYsdin2YRf2YXYp9ix2Kpf2KbYp9m+2LHbkNmEX9mF2KfZil/YptmJ2Yrbh9mGX9im2YnZituH2YRf2KbYp9uL2Lrbh9iz2Kpf2LPbkNmG2Krbldio2YnYsV/YptuG2YPYqtuV2KjZidixX9mG2YjZitin2KjZidixX9iv25DZg9in2KjZidixJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2YrbldmD2LTbldmG2KjblV/Yr9uI2LTbldmG2KjblV/Ys9uV2YrYtNuV2YbYqNuVX9qG2KfYsdi025XZhtio25Vf2b7bldmK2LTbldmG2KjblV/YrNuI2YXblV/YtNuV2YbYqNuVJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2YrblV/Yr9uIX9iz25Vf2obYp1/ZvtuVX9is24hf2LTblScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfZituVX9iv24hf2LPblV/ahtinX9m+25Vf2KzbiF/YtNuVJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVkt2YrZidmE2YlNLdim2KfZitmG2YnarUQt2YPbiNmG2YknLFxuICAgICAgICAgICAgTExMOiAnWVlZWS3ZitmJ2YTZiU0t2KbYp9mK2YbZidqtRC3Zg9uI2YbZidiMIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRk2IwgWVlZWS3ZitmJ2YTZiU0t2KbYp9mK2YbZidqtRC3Zg9uI2YbZidiMIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9mK25DYsdmJ2YUg2YPbkNqG25V82LPbldq+25XYsXzahtuI2LTYqtmJ2YYg2Kjbh9ix24fZhnzahtuI2LR82obbiNi02KrZidmGINmD25DZitmJ2YZ82YPbldqGLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn2YrbkNix2YnZhSDZg9uQ2obblScgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ9iz25XavtuV2LEnIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfahtuI2LTYqtmJ2YYg2Kjbh9ix24fZhidcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ9qG24jYtNiq2YnZhiDZg9uQ2YrZidmGJyB8fCBtZXJpZGllbSA9PT0gJ9mD25XahicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBob3VyICogMTAwICsgbWludXRlO1xuICAgICAgICAgICAgaWYgKGhtIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZituQ2LHZidmFINmD25DahtuVJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCA5MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9iz25XavtuV2LEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDExMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9qG24jYtNiq2YnZhiDYqNuH2LHbh9mGJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMjMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfahtuI2LQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDE4MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9qG24jYtNiq2YnZhiDZg9uQ2YrZidmGJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZg9uV2oYnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYqNuI2q/biNmGINiz2KfYptuV2KpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2Kbbldiq25Ug2LPYp9im25XYql0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb2YPbkNmE25XYsdmD2YldIGRkZGQgW9iz2KfYptuV2KpdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KrbhtmG24jar9uI2YZdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9im2KfZhNiv2YnZhtmC2YldIGRkZGQgW9iz2KfYptuV2KpdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg2YPbkNmK2YnZhicsXG4gICAgICAgICAgICBwYXN0OiAnJXMg2Kjbh9ix24fZhicsXG4gICAgICAgICAgICBzOiAn2YbbldqG2obblSDYs9uQ2YPZiNmG2KonLFxuICAgICAgICAgICAgc3M6ICclZCDYs9uQ2YPZiNmG2KonLFxuICAgICAgICAgICAgbTogJ9io2YnYsSDZhdmJ2Ybbh9iqJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2YXZidmG24fYqicsXG4gICAgICAgICAgICBoOiAn2KjZidixINiz2KfYptuV2KonLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2KbbldiqJyxcbiAgICAgICAgICAgIGQ6ICfYqNmJ2LEg2YPbiNmGJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2YPbiNmGJyxcbiAgICAgICAgICAgIE06ICfYqNmJ2LEg2KbYp9mKJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KbYp9mKJyxcbiAgICAgICAgICAgIHk6ICfYqNmJ2LEg2YrZidmEJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2YrZidmEJyxcbiAgICAgICAgfSxcblxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oLdmD24jZhtmJfC3Yptin2Yp8Ldq+25XZvtiq25UpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdmD24jZhtmJJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct2r7bldm+2KrblSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICAvLyBHQi9UIDc0MDgtMTk5NOOAiuaVsOaNruWFg+WSjOS6pOaNouagvOW8j8K35L+h5oGv5Lqk5o2iwrfml6XmnJ/lkozml7bpl7TooajnpLrms5XjgIvkuI5JU08gODYwMToxOTg4562J5pWIXG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxc3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdWdDbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBVa3JhaW5pYW4gW3VrXVxuLy8hIGF1dGhvciA6IHplbWxhbmluIDogaHR0cHM6Ly9naXRodWIuY29tL3plbWxhbmluXG4vLyEgQXV0aG9yIDogTWVuZWxpb24gRWxlbnPDumxlIDogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHBsdXJhbCh3b3JkLCBudW0pIHtcbiAgICAgICAgdmFyIGZvcm1zID0gd29yZC5zcGxpdCgnXycpO1xuICAgICAgICByZXR1cm4gbnVtICUgMTAgPT09IDEgJiYgbnVtICUgMTAwICE9PSAxMVxuICAgICAgICAgICAgPyBmb3Jtc1swXVxuICAgICAgICAgICAgOiBudW0gJSAxMCA+PSAyICYmIG51bSAlIDEwIDw9IDQgJiYgKG51bSAlIDEwMCA8IDEwIHx8IG51bSAlIDEwMCA+PSAyMClcbiAgICAgICAgICAgID8gZm9ybXNbMV1cbiAgICAgICAgICAgIDogZm9ybXNbMl07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHNzOiB3aXRob3V0U3VmZml4ID8gJ9GB0LXQutGD0L3QtNCwX9GB0LXQutGD0L3QtNC4X9GB0LXQutGD0L3QtCcgOiAn0YHQtdC60YPQvdC00YNf0YHQtdC60YPQvdC00Lhf0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG1tOiB3aXRob3V0U3VmZml4ID8gJ9GF0LLQuNC70LjQvdCwX9GF0LLQuNC70LjQvdC4X9GF0LLQuNC70LjQvScgOiAn0YXQstC40LvQuNC90YNf0YXQstC40LvQuNC90Lhf0YXQstC40LvQuNC9JyxcbiAgICAgICAgICAgIGhoOiB3aXRob3V0U3VmZml4ID8gJ9Cz0L7QtNC40L3QsF/Qs9C+0LTQuNC90Lhf0LPQvtC00LjQvScgOiAn0LPQvtC00LjQvdGDX9Cz0L7QtNC40L3QuF/Qs9C+0LTQuNC9JyxcbiAgICAgICAgICAgIGRkOiAn0LTQtdC90Yxf0LTQvdGWX9C00L3RltCyJyxcbiAgICAgICAgICAgIE1NOiAn0LzRltGB0Y/RhtGMX9C80ZbRgdGP0YbRll/QvNGW0YHRj9GG0ZbQsicsXG4gICAgICAgICAgICB5eTogJ9GA0ZbQul/RgNC+0LrQuF/RgNC+0LrRltCyJyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ20nKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfRhdCy0LjQu9C40L3QsCcgOiAn0YXQstC40LvQuNC90YMnO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2gnKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfQs9C+0LTQuNC90LAnIDogJ9Cz0L7QtNC40L3Rgyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgcGx1cmFsKGZvcm1hdFtrZXldLCArbnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB3ZWVrZGF5c0Nhc2VSZXBsYWNlKG0sIGZvcm1hdCkge1xuICAgICAgICB2YXIgd2Vla2RheXMgPSB7XG4gICAgICAgICAgICAgICAgbm9taW5hdGl2ZTpcbiAgICAgICAgICAgICAgICAgICAgJ9C90LXQtNGW0LvRj1/Qv9C+0L3QtdC00ZbQu9C+0Lpf0LLRltCy0YLQvtGA0L7Qul/RgdC10YDQtdC00LBf0YfQtdGC0LLQtdGAX9C/4oCZ0Y/RgtC90LjRhtGPX9GB0YPQsdC+0YLQsCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBhY2N1c2F0aXZlOlxuICAgICAgICAgICAgICAgICAgICAn0L3QtdC00ZbQu9GOX9C/0L7QvdC10LTRltC70L7Qul/QstGW0LLRgtC+0YDQvtC6X9GB0LXRgNC10LTRg1/Rh9C10YLQstC10YBf0L/igJnRj9GC0L3QuNGG0Y5f0YHRg9Cx0L7RgtGDJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGdlbml0aXZlOlxuICAgICAgICAgICAgICAgICAgICAn0L3QtdC00ZbQu9GWX9C/0L7QvdC10LTRltC70LrQsF/QstGW0LLRgtC+0YDQutCwX9GB0LXRgNC10LTQuF/Rh9C10YLQstC10YDQs9CwX9C/4oCZ0Y/RgtC90LjRhtGWX9GB0YPQsdC+0YLQuCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBub3VuQ2FzZTtcblxuICAgICAgICBpZiAobSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXlzWydub21pbmF0aXZlJ11cbiAgICAgICAgICAgICAgICAuc2xpY2UoMSwgNylcbiAgICAgICAgICAgICAgICAuY29uY2F0KHdlZWtkYXlzWydub21pbmF0aXZlJ10uc2xpY2UoMCwgMSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXlzWydub21pbmF0aXZlJ107XG4gICAgICAgIH1cblxuICAgICAgICBub3VuQ2FzZSA9IC8oXFxbW9CS0LLQo9GDXVxcXSkgP2RkZGQvLnRlc3QoZm9ybWF0KVxuICAgICAgICAgICAgPyAnYWNjdXNhdGl2ZSdcbiAgICAgICAgICAgIDogL1xcWz8oPzrQvNC40L3Rg9C70L7Rl3zQvdCw0YHRgtGD0L/QvdC+0ZcpPyA/XFxdID9kZGRkLy50ZXN0KGZvcm1hdClcbiAgICAgICAgICAgID8gJ2dlbml0aXZlJ1xuICAgICAgICAgICAgOiAnbm9taW5hdGl2ZSc7XG4gICAgICAgIHJldHVybiB3ZWVrZGF5c1tub3VuQ2FzZV1bbS5kYXkoKV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NIb3Vyc0Z1bmN0aW9uKHN0cikge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ciArICfQvicgKyAodGhpcy5ob3VycygpID09PSAxMSA/ICfQsScgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIHVrID0gbW9tZW50LmRlZmluZUxvY2FsZSgndWsnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAn0YHRltGH0L3Rj1/Qu9GO0YLQvtCz0L5f0LHQtdGA0LXQt9C90Y9f0LrQstGW0YLQvdGPX9GC0YDQsNCy0L3Rj1/Rh9C10YDQstC90Y9f0LvQuNC/0L3Rj1/RgdC10YDQv9C90Y9f0LLQtdGA0LXRgdC90Y9f0LbQvtCy0YLQvdGPX9C70LjRgdGC0L7Qv9Cw0LTQsF/Qs9GA0YPQtNC90Y8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6XG4gICAgICAgICAgICAgICAgJ9GB0ZbRh9C10L3RjF/Qu9GO0YLQuNC5X9Cx0LXRgNC10LfQtdC90Yxf0LrQstGW0YLQtdC90Yxf0YLRgNCw0LLQtdC90Yxf0YfQtdGA0LLQtdC90Yxf0LvQuNC/0LXQvdGMX9GB0LXRgNC/0LXQvdGMX9Cy0LXRgNC10YHQtdC90Yxf0LbQvtCy0YLQtdC90Yxf0LvQuNGB0YLQvtC/0LDQtF/Qs9GA0YPQtNC10L3RjCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0YHRltGHX9C70Y7Rgl/QsdC10YBf0LrQstGW0YJf0YLRgNCw0LJf0YfQtdGA0LJf0LvQuNC/X9GB0LXRgNC/X9Cy0LXRgF/QttC+0LLRgl/Qu9C40YHRgl/Qs9GA0YPQtCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6IHdlZWtkYXlzQ2FzZVJlcGxhY2UsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQvdC0X9C/0L1f0LLRgl/RgdGAX9GH0YJf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9C90LRf0L/QvV/QstGCX9GB0YBf0YfRgl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVkg0YAuJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZINGALiwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZINGALiwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQodGM0L7Qs9C+0LTQvdGWICcpLFxuICAgICAgICAgICAgbmV4dERheTogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQl9Cw0LLRgtGA0LAgJyksXG4gICAgICAgICAgICBsYXN0RGF5OiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9CS0YfQvtGA0LAgJyksXG4gICAgICAgICAgICBuZXh0V2VlazogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQo10gZGRkZCBbJyksXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQnNC40L3Rg9C70L7Rl10gZGRkZCBbJykuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9Cc0LjQvdGD0LvQvtCz0L5dIGRkZGQgWycpLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0LfQsCAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0YLQvtC80YMnLFxuICAgICAgICAgICAgczogJ9C00LXQutGW0LvRjNC60LAg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIHNzOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaDogJ9Cz0L7QtNC40L3RgycsXG4gICAgICAgICAgICBoaDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQ6ICfQtNC10L3RjCcsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE06ICfQvNGW0YHRj9GG0YwnLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5OiAn0YDRltC6JyxcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICB9LFxuICAgICAgICAvLyBNLiBFLjogdGhvc2UgdHdvIGFyZSB2aXJ0dWFsbHkgdW51c2VkIGJ1dCBhIHVzZXIgbWlnaHQgd2FudCB0byBpbXBsZW1lbnQgdGhlbSBmb3IgaGlzL2hlciB3ZWJzaXRlIGZvciBzb21lIHJlYXNvblxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0L3QvtGH0ZZ80YDQsNC90LrRg3zQtNC90Y980LLQtdGH0L7RgNCwLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o0LTQvdGPfNCy0LXRh9C+0YDQsCkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0L3QvtGH0ZYnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GA0LDQvdC60YMnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9C00L3Rjyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LLQtdGH0L7RgNCwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjQuXzQs9C+KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QuSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCz0L4nO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB1aztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBVcmR1IFt1cl1cbi8vISBhdXRob3IgOiBTYXdvb2QgQWxhbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYm5lc2F5ZWVkXG4vLyEgYXV0aG9yIDogWmFjayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9aYWNrVmlzaW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9is2YbZiNix24wnLFxuICAgICAgICAgICAgJ9mB2LHZiNix24wnLFxuICAgICAgICAgICAgJ9mF2KfYsdqGJyxcbiAgICAgICAgICAgICfYp9m+2LHbjNmEJyxcbiAgICAgICAgICAgICfZhdim24wnLFxuICAgICAgICAgICAgJ9is2YjZhicsXG4gICAgICAgICAgICAn2KzZiNmE2KfYptuMJyxcbiAgICAgICAgICAgICfYp9qv2LPYqicsXG4gICAgICAgICAgICAn2LPYqtmF2KjYsScsXG4gICAgICAgICAgICAn2Kfaqdiq2YjYqNixJyxcbiAgICAgICAgICAgICfZhtmI2YXYqNixJyxcbiAgICAgICAgICAgICfYr9iz2YXYqNixJyxcbiAgICAgICAgXSxcbiAgICAgICAgZGF5cyA9IFsn2KfYqtmI2KfYsScsICfZvtuM2LEnLCAn2YXZhtqv2YQnLCAn2KjYr9q+JywgJ9is2YXYudix2KfYqicsICfYrNmF2LnbgScsICfbgdmB2KrbgSddO1xuXG4gICAgdmFyIHVyID0gbW9tZW50LmRlZmluZUxvY2FsZSgndXInLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogZGF5cyxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46IGRheXMsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGTYjCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/Ytdio2K182LTYp9mFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9i02KfZhScgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LXYqNitJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAn2LTYp9mFJztcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KLYrCDYqNmI2YLYql0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vaqdmEINio2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9io2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9qv2LDYtNiq24Eg2LHZiNiyINio2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1var9iw2LTYqtuBXSBkZGRkIFvYqNmI2YLYql0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDYqNi52K8nLFxuICAgICAgICAgICAgcGFzdDogJyVzINmC2KjZhCcsXG4gICAgICAgICAgICBzOiAn2obZhtivINiz24zaqdmG2ognLFxuICAgICAgICAgICAgc3M6ICclZCDYs9uM2qnZhtqIJyxcbiAgICAgICAgICAgIG06ICfYp9uM2qkg2YXZhtm5JyxcbiAgICAgICAgICAgIG1tOiAnJWQg2YXZhtm5JyxcbiAgICAgICAgICAgIGg6ICfYp9uM2qkg2q/avtmG2bnbgScsXG4gICAgICAgICAgICBoaDogJyVkINqv2r7Zhtm525InLFxuICAgICAgICAgICAgZDogJ9in24zaqSDYr9mGJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2K/ZhicsXG4gICAgICAgICAgICBNOiAn2KfbjNqpINmF2KfbgScsXG4gICAgICAgICAgICBNTTogJyVkINmF2KfbgScsXG4gICAgICAgICAgICB5OiAn2KfbjNqpINiz2KfZhCcsXG4gICAgICAgICAgICB5eTogJyVkINiz2KfZhCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFV6YmVrIExhdGluIFt1ei1sYXRuXVxuLy8hIGF1dGhvciA6IFJhc3VsYmVrIE1pcnpheWV2IDogZ2l0aHViLmNvbS9SYXN1bGJlZWVrXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdXpMYXRuID0gbW9tZW50LmRlZmluZUxvY2FsZSgndXotbGF0bicsIHtcbiAgICAgICAgbW9udGhzOiAnWWFudmFyX0ZldnJhbF9NYXJ0X0FwcmVsX01heV9JeXVuX0l5dWxfQXZndXN0X1NlbnRhYnJfT2t0YWJyX05veWFicl9EZWthYnInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnWWFuX0Zldl9NYXJfQXByX01heV9JeXVuX0l5dWxfQXZnX1Nlbl9Pa3RfTm95X0Rlaycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6XG4gICAgICAgICAgICAnWWFrc2hhbmJhX0R1c2hhbmJhX1Nlc2hhbmJhX0Nob3JzaGFuYmFfUGF5c2hhbmJhX0p1bWFfU2hhbmJhJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdZYWtfRHVzaF9TZXNoX0Nob3JfUGF5X0p1bV9TaGFuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1lhX0R1X1NlX0Nob19QYV9KdV9TaGEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ0QgTU1NTSBZWVlZLCBkZGRkIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQnVndW4gc29hdF0gTFQgW2RhXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0VydGFnYV0gTFQgW2RhXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2t1bmkgc29hdF0gTFQgW2RhXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0tlY2hhIHNvYXRdIExUIFtkYV0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6IFwiW08ndGdhbl0gZGRkZCBba3VuaSBzb2F0XSBMVCBbZGFdXCIsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ1lhcWluICVzIGljaGlkYScsXG4gICAgICAgICAgICBwYXN0OiAnQmlyIG5lY2hhICVzIG9sZGluJyxcbiAgICAgICAgICAgIHM6ICdzb25peWEnLFxuICAgICAgICAgICAgc3M6ICclZCBzb25peWEnLFxuICAgICAgICAgICAgbTogJ2JpciBkYXFpcWEnLFxuICAgICAgICAgICAgbW06ICclZCBkYXFpcWEnLFxuICAgICAgICAgICAgaDogJ2JpciBzb2F0JyxcbiAgICAgICAgICAgIGhoOiAnJWQgc29hdCcsXG4gICAgICAgICAgICBkOiAnYmlyIGt1bicsXG4gICAgICAgICAgICBkZDogJyVkIGt1bicsXG4gICAgICAgICAgICBNOiAnYmlyIG95JyxcbiAgICAgICAgICAgIE1NOiAnJWQgb3knLFxuICAgICAgICAgICAgeTogJ2JpciB5aWwnLFxuICAgICAgICAgICAgeXk6ICclZCB5aWwnLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXpMYXRuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFV6YmVrIFt1el1cbi8vISBhdXRob3IgOiBTYXJkb3IgTXVtaW5vdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tdW1pbm9mZlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHV6ID0gbW9tZW50LmRlZmluZUxvY2FsZSgndXonLCB7XG4gICAgICAgIG1vbnRoczogJ9GP0L3QstCw0YBf0YTQtdCy0YDQsNC7X9C80LDRgNGCX9Cw0L/RgNC10Ltf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCz0YPRgdGCX9GB0LXQvdGC0Y/QsdGAX9C+0LrRgtGP0LHRgF/QvdC+0Y/QsdGAX9C00LXQutCw0LHRgCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRj9C90LJf0YTQtdCyX9C80LDRgF/QsNC/0YBf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCzX9GB0LXQvV/QvtC60YJf0L3QvtGPX9C00LXQuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfQr9C60YjQsNC90LHQsF/QlNGD0YjQsNC90LHQsF/QodC10YjQsNC90LHQsF/Qp9C+0YDRiNCw0L3QsdCwX9Cf0LDQudGI0LDQvdCx0LBf0JbRg9C80LBf0KjQsNC90LHQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9Cv0LrRiF/QlNGD0Yhf0KHQtdGIX9Cn0L7RgF/Qn9Cw0Llf0JbRg9C8X9Co0LDQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQr9C6X9CU0YNf0KHQtV/Qp9C+X9Cf0LBf0JbRg1/QqNCwJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdEIE1NTU0gWVlZWSwgZGRkZCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9CR0YPQs9GD0L0g0YHQvtCw0YJdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Ct0YDRgtCw0LPQsF0gTFQgW9C00LBdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb0LrRg9C90Lgg0YHQvtCw0YJdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Ca0LXRh9CwINGB0L7QsNGCXSBMVCBb0LTQsF0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb0KPRgtCz0LDQvV0gZGRkZCBb0LrRg9C90Lgg0YHQvtCw0YJdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9Cv0LrQuNC9ICVzINC40YfQuNC00LAnLFxuICAgICAgICAgICAgcGFzdDogJ9CR0LjRgCDQvdC10YfQsCAlcyDQvtC70LTQuNC9JyxcbiAgICAgICAgICAgIHM6ICfRhNGD0YDRgdCw0YInLFxuICAgICAgICAgICAgc3M6ICclZCDRhNGD0YDRgdCw0YInLFxuICAgICAgICAgICAgbTogJ9Cx0LjRgCDQtNCw0LrQuNC60LAnLFxuICAgICAgICAgICAgbW06ICclZCDQtNCw0LrQuNC60LAnLFxuICAgICAgICAgICAgaDogJ9Cx0LjRgCDRgdC+0LDRgicsXG4gICAgICAgICAgICBoaDogJyVkINGB0L7QsNGCJyxcbiAgICAgICAgICAgIGQ6ICfQsdC40YAg0LrRg9C9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LrRg9C9JyxcbiAgICAgICAgICAgIE06ICfQsdC40YAg0L7QuScsXG4gICAgICAgICAgICBNTTogJyVkINC+0LknLFxuICAgICAgICAgICAgeTogJ9Cx0LjRgCDQudC40LsnLFxuICAgICAgICAgICAgeXk6ICclZCDQudC40LsnLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXo7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVmlldG5hbWVzZSBbdmldXG4vLyEgYXV0aG9yIDogQmFuZyBOZ3V5ZW4gOiBodHRwczovL2dpdGh1Yi5jb20vYmFuZ25rXG4vLyEgYXV0aG9yIDogQ2hpZW4gS2lyYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaGllbmtpcmFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB2aSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3ZpJywge1xuICAgICAgICBtb250aHM6ICd0aMOhbmcgMV90aMOhbmcgMl90aMOhbmcgM190aMOhbmcgNF90aMOhbmcgNV90aMOhbmcgNl90aMOhbmcgN190aMOhbmcgOF90aMOhbmcgOV90aMOhbmcgMTBfdGjDoW5nIDExX3Row6FuZyAxMicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnVGhnIDAxX1RoZyAwMl9UaGcgMDNfVGhnIDA0X1RoZyAwNV9UaGcgMDZfVGhnIDA3X1RoZyAwOF9UaGcgMDlfVGhnIDEwX1RoZyAxMV9UaGcgMTInLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdjaOG7pyBuaOG6rXRfdGjhu6kgaGFpX3Ro4bupIGJhX3Ro4bupIHTGsF90aOG7qSBuxINtX3Ro4bupIHPDoXVfdGjhu6kgYuG6o3knLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdDTl9UMl9UM19UNF9UNV9UNl9UNycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdDTl9UMl9UM19UNF9UNV9UNl9UNycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvc2F8Y2gvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL15jaCQvaS50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdzYScgOiAnU0EnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdjaCcgOiAnQ0gnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBbbsSDbV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gW27Eg21dIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBbbsSDbV0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBsOiAnREQvTS9ZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnRCBNTU0gWVlZWScsXG4gICAgICAgICAgICBsbGw6ICdEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIEQgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIw7RtIG5heSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW05nw6B5IG1haSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3R14bqnbiB04bubaSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0jDtG0gcXVhIGzDumNdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbdHXhuqduIHRyxrDhu5tjIGzDumNdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgdOG7m2knLFxuICAgICAgICAgICAgcGFzdDogJyVzIHRyxrDhu5tjJyxcbiAgICAgICAgICAgIHM6ICd2w6BpIGdpw6J5JyxcbiAgICAgICAgICAgIHNzOiAnJWQgZ2nDonknLFxuICAgICAgICAgICAgbTogJ23hu5l0IHBow7p0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgcGjDunQnLFxuICAgICAgICAgICAgaDogJ23hu5l0IGdp4budJyxcbiAgICAgICAgICAgIGhoOiAnJWQgZ2nhu50nLFxuICAgICAgICAgICAgZDogJ23hu5l0IG5nw6B5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgbmfDoHknLFxuICAgICAgICAgICAgdzogJ23hu5l0IHR14bqnbicsXG4gICAgICAgICAgICB3dzogJyVkIHR14bqnbicsXG4gICAgICAgICAgICBNOiAnbeG7mXQgdGjDoW5nJyxcbiAgICAgICAgICAgIE1NOiAnJWQgdGjDoW5nJyxcbiAgICAgICAgICAgIHk6ICdt4buZdCBuxINtJyxcbiAgICAgICAgICAgIHl5OiAnJWQgbsSDbScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2aTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBQc2V1ZG8gW3gtcHNldWRvXVxuLy8hIGF1dGhvciA6IEFuZHJldyBIb29kIDogaHR0cHM6Ly9naXRodWIuY29tL2FuZHJld2hvb2QxMjVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB4UHNldWRvID0gbW9tZW50LmRlZmluZUxvY2FsZSgneC1wc2V1ZG8nLCB7XG4gICAgICAgIG1vbnRoczogJ0p+w6HDscO6w6F+csO9X0Z+w6licsO6fsOhcsO9X35Nw6FyY35oX8OBcH5yw61sX35Nw6HDvV9+SsO6w7HDqX5fSsO6bH7DvV/DgcO6fmfDunN0fl9Tw6lwfnTDqW1ifsOpcl/Dk35jdMOzYn7DqXJfw5F+w7N2w6ltfmLDqXJffkTDqWPDqX5tYsOpcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6XG4gICAgICAgICAgICAnSn7DocOxX35Gw6liX35Nw6FyX37DgXByX35Nw6HDvV9+SsO6w7FffkrDumxffsOBw7pnX35Tw6lwX37Dk2N0X37DkcOzdl9+RMOpYycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czpcbiAgICAgICAgICAgICdTfsO6w7Fkw6F+w71fTcOzfsOxZMOhw71+X1TDusOpfnNkw6HDvX5fV8OpZH7DscOpc2R+w6HDvV9UfmjDunJzfmTDocO9X35GcsOtZH7DocO9X1N+w6F0w7pyfmTDocO9Jy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTfsO6w7Fffk3Ds8OxX35Uw7rDqV9+V8OpZF9+VGjDul9+RnLDrV9+U8OhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTfsO6X03Ds35fVMO6X35Xw6lfVH5oX0Zyfl9Tw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUfsOzZMOhfsO9IMOhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUfsOzbcOzfnJyw7N+dyDDoXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW8OdfsOpc3R+w6lyZMOhfsO9IMOhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTH7DoXN0XSBkZGRkIFvDoXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnw61+w7EgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMOhfmfDsycsXG4gICAgICAgICAgICBzOiAnw6EgfmbDqXcgfnPDqWPDs37DsWRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc37DqWPDs8OxfmRzJyxcbiAgICAgICAgICAgIG06ICfDoSB+bcOtw7F+w7p0w6knLFxuICAgICAgICAgICAgbW06ICclZCBtfsOtw7HDun50w6lzJyxcbiAgICAgICAgICAgIGg6ICfDoX7DsSBow7N+w7pyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaH7Ds8O6cnMnLFxuICAgICAgICAgICAgZDogJ8OhIH5kw6HDvScsXG4gICAgICAgICAgICBkZDogJyVkIGR+w6HDvXMnLFxuICAgICAgICAgICAgTTogJ8OhIH5tw7PDsX50aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1+w7PDsXR+aHMnLFxuICAgICAgICAgICAgeTogJ8OhIH7DvcOpw6FyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw71+w6nDoXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHRofHN0fG5kfHJkKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHhQc2V1ZG87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogWW9ydWJhIE5pZ2VyaWEgW3lvXVxuLy8hIGF1dGhvciA6IEF0b2xhZ2JlIEFiaXNveWUgOiBodHRwczovL2dpdGh1Yi5jb20vYW5kZWxhLWJhdG9sYWdiZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHlvID0gbW9tZW50LmRlZmluZUxvY2FsZSgneW8nLCB7XG4gICAgICAgIG1vbnRoczogJ1PhurnMgXLhurnMgV9FzIByZcyAbGXMgF/hurhy4bq5zIBuYcyAX0nMgGdiZcyBX0XMgGJpYmlfT8yAa3XMgGR1X0Fn4bq5bW9fT8yAZ3XMgW5fT3dld2Vf4buMzIB3YcyAcmHMgF9CZcyBbHXMgV/hu4zMgHDhurnMgMyAJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ1PhurnMgXJfRcyAcmxf4bq4cm5fScyAZ2JfRcyAYmlfT8yAa3XMgF9BZ+G6uV9PzIBndcyBX093ZV/hu4zMgHdhzIBfQmXMgWxf4buMzIBw4bq5zIDMgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdBzIBpzIBrdcyBX0FqZcyBX0nMgHPhurnMgWd1bl/hu4xq4buNzIFydcyBX+G7jGrhu43MgWLhu41f4bq4dGnMgF9BzIBiYcyBbeG6ucyBdGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdBzIBpzIBrX0FqZcyBX0nMgHPhurnMgV/hu4xqcl/hu4xqYl/hurh0acyAX0HMgGJhzIEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnQcyAacyAX0FqX0nMgHNf4buMcl/hu4xiX+G6uHRfQcyAYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbT8yAbmnMgCBuaV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vhu4zMgGxhIG5pXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogXCJkZGRkIFvhu4xz4bq5zIAgdG/MgW4nYuG7jV0gW25pXSBMVFwiLFxuICAgICAgICAgICAgbGFzdERheTogJ1tBzIBuYSBuaV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvhu4xz4bq5zIAgdG/MgWzhu43MgV0gW25pXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ25pzIEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGvhu41qYcyBJyxcbiAgICAgICAgICAgIHM6ICdpzIBz4bq5anXMgSBhYXlhzIEgZGllJyxcbiAgICAgICAgICAgIHNzOiAnYWF5YcyBICVkJyxcbiAgICAgICAgICAgIG06ICdpzIBz4bq5anXMgSBrYW4nLFxuICAgICAgICAgICAgbW06ICdpzIBz4bq5anXMgSAlZCcsXG4gICAgICAgICAgICBoOiAnd2HMgWthdGkga2FuJyxcbiAgICAgICAgICAgIGhoOiAnd2HMgWthdGkgJWQnLFxuICAgICAgICAgICAgZDogJ+G7jWrhu43MgSBrYW4nLFxuICAgICAgICAgICAgZGQ6ICfhu41q4buNzIEgJWQnLFxuICAgICAgICAgICAgTTogJ29zdcyAIGthbicsXG4gICAgICAgICAgICBNTTogJ29zdcyAICVkJyxcbiAgICAgICAgICAgIHk6ICfhu41kdcyBbiBrYW4nLFxuICAgICAgICAgICAgeXk6ICfhu41kdcyBbiAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC/hu41q4buNzIFcXHNcXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6ICfhu41q4buNzIEgJWQnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4geW87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2hpbmVzZSAoQ2hpbmEpIFt6aC1jbl1cbi8vISBhdXRob3IgOiBzdXVwaWMgOiBodHRwczovL2dpdGh1Yi5jb20vc3V1cGljXG4vLyEgYXV0aG9yIDogWmVubyBaZW5nIDogaHR0cHM6Ly9naXRodWIuY29tL3plbm96ZW5nXG4vLyEgYXV0aG9yIDogdXUxMDkgOiBodHRwczovL2dpdGh1Yi5jb20vdXUxMDlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB6aENuID0gbW9tZW50LmRlZmluZUxvY2FsZSgnemgtY24nLCB7XG4gICAgICAgIG1vbnRoczogJ+S4gOaciF/kuozmnIhf5LiJ5pyIX+Wbm+aciF/kupTmnIhf5YWt5pyIX+S4g+aciF/lhavmnIhf5Lmd5pyIX+WNgeaciF/ljYHkuIDmnIhf5Y2B5LqM5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+aYn+acn+aXpV/mmJ/mnJ/kuIBf5pif5pyf5LqMX+aYn+acn+S4iV/mmJ/mnJ/lm5tf5pif5pyf5LqUX+aYn+acn+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+WRqOaXpV/lkajkuIBf5ZGo5LqMX+WRqOS4iV/lkajlm5tf5ZGo5LqUX+WRqOWFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfml6Vf5LiAX+S6jF/kuIlf5ZubX+S6lF/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVnlubRN5pyIROaXpUFo54K5bW3liIYnLFxuICAgICAgICAgICAgTExMTDogJ1lZWVnlubRN5pyIROaXpWRkZGRBaOeCuW1t5YiGJyxcbiAgICAgICAgICAgIGw6ICdZWVlZL00vRCcsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5YeM5pmofOaXqeS4inzkuIrljYh85Lit5Y2IfOS4i+WNiHzmmZrkuIovLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuIvljYgnIHx8IG1lcmlkaWVtID09PSAn5pma5LiKJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vICfkuK3ljYgnXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgdmFyIGhtID0gaG91ciAqIDEwMCArIG1pbnV0ZTtcbiAgICAgICAgICAgIGlmIChobSA8IDYwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5YeM5pmoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCA5MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aXqeS4iic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTEzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiK5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMjMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuK3ljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDE4MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4i+WNiCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pma5LiKJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb5LuK5aSpXUxUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb5piO5aSpXUxUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vdy53ZWVrKCkgIT09IHRoaXMud2VlaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnW+S4i11kZGRMVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5pysXWRkZExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1vmmKjlpKldTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53ZWVrKCkgIT09IG5vdy53ZWVrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5LiKXWRkZExUJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vmnKxdZGRkTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzlkagpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+WRqCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+WQjicsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+WHoOenkicsXG4gICAgICAgICAgICBzczogJyVkIOenkicsXG4gICAgICAgICAgICBtOiAnMSDliIbpkp8nLFxuICAgICAgICAgICAgbW06ICclZCDliIbpkp8nLFxuICAgICAgICAgICAgaDogJzEg5bCP5pe2JyxcbiAgICAgICAgICAgIGhoOiAnJWQg5bCP5pe2JyxcbiAgICAgICAgICAgIGQ6ICcxIOWkqScsXG4gICAgICAgICAgICBkZDogJyVkIOWkqScsXG4gICAgICAgICAgICB3OiAnMSDlkagnLFxuICAgICAgICAgICAgd3c6ICclZCDlkagnLFxuICAgICAgICAgICAgTTogJzEg5Liq5pyIJyxcbiAgICAgICAgICAgIE1NOiAnJWQg5Liq5pyIJyxcbiAgICAgICAgICAgIHk6ICcxIOW5tCcsXG4gICAgICAgICAgICB5eTogJyVkIOW5tCcsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIC8vIEdCL1QgNzQwOC0xOTk044CK5pWw5o2u5YWD5ZKM5Lqk5o2i5qC85byPwrfkv6Hmga/kuqTmjaLCt+aXpeacn+WSjOaXtumXtOihqOekuuazleOAi+S4jklTTyA4NjAxOjE5ODjnrYnmlYhcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB6aENuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENoaW5lc2UgKEhvbmcgS29uZykgW3poLWhrXVxuLy8hIGF1dGhvciA6IEJlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZW4tbGluXG4vLyEgYXV0aG9yIDogQ2hyaXMgTGFtIDogaHR0cHM6Ly9naXRodWIuY29tL2hlaGFjaHJpc1xuLy8hIGF1dGhvciA6IEtvbnN0YW50aW4gOiBodHRwczovL2dpdGh1Yi5jb20vc2tmZFxuLy8hIGF1dGhvciA6IEFudGhvbnkgOiBodHRwczovL2dpdGh1Yi5jb20vYW50aG9ueWxhdVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHpoSGsgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd6aC1oaycsIHtcbiAgICAgICAgbW9udGhzOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn5pif5pyf5pelX+aYn+acn+S4gF/mmJ/mnJ/kuoxf5pif5pyf5LiJX+aYn+acn+Wbm1/mmJ/mnJ/kupRf5pif5pyf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn6YCx5pelX+mAseS4gF/pgLHkuoxf6YCx5LiJX+mAseWbm1/pgLHkupRf6YCx5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+aXpV/kuIBf5LqMX+S4iV/lm5tf5LqUX+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdZWVlZL00vRCcsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5YeM5pmofOaXqeS4inzkuIrljYh85Lit5Y2IfOS4i+WNiHzmmZrkuIovLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuK3ljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4i+WNiCcgfHwgbWVyaWRpZW0gPT09ICfmmZrkuIonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WHjOaZqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfml6nkuIonO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4iuWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtID09PSAxMjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuK3ljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDE4MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4i+WNiCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pma5LiKJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb5LuK5aSpXUxUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb5piO5aSpXUxUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+S4i11kZGRkTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vmmKjlpKldTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb5LiKXWRkZGRMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzpgLEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+mAsSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+W+jCcsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+W5vuenkicsXG4gICAgICAgICAgICBzczogJyVkIOenkicsXG4gICAgICAgICAgICBtOiAnMSDliIbpkJgnLFxuICAgICAgICAgICAgbW06ICclZCDliIbpkJgnLFxuICAgICAgICAgICAgaDogJzEg5bCP5pmCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg5bCP5pmCJyxcbiAgICAgICAgICAgIGQ6ICcxIOWkqScsXG4gICAgICAgICAgICBkZDogJyVkIOWkqScsXG4gICAgICAgICAgICBNOiAnMSDlgIvmnIgnLFxuICAgICAgICAgICAgTU06ICclZCDlgIvmnIgnLFxuICAgICAgICAgICAgeTogJzEg5bm0JyxcbiAgICAgICAgICAgIHl5OiAnJWQg5bm0JyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB6aEhrO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENoaW5lc2UgKE1hY2F1KSBbemgtbW9dXG4vLyEgYXV0aG9yIDogQmVuIDogaHR0cHM6Ly9naXRodWIuY29tL2Jlbi1saW5cbi8vISBhdXRob3IgOiBDaHJpcyBMYW0gOiBodHRwczovL2dpdGh1Yi5jb20vaGVoYWNocmlzXG4vLyEgYXV0aG9yIDogVGFuIFl1YW5ob25nIDogaHR0cHM6Ly9naXRodWIuY29tL2xlMHRhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHpoTW8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd6aC1tbycsIHtcbiAgICAgICAgbW9udGhzOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn5pif5pyf5pelX+aYn+acn+S4gF/mmJ/mnJ/kuoxf5pif5pyf5LiJX+aYn+acn+Wbm1/mmJ/mnJ/kupRf5pif5pyf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn6YCx5pelX+mAseS4gF/pgLHkuoxf6YCx5LiJX+mAseWbm1/pgLHkupRf6YCx5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+aXpV/kuIBf5LqMX+S4iV/lm5tf5LqUX+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdEL00vWVlZWScsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5YeM5pmofOaXqeS4inzkuIrljYh85Lit5Y2IfOS4i+WNiHzmmZrkuIovLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuK3ljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4i+WNiCcgfHwgbWVyaWRpZW0gPT09ICfmmZrkuIonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WHjOaZqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfml6nkuIonO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDExMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4iuWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTIzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Lit5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxODAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIvljYgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aZmuS4iic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+S7iuWkqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vmmI7lpKldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+S4i11kZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb5pio5aSpXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vkuIpdZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzpgLEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+mAsSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+WFpycsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+W5vuenkicsXG4gICAgICAgICAgICBzczogJyVkIOenkicsXG4gICAgICAgICAgICBtOiAnMSDliIbpkJgnLFxuICAgICAgICAgICAgbW06ICclZCDliIbpkJgnLFxuICAgICAgICAgICAgaDogJzEg5bCP5pmCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg5bCP5pmCJyxcbiAgICAgICAgICAgIGQ6ICcxIOWkqScsXG4gICAgICAgICAgICBkZDogJyVkIOWkqScsXG4gICAgICAgICAgICBNOiAnMSDlgIvmnIgnLFxuICAgICAgICAgICAgTU06ICclZCDlgIvmnIgnLFxuICAgICAgICAgICAgeTogJzEg5bm0JyxcbiAgICAgICAgICAgIHl5OiAnJWQg5bm0JyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB6aE1vO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENoaW5lc2UgKFRhaXdhbikgW3poLXR3XVxuLy8hIGF1dGhvciA6IEJlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZW4tbGluXG4vLyEgYXV0aG9yIDogQ2hyaXMgTGFtIDogaHR0cHM6Ly9naXRodWIuY29tL2hlaGFjaHJpc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHpoVHcgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd6aC10dycsIHtcbiAgICAgICAgbW9udGhzOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn5pif5pyf5pelX+aYn+acn+S4gF/mmJ/mnJ/kuoxf5pif5pyf5LiJX+aYn+acn+Wbm1/mmJ/mnJ/kupRf5pif5pyf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn6YCx5pelX+mAseS4gF/pgLHkuoxf6YCx5LiJX+mAseWbm1/pgLHkupRf6YCx5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+aXpV/kuIBf5LqMX+S4iV/lm5tf5LqUX+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdZWVlZL00vRCcsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5YeM5pmofOaXqeS4inzkuIrljYh85Lit5Y2IfOS4i+WNiHzmmZrkuIovLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuK3ljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4i+WNiCcgfHwgbWVyaWRpZW0gPT09ICfmmZrkuIonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WHjOaZqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfml6nkuIonO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDExMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4iuWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTIzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Lit5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxODAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIvljYgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aZmuS4iic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+S7iuWkqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vmmI7lpKldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+S4i11kZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb5pio5aSpXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vkuIpdZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzpgLEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+mAsSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+W+jCcsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+W5vuenkicsXG4gICAgICAgICAgICBzczogJyVkIOenkicsXG4gICAgICAgICAgICBtOiAnMSDliIbpkJgnLFxuICAgICAgICAgICAgbW06ICclZCDliIbpkJgnLFxuICAgICAgICAgICAgaDogJzEg5bCP5pmCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg5bCP5pmCJyxcbiAgICAgICAgICAgIGQ6ICcxIOWkqScsXG4gICAgICAgICAgICBkZDogJyVkIOWkqScsXG4gICAgICAgICAgICBNOiAnMSDlgIvmnIgnLFxuICAgICAgICAgICAgTU06ICclZCDlgIvmnIgnLFxuICAgICAgICAgICAgeTogJzEg5bm0JyxcbiAgICAgICAgICAgIHl5OiAnJWQg5bm0JyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB6aFR3O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qc1xuLy8hIHZlcnNpb24gOiAyLjI5LjRcbi8vISBhdXRob3JzIDogVGltIFdvb2QsIElza3JlbiBDaGVybmV2LCBNb21lbnQuanMgY29udHJpYnV0b3JzXG4vLyEgbGljZW5zZSA6IE1JVFxuLy8hIG1vbWVudGpzLmNvbVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgPyBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKSA6XG4gICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKGZhY3RvcnkpIDpcbiAgICBnbG9iYWwubW9tZW50ID0gZmFjdG9yeSgpXG59KHRoaXMsIChmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciBob29rQ2FsbGJhY2s7XG5cbiAgICBmdW5jdGlvbiBob29rcygpIHtcbiAgICAgICAgcmV0dXJuIGhvb2tDYWxsYmFjay5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgZG9uZSB0byByZWdpc3RlciB0aGUgbWV0aG9kIGNhbGxlZCB3aXRoIG1vbWVudCgpXG4gICAgLy8gd2l0aG91dCBjcmVhdGluZyBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gICAgZnVuY3Rpb24gc2V0SG9va0NhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgICAgIGhvb2tDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQXJyYXkoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlucHV0IGluc3RhbmNlb2YgQXJyYXkgfHxcbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IEFycmF5XSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09iamVjdChpbnB1dCkge1xuICAgICAgICAvLyBJRTggd2lsbCB0cmVhdCB1bmRlZmluZWQgYW5kIG51bGwgYXMgb2JqZWN0IGlmIGl0IHdhc24ndCBmb3JcbiAgICAgICAgLy8gaW5wdXQgIT0gbnVsbFxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaW5wdXQgIT0gbnVsbCAmJlxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgT2JqZWN0XSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNPd25Qcm9wKGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCBiKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09iamVjdEVtcHR5KG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBrO1xuICAgICAgICAgICAgZm9yIChrIGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKG9iaiwgaykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVbmRlZmluZWQoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09PSB2b2lkIDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNOdW1iZXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicgfHxcbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IE51bWJlcl0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXRlKGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpbnB1dCBpbnN0YW5jZW9mIERhdGUgfHxcbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IERhdGVdJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hcChhcnIsIGZuKSB7XG4gICAgICAgIHZhciByZXMgPSBbXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBhcnJMZW4gPSBhcnIubGVuZ3RoO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyTGVuOyArK2kpIHtcbiAgICAgICAgICAgIHJlcy5wdXNoKGZuKGFycltpXSwgaSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0ZW5kKGEsIGIpIHtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBiKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcChiLCBpKSkge1xuICAgICAgICAgICAgICAgIGFbaV0gPSBiW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc093blByb3AoYiwgJ3RvU3RyaW5nJykpIHtcbiAgICAgICAgICAgIGEudG9TdHJpbmcgPSBiLnRvU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc093blByb3AoYiwgJ3ZhbHVlT2YnKSkge1xuICAgICAgICAgICAgYS52YWx1ZU9mID0gYi52YWx1ZU9mO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCB0cnVlKS51dGMoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZWZhdWx0UGFyc2luZ0ZsYWdzKCkge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIGRlZXAgY2xvbmUgdGhpcyBvYmplY3QuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbXB0eTogZmFsc2UsXG4gICAgICAgICAgICB1bnVzZWRUb2tlbnM6IFtdLFxuICAgICAgICAgICAgdW51c2VkSW5wdXQ6IFtdLFxuICAgICAgICAgICAgb3ZlcmZsb3c6IC0yLFxuICAgICAgICAgICAgY2hhcnNMZWZ0T3ZlcjogMCxcbiAgICAgICAgICAgIG51bGxJbnB1dDogZmFsc2UsXG4gICAgICAgICAgICBpbnZhbGlkRXJhOiBudWxsLFxuICAgICAgICAgICAgaW52YWxpZE1vbnRoOiBudWxsLFxuICAgICAgICAgICAgaW52YWxpZEZvcm1hdDogZmFsc2UsXG4gICAgICAgICAgICB1c2VySW52YWxpZGF0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgaXNvOiBmYWxzZSxcbiAgICAgICAgICAgIHBhcnNlZERhdGVQYXJ0czogW10sXG4gICAgICAgICAgICBlcmE6IG51bGwsXG4gICAgICAgICAgICBtZXJpZGllbTogbnVsbCxcbiAgICAgICAgICAgIHJmYzI4MjI6IGZhbHNlLFxuICAgICAgICAgICAgd2Vla2RheU1pc21hdGNoOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRQYXJzaW5nRmxhZ3MobSkge1xuICAgICAgICBpZiAobS5fcGYgPT0gbnVsbCkge1xuICAgICAgICAgICAgbS5fcGYgPSBkZWZhdWx0UGFyc2luZ0ZsYWdzKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG0uX3BmO1xuICAgIH1cblxuICAgIHZhciBzb21lO1xuICAgIGlmIChBcnJheS5wcm90b3R5cGUuc29tZSkge1xuICAgICAgICBzb21lID0gQXJyYXkucHJvdG90eXBlLnNvbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc29tZSA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICAgICAgICAgIHZhciB0ID0gT2JqZWN0KHRoaXMpLFxuICAgICAgICAgICAgICAgIGxlbiA9IHQubGVuZ3RoID4+PiAwLFxuICAgICAgICAgICAgICAgIGk7XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpIGluIHQgJiYgZnVuLmNhbGwodGhpcywgdFtpXSwgaSwgdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZChtKSB7XG4gICAgICAgIGlmIChtLl9pc1ZhbGlkID09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBmbGFncyA9IGdldFBhcnNpbmdGbGFncyhtKSxcbiAgICAgICAgICAgICAgICBwYXJzZWRQYXJ0cyA9IHNvbWUuY2FsbChmbGFncy5wYXJzZWREYXRlUGFydHMsIGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpICE9IG51bGw7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgaXNOb3dWYWxpZCA9XG4gICAgICAgICAgICAgICAgICAgICFpc05hTihtLl9kLmdldFRpbWUoKSkgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3Mub3ZlcmZsb3cgPCAwICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy5lbXB0eSAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZEVyYSAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZE1vbnRoICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkV2Vla2RheSAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3Mud2Vla2RheU1pc21hdGNoICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy5udWxsSW5wdXQgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRGb3JtYXQgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLnVzZXJJbnZhbGlkYXRlZCAmJlxuICAgICAgICAgICAgICAgICAgICAoIWZsYWdzLm1lcmlkaWVtIHx8IChmbGFncy5tZXJpZGllbSAmJiBwYXJzZWRQYXJ0cykpO1xuXG4gICAgICAgICAgICBpZiAobS5fc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaXNOb3dWYWxpZCA9XG4gICAgICAgICAgICAgICAgICAgIGlzTm93VmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MuY2hhcnNMZWZ0T3ZlciA9PT0gMCAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy51bnVzZWRUb2tlbnMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmJpZ0hvdXIgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKE9iamVjdC5pc0Zyb3plbiA9PSBudWxsIHx8ICFPYmplY3QuaXNGcm96ZW4obSkpIHtcbiAgICAgICAgICAgICAgICBtLl9pc1ZhbGlkID0gaXNOb3dWYWxpZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTm93VmFsaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG0uX2lzVmFsaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZChmbGFncykge1xuICAgICAgICB2YXIgbSA9IGNyZWF0ZVVUQyhOYU4pO1xuICAgICAgICBpZiAoZmxhZ3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgZXh0ZW5kKGdldFBhcnNpbmdGbGFncyhtKSwgZmxhZ3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLnVzZXJJbnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICAvLyBQbHVnaW5zIHRoYXQgYWRkIHByb3BlcnRpZXMgc2hvdWxkIGFsc28gYWRkIHRoZSBrZXkgaGVyZSAobnVsbCB2YWx1ZSksXG4gICAgLy8gc28gd2UgY2FuIHByb3Blcmx5IGNsb25lIG91cnNlbHZlcy5cbiAgICB2YXIgbW9tZW50UHJvcGVydGllcyA9IChob29rcy5tb21lbnRQcm9wZXJ0aWVzID0gW10pLFxuICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICBmdW5jdGlvbiBjb3B5Q29uZmlnKHRvLCBmcm9tKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgcHJvcCxcbiAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgIG1vbWVudFByb3BlcnRpZXNMZW4gPSBtb21lbnRQcm9wZXJ0aWVzLmxlbmd0aDtcblxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzQU1vbWVudE9iamVjdCkpIHtcbiAgICAgICAgICAgIHRvLl9pc0FNb21lbnRPYmplY3QgPSBmcm9tLl9pc0FNb21lbnRPYmplY3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9pKSkge1xuICAgICAgICAgICAgdG8uX2kgPSBmcm9tLl9pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fZikpIHtcbiAgICAgICAgICAgIHRvLl9mID0gZnJvbS5fZjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2wpKSB7XG4gICAgICAgICAgICB0by5fbCA9IGZyb20uX2w7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9zdHJpY3QpKSB7XG4gICAgICAgICAgICB0by5fc3RyaWN0ID0gZnJvbS5fc3RyaWN0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fdHptKSkge1xuICAgICAgICAgICAgdG8uX3R6bSA9IGZyb20uX3R6bTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzVVRDKSkge1xuICAgICAgICAgICAgdG8uX2lzVVRDID0gZnJvbS5faXNVVEM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9vZmZzZXQpKSB7XG4gICAgICAgICAgICB0by5fb2Zmc2V0ID0gZnJvbS5fb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fcGYpKSB7XG4gICAgICAgICAgICB0by5fcGYgPSBnZXRQYXJzaW5nRmxhZ3MoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9sb2NhbGUpKSB7XG4gICAgICAgICAgICB0by5fbG9jYWxlID0gZnJvbS5fbG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vbWVudFByb3BlcnRpZXNMZW4gPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbW9tZW50UHJvcGVydGllc0xlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcHJvcCA9IG1vbWVudFByb3BlcnRpZXNbaV07XG4gICAgICAgICAgICAgICAgdmFsID0gZnJvbVtwcm9wXTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHZhbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9bcHJvcF0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRvO1xuICAgIH1cblxuICAgIC8vIE1vbWVudCBwcm90b3R5cGUgb2JqZWN0XG4gICAgZnVuY3Rpb24gTW9tZW50KGNvbmZpZykge1xuICAgICAgICBjb3B5Q29uZmlnKHRoaXMsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2QgPSBuZXcgRGF0ZShjb25maWcuX2QgIT0gbnVsbCA/IGNvbmZpZy5fZC5nZXRUaW1lKCkgOiBOYU4pO1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9kID0gbmV3IERhdGUoTmFOKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQcmV2ZW50IGluZmluaXRlIGxvb3AgaW4gY2FzZSB1cGRhdGVPZmZzZXQgY3JlYXRlcyBuZXcgbW9tZW50XG4gICAgICAgIC8vIG9iamVjdHMuXG4gICAgICAgIGlmICh1cGRhdGVJblByb2dyZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcyk7XG4gICAgICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc01vbWVudChvYmopIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG9iaiBpbnN0YW5jZW9mIE1vbWVudCB8fCAob2JqICE9IG51bGwgJiYgb2JqLl9pc0FNb21lbnRPYmplY3QgIT0gbnVsbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3YXJuKG1zZykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBob29rcy5zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MgPT09IGZhbHNlICYmXG4gICAgICAgICAgICB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIGNvbnNvbGUud2FyblxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRGVwcmVjYXRpb24gd2FybmluZzogJyArIG1zZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZXByZWNhdGUobXNnLCBmbikge1xuICAgICAgICB2YXIgZmlyc3RUaW1lID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gZXh0ZW5kKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlcihudWxsLCBtc2cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgICAgICAgICAgIHZhciBhcmdzID0gW10sXG4gICAgICAgICAgICAgICAgICAgIGFyZyxcbiAgICAgICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICBhcmdMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcmdMZW47IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBhcmcgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgKz0gJ1xcblsnICsgaSArICddICc7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBhcmd1bWVudHNbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChhcmd1bWVudHNbMF0sIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnICs9IGtleSArICc6ICcgKyBhcmd1bWVudHNbMF1ba2V5XSArICcsICc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIHRyYWlsaW5nIGNvbW1hIGFuZCBzcGFjZVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MucHVzaChhcmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgICAgICAgICBtc2cgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1xcbkFyZ3VtZW50czogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKS5qb2luKCcnKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoKS5zdGFja1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZmlyc3RUaW1lID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfSwgZm4pO1xuICAgIH1cblxuICAgIHZhciBkZXByZWNhdGlvbnMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGRlcHJlY2F0ZVNpbXBsZShuYW1lLCBtc2cpIHtcbiAgICAgICAgaWYgKGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciAhPSBudWxsKSB7XG4gICAgICAgICAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIobmFtZSwgbXNnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRlcHJlY2F0aW9uc1tuYW1lXSkge1xuICAgICAgICAgICAgd2Fybihtc2cpO1xuICAgICAgICAgICAgZGVwcmVjYXRpb25zW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhvb2tzLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9IGZhbHNlO1xuICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciA9IG51bGw7XG5cbiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodHlwZW9mIEZ1bmN0aW9uICE9PSAndW5kZWZpbmVkJyAmJiBpbnB1dCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB8fFxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldChjb25maWcpIHtcbiAgICAgICAgdmFyIHByb3AsIGk7XG4gICAgICAgIGZvciAoaSBpbiBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGNvbmZpZywgaSkpIHtcbiAgICAgICAgICAgICAgICBwcm9wID0gY29uZmlnW2ldO1xuICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNbaV0gPSBwcm9wO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNbJ18nICsgaV0gPSBwcm9wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIC8vIExlbmllbnQgb3JkaW5hbCBwYXJzaW5nIGFjY2VwdHMganVzdCBhIG51bWJlciBpbiBhZGRpdGlvbiB0b1xuICAgICAgICAvLyBudW1iZXIgKyAocG9zc2libHkpIHN0dWZmIGNvbWluZyBmcm9tIF9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlLlxuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgICAgIHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICh0aGlzLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlLnNvdXJjZSB8fCB0aGlzLl9vcmRpbmFsUGFyc2Uuc291cmNlKSArXG4gICAgICAgICAgICAgICAgJ3wnICtcbiAgICAgICAgICAgICAgICAvXFxkezEsMn0vLnNvdXJjZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNoaWxkQ29uZmlnKSB7XG4gICAgICAgIHZhciByZXMgPSBleHRlbmQoe30sIHBhcmVudENvbmZpZyksXG4gICAgICAgICAgICBwcm9wO1xuICAgICAgICBmb3IgKHByb3AgaW4gY2hpbGRDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGNoaWxkQ29uZmlnLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIGlmIChpc09iamVjdChwYXJlbnRDb25maWdbcHJvcF0pICYmIGlzT2JqZWN0KGNoaWxkQ29uZmlnW3Byb3BdKSkge1xuICAgICAgICAgICAgICAgICAgICByZXNbcHJvcF0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kKHJlc1twcm9wXSwgcGFyZW50Q29uZmlnW3Byb3BdKTtcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kKHJlc1twcm9wXSwgY2hpbGRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGRDb25maWdbcHJvcF0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXNbcHJvcF0gPSBjaGlsZENvbmZpZ1twcm9wXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcmVzW3Byb3BdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHByb3AgaW4gcGFyZW50Q29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgaGFzT3duUHJvcChwYXJlbnRDb25maWcsIHByb3ApICYmXG4gICAgICAgICAgICAgICAgIWhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApICYmXG4gICAgICAgICAgICAgICAgaXNPYmplY3QocGFyZW50Q29uZmlnW3Byb3BdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIGNoYW5nZXMgdG8gcHJvcGVydGllcyBkb24ndCBtb2RpZnkgcGFyZW50IGNvbmZpZ1xuICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IGV4dGVuZCh7fSwgcmVzW3Byb3BdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIExvY2FsZShjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNldChjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleXM7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMpIHtcbiAgICAgICAga2V5cyA9IE9iamVjdC5rZXlzO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGtleXMgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgICAgICByZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChvYmosIGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRDYWxlbmRhciA9IHtcbiAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gY2FsZW5kYXIoa2V5LCBtb20sIG5vdykge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fY2FsZW5kYXJba2V5XSB8fCB0aGlzLl9jYWxlbmRhclsnc2FtZUVsc2UnXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob3V0cHV0KSA/IG91dHB1dC5jYWxsKG1vbSwgbm93KSA6IG91dHB1dDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB6ZXJvRmlsbChudW1iZXIsIHRhcmdldExlbmd0aCwgZm9yY2VTaWduKSB7XG4gICAgICAgIHZhciBhYnNOdW1iZXIgPSAnJyArIE1hdGguYWJzKG51bWJlciksXG4gICAgICAgICAgICB6ZXJvc1RvRmlsbCA9IHRhcmdldExlbmd0aCAtIGFic051bWJlci5sZW5ndGgsXG4gICAgICAgICAgICBzaWduID0gbnVtYmVyID49IDA7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoc2lnbiA/IChmb3JjZVNpZ24gPyAnKycgOiAnJykgOiAnLScpICtcbiAgICAgICAgICAgIE1hdGgucG93KDEwLCBNYXRoLm1heCgwLCB6ZXJvc1RvRmlsbCkpLnRvU3RyaW5nKCkuc3Vic3RyKDEpICtcbiAgICAgICAgICAgIGFic051bWJlclxuICAgICAgICApO1xuICAgIH1cblxuICAgIHZhciBmb3JtYXR0aW5nVG9rZW5zID1cbiAgICAgICAgICAgIC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhbSGhdbW0oc3MpP3xNb3xNTT9NP00/fERvfERERG98REQ/RD9EP3xkZGQ/ZD98ZG8/fHdbb3x3XT98V1tvfFddP3xRbz98TnsxLDV9fFlZWVlZWXxZWVlZWXxZWVlZfFlZfHl7Miw0fXx5bz98Z2coZ2dnPyk/fEdHKEdHRz8pP3xlfEV8YXxBfGhoP3xISD98a2s/fG1tP3xzcz98U3sxLDl9fHh8WHx6ej98Wlo/fC4pL2csXG4gICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2VucyA9IC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhMVFN8TFR8TEw/TD9MP3xsezEsNH0pL2csXG4gICAgICAgIGZvcm1hdEZ1bmN0aW9ucyA9IHt9LFxuICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9ucyA9IHt9O1xuXG4gICAgLy8gdG9rZW46ICAgICdNJ1xuICAgIC8vIHBhZGRlZDogICBbJ01NJywgMl1cbiAgICAvLyBvcmRpbmFsOiAgJ01vJ1xuICAgIC8vIGNhbGxiYWNrOiBmdW5jdGlvbiAoKSB7IHRoaXMubW9udGgoKSArIDEgfVxuICAgIGZ1bmN0aW9uIGFkZEZvcm1hdFRva2VuKHRva2VuLCBwYWRkZWQsIG9yZGluYWwsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBmdW5jID0gY2FsbGJhY2s7XG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBmdW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW2NhbGxiYWNrXSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW3Rva2VuXSA9IGZ1bmM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhZGRlZCkge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbcGFkZGVkWzBdXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gemVyb0ZpbGwoZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCBwYWRkZWRbMV0sIHBhZGRlZFsyXSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcmRpbmFsKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1tvcmRpbmFsXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkub3JkaW5hbChcbiAgICAgICAgICAgICAgICAgICAgZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpLFxuICAgICAgICAgICAgICAgICAgICB0b2tlblxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhpbnB1dCkge1xuICAgICAgICBpZiAoaW5wdXQubWF0Y2goL1xcW1tcXHNcXFNdLykpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9eXFxbfFxcXSQvZywgJycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXFxcL2csICcnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlRm9ybWF0RnVuY3Rpb24oZm9ybWF0KSB7XG4gICAgICAgIHZhciBhcnJheSA9IGZvcm1hdC5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBsZW5ndGg7XG5cbiAgICAgICAgZm9yIChpID0gMCwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXRUb2tlbkZ1bmN0aW9uc1thcnJheVtpXV0pIHtcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSByZW1vdmVGb3JtYXR0aW5nVG9rZW5zKGFycmF5W2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAobW9tKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gJycsXG4gICAgICAgICAgICAgICAgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIG91dHB1dCArPSBpc0Z1bmN0aW9uKGFycmF5W2ldKVxuICAgICAgICAgICAgICAgICAgICA/IGFycmF5W2ldLmNhbGwobW9tLCBmb3JtYXQpXG4gICAgICAgICAgICAgICAgICAgIDogYXJyYXlbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIGZvcm1hdCBkYXRlIHVzaW5nIG5hdGl2ZSBkYXRlIG9iamVjdFxuICAgIGZ1bmN0aW9uIGZvcm1hdE1vbWVudChtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG0ubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtYXQgPSBleHBhbmRGb3JtYXQoZm9ybWF0LCBtLmxvY2FsZURhdGEoKSk7XG4gICAgICAgIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdID1cbiAgICAgICAgICAgIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdIHx8IG1ha2VGb3JtYXRGdW5jdGlvbihmb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XShtKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBleHBhbmRGb3JtYXQoZm9ybWF0LCBsb2NhbGUpIHtcbiAgICAgICAgdmFyIGkgPSA1O1xuXG4gICAgICAgIGZ1bmN0aW9uIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2VucyhpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS5sb25nRGF0ZUZvcm1hdChpbnB1dCkgfHwgaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMubGFzdEluZGV4ID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPj0gMCAmJiBsb2NhbEZvcm1hdHRpbmdUb2tlbnMudGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcbiAgICAgICAgICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMsXG4gICAgICAgICAgICAgICAgcmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICBpIC09IDE7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0O1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9uZ0RhdGVGb3JtYXQgPSB7XG4gICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgTDogJ01NL0REL1lZWVknLFxuICAgICAgICBMTDogJ01NTU0gRCwgWVlZWScsXG4gICAgICAgIExMTDogJ01NTU0gRCwgWVlZWSBoOm1tIEEnLFxuICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBELCBZWVlZIGg6bW0gQScsXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxvbmdEYXRlRm9ybWF0KGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XSxcbiAgICAgICAgICAgIGZvcm1hdFVwcGVyID0gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5LnRvVXBwZXJDYXNlKCldO1xuXG4gICAgICAgIGlmIChmb3JtYXQgfHwgIWZvcm1hdFVwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XSA9IGZvcm1hdFVwcGVyXG4gICAgICAgICAgICAubWF0Y2goZm9ybWF0dGluZ1Rva2VucylcbiAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKHRvaykge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgdG9rID09PSAnTU1NTScgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9rID09PSAnTU0nIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvayA9PT0gJ0REJyB8fFxuICAgICAgICAgICAgICAgICAgICB0b2sgPT09ICdkZGRkJ1xuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rLnNsaWNlKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcnKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdEludmFsaWREYXRlID0gJ0ludmFsaWQgZGF0ZSc7XG5cbiAgICBmdW5jdGlvbiBpbnZhbGlkRGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludmFsaWREYXRlO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0T3JkaW5hbCA9ICclZCcsXG4gICAgICAgIGRlZmF1bHREYXlPZk1vbnRoT3JkaW5hbFBhcnNlID0gL1xcZHsxLDJ9LztcblxuICAgIGZ1bmN0aW9uIG9yZGluYWwobnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcmRpbmFsLnJlcGxhY2UoJyVkJywgbnVtYmVyKTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFJlbGF0aXZlVGltZSA9IHtcbiAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICB3OiAnYSB3ZWVrJyxcbiAgICAgICAgd3c6ICclZCB3ZWVrcycsXG4gICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIG91dHB1dCA9IHRoaXMuX3JlbGF0aXZlVGltZVtzdHJpbmddO1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihvdXRwdXQpXG4gICAgICAgICAgICA/IG91dHB1dChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpXG4gICAgICAgICAgICA6IG91dHB1dC5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhc3RGdXR1cmUoZGlmZiwgb3V0cHV0KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbZGlmZiA+IDAgPyAnZnV0dXJlJyA6ICdwYXN0J107XG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGZvcm1hdCkgPyBmb3JtYXQob3V0cHV0KSA6IGZvcm1hdC5yZXBsYWNlKC8lcy9pLCBvdXRwdXQpO1xuICAgIH1cblxuICAgIHZhciBhbGlhc2VzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRVbml0QWxpYXModW5pdCwgc2hvcnRoYW5kKSB7XG4gICAgICAgIHZhciBsb3dlckNhc2UgPSB1bml0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGFsaWFzZXNbbG93ZXJDYXNlXSA9IGFsaWFzZXNbbG93ZXJDYXNlICsgJ3MnXSA9IGFsaWFzZXNbc2hvcnRoYW5kXSA9IHVuaXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplVW5pdHModW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB1bml0cyA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gYWxpYXNlc1t1bml0c10gfHwgYWxpYXNlc1t1bml0cy50b0xvd2VyQ2FzZSgpXVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplT2JqZWN0VW5pdHMoaW5wdXRPYmplY3QpIHtcbiAgICAgICAgdmFyIG5vcm1hbGl6ZWRJbnB1dCA9IHt9LFxuICAgICAgICAgICAgbm9ybWFsaXplZFByb3AsXG4gICAgICAgICAgICBwcm9wO1xuXG4gICAgICAgIGZvciAocHJvcCBpbiBpbnB1dE9iamVjdCkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoaW5wdXRPYmplY3QsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplZFByb3AgPSBub3JtYWxpemVVbml0cyhwcm9wKTtcbiAgICAgICAgICAgICAgICBpZiAobm9ybWFsaXplZFByb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZElucHV0W25vcm1hbGl6ZWRQcm9wXSA9IGlucHV0T2JqZWN0W3Byb3BdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub3JtYWxpemVkSW5wdXQ7XG4gICAgfVxuXG4gICAgdmFyIHByaW9yaXRpZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFVuaXRQcmlvcml0eSh1bml0LCBwcmlvcml0eSkge1xuICAgICAgICBwcmlvcml0aWVzW3VuaXRdID0gcHJpb3JpdHk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UHJpb3JpdGl6ZWRVbml0cyh1bml0c09iaikge1xuICAgICAgICB2YXIgdW5pdHMgPSBbXSxcbiAgICAgICAgICAgIHU7XG4gICAgICAgIGZvciAodSBpbiB1bml0c09iaikge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AodW5pdHNPYmosIHUpKSB7XG4gICAgICAgICAgICAgICAgdW5pdHMucHVzaCh7IHVuaXQ6IHUsIHByaW9yaXR5OiBwcmlvcml0aWVzW3VdIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVuaXRzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBhLnByaW9yaXR5IC0gYi5wcmlvcml0eTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1bml0cztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHtcbiAgICAgICAgcmV0dXJuICh5ZWFyICUgNCA9PT0gMCAmJiB5ZWFyICUgMTAwICE9PSAwKSB8fCB5ZWFyICUgNDAwID09PSAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic0Zsb29yKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgLy8gLTAgLT4gMFxuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbChudW1iZXIpIHx8IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JbnQoYXJndW1lbnRGb3JDb2VyY2lvbikge1xuICAgICAgICB2YXIgY29lcmNlZE51bWJlciA9ICthcmd1bWVudEZvckNvZXJjaW9uLFxuICAgICAgICAgICAgdmFsdWUgPSAwO1xuXG4gICAgICAgIGlmIChjb2VyY2VkTnVtYmVyICE9PSAwICYmIGlzRmluaXRlKGNvZXJjZWROdW1iZXIpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGFic0Zsb29yKGNvZXJjZWROdW1iZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VHZXRTZXQodW5pdCwga2VlcFRpbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXQkMSh0aGlzLCB1bml0LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIGtlZXBUaW1lKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldCh0aGlzLCB1bml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXQobW9tLCB1bml0KSB7XG4gICAgICAgIHJldHVybiBtb20uaXNWYWxpZCgpXG4gICAgICAgICAgICA/IG1vbS5fZFsnZ2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSgpXG4gICAgICAgICAgICA6IE5hTjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXQkMShtb20sIHVuaXQsIHZhbHVlKSB7XG4gICAgICAgIGlmIChtb20uaXNWYWxpZCgpICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB1bml0ID09PSAnRnVsbFllYXInICYmXG4gICAgICAgICAgICAgICAgaXNMZWFwWWVhcihtb20ueWVhcigpKSAmJlxuICAgICAgICAgICAgICAgIG1vbS5tb250aCgpID09PSAxICYmXG4gICAgICAgICAgICAgICAgbW9tLmRhdGUoKSA9PT0gMjlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9JbnQodmFsdWUpO1xuICAgICAgICAgICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XShcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG1vbS5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICBkYXlzSW5Nb250aCh2YWx1ZSwgbW9tLm1vbnRoKCkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIHN0cmluZ0dldCh1bml0cykge1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpc1t1bml0c10pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpc1t1bml0c10oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdHJpbmdTZXQodW5pdHMsIHZhbHVlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdW5pdHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKHVuaXRzKTtcbiAgICAgICAgICAgIHZhciBwcmlvcml0aXplZCA9IGdldFByaW9yaXRpemVkVW5pdHModW5pdHMpLFxuICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgcHJpb3JpdGl6ZWRMZW4gPSBwcmlvcml0aXplZC5sZW5ndGg7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcHJpb3JpdGl6ZWRMZW47IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXNbcHJpb3JpdGl6ZWRbaV0udW5pdF0odW5pdHNbcHJpb3JpdGl6ZWRbaV0udW5pdF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbih0aGlzW3VuaXRzXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1t1bml0c10odmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHZhciBtYXRjaDEgPSAvXFxkLywgLy8gICAgICAgMCAtIDlcbiAgICAgICAgbWF0Y2gyID0gL1xcZFxcZC8sIC8vICAgICAgMDAgLSA5OVxuICAgICAgICBtYXRjaDMgPSAvXFxkezN9LywgLy8gICAgIDAwMCAtIDk5OVxuICAgICAgICBtYXRjaDQgPSAvXFxkezR9LywgLy8gICAgMDAwMCAtIDk5OTlcbiAgICAgICAgbWF0Y2g2ID0gL1srLV0/XFxkezZ9LywgLy8gLTk5OTk5OSAtIDk5OTk5OVxuICAgICAgICBtYXRjaDF0bzIgPSAvXFxkXFxkPy8sIC8vICAgICAgIDAgLSA5OVxuICAgICAgICBtYXRjaDN0bzQgPSAvXFxkXFxkXFxkXFxkPy8sIC8vICAgICA5OTkgLSA5OTk5XG4gICAgICAgIG1hdGNoNXRvNiA9IC9cXGRcXGRcXGRcXGRcXGRcXGQ/LywgLy8gICA5OTk5OSAtIDk5OTk5OVxuICAgICAgICBtYXRjaDF0bzMgPSAvXFxkezEsM30vLCAvLyAgICAgICAwIC0gOTk5XG4gICAgICAgIG1hdGNoMXRvNCA9IC9cXGR7MSw0fS8sIC8vICAgICAgIDAgLSA5OTk5XG4gICAgICAgIG1hdGNoMXRvNiA9IC9bKy1dP1xcZHsxLDZ9LywgLy8gLTk5OTk5OSAtIDk5OTk5OVxuICAgICAgICBtYXRjaFVuc2lnbmVkID0gL1xcZCsvLCAvLyAgICAgICAwIC0gaW5mXG4gICAgICAgIG1hdGNoU2lnbmVkID0gL1srLV0/XFxkKy8sIC8vICAgIC1pbmYgLSBpbmZcbiAgICAgICAgbWF0Y2hPZmZzZXQgPSAvWnxbKy1dXFxkXFxkOj9cXGRcXGQvZ2ksIC8vICswMDowMCAtMDA6MDAgKzAwMDAgLTAwMDAgb3IgWlxuICAgICAgICBtYXRjaFNob3J0T2Zmc2V0ID0gL1p8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8vZ2ksIC8vICswMCAtMDAgKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG4gICAgICAgIG1hdGNoVGltZXN0YW1wID0gL1srLV0/XFxkKyhcXC5cXGR7MSwzfSk/LywgLy8gMTIzNDU2Nzg5IDEyMzQ1Njc4OS4xMjNcbiAgICAgICAgLy8gYW55IHdvcmQgKG9yIHR3bykgY2hhcmFjdGVycyBvciBudW1iZXJzIGluY2x1ZGluZyB0d28vdGhyZWUgd29yZCBtb250aCBpbiBhcmFiaWMuXG4gICAgICAgIC8vIGluY2x1ZGVzIHNjb3R0aXNoIGdhZWxpYyB0d28gd29yZCBhbmQgaHlwaGVuYXRlZCBtb250aHNcbiAgICAgICAgbWF0Y2hXb3JkID1cbiAgICAgICAgICAgIC9bMC05XXswLDI1Nn1bJ2EtelxcdTAwQTAtXFx1MDVGRlxcdTA3MDAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkYwN1xcdUZGMTAtXFx1RkZFRl17MSwyNTZ9fFtcXHUwNjAwLVxcdTA2RkZcXC9dezEsMjU2fShcXHMqP1tcXHUwNjAwLVxcdTA2RkZdezEsMjU2fSl7MSwyfS9pLFxuICAgICAgICByZWdleGVzO1xuXG4gICAgcmVnZXhlcyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkUmVnZXhUb2tlbih0b2tlbiwgcmVnZXgsIHN0cmljdFJlZ2V4KSB7XG4gICAgICAgIHJlZ2V4ZXNbdG9rZW5dID0gaXNGdW5jdGlvbihyZWdleClcbiAgICAgICAgICAgID8gcmVnZXhcbiAgICAgICAgICAgIDogZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGVEYXRhKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gaXNTdHJpY3QgJiYgc3RyaWN0UmVnZXggPyBzdHJpY3RSZWdleCA6IHJlZ2V4O1xuICAgICAgICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcChyZWdleGVzLCB0b2tlbikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHVuZXNjYXBlRm9ybWF0KHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVnZXhlc1t0b2tlbl0oY29uZmlnLl9zdHJpY3QsIGNvbmZpZy5fbG9jYWxlKTtcbiAgICB9XG5cbiAgICAvLyBDb2RlIGZyb20gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNTYxNDkzL2lzLXRoZXJlLWEtcmVnZXhwLWVzY2FwZS1mdW5jdGlvbi1pbi1qYXZhc2NyaXB0XG4gICAgZnVuY3Rpb24gdW5lc2NhcGVGb3JtYXQocykge1xuICAgICAgICByZXR1cm4gcmVnZXhFc2NhcGUoXG4gICAgICAgICAgICBzXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ1xcXFwnLCAnJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgL1xcXFwoXFxbKXxcXFxcKFxcXSl8XFxbKFteXFxdXFxbXSopXFxdfFxcXFwoLikvZyxcbiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKG1hdGNoZWQsIHAxLCBwMiwgcDMsIHA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcDEgfHwgcDIgfHwgcDMgfHwgcDQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVnZXhFc2NhcGUocykge1xuICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC9bLVxcL1xcXFxeJCorPy4oKXxbXFxde31dL2csICdcXFxcJCYnKTtcbiAgICB9XG5cbiAgICB2YXIgdG9rZW5zID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRQYXJzZVRva2VuKHRva2VuLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGZ1bmMgPSBjYWxsYmFjayxcbiAgICAgICAgICAgIHRva2VuTGVuO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdG9rZW4gPSBbdG9rZW5dO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc051bWJlcihjYWxsYmFjaykpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbY2FsbGJhY2tdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0b2tlbkxlbiA9IHRva2VuLmxlbmd0aDtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRva2VuTGVuOyBpKyspIHtcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbltpXV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkV2Vla1BhcnNlVG9rZW4odG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgICAgIGFkZFBhcnNlVG9rZW4odG9rZW4sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgICAgIGNvbmZpZy5fdyA9IGNvbmZpZy5fdyB8fCB7fTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGlucHV0LCBjb25maWcuX3csIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgaW5wdXQsIGNvbmZpZykge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCAmJiBoYXNPd25Qcm9wKHRva2VucywgdG9rZW4pKSB7XG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5dKGlucHV0LCBjb25maWcuX2EsIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIFlFQVIgPSAwLFxuICAgICAgICBNT05USCA9IDEsXG4gICAgICAgIERBVEUgPSAyLFxuICAgICAgICBIT1VSID0gMyxcbiAgICAgICAgTUlOVVRFID0gNCxcbiAgICAgICAgU0VDT05EID0gNSxcbiAgICAgICAgTUlMTElTRUNPTkQgPSA2LFxuICAgICAgICBXRUVLID0gNyxcbiAgICAgICAgV0VFS0RBWSA9IDg7XG5cbiAgICBmdW5jdGlvbiBtb2QobiwgeCkge1xuICAgICAgICByZXR1cm4gKChuICUgeCkgKyB4KSAlIHg7XG4gICAgfVxuXG4gICAgdmFyIGluZGV4T2Y7XG5cbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgICAgICAgaW5kZXhPZiA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4T2YgPSBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgLy8gSSBrbm93XG4gICAgICAgICAgICB2YXIgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXNbaV0gPT09IG8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7XG4gICAgICAgIGlmIChpc05hTih5ZWFyKSB8fCBpc05hTihtb250aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1vZE1vbnRoID0gbW9kKG1vbnRoLCAxMik7XG4gICAgICAgIHllYXIgKz0gKG1vbnRoIC0gbW9kTW9udGgpIC8gMTI7XG4gICAgICAgIHJldHVybiBtb2RNb250aCA9PT0gMVxuICAgICAgICAgICAgPyBpc0xlYXBZZWFyKHllYXIpXG4gICAgICAgICAgICAgICAgPyAyOVxuICAgICAgICAgICAgICAgIDogMjhcbiAgICAgICAgICAgIDogMzEgLSAoKG1vZE1vbnRoICUgNykgJSAyKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignTScsIFsnTU0nLCAyXSwgJ01vJywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aCgpICsgMTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHNTaG9ydCh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ01NTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbW9udGgnLCAnTScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbW9udGgnLCA4KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ00nLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NTScsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignTU1NTScsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ00nLCAnTU0nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNT05USF0gPSB0b0ludChpbnB1dCkgLSAxO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ01NTScsICdNTU1NJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgdmFyIG1vbnRoID0gY29uZmlnLl9sb2NhbGUubW9udGhzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmaW5kIGEgbW9udGggbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkLlxuICAgICAgICBpZiAobW9udGggIT0gbnVsbCkge1xuICAgICAgICAgICAgYXJyYXlbTU9OVEhdID0gbW9udGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkTW9udGggPSBpbnB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNb250aHMgPVxuICAgICAgICAgICAgJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0ID1cbiAgICAgICAgICAgICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgTU9OVEhTX0lOX0ZPUk1BVCA9IC9EW29EXT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK01NTU0/LyxcbiAgICAgICAgZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXggPSBtYXRjaFdvcmQsXG4gICAgICAgIGRlZmF1bHRNb250aHNSZWdleCA9IG1hdGNoV29yZDtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRocyhtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHMpXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9tb250aHNcbiAgICAgICAgICAgICAgICA6IHRoaXMuX21vbnRoc1snc3RhbmRhbG9uZSddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocylcbiAgICAgICAgICAgID8gdGhpcy5fbW9udGhzW20ubW9udGgoKV1cbiAgICAgICAgICAgIDogdGhpcy5fbW9udGhzW1xuICAgICAgICAgICAgICAgICAgKHRoaXMuX21vbnRocy5pc0Zvcm1hdCB8fCBNT05USFNfSU5fRk9STUFUKS50ZXN0KGZvcm1hdClcbiAgICAgICAgICAgICAgICAgICAgICA/ICdmb3JtYXQnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnc3RhbmRhbG9uZSdcbiAgICAgICAgICAgICAgXVttLm1vbnRoKCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1Nob3J0KG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRoc1Nob3J0KVxuICAgICAgICAgICAgICAgID8gdGhpcy5fbW9udGhzU2hvcnRcbiAgICAgICAgICAgICAgICA6IHRoaXMuX21vbnRoc1Nob3J0WydzdGFuZGFsb25lJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzU2hvcnQpXG4gICAgICAgICAgICA/IHRoaXMuX21vbnRoc1Nob3J0W20ubW9udGgoKV1cbiAgICAgICAgICAgIDogdGhpcy5fbW9udGhzU2hvcnRbXG4gICAgICAgICAgICAgICAgICBNT05USFNfSU5fRk9STUFULnRlc3QoZm9ybWF0KSA/ICdmb3JtYXQnIDogJ3N0YW5kYWxvbmUnXG4gICAgICAgICAgICAgIF1bbS5tb250aCgpXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVTdHJpY3RQYXJzZShtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgaWksXG4gICAgICAgICAgICBtb20sXG4gICAgICAgICAgICBsbGMgPSBtb250aE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgdXNlZFxuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gdGhpcy5tb250aHNTaG9ydChcbiAgICAgICAgICAgICAgICAgICAgbW9tLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSB0aGlzLm1vbnRocyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVNb250aHNQYXJzZShtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLCBtb20sIHJlZ2V4O1xuXG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlU3RyaWN0UGFyc2UuY2FsbCh0aGlzLCBtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fbW9udGhzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRPRE86IGFkZCBzb3J0aW5nXG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgbW9udGggKG9yIGFiYnIpIGlzIGEgcHJlZml4IG9mIGFub3RoZXJcbiAgICAgICAgLy8gc2VlIHNvcnRpbmcgaW4gY29tcHV0ZU1vbnRoc1BhcnNlXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAgICAgJ14nICsgdGhpcy5tb250aHMobW9tLCAnJykucmVwbGFjZSgnLicsICcnKSArICckJyxcbiAgICAgICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAgICAgJ14nICsgdGhpcy5tb250aHNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzdHJpY3QgJiYgIXRoaXMuX21vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVnZXggPVxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKSArICd8XicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXhcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09ICdNTU1NJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXS50ZXN0KG1vbnRoTmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09ICdNTU0nICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXS50ZXN0KG1vbnRoTmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyaWN0ICYmIHRoaXMuX21vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gc2V0TW9udGgobW9tLCB2YWx1ZSkge1xuICAgICAgICB2YXIgZGF5T2ZNb250aDtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm4gbW9tO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9JbnQodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG1vbS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IEFub3RoZXIgc2lsZW50IGZhaWx1cmU/XG4gICAgICAgICAgICAgICAgaWYgKCFpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkYXlPZk1vbnRoID0gTWF0aC5taW4obW9tLmRhdGUoKSwgZGF5c0luTW9udGgobW9tLnllYXIoKSwgdmFsdWUpKTtcbiAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArICdNb250aCddKHZhbHVlLCBkYXlPZk1vbnRoKTtcbiAgICAgICAgcmV0dXJuIG1vbTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRNb250aCh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0TW9udGgodGhpcywgdmFsdWUpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMsICdNb250aCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGF5c0luTW9udGgoKSB7XG4gICAgICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb250aHNTaG9ydFJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZU1vbnRoc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0UmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNTaG9ydFJlZ2V4ID0gZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fbW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoc1JlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZU1vbnRoc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNSZWdleCA9IGRlZmF1bHRNb250aHNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXhcbiAgICAgICAgICAgICAgICA6IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29tcHV0ZU1vbnRoc1BhcnNlKCkge1xuICAgICAgICBmdW5jdGlvbiBjbXBMZW5SZXYoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGIubGVuZ3RoIC0gYS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2hvcnRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGxvbmdQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbW9tO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5XG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgIHNob3J0UGllY2VzLnB1c2godGhpcy5tb250aHNTaG9ydChtb20sICcnKSk7XG4gICAgICAgICAgICBsb25nUGllY2VzLnB1c2godGhpcy5tb250aHMobW9tLCAnJykpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaCh0aGlzLm1vbnRocyhtb20sICcnKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgbW9udGggKG9yIGFiYnIpIGlzIGEgcHJlZml4IG9mIGFub3RoZXIgaXRcbiAgICAgICAgLy8gd2lsbCBtYXRjaCB0aGUgbG9uZ2VyIHBpZWNlLlxuICAgICAgICBzaG9ydFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIGxvbmdQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBtaXhlZFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBzaG9ydFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKHNob3J0UGllY2VzW2ldKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXNbaV0gPSByZWdleEVzY2FwZShsb25nUGllY2VzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMjQ7IGkrKykge1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShtaXhlZFBpZWNlc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tb250aHNSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG1peGVkUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRSZWdleCA9IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICB0aGlzLl9tb250aHNTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXignICsgbG9uZ1BpZWNlcy5qb2luKCd8JykgKyAnKScsXG4gICAgICAgICAgICAnaSdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXignICsgc2hvcnRQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1knLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB5ID0gdGhpcy55ZWFyKCk7XG4gICAgICAgIHJldHVybiB5IDw9IDk5OTkgPyB6ZXJvRmlsbCh5LCA0KSA6ICcrJyArIHk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcigpICUgMTAwO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZJywgNF0sIDAsICd5ZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZWScsIDVdLCAwLCAneWVhcicpO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVlZWVlZJywgNiwgdHJ1ZV0sIDAsICd5ZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3llYXInLCAneScpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd5ZWFyJywgMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdZJywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZWVknLCBtYXRjaDF0bzQsIG1hdGNoNCk7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVknLCBtYXRjaDF0bzYsIG1hdGNoNik7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVlZJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ1lZWVlZJywgJ1lZWVlZWSddLCBZRUFSKTtcbiAgICBhZGRQYXJzZVRva2VuKCdZWVlZJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtZRUFSXSA9XG4gICAgICAgICAgICBpbnB1dC5sZW5ndGggPT09IDIgPyBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCkgOiB0b0ludChpbnB1dCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignWVknLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1knLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIGRheXNJblllYXIoeWVhcikge1xuICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTtcbiAgICB9XG5cbiAgICAvLyBIT09LU1xuXG4gICAgaG9va3MucGFyc2VUd29EaWdpdFllYXIgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHRvSW50KGlucHV0KSArICh0b0ludChpbnB1dCkgPiA2OCA/IDE5MDAgOiAyMDAwKTtcbiAgICB9O1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldFllYXIgPSBtYWtlR2V0U2V0KCdGdWxsWWVhcicsIHRydWUpO1xuXG4gICAgZnVuY3Rpb24gZ2V0SXNMZWFwWWVhcigpIHtcbiAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZURhdGUoeSwgbSwgZCwgaCwgTSwgcywgbXMpIHtcbiAgICAgICAgLy8gY2FuJ3QganVzdCBhcHBseSgpIHRvIGNyZWF0ZSBhIGRhdGU6XG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8xODEzNDhcbiAgICAgICAgdmFyIGRhdGU7XG4gICAgICAgIC8vIHRoZSBkYXRlIGNvbnN0cnVjdG9yIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgICAgIC8vIHByZXNlcnZlIGxlYXAgeWVhcnMgdXNpbmcgYSBmdWxsIDQwMCB5ZWFyIGN5Y2xlLCB0aGVuIHJlc2V0XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoeSArIDQwMCwgbSwgZCwgaCwgTSwgcywgbXMpO1xuICAgICAgICAgICAgaWYgKGlzRmluaXRlKGRhdGUuZ2V0RnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKHksIG0sIGQsIGgsIE0sIHMsIG1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVUQ0RhdGUoeSkge1xuICAgICAgICB2YXIgZGF0ZSwgYXJncztcbiAgICAgICAgLy8gdGhlIERhdGUuVVRDIGZ1bmN0aW9uIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgICAgIGFyZ3NbMF0gPSB5ICsgNDAwO1xuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDLmFwcGx5KG51bGwsIGFyZ3MpKTtcbiAgICAgICAgICAgIGlmIChpc0Zpbml0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCkpKSB7XG4gICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQy5hcHBseShudWxsLCBhcmd1bWVudHMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0LW9mLWZpcnN0LXdlZWsgLSBzdGFydC1vZi15ZWFyXG4gICAgZnVuY3Rpb24gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciAvLyBmaXJzdC13ZWVrIGRheSAtLSB3aGljaCBqYW51YXJ5IGlzIGFsd2F5cyBpbiB0aGUgZmlyc3Qgd2VlayAoNCBmb3IgaXNvLCAxIGZvciBvdGhlcilcbiAgICAgICAgICAgIGZ3ZCA9IDcgKyBkb3cgLSBkb3ksXG4gICAgICAgICAgICAvLyBmaXJzdC13ZWVrIGRheSBsb2NhbCB3ZWVrZGF5IC0tIHdoaWNoIGxvY2FsIHdlZWtkYXkgaXMgZndkXG4gICAgICAgICAgICBmd2RsdyA9ICg3ICsgY3JlYXRlVVRDRGF0ZSh5ZWFyLCAwLCBmd2QpLmdldFVUQ0RheSgpIC0gZG93KSAlIDc7XG5cbiAgICAgICAgcmV0dXJuIC1md2RsdyArIGZ3ZCAtIDE7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZSNDYWxjdWxhdGluZ19hX2RhdGVfZ2l2ZW5fdGhlX3llYXIuMkNfd2Vla19udW1iZXJfYW5kX3dlZWtkYXlcbiAgICBmdW5jdGlvbiBkYXlPZlllYXJGcm9tV2Vla3MoeWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIGxvY2FsV2Vla2RheSA9ICg3ICsgd2Vla2RheSAtIGRvdykgJSA3LFxuICAgICAgICAgICAgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldCh5ZWFyLCBkb3csIGRveSksXG4gICAgICAgICAgICBkYXlPZlllYXIgPSAxICsgNyAqICh3ZWVrIC0gMSkgKyBsb2NhbFdlZWtkYXkgKyB3ZWVrT2Zmc2V0LFxuICAgICAgICAgICAgcmVzWWVhcixcbiAgICAgICAgICAgIHJlc0RheU9mWWVhcjtcblxuICAgICAgICBpZiAoZGF5T2ZZZWFyIDw9IDApIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyIC0gMTtcbiAgICAgICAgICAgIHJlc0RheU9mWWVhciA9IGRheXNJblllYXIocmVzWWVhcikgKyBkYXlPZlllYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyKSkge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXIgKyAxO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyIC0gZGF5c0luWWVhcih5ZWFyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHllYXI6IHJlc1llYXIsXG4gICAgICAgICAgICBkYXlPZlllYXI6IHJlc0RheU9mWWVhcixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3ZWVrT2ZZZWFyKG1vbSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQobW9tLnllYXIoKSwgZG93LCBkb3kpLFxuICAgICAgICAgICAgd2VlayA9IE1hdGguZmxvb3IoKG1vbS5kYXlPZlllYXIoKSAtIHdlZWtPZmZzZXQgLSAxKSAvIDcpICsgMSxcbiAgICAgICAgICAgIHJlc1dlZWssXG4gICAgICAgICAgICByZXNZZWFyO1xuXG4gICAgICAgIGlmICh3ZWVrIDwgMSkge1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCkgLSAxO1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWsgKyB3ZWVrc0luWWVhcihyZXNZZWFyLCBkb3csIGRveSk7XG4gICAgICAgIH0gZWxzZSBpZiAod2VlayA+IHdlZWtzSW5ZZWFyKG1vbS55ZWFyKCksIGRvdywgZG95KSkge1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWsgLSB3ZWVrc0luWWVhcihtb20ueWVhcigpLCBkb3csIGRveSk7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKSArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKTtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdlZWs6IHJlc1dlZWssXG4gICAgICAgICAgICB5ZWFyOiByZXNZZWFyLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtzSW5ZZWFyKHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIHdlZWtPZmZzZXROZXh0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIgKyAxLCBkb3csIGRveSk7XG4gICAgICAgIHJldHVybiAoZGF5c0luWWVhcih5ZWFyKSAtIHdlZWtPZmZzZXQgKyB3ZWVrT2Zmc2V0TmV4dCkgLyA3O1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd3JywgWyd3dycsIDJdLCAnd28nLCAnd2VlaycpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdXJywgWydXVycsIDJdLCAnV28nLCAnaXNvV2VlaycpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrJywgJ3cnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWsnLCAnVycpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd3ZWVrJywgNSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrJywgNSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCd3JywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCd3dycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdXJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdXVycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFxuICAgICAgICBbJ3cnLCAnd3cnLCAnVycsICdXVyddLFxuICAgICAgICBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgICAgIHdlZWtbdG9rZW4uc3Vic3RyKDAsIDEpXSA9IHRvSW50KGlucHV0KTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrKG1vbSkge1xuICAgICAgICByZXR1cm4gd2Vla09mWWVhcihtb20sIHRoaXMuX3dlZWsuZG93LCB0aGlzLl93ZWVrLmRveSkud2VlaztcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWsgPSB7XG4gICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVGaXJzdERheU9mV2VlaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWsuZG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZZZWFyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vlay5kb3k7XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2VlayhpbnB1dCkge1xuICAgICAgICB2YXIgd2VlayA9IHRoaXMubG9jYWxlRGF0YSgpLndlZWsodGhpcyk7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2VlayA6IHRoaXMuYWRkKChpbnB1dCAtIHdlZWspICogNywgJ2QnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09XZWVrKGlucHV0KSB7XG4gICAgICAgIHZhciB3ZWVrID0gd2Vla09mWWVhcih0aGlzLCAxLCA0KS53ZWVrO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWsgOiB0aGlzLmFkZCgoaW5wdXQgLSB3ZWVrKSAqIDcsICdkJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2QnLCAwLCAnZG8nLCAnZGF5Jyk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5c01pbih0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzU2hvcnQodGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZGRkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdlJywgMCwgMCwgJ3dlZWtkYXknKTtcbiAgICBhZGRGb3JtYXRUb2tlbignRScsIDAsIDAsICdpc29XZWVrZGF5Jyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheScsICdkJyk7XG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrZGF5JywgJ2UnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWtkYXknLCAnRScpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RheScsIDExKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWtkYXknLCAxMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrZGF5JywgMTEpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignZCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZScsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignRScsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZGQnLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzTWluUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2RkZCcsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNTaG9ydFJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcbiAgICBhZGRSZWdleFRva2VuKCdkZGRkJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZGQnLCAnZGRkJywgJ2RkZGQnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gY29uZmlnLl9sb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgICAgLy8gaWYgd2UgZGlkbid0IGdldCBhIHdlZWtkYXkgbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkXG4gICAgICAgIGlmICh3ZWVrZGF5ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHdlZWsuZCA9IHdlZWtkYXk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkV2Vla2RheSA9IGlucHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2QnLCAnZScsICdFJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIHBhcnNlV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzTmFOKGlucHV0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCA9IGxvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSXNvV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpICUgNyB8fCA3O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc05hTihpbnB1dCkgPyBudWxsIDogaW5wdXQ7XG4gICAgfVxuXG4gICAgLy8gTE9DQUxFU1xuICAgIGZ1bmN0aW9uIHNoaWZ0V2Vla2RheXMod3MsIG4pIHtcbiAgICAgICAgcmV0dXJuIHdzLnNsaWNlKG4sIDcpLmNvbmNhdCh3cy5zbGljZSgwLCBuKSk7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrZGF5cyA9XG4gICAgICAgICAgICAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KCdfJyksXG4gICAgICAgIGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0ID0gJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluID0gJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBkZWZhdWx0V2Vla2RheXNSZWdleCA9IG1hdGNoV29yZCxcbiAgICAgICAgZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleCA9IG1hdGNoV29yZCxcbiAgICAgICAgZGVmYXVsdFdlZWtkYXlzTWluUmVnZXggPSBtYXRjaFdvcmQ7XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5cyhtLCBmb3JtYXQpIHtcbiAgICAgICAgdmFyIHdlZWtkYXlzID0gaXNBcnJheSh0aGlzLl93ZWVrZGF5cylcbiAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNcbiAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNbXG4gICAgICAgICAgICAgICAgICBtICYmIG0gIT09IHRydWUgJiYgdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdChmb3JtYXQpXG4gICAgICAgICAgICAgICAgICAgICAgPyAnZm9ybWF0J1xuICAgICAgICAgICAgICAgICAgICAgIDogJ3N0YW5kYWxvbmUnXG4gICAgICAgICAgICAgIF07XG4gICAgICAgIHJldHVybiBtID09PSB0cnVlXG4gICAgICAgICAgICA/IHNoaWZ0V2Vla2RheXMod2Vla2RheXMsIHRoaXMuX3dlZWsuZG93KVxuICAgICAgICAgICAgOiBtXG4gICAgICAgICAgICA/IHdlZWtkYXlzW20uZGF5KCldXG4gICAgICAgICAgICA6IHdlZWtkYXlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzU2hvcnQobSkge1xuICAgICAgICByZXR1cm4gbSA9PT0gdHJ1ZVxuICAgICAgICAgICAgPyBzaGlmdFdlZWtkYXlzKHRoaXMuX3dlZWtkYXlzU2hvcnQsIHRoaXMuX3dlZWsuZG93KVxuICAgICAgICAgICAgOiBtXG4gICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzU2hvcnRbbS5kYXkoKV1cbiAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNTaG9ydDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5c01pbihtKSB7XG4gICAgICAgIHJldHVybiBtID09PSB0cnVlXG4gICAgICAgICAgICA/IHNoaWZ0V2Vla2RheXModGhpcy5fd2Vla2RheXNNaW4sIHRoaXMuX3dlZWsuZG93KVxuICAgICAgICAgICAgOiBtXG4gICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzTWluW20uZGF5KCldXG4gICAgICAgICAgICA6IHRoaXMuX3dlZWtkYXlzTWluO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZVN0cmljdFBhcnNlJDEod2Vla2RheU5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgaWksXG4gICAgICAgICAgICBtb20sXG4gICAgICAgICAgICBsbGMgPSB3ZWVrZGF5TmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgKytpKSB7XG4gICAgICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzTWluKFxuICAgICAgICAgICAgICAgICAgICBtb20sXG4gICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNTaG9ydChcbiAgICAgICAgICAgICAgICAgICAgbW9tLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5cyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdkZGRkJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNQYXJzZSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVN0cmljdFBhcnNlJDEuY2FsbCh0aGlzLCB3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlKSB7XG4gICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcblxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAgICAgICAgICdeJyArIHRoaXMud2Vla2RheXMobW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJyxcbiAgICAgICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJyxcbiAgICAgICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAgICAgJ14nICsgdGhpcy53ZWVrZGF5c01pbihtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVnZXggPVxuICAgICAgICAgICAgICAgICAgICAnXicgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtkYXlzKG1vbSwgJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ3xeJyArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSArXG4gICAgICAgICAgICAgICAgICAgICd8XicgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gJ2RkZGQnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09ICdkZGQnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgc3RyaWN0ICYmXG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSAnZGQnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fd2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0RGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF5ID0gdGhpcy5faXNVVEMgPyB0aGlzLl9kLmdldFVUQ0RheSgpIDogdGhpcy5fZC5nZXREYXkoKTtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlucHV0ID0gcGFyc2VXZWVrZGF5KGlucHV0LCB0aGlzLmxvY2FsZURhdGEoKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGQoaW5wdXQgLSBkYXksICdkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZGF5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0TG9jYWxlRGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd2Vla2RheSA9ICh0aGlzLmRheSgpICsgNyAtIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdykgJSA3O1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWtkYXkgOiB0aGlzLmFkZChpbnB1dCAtIHdlZWtkYXksICdkJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPRGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGJlaGF2ZXMgdGhlIHNhbWUgYXMgbW9tZW50I2RheSBleGNlcHRcbiAgICAgICAgLy8gYXMgYSBnZXR0ZXIsIHJldHVybnMgNyBpbnN0ZWFkIG9mIDAgKDEtNyByYW5nZSBpbnN0ZWFkIG9mIDAtNilcbiAgICAgICAgLy8gYXMgYSBzZXR0ZXIsIHN1bmRheSBzaG91bGQgYmVsb25nIHRvIHRoZSBwcmV2aW91cyB3ZWVrLlxuXG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgd2Vla2RheSA9IHBhcnNlSXNvV2Vla2RheShpbnB1dCwgdGhpcy5sb2NhbGVEYXRhKCkpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KHRoaXMuZGF5KCkgJSA3ID8gd2Vla2RheSA6IHdlZWtkYXkgLSA3KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpIHx8IDc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3ZWVrZGF5c1JlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1JlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtkYXlzU2hvcnRSZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzU2hvcnRSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggJiYgaXNTdHJpY3RcbiAgICAgICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla2RheXNNaW5SZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNNaW5SZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IGRlZmF1bHRXZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggJiYgaXNTdHJpY3RcbiAgICAgICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXhcbiAgICAgICAgICAgICAgICA6IHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb21wdXRlV2Vla2RheXNQYXJzZSgpIHtcbiAgICAgICAgZnVuY3Rpb24gY21wTGVuUmV2KGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG1pblBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgc2hvcnRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGxvbmdQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbW9tLFxuICAgICAgICAgICAgbWlucCxcbiAgICAgICAgICAgIHNob3J0cCxcbiAgICAgICAgICAgIGxvbmdwO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgMV0pLmRheShpKTtcbiAgICAgICAgICAgIG1pbnAgPSByZWdleEVzY2FwZSh0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpKTtcbiAgICAgICAgICAgIHNob3J0cCA9IHJlZ2V4RXNjYXBlKHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSk7XG4gICAgICAgICAgICBsb25ncCA9IHJlZ2V4RXNjYXBlKHRoaXMud2Vla2RheXMobW9tLCAnJykpO1xuICAgICAgICAgICAgbWluUGllY2VzLnB1c2gobWlucCk7XG4gICAgICAgICAgICBzaG9ydFBpZWNlcy5wdXNoKHNob3J0cCk7XG4gICAgICAgICAgICBsb25nUGllY2VzLnB1c2gobG9uZ3ApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChtaW5wKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2gobG9uZ3ApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgd2Vla2RheSAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlciBpdFxuICAgICAgICAvLyB3aWxsIG1hdGNoIHRoZSBsb25nZXIgcGllY2UuXG4gICAgICAgIG1pblBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbG9uZ1BpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIG1peGVkUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcblxuICAgICAgICB0aGlzLl93ZWVrZGF5c1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXggPSB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gdGhpcy5fd2Vla2RheXNSZWdleDtcblxuICAgICAgICB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBsb25nUGllY2VzLmpvaW4oJ3wnKSArICcpJyxcbiAgICAgICAgICAgICdpJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ14oJyArIHNob3J0UGllY2VzLmpvaW4oJ3wnKSArICcpJyxcbiAgICAgICAgICAgICdpJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBtaW5QaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgZnVuY3Rpb24gaEZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKSAlIDEyIHx8IDEyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGtGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvdXJzKCkgfHwgMjQ7XG4gICAgfVxuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0gnLCBbJ0hIJywgMl0sIDAsICdob3VyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ2gnLCBbJ2hoJywgMl0sIDAsIGhGb3JtYXQpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdrJywgWydraycsIDJdLCAwLCBrRm9ybWF0KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdobW0nLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIGhGb3JtYXQuYXBwbHkodGhpcykgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMik7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignaG1tc3MnLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAnJyArXG4gICAgICAgICAgICBoRm9ybWF0LmFwcGx5KHRoaXMpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKSArXG4gICAgICAgICAgICB6ZXJvRmlsbCh0aGlzLnNlY29uZHMoKSwgMilcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdIbW0nLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIHRoaXMuaG91cnMoKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdIbW1zcycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICcnICtcbiAgICAgICAgICAgIHRoaXMuaG91cnMoKSArXG4gICAgICAgICAgICB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMikgK1xuICAgICAgICAgICAgemVyb0ZpbGwodGhpcy5zZWNvbmRzKCksIDIpXG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtZXJpZGllbSh0b2tlbiwgbG93ZXJjYXNlKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0oXG4gICAgICAgICAgICAgICAgdGhpcy5ob3VycygpLFxuICAgICAgICAgICAgICAgIHRoaXMubWludXRlcygpLFxuICAgICAgICAgICAgICAgIGxvd2VyY2FzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWVyaWRpZW0oJ2EnLCB0cnVlKTtcbiAgICBtZXJpZGllbSgnQScsIGZhbHNlKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnaG91cicsICdoJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnaG91cicsIDEzKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGZ1bmN0aW9uIG1hdGNoTWVyaWRpZW0oaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLl9tZXJpZGllbVBhcnNlO1xuICAgIH1cblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2EnLCBtYXRjaE1lcmlkaWVtKTtcbiAgICBhZGRSZWdleFRva2VuKCdBJywgbWF0Y2hNZXJpZGllbSk7XG4gICAgYWRkUmVnZXhUb2tlbignSCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignaCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignaycsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignSEgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignaGgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbigna2snLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5cbiAgICBhZGRSZWdleFRva2VuKCdobW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2htbXNzJywgbWF0Y2g1dG82KTtcbiAgICBhZGRSZWdleFRva2VuKCdIbW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0htbXNzJywgbWF0Y2g1dG82KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydIJywgJ0hIJ10sIEhPVVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydrJywgJ2trJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIga0lucHV0ID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBhcnJheVtIT1VSXSA9IGtJbnB1dCA9PT0gMjQgPyAwIDoga0lucHV0O1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oWydhJywgJ0EnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5faXNQbSA9IGNvbmZpZy5fbG9jYWxlLmlzUE0oaW5wdXQpO1xuICAgICAgICBjb25maWcuX21lcmlkaWVtID0gaW5wdXQ7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2gnLCAnaGgnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW0nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvcyA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvcykpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvcykpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW1zcycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQsXG4gICAgICAgICAgICBwb3MyID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zMSkpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICAgICAgYXJyYXlbU0VDT05EXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MyKSk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0htbScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zKSk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignSG1tc3MnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvczEgPSBpbnB1dC5sZW5ndGggLSA0LFxuICAgICAgICAgICAgcG9zMiA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvczEpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MxLCAyKSk7XG4gICAgICAgIGFycmF5W1NFQ09ORF0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMikpO1xuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlSXNQTShpbnB1dCkge1xuICAgICAgICAvLyBJRTggUXVpcmtzIE1vZGUgJiBJRTcgU3RhbmRhcmRzIE1vZGUgZG8gbm90IGFsbG93IGFjY2Vzc2luZyBzdHJpbmdzIGxpa2UgYXJyYXlzXG4gICAgICAgIC8vIFVzaW5nIGNoYXJBdCBzaG91bGQgYmUgbW9yZSBjb21wYXRpYmxlLlxuICAgICAgICByZXR1cm4gKGlucHV0ICsgJycpLnRvTG93ZXJDYXNlKCkuY2hhckF0KDApID09PSAncCc7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNZXJpZGllbVBhcnNlID0gL1thcF1cXC4/bT9cXC4/L2ksXG4gICAgICAgIC8vIFNldHRpbmcgdGhlIGhvdXIgc2hvdWxkIGtlZXAgdGhlIHRpbWUsIGJlY2F1c2UgdGhlIHVzZXIgZXhwbGljaXRseVxuICAgICAgICAvLyBzcGVjaWZpZWQgd2hpY2ggaG91ciB0aGV5IHdhbnQuIFNvIHRyeWluZyB0byBtYWludGFpbiB0aGUgc2FtZSBob3VyIChpblxuICAgICAgICAvLyBhIG5ldyB0aW1lem9uZSkgbWFrZXMgc2Vuc2UuIEFkZGluZy9zdWJ0cmFjdGluZyBob3VycyBkb2VzIG5vdCBmb2xsb3dcbiAgICAgICAgLy8gdGhpcyBydWxlLlxuICAgICAgICBnZXRTZXRIb3VyID0gbWFrZUdldFNldCgnSG91cnMnLCB0cnVlKTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1lcmlkaWVtKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdwbScgOiAnUE0nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnYW0nIDogJ0FNJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBiYXNlQ29uZmlnID0ge1xuICAgICAgICBjYWxlbmRhcjogZGVmYXVsdENhbGVuZGFyLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDogZGVmYXVsdExvbmdEYXRlRm9ybWF0LFxuICAgICAgICBpbnZhbGlkRGF0ZTogZGVmYXVsdEludmFsaWREYXRlLFxuICAgICAgICBvcmRpbmFsOiBkZWZhdWx0T3JkaW5hbCxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UsXG4gICAgICAgIHJlbGF0aXZlVGltZTogZGVmYXVsdFJlbGF0aXZlVGltZSxcblxuICAgICAgICBtb250aHM6IGRlZmF1bHRMb2NhbGVNb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQsXG5cbiAgICAgICAgd2VlazogZGVmYXVsdExvY2FsZVdlZWssXG5cbiAgICAgICAgd2Vla2RheXM6IGRlZmF1bHRMb2NhbGVXZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46IGRlZmF1bHRMb2NhbGVXZWVrZGF5c01pbixcbiAgICAgICAgd2Vla2RheXNTaG9ydDogZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQsXG5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2UsXG4gICAgfTtcblxuICAgIC8vIGludGVybmFsIHN0b3JhZ2UgZm9yIGxvY2FsZSBjb25maWcgZmlsZXNcbiAgICB2YXIgbG9jYWxlcyA9IHt9LFxuICAgICAgICBsb2NhbGVGYW1pbGllcyA9IHt9LFxuICAgICAgICBnbG9iYWxMb2NhbGU7XG5cbiAgICBmdW5jdGlvbiBjb21tb25QcmVmaXgoYXJyMSwgYXJyMikge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIG1pbmwgPSBNYXRoLm1pbihhcnIxLmxlbmd0aCwgYXJyMi5sZW5ndGgpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbWlubDsgaSArPSAxKSB7XG4gICAgICAgICAgICBpZiAoYXJyMVtpXSAhPT0gYXJyMltpXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaW5sO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZShrZXkpIHtcbiAgICAgICAgcmV0dXJuIGtleSA/IGtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJ18nLCAnLScpIDoga2V5O1xuICAgIH1cblxuICAgIC8vIHBpY2sgdGhlIGxvY2FsZSBmcm9tIHRoZSBhcnJheVxuICAgIC8vIHRyeSBbJ2VuLWF1JywgJ2VuLWdiJ10gYXMgJ2VuLWF1JywgJ2VuLWdiJywgJ2VuJywgYXMgaW4gbW92ZSB0aHJvdWdoIHRoZSBsaXN0IHRyeWluZyBlYWNoXG4gICAgLy8gc3Vic3RyaW5nIGZyb20gbW9zdCBzcGVjaWZpYyB0byBsZWFzdCwgYnV0IG1vdmUgdG8gdGhlIG5leHQgYXJyYXkgaXRlbSBpZiBpdCdzIGEgbW9yZSBzcGVjaWZpYyB2YXJpYW50IHRoYW4gdGhlIGN1cnJlbnQgcm9vdFxuICAgIGZ1bmN0aW9uIGNob29zZUxvY2FsZShuYW1lcykge1xuICAgICAgICB2YXIgaSA9IDAsXG4gICAgICAgICAgICBqLFxuICAgICAgICAgICAgbmV4dCxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIHNwbGl0O1xuXG4gICAgICAgIHdoaWxlIChpIDwgbmFtZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzcGxpdCA9IG5vcm1hbGl6ZUxvY2FsZShuYW1lc1tpXSkuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIGogPSBzcGxpdC5sZW5ndGg7XG4gICAgICAgICAgICBuZXh0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2kgKyAxXSk7XG4gICAgICAgICAgICBuZXh0ID0gbmV4dCA/IG5leHQuc3BsaXQoJy0nKSA6IG51bGw7XG4gICAgICAgICAgICB3aGlsZSAoaiA+IDApIHtcbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKHNwbGl0LnNsaWNlKDAsIGopLmpvaW4oJy0nKSk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIG5leHQgJiZcbiAgICAgICAgICAgICAgICAgICAgbmV4dC5sZW5ndGggPj0gaiAmJlxuICAgICAgICAgICAgICAgICAgICBjb21tb25QcmVmaXgoc3BsaXQsIG5leHQpID49IGogLSAxXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vdGhlIG5leHQgYXJyYXkgaXRlbSBpcyBiZXR0ZXIgdGhhbiBhIHNoYWxsb3dlciBzdWJzdHJpbmcgb2YgdGhpcyBvbmVcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGotLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTG9jYWxlTmFtZVNhbmUobmFtZSkge1xuICAgICAgICAvLyBQcmV2ZW50IG5hbWVzIHRoYXQgbG9vayBsaWtlIGZpbGVzeXN0ZW0gcGF0aHMsIGkuZSBjb250YWluICcvJyBvciAnXFwnXG4gICAgICAgIHJldHVybiBuYW1lLm1hdGNoKCdeW14vXFxcXFxcXFxdKiQnKSAhPSBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvYWRMb2NhbGUobmFtZSkge1xuICAgICAgICB2YXIgb2xkTG9jYWxlID0gbnVsbCxcbiAgICAgICAgICAgIGFsaWFzZWRSZXF1aXJlO1xuICAgICAgICAvLyBUT0RPOiBGaW5kIGEgYmV0dGVyIHdheSB0byByZWdpc3RlciBhbmQgbG9hZCBhbGwgdGhlIGxvY2FsZXMgaW4gTm9kZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBsb2NhbGVzW25hbWVdID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICBtb2R1bGUgJiZcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzICYmXG4gICAgICAgICAgICBpc0xvY2FsZU5hbWVTYW5lKG5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvbGRMb2NhbGUgPSBnbG9iYWxMb2NhbGUuX2FiYnI7XG4gICAgICAgICAgICAgICAgYWxpYXNlZFJlcXVpcmUgPSByZXF1aXJlO1xuICAgICAgICAgICAgICAgIGFsaWFzZWRSZXF1aXJlKCcuL2xvY2FsZS8nICsgbmFtZSk7XG4gICAgICAgICAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlKG9sZExvY2FsZSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBub3QgZm91bmQgdG8gYXZvaWQgcmVwZWF0aW5nIGV4cGVuc2l2ZSBmaWxlIHJlcXVpcmUgY2FsbCBjYXVzaW5nIGhpZ2ggQ1BVXG4gICAgICAgICAgICAgICAgLy8gd2hlbiB0cnlpbmcgdG8gZmluZCBlbi1VUywgZW5fVVMsIGVuLXVzIGZvciBldmVyeSBmb3JtYXQgY2FsbFxuICAgICAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBudWxsOyAvLyBudWxsIG1lYW5zIG5vdCBmb3VuZFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2NhbGVzW25hbWVdO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBsb2FkIGxvY2FsZSBhbmQgdGhlbiBzZXQgdGhlIGdsb2JhbCBsb2NhbGUuICBJZlxuICAgIC8vIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGluLCBpdCB3aWxsIHNpbXBseSByZXR1cm4gdGhlIGN1cnJlbnQgZ2xvYmFsXG4gICAgLy8gbG9jYWxlIGtleS5cbiAgICBmdW5jdGlvbiBnZXRTZXRHbG9iYWxMb2NhbGUoa2V5LCB2YWx1ZXMpIHtcbiAgICAgICAgdmFyIGRhdGE7XG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gZGVmaW5lTG9jYWxlKGtleSwgdmFsdWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAvLyBtb21lbnQuZHVyYXRpb24uX2xvY2FsZSA9IG1vbWVudC5fbG9jYWxlID0gZGF0YTtcbiAgICAgICAgICAgICAgICBnbG9iYWxMb2NhbGUgPSBkYXRhO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgICAgICAgICAgICAgICAvL3dhcm4gdXNlciBpZiBhcmd1bWVudHMgYXJlIHBhc3NlZCBidXQgdGhlIGxvY2FsZSBjb3VsZCBub3QgYmUgc2V0XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICdMb2NhbGUgJyArIGtleSArICcgbm90IGZvdW5kLiBEaWQgeW91IGZvcmdldCB0byBsb2FkIGl0PydcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlLl9hYmJyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlZmluZUxvY2FsZShuYW1lLCBjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGxvY2FsZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBiYXNlQ29uZmlnO1xuICAgICAgICAgICAgY29uZmlnLmFiYnIgPSBuYW1lO1xuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZShcbiAgICAgICAgICAgICAgICAgICAgJ2RlZmluZUxvY2FsZU92ZXJyaWRlJyxcbiAgICAgICAgICAgICAgICAgICAgJ3VzZSBtb21lbnQudXBkYXRlTG9jYWxlKGxvY2FsZU5hbWUsIGNvbmZpZykgdG8gY2hhbmdlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2FuIGV4aXN0aW5nIGxvY2FsZS4gbW9tZW50LmRlZmluZUxvY2FsZShsb2NhbGVOYW1lLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWcpIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGNyZWF0aW5nIGEgbmV3IGxvY2FsZSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kZWZpbmUtbG9jYWxlLyBmb3IgbW9yZSBpbmZvLidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZXNbbmFtZV0uX2NvbmZpZztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbY29uZmlnLnBhcmVudExvY2FsZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdLl9jb25maWc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShjb25maWcucGFyZW50TG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGUuX2NvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2NhbGVzW25hbWVdID0gbmV3IExvY2FsZShtZXJnZUNvbmZpZ3MocGFyZW50Q29uZmlnLCBjb25maWcpKTtcblxuICAgICAgICAgICAgaWYgKGxvY2FsZUZhbWlsaWVzW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbbmFtZV0uZm9yRWFjaChmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICBkZWZpbmVMb2NhbGUoeC5uYW1lLCB4LmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGJhY2t3YXJkcyBjb21wYXQgZm9yIG5vdzogYWxzbyBzZXQgdGhlIGxvY2FsZVxuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHdlIHNldCB0aGUgbG9jYWxlIEFGVEVSIGFsbCBjaGlsZCBsb2NhbGVzIGhhdmUgYmVlblxuICAgICAgICAgICAgLy8gY3JlYXRlZCwgc28gd2Ugd29uJ3QgZW5kIHVwIHdpdGggdGhlIGNoaWxkIGxvY2FsZSBzZXQuXG4gICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBsb2NhbGVzW25hbWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdXNlZnVsIGZvciB0ZXN0aW5nXG4gICAgICAgICAgICBkZWxldGUgbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlTG9jYWxlKG5hbWUsIGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBsb2NhbGUsXG4gICAgICAgICAgICAgICAgdG1wTG9jYWxlLFxuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG5cbiAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdICE9IG51bGwgJiYgbG9jYWxlc1tuYW1lXS5wYXJlbnRMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBleGlzdGluZyBjaGlsZCBsb2NhbGUgaW4tcGxhY2UgdG8gYXZvaWQgbWVtb3J5LWxlYWtzXG4gICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXS5zZXQobWVyZ2VDb25maWdzKGxvY2FsZXNbbmFtZV0uX2NvbmZpZywgY29uZmlnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE1FUkdFXG4gICAgICAgICAgICAgICAgdG1wTG9jYWxlID0gbG9hZExvY2FsZShuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAodG1wTG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gdG1wTG9jYWxlLl9jb25maWc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbmZpZyA9IG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgaWYgKHRtcExvY2FsZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZUxvY2FsZSBpcyBjYWxsZWQgZm9yIGNyZWF0aW5nIGEgbmV3IGxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgYWJiciBzbyBpdCB3aWxsIGhhdmUgYSBuYW1lIChnZXR0ZXJzIHJldHVyblxuICAgICAgICAgICAgICAgICAgICAvLyB1bmRlZmluZWQgb3RoZXJ3aXNlKS5cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLmFiYnIgPSBuYW1lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBuZXcgTG9jYWxlKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgbG9jYWxlLnBhcmVudExvY2FsZSA9IGxvY2FsZXNbbmFtZV07XG4gICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBwYXNzIG51bGwgZm9yIGNvbmZpZyB0byB1bnVwZGF0ZSwgdXNlZnVsIGZvciB0ZXN0c1xuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09IGdldFNldEdsb2JhbExvY2FsZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgLy8gcmV0dXJucyBsb2NhbGUgZGF0YVxuICAgIGZ1bmN0aW9uIGdldExvY2FsZShrZXkpIHtcbiAgICAgICAgdmFyIGxvY2FsZTtcblxuICAgICAgICBpZiAoa2V5ICYmIGtleS5fbG9jYWxlICYmIGtleS5fbG9jYWxlLl9hYmJyKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuX2xvY2FsZS5fYWJicjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0FycmF5KGtleSkpIHtcbiAgICAgICAgICAgIC8vc2hvcnQtY2lyY3VpdCBldmVyeXRoaW5nIGVsc2VcbiAgICAgICAgICAgIGxvY2FsZSA9IGxvYWRMb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5ID0gW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hvb3NlTG9jYWxlKGtleSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdExvY2FsZXMoKSB7XG4gICAgICAgIHJldHVybiBrZXlzKGxvY2FsZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrT3ZlcmZsb3cobSkge1xuICAgICAgICB2YXIgb3ZlcmZsb3csXG4gICAgICAgICAgICBhID0gbS5fYTtcblxuICAgICAgICBpZiAoYSAmJiBnZXRQYXJzaW5nRmxhZ3MobSkub3ZlcmZsb3cgPT09IC0yKSB7XG4gICAgICAgICAgICBvdmVyZmxvdyA9XG4gICAgICAgICAgICAgICAgYVtNT05USF0gPCAwIHx8IGFbTU9OVEhdID4gMTFcbiAgICAgICAgICAgICAgICAgICAgPyBNT05USFxuICAgICAgICAgICAgICAgICAgICA6IGFbREFURV0gPCAxIHx8IGFbREFURV0gPiBkYXlzSW5Nb250aChhW1lFQVJdLCBhW01PTlRIXSlcbiAgICAgICAgICAgICAgICAgICAgPyBEQVRFXG4gICAgICAgICAgICAgICAgICAgIDogYVtIT1VSXSA8IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgICBhW0hPVVJdID4gMjQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoYVtIT1VSXSA9PT0gMjQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGFbTUlOVVRFXSAhPT0gMCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVtTRUNPTkRdICE9PSAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhW01JTExJU0VDT05EXSAhPT0gMCkpXG4gICAgICAgICAgICAgICAgICAgID8gSE9VUlxuICAgICAgICAgICAgICAgICAgICA6IGFbTUlOVVRFXSA8IDAgfHwgYVtNSU5VVEVdID4gNTlcbiAgICAgICAgICAgICAgICAgICAgPyBNSU5VVEVcbiAgICAgICAgICAgICAgICAgICAgOiBhW1NFQ09ORF0gPCAwIHx8IGFbU0VDT05EXSA+IDU5XG4gICAgICAgICAgICAgICAgICAgID8gU0VDT05EXG4gICAgICAgICAgICAgICAgICAgIDogYVtNSUxMSVNFQ09ORF0gPCAwIHx8IGFbTUlMTElTRUNPTkRdID4gOTk5XG4gICAgICAgICAgICAgICAgICAgID8gTUlMTElTRUNPTkRcbiAgICAgICAgICAgICAgICAgICAgOiAtMTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dEYXlPZlllYXIgJiZcbiAgICAgICAgICAgICAgICAob3ZlcmZsb3cgPCBZRUFSIHx8IG92ZXJmbG93ID4gREFURSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gREFURTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93V2Vla3MgJiYgb3ZlcmZsb3cgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBXRUVLO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dXZWVrZGF5ICYmIG92ZXJmbG93ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gV0VFS0RBWTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLm92ZXJmbG93ID0gb3ZlcmZsb3c7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICAvLyBpc28gODYwMSByZWdleFxuICAgIC8vIDAwMDAtMDAtMDAgMDAwMC1XMDAgb3IgMDAwMC1XMDAtMCArIFQgKyAwMCBvciAwMDowMCBvciAwMDowMDowMCBvciAwMDowMDowMC4wMDAgKyArMDA6MDAgb3IgKzAwMDAgb3IgKzAwKVxuICAgIHZhciBleHRlbmRlZElzb1JlZ2V4ID1cbiAgICAgICAgICAgIC9eXFxzKigoPzpbKy1dXFxkezZ9fFxcZHs0fSktKD86XFxkXFxkLVxcZFxcZHxXXFxkXFxkLVxcZHxXXFxkXFxkfFxcZFxcZFxcZHxcXGRcXGQpKSg/OihUfCApKFxcZFxcZCg/OjpcXGRcXGQoPzo6XFxkXFxkKD86Wy4sXVxcZCspPyk/KT8pKFsrLV1cXGRcXGQoPzo6P1xcZFxcZCk/fFxccypaKT8pPyQvLFxuICAgICAgICBiYXNpY0lzb1JlZ2V4ID1cbiAgICAgICAgICAgIC9eXFxzKigoPzpbKy1dXFxkezZ9fFxcZHs0fSkoPzpcXGRcXGRcXGRcXGR8V1xcZFxcZFxcZHxXXFxkXFxkfFxcZFxcZFxcZHxcXGRcXGR8KSkoPzooVHwgKShcXGRcXGQoPzpcXGRcXGQoPzpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoWystXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC8sXG4gICAgICAgIHR6UmVnZXggPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy8sXG4gICAgICAgIGlzb0RhdGVzID0gW1xuICAgICAgICAgICAgWydZWVlZWVktTU0tREQnLCAvWystXVxcZHs2fS1cXGRcXGQtXFxkXFxkL10sXG4gICAgICAgICAgICBbJ1lZWVktTU0tREQnLCAvXFxkezR9LVxcZFxcZC1cXGRcXGQvXSxcbiAgICAgICAgICAgIFsnR0dHRy1bV11XVy1FJywgL1xcZHs0fS1XXFxkXFxkLVxcZC9dLFxuICAgICAgICAgICAgWydHR0dHLVtXXVdXJywgL1xcZHs0fS1XXFxkXFxkLywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZLURERCcsIC9cXGR7NH0tXFxkezN9L10sXG4gICAgICAgICAgICBbJ1lZWVktTU0nLCAvXFxkezR9LVxcZFxcZC8sIGZhbHNlXSxcbiAgICAgICAgICAgIFsnWVlZWVlZTU1ERCcsIC9bKy1dXFxkezEwfS9dLFxuICAgICAgICAgICAgWydZWVlZTU1ERCcsIC9cXGR7OH0vXSxcbiAgICAgICAgICAgIFsnR0dHR1tXXVdXRScsIC9cXGR7NH1XXFxkezN9L10sXG4gICAgICAgICAgICBbJ0dHR0dbV11XVycsIC9cXGR7NH1XXFxkezJ9LywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZREREJywgL1xcZHs3fS9dLFxuICAgICAgICAgICAgWydZWVlZTU0nLCAvXFxkezZ9LywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZJywgL1xcZHs0fS8sIGZhbHNlXSxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gaXNvIHRpbWUgZm9ybWF0cyBhbmQgcmVnZXhlc1xuICAgICAgICBpc29UaW1lcyA9IFtcbiAgICAgICAgICAgIFsnSEg6bW06c3MuU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZFxcLlxcZCsvXSxcbiAgICAgICAgICAgIFsnSEg6bW06c3MsU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZCxcXGQrL10sXG4gICAgICAgICAgICBbJ0hIOm1tOnNzJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIOm1tJywgL1xcZFxcZDpcXGRcXGQvXSxcbiAgICAgICAgICAgIFsnSEhtbXNzLlNTU1MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkXFwuXFxkKy9dLFxuICAgICAgICAgICAgWydISG1tc3MsU1NTUycsIC9cXGRcXGRcXGRcXGRcXGRcXGQsXFxkKy9dLFxuICAgICAgICAgICAgWydISG1tc3MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIbW0nLCAvXFxkXFxkXFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIJywgL1xcZFxcZC9dLFxuICAgICAgICBdLFxuICAgICAgICBhc3BOZXRKc29uUmVnZXggPSAvXlxcLz9EYXRlXFwoKC0/XFxkKykvaSxcbiAgICAgICAgLy8gUkZDIDI4MjIgcmVnZXg6IEZvciBkZXRhaWxzIHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjgyMiNzZWN0aW9uLTMuM1xuICAgICAgICByZmMyODIyID1cbiAgICAgICAgICAgIC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksP1xccyk/KFxcZHsxLDJ9KVxccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylcXHMoXFxkezIsNH0pXFxzKFxcZFxcZCk6KFxcZFxcZCkoPzo6KFxcZFxcZCkpP1xccyg/OihVVHxHTVR8W0VDTVBdW1NEXVQpfChbWnpdKXwoWystXVxcZHs0fSkpJC8sXG4gICAgICAgIG9ic09mZnNldHMgPSB7XG4gICAgICAgICAgICBVVDogMCxcbiAgICAgICAgICAgIEdNVDogMCxcbiAgICAgICAgICAgIEVEVDogLTQgKiA2MCxcbiAgICAgICAgICAgIEVTVDogLTUgKiA2MCxcbiAgICAgICAgICAgIENEVDogLTUgKiA2MCxcbiAgICAgICAgICAgIENTVDogLTYgKiA2MCxcbiAgICAgICAgICAgIE1EVDogLTYgKiA2MCxcbiAgICAgICAgICAgIE1TVDogLTcgKiA2MCxcbiAgICAgICAgICAgIFBEVDogLTcgKiA2MCxcbiAgICAgICAgICAgIFBTVDogLTggKiA2MCxcbiAgICAgICAgfTtcblxuICAgIC8vIGRhdGUgZnJvbSBpc28gZm9ybWF0XG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbUlTTyhjb25maWcpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgc3RyaW5nID0gY29uZmlnLl9pLFxuICAgICAgICAgICAgbWF0Y2ggPSBleHRlbmRlZElzb1JlZ2V4LmV4ZWMoc3RyaW5nKSB8fCBiYXNpY0lzb1JlZ2V4LmV4ZWMoc3RyaW5nKSxcbiAgICAgICAgICAgIGFsbG93VGltZSxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQsXG4gICAgICAgICAgICB0aW1lRm9ybWF0LFxuICAgICAgICAgICAgdHpGb3JtYXQsXG4gICAgICAgICAgICBpc29EYXRlc0xlbiA9IGlzb0RhdGVzLmxlbmd0aCxcbiAgICAgICAgICAgIGlzb1RpbWVzTGVuID0gaXNvVGltZXMubGVuZ3RoO1xuXG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaXNvID0gdHJ1ZTtcbiAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSBpc29EYXRlc0xlbjsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpc29EYXRlc1tpXVsxXS5leGVjKG1hdGNoWzFdKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ID0gaXNvRGF0ZXNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgIGFsbG93VGltZSA9IGlzb0RhdGVzW2ldWzJdICE9PSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGVGb3JtYXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaFszXSkge1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSBpc29UaW1lc0xlbjsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNvVGltZXNbaV1bMV0uZXhlYyhtYXRjaFszXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hdGNoWzJdIHNob3VsZCBiZSAnVCcgb3Igc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JtYXQgPSAobWF0Y2hbMl0gfHwgJyAnKSArIGlzb1RpbWVzW2ldWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRpbWVGb3JtYXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghYWxsb3dUaW1lICYmIHRpbWVGb3JtYXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaFs0XSkge1xuICAgICAgICAgICAgICAgIGlmICh0elJlZ2V4LmV4ZWMobWF0Y2hbNF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHR6Rm9ybWF0ID0gJ1onO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uZmlnLl9mID0gZGF0ZUZvcm1hdCArICh0aW1lRm9ybWF0IHx8ICcnKSArICh0ekZvcm1hdCB8fCAnJyk7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MoXG4gICAgICAgIHllYXJTdHIsXG4gICAgICAgIG1vbnRoU3RyLFxuICAgICAgICBkYXlTdHIsXG4gICAgICAgIGhvdXJTdHIsXG4gICAgICAgIG1pbnV0ZVN0cixcbiAgICAgICAgc2Vjb25kU3RyXG4gICAgKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBbXG4gICAgICAgICAgICB1bnRydW5jYXRlWWVhcih5ZWFyU3RyKSxcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydC5pbmRleE9mKG1vbnRoU3RyKSxcbiAgICAgICAgICAgIHBhcnNlSW50KGRheVN0ciwgMTApLFxuICAgICAgICAgICAgcGFyc2VJbnQoaG91clN0ciwgMTApLFxuICAgICAgICAgICAgcGFyc2VJbnQobWludXRlU3RyLCAxMCksXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHNlY29uZFN0cikge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocGFyc2VJbnQoc2Vjb25kU3RyLCAxMCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1bnRydW5jYXRlWWVhcih5ZWFyU3RyKSB7XG4gICAgICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoeWVhclN0ciwgMTApO1xuICAgICAgICBpZiAoeWVhciA8PSA0OSkge1xuICAgICAgICAgICAgcmV0dXJuIDIwMDAgKyB5ZWFyO1xuICAgICAgICB9IGVsc2UgaWYgKHllYXIgPD0gOTk5KSB7XG4gICAgICAgICAgICByZXR1cm4gMTkwMCArIHllYXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHllYXI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykge1xuICAgICAgICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuICAgICAgICByZXR1cm4gc1xuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKFteKCldKlxcKXxbXFxuXFx0XS9nLCAnICcpXG4gICAgICAgICAgICAucmVwbGFjZSgvKFxcc1xccyspL2csICcgJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9eXFxzXFxzKi8sICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrV2Vla2RheSh3ZWVrZGF5U3RyLCBwYXJzZWRJbnB1dCwgY29uZmlnKSB7XG4gICAgICAgIGlmICh3ZWVrZGF5U3RyKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBSZXBsYWNlIHRoZSB2YW5pbGxhIEpTIERhdGUgb2JqZWN0IHdpdGggYW4gaW5kZXBlbmRlbnQgZGF5LW9mLXdlZWsgY2hlY2suXG4gICAgICAgICAgICB2YXIgd2Vla2RheVByb3ZpZGVkID0gZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQuaW5kZXhPZih3ZWVrZGF5U3RyKSxcbiAgICAgICAgICAgICAgICB3ZWVrZGF5QWN0dWFsID0gbmV3IERhdGUoXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZElucHV0WzBdLFxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRJbnB1dFsxXSxcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkSW5wdXRbMl1cbiAgICAgICAgICAgICAgICApLmdldERheSgpO1xuICAgICAgICAgICAgaWYgKHdlZWtkYXlQcm92aWRlZCAhPT0gd2Vla2RheUFjdHVhbCkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLndlZWtkYXlNaXNtYXRjaCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZU9mZnNldChvYnNPZmZzZXQsIG1pbGl0YXJ5T2Zmc2V0LCBudW1PZmZzZXQpIHtcbiAgICAgICAgaWYgKG9ic09mZnNldCkge1xuICAgICAgICAgICAgcmV0dXJuIG9ic09mZnNldHNbb2JzT2Zmc2V0XTtcbiAgICAgICAgfSBlbHNlIGlmIChtaWxpdGFyeU9mZnNldCkge1xuICAgICAgICAgICAgLy8gdGhlIG9ubHkgYWxsb3dlZCBtaWxpdGFyeSB0eiBpcyBaXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBobSA9IHBhcnNlSW50KG51bU9mZnNldCwgMTApLFxuICAgICAgICAgICAgICAgIG0gPSBobSAlIDEwMCxcbiAgICAgICAgICAgICAgICBoID0gKGhtIC0gbSkgLyAxMDA7XG4gICAgICAgICAgICByZXR1cm4gaCAqIDYwICsgbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgYW5kIHRpbWUgZnJvbSByZWYgMjgyMiBmb3JtYXRcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tUkZDMjgyMihjb25maWcpIHtcbiAgICAgICAgdmFyIG1hdGNoID0gcmZjMjgyMi5leGVjKHByZXByb2Nlc3NSRkMyODIyKGNvbmZpZy5faSkpLFxuICAgICAgICAgICAgcGFyc2VkQXJyYXk7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgcGFyc2VkQXJyYXkgPSBleHRyYWN0RnJvbVJGQzI4MjJTdHJpbmdzKFxuICAgICAgICAgICAgICAgIG1hdGNoWzRdLFxuICAgICAgICAgICAgICAgIG1hdGNoWzNdLFxuICAgICAgICAgICAgICAgIG1hdGNoWzJdLFxuICAgICAgICAgICAgICAgIG1hdGNoWzVdLFxuICAgICAgICAgICAgICAgIG1hdGNoWzZdLFxuICAgICAgICAgICAgICAgIG1hdGNoWzddXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKCFjaGVja1dlZWtkYXkobWF0Y2hbMV0sIHBhcnNlZEFycmF5LCBjb25maWcpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25maWcuX2EgPSBwYXJzZWRBcnJheTtcbiAgICAgICAgICAgIGNvbmZpZy5fdHptID0gY2FsY3VsYXRlT2Zmc2V0KG1hdGNoWzhdLCBtYXRjaFs5XSwgbWF0Y2hbMTBdKTtcblxuICAgICAgICAgICAgY29uZmlnLl9kID0gY3JlYXRlVVRDRGF0ZS5hcHBseShudWxsLCBjb25maWcuX2EpO1xuICAgICAgICAgICAgY29uZmlnLl9kLnNldFVUQ01pbnV0ZXMoY29uZmlnLl9kLmdldFVUQ01pbnV0ZXMoKSAtIGNvbmZpZy5fdHptKTtcblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykucmZjMjgyMiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgZnJvbSAxKSBBU1AuTkVULCAyKSBJU08sIDMpIFJGQyAyODIyIGZvcm1hdHMsIG9yIDQpIG9wdGlvbmFsIGZhbGxiYWNrIGlmIHBhcnNpbmcgaXNuJ3Qgc3RyaWN0XG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZyhjb25maWcpIHtcbiAgICAgICAgdmFyIG1hdGNoZWQgPSBhc3BOZXRKc29uUmVnZXguZXhlYyhjb25maWcuX2kpO1xuICAgICAgICBpZiAobWF0Y2hlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoK21hdGNoZWRbMV0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uZmlnRnJvbUlTTyhjb25maWcpO1xuICAgICAgICBpZiAoY29uZmlnLl9pc1ZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5faXNWYWxpZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gICAgICAgIGlmIChjb25maWcuX2lzVmFsaWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBkZWxldGUgY29uZmlnLl9pc1ZhbGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fc3RyaWN0KSB7XG4gICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZpbmFsIGF0dGVtcHQsIHVzZSBJbnB1dCBGYWxsYmFja1xuICAgICAgICAgICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soY29uZmlnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrID0gZGVwcmVjYXRlKFxuICAgICAgICAndmFsdWUgcHJvdmlkZWQgaXMgbm90IGluIGEgcmVjb2duaXplZCBSRkMyODIyIG9yIElTTyBmb3JtYXQuIG1vbWVudCBjb25zdHJ1Y3Rpb24gZmFsbHMgYmFjayB0byBqcyBEYXRlKCksICcgK1xuICAgICAgICAgICAgJ3doaWNoIGlzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYWxsIGJyb3dzZXJzIGFuZCB2ZXJzaW9ucy4gTm9uIFJGQzI4MjIvSVNPIGRhdGUgZm9ybWF0cyBhcmUgJyArXG4gICAgICAgICAgICAnZGlzY291cmFnZWQuIFBsZWFzZSByZWZlciB0byBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2pzLWRhdGUvIGZvciBtb3JlIGluZm8uJyxcbiAgICAgICAgZnVuY3Rpb24gKGNvbmZpZykge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoY29uZmlnLl9pICsgKGNvbmZpZy5fdXNlVVRDID8gJyBVVEMnIDogJycpKTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBQaWNrIHRoZSBmaXJzdCBkZWZpbmVkIG9mIHR3byBvciB0aHJlZSBhcmd1bWVudHMuXG4gICAgZnVuY3Rpb24gZGVmYXVsdHMoYSwgYiwgYykge1xuICAgICAgICBpZiAoYSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYiAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjdXJyZW50RGF0ZUFycmF5KGNvbmZpZykge1xuICAgICAgICAvLyBob29rcyBpcyBhY3R1YWxseSB0aGUgZXhwb3J0ZWQgbW9tZW50IG9iamVjdFxuICAgICAgICB2YXIgbm93VmFsdWUgPSBuZXcgRGF0ZShob29rcy5ub3coKSk7XG4gICAgICAgIGlmIChjb25maWcuX3VzZVVUQykge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBub3dWYWx1ZS5nZXRVVENGdWxsWWVhcigpLFxuICAgICAgICAgICAgICAgIG5vd1ZhbHVlLmdldFVUQ01vbnRoKCksXG4gICAgICAgICAgICAgICAgbm93VmFsdWUuZ2V0VVRDRGF0ZSgpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW25vd1ZhbHVlLmdldEZ1bGxZZWFyKCksIG5vd1ZhbHVlLmdldE1vbnRoKCksIG5vd1ZhbHVlLmdldERhdGUoKV07XG4gICAgfVxuXG4gICAgLy8gY29udmVydCBhbiBhcnJheSB0byBhIGRhdGUuXG4gICAgLy8gdGhlIGFycmF5IHNob3VsZCBtaXJyb3IgdGhlIHBhcmFtZXRlcnMgYmVsb3dcbiAgICAvLyBub3RlOiBhbGwgdmFsdWVzIHBhc3QgdGhlIHllYXIgYXJlIG9wdGlvbmFsIGFuZCB3aWxsIGRlZmF1bHQgdG8gdGhlIGxvd2VzdCBwb3NzaWJsZSB2YWx1ZS5cbiAgICAvLyBbeWVhciwgbW9udGgsIGRheSAsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZF1cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tQXJyYXkoY29uZmlnKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgIGlucHV0ID0gW10sXG4gICAgICAgICAgICBjdXJyZW50RGF0ZSxcbiAgICAgICAgICAgIGV4cGVjdGVkV2Vla2RheSxcbiAgICAgICAgICAgIHllYXJUb1VzZTtcblxuICAgICAgICBpZiAoY29uZmlnLl9kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlQXJyYXkoY29uZmlnKTtcblxuICAgICAgICAvL2NvbXB1dGUgZGF5IG9mIHRoZSB5ZWFyIGZyb20gd2Vla3MgYW5kIHdlZWtkYXlzXG4gICAgICAgIGlmIChjb25maWcuX3cgJiYgY29uZmlnLl9hW0RBVEVdID09IG51bGwgJiYgY29uZmlnLl9hW01PTlRIXSA9PSBudWxsKSB7XG4gICAgICAgICAgICBkYXlPZlllYXJGcm9tV2Vla0luZm8oY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vaWYgdGhlIGRheSBvZiB0aGUgeWVhciBpcyBzZXQsIGZpZ3VyZSBvdXQgd2hhdCBpdCBpc1xuICAgICAgICBpZiAoY29uZmlnLl9kYXlPZlllYXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgeWVhclRvVXNlID0gZGVmYXVsdHMoY29uZmlnLl9hW1lFQVJdLCBjdXJyZW50RGF0ZVtZRUFSXSk7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBjb25maWcuX2RheU9mWWVhciA+IGRheXNJblllYXIoeWVhclRvVXNlKSB8fFxuICAgICAgICAgICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID09PSAwXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dEYXlPZlllYXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXRlID0gY3JlYXRlVVRDRGF0ZSh5ZWFyVG9Vc2UsIDAsIGNvbmZpZy5fZGF5T2ZZZWFyKTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtNT05USF0gPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gICAgICAgICAgICBjb25maWcuX2FbREFURV0gPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZmF1bHQgdG8gY3VycmVudCBkYXRlLlxuICAgICAgICAvLyAqIGlmIG5vIHllYXIsIG1vbnRoLCBkYXkgb2YgbW9udGggYXJlIGdpdmVuLCBkZWZhdWx0IHRvIHRvZGF5XG4gICAgICAgIC8vICogaWYgZGF5IG9mIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG1vbnRoIGFuZCB5ZWFyXG4gICAgICAgIC8vICogaWYgbW9udGggaXMgZ2l2ZW4sIGRlZmF1bHQgb25seSB5ZWFyXG4gICAgICAgIC8vICogaWYgeWVhciBpcyBnaXZlbiwgZG9uJ3QgZGVmYXVsdCBhbnl0aGluZ1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyAmJiBjb25maWcuX2FbaV0gPT0gbnVsbDsgKytpKSB7XG4gICAgICAgICAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9IGN1cnJlbnREYXRlW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gWmVybyBvdXQgd2hhdGV2ZXIgd2FzIG5vdCBkZWZhdWx0ZWQsIGluY2x1ZGluZyB0aW1lXG4gICAgICAgIGZvciAoOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9XG4gICAgICAgICAgICAgICAgY29uZmlnLl9hW2ldID09IG51bGwgPyAoaSA9PT0gMiA/IDEgOiAwKSA6IGNvbmZpZy5fYVtpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGZvciAyNDowMDowMC4wMDBcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID09PSAyNCAmJlxuICAgICAgICAgICAgY29uZmlnLl9hW01JTlVURV0gPT09IDAgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fYVtTRUNPTkRdID09PSAwICYmXG4gICAgICAgICAgICBjb25maWcuX2FbTUlMTElTRUNPTkRdID09PSAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uZmlnLl9uZXh0RGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWcuX2QgPSAoY29uZmlnLl91c2VVVEMgPyBjcmVhdGVVVENEYXRlIDogY3JlYXRlRGF0ZSkuYXBwbHkoXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgaW5wdXRcbiAgICAgICAgKTtcbiAgICAgICAgZXhwZWN0ZWRXZWVrZGF5ID0gY29uZmlnLl91c2VVVENcbiAgICAgICAgICAgID8gY29uZmlnLl9kLmdldFVUQ0RheSgpXG4gICAgICAgICAgICA6IGNvbmZpZy5fZC5nZXREYXkoKTtcblxuICAgICAgICAvLyBBcHBseSB0aW1lem9uZSBvZmZzZXQgZnJvbSBpbnB1dC4gVGhlIGFjdHVhbCB1dGNPZmZzZXQgY2FuIGJlIGNoYW5nZWRcbiAgICAgICAgLy8gd2l0aCBwYXJzZVpvbmUuXG4gICAgICAgIGlmIChjb25maWcuX3R6bSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fbmV4dERheSkge1xuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gMjQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBmb3IgbWlzbWF0Y2hpbmcgZGF5IG9mIHdlZWtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlnLl93ICYmXG4gICAgICAgICAgICB0eXBlb2YgY29uZmlnLl93LmQgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICBjb25maWcuX3cuZCAhPT0gZXhwZWN0ZWRXZWVrZGF5XG4gICAgICAgICkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpIHtcbiAgICAgICAgdmFyIHcsIHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSwgdGVtcCwgd2Vla2RheU92ZXJmbG93LCBjdXJXZWVrO1xuXG4gICAgICAgIHcgPSBjb25maWcuX3c7XG4gICAgICAgIGlmICh3LkdHICE9IG51bGwgfHwgdy5XICE9IG51bGwgfHwgdy5FICE9IG51bGwpIHtcbiAgICAgICAgICAgIGRvdyA9IDE7XG4gICAgICAgICAgICBkb3kgPSA0O1xuXG4gICAgICAgICAgICAvLyBUT0RPOiBXZSBuZWVkIHRvIHRha2UgdGhlIGN1cnJlbnQgaXNvV2Vla1llYXIsIGJ1dCB0aGF0IGRlcGVuZHMgb25cbiAgICAgICAgICAgIC8vIGhvdyB3ZSBpbnRlcnByZXQgbm93IChsb2NhbCwgdXRjLCBmaXhlZCBvZmZzZXQpLiBTbyBjcmVhdGVcbiAgICAgICAgICAgIC8vIGEgbm93IHZlcnNpb24gb2YgY3VycmVudCBjb25maWcgKHRha2UgbG9jYWwvdXRjL29mZnNldCBmbGFncywgYW5kXG4gICAgICAgICAgICAvLyBjcmVhdGUgbm93KS5cbiAgICAgICAgICAgIHdlZWtZZWFyID0gZGVmYXVsdHMoXG4gICAgICAgICAgICAgICAgdy5HRyxcbiAgICAgICAgICAgICAgICBjb25maWcuX2FbWUVBUl0sXG4gICAgICAgICAgICAgICAgd2Vla09mWWVhcihjcmVhdGVMb2NhbCgpLCAxLCA0KS55ZWFyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgd2VlayA9IGRlZmF1bHRzKHcuVywgMSk7XG4gICAgICAgICAgICB3ZWVrZGF5ID0gZGVmYXVsdHMody5FLCAxKTtcbiAgICAgICAgICAgIGlmICh3ZWVrZGF5IDwgMSB8fCB3ZWVrZGF5ID4gNykge1xuICAgICAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb3cgPSBjb25maWcuX2xvY2FsZS5fd2Vlay5kb3c7XG4gICAgICAgICAgICBkb3kgPSBjb25maWcuX2xvY2FsZS5fd2Vlay5kb3k7XG5cbiAgICAgICAgICAgIGN1cldlZWsgPSB3ZWVrT2ZZZWFyKGNyZWF0ZUxvY2FsKCksIGRvdywgZG95KTtcblxuICAgICAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyh3LmdnLCBjb25maWcuX2FbWUVBUl0sIGN1cldlZWsueWVhcik7XG5cbiAgICAgICAgICAgIC8vIERlZmF1bHQgdG8gY3VycmVudCB3ZWVrLlxuICAgICAgICAgICAgd2VlayA9IGRlZmF1bHRzKHcudywgY3VyV2Vlay53ZWVrKTtcblxuICAgICAgICAgICAgaWYgKHcuZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gd2Vla2RheSAtLSBsb3cgZGF5IG51bWJlcnMgYXJlIGNvbnNpZGVyZWQgbmV4dCB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZDtcbiAgICAgICAgICAgICAgICBpZiAod2Vla2RheSA8IDAgfHwgd2Vla2RheSA+IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHcuZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gbG9jYWwgd2Vla2RheSAtLSBjb3VudGluZyBzdGFydHMgZnJvbSBiZWdpbm5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSB3LmUgKyBkb3c7XG4gICAgICAgICAgICAgICAgaWYgKHcuZSA8IDAgfHwgdy5lID4gNikge1xuICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byBiZWdpbm5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSBkb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdlZWsgPCAxIHx8IHdlZWsgPiB3ZWVrc0luWWVhcih3ZWVrWWVhciwgZG93LCBkb3kpKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dXZWVrcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla2RheU92ZXJmbG93ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtkYXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGVtcCA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgICAgICAgICAgY29uZmlnLl9hW1lFQVJdID0gdGVtcC55ZWFyO1xuICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0ZW1wLmRheU9mWWVhcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBJU08gc3RhbmRhcmRcbiAgICBob29rcy5JU09fODYwMSA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIFJGQyAyODIyIGZvcm1cbiAgICBob29rcy5SRkNfMjgyMiA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gZGF0ZSBmcm9tIHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZ1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyB0byBhbm90aGVyIHBhcnQgb2YgdGhlIGNyZWF0aW9uIGZsb3cgdG8gcHJldmVudCBjaXJjdWxhciBkZXBzXG4gICAgICAgIGlmIChjb25maWcuX2YgPT09IGhvb2tzLklTT184NjAxKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tSVNPKGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuUkZDXzI4MjIpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uZmlnLl9hID0gW107XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gdHJ1ZTtcblxuICAgICAgICAvLyBUaGlzIGFycmF5IGlzIHVzZWQgdG8gbWFrZSBhIERhdGUsIGVpdGhlciB3aXRoIGBuZXcgRGF0ZWAgb3IgYERhdGUuVVRDYFxuICAgICAgICB2YXIgc3RyaW5nID0gJycgKyBjb25maWcuX2ksXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgcGFyc2VkSW5wdXQsXG4gICAgICAgICAgICB0b2tlbnMsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIHNraXBwZWQsXG4gICAgICAgICAgICBzdHJpbmdMZW5ndGggPSBzdHJpbmcubGVuZ3RoLFxuICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCA9IDAsXG4gICAgICAgICAgICBlcmEsXG4gICAgICAgICAgICB0b2tlbkxlbjtcblxuICAgICAgICB0b2tlbnMgPVxuICAgICAgICAgICAgZXhwYW5kRm9ybWF0KGNvbmZpZy5fZiwgY29uZmlnLl9sb2NhbGUpLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpIHx8IFtdO1xuICAgICAgICB0b2tlbkxlbiA9IHRva2Vucy5sZW5ndGg7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0b2tlbkxlbjsgaSsrKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHRva2Vuc1tpXTtcbiAgICAgICAgICAgIHBhcnNlZElucHV0ID0gKHN0cmluZy5tYXRjaChnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4odG9rZW4sIGNvbmZpZykpIHx8XG4gICAgICAgICAgICAgICAgW10pWzBdO1xuICAgICAgICAgICAgaWYgKHBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgc2tpcHBlZCA9IHN0cmluZy5zdWJzdHIoMCwgc3RyaW5nLmluZGV4T2YocGFyc2VkSW5wdXQpKTtcbiAgICAgICAgICAgICAgICBpZiAoc2tpcHBlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZElucHV0LnB1c2goc2tpcHBlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0cmluZyA9IHN0cmluZy5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgc3RyaW5nLmluZGV4T2YocGFyc2VkSW5wdXQpICsgcGFyc2VkSW5wdXQubGVuZ3RoXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoICs9IHBhcnNlZElucHV0Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRvbid0IHBhcnNlIGlmIGl0J3Mgbm90IGEga25vd24gdG9rZW5cbiAgICAgICAgICAgIGlmIChmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0pIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZW1wdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFkZFRpbWVUb0FycmF5RnJvbVRva2VuKHRva2VuLCBwYXJzZWRJbnB1dCwgY29uZmlnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLl9zdHJpY3QgJiYgIXBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkVG9rZW5zLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWRkIHJlbWFpbmluZyB1bnBhcnNlZCBpbnB1dCBsZW5ndGggdG8gdGhlIHN0cmluZ1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5jaGFyc0xlZnRPdmVyID1cbiAgICAgICAgICAgIHN0cmluZ0xlbmd0aCAtIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGg7XG4gICAgICAgIGlmIChzdHJpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2xlYXIgXzEyaCBmbGFnIGlmIGhvdXIgaXMgPD0gMTJcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdIDw9IDEyICYmXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID09PSB0cnVlICYmXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPiAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnBhcnNlZERhdGVQYXJ0cyA9IGNvbmZpZy5fYS5zbGljZSgwKTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykubWVyaWRpZW0gPSBjb25maWcuX21lcmlkaWVtO1xuICAgICAgICAvLyBoYW5kbGUgbWVyaWRpZW1cbiAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gbWVyaWRpZW1GaXhXcmFwKFxuICAgICAgICAgICAgY29uZmlnLl9sb2NhbGUsXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0sXG4gICAgICAgICAgICBjb25maWcuX21lcmlkaWVtXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gaGFuZGxlIGVyYVxuICAgICAgICBlcmEgPSBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lcmE7XG4gICAgICAgIGlmIChlcmEgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtZRUFSXSA9IGNvbmZpZy5fbG9jYWxlLmVyYXNDb252ZXJ0WWVhcihlcmEsIGNvbmZpZy5fYVtZRUFSXSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICAgICAgY2hlY2tPdmVyZmxvdyhjb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lcmlkaWVtRml4V3JhcChsb2NhbGUsIGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgIHZhciBpc1BtO1xuXG4gICAgICAgIGlmIChtZXJpZGllbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWxlLm1lcmlkaWVtSG91ciAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLm1lcmlkaWVtSG91cihob3VyLCBtZXJpZGllbSk7XG4gICAgICAgIH0gZWxzZSBpZiAobG9jYWxlLmlzUE0gIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2tcbiAgICAgICAgICAgIGlzUG0gPSBsb2NhbGUuaXNQTShtZXJpZGllbSk7XG4gICAgICAgICAgICBpZiAoaXNQbSAmJiBob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyICs9IDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc1BtICYmIGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IHN1cHBvc2VkIHRvIGhhcHBlblxuICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBhcnJheSBvZiBmb3JtYXQgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpIHtcbiAgICAgICAgdmFyIHRlbXBDb25maWcsXG4gICAgICAgICAgICBiZXN0TW9tZW50LFxuICAgICAgICAgICAgc2NvcmVUb0JlYXQsXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgY3VycmVudFNjb3JlLFxuICAgICAgICAgICAgdmFsaWRGb3JtYXRGb3VuZCxcbiAgICAgICAgICAgIGJlc3RGb3JtYXRJc1ZhbGlkID0gZmFsc2UsXG4gICAgICAgICAgICBjb25maWdmTGVuID0gY29uZmlnLl9mLmxlbmd0aDtcblxuICAgICAgICBpZiAoY29uZmlnZkxlbiA9PT0gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEZvcm1hdCA9IHRydWU7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShOYU4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZ2ZMZW47IGkrKykge1xuICAgICAgICAgICAgY3VycmVudFNjb3JlID0gMDtcbiAgICAgICAgICAgIHZhbGlkRm9ybWF0Rm91bmQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRlbXBDb25maWcgPSBjb3B5Q29uZmlnKHt9LCBjb25maWcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0ZW1wQ29uZmlnLl91c2VVVEMgPSBjb25maWcuX3VzZVVUQztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRlbXBDb25maWcuX2YgPSBjb25maWcuX2ZbaV07XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KHRlbXBDb25maWcpO1xuXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCh0ZW1wQ29uZmlnKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkRm9ybWF0Rm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhbnkgaW5wdXQgdGhhdCB3YXMgbm90IHBhcnNlZCBhZGQgYSBwZW5hbHR5IGZvciB0aGF0IGZvcm1hdFxuICAgICAgICAgICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5jaGFyc0xlZnRPdmVyO1xuXG4gICAgICAgICAgICAvL29yIHRva2Vuc1xuICAgICAgICAgICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS51bnVzZWRUb2tlbnMubGVuZ3RoICogMTA7XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5zY29yZSA9IGN1cnJlbnRTY29yZTtcblxuICAgICAgICAgICAgaWYgKCFiZXN0Rm9ybWF0SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgc2NvcmVUb0JlYXQgPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2NvcmUgPCBzY29yZVRvQmVhdCB8fFxuICAgICAgICAgICAgICAgICAgICB2YWxpZEZvcm1hdEZvdW5kXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkRm9ybWF0Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RGb3JtYXRJc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTY29yZSA8IHNjb3JlVG9CZWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHRlbmQoY29uZmlnLCBiZXN0TW9tZW50IHx8IHRlbXBDb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoY29uZmlnLl9pKSxcbiAgICAgICAgICAgIGRheU9yRGF0ZSA9IGkuZGF5ID09PSB1bmRlZmluZWQgPyBpLmRhdGUgOiBpLmRheTtcbiAgICAgICAgY29uZmlnLl9hID0gbWFwKFxuICAgICAgICAgICAgW2kueWVhciwgaS5tb250aCwgZGF5T3JEYXRlLCBpLmhvdXIsIGkubWludXRlLCBpLnNlY29uZCwgaS5taWxsaXNlY29uZF0sXG4gICAgICAgICAgICBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iaiAmJiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVGcm9tQ29uZmlnKGNvbmZpZykge1xuICAgICAgICB2YXIgcmVzID0gbmV3IE1vbWVudChjaGVja092ZXJmbG93KHByZXBhcmVDb25maWcoY29uZmlnKSkpO1xuICAgICAgICBpZiAocmVzLl9uZXh0RGF5KSB7XG4gICAgICAgICAgICAvLyBBZGRpbmcgaXMgc21hcnQgZW5vdWdoIGFyb3VuZCBEU1RcbiAgICAgICAgICAgIHJlcy5hZGQoMSwgJ2QnKTtcbiAgICAgICAgICAgIHJlcy5fbmV4dERheSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcGFyZUNvbmZpZyhjb25maWcpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gY29uZmlnLl9pLFxuICAgICAgICAgICAgZm9ybWF0ID0gY29uZmlnLl9mO1xuXG4gICAgICAgIGNvbmZpZy5fbG9jYWxlID0gY29uZmlnLl9sb2NhbGUgfHwgZ2V0TG9jYWxlKGNvbmZpZy5fbCk7XG5cbiAgICAgICAgaWYgKGlucHV0ID09PSBudWxsIHx8IChmb3JtYXQgPT09IHVuZGVmaW5lZCAmJiBpbnB1dCA9PT0gJycpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCh7IG51bGxJbnB1dDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25maWcuX2kgPSBpbnB1dCA9IGNvbmZpZy5fbG9jYWxlLnByZXBhcnNlKGlucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc01vbWVudChpbnB1dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9tZW50KGNoZWNrT3ZlcmZsb3coaW5wdXQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBpbnB1dDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCkge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnRnJvbUlucHV0KGNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzVmFsaWQoY29uZmlnKSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbUlucHV0KGNvbmZpZykge1xuICAgICAgICB2YXIgaW5wdXQgPSBjb25maWcuX2k7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGhvb2tzLm5vdygpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dC52YWx1ZU9mKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmcoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9hID0gbWFwKGlucHV0LnNsaWNlKDApLCBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KG9iaiwgMTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc09iamVjdChpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkpIHtcbiAgICAgICAgICAgIC8vIGZyb20gbWlsbGlzZWNvbmRzXG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgaXNVVEMpIHtcbiAgICAgICAgdmFyIGMgPSB7fTtcblxuICAgICAgICBpZiAoZm9ybWF0ID09PSB0cnVlIHx8IGZvcm1hdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHN0cmljdCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsb2NhbGUgPT09IHRydWUgfHwgbG9jYWxlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc3RyaWN0ID0gbG9jYWxlO1xuICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGlzT2JqZWN0KGlucHV0KSAmJiBpc09iamVjdEVtcHR5KGlucHV0KSkgfHxcbiAgICAgICAgICAgIChpc0FycmF5KGlucHV0KSAmJiBpbnB1dC5sZW5ndGggPT09IDApXG4gICAgICAgICkge1xuICAgICAgICAgICAgaW5wdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiBtdXN0IGJlIGRvbmUgdGhpcyB3YXkuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8xNDIzXG4gICAgICAgIGMuX2lzQU1vbWVudE9iamVjdCA9IHRydWU7XG4gICAgICAgIGMuX3VzZVVUQyA9IGMuX2lzVVRDID0gaXNVVEM7XG4gICAgICAgIGMuX2wgPSBsb2NhbGU7XG4gICAgICAgIGMuX2kgPSBpbnB1dDtcbiAgICAgICAgYy5fZiA9IGZvcm1hdDtcbiAgICAgICAgYy5fc3RyaWN0ID0gc3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVGcm9tQ29uZmlnKGMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxvY2FsKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvdHlwZU1pbiA9IGRlcHJlY2F0ZShcbiAgICAgICAgICAgICdtb21lbnQoKS5taW4gaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5tYXggaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LycsXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA8IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIHByb3RvdHlwZU1heCA9IGRlcHJlY2F0ZShcbiAgICAgICAgICAgICdtb21lbnQoKS5tYXggaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5taW4gaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LycsXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA+IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAvLyBQaWNrIGEgbW9tZW50IG0gZnJvbSBtb21lbnRzIHNvIHRoYXQgbVtmbl0ob3RoZXIpIGlzIHRydWUgZm9yIGFsbFxuICAgIC8vIG90aGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgZnVuY3Rpb24gZm4gdG8gYmUgdHJhbnNpdGl2ZS5cbiAgICAvL1xuICAgIC8vIG1vbWVudHMgc2hvdWxkIGVpdGhlciBiZSBhbiBhcnJheSBvZiBtb21lbnQgb2JqZWN0cyBvciBhbiBhcnJheSwgd2hvc2VcbiAgICAvLyBmaXJzdCBlbGVtZW50IGlzIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzLlxuICAgIGZ1bmN0aW9uIHBpY2tCeShmbiwgbW9tZW50cykge1xuICAgICAgICB2YXIgcmVzLCBpO1xuICAgICAgICBpZiAobW9tZW50cy5sZW5ndGggPT09IDEgJiYgaXNBcnJheShtb21lbnRzWzBdKSkge1xuICAgICAgICAgICAgbW9tZW50cyA9IG1vbWVudHNbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtb21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzID0gbW9tZW50c1swXTtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IG1vbWVudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmICghbW9tZW50c1tpXS5pc1ZhbGlkKCkgfHwgbW9tZW50c1tpXVtmbl0ocmVzKSkge1xuICAgICAgICAgICAgICAgIHJlcyA9IG1vbWVudHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgW10uc29ydCBpbnN0ZWFkP1xuICAgIGZ1bmN0aW9uIG1pbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG5cbiAgICAgICAgcmV0dXJuIHBpY2tCeSgnaXNCZWZvcmUnLCBhcmdzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXgoKSB7XG4gICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gICAgICAgIHJldHVybiBwaWNrQnkoJ2lzQWZ0ZXInLCBhcmdzKTtcbiAgICB9XG5cbiAgICB2YXIgbm93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gRGF0ZS5ub3cgPyBEYXRlLm5vdygpIDogK25ldyBEYXRlKCk7XG4gICAgfTtcblxuICAgIHZhciBvcmRlcmluZyA9IFtcbiAgICAgICAgJ3llYXInLFxuICAgICAgICAncXVhcnRlcicsXG4gICAgICAgICdtb250aCcsXG4gICAgICAgICd3ZWVrJyxcbiAgICAgICAgJ2RheScsXG4gICAgICAgICdob3VyJyxcbiAgICAgICAgJ21pbnV0ZScsXG4gICAgICAgICdzZWNvbmQnLFxuICAgICAgICAnbWlsbGlzZWNvbmQnLFxuICAgIF07XG5cbiAgICBmdW5jdGlvbiBpc0R1cmF0aW9uVmFsaWQobSkge1xuICAgICAgICB2YXIga2V5LFxuICAgICAgICAgICAgdW5pdEhhc0RlY2ltYWwgPSBmYWxzZSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBvcmRlckxlbiA9IG9yZGVyaW5nLmxlbmd0aDtcbiAgICAgICAgZm9yIChrZXkgaW4gbSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGhhc093blByb3AobSwga2V5KSAmJlxuICAgICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgICAgIGluZGV4T2YuY2FsbChvcmRlcmluZywga2V5KSAhPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgKG1ba2V5XSA9PSBudWxsIHx8ICFpc05hTihtW2tleV0pKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBvcmRlckxlbjsgKytpKSB7XG4gICAgICAgICAgICBpZiAobVtvcmRlcmluZ1tpXV0pIHtcbiAgICAgICAgICAgICAgICBpZiAodW5pdEhhc0RlY2ltYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBvbmx5IGFsbG93IG5vbi1pbnRlZ2VycyBmb3Igc21hbGxlc3QgdW5pdFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGFyc2VGbG9hdChtW29yZGVyaW5nW2ldXSkgIT09IHRvSW50KG1bb3JkZXJpbmdbaV1dKSkge1xuICAgICAgICAgICAgICAgICAgICB1bml0SGFzRGVjaW1hbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZCQxKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZhbGlkJDEoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbihOYU4pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIER1cmF0aW9uKGR1cmF0aW9uKSB7XG4gICAgICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSBub3JtYWxpemVPYmplY3RVbml0cyhkdXJhdGlvbiksXG4gICAgICAgICAgICB5ZWFycyA9IG5vcm1hbGl6ZWRJbnB1dC55ZWFyIHx8IDAsXG4gICAgICAgICAgICBxdWFydGVycyA9IG5vcm1hbGl6ZWRJbnB1dC5xdWFydGVyIHx8IDAsXG4gICAgICAgICAgICBtb250aHMgPSBub3JtYWxpemVkSW5wdXQubW9udGggfHwgMCxcbiAgICAgICAgICAgIHdlZWtzID0gbm9ybWFsaXplZElucHV0LndlZWsgfHwgbm9ybWFsaXplZElucHV0Lmlzb1dlZWsgfHwgMCxcbiAgICAgICAgICAgIGRheXMgPSBub3JtYWxpemVkSW5wdXQuZGF5IHx8IDAsXG4gICAgICAgICAgICBob3VycyA9IG5vcm1hbGl6ZWRJbnB1dC5ob3VyIHx8IDAsXG4gICAgICAgICAgICBtaW51dGVzID0gbm9ybWFsaXplZElucHV0Lm1pbnV0ZSB8fCAwLFxuICAgICAgICAgICAgc2Vjb25kcyA9IG5vcm1hbGl6ZWRJbnB1dC5zZWNvbmQgfHwgMCxcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kcyA9IG5vcm1hbGl6ZWRJbnB1dC5taWxsaXNlY29uZCB8fCAwO1xuXG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSBpc0R1cmF0aW9uVmFsaWQobm9ybWFsaXplZElucHV0KTtcblxuICAgICAgICAvLyByZXByZXNlbnRhdGlvbiBmb3IgZGF0ZUFkZFJlbW92ZVxuICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgPVxuICAgICAgICAgICAgK21pbGxpc2Vjb25kcyArXG4gICAgICAgICAgICBzZWNvbmRzICogMWUzICsgLy8gMTAwMFxuICAgICAgICAgICAgbWludXRlcyAqIDZlNCArIC8vIDEwMDAgKiA2MFxuICAgICAgICAgICAgaG91cnMgKiAxMDAwICogNjAgKiA2MDsgLy91c2luZyAxMDAwICogNjAgKiA2MCBpbnN0ZWFkIG9mIDM2ZTUgdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgcm91bmRpbmcgZXJyb3JzIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8yOTc4XG4gICAgICAgIC8vIEJlY2F1c2Ugb2YgZGF0ZUFkZFJlbW92ZSB0cmVhdHMgMjQgaG91cnMgYXMgZGlmZmVyZW50IGZyb20gYVxuICAgICAgICAvLyBkYXkgd2hlbiB3b3JraW5nIGFyb3VuZCBEU1QsIHdlIG5lZWQgdG8gc3RvcmUgdGhlbSBzZXBhcmF0ZWx5XG4gICAgICAgIHRoaXMuX2RheXMgPSArZGF5cyArIHdlZWtzICogNztcbiAgICAgICAgLy8gSXQgaXMgaW1wb3NzaWJsZSB0byB0cmFuc2xhdGUgbW9udGhzIGludG8gZGF5cyB3aXRob3V0IGtub3dpbmdcbiAgICAgICAgLy8gd2hpY2ggbW9udGhzIHlvdSBhcmUgYXJlIHRhbGtpbmcgYWJvdXQsIHNvIHdlIGhhdmUgdG8gc3RvcmVcbiAgICAgICAgLy8gaXQgc2VwYXJhdGVseS5cbiAgICAgICAgdGhpcy5fbW9udGhzID0gK21vbnRocyArIHF1YXJ0ZXJzICogMyArIHllYXJzICogMTI7XG5cbiAgICAgICAgdGhpcy5fZGF0YSA9IHt9O1xuXG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IGdldExvY2FsZSgpO1xuXG4gICAgICAgIHRoaXMuX2J1YmJsZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRHVyYXRpb24ob2JqKSB7XG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEdXJhdGlvbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNSb3VuZChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKC0xICogbnVtYmVyKSAqIC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNvbXBhcmUgdHdvIGFycmF5cywgcmV0dXJuIHRoZSBudW1iZXIgb2YgZGlmZmVyZW5jZXNcbiAgICBmdW5jdGlvbiBjb21wYXJlQXJyYXlzKGFycmF5MSwgYXJyYXkyLCBkb250Q29udmVydCkge1xuICAgICAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJyYXkxLmxlbmd0aCwgYXJyYXkyLmxlbmd0aCksXG4gICAgICAgICAgICBsZW5ndGhEaWZmID0gTWF0aC5hYnMoYXJyYXkxLmxlbmd0aCAtIGFycmF5Mi5sZW5ndGgpLFxuICAgICAgICAgICAgZGlmZnMgPSAwLFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGRvbnRDb252ZXJ0ICYmIGFycmF5MVtpXSAhPT0gYXJyYXkyW2ldKSB8fFxuICAgICAgICAgICAgICAgICghZG9udENvbnZlcnQgJiYgdG9JbnQoYXJyYXkxW2ldKSAhPT0gdG9JbnQoYXJyYXkyW2ldKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpZmZzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpZmZzICsgbGVuZ3RoRGlmZjtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBmdW5jdGlvbiBvZmZzZXQodG9rZW4sIHNlcGFyYXRvcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbih0b2tlbiwgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMudXRjT2Zmc2V0KCksXG4gICAgICAgICAgICAgICAgc2lnbiA9ICcrJztcbiAgICAgICAgICAgIGlmIChvZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDtcbiAgICAgICAgICAgICAgICBzaWduID0gJy0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBzaWduICtcbiAgICAgICAgICAgICAgICB6ZXJvRmlsbCh+fihvZmZzZXQgLyA2MCksIDIpICtcbiAgICAgICAgICAgICAgICBzZXBhcmF0b3IgK1xuICAgICAgICAgICAgICAgIHplcm9GaWxsKH5+b2Zmc2V0ICUgNjAsIDIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvZmZzZXQoJ1onLCAnOicpO1xuICAgIG9mZnNldCgnWlonLCAnJyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdaJywgbWF0Y2hTaG9ydE9mZnNldCk7XG4gICAgYWRkUmVnZXhUb2tlbignWlonLCBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgICBhZGRQYXJzZVRva2VuKFsnWicsICdaWiddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl91c2VVVEMgPSB0cnVlO1xuICAgICAgICBjb25maWcuX3R6bSA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hTaG9ydE9mZnNldCwgaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgLy8gdGltZXpvbmUgY2h1bmtlclxuICAgIC8vICcrMTA6MDAnID4gWycxMCcsICAnMDAnXVxuICAgIC8vICctMTUzMCcgID4gWyctMTUnLCAnMzAnXVxuICAgIHZhciBjaHVua09mZnNldCA9IC8oW1xcK1xcLV18XFxkXFxkKS9naTtcblxuICAgIGZ1bmN0aW9uIG9mZnNldEZyb21TdHJpbmcobWF0Y2hlciwgc3RyaW5nKSB7XG4gICAgICAgIHZhciBtYXRjaGVzID0gKHN0cmluZyB8fCAnJykubWF0Y2gobWF0Y2hlciksXG4gICAgICAgICAgICBjaHVuayxcbiAgICAgICAgICAgIHBhcnRzLFxuICAgICAgICAgICAgbWludXRlcztcblxuICAgICAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjaHVuayA9IG1hdGNoZXNbbWF0Y2hlcy5sZW5ndGggLSAxXSB8fCBbXTtcbiAgICAgICAgcGFydHMgPSAoY2h1bmsgKyAnJykubWF0Y2goY2h1bmtPZmZzZXQpIHx8IFsnLScsIDAsIDBdO1xuICAgICAgICBtaW51dGVzID0gKyhwYXJ0c1sxXSAqIDYwKSArIHRvSW50KHBhcnRzWzJdKTtcblxuICAgICAgICByZXR1cm4gbWludXRlcyA9PT0gMCA/IDAgOiBwYXJ0c1swXSA9PT0gJysnID8gbWludXRlcyA6IC1taW51dGVzO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBhIG1vbWVudCBmcm9tIGlucHV0LCB0aGF0IGlzIGxvY2FsL3V0Yy96b25lIGVxdWl2YWxlbnQgdG8gbW9kZWwuXG4gICAgZnVuY3Rpb24gY2xvbmVXaXRoT2Zmc2V0KGlucHV0LCBtb2RlbCkge1xuICAgICAgICB2YXIgcmVzLCBkaWZmO1xuICAgICAgICBpZiAobW9kZWwuX2lzVVRDKSB7XG4gICAgICAgICAgICByZXMgPSBtb2RlbC5jbG9uZSgpO1xuICAgICAgICAgICAgZGlmZiA9XG4gICAgICAgICAgICAgICAgKGlzTW9tZW50KGlucHV0KSB8fCBpc0RhdGUoaW5wdXQpXG4gICAgICAgICAgICAgICAgICAgID8gaW5wdXQudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgICAgIDogY3JlYXRlTG9jYWwoaW5wdXQpLnZhbHVlT2YoKSkgLSByZXMudmFsdWVPZigpO1xuICAgICAgICAgICAgLy8gVXNlIGxvdy1sZXZlbCBhcGksIGJlY2F1c2UgdGhpcyBmbiBpcyBsb3ctbGV2ZWwgYXBpLlxuICAgICAgICAgICAgcmVzLl9kLnNldFRpbWUocmVzLl9kLnZhbHVlT2YoKSArIGRpZmYpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHJlcywgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVMb2NhbChpbnB1dCkubG9jYWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldERhdGVPZmZzZXQobSkge1xuICAgICAgICAvLyBPbiBGaXJlZm94LjI0IERhdGUjZ2V0VGltZXpvbmVPZmZzZXQgcmV0dXJucyBhIGZsb2F0aW5nIHBvaW50LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9wdWxsLzE4NzFcbiAgICAgICAgcmV0dXJuIC1NYXRoLnJvdW5kKG0uX2QuZ2V0VGltZXpvbmVPZmZzZXQoKSk7XG4gICAgfVxuXG4gICAgLy8gSE9PS1NcblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgYSBtb21lbnQgaXMgbXV0YXRlZC5cbiAgICAvLyBJdCBpcyBpbnRlbmRlZCB0byBrZWVwIHRoZSBvZmZzZXQgaW4gc3luYyB3aXRoIHRoZSB0aW1lem9uZS5cbiAgICBob29rcy51cGRhdGVPZmZzZXQgPSBmdW5jdGlvbiAoKSB7fTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIC8vIGtlZXBMb2NhbFRpbWUgPSB0cnVlIG1lYW5zIG9ubHkgY2hhbmdlIHRoZSB0aW1lem9uZSwgd2l0aG91dFxuICAgIC8vIGFmZmVjdGluZyB0aGUgbG9jYWwgaG91ci4gU28gNTozMToyNiArMDMwMCAtLVt1dGNPZmZzZXQoMiwgdHJ1ZSldLS0+XG4gICAgLy8gNTozMToyNiArMDIwMCBJdCBpcyBwb3NzaWJsZSB0aGF0IDU6MzE6MjYgZG9lc24ndCBleGlzdCB3aXRoIG9mZnNldFxuICAgIC8vICswMjAwLCBzbyB3ZSBhZGp1c3QgdGhlIHRpbWUgYXMgbmVlZGVkLCB0byBiZSB2YWxpZC5cbiAgICAvL1xuICAgIC8vIEtlZXBpbmcgdGhlIHRpbWUgYWN0dWFsbHkgYWRkcy9zdWJ0cmFjdHMgKG9uZSBob3VyKVxuICAgIC8vIGZyb20gdGhlIGFjdHVhbCByZXByZXNlbnRlZCB0aW1lLiBUaGF0IGlzIHdoeSB3ZSBjYWxsIHVwZGF0ZU9mZnNldFxuICAgIC8vIGEgc2Vjb25kIHRpbWUuIEluIGNhc2UgaXQgd2FudHMgdXMgdG8gY2hhbmdlIHRoZSBvZmZzZXQgYWdhaW5cbiAgICAvLyBfY2hhbmdlSW5Qcm9ncmVzcyA9PSB0cnVlIGNhc2UsIHRoZW4gd2UgaGF2ZSB0byBhZGp1c3QsIGJlY2F1c2VcbiAgICAvLyB0aGVyZSBpcyBubyBzdWNoIHRpbWUgaW4gdGhlIGdpdmVuIHRpbWV6b25lLlxuICAgIGZ1bmN0aW9uIGdldFNldE9mZnNldChpbnB1dCwga2VlcExvY2FsVGltZSwga2VlcE1pbnV0ZXMpIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMuX29mZnNldCB8fCAwLFxuICAgICAgICAgICAgbG9jYWxBZGp1c3Q7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hTaG9ydE9mZnNldCwgaW5wdXQpO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKE1hdGguYWJzKGlucHV0KSA8IDE2ICYmICFrZWVwTWludXRlcykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQgKiA2MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5faXNVVEMgJiYga2VlcExvY2FsVGltZSkge1xuICAgICAgICAgICAgICAgIGxvY2FsQWRqdXN0ID0gZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX29mZnNldCA9IGlucHV0O1xuICAgICAgICAgICAgdGhpcy5faXNVVEMgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGxvY2FsQWRqdXN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZChsb2NhbEFkanVzdCwgJ20nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IGlucHV0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFrZWVwTG9jYWxUaW1lIHx8IHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkU3VidHJhY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRHVyYXRpb24oaW5wdXQgLSBvZmZzZXQsICdtJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLl9jaGFuZ2VJblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gb2Zmc2V0IDogZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldFpvbmUoaW5wdXQsIGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSAtaW5wdXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KGlucHV0LCBrZWVwTG9jYWxUaW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gLXRoaXMudXRjT2Zmc2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRUb1VUQyhrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRUb0xvY2FsKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzVVRDKSB7XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJ0cmFjdChnZXREYXRlT2Zmc2V0KHRoaXMpLCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5fdHptICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KHRoaXMuX3R6bSwgZmFsc2UsIHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLl9pID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFyIHRab25lID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaE9mZnNldCwgdGhpcy5faSk7XG4gICAgICAgICAgICBpZiAodFpvbmUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KHRab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoMCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFzQWxpZ25lZEhvdXJPZmZzZXQoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0ID0gaW5wdXQgPyBjcmVhdGVMb2NhbChpbnB1dCkudXRjT2Zmc2V0KCkgOiAwO1xuXG4gICAgICAgIHJldHVybiAodGhpcy51dGNPZmZzZXQoKSAtIGlucHV0KSAlIDYwID09PSAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoKSA+IHRoaXMuY2xvbmUoKS5tb250aCgwKS51dGNPZmZzZXQoKSB8fFxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoKSA+IHRoaXMuY2xvbmUoKS5tb250aCg1KS51dGNPZmZzZXQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lU2hpZnRlZCgpIHtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh0aGlzLl9pc0RTVFNoaWZ0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGMgPSB7fSxcbiAgICAgICAgICAgIG90aGVyO1xuXG4gICAgICAgIGNvcHlDb25maWcoYywgdGhpcyk7XG4gICAgICAgIGMgPSBwcmVwYXJlQ29uZmlnKGMpO1xuXG4gICAgICAgIGlmIChjLl9hKSB7XG4gICAgICAgICAgICBvdGhlciA9IGMuX2lzVVRDID8gY3JlYXRlVVRDKGMuX2EpIDogY3JlYXRlTG9jYWwoYy5fYSk7XG4gICAgICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPVxuICAgICAgICAgICAgICAgIHRoaXMuaXNWYWxpZCgpICYmIGNvbXBhcmVBcnJheXMoYy5fYSwgb3RoZXIudG9BcnJheSgpKSA+IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNMb2NhbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gIXRoaXMuX2lzVVRDIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVdGNPZmZzZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2lzVVRDIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVdGMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2lzVVRDICYmIHRoaXMuX29mZnNldCA9PT0gMCA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEFTUC5ORVQganNvbiBkYXRlIGZvcm1hdCByZWdleFxuICAgIHZhciBhc3BOZXRSZWdleCA9IC9eKC18XFwrKT8oPzooXFxkKilbLiBdKT8oXFxkKyk6KFxcZCspKD86OihcXGQrKShcXC5cXGQqKT8pPyQvLFxuICAgICAgICAvLyBmcm9tIGh0dHA6Ly9kb2NzLmNsb3N1cmUtbGlicmFyeS5nb29nbGVjb2RlLmNvbS9naXQvY2xvc3VyZV9nb29nX2RhdGVfZGF0ZS5qcy5zb3VyY2UuaHRtbFxuICAgICAgICAvLyBzb21ld2hhdCBtb3JlIGluIGxpbmUgd2l0aCA0LjQuMy4yIDIwMDQgc3BlYywgYnV0IGFsbG93cyBkZWNpbWFsIGFueXdoZXJlXG4gICAgICAgIC8vIGFuZCBmdXJ0aGVyIG1vZGlmaWVkIHRvIGFsbG93IGZvciBzdHJpbmdzIGNvbnRhaW5pbmcgYm90aCB3ZWVrIGFuZCBkYXlcbiAgICAgICAgaXNvUmVnZXggPVxuICAgICAgICAgICAgL14oLXxcXCspP1AoPzooWy0rXT9bMC05LC5dKilZKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilXKT8oPzooWy0rXT9bMC05LC5dKilEKT8oPzpUKD86KFstK10/WzAtOSwuXSopSCk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopUyk/KT8kLztcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUR1cmF0aW9uKGlucHV0LCBrZXkpIHtcbiAgICAgICAgdmFyIGR1cmF0aW9uID0gaW5wdXQsXG4gICAgICAgICAgICAvLyBtYXRjaGluZyBhZ2FpbnN0IHJlZ2V4cCBpcyBleHBlbnNpdmUsIGRvIGl0IG9uIGRlbWFuZFxuICAgICAgICAgICAgbWF0Y2ggPSBudWxsLFxuICAgICAgICAgICAgc2lnbixcbiAgICAgICAgICAgIHJldCxcbiAgICAgICAgICAgIGRpZmZSZXM7XG5cbiAgICAgICAgaWYgKGlzRHVyYXRpb24oaW5wdXQpKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICBtczogaW5wdXQuX21pbGxpc2Vjb25kcyxcbiAgICAgICAgICAgICAgICBkOiBpbnB1dC5fZGF5cyxcbiAgICAgICAgICAgICAgICBNOiBpbnB1dC5fbW9udGhzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkgfHwgIWlzTmFOKCtpbnB1dCkpIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge307XG4gICAgICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb25ba2V5XSA9ICtpbnB1dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb24ubWlsbGlzZWNvbmRzID0gK2lucHV0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKChtYXRjaCA9IGFzcE5ldFJlZ2V4LmV4ZWMoaW5wdXQpKSkge1xuICAgICAgICAgICAgc2lnbiA9IG1hdGNoWzFdID09PSAnLScgPyAtMSA6IDE7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB5OiAwLFxuICAgICAgICAgICAgICAgIGQ6IHRvSW50KG1hdGNoW0RBVEVdKSAqIHNpZ24sXG4gICAgICAgICAgICAgICAgaDogdG9JbnQobWF0Y2hbSE9VUl0pICogc2lnbixcbiAgICAgICAgICAgICAgICBtOiB0b0ludChtYXRjaFtNSU5VVEVdKSAqIHNpZ24sXG4gICAgICAgICAgICAgICAgczogdG9JbnQobWF0Y2hbU0VDT05EXSkgKiBzaWduLFxuICAgICAgICAgICAgICAgIG1zOiB0b0ludChhYnNSb3VuZChtYXRjaFtNSUxMSVNFQ09ORF0gKiAxMDAwKSkgKiBzaWduLCAvLyB0aGUgbWlsbGlzZWNvbmQgZGVjaW1hbCBwb2ludCBpcyBpbmNsdWRlZCBpbiB0aGUgbWF0Y2hcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoKG1hdGNoID0gaXNvUmVnZXguZXhlYyhpbnB1dCkpKSB7XG4gICAgICAgICAgICBzaWduID0gbWF0Y2hbMV0gPT09ICctJyA/IC0xIDogMTtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge1xuICAgICAgICAgICAgICAgIHk6IHBhcnNlSXNvKG1hdGNoWzJdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBNOiBwYXJzZUlzbyhtYXRjaFszXSwgc2lnbiksXG4gICAgICAgICAgICAgICAgdzogcGFyc2VJc28obWF0Y2hbNF0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIGQ6IHBhcnNlSXNvKG1hdGNoWzVdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBoOiBwYXJzZUlzbyhtYXRjaFs2XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgbTogcGFyc2VJc28obWF0Y2hbN10sIHNpZ24pLFxuICAgICAgICAgICAgICAgIHM6IHBhcnNlSXNvKG1hdGNoWzhdLCBzaWduKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoZHVyYXRpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gY2hlY2tzIGZvciBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiBkdXJhdGlvbiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICgnZnJvbScgaW4gZHVyYXRpb24gfHwgJ3RvJyBpbiBkdXJhdGlvbilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBkaWZmUmVzID0gbW9tZW50c0RpZmZlcmVuY2UoXG4gICAgICAgICAgICAgICAgY3JlYXRlTG9jYWwoZHVyYXRpb24uZnJvbSksXG4gICAgICAgICAgICAgICAgY3JlYXRlTG9jYWwoZHVyYXRpb24udG8pXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICAgICAgZHVyYXRpb24ubXMgPSBkaWZmUmVzLm1pbGxpc2Vjb25kcztcbiAgICAgICAgICAgIGR1cmF0aW9uLk0gPSBkaWZmUmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldCA9IG5ldyBEdXJhdGlvbihkdXJhdGlvbik7XG5cbiAgICAgICAgaWYgKGlzRHVyYXRpb24oaW5wdXQpICYmIGhhc093blByb3AoaW5wdXQsICdfbG9jYWxlJykpIHtcbiAgICAgICAgICAgIHJldC5fbG9jYWxlID0gaW5wdXQuX2xvY2FsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0R1cmF0aW9uKGlucHV0KSAmJiBoYXNPd25Qcm9wKGlucHV0LCAnX2lzVmFsaWQnKSkge1xuICAgICAgICAgICAgcmV0Ll9pc1ZhbGlkID0gaW5wdXQuX2lzVmFsaWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIGNyZWF0ZUR1cmF0aW9uLmZuID0gRHVyYXRpb24ucHJvdG90eXBlO1xuICAgIGNyZWF0ZUR1cmF0aW9uLmludmFsaWQgPSBjcmVhdGVJbnZhbGlkJDE7XG5cbiAgICBmdW5jdGlvbiBwYXJzZUlzbyhpbnAsIHNpZ24pIHtcbiAgICAgICAgLy8gV2UnZCBub3JtYWxseSB1c2Ugfn5pbnAgZm9yIHRoaXMsIGJ1dCB1bmZvcnR1bmF0ZWx5IGl0IGFsc29cbiAgICAgICAgLy8gY29udmVydHMgZmxvYXRzIHRvIGludHMuXG4gICAgICAgIC8vIGlucCBtYXkgYmUgdW5kZWZpbmVkLCBzbyBjYXJlZnVsIGNhbGxpbmcgcmVwbGFjZSBvbiBpdC5cbiAgICAgICAgdmFyIHJlcyA9IGlucCAmJiBwYXJzZUZsb2F0KGlucC5yZXBsYWNlKCcsJywgJy4nKSk7XG4gICAgICAgIC8vIGFwcGx5IHNpZ24gd2hpbGUgd2UncmUgYXQgaXRcbiAgICAgICAgcmV0dXJuIChpc05hTihyZXMpID8gMCA6IHJlcykgKiBzaWduO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpIHtcbiAgICAgICAgdmFyIHJlcyA9IHt9O1xuXG4gICAgICAgIHJlcy5tb250aHMgPVxuICAgICAgICAgICAgb3RoZXIubW9udGgoKSAtIGJhc2UubW9udGgoKSArIChvdGhlci55ZWFyKCkgLSBiYXNlLnllYXIoKSkgKiAxMjtcbiAgICAgICAgaWYgKGJhc2UuY2xvbmUoKS5hZGQocmVzLm1vbnRocywgJ00nKS5pc0FmdGVyKG90aGVyKSkge1xuICAgICAgICAgICAgLS1yZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9ICtvdGhlciAtICtiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJyk7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcikge1xuICAgICAgICB2YXIgcmVzO1xuICAgICAgICBpZiAoIShiYXNlLmlzVmFsaWQoKSAmJiBvdGhlci5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4geyBtaWxsaXNlY29uZHM6IDAsIG1vbnRoczogMCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgb3RoZXIgPSBjbG9uZVdpdGhPZmZzZXQob3RoZXIsIGJhc2UpO1xuICAgICAgICBpZiAoYmFzZS5pc0JlZm9yZShvdGhlcikpIHtcbiAgICAgICAgICAgIHJlcyA9IHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzID0gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShvdGhlciwgYmFzZSk7XG4gICAgICAgICAgICByZXMubWlsbGlzZWNvbmRzID0gLXJlcy5taWxsaXNlY29uZHM7XG4gICAgICAgICAgICByZXMubW9udGhzID0gLXJlcy5tb250aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8vIFRPRE86IHJlbW92ZSAnbmFtZScgYXJnIGFmdGVyIGRlcHJlY2F0aW9uIGlzIHJlbW92ZWRcbiAgICBmdW5jdGlvbiBjcmVhdGVBZGRlcihkaXJlY3Rpb24sIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWwsIHBlcmlvZCkge1xuICAgICAgICAgICAgdmFyIGR1ciwgdG1wO1xuICAgICAgICAgICAgLy9pbnZlcnQgdGhlIGFyZ3VtZW50cywgYnV0IGNvbXBsYWluIGFib3V0IGl0XG4gICAgICAgICAgICBpZiAocGVyaW9kICE9PSBudWxsICYmICFpc05hTigrcGVyaW9kKSkge1xuICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZShcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgJ21vbWVudCgpLicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnKHBlcmlvZCwgbnVtYmVyKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIG1vbWVudCgpLicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnKG51bWJlciwgcGVyaW9kKS4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvYWRkLWludmVydGVkLXBhcmFtLyBmb3IgbW9yZSBpbmZvLidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRtcCA9IHZhbDtcbiAgICAgICAgICAgICAgICB2YWwgPSBwZXJpb2Q7XG4gICAgICAgICAgICAgICAgcGVyaW9kID0gdG1wO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkdXIgPSBjcmVhdGVEdXJhdGlvbih2YWwsIHBlcmlvZCk7XG4gICAgICAgICAgICBhZGRTdWJ0cmFjdCh0aGlzLCBkdXIsIGRpcmVjdGlvbik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRTdWJ0cmFjdChtb20sIGR1cmF0aW9uLCBpc0FkZGluZywgdXBkYXRlT2Zmc2V0KSB7XG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSBkdXJhdGlvbi5fbWlsbGlzZWNvbmRzLFxuICAgICAgICAgICAgZGF5cyA9IGFic1JvdW5kKGR1cmF0aW9uLl9kYXlzKSxcbiAgICAgICAgICAgIG1vbnRocyA9IGFic1JvdW5kKGR1cmF0aW9uLl9tb250aHMpO1xuXG4gICAgICAgIGlmICghbW9tLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgLy8gTm8gb3BcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZU9mZnNldCA9IHVwZGF0ZU9mZnNldCA9PSBudWxsID8gdHJ1ZSA6IHVwZGF0ZU9mZnNldDtcblxuICAgICAgICBpZiAobW9udGhzKSB7XG4gICAgICAgICAgICBzZXRNb250aChtb20sIGdldChtb20sICdNb250aCcpICsgbW9udGhzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXlzKSB7XG4gICAgICAgICAgICBzZXQkMShtb20sICdEYXRlJywgZ2V0KG1vbSwgJ0RhdGUnKSArIGRheXMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbGxpc2Vjb25kcykge1xuICAgICAgICAgICAgbW9tLl9kLnNldFRpbWUobW9tLl9kLnZhbHVlT2YoKSArIG1pbGxpc2Vjb25kcyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXBkYXRlT2Zmc2V0KSB7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQobW9tLCBkYXlzIHx8IG1vbnRocyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgYWRkID0gY3JlYXRlQWRkZXIoMSwgJ2FkZCcpLFxuICAgICAgICBzdWJ0cmFjdCA9IGNyZWF0ZUFkZGVyKC0xLCAnc3VidHJhY3QnKTtcblxuICAgIGZ1bmN0aW9uIGlzU3RyaW5nKGlucHV0KSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnIHx8IGlucHV0IGluc3RhbmNlb2YgU3RyaW5nO1xuICAgIH1cblxuICAgIC8vIHR5cGUgTW9tZW50SW5wdXQgPSBNb21lbnQgfCBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgKG51bWJlciB8IHN0cmluZylbXSB8IE1vbWVudElucHV0T2JqZWN0IHwgdm9pZDsgLy8gbnVsbCB8IHVuZGVmaW5lZFxuICAgIGZ1bmN0aW9uIGlzTW9tZW50SW5wdXQoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlzTW9tZW50KGlucHV0KSB8fFxuICAgICAgICAgICAgaXNEYXRlKGlucHV0KSB8fFxuICAgICAgICAgICAgaXNTdHJpbmcoaW5wdXQpIHx8XG4gICAgICAgICAgICBpc051bWJlcihpbnB1dCkgfHxcbiAgICAgICAgICAgIGlzTnVtYmVyT3JTdHJpbmdBcnJheShpbnB1dCkgfHxcbiAgICAgICAgICAgIGlzTW9tZW50SW5wdXRPYmplY3QoaW5wdXQpIHx8XG4gICAgICAgICAgICBpbnB1dCA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgaW5wdXQgPT09IHVuZGVmaW5lZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTW9tZW50SW5wdXRPYmplY3QoaW5wdXQpIHtcbiAgICAgICAgdmFyIG9iamVjdFRlc3QgPSBpc09iamVjdChpbnB1dCkgJiYgIWlzT2JqZWN0RW1wdHkoaW5wdXQpLFxuICAgICAgICAgICAgcHJvcGVydHlUZXN0ID0gZmFsc2UsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzID0gW1xuICAgICAgICAgICAgICAgICd5ZWFycycsXG4gICAgICAgICAgICAgICAgJ3llYXInLFxuICAgICAgICAgICAgICAgICd5JyxcbiAgICAgICAgICAgICAgICAnbW9udGhzJyxcbiAgICAgICAgICAgICAgICAnbW9udGgnLFxuICAgICAgICAgICAgICAgICdNJyxcbiAgICAgICAgICAgICAgICAnZGF5cycsXG4gICAgICAgICAgICAgICAgJ2RheScsXG4gICAgICAgICAgICAgICAgJ2QnLFxuICAgICAgICAgICAgICAgICdkYXRlcycsXG4gICAgICAgICAgICAgICAgJ2RhdGUnLFxuICAgICAgICAgICAgICAgICdEJyxcbiAgICAgICAgICAgICAgICAnaG91cnMnLFxuICAgICAgICAgICAgICAgICdob3VyJyxcbiAgICAgICAgICAgICAgICAnaCcsXG4gICAgICAgICAgICAgICAgJ21pbnV0ZXMnLFxuICAgICAgICAgICAgICAgICdtaW51dGUnLFxuICAgICAgICAgICAgICAgICdtJyxcbiAgICAgICAgICAgICAgICAnc2Vjb25kcycsXG4gICAgICAgICAgICAgICAgJ3NlY29uZCcsXG4gICAgICAgICAgICAgICAgJ3MnLFxuICAgICAgICAgICAgICAgICdtaWxsaXNlY29uZHMnLFxuICAgICAgICAgICAgICAgICdtaWxsaXNlY29uZCcsXG4gICAgICAgICAgICAgICAgJ21zJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgcHJvcGVydHksXG4gICAgICAgICAgICBwcm9wZXJ0eUxlbiA9IHByb3BlcnRpZXMubGVuZ3RoO1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBwcm9wZXJ0eUxlbjsgaSArPSAxKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eSA9IHByb3BlcnRpZXNbaV07XG4gICAgICAgICAgICBwcm9wZXJ0eVRlc3QgPSBwcm9wZXJ0eVRlc3QgfHwgaGFzT3duUHJvcChpbnB1dCwgcHJvcGVydHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9iamVjdFRlc3QgJiYgcHJvcGVydHlUZXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTnVtYmVyT3JTdHJpbmdBcnJheShpbnB1dCkge1xuICAgICAgICB2YXIgYXJyYXlUZXN0ID0gaXNBcnJheShpbnB1dCksXG4gICAgICAgICAgICBkYXRhVHlwZVRlc3QgPSBmYWxzZTtcbiAgICAgICAgaWYgKGFycmF5VGVzdCkge1xuICAgICAgICAgICAgZGF0YVR5cGVUZXN0ID1cbiAgICAgICAgICAgICAgICBpbnB1dC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFpc051bWJlcihpdGVtKSAmJiBpc1N0cmluZyhpbnB1dCk7XG4gICAgICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheVRlc3QgJiYgZGF0YVR5cGVUZXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQ2FsZW5kYXJTcGVjKGlucHV0KSB7XG4gICAgICAgIHZhciBvYmplY3RUZXN0ID0gaXNPYmplY3QoaW5wdXQpICYmICFpc09iamVjdEVtcHR5KGlucHV0KSxcbiAgICAgICAgICAgIHByb3BlcnR5VGVzdCA9IGZhbHNlLFxuICAgICAgICAgICAgcHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgICAgICAnc2FtZURheScsXG4gICAgICAgICAgICAgICAgJ25leHREYXknLFxuICAgICAgICAgICAgICAgICdsYXN0RGF5JyxcbiAgICAgICAgICAgICAgICAnbmV4dFdlZWsnLFxuICAgICAgICAgICAgICAgICdsYXN0V2VlaycsXG4gICAgICAgICAgICAgICAgJ3NhbWVFbHNlJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgcHJvcGVydHk7XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIHByb3BlcnR5ID0gcHJvcGVydGllc1tpXTtcbiAgICAgICAgICAgIHByb3BlcnR5VGVzdCA9IHByb3BlcnR5VGVzdCB8fCBoYXNPd25Qcm9wKGlucHV0LCBwcm9wZXJ0eSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JqZWN0VGVzdCAmJiBwcm9wZXJ0eVRlc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Q2FsZW5kYXJGb3JtYXQobXlNb21lbnQsIG5vdykge1xuICAgICAgICB2YXIgZGlmZiA9IG15TW9tZW50LmRpZmYobm93LCAnZGF5cycsIHRydWUpO1xuICAgICAgICByZXR1cm4gZGlmZiA8IC02XG4gICAgICAgICAgICA/ICdzYW1lRWxzZSdcbiAgICAgICAgICAgIDogZGlmZiA8IC0xXG4gICAgICAgICAgICA/ICdsYXN0V2VlaydcbiAgICAgICAgICAgIDogZGlmZiA8IDBcbiAgICAgICAgICAgID8gJ2xhc3REYXknXG4gICAgICAgICAgICA6IGRpZmYgPCAxXG4gICAgICAgICAgICA/ICdzYW1lRGF5J1xuICAgICAgICAgICAgOiBkaWZmIDwgMlxuICAgICAgICAgICAgPyAnbmV4dERheSdcbiAgICAgICAgICAgIDogZGlmZiA8IDdcbiAgICAgICAgICAgID8gJ25leHRXZWVrJ1xuICAgICAgICAgICAgOiAnc2FtZUVsc2UnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNhbGVuZGFyJDEodGltZSwgZm9ybWF0cykge1xuICAgICAgICAvLyBTdXBwb3J0IGZvciBzaW5nbGUgcGFyYW1ldGVyLCBmb3JtYXRzIG9ubHkgb3ZlcmxvYWQgdG8gdGhlIGNhbGVuZGFyIGZ1bmN0aW9uXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBpZiAoIWFyZ3VtZW50c1swXSkge1xuICAgICAgICAgICAgICAgIHRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZm9ybWF0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNNb21lbnRJbnB1dChhcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgdGltZSA9IGFyZ3VtZW50c1swXTtcbiAgICAgICAgICAgICAgICBmb3JtYXRzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0NhbGVuZGFyU3BlYyhhcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0cyA9IGFyZ3VtZW50c1swXTtcbiAgICAgICAgICAgICAgICB0aW1lID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuXG4gICAgICAgIC8vIEdldHRpbmcgc3RhcnQtb2YtdG9kYXkgZGVwZW5kcyBvbiB3aGV0aGVyIHdlJ3JlIGxvY2FsL3V0Yy9vZmZzZXQgb3Igbm90LlxuICAgICAgICB2YXIgbm93ID0gdGltZSB8fCBjcmVhdGVMb2NhbCgpLFxuICAgICAgICAgICAgc29kID0gY2xvbmVXaXRoT2Zmc2V0KG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksXG4gICAgICAgICAgICBmb3JtYXQgPSBob29rcy5jYWxlbmRhckZvcm1hdCh0aGlzLCBzb2QpIHx8ICdzYW1lRWxzZScsXG4gICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgIGZvcm1hdHMgJiZcbiAgICAgICAgICAgICAgICAoaXNGdW5jdGlvbihmb3JtYXRzW2Zvcm1hdF0pXG4gICAgICAgICAgICAgICAgICAgID8gZm9ybWF0c1tmb3JtYXRdLmNhbGwodGhpcywgbm93KVxuICAgICAgICAgICAgICAgICAgICA6IGZvcm1hdHNbZm9ybWF0XSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KFxuICAgICAgICAgICAgb3V0cHV0IHx8IHRoaXMubG9jYWxlRGF0YSgpLmNhbGVuZGFyKGZvcm1hdCwgdGhpcywgY3JlYXRlTG9jYWwobm93KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb21lbnQodGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNBZnRlcihpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cykgfHwgJ21pbGxpc2Vjb25kJztcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPiBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbElucHV0LnZhbHVlT2YoKSA8IHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0JlZm9yZShpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cykgfHwgJ21pbGxpc2Vjb25kJztcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpLnZhbHVlT2YoKSA8IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNCZXR3ZWVuKGZyb20sIHRvLCB1bml0cywgaW5jbHVzaXZpdHkpIHtcbiAgICAgICAgdmFyIGxvY2FsRnJvbSA9IGlzTW9tZW50KGZyb20pID8gZnJvbSA6IGNyZWF0ZUxvY2FsKGZyb20pLFxuICAgICAgICAgICAgbG9jYWxUbyA9IGlzTW9tZW50KHRvKSA/IHRvIDogY3JlYXRlTG9jYWwodG8pO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbEZyb20uaXNWYWxpZCgpICYmIGxvY2FsVG8uaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGluY2x1c2l2aXR5ID0gaW5jbHVzaXZpdHkgfHwgJygpJztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChpbmNsdXNpdml0eVswXSA9PT0gJygnXG4gICAgICAgICAgICAgICAgPyB0aGlzLmlzQWZ0ZXIobG9jYWxGcm9tLCB1bml0cylcbiAgICAgICAgICAgICAgICA6ICF0aGlzLmlzQmVmb3JlKGxvY2FsRnJvbSwgdW5pdHMpKSAmJlxuICAgICAgICAgICAgKGluY2x1c2l2aXR5WzFdID09PSAnKSdcbiAgICAgICAgICAgICAgICA/IHRoaXMuaXNCZWZvcmUobG9jYWxUbywgdW5pdHMpXG4gICAgICAgICAgICAgICAgOiAhdGhpcy5pc0FmdGVyKGxvY2FsVG8sIHVuaXRzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWUoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCksXG4gICAgICAgICAgICBpbnB1dE1zO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB8fCAnbWlsbGlzZWNvbmQnO1xuICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA9PT0gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbnB1dE1zID0gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCkgPD0gaW5wdXRNcyAmJlxuICAgICAgICAgICAgICAgIGlucHV0TXMgPD0gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckFmdGVyKGlucHV0LCB1bml0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoaW5wdXQsIHVuaXRzKSB8fCB0aGlzLmlzQWZ0ZXIoaW5wdXQsIHVuaXRzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckJlZm9yZShpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGlucHV0LCB1bml0cykgfHwgdGhpcy5pc0JlZm9yZShpbnB1dCwgdW5pdHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRpZmYoaW5wdXQsIHVuaXRzLCBhc0Zsb2F0KSB7XG4gICAgICAgIHZhciB0aGF0LCB6b25lRGVsdGEsIG91dHB1dDtcblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhhdCA9IGNsb25lV2l0aE9mZnNldChpbnB1dCwgdGhpcyk7XG5cbiAgICAgICAgaWYgKCF0aGF0LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHpvbmVEZWx0YSA9ICh0aGF0LnV0Y09mZnNldCgpIC0gdGhpcy51dGNPZmZzZXQoKSkgKiA2ZTQ7XG5cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMTI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDFlMztcbiAgICAgICAgICAgICAgICBicmVhazsgLy8gMTAwMFxuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gNmU0O1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwICogNjBcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAzNmU1O1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwICogNjAgKiA2MFxuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gODY0ZTU7XG4gICAgICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQsIG5lZ2F0ZSBkc3RcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCAtIHpvbmVEZWx0YSkgLyA2MDQ4ZTU7XG4gICAgICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQgKiA3LCBuZWdhdGUgZHN0XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIG91dHB1dCA9IHRoaXMgLSB0aGF0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFzRmxvYXQgPyBvdXRwdXQgOiBhYnNGbG9vcihvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoRGlmZihhLCBiKSB7XG4gICAgICAgIGlmIChhLmRhdGUoKSA8IGIuZGF0ZSgpKSB7XG4gICAgICAgICAgICAvLyBlbmQtb2YtbW9udGggY2FsY3VsYXRpb25zIHdvcmsgY29ycmVjdCB3aGVuIHRoZSBzdGFydCBtb250aCBoYXMgbW9yZVxuICAgICAgICAgICAgLy8gZGF5cyB0aGFuIHRoZSBlbmQgbW9udGguXG4gICAgICAgICAgICByZXR1cm4gLW1vbnRoRGlmZihiLCBhKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBkaWZmZXJlbmNlIGluIG1vbnRoc1xuICAgICAgICB2YXIgd2hvbGVNb250aERpZmYgPSAoYi55ZWFyKCkgLSBhLnllYXIoKSkgKiAxMiArIChiLm1vbnRoKCkgLSBhLm1vbnRoKCkpLFxuICAgICAgICAgICAgLy8gYiBpcyBpbiAoYW5jaG9yIC0gMSBtb250aCwgYW5jaG9yICsgMSBtb250aClcbiAgICAgICAgICAgIGFuY2hvciA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYsICdtb250aHMnKSxcbiAgICAgICAgICAgIGFuY2hvcjIsXG4gICAgICAgICAgICBhZGp1c3Q7XG5cbiAgICAgICAgaWYgKGIgLSBhbmNob3IgPCAwKSB7XG4gICAgICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiAtIDEsICdtb250aHMnKTtcbiAgICAgICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgICAgICBhZGp1c3QgPSAoYiAtIGFuY2hvcikgLyAoYW5jaG9yIC0gYW5jaG9yMik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiArIDEsICdtb250aHMnKTtcbiAgICAgICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgICAgICBhZGp1c3QgPSAoYiAtIGFuY2hvcikgLyAoYW5jaG9yMiAtIGFuY2hvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvL2NoZWNrIGZvciBuZWdhdGl2ZSB6ZXJvLCByZXR1cm4gemVybyBpZiBuZWdhdGl2ZSB6ZXJvXG4gICAgICAgIHJldHVybiAtKHdob2xlTW9udGhEaWZmICsgYWRqdXN0KSB8fCAwO1xuICAgIH1cblxuICAgIGhvb2tzLmRlZmF1bHRGb3JtYXQgPSAnWVlZWS1NTS1ERFRISDptbTpzc1onO1xuICAgIGhvb2tzLmRlZmF1bHRGb3JtYXRVdGMgPSAnWVlZWS1NTS1ERFRISDptbTpzc1taXSc7XG5cbiAgICBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCdkZGQgTU1NIEREIFlZWVkgSEg6bW06c3MgW0dNVF1aWicpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSVNPU3RyaW5nKGtlZXBPZmZzZXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHV0YyA9IGtlZXBPZmZzZXQgIT09IHRydWUsXG4gICAgICAgICAgICBtID0gdXRjID8gdGhpcy5jbG9uZSgpLnV0YygpIDogdGhpcztcbiAgICAgICAgaWYgKG0ueWVhcigpIDwgMCB8fCBtLnllYXIoKSA+IDk5OTkpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQoXG4gICAgICAgICAgICAgICAgbSxcbiAgICAgICAgICAgICAgICB1dGNcbiAgICAgICAgICAgICAgICAgICAgPyAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJ1xuICAgICAgICAgICAgICAgICAgICA6ICdZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNGdW5jdGlvbihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZykpIHtcbiAgICAgICAgICAgIC8vIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBpcyB+NTB4IGZhc3RlciwgdXNlIGl0IHdoZW4gd2UgY2FuXG4gICAgICAgICAgICBpZiAodXRjKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9EYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpICsgdGhpcy51dGNPZmZzZXQoKSAqIDYwICogMTAwMClcbiAgICAgICAgICAgICAgICAgICAgLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ1onLCBmb3JtYXRNb21lbnQobSwgJ1onKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdE1vbWVudChcbiAgICAgICAgICAgIG0sXG4gICAgICAgICAgICB1dGMgPyAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXScgOiAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1onXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgaHVtYW4gcmVhZGFibGUgcmVwcmVzZW50YXRpb24gb2YgYSBtb21lbnQgdGhhdCBjYW5cbiAgICAgKiBhbHNvIGJlIGV2YWx1YXRlZCB0byBnZXQgYSBuZXcgbW9tZW50IHdoaWNoIGlzIHRoZSBzYW1lXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QvZG9jcy9hcGkvdXRpbC5odG1sI3V0aWxfY3VzdG9tX2luc3BlY3RfZnVuY3Rpb25fb25fb2JqZWN0c1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluc3BlY3QoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnbW9tZW50LmludmFsaWQoLyogJyArIHRoaXMuX2kgKyAnICovKSc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZ1bmMgPSAnbW9tZW50JyxcbiAgICAgICAgICAgIHpvbmUgPSAnJyxcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIHllYXIsXG4gICAgICAgICAgICBkYXRldGltZSxcbiAgICAgICAgICAgIHN1ZmZpeDtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9jYWwoKSkge1xuICAgICAgICAgICAgZnVuYyA9IHRoaXMudXRjT2Zmc2V0KCkgPT09IDAgPyAnbW9tZW50LnV0YycgOiAnbW9tZW50LnBhcnNlWm9uZSc7XG4gICAgICAgICAgICB6b25lID0gJ1onO1xuICAgICAgICB9XG4gICAgICAgIHByZWZpeCA9ICdbJyArIGZ1bmMgKyAnKFwiXSc7XG4gICAgICAgIHllYXIgPSAwIDw9IHRoaXMueWVhcigpICYmIHRoaXMueWVhcigpIDw9IDk5OTkgPyAnWVlZWScgOiAnWVlZWVlZJztcbiAgICAgICAgZGF0ZXRpbWUgPSAnLU1NLUREW1RdSEg6bW06c3MuU1NTJztcbiAgICAgICAgc3VmZml4ID0gem9uZSArICdbXCIpXSc7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KHByZWZpeCArIHllYXIgKyBkYXRldGltZSArIHN1ZmZpeCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZm9ybWF0KGlucHV0U3RyaW5nKSB7XG4gICAgICAgIGlmICghaW5wdXRTdHJpbmcpIHtcbiAgICAgICAgICAgIGlucHV0U3RyaW5nID0gdGhpcy5pc1V0YygpXG4gICAgICAgICAgICAgICAgPyBob29rcy5kZWZhdWx0Rm9ybWF0VXRjXG4gICAgICAgICAgICAgICAgOiBob29rcy5kZWZhdWx0Rm9ybWF0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdXRwdXQgPSBmb3JtYXRNb21lbnQodGhpcywgaW5wdXRTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkucG9zdGZvcm1hdChvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb20odGltZSwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgKChpc01vbWVudCh0aW1lKSAmJiB0aW1lLmlzVmFsaWQoKSkgfHwgY3JlYXRlTG9jYWwodGltZSkuaXNWYWxpZCgpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7IHRvOiB0aGlzLCBmcm9tOiB0aW1lIH0pXG4gICAgICAgICAgICAgICAgLmxvY2FsZSh0aGlzLmxvY2FsZSgpKVxuICAgICAgICAgICAgICAgIC5odW1hbml6ZSghd2l0aG91dFN1ZmZpeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb21Ob3cod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICgoaXNNb21lbnQodGltZSkgJiYgdGltZS5pc1ZhbGlkKCkpIHx8IGNyZWF0ZUxvY2FsKHRpbWUpLmlzVmFsaWQoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oeyBmcm9tOiB0aGlzLCB0bzogdGltZSB9KVxuICAgICAgICAgICAgICAgIC5sb2NhbGUodGhpcy5sb2NhbGUoKSlcbiAgICAgICAgICAgICAgICAuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b05vdyh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIC8vIElmIHBhc3NlZCBhIGxvY2FsZSBrZXksIGl0IHdpbGwgc2V0IHRoZSBsb2NhbGUgZm9yIHRoaXNcbiAgICAvLyBpbnN0YW5jZS4gIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIGxvY2FsZSBjb25maWd1cmF0aW9uXG4gICAgLy8gdmFyaWFibGVzIGZvciB0aGlzIGluc3RhbmNlLlxuICAgIGZ1bmN0aW9uIGxvY2FsZShrZXkpIHtcbiAgICAgICAgdmFyIG5ld0xvY2FsZURhdGE7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3TG9jYWxlRGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKG5ld0xvY2FsZURhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IG5ld0xvY2FsZURhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBsYW5nID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkubGFuZygpIGlzIGRlcHJlY2F0ZWQuIEluc3RlYWQsIHVzZSBtb21lbnQoKS5sb2NhbGVEYXRhKCkgdG8gZ2V0IHRoZSBsYW5ndWFnZSBjb25maWd1cmF0aW9uLiBVc2UgbW9tZW50KCkubG9jYWxlKCkgdG8gY2hhbmdlIGxhbmd1YWdlcy4nLFxuICAgICAgICBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZShrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZURhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gICAgfVxuXG4gICAgdmFyIE1TX1BFUl9TRUNPTkQgPSAxMDAwLFxuICAgICAgICBNU19QRVJfTUlOVVRFID0gNjAgKiBNU19QRVJfU0VDT05ELFxuICAgICAgICBNU19QRVJfSE9VUiA9IDYwICogTVNfUEVSX01JTlVURSxcbiAgICAgICAgTVNfUEVSXzQwMF9ZRUFSUyA9ICgzNjUgKiA0MDAgKyA5NykgKiAyNCAqIE1TX1BFUl9IT1VSO1xuXG4gICAgLy8gYWN0dWFsIG1vZHVsbyAtIGhhbmRsZXMgbmVnYXRpdmUgbnVtYmVycyAoZm9yIGRhdGVzIGJlZm9yZSAxOTcwKTpcbiAgICBmdW5jdGlvbiBtb2QkMShkaXZpZGVuZCwgZGl2aXNvcikge1xuICAgICAgICByZXR1cm4gKChkaXZpZGVuZCAlIGRpdmlzb3IpICsgZGl2aXNvcikgJSBkaXZpc29yO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsU3RhcnRPZkRhdGUoeSwgbSwgZCkge1xuICAgICAgICAvLyB0aGUgZGF0ZSBjb25zdHJ1Y3RvciByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICAgICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwKSB7XG4gICAgICAgICAgICAvLyBwcmVzZXJ2ZSBsZWFwIHllYXJzIHVzaW5nIGEgZnVsbCA0MDAgeWVhciBjeWNsZSwgdGhlbiByZXNldFxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHkgKyA0MDAsIG0sIGQpIC0gTVNfUEVSXzQwMF9ZRUFSUztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5LCBtLCBkKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1dGNTdGFydE9mRGF0ZSh5LCBtLCBkKSB7XG4gICAgICAgIC8vIERhdGUuVVRDIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgICAgIC8vIHByZXNlcnZlIGxlYXAgeWVhcnMgdXNpbmcgYSBmdWxsIDQwMCB5ZWFyIGN5Y2xlLCB0aGVuIHJlc2V0XG4gICAgICAgICAgICByZXR1cm4gRGF0ZS5VVEMoeSArIDQwMCwgbSwgZCkgLSBNU19QRVJfNDAwX1lFQVJTO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIERhdGUuVVRDKHksIG0sIGQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RhcnRPZih1bml0cykge1xuICAgICAgICB2YXIgdGltZSwgc3RhcnRPZkRhdGU7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJyB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRPZkRhdGUgPSB0aGlzLl9pc1VUQyA/IHV0Y1N0YXJ0T2ZEYXRlIDogbG9jYWxTdGFydE9mRGF0ZTtcblxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIDAsIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpIC0gKHRoaXMubW9udGgoKSAlIDMpLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSgpIC0gdGhpcy53ZWVrZGF5KClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaXNvV2Vlayc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtICh0aGlzLmlzb1dlZWtkYXkoKSAtIDEpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgdGhpcy5kYXRlKCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEoXG4gICAgICAgICAgICAgICAgICAgIHRpbWUgKyAodGhpcy5faXNVVEMgPyAwIDogdGhpcy51dGNPZmZzZXQoKSAqIE1TX1BFUl9NSU5VVEUpLFxuICAgICAgICAgICAgICAgICAgICBNU19QRVJfSE9VUlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lIC09IG1vZCQxKHRpbWUsIE1TX1BFUl9NSU5VVEUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gdGhpcy5fZC52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgdGltZSAtPSBtb2QkMSh0aW1lLCBNU19QRVJfU0VDT05EKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Quc2V0VGltZSh0aW1lKTtcbiAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbmRPZih1bml0cykge1xuICAgICAgICB2YXIgdGltZSwgc3RhcnRPZkRhdGU7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJyB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRPZkRhdGUgPSB0aGlzLl9pc1VUQyA/IHV0Y1N0YXJ0T2ZEYXRlIDogbG9jYWxTdGFydE9mRGF0ZTtcblxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCkgKyAxLCAwLCAxKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICB0aW1lID1cbiAgICAgICAgICAgICAgICAgICAgc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSAtICh0aGlzLm1vbnRoKCkgJSAzKSArIDMsXG4gICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpICsgMSwgMSkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgdGltZSA9XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy55ZWFyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtIHRoaXMud2Vla2RheSgpICsgN1xuICAgICAgICAgICAgICAgICAgICApIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgICAgICAgICBzdGFydE9mRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKCkgLSAodGhpcy5pc29XZWVrZGF5KCkgLSAxKSArIDdcbiAgICAgICAgICAgICAgICAgICAgKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCksIHRoaXMuZGF0ZSgpICsgMSkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgKz1cbiAgICAgICAgICAgICAgICAgICAgTVNfUEVSX0hPVVIgLVxuICAgICAgICAgICAgICAgICAgICBtb2QkMShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgKyAodGhpcy5faXNVVEMgPyAwIDogdGhpcy51dGNPZmZzZXQoKSAqIE1TX1BFUl9NSU5VVEUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgTVNfUEVSX0hPVVJcbiAgICAgICAgICAgICAgICAgICAgKSAtXG4gICAgICAgICAgICAgICAgICAgIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9NSU5VVEUgLSBtb2QkMSh0aW1lLCBNU19QRVJfTUlOVVRFKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9TRUNPTkQgLSBtb2QkMSh0aW1lLCBNU19QRVJfU0VDT05EKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kLnNldFRpbWUodGltZSk7XG4gICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsdWVPZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2QudmFsdWVPZigpIC0gKHRoaXMuX29mZnNldCB8fCAwKSAqIDYwMDAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVuaXgoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpIC8gMTAwMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9EYXRlKCkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvQXJyYXkoKSB7XG4gICAgICAgIHZhciBtID0gdGhpcztcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG0ueWVhcigpLFxuICAgICAgICAgICAgbS5tb250aCgpLFxuICAgICAgICAgICAgbS5kYXRlKCksXG4gICAgICAgICAgICBtLmhvdXIoKSxcbiAgICAgICAgICAgIG0ubWludXRlKCksXG4gICAgICAgICAgICBtLnNlY29uZCgpLFxuICAgICAgICAgICAgbS5taWxsaXNlY29uZCgpLFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvT2JqZWN0KCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB5ZWFyczogbS55ZWFyKCksXG4gICAgICAgICAgICBtb250aHM6IG0ubW9udGgoKSxcbiAgICAgICAgICAgIGRhdGU6IG0uZGF0ZSgpLFxuICAgICAgICAgICAgaG91cnM6IG0uaG91cnMoKSxcbiAgICAgICAgICAgIG1pbnV0ZXM6IG0ubWludXRlcygpLFxuICAgICAgICAgICAgc2Vjb25kczogbS5zZWNvbmRzKCksXG4gICAgICAgICAgICBtaWxsaXNlY29uZHM6IG0ubWlsbGlzZWNvbmRzKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9KU09OKCkge1xuICAgICAgICAvLyBuZXcgRGF0ZShOYU4pLnRvSlNPTigpID09PSBudWxsXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMudG9JU09TdHJpbmcoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZCQyKCkge1xuICAgICAgICByZXR1cm4gaXNWYWxpZCh0aGlzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzaW5nRmxhZ3MoKSB7XG4gICAgICAgIHJldHVybiBleHRlbmQoe30sIGdldFBhcnNpbmdGbGFncyh0aGlzKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW52YWxpZEF0KCkge1xuICAgICAgICByZXR1cm4gZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpLm92ZXJmbG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0aW9uRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlucHV0OiB0aGlzLl9pLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLl9mLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzLl9sb2NhbGUsXG4gICAgICAgICAgICBpc1VUQzogdGhpcy5faXNVVEMsXG4gICAgICAgICAgICBzdHJpY3Q6IHRoaXMuX3N0cmljdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBhZGRGb3JtYXRUb2tlbignTicsIDAsIDAsICdlcmFBYmJyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ05OJywgMCwgMCwgJ2VyYUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignTk5OJywgMCwgMCwgJ2VyYUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignTk5OTicsIDAsIDAsICdlcmFOYW1lJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ05OTk5OJywgMCwgMCwgJ2VyYU5hcnJvdycpO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3knLCBbJ3knLCAxXSwgJ3lvJywgJ2VyYVllYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigneScsIFsneXknLCAyXSwgMCwgJ2VyYVllYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigneScsIFsneXl5JywgM10sIDAsICdlcmFZZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3knLCBbJ3l5eXknLCA0XSwgMCwgJ2VyYVllYXInKTtcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ04nLCBtYXRjaEVyYUFiYnIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OJywgbWF0Y2hFcmFBYmJyKTtcbiAgICBhZGRSZWdleFRva2VuKCdOTk4nLCBtYXRjaEVyYUFiYnIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OTk4nLCBtYXRjaEVyYU5hbWUpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OTk5OJywgbWF0Y2hFcmFOYXJyb3cpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihcbiAgICAgICAgWydOJywgJ05OJywgJ05OTicsICdOTk5OJywgJ05OTk5OJ10sXG4gICAgICAgIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgICAgIHZhciBlcmEgPSBjb25maWcuX2xvY2FsZS5lcmFzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgICAgICBpZiAoZXJhKSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZXJhID0gZXJhO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkRXJhID0gaW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgYWRkUmVnZXhUb2tlbigneScsIG1hdGNoVW5zaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3l5JywgbWF0Y2hVbnNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbigneXl5JywgbWF0Y2hVbnNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbigneXl5eScsIG1hdGNoVW5zaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3lvJywgbWF0Y2hFcmFZZWFyT3JkaW5hbCk7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsneScsICd5eScsICd5eXknLCAneXl5eSddLCBZRUFSKTtcbiAgICBhZGRQYXJzZVRva2VuKFsneW8nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB2YXIgbWF0Y2g7XG4gICAgICAgIGlmIChjb25maWcuX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCkge1xuICAgICAgICAgICAgbWF0Y2ggPSBpbnB1dC5tYXRjaChjb25maWcuX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLl9sb2NhbGUuZXJhWWVhck9yZGluYWxQYXJzZSkge1xuICAgICAgICAgICAgYXJyYXlbWUVBUl0gPSBjb25maWcuX2xvY2FsZS5lcmFZZWFyT3JkaW5hbFBhcnNlKGlucHV0LCBtYXRjaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcnJheVtZRUFSXSA9IHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZUVyYXMobSwgZm9ybWF0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5fZXJhcyB8fCBnZXRMb2NhbGUoJ2VuJykuX2VyYXM7XG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICAgICAgICAgIC8vIHRydW5jYXRlIHRpbWVcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IGhvb2tzKGVyYXNbaV0uc2luY2UpLnN0YXJ0T2YoJ2RheScpO1xuICAgICAgICAgICAgICAgICAgICBlcmFzW2ldLnNpbmNlID0gZGF0ZS52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBlcmFzW2ldLnVudGlsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgICAgICAgICAgICAgZXJhc1tpXS51bnRpbCA9ICtJbmZpbml0eTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgICAgICAgICBkYXRlID0gaG9va3MoZXJhc1tpXS51bnRpbCkuc3RhcnRPZignZGF5JykudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgICAgICBlcmFzW2ldLnVudGlsID0gZGF0ZS52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlcmFzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUVyYXNQYXJzZShlcmFOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5lcmFzKCksXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgYWJicixcbiAgICAgICAgICAgIG5hcnJvdztcbiAgICAgICAgZXJhTmFtZSA9IGVyYU5hbWUudG9VcHBlckNhc2UoKTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIG5hbWUgPSBlcmFzW2ldLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGFiYnIgPSBlcmFzW2ldLmFiYnIudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIG5hcnJvdyA9IGVyYXNbaV0ubmFycm93LnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdOJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTk4nOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdOTk4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFiYnIgPT09IGVyYU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05OTk4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09IGVyYU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05OTk5OJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYXJyb3cgPT09IGVyYU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoW25hbWUsIGFiYnIsIG5hcnJvd10uaW5kZXhPZihlcmFOYW1lKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVFcmFzQ29udmVydFllYXIoZXJhLCB5ZWFyKSB7XG4gICAgICAgIHZhciBkaXIgPSBlcmEuc2luY2UgPD0gZXJhLnVudGlsID8gKzEgOiAtMTtcbiAgICAgICAgaWYgKHllYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGhvb2tzKGVyYS5zaW5jZSkueWVhcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGhvb2tzKGVyYS5zaW5jZSkueWVhcigpICsgKHllYXIgLSBlcmEub2Zmc2V0KSAqIGRpcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEVyYU5hbWUoKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7XG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgdmFsID0gdGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKGVyYXNbaV0uc2luY2UgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnVudGlsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0ubmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnVudGlsIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhTmFycm93KCkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICB2YWwsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5sb2NhbGVEYXRhKCkuZXJhcygpO1xuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIC8vIHRydW5jYXRlIHRpbWVcbiAgICAgICAgICAgIHZhbCA9IHRoaXMuY2xvbmUoKS5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG5cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnNpbmNlIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS51bnRpbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLm5hcnJvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnVudGlsIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLm5hcnJvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRFcmFBYmJyKCkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICB2YWwsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5sb2NhbGVEYXRhKCkuZXJhcygpO1xuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIC8vIHRydW5jYXRlIHRpbWVcbiAgICAgICAgICAgIHZhbCA9IHRoaXMuY2xvbmUoKS5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG5cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnNpbmNlIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS51bnRpbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLmFiYnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJhc1tpXS51bnRpbCA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0uc2luY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5hYmJyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEVyYVllYXIoKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGRpcixcbiAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7XG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgZGlyID0gZXJhc1tpXS5zaW5jZSA8PSBlcmFzW2ldLnVudGlsID8gKzEgOiAtMTtcblxuICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgdmFsID0gdGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChlcmFzW2ldLnNpbmNlIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS51bnRpbCkgfHxcbiAgICAgICAgICAgICAgICAoZXJhc1tpXS51bnRpbCA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0uc2luY2UpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAodGhpcy55ZWFyKCkgLSBob29rcyhlcmFzW2ldLnNpbmNlKS55ZWFyKCkpICogZGlyICtcbiAgICAgICAgICAgICAgICAgICAgZXJhc1tpXS5vZmZzZXRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcigpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVyYXNOYW1lUmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfZXJhc05hbWVSZWdleCcpKSB7XG4gICAgICAgICAgICBjb21wdXRlRXJhc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0ID8gdGhpcy5fZXJhc05hbWVSZWdleCA6IHRoaXMuX2VyYXNSZWdleDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlcmFzQWJiclJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX2VyYXNBYmJyUmVnZXgnKSkge1xuICAgICAgICAgICAgY29tcHV0ZUVyYXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc1N0cmljdCA/IHRoaXMuX2VyYXNBYmJyUmVnZXggOiB0aGlzLl9lcmFzUmVnZXg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXJhc05hcnJvd1JlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX2VyYXNOYXJyb3dSZWdleCcpKSB7XG4gICAgICAgICAgICBjb21wdXRlRXJhc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0ID8gdGhpcy5fZXJhc05hcnJvd1JlZ2V4IDogdGhpcy5fZXJhc1JlZ2V4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hdGNoRXJhQWJicihpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZXJhc0FiYnJSZWdleChpc1N0cmljdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWF0Y2hFcmFOYW1lKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5lcmFzTmFtZVJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXRjaEVyYU5hcnJvdyhpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZXJhc05hcnJvd1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXRjaEVyYVllYXJPcmRpbmFsKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCB8fCBtYXRjaFVuc2lnbmVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVFcmFzUGFyc2UoKSB7XG4gICAgICAgIHZhciBhYmJyUGllY2VzID0gW10sXG4gICAgICAgICAgICBuYW1lUGllY2VzID0gW10sXG4gICAgICAgICAgICBuYXJyb3dQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmVyYXMoKTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIG5hbWVQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hbWUpKTtcbiAgICAgICAgICAgIGFiYnJQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLmFiYnIpKTtcbiAgICAgICAgICAgIG5hcnJvd1BpZWNlcy5wdXNoKHJlZ2V4RXNjYXBlKGVyYXNbaV0ubmFycm93KSk7XG5cbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5uYW1lKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHJlZ2V4RXNjYXBlKGVyYXNbaV0uYWJicikpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hcnJvdykpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZXJhc1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl9lcmFzTmFtZVJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbmFtZVBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX2VyYXNBYmJyUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBhYmJyUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fZXJhc05hcnJvd1JlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBuYXJyb3dQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydnZycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndlZWtZZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ0dHJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvV2Vla1llYXIoKSAlIDEwMDtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4odG9rZW4sIGdldHRlcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbigwLCBbdG9rZW4sIHRva2VuLmxlbmd0aF0sIDAsIGdldHRlcik7XG4gICAgfVxuXG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignZ2dnZycsICd3ZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ2dnZ2dnJywgJ3dlZWtZZWFyJyk7XG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHRycsICdpc29XZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ0dHR0dHJywgJ2lzb1dlZWtZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3dlZWtZZWFyJywgJ2dnJyk7XG4gICAgYWRkVW5pdEFsaWFzKCdpc29XZWVrWWVhcicsICdHRycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnd2Vla1llYXInLCAxKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWtZZWFyJywgMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdHJywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2cnLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignR0cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignZ2cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignR0dHRycsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdnZ2dnJywgbWF0Y2gxdG80LCBtYXRjaDQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHR0dHJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnZ2dnJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oXG4gICAgICAgIFsnZ2dnZycsICdnZ2dnZycsICdHR0dHJywgJ0dHR0dHJ10sXG4gICAgICAgIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICAgICAgd2Vla1t0b2tlbi5zdWJzdHIoMCwgMildID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZ2cnLCAnR0cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW5dID0gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2Vla1llYXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGdldFNldFdlZWtZZWFySGVscGVyLmNhbGwoXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgICB0aGlzLndlZWsoKSxcbiAgICAgICAgICAgIHRoaXMud2Vla2RheSgpLFxuICAgICAgICAgICAgdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93LFxuICAgICAgICAgICAgdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG95XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPV2Vla1llYXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGdldFNldFdlZWtZZWFySGVscGVyLmNhbGwoXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgICB0aGlzLmlzb1dlZWsoKSxcbiAgICAgICAgICAgIHRoaXMuaXNvV2Vla2RheSgpLFxuICAgICAgICAgICAgMSxcbiAgICAgICAgICAgIDRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRJU09XZWVrc0luWWVhcigpIHtcbiAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMueWVhcigpLCAxLCA0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRJU09XZWVrc0luSVNPV2Vla1llYXIoKSB7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLmlzb1dlZWtZZWFyKCksIDEsIDQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFdlZWtzSW5ZZWFyKCkge1xuICAgICAgICB2YXIgd2Vla0luZm8gPSB0aGlzLmxvY2FsZURhdGEoKS5fd2VlaztcbiAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMueWVhcigpLCB3ZWVrSW5mby5kb3csIHdlZWtJbmZvLmRveSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0V2Vla3NJbldlZWtZZWFyKCkge1xuICAgICAgICB2YXIgd2Vla0luZm8gPSB0aGlzLmxvY2FsZURhdGEoKS5fd2VlaztcbiAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMud2Vla1llYXIoKSwgd2Vla0luZm8uZG93LCB3ZWVrSW5mby5kb3kpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWtZZWFySGVscGVyKGlucHV0LCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgd2Vla3NUYXJnZXQ7XG4gICAgICAgIGlmIChpbnB1dCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gd2Vla09mWWVhcih0aGlzLCBkb3csIGRveSkueWVhcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdlZWtzVGFyZ2V0ID0gd2Vla3NJblllYXIoaW5wdXQsIGRvdywgZG95KTtcbiAgICAgICAgICAgIGlmICh3ZWVrID4gd2Vla3NUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICB3ZWVrID0gd2Vla3NUYXJnZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2V0V2Vla0FsbC5jYWxsKHRoaXMsIGlucHV0LCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRXZWVrQWxsKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgZGF5T2ZZZWFyRGF0YSA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpLFxuICAgICAgICAgICAgZGF0ZSA9IGNyZWF0ZVVUQ0RhdGUoZGF5T2ZZZWFyRGF0YS55ZWFyLCAwLCBkYXlPZlllYXJEYXRhLmRheU9mWWVhcik7XG5cbiAgICAgICAgdGhpcy55ZWFyKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSk7XG4gICAgICAgIHRoaXMubW9udGgoZGF0ZS5nZXRVVENNb250aCgpKTtcbiAgICAgICAgdGhpcy5kYXRlKGRhdGUuZ2V0VVRDRGF0ZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1EnLCAwLCAnUW8nLCAncXVhcnRlcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdxdWFydGVyJywgJ1EnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3F1YXJ0ZXInLCA3KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1EnLCBtYXRjaDEpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1EnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W01PTlRIXSA9ICh0b0ludChpbnB1dCkgLSAxKSAqIDM7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXRRdWFydGVyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsXG4gICAgICAgICAgICA/IE1hdGguY2VpbCgodGhpcy5tb250aCgpICsgMSkgLyAzKVxuICAgICAgICAgICAgOiB0aGlzLm1vbnRoKChpbnB1dCAtIDEpICogMyArICh0aGlzLm1vbnRoKCkgJSAzKSk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0QnLCBbJ0REJywgMl0sICdEbycsICdkYXRlJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RhdGUnLCAnRCcpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RhdGUnLCA5KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ0QnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0REJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0RvJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIFwib3JkaW5hbFBhcnNlXCIgZmFsbGJhY2sgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICAgICAgICByZXR1cm4gaXNTdHJpY3RcbiAgICAgICAgICAgID8gbG9jYWxlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlIHx8IGxvY2FsZS5fb3JkaW5hbFBhcnNlXG4gICAgICAgICAgICA6IGxvY2FsZS5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQ7XG4gICAgfSk7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnRCcsICdERCddLCBEQVRFKTtcbiAgICBhZGRQYXJzZVRva2VuKCdEbycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbREFURV0gPSB0b0ludChpbnB1dC5tYXRjaChtYXRjaDF0bzIpWzBdKTtcbiAgICB9KTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXREYXlPZk1vbnRoID0gbWFrZUdldFNldCgnRGF0ZScsIHRydWUpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0RERCcsIFsnRERERCcsIDNdLCAnREREbycsICdkYXlPZlllYXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnZGF5T2ZZZWFyJywgJ0RERCcpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RheU9mWWVhcicsIDQpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignREREJywgbWF0Y2gxdG8zKTtcbiAgICBhZGRSZWdleFRva2VuKCdEREREJywgbWF0Y2gzKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnREREJywgJ0REREQnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0RGF5T2ZZZWFyKGlucHV0KSB7XG4gICAgICAgIHZhciBkYXlPZlllYXIgPVxuICAgICAgICAgICAgTWF0aC5yb3VuZChcbiAgICAgICAgICAgICAgICAodGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ2RheScpIC0gdGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ3llYXInKSkgLyA4NjRlNVxuICAgICAgICAgICAgKSArIDE7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gZGF5T2ZZZWFyIDogdGhpcy5hZGQoaW5wdXQgLSBkYXlPZlllYXIsICdkJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ20nLCBbJ21tJywgMl0sIDAsICdtaW51dGUnKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbWludXRlJywgJ20nKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21pbnV0ZScsIDE0KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ20nLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ21tJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydtJywgJ21tJ10sIE1JTlVURSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0TWludXRlID0gbWFrZUdldFNldCgnTWludXRlcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdzJywgWydzcycsIDJdLCAwLCAnc2Vjb25kJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3NlY29uZCcsICdzJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdzZWNvbmQnLCAxNSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdzJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdzcycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRQYXJzZVRva2VuKFsncycsICdzcyddLCBTRUNPTkQpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldFNlY29uZCA9IG1ha2VHZXRTZXQoJ1NlY29uZHMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignUycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIH5+KHRoaXMubWlsbGlzZWNvbmQoKSAvIDEwMCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIH5+KHRoaXMubWlsbGlzZWNvbmQoKSAvIDEwKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTJywgM10sIDAsICdtaWxsaXNlY29uZCcpO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTUycsIDRdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTJywgNV0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTUycsIDZdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTUycsIDddLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1NTJywgOF0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1NTUycsIDldLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDAwO1xuICAgIH0pO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdtaWxsaXNlY29uZCcsICdtcycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbWlsbGlzZWNvbmQnLCAxNik7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdTJywgbWF0Y2gxdG8zLCBtYXRjaDEpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1NTJywgbWF0Y2gxdG8zLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1NTUycsIG1hdGNoMXRvMywgbWF0Y2gzKTtcblxuICAgIHZhciB0b2tlbiwgZ2V0U2V0TWlsbGlzZWNvbmQ7XG4gICAgZm9yICh0b2tlbiA9ICdTU1NTJzsgdG9rZW4ubGVuZ3RoIDw9IDk7IHRva2VuICs9ICdTJykge1xuICAgICAgICBhZGRSZWdleFRva2VuKHRva2VuLCBtYXRjaFVuc2lnbmVkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU1zKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNSUxMSVNFQ09ORF0gPSB0b0ludCgoJzAuJyArIGlucHV0KSAqIDEwMDApO1xuICAgIH1cblxuICAgIGZvciAodG9rZW4gPSAnUyc7IHRva2VuLmxlbmd0aCA8PSA5OyB0b2tlbiArPSAnUycpIHtcbiAgICAgICAgYWRkUGFyc2VUb2tlbih0b2tlbiwgcGFyc2VNcyk7XG4gICAgfVxuXG4gICAgZ2V0U2V0TWlsbGlzZWNvbmQgPSBtYWtlR2V0U2V0KCdNaWxsaXNlY29uZHMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigneicsIDAsIDAsICd6b25lQWJicicpO1xuICAgIGFkZEZvcm1hdFRva2VuKCd6eicsIDAsIDAsICd6b25lTmFtZScpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0Wm9uZUFiYnIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1VUQyA/ICdVVEMnIDogJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Wm9uZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1VUQyA/ICdDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZScgOiAnJztcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8gPSBNb21lbnQucHJvdG90eXBlO1xuXG4gICAgcHJvdG8uYWRkID0gYWRkO1xuICAgIHByb3RvLmNhbGVuZGFyID0gY2FsZW5kYXIkMTtcbiAgICBwcm90by5jbG9uZSA9IGNsb25lO1xuICAgIHByb3RvLmRpZmYgPSBkaWZmO1xuICAgIHByb3RvLmVuZE9mID0gZW5kT2Y7XG4gICAgcHJvdG8uZm9ybWF0ID0gZm9ybWF0O1xuICAgIHByb3RvLmZyb20gPSBmcm9tO1xuICAgIHByb3RvLmZyb21Ob3cgPSBmcm9tTm93O1xuICAgIHByb3RvLnRvID0gdG87XG4gICAgcHJvdG8udG9Ob3cgPSB0b05vdztcbiAgICBwcm90by5nZXQgPSBzdHJpbmdHZXQ7XG4gICAgcHJvdG8uaW52YWxpZEF0ID0gaW52YWxpZEF0O1xuICAgIHByb3RvLmlzQWZ0ZXIgPSBpc0FmdGVyO1xuICAgIHByb3RvLmlzQmVmb3JlID0gaXNCZWZvcmU7XG4gICAgcHJvdG8uaXNCZXR3ZWVuID0gaXNCZXR3ZWVuO1xuICAgIHByb3RvLmlzU2FtZSA9IGlzU2FtZTtcbiAgICBwcm90by5pc1NhbWVPckFmdGVyID0gaXNTYW1lT3JBZnRlcjtcbiAgICBwcm90by5pc1NhbWVPckJlZm9yZSA9IGlzU2FtZU9yQmVmb3JlO1xuICAgIHByb3RvLmlzVmFsaWQgPSBpc1ZhbGlkJDI7XG4gICAgcHJvdG8ubGFuZyA9IGxhbmc7XG4gICAgcHJvdG8ubG9jYWxlID0gbG9jYWxlO1xuICAgIHByb3RvLmxvY2FsZURhdGEgPSBsb2NhbGVEYXRhO1xuICAgIHByb3RvLm1heCA9IHByb3RvdHlwZU1heDtcbiAgICBwcm90by5taW4gPSBwcm90b3R5cGVNaW47XG4gICAgcHJvdG8ucGFyc2luZ0ZsYWdzID0gcGFyc2luZ0ZsYWdzO1xuICAgIHByb3RvLnNldCA9IHN0cmluZ1NldDtcbiAgICBwcm90by5zdGFydE9mID0gc3RhcnRPZjtcbiAgICBwcm90by5zdWJ0cmFjdCA9IHN1YnRyYWN0O1xuICAgIHByb3RvLnRvQXJyYXkgPSB0b0FycmF5O1xuICAgIHByb3RvLnRvT2JqZWN0ID0gdG9PYmplY3Q7XG4gICAgcHJvdG8udG9EYXRlID0gdG9EYXRlO1xuICAgIHByb3RvLnRvSVNPU3RyaW5nID0gdG9JU09TdHJpbmc7XG4gICAgcHJvdG8uaW5zcGVjdCA9IGluc3BlY3Q7XG4gICAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC5mb3IgIT0gbnVsbCkge1xuICAgICAgICBwcm90b1tTeW1ib2wuZm9yKCdub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbScpXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAnTW9tZW50PCcgKyB0aGlzLmZvcm1hdCgpICsgJz4nO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBwcm90by50b0pTT04gPSB0b0pTT047XG4gICAgcHJvdG8udG9TdHJpbmcgPSB0b1N0cmluZztcbiAgICBwcm90by51bml4ID0gdW5peDtcbiAgICBwcm90by52YWx1ZU9mID0gdmFsdWVPZjtcbiAgICBwcm90by5jcmVhdGlvbkRhdGEgPSBjcmVhdGlvbkRhdGE7XG4gICAgcHJvdG8uZXJhTmFtZSA9IGdldEVyYU5hbWU7XG4gICAgcHJvdG8uZXJhTmFycm93ID0gZ2V0RXJhTmFycm93O1xuICAgIHByb3RvLmVyYUFiYnIgPSBnZXRFcmFBYmJyO1xuICAgIHByb3RvLmVyYVllYXIgPSBnZXRFcmFZZWFyO1xuICAgIHByb3RvLnllYXIgPSBnZXRTZXRZZWFyO1xuICAgIHByb3RvLmlzTGVhcFllYXIgPSBnZXRJc0xlYXBZZWFyO1xuICAgIHByb3RvLndlZWtZZWFyID0gZ2V0U2V0V2Vla1llYXI7XG4gICAgcHJvdG8uaXNvV2Vla1llYXIgPSBnZXRTZXRJU09XZWVrWWVhcjtcbiAgICBwcm90by5xdWFydGVyID0gcHJvdG8ucXVhcnRlcnMgPSBnZXRTZXRRdWFydGVyO1xuICAgIHByb3RvLm1vbnRoID0gZ2V0U2V0TW9udGg7XG4gICAgcHJvdG8uZGF5c0luTW9udGggPSBnZXREYXlzSW5Nb250aDtcbiAgICBwcm90by53ZWVrID0gcHJvdG8ud2Vla3MgPSBnZXRTZXRXZWVrO1xuICAgIHByb3RvLmlzb1dlZWsgPSBwcm90by5pc29XZWVrcyA9IGdldFNldElTT1dlZWs7XG4gICAgcHJvdG8ud2Vla3NJblllYXIgPSBnZXRXZWVrc0luWWVhcjtcbiAgICBwcm90by53ZWVrc0luV2Vla1llYXIgPSBnZXRXZWVrc0luV2Vla1llYXI7XG4gICAgcHJvdG8uaXNvV2Vla3NJblllYXIgPSBnZXRJU09XZWVrc0luWWVhcjtcbiAgICBwcm90by5pc29XZWVrc0luSVNPV2Vla1llYXIgPSBnZXRJU09XZWVrc0luSVNPV2Vla1llYXI7XG4gICAgcHJvdG8uZGF0ZSA9IGdldFNldERheU9mTW9udGg7XG4gICAgcHJvdG8uZGF5ID0gcHJvdG8uZGF5cyA9IGdldFNldERheU9mV2VlaztcbiAgICBwcm90by53ZWVrZGF5ID0gZ2V0U2V0TG9jYWxlRGF5T2ZXZWVrO1xuICAgIHByb3RvLmlzb1dlZWtkYXkgPSBnZXRTZXRJU09EYXlPZldlZWs7XG4gICAgcHJvdG8uZGF5T2ZZZWFyID0gZ2V0U2V0RGF5T2ZZZWFyO1xuICAgIHByb3RvLmhvdXIgPSBwcm90by5ob3VycyA9IGdldFNldEhvdXI7XG4gICAgcHJvdG8ubWludXRlID0gcHJvdG8ubWludXRlcyA9IGdldFNldE1pbnV0ZTtcbiAgICBwcm90by5zZWNvbmQgPSBwcm90by5zZWNvbmRzID0gZ2V0U2V0U2Vjb25kO1xuICAgIHByb3RvLm1pbGxpc2Vjb25kID0gcHJvdG8ubWlsbGlzZWNvbmRzID0gZ2V0U2V0TWlsbGlzZWNvbmQ7XG4gICAgcHJvdG8udXRjT2Zmc2V0ID0gZ2V0U2V0T2Zmc2V0O1xuICAgIHByb3RvLnV0YyA9IHNldE9mZnNldFRvVVRDO1xuICAgIHByb3RvLmxvY2FsID0gc2V0T2Zmc2V0VG9Mb2NhbDtcbiAgICBwcm90by5wYXJzZVpvbmUgPSBzZXRPZmZzZXRUb1BhcnNlZE9mZnNldDtcbiAgICBwcm90by5oYXNBbGlnbmVkSG91ck9mZnNldCA9IGhhc0FsaWduZWRIb3VyT2Zmc2V0O1xuICAgIHByb3RvLmlzRFNUID0gaXNEYXlsaWdodFNhdmluZ1RpbWU7XG4gICAgcHJvdG8uaXNMb2NhbCA9IGlzTG9jYWw7XG4gICAgcHJvdG8uaXNVdGNPZmZzZXQgPSBpc1V0Y09mZnNldDtcbiAgICBwcm90by5pc1V0YyA9IGlzVXRjO1xuICAgIHByb3RvLmlzVVRDID0gaXNVdGM7XG4gICAgcHJvdG8uem9uZUFiYnIgPSBnZXRab25lQWJicjtcbiAgICBwcm90by56b25lTmFtZSA9IGdldFpvbmVOYW1lO1xuICAgIHByb3RvLmRhdGVzID0gZGVwcmVjYXRlKFxuICAgICAgICAnZGF0ZXMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIGRhdGUgaW5zdGVhZC4nLFxuICAgICAgICBnZXRTZXREYXlPZk1vbnRoXG4gICAgKTtcbiAgICBwcm90by5tb250aHMgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb250aHMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbnRoIGluc3RlYWQnLFxuICAgICAgICBnZXRTZXRNb250aFxuICAgICk7XG4gICAgcHJvdG8ueWVhcnMgPSBkZXByZWNhdGUoXG4gICAgICAgICd5ZWFycyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgeWVhciBpbnN0ZWFkJyxcbiAgICAgICAgZ2V0U2V0WWVhclxuICAgICk7XG4gICAgcHJvdG8uem9uZSA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudCgpLnpvbmUgaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudCgpLnV0Y09mZnNldCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL3pvbmUvJyxcbiAgICAgICAgZ2V0U2V0Wm9uZVxuICAgICk7XG4gICAgcHJvdG8uaXNEU1RTaGlmdGVkID0gZGVwcmVjYXRlKFxuICAgICAgICAnaXNEU1RTaGlmdGVkIGlzIGRlcHJlY2F0ZWQuIFNlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2RzdC1zaGlmdGVkLyBmb3IgbW9yZSBpbmZvcm1hdGlvbicsXG4gICAgICAgIGlzRGF5bGlnaHRTYXZpbmdUaW1lU2hpZnRlZFxuICAgICk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVVbml4KGlucHV0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbChpbnB1dCAqIDEwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUluWm9uZSgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsLmFwcGx5KG51bGwsIGFyZ3VtZW50cykucGFyc2Vab25lKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlUGFyc2VQb3N0Rm9ybWF0KHN0cmluZykge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgIH1cblxuICAgIHZhciBwcm90byQxID0gTG9jYWxlLnByb3RvdHlwZTtcblxuICAgIHByb3RvJDEuY2FsZW5kYXIgPSBjYWxlbmRhcjtcbiAgICBwcm90byQxLmxvbmdEYXRlRm9ybWF0ID0gbG9uZ0RhdGVGb3JtYXQ7XG4gICAgcHJvdG8kMS5pbnZhbGlkRGF0ZSA9IGludmFsaWREYXRlO1xuICAgIHByb3RvJDEub3JkaW5hbCA9IG9yZGluYWw7XG4gICAgcHJvdG8kMS5wcmVwYXJzZSA9IHByZVBhcnNlUG9zdEZvcm1hdDtcbiAgICBwcm90byQxLnBvc3Rmb3JtYXQgPSBwcmVQYXJzZVBvc3RGb3JtYXQ7XG4gICAgcHJvdG8kMS5yZWxhdGl2ZVRpbWUgPSByZWxhdGl2ZVRpbWU7XG4gICAgcHJvdG8kMS5wYXN0RnV0dXJlID0gcGFzdEZ1dHVyZTtcbiAgICBwcm90byQxLnNldCA9IHNldDtcbiAgICBwcm90byQxLmVyYXMgPSBsb2NhbGVFcmFzO1xuICAgIHByb3RvJDEuZXJhc1BhcnNlID0gbG9jYWxlRXJhc1BhcnNlO1xuICAgIHByb3RvJDEuZXJhc0NvbnZlcnRZZWFyID0gbG9jYWxlRXJhc0NvbnZlcnRZZWFyO1xuICAgIHByb3RvJDEuZXJhc0FiYnJSZWdleCA9IGVyYXNBYmJyUmVnZXg7XG4gICAgcHJvdG8kMS5lcmFzTmFtZVJlZ2V4ID0gZXJhc05hbWVSZWdleDtcbiAgICBwcm90byQxLmVyYXNOYXJyb3dSZWdleCA9IGVyYXNOYXJyb3dSZWdleDtcblxuICAgIHByb3RvJDEubW9udGhzID0gbG9jYWxlTW9udGhzO1xuICAgIHByb3RvJDEubW9udGhzU2hvcnQgPSBsb2NhbGVNb250aHNTaG9ydDtcbiAgICBwcm90byQxLm1vbnRoc1BhcnNlID0gbG9jYWxlTW9udGhzUGFyc2U7XG4gICAgcHJvdG8kMS5tb250aHNSZWdleCA9IG1vbnRoc1JlZ2V4O1xuICAgIHByb3RvJDEubW9udGhzU2hvcnRSZWdleCA9IG1vbnRoc1Nob3J0UmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrID0gbG9jYWxlV2VlaztcbiAgICBwcm90byQxLmZpcnN0RGF5T2ZZZWFyID0gbG9jYWxlRmlyc3REYXlPZlllYXI7XG4gICAgcHJvdG8kMS5maXJzdERheU9mV2VlayA9IGxvY2FsZUZpcnN0RGF5T2ZXZWVrO1xuXG4gICAgcHJvdG8kMS53ZWVrZGF5cyA9IGxvY2FsZVdlZWtkYXlzO1xuICAgIHByb3RvJDEud2Vla2RheXNNaW4gPSBsb2NhbGVXZWVrZGF5c01pbjtcbiAgICBwcm90byQxLndlZWtkYXlzU2hvcnQgPSBsb2NhbGVXZWVrZGF5c1Nob3J0O1xuICAgIHByb3RvJDEud2Vla2RheXNQYXJzZSA9IGxvY2FsZVdlZWtkYXlzUGFyc2U7XG5cbiAgICBwcm90byQxLndlZWtkYXlzUmVnZXggPSB3ZWVrZGF5c1JlZ2V4O1xuICAgIHByb3RvJDEud2Vla2RheXNTaG9ydFJlZ2V4ID0gd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgIHByb3RvJDEud2Vla2RheXNNaW5SZWdleCA9IHdlZWtkYXlzTWluUmVnZXg7XG5cbiAgICBwcm90byQxLmlzUE0gPSBsb2NhbGVJc1BNO1xuICAgIHByb3RvJDEubWVyaWRpZW0gPSBsb2NhbGVNZXJpZGllbTtcblxuICAgIGZ1bmN0aW9uIGdldCQxKGZvcm1hdCwgaW5kZXgsIGZpZWxkLCBzZXR0ZXIpIHtcbiAgICAgICAgdmFyIGxvY2FsZSA9IGdldExvY2FsZSgpLFxuICAgICAgICAgICAgdXRjID0gY3JlYXRlVVRDKCkuc2V0KHNldHRlciwgaW5kZXgpO1xuICAgICAgICByZXR1cm4gbG9jYWxlW2ZpZWxkXSh1dGMsIGZvcm1hdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8ICcnO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEoZm9ybWF0LCBpbmRleCwgZmllbGQsICdtb250aCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBvdXQgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpXSA9IGdldCQxKGZvcm1hdCwgaSwgZmllbGQsICdtb250aCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuXG4gICAgLy8gKClcbiAgICAvLyAoNSlcbiAgICAvLyAoZm10LCA1KVxuICAgIC8vIChmbXQpXG4gICAgLy8gKHRydWUpXG4gICAgLy8gKHRydWUsIDUpXG4gICAgLy8gKHRydWUsIGZtdCwgNSlcbiAgICAvLyAodHJ1ZSwgZm10KVxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCBmaWVsZCkge1xuICAgICAgICBpZiAodHlwZW9mIGxvY2FsZVNvcnRlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICBpZiAoaXNOdW1iZXIoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0ID0gbG9jYWxlU29ydGVkO1xuICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICBsb2NhbGVTb3J0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsb2NhbGUgPSBnZXRMb2NhbGUoKSxcbiAgICAgICAgICAgIHNoaWZ0ID0gbG9jYWxlU29ydGVkID8gbG9jYWxlLl93ZWVrLmRvdyA6IDAsXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgb3V0ID0gW107XG5cbiAgICAgICAgaWYgKGluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXQkMShmb3JtYXQsIChpbmRleCArIHNoaWZ0KSAlIDcsIGZpZWxkLCAnZGF5Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaV0gPSBnZXQkMShmb3JtYXQsIChpICsgc2hpZnQpICUgNywgZmllbGQsICdkYXknKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RNb250aHMoZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgJ21vbnRocycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RNb250aHNTaG9ydChmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0TW9udGhzSW1wbChmb3JtYXQsIGluZGV4LCAnbW9udGhzU2hvcnQnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXMobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzU2hvcnQobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzU2hvcnQnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXNNaW4obG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzTWluJyk7XG4gICAgfVxuXG4gICAgZ2V0U2V0R2xvYmFsTG9jYWxlKCdlbicsIHtcbiAgICAgICAgZXJhczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMDAwMS0wMS0wMScsXG4gICAgICAgICAgICAgICAgdW50aWw6ICtJbmZpbml0eSxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ0Fubm8gRG9taW5pJyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICdBRCcsXG4gICAgICAgICAgICAgICAgYWJicjogJ0FEJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcwMDAwLTEyLTMxJyxcbiAgICAgICAgICAgICAgICB1bnRpbDogLUluZmluaXR5LFxuICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnQmVmb3JlIENocmlzdCcsXG4gICAgICAgICAgICAgICAgbmFycm93OiAnQkMnLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdCQycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0odGh8c3R8bmR8cmQpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB0b0ludCgobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gU2lkZSBlZmZlY3QgaW1wb3J0c1xuXG4gICAgaG9va3MubGFuZyA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudC5sYW5nIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlIGluc3RlYWQuJyxcbiAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlXG4gICAgKTtcbiAgICBob29rcy5sYW5nRGF0YSA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudC5sYW5nRGF0YSBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZURhdGEgaW5zdGVhZC4nLFxuICAgICAgICBnZXRMb2NhbGVcbiAgICApO1xuXG4gICAgdmFyIG1hdGhBYnMgPSBNYXRoLmFicztcblxuICAgIGZ1bmN0aW9uIGFicygpIHtcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuXG4gICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyA9IG1hdGhBYnModGhpcy5fbWlsbGlzZWNvbmRzKTtcbiAgICAgICAgdGhpcy5fZGF5cyA9IG1hdGhBYnModGhpcy5fZGF5cyk7XG4gICAgICAgIHRoaXMuX21vbnRocyA9IG1hdGhBYnModGhpcy5fbW9udGhzKTtcblxuICAgICAgICBkYXRhLm1pbGxpc2Vjb25kcyA9IG1hdGhBYnMoZGF0YS5taWxsaXNlY29uZHMpO1xuICAgICAgICBkYXRhLnNlY29uZHMgPSBtYXRoQWJzKGRhdGEuc2Vjb25kcyk7XG4gICAgICAgIGRhdGEubWludXRlcyA9IG1hdGhBYnMoZGF0YS5taW51dGVzKTtcbiAgICAgICAgZGF0YS5ob3VycyA9IG1hdGhBYnMoZGF0YS5ob3Vycyk7XG4gICAgICAgIGRhdGEubW9udGhzID0gbWF0aEFicyhkYXRhLm1vbnRocyk7XG4gICAgICAgIGRhdGEueWVhcnMgPSBtYXRoQWJzKGRhdGEueWVhcnMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFN1YnRyYWN0JDEoZHVyYXRpb24sIGlucHV0LCB2YWx1ZSwgZGlyZWN0aW9uKSB7XG4gICAgICAgIHZhciBvdGhlciA9IGNyZWF0ZUR1cmF0aW9uKGlucHV0LCB2YWx1ZSk7XG5cbiAgICAgICAgZHVyYXRpb24uX21pbGxpc2Vjb25kcyArPSBkaXJlY3Rpb24gKiBvdGhlci5fbWlsbGlzZWNvbmRzO1xuICAgICAgICBkdXJhdGlvbi5fZGF5cyArPSBkaXJlY3Rpb24gKiBvdGhlci5fZGF5cztcbiAgICAgICAgZHVyYXRpb24uX21vbnRocyArPSBkaXJlY3Rpb24gKiBvdGhlci5fbW9udGhzO1xuXG4gICAgICAgIHJldHVybiBkdXJhdGlvbi5fYnViYmxlKCk7XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydHMgb25seSAyLjAtc3R5bGUgYWRkKDEsICdzJykgb3IgYWRkKGR1cmF0aW9uKVxuICAgIGZ1bmN0aW9uIGFkZCQxKGlucHV0LCB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gYWRkU3VidHJhY3QkMSh0aGlzLCBpbnB1dCwgdmFsdWUsIDEpO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnRzIG9ubHkgMi4wLXN0eWxlIHN1YnRyYWN0KDEsICdzJykgb3Igc3VidHJhY3QoZHVyYXRpb24pXG4gICAgZnVuY3Rpb24gc3VidHJhY3QkMShpbnB1dCwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGFkZFN1YnRyYWN0JDEodGhpcywgaW5wdXQsIHZhbHVlLCAtMSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWJzQ2VpbChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBidWJibGUoKSB7XG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSB0aGlzLl9taWxsaXNlY29uZHMsXG4gICAgICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyxcbiAgICAgICAgICAgIG1vbnRocyA9IHRoaXMuX21vbnRocyxcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLl9kYXRhLFxuICAgICAgICAgICAgc2Vjb25kcyxcbiAgICAgICAgICAgIG1pbnV0ZXMsXG4gICAgICAgICAgICBob3VycyxcbiAgICAgICAgICAgIHllYXJzLFxuICAgICAgICAgICAgbW9udGhzRnJvbURheXM7XG5cbiAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIG1peCBvZiBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgdmFsdWVzLCBidWJibGUgZG93biBmaXJzdFxuICAgICAgICAvLyBjaGVjazogaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzIxNjZcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAobWlsbGlzZWNvbmRzID49IDAgJiYgZGF5cyA+PSAwICYmIG1vbnRocyA+PSAwKSB8fFxuICAgICAgICAgICAgICAgIChtaWxsaXNlY29uZHMgPD0gMCAmJiBkYXlzIDw9IDAgJiYgbW9udGhzIDw9IDApXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgbWlsbGlzZWNvbmRzICs9IGFic0NlaWwobW9udGhzVG9EYXlzKG1vbnRocykgKyBkYXlzKSAqIDg2NGU1O1xuICAgICAgICAgICAgZGF5cyA9IDA7XG4gICAgICAgICAgICBtb250aHMgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGJ1YmJsZXMgdXAgdmFsdWVzLCBzZWUgdGhlIHRlc3RzIGZvclxuICAgICAgICAvLyBleGFtcGxlcyBvZiB3aGF0IHRoYXQgbWVhbnMuXG4gICAgICAgIGRhdGEubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzICUgMTAwMDtcblxuICAgICAgICBzZWNvbmRzID0gYWJzRmxvb3IobWlsbGlzZWNvbmRzIC8gMTAwMCk7XG4gICAgICAgIGRhdGEuc2Vjb25kcyA9IHNlY29uZHMgJSA2MDtcblxuICAgICAgICBtaW51dGVzID0gYWJzRmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICAgICAgZGF0YS5taW51dGVzID0gbWludXRlcyAlIDYwO1xuXG4gICAgICAgIGhvdXJzID0gYWJzRmxvb3IobWludXRlcyAvIDYwKTtcbiAgICAgICAgZGF0YS5ob3VycyA9IGhvdXJzICUgMjQ7XG5cbiAgICAgICAgZGF5cyArPSBhYnNGbG9vcihob3VycyAvIDI0KTtcblxuICAgICAgICAvLyBjb252ZXJ0IGRheXMgdG8gbW9udGhzXG4gICAgICAgIG1vbnRoc0Zyb21EYXlzID0gYWJzRmxvb3IoZGF5c1RvTW9udGhzKGRheXMpKTtcbiAgICAgICAgbW9udGhzICs9IG1vbnRoc0Zyb21EYXlzO1xuICAgICAgICBkYXlzIC09IGFic0NlaWwobW9udGhzVG9EYXlzKG1vbnRoc0Zyb21EYXlzKSk7XG5cbiAgICAgICAgLy8gMTIgbW9udGhzIC0+IDEgeWVhclxuICAgICAgICB5ZWFycyA9IGFic0Zsb29yKG1vbnRocyAvIDEyKTtcbiAgICAgICAgbW9udGhzICU9IDEyO1xuXG4gICAgICAgIGRhdGEuZGF5cyA9IGRheXM7XG4gICAgICAgIGRhdGEubW9udGhzID0gbW9udGhzO1xuICAgICAgICBkYXRhLnllYXJzID0geWVhcnM7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5c1RvTW9udGhzKGRheXMpIHtcbiAgICAgICAgLy8gNDAwIHllYXJzIGhhdmUgMTQ2MDk3IGRheXMgKHRha2luZyBpbnRvIGFjY291bnQgbGVhcCB5ZWFyIHJ1bGVzKVxuICAgICAgICAvLyA0MDAgeWVhcnMgaGF2ZSAxMiBtb250aHMgPT09IDQ4MDBcbiAgICAgICAgcmV0dXJuIChkYXlzICogNDgwMCkgLyAxNDYwOTc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9udGhzVG9EYXlzKG1vbnRocykge1xuICAgICAgICAvLyB0aGUgcmV2ZXJzZSBvZiBkYXlzVG9Nb250aHNcbiAgICAgICAgcmV0dXJuIChtb250aHMgKiAxNDYwOTcpIC8gNDgwMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcyh1bml0cykge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXlzLFxuICAgICAgICAgICAgbW9udGhzLFxuICAgICAgICAgICAgbWlsbGlzZWNvbmRzID0gdGhpcy5fbWlsbGlzZWNvbmRzO1xuXG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuXG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21vbnRoJyB8fCB1bml0cyA9PT0gJ3F1YXJ0ZXInIHx8IHVuaXRzID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzICsgbWlsbGlzZWNvbmRzIC8gODY0ZTU7XG4gICAgICAgICAgICBtb250aHMgPSB0aGlzLl9tb250aHMgKyBkYXlzVG9Nb250aHMoZGF5cyk7XG4gICAgICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzIC8gMztcbiAgICAgICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRocyAvIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaGFuZGxlIG1pbGxpc2Vjb25kcyBzZXBhcmF0ZWx5IGJlY2F1c2Ugb2YgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgKGlzc3VlICMxODY3KVxuICAgICAgICAgICAgZGF5cyA9IHRoaXMuX2RheXMgKyBNYXRoLnJvdW5kKG1vbnRoc1RvRGF5cyh0aGlzLl9tb250aHMpKTtcbiAgICAgICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgLyA3ICsgbWlsbGlzZWNvbmRzIC8gNjA0OGU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXlzICsgbWlsbGlzZWNvbmRzIC8gODY0ZTU7XG4gICAgICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXlzICogMjQgKyBtaWxsaXNlY29uZHMgLyAzNmU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXlzICogMTQ0MCArIG1pbGxpc2Vjb25kcyAvIDZlNDtcbiAgICAgICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyAqIDg2NDAwICsgbWlsbGlzZWNvbmRzIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAvLyBNYXRoLmZsb29yIHByZXZlbnRzIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIGhlcmVcbiAgICAgICAgICAgICAgICBjYXNlICdtaWxsaXNlY29uZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKGRheXMgKiA4NjRlNSkgKyBtaWxsaXNlY29uZHM7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHVuaXQgJyArIHVuaXRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IFVzZSB0aGlzLmFzKCdtcycpP1xuICAgIGZ1bmN0aW9uIHZhbHVlT2YkMSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzICtcbiAgICAgICAgICAgIHRoaXMuX2RheXMgKiA4NjRlNSArXG4gICAgICAgICAgICAodGhpcy5fbW9udGhzICUgMTIpICogMjU5MmU2ICtcbiAgICAgICAgICAgIHRvSW50KHRoaXMuX21vbnRocyAvIDEyKSAqIDMxNTM2ZTZcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlQXMoYWxpYXMpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFzKGFsaWFzKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgYXNNaWxsaXNlY29uZHMgPSBtYWtlQXMoJ21zJyksXG4gICAgICAgIGFzU2Vjb25kcyA9IG1ha2VBcygncycpLFxuICAgICAgICBhc01pbnV0ZXMgPSBtYWtlQXMoJ20nKSxcbiAgICAgICAgYXNIb3VycyA9IG1ha2VBcygnaCcpLFxuICAgICAgICBhc0RheXMgPSBtYWtlQXMoJ2QnKSxcbiAgICAgICAgYXNXZWVrcyA9IG1ha2VBcygndycpLFxuICAgICAgICBhc01vbnRocyA9IG1ha2VBcygnTScpLFxuICAgICAgICBhc1F1YXJ0ZXJzID0gbWFrZUFzKCdRJyksXG4gICAgICAgIGFzWWVhcnMgPSBtYWtlQXMoJ3knKTtcblxuICAgIGZ1bmN0aW9uIGNsb25lJDEoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih0aGlzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXQkMih1bml0cykge1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpc1t1bml0cyArICdzJ10oKSA6IE5hTjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlR2V0dGVyKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2RhdGFbbmFtZV0gOiBOYU47XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIG1pbGxpc2Vjb25kcyA9IG1ha2VHZXR0ZXIoJ21pbGxpc2Vjb25kcycpLFxuICAgICAgICBzZWNvbmRzID0gbWFrZUdldHRlcignc2Vjb25kcycpLFxuICAgICAgICBtaW51dGVzID0gbWFrZUdldHRlcignbWludXRlcycpLFxuICAgICAgICBob3VycyA9IG1ha2VHZXR0ZXIoJ2hvdXJzJyksXG4gICAgICAgIGRheXMgPSBtYWtlR2V0dGVyKCdkYXlzJyksXG4gICAgICAgIG1vbnRocyA9IG1ha2VHZXR0ZXIoJ21vbnRocycpLFxuICAgICAgICB5ZWFycyA9IG1ha2VHZXR0ZXIoJ3llYXJzJyk7XG5cbiAgICBmdW5jdGlvbiB3ZWVrcygpIHtcbiAgICAgICAgcmV0dXJuIGFic0Zsb29yKHRoaXMuZGF5cygpIC8gNyk7XG4gICAgfVxuXG4gICAgdmFyIHJvdW5kID0gTWF0aC5yb3VuZCxcbiAgICAgICAgdGhyZXNob2xkcyA9IHtcbiAgICAgICAgICAgIHNzOiA0NCwgLy8gYSBmZXcgc2Vjb25kcyB0byBzZWNvbmRzXG4gICAgICAgICAgICBzOiA0NSwgLy8gc2Vjb25kcyB0byBtaW51dGVcbiAgICAgICAgICAgIG06IDQ1LCAvLyBtaW51dGVzIHRvIGhvdXJcbiAgICAgICAgICAgIGg6IDIyLCAvLyBob3VycyB0byBkYXlcbiAgICAgICAgICAgIGQ6IDI2LCAvLyBkYXlzIHRvIG1vbnRoL3dlZWtcbiAgICAgICAgICAgIHc6IG51bGwsIC8vIHdlZWtzIHRvIG1vbnRoXG4gICAgICAgICAgICBNOiAxMSwgLy8gbW9udGhzIHRvIHllYXJcbiAgICAgICAgfTtcblxuICAgIC8vIGhlbHBlciBmdW5jdGlvbiBmb3IgbW9tZW50LmZuLmZyb20sIG1vbWVudC5mbi5mcm9tTm93LCBhbmQgbW9tZW50LmR1cmF0aW9uLmZuLmh1bWFuaXplXG4gICAgZnVuY3Rpb24gc3Vic3RpdHV0ZVRpbWVBZ28oc3RyaW5nLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGlzRnV0dXJlLCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5yZWxhdGl2ZVRpbWUobnVtYmVyIHx8IDEsICEhd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lJDEocG9zTmVnRHVyYXRpb24sIHdpdGhvdXRTdWZmaXgsIHRocmVzaG9sZHMsIGxvY2FsZSkge1xuICAgICAgICB2YXIgZHVyYXRpb24gPSBjcmVhdGVEdXJhdGlvbihwb3NOZWdEdXJhdGlvbikuYWJzKCksXG4gICAgICAgICAgICBzZWNvbmRzID0gcm91bmQoZHVyYXRpb24uYXMoJ3MnKSksXG4gICAgICAgICAgICBtaW51dGVzID0gcm91bmQoZHVyYXRpb24uYXMoJ20nKSksXG4gICAgICAgICAgICBob3VycyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdoJykpLFxuICAgICAgICAgICAgZGF5cyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdkJykpLFxuICAgICAgICAgICAgbW9udGhzID0gcm91bmQoZHVyYXRpb24uYXMoJ00nKSksXG4gICAgICAgICAgICB3ZWVrcyA9IHJvdW5kKGR1cmF0aW9uLmFzKCd3JykpLFxuICAgICAgICAgICAgeWVhcnMgPSByb3VuZChkdXJhdGlvbi5hcygneScpKSxcbiAgICAgICAgICAgIGEgPVxuICAgICAgICAgICAgICAgIChzZWNvbmRzIDw9IHRocmVzaG9sZHMuc3MgJiYgWydzJywgc2Vjb25kc10pIHx8XG4gICAgICAgICAgICAgICAgKHNlY29uZHMgPCB0aHJlc2hvbGRzLnMgJiYgWydzcycsIHNlY29uZHNdKSB8fFxuICAgICAgICAgICAgICAgIChtaW51dGVzIDw9IDEgJiYgWydtJ10pIHx8XG4gICAgICAgICAgICAgICAgKG1pbnV0ZXMgPCB0aHJlc2hvbGRzLm0gJiYgWydtbScsIG1pbnV0ZXNdKSB8fFxuICAgICAgICAgICAgICAgIChob3VycyA8PSAxICYmIFsnaCddKSB8fFxuICAgICAgICAgICAgICAgIChob3VycyA8IHRocmVzaG9sZHMuaCAmJiBbJ2hoJywgaG91cnNdKSB8fFxuICAgICAgICAgICAgICAgIChkYXlzIDw9IDEgJiYgWydkJ10pIHx8XG4gICAgICAgICAgICAgICAgKGRheXMgPCB0aHJlc2hvbGRzLmQgJiYgWydkZCcsIGRheXNdKTtcblxuICAgICAgICBpZiAodGhyZXNob2xkcy53ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGEgPVxuICAgICAgICAgICAgICAgIGEgfHxcbiAgICAgICAgICAgICAgICAod2Vla3MgPD0gMSAmJiBbJ3cnXSkgfHxcbiAgICAgICAgICAgICAgICAod2Vla3MgPCB0aHJlc2hvbGRzLncgJiYgWyd3dycsIHdlZWtzXSk7XG4gICAgICAgIH1cbiAgICAgICAgYSA9IGEgfHxcbiAgICAgICAgICAgIChtb250aHMgPD0gMSAmJiBbJ00nXSkgfHxcbiAgICAgICAgICAgIChtb250aHMgPCB0aHJlc2hvbGRzLk0gJiYgWydNTScsIG1vbnRoc10pIHx8XG4gICAgICAgICAgICAoeWVhcnMgPD0gMSAmJiBbJ3knXSkgfHwgWyd5eScsIHllYXJzXTtcblxuICAgICAgICBhWzJdID0gd2l0aG91dFN1ZmZpeDtcbiAgICAgICAgYVszXSA9ICtwb3NOZWdEdXJhdGlvbiA+IDA7XG4gICAgICAgIGFbNF0gPSBsb2NhbGU7XG4gICAgICAgIHJldHVybiBzdWJzdGl0dXRlVGltZUFnby5hcHBseShudWxsLCBhKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gc2V0IHRoZSByb3VuZGluZyBmdW5jdGlvbiBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzXG4gICAgZnVuY3Rpb24gZ2V0U2V0UmVsYXRpdmVUaW1lUm91bmRpbmcocm91bmRpbmdGdW5jdGlvbikge1xuICAgICAgICBpZiAocm91bmRpbmdGdW5jdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcm91bmQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByb3VuZGluZ0Z1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByb3VuZCA9IHJvdW5kaW5nRnVuY3Rpb247XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCBhIHRocmVzaG9sZCBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzXG4gICAgZnVuY3Rpb24gZ2V0U2V0UmVsYXRpdmVUaW1lVGhyZXNob2xkKHRocmVzaG9sZCwgbGltaXQpIHtcbiAgICAgICAgaWYgKHRocmVzaG9sZHNbdGhyZXNob2xkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbWl0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJlc2hvbGRzW3RocmVzaG9sZF07XG4gICAgICAgIH1cbiAgICAgICAgdGhyZXNob2xkc1t0aHJlc2hvbGRdID0gbGltaXQ7XG4gICAgICAgIGlmICh0aHJlc2hvbGQgPT09ICdzJykge1xuICAgICAgICAgICAgdGhyZXNob2xkcy5zcyA9IGxpbWl0IC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBodW1hbml6ZShhcmdXaXRoU3VmZml4LCBhcmdUaHJlc2hvbGRzKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHdpdGhTdWZmaXggPSBmYWxzZSxcbiAgICAgICAgICAgIHRoID0gdGhyZXNob2xkcyxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIG91dHB1dDtcblxuICAgICAgICBpZiAodHlwZW9mIGFyZ1dpdGhTdWZmaXggPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBhcmdUaHJlc2hvbGRzID0gYXJnV2l0aFN1ZmZpeDtcbiAgICAgICAgICAgIGFyZ1dpdGhTdWZmaXggPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFyZ1dpdGhTdWZmaXggPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgd2l0aFN1ZmZpeCA9IGFyZ1dpdGhTdWZmaXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhcmdUaHJlc2hvbGRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdGggPSBPYmplY3QuYXNzaWduKHt9LCB0aHJlc2hvbGRzLCBhcmdUaHJlc2hvbGRzKTtcbiAgICAgICAgICAgIGlmIChhcmdUaHJlc2hvbGRzLnMgIT0gbnVsbCAmJiBhcmdUaHJlc2hvbGRzLnNzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aC5zcyA9IGFyZ1RocmVzaG9sZHMucyAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZURhdGEoKTtcbiAgICAgICAgb3V0cHV0ID0gcmVsYXRpdmVUaW1lJDEodGhpcywgIXdpdGhTdWZmaXgsIHRoLCBsb2NhbGUpO1xuXG4gICAgICAgIGlmICh3aXRoU3VmZml4KSB7XG4gICAgICAgICAgICBvdXRwdXQgPSBsb2NhbGUucGFzdEZ1dHVyZSgrdGhpcywgb3V0cHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsb2NhbGUucG9zdGZvcm1hdChvdXRwdXQpO1xuICAgIH1cblxuICAgIHZhciBhYnMkMSA9IE1hdGguYWJzO1xuXG4gICAgZnVuY3Rpb24gc2lnbih4KSB7XG4gICAgICAgIHJldHVybiAoeCA+IDApIC0gKHggPCAwKSB8fCAreDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0lTT1N0cmluZyQxKCkge1xuICAgICAgICAvLyBmb3IgSVNPIHN0cmluZ3Mgd2UgZG8gbm90IHVzZSB0aGUgbm9ybWFsIGJ1YmJsaW5nIHJ1bGVzOlxuICAgICAgICAvLyAgKiBtaWxsaXNlY29uZHMgYnViYmxlIHVwIHVudGlsIHRoZXkgYmVjb21lIGhvdXJzXG4gICAgICAgIC8vICAqIGRheXMgZG8gbm90IGJ1YmJsZSBhdCBhbGxcbiAgICAgICAgLy8gICogbW9udGhzIGJ1YmJsZSB1cCB1bnRpbCB0aGV5IGJlY29tZSB5ZWFyc1xuICAgICAgICAvLyBUaGlzIGlzIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29udGV4dC1mcmVlIGNvbnZlcnNpb24gYmV0d2VlbiBob3VycyBhbmQgZGF5c1xuICAgICAgICAvLyAodGhpbmsgb2YgY2xvY2sgY2hhbmdlcylcbiAgICAgICAgLy8gYW5kIGFsc28gbm90IGJldHdlZW4gZGF5cyBhbmQgbW9udGhzICgyOC0zMSBkYXlzIHBlciBtb250aClcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2Vjb25kcyA9IGFicyQxKHRoaXMuX21pbGxpc2Vjb25kcykgLyAxMDAwLFxuICAgICAgICAgICAgZGF5cyA9IGFicyQxKHRoaXMuX2RheXMpLFxuICAgICAgICAgICAgbW9udGhzID0gYWJzJDEodGhpcy5fbW9udGhzKSxcbiAgICAgICAgICAgIG1pbnV0ZXMsXG4gICAgICAgICAgICBob3VycyxcbiAgICAgICAgICAgIHllYXJzLFxuICAgICAgICAgICAgcyxcbiAgICAgICAgICAgIHRvdGFsID0gdGhpcy5hc1NlY29uZHMoKSxcbiAgICAgICAgICAgIHRvdGFsU2lnbixcbiAgICAgICAgICAgIHltU2lnbixcbiAgICAgICAgICAgIGRheXNTaWduLFxuICAgICAgICAgICAgaG1zU2lnbjtcblxuICAgICAgICBpZiAoIXRvdGFsKSB7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSBzYW1lIGFzIEMjJ3MgKE5vZGEpIGFuZCBweXRob24gKGlzb2RhdGUpLi4uXG4gICAgICAgICAgICAvLyBidXQgbm90IG90aGVyIEpTIChnb29nLmRhdGUpXG4gICAgICAgICAgICByZXR1cm4gJ1AwRCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAzNjAwIHNlY29uZHMgLT4gNjAgbWludXRlcyAtPiAxIGhvdXJcbiAgICAgICAgbWludXRlcyA9IGFic0Zsb29yKHNlY29uZHMgLyA2MCk7XG4gICAgICAgIGhvdXJzID0gYWJzRmxvb3IobWludXRlcyAvIDYwKTtcbiAgICAgICAgc2Vjb25kcyAlPSA2MDtcbiAgICAgICAgbWludXRlcyAlPSA2MDtcblxuICAgICAgICAvLyAxMiBtb250aHMgLT4gMSB5ZWFyXG4gICAgICAgIHllYXJzID0gYWJzRmxvb3IobW9udGhzIC8gMTIpO1xuICAgICAgICBtb250aHMgJT0gMTI7XG5cbiAgICAgICAgLy8gaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2RvcmRpbGxlL21vbWVudC1pc29kdXJhdGlvbi9ibG9iL21hc3Rlci9tb21lbnQuaXNvZHVyYXRpb24uanNcbiAgICAgICAgcyA9IHNlY29uZHMgPyBzZWNvbmRzLnRvRml4ZWQoMykucmVwbGFjZSgvXFwuPzArJC8sICcnKSA6ICcnO1xuXG4gICAgICAgIHRvdGFsU2lnbiA9IHRvdGFsIDwgMCA/ICctJyA6ICcnO1xuICAgICAgICB5bVNpZ24gPSBzaWduKHRoaXMuX21vbnRocykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG4gICAgICAgIGRheXNTaWduID0gc2lnbih0aGlzLl9kYXlzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcbiAgICAgICAgaG1zU2lnbiA9IHNpZ24odGhpcy5fbWlsbGlzZWNvbmRzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdG90YWxTaWduICtcbiAgICAgICAgICAgICdQJyArXG4gICAgICAgICAgICAoeWVhcnMgPyB5bVNpZ24gKyB5ZWFycyArICdZJyA6ICcnKSArXG4gICAgICAgICAgICAobW9udGhzID8geW1TaWduICsgbW9udGhzICsgJ00nIDogJycpICtcbiAgICAgICAgICAgIChkYXlzID8gZGF5c1NpZ24gKyBkYXlzICsgJ0QnIDogJycpICtcbiAgICAgICAgICAgIChob3VycyB8fCBtaW51dGVzIHx8IHNlY29uZHMgPyAnVCcgOiAnJykgK1xuICAgICAgICAgICAgKGhvdXJzID8gaG1zU2lnbiArIGhvdXJzICsgJ0gnIDogJycpICtcbiAgICAgICAgICAgIChtaW51dGVzID8gaG1zU2lnbiArIG1pbnV0ZXMgKyAnTScgOiAnJykgK1xuICAgICAgICAgICAgKHNlY29uZHMgPyBobXNTaWduICsgcyArICdTJyA6ICcnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHZhciBwcm90byQyID0gRHVyYXRpb24ucHJvdG90eXBlO1xuXG4gICAgcHJvdG8kMi5pc1ZhbGlkID0gaXNWYWxpZCQxO1xuICAgIHByb3RvJDIuYWJzID0gYWJzO1xuICAgIHByb3RvJDIuYWRkID0gYWRkJDE7XG4gICAgcHJvdG8kMi5zdWJ0cmFjdCA9IHN1YnRyYWN0JDE7XG4gICAgcHJvdG8kMi5hcyA9IGFzO1xuICAgIHByb3RvJDIuYXNNaWxsaXNlY29uZHMgPSBhc01pbGxpc2Vjb25kcztcbiAgICBwcm90byQyLmFzU2Vjb25kcyA9IGFzU2Vjb25kcztcbiAgICBwcm90byQyLmFzTWludXRlcyA9IGFzTWludXRlcztcbiAgICBwcm90byQyLmFzSG91cnMgPSBhc0hvdXJzO1xuICAgIHByb3RvJDIuYXNEYXlzID0gYXNEYXlzO1xuICAgIHByb3RvJDIuYXNXZWVrcyA9IGFzV2Vla3M7XG4gICAgcHJvdG8kMi5hc01vbnRocyA9IGFzTW9udGhzO1xuICAgIHByb3RvJDIuYXNRdWFydGVycyA9IGFzUXVhcnRlcnM7XG4gICAgcHJvdG8kMi5hc1llYXJzID0gYXNZZWFycztcbiAgICBwcm90byQyLnZhbHVlT2YgPSB2YWx1ZU9mJDE7XG4gICAgcHJvdG8kMi5fYnViYmxlID0gYnViYmxlO1xuICAgIHByb3RvJDIuY2xvbmUgPSBjbG9uZSQxO1xuICAgIHByb3RvJDIuZ2V0ID0gZ2V0JDI7XG4gICAgcHJvdG8kMi5taWxsaXNlY29uZHMgPSBtaWxsaXNlY29uZHM7XG4gICAgcHJvdG8kMi5zZWNvbmRzID0gc2Vjb25kcztcbiAgICBwcm90byQyLm1pbnV0ZXMgPSBtaW51dGVzO1xuICAgIHByb3RvJDIuaG91cnMgPSBob3VycztcbiAgICBwcm90byQyLmRheXMgPSBkYXlzO1xuICAgIHByb3RvJDIud2Vla3MgPSB3ZWVrcztcbiAgICBwcm90byQyLm1vbnRocyA9IG1vbnRocztcbiAgICBwcm90byQyLnllYXJzID0geWVhcnM7XG4gICAgcHJvdG8kMi5odW1hbml6ZSA9IGh1bWFuaXplO1xuICAgIHByb3RvJDIudG9JU09TdHJpbmcgPSB0b0lTT1N0cmluZyQxO1xuICAgIHByb3RvJDIudG9TdHJpbmcgPSB0b0lTT1N0cmluZyQxO1xuICAgIHByb3RvJDIudG9KU09OID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLmxvY2FsZSA9IGxvY2FsZTtcbiAgICBwcm90byQyLmxvY2FsZURhdGEgPSBsb2NhbGVEYXRhO1xuXG4gICAgcHJvdG8kMi50b0lzb1N0cmluZyA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ3RvSXNvU3RyaW5nKCkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSB0b0lTT1N0cmluZygpIGluc3RlYWQgKG5vdGljZSB0aGUgY2FwaXRhbHMpJyxcbiAgICAgICAgdG9JU09TdHJpbmckMVxuICAgICk7XG4gICAgcHJvdG8kMi5sYW5nID0gbGFuZztcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdYJywgMCwgMCwgJ3VuaXgnKTtcbiAgICBhZGRGb3JtYXRUb2tlbigneCcsIDAsIDAsICd2YWx1ZU9mJyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCd4JywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1gnLCBtYXRjaFRpbWVzdGFtcCk7XG4gICAgYWRkUGFyc2VUb2tlbignWCcsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShwYXJzZUZsb2F0KGlucHV0KSAqIDEwMDApO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ3gnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUodG9JbnQoaW5wdXQpKTtcbiAgICB9KTtcblxuICAgIC8vISBtb21lbnQuanNcblxuICAgIGhvb2tzLnZlcnNpb24gPSAnMi4yOS40JztcblxuICAgIHNldEhvb2tDYWxsYmFjayhjcmVhdGVMb2NhbCk7XG5cbiAgICBob29rcy5mbiA9IHByb3RvO1xuICAgIGhvb2tzLm1pbiA9IG1pbjtcbiAgICBob29rcy5tYXggPSBtYXg7XG4gICAgaG9va3Mubm93ID0gbm93O1xuICAgIGhvb2tzLnV0YyA9IGNyZWF0ZVVUQztcbiAgICBob29rcy51bml4ID0gY3JlYXRlVW5peDtcbiAgICBob29rcy5tb250aHMgPSBsaXN0TW9udGhzO1xuICAgIGhvb2tzLmlzRGF0ZSA9IGlzRGF0ZTtcbiAgICBob29rcy5sb2NhbGUgPSBnZXRTZXRHbG9iYWxMb2NhbGU7XG4gICAgaG9va3MuaW52YWxpZCA9IGNyZWF0ZUludmFsaWQ7XG4gICAgaG9va3MuZHVyYXRpb24gPSBjcmVhdGVEdXJhdGlvbjtcbiAgICBob29rcy5pc01vbWVudCA9IGlzTW9tZW50O1xuICAgIGhvb2tzLndlZWtkYXlzID0gbGlzdFdlZWtkYXlzO1xuICAgIGhvb2tzLnBhcnNlWm9uZSA9IGNyZWF0ZUluWm9uZTtcbiAgICBob29rcy5sb2NhbGVEYXRhID0gZ2V0TG9jYWxlO1xuICAgIGhvb2tzLmlzRHVyYXRpb24gPSBpc0R1cmF0aW9uO1xuICAgIGhvb2tzLm1vbnRoc1Nob3J0ID0gbGlzdE1vbnRoc1Nob3J0O1xuICAgIGhvb2tzLndlZWtkYXlzTWluID0gbGlzdFdlZWtkYXlzTWluO1xuICAgIGhvb2tzLmRlZmluZUxvY2FsZSA9IGRlZmluZUxvY2FsZTtcbiAgICBob29rcy51cGRhdGVMb2NhbGUgPSB1cGRhdGVMb2NhbGU7XG4gICAgaG9va3MubG9jYWxlcyA9IGxpc3RMb2NhbGVzO1xuICAgIGhvb2tzLndlZWtkYXlzU2hvcnQgPSBsaXN0V2Vla2RheXNTaG9ydDtcbiAgICBob29rcy5ub3JtYWxpemVVbml0cyA9IG5vcm1hbGl6ZVVuaXRzO1xuICAgIGhvb2tzLnJlbGF0aXZlVGltZVJvdW5kaW5nID0gZ2V0U2V0UmVsYXRpdmVUaW1lUm91bmRpbmc7XG4gICAgaG9va3MucmVsYXRpdmVUaW1lVGhyZXNob2xkID0gZ2V0U2V0UmVsYXRpdmVUaW1lVGhyZXNob2xkO1xuICAgIGhvb2tzLmNhbGVuZGFyRm9ybWF0ID0gZ2V0Q2FsZW5kYXJGb3JtYXQ7XG4gICAgaG9va3MucHJvdG90eXBlID0gcHJvdG87XG5cbiAgICAvLyBjdXJyZW50bHkgSFRNTDUgaW5wdXQgdHlwZSBvbmx5IHN1cHBvcnRzIDI0LWhvdXIgZm9ybWF0c1xuICAgIGhvb2tzLkhUTUw1X0ZNVCA9IHtcbiAgICAgICAgREFURVRJTUVfTE9DQUw6ICdZWVlZLU1NLUREVEhIOm1tJywgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIC8+XG4gICAgICAgIERBVEVUSU1FX0xPQ0FMX1NFQ09ORFM6ICdZWVlZLU1NLUREVEhIOm1tOnNzJywgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIHN0ZXA9XCIxXCIgLz5cbiAgICAgICAgREFURVRJTUVfTE9DQUxfTVM6ICdZWVlZLU1NLUREVEhIOm1tOnNzLlNTUycsIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBzdGVwPVwiMC4wMDFcIiAvPlxuICAgICAgICBEQVRFOiAnWVlZWS1NTS1ERCcsIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIC8+XG4gICAgICAgIFRJTUU6ICdISDptbScsIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIC8+XG4gICAgICAgIFRJTUVfU0VDT05EUzogJ0hIOm1tOnNzJywgLy8gPGlucHV0IHR5cGU9XCJ0aW1lXCIgc3RlcD1cIjFcIiAvPlxuICAgICAgICBUSU1FX01TOiAnSEg6bW06c3MuU1NTJywgLy8gPGlucHV0IHR5cGU9XCJ0aW1lXCIgc3RlcD1cIjAuMDAxXCIgLz5cbiAgICAgICAgV0VFSzogJ0dHR0ctW1ddV1cnLCAvLyA8aW5wdXQgdHlwZT1cIndlZWtcIiAvPlxuICAgICAgICBNT05USDogJ1lZWVktTU0nLCAvLyA8aW5wdXQgdHlwZT1cIm1vbnRoXCIgLz5cbiAgICB9O1xuXG4gICAgcmV0dXJuIGhvb2tzO1xuXG59KSkpO1xuIiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDtcblxucHJvY2Vzcy5saXN0ZW5lcnMgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gW10gfVxuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsIi8qIVxuICogU2VsZWN0MiA0LjEuMC1yYy4wXG4gKiBodHRwczovL3NlbGVjdDIuZ2l0aHViLmlvXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2VsZWN0Mi9zZWxlY3QyL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWRcbiAqL1xuOyhmdW5jdGlvbiAoZmFjdG9yeSkge1xuICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgLy8gQU1ELiBSZWdpc3RlciBhcyBhbiBhbm9ueW1vdXMgbW9kdWxlLlxuICAgIGRlZmluZShbJ2pxdWVyeSddLCBmYWN0b3J5KTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JyAmJiBtb2R1bGUuZXhwb3J0cykge1xuICAgIC8vIE5vZGUvQ29tbW9uSlNcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChyb290LCBqUXVlcnkpIHtcbiAgICAgIGlmIChqUXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyByZXF1aXJlKCdqUXVlcnknKSByZXR1cm5zIGEgZmFjdG9yeSB0aGF0IHJlcXVpcmVzIHdpbmRvdyB0b1xuICAgICAgICAvLyBidWlsZCBhIGpRdWVyeSBpbnN0YW5jZSwgd2Ugbm9ybWFsaXplIGhvdyB3ZSB1c2UgbW9kdWxlc1xuICAgICAgICAvLyB0aGF0IHJlcXVpcmUgdGhpcyBwYXR0ZXJuIGJ1dCB0aGUgd2luZG93IHByb3ZpZGVkIGlzIGEgbm9vcFxuICAgICAgICAvLyBpZiBpdCdzIGRlZmluZWQgKGhvdyBqcXVlcnkgd29ya3MpXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGpRdWVyeSA9IHJlcXVpcmUoJ2pxdWVyeScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGpRdWVyeSA9IHJlcXVpcmUoJ2pxdWVyeScpKHJvb3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmYWN0b3J5KGpRdWVyeSk7XG4gICAgICByZXR1cm4galF1ZXJ5O1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gQnJvd3NlciBnbG9iYWxzXG4gICAgZmFjdG9yeShqUXVlcnkpO1xuICB9XG59IChmdW5jdGlvbiAoalF1ZXJ5KSB7XG4gIC8vIFRoaXMgaXMgbmVlZGVkIHNvIHdlIGNhbiBjYXRjaCB0aGUgQU1EIGxvYWRlciBjb25maWd1cmF0aW9uIGFuZCB1c2UgaXRcbiAgLy8gVGhlIGlubmVyIGZpbGUgc2hvdWxkIGJlIHdyYXBwZWQgKGJ5IGBiYW5uZXIuc3RhcnQuanNgKSBpbiBhIGZ1bmN0aW9uIHRoYXRcbiAgLy8gcmV0dXJucyB0aGUgQU1EIGxvYWRlciByZWZlcmVuY2VzLlxuICB2YXIgUzIgPShmdW5jdGlvbiAoKSB7XG4gIC8vIFJlc3RvcmUgdGhlIFNlbGVjdDIgQU1EIGxvYWRlciBzbyBpdCBjYW4gYmUgdXNlZFxuICAvLyBOZWVkZWQgbW9zdGx5IGluIHRoZSBsYW5ndWFnZSBmaWxlcywgd2hlcmUgdGhlIGxvYWRlciBpcyBub3QgaW5zZXJ0ZWRcbiAgaWYgKGpRdWVyeSAmJiBqUXVlcnkuZm4gJiYgalF1ZXJ5LmZuLnNlbGVjdDIgJiYgalF1ZXJ5LmZuLnNlbGVjdDIuYW1kKSB7XG4gICAgdmFyIFMyID0galF1ZXJ5LmZuLnNlbGVjdDIuYW1kO1xuICB9XG52YXIgUzI7KGZ1bmN0aW9uICgpIHsgaWYgKCFTMiB8fCAhUzIucmVxdWlyZWpzKSB7XG5pZiAoIVMyKSB7IFMyID0ge307IH0gZWxzZSB7IHJlcXVpcmUgPSBTMjsgfVxuLyoqXG4gKiBAbGljZW5zZSBhbG1vbmQgMC4zLjMgQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMuXG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSwgaHR0cDovL2dpdGh1Yi5jb20vcmVxdWlyZWpzL2FsbW9uZC9MSUNFTlNFXG4gKi9cbi8vR29pbmcgc2xvcHB5IHRvIGF2b2lkICd1c2Ugc3RyaWN0JyBzdHJpbmcgY29zdCwgYnV0IHN0cmljdCBwcmFjdGljZXMgc2hvdWxkXG4vL2JlIGZvbGxvd2VkLlxuLypnbG9iYWwgc2V0VGltZW91dDogZmFsc2UgKi9cblxudmFyIHJlcXVpcmVqcywgcmVxdWlyZSwgZGVmaW5lO1xuKGZ1bmN0aW9uICh1bmRlZikge1xuICAgIHZhciBtYWluLCByZXEsIG1ha2VNYXAsIGhhbmRsZXJzLFxuICAgICAgICBkZWZpbmVkID0ge30sXG4gICAgICAgIHdhaXRpbmcgPSB7fSxcbiAgICAgICAgY29uZmlnID0ge30sXG4gICAgICAgIGRlZmluaW5nID0ge30sXG4gICAgICAgIGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXG4gICAgICAgIGFwcyA9IFtdLnNsaWNlLFxuICAgICAgICBqc1N1ZmZpeFJlZ0V4cCA9IC9cXC5qcyQvO1xuXG4gICAgZnVuY3Rpb24gaGFzUHJvcChvYmosIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIGhhc093bi5jYWxsKG9iaiwgcHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSByZWxhdGl2ZSBtb2R1bGUgbmFtZSwgbGlrZSAuL3NvbWV0aGluZywgbm9ybWFsaXplIGl0IHRvXG4gICAgICogYSByZWFsIG5hbWUgdGhhdCBjYW4gYmUgbWFwcGVkIHRvIGEgcGF0aC5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSB0aGUgcmVsYXRpdmUgbmFtZVxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBiYXNlTmFtZSBhIHJlYWwgbmFtZSB0aGF0IHRoZSBuYW1lIGFyZyBpcyByZWxhdGl2ZVxuICAgICAqIHRvLlxuICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IG5vcm1hbGl6ZWQgbmFtZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShuYW1lLCBiYXNlTmFtZSkge1xuICAgICAgICB2YXIgbmFtZVBhcnRzLCBuYW1lU2VnbWVudCwgbWFwVmFsdWUsIGZvdW5kTWFwLCBsYXN0SW5kZXgsXG4gICAgICAgICAgICBmb3VuZEksIGZvdW5kU3Rhck1hcCwgc3RhckksIGksIGosIHBhcnQsIG5vcm1hbGl6ZWRCYXNlUGFydHMsXG4gICAgICAgICAgICBiYXNlUGFydHMgPSBiYXNlTmFtZSAmJiBiYXNlTmFtZS5zcGxpdChcIi9cIiksXG4gICAgICAgICAgICBtYXAgPSBjb25maWcubWFwLFxuICAgICAgICAgICAgc3Rhck1hcCA9IChtYXAgJiYgbWFwWycqJ10pIHx8IHt9O1xuXG4gICAgICAgIC8vQWRqdXN0IGFueSByZWxhdGl2ZSBwYXRocy5cbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICBsYXN0SW5kZXggPSBuYW1lLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgICAgIC8vIElmIHdhbnRpbmcgbm9kZSBJRCBjb21wYXRpYmlsaXR5LCBzdHJpcCAuanMgZnJvbSBlbmRcbiAgICAgICAgICAgIC8vIG9mIElEcy4gSGF2ZSB0byBkbyB0aGlzIGhlcmUsIGFuZCBub3QgaW4gbmFtZVRvVXJsXG4gICAgICAgICAgICAvLyBiZWNhdXNlIG5vZGUgYWxsb3dzIGVpdGhlciAuanMgb3Igbm9uIC5qcyB0byBtYXBcbiAgICAgICAgICAgIC8vIHRvIHNhbWUgZmlsZS5cbiAgICAgICAgICAgIGlmIChjb25maWcubm9kZUlkQ29tcGF0ICYmIGpzU3VmZml4UmVnRXhwLnRlc3QobmFtZVtsYXN0SW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIG5hbWVbbGFzdEluZGV4XSA9IG5hbWVbbGFzdEluZGV4XS5yZXBsYWNlKGpzU3VmZml4UmVnRXhwLCAnJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFN0YXJ0cyB3aXRoIGEgJy4nIHNvIG5lZWQgdGhlIGJhc2VOYW1lXG4gICAgICAgICAgICBpZiAobmFtZVswXS5jaGFyQXQoMCkgPT09ICcuJyAmJiBiYXNlUGFydHMpIHtcbiAgICAgICAgICAgICAgICAvL0NvbnZlcnQgYmFzZU5hbWUgdG8gYXJyYXksIGFuZCBsb3Agb2ZmIHRoZSBsYXN0IHBhcnQsXG4gICAgICAgICAgICAgICAgLy9zbyB0aGF0IC4gbWF0Y2hlcyB0aGF0ICdkaXJlY3RvcnknIGFuZCBub3QgbmFtZSBvZiB0aGUgYmFzZU5hbWUnc1xuICAgICAgICAgICAgICAgIC8vbW9kdWxlLiBGb3IgaW5zdGFuY2UsIGJhc2VOYW1lIG9mICdvbmUvdHdvL3RocmVlJywgbWFwcyB0b1xuICAgICAgICAgICAgICAgIC8vJ29uZS90d28vdGhyZWUuanMnLCBidXQgd2Ugd2FudCB0aGUgZGlyZWN0b3J5LCAnb25lL3R3bycgZm9yXG4gICAgICAgICAgICAgICAgLy90aGlzIG5vcm1hbGl6YXRpb24uXG4gICAgICAgICAgICAgICAgbm9ybWFsaXplZEJhc2VQYXJ0cyA9IGJhc2VQYXJ0cy5zbGljZSgwLCBiYXNlUGFydHMubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgbmFtZSA9IG5vcm1hbGl6ZWRCYXNlUGFydHMuY29uY2F0KG5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvL3N0YXJ0IHRyaW1Eb3RzXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHBhcnQgPSBuYW1lW2ldO1xuICAgICAgICAgICAgICAgIGlmIChwYXJ0ID09PSAnLicpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGkgLT0gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcnQgPT09ICcuLicpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgYXQgdGhlIHN0YXJ0LCBvciBwcmV2aW91cyB2YWx1ZSBpcyBzdGlsbCAuLixcbiAgICAgICAgICAgICAgICAgICAgLy8ga2VlcCB0aGVtIHNvIHRoYXQgd2hlbiBjb252ZXJ0ZWQgdG8gYSBwYXRoIGl0IG1heVxuICAgICAgICAgICAgICAgICAgICAvLyBzdGlsbCB3b3JrIHdoZW4gY29udmVydGVkIHRvIGEgcGF0aCwgZXZlbiB0aG91Z2hcbiAgICAgICAgICAgICAgICAgICAgLy8gYXMgYW4gSUQgaXQgaXMgbGVzcyB0aGFuIGlkZWFsLiBJbiBsYXJnZXIgcG9pbnRcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVsZWFzZXMsIG1heSBiZSBiZXR0ZXIgdG8ganVzdCBraWNrIG91dCBhbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDAgfHwgKGkgPT09IDEgJiYgbmFtZVsyXSA9PT0gJy4uJykgfHwgbmFtZVtpIC0gMV0gPT09ICcuLicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lLnNwbGljZShpIC0gMSwgMik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpIC09IDI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL2VuZCB0cmltRG90c1xuXG4gICAgICAgICAgICBuYW1lID0gbmFtZS5qb2luKCcvJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvL0FwcGx5IG1hcCBjb25maWcgaWYgYXZhaWxhYmxlLlxuICAgICAgICBpZiAoKGJhc2VQYXJ0cyB8fCBzdGFyTWFwKSAmJiBtYXApIHtcbiAgICAgICAgICAgIG5hbWVQYXJ0cyA9IG5hbWUuc3BsaXQoJy8nKTtcblxuICAgICAgICAgICAgZm9yIChpID0gbmFtZVBhcnRzLmxlbmd0aDsgaSA+IDA7IGkgLT0gMSkge1xuICAgICAgICAgICAgICAgIG5hbWVTZWdtZW50ID0gbmFtZVBhcnRzLnNsaWNlKDAsIGkpLmpvaW4oXCIvXCIpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGJhc2VQYXJ0cykge1xuICAgICAgICAgICAgICAgICAgICAvL0ZpbmQgdGhlIGxvbmdlc3QgYmFzZU5hbWUgc2VnbWVudCBtYXRjaCBpbiB0aGUgY29uZmlnLlxuICAgICAgICAgICAgICAgICAgICAvL1NvLCBkbyBqb2lucyBvbiB0aGUgYmlnZ2VzdCB0byBzbWFsbGVzdCBsZW5ndGhzIG9mIGJhc2VQYXJ0cy5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gYmFzZVBhcnRzLmxlbmd0aDsgaiA+IDA7IGogLT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFwVmFsdWUgPSBtYXBbYmFzZVBhcnRzLnNsaWNlKDAsIGopLmpvaW4oJy8nKV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vYmFzZU5hbWUgc2VnbWVudCBoYXMgIGNvbmZpZywgZmluZCBpZiBpdCBoYXMgb25lIGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIG5hbWUuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBWYWx1ZSA9IG1hcFZhbHVlW25hbWVTZWdtZW50XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9NYXRjaCwgdXBkYXRlIG5hbWUgdG8gdGhlIG5ldyB2YWx1ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRNYXAgPSBtYXBWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRJID0gaTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vQ2hlY2sgZm9yIGEgc3RhciBtYXAgbWF0Y2gsIGJ1dCBqdXN0IGhvbGQgb24gdG8gaXQsXG4gICAgICAgICAgICAgICAgLy9pZiB0aGVyZSBpcyBhIHNob3J0ZXIgc2VnbWVudCBtYXRjaCBsYXRlciBpbiBhIG1hdGNoaW5nXG4gICAgICAgICAgICAgICAgLy9jb25maWcsIHRoZW4gZmF2b3Igb3ZlciB0aGlzIHN0YXIgbWFwLlxuICAgICAgICAgICAgICAgIGlmICghZm91bmRTdGFyTWFwICYmIHN0YXJNYXAgJiYgc3Rhck1hcFtuYW1lU2VnbWVudF0pIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmRTdGFyTWFwID0gc3Rhck1hcFtuYW1lU2VnbWVudF07XG4gICAgICAgICAgICAgICAgICAgIHN0YXJJID0gaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZm91bmRNYXAgJiYgZm91bmRTdGFyTWFwKSB7XG4gICAgICAgICAgICAgICAgZm91bmRNYXAgPSBmb3VuZFN0YXJNYXA7XG4gICAgICAgICAgICAgICAgZm91bmRJID0gc3Rhckk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3VuZE1hcCkge1xuICAgICAgICAgICAgICAgIG5hbWVQYXJ0cy5zcGxpY2UoMCwgZm91bmRJLCBmb3VuZE1hcCk7XG4gICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVQYXJ0cy5qb2luKCcvJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmFtZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlUmVxdWlyZShyZWxOYW1lLCBmb3JjZVN5bmMpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vQSB2ZXJzaW9uIG9mIGEgcmVxdWlyZSBmdW5jdGlvbiB0aGF0IHBhc3NlcyBhIG1vZHVsZU5hbWVcbiAgICAgICAgICAgIC8vdmFsdWUgZm9yIGl0ZW1zIHRoYXQgbWF5IG5lZWQgdG9cbiAgICAgICAgICAgIC8vbG9vayB1cCBwYXRocyByZWxhdGl2ZSB0byB0aGUgbW9kdWxlTmFtZVxuICAgICAgICAgICAgdmFyIGFyZ3MgPSBhcHMuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gICAgICAgICAgICAvL0lmIGZpcnN0IGFyZyBpcyBub3QgcmVxdWlyZSgnc3RyaW5nJyksIGFuZCB0aGVyZSBpcyBvbmx5XG4gICAgICAgICAgICAvL29uZSBhcmcsIGl0IGlzIHRoZSBhcnJheSBmb3JtIHdpdGhvdXQgYSBjYWxsYmFjay4gSW5zZXJ0XG4gICAgICAgICAgICAvL2EgbnVsbCBzbyB0aGF0IHRoZSBmb2xsb3dpbmcgY29uY2F0IGlzIGNvcnJlY3QuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gIT09ICdzdHJpbmcnICYmIGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgYXJncy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcS5hcHBseSh1bmRlZiwgYXJncy5jb25jYXQoW3JlbE5hbWUsIGZvcmNlU3luY10pKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlTm9ybWFsaXplKHJlbE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplKG5hbWUsIHJlbE5hbWUpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VMb2FkKGRlcE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgZGVmaW5lZFtkZXBOYW1lXSA9IHZhbHVlO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNhbGxEZXAobmFtZSkge1xuICAgICAgICBpZiAoaGFzUHJvcCh3YWl0aW5nLCBuYW1lKSkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSB3YWl0aW5nW25hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHdhaXRpbmdbbmFtZV07XG4gICAgICAgICAgICBkZWZpbmluZ1tuYW1lXSA9IHRydWU7XG4gICAgICAgICAgICBtYWluLmFwcGx5KHVuZGVmLCBhcmdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaGFzUHJvcChkZWZpbmVkLCBuYW1lKSAmJiAhaGFzUHJvcChkZWZpbmluZywgbmFtZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gJyArIG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZpbmVkW25hbWVdO1xuICAgIH1cblxuICAgIC8vVHVybnMgYSBwbHVnaW4hcmVzb3VyY2UgdG8gW3BsdWdpbiwgcmVzb3VyY2VdXG4gICAgLy93aXRoIHRoZSBwbHVnaW4gYmVpbmcgdW5kZWZpbmVkIGlmIHRoZSBuYW1lXG4gICAgLy9kaWQgbm90IGhhdmUgYSBwbHVnaW4gcHJlZml4LlxuICAgIGZ1bmN0aW9uIHNwbGl0UHJlZml4KG5hbWUpIHtcbiAgICAgICAgdmFyIHByZWZpeCxcbiAgICAgICAgICAgIGluZGV4ID0gbmFtZSA/IG5hbWUuaW5kZXhPZignIScpIDogLTE7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBpbmRleCk7XG4gICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoaW5kZXggKyAxLCBuYW1lLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtwcmVmaXgsIG5hbWVdO1xuICAgIH1cblxuICAgIC8vQ3JlYXRlcyBhIHBhcnRzIGFycmF5IGZvciBhIHJlbE5hbWUgd2hlcmUgZmlyc3QgcGFydCBpcyBwbHVnaW4gSUQsXG4gICAgLy9zZWNvbmQgcGFydCBpcyByZXNvdXJjZSBJRC4gQXNzdW1lcyByZWxOYW1lIGhhcyBhbHJlYWR5IGJlZW4gbm9ybWFsaXplZC5cbiAgICBmdW5jdGlvbiBtYWtlUmVsUGFydHMocmVsTmFtZSkge1xuICAgICAgICByZXR1cm4gcmVsTmFtZSA/IHNwbGl0UHJlZml4KHJlbE5hbWUpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFrZXMgYSBuYW1lIG1hcCwgbm9ybWFsaXppbmcgdGhlIG5hbWUsIGFuZCB1c2luZyBhIHBsdWdpblxuICAgICAqIGZvciBub3JtYWxpemF0aW9uIGlmIG5lY2Vzc2FyeS4gR3JhYnMgYSByZWYgdG8gcGx1Z2luXG4gICAgICogdG9vLCBhcyBhbiBvcHRpbWl6YXRpb24uXG4gICAgICovXG4gICAgbWFrZU1hcCA9IGZ1bmN0aW9uIChuYW1lLCByZWxQYXJ0cykge1xuICAgICAgICB2YXIgcGx1Z2luLFxuICAgICAgICAgICAgcGFydHMgPSBzcGxpdFByZWZpeChuYW1lKSxcbiAgICAgICAgICAgIHByZWZpeCA9IHBhcnRzWzBdLFxuICAgICAgICAgICAgcmVsUmVzb3VyY2VOYW1lID0gcmVsUGFydHNbMV07XG5cbiAgICAgICAgbmFtZSA9IHBhcnRzWzFdO1xuXG4gICAgICAgIGlmIChwcmVmaXgpIHtcbiAgICAgICAgICAgIHByZWZpeCA9IG5vcm1hbGl6ZShwcmVmaXgsIHJlbFJlc291cmNlTmFtZSk7XG4gICAgICAgICAgICBwbHVnaW4gPSBjYWxsRGVwKHByZWZpeCk7XG4gICAgICAgIH1cblxuICAgICAgICAvL05vcm1hbGl6ZSBhY2NvcmRpbmdcbiAgICAgICAgaWYgKHByZWZpeCkge1xuICAgICAgICAgICAgaWYgKHBsdWdpbiAmJiBwbHVnaW4ubm9ybWFsaXplKSB7XG4gICAgICAgICAgICAgICAgbmFtZSA9IHBsdWdpbi5ub3JtYWxpemUobmFtZSwgbWFrZU5vcm1hbGl6ZShyZWxSZXNvdXJjZU5hbWUpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmFtZSA9IG5vcm1hbGl6ZShuYW1lLCByZWxSZXNvdXJjZU5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmFtZSA9IG5vcm1hbGl6ZShuYW1lLCByZWxSZXNvdXJjZU5hbWUpO1xuICAgICAgICAgICAgcGFydHMgPSBzcGxpdFByZWZpeChuYW1lKTtcbiAgICAgICAgICAgIHByZWZpeCA9IHBhcnRzWzBdO1xuICAgICAgICAgICAgbmFtZSA9IHBhcnRzWzFdO1xuICAgICAgICAgICAgaWYgKHByZWZpeCkge1xuICAgICAgICAgICAgICAgIHBsdWdpbiA9IGNhbGxEZXAocHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vVXNpbmcgcmlkaWN1bG91cyBwcm9wZXJ0eSBuYW1lcyBmb3Igc3BhY2UgcmVhc29uc1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZjogcHJlZml4ID8gcHJlZml4ICsgJyEnICsgbmFtZSA6IG5hbWUsIC8vZnVsbE5hbWVcbiAgICAgICAgICAgIG46IG5hbWUsXG4gICAgICAgICAgICBwcjogcHJlZml4LFxuICAgICAgICAgICAgcDogcGx1Z2luXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1ha2VDb25maWcobmFtZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIChjb25maWcgJiYgY29uZmlnLmNvbmZpZyAmJiBjb25maWcuY29uZmlnW25hbWVdKSB8fCB7fTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBoYW5kbGVycyA9IHtcbiAgICAgICAgcmVxdWlyZTogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBtYWtlUmVxdWlyZShuYW1lKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXhwb3J0czogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHZhciBlID0gZGVmaW5lZFtuYW1lXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChkZWZpbmVkW25hbWVdID0ge30pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb2R1bGU6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlkOiBuYW1lLFxuICAgICAgICAgICAgICAgIHVyaTogJycsXG4gICAgICAgICAgICAgICAgZXhwb3J0czogZGVmaW5lZFtuYW1lXSxcbiAgICAgICAgICAgICAgICBjb25maWc6IG1ha2VDb25maWcobmFtZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgbWFpbiA9IGZ1bmN0aW9uIChuYW1lLCBkZXBzLCBjYWxsYmFjaywgcmVsTmFtZSkge1xuICAgICAgICB2YXIgY2pzTW9kdWxlLCBkZXBOYW1lLCByZXQsIG1hcCwgaSwgcmVsUGFydHMsXG4gICAgICAgICAgICBhcmdzID0gW10sXG4gICAgICAgICAgICBjYWxsYmFja1R5cGUgPSB0eXBlb2YgY2FsbGJhY2ssXG4gICAgICAgICAgICB1c2luZ0V4cG9ydHM7XG5cbiAgICAgICAgLy9Vc2UgbmFtZSBpZiBubyByZWxOYW1lXG4gICAgICAgIHJlbE5hbWUgPSByZWxOYW1lIHx8IG5hbWU7XG4gICAgICAgIHJlbFBhcnRzID0gbWFrZVJlbFBhcnRzKHJlbE5hbWUpO1xuXG4gICAgICAgIC8vQ2FsbCB0aGUgY2FsbGJhY2sgdG8gZGVmaW5lIHRoZSBtb2R1bGUsIGlmIG5lY2Vzc2FyeS5cbiAgICAgICAgaWYgKGNhbGxiYWNrVHlwZSA9PT0gJ3VuZGVmaW5lZCcgfHwgY2FsbGJhY2tUeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvL1B1bGwgb3V0IHRoZSBkZWZpbmVkIGRlcGVuZGVuY2llcyBhbmQgcGFzcyB0aGUgb3JkZXJlZFxuICAgICAgICAgICAgLy92YWx1ZXMgdG8gdGhlIGNhbGxiYWNrLlxuICAgICAgICAgICAgLy9EZWZhdWx0IHRvIFtyZXF1aXJlLCBleHBvcnRzLCBtb2R1bGVdIGlmIG5vIGRlcHNcbiAgICAgICAgICAgIGRlcHMgPSAhZGVwcy5sZW5ndGggJiYgY2FsbGJhY2subGVuZ3RoID8gWydyZXF1aXJlJywgJ2V4cG9ydHMnLCAnbW9kdWxlJ10gOiBkZXBzO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGRlcHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgICBtYXAgPSBtYWtlTWFwKGRlcHNbaV0sIHJlbFBhcnRzKTtcbiAgICAgICAgICAgICAgICBkZXBOYW1lID0gbWFwLmY7XG5cbiAgICAgICAgICAgICAgICAvL0Zhc3QgcGF0aCBDb21tb25KUyBzdGFuZGFyZCBkZXBlbmRlbmNpZXMuXG4gICAgICAgICAgICAgICAgaWYgKGRlcE5hbWUgPT09IFwicmVxdWlyZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbaV0gPSBoYW5kbGVycy5yZXF1aXJlKG5hbWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVwTmFtZSA9PT0gXCJleHBvcnRzXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9Db21tb25KUyBtb2R1bGUgc3BlYyAxLjFcbiAgICAgICAgICAgICAgICAgICAgYXJnc1tpXSA9IGhhbmRsZXJzLmV4cG9ydHMobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHVzaW5nRXhwb3J0cyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkZXBOYW1lID09PSBcIm1vZHVsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vQ29tbW9uSlMgbW9kdWxlIHNwZWMgMS4xXG4gICAgICAgICAgICAgICAgICAgIGNqc01vZHVsZSA9IGFyZ3NbaV0gPSBoYW5kbGVycy5tb2R1bGUobmFtZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNQcm9wKGRlZmluZWQsIGRlcE5hbWUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNQcm9wKHdhaXRpbmcsIGRlcE5hbWUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNQcm9wKGRlZmluaW5nLCBkZXBOYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBhcmdzW2ldID0gY2FsbERlcChkZXBOYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1hcC5wKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcC5wLmxvYWQobWFwLm4sIG1ha2VSZXF1aXJlKHJlbE5hbWUsIHRydWUpLCBtYWtlTG9hZChkZXBOYW1lKSwge30pO1xuICAgICAgICAgICAgICAgICAgICBhcmdzW2ldID0gZGVmaW5lZFtkZXBOYW1lXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobmFtZSArICcgbWlzc2luZyAnICsgZGVwTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXQgPSBjYWxsYmFjayA/IGNhbGxiYWNrLmFwcGx5KGRlZmluZWRbbmFtZV0sIGFyZ3MpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgICAgIC8vSWYgc2V0dGluZyBleHBvcnRzIHZpYSBcIm1vZHVsZVwiIGlzIGluIHBsYXksXG4gICAgICAgICAgICAgICAgLy9mYXZvciB0aGF0IG92ZXIgcmV0dXJuIHZhbHVlIGFuZCBleHBvcnRzLiBBZnRlciB0aGF0LFxuICAgICAgICAgICAgICAgIC8vZmF2b3IgYSBub24tdW5kZWZpbmVkIHJldHVybiB2YWx1ZSBvdmVyIGV4cG9ydHMgdXNlLlxuICAgICAgICAgICAgICAgIGlmIChjanNNb2R1bGUgJiYgY2pzTW9kdWxlLmV4cG9ydHMgIT09IHVuZGVmICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjanNNb2R1bGUuZXhwb3J0cyAhPT0gZGVmaW5lZFtuYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICBkZWZpbmVkW25hbWVdID0gY2pzTW9kdWxlLmV4cG9ydHM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXQgIT09IHVuZGVmIHx8ICF1c2luZ0V4cG9ydHMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9Vc2UgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgZGVmaW5lZFtuYW1lXSA9IHJldDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobmFtZSkge1xuICAgICAgICAgICAgLy9NYXkganVzdCBiZSBhbiBvYmplY3QgZGVmaW5pdGlvbiBmb3IgdGhlIG1vZHVsZS4gT25seVxuICAgICAgICAgICAgLy93b3JyeSBhYm91dCBkZWZpbmluZyBpZiBoYXZlIGEgbW9kdWxlIG5hbWUuXG4gICAgICAgICAgICBkZWZpbmVkW25hbWVdID0gY2FsbGJhY2s7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVxdWlyZWpzID0gcmVxdWlyZSA9IHJlcSA9IGZ1bmN0aW9uIChkZXBzLCBjYWxsYmFjaywgcmVsTmFtZSwgZm9yY2VTeW5jLCBhbHQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkZXBzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZiAoaGFuZGxlcnNbZGVwc10pIHtcbiAgICAgICAgICAgICAgICAvL2NhbGxiYWNrIGluIHRoaXMgY2FzZSBpcyByZWFsbHkgcmVsTmFtZVxuICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVyc1tkZXBzXShjYWxsYmFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL0p1c3QgcmV0dXJuIHRoZSBtb2R1bGUgd2FudGVkLiBJbiB0aGlzIHNjZW5hcmlvLCB0aGVcbiAgICAgICAgICAgIC8vZGVwcyBhcmcgaXMgdGhlIG1vZHVsZSBuYW1lLCBhbmQgc2Vjb25kIGFyZyAoaWYgcGFzc2VkKVxuICAgICAgICAgICAgLy9pcyBqdXN0IHRoZSByZWxOYW1lLlxuICAgICAgICAgICAgLy9Ob3JtYWxpemUgbW9kdWxlIG5hbWUsIGlmIGl0IGNvbnRhaW5zIC4gb3IgLi5cbiAgICAgICAgICAgIHJldHVybiBjYWxsRGVwKG1ha2VNYXAoZGVwcywgbWFrZVJlbFBhcnRzKGNhbGxiYWNrKSkuZik7XG4gICAgICAgIH0gZWxzZSBpZiAoIWRlcHMuc3BsaWNlKSB7XG4gICAgICAgICAgICAvL2RlcHMgaXMgYSBjb25maWcgb2JqZWN0LCBub3QgYW4gYXJyYXkuXG4gICAgICAgICAgICBjb25maWcgPSBkZXBzO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5kZXBzKSB7XG4gICAgICAgICAgICAgICAgcmVxKGNvbmZpZy5kZXBzLCBjb25maWcuY2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNhbGxiYWNrLnNwbGljZSkge1xuICAgICAgICAgICAgICAgIC8vY2FsbGJhY2sgaXMgYW4gYXJyYXksIHdoaWNoIG1lYW5zIGl0IGlzIGEgZGVwZW5kZW5jeSBsaXN0LlxuICAgICAgICAgICAgICAgIC8vQWRqdXN0IGFyZ3MgaWYgdGhlcmUgYXJlIGRlcGVuZGVuY2llc1xuICAgICAgICAgICAgICAgIGRlcHMgPSBjYWxsYmFjaztcbiAgICAgICAgICAgICAgICBjYWxsYmFjayA9IHJlbE5hbWU7XG4gICAgICAgICAgICAgICAgcmVsTmFtZSA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlcHMgPSB1bmRlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vU3VwcG9ydCByZXF1aXJlKFsnYSddKVxuICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgICAgIC8vSWYgcmVsTmFtZSBpcyBhIGZ1bmN0aW9uLCBpdCBpcyBhbiBlcnJiYWNrIGhhbmRsZXIsXG4gICAgICAgIC8vc28gcmVtb3ZlIGl0LlxuICAgICAgICBpZiAodHlwZW9mIHJlbE5hbWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJlbE5hbWUgPSBmb3JjZVN5bmM7XG4gICAgICAgICAgICBmb3JjZVN5bmMgPSBhbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvL1NpbXVsYXRlIGFzeW5jIGNhbGxiYWNrO1xuICAgICAgICBpZiAoZm9yY2VTeW5jKSB7XG4gICAgICAgICAgICBtYWluKHVuZGVmLCBkZXBzLCBjYWxsYmFjaywgcmVsTmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvL1VzaW5nIGEgbm9uLXplcm8gdmFsdWUgYmVjYXVzZSBvZiBjb25jZXJuIGZvciB3aGF0IG9sZCBicm93c2Vyc1xuICAgICAgICAgICAgLy9kbywgYW5kIGxhdGVzdCBicm93c2VycyBcInVwZ3JhZGVcIiB0byA0IGlmIGxvd2VyIHZhbHVlIGlzIHVzZWQ6XG4gICAgICAgICAgICAvL2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RpbWVycy5odG1sI2RvbS13aW5kb3d0aW1lcnMtc2V0dGltZW91dDpcbiAgICAgICAgICAgIC8vSWYgd2FudCBhIHZhbHVlIGltbWVkaWF0ZWx5LCB1c2UgcmVxdWlyZSgnaWQnKSBpbnN0ZWFkIC0tIHNvbWV0aGluZ1xuICAgICAgICAgICAgLy90aGF0IHdvcmtzIGluIGFsbW9uZCBvbiB0aGUgZ2xvYmFsIGxldmVsLCBidXQgbm90IGd1YXJhbnRlZWQgYW5kXG4gICAgICAgICAgICAvL3VubGlrZWx5IHRvIHdvcmsgaW4gb3RoZXIgQU1EIGltcGxlbWVudGF0aW9ucy5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIG1haW4odW5kZWYsIGRlcHMsIGNhbGxiYWNrLCByZWxOYW1lKTtcbiAgICAgICAgICAgIH0sIDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSnVzdCBkcm9wcyB0aGUgY29uZmlnIG9uIHRoZSBmbG9vciwgYnV0IHJldHVybnMgcmVxIGluIGNhc2VcbiAgICAgKiB0aGUgY29uZmlnIHJldHVybiB2YWx1ZSBpcyB1c2VkLlxuICAgICAqL1xuICAgIHJlcS5jb25maWcgPSBmdW5jdGlvbiAoY2ZnKSB7XG4gICAgICAgIHJldHVybiByZXEoY2ZnKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRXhwb3NlIG1vZHVsZSByZWdpc3RyeSBmb3IgZGVidWdnaW5nIGFuZCB0b29saW5nXG4gICAgICovXG4gICAgcmVxdWlyZWpzLl9kZWZpbmVkID0gZGVmaW5lZDtcblxuICAgIGRlZmluZSA9IGZ1bmN0aW9uIChuYW1lLCBkZXBzLCBjYWxsYmFjaykge1xuICAgICAgICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlZSBhbG1vbmQgUkVBRE1FOiBpbmNvcnJlY3QgbW9kdWxlIGJ1aWxkLCBubyBtb2R1bGUgbmFtZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9UaGlzIG1vZHVsZSBtYXkgbm90IGhhdmUgZGVwZW5kZW5jaWVzXG4gICAgICAgIGlmICghZGVwcy5zcGxpY2UpIHtcbiAgICAgICAgICAgIC8vZGVwcyBpcyBub3QgYW4gYXJyYXksIHNvIHByb2JhYmx5IG1lYW5zXG4gICAgICAgICAgICAvL2FuIG9iamVjdCBsaXRlcmFsIG9yIGZhY3RvcnkgZnVuY3Rpb24gZm9yXG4gICAgICAgICAgICAvL3RoZSB2YWx1ZS4gQWRqdXN0IGFyZ3MuXG4gICAgICAgICAgICBjYWxsYmFjayA9IGRlcHM7XG4gICAgICAgICAgICBkZXBzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhhc1Byb3AoZGVmaW5lZCwgbmFtZSkgJiYgIWhhc1Byb3Aod2FpdGluZywgbmFtZSkpIHtcbiAgICAgICAgICAgIHdhaXRpbmdbbmFtZV0gPSBbbmFtZSwgZGVwcywgY2FsbGJhY2tdO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGRlZmluZS5hbWQgPSB7XG4gICAgICAgIGpRdWVyeTogdHJ1ZVxuICAgIH07XG59KCkpO1xuXG5TMi5yZXF1aXJlanMgPSByZXF1aXJlanM7UzIucmVxdWlyZSA9IHJlcXVpcmU7UzIuZGVmaW5lID0gZGVmaW5lO1xufVxufSgpKTtcblMyLmRlZmluZShcImFsbW9uZFwiLCBmdW5jdGlvbigpe30pO1xuXG4vKiBnbG9iYWwgalF1ZXJ5OmZhbHNlLCAkOmZhbHNlICovXG5TMi5kZWZpbmUoJ2pxdWVyeScsW10sZnVuY3Rpb24gKCkge1xuICB2YXIgXyQgPSBqUXVlcnkgfHwgJDtcblxuICBpZiAoXyQgPT0gbnVsbCAmJiBjb25zb2xlICYmIGNvbnNvbGUuZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgJ1NlbGVjdDI6IEFuIGluc3RhbmNlIG9mIGpRdWVyeSBvciBhIGpRdWVyeS1jb21wYXRpYmxlIGxpYnJhcnkgd2FzIG5vdCAnICtcbiAgICAgICdmb3VuZC4gTWFrZSBzdXJlIHRoYXQgeW91IGFyZSBpbmNsdWRpbmcgalF1ZXJ5IGJlZm9yZSBTZWxlY3QyIG9uIHlvdXIgJyArXG4gICAgICAnd2ViIHBhZ2UuJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gXyQ7XG59KTtcblxuUzIuZGVmaW5lKCdzZWxlY3QyL3V0aWxzJyxbXG4gICdqcXVlcnknXG5dLCBmdW5jdGlvbiAoJCkge1xuICB2YXIgVXRpbHMgPSB7fTtcblxuICBVdGlscy5FeHRlbmQgPSBmdW5jdGlvbiAoQ2hpbGRDbGFzcywgU3VwZXJDbGFzcykge1xuICAgIHZhciBfX2hhc1Byb3AgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuICAgIGZ1bmN0aW9uIEJhc2VDb25zdHJ1Y3RvciAoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gQ2hpbGRDbGFzcztcbiAgICB9XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gU3VwZXJDbGFzcykge1xuICAgICAgaWYgKF9faGFzUHJvcC5jYWxsKFN1cGVyQ2xhc3MsIGtleSkpIHtcbiAgICAgICAgQ2hpbGRDbGFzc1trZXldID0gU3VwZXJDbGFzc1trZXldO1xuICAgICAgfVxuICAgIH1cblxuICAgIEJhc2VDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBTdXBlckNsYXNzLnByb3RvdHlwZTtcbiAgICBDaGlsZENsYXNzLnByb3RvdHlwZSA9IG5ldyBCYXNlQ29uc3RydWN0b3IoKTtcbiAgICBDaGlsZENsYXNzLl9fc3VwZXJfXyA9IFN1cGVyQ2xhc3MucHJvdG90eXBlO1xuXG4gICAgcmV0dXJuIENoaWxkQ2xhc3M7XG4gIH07XG5cbiAgZnVuY3Rpb24gZ2V0TWV0aG9kcyAodGhlQ2xhc3MpIHtcbiAgICB2YXIgcHJvdG8gPSB0aGVDbGFzcy5wcm90b3R5cGU7XG5cbiAgICB2YXIgbWV0aG9kcyA9IFtdO1xuXG4gICAgZm9yICh2YXIgbWV0aG9kTmFtZSBpbiBwcm90bykge1xuICAgICAgdmFyIG0gPSBwcm90b1ttZXRob2ROYW1lXTtcblxuICAgICAgaWYgKHR5cGVvZiBtICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbWV0aG9kcy5wdXNoKG1ldGhvZE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRob2RzO1xuICB9XG5cbiAgVXRpbHMuRGVjb3JhdGUgPSBmdW5jdGlvbiAoU3VwZXJDbGFzcywgRGVjb3JhdG9yQ2xhc3MpIHtcbiAgICB2YXIgZGVjb3JhdGVkTWV0aG9kcyA9IGdldE1ldGhvZHMoRGVjb3JhdG9yQ2xhc3MpO1xuICAgIHZhciBzdXBlck1ldGhvZHMgPSBnZXRNZXRob2RzKFN1cGVyQ2xhc3MpO1xuXG4gICAgZnVuY3Rpb24gRGVjb3JhdGVkQ2xhc3MgKCkge1xuICAgICAgdmFyIHVuc2hpZnQgPSBBcnJheS5wcm90b3R5cGUudW5zaGlmdDtcblxuICAgICAgdmFyIGFyZ0NvdW50ID0gRGVjb3JhdG9yQ2xhc3MucHJvdG90eXBlLmNvbnN0cnVjdG9yLmxlbmd0aDtcblxuICAgICAgdmFyIGNhbGxlZENvbnN0cnVjdG9yID0gU3VwZXJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3I7XG5cbiAgICAgIGlmIChhcmdDb3VudCA+IDApIHtcbiAgICAgICAgdW5zaGlmdC5jYWxsKGFyZ3VtZW50cywgU3VwZXJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IpO1xuXG4gICAgICAgIGNhbGxlZENvbnN0cnVjdG9yID0gRGVjb3JhdG9yQ2xhc3MucHJvdG90eXBlLmNvbnN0cnVjdG9yO1xuICAgICAgfVxuXG4gICAgICBjYWxsZWRDb25zdHJ1Y3Rvci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIERlY29yYXRvckNsYXNzLmRpc3BsYXlOYW1lID0gU3VwZXJDbGFzcy5kaXNwbGF5TmFtZTtcblxuICAgIGZ1bmN0aW9uIGN0ciAoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gRGVjb3JhdGVkQ2xhc3M7XG4gICAgfVxuXG4gICAgRGVjb3JhdGVkQ2xhc3MucHJvdG90eXBlID0gbmV3IGN0cigpO1xuXG4gICAgZm9yICh2YXIgbSA9IDA7IG0gPCBzdXBlck1ldGhvZHMubGVuZ3RoOyBtKyspIHtcbiAgICAgIHZhciBzdXBlck1ldGhvZCA9IHN1cGVyTWV0aG9kc1ttXTtcblxuICAgICAgRGVjb3JhdGVkQ2xhc3MucHJvdG90eXBlW3N1cGVyTWV0aG9kXSA9XG4gICAgICAgIFN1cGVyQ2xhc3MucHJvdG90eXBlW3N1cGVyTWV0aG9kXTtcbiAgICB9XG5cbiAgICB2YXIgY2FsbGVkTWV0aG9kID0gZnVuY3Rpb24gKG1ldGhvZE5hbWUpIHtcbiAgICAgIC8vIFN0dWIgb3V0IHRoZSBvcmlnaW5hbCBtZXRob2QgaWYgaXQncyBub3QgZGVjb3JhdGluZyBhbiBhY3R1YWwgbWV0aG9kXG4gICAgICB2YXIgb3JpZ2luYWxNZXRob2QgPSBmdW5jdGlvbiAoKSB7fTtcblxuICAgICAgaWYgKG1ldGhvZE5hbWUgaW4gRGVjb3JhdGVkQ2xhc3MucHJvdG90eXBlKSB7XG4gICAgICAgIG9yaWdpbmFsTWV0aG9kID0gRGVjb3JhdGVkQ2xhc3MucHJvdG90eXBlW21ldGhvZE5hbWVdO1xuICAgICAgfVxuXG4gICAgICB2YXIgZGVjb3JhdGVkTWV0aG9kID0gRGVjb3JhdG9yQ2xhc3MucHJvdG90eXBlW21ldGhvZE5hbWVdO1xuXG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdW5zaGlmdCA9IEFycmF5LnByb3RvdHlwZS51bnNoaWZ0O1xuXG4gICAgICAgIHVuc2hpZnQuY2FsbChhcmd1bWVudHMsIG9yaWdpbmFsTWV0aG9kKTtcblxuICAgICAgICByZXR1cm4gZGVjb3JhdGVkTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBmb3IgKHZhciBkID0gMDsgZCA8IGRlY29yYXRlZE1ldGhvZHMubGVuZ3RoOyBkKyspIHtcbiAgICAgIHZhciBkZWNvcmF0ZWRNZXRob2QgPSBkZWNvcmF0ZWRNZXRob2RzW2RdO1xuXG4gICAgICBEZWNvcmF0ZWRDbGFzcy5wcm90b3R5cGVbZGVjb3JhdGVkTWV0aG9kXSA9IGNhbGxlZE1ldGhvZChkZWNvcmF0ZWRNZXRob2QpO1xuICAgIH1cblxuICAgIHJldHVybiBEZWNvcmF0ZWRDbGFzcztcbiAgfTtcblxuICB2YXIgT2JzZXJ2YWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmxpc3RlbmVycyA9IHt9O1xuICB9O1xuXG4gIE9ic2VydmFibGUucHJvdG90eXBlLm9uID0gZnVuY3Rpb24gKGV2ZW50LCBjYWxsYmFjaykge1xuICAgIHRoaXMubGlzdGVuZXJzID0gdGhpcy5saXN0ZW5lcnMgfHwge307XG5cbiAgICBpZiAoZXZlbnQgaW4gdGhpcy5saXN0ZW5lcnMpIHtcbiAgICAgIHRoaXMubGlzdGVuZXJzW2V2ZW50XS5wdXNoKGNhbGxiYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0ZW5lcnNbZXZlbnRdID0gW2NhbGxiYWNrXTtcbiAgICB9XG4gIH07XG5cbiAgT2JzZXJ2YWJsZS5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHZhciBzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcbiAgICB2YXIgcGFyYW1zID0gc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuXG4gICAgdGhpcy5saXN0ZW5lcnMgPSB0aGlzLmxpc3RlbmVycyB8fCB7fTtcblxuICAgIC8vIFBhcmFtcyBzaG91bGQgYWx3YXlzIGNvbWUgaW4gYXMgYW4gYXJyYXlcbiAgICBpZiAocGFyYW1zID09IG51bGwpIHtcbiAgICAgIHBhcmFtcyA9IFtdO1xuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBubyBhcmd1bWVudHMgdG8gdGhlIGV2ZW50LCB1c2UgYSB0ZW1wb3Jhcnkgb2JqZWN0XG4gICAgaWYgKHBhcmFtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHBhcmFtcy5wdXNoKHt9KTtcbiAgICB9XG5cbiAgICAvLyBTZXQgdGhlIGBfdHlwZWAgb2YgdGhlIGZpcnN0IG9iamVjdCB0byB0aGUgZXZlbnRcbiAgICBwYXJhbXNbMF0uX3R5cGUgPSBldmVudDtcblxuICAgIGlmIChldmVudCBpbiB0aGlzLmxpc3RlbmVycykge1xuICAgICAgdGhpcy5pbnZva2UodGhpcy5saXN0ZW5lcnNbZXZlbnRdLCBzbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpO1xuICAgIH1cblxuICAgIGlmICgnKicgaW4gdGhpcy5saXN0ZW5lcnMpIHtcbiAgICAgIHRoaXMuaW52b2tlKHRoaXMubGlzdGVuZXJzWycqJ10sIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9O1xuXG4gIE9ic2VydmFibGUucHJvdG90eXBlLmludm9rZSA9IGZ1bmN0aW9uIChsaXN0ZW5lcnMsIHBhcmFtcykge1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBsaXN0ZW5lcnMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGxpc3RlbmVyc1tpXS5hcHBseSh0aGlzLCBwYXJhbXMpO1xuICAgIH1cbiAgfTtcblxuICBVdGlscy5PYnNlcnZhYmxlID0gT2JzZXJ2YWJsZTtcblxuICBVdGlscy5nZW5lcmF0ZUNoYXJzID0gZnVuY3Rpb24gKGxlbmd0aCkge1xuICAgIHZhciBjaGFycyA9ICcnO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHJhbmRvbUNoYXIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzNik7XG4gICAgICBjaGFycyArPSByYW5kb21DaGFyLnRvU3RyaW5nKDM2KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hhcnM7XG4gIH07XG5cbiAgVXRpbHMuYmluZCA9IGZ1bmN0aW9uIChmdW5jLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9O1xuXG4gIFV0aWxzLl9jb252ZXJ0RGF0YSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZm9yICh2YXIgb3JpZ2luYWxLZXkgaW4gZGF0YSkge1xuICAgICAgdmFyIGtleXMgPSBvcmlnaW5hbEtleS5zcGxpdCgnLScpO1xuXG4gICAgICB2YXIgZGF0YUxldmVsID0gZGF0YTtcblxuICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBrID0gMDsgayA8IGtleXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgdmFyIGtleSA9IGtleXNba107XG5cbiAgICAgICAgLy8gTG93ZXJjYXNlIHRoZSBmaXJzdCBsZXR0ZXJcbiAgICAgICAgLy8gQnkgZGVmYXVsdCwgZGFzaC1zZXBhcmF0ZWQgYmVjb21lcyBjYW1lbENhc2VcbiAgICAgICAga2V5ID0ga2V5LnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpICsga2V5LnN1YnN0cmluZygxKTtcblxuICAgICAgICBpZiAoIShrZXkgaW4gZGF0YUxldmVsKSkge1xuICAgICAgICAgIGRhdGFMZXZlbFtrZXldID0ge307XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoayA9PSBrZXlzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICBkYXRhTGV2ZWxba2V5XSA9IGRhdGFbb3JpZ2luYWxLZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YUxldmVsID0gZGF0YUxldmVsW2tleV07XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSBkYXRhW29yaWdpbmFsS2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfTtcblxuICBVdGlscy5oYXNTY3JvbGwgPSBmdW5jdGlvbiAoaW5kZXgsIGVsKSB7XG4gICAgLy8gQWRhcHRlZCBmcm9tIHRoZSBmdW5jdGlvbiBjcmVhdGVkIGJ5IEBTaGFkb3dTY3JpcHRlclxuICAgIC8vIGFuZCBhZGFwdGVkIGJ5IEBCaWxsQmFycnkgb24gdGhlIFN0YWNrIEV4Y2hhbmdlIENvZGUgUmV2aWV3IHdlYnNpdGUuXG4gICAgLy8gVGhlIG9yaWdpbmFsIGNvZGUgY2FuIGJlIGZvdW5kIGF0XG4gICAgLy8gaHR0cDovL2NvZGVyZXZpZXcuc3RhY2tleGNoYW5nZS5jb20vcS8xMzMzOFxuICAgIC8vIGFuZCB3YXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSBTaXp6bGUgc2VsZWN0b3IgZW5naW5lLlxuXG4gICAgdmFyICRlbCA9ICQoZWwpO1xuICAgIHZhciBvdmVyZmxvd1ggPSBlbC5zdHlsZS5vdmVyZmxvd1g7XG4gICAgdmFyIG92ZXJmbG93WSA9IGVsLnN0eWxlLm92ZXJmbG93WTtcblxuICAgIC8vQ2hlY2sgYm90aCB4IGFuZCB5IGRlY2xhcmF0aW9uc1xuICAgIGlmIChvdmVyZmxvd1ggPT09IG92ZXJmbG93WSAmJlxuICAgICAgICAob3ZlcmZsb3dZID09PSAnaGlkZGVuJyB8fCBvdmVyZmxvd1kgPT09ICd2aXNpYmxlJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAob3ZlcmZsb3dYID09PSAnc2Nyb2xsJyB8fCBvdmVyZmxvd1kgPT09ICdzY3JvbGwnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCRlbC5pbm5lckhlaWdodCgpIDwgZWwuc2Nyb2xsSGVpZ2h0IHx8XG4gICAgICAkZWwuaW5uZXJXaWR0aCgpIDwgZWwuc2Nyb2xsV2lkdGgpO1xuICB9O1xuXG4gIFV0aWxzLmVzY2FwZU1hcmt1cCA9IGZ1bmN0aW9uIChtYXJrdXApIHtcbiAgICB2YXIgcmVwbGFjZU1hcCA9IHtcbiAgICAgICdcXFxcJzogJyYjOTI7JyxcbiAgICAgICcmJzogJyZhbXA7JyxcbiAgICAgICc8JzogJyZsdDsnLFxuICAgICAgJz4nOiAnJmd0OycsXG4gICAgICAnXCInOiAnJnF1b3Q7JyxcbiAgICAgICdcXCcnOiAnJiMzOTsnLFxuICAgICAgJy8nOiAnJiM0NzsnXG4gICAgfTtcblxuICAgIC8vIERvIG5vdCB0cnkgdG8gZXNjYXBlIHRoZSBtYXJrdXAgaWYgaXQncyBub3QgYSBzdHJpbmdcbiAgICBpZiAodHlwZW9mIG1hcmt1cCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBtYXJrdXA7XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyhtYXJrdXApLnJlcGxhY2UoL1smPD5cIidcXC9cXFxcXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgIHJldHVybiByZXBsYWNlTWFwW21hdGNoXTtcbiAgICB9KTtcbiAgfTtcblxuICAvLyBDYWNoZSBvYmplY3RzIGluIFV0aWxzLl9fY2FjaGUgaW5zdGVhZCBvZiAkLmRhdGEgKHNlZSAjNDM0NilcbiAgVXRpbHMuX19jYWNoZSA9IHt9O1xuXG4gIHZhciBpZCA9IDA7XG4gIFV0aWxzLkdldFVuaXF1ZUVsZW1lbnRJZCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgLy8gR2V0IGEgdW5pcXVlIGVsZW1lbnQgSWQuIElmIGVsZW1lbnQgaGFzIG5vIGlkLFxuICAgIC8vIGNyZWF0ZXMgYSBuZXcgdW5pcXVlIG51bWJlciwgc3RvcmVzIGl0IGluIHRoZSBpZFxuICAgIC8vIGF0dHJpYnV0ZSBhbmQgcmV0dXJucyB0aGUgbmV3IGlkIHdpdGggYSBwcmVmaXguXG4gICAgLy8gSWYgYW4gaWQgYWxyZWFkeSBleGlzdHMsIGl0IHNpbXBseSByZXR1cm5zIGl0IHdpdGggYSBwcmVmaXguXG5cbiAgICB2YXIgc2VsZWN0MklkID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2VsZWN0Mi1pZCcpO1xuXG4gICAgaWYgKHNlbGVjdDJJZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gc2VsZWN0MklkO1xuICAgIH1cblxuICAgIC8vIElmIGVsZW1lbnQgaGFzIGlkLCB1c2UgaXQuXG4gICAgaWYgKGVsZW1lbnQuaWQpIHtcbiAgICAgIHNlbGVjdDJJZCA9ICdzZWxlY3QyLWRhdGEtJyArIGVsZW1lbnQuaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdDJJZCA9ICdzZWxlY3QyLWRhdGEtJyArICgrK2lkKS50b1N0cmluZygpICtcbiAgICAgICAgJy0nICsgVXRpbHMuZ2VuZXJhdGVDaGFycyg0KTtcbiAgICB9XG5cbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1zZWxlY3QyLWlkJywgc2VsZWN0MklkKTtcblxuICAgIHJldHVybiBzZWxlY3QySWQ7XG4gIH07XG5cbiAgVXRpbHMuU3RvcmVEYXRhID0gZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG4gICAgLy8gU3RvcmVzIGFuIGl0ZW0gaW4gdGhlIGNhY2hlIGZvciBhIHNwZWNpZmllZCBlbGVtZW50LlxuICAgIC8vIG5hbWUgaXMgdGhlIGNhY2hlIGtleS5cbiAgICB2YXIgaWQgPSBVdGlscy5HZXRVbmlxdWVFbGVtZW50SWQoZWxlbWVudCk7XG4gICAgaWYgKCFVdGlscy5fX2NhY2hlW2lkXSkge1xuICAgICAgVXRpbHMuX19jYWNoZVtpZF0gPSB7fTtcbiAgICB9XG5cbiAgICBVdGlscy5fX2NhY2hlW2lkXVtuYW1lXSA9IHZhbHVlO1xuICB9O1xuXG4gIFV0aWxzLkdldERhdGEgPSBmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkge1xuICAgIC8vIFJldHJpZXZlcyBhIHZhbHVlIGZyb20gdGhlIGNhY2hlIGJ5IGl0cyBrZXkgKG5hbWUpXG4gICAgLy8gbmFtZSBpcyBvcHRpb25hbC4gSWYgbm8gbmFtZSBzcGVjaWZpZWQsIHJldHVyblxuICAgIC8vIGFsbCBjYWNoZSBpdGVtcyBmb3IgdGhlIHNwZWNpZmllZCBlbGVtZW50LlxuICAgIC8vIGFuZCBmb3IgYSBzcGVjaWZpZWQgZWxlbWVudC5cbiAgICB2YXIgaWQgPSBVdGlscy5HZXRVbmlxdWVFbGVtZW50SWQoZWxlbWVudCk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGlmIChVdGlscy5fX2NhY2hlW2lkXSkge1xuICAgICAgICBpZiAoVXRpbHMuX19jYWNoZVtpZF1bbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBVdGlscy5fX2NhY2hlW2lkXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJChlbGVtZW50KS5kYXRhKG5hbWUpOyAvLyBGYWxsYmFjayB0byBIVE1MNSBkYXRhIGF0dHJpYnMuXG4gICAgICB9XG4gICAgICByZXR1cm4gJChlbGVtZW50KS5kYXRhKG5hbWUpOyAvLyBGYWxsYmFjayB0byBIVE1MNSBkYXRhIGF0dHJpYnMuXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBVdGlscy5fX2NhY2hlW2lkXTtcbiAgICB9XG4gIH07XG5cbiAgVXRpbHMuUmVtb3ZlRGF0YSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgLy8gUmVtb3ZlcyBhbGwgY2FjaGVkIGl0ZW1zIGZvciBhIHNwZWNpZmllZCBlbGVtZW50LlxuICAgIHZhciBpZCA9IFV0aWxzLkdldFVuaXF1ZUVsZW1lbnRJZChlbGVtZW50KTtcbiAgICBpZiAoVXRpbHMuX19jYWNoZVtpZF0gIT0gbnVsbCkge1xuICAgICAgZGVsZXRlIFV0aWxzLl9fY2FjaGVbaWRdO1xuICAgIH1cblxuICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNlbGVjdDItaWQnKTtcbiAgfTtcblxuICBVdGlscy5jb3B5Tm9uSW50ZXJuYWxDc3NDbGFzc2VzID0gZnVuY3Rpb24gKGRlc3QsIHNyYykge1xuICAgIHZhciBjbGFzc2VzO1xuXG4gICAgdmFyIGRlc3RpbmF0aW9uQ2xhc3NlcyA9IGRlc3QuZ2V0QXR0cmlidXRlKCdjbGFzcycpLnRyaW0oKS5zcGxpdCgvXFxzKy8pO1xuXG4gICAgZGVzdGluYXRpb25DbGFzc2VzID0gZGVzdGluYXRpb25DbGFzc2VzLmZpbHRlcihmdW5jdGlvbiAoY2xhenopIHtcbiAgICAgIC8vIFNhdmUgYWxsIFNlbGVjdDIgY2xhc3Nlc1xuICAgICAgcmV0dXJuIGNsYXp6LmluZGV4T2YoJ3NlbGVjdDItJykgPT09IDA7XG4gICAgfSk7XG5cbiAgICB2YXIgc291cmNlQ2xhc3NlcyA9IHNyYy5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykudHJpbSgpLnNwbGl0KC9cXHMrLyk7XG5cbiAgICBzb3VyY2VDbGFzc2VzID0gc291cmNlQ2xhc3Nlcy5maWx0ZXIoZnVuY3Rpb24gKGNsYXp6KSB7XG4gICAgICAvLyBPbmx5IGNvcHkgbm9uLVNlbGVjdDIgY2xhc3Nlc1xuICAgICAgcmV0dXJuIGNsYXp6LmluZGV4T2YoJ3NlbGVjdDItJykgIT09IDA7XG4gICAgfSk7XG5cbiAgICB2YXIgcmVwbGFjZW1lbnRzID0gZGVzdGluYXRpb25DbGFzc2VzLmNvbmNhdChzb3VyY2VDbGFzc2VzKTtcblxuICAgIGRlc3Quc2V0QXR0cmlidXRlKCdjbGFzcycsIHJlcGxhY2VtZW50cy5qb2luKCcgJykpO1xuICB9O1xuXG4gIHJldHVybiBVdGlscztcbn0pO1xuXG5TMi5kZWZpbmUoJ3NlbGVjdDIvcmVzdWx0cycsW1xuICAnanF1ZXJ5JyxcbiAgJy4vdXRpbHMnXG5dLCBmdW5jdGlvbiAoJCwgVXRpbHMpIHtcbiAgZnVuY3Rpb24gUmVzdWx0cyAoJGVsZW1lbnQsIG9wdGlvbnMsIGRhdGFBZGFwdGVyKSB7XG4gICAgdGhpcy4kZWxlbWVudCA9ICRlbGVtZW50O1xuICAgIHRoaXMuZGF0YSA9IGRhdGFBZGFwdGVyO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBSZXN1bHRzLl9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMpO1xuICB9XG5cbiAgVXRpbHMuRXh0ZW5kKFJlc3VsdHMsIFV0aWxzLk9ic2VydmFibGUpO1xuXG4gIFJlc3VsdHMucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgJHJlc3VsdHMgPSAkKFxuICAgICAgJzx1bCBjbGFzcz1cInNlbGVjdDItcmVzdWx0c19fb3B0aW9uc1wiIHJvbGU9XCJsaXN0Ym94XCI+PC91bD4nXG4gICAgKTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuZ2V0KCdtdWx0aXBsZScpKSB7XG4gICAgICAkcmVzdWx0cy5hdHRyKCdhcmlhLW11bHRpc2VsZWN0YWJsZScsICd0cnVlJyk7XG4gICAgfVxuXG4gICAgdGhpcy4kcmVzdWx0cyA9ICRyZXN1bHRzO1xuXG4gICAgcmV0dXJuICRyZXN1bHRzO1xuICB9O1xuXG4gIFJlc3VsdHMucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuJHJlc3VsdHMuZW1wdHkoKTtcbiAgfTtcblxuICBSZXN1bHRzLnByb3RvdHlwZS5kaXNwbGF5TWVzc2FnZSA9IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICB2YXIgZXNjYXBlTWFya3VwID0gdGhpcy5vcHRpb25zLmdldCgnZXNjYXBlTWFya3VwJyk7XG5cbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgdGhpcy5oaWRlTG9hZGluZygpO1xuXG4gICAgdmFyICRtZXNzYWdlID0gJChcbiAgICAgICc8bGkgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCInICtcbiAgICAgICcgY2xhc3M9XCJzZWxlY3QyLXJlc3VsdHNfX29wdGlvblwiPjwvbGk+J1xuICAgICk7XG5cbiAgICB2YXIgbWVzc2FnZSA9IHRoaXMub3B0aW9ucy5nZXQoJ3RyYW5zbGF0aW9ucycpLmdldChwYXJhbXMubWVzc2FnZSk7XG5cbiAgICAkbWVzc2FnZS5hcHBlbmQoXG4gICAgICBlc2NhcGVNYXJrdXAoXG4gICAgICAgIG1lc3NhZ2UocGFyYW1zLmFyZ3MpXG4gICAgICApXG4gICAgKTtcblxuICAgICRtZXNzYWdlWzBdLmNsYXNzTmFtZSArPSAnIHNlbGVjdDItcmVzdWx0c19fbWVzc2FnZSc7XG5cbiAgICB0aGlzLiRyZXN1bHRzLmFwcGVuZCgkbWVzc2FnZSk7XG4gIH07XG5cbiAgUmVzdWx0cy5wcm90b3R5cGUuaGlkZU1lc3NhZ2VzID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuJHJlc3VsdHMuZmluZCgnLnNlbGVjdDItcmVzdWx0c19fbWVzc2FnZScpLnJlbW92ZSgpO1xuICB9O1xuXG4gIFJlc3VsdHMucHJvdG90eXBlLmFwcGVuZCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgdGhpcy5oaWRlTG9hZGluZygpO1xuXG4gICAgdmFyICRvcHRpb25zID0gW107XG5cbiAgICBpZiAoZGF0YS5yZXN1bHRzID09IG51bGwgfHwgZGF0YS5yZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKHRoaXMuJHJlc3VsdHMuY2hpbGRyZW4oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyKCdyZXN1bHRzOm1lc3NhZ2UnLCB7XG4gICAgICAgICAgbWVzc2FnZTogJ25vUmVzdWx0cydcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkYXRhLnJlc3VsdHMgPSB0aGlzLnNvcnQoZGF0YS5yZXN1bHRzKTtcblxuICAgIGZvciAodmFyIGQgPSAwOyBkIDwgZGF0YS5yZXN1bHRzLmxlbmd0aDsgZCsrKSB7XG4gICAgICB2YXIgaXRlbSA9IGRhdGEucmVzdWx0c1tkXTtcblxuICAgICAgdmFyICRvcHRpb24gPSB0aGlzLm9wdGlvbihpdGVtKTtcblxuICAgICAgJG9wdGlvbnMucHVzaCgkb3B0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLiRyZXN1bHRzLmFwcGVuZCgkb3B0aW9ucyk7XG4gIH07XG5cbiAgUmVzdWx0cy5wcm90b3R5cGUucG9zaXRpb24gPSBmdW5jdGlvbiAoJHJlc3VsdHMsICRkcm9wZG93bikge1xuICAgIHZhciAkcmVzdWx0c0NvbnRhaW5lciA9ICRkcm9wZG93bi5maW5kKCcuc2VsZWN0Mi1yZXN1bHRzJyk7XG4gICAgJHJlc3VsdHNDb250YWluZXIuYXBwZW5kKCRyZXN1bHRzKTtcbiAgfTtcblxuICBSZXN1bHRzLnByb3RvdHlwZS5zb3J0ID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICB2YXIgc29ydGVyID0gdGhpcy5vcHRpb25zLmdldCgnc29ydGVyJyk7XG5cbiAgICByZXR1cm4gc29ydGVyKGRhdGEpO1xuICB9O1xuXG4gIFJlc3VsdHMucHJvdG90eXBlLmhpZ2hsaWdodEZpcnN0SXRlbSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgJG9wdGlvbnMgPSB0aGlzLiRyZXN1bHRzXG4gICAgICAuZmluZCgnLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1zZWxlY3RhYmxlJyk7XG5cbiAgICB2YXIgJHNlbGVjdGVkID0gJG9wdGlvbnMuZmlsdGVyKCcuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLXNlbGVjdGVkJyk7XG5cbiAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IHNlbGVjdGVkIG9wdGlvbnNcbiAgICBpZiAoJHNlbGVjdGVkLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIElmIHRoZXJlIGFyZSBzZWxlY3RlZCBvcHRpb25zLCBoaWdobGlnaHQgdGhlIGZpcnN0XG4gICAgICAkc2VsZWN0ZWQuZmlyc3QoKS50cmlnZ2VyKCdtb3VzZWVudGVyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBzZWxlY3RlZCBvcHRpb25zLCBoaWdobGlnaHQgdGhlIGZpcnN0IG9wdGlvblxuICAgICAgLy8gaW4gdGhlIGRyb3Bkb3duXG4gICAgICAkb3B0aW9ucy5maXJzdCgpLnRyaWdnZXIoJ21vdXNlZW50ZXInKTtcbiAgICB9XG5cbiAgICB0aGlzLmVuc3VyZUhpZ2hsaWdodFZpc2libGUoKTtcbiAgfTtcblxuICBSZXN1bHRzLnByb3RvdHlwZS5zZXRDbGFzc2VzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIHRoaXMuZGF0YS5jdXJyZW50KGZ1bmN0aW9uIChzZWxlY3RlZCkge1xuICAgICAgdmFyIHNlbGVjdGVkSWRzID0gc2VsZWN0ZWQubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgICAgIHJldHVybiBzLmlkLnRvU3RyaW5nKCk7XG4gICAgICB9KTtcblxuICAgICAgdmFyICRvcHRpb25zID0gc2VsZi4kcmVzdWx0c1xuICAgICAgICAuZmluZCgnLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1zZWxlY3RhYmxlJyk7XG5cbiAgICAgICRvcHRpb25zLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgJG9wdGlvbiA9ICQodGhpcyk7XG5cbiAgICAgICAgdmFyIGl0ZW0gPSBVdGlscy5HZXREYXRhKHRoaXMsICdkYXRhJyk7XG5cbiAgICAgICAgLy8gaWQgbmVlZHMgdG8gYmUgY29udmVydGVkIHRvIGEgc3RyaW5nIHdoZW4gY29tcGFyaW5nXG4gICAgICAgIHZhciBpZCA9ICcnICsgaXRlbS5pZDtcblxuICAgICAgICBpZiAoKGl0ZW0uZWxlbWVudCAhPSBudWxsICYmIGl0ZW0uZWxlbWVudC5zZWxlY3RlZCkgfHxcbiAgICAgICAgICAgIChpdGVtLmVsZW1lbnQgPT0gbnVsbCAmJiBzZWxlY3RlZElkcy5pbmRleE9mKGlkKSA+IC0xKSkge1xuICAgICAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLXNlbGVjdGVkJyk7XG4gICAgICAgICAgJG9wdGlvbi5hdHRyKCdhcmlhLXNlbGVjdGVkJywgJ3RydWUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1zZWxlY3RlZCcpO1xuICAgICAgICAgICRvcHRpb24uYXR0cignYXJpYS1zZWxlY3RlZCcsICdmYWxzZScpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH0pO1xuICB9O1xuXG4gIFJlc3VsdHMucHJvdG90eXBlLnNob3dMb2FkaW5nID0gZnVuY3Rpb24gKHBhcmFtcykge1xuICAgIHRoaXMuaGlkZUxvYWRpbmcoKTtcblxuICAgIHZhciBsb2FkaW5nTW9yZSA9IHRoaXMub3B0aW9ucy5nZXQoJ3RyYW5zbGF0aW9ucycpLmdldCgnc2VhcmNoaW5nJyk7XG5cbiAgICB2YXIgbG9hZGluZyA9IHtcbiAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIHRleHQ6IGxvYWRpbmdNb3JlKHBhcmFtcylcbiAgICB9O1xuICAgIHZhciAkbG9hZGluZyA9IHRoaXMub3B0aW9uKGxvYWRpbmcpO1xuICAgICRsb2FkaW5nLmNsYXNzTmFtZSArPSAnIGxvYWRpbmctcmVzdWx0cyc7XG5cbiAgICB0aGlzLiRyZXN1bHRzLnByZXBlbmQoJGxvYWRpbmcpO1xuICB9O1xuXG4gIFJlc3VsdHMucHJvdG90eXBlLmhpZGVMb2FkaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuJHJlc3VsdHMuZmluZCgnLmxvYWRpbmctcmVzdWx0cycpLnJlbW92ZSgpO1xuICB9O1xuXG4gIFJlc3VsdHMucHJvdG90eXBlLm9wdGlvbiA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7XG4gICAgb3B0aW9uLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdDItcmVzdWx0c19fb3B0aW9uJyk7XG4gICAgb3B0aW9uLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1zZWxlY3RhYmxlJyk7XG5cbiAgICB2YXIgYXR0cnMgPSB7XG4gICAgICAncm9sZSc6ICdvcHRpb24nXG4gICAgfTtcblxuICAgIHZhciBtYXRjaGVzID0gd2luZG93LkVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMgfHxcbiAgICAgIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5tc01hdGNoZXNTZWxlY3RvciB8fFxuICAgICAgd2luZG93LkVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvcjtcblxuICAgIGlmICgoZGF0YS5lbGVtZW50ICE9IG51bGwgJiYgbWF0Y2hlcy5jYWxsKGRhdGEuZWxlbWVudCwgJzpkaXNhYmxlZCcpKSB8fFxuICAgICAgICAoZGF0YS5lbGVtZW50ID09IG51bGwgJiYgZGF0YS5kaXNhYmxlZCkpIHtcbiAgICAgIGF0dHJzWydhcmlhLWRpc2FibGVkJ10gPSAndHJ1ZSc7XG5cbiAgICAgIG9wdGlvbi5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0tc2VsZWN0YWJsZScpO1xuICAgICAgb3B0aW9uLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1kaXNhYmxlZCcpO1xuICAgIH1cblxuICAgIGlmIChkYXRhLmlkID09IG51bGwpIHtcbiAgICAgIG9wdGlvbi5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0tc2VsZWN0YWJsZScpO1xuICAgIH1cblxuICAgIGlmIChkYXRhLl9yZXN1bHRJZCAhPSBudWxsKSB7XG4gICAgICBvcHRpb24uaWQgPSBkYXRhLl9yZXN1bHRJZDtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS50aXRsZSkge1xuICAgICAgb3B0aW9uLnRpdGxlID0gZGF0YS50aXRsZTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5jaGlsZHJlbikge1xuICAgICAgYXR0cnMucm9sZSA9ICdncm91cCc7XG4gICAgICBhdHRyc1snYXJpYS1sYWJlbCddID0gZGF0YS50ZXh0O1xuXG4gICAgICBvcHRpb24uY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLXNlbGVjdGFibGUnKTtcbiAgICAgIG9wdGlvbi5jbGFzc0xpc3QuYWRkKCdzZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0tZ3JvdXAnKTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBhdHRyIGluIGF0dHJzKSB7XG4gICAgICB2YXIgdmFsID0gYXR0cnNbYXR0cl07XG5cbiAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoYXR0ciwgdmFsKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5jaGlsZHJlbikge1xuICAgICAgdmFyICRvcHRpb24gPSAkKG9wdGlvbik7XG5cbiAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0cm9uZycpO1xuICAgICAgbGFiZWwuY2xhc3NOYW1lID0gJ3NlbGVjdDItcmVzdWx0c19fZ3JvdXAnO1xuXG4gICAgICB0aGlzLnRlbXBsYXRlKGRhdGEsIGxhYmVsKTtcblxuICAgICAgdmFyICRjaGlsZHJlbiA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBjID0gMDsgYyA8IGRhdGEuY2hpbGRyZW4ubGVuZ3RoOyBjKyspIHtcbiAgICAgICAgdmFyIGNoaWxkID0gZGF0YS5jaGlsZHJlbltjXTtcblxuICAgICAgICB2YXIgJGNoaWxkID0gdGhpcy5vcHRpb24oY2hpbGQpO1xuXG4gICAgICAgICRjaGlsZHJlbi5wdXNoKCRjaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIHZhciAkY2hpbGRyZW5Db250YWluZXIgPSAkKCc8dWw+PC91bD4nLCB7XG4gICAgICAgICdjbGFzcyc6ICdzZWxlY3QyLXJlc3VsdHNfX29wdGlvbnMgc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25zLS1uZXN0ZWQnLFxuICAgICAgICAncm9sZSc6ICdub25lJ1xuICAgICAgfSk7XG5cbiAgICAgICRjaGlsZHJlbkNvbnRhaW5lci5hcHBlbmQoJGNoaWxkcmVuKTtcblxuICAgICAgJG9wdGlvbi5hcHBlbmQobGFiZWwpO1xuICAgICAgJG9wdGlvbi5hcHBlbmQoJGNoaWxkcmVuQ29udGFpbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZW1wbGF0ZShkYXRhLCBvcHRpb24pO1xuICAgIH1cblxuICAgIFV0aWxzLlN0b3JlRGF0YShvcHRpb24sICdkYXRhJywgZGF0YSk7XG5cbiAgICByZXR1cm4gb3B0aW9uO1xuICB9O1xuXG4gIFJlc3VsdHMucHJvdG90eXBlLmJpbmQgPSBmdW5jdGlvbiAoY29udGFpbmVyLCAkY29udGFpbmVyKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIGlkID0gY29udGFpbmVyLmlkICsgJy1yZXN1bHRzJztcblxuICAgIHRoaXMuJHJlc3VsdHMuYXR0cignaWQnLCBpZCk7XG5cbiAgICBjb250YWluZXIub24oJ3Jlc3VsdHM6YWxsJywgZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgc2VsZi5jbGVhcigpO1xuICAgICAgc2VsZi5hcHBlbmQocGFyYW1zLmRhdGEpO1xuXG4gICAgICBpZiAoY29udGFpbmVyLmlzT3BlbigpKSB7XG4gICAgICAgIHNlbGYuc2V0Q2xhc3NlcygpO1xuICAgICAgICBzZWxmLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGFpbmVyLm9uKCdyZXN1bHRzOmFwcGVuZCcsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgIHNlbGYuYXBwZW5kKHBhcmFtcy5kYXRhKTtcblxuICAgICAgaWYgKGNvbnRhaW5lci5pc09wZW4oKSkge1xuICAgICAgICBzZWxmLnNldENsYXNzZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnRhaW5lci5vbigncXVlcnknLCBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICBzZWxmLmhpZGVNZXNzYWdlcygpO1xuICAgICAgc2VsZi5zaG93TG9hZGluZyhwYXJhbXMpO1xuICAgIH0pO1xuXG4gICAgY29udGFpbmVyLm9uKCdzZWxlY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIWNvbnRhaW5lci5pc09wZW4oKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNlbGYuc2V0Q2xhc3NlcygpO1xuXG4gICAgICBpZiAoc2VsZi5vcHRpb25zLmdldCgnc2Nyb2xsQWZ0ZXJTZWxlY3QnKSkge1xuICAgICAgICBzZWxmLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGFpbmVyLm9uKCd1bnNlbGVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghY29udGFpbmVyLmlzT3BlbigpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2VsZi5zZXRDbGFzc2VzKCk7XG5cbiAgICAgIGlmIChzZWxmLm9wdGlvbnMuZ2V0KCdzY3JvbGxBZnRlclNlbGVjdCcpKSB7XG4gICAgICAgIHNlbGYuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb250YWluZXIub24oJ29wZW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBXaGVuIHRoZSBkcm9wZG93biBpcyBvcGVuLCBhcmlhLWV4cGVuZGVkPVwidHJ1ZVwiXG4gICAgICBzZWxmLiRyZXN1bHRzLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgICAgc2VsZi4kcmVzdWx0cy5hdHRyKCdhcmlhLWhpZGRlbicsICdmYWxzZScpO1xuXG4gICAgICBzZWxmLnNldENsYXNzZXMoKTtcbiAgICAgIHNlbGYuZW5zdXJlSGlnaGxpZ2h0VmlzaWJsZSgpO1xuICAgIH0pO1xuXG4gICAgY29udGFpbmVyLm9uKCdjbG9zZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFdoZW4gdGhlIGRyb3Bkb3duIGlzIGNsb3NlZCwgYXJpYS1leHBlbmRlZD1cImZhbHNlXCJcbiAgICAgIHNlbGYuJHJlc3VsdHMuYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgc2VsZi4kcmVzdWx0cy5hdHRyKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICBzZWxmLiRyZXN1bHRzLnJlbW92ZUF0dHIoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICAgIH0pO1xuXG4gICAgY29udGFpbmVyLm9uKCdyZXN1bHRzOnRvZ2dsZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciAkaGlnaGxpZ2h0ZWQgPSBzZWxmLmdldEhpZ2hsaWdodGVkUmVzdWx0cygpO1xuXG4gICAgICBpZiAoJGhpZ2hsaWdodGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgICRoaWdobGlnaHRlZC50cmlnZ2VyKCdtb3VzZXVwJyk7XG4gICAgfSk7XG5cbiAgICBjb250YWluZXIub24oJ3Jlc3VsdHM6c2VsZWN0JywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyICRoaWdobGlnaHRlZCA9IHNlbGYuZ2V0SGlnaGxpZ2h0ZWRSZXN1bHRzKCk7XG5cbiAgICAgIGlmICgkaGlnaGxpZ2h0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGRhdGEgPSBVdGlscy5HZXREYXRhKCRoaWdobGlnaHRlZFswXSwgJ2RhdGEnKTtcblxuICAgICAgaWYgKCRoaWdobGlnaHRlZC5oYXNDbGFzcygnc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLXNlbGVjdGVkJykpIHtcbiAgICAgICAgc2VsZi50cmlnZ2VyKCdjbG9zZScsIHt9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGYudHJpZ2dlcignc2VsZWN0Jywge1xuICAgICAgICAgIGRhdGE6IGRhdGFcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb250YWluZXIub24oJ3Jlc3VsdHM6cHJldmlvdXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgJGhpZ2hsaWdodGVkID0gc2VsZi5nZXRIaWdobGlnaHRlZFJlc3VsdHMoKTtcblxuICAgICAgdmFyICRvcHRpb25zID0gc2VsZi4kcmVzdWx0cy5maW5kKCcuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLXNlbGVjdGFibGUnKTtcblxuICAgICAgdmFyIGN1cnJlbnRJbmRleCA9ICRvcHRpb25zLmluZGV4KCRoaWdobGlnaHRlZCk7XG5cbiAgICAgIC8vIElmIHdlIGFyZSBhbHJlYWR5IGF0IHRo